mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-11 09:22:41 +00:00
* Refactors most spans into span procs * AA * a * AAAAAAAAAAAAAAAAAAAAAA * Update species.dm Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
102 lines
3.4 KiB
Plaintext
102 lines
3.4 KiB
Plaintext
// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code.
|
|
|
|
/obj/effect/decal/cleanable/robot_debris
|
|
name = "robot debris"
|
|
desc = "It's a useless heap of junk... <i>or is it?</i>"
|
|
icon = 'icons/mob/robots.dmi'
|
|
icon_state = "gib1"
|
|
layer = LOW_OBJ_LAYER
|
|
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
|
|
blood_state = BLOOD_STATE_OIL
|
|
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
|
mergeable_decal = FALSE
|
|
beauty = -50
|
|
clean_type = CLEAN_TYPE_BLOOD
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/Initialize()
|
|
. = ..()
|
|
RegisterSignal(src, COMSIG_MOVABLE_PIPE_EJECTING, .proc/on_pipe_eject)
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions, mapload=FALSE)
|
|
set waitfor = FALSE
|
|
var/direction = pick(directions)
|
|
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4, 17; 50), i++) //the 3% chance of 50 steps is intentional and played for laughs.
|
|
if (!mapload)
|
|
sleep(2)
|
|
if (i > 0)
|
|
if (prob(40))
|
|
new /obj/effect/decal/cleanable/oil/streak(src.loc)
|
|
else if (prob(10) && !mapload)
|
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
|
s.set_up(3, 1, src)
|
|
s.start()
|
|
if (!step_to(src, get_step(src, direction), 0))
|
|
break
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/proc/on_pipe_eject(atom/source, direction)
|
|
SIGNAL_HANDLER
|
|
|
|
var/list/dirs
|
|
if(direction)
|
|
dirs = list(direction, turn(direction, -45), turn(direction, 45))
|
|
else
|
|
dirs = GLOB.alldirs.Copy()
|
|
|
|
streak(dirs)
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/ex_act()
|
|
return FALSE
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/limb
|
|
icon_state = "gibarm"
|
|
random_icon_states = list("gibarm", "gibleg")
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/up
|
|
icon_state = "gibup"
|
|
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup","gibup")
|
|
|
|
/obj/effect/decal/cleanable/robot_debris/down
|
|
icon_state = "gibdown"
|
|
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown","gibdown")
|
|
|
|
/obj/effect/decal/cleanable/oil
|
|
name = "motor oil"
|
|
desc = "It's black and greasy. Looks like Beepsky made another mess."
|
|
icon = 'icons/mob/robots.dmi'
|
|
icon_state = "floor1"
|
|
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
|
blood_state = BLOOD_STATE_OIL
|
|
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
|
beauty = -100
|
|
clean_type = CLEAN_TYPE_BLOOD
|
|
|
|
/obj/effect/decal/cleanable/oil/Initialize()
|
|
. = ..()
|
|
reagents.add_reagent(/datum/reagent/fuel/oil, 30)
|
|
|
|
/obj/effect/decal/cleanable/oil/attackby(obj/item/I, mob/living/user)
|
|
var/attacked_by_hot_thing = I.get_temperature()
|
|
if(attacked_by_hot_thing)
|
|
visible_message(span_warning("[user] tries to ignite [src] with [I]!"), span_warning("You try to ignite [src] with [I]."))
|
|
log_combat(user, src, (attacked_by_hot_thing < 480) ? "tried to ignite" : "ignited", I)
|
|
fire_act(attacked_by_hot_thing)
|
|
return
|
|
return ..()
|
|
|
|
/obj/effect/decal/cleanable/oil/fire_act(exposed_temperature, exposed_volume)
|
|
if(exposed_temperature < 480)
|
|
return
|
|
visible_message(span_danger("[src] catches fire!"))
|
|
var/turf/T = get_turf(src)
|
|
qdel(src)
|
|
new /obj/effect/hotspot(T)
|
|
|
|
/obj/effect/decal/cleanable/oil/streak
|
|
icon_state = "streak1"
|
|
random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5")
|
|
beauty = -50
|
|
|
|
/obj/effect/decal/cleanable/oil/slippery/ComponentInitialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE))
|