Public Types | |
enum | HullSearchStatus { Running , Finished } |
Public Member Functions | |
AIObjectiveFindSafety (Character character, AIObjectiveManager objectiveManager, float priorityModifier=1) | |
override void | Update (float deltaTime) |
void | UpdateSimpleEscape (float deltaTime) |
HullSearchStatus | FindBestHull (out Hull bestHull, IEnumerable< Hull > ignoredHulls=null, bool allowChangingSubmarine=true) |
Tries to find the best (safe, nearby) hull the character can find a path to. Checks one hull at a time, and returns HullSearchStatus.Finished when all potential hulls have been checked. | |
override void | Reset () |
![]() | |
IEnumerable< AIObjective > | GetSubObjectivesRecursive (bool includingSelf=false) |
AIObjective | GetActiveObjective () |
AIObjective (Character character, AIObjectiveManager objectiveManager, float priorityModifier, Identifier option=default) | |
void | TryComplete (float deltaTime) |
Makes the character act according to the objective, or according to any subobjectives that need to be completed before this one. | |
void | AddSubObjective (AIObjective objective, bool addFirst=false) |
void | RemoveSubObjective< T > (ref T objective) |
void | SortSubObjectives () |
bool | IsIgnoredAtOutpost () |
Returns true only when at a friendly outpost and when the order is set to be ignored there. Note that even if this returns false, the objective can be disallowed, because AllowInFriendlySubs is false. | |
float | CalculatePriority () |
Call this only when the priority needs to be recalculated. Use the cached Priority property when you don't need to recalculate. | |
virtual bool | IsDuplicate< T > (T otherObjective) |
virtual void | OnSelected () |
virtual void | OnDeselected () |
virtual void | SpeakAfterOrderReceived () |
Protected Member Functions | |
override bool | CheckObjectiveSpecific () |
override float | GetPriority () |
override void | Act (float deltaTime) |
![]() | |
void | HandleDisallowed () |
float | GetDistanceFactor (Vector2 targetWorldPos, float factorAtMaxDistance, float verticalDistanceMultiplier=3, float maxDistance=10000.0f, float factorAtMinDistance=1.0f) |
Get a normalized value representing how close the target position is. The value is a rough estimation, where vertical movement is assumed to be more costly than horizontal. | |
virtual void | SyncRemovedObjectives< T1, T2 > (Dictionary< T1, T2 > dictionary, IEnumerable< T1 > collection) |
Checks if the subobjectives in the given collection are removed from the subobjectives. And if so, removes it also from the dictionary. | |
bool | TryAddSubObjective< T > (ref T objective, Func< T > constructor, Action onCompleted=null, Action onAbandon=null) |
Checks if the objective already is created and added in subobjectives. If not, creates it. Handles objectives that cannot be completed. If the objective has been removed form the subobjectives, a null value is assigned to the reference. Returns true if the objective was created and successfully added. | |
virtual void | OnCompleted () |
virtual void | OnAbandon () |
void | Act (float deltaTime) |
bool | CheckObjectiveSpecific () |
Should return whether the objective is completed or not. | |
bool | CanEquip (Item item, bool allowWearing) |
Properties | |
override Identifier | Identifier = "find safety".ToIdentifier() [get, set] |
override bool | ForceRun [get] |
override bool | KeepDivingGearOn [get] |
override bool | IgnoreUnsafeHulls [get] |
override bool | ConcurrentObjectives [get] |
override bool | AllowOutsideSubmarine [get] |
override bool | AllowInAnySub [get] |
override bool | AbandonWhenCannotCompleteSubObjectives [get] |
override bool | CanBeCompleted [get] |
![]() | |
virtual float | Devotion [get] |
Identifier | Identifier [get, set] |
virtual string | DebugTag [get] |
virtual bool | ForceRun [get] |
virtual bool | IgnoreUnsafeHulls [get] |
virtual bool | AbandonWhenCannotCompleteSubObjectives [get] |
virtual bool | AllowSubObjectiveSorting [get] |
Should subobjectives be sorted according to their priority? | |
virtual bool | PrioritizeIfSubObjectivesActive [get] |
virtual bool | AllowMultipleInstances [get] |
Can there be multiple objective instaces of the same type? | |
virtual bool | ConcurrentObjectives [get] |
Run the main objective with all subobjectives concurrently? If false, the main objective will continue only when all the subobjectives have been removed (done). | |
virtual bool | KeepDivingGearOn [get] |
virtual bool | KeepDivingGearOnAlsoWhenInactive [get] |
virtual bool | AllowAutomaticItemUnequipping [get] |
There's a separate property for diving suit and mask: KeepDivingGearOn. | |
virtual bool | AllowOutsideSubmarine [get] |
virtual bool | AllowInFriendlySubs [get] |
When true, the objective is allowed in the player subs (when in the same team) and on friendly outposts (regardless of the alignment). Note: ignored when AllowInAnySub is true. | |
virtual bool | AllowInAnySub [get] |
virtual bool | AllowWhileHandcuffed [get] |
virtual bool | AbandonIfDisallowed [get] |
Should the objective abandon when it's not allowed in the current context or should it just stay inactive with 0 priority? Abandoned automatic objectives are removed and recreated automatically (when new orders are assigned or after a cooldown period). Abandoned orders are removed, but the most recent order can be reissued by clicking the small order icon with the arrow in the crew manager panel. | |
virtual bool | CanBeCompleted [get] |
virtual float | MaxDevotion [get] |
float | CumulatedDevotion [get, set] |
float | Priority [get, set] |
Final priority value after all calculations. | |
float | BasePriority [get, set] |
float | PriorityModifier = 1 [get] |
bool | ForceHighestPriority [get, set] |
bool | ForceWalk [get, set] |
bool | IgnoreAtOutpost [get, set] |
bool | Abandon [get, set] |
IEnumerable< AIObjective > | SubObjectives [get] |
AIObjective | CurrentSubObjective [get] |
HumanAIController | HumanAIController [get] |
IndoorsSteeringManager | PathSteering [get] |
SteeringManager | SteeringManager [get] |
bool | IsAllowed [get] |
bool | IsCompleted [get, protected set] |
Additional Inherited Members | |
![]() | |
static float | GetDistanceFactor (Vector2 selfPos, Vector2 targetWorldPos, float factorAtMaxDistance, float verticalDistanceMultiplier=3, float maxDistance=10000.0f, float factorAtMinDistance=1.0f) |
Get a normalized value representing how close the target position is. The value is a rough estimation, where vertical movement is assumed to be more costly than horizontal. | |
![]() | |
EventAction | SourceEventAction |
Which event action (if any) created this objective. | |
AIObjective | SourceObjective |
Which objective (if any) created this objective. When this is a subobjective, the parent objective is used by default. | |
readonly Character | character |
readonly AIObjectiveManager | objectiveManager |
readonly Identifier | Option |
Func< AIObjective, bool > | AbortCondition |
Aborts the objective when this condition is true. | |
![]() | |
static bool | CanPutInInventory (Character character, Item item, bool allowWearing) |
![]() | |
readonly List< AIObjective > | subObjectives = new List<AIObjective>() |
![]() | |
Action | Completed |
A single shot event. Automatically cleared after launching. Use OnCompleted method for implementing (internal) persistent behavior. | |
Action | Abandoned |
A single shot event. Automatically cleared after launching. Use OnAbandoned method for implementing (internal) persistent behavior. | |
Action | Selected |
A single shot event. Automatically cleared after launching. Use OnSelected method for implementing (internal) persistent behavior. | |
Action | Deselected |
A single shot event. Automatically cleared after launching. Use OnDeselected method for implementing (internal) persistent behavior. | |
Barotrauma.AIObjectiveFindSafety.AIObjectiveFindSafety | ( | Character | character, |
AIObjectiveManager | objectiveManager, | ||
float | priorityModifier = 1 ) |
|
protected |
|
protected |
HullSearchStatus Barotrauma.AIObjectiveFindSafety.FindBestHull | ( | out Hull | bestHull, |
IEnumerable< Hull > | ignoredHulls = null, | ||
bool | allowChangingSubmarine = true ) |
Tries to find the best (safe, nearby) hull the character can find a path to. Checks one hull at a time, and returns HullSearchStatus.Finished when all potential hulls have been checked.
|
protectedvirtual |
Reimplemented from Barotrauma.AIObjective.
|
virtual |
Reimplemented from Barotrauma.AIObjective.
|
virtual |
Reimplemented from Barotrauma.AIObjective.
void Barotrauma.AIObjectiveFindSafety.UpdateSimpleEscape | ( | float | deltaTime | ) |
|
get |
|
getprotected |
|
getprotected |
|
get |
|
getprotected |
|
get |
|
getset |
|
get |
|
get |