mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-05 23:12:26 +00:00
Updated turf procs for new blood system.
This commit is contained in:
@@ -9,10 +9,17 @@
|
||||
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
|
||||
|
||||
/turf/simulated/New()
|
||||
..()
|
||||
levelupdate()
|
||||
|
||||
/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)
|
||||
if(movement_disabled && usr.ckey != movement_disabled_exception)
|
||||
usr << "\red Movement is admin-disabled." //This is to identify lag problems
|
||||
@@ -21,42 +28,41 @@
|
||||
if (istype(A,/mob/living/carbon))
|
||||
var/mob/living/carbon/M = A
|
||||
if(M.lying) return
|
||||
dirt++
|
||||
var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src)
|
||||
if (dirt >= 30)
|
||||
if (!dirtoverlay)
|
||||
dirtoverlay = new/obj/effect/decal/cleanable/dirt(src)
|
||||
dirtoverlay.alpha = 15
|
||||
else if (dirt > 30)
|
||||
dirtoverlay.alpha = min(dirtoverlay.alpha+20, 255)
|
||||
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H.shoes, /obj/item/clothing/shoes/clown_shoes))
|
||||
var/obj/item/clothing/shoes/clown_shoes/O = H.shoes
|
||||
if(H.m_intent == "run")
|
||||
if(O.footstep >= 2)
|
||||
O.footstep = 0
|
||||
playsound(src, "clownstep", 50, 1) // this will get annoying very fast.
|
||||
else
|
||||
O.footstep++
|
||||
else
|
||||
playsound(src, "clownstep", 20, 1)
|
||||
|
||||
// Tracking blood
|
||||
var/list/bloodDNA = null
|
||||
var/bloodcolor=""
|
||||
if(H.shoes)
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(S.track_blood && S.blood_DNA)
|
||||
bloodDNA = S.blood_DNA
|
||||
bloodcolor=S.blood_color
|
||||
S.track_blood--
|
||||
else
|
||||
if(H.track_blood && H.feet_blood_DNA)
|
||||
bloodDNA = H.feet_blood_DNA
|
||||
bloodcolor=H.feet_blood_color
|
||||
H.track_blood--
|
||||
|
||||
if (bloodDNA)
|
||||
var/obj/effect/decal/cleanable/blood/footprints/here = new(src)
|
||||
here.icon_state = "blood1"
|
||||
here.dir = H.dir
|
||||
here.blood_DNA |= bloodDNA.Copy()
|
||||
src.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,H.dir,0,bloodcolor) // Coming
|
||||
var/turf/simulated/from = get_step(H,reverse_direction(H.dir))
|
||||
if(from)
|
||||
var/obj/effect/decal/cleanable/blood/footprints/there = new(from)
|
||||
there.icon_state = "blood2"
|
||||
there.dir = H.dir
|
||||
there.blood_DNA |= bloodDNA.Copy()
|
||||
if(istype(from) && from)
|
||||
from.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,0,H.dir,bloodcolor) // Going
|
||||
|
||||
bloodDNA = null
|
||||
bloodDNA = null
|
||||
|
||||
switch (src.wet)
|
||||
if(1)
|
||||
@@ -66,8 +72,8 @@
|
||||
step(M, M.dir)
|
||||
M << "\blue You slipped on the wet floor!"
|
||||
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
M.Stun(8)
|
||||
M.Weaken(5)
|
||||
M.Stun(5)
|
||||
M.Weaken(3)
|
||||
else
|
||||
M.inertia_dir = 0
|
||||
return
|
||||
@@ -77,13 +83,13 @@
|
||||
step(M, M.dir)
|
||||
M << "\blue You slipped on the wet floor!"
|
||||
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
M.Stun(8)
|
||||
M.Weaken(5)
|
||||
M.Stun(5)
|
||||
M.Weaken(3)
|
||||
else
|
||||
M.inertia_dir = 0
|
||||
return
|
||||
|
||||
if(2) //lube //can cause infinite loops - needs work
|
||||
if(2) //lube //can cause infinite loops - needs work
|
||||
if(!istype(M, /mob/living/carbon/slime))
|
||||
M.stop_pulling()
|
||||
step(M, M.dir)
|
||||
@@ -95,6 +101,29 @@
|
||||
M << "\blue You slipped on the floor!"
|
||||
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
M.Weaken(10)
|
||||
if(3) // Ice
|
||||
if(istype(M, /mob/living/carbon/human)) // Added check since monkeys don't have shoes
|
||||
if ((M.m_intent == "run") && !(istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP) && prob(30))
|
||||
M.stop_pulling()
|
||||
step(M, M.dir)
|
||||
M << "\blue You slipped on the icy floor!"
|
||||
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
M.Stun(4)
|
||||
M.Weaken(3)
|
||||
else
|
||||
M.inertia_dir = 0
|
||||
return
|
||||
else if(!istype(M, /mob/living/carbon/slime))
|
||||
if (M.m_intent == "run" && prob(30))
|
||||
M.stop_pulling()
|
||||
step(M, M.dir)
|
||||
M << "\blue You slipped on the icy floor!"
|
||||
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
M.Stun(4)
|
||||
M.Weaken(3)
|
||||
else
|
||||
M.inertia_dir = 0
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
@@ -106,15 +135,11 @@
|
||||
for(var/obj/effect/decal/cleanable/blood/B in contents)
|
||||
if(!B.blood_DNA[M.dna.unique_enzymes])
|
||||
B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
|
||||
if (M.virus2.len)
|
||||
B.virus2 |= virus_copylist(M.virus2)
|
||||
return 1 //we bloodied the floor
|
||||
|
||||
//if there isn't a blood decal already, make one.
|
||||
var/obj/effect/decal/cleanable/blood/newblood = new /obj/effect/decal/cleanable/blood(src)
|
||||
newblood.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
|
||||
if (M.virus2.len)
|
||||
newblood.virus2 |= virus_copylist(M.virus2)
|
||||
return 1 //we bloodied the floor
|
||||
|
||||
|
||||
@@ -123,12 +148,10 @@
|
||||
if( istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/human))
|
||||
var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(src)
|
||||
this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
|
||||
if (M.virus2.len)
|
||||
this.virus2 = virus_copylist(M.virus2)
|
||||
|
||||
else if( istype(M, /mob/living/carbon/alien ))
|
||||
var/obj/effect/decal/cleanable/xenoblood/this = new /obj/effect/decal/cleanable/xenoblood(src)
|
||||
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/oil(src)
|
||||
new /obj/effect/decal/cleanable/blood/oil(src)
|
||||
Reference in New Issue
Block a user