mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-24 17:22:23 +00:00
- Refactors action button backend
- Action buttons are no longer checked on Life(), items are responsible
for adding/removing/updating them.
- Item action buttons are no longer a static action_button_name define,
items define actions_types, which is a list of paths.
- Items can now have multiple action buttons.
- This is handled by new arguments to ui_action_click, the first
parameter is the user, the second is the path of the action datum
that was invoked.
- Refactored how internals function
- You may now directly switch internals without breaking anything.
- The internals icon has been updated to be more consistent.
- Added action buttons for jetpacks
- Added action buttons for oxygen tanks
- Uses-based implants now qdel() themselves when they run out of uses.
This is somewhat a buff to traitor implants, but it's such a minor
change. The actual reasoning is so that the action buttons are properly
removed.
- Fixed a bug with the "Boo" spell which resulted in IsAvailable failing
for certain ghosts.
- You can now shift-click on movable HUD elements to reset them to the
proper position (thank fucking christ)
52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
|
|
|
|
var/global/list/boo_phrases=list(
|
|
"You feel a chill run down your spine.",
|
|
"You think you see a figure in your peripheral vision.",
|
|
"What was that?",
|
|
"The hairs stand up on the back of your neck.",
|
|
"You are filled with a great sadness.",
|
|
"Something doesn't feel right...",
|
|
"You feel a presence in the room.",
|
|
"It feels like someone's standing behind you.",
|
|
)
|
|
|
|
/obj/effect/proc_holder/spell/aoe_turf/boo
|
|
name = "Boo!"
|
|
desc = "Fuck with the living."
|
|
|
|
ghost = 1
|
|
|
|
school = "transmutation"
|
|
charge_max = 600
|
|
clothes_req = 0
|
|
stat_allowed = 1
|
|
invocation = ""
|
|
invocation_type = "none"
|
|
range = 1 // Or maybe 3?
|
|
|
|
/obj/effect/proc_holder/spell/aoe_turf/boo/cast(list/targets)
|
|
for(var/turf/T in targets)
|
|
for(var/atom/A in T.contents)
|
|
|
|
// Bug humans
|
|
if(ishuman(A))
|
|
var/mob/living/carbon/human/H = A
|
|
if(H && H.client)
|
|
to_chat(H, "<i>[pick(boo_phrases)]</i>")
|
|
|
|
// Flicker unblessed lights in range
|
|
if(istype(A,/obj/machinery/light))
|
|
var/obj/machinery/light/L = A
|
|
if(L)
|
|
L.flicker()
|
|
|
|
// OH GOD BLUE APC (single animation cycle)
|
|
if(istype(A, /obj/machinery/power/apc))
|
|
A:spookify()
|
|
|
|
if(istype(A, /obj/machinery/status_display))
|
|
A:spookymode=1
|
|
|
|
if(istype(A, /obj/machinery/ai_status_display))
|
|
A:spookymode=1 |