diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index d353c77ad06..d8568c8f603 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -149,7 +149,7 @@
src << "We do not know how to parse this creature's DNA!"
return
- if(NOCLONE in T.mutations)
+ if(HUSK in T.mutations)
src << "This creature's DNA is ruined beyond useability!"
return
@@ -176,7 +176,6 @@
var/datum/organ/external/affecting = T.get_organ(src.zone_sel.selecting)
if(affecting.take_damage(39,0,1,0,"large organic needle"))
T:UpdateDamageIcon()
- continue
feedback_add_details("changeling_powers","A[stage]")
if(!do_mob(src, T, 150))
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 9aa180912c4..cc6cbd622b2 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -33,8 +33,9 @@
desc = "That's not red paint. That's real blood."
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.2
+ armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 100, rad = 60)
+ flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL
+ siemens_coefficient = 0.6
/obj/item/clothing/head/helmet/space/deathsquad/beret
name = "officer's beret"
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 40540f5050c..f5c9f4501e2 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -71,15 +71,15 @@
item_state = "swat_suit"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
- flags = FPRINT | TABLEPASS
+ flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | THICKMATERIAL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
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 = 1
- armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 0, rad = 0)
+ armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 100)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
- siemens_coefficient = 0.5
+ siemens_coefficient = 0.6
/obj/item/clothing/suit/armor/swat/officer
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index ef0a507c204..9ed050b5aed 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -84,7 +84,7 @@
/mob/living/carbon/human/proc/Drain()
ChangeToHusk()
- //mutations |= NOCLONE
+ mutations |= HUSK
return
/mob/living/carbon/human/proc/ChangeToSkeleton()
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index b004132eeea..546ec3ba839 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -26,7 +26,16 @@
if(wear_suit)
tally += wear_suit.slowdown
- if(!buckled || (buckled && !istype(buckled, /obj/structure/stool/bed/chair/wheelchair)))
+ if(istype(buckled, /obj/structure/stool/bed/chair/wheelchair))
+ for(var/organ_name in list("l_hand","r_hand","l_arm","r_arm"))
+ var/datum/organ/external/E = get_organ(organ_name)
+ if(!E || (E.status & ORGAN_DESTROYED))
+ tally += 4
+ if(E.status & ORGAN_SPLINTED)
+ tally += 0.5
+ else if(E.status & ORGAN_BROKEN)
+ tally += 1.5
+ else
if(shoes)
tally += shoes.slowdown
@@ -38,17 +47,7 @@
tally += 0.5
else if(E.status & ORGAN_BROKEN)
tally += 1.5
-
- if(buckled && istype(buckled, /obj/structure/stool/bed/chair/wheelchair))
- for(var/organ_name in list("l_hand","r_hand","l_arm","r_arm"))
- var/datum/organ/external/E = get_organ(organ_name)
- if(!E || (E.status & ORGAN_DESTROYED))
- tally += 4
- if(E.status & ORGAN_SPLINTED)
- tally += 0.5
- else if(E.status & ORGAN_BROKEN)
- tally += 1.5
-
+
if(shock_stage >= 10) tally += 3
if(FAT in src.mutations)
diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 9996efc8b69..13dd13413ec 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -98,7 +98,7 @@
T.Weaken(5)
//Only official cool kids get the grab and no self-prone.
- if(src.mind && !src.mind.special_role)
+ if(!(src.mind && src.mind.special_role))
src.Weaken(5)
return
diff --git a/code/modules/mob/living/carbon/shock.dm b/code/modules/mob/living/carbon/shock.dm
index 9ea65574857..b76b7a49b7b 100644
--- a/code/modules/mob/living/carbon/shock.dm
+++ b/code/modules/mob/living/carbon/shock.dm
@@ -3,6 +3,10 @@
// proc to find out in how much pain the mob is at the moment
/mob/living/carbon/proc/updateshock()
+ if (species && (species.flags & NO_PAIN))
+ src.traumatic_shock = 0
+ return 0
+
src.traumatic_shock = \
1 * src.getOxyLoss() + \
0.7 * src.getToxLoss() + \
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 236f80eb93a..eb2701fd368 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -362,18 +362,13 @@
if(flush && air_contents.return_pressure() >= SEND_PRESSURE ) // flush can happen even without power
flush()
- if(mode != 1) // if off or ready, no need to charge
+ if(mode != 1) //if off or ready, no need to charge
update_use_power(1)
- return
-
- // otherwise charge
- src.pressurize()
-
- // if full enough, switch to ready mode
- if(air_contents.return_pressure() >= SEND_PRESSURE)
- mode = 2
+ else if(air_contents.return_pressure() >= SEND_PRESSURE)
+ mode = 2 //if full enough, switch to ready mode
update()
- return
+ else
+ src.pressurize() //otherwise charge
/obj/machinery/disposal/proc/pressurize()
if(stat & NOPOWER) // won't charge if no power