mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-02-09 15:59:24 +00:00
This tracks the seconds per tick of a subsystem, however note that it is not completely accurate, as subsystems can be delayed, however it's useful to have this number as a multiplier or ratio, so that if in future someone changes the subsystem wait time code correctly adjusts how fast it applies effects regexes used git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i 's/DT_PROB/SPT_PROB/g' git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i 's/delta_time/seconds_per_tick/g'
26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
/// Try to escape from your current target, without performing any other actions.
|
|
/datum/ai_planning_subtree/flee_target
|
|
/// Behaviour to execute in order to flee
|
|
var/flee_behaviour = /datum/ai_behavior/run_away_from_target
|
|
/// Blackboard key in which to store selected target
|
|
var/target_key = BB_BASIC_MOB_CURRENT_TARGET
|
|
/// Blackboard key in which to store selected target's hiding place
|
|
var/hiding_place_key = BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION
|
|
|
|
/datum/ai_planning_subtree/flee_target/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
|
|
. = ..()
|
|
if (!controller.blackboard[BB_BASIC_MOB_FLEEING])
|
|
return
|
|
var/datum/weakref/weak_target = controller.blackboard[target_key]
|
|
var/atom/target = weak_target?.resolve()
|
|
if(!target || QDELETED(target))
|
|
return
|
|
controller.queue_behavior(flee_behaviour, target_key, hiding_place_key)
|
|
return SUBTREE_RETURN_FINISH_PLANNING //we gotta get out of here.
|
|
|
|
/// Try to escape from your current target, without performing any other actions.
|
|
/// Reads from some fleeing-specific targetting keys rather than the current mob target.
|
|
/datum/ai_planning_subtree/flee_target/from_flee_key
|
|
target_key = BB_BASIC_MOB_FLEE_TARGET
|
|
hiding_place_key = BB_BASIC_MOB_FLEE_TARGET_HIDING_LOCATION
|