Exemplo n.º 1
0
        public void RetreatUnits_RetreatsStationedUnitsThatAreNotInTribeThatOwnsStronghold(
            IStronghold stronghold, 
            [FrozenMock] IActionFactory actionFactory,
            [FrozenMock] ITroopObjectInitializerFactory troopInitializerFactory,
            ITroopObjectInitializer troopInitializer,
            ITroopStub stub,
            ITribe tribe,
            ITribe shTribe,
            RetreatChainAction retreatAction,
            StrongholdManager strongholdManager)
        {
            stub.State.Returns(TroopState.Stationed);
            stub.City.Owner.IsInTribe.Returns(true);
            stub.City.Id.Returns<uint>(1234);
            stub.TroopId.Returns<ushort>(2);
            stub.City.Owner.Tribesman.Tribe.Returns(tribe);

            stronghold.MainBattle.Returns((IBattleManager)null);
            stronghold.Tribe.Returns(shTribe);
            stronghold.Troops.StationedHere().Returns(new[] { stub });

            troopInitializerFactory.CreateStationedTroopObjectInitializer(stub).Returns(troopInitializer);
            actionFactory.CreateRetreatChainAction(stub.City.Id, troopInitializer).Returns(retreatAction);

            strongholdManager.RetreatUnits(stronghold);
            
            stub.City.Worker.Received(1).DoPassive(stub.City, retreatAction, true);
        }
Exemplo n.º 2
0
 public RetreatChainAction(uint cityId,
                           ITroopObjectInitializer troopObjectInitializer,
                           IActionFactory actionFactory,
                           IWorld world,
                           Procedure procedure,
                           ILocker locker)
     : this(actionFactory, world, procedure, locker)
 {
     this.cityId = cityId;
     this.troopObjectInitializer = troopObjectInitializer;
 }
Exemplo n.º 3
0
 public CityDefenseChainAction(uint cityId,
                               ITroopObjectInitializer troopObjectInitializer,
                               uint targetCityId,
                               BattleProcedure battleProcedure,
                               IActionFactory actionFactory,
                               ILocker locker,
                               IWorld world,
                               Procedure procedure)
     : this(battleProcedure, actionFactory, locker, world, procedure)
 {
     this.cityId = cityId;
     this.troopObjectInitializer = troopObjectInitializer;
     this.targetCityId           = targetCityId;
 }
Exemplo n.º 4
0
 public BarbarianTribeAttackChainAction(uint cityId,
                                        uint targetObjectId,
                                        ITroopObjectInitializer troopObjectInitializer,
                                        IActionFactory actionFactory,
                                        Procedure procedure,
                                        ILocker locker,
                                        IGameObjectLocator gameObjectLocator,
                                        BattleProcedure battleProcedure)
     : this(actionFactory, procedure, locker, gameObjectLocator, battleProcedure)
 {
     this.troopObjectInitializer = troopObjectInitializer;
     this.cityId         = cityId;
     this.targetObjectId = targetObjectId;
 }
Exemplo n.º 5
0
 public StrongholdDefenseChainAction(uint cityId,
                                     ITroopObjectInitializer troopObjectInitializer,
                                     uint targetStrongholdId,
                                     IActionFactory actionFactory,
                                     Procedure procedure,
                                     ILocker locker,
                                     IGameObjectLocator gameObjectLocator,
                                     BattleProcedure battleProcedure,
                                     StrongholdBattleProcedure strongholdBattleProcedure)
     : this(actionFactory, procedure, locker, gameObjectLocator, battleProcedure, strongholdBattleProcedure)
 {
     this.cityId                 = cityId;
     this.targetStrongholdId     = targetStrongholdId;
     this.troopObjectInitializer = troopObjectInitializer;
 }
Exemplo n.º 6
0
 public CityAttackChainAction(uint cityId,
                              ITroopObjectInitializer troopObjectInitializer,
                              uint targetCityId,
                              Position target,
                              IActionFactory actionFactory,
                              Procedure procedure,
                              ILocker locker,
                              IGameObjectLocator gameObjectLocator,
                              CityBattleProcedure cityBattleProcedure,
                              BattleProcedure battleProcedure,
                              Formula formula)
     : this(actionFactory, procedure, locker, gameObjectLocator, cityBattleProcedure, battleProcedure, formula)
 {
     this.tmpTarget = target;
     this.cityId    = cityId;
     this.troopObjectInitializer = troopObjectInitializer;
     this.targetCityId           = targetCityId;
 }
Exemplo n.º 7
0
 public CityAttackChainAction CreateCityAttackChainAction(uint cityId, ITroopObjectInitializer troopObjectInitializer, uint targetCityId, Position target)
 {
     return(new CityAttackChainAction(cityId, troopObjectInitializer, targetCityId, target, kernel.Get <IActionFactory>(), kernel.Get <Procedure>(), kernel.Get <ILocker>(), kernel.Get <IGameObjectLocator>(), kernel.Get <CityBattleProcedure>(), kernel.Get <BattleProcedure>(), kernel.Get <Formula>()));
 }
Exemplo n.º 8
0
 public BarbarianTribeAttackChainAction CreateBarbarianTribeAttackChainAction(uint cityId, uint targetObjectId, ITroopObjectInitializer troopObjectInitializer)
 {
     return(new BarbarianTribeAttackChainAction(cityId, targetObjectId, troopObjectInitializer, kernel.Get <IActionFactory>(), kernel.Get <Procedure>(), kernel.Get <ILocker>(), kernel.Get <IGameObjectLocator>(), kernel.Get <BattleProcedure>()));
 }
Exemplo n.º 9
0
 public StrongholdAttackChainAction CreateStrongholdAttackChainAction(uint cityId, ITroopObjectInitializer troopObjectInitializer, uint targetStrongholdId, bool forceAttack)
 {
     return(new StrongholdAttackChainAction(cityId, troopObjectInitializer, targetStrongholdId, forceAttack, kernel.Get <IActionFactory>(), kernel.Get <Procedure>(), kernel.Get <ILocker>(), kernel.Get <IGameObjectLocator>(), kernel.Get <BattleProcedure>(), kernel.Get <StrongholdBattleProcedure>()));
 }
Exemplo n.º 10
0
 public RetreatChainAction CreateRetreatChainAction(uint cityId, ITroopObjectInitializer troopObjectInitializer)
 {
     return(new RetreatChainAction(cityId, troopObjectInitializer, kernel.Get <IActionFactory>(), kernel.Get <IWorld>(), kernel.Get <Procedure>(), kernel.Get <ILocker>()));
 }
Exemplo n.º 11
0
 public CityDefenseChainAction CreateCityDefenseChainAction(uint cityId, ITroopObjectInitializer troopObjectInitializer, uint targetCityId)
 {
     return(new CityDefenseChainAction(cityId, troopObjectInitializer, targetCityId, kernel.Get <BattleProcedure>(), kernel.Get <IActionFactory>(), kernel.Get <ILocker>(), kernel.Get <IWorld>(), kernel.Get <Procedure>()));
 }