mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* set up heretic baseline sets up void path baseline + grasp * a whole bunch of shit modifies so much stuff bro * new spell! yippie adds funny slip spell and proper port of void blast * a lot of updates adds pretty much everything except lore (lol!) * updates desc + lore going to add a lot of lore next fml * lore lol im not writing all that shit bro someone else do it * updates suit stuff per mqiib pr dont merge until his is done * a lot of code cleanup Makes a lot of the heretic code more fucking readable Jesus Christ, also makes void mark actually do what it's supposed to do lol * ok ok * fuck mqiib he can update his file bro * adjusts phase/void phase range ye * re-adds void suit thanks mqqib * oops forgot this haha * no putting on void outfit updated to match my previous patches * doesn't need to be so much I thnk fair change * meaningless change to make it work? maybe? this is literally all mqiib's fault * random commit 2!!!! lol!!!
51 lines
1.5 KiB
Plaintext
51 lines
1.5 KiB
Plaintext
/datum/status_effect/freon
|
|
id = "frozen"
|
|
duration = 100
|
|
status_type = STATUS_EFFECT_UNIQUE
|
|
alert_type = /atom/movable/screen/alert/status_effect/freon
|
|
var/icon/cube
|
|
var/can_melt = TRUE
|
|
|
|
/atom/movable/screen/alert/status_effect/freon
|
|
name = "Frozen Solid"
|
|
desc = "You're frozen inside an ice cube, and cannot move! You can still do stuff, like shooting. Resist out of the cube!"
|
|
icon_state = "frozen"
|
|
|
|
/datum/status_effect/freon/on_apply()
|
|
RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(owner_resist))
|
|
if(!owner.stat)
|
|
to_chat(owner, span_userdanger("You become frozen in a cube!"))
|
|
cube = icon('icons/effects/freeze.dmi', "ice_cube")
|
|
owner.add_overlay(cube)
|
|
owner.update_mobility()
|
|
return ..()
|
|
|
|
/datum/status_effect/freon/tick()
|
|
owner.update_mobility()
|
|
if(can_melt && owner.bodytemperature >= BODYTEMP_NORMAL)
|
|
qdel(src)
|
|
|
|
/datum/status_effect/freon/proc/owner_resist()
|
|
to_chat(owner, "You start breaking out of the ice cube!")
|
|
if(do_after(owner, 4 SECONDS, owner))
|
|
if(!QDELETED(src))
|
|
to_chat(owner, "You break out of the ice cube!")
|
|
owner.remove_status_effect(/datum/status_effect/freon)
|
|
owner.update_mobility()
|
|
|
|
/datum/status_effect/freon/on_remove()
|
|
if(!owner.stat)
|
|
to_chat(owner, "The cube melts!")
|
|
owner.cut_overlay(cube)
|
|
owner.adjust_bodytemperature(100)
|
|
owner.update_mobility()
|
|
UnregisterSignal(owner, COMSIG_LIVING_RESIST)
|
|
|
|
/datum/status_effect/freon/watcher
|
|
duration = 8
|
|
can_melt = FALSE
|
|
|
|
/datum/status_effect/freon/lasting
|
|
id = "lasting_frozen"
|
|
duration = -1
|