diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index fdcbc1dceeb..7dc1f58688a 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -74,9 +74,11 @@ layer = 3 icon = 'icons/effects/effects.dmi' icon_state = "cobweb1" - burn_state = 0 //Burnable burntime = 1 +/obj/effect/decal/cleanable/cobweb/fire_act() + qdel(src) + /obj/effect/decal/cleanable/molten_item name = "gooey grey mass" desc = "It looks like a melted... something." diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index f81ef319ca1..26835a69788 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -37,6 +37,7 @@ ..() /obj/effect/decal/cleanable/fire_act() - reagents.chem_temp += 30 - reagents.handle_reactions() + if(reagents) + reagents.chem_temp += 30 + reagents.handle_reactions() ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index 1cabfc03243..a0d01834972 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -2,6 +2,8 @@ name = "cabinet" desc = "Old will forever be in fashion." icon_state = "cabinet" + burn_state = 0 //Burnable + burntime = 20 /obj/structure/closet/acloset name = "strange closet" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 4f57788059d..1d37c9d78ed 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -111,6 +111,8 @@ name = "coffin" desc = "It's a burial receptacle for the dearly departed." icon_state = "coffin" + burn_state = 0 //Burnable + burntime = 20 /obj/structure/closet/wardrobe/red name = "security wardrobe" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index e5d818ca19f..e7c46ced1ce 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -2,6 +2,8 @@ name = "booze storage" req_access = list(access_bar) icon_state = "cabinet" + burn_state = 0 //Burnable + burntime = 20 /obj/structure/closet/secure_closet/bar/New() ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d3dac41e27d..908c05c33d8 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -25,6 +25,8 @@ /obj/structure/closet/secure_closet/personal/cabinet icon_state = "cabinet" + burn_state = 0 //Burnable + burntime = 20 /obj/structure/closet/secure_closet/personal/cabinet/New() ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index fbf237a9cbd..a75437ec952 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -151,6 +151,8 @@ name = "\proper detective's cabinet" req_access = list(access_forensics_lockers) icon_state = "cabinet" + burn_state = 0 //Burnable + burntime = 20 /obj/structure/closet/secure_closet/detective/New() ..() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 0bebe7a3ee0..58101dca40a 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -29,6 +29,7 @@ item_state = "jackboots" armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0) strip_delay = 70 + burn_state = -1 //Won't burn in fires /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" @@ -36,7 +37,6 @@ permeability_coefficient = 0.01 flags = NOSLIP armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30) - burn_state = -1 //Won't burn in fires /obj/item/clothing/shoes/sandal desc = "A pair of rather plain, wooden sandals." @@ -86,6 +86,7 @@ item_color = "hosred" strip_delay = 50 put_on_delay = 50 + burn_state = -1 //Won't burn in fires /obj/item/clothing/shoes/winterboots name = "winter boots" diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 44e2d98abf6..24989946279 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -8,6 +8,10 @@ MakeHood() ..() +/obj/item/clothing/suit/hooded/Destroy() + qdel(hood) + ..() + /obj/item/clothing/suit/hooded/proc/MakeHood() if(!hood) var/obj/item/clothing/head/winterhood/W = new hoodtype(src) @@ -93,6 +97,9 @@ verbs -= /obj/item/clothing/suit/space/hardsuit/verb/Jetpack verbs -= /obj/item/clothing/suit/space/hardsuit/verb/Jetpack_Rockets ..() +/obj/item/clothing/suit/space/hardsuit/Destroy() + qdel(helmet) + ..() /obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet() if(!helmettype) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b99a78d7e9e..b8024eed08d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -125,11 +125,12 @@ f_loss += 60 - shred_clothing(1,50) - if (prob(getarmor(null, "bomb"))) b_loss = b_loss/1.5 f_loss = f_loss/1.5 + shred_clothing(1,25) + else + shred_clothing(1,50) if (!istype(ears, /obj/item/clothing/ears/earmuffs)) adjustEarDamage(30, 120) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index df2c627615c..48250417654 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -12,7 +12,7 @@ health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute if( ((maxHealth - total_burn) < config.health_threshold_dead) && stat == DEAD ) ChangeToHusk() - if(bodytemperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + if(on_fire) shred_clothing() med_hud_set_health() med_hud_set_status() diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index a4c1a29a2aa..4bd3d94f560 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -440,6 +440,9 @@ w_uniform.shred(bomb,shock-absorbed,src) /obj/item/proc/shred(var/bomb,var/shock,var/mob/living/carbon/human/Human) + if(flags & ABSTRACT) + return -1 + var/shredded if(!bomb) @@ -449,7 +452,7 @@ shredded = -1 //Heat protection = Fireproof else if(shock > 0) - if(prob(min(90,max(10,shock)))) + if(prob(min(90,max(0,shock)))) shredded = armor["bomb"] + 10 //It gets shredded, but it also absorbs the shock the clothes underneath would recieve by this amount else shredded = -1 //It survives explosion @@ -463,8 +466,7 @@ Item.loc = src.loc spawn(1) //so the shreds aren't instantly deleted by the explosion var/obj/effect/decal/cleanable/shreds/Shreds = new(loc) - Shreds.name = "shredded [src.name]" - Shreds.desc = "The sad remains of what used to be a glorious [src.name]." + Shreds.desc = "The sad remains of what used to be [src.name]." qdel(src) else burn()