Grail (C++)  1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
grail::utility::MaxUtilityReasoner Class Reference
Inheritance diagram for grail::utility::MaxUtilityReasoner:
Collaboration diagram for grail::utility::MaxUtilityReasoner:

Public Member Functions

 MaxUtilityReasoner (std::vector< BlueprintOption< Behavior, EntityBlackboardPair, grail::AIEntity >> blueprintOptions, float persistence=0.1f)
 UtilityReasoner - Constructor. More...
 
 MaxUtilityReasoner (const MaxUtilityReasoner &other)=delete
 
 MaxUtilityReasoner (MaxUtilityReasoner &&other)=delete
 
- Public Member Functions inherited from grail::utility::UtilityReasoner
 UtilityReasoner (std::vector< BlueprintOption< Behavior, EntityBlackboardPair, grail::AIEntity >> blueprintOptions, float persistence=0.1f)
 UtilityReasoner - Constructor. More...
 
 UtilityReasoner (const UtilityReasoner &other)=delete
 
 UtilityReasoner (UtilityReasoner &&other)=delete
 
UtilityReasoneroperator= (const UtilityReasoner &other)=delete
 
UtilityReasoneroperator= (UtilityReasoner &&other)=delete
 
virtual void StageBehavior (AIEntity &entity) override
 SelectBehavior - Selects behavior, if able, and assigns it to entity. More...
 
virtual std::unique_ptr< ISnapshotGeneratorCreateSnapshotGenerator (size_t entityId) override
 CreateSnapshotGenerator - Creates object responsible for producing snapshots for this reasoner assigned to particular entity. More...
 
data::UtilityReasonerSnapshot GetUtilityReasonerSnapshot () const
 GetUtilityReasonerSnapshot - Returns copy of current snapshot and clear the original data. More...
 
void SetSnapshotProduction (bool isEnabled)
 SetSnapshotProduction - Tells reasoner whether it should produce debug snapshots of its state. More...
 
- Public Member Functions inherited from grail::Reasoner
 Reasoner (const Reasoner &)=default
 
 Reasoner (Reasoner &&)=default
 
Reasoneroperator= (const Reasoner &)=default
 
Reasoneroperator= (Reasoner &&)=default
 

Protected Member Functions

void GetBestOption (const std::vector< SelectionOption< EntityBlackboardPair >> &options, SelectionResult &result, std::function< bool(const std::size_t &)> validator) override
 GetBestOption - Selects most suitable option. Provides different context for each evaluated objects. More...
 
- Protected Member Functions inherited from grail::utility::UtilityReasoner
virtual void ClearCache () override
 ClearCache - called when assigning this reasoner to an entity. Clears internally stored data, which may be invalidated when assigned to a different entity.
 

Constructor & Destructor Documentation

◆ MaxUtilityReasoner()

grail::utility::MaxUtilityReasoner::MaxUtilityReasoner ( std::vector< BlueprintOption< Behavior, EntityBlackboardPair, grail::AIEntity >>  blueprintOptions,
float  persistence = 0.1f 
)

UtilityReasoner - Constructor.

Parameters
blueprintOptions- Blueprints mapped with evaluators.
persistence- Bonus score that currently executed behavior(or behavior from the top of the stack) gains during behavior selection. Persistence of 0 give no bonus at all, negative persistence causes unstable entity behaviors.

Member Function Documentation

◆ GetBestOption()

void grail::utility::MaxUtilityReasoner::GetBestOption ( const std::vector< SelectionOption< EntityBlackboardPair >> &  options,
SelectionResult result,
std::function< bool(const std::size_t &)>  validator 
)
overrideprotectedvirtual

GetBestOption - Selects most suitable option. Provides different context for each evaluated objects.

Parameters
options- Contexts paired with evaluators
result- Reference to the selection result object.
validator- Function validating whether given object can be chosen
Template Parameters
ContextType- Type of evaluated object. By default - ValueTuple(AIEntity, Blackboard).

Implements grail::utility::UtilityReasoner.


The documentation for this class was generated from the following files: