mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-11 18:11:35 +00:00
135 lines
5.1 KiB
Plaintext
135 lines
5.1 KiB
Plaintext
/// Find a target, walk at target, attack intervening obstacles
|
|
/datum/ai_controller/basic_controller/simple/simple_hostile_obstacles
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|
|
|
|
/// Prowls around when not attacking people
|
|
/datum/ai_controller/basic_controller/simple/simple_hostile_obstacles/prowler
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
/datum/ai_planning_subtree/find_and_hunt_target/prowl,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path/prowl,
|
|
)
|
|
|
|
/// Will ventcrawl around until it finds a target to attack.
|
|
/datum/ai_controller/basic_controller/simple/simple_hostile_obstacles/ventcrawler
|
|
blackboard = list (
|
|
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
|
|
BB_VENT_SEARCH_RANGE = 10
|
|
)
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
/datum/ai_planning_subtree/ventcrawl_find_target,
|
|
/datum/ai_planning_subtree/ventcrawl,
|
|
)
|
|
|
|
/// Find a target, keep distance
|
|
/datum/ai_controller/basic_controller/simple/simple_ranged
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/maintain_distance,
|
|
/datum/ai_planning_subtree/ranged_skirmish,
|
|
)
|
|
|
|
/// Retaliate at range, keep distance
|
|
/datum/ai_controller/basic_controller/simple/simple_ranged_retaliate
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/target_retaliate,
|
|
/datum/ai_planning_subtree/maintain_distance,
|
|
/datum/ai_planning_subtree/ranged_skirmish,
|
|
)
|
|
|
|
/// Find a target, walk towards it AND shoot it
|
|
/datum/ai_controller/basic_controller/simple/simple_skirmisher
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/ranged_skirmish,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|
|
|
|
/// Wanders around until it finds something it can walk towards and shoot
|
|
/datum/ai_controller/basic_controller/simple/simple_skirmisher/prowler
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/ranged_skirmish,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
/datum/ai_planning_subtree/find_and_hunt_target/prowl,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path/prowl,
|
|
)
|
|
|
|
/// Use an ability on target on cooldown
|
|
/datum/ai_controller/basic_controller/simple/simple_ability
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/maintain_distance,
|
|
/datum/ai_planning_subtree/targeted_mob_ability,
|
|
)
|
|
|
|
/// Use an ability to retaliate on cooldown
|
|
/datum/ai_controller/basic_controller/simple/simple_ability_retaliate
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/target_retaliate,
|
|
/datum/ai_planning_subtree/maintain_distance,
|
|
/datum/ai_planning_subtree/targeted_mob_ability,
|
|
)
|
|
|
|
/// Use an ability on target on cooldown, then try to punch them
|
|
/datum/ai_controller/basic_controller/simple/simple_ability_melee
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/targeted_mob_ability,
|
|
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|
|
|
|
/// Use an ability on target on cooldown, then try to shoot them
|
|
/datum/ai_controller/basic_controller/simple/simple_ability_ranged
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_target,
|
|
/datum/ai_planning_subtree/maintain_distance,
|
|
/datum/ai_planning_subtree/targeted_mob_ability,
|
|
/datum/ai_planning_subtree/ranged_skirmish,
|
|
)
|
|
|
|
/// Fight back if attacked
|
|
/datum/ai_controller/basic_controller/simple/retaliate
|
|
ai_traits = AI_FLAG_STOP_MOVING_WHEN_PULLED
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/target_retaliate,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|
|
|
|
/// Get pissed at random people for no reason. Most often seen with goats.
|
|
/datum/ai_controller/basic_controller/simple/simple_capricious
|
|
ai_traits = AI_FLAG_STOP_MOVING_WHEN_PULLED
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/capricious_retaliate,
|
|
/datum/ai_planning_subtree/target_retaliate,
|
|
/datum/ai_planning_subtree/basic_melee_attack_subtree,
|
|
)
|
|
|
|
/// Runs away from anyone it sees
|
|
/datum/ai_controller/basic_controller/simple/simple_fearful
|
|
ai_traits = AI_FLAG_STOP_MOVING_WHEN_PULLED
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/simple_find_nearest_target_to_flee,
|
|
/datum/ai_planning_subtree/flee_target,
|
|
)
|
|
|
|
/// Runs away when attacked
|
|
/datum/ai_controller/basic_controller/simple/simple_skittish
|
|
ai_traits = AI_FLAG_STOP_MOVING_WHEN_PULLED
|
|
planning_subtrees = list(
|
|
/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee,
|
|
/datum/ai_planning_subtree/flee_target,
|
|
)
|