mirror of
https://github.com/goonstation/goonstation-2020.git
synced 2026-07-12 07:32:20 +01:00
131 lines
3.4 KiB
Plaintext
131 lines
3.4 KiB
Plaintext
/atom/var/list/spookTypes = null
|
|
/atom/proc/spook_act(type)
|
|
//do spooky things
|
|
/atom/proc/spook_data(type)
|
|
//o no
|
|
/atom/proc/spook_getspooks()
|
|
if(istext(spookTypes))
|
|
spookTypes = splittext( spookTypes, ";" )
|
|
return spookTypes
|
|
/datum/buildmode/spook
|
|
name = "Spook"
|
|
desc = {"***********************************************************<br>
|
|
Left Mouse Button on turf/mob/obj = Spook it<br>
|
|
Right Mouse Button on turf/mob/obj = Select spook<br>
|
|
***********************************************************"}
|
|
|
|
var/activeType
|
|
var/activeSpook
|
|
var/spookData
|
|
|
|
click_right(atom/object, var/ctrl, var/alt, var/shift)
|
|
if( object.spookTypes )
|
|
//var/list/otypes = object.spookTypes
|
|
activeSpook = input( "Select a Spook" ) as null|anything in object.spook_getspooks()
|
|
activeType = object.type
|
|
spookData = object.spook_data( activeSpook )
|
|
update_button_text("[activeType]: [activeSpook]")
|
|
|
|
click_left(atom/object)
|
|
if(activeSpook && activeType && (istype( object, activeType ) || (object.spookTypes && activeSpook in object.spook_getspooks())))
|
|
object.spook_act( activeSpook, spookData )
|
|
|
|
/obj/machinery/light/spookTypes = "Break;Set Color"//list("Break", "Set Color")
|
|
/obj/machinery/light/spook_data(what)
|
|
switch(what)
|
|
if("Set Color")
|
|
var/ret = input("What color?") as color
|
|
return list( hex2num(copytext(ret, 2, 4)) / 255.0, hex2num(copytext(ret, 4, 6)) / 255.0, hex2num(copytext(ret, 6, 8)) / 255.0 )
|
|
else
|
|
.=..()
|
|
/obj/machinery/light/spook_act(what,data)
|
|
switch(what)
|
|
if("Break")
|
|
broken()
|
|
if("Set Color")
|
|
light.set_color( arglist(data || list(1,1,1)) )
|
|
else
|
|
..()
|
|
|
|
/obj/machinery/door/spookTypes = "Open;Close;Toggle"
|
|
/obj/machinery/door/spook_act(what, data)
|
|
switch(what)
|
|
if("Open")
|
|
open()
|
|
if("Close")
|
|
close()
|
|
if("Toggle")
|
|
if (src.density)
|
|
open()
|
|
else
|
|
close()
|
|
else
|
|
.=..()
|
|
/obj/machinery/door/airlock/spook_getspooks()
|
|
return ..() + "Deny Sound"
|
|
/obj/machinery/door/airlock/spook_act(what, data)
|
|
switch(what)
|
|
if("Deny Sound")
|
|
play_deny()
|
|
else
|
|
.=..()
|
|
|
|
/obj/item/reagent_containers/food/drinks/drinkingglass
|
|
spookTypes = "Break"
|
|
spook_act(what)
|
|
switch(what)
|
|
if("Break")
|
|
smash()
|
|
else
|
|
.=..()
|
|
/obj/item/device/light/flashlight
|
|
spookTypes = "Set Color;Toggle"
|
|
spook_data(what)
|
|
switch(what)
|
|
if("Set Color")
|
|
var/ret = input("What color?") as color
|
|
return list( hex2num(copytext(ret, 2, 4)) / 255.0, hex2num(copytext(ret, 4, 6)) / 255.0, hex2num(copytext(ret, 6, 8)) / 255.0 )
|
|
else
|
|
.=..()
|
|
spook_act(what,data)
|
|
switch(what)
|
|
if("Set Color")
|
|
light.set_color(arglist( data ))
|
|
if("Toggle")
|
|
attack_self()
|
|
else
|
|
.=..()
|
|
|
|
/obj/storage
|
|
spookTypes = "Toggle"
|
|
spook_act(what)
|
|
switch(what)
|
|
if("Toggle")
|
|
toggle()
|
|
else .=..()
|
|
/*/obj/storage/secure
|
|
spookTypes = "Toggle;Secure"//just because i'm lazy, don't do this please
|
|
spook_act(what)
|
|
switch(what)
|
|
if("Toggle Lock")
|
|
toggle()
|
|
else .=..()
|
|
*/
|
|
/obj/machinery/vending
|
|
spookTypes = "Throw Item"
|
|
spook_act(what)
|
|
switch(what)
|
|
if("Throw Item")
|
|
throw_item()
|
|
else .=..()
|
|
|
|
/obj/item
|
|
spookTypes = "Spook"
|
|
spook_act(what)
|
|
switch(what)
|
|
if("Spook")
|
|
var/rdeg = rand(15,30)
|
|
animate(src, pixel_y = 32, transform = matrix(rdeg, MATRIX_ROTATE), time = 10, loop = -1, easing = SINE_EASING)
|
|
animate(pixel_y = 0, transform = matrix(rdeg * -1, MATRIX_ROTATE), time = 10, loop = -1, easing = SINE_EASING)
|
|
else .=..()
|