Files
UrsulaMejor 3192d1ee79 UM-002 - Adventure elements on .dmm files and associated edits (#137)
**Key Features:**

- /obj/adventurepuzzle/element_link
    - allows you to set up trigger-triggerable relationships on .dmm files

- /obj/adventurepuzzle/triggerable/targetable
    - groups together various targetable triggerables for use by target_link

- /obj/adventurepuzzle/invisible/target_link
    - allows you to set a target for targetable triggerables on .dmm files

- adv_test.dmm
    - map for showcasing the various adventure elements and some of their functionality

**Other Changes:**

I had to edit several of the existing elements to make their member variables editable on the .dmm editor

I also instantiated a bunch of variables that marquesas didn't instantiate, and fixed a bug with timed doors
2019-05-12 20:26:29 -07:00

73 lines
1.6 KiB
Plaintext

/obj/adventurepuzzle/element_link
var/triggerer_id = null
var/triggerable_id = null
var/act_type = null
var/triggerer = null
var/triggerable = null
var/is_unpress = 0
New()
..()
spawn(1)
src.link_elements()
spawn(10)
qdel(src)
proc/link_elements()
for(var/obj/adventurepuzzle/A)
if(A.id == src.triggerer_id)
src.triggerer = A
if(A.id == src.triggerable_id)
src.triggerable = A
for(var/obj/item/adventurepuzzle/A)
if(A.id == src.triggerer_id)
src.triggerer = A
if(A.id == src.triggerable_id)
src.triggerable = A
if(src.triggerer && src.triggerable)
if(istype(src.triggerable,/obj/adventurepuzzle/triggerable))
var/obj/adventurepuzzle/triggerable/Y = src.triggerable
if(istype(src.triggerer,/obj/adventurepuzzle/triggerer/twostate))
var/obj/adventurepuzzle/triggerer/twostate/X = src.triggerer
if(is_unpress)
X.triggered_unpress += Y
X.triggered_unpress[Y] = act_type
else
X.triggered += Y
X.triggered[Y] = act_type
else if(istype(src.triggerer,/obj/adventurepuzzle/triggerer))
var/obj/adventurepuzzle/triggerer/X = src.triggerer
X.triggered += Y
X.triggered[Y] = act_type
else if(istype(src.triggerer,/obj/adventurepuzzle/triggerable/triggerer))
var/obj/adventurepuzzle/triggerable/triggerer/X = src.triggerer
X.triggered += Y
X.triggered[Y] = act_type
else if(istype(src.triggerer,/obj/item/adventurepuzzle/triggerer))
var/obj/item/adventurepuzzle/triggerer/X = src.triggerer
X.triggered += Y
X.triggered[Y] = act_type