mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 23:31:04 +00:00
141 lines
4.2 KiB
Plaintext
141 lines
4.2 KiB
Plaintext
/turf/simulated
|
|
name = "station"
|
|
var/wet = 0
|
|
var/image/wet_overlay = null
|
|
|
|
var/thermite = 0
|
|
oxygen = MOLES_O2STANDARD
|
|
nitrogen = MOLES_N2STANDARD
|
|
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
|
|
var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to
|
|
var/dirt = 0
|
|
var/dirtoverlay = null
|
|
|
|
/turf/simulated/New()
|
|
..()
|
|
levelupdate()
|
|
visibilityChanged()
|
|
|
|
/turf/simulated/proc/burn_tile()
|
|
|
|
/turf/simulated/proc/MakeSlippery(wet_setting = TURF_WET_WATER) // 1 = Water, 2 = Lube, 3 = Ice
|
|
if(wet >= wet_setting)
|
|
return
|
|
wet = wet_setting
|
|
if(wet_setting != TURF_DRY)
|
|
if(wet_overlay)
|
|
overlays -= wet_overlay
|
|
wet_overlay = null
|
|
var/turf/simulated/floor/F = src
|
|
if(istype(F))
|
|
wet_overlay = image('icons/effects/water.dmi', src, "wet_floor_static")
|
|
else
|
|
wet_overlay = image('icons/effects/water.dmi', src, "wet_static")
|
|
overlays += wet_overlay
|
|
|
|
spawn(rand(790, 820)) // Purely so for visual effect
|
|
if(!istype(src, /turf/simulated)) //Because turfs don't get deleted, they change, adapt, transform, evolve and deform. they are one and they are all.
|
|
return
|
|
MakeDry(wet_setting)
|
|
|
|
/turf/simulated/proc/MakeDry(wet_setting = TURF_WET_WATER)
|
|
if(wet > wet_setting)
|
|
return
|
|
wet = TURF_DRY
|
|
if(wet_overlay)
|
|
overlays -= wet_overlay
|
|
|
|
/turf/simulated/proc/AddTracks(var/typepath,var/bloodDNA,var/comingdir,var/goingdir,var/bloodcolor="#A10808")
|
|
var/obj/effect/decal/cleanable/blood/tracks/tracks = locate(typepath) in src
|
|
if(!tracks)
|
|
tracks = new typepath(src)
|
|
tracks.AddTracks(bloodDNA,comingdir,goingdir,bloodcolor)
|
|
|
|
/turf/simulated/Entered(atom/A, atom/OL, ignoreRest = 0)
|
|
..()
|
|
if(!ignoreRest)
|
|
if(ismob(A)) //only mobs make dirt
|
|
if(prob(80))
|
|
dirt++
|
|
|
|
var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt) in src
|
|
if(dirt >= 100)
|
|
if(!dirtoverlay)
|
|
dirtoverlay = new/obj/effect/decal/cleanable/dirt(src)
|
|
dirtoverlay.alpha = 10
|
|
else if(dirt > 100)
|
|
dirtoverlay.alpha = min(dirtoverlay.alpha + 10, 200)
|
|
|
|
if(ishuman(A))
|
|
var/mob/living/carbon/human/M = A
|
|
if(M.lying)
|
|
return 1
|
|
|
|
if(M.flying)
|
|
return ..()
|
|
|
|
// Tracking blood
|
|
var/list/bloodDNA = null
|
|
var/bloodcolor = ""
|
|
if(M.shoes)
|
|
var/obj/item/clothing/shoes/S = M.shoes
|
|
if(S.track_blood && S.blood_DNA)
|
|
bloodDNA = S.blood_DNA
|
|
bloodcolor = S.blood_color
|
|
S.track_blood--
|
|
else
|
|
if(M.track_blood && M.feet_blood_DNA)
|
|
bloodDNA = M.feet_blood_DNA
|
|
bloodcolor = M.feet_blood_color
|
|
M.track_blood--
|
|
|
|
if(bloodDNA)
|
|
src.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,M.dir,0,bloodcolor) // Coming
|
|
var/turf/simulated/from = get_step(M,reverse_direction(M.dir))
|
|
if(istype(from) && from)
|
|
from.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,0,M.dir,bloodcolor) // Going
|
|
|
|
bloodDNA = null
|
|
|
|
switch(src.wet)
|
|
if(TURF_WET_WATER)
|
|
if(!(M.slip("wet floor", 4, 2, 0, 1)))
|
|
M.inertia_dir = 0
|
|
return
|
|
|
|
if(TURF_WET_LUBE) //lube
|
|
M.slip("floor", 0, 5, 3, 0, 1)
|
|
|
|
|
|
if(TURF_WET_ICE) // Ice
|
|
if(!(prob(30) && M.slip("icy floor", 4, 2, 1, 1)))
|
|
M.inertia_dir = 0
|
|
|
|
|
|
//returns 1 if made bloody, returns 0 otherwise
|
|
/turf/simulated/add_blood(mob/living/carbon/human/M)
|
|
if(!..())
|
|
return 0
|
|
|
|
var/obj/effect/decal/cleanable/blood/B = locate() in contents //check for existing blood splatter
|
|
if(!B)
|
|
blood_splatter(src,M.get_blood(M.vessel),1)
|
|
B = locate(/obj/effect/decal/cleanable/blood) in contents
|
|
B.add_blood_list(M)
|
|
return 1 //we bloodied the floor
|
|
|
|
// Only adds blood on the floor -- Skie
|
|
/turf/simulated/add_blood_floor(mob/living/carbon/M as mob)
|
|
if(ishuman(M))
|
|
blood_splatter(src,M,1)
|
|
if( istype(M, /mob/living/carbon/alien ))
|
|
var/obj/effect/decal/cleanable/blood/xeno/this = new /obj/effect/decal/cleanable/blood/xeno(src)
|
|
this.blood_DNA["UNKNOWN BLOOD"] = "X*"
|
|
else if( istype(M, /mob/living/silicon/robot ))
|
|
new /obj/effect/decal/cleanable/blood/oil(src)
|
|
|
|
/turf/simulated/ChangeTurf(var/path)
|
|
. = ..()
|
|
smooth_icon_neighbors(src)
|
|
|
|
/turf/simulated/proc/is_shielded() |