protected override CommandGroupCollection GetCommandGroups() { /////////////////////////////////////////////////////////////////// var gameStarting = new CommandCollection("暗黒の時代基礎 ~資源の収集と探索~") { new BuildHouse(3), //家の建設の繰り返し new InitCivilianActions(), //町の人の動きの設定 new InitMilitaryActions(), //斥候の動きの設定 new BuildLumberCamp(), //距離が空いたら伐採所を作成 }; /////////////////////////////////////////////////////////////////// var rulesIndarkAgeOnly = new EachAgesCommandCollection(GroupType.DarkAge, "暗黒の時代のみに適用するルール") { new BuildMill(2), //粉ひき所を建設 new BuildLumberCamp(2), //伐採所を建設 new ResearchLoom(7), //機織りの研究 new TrainVillager(24), //町の人を指定人数まで生産 new DarkAgeGathererPercentages(), //資源収集割合の調整 new ResignTimeout("00:30:00") //指定の時間経過したら降参 }; /////////////////////////////////////////////////////////////////// var endOfDarkAge = new CommandCollection("暗黒の時代中終盤") { new BuildFarm(4, 6), //畑の建設 new ResearchFeudalAge(24), //領主への進化 new BuildMiningCamp(resource_type.gold), //採掘所を作成 }; /////////////////////////////////////////////////////////////////// var ToFeudalAge = new EachAgesCommandCollection(GroupType.DarkAge, ResearchState.Researching, "暗黒から領主に進化中") { new SetGathererRate(24, 5, 17, 2, 0), //24人進化の場合の割合 new BuildBarracks(1), //戦士育成所1軒目の建設 new BuildFarm(6), //畑 new BuildMill(3), //粉ひき所を増設 }; /////////////////////////////////////////////////////////////////// var PrioritizedResearchCollections = new CommandCollection("優先順位付きの研究") { new PrioritizedResearchItems( //領主の時代 new ResearchDoubleBitAxe(), //両刃斧 new ResearchHorseCollar(), //引き具 new ResearchWheelBarrow(29), //手押し車 //城主の時代 new ResearchBowSaw(), //のこぎり new ResearchHeavyPlow(), //馬鍬 new ResearchHandCart() //荷車 ), new PrioritizedResearchItems( //領主の時代 new ResearchFletching(5), //矢羽根 new ResearchPaddedArcherArmor() //射手用胸当て ), new PrioritizedResearchItems( new ResearchForging(), //鍛造 new ResearchIronCasting() //鋳造 ), new PrioritizedResearchItems( new ResearchBloodlines(), //血統 new ResearchScaleBarding(), //騎兵用うろこの鎧 new ResearchChainBarding(), //騎兵用鎖かたびら new ResearchHusbandry() //繁殖の研究 ) }; /////////////////////////////////////////////////////////////////// return(new CommandGroupCollection() { rulesIndarkAgeOnly, gameStarting, endOfDarkAge, ToFeudalAge, PrioritizedResearchCollections }); }
protected override CommandGroupCollection GetCommandGroups() { /////////////////////////////////////////////////////////////////// var rulesInCastleAgeOnly = new EachAgesCommandCollection(GroupType.CastleAge, "城主の時代のみに適用するルール") { new InitCastleAge(), //城主の時代の初期設定 new TrainVillager(200, age.castle_age), //進化条件を満たすまで町の人の生産 new CastleAgeGathererPercentages(), new BuildSiegeWorkshop(3), //包囲攻撃訓練所の建設 new BuildLumberCamp(3), //伐採所3つ目まで建てます new BuildBarracks(3), //戦士育成所の建設 new TrainArcherLine(20), //射手の生産 new ResignTimeout("00:35:00", 5), //指定の時間経過したら降参 new BuildMonastery(1), //神殿の建設 new TrainUniqueUnit(5), //ユニークユニットの生産 }; /////////////////////////////////////////////////////////////////// var internalAffairsInCastleAge = new CommandCollection( "城主の時代の内政 ~序盤中盤の内政展開~") { new ResearchImperialAge(), //帝王の時代に進化 new BuildTownCenter(4), //町の中心の増設 new ResearchPikeman(), //長槍兵の研究 new TrainKnight(20), //騎士の生産 new ResearchCrossbow(), //石弓射手の研究 new ResearchGoldShaftMining(), //金の掘削 new ResearchStoneShaftMining(), //石の掘削 new ExtendTownSizeForBuildings(20, 10), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(30, 20), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(45, 25), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(60, 30), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(75, 35), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(90, 45), //建物を建てるために町のサイズを拡張する new ExtendTownSizeForBuildings(100, 50), //建物を建てるために町のサイズを拡張する new StrategyForSoldierCount(50, 50), //ユニットが増えてきたら町のサイズを拡張する new StrategyForSoldierCount(60, 60), //ユニットが増えてきたら町のサイズを拡張する new StrategyForSoldierCount(70, 70), //ユニットが増えてきたら町のサイズを拡張する new StrategyForSoldierCount(80, 80), //ユニットが増えてきたら町のサイズを拡張する new StrategyForSoldierCount(100, 90), //ユニットが増えてきたら町のサイズを拡張する new StrategyForSoldierCount(120, 100), //ユニットが増えてきたら町のサイズを拡張する }; /////////////////////////////////////////////////////////////////// var militaryInCastleAge = new CommandCollection( "城主の時代の軍事 ~軍の生産と攻撃~") { new ResearchBodkinArrow(), //錐状矢じりの研究 new ResearchEliteSkirmisher(), //精鋭散兵の研究 new ResearchThumbRing(), //弓懸の研究 new ResearchScaleMail(), //歩兵用うろこの鎧 new ResearchLeatherArcherArmor(), //射手用革の鎧 new ResearchChainMail(), //歩兵用鎖かたびら new ResearchTracking(), //追跡術の研究 new ResearchSquires(), //武者修行の研究 new TrainEagleWarrior(20), //イーグルウォーリアの生産 new ResearchLightCavalry(), //騎兵の研究 new TrainMonk(5), //聖職者の生産 new ResearchSanctity(), //神聖の研究 new AttackNow(50, 100), //兵がたまったら攻撃 new AttackNow(60, 90), //兵がたまったら攻撃 new AttackNow(70, 90), //兵がたまったら攻撃 new TrainSkirmisher(15), //散兵の生産 new ResearchCaravan(), //隊商 }; /////////////////////////////////////////////////////////////////// var endOfCastlelAge = new CommandCollection("城主の時代中終盤") { new BuildUniversity(1), //学問所の建設 new ResearchBallistics(), //弾道学 new ResearchMasonry(), //石工技術 new ResearchHeatedShot(), //火砲学 new ResearchMurderHoles(), //迎撃用窓 new ResearchFortifiedWall(), //強化壁 new BuildCastle(), //城の建設 new ResearchTownWatch(), //見張りの研究 new ResearchTownPatrol(), //巡回 new ResearchManAtArms(), //軍兵の研究 new ResearchLongSwordsMan(), //長剣剣士の研究 }; /////////////////////////////////////////////////////////////////// var rulesInCastleAgeOrLater = new EachAgesCommandCollection(GroupType.CastleAgeOrLater, "城主の時代以降に適用するルール") { new BuildStable(4), //騎兵育成所の建設 new BuildMill(), //粉引き所 new BuildBarracks(), //資源が余っていたら戦士育成所を生産 new TrainSpearmanLine(30), //槍兵の生産 new TrainTradeCart(70), //荷馬車の生産 new BuildArcheryRange(), //資源が余っていたら射手育成所を建設 new TrainMilitiamanLine(), //剣士を生産します。 new BuildMiningCamp(4), //採掘所を4つ目まで建てます new TrainMangonel(), //投石器の生産 new TrainRam(3), //破城槌の生産 new BuildMill(4), //粉ひき所を建設 new TrainScoutCavalryLine(20), //斥候 new TrainCamelLine(20), //らくだ new BuildStable(), //騎兵育成所を建設 new ResearchStoneMining(), //石の切り出し new ResignCondition( //降参する条件 new soldier_count(relop.eq, 1) //兵士が指定人数以下で資源もなくなってきたら & new food_amount(relop.lt, 50) & new gold_amount(relop.lt, 100) ) { Comment = "攻められた!" }, }; /////////////////////////////////////////////////////////////////// var rulesToCastlelAgeOnly = new EachAgesCommandCollection(GroupType.CastleAge, ResearchState.Researching, "帝王の時代進化中にのみ適用するルール") { }; /////////////////////////////////////////////////////////////////// return(new CommandGroupCollection() { rulesInCastleAgeOnly, internalAffairsInCastleAge, militaryInCastleAge, endOfCastlelAge, rulesInCastleAgeOrLater, rulesToCastlelAgeOnly }); }
protected override CommandGroupCollection GetCommandGroups() { /////////////////////////////////////////////////////////////////// var rulesInImperialAgeOnly = new EachAgesCommandCollection(GroupType.ImperialAge, "帝王の時代にのみ適用するルール") { new InitImperialAge(), //帝王の時代の初期設定 new TrainVillager(200), //町の人を指定人数まで生産 new BuildMonastery(5), //神殿の建設 new BuildSiegeWorkshop(20), //包囲攻撃訓練所の建設 new TrainArcherLine(40), //射手の生産 new AttackNow(60, 90), //攻撃 new ImperialAgeGathererPercentages(), //帝王の時代の資源収集割合 new ExtendTownSizeForBuildings(1, 100), //建物を建てるために町のサイズを拡張する new TrainScorpion(), //スコーピオンの生産 new ResearchCoinage(), //貨幣制度の研究 new ResearchBanking(), //銀行取引 new ResearchGuilds(), //組合 new ResearchSpiesTreason(), //謀報/反逆の研究 new ResearchFervor(), //篤信の研究 new ResearchRedemption(), //贖い new ResearchAtonement(), //償い new ResearchHerbalMedicine(), //薬草学 new ResearchHeresy(), //異端 new ResearchStonecutting(), //人力起重機 new ResearchGuardTower(), //監視塔 }; /////////////////////////////////////////////////////////////////// var internalAffairsInImperial = new CommandCollection("帝王の時代の内政") { new ResearchTwoManSaw(), //両ひきのこぎりの研究 new ResearchCropRotation(), //輪作の研究 new SellSurplusCommodity(commodity.food, 1200, 1200), //食料があまっていたら売る new SellSurplusCommodity(commodity.wood, 1200, 1200), //木があまっていたら売る new SellSurplusCommodity(commodity.stone, 1200, 1200), //石があまっていたら売る //金が余ったら買う new BuyShortageCommodity(commodity.food, 1200, 1200), new BuyShortageCommodity(commodity.wood, 1200, 1200), new BuyShortageCommodity(commodity.stone, 1200, 650), }; /////////////////////////////////////////////////////////////////// var militaryInCastleAge = new CommandCollection("帝王の時代の軍事") { new ResearchRingArcherArmor(), //射手用鎖の鎧研究 new ResearchBracer(), //小手の研究 new ResearchBlastFurnace(), //高温溶鉱炉の研究 new ResearchPlateBarding(), //騎馬用甲冑の研究 new ResearchPlateMail(), //歩兵用甲冑の研究 new TrainHandCannoneer(), //砲撃手の生産 new ResearchArbalest(), //重石弓射手の研究 new ResearchParthianTactics(), //パルティアン戦術の研究 new ResearchHalberdier(), //矛槍兵の研究 new ResearchTwoHandedSwordsman(), //重剣剣士の研究 new ResearchChanpion(), //近衛剣士の研究 new ResearchHussar(), //ハサーの研究 new ResearchCavalier(), //重騎士の研究 new ResearchPaladin(), //近衛騎士の研究 new TrainBombardCannon(), //大砲の生産 new ResearchCappedRam(), //強化破城槌の研究 new ResearchSiegeRam(), //改良強化破城槌の研究 new ResearchOnager(), //改良型投石機の研究 new ResearchSiegeOnager(), //破城投石機の研究 new ResearchHeavyScorpion(), //ヘビースコーピオンの研究 new ResearchFaith(), //信仰の研究 new ResearchIllumination(), //啓蒙の研究 new ResearchBlockPrinting(), //活版印刷 new ResearchTheocracy(), //神政 }; /////////////////////////////////////////////////////////////////// var endOfInperialAge = new CommandCollection("帝王の時代中終盤") { new ResearchConscription(), //徴用の研究 new ResearchChemistry(), //化学 new ResearchArchitecture(), //建築学 new ResearchSiegeEngineers(), //包囲攻撃技術 new ResearchKeep(), //防御塔 new ResearchBombardTower(), //砲台 new ResearchUniqueUnitUpgrade(), //ユニークユニットの研究 new ResearchUniqueResearch(), //ユニークテクノロジの研究 new TrainTrebuchet(), //遠投投石機の生産 new ResearchHoardings(), //城壁強化の研究 new ResearchSappers(), //土木技術の研究 }; /////////////////////////////////////////////////////////////////// return(new CommandGroupCollection() { rulesInImperialAgeOnly, internalAffairsInImperial, militaryInCastleAge, endOfInperialAge }); }
protected override CommandGroupCollection GetCommandGroups() { /////////////////////////////////////////////////////////////////// var feudalAgeIncludeResearching = new EachAgesCommandCollection(GroupType.FeudalAge, "領主の時代(城主進化中も含む)に適用するルール") { new InitFeudalAge(), //領主の時代の初期設定 new BuildArcheryRange(3), //射手育成所を2軒まで建設 new BuildMill(2), //粉ひき所を建設 new ResignTimeout("00:50:00"), //指定の時間経過したら降参 new FeudalAgeGathererPercentages(), //領主の時代の資源収集割合 new BuildMill(), //粉引き所 new BuildBarracks(2), //戦士育成所2軒目の建設 }; /////////////////////////////////////////////////////////////////// var feudalAgeOnly = new EachAgesCommandCollection( GroupType.FeudalAge, ResearchState.Finished, "領主の時代にのみ適用するルール") { new TrainVillager(100, age.feudal_age), //進化条件を満たすまで町の人の生産 new TrainPerUnitPct(unit.spearman_line, 15, unit.skirmisher_line, 20), //槍兵の生産 new TrainArcherLine(15), //射手生産 new TrainSpearmanLine(10), //守備用に槍兵を生産 new TrainSkirmisher(5), //散兵の生産 }; /////////////////////////////////////////////////////////////////// var internalAffairsInFeudalAge = new CommandCollection("領主の時代の内政") { new BuildBlackSmith(1, building.archery_range, 2), //射手育成所建設後に鉄工所を建設する new BuildMarket(1), //市場の建設 }; /////////////////////////////////////////////////////////////////// var militaryInFeudalAge = new CommandCollection("領主の時代の軍事") { }; /////////////////////////////////////////////////////////////////// var endOfFeudalAge = new CommandCollection("領主の時代中終盤") { new ResearchCastleAge(), //城主の時代に進化 new BuildMiningCamp(resource_type.stone), //石の採掘所を作成 }; /////////////////////////////////////////////////////////////////// var ResearchingCastleAge = new EachAgesCommandCollection( GroupType.FeudalAgeOrLater, "領主の時代以降") { new BuildFarm(), //畑の建設 new BuildMiningCamp(), //距離が空いたら採掘所を作成 }; /////////////////////////////////////////////////////////////////// var toCastleAge = new EachAgesCommandCollection(GroupType.FeudalAge, ResearchState.Researching, "城主の時代進化中にのみ適用するルール") { new BuildStable(2), //騎兵育成所の建設 new ResearchGoldMining(), //金の採掘の研究 new BuildMiningCamp(3), //採掘所を3軒建設 }; return(new CommandGroupCollection() { feudalAgeIncludeResearching, feudalAgeOnly, internalAffairsInFeudalAge, militaryInFeudalAge, endOfFeudalAge, ResearchingCastleAge, toCastleAge }); }