mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 22:47:59 +01:00
Reintegrate mob fire
I took out the entire on_fire system to work on LINDA. This commit readds it.
This commit is contained in:
@@ -338,7 +338,9 @@
|
||||
usr.attack_log += text("\[[time_stamp()]\] <font color='red'>[usr.real_name] ([usr.ckey]) cast the spell [name] on [L.real_name] ([L.ckey]).</font>")
|
||||
msg_admin_attack("[usr.real_name] ([usr.ckey])[isAntag(usr) ? "(ANTAG)" : ""] has cast the spell [name] on [L.real_name] ([L.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[usr.x];Y=[usr.y];Z=[usr.z]'>JMP</a>)")
|
||||
|
||||
L.visible_message("\red <b>[L.name]</b> suddenly bursts into flames!") //uh yeah will have to fix this later it does nothing right now
|
||||
L.adjust_fire_stacks(0.5)
|
||||
L.visible_message("\red <b>[L.name]</b> suddenly bursts into flames!")
|
||||
L.on_fire = 1
|
||||
L.update_icon = 1
|
||||
playsound(L.loc, 'sound/effects/bamf.ogg', 50, 0)
|
||||
|
||||
|
||||
@@ -175,6 +175,7 @@
|
||||
if(!handle_suit)
|
||||
C.bodytemperature = max(0, C.bodytemperature - 100)
|
||||
C.adjustFireLoss(10)
|
||||
C.ExtinguishMob()
|
||||
|
||||
C.visible_message("\red [usr] sprays a cloud of fine ice crystals, engulfing [C]!")
|
||||
log_admin("[ckey(usr.key)] has used cryokinesis on [ckey(C.key)], internals no, suit no")
|
||||
@@ -533,6 +534,11 @@
|
||||
"their hair","what to do next","their job","space","amusing things","sad things",
|
||||
"annoying things","happy things","something incoherent","something they did wrong")
|
||||
var/thoughts = "thinking about [pick(randomthoughts)]"
|
||||
|
||||
if(M.fire_stacks)
|
||||
pain_condition -= 50
|
||||
thoughts = "preoccupied with the fire"
|
||||
|
||||
if (M.radiation)
|
||||
pain_condition -= 25
|
||||
|
||||
|
||||
@@ -490,8 +490,17 @@ mob/living/carbon/human/proc/vamp_burn()
|
||||
if(60 to 80)
|
||||
src << "<span class='warning'>Your skin sizzles!</span>"
|
||||
if((-INFINITY) to 60)
|
||||
src << "<b>\red You continue to burn!</b>"
|
||||
if(!on_fire)
|
||||
src << "<b>\red Your skin catches fire!</b>"
|
||||
else
|
||||
src << "<b>\red You continue to burn!</b>"
|
||||
fire_stacks += 5
|
||||
IgniteMob()
|
||||
emote("scream")
|
||||
|
||||
else
|
||||
switch(health)
|
||||
if((-INFINITY) to 60)
|
||||
fire_stacks++
|
||||
IgniteMob()
|
||||
adjustFireLoss(3)
|
||||
return
|
||||
|
||||
@@ -377,6 +377,7 @@
|
||||
animation.icon_state = "liquify"
|
||||
animation.layer = 5
|
||||
animation.master = holder
|
||||
M.current.ExtinguishMob()
|
||||
if(M.current.buckled)
|
||||
M.current.buckled.unbuckle()
|
||||
flick("liquify",animation)
|
||||
@@ -450,6 +451,7 @@
|
||||
|
||||
if(!picked || !isturf(picked))
|
||||
return
|
||||
M.current.ExtinguishMob()
|
||||
if(M.current.buckled)
|
||||
M.current.buckled.unbuckle()
|
||||
var/atom/movable/overlay/animation = new /atom/movable/overlay( get_turf(usr) )
|
||||
|
||||
@@ -441,6 +441,7 @@
|
||||
// M.metabslow = 1
|
||||
add_fingerprint(usr)
|
||||
update_icon()
|
||||
M.ExtinguishMob()
|
||||
return 1
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/verb/move_eject()
|
||||
|
||||
@@ -96,6 +96,10 @@
|
||||
|
||||
if(iscarbon(M))
|
||||
flash_carbon(M, user, 5, 1)
|
||||
if(overcharged)
|
||||
M.adjust_fire_stacks(6)
|
||||
M.IgniteMob()
|
||||
burn_out()
|
||||
return 1
|
||||
|
||||
else if(issilicon(M))
|
||||
|
||||
@@ -163,6 +163,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/cigarette/process()
|
||||
var/turf/location = get_turf(src)
|
||||
var/mob/living/M = loc
|
||||
if(isliving(loc))
|
||||
M.IgniteMob()
|
||||
smoketime--
|
||||
if(smoketime < 1)
|
||||
die()
|
||||
@@ -449,7 +452,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/weapon/lighter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
if(!isliving(M))
|
||||
return
|
||||
// M.IgniteMob() //linda shit do later
|
||||
M.IgniteMob()
|
||||
if(!istype(M, /mob))
|
||||
return
|
||||
|
||||
|
||||
@@ -157,6 +157,9 @@
|
||||
for(var/atom/atm in get_turf(W))
|
||||
if(!W) return
|
||||
W.reagents.reaction(atm)
|
||||
if(isliving(atm)) //For extinguishing mobs on fire
|
||||
var/mob/living/M = atm
|
||||
M.ExtinguishMob()
|
||||
|
||||
if(W.loc == my_target) break
|
||||
sleep(2)
|
||||
|
||||
@@ -373,6 +373,8 @@
|
||||
V.welded = 1
|
||||
V.update_icon()
|
||||
V.visible_message("<span class='danger'>[V] was frozen shut!</span>")
|
||||
for(var/mob/living/L in T)
|
||||
L.ExtinguishMob()
|
||||
return
|
||||
|
||||
/datum/effect/effect/system/freezing_smoke_spread
|
||||
|
||||
@@ -267,7 +267,9 @@
|
||||
var/turf/location = get_turf(user)
|
||||
if (istype(location, /turf))
|
||||
location.hotspot_expose(700, 50, 1)
|
||||
|
||||
if(isliving(O))
|
||||
var/mob/living/L = O
|
||||
L.IgniteMob()
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -205,76 +205,80 @@
|
||||
/obj/machinery/shower/proc/wash(atom/movable/O as obj|mob)
|
||||
if(!on) return
|
||||
|
||||
if(iscarbon(O))
|
||||
var/mob/living/carbon/M = O
|
||||
M << "<span class='warning'>You've been drenched in water!</span>"
|
||||
if(M.r_hand)
|
||||
M.r_hand.clean_blood()
|
||||
if(M.l_hand)
|
||||
M.l_hand.clean_blood()
|
||||
if(M.back)
|
||||
if(M.back.clean_blood())
|
||||
M.update_inv_back(0)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/washgloves = 1
|
||||
var/washshoes = 1
|
||||
var/washmask = 1
|
||||
var/washears = 1
|
||||
var/washglasses = 1
|
||||
if(isliving(O))
|
||||
var/mob/living/L = O
|
||||
L.ExtinguishMob()
|
||||
L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily
|
||||
L << "<span class='warning'>You've been drenched in water!</span>"
|
||||
if(iscarbon(O))
|
||||
var/mob/living/carbon/M = O
|
||||
if(M.r_hand)
|
||||
M.r_hand.clean_blood()
|
||||
if(M.l_hand)
|
||||
M.l_hand.clean_blood()
|
||||
if(M.back)
|
||||
if(M.back.clean_blood())
|
||||
M.update_inv_back(0)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/washgloves = 1
|
||||
var/washshoes = 1
|
||||
var/washmask = 1
|
||||
var/washears = 1
|
||||
var/washglasses = 1
|
||||
|
||||
if(H.wear_suit)
|
||||
washgloves = !(H.wear_suit.flags_inv & HIDEGLOVES)
|
||||
washshoes = !(H.wear_suit.flags_inv & HIDESHOES)
|
||||
if(H.wear_suit)
|
||||
washgloves = !(H.wear_suit.flags_inv & HIDEGLOVES)
|
||||
washshoes = !(H.wear_suit.flags_inv & HIDESHOES)
|
||||
|
||||
if(H.head)
|
||||
washmask = !(H.head.flags_inv & HIDEMASK)
|
||||
washglasses = !(H.head.flags_inv & HIDEEYES)
|
||||
washears = !(H.head.flags_inv & HIDEEARS)
|
||||
if(H.head)
|
||||
washmask = !(H.head.flags_inv & HIDEMASK)
|
||||
washglasses = !(H.head.flags_inv & HIDEEYES)
|
||||
washears = !(H.head.flags_inv & HIDEEARS)
|
||||
|
||||
if(H.wear_mask)
|
||||
if (washears)
|
||||
washears = !(H.wear_mask.flags_inv & HIDEEARS)
|
||||
if (washglasses)
|
||||
washglasses = !(H.wear_mask.flags_inv & HIDEEYES)
|
||||
if(H.wear_mask)
|
||||
if (washears)
|
||||
washears = !(H.wear_mask.flags_inv & HIDEEARS)
|
||||
if (washglasses)
|
||||
washglasses = !(H.wear_mask.flags_inv & HIDEEYES)
|
||||
|
||||
if(H.head)
|
||||
if(H.head.clean_blood())
|
||||
H.update_inv_head(0,0)
|
||||
if(H.wear_suit)
|
||||
if(H.wear_suit.clean_blood())
|
||||
H.update_inv_wear_suit(0,0)
|
||||
else if(H.w_uniform)
|
||||
if(H.w_uniform.clean_blood())
|
||||
H.update_inv_w_uniform(0,0)
|
||||
if(H.gloves && washgloves)
|
||||
if(H.gloves.clean_blood())
|
||||
H.update_inv_gloves(0,0)
|
||||
if(H.shoes && washshoes)
|
||||
if(H.shoes.clean_blood())
|
||||
H.update_inv_shoes(0,0)
|
||||
if(H.wear_mask && washmask)
|
||||
if(H.wear_mask.clean_blood())
|
||||
H.update_inv_wear_mask(0)
|
||||
if(H.glasses && washglasses)
|
||||
if(H.glasses.clean_blood())
|
||||
H.update_inv_glasses(0)
|
||||
if(H.l_ear && washears)
|
||||
if(H.l_ear.clean_blood())
|
||||
H.update_inv_ears(0)
|
||||
if(H.r_ear && washears)
|
||||
if(H.r_ear.clean_blood())
|
||||
H.update_inv_ears(0)
|
||||
if(H.belt)
|
||||
if(H.belt.clean_blood())
|
||||
H.update_inv_belt(0)
|
||||
else
|
||||
if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags
|
||||
if(M.wear_mask.clean_blood())
|
||||
M.update_inv_wear_mask(0)
|
||||
|
||||
if(H.head)
|
||||
if(H.head.clean_blood())
|
||||
H.update_inv_head(0,0)
|
||||
if(H.wear_suit)
|
||||
if(H.wear_suit.clean_blood())
|
||||
H.update_inv_wear_suit(0,0)
|
||||
else if(H.w_uniform)
|
||||
if(H.w_uniform.clean_blood())
|
||||
H.update_inv_w_uniform(0,0)
|
||||
if(H.gloves && washgloves)
|
||||
if(H.gloves.clean_blood())
|
||||
H.update_inv_gloves(0,0)
|
||||
if(H.shoes && washshoes)
|
||||
if(H.shoes.clean_blood())
|
||||
H.update_inv_shoes(0,0)
|
||||
if(H.wear_mask && washmask)
|
||||
if(H.wear_mask.clean_blood())
|
||||
H.update_inv_wear_mask(0)
|
||||
if(H.glasses && washglasses)
|
||||
if(H.glasses.clean_blood())
|
||||
H.update_inv_glasses(0)
|
||||
if(H.l_ear && washears)
|
||||
if(H.l_ear.clean_blood())
|
||||
H.update_inv_ears(0)
|
||||
if(H.r_ear && washears)
|
||||
if(H.r_ear.clean_blood())
|
||||
H.update_inv_ears(0)
|
||||
if(H.belt)
|
||||
if(H.belt.clean_blood())
|
||||
H.update_inv_belt(0)
|
||||
else
|
||||
if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags
|
||||
if(M.wear_mask.clean_blood())
|
||||
M.update_inv_wear_mask(0)
|
||||
|
||||
else
|
||||
O.clean_blood()
|
||||
O.clean_blood()
|
||||
|
||||
if(isturf(loc))
|
||||
var/turf/tile = loc
|
||||
|
||||
Reference in New Issue
Block a user