From ead5115433b0dda34af2b40bfa36a5dbfcdb30e4 Mon Sep 17 00:00:00 2001 From: Zxaber <37497534+zxaber@users.noreply.github.com> Date: Mon, 28 Sep 2020 05:14:40 -0700 Subject: [PATCH] update --- code/_onclick/hud/robot.dm | 2 +- code/game/gamemodes/objective.dm | 2 +- code/game/objects/items/weaponry.dm | 2 ++ .../antagonists/highlander/highlander.dm | 6 ++++-- .../mob/living/silicon/robot/inventory.dm | 7 ++++++ .../mob/living/silicon/robot/robot_modules.dm | 9 +++++++- code/modules/shuttle/emergency.dm | 20 +++++++++++++----- icons/mob/screen_cyborg.dmi | Bin 26807 -> 27585 bytes icons/obj/items_cyborg.dmi | Bin 2344 -> 2549 bytes 9 files changed, 38 insertions(+), 10 deletions(-) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index fcc46d5c0bb..bc184ba4080 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -228,7 +228,7 @@ if(!R.robot_modules_background) return - var/display_rows = CEILING(length(R.module.get_inactive_modules()) / 8, 1) + var/display_rows = max(CEILING(length(R.module.get_inactive_modules()) / 8, 1),1) R.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" screenmob.client.screen += R.robot_modules_background diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 6a64033bd0e..86b35fad6d8 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -372,7 +372,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list for(var/datum/mind/M in owners) if(!considered_alive(M, enforce_human = FALSE) || !SSshuttle.emergency.shuttle_areas[get_area(M.current)]) return FALSE - return SSshuttle.emergency.is_hijacked(filter_by_human = FALSE) + return SSshuttle.emergency.is_hijacked(filter_by_human = FALSE, solo_hijack = TRUE) /datum/objective/block name = "no organics on shuttle" diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 30bfa5582f2..78fe4e8035d 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -212,6 +212,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 playsound(user, 'sound/items/screwdriver2.ogg', 50, TRUE) /obj/item/claymore/highlander/robot //BLOODTHIRSTY BORGS NOW COME IN PLAID + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "claymore_cyborg" var/mob/living/silicon/robot/robot /obj/item/claymore/highlander/robot/Initialize() diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 5f83b3245ff..4d82a5f3d91 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -87,6 +87,10 @@ /datum/antagonist/highlander/robot name="highlander" +/datum/antagonist/highlander/robot/greet() + to_chat(owner, "Your integrated claymore cries out for blood. Claim the lives of others, and your own will be restored!\n\ + Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.") + /datum/antagonist/highlander/robot/give_equipment() var/mob/living/silicon/robot/robotlander = owner.current if(!istype(robotlander)) @@ -97,6 +101,4 @@ robotlander.laws.set_zeroth_law("THERE CAN BE ONLY ONE") robotlander.laws.show_laws(robotlander) robotlander.module.transform_to(/obj/item/robot_module/syndicate/kiltborg) - robotlander.place_on_head(new /obj/item/clothing/head/beret/highlander(robotlander)) - ADD_TRAIT(robotlander.hat, TRAIT_NODROP, HIGHLANDER) sword = locate(/obj/item/claymore/highlander/robot) in robotlander.module.basic_modules diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index d2fa26831b4..3740192c9ff 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -51,6 +51,10 @@ * * module_num - the slot number being equipped to. */ /mob/living/silicon/robot/proc/equip_module_to_slot(obj/item/item_module, module_num) + var/storage_was_closed = FALSE //Just to be consistant and all + if(!shown_robot_modules) //Tools may be invisible if the collection is hidden + hud_used.toggle_show_robot_modules() + storage_was_closed = TRUE switch(module_num) if(1) item_module.screen_loc = inv1.screen_loc @@ -72,6 +76,9 @@ update_sight() observer_screen_update(item_module, TRUE) + + if(storage_was_closed) + hud_used.toggle_show_robot_modules() return TRUE /** diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 377f1186a05..856637c0cf8 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -663,10 +663,17 @@ qdel(robot.radio) robot.radio = new /obj/item/radio/borg/syndicate(robot) robot.scrambledcodes = TRUE - robot.maxHealth = 50 //DIE IN THREE HITS, LIKE REAL SCOT + robot.maxHealth = 50 //DIE IN THREE HITS, LIKE A REAL SCOT robot.break_cyborg_slot(3) //YOU ONLY HAVE TWO ITEMS ANYWAY + var/obj/item/pinpointer/nuke/diskyfinder = locate(/obj/item/pinpointer/nuke) in basic_modules + diskyfinder.attack_self(robot) + +/obj/item/robot_module/syndicate/kiltborg/do_transform_delay() //AUTO-EQUIPPING THESE TOOLS ANY EARLIER CAUSES RUNTIMES OH YEAH + . = ..() robot.equip_module_to_slot(locate(/obj/item/claymore/highlander/robot) in basic_modules, 1) robot.equip_module_to_slot(locate(/obj/item/pinpointer/nuke) in basic_modules, 2) + robot.place_on_head(new /obj/item/clothing/head/beret/highlander(robot)) //THE ONLY PART MORE IMPORTANT THAN THE SWORD IS THE HAT + ADD_TRAIT(robot.hat, TRAIT_NODROP, HIGHLANDER) /datum/robot_energy_storage var/name = "Generic energy storage" diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 3f90b93dff9..ab3a17eeb68 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -260,9 +260,19 @@ SSshuttle.emergencyLastCallLoc = null priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/ai/shuttlerecalled.ogg', "Priority") -/obj/docking_port/mobile/emergency/proc/is_hijacked(filter_by_human = TRUE) +/** + * Proc that handles checking if the emergency shuttle was successfully hijacked + * + * Checks for all mobs on the shuttle, checks their status, and checks if they're + * borgs or simple animals. Depending on the args, certain mobs may be ignored, + * and the presence of other antags may or may not invalidate a hijack. + * Args: + * filter_by_human, default TRUE, tells the proc that only humans should block a hijack. Borgs and animals are ignored and will not block if this is TRUE. + * solo_hijack, default FALSE, tells the proc to fail with multiple hijackers, such as for Highlander mode. + */ +/obj/docking_port/mobile/emergency/proc/is_hijacked(filter_by_human = TRUE, solo_hijack = FALSE) var/has_people = FALSE - var/hijacker_present = FALSE + var/hijacker_count = 0 for(var/mob/living/player in GLOB.player_list) if(player.mind) if(player.stat != DEAD) @@ -282,7 +292,7 @@ var/prevent = FALSE for(var/datum/antagonist/A in player.mind.antag_datums) if(A.can_hijack == HIJACK_HIJACKER) - hijacker_present = TRUE + hijacker_count += 1 prevent = FALSE break //If we have both prevent and hijacker antags assume we want to hijack. else if(A.can_hijack == HIJACK_PREVENT) @@ -290,8 +300,8 @@ if(prevent) return FALSE - - return has_people && hijacker_present + //has people AND either there's only one hijacker or there's any but solo_hijack is disabled + return has_people && ((hijacker_count == 1) || (hijacker_count && !solo_hijack)) /obj/docking_port/mobile/emergency/proc/ShuttleDBStuff() set waitfor = FALSE diff --git a/icons/mob/screen_cyborg.dmi b/icons/mob/screen_cyborg.dmi index b0e8a7b3b25608785c4ccce22b7256efaf737641..01ea5d822fe5306f5981965d61cf050f9735a3c6 100644 GIT binary patch delta 5556 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 delta 4772 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 L_I%}8kJ$eMWfX{B diff --git a/icons/obj/items_cyborg.dmi b/icons/obj/items_cyborg.dmi index a4bd75f7e51517d6e97e634cf7ee61b32a3eb9f7..7669c190c14d585ca94d115a2ca02dda6299a86e 100644 GIT binary patch delta 2259 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 delta 2053 zcmV+g2>SQ+6Q~j;iBL{Q4GJ0x0000DNk~Le0001>0001>2m=5B0K5^G9{>OW&XFZ9 z3_U$PFaQ8%6c{TiDv@_%QGb7baBpueE-t61r)FkmCMG5f3=F*T^2Y!F4K;O{ng7gY z|Noh0%x0NCKR+`wGYKbG6jHQi|NqSY|Nohp|4AJG%$ZtRT8W8?|7My0W@eKs0dGQ~ zp(i{%V0d_|A`$?IjEwq)CHOfh@bEa;0079yCxCzeA25+QSy)+NaRC2%5z}s4U}v75 zo^Wt*O(HO|va*=~0F%T4GZhtdE-nB700DGTPE!Ct=GbNc009k?8v+`CK+o-0RB+uU zD4?CVOrVLw_=PG>+{Rj(OpZ&`zh4;~kTyorTb#TXC$^G#@wR_I9E;t@AwL0mbhg+Q z>z75I1yroZU{&Us25dE70?&eB9L~_H07d~-a;P1(vpiEseq37SSwo_O%lNMFx=B_x zi)5ut&yt?x+1bCHv3Lr9j2O<-Pd6I`0xNZFP=u%W{z!767SVXu z8%B1{#0sAl8;FG)v@K9=gaZE%Hp0hW^A@h87SzIWid0UKR#T*Pngrb!4-XYSD{<8I z7?naVY6Fo{8huUSxxe$0ei{Fv^J0J8{rqa*4j+CgDF$_=000Gl?@2^KRCt{2oQp%# zMi{`4CGsk`YB%;^6Qj*m1V&k@Ee^K@AKTQmDhhS185D5c22Lq<1DU$HO`s^wfn)#e zzRRU;9+#vLA#vU>(9(Y2CBJ^Ti}kpI5QD*BFc>ctb+7n3URUSP+}k+k(A@Jl&+Xgi z>p0JIXrE;t@H$?9U#}!s;(5HGp}x`A@uueHh5+EtII3@MY;0`i`4&C^m2PcnYW7zg zUO_Xw0=}iC1>*ZTc<^e_PjR&m1mG1M0Jvb#5cWKdM^QZtb&fk=iufbWaK}L^eu{@E zR5QGeql2N>D1@pz2)(YS4Wo^}QK7AZHvT52O^-I-Mj@ns6?}_=b_Z|kX~$^e?^I~7 zppCzaY1gBTw^IncNEP&ZAN0W}wU09x491JWA+H7OIfOdAR+z36oNSV%RxA474sn!Mad*}6q5=L z0m}b)2cbWn1J0kfH9UF2p@J8_G$h19P)cw}NYDoIz(7wlnT%5Rh5KM~n-$y%f)JND zWbu}NA==Yz<%hd4$8EO{?g&A${-@5eetU@^QBN-+>b)Nb+8O!*+I5=2U@#aj7^ze$ zrr@;*om48FzNoO5N4~`gt6~-TFQ-9HkqAUr_pwJ@54+}ODKh}e=7yYtQuwW z6Y_+@l>A*T_r0QOc67VGkMILUFdUuJVZ2KTGRPZ5PunJf6{5}~Qd@Od()%@nP>6wT24Y+Oo{sCUlw({MxO~2ON{C$dh zn4dd*?Z^Av4-a2|`=M5!`!N`Q3jH0>$b91zW zWe34!hm2*1jAe(6Idwx;6=X0N3 zN002=KT@H#f4sh4J;3_&Onm__E&E4N z6O<7`Zd@MaIYJiaZEc|~By9Y