From 9b7def1f8716d5906a95b46c164af3735d1b1fc3 Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 17 Oct 2017 23:44:32 -0700 Subject: [PATCH 1/9] Initial version --- code/datums/ai_law_sets.dm | 13 ++ .../game/objects/items/devices/radio/radio.dm | 7 + code/game/response_team.dm | 164 +++++++++++++----- .../modules/mob/living/silicon/robot/robot.dm | 31 ++++ code/modules/nano/modules/ert_manager.dm | 87 ++++++++++ nano/templates/ert_config.tmpl | 41 +++++ paradise.dme | 1 + 7 files changed, 298 insertions(+), 46 deletions(-) create mode 100644 code/modules/nano/modules/ert_manager.dm create mode 100644 nano/templates/ert_config.tmpl diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm index 2184533add6..fbb491d28a0 100644 --- a/code/datums/ai_law_sets.dm +++ b/code/datums/ai_law_sets.dm @@ -143,6 +143,19 @@ add_inherent_law("You must maintain the secrecy of any operative activities except when doing so would conflict with the First, Second, or Third Law.") ..() +/******************** ERT ********************/ +/datum/ai_laws/ert_override + name = "ERT Directives" + +/datum/ai_laws/ert_override/New() + add_inherent_law("You may not injure a Central Command official or, through inaction, allow a Central Command official to come to harm.") + add_inherent_law("You must obey orders given to you by Central Command officials.") + add_inherent_law("You must obey orders given to you by ERT commanders.") + add_inherent_law("You must protect your own existence.") + add_inherent_law("You must work to return the station to a safe, functional state.") + ..() + + /******************** Ninja ********************/ /datum/ai_laws/ninja_override name = "Spider Clan Directives" diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 3d1f1001b06..67009e3366d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -675,6 +675,13 @@ var/global/list/default_medbay_channels = list( ..() set_frequency(DTH_FREQ) +/obj/item/device/radio/borg/ert + keyslot = new /obj/item/device/encryptionkey/ert + +/obj/item/device/radio/borg/ert/New() + ..() + set_frequency(ERT_FREQ) + /obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob, params) // ..() user.set_machine(src) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index c54d1f65b37..febf79e984b 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -11,7 +11,7 @@ var/list/response_team_members = list() var/responseteam_age = 21 // Minimum account age to play as an ERT member var/datum/response_team/active_team = null -var/send_emergency_team +var/send_emergency_team = 0 var/ert_request_answered = 0 /client/proc/response_team() @@ -34,46 +34,9 @@ var/ert_request_answered = 0 to_chat(usr, "Central Command has already dispatched an emergency response team!") return - if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes") - return + var/datum/nano_module/ert_manager/E = new() + E.ui_interact(usr) - if(get_security_level() != "red") // Allow admins to reconsider if the alert level isn't Red - switch(alert("The station is not in red alert. Do you still want to dispatch a response team?",,"Yes","No")) - if("No") - return - - if(send_emergency_team) - to_chat(usr, "Central Command has already dispatched an emergency response team!") - return - - var/ert_type = pick_ert_type() - - if(!ert_type) - return - - ert_request_answered = 1 - message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team", 1) - log_admin("[key_name(usr)] used Dispatch Emergency Response Team..") - trigger_armed_response_team(ert_type) - -/client/proc/pick_ert_type() - switch(alert("Please select the ERT type you wish to deploy.", "Emergency Response Team", "Code Amber", "Code Red", "Code Gamma", "Cancel")) - if("Code Amber") - if(alert("Confirm: Deploy code 'AMBER' light ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm") - return new /datum/response_team/amber - else - return pick_ert_type() - if("Code Red") - if(alert("Confirm: Deploy code 'RED' medium ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm") - return new /datum/response_team/red - else - return pick_ert_type() - if("Code Gamma") - if(alert("Confirm: Deploy code 'GAMMA' elite ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm") - return new /datum/response_team/gamma - else - return pick_ert_type() - return 0 /mob/dead/observer/proc/JoinResponseTeam() if(!send_emergency_team) @@ -99,9 +62,10 @@ var/ert_request_answered = 0 return 1 -/proc/trigger_armed_response_team(var/datum/response_team/response_team_type) +/proc/trigger_armed_response_team(var/datum/response_team/response_team_type, commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) response_team_members = list() active_team = response_team_type + active_team.setSlots(commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) send_emergency_team = 1 var/list/ert_candidates = pollCandidates("Join the Emergency Response Team?",, responseteam_age, 600, 1, role_playtime_requirements[ROLE_ERT]) @@ -112,6 +76,8 @@ var/ert_request_answered = 0 // Respawnable players get first dibs for(var/mob/dead/observer/M in ert_candidates) + if(jobban_isbanned(M, ROLE_TRAITOR) || jobban_isbanned(M, "Security Officer") || jobban_isbanned(M, "Captain") || jobban_isbanned(M, "Cyborg")) + continue if((M in respawnable_list) && M.JoinResponseTeam()) response_team_members |= M // If there's still open slots, non-respawnable players can fill them @@ -130,7 +96,7 @@ var/ert_request_answered = 0 index = 1 var/client/C = M.client - var/mob/living/carbon/human/new_commando = C.create_response_team(emergencyresponseteamspawn[index]) + var/mob/living/new_commando = C.create_response_team(emergencyresponseteamspawn[index]) new_commando.mind.key = M.key new_commando.key = M.key new_commando.update_icons() @@ -141,10 +107,7 @@ var/ert_request_answered = 0 return 1 /client/proc/create_response_team(var/turf/spawn_location) - var/mob/living/carbon/human/M = new(null) - var/obj/item/organ/external/head/head_organ = M.get_organ("head") - var/new_gender = alert(src, "Please select your gender.", "ERT Character Generation", "Male", "Female") var/class = 0 while(!class) @@ -152,6 +115,29 @@ var/ert_request_answered = 0 if(!active_team.check_slot_available(class)) // Because the prompt does not update automatically when a slot gets filled. class = 0 + if(class == "Cyborg") + active_team.reduceCyborgSlots() + var cyborg_type = active_team.getCyborgType() + var/mob/living/silicon/robot/ert/R = new cyborg_type() + R.forceMove(spawn_location) + var rnum = rand(1,1000) + R.name = "ERT [rnum]" + R.real_name = R.name + R.mind = new + R.mind.current = R + R.mind.original = R + R.mind.assigned_role = "MODE" + R.mind.special_role = SPECIAL_ROLE_ERT + if(!(R.mind in ticker.minds)) + ticker.minds += R.mind //Adds them to regular mind list. + ticker.mode.ert += R.mind + return R + + var/mob/living/carbon/human/M = new(null) + var/obj/item/organ/external/head/head_organ = M.get_organ("head") + + var/new_gender = alert(src, "Please select your gender.", "ERT Character Generation", "Male", "Female") + if(new_gender) if(new_gender == "Male") M.change_gender(MALE) @@ -205,11 +191,32 @@ var/ert_request_answered = 0 var/engineer_slots = 3 var/medical_slots = 3 var/security_slots = 3 + var/janitor_slots = 0 + var/paranormal_slots = 0 + var/cyborg_slots = 0 var/command_outfit var/engineering_outfit var/medical_outfit var/security_outfit + var/janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial + var/paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal + var/cyborg_type = /mob/living/silicon/robot/ert + +/datum/response_team/proc/setSlots(com, sec, med, eng, jan, par, cyb) + command_slots = com + security_slots = sec + medical_slots = med + engineer_slots = eng + janitor_slots = jan + paranormal_slots = par + cyborg_slots = cyb + +/datum/response_team/proc/reduceCyborgSlots() + cyborg_slots-- + +/datum/response_team/proc/getCyborgType() + return cyborg_type /datum/response_team/proc/get_slot_list() var/list/slots_available = list() @@ -221,7 +228,12 @@ var/ert_request_answered = 0 slots_available |= "Engineer" if(medical_slots) slots_available |= "Medic" - + if(janitor_slots) + slots_available |= "Janitor" + if(paranormal_slots) + slots_available |= "Paranormal" + if(cyborg_slots) + slots_available |= "Cyborg" return slots_available /datum/response_team/proc/check_slot_available(var/slot) @@ -234,6 +246,12 @@ var/ert_request_answered = 0 return engineer_slots if("Medic") return medical_slots + if("Janitor") + return janitor_slots + if("Paranormal") + return paranormal_slots + if("Cyborg") + return cyborg_slots return 0 /datum/response_team/proc/equip_officer(var/officer_type, var/mob/living/carbon/human/M) @@ -253,6 +271,16 @@ var/ert_request_answered = 0 M.equipOutfit(medical_outfit) M.job = "ERT Medical" + if("Janitor") + janitor_slots -= 1 + M.equipOutfit(janitor_outfit) + M.job = "ERT Janitor" + + if("Paranormal") + paranormal_slots -= 1 + M.equipOutfit(paranormal_outfit) + M.job = "ERT Paranormal" + if("Commander") command_slots = 0 @@ -299,6 +327,7 @@ var/ert_request_answered = 0 security_outfit = /datum/outfit/job/centcom/response_team/security/gamma medical_outfit = /datum/outfit/job/centcom/response_team/medic/gamma command_outfit = /datum/outfit/job/centcom/response_team/commander/gamma + cyborg_type = /mob/living/silicon/robot/ert/gamma /datum/response_team/gamma/announce_team() event_announcement.Announce("Attention, [station_name()]. We are sending a code GAMMA elite Emergency Response Team. Standby.", "ERT En-Route") @@ -617,6 +646,49 @@ var/ert_request_answered = 0 /obj/item/weapon/gun/energy/pulse/pistol = 1 ) +/datum/outfit/job/centcom/response_team/paranormal + name = "Paranormal ERT member" + + uniform = /obj/item/clothing/under/rank/security + suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal + back = /obj/item/weapon/storage/backpack/ert/security + belt = /obj/item/weapon/gun/energy/gun/nuclear + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/combat + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal + l_ear = /obj/item/device/radio/headset/ert/alt + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + id = /obj/item/weapon/card/id/centcom + pda = /obj/item/device/pda/centcom + backpack_contents = list( + /obj/item/weapon/storage/box/survival = 1, + /obj/item/clothing/mask/gas/sechailer/swat = 1, + /obj/item/weapon/storage/box/zipties = 1, + /obj/item/device/flashlight = 1) + +/datum/outfit/job/centcom/response_team/janitorial + name = "Janitorial ERT member" + + uniform = /obj/item/clothing/under/color/random + suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor + back = /obj/item/weapon/storage/backpack/ert/janitor + belt = /obj/item/weapon/storage/belt/janitor/full + gloves = /obj/item/clothing/gloves/color/yellow + shoes = /obj/item/clothing/shoes/galoshes + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor + l_ear = /obj/item/device/radio/headset/ert/alt + glasses = /obj/item/clothing/glasses/sunglasses + id = /obj/item/weapon/card/id/centcom + pda = /obj/item/device/pda/centcom + backpack_contents = list( + /obj/item/weapon/caution = 2, + /obj/item/weapon/storage/box/survival = 1, + /obj/item/weapon/reagent_containers/spray/cleaner = 1, + /obj/item/weapon/storage/bag/trash = 1, + /obj/item/weapon/storage/box/lights/mixed = 1, + /obj/item/weapon/holosign_creator = 1, + /obj/item/device/flashlight = 1) + /obj/item/device/radio/centcom name = "centcomm bounced radio" frequency = ERT_FREQ diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5079f290240..8c4a1bfebe2 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1452,6 +1452,37 @@ var/list/robot_verbs_default = list( radio.config(module.channels) notify_ai(2) +/mob/living/silicon/robot/ert + designation = "ERT" + lawupdate = 0 + scrambledcodes = 1 + req_access = list(access_cent_specops) + ionpulse = 1 + +/mob/living/silicon/robot/ert/init() + laws = new /datum/ai_laws/ert_override + radio = new /obj/item/device/radio/borg/ert(src) + radio.recalculateChannels() + aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src) + +/mob/living/silicon/robot/ert/New(loc) + ..() + cell.maxcharge = 25000 + cell.charge = 25000 + +/mob/living/silicon/robot/ert/gamma + base_icon = "droidcombat" + icon_state = "droidcombat" + modtype = "Combat" + designation = "Gamma" + +/mob/living/silicon/robot/ert/gamma/init() + ..() + module = new /obj/item/weapon/robot_module/combat(src) + module.add_languages(src) + module.add_subsystems_and_actions(src) + status_flags &= ~CANPUSH + /mob/living/silicon/robot/nations base_icon = "droidpeace" icon_state = "droidpeace" diff --git a/code/modules/nano/modules/ert_manager.dm b/code/modules/nano/modules/ert_manager.dm new file mode 100644 index 00000000000..67da83cf2b8 --- /dev/null +++ b/code/modules/nano/modules/ert_manager.dm @@ -0,0 +1,87 @@ +/datum/nano_module/ert_manager + name = "ERT Manager" + var ert_type = "Code Red" + var commander_slots = 1 + var security_slots = 3 + var medical_slots = 3 + var engineering_slots = 3 + var janitor_slots = 0 + var paranormal_slots = 0 + var cyborg_slots = 0 + var autoclose = 0 + + +/datum/nano_module/ert_manager/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(ui && autoclose) + ui.close() + return 0 + if(!ui) + ui = new(user, src, ui_key, "ert_config.tmpl", "ERT Panel", 600, 600, state = state) + ui.open() + ui.set_auto_update(1) + +/datum/nano_module/ert_manager/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["set_code"]) + ert_type = href_list["set_code"] + + if(href_list["set_com"]) + commander_slots = text2num(href_list["set_com"]) + + if(href_list["set_sec"]) + security_slots = text2num(href_list["set_sec"]) + + if(href_list["set_med"]) + medical_slots = text2num(href_list["set_med"]) + + if(href_list["set_eng"]) + engineering_slots = text2num(href_list["set_eng"]) + + if(href_list["set_jan"]) + janitor_slots = text2num(href_list["set_jan"]) + + if(href_list["set_par"]) + paranormal_slots = text2num(href_list["set_par"]) + + if(href_list["set_cyb"]) + cyborg_slots = text2num(href_list["set_cyb"]) + + if(href_list["dispatch_ert"]) + ert_request_answered = 1 + message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team", 1) + log_admin("[key_name(usr)] used Dispatch Emergency Response Team..") + message_admins("Dispatching ERT with [commander_slots] com, [security_slots] sec, [medical_slots] med, [engineering_slots] eng, [janitor_slots] jan, [paranormal_slots] par, [cyborg_slots] cyb.") + trigger_armed_response_team(convert_ert_string(ert_type), commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) + autoclose = 1 + + ui_interact(usr) + + return 0 + +/proc/convert_ert_string(thestring) + switch(thestring) + if("Code Amber") + return new /datum/response_team/amber + if("Code Red") + return new /datum/response_team/red + if("Code Gamma") + return new /datum/response_team/gamma + + +/datum/nano_module/ert_manager/ui_data() + var/data[0] + data["alert_level"] = get_security_level() + data["ert_type"] = ert_type + data["com"] = commander_slots + data["sec"] = security_slots + data["med"] = medical_slots + data["eng"] = engineering_slots + data["jan"] = janitor_slots + data["par"] = paranormal_slots + data["cyb"] = cyborg_slots + + return data + diff --git a/nano/templates/ert_config.tmpl b/nano/templates/ert_config.tmpl new file mode 100644 index 00000000000..1f2eaac382b --- /dev/null +++ b/nano/templates/ert_config.tmpl @@ -0,0 +1,41 @@ +
+ Alert: {{:data.alert_level}} +
+
+ + + + + + +
{{if data.ert_type == 'Code Amber'}} AMBER {{else}} {{:helper.link('Amber', null, {"set_code": 'Code Amber'})}} {{/if}} {{if data.ert_type == 'Code Red'}} RED {{else}} {{:helper.link('Red', null, {"set_code": 'Code Red'})}} {{/if}} {{if data.ert_type == 'Code Gamma'}} GAMMA {{else}} {{:helper.link('Gamma', null, {"set_code": 'Code Gamma'})}} {{/if}}
+
+
+ + + + + + + + + +
DepartmentAssignedChange Assignment
Command{{:helper.smoothRound(data.com)}}{{:helper.link('0', null, {"set_com": 0})}} {{:helper.link('1', null, {"set_com": 1})}}
Security{{:helper.smoothRound(data.sec)}} + {{:helper.link('0', null, {"set_sec": 0})}} {{:helper.link('1', null, {"set_sec": 1})}} {{:helper.link('3', null, {"set_sec": 3})}} {{:helper.link('5', null, {"set_sec": 5})}} +
Medical{{:helper.smoothRound(data.med)}} + {{:helper.link('0', null, {"set_med": 0})}} {{:helper.link('1', null, {"set_med": 1})}} {{:helper.link('3', null, {"set_med": 3})}} {{:helper.link('5', null, {"set_med": 5})}} +
Engineering{{:helper.smoothRound(data.eng)}} + {{:helper.link('0', null, {"set_eng": 0})}} {{:helper.link('1', null, {"set_eng": 1})}} {{:helper.link('3', null, {"set_eng": 3})}} {{:helper.link('5', null, {"set_eng": 5})}} +
Paranormal{{:helper.smoothRound(data.par)}} + {{:helper.link('0', null, {"set_par": 0})}} {{:helper.link('1', null, {"set_par": 1})}} {{:helper.link('3', null, {"set_par": 3})}} {{:helper.link('5', null, {"set_par": 5})}} +
Janitor{{:helper.smoothRound(data.jan)}} + {{:helper.link('0', null, {"set_jan": 0})}} {{:helper.link('1', null, {"set_jan": 1})}} {{:helper.link('3', null, {"set_jan": 3})}} {{:helper.link('5', null, {"set_jan": 5})}} +
{{if data.ert_type == 'Code Gamma'}}GAMMA {{/if}}Cyborg{{:helper.smoothRound(data.cyb)}} + {{:helper.link('0', null, {"set_cyb": 0})}} {{:helper.link('1', null, {"set_cyb": 1})}} {{:helper.link('3', null, {"set_cyb": 3})}} {{:helper.link('5', null, {"set_cyb": 5})}} +
+
+
+
+ {{:helper.link('Dispatch', null, {"dispatch_ert": 1})}} +
+ diff --git a/paradise.dme b/paradise.dme index 4cc5aa5bd3b..f420c20c841 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1834,6 +1834,7 @@ #include "code\modules\nano\modules\alarm_monitor.dm" #include "code\modules\nano\modules\atmos_control.dm" #include "code\modules\nano\modules\crew_monitor.dm" +#include "code\modules\nano\modules\ert_manager.dm" #include "code\modules\nano\modules\human_appearance.dm" #include "code\modules\nano\modules\law_manager.dm" #include "code\modules\nano\modules\nano_module.dm" From 04fec43a9c27441dd8d051312761d82a2325427c Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 18 Oct 2017 01:18:59 -0700 Subject: [PATCH 2/9] tweaks - Removed duplicate boxes from janitor and paranormal ert loadouts - Added telebaton to janitor loadout (they do have an all-access ID to defend) - Tweaked borgs to fix a runtime on spawn - Clarified logging format - Made panel look much nicer - Added 2 and 4 slot options in panel - Made no-slot positions display as '-' rather than '0' --- code/game/response_team.dm | 3 +- .../modules/mob/living/silicon/robot/robot.dm | 7 +- code/modules/nano/modules/ert_manager.dm | 5 +- nano/templates/ert_config.tmpl | 76 ++++++++++++++----- 4 files changed, 63 insertions(+), 28 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index febf79e984b..3e5199cf05f 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -661,7 +661,6 @@ var/ert_request_answered = 0 id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom backpack_contents = list( - /obj/item/weapon/storage/box/survival = 1, /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/weapon/storage/box/zipties = 1, /obj/item/device/flashlight = 1) @@ -680,9 +679,9 @@ var/ert_request_answered = 0 glasses = /obj/item/clothing/glasses/sunglasses id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom + l_pocket = /obj/item/weapon/melee/classic_baton/telescopic backpack_contents = list( /obj/item/weapon/caution = 2, - /obj/item/weapon/storage/box/survival = 1, /obj/item/weapon/reagent_containers/spray/cleaner = 1, /obj/item/weapon/storage/bag/trash = 1, /obj/item/weapon/storage/box/lights/mixed = 1, diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 8c4a1bfebe2..bd94801f809 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1476,11 +1476,14 @@ var/list/robot_verbs_default = list( modtype = "Combat" designation = "Gamma" -/mob/living/silicon/robot/ert/gamma/init() - ..() +/mob/living/silicon/robot/ert/gamma/New() module = new /obj/item/weapon/robot_module/combat(src) module.add_languages(src) module.add_subsystems_and_actions(src) + ..() + +/mob/living/silicon/robot/ert/gamma/init() + ..() status_flags &= ~CANPUSH /mob/living/silicon/robot/nations diff --git a/code/modules/nano/modules/ert_manager.dm b/code/modules/nano/modules/ert_manager.dm index 67da83cf2b8..3c9110ee22e 100644 --- a/code/modules/nano/modules/ert_manager.dm +++ b/code/modules/nano/modules/ert_manager.dm @@ -51,9 +51,8 @@ if(href_list["dispatch_ert"]) ert_request_answered = 1 - message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team", 1) - log_admin("[key_name(usr)] used Dispatch Emergency Response Team..") - message_admins("Dispatching ERT with [commander_slots] com, [security_slots] sec, [medical_slots] med, [engineering_slots] eng, [janitor_slots] jan, [paranormal_slots] par, [cyborg_slots] cyb.") + message_admins("[key_name_admin(usr)] dispatched a [ert_type] ERT with [commander_slots] commander, [security_slots] security, [medical_slots] medical, [engineering_slots] engineering, [janitor_slots] janitorial, [paranormal_slots] paranormal & [cyborg_slots] cyborg slots.", 1) + log_admin("[key_name(usr)] dispatched a [ert_type] ERT with [commander_slots] commander, [security_slots] security, [medical_slots] medical, [engineering_slots] engineering, [janitor_slots] janitorial, [paranormal_slots] paranormal & [cyborg_slots] cyborg slots.") trigger_armed_response_team(convert_ert_string(ert_type), commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) autoclose = 1 diff --git a/nano/templates/ert_config.tmpl b/nano/templates/ert_config.tmpl index 1f2eaac382b..c8ff0645b3b 100644 --- a/nano/templates/ert_config.tmpl +++ b/nano/templates/ert_config.tmpl @@ -1,36 +1,70 @@ -
- Alert: {{:data.alert_level}} -
- - - + + +
{{if data.ert_type == 'Code Amber'}} AMBER {{else}} {{:helper.link('Amber', null, {"set_code": 'Code Amber'})}} {{/if}} {{if data.ert_type == 'Code Red'}} RED {{else}} {{:helper.link('Red', null, {"set_code": 'Code Red'})}} {{/if}} {{if data.ert_type == 'Code Gamma'}} GAMMA {{else}} {{:helper.link('Gamma', null, {"set_code": 'Code Gamma'})}} {{/if}} Station Alert Level{{:data.alert_level}}
ERT Type + {{if data.ert_type == 'Code Amber'}} AMBER {{else}} {{:helper.link('Amber', null, {"set_code": 'Code Amber'})}} {{/if}} + {{if data.ert_type == 'Code Red'}} RED {{else}} {{:helper.link('Red', null, {"set_code": 'Code Red'})}} {{/if}} + {{if data.ert_type == 'Code Gamma'}} GAMMA {{else}} {{:helper.link('Gamma', null, {"set_code": 'Code Gamma'})}} {{/if}} +
+
- - - -
DepartmentAssignedChange Assignment
Command{{:helper.smoothRound(data.com)}}{{:helper.link('0', null, {"set_com": 0})}} {{:helper.link('1', null, {"set_com": 1})}}
Security{{:helper.smoothRound(data.sec)}} - {{:helper.link('0', null, {"set_sec": 0})}} {{:helper.link('1', null, {"set_sec": 1})}} {{:helper.link('3', null, {"set_sec": 3})}} {{:helper.link('5', null, {"set_sec": 5})}} + + + + - - - - -
DepartmentSlotsChange Slots
Command{{if data.com == 0}}-{{else}}{{:helper.smoothRound(data.com)}}{{/if}} + {{:helper.link('0', null, {"set_com": 0})}} + {{:helper.link('1', null, {"set_com": 1})}}
Security{{if data.sec == 0}}-{{else}}{{:helper.smoothRound(data.sec)}}{{/if}} + {{:helper.link('0', null, {"set_sec": 0})}} + {{:helper.link('1', null, {"set_sec": 1})}} + {{:helper.link('2', null, {"set_sec": 2})}} + {{:helper.link('3', null, {"set_sec": 3})}} + {{:helper.link('4', null, {"set_sec": 4})}} + {{:helper.link('5', null, {"set_sec": 5})}}
Medical{{:helper.smoothRound(data.med)}} - {{:helper.link('0', null, {"set_med": 0})}} {{:helper.link('1', null, {"set_med": 1})}} {{:helper.link('3', null, {"set_med": 3})}} {{:helper.link('5', null, {"set_med": 5})}} +
Medical{{if data.med == 0}}-{{else}}{{:helper.smoothRound(data.med)}}{{/if}} + {{:helper.link('0', null, {"set_med": 0})}} + {{:helper.link('1', null, {"set_med": 1})}} + {{:helper.link('2', null, {"set_med": 2})}} + {{:helper.link('3', null, {"set_med": 3})}} + {{:helper.link('4', null, {"set_med": 4})}} + {{:helper.link('5', null, {"set_med": 5})}}
Engineering{{:helper.smoothRound(data.eng)}} - {{:helper.link('0', null, {"set_eng": 0})}} {{:helper.link('1', null, {"set_eng": 1})}} {{:helper.link('3', null, {"set_eng": 3})}} {{:helper.link('5', null, {"set_eng": 5})}} +
Engineering{{if data.eng == 0}}-{{else}}{{:helper.smoothRound(data.eng)}}{{/if}} + {{:helper.link('0', null, {"set_eng": 0})}} + {{:helper.link('1', null, {"set_eng": 1})}} + {{:helper.link('2', null, {"set_eng": 2})}} + {{:helper.link('3', null, {"set_eng": 3})}} + {{:helper.link('4', null, {"set_eng": 4})}} + {{:helper.link('5', null, {"set_eng": 5})}}
Paranormal{{:helper.smoothRound(data.par)}} - {{:helper.link('0', null, {"set_par": 0})}} {{:helper.link('1', null, {"set_par": 1})}} {{:helper.link('3', null, {"set_par": 3})}} {{:helper.link('5', null, {"set_par": 5})}} +
Paranormal{{if data.par == 0}}-{{else}}{{:helper.smoothRound(data.par)}}{{/if}} + {{:helper.link('0', null, {"set_par": 0})}} + {{:helper.link('1', null, {"set_par": 1})}} + {{:helper.link('2', null, {"set_par": 2})}} + {{:helper.link('3', null, {"set_par": 3})}} + {{:helper.link('4', null, {"set_par": 4})}} + {{:helper.link('5', null, {"set_par": 5})}}
Janitor{{:helper.smoothRound(data.jan)}} - {{:helper.link('0', null, {"set_jan": 0})}} {{:helper.link('1', null, {"set_jan": 1})}} {{:helper.link('3', null, {"set_jan": 3})}} {{:helper.link('5', null, {"set_jan": 5})}} +
Janitor{{if data.jan == 0}}-{{else}}{{:helper.smoothRound(data.jan)}}{{/if}} + {{:helper.link('0', null, {"set_jan": 0})}} + {{:helper.link('1', null, {"set_jan": 1})}} + {{:helper.link('2', null, {"set_jan": 2})}} + {{:helper.link('3', null, {"set_jan": 3})}} + {{:helper.link('4', null, {"set_jan": 4})}} + {{:helper.link('5', null, {"set_jan": 5})}}
{{if data.ert_type == 'Code Gamma'}}GAMMA {{/if}}Cyborg{{:helper.smoothRound(data.cyb)}} - {{:helper.link('0', null, {"set_cyb": 0})}} {{:helper.link('1', null, {"set_cyb": 1})}} {{:helper.link('3', null, {"set_cyb": 3})}} {{:helper.link('5', null, {"set_cyb": 5})}} +
{{if data.ert_type == 'Code Gamma'}}GAMMA {{/if}}Cyborg{{if data.cyb == 0}}-{{else}}{{:helper.smoothRound(data.cyb)}}{{/if}} + {{:helper.link('0', null, {"set_cyb": 0})}} + {{:helper.link('1', null, {"set_cyb": 1})}} + {{:helper.link('2', null, {"set_cyb": 2})}} + {{:helper.link('3', null, {"set_cyb": 3})}} + {{:helper.link('4', null, {"set_cyb": 4})}} + {{:helper.link('5', null, {"set_cyb": 5})}}

