mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
This reverts commit 8bb40feca6.
This commit is contained in:
@@ -13,13 +13,12 @@
|
||||
if(client.buildmode) // comes after object.Click to allow buildmode gui objects to be clicked
|
||||
build_click(src, client.buildmode, params, A)
|
||||
return
|
||||
|
||||
if(control_disabled || stat)
|
||||
return
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["shift"] || modifiers["alt"] || modifiers["ctrl"])
|
||||
return
|
||||
if(istype(current, /obj/machinery/turret))
|
||||
return
|
||||
if(ismob(A) || ismecha(A))
|
||||
ai_actual_track(A)
|
||||
else
|
||||
@@ -46,9 +45,6 @@
|
||||
else
|
||||
MiddleClickOn(A)
|
||||
return
|
||||
if(modifiers["right"])
|
||||
RightClickOn(A)
|
||||
return
|
||||
if(modifiers["shift"])
|
||||
ShiftClickOn(A)
|
||||
return
|
||||
@@ -75,14 +71,8 @@
|
||||
*/
|
||||
if(INVOKE_EVENT(src, /event/uattack, "atom" = A)) //This returns 1 when doing an action intercept
|
||||
return
|
||||
|
||||
if(istype(current, /obj/machinery/turret))
|
||||
var/obj/machinery/turret/T = current
|
||||
if(T.enabled && T.raised)
|
||||
T.shootAt(A)
|
||||
else
|
||||
A.add_hiddenprint(src)
|
||||
A.attack_ai(src)
|
||||
A.add_hiddenprint(src)
|
||||
A.attack_ai(src)
|
||||
|
||||
/*
|
||||
AI has no need for the UnarmedAttack() and RangedAttack() procs,
|
||||
@@ -111,9 +101,6 @@
|
||||
A.AIAltClick(src)
|
||||
/mob/living/silicon/ai/MiddleShiftClickOn(var/atom/A)
|
||||
A.AIMiddleShiftClick(src)
|
||||
/mob/living/silicon/ai/RightClickOn(var/atom/A)
|
||||
A.AIRightClick(src)
|
||||
|
||||
|
||||
/*
|
||||
The following criminally helpful code is just the previous code cleaned up;
|
||||
@@ -129,16 +116,14 @@
|
||||
/atom/proc/AICtrlClick()
|
||||
return
|
||||
|
||||
/atom/proc/AIRightClick()
|
||||
return
|
||||
|
||||
/atom/proc/AIAltClick(var/mob/living/silicon/ai/user)
|
||||
AltClick(user)
|
||||
return
|
||||
|
||||
/obj/machinery/power/apc/AICtrlClick() // turns off APCs.
|
||||
if(allowed(usr))
|
||||
Topic("breaker=1", list("breaker"="1"), 0) // 0 meaning no window (consistency! wait...)
|
||||
|
||||
|
||||
/atom/proc/AIAltClick(var/mob/living/silicon/ai/user)
|
||||
AltClick(user)
|
||||
return
|
||||
|
||||
/obj/machinery/door/firedoor/AIShiftClick(var/mob/living/silicon/ai/user) // Allows examining firelocks
|
||||
examine(user)
|
||||
|
||||
@@ -22,6 +22,13 @@
|
||||
/atom/Click(location,control,params)
|
||||
usr.ClickOn(src, params)
|
||||
|
||||
/mob/living/Click()
|
||||
if(isAI(usr))
|
||||
var/mob/living/silicon/ai/A = usr
|
||||
if(!A.aicamera.in_camera_mode) //Fix for taking photos of mobs
|
||||
return
|
||||
..()
|
||||
|
||||
/atom/DblClick(location,control,params)
|
||||
usr.DblClickOn(src,params)
|
||||
|
||||
@@ -84,9 +91,6 @@
|
||||
if(modifiers["ctrl"])
|
||||
CtrlClickOn(A)
|
||||
return
|
||||
if(modifiers["right"])
|
||||
RightClickOn(A)
|
||||
return
|
||||
|
||||
if(attempt_crawling(A))
|
||||
return
|
||||
@@ -292,16 +296,6 @@
|
||||
if(Adjacent(user))
|
||||
user.start_pulling(src)
|
||||
|
||||
/*
|
||||
Right Click
|
||||
*/
|
||||
|
||||
/mob/proc/RightClickOn(var/atom/A)
|
||||
A.RightClick()
|
||||
|
||||
/atom/proc/RightClick(var/mob/user)
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
Alt click
|
||||
|
||||
@@ -145,11 +145,6 @@
|
||||
alpha = 150
|
||||
blend_mode = 4
|
||||
|
||||
/obj/abstract/screen/fullscreen/hackview_border
|
||||
icon_state = "malfview"
|
||||
layer = HALLUCINATION_LAYER
|
||||
alpha = 255
|
||||
|
||||
/obj/abstract/screen/fullscreen/conversion_border
|
||||
icon_state = "conversionoverlay"
|
||||
layer = HALLUCINATION_LAYER
|
||||
|
||||
@@ -16,12 +16,10 @@
|
||||
var/choice
|
||||
var/next_page = FALSE
|
||||
var/tooltip_desc
|
||||
var/locked = FALSE
|
||||
|
||||
/obj/abstract/screen/radial/slice/MouseEntered(location, control, params)
|
||||
. = ..()
|
||||
if(!locked)
|
||||
icon_state = "radial_slice_focus"
|
||||
icon_state = "radial_slice_focus"
|
||||
if(tooltip_desc)
|
||||
openToolTip(usr,src,params,title = src.name,content = tooltip_desc,theme = parent.tooltip_theme)
|
||||
|
||||
@@ -31,7 +29,7 @@
|
||||
closeToolTip(usr)
|
||||
|
||||
/obj/abstract/screen/radial/slice/Click(location, control, params)
|
||||
if (!parent || locked)
|
||||
if (!parent)//we're not ready yet
|
||||
return
|
||||
if(usr.client == parent.current_user)
|
||||
if(next_page)
|
||||
@@ -42,14 +40,6 @@
|
||||
else
|
||||
parent.element_chosen(choice,usr)
|
||||
|
||||
/obj/abstract/screen/radial/slice/proc/Unlock()
|
||||
locked = FALSE
|
||||
color = null
|
||||
|
||||
/obj/abstract/screen/radial/slice/proc/Lock()
|
||||
locked = TRUE
|
||||
color = grayscale
|
||||
|
||||
/obj/abstract/screen/radial/center
|
||||
name = "Close Menu"
|
||||
icon_state = "radial_center"
|
||||
@@ -69,7 +59,6 @@
|
||||
var/list/choices = list() //List of choice id's
|
||||
var/list/choices_icons = list() //choice_id -> icon
|
||||
var/list/choices_values = list() //choice_id -> choice
|
||||
var/list/choices_locked = list() //choice_id -> choice locked
|
||||
var/list/choices_tooltips = list() //choice_id -> tooltip
|
||||
var/list/page_data = list() //list of choices per page
|
||||
|
||||
@@ -121,8 +110,7 @@
|
||||
if(ending_angle)
|
||||
src.ending_angle = ending_angle
|
||||
|
||||
current_user.radial_menu_anchors += anchor
|
||||
current_user.radial_menus += src
|
||||
current_user.radial_menus += anchor
|
||||
|
||||
close_button = new
|
||||
close_button.parent = src
|
||||
@@ -131,7 +119,6 @@
|
||||
/datum/radial_menu/Destroy()
|
||||
Reset()
|
||||
hide()
|
||||
current_user.radial_menus -= src
|
||||
if(custom_check)
|
||||
qdel(custom_check)
|
||||
custom_check = null
|
||||
@@ -263,8 +250,6 @@
|
||||
E.overlays += choices_icons[choice_id]
|
||||
if(choices_tooltips[choice_id])
|
||||
E.tooltip_desc = choices_tooltips[choice_id]
|
||||
if(choices_locked[choice_id] == TRUE)
|
||||
E.Lock()
|
||||
|
||||
/datum/radial_menu/proc/Reset()
|
||||
choices.Cut()
|
||||
@@ -311,10 +296,6 @@
|
||||
choice_name = E[4]
|
||||
choices_values[id] = choice_name
|
||||
|
||||
if(E.len > 4) // is the choice locked or not
|
||||
var/choice_locked = E[5]
|
||||
choices_locked[id] = choice_locked
|
||||
|
||||
setup_menu()
|
||||
|
||||
|
||||
@@ -377,7 +358,7 @@
|
||||
|
||||
/datum/radial_menu/proc/finish()
|
||||
finished = TRUE
|
||||
current_user.radial_menu_anchors -= anchor
|
||||
current_user.radial_menus -= anchor
|
||||
qdel(src)
|
||||
|
||||
//////////////////
|
||||
@@ -420,19 +401,14 @@
|
||||
Choices should be a list where list keys are movables or text used for element names and return value
|
||||
and list values are movables/icons/images used for element icons
|
||||
*/
|
||||
/proc/show_radial_menu(mob/user,atom/anchor,list/choices,var/icon_file,var/tooltip_theme,var/callback/custom_check,var/uniqueid,var/radius,var/min_angle,var/starting_angle,var/ending_angle,var/recursive = FALSE, var/close_other_menus)
|
||||
/proc/show_radial_menu(mob/user,atom/anchor,list/choices,var/icon_file,var/tooltip_theme,var/callback/custom_check,var/uniqueid,var/radius,var/min_angle,var/starting_angle,var/ending_angle,var/recursive = FALSE)
|
||||
if(!user || !anchor || !length(choices))
|
||||
return
|
||||
|
||||
var/client/current_user = user.client
|
||||
|
||||
if(anchor in current_user.radial_menu_anchors)
|
||||
if(anchor in current_user.radial_menus)
|
||||
return
|
||||
|
||||
if(close_other_menus)
|
||||
for(var/datum/radial_menu/R in current_user.radial_menus)
|
||||
R.finish()
|
||||
|
||||
var/menu_type = choose_radial_menu_type_for_anchor(anchor)
|
||||
|
||||
var/datum/radial_menu/menu = new menu_type(user, anchor, icon_file, tooltip_theme, radius, min_angle, starting_angle, ending_angle)
|
||||
|
||||
@@ -359,16 +359,16 @@ var/global/list/screen_alarms_locs = list(
|
||||
/obj/abstract/screen/alert/robot/apc_hacking
|
||||
icon_state = "hacking"
|
||||
name = "Overriding APC"
|
||||
desc = "You are currently an APC. Click this alert to jump to the APC."
|
||||
var/obj/machinery/power/apc/apc = null
|
||||
desc = "You are currently overriding an APC's programming. Click this alert to jump to the APC."
|
||||
|
||||
/obj/abstract/screen/alert/robot/apc_hacking/Click()
|
||||
..()
|
||||
if(!isAI(usr))
|
||||
return
|
||||
var/mob/living/silicon/ai/A = usr
|
||||
if(A.eyeobj)
|
||||
A.eyeobj.forceMove(apc.loc)
|
||||
if(A.alerts[SCREEN_ALARM_APC_HACKING] == src)
|
||||
if(A.eyeobj && A.malfhacking && A.malfhack)
|
||||
A.eyeobj.forceMove(A.malfhack.loc)
|
||||
|
||||
/obj/abstract/screen/alert/robot/hacked
|
||||
name = "Hacked"
|
||||
|
||||
@@ -174,8 +174,6 @@
|
||||
usr?.client?.show_popup_menus = FALSE
|
||||
|
||||
/obj/abstract/screen/nocontext/MouseExited(location, control, params)
|
||||
if(ismalf(usr))
|
||||
return
|
||||
usr?.client?.show_popup_menus = TRUE
|
||||
|
||||
/obj/abstract/screen/gun
|
||||
|
||||
@@ -34,7 +34,6 @@ var/list/mind_ui_ID2type = list()
|
||||
var/datum/mind_ui/ui = activeUIs[mind_ui]
|
||||
ui.RemoveFromClient()
|
||||
|
||||
|
||||
/datum/mind/proc/DisplayUI(var/ui_ID)
|
||||
var/datum/mind_ui/ui
|
||||
if (ui_ID in activeUIs)
|
||||
@@ -44,10 +43,7 @@ var/list/mind_ui_ID2type = list()
|
||||
return
|
||||
var/ui_type = mind_ui_ID2type[ui_ID]
|
||||
ui = new ui_type(src)
|
||||
if(!ui.Valid())
|
||||
ui.Hide()
|
||||
else
|
||||
ui.Display()
|
||||
ui.Display()
|
||||
|
||||
/datum/mind/proc/HideUI(var/ui_ID)
|
||||
if (ui_ID in activeUIs)
|
||||
@@ -87,11 +83,6 @@ var/list/mind_ui_ID2type = list()
|
||||
if (element)
|
||||
element.UpdateIcon()
|
||||
|
||||
/mob/proc/UpdateAllElementIcons()
|
||||
if (client)
|
||||
for (var/obj/abstract/mind_ui_element/element in client.screen)
|
||||
element.UpdateIcon()
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
@@ -160,7 +151,7 @@ var/list/mind_ui_ID2type = list()
|
||||
var/mob/M = mind.current
|
||||
if (!M.client)
|
||||
return
|
||||
|
||||
|
||||
mind.current.client.screen -= elements
|
||||
|
||||
// Makes every element visible
|
||||
@@ -178,10 +169,7 @@ var/list/mind_ui_ID2type = list()
|
||||
element.Appear()
|
||||
for (var/datum/mind_ui/child in subUIs)
|
||||
if (child.display_with_parent)
|
||||
if(child.Valid())
|
||||
child.Display()
|
||||
else
|
||||
child.Hide()
|
||||
child.Display()
|
||||
|
||||
/datum/mind_ui/proc/Hide(var/override = FALSE)
|
||||
active = FALSE
|
||||
@@ -294,21 +282,6 @@ var/list/mind_ui_ID2type = list()
|
||||
result.overlays += I
|
||||
return result
|
||||
|
||||
/obj/abstract/mind_ui_element/proc/SlideUIElement(var/new_x = 0, var/new_y = 0, var/duration, var/layer = MIND_UI_BACK, var/hide_after = FALSE)
|
||||
invisibility = 101
|
||||
var/image/ui_image = image(icon, src, icon_state, layer)
|
||||
ui_image.overlays = overlays
|
||||
var/mob/U = GetUser()
|
||||
U.client.images |= ui_image
|
||||
animate(ui_image, pixel_x = new_x - offset_x, pixel_y = new_y - offset_y, time = duration)
|
||||
spawn(duration)
|
||||
offset_x = new_x
|
||||
offset_y = new_y
|
||||
UpdateUIScreenLoc()
|
||||
U.client.images -= ui_image
|
||||
if(!hide_after)
|
||||
invisibility = 0
|
||||
|
||||
/obj/abstract/mind_ui_element/failsafe
|
||||
icon_state = "blank"
|
||||
mouse_opacity = 0
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
|
||||
|
||||
/datum/mind_ui/malf
|
||||
uniqueID = "Malf"
|
||||
sub_uis_to_spawn = list(
|
||||
// /datum/mind_ui/malf_top_panel,
|
||||
/datum/mind_ui/malf_left_panel,
|
||||
)
|
||||
|
||||
/datum/mind_ui/malf/Valid()
|
||||
var/mob/living/silicon/A = mind.current
|
||||
if (!istype(A))
|
||||
return FALSE
|
||||
if(ismalf(A))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// LEFT PANEL //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/mind_ui/malf_left_panel
|
||||
uniqueID = "Malf Left Panel"
|
||||
x = "LEFT"
|
||||
element_types_to_spawn = list(
|
||||
/obj/abstract/mind_ui_element/malf_power_gauge,
|
||||
/obj/abstract/mind_ui_element/malf_power_count,
|
||||
)
|
||||
display_with_parent = TRUE
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
||||
/obj/abstract/mind_ui_element/malf_power_gauge
|
||||
name = "Processing Power"
|
||||
icon = 'icons/ui/malf/21x246.dmi'
|
||||
icon_state = "malf_gauge_background"
|
||||
layer = MIND_UI_BACK
|
||||
offset_y = -117
|
||||
|
||||
/obj/abstract/mind_ui_element/malf_power_gauge/UpdateIcon()
|
||||
var/mob/living/silicon/ai/A = GetUser()
|
||||
var/datum/role/malfAI/M = A.mind.GetRole(MALF)
|
||||
if(!istype(A) || !istype(M))
|
||||
return
|
||||
|
||||
// cover
|
||||
var/image/cover = image(icon, src, "malf_gauge_cover")
|
||||
cover.layer = MIND_UI_FRONT
|
||||
|
||||
// gauge
|
||||
var/image/gauge = image('icons/ui/malf/18x200.dmi', src, "power")
|
||||
var/matrix/gauge_matrix = matrix()
|
||||
gauge_matrix.Scale(1,M.processing_power/M.max_processing_power)
|
||||
gauge.transform = gauge_matrix
|
||||
gauge.layer = MIND_UI_BUTTON
|
||||
gauge.pixel_y = round(-79 + 100 * (M.processing_power/M.max_processing_power))
|
||||
|
||||
|
||||
overlays = 0
|
||||
overlays += cover
|
||||
overlays += gauge
|
||||
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
||||
/obj/abstract/mind_ui_element/malf_power_count
|
||||
icon = 'icons/ui/malf/21x246.dmi'
|
||||
icon_state = ""
|
||||
layer = MIND_UI_FRONT+1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/abstract/mind_ui_element/malf_power_count/UpdateIcon()
|
||||
var/mob/living/silicon/ai/A = GetUser()
|
||||
var/datum/role/malfAI/M = A.mind.GetRole(MALF)
|
||||
if(!istype(M) || !istype(A))
|
||||
return
|
||||
overlays.len = 0
|
||||
overlays += String2Image("[round(M.processing_power)]")
|
||||
if(M.processing_power >= 100)
|
||||
offset_x = 0
|
||||
else if(M.processing_power >= 10)
|
||||
offset_x = 3
|
||||
else
|
||||
offset_x = 6
|
||||
UpdateUIScreenLoc()
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user