mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 10:11:09 +00:00
26 lines
788 B
Plaintext
26 lines
788 B
Plaintext
/**
|
|
* # cursed element!
|
|
*
|
|
*Attaching this element to something will make it float, and get a special ai controller!
|
|
*/
|
|
/datum/element/cursed
|
|
element_flags = ELEMENT_DETACH
|
|
|
|
/datum/element/cursed/Attach(datum/target, slot)
|
|
. = ..()
|
|
if(!isitem(target))
|
|
return COMPONENT_INCOMPATIBLE
|
|
var/obj/item/master = target
|
|
var/datum/ai_controller/ai = new /datum/ai_controller/cursed(master)
|
|
ai.blackboard[BB_TARGET_SLOT] = slot
|
|
master.ai_controller = ai
|
|
master.AddElement(/datum/element/movetype_handler)
|
|
ADD_TRAIT(master, TRAIT_MOVE_FLYING, ELEMENT_TRAIT)
|
|
|
|
/datum/element/cursed/Detach(datum/source)
|
|
. = ..()
|
|
var/obj/item/master = source
|
|
QDEL_NULL(master.ai_controller)
|
|
REMOVE_TRAIT(master, TRAIT_MOVE_FLYING, ELEMENT_TRAIT)
|
|
master.RemoveElement(/datum/element/movetype_handler)
|