From 0433ee38f606bd894dffb6060bdc015c30c334f7 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Tue, 17 Mar 2020 02:35:19 -0700 Subject: [PATCH] Water now properly extinguishes again (especially regarding fire modifiers), and won't duplicate itself. Flamethrowers tweaked again to be properly sane. --- code/modules/mob/_modifiers/fire.dm | 5 ++++- code/modules/mob/living/carbon/human/human_resist.dm | 4 ++-- code/modules/mob/living/living_defense.dm | 3 +++ code/modules/projectiles/guns/magnetic/gasthrower.dm | 1 + code/modules/projectiles/projectile/bullets.dm | 7 ++++--- .../reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm | 4 ++-- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/_modifiers/fire.dm b/code/modules/mob/_modifiers/fire.dm index 7f0cb81c4c..3a3c53a9dc 100644 --- a/code/modules/mob/_modifiers/fire.dm +++ b/code/modules/mob/_modifiers/fire.dm @@ -32,8 +32,11 @@ expire() else if(holder.fire_stacks > 0) - holder.fire_stacks -= 1 + holder.fire_stacks -= 0.5 /datum/modifier/fire/stack_managed/intense mob_overlay_state = "on_fire_intense" damage_per_tick = 10 + +/datum/modifier/fire/stack_managed/weak + damage_per_tick = 1 diff --git a/code/modules/mob/living/carbon/human/human_resist.dm b/code/modules/mob/living/carbon/human/human_resist.dm index 37e20d0d21..56d42c1a15 100644 --- a/code/modules/mob/living/carbon/human/human_resist.dm +++ b/code/modules/mob/living/carbon/human/human_resist.dm @@ -1,6 +1,6 @@ /mob/living/carbon/human/process_resist() //drop && roll - if(on_fire && !buckled) + if((on_fire || has_modifier_of_type(/datum/modifier/fire)) && !buckled) adjust_fire_stacks(-1.2) Weaken(3) spin(32,2) @@ -9,7 +9,7 @@ "You stop, drop, and roll!" ) sleep(30) - if(fire_stacks <= 0) + if(fire_stacks <= 0 && !(has_modifier_of_type(/datum/modifier/fire))) visible_message( "[src] has successfully extinguished themselves!", "You extinguish yourself." diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 09e85364ca..01f1554663 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -363,6 +363,9 @@ handle_light() update_fire() + if(has_modifier_of_type(/datum/modifier/fire)) + remove_modifiers_of_type(/datum/modifier/fire) + /mob/living/proc/update_fire() return diff --git a/code/modules/projectiles/guns/magnetic/gasthrower.dm b/code/modules/projectiles/guns/magnetic/gasthrower.dm index f42ae95061..742b5bd6c5 100644 --- a/code/modules/projectiles/guns/magnetic/gasthrower.dm +++ b/code/modules/projectiles/guns/magnetic/gasthrower.dm @@ -9,6 +9,7 @@ one_handed_penalty = 20 origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_ILLEGAL = 2, TECH_PHORON = 4) w_class = ITEMSIZE_LARGE + slowdown = 1 burst = 3 burst_delay = 1 diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 06144e01f8..e05739d194 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -271,10 +271,11 @@ /obj/item/projectile/bullet/incendiary/flamethrower/tiny damage = 2 incendiary = 0 - modifier_type_to_apply = /datum/modifier/fire/weak + flammability = 2 + modifier_type_to_apply = /datum/modifier/fire/stack_managed/weak modifier_duration = 20 SECONDS - range = 7 - agony = 3 + range = 6 + agony = 0 /* Practice rounds and blanks */ diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index c91a478cfb..489378b533 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -167,10 +167,10 @@ S.visible_message("[S]'s flesh sizzles where the water touches it!", "Your flesh burns in the water!") // Then extinguish people on fire. - var/needed = L.fire_stacks * 5 + var/needed = max(0,L.fire_stacks) * 5 if(amount > needed) L.ExtinguishMob() - L.adjust_fire_stacks(-(amount / 5)) + L.water_act(amount / 25) // Div by 25, as water_act multiplies it by 5 in order to calculate firestack modification. remove_self(needed) /datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)