Ejemplo n.º 1
0
        protected override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            tileRequirements.Add(ErrorWellNotAllowed,
                                 c => c.Tile.ProtoTile is IProtoTileWellAllowed);

            this.PrepareConstructionConfigWell(tileRequirements, build, repair, upgrade, out category);
        }
Ejemplo n.º 2
0
        protected override void PrepareFloorConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount = 1;
            //build.StageDurationSeconds = BuildDuration.Short; <-- irrelevant here
            build.AddStageRequiredItem <ItemCement>(count: 5);

            repair.StagesCount          = 1;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemCement>(count: 2);
        }
Ejemplo n.º 3
0
        protected sealed override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category          = GetCategory <StructureCategoryDecorations>();
            build.StagesCount = 1;

            this.PrepareDecorationConstructionConfig(tileRequirements, build, repair);
        }
Ejemplo n.º 4
0
 protected sealed override void PrepareConstructionConfig(
     ConstructionTileRequirements tileRequirements,
     ConstructionStageConfig build,
     ConstructionStageConfig repair,
     ConstructionUpgradeConfig upgrade,
     out ProtoStructureCategory category)
 {
     tileRequirements.Add(LandClaimSystem.ValidatorNewLandClaimNoLandClaimIntersections);
     tileRequirements.Add(LandClaimSystem.ValidatorCheckCharacterLandClaimAmountLimit);
     tileRequirements.Add(LandClaimSystem.ValidatorCheckCharacterLandClaimDepositClaimLimit);
     this.PrepareLandClaimConstructionConfig(tileRequirements, build, repair, upgrade, out category);
 }
Ejemplo n.º 5
0
 protected sealed override void PrepareConstructionConfig(
     ConstructionTileRequirements tileRequirements,
     ConstructionStageConfig build,
     ConstructionStageConfig repair,
     ConstructionUpgradeConfig upgrade,
     out ProtoStructureCategory category)
 {
     this.PrepareConstructionConfig(build,
                                    repair,
                                    upgrade,
                                    out category);
 }
Ejemplo n.º 6
0
        protected override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            tileRequirements.Add(ErrorBuildingAllowedOnlyInDesert,
                                 c => c.Tile.ProtoTile is TileBarren);

            this.PrepareConstructionConfigWell(tileRequirements, build, repair, upgrade, out category);
        }
Ejemplo n.º 7
0
        protected override void PrepareFarmPlotConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 1;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemPlanks>(count: 25);
            build.AddStageRequiredItem <ItemSand>(count: 25);

            repair.StagesCount          = 1;
            repair.StageDurationSeconds = BuildDuration.Short;
        }
Ejemplo n.º 8
0
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotCopper>(count: 3);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotCopper>(count: 2);
        }
Ejemplo n.º 9
0
 protected sealed override void PrepareConstructionConfig(
     ConstructionTileRequirements tileRequirements,
     ConstructionStageConfig build,
     ConstructionStageConfig repair,
     ConstructionUpgradeConfig upgrade,
     out ProtoStructureCategory category)
 {
     build.IsAllowed    = false;
     build.StagesCount  = 1;
     repair.IsAllowed   = false;
     repair.StagesCount = 1;
     category           = GetCategory <StructureCategoryBuildings>();
 }
Ejemplo n.º 10
0
        protected override void PrepareFloorDecorationConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 1;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemThread>(count: 100);
            build.AddStageRequiredItem <ItemRope>(count: 10);
            build.AddStageRequiredItem <ItemGlue>(count: 10);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemThread>(count: 5);
        }
Ejemplo n.º 11
0
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemPlanks>(count: 15);
            build.AddStageRequiredItem <ItemGlue>(count: 1);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemPlanks>(count: 5);
        }
Ejemplo n.º 12
0
        protected sealed override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            tileRequirements.Add(LandClaimSystem.ValidatorIsOwnedLand);

            this.PrepareConstructionConfig(build,
                                           repair,
                                           upgrade,
                                           out category);
        }
