public SimpleDefender(ILogger logger, IActionInserter actionInserter, Creature self) { _logger = logger; _actionInserter = actionInserter; _self = self; _stateMachine = new StateMachine <State, MessageTopic>(State.Idle); _targetId = string.Empty; _stateMachine.Configure(State.Idle) .Permit(MessageTopic.AttackedBy, State.Combat); _attackedByTrigger = _stateMachine.SetTriggerParameters <string>(MessageTopic.AttackedBy); _stateMachine.Configure(State.Combat) .Permit(MessageTopic.KilledBy, State.Dead) .Permit(MessageTopic.CombatantDissapears, State.Idle) .Permit(MessageTopic.CombatantFlees, State.Idle) .Permit(MessageTopic.CombatantDies, State.Idle) .OnEntryFrom(_attackedByTrigger, attackerId => OnEnteringCombat(attackerId)) .OnActivate(PerformAttack) .OnExit(OnExitingCombat); _stateMachine.Configure(State.Dead) .OnEntry(() => _logger.Debug("Entering death..")) .OnExit(() => _logger.Debug("Exiting death..")); }
public AutonomousFactory(ILogger logger, IActionInserter actionInserter) { _logger = logger; _actionInserter = actionInserter; }
public GameRouter(ILogger logger, IActionInserter actionInserter) { _logger = logger; _actionInserter = actionInserter; }