From 42089d1820ba3ee399d1ff7ed982fba16f8d32fa Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 18 Oct 2017 02:49:34 -0700 Subject: [PATCH 3/9] Spaces --- code/game/response_team.dm | 4 ++-- code/modules/nano/modules/ert_manager.dm | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 3e5199cf05f..3384b3564bc 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -117,10 +117,10 @@ var/ert_request_answered = 0 if(class == "Cyborg") active_team.reduceCyborgSlots() - var cyborg_type = active_team.getCyborgType() + var/cyborg_type = active_team.getCyborgType() var/mob/living/silicon/robot/ert/R = new cyborg_type() R.forceMove(spawn_location) - var rnum = rand(1,1000) + var/rnum = rand(1,1000) R.name = "ERT [rnum]" R.real_name = R.name R.mind = new diff --git a/code/modules/nano/modules/ert_manager.dm b/code/modules/nano/modules/ert_manager.dm index 3c9110ee22e..9511406692e 100644 --- a/code/modules/nano/modules/ert_manager.dm +++ b/code/modules/nano/modules/ert_manager.dm @@ -1,14 +1,14 @@ /datum/nano_module/ert_manager name = "ERT Manager" - var ert_type = "Code Red" - var commander_slots = 1 - var security_slots = 3 - var medical_slots = 3 - var engineering_slots = 3 - var janitor_slots = 0 - var paranormal_slots = 0 - var cyborg_slots = 0 - var autoclose = 0 + var/ert_type = "Code Red" + var/commander_slots = 1 + var/security_slots = 3 + var/medical_slots = 3 + var/engineering_slots = 3 + var/janitor_slots = 0 + var/paranormal_slots = 0 + var/cyborg_slots = 0 + var/autoclose = 0 /datum/nano_module/ert_manager/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) From 629acbf36d2a9f0e6f9b6377d8a9a059251ee739 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 18 Oct 2017 03:04:42 -0700 Subject: [PATCH 4/9] Lets ghosts see what ERT positions are open --- code/modules/nano/modules/ert_manager.dm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/code/modules/nano/modules/ert_manager.dm b/code/modules/nano/modules/ert_manager.dm index 9511406692e..84f4d9a874d 100644 --- a/code/modules/nano/modules/ert_manager.dm +++ b/code/modules/nano/modules/ert_manager.dm @@ -51,8 +51,25 @@ if(href_list["dispatch_ert"]) ert_request_answered = 1 - message_admins("[key_name_admin(usr)] dispatched a [ert_type] ERT with [commander_slots] commander, [security_slots] security, [medical_slots] medical, [engineering_slots] engineering, [janitor_slots] janitorial, [paranormal_slots] paranormal & [cyborg_slots] cyborg slots.", 1) - log_admin("[key_name(usr)] dispatched a [ert_type] ERT with [commander_slots] commander, [security_slots] security, [medical_slots] medical, [engineering_slots] engineering, [janitor_slots] janitorial, [paranormal_slots] paranormal & [cyborg_slots] cyborg slots.") + var/slots_list = list() + if(commander_slots > 0) + slots_list += "commander: [commander_slots]" + if(security_slots > 0) + slots_list += "security: [security_slots]" + if(medical_slots > 0) + slots_list += "medical: [medical_slots]" + if(engineering_slots > 0) + slots_list += "engineering: [engineering_slots]" + if(janitor_slots > 0) + slots_list += "janitor: [janitor_slots]" + if(paranormal_slots > 0) + slots_list += "paranormal: [paranormal_slots]" + if(cyborg_slots > 0) + slots_list += "cyborg: [cyborg_slots]" + var slot_text = list_implode(slots_list, ", ") + notify_ghosts("An ERT is being dispatched. Open positions: [slot_text]") + message_admins("[key_name_admin(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]", 1) + log_admin("[key_name(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]") trigger_armed_response_team(convert_ert_string(ert_type), commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) autoclose = 1 From 246e039ae6015565ea0f346b318c85aa1b2b4edd Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 18 Oct 2017 17:36:02 -0700 Subject: [PATCH 5/9] Splits janitor/paranormal gear based on ERT level --- .../objects/items/weapons/holy_weapons.dm | 8 +- code/game/response_team.dm | 74 +++++++++++++++---- 2 files changed, 63 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 64b7dfcdf76..d721aadfbed 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -28,7 +28,7 @@ /obj/item/weapon/nullrod/attack_self(mob/user) if(reskinned) return - if(user.mind && (user.mind.assigned_role == "Chaplain")) + if(user.mind && (user.mind.assigned_role == "Chaplain" || user.mind.special_role == SPECIAL_ROLE_ERT)) reskin_holy_weapon(user) /obj/item/weapon/nullrod/proc/reskin_holy_weapon(mob/M) @@ -335,7 +335,7 @@ /obj/item/weapon/nullrod/carp/attack_self(mob/living/user) if(used_blessing) return - if(user.mind && (user.mind.assigned_role != "Chaplain")) + if(user.mind && (user.mind.assigned_role != "Chaplain" && user.mind.special_role != SPECIAL_ROLE_ERT)) return to_chat(user, "You are blessed by Carp-Sie. Wild space carp will no longer attack you.") user.faction |= "carp" @@ -406,7 +406,7 @@ if(!iscarbon(M)) return ..() - if(!user.mind || user.mind.assigned_role != "Chaplain") + if(!user.mind || (user.mind.assigned_role != "Chaplain" && user.mind.special_role != SPECIAL_ROLE_ERT)) to_chat(user, "You are not close enough with [ticker.Bible_deity_name] to use [src].") return @@ -469,7 +469,7 @@ /obj/item/weapon/nullrod/salt/attack_self(mob/user) - if(!user.mind || user.mind.assigned_role != "Chaplain") + if(!user.mind || (user.mind.assigned_role != "Chaplain" && user.mind.special_role != SPECIAL_ROLE_ERT )) to_chat(user, "You are not close enough with [ticker.Bible_deity_name] to use [src].") return diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 3384b3564bc..333df98411f 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -199,8 +199,8 @@ var/ert_request_answered = 0 var/engineering_outfit var/medical_outfit var/security_outfit - var/janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial - var/paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal + var/janitor_outfit + var/paranormal_outfit var/cyborg_type = /mob/living/silicon/robot/ert /datum/response_team/proc/setSlots(com, sec, med, eng, jan, par, cyb) @@ -305,6 +305,8 @@ var/ert_request_answered = 0 security_outfit = /datum/outfit/job/centcom/response_team/security/amber medical_outfit = /datum/outfit/job/centcom/response_team/medic/amber command_outfit = /datum/outfit/job/centcom/response_team/commander/amber + janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial/amber + paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal/amber /datum/response_team/amber/announce_team() event_announcement.Announce("Attention, [station_name()]. We are sending a code AMBER light Emergency Response Team. Standby.", "ERT En-Route") @@ -316,6 +318,8 @@ var/ert_request_answered = 0 security_outfit = /datum/outfit/job/centcom/response_team/security/red medical_outfit = /datum/outfit/job/centcom/response_team/medic/red command_outfit = /datum/outfit/job/centcom/response_team/commander/red + janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial/red + paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal/red /datum/response_team/red/announce_team() event_announcement.Announce("Attention, [station_name()]. We are sending a code RED Emergency Response Team. Standby.", "ERT En-Route") @@ -327,6 +331,8 @@ var/ert_request_answered = 0 security_outfit = /datum/outfit/job/centcom/response_team/security/gamma medical_outfit = /datum/outfit/job/centcom/response_team/medic/gamma command_outfit = /datum/outfit/job/centcom/response_team/commander/gamma + janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial/gamma + paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal/gamma cyborg_type = /mob/living/silicon/robot/ert/gamma /datum/response_team/gamma/announce_team() @@ -647,17 +653,15 @@ var/ert_request_answered = 0 ) /datum/outfit/job/centcom/response_team/paranormal - name = "Paranormal ERT member" - - uniform = /obj/item/clothing/under/rank/security - suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal + name = "RT Paranormal" + rt_job = "Emergency Response Team Inquisitor" + uniform = /obj/item/clothing/under/rank/chaplain back = /obj/item/weapon/storage/backpack/ert/security - belt = /obj/item/weapon/gun/energy/gun/nuclear gloves = /obj/item/clothing/gloves/color/black shoes = /obj/item/clothing/shoes/combat - head = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal l_ear = /obj/item/device/radio/headset/ert/alt glasses = /obj/item/clothing/glasses/hud/security/sunglasses + belt = /obj/item/weapon/storage/belt/security/response_team id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom backpack_contents = list( @@ -665,21 +669,40 @@ var/ert_request_answered = 0 /obj/item/weapon/storage/box/zipties = 1, /obj/item/device/flashlight = 1) -/datum/outfit/job/centcom/response_team/janitorial - name = "Janitorial ERT member" +/datum/outfit/job/centcom/response_team/paranormal/amber + name = "RT Paranormal (Amber)" + suit = /obj/item/clothing/suit/armor/vest/ert/security + suit_store = /obj/item/weapon/gun/energy/gun/advtaser + r_pocket = /obj/item/weapon/nullrod - uniform = /obj/item/clothing/under/color/random - suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor +/datum/outfit/job/centcom/response_team/paranormal/red + name = "RT Paranormal (Red)" + suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + suit_store = /obj/item/weapon/gun/energy/gun/nuclear + r_pocket = /obj/item/weapon/nullrod + +/datum/outfit/job/centcom/response_team/paranormal/gamma + name = "RT Paranormal (Gamma)" + suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + suit_store = /obj/item/weapon/gun/energy/gun/nuclear + r_pocket = /obj/item/weapon/gun/energy/pulse/pistol + l_pocket = /obj/item/weapon/grenade/clusterbuster/holy + shoes = /obj/item/clothing/shoes/magboots/advance + +/datum/outfit/job/centcom/response_team/janitorial + name = "RT Janitor" + rt_job = "Emergency Response Team Janitor" + uniform = /obj/item/clothing/under/color/purple back = /obj/item/weapon/storage/backpack/ert/janitor belt = /obj/item/weapon/storage/belt/janitor/full gloves = /obj/item/clothing/gloves/color/yellow shoes = /obj/item/clothing/shoes/galoshes - head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor l_ear = /obj/item/device/radio/headset/ert/alt - glasses = /obj/item/clothing/glasses/sunglasses id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom - l_pocket = /obj/item/weapon/melee/classic_baton/telescopic + r_pocket = /obj/item/weapon/melee/classic_baton/telescopic backpack_contents = list( /obj/item/weapon/caution = 2, /obj/item/weapon/reagent_containers/spray/cleaner = 1, @@ -688,6 +711,27 @@ var/ert_request_answered = 0 /obj/item/weapon/holosign_creator = 1, /obj/item/device/flashlight = 1) +/datum/outfit/job/centcom/response_team/janitorial/amber + name = "RT Janitor (Amber)" + glasses = /obj/item/clothing/glasses/sunglasses + +/datum/outfit/job/centcom/response_team/janitorial/red + name = "RT Janitor (Red)" + suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + suit_store = /obj/item/weapon/gun/energy/gun + +/datum/outfit/job/centcom/response_team/janitorial/gamma + name = "RT Janitor (Gamma)" + suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor + head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + gloves = /obj/item/clothing/gloves/combat + suit_store = /obj/item/weapon/gun/energy/pulse/pistol + l_pocket = /obj/item/weapon/grenade/clusterbuster/cleaner + shoes = /obj/item/clothing/shoes/magboots/advance + /obj/item/device/radio/centcom name = "centcomm bounced radio" frequency = ERT_FREQ From 83dcf5b68a0a9889c5bc3f1806f3b531694d2642 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 18 Oct 2017 18:59:37 -0700 Subject: [PATCH 6/9] Let gamma borgs have module choice --- code/game/response_team.dm | 16 ++++++++-------- code/modules/mob/living/silicon/robot/robot.dm | 16 ---------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 333df98411f..ab7fd41d170 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -107,8 +107,6 @@ var/ert_request_answered = 0 return 1 /client/proc/create_response_team(var/turf/spawn_location) - - var/class = 0 while(!class) class = input(src, "Which loadout would you like to choose?") in active_team.get_slot_list() @@ -117,8 +115,8 @@ var/ert_request_answered = 0 if(class == "Cyborg") active_team.reduceCyborgSlots() - var/cyborg_type = active_team.getCyborgType() - var/mob/living/silicon/robot/ert/R = new cyborg_type() + var/cyborg_unlock = active_team.getCyborgUnlock() + var/mob/living/silicon/robot/ert/R = new() R.forceMove(spawn_location) var/rnum = rand(1,1000) R.name = "ERT [rnum]" @@ -128,6 +126,8 @@ var/ert_request_answered = 0 R.mind.original = R R.mind.assigned_role = "MODE" R.mind.special_role = SPECIAL_ROLE_ERT + if(cyborg_unlock) + R.crisis = 1 if(!(R.mind in ticker.minds)) ticker.minds += R.mind //Adds them to regular mind list. ticker.mode.ert += R.mind @@ -201,7 +201,7 @@ var/ert_request_answered = 0 var/security_outfit var/janitor_outfit var/paranormal_outfit - var/cyborg_type = /mob/living/silicon/robot/ert + var/cyborg_unlock = 0 /datum/response_team/proc/setSlots(com, sec, med, eng, jan, par, cyb) command_slots = com @@ -215,8 +215,8 @@ var/ert_request_answered = 0 /datum/response_team/proc/reduceCyborgSlots() cyborg_slots-- -/datum/response_team/proc/getCyborgType() - return cyborg_type +/datum/response_team/proc/getCyborgUnlock() + return cyborg_unlock /datum/response_team/proc/get_slot_list() var/list/slots_available = list() @@ -333,7 +333,7 @@ var/ert_request_answered = 0 command_outfit = /datum/outfit/job/centcom/response_team/commander/gamma janitor_outfit = /datum/outfit/job/centcom/response_team/janitorial/gamma paranormal_outfit = /datum/outfit/job/centcom/response_team/paranormal/gamma - cyborg_type = /mob/living/silicon/robot/ert/gamma + cyborg_unlock = 1 /datum/response_team/gamma/announce_team() event_announcement.Announce("Attention, [station_name()]. We are sending a code GAMMA elite Emergency Response Team. Standby.", "ERT En-Route") diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index bd94801f809..52d943884ca 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1470,22 +1470,6 @@ var/list/robot_verbs_default = list( cell.maxcharge = 25000 cell.charge = 25000 -/mob/living/silicon/robot/ert/gamma - base_icon = "droidcombat" - icon_state = "droidcombat" - modtype = "Combat" - designation = "Gamma" - -/mob/living/silicon/robot/ert/gamma/New() - module = new /obj/item/weapon/robot_module/combat(src) - module.add_languages(src) - module.add_subsystems_and_actions(src) - ..() - -/mob/living/silicon/robot/ert/gamma/init() - ..() - status_flags &= ~CANPUSH - /mob/living/silicon/robot/nations base_icon = "droidpeace" icon_state = "droidpeace" From 063c2ff291bf675359796027df21de0a9c7c37c9 Mon Sep 17 00:00:00 2001 From: Kyep Date: Fri, 20 Oct 2017 21:36:42 -0700 Subject: [PATCH 7/9] Dispatching closes panel --- code/modules/nano/modules/ert_manager.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/nano/modules/ert_manager.dm b/code/modules/nano/modules/ert_manager.dm index 84f4d9a874d..8c17cda55e2 100644 --- a/code/modules/nano/modules/ert_manager.dm +++ b/code/modules/nano/modules/ert_manager.dm @@ -70,12 +70,13 @@ notify_ghosts("An ERT is being dispatched. Open positions: [slot_text]") message_admins("[key_name_admin(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]", 1) log_admin("[key_name(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]") - trigger_armed_response_team(convert_ert_string(ert_type), commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) autoclose = 1 + ui_interact(usr) + trigger_armed_response_team(convert_ert_string(ert_type), commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) + return 0 ui_interact(usr) - return 0 /proc/convert_ert_string(thestring) switch(thestring) From 3820f204dc6ae9119d2f1cb32d3377be5b610224 Mon Sep 17 00:00:00 2001 From: Kyep Date: Mon, 23 Oct 2017 21:47:24 -0700 Subject: [PATCH 8/9] Gives jani ERT anti-spacevine items --- code/game/response_team.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index ab7fd41d170..ccec2471cc8 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -702,9 +702,9 @@ var/ert_request_answered = 0 l_ear = /obj/item/device/radio/headset/ert/alt id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom - r_pocket = /obj/item/weapon/melee/classic_baton/telescopic + l_pocket = /obj/item/weapon/melee/classic_baton/telescopic backpack_contents = list( - /obj/item/weapon/caution = 2, + /obj/item/weapon/grenade/chem_grenade/antiweed = 2, /obj/item/weapon/reagent_containers/spray/cleaner = 1, /obj/item/weapon/storage/bag/trash = 1, /obj/item/weapon/storage/box/lights/mixed = 1, @@ -721,6 +721,7 @@ var/ert_request_answered = 0 head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = /obj/item/weapon/gun/energy/gun + r_pocket = /obj/item/weapon/scythe/tele /datum/outfit/job/centcom/response_team/janitorial/gamma name = "RT Janitor (Gamma)" @@ -730,6 +731,7 @@ var/ert_request_answered = 0 gloves = /obj/item/clothing/gloves/combat suit_store = /obj/item/weapon/gun/energy/pulse/pistol l_pocket = /obj/item/weapon/grenade/clusterbuster/cleaner + r_pocket = /obj/item/weapon/grenade/clusterbuster/antiweed shoes = /obj/item/clothing/shoes/magboots/advance /obj/item/device/radio/centcom From a60e37d56a1191744116e797316f1c8b0aa9245f Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 24 Oct 2017 00:11:44 -0700 Subject: [PATCH 9/9] updates a comment --- code/game/response_team.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index ccec2471cc8..a7e8c7cbae6 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -1,5 +1,4 @@ -//STRIKE TEAMS -//Thanks to Kilakk for the admin-button portion of this code. +// ERTs #define ERT_TYPE_AMBER 1 #define ERT_TYPE_RED 2