mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-28 18:41:37 +00:00
* Traits given by Elements now have element trait as their source. (#62134) Hopefully the code is more organized and consistent this way. * Traits given by Elements now have element trait as their source. Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
26 lines
800 B
Plaintext
26 lines
800 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(type))
|
|
|
|
/datum/element/cursed/Detach(datum/source)
|
|
. = ..()
|
|
var/obj/item/master = source
|
|
QDEL_NULL(master.ai_controller)
|
|
REMOVE_TRAIT(master, TRAIT_MOVE_FLYING, ELEMENT_TRAIT(type))
|
|
master.RemoveElement(/datum/element/movetype_handler)
|