From 7832dbdba42d74ecd48bafa523ba59cd60eb52ba Mon Sep 17 00:00:00 2001 From: SandPoot Date: Mon, 20 May 2024 18:25:24 -0300 Subject: [PATCH] push --- code/__DEFINES/hud.dm | 1 + code/_onclick/hud/robot.dm | 67 +++++++++++++----- code/_onclick/hud/screen_objects/sprint.dm | 6 +- .../configuration/entries/movespeed.dm | 2 + .../objects/items/robot/robot_upgrades.dm | 6 ++ modular_citadel/icons/ui/screen_cyborg.dmi | Bin 1338 -> 3755 bytes 6 files changed, 61 insertions(+), 21 deletions(-) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 13882afb77..14a3b7dc49 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -145,6 +145,7 @@ #define ui_borg_language_menu "CENTER+4:21,SOUTH+1:5" #define ui_borg_pda_send "CENTER+5:21,SOUTH:5" // To the right of the alert panel #define ui_borg_pda_log "CENTER+6:21,SOUTH:5" +#define ui_borg_movi "CENTER+7:21,SOUTH:5" #define ui_borg_sensor "CENTER-6:16, SOUTH:5" //LEGACY #define ui_borg_thrusters "CENTER-5:16, SOUTH:5" //LEGACY diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 67bc8ad565..f905c31aa1 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -155,12 +155,26 @@ static_inventory += using robit.thruster_button = using +//PDA message + using = new /atom/movable/screen/robot/pda_msg_send + using.screen_loc = ui_borg_pda_send + using.hud = src + static_inventory += using + +//PDA log + using = new /atom/movable/screen/robot/pda_msg_show + using.screen_loc = ui_borg_pda_log + using.hud = src + static_inventory += using + //Intent action_intent = new /atom/movable/screen/act_intent/robot() action_intent.icon_state = mymob.a_intent action_intent.hud = src static_inventory += action_intent + assert_move_intent_ui(owner, TRUE) + //Health healths = new /atom/movable/screen/healths/robot() healths.hud = src @@ -190,6 +204,41 @@ zone_select.update_icon() static_inventory += zone_select +/datum/hud/robot/proc/assert_move_intent_ui(mob/living/silicon/robot/owner = mymob, on_new = FALSE) + var/atom/movable/screen/using + // delete old ones + var/list/atom/movable/screen/victims = list() + victims += locate(/atom/movable/screen/mov_intent) in static_inventory + victims += locate(/atom/movable/screen/sprintbutton) in static_inventory + if(victims) + static_inventory -= victims + if(mymob?.client) + mymob.client.screen -= victims + QDEL_LIST(victims) + + // make new ones + // walk/run + using = new /atom/movable/screen/mov_intent + using.icon = 'modular_citadel/icons/ui/screen_cyborg.dmi' + using.screen_loc = ui_borg_movi + using.hud = src + using.update_icon() + static_inventory += using + if(!on_new) + owner?.client?.screen += using + + if(!CONFIG_GET(flag/sprint_enabled)) + return + + // sprint button + using = new /atom/movable/screen/sprintbutton + using.icon = 'modular_citadel/icons/ui/screen_cyborg.dmi' + using.icon_state = owner.cansprint ? ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint") : "act_sprint_locked" + using.screen_loc = ui_borg_movi + using.hud = src + static_inventory += using + if(!on_new) + owner?.client?.screen += using /datum/hud/proc/toggle_show_robot_modules() if(!iscyborg(mymob)) @@ -344,24 +393,6 @@ return robot.modularInterface?.interact(robot) -//borg pda -/datum/hud/robot/New(mob/owner) - . = ..() - - var/atom/movable/screen/using - - //PDA message - using = new /atom/movable/screen/robot/pda_msg_send - using.screen_loc = ui_borg_pda_send - using.hud = src - static_inventory += using - - //PDA log - using = new /atom/movable/screen/robot/pda_msg_show - using.screen_loc = ui_borg_pda_log - using.hud = src - static_inventory += using - /atom/movable/screen/robot/pda_msg_send name = "PDA - Send Message" icon = 'icons/mob/screen_ai.dmi' diff --git a/code/_onclick/hud/screen_objects/sprint.dm b/code/_onclick/hud/screen_objects/sprint.dm index f8760ddd85..b32973f2dd 100644 --- a/code/_onclick/hud/screen_objects/sprint.dm +++ b/code/_onclick/hud/screen_objects/sprint.dm @@ -9,9 +9,9 @@ var/mutable_appearance/flashy /atom/movable/screen/sprintbutton/Click() - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.default_toggle_sprint() + if(isliving(usr)) + var/mob/living/owner = usr + owner.default_toggle_sprint() /atom/movable/screen/sprintbutton/update_icon_state() var/mob/living/user = hud?.mymob diff --git a/code/controllers/configuration/entries/movespeed.dm b/code/controllers/configuration/entries/movespeed.dm index 18d54da9fc..d61b20b5bb 100644 --- a/code/controllers/configuration/entries/movespeed.dm +++ b/code/controllers/configuration/entries/movespeed.dm @@ -68,6 +68,8 @@ . = ..() for(var/datum/hud/human/H) H.assert_move_intent_ui() + for(var/datum/hud/robot/robot) + robot.assert_move_intent_ui() if(!config_entry_value) // disabled for(var/mob/living/L in world) L.disable_intentional_sprint_mode() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index d8730cc95b..b4917c2500 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -92,6 +92,9 @@ VC = new /obj/effect/proc_holder/silicon/cyborg/vtecControl R.AddAbility(VC) R.cansprint = 0 + var/datum/hud/robot/robohud = R.hud_used + if(istype(robohud)) + robohud.assert_move_intent_ui() /obj/item/borg/upgrade/vtec/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() @@ -99,6 +102,9 @@ R.RemoveAbility(VC) R.vtec = initial(R.vtec) R.cansprint = 1 + var/datum/hud/robot/robohud = R.hud_used + if(istype(robohud)) + robohud.assert_move_intent_ui() /obj/item/borg/upgrade/disablercooler name = "cyborg rapid energy blaster cooling module" diff --git a/modular_citadel/icons/ui/screen_cyborg.dmi b/modular_citadel/icons/ui/screen_cyborg.dmi index bcbfcc1dc2bd6071e41176a847794f59e8a68716..70554cb93fd4d55d451b88b96d8b63a2f27c6132 100644 GIT binary patch literal 3755 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 UYs{({zfZueYleEYI*w2N1E?h{i2wiq literal 1338 zcmV-A1;zS_P))>5R4EIc@PkhC@5VhD6%LhP$($>0RKf05aSRKxeyS6C@7&25SkDW zMi3A{5D=XxD4-}P(I_Zs5D;Z3C|nm8GBPq)SXe(lKRrD?GiLt)ng5vp0L%aYZEbDj zZ@}SFp5alR-9nSwNtWA3m)Ss&*Ex#XiyzzD+tk$5%*@Q)K#}BQs_&c4@T}D9f5h;x z)bOd)?vKsjR;Axhpx>c2-@|SH|NmK)y6JPk?WW4@n#%2$%I$s1+e4S!r$^kaS4xJf z?1RYgs?_kK)bNqi;#jKRy1@65mDKQy)Z$mG-{0Rc zF)`;}x!FCC(b3Tx8yno*+~i)c=47|uOQP31jNGI@-I6Bc!ByY7Ro%2+fFDZ*Bkpc$`yKaB_9`^iy#0_2eo` zEh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3KBSI5{&lFF93-i!&v& zs2C_>$i#`Xq|rVcDZm zNs?r*EIT-e`$kG+0ix3W1Lz<|XagaLVPZ0AuYo<4A?EPxV(c`Tu{CeV1<}u$M}gE?>EN?Ye4c z)%;TVJF#5WG;Pf*zCS2c)^FUrRlR-ZZVgm#)N7_#fDKzsD*G1?px$e>?zbLnJ~RN@ z9gBel&>@{pPjJ@F3lo6_s8k+pRjXT%pFE`i^=*d00yJsraRe1refIpt%gt9b|LYED z)kC1`R(cr5A$S1D_U7%o_qA@f-uTb})!hVUR{F&bH-VAv<0rNEx!>uuJ2rw%zzZ;% zfM)yhwFUs)F3sPts=#Ytv|JejgYN2tcSfW*MsMqWNFstzMm$MJ}M6f>4$|DF2i0z%7Mq@A-3`2LK69LN5286-y;gGKd w-!fR!v~u|$><>cjAEx_*>Ha{N?hgdv4_MxF(s^mb2><{907*qoM6N<$g7u?kO8@`>