Files
Bubberstation/code/datums/elements/cursed.dm
SkyratBot bb4aeacfc6 [MIRROR] Componentizes Duffelbag Curse and turns it into an RPGloot modifier (+ curse announcement element) (#5683)
* Componentizes Duffelbag Curse and turns it into an RPGloot modifier (+ curse announcement element) (#59029)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Componentizes Duffelbag Curse and turns it into an RPGloot modifier (+ curse announcement element)

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-05-14 15:38:12 +01:00

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)