Game Development Reference
In-Depth Information
If both of these cases don't exist, our agent will move into combat behaviors such as re-
load, shoot, pursue, or randomly wander around:
SoldierLogic.lua :
function SoldierLogic_FiniteStateMachine(userData)
...
-- idle action
fsm:AddTransition(
"idle", "die", SoldierEvaluators_IsNotAlive);
fsm:AddTransition(
"idle", "flee",
SoldierEvaluators_HasCriticalHealth);
fsm:AddTransition(
"idle", "reload", SoldierEvaluators_HasNoAmmo);
fsm:AddTransition(
"idle", "shoot", SoldierEvaluators_CanShootAgent);
fsm:AddTransition(
"idle", "pursue", SoldierEvaluators_HasEnemy);
fsm:AddTransition(
"idle", "randomMove", SoldierEvaluators_Random);
fsm:AddTransition("idle", "idle",
SoldierEvaluators_True);
fsm:SetState("idle");
return fsm;
end
Search WWH ::




Custom Search