Revert "Electric Boogaloo (#31728)" (#31868)

This reverts commit 8bb40feca6.
This commit is contained in:
DamianX
2022-01-19 15:46:18 +01:00
committed by GitHub
parent a0b6b81319
commit c5dffbe635
295 changed files with 1850 additions and 3461 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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()
//------------------------------------------------------------