From fd8d61aa8b1e2e271e44069c8ecd668587c773ed Mon Sep 17 00:00:00 2001 From: MisterBook Date: Tue, 4 Jun 2013 22:41:23 -0500 Subject: [PATCH] New taser fix is now in place. Rather than full deflection, armor mitigates the damage. Updates along all sorts of Clothing for minor mitigations to major mitigations. New define - AGONY. Used as an effect (Like STUN, WEAKN, etc) to cause HALLOSS. Allows use of HALLOSS projectiles without having to worry about them shattering windows/grilles. Future use? Torture tools, pain inducers for interrogation, 'Be Good' modules, Meme, etc. HALLOSS now regens while standing up (2 per tick), and laying down (Resting, unconscious, paralyzed - 6 per tick). This fixes the 'real damage + HALLOSS = forever crit'. Sticking a gun in your mouth (Non-stun, damage inducing) and pulling the trigger kills you. Icon adjustments. --- code/modules/clothing/clothing.dm | 5 ++++- code/modules/clothing/gloves/miscellaneous.dm | 5 +++-- code/modules/clothing/gloves/stungloves.dm | 2 +- code/modules/clothing/head/hardhat.dm | 1 + code/modules/clothing/head/helmet.dm | 4 +++- code/modules/clothing/head/jobs.dm | 6 ++++++ code/modules/clothing/head/misc.dm | 11 +++++++++++ code/modules/clothing/head/misc_special.dm | 2 ++ code/modules/clothing/head/soft_caps.dm | 1 + code/modules/clothing/masks/boxing.dm | 1 + code/modules/clothing/masks/gasmask.dm | 5 +++++ code/modules/clothing/masks/miscellaneous.dm | 2 ++ code/modules/clothing/shoes/miscellaneous.dm | 12 ++++++------ code/modules/clothing/spacesuits/captain.dm | 2 +- code/modules/clothing/spacesuits/ert.dm | 4 ++-- .../clothing/spacesuits/miscellaneous.dm | 7 +++++-- code/modules/clothing/spacesuits/ninja.dm | 4 ++-- code/modules/clothing/spacesuits/rig.dm | 12 ++++++------ code/modules/clothing/spacesuits/syndi.dm | 4 ++-- code/modules/clothing/suits/armor.dm | 10 +++++++--- code/modules/clothing/suits/bio.dm | 2 ++ code/modules/clothing/suits/miscellaneous.dm | 16 +++++++++++++++- code/modules/clothing/suits/wiz_robe.dm | 9 ++++++++- code/modules/clothing/under/chameleon.dm | 2 +- code/modules/clothing/under/jobs/security.dm | 17 ++++++++++++----- code/modules/clothing/under/syndicate.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 15 ++++++++++++--- code/modules/mob/living/carbon/human/life.dm | 15 +++++++++++---- code/modules/mob/living/damage_procs.dm | 5 ++++- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/projectile.dm | 5 +++-- code/modules/projectiles/projectile/energy.dm | 7 ++++--- code/setup.dm | 1 + icons/mob/mask.dmi | Bin 24524 -> 24554 bytes 34 files changed, 146 insertions(+), 52 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 7d8f1289ce6..f476e60c255 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -88,7 +88,7 @@ BLIND // can't see anything desc = "Comfortable-looking shoes." gender = PLURAL //Carn: for grammarically correct text-parsing var/chained = 0 - + siemens_coefficient = 0.9 body_parts_covered = FEET slot_flags = SLOT_FEET @@ -105,6 +105,7 @@ BLIND // can't see anything armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" + siemens_coefficient = 0.9 //Spacesuit //Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. @@ -120,6 +121,7 @@ BLIND // can't see anything flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0.9 /obj/item/clothing/suit/space name = "Space suit" @@ -137,6 +139,7 @@ BLIND // can't see anything flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0.9 //Under clothing diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 05c4bf03e3d..a5e99111006 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -3,7 +3,7 @@ name = "ninja gloves" icon_state = "s-ninja" item_state = "s-ninja" - siemens_coefficient = 0 + siemens_coefficient = 0.2 var/draining = 0 var/candrain = 0 var/mindrain = 200 @@ -32,7 +32,7 @@ name = "\improper SWAT Gloves" icon_state = "black" item_state = "swat_gl" - siemens_coefficient = 0 + siemens_coefficient = 0.6 permeability_coefficient = 0.05 cold_protection = HANDS @@ -70,3 +70,4 @@ icon_state = "leather" item_state = "ggloves" permeability_coefficient = 0.9 + siemens_coefficient = 0.9 diff --git a/code/modules/clothing/gloves/stungloves.dm b/code/modules/clothing/gloves/stungloves.dm index b892f001d35..dd531389681 100644 --- a/code/modules/clothing/gloves/stungloves.dm +++ b/code/modules/clothing/gloves/stungloves.dm @@ -9,7 +9,7 @@ if(C.amount >= 2) C.use(2) wired = 1 - siemens_coefficient = 1 + siemens_coefficient = 3.0 user << "You wrap some wires around [src]." update_icon() else diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index dfca62aa013..defc0a49ed6 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -10,6 +10,7 @@ armor = list(melee = 30, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20) flags_inv = 0 icon_action_button = "action_hardhat" + siemens_coefficient = 0.9 attack_self(mob/user) if(!isturf(user.loc)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 23debe8aab1..ec2ef1b3fae 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -10,7 +10,7 @@ min_cold_protection_temperature = HELMET_MIN_COLD_PROTECITON_TEMPERATURE heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECITON_TEMPERATURE - siemens_coefficient = 0 + siemens_coefficient = 0.7 /obj/item/clothing/head/helmet/warden name = "warden's hat" @@ -26,6 +26,7 @@ flags = FPRINT|TABLEPASS|HEADCOVERSEYES armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) flags_inv = HIDEEARS + siemens_coefficient = 0.7 /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" @@ -37,6 +38,7 @@ flags_inv = HIDEEARS|HIDEEYES cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0.5 /obj/item/clothing/head/helmet/thunderdome name = "\improper Thunderdome helmet" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index fc279dd382f..2ccebe9ddc9 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -7,6 +7,7 @@ item_state = "chef" desc = "The commander in chef's head wear." flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 //Captain: This probably shouldn't be space-worthy /obj/item/clothing/head/caphat @@ -15,6 +16,7 @@ desc = "It's good being the king." flags = FPRINT|TABLEPASS item_state = "caphat" + siemens_coefficient = 0.9 //Captain: This probably shouldn't be space-worthy /obj/item/clothing/head/helmet/cap @@ -25,6 +27,7 @@ flags_inv = 0 cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0.9 //Chaplain /obj/item/clothing/head/chaplain_hood @@ -32,6 +35,7 @@ desc = "It's hood that covers the head. It keeps you warm during the space winters." icon_state = "chaplain_hood" flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + siemens_coefficient = 0.9 //Chaplain /obj/item/clothing/head/nun_hood @@ -39,6 +43,7 @@ desc = "Maximum piety in this star system." icon_state = "nun_hood" flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + siemens_coefficient = 0.9 //Mime /obj/item/clothing/head/beret @@ -46,6 +51,7 @@ desc = "A beret, an artists favorite headwear." icon_state = "beret" flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 //Security /obj/item/clothing/head/beret/sec diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 19bb098b4f0..32f01a10c8e 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -6,6 +6,7 @@ desc = "It's good to be emperor." flags = FPRINT|TABLEPASS item_state = "centhat" + siemens_coefficient = 0.9 /obj/item/clothing/head/hairflower name = "hair flower pin" @@ -26,6 +27,7 @@ icon_state = "tophat" item_state = "that" flags = FPRINT|TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/head/redcoat name = "redcoat's hat" @@ -45,6 +47,7 @@ icon_state = "plaguedoctor" flags = FPRINT | TABLEPASS permeability_coefficient = 0.01 + siemens_coefficient = 0.9 /obj/item/clothing/head/hasturhood name = "hastur's hood" @@ -57,6 +60,7 @@ desc = "It allows quick identification of trained medical personnel." icon_state = "nursehat" flags = FPRINT|TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/head/syndicatefake name = "red space-helmet replica" @@ -65,6 +69,7 @@ desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" flags = FPRINT | TABLEPASS | BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + siemens_coefficient = 2.0 /obj/item/clothing/head/cueball name = "cueball helmet" @@ -82,6 +87,7 @@ flags = FPRINT|TABLEPASS flags_inv = 0 + /obj/item/clothing/head/greenbandana name = "green bandana" desc = "It's a green bandana with some fine nanotech lining." @@ -132,6 +138,7 @@ desc = "A working man's cap." icon_state = "flat_cap" item_state = "detective" + siemens_coefficient = 0.9 /obj/item/clothing/head/pirate name = "pirate hat" @@ -210,6 +217,7 @@ icon_state = "witch" item_state = "witch" flags = FPRINT | TABLEPASS | BLOCKHAIR + siemens_coefficient = 2.0 /obj/item/clothing/head/chicken name = "chicken suit head" @@ -217,6 +225,7 @@ icon_state = "chickenhead" item_state = "chickensuit" flags = FPRINT | TABLEPASS | BLOCKHAIR + siemens_coefficient = 2.0 /obj/item/clothing/head/bearpelt name = "bear pelt hat" @@ -224,6 +233,7 @@ icon_state = "bearpelt" item_state = "bearpelt" flags = FPRINT | TABLEPASS | BLOCKHAIR + siemens_coefficient = 2.0 /obj/item/clothing/head/xenos name = "xenos helmet" @@ -232,3 +242,4 @@ desc = "A helmet made out of chitinous alien hide." flags = FPRINT | TABLEPASS | BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + siemens_coefficient = 2.0 diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index b3c1eb5b9b4..1e9f6d4f89a 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -23,6 +23,7 @@ armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) icon_action_button = "action_welding" + siemens_coefficient = 0.9 /obj/item/clothing/head/welding/attack_self() toggle() @@ -158,6 +159,7 @@ flags = FPRINT | TABLEPASS var/icon/mob var/icon/mob2 + siemens_coefficient = 1.5 update_icon(var/mob/living/carbon/human/user) if(!istype(user)) return diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 3d4bfc8dcf9..af286a0e9b1 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -6,6 +6,7 @@ item_state = "helmet" color = "cargo" var/flipped = 0 + siemens_coefficient = 0.9 dropped() src.icon_state = "[color]soft" diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 129c69e90ff..49d9505bce4 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -15,6 +15,7 @@ flags = FPRINT|TABLEPASS|BLOCKHAIR flags_inv = HIDEFACE w_class = 2 + siemens_coefficient = 3.0 /obj/item/clothing/mask/luchador/tecnicos name = "Tecnicos Mask" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 6031221882b..f8d643d5e32 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -8,6 +8,7 @@ item_state = "gas_alt" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 + siemens_coefficient = 0.9 //Plague Dr suit can be found in clothing/suits/bio.dm /obj/item/clothing/mask/gas/plaguedoctor @@ -21,11 +22,13 @@ name = "\improper SWAT mask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "swat" + siemens_coefficient = 0.7 /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "swat" + siemens_coefficient = 0.7 /obj/item/clothing/mask/gas/voice name = "gas mask" @@ -41,6 +44,7 @@ icon_state = "s-ninja" item_state = "s-ninja_mask" vchange = 1 + siemens_coefficient = 0.2 /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" @@ -76,6 +80,7 @@ name = "Death Commando Mask" icon_state = "death_commando_mask" item_state = "death_commando_mask" + siemens_coefficient = 0.2 /obj/item/clothing/mask/gas/cyborg name = "cyborg visor" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 52b28bd8f1e..8df98f42dd3 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -81,6 +81,7 @@ flags = FPRINT|TABLEPASS|BLOCKHAIR flags_inv = HIDEFACE w_class = 2 + siemens_coefficient = 0.9 /obj/item/clothing/mask/horsehead name = "horse head mask" @@ -91,3 +92,4 @@ flags_inv = HIDEFACE w_class = 2 var/voicechange = 0 + siemens_coefficient = 0.9 diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index ef3ab188c0c..d7c6177893f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -7,7 +7,7 @@ flags = NOSLIP origin_tech = "syndicate=3" var/list/clothing_choices = list() - siemens_coefficient = 0 + siemens_coefficient = 0.8 /obj/item/clothing/shoes/mime name = "mime shoes" @@ -20,7 +20,7 @@ icon_state = "swat" armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) flags = NOSLIP - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes. name = "combat boots" @@ -28,7 +28,7 @@ icon_state = "swat" armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) flags = NOSLIP - siemens_coefficient = 0 + siemens_coefficient = 0.6 cold_protection = FEET min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE @@ -42,7 +42,7 @@ permeability_coefficient = 0.01 flags = NOSLIP armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + siemens_coefficient = 0.2 cold_protection = FEET min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE @@ -82,7 +82,7 @@ icon_state = "jackboots" item_state = "jackboots" color = "hosred" - siemens_coefficient = 0 + siemens_coefficient = 0.7 /obj/item/clothing/shoes/cult name = "boots" @@ -90,7 +90,7 @@ icon_state = "cult" item_state = "cult" color = "cult" - siemens_coefficient = 0 + siemens_coefficient = 0.7 cold_protection = FEET min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm index 56537aec50e..7757b1a2096 100644 --- a/code/modules/clothing/spacesuits/captain.dm +++ b/code/modules/clothing/spacesuits/captain.dm @@ -26,4 +26,4 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE - siemens_coefficient = 0 + siemens_coefficient = 0.7 diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index 7b01ae1cf98..4695e884caf 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -4,7 +4,7 @@ icon_state = "ert_commander" item_state = "helm-command" armor = list(melee = 50, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60) - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/suit/space/ert name = "emergency response team suit" @@ -19,7 +19,7 @@ /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \ /obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse_rifle, \ /obj/item/weapon/gun/energy/taser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun) - siemens_coefficient = 0 + siemens_coefficient = 0.6 //Commander /obj/item/clothing/head/helmet/space/ert/commander diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index bf62ddfef31..c4d8327a0af 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -25,7 +25,7 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE - siemens_coefficient = 0 + siemens_coefficient = 0.7 //Deathsquad suit /obj/item/clothing/head/helmet/space/deathsquad @@ -34,7 +34,7 @@ icon_state = "deathsquad" item_state = "deathsquad" armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + siemens_coefficient = 0.2 /obj/item/clothing/head/helmet/space/deathsquad/beret name = "officer's beret" @@ -42,6 +42,7 @@ icon_state = "beret_badge" armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30) flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE + siemens_coefficient = 0.9 //Space santa outfit suit /obj/item/clothing/head/helmet/space/santahat @@ -68,6 +69,7 @@ item_state = "pirate" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE + siemens_coefficient = 0.9 /obj/item/clothing/suit/space/pirate name = "pirate coat" @@ -78,5 +80,6 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen) slowdown = 0 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + siemens_coefficient = 0.9 diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 086ac7a2c98..8f49738fbfe 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -5,7 +5,7 @@ item_state = "s-ninja_mask" allowed = list(/obj/item/weapon/cell) armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25) - siemens_coefficient = 0 + siemens_coefficient = 0.2 /obj/item/clothing/suit/space/space_ninja @@ -16,7 +16,7 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/cell) slowdown = 0 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + siemens_coefficient = 0.2 //Important parts of the suit. var/mob/living/carbon/affecting = null//The wearer. diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index d63b11b001a..c735156ef85 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -86,7 +86,7 @@ item_state = "syndie_helm" color = "syndi" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/suit/space/rig/syndi @@ -98,7 +98,7 @@ w_class = 3 armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs) - siemens_coefficient = 0 + siemens_coefficient = 0.6 //Wizard Rig @@ -110,7 +110,7 @@ color = "wiz" unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60) - siemens_coefficient = 0 + siemens_coefficient = 0.7 /obj/item/clothing/suit/space/rig/wizard icon_state = "rig-wiz" @@ -121,7 +121,7 @@ w_class = 3 unacidable = 1 armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60) - siemens_coefficient = 0 + siemens_coefficient = 0.7 //Medical Rig @@ -148,7 +148,7 @@ item_state = "sec_helm" color = "sec" armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) - siemens_coefficient = 0 + siemens_coefficient = 0.7 /obj/item/clothing/suit/space/rig/security icon_state = "rig-sec" @@ -157,7 +157,7 @@ item_state = "sec_hardsuit" armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/melee/baton) - siemens_coefficient = 0 + siemens_coefficient = 0.7 //Atmospherics Rig (BS12) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index e2fc9e6d649..f2829fbdf87 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -6,7 +6,7 @@ item_state = "syndicate" desc = "Has a tag: Totally not property of an enemy corporation, honest." armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + siemens_coefficient = 0.8 /obj/item/clothing/suit/space/syndicate name = "red space suit" @@ -17,7 +17,7 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen) slowdown = 1 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + siemens_coefficient = 0.8 //Green syndicate space suit diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 4e10a8ce630..fdd54d63507 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -8,7 +8,7 @@ min_cold_protection_temperature = ARMOR_MIN_COLD_PROTECITON_TEMPERATURE heat_protection = UPPER_TORSO|LOWER_TORSO max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECITON_TEMPERATURE - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/suit/armor/vest @@ -42,6 +42,7 @@ slowdown = 1 armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEJUMPSUIT + siemens_coefficient = 0.5 /obj/item/clothing/suit/armor/bulletproof @@ -51,7 +52,7 @@ item_state = "armor" blood_overlay_type = "armor" armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) - + siemens_coefficient = 0.7 /obj/item/clothing/suit/armor/laserproof name = "Ablative Armor Vest" @@ -60,7 +61,7 @@ item_state = "armor_reflec" blood_overlay_type = "armor" armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) - + siemens_coefficient = 0 /obj/item/clothing/suit/armor/swat name = "swat suit" @@ -77,6 +78,7 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0.5 /obj/item/clothing/suit/armor/swat/officer @@ -151,6 +153,7 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE + siemens_coefficient = 0 /obj/item/clothing/suit/armor/heavy name = "heavy armor" @@ -162,6 +165,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 3 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + siemens_coefficient = 0 /obj/item/clothing/suit/armor/tdome body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 978df443d1e..2dbe3d01fcb 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -7,6 +7,7 @@ flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + siemens_coefficient = 0.9 /obj/item/clothing/suit/bio_suit name = "bio suit" @@ -22,6 +23,7 @@ allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + siemens_coefficient = 0.9 //Standard biosuit, orange stripe diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 0029cca6949..039905dd0c5 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -16,6 +16,7 @@ blood_overlay_type = "armor" body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list (/obj/item/weapon/gun/energy/laser/bluetag) + siemens_coefficient = 3.0 /obj/item/clothing/suit/redtag name = "red laser tag armour" @@ -25,6 +26,7 @@ blood_overlay_type = "armor" body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list (/obj/item/weapon/gun/energy/laser/redtag) + siemens_coefficient = 3.0 /* * Costume @@ -145,6 +147,7 @@ item_state = "chickensuit" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET flags_inv = HIDESHOES|HIDEJUMPSUIT + siemens_coefficient = 2.0 /obj/item/clothing/suit/monkeysuit @@ -154,6 +157,7 @@ item_state = "monkeysuit" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + siemens_coefficient = 2.0 /obj/item/clothing/suit/holidaypriest @@ -269,30 +273,35 @@ desc = "A rather skimpy pink swimsuit." icon_state = "stripper_p_under" color = "stripper_p" + siemens_coefficient = 1 /obj/item/clothing/under/stripper/stripper_green name = "green swimsuit" desc = "A rather skimpy green swimsuit." icon_state = "stripper_g_under" color = "stripper_g" + siemens_coefficient = 1 /obj/item/clothing/suit/stripper/stripper_pink name = "pink skimpy dress" desc = "A rather skimpy pink dress." icon_state = "stripper_p_over" item_state = "stripper_p" + siemens_coefficient = 1 /obj/item/clothing/suit/stripper/stripper_green name = "green skimpy dress" desc = "A rather skimpy green dress." icon_state = "stripper_g_over" item_state = "stripper_g" + siemens_coefficient = 1 /obj/item/clothing/under/stripper/mankini name = "the mankini" desc = "No honest man would wear this abomination" icon_state = "mankini" color = "mankini" + siemens_coefficient = 1 /obj/item/clothing/suit/xenos name = "xenos suit" @@ -301,7 +310,7 @@ item_state = "xenos_helm" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - + siemens_coefficient = 2.0 //swimsuit /obj/item/clothing/under/swimsuit/black @@ -309,27 +318,32 @@ desc = "An oldfashioned black swimsuit." icon_state = "swim_black" color = "swim_black" + siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/blue name = "blue swimsuit" desc = "An oldfashioned blue swimsuit." icon_state = "swim_blue" color = "swim_blue" + siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/purple name = "purple swimsuit" desc = "An oldfashioned purple swimsuit." icon_state = "swim_purp" color = "swim_purp" + siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/green name = "green swimsuit" desc = "An oldfashioned green swimsuit." icon_state = "swim_green" color = "swim_green" + siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/red name = "red swimsuit" desc = "An oldfashioned red swimsuit." icon_state = "swim_red" color = "swim_red" + siemens_coefficient = 1 diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index e67d84fda63..8fa3b506c7b 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -3,11 +3,13 @@ desc = "Strange-looking hat-wear that most certainly belongs to a real magic user." icon_state = "wizard" //Not given any special protective value since the magic robes are full-body protection --NEO + siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/red name = "red wizard hat" desc = "Strange-looking, red, hat-wear that most certainly belongs to a real magic user." icon_state = "redwizard" + siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/fake name = "wizard hat" @@ -18,12 +20,14 @@ name = "Witch Hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." icon_state = "marisa" + siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/magus name = "Magus Helm" desc = "A mysterious helmet that hums with an unearthly power" icon_state = "magus" item_state = "magus" + siemens_coefficient = 0.8 /obj/item/clothing/suit/wizrobe @@ -37,7 +41,7 @@ armor = list(melee = 30, bullet = 20, laser = 20,energy = 20, bomb = 20, bio = 20, rad = 20) allowed = list(/obj/item/weapon/teleportation_scroll) flags_inv = HIDEJUMPSUIT - + siemens_coefficient = 0.8 /obj/item/clothing/suit/wizrobe/red name = "red wizard robe" @@ -72,12 +76,14 @@ item_state = "wizrobe" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 1.0 /obj/item/clothing/head/wizard/marisa/fake name = "Witch Hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." icon_state = "marisa" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 1.0 /obj/item/clothing/suit/wizrobe/marisa/fake name = "Witch Robe" @@ -86,4 +92,5 @@ item_state = "marisarobe" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 1.0 diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm index 84b5fc213be..5a3f34f5524 100644 --- a/code/modules/clothing/under/chameleon.dm +++ b/code/modules/clothing/under/chameleon.dm @@ -6,7 +6,7 @@ color = "black" desc = "It's a plain jumpsuit. It seems to have a small dial on the wrist." origin_tech = "syndicate=3" - siemens_coefficient = 0 + siemens_coefficient = 0.8 var/list/clothing_choices = list() New() diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index bbc6e492af9..ecec4174ecf 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -16,6 +16,7 @@ color = "warden" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security name = "security officer's jumpsuit" @@ -25,6 +26,7 @@ color = "secred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/under/rank/dispatch name = "dispatcher's uniform" @@ -34,6 +36,7 @@ color = "dispatch" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security2 name = "security officer's uniform" @@ -43,6 +46,7 @@ color = "redshirt2" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 /* * Detective @@ -55,6 +59,7 @@ color = "detective" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 /obj/item/clothing/head/det_hat @@ -63,6 +68,7 @@ icon_state = "detective" allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen) armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 0.9 /* * Head of Security @@ -75,7 +81,7 @@ color = "hosred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = FPRINT | TABLEPASS - siemens_coefficient = 0 + siemens_coefficient = 0.8 /obj/item/clothing/head/helmet/HoS @@ -86,7 +92,7 @@ armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0) flags_inv = 0 flags_inv = HIDEEARS - siemens_coefficient = 0 + siemens_coefficient = 0.8 /obj/item/clothing/suit/armor/hos @@ -97,7 +103,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) flags_inv = HIDEJUMPSUIT - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/head/helmet/HoS/dermal @@ -105,6 +111,7 @@ desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head." icon_state = "dermal" item_state = "dermal" + siemens_coefficient = 0.6 //Jensen cosplay gear /obj/item/clothing/under/rank/head_of_security/jensen @@ -113,7 +120,7 @@ icon_state = "jensen" item_state = "jensen" color = "jensen" - siemens_coefficient = 0 + siemens_coefficient = 0.6 /obj/item/clothing/suit/armor/hos/jensen name = "armored trenchcoat" @@ -121,4 +128,4 @@ icon_state = "jensencoat" item_state = "jensencoat" flags_inv = 0 - siemens_coefficient = 0 \ No newline at end of file + siemens_coefficient = 0.6 \ No newline at end of file diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index facfc396466..413d90e6743 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -6,7 +6,7 @@ color = "syndicate" has_sensor = 0 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - siemens_coefficient = 0 + siemens_coefficient = 0.9 /obj/item/clothing/under/syndicate/combat name = "combat turtleneck" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3dd6a74b437..33fe77de033 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -14,16 +14,24 @@ emp_act 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 + visible_message("\red [src]'s [C.name] absorbs some of the shock from the [P.name]!") + apply_effect(P.agony,AGONY,0) + del P + /* Commenting out new-old taser nerf. if(C.siemens_coefficient == 0) //If so, is that clothing shock proof? - visible_message("\red The [P.name] gets deflected by [src]'s [C.name]!") //DEFLECT! - del P - + if(prob(deflectchance)) + visible_message("\red The [P.name] gets deflected by [src]'s [C.name]!") //DEFLECT! + visible_message("\red Taser hit for [P.damage] damage!") + del P +*/ /* Commenting out old Taser nerf if(wear_suit && istype(wear_suit, /obj/item/clothing/suit/armor)) if(istype(P, /obj/item/projectile/energy/electrode)) @@ -32,6 +40,7 @@ emp_act return -1 */ // 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/beam)) var/reflectchance = 40 - round(P.damage/3) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f38066d49a6..9ce3332540b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -944,19 +944,21 @@ del a if(halloss > 100) - src << "You're too tired to keep going..." + src << "You're in too much pain to keep going..." for(var/mob/O in oviewers(src, null)) - O.show_message("[src] slumps to the ground panting, too weak to continue fighting.", 1) - Paralyse(3) + O.show_message("[src] slumps to the ground, too weak to continue fighting.", 1) + Paralyse(10) setHalLoss(99) if(paralysis) AdjustParalysis(-1) blinded = 1 stat = UNCONSCIOUS + if(halloss > 0) + adjustHalLoss(-6) else if(sleeping) handle_dreams() - adjustHalLoss(-5) + adjustHalLoss(-6) if (mind) if((mind.active && client != null) || immune_to_ssd) //This also checks whether a client is connected, if not, sleep is not reduced. sleeping = max(sleeping-1, 0) @@ -965,9 +967,14 @@ if( prob(10) && health && !hal_crit ) spawn(0) emote("snore") + else if(resting) + if(halloss > 0) + adjustHalLoss(-6) //CONSCIOUS else stat = CONSCIOUS + if(halloss > 0) + adjustHalLoss(-2) //Eyes if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 2d98dd45d3a..cdc62e6602c 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -49,6 +49,8 @@ Weaken(effect/(blocked+1)) if(PARALYZE) Paralyse(effect/(blocked+1)) + if(AGONY) + halloss += effect // Useful for objects that cause "subdual" damage. PAIN! if(IRRADIATE) radiation += max((((effect - (effect*(getarmor(null, "rad")/100))))/(blocked+1)),0)//Rads auto check armor if(STUTTER) @@ -62,7 +64,7 @@ return 1 -/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0) +/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/agony = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0) if(blocked >= 2) return 0 if(stun) apply_effect(stun, STUN, blocked) if(weaken) apply_effect(weaken, WEAKEN, blocked) @@ -71,4 +73,5 @@ if(stutter) apply_effect(stutter, STUTTER, blocked) if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked) if(drowsy) apply_effect(drowsy, DROWSY, blocked) + if(agony) apply_effect(agony, AGONY, blocked) return 1 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3377baf8f2d..985c27a1de5 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -168,7 +168,7 @@ playsound(user, fire_sound, 50, 1) in_chamber.on_hit(M) if (!in_chamber.nodamage) - user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]") + user.apply_damage(in_chamber.damage*100, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]") else user << "You feel dumb for trying this..." del(in_chamber) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9fa70809b58..b48338fe352 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -48,6 +48,7 @@ var/stutter = 0 var/eyeblur = 0 var/drowsy = 0 + var/agony = 0 proc/on_hit(var/atom/target, var/blocked = 0) @@ -55,7 +56,7 @@ if(!isliving(target)) return 0 if(isanimal(target)) return 0 var/mob/living/L = target - L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, blocked) + L.apply_effects(stun, weaken, paralyze, agony, irradiate, stutter, eyeblur, drowsy, blocked) // add in AGONY! return 1 proc/check_fire(var/mob/living/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not. @@ -114,6 +115,7 @@ msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG spawn(0) + if(A) if (!forcedodge) forcedodge = A.bullet_act(src, def_zone) // searches for return value @@ -125,7 +127,6 @@ loc = A.loc permutated.Add(A) return 0 - if(istype(A,/turf)) for(var/obj/O in A) O.bullet_act(src) diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 02456cc1ea2..b8789eca59a 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -9,14 +9,15 @@ /obj/item/projectile/energy/electrode name = "electrode" icon_state = "spark" - /* - Old taser bit - nodamage = 0 + nodamage = 1 + /* stun = 10 weaken = 10 stutter = 10 */ - damage = 40 + agony = 40 damage_type = HALLOSS + //Damage will be handled on the MOB side, to prevent window shattering. diff --git a/code/setup.dm b/code/setup.dm index fcfb61e9195..6a668580615 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -427,6 +427,7 @@ var/list/global_mutations = list() // list of hidden mutation things #define WEAKEN "weaken" #define PARALYZE "paralize" #define IRRADIATE "irradiate" +#define AGONY "agony" // Added in PAIN! #define STUTTER "stutter" #define EYE_BLUR "eye_blur" #define DROWSY "drowsy" diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 4d681afb9f9fc8593a4534c7507f41fbd915a6d9..4b002767f334a37764981bf10ac08221d2f9eec6 100644 GIT binary patch delta 5067 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