diff --git a/baystation12.dme b/baystation12.dme index 6db691a79e0..af20b5bf301 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1324,7 +1324,6 @@ #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" #include "code\WorkInProgress\Chinsky\ashtray.dm" #include "code\WorkInProgress\Cib\MedicalSideEffects.dm" -#include "code\WorkInProgress\kilakk\responseteam.dm" #include "code\WorkInProgress\Mini\ATM.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Ported\policetape.dm" diff --git a/code/game/response_team.dm b/code/game/response_team.dm index db87b593952..400ad63c7e3 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -1,9 +1,43 @@ //STRIKE TEAMS +//Thanks to Kilakk for the admin-button portion of this code. var/list/response_team_members = list() var/global/send_emergency_team = 0 // Used for automagic response teams // 'admin_emergency_team' for admin-spawned response teams + +/client/proc/response_team() + set name = "Dispatch Emergency Response Team" + set category = "Special Verbs" + set desc = "Send an emergency response team to the station" + + if(!holder) + usr << "\red Only administrators may use this command." + return + if(!ticker) + usr << "\red The game hasn't started yet!" + return + if(ticker.current_state == 1) + usr << "\red The round hasn't started yet!" + return + if(send_emergency_team) + usr << "\red 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 + if(get_security_level() != "red") // Allow admins to reconsider if the alert level isn't Red + switch(alert("The station has not entered code red recently. Do you still want to dispatch a response team?",,"Yes","No")) + if("No") + return + if(send_emergency_team) + usr << "\red Looks like somebody beat you to it!" + return + + message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team.", 1) + log_admin("[key_name(usr)] used Dispatch Response Team.") + trigger_armed_response_team(1) + + client/verb/JoinResponseTeam() set category = "IC" @@ -11,9 +45,9 @@ client/verb/JoinResponseTeam() if(!send_emergency_team) usr << "No emergency response team is currently being sent." return - if(admin_emergency_team) + /* if(admin_emergency_team) usr << "An emergency response team has already been sent." - return + return */ if(jobban_isbanned(usr, "Syndicate") || jobban_isbanned(usr, "Emergency Response Team") || jobban_isbanned(usr, "Security Officer")) usr << "You are jobbanned from the emergency reponse team!" return @@ -69,10 +103,10 @@ proc/percentage_antagonists() proc/trigger_armed_response_team(var/force = 0) - if(send_emergency_team || admin_emergency_team) + if(send_emergency_team) return - var/send_team_chance = 20 // base chance that a team will be sent + var/send_team_chance = 50 // base chance that a team will be sent send_team_chance += 2*percentage_dead() // the more people are dead, the higher the chance send_team_chance += percentage_antagonists() // the more antagonists, the higher the chance send_team_chance = min(send_team_chance, 100) @@ -82,7 +116,7 @@ proc/trigger_armed_response_team(var/force = 0) // there's only a certain chance a team will be sent if(!prob(send_team_chance)) return - command_alert("Sensors indicate that [station_name()] has entered Code Red and is in need of assistance. We will prepare and dispatch an emergency response team to deal with the situation.", "NMV Icarus Command") + command_alert("Sensors indicate that [station_name()] has entered Code Red and is in need of assistance. We will prepare and dispatch an emergency response team to deal with the situation.", "Central Command") send_emergency_team = 1 @@ -224,6 +258,12 @@ proc/trigger_armed_response_team(var/force = 0) //Special radio setup equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears) + //Adding Camera Network + var/obj/machinery/camera/camera = new /obj/machinery/camera(src) //Gives all the commandos internals cameras. + camera.network = "CREED" + camera.c_tag = real_name + + //Replaced with new ERT uniform equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e722b882ade..1a7f5def825 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -28,7 +28,7 @@ emp_act // END TASER NERF if(wear_suit && istype(wear_suit, /obj/item/clothing/suit/armor/laserproof)) - if(istype(P, /obj/item/projectile/energy) || !(istype(P, /obj/item/projectile/energy/electrode)) || istype(P, /obj/item/projectile/beam)) + if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) var/reflectchance = 40 - round(P.damage/3) if(!(def_zone in list("chest", "groin"))) reflectchance /= 2 @@ -68,6 +68,24 @@ emp_act del P //End taser nerf. +//BEGIN BOOK'S TASER NERF. + if(istype(P, /obj/item/projectile/energy/electrode)) + var/datum/organ/external/select_area = get_organ(def_zone) // We're checking the outside, buddy! + var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes) // What all are we checking? + // var/deflectchance=90 //Is it a CRITICAL HIT with that taser? + for(var/bp in body_parts) //Make an unregulated var to pass around. + if(!bp) + continue //Does this thing we're shooting even exist? + if(bp && istype(bp ,/obj/item/clothing)) // If it exists, and it's clothed + var/obj/item/clothing/C = bp // Then call an argument C to be that clothing! + if(C.body_parts_covered & select_area.body_part) // Is that body part being targeted covered? + P.agony=P.agony*C.siemens_coefficient + apply_effect(P.agony,AGONY,0) + flash_pain() + src <<"\red You have been shot!" + del P +//END TASER NERF + if(check_shields(P.damage, "the [P.name]")) P.on_hit(src, 2) return 2