Ejemplo n.º 13
0
        protected sealed override void PrepareTileRequirements(ConstructionTileRequirements tileRequirements)
        {
            var configBuild   = new ConstructionStageConfig();
            var configRepair  = new ConstructionStageConfig();
            var configUpgrade = new ConstructionUpgradeConfig();

            tileRequirements.Add(ConstructionTileRequirements.ValidatorNotRestrictedArea)
            .Add(ConstructionTileRequirements.ValidatorNoNpcsAround)
            .Add(ConstructionTileRequirements.ValidatorNoPlayersNearby)
            .Add(LandClaimSystem.ValidatorIsOwnedOrFreeArea)
            .Add(LandClaimSystem.ValidatorNoRaid);

            this.PrepareConstructionConfig(
                tileRequirements,
                configBuild,
                configRepair,
                configUpgrade,
                out var category);

            configBuild.ApplyRates(StructureConstants.BuildItemsCountMultiplier);
            configUpgrade.ApplyRates(StructureConstants.BuildItemsCountMultiplier);
            configRepair.ApplyRates(StructureConstants.RepairItemsCountMultiplier);

            this.Category = category
                            ?? throw new Exception(
                                      "Structure category is not set during "
                                      + nameof(this.PrepareConstructionConfig)
                                      + " call");

            foreach (var upgradeEntry in configUpgrade.Entries)
            {
                if (upgradeEntry.RequiredItems.Count > 4)
                {
                    // we don't allow more than 4 items for upgrades (the upgrade UI space is strictly limited)
                    throw new Exception(this.ShortId
                                        + " requires more than 4 items to upgrade to "
                                        + upgradeEntry.ProtoStructure.ShortId
                                        + ". Max 4 items allowed");
                }
            }

            if (configRepair.IsAllowed)
            {
                this.ValidateRepairConfig(configRepair, configBuild);
            }

            this.ConfigBuild   = configBuild;
            this.ConfigRepair  = configRepair;
            this.ConfigUpgrade = configUpgrade;
        }
Ejemplo n.º 14
0
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotGold>(count: 5);
            build.AddStageRequiredItem <ItemCoinPenny>(count: 100);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotGold>(count: 1);
        }
Ejemplo n.º 15
0
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            // most of the stuff is inherited, only need to override sounds and build requirements
            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemPlanks>(count: 5);
            build.AddStageRequiredItem <ItemIngotIron>(count: 2);

            repair.StagesCount          = 5;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemPlanks>(count: 5);
            repair.AddStageRequiredItem <ItemIngotIron>(count: 2);
        }
Ejemplo n.º 16
0
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryDecorations>();

            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.Medium;
            build.AddStageRequiredItem <ItemPlanks>(count: 5);

            repair.StagesCount          = 5;
            repair.StageDurationSeconds = BuildDuration.Medium;
            repair.AddStageRequiredItem <ItemPlanks>(count: 3);
        }
Ejemplo n.º 17
0
        protected override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            var buildAdditionalReactor = new InputItems();

            this.PrepareConstructionConfigGenerator(tileRequirements,
                                                    build,
                                                    repair,
                                                    buildAdditionalReactor,
                                                    out category);
            this.BuildAdditionalReactorRequiredItems = buildAdditionalReactor.AsReadOnly();
        }
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemOrePragmium>(count: 10);
            build.AddStageRequiredItem <ItemSolvent>(count: 5);
            build.AddStageRequiredItem <ItemIngotSteel>(count: 5);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemOrePragmium>(count: 1);
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 1);
        }
Ejemplo n.º 19
0
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryBuildings>();

            build.StagesCount          = 3;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotIron>(count: 1);

            repair.StagesCount          = 3;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotIron>(count: 1);
        }
Ejemplo n.º 20
0
        protected override void PrepareLaunchpadConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade)
        {
            // build is not allowed - it's an upgrade from previous level
            build.IsAllowed = false;

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.VeryLong;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 4);
            repair.AddStageRequiredItem <ItemComponentsElectronic>(count: 2);

            upgrade.AddUpgrade <ObjectLaunchpadStage5>();
            // please note: the upgrade is free but requires finishing the tasks defined below
        }
