Esempio n. 1
0
        public StructureBuildActiveActionExecuteBuilder(IFixture fixture)
        {
            this.fixture = fixture;

            requirementCsvFactory = fixture.Freeze <IRequirementCsvFactory>();
            requirementCsvFactory
            .GetLayoutRequirement(Arg.Any <ushort>(), Arg.Any <byte>())
            .Validate(Arg.Any <IStructure>(), Arg.Any <ushort>(), Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <byte>())
            .Returns(true);

            structureBaseStats = fixture.Freeze <IStructureBaseStats>();
            structureBaseStats.Size.Returns <byte>(0);
            var structureCost = new Resource(1234, 8446, 1343, 1234, 1246);

            structureBaseStats.Cost.Returns(structureCost);

            var structure = fixture.Freeze <IStructure>();

            structure.Stats.Base.Returns(structureBaseStats);

            objectTypeFactory = fixture.Freeze <IObjectTypeFactory>();
            objectTypeFactory.IsObjectType("NoRoadRequired", Arg.Any <ushort>()).Returns(true);

            city = fixture.Create <ICity>();
            city.PrimaryPosition.Returns(new Position(99, 98));
            city.Radius.Returns <byte>(5);
            city.Resource.HasEnough(structureBaseStats.Cost).Returns(true);
            city.CreateStructure(Arg.Any <ushort>(), Arg.Any <byte>(), Arg.Any <uint>(), Arg.Any <uint>()).Returns(structure);

            roadPathFinder = fixture.Freeze <IRoadPathFinder>();
            roadPathFinder.CanBuild(Arg.Any <Position>(), Arg.Any <byte>(), city, Arg.Any <bool>()).Returns(Error.Ok);

            tileLocator = fixture.Freeze <ITileLocator>();
            tileLocator.TileDistance(new Position(99, 98), 1, Arg.Any <Position>(), 1).Returns(1);

            world = fixture.Freeze <IWorld>();
            ICity outCity;

            world.TryGetObjects(Arg.Any <uint>(), out outCity).Returns(x =>
            {
                x[1] = city;
                return(true);
            });
            world.Regions.GetObjectsInTile(Arg.Any <uint>(), Arg.Any <uint>()).Returns(new List <ISimpleGameObject>());
            world.Regions.IsValidXandY(0, 0).ReturnsForAnyArgs(true);
            world.Regions.Add(structure).Returns(true);

            structureCsvFactory = fixture.Freeze <IStructureCsvFactory>();
            structureCsvFactory.GetBaseStats(0, 0).ReturnsForAnyArgs(structureBaseStats);

            formula = Substitute.For <Formula>();
            formula.CityMaxConcurrentBuildActions(0, 0, null, null).ReturnsForAnyArgs(Error.Ok);
            formula.StructureCost(null, null).ReturnsForAnyArgs(structureCost);
            fixture.Register(() => formula);
        }
Esempio n. 2
0
 public StructureUpgradeActiveAction(uint cityId,
                                     uint structureId,
                                     IStructureCsvFactory structureCsvFactory,
                                     Formula formula,
                                     IWorld world,
                                     Procedure procedure,
                                     ILocker locker,
                                     IRequirementCsvFactory requirementCsvFactory,
                                     IObjectTypeFactory objectTypeFactory,
                                     CallbackProcedure callbackProcedure)
     : this(structureCsvFactory, formula, world, procedure, locker, requirementCsvFactory, objectTypeFactory, callbackProcedure)
 {
     this.cityId      = cityId;
     this.structureId = structureId;
 }
Esempio n. 3
0
 public StructureUpgradeActiveAction(IStructureCsvFactory structureCsvFactory,
                                     Formula formula,
                                     IWorld world,
                                     Procedure procedure,
                                     ILocker locker,
                                     IRequirementCsvFactory requirementCsvFactory,
                                     IObjectTypeFactory objectTypeFactory,
                                     CallbackProcedure callbackProcedure)
 {
     this.structureCsvFactory = structureCsvFactory;
     this.formula             = formula;
     this.world                 = world;
     this.procedure             = procedure;
     this.locker                = locker;
     this.requirementCsvFactory = requirementCsvFactory;
     this.objectTypeFactory     = objectTypeFactory;
     this.callbackProcedure     = callbackProcedure;
 }
Esempio n. 4
0
 public StructureBuildActiveAction(IObjectTypeFactory objectTypeFactory,
                                   IWorld world,
                                   Formula formula,
                                   IRequirementCsvFactory requirementCsvFactory,
                                   IStructureCsvFactory structureCsvFactory,
                                   ILocker concurrency,
                                   Procedure procedure,
                                   IRoadPathFinder roadPathFinder,
                                   ITileLocator tileLocator,
                                   CallbackProcedure callbackProcedure)
 {
     this.objectTypeFactory     = objectTypeFactory;
     this.world                 = world;
     this.formula               = formula;
     this.requirementCsvFactory = requirementCsvFactory;
     this.structureCsvFactory   = structureCsvFactory;
     this.concurrency           = concurrency;
     this.procedure             = procedure;
     this.roadPathFinder        = roadPathFinder;
     this.tileLocator           = tileLocator;
     this.callbackProcedure     = callbackProcedure;
 }
Esempio n. 5
0
 public StructureBuildActiveAction(uint cityId,
                                   ushort type,
                                   uint x,
                                   uint y,
                                   byte level,
                                   IObjectTypeFactory objectTypeFactory,
                                   IWorld world,
                                   Formula formula,
                                   IRequirementCsvFactory requirementCsvFactory,
                                   IStructureCsvFactory structureCsvFactory,
                                   ILocker concurrency,
                                   Procedure procedure,
                                   IRoadPathFinder roadPathFinder,
                                   ITileLocator tileLocator,
                                   CallbackProcedure callbackProcedure)
     : this(objectTypeFactory, world, formula, requirementCsvFactory, structureCsvFactory, concurrency, procedure, roadPathFinder, tileLocator, callbackProcedure)
 {
     this.cityId = cityId;
     this.type   = type;
     this.X      = x;
     this.Y      = y;
     this.level  = level;
 }
Esempio n. 6
0
 public FactoriesInitializer(ActionRequirementFactory actionRequirementFactory,
                             IStructureCsvFactory structureCsvFactory,
                             EffectRequirementFactory effectRequirementFactory,
                             InitFactory initFactory,
                             PropertyFactory propertyFactory,
                             IRequirementCsvFactory requirementCsvFactory,
                             TechnologyFactory technologyFactory,
                             UnitFactory unitFactory,
                             IObjectTypeFactory objectTypeFactory,
                             UnitModFactory unitModFactory,
                             MapFactory mapFactory)
 {
     this.actionRequirementFactory = actionRequirementFactory;
     this.structureCsvFactory      = structureCsvFactory;
     this.effectRequirementFactory = effectRequirementFactory;
     this.initFactory           = initFactory;
     this.propertyFactory       = propertyFactory;
     this.requirementCsvFactory = requirementCsvFactory;
     this.technologyFactory     = technologyFactory;
     this.unitFactory           = unitFactory;
     this.objectTypeFactory     = objectTypeFactory;
     this.unitModFactory        = unitModFactory;
     this.mapFactory            = mapFactory;
 }