mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 11:38:12 +01:00
FOAAAAAAAM
This commit is contained in:
@@ -14,23 +14,25 @@
|
||||
var/amount = 3
|
||||
var/expand = 1
|
||||
var/metal = 0
|
||||
var/dries = 1 //VOREStation Add
|
||||
var/slips = 0 //VOREStation Add
|
||||
|
||||
/obj/effect/effect/foam/Initialize(var/mapload, var/ismetal = 0)
|
||||
. = ..()
|
||||
icon_state = "[ismetal? "m" : ""]foam"
|
||||
//icon_state = "[ismetal? "m" : ""]foam" //VOREStation Removal
|
||||
metal = ismetal
|
||||
playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3)
|
||||
|
||||
addtimer(CALLBACK(src, .proc/post_spread), 3 + metal * 3)
|
||||
addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/harden), 15 SECONDS)
|
||||
if(dries) //VOREStation Add
|
||||
addtimer(CALLBACK(src, .proc/post_spread), 3 + metal * 3)
|
||||
addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/harden), 15 SECONDS)
|
||||
|
||||
/obj/effect/effect/foam/proc/post_spread()
|
||||
process()
|
||||
checkReagents()
|
||||
|
||||
/obj/effect/effect/foam/proc/pre_harden()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return //VOREStation Edit
|
||||
|
||||
/obj/effect/effect/foam/proc/harden()
|
||||
if(metal)
|
||||
@@ -83,7 +85,7 @@
|
||||
return
|
||||
if(metal)
|
||||
return
|
||||
if(istype(AM, /mob/living))
|
||||
if(slips && istype(AM, /mob/living)) //VOREStation Add
|
||||
var/mob/living/M = AM
|
||||
M.slip("the foam", 6)
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/obj/effect/effect/foam/firefighting
|
||||
name = "firefighting foam"
|
||||
icon_state = "mfoam" //Whiter
|
||||
color = "#A6FAFF"
|
||||
var/lifetime = 3
|
||||
dries = FALSE // We do this ourselves
|
||||
slips = FALSE
|
||||
|
||||
/obj/effect/effect/foam/firefighting/Initialize()
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/effect/foam/firefighting/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/effect/foam/firefighting/process()
|
||||
if(lifetime-- <= 0)
|
||||
flick("[icon_state]-disolve", src)
|
||||
QDEL_IN(src, 5)
|
||||
@@ -21,7 +21,7 @@
|
||||
step_towards(src, target)
|
||||
var/turf/T = get_turf(src)
|
||||
if(T && reagents)
|
||||
reagents.touch_turf(T)
|
||||
reagents.touch_turf(T, reagents.total_volume) //VOREStation Add
|
||||
var/mob/M
|
||||
for(var/atom/A in T)
|
||||
if(!ismob(A) && A.simulated) // Mobs are handled differently
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/weapon/extinguisher
|
||||
name = "fire extinguisher"
|
||||
desc = "A traditional red fire extinguisher."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon = 'icons/obj/items_vr.dmi' //VOREStation Edit
|
||||
icon_state = "fire_extinguisher0"
|
||||
item_state = "fire_extinguisher"
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
@@ -36,12 +36,12 @@
|
||||
|
||||
/obj/item/weapon/extinguisher/Initialize()
|
||||
create_reagents(max_water)
|
||||
reagents.add_reagent("water", max_water)
|
||||
reagents.add_reagent("firefoam", max_water) //VOREStation Edit
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/extinguisher/examine(mob/user)
|
||||
if(..(user, 0))
|
||||
to_chat(user, "[bicon(src)] [src.name] contains [src.reagents.total_volume] units of water left!")
|
||||
to_chat(user, "[bicon(src)] [src.name] contains [src.reagents.total_volume] units of foam left!") //VOREStation Edit
|
||||
|
||||
/obj/item/weapon/extinguisher/attack_self(mob/user as mob)
|
||||
safety = !safety
|
||||
@@ -70,7 +70,7 @@
|
||||
/obj/item/weapon/extinguisher/afterattack(var/atom/target, var/mob/user, var/flag)
|
||||
//TODO; Add support for reagents in water.
|
||||
|
||||
if( istype(target, /obj/structure/reagent_dispensers/watertank) && flag)
|
||||
if( istype(target, /obj/structure/reagent_dispensers) && flag) //VOREStation Edit
|
||||
var/obj/o = target
|
||||
var/amount = o.reagents.trans_to_obj(src, 50)
|
||||
to_chat(user, "<span class='notice'>You fill [src] with [amount] units of the contents of [target].</span>")
|
||||
|
||||
Reference in New Issue
Block a user