/tg/ Station 13 - Modules - Types

code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm

/datum/ai_controller/basic_controller/carpAI controller for carp Expected flow is:
/datum/ai_controller/basic_controller/carp/megaMegacarps. The only difference is that they don't flee from scary fishermen and prioritize them.
/datum/ai_controller/basic_controller/carp/petCarp which bites back, but doesn't look for targets. 'Not hunting targets' includes food (and can rings), because they have been well trained.
/datum/ai_controller/basic_controller/carp/rangedAI for carp with a spell. Flow is basically the same as regular carp, except it will try and cast a spell at its target whenever possible and not fleeing.
/datum/ai_controller/basic_controller/carp/passiveCarp which bites back, but doesn't look for targets and doesnt do as much damage Still migrate and stuff
/datum/bt_node/subtree/basic_carp_treeShared carp skeleton: escape -> pet command -> (flee / combat / migrate-or-idle) with a target-finding secondary.
/datum/bt_node/subtree/carp_fleeFlee or panic-teleport away from a keyed target.
/datum/bt_node/subtree/carp_combatAttack our current target: cast a spell, teleport in, smash obstacles or bite.
/datum/bt_node/subtree/carp_migrationTravel a migration path, riding or punching through rifts and walls along the way.
/datum/bt_node/subtree/carp_target_selectionHunting target finder: flee the nearest threat when injured, otherwise hunt prioritising scary fishermen.
/datum/bt_node/subtree/carp_retaliate_selectionBite-back target finder: target whoever has attacked us.
/datum/bt_node/subtree/carp_passive_selectionPassive flee finder: flag scary fishermen and attackers as things to run away from.