Ejemplo n.º 21
0
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryOther>();

            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemPlanks>(count: 4);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemPlanks>(count: 2);
        }
Ejemplo n.º 22
0
        protected override void PrepareConstructionConfigWell(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryIndustry>();

            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemStone>(count: 12);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemStone>(count: 3);
        }
Ejemplo n.º 23
0
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryBuildings>();

            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.VeryLong;
            build.AddStageRequiredItem <ItemCement>(count: 10);
            build.AddStageRequiredItem <ItemIngotSteel>(count: 5);

            repair.StagesCount          = 5;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 4);
        }
Ejemplo n.º 24
0
        protected override void PrepareConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryStorage>();

            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotSteel>(count: 2);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 1);
        }
Ejemplo n.º 25
0
        protected override void PrepareConstructionConfigSprinkler(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryFood>();

            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotSteel>(count: 2);
            build.AddStageRequiredItem <ItemGlassRaw>(count: 2);
            build.AddStageRequiredItem <ItemComponentsElectronic>(count: 1);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 1);
        }
Ejemplo n.º 26
0
        protected override void PrepareLandClaimConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryOther>();

            // build is not allowed - it's an upgrade from previous level
            // for requirements for the upgrade see construction upgrade config from previous level
            build.IsAllowed = false;

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 5);
            repair.AddStageRequiredItem <ItemIngotCopper>(count: 5);
        }
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryIndustry>();

            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Long;
            build.AddStageRequiredItem <ItemIngotSteel>(count: 2);
            build.AddStageRequiredItem <ItemIngotCopper>(count: 1);
            build.AddStageRequiredItem <ItemCement>(count: 5);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Long;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 2);
            repair.AddStageRequiredItem <ItemIngotCopper>(count: 1);
        }
Ejemplo n.º 28
0
        protected override void PrepareConstructionConfigTurret(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade)
        {
            build.StagesCount          = 5;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemIngotSteel>(count: 4);
            build.AddStageRequiredItem <ItemWire>(count: 4);
            build.AddStageRequiredItem <ItemComponentsHighTech>(count: 1);
            build.AddStageRequiredItem <ItemComponentsWeapon>(count: 1);

            repair.StagesCount          = 5;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 4);
            repair.AddStageRequiredItem <ItemWire>(count: 4);
        }
Ejemplo n.º 29
0
        protected override void PrepareDecorationConstructionConfig(
            ConstructionTileRequirements tileRequirements,
            ConstructionStageConfig build,
            ConstructionStageConfig repair)
        {
            //category = GetCategory<StructureCategoryBuildings>();

            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Short;
            build.AddStageRequiredItem <ItemTwigs>(count: 5);
            build.AddStageRequiredItem <ItemThread>(count: 3);
            build.AddStageRequiredItem <ItemBones>(count: 2);
            build.AddStageRequiredItem <ItemStone>(count: 2);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Short;
            repair.AddStageRequiredItem <ItemTwigs>(count: 5);
        }
Ejemplo n.º 30
0
        protected override void PrepareConstructionConfig(
            ConstructionStageConfig build,
            ConstructionStageConfig repair,
            ConstructionUpgradeConfig upgrade,
            out ProtoStructureCategory category)
        {
            category = GetCategory <StructureCategoryBuildings>();

            build.StagesCount          = 10;
            build.StageDurationSeconds = BuildDuration.Medium;
            build.AddStageRequiredItem <ItemIngotSteel>(count: 4);
            build.AddStageRequiredItem <ItemCement>(count: 3);
            build.AddStageRequiredItem <ItemComponentsMechanical>(count: 1);

            repair.StagesCount          = 10;
            repair.StageDurationSeconds = BuildDuration.Medium;
            repair.AddStageRequiredItem <ItemIngotSteel>(count: 2);
        }