public override void Execute(BasicAgent agent) { if (agent.isSafe()) { agent.ChangeState(new State_Patrol()); } else { if (agent.runAway()) { agent.ChangeState(new State_Flee()); } else { agent.Bond(); } } base.Execute(agent); }