mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 13:07:46 +01:00
Reverts give chitinous armor durability. Gibbers can now accept clothed people, but take more time. (#21186)
This commit is contained in:
@@ -454,7 +454,6 @@
|
||||
flags = NODROP | DROPDEL
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 20, BOMB = 10, RAD = 0, FIRE = 90, ACID = 90)
|
||||
var/armor_durability = 600
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
cold_protection = 0
|
||||
heat_protection = 0
|
||||
@@ -467,35 +466,57 @@
|
||||
|
||||
/obj/item/clothing/suit/armor/changeling/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage)
|
||||
. = ..()
|
||||
if(istype(hitby, /obj/item/projectile/energy/charged_plasma))
|
||||
armor_durability -= 200 // the plasma pistol is designed to be a niche tool for blasting through shields, may as well let it cut away armor
|
||||
else if(istype(hitby, /obj/item/projectile/plasma))
|
||||
armor_durability -= damage * 4
|
||||
else if(istype(hitby, /obj/item/projectile))
|
||||
var/obj/item/projectile/P = hitby
|
||||
if(P.damage_type == BURN)
|
||||
armor_durability -= damage * 2
|
||||
else
|
||||
armor_durability -= damage
|
||||
else
|
||||
var/obj/item/I = hitby
|
||||
if(istype(I, /obj/item/circular_saw))
|
||||
armor_durability -= 25 // saws used to cut away armor through an interaction, so let's keep them somewhat more effective
|
||||
else if(istype(I))
|
||||
if(I.damtype == BURN)
|
||||
armor_durability -= damage * 2
|
||||
else
|
||||
armor_durability -= damage
|
||||
else
|
||||
armor_durability--
|
||||
|
||||
if(armor_durability <= 0)
|
||||
visible_message("<span class='warning'>[owner]'s chitinous armor collapses in clumps onto the ground.</span>")
|
||||
new /obj/effect/decal/cleanable/shreds(owner.loc)
|
||||
// just unequip them since they qdel on drop
|
||||
owner.unEquip(src, TRUE, TRUE)
|
||||
if(istype(owner.head, /obj/item/clothing/head/helmet/changeling))
|
||||
owner.unEquip(owner.head, TRUE, TRUE)
|
||||
if(!IS_HORIZONTAL(owner))
|
||||
return
|
||||
|
||||
var/obj/item/I = hitby
|
||||
|
||||
if(!isliving(I.loc))
|
||||
// Maybe it's on the ground? Maybe it's being used telekinetically? IDK
|
||||
return
|
||||
|
||||
// The user who's wielding the tool
|
||||
var/mob/living/user = I.loc
|
||||
|
||||
// snowflake checks my beloved
|
||||
// this will become tooltype checks I swear
|
||||
if(!istype(I, /obj/item/circular_saw) && !istype(I, /obj/item/twohanded/required/chainsaw) && !istype(I, /obj/item/twohanded/chainsaw))
|
||||
return
|
||||
|
||||
user.visible_message(
|
||||
"<span class='notice'>[user] starts to saw through [owner]'s [name].</span>",
|
||||
"<span class='notice'>You start to saw through [owner]'s [name].</span>",
|
||||
"<span class='notice'>You hear a loud grinding noise.</span>"
|
||||
)
|
||||
|
||||
if(!do_after(user, 15 SECONDS, target = owner))
|
||||
user.visible_message(
|
||||
"<span class='warning'>[user] fails to cut through [owner]'s [name].</span>",
|
||||
"<span class='warning'>You fail to cut through [owner]'s [name].</span>",
|
||||
"<span class='notice'>You hear the grinding stop.</span>"
|
||||
)
|
||||
return FALSE
|
||||
|
||||
// check again after the do_after to make sure they haven't gotten up
|
||||
if(!IS_HORIZONTAL(owner))
|
||||
return FALSE
|
||||
|
||||
user.visible_message(
|
||||
"<span class='warning'>\The [name] turns to shreds as [user] cleaves through it!</span>",
|
||||
"<span class='warning'>\The [name] turns to shreds as you cleave through it!</span>",
|
||||
"<span class='notice'>You hear something fall as the grinding ends.</span>"
|
||||
)
|
||||
|
||||
playsound(I, I.hitsound, 50)
|
||||
// you've torn it up, get rid of it.
|
||||
new /obj/effect/decal/cleanable/shreds(owner.loc)
|
||||
// just unequip them since they qdel on drop
|
||||
owner.unEquip(src, TRUE, TRUE)
|
||||
if(istype(owner.head, /obj/item/clothing/head/helmet/changeling))
|
||||
owner.unEquip(owner.head, TRUE, TRUE)
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/head/helmet/changeling
|
||||
name = "chitinous mass"
|
||||
|
||||
Reference in New Issue
Block a user