Example #1
0
        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.."));
        }
Example #2
0
 public AutonomousFactory(ILogger logger, IActionInserter actionInserter)
 {
     _logger         = logger;
     _actionInserter = actionInserter;
 }
Example #3
0
 public GameRouter(ILogger logger, IActionInserter actionInserter)
 {
     _logger         = logger;
     _actionInserter = actionInserter;
 }