protected override UpgradePolicyDescription PopulateInstanceUsingJObject(JObject jObject, UpgradePolicyDescription targetObject, Newtonsoft.Json.JsonSerializer serializer) { // UpgradeKind is required property. UpgradeKind jUpgradeKind = jObject["UpgradeKind"].ToObject <UpgradeKind>(); if (jUpgradeKind == UpgradeKind.Rolling) { return(jObject.ToObject <RollingUpgradePolicyDescription>(serializer)); } throw new FabricSerializationException(string.Format("UpgradePolicyDescriptionJsonConverter: PopulateInstanceUsingJObject(): Invalid UpgradeKind: {0}.", jUpgradeKind)); }
public ActiveState() { activeLicenceKind = LicenceKind.SecondLicence; activeRoad = null; activeTown = null; activeHexa = null; activeTownPos = 255; activeSourceKind = SourceKind.Count; activeUpgradeKind = UpgradeKind.SecondUpgrade; activeSourceBuildingKind = SourceBuildingKind.Count; activePlayer = null; }
public virtual BuyingUpgradeError CanActivePlayerBuyUpgrade(UpgradeKind upgradeKind, int upgradeNumber) { GameMaster gm = GameMaster.Inst(); Player activePlayer = gm.GetActivePlayer(); if (upgradeCount == upgradeMax) { GameState.map.GetMapController().SetLastError(Strings.ERROR_MAX_UPGRADES); return BuyingUpgradeError.MaxUpgrades; } if (!GetUpgradeCost(upgradeKind, upgradeNumber).HasPlayerSources(activePlayer)) { GameState.map.GetMapController().SetLastError(Strings.ERROR_NO_SOURCES); return BuyingUpgradeError.NoSources; } return BuyingUpgradeError.OK; }
private Texture2D GetUpgradeIcon(UpgradeKind kind, int upgradeNumber) { switch (kind) { case UpgradeKind.FirstUpgrade: switch (upgradeNumber) { case 0: return GameResources.Inst().GetHudTexture(HUDTexture.IconMill1); case 1: return GameResources.Inst().GetHudTexture(HUDTexture.IconStepherd1); case 2: return GameResources.Inst().GetHudTexture(HUDTexture.IconQuarry1); case 3: return GameResources.Inst().GetHudTexture(HUDTexture.IconWood1); case 4: return GameResources.Inst().GetHudTexture(HUDTexture.IconMine1); } break; case UpgradeKind.SecondUpgrade: switch (upgradeNumber) { case 0: return GameResources.Inst().GetHudTexture(HUDTexture.IconMill2); case 1: return GameResources.Inst().GetHudTexture(HUDTexture.IconStepherd2); case 2: return GameResources.Inst().GetHudTexture(HUDTexture.IconQuarry2); case 3: return GameResources.Inst().GetHudTexture(HUDTexture.IconWood2); case 4: return GameResources.Inst().GetHudTexture(HUDTexture.IconMine2); } break; } return null; }
public SourceBuildingModel(Player playerOwner, int townID, int hexaID) : base(playerOwner) { this.townID = townID; this.hexaID = hexaID; upgrade = UpgradeKind.NoUpgrade; TownModel town = GameState.map.GetTownByID(townID); int buildingPos = town.FindBuildingByHexaID(hexaID); HexaModel hexa = town.GetHexa(buildingPos); SourceAll sourceNormal = new SourceAll(0); int amountNormal = hexa.GetStartSource(); switch (hexa.GetKind()) { case HexaKind.Forest: sourceNormal = new SourceAll(0, 0, 0, amountNormal, 0); break; case HexaKind.Stone: sourceNormal = new SourceAll(0, 0, amountNormal, 0, 0); break; case HexaKind.Cornfield: sourceNormal = new SourceAll(amountNormal, 0, 0, 0, 0); break; case HexaKind.Pasture: sourceNormal = new SourceAll(0, amountNormal, 0, 0, 0); break; case HexaKind.Mountains: sourceNormal = new SourceAll(0, 0, 0, 0, amountNormal); break; } playerOwner.AddCollectSources(sourceNormal, new SourceAll(0)); upgrade1cost = new SourceAll(0); upgrade2cost = new SourceAll(0); switch (hexa.GetKind()) { case HexaKind.Mountains: buildingKind = SourceBuildingKind.Mine; titleBuilding = Strings.PROMT_TITLE_WANT_TO_BUILD_MINE; upgrade1Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_1_MINE; upgrade2Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_2_MINE; upgrade1Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_1_MINE; upgrade2Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_2_MINE; upgrade0iconActive = GameResources.Inst().GetHudTexture(HUDTexture.IconMineActive); upgrade0icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMine); upgrade1icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMine1); upgrade2icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMine2); break; case HexaKind.Forest: buildingKind = SourceBuildingKind.Saw; titleBuilding = Strings.PROMT_TITLE_WANT_TO_BUILD_SAW; upgrade1Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_1_SAW; upgrade2Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_2_SAW; upgrade1Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_1_SAW; upgrade2Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_2_SAW; upgrade0iconActive = GameResources.Inst().GetHudTexture(HUDTexture.IconSawActive); upgrade0icon = GameResources.Inst().GetHudTexture(HUDTexture.IconSaw); upgrade1icon = GameResources.Inst().GetHudTexture(HUDTexture.IconSaw1); upgrade2icon = GameResources.Inst().GetHudTexture(HUDTexture.IconSaw2); break; case HexaKind.Cornfield: buildingKind = SourceBuildingKind.Mill; titleBuilding = Strings.PROMT_TITLE_WANT_TO_BUILD_MILL; upgrade1Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_1_MILL; upgrade2Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_2_MILL; upgrade1Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_1_MILL; upgrade2Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_2_MILL; upgrade0iconActive = GameResources.Inst().GetHudTexture(HUDTexture.IconMillActive); upgrade0icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMill); upgrade1icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMill1); upgrade2icon = GameResources.Inst().GetHudTexture(HUDTexture.IconMill2); break; case HexaKind.Pasture: buildingKind = SourceBuildingKind.Stepherd; titleBuilding = Strings.PROMT_TITLE_WANT_TO_BUILD_STEPHERD; upgrade1Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_1_STEPHERD; upgrade2Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_2_STEPHERD; upgrade1Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_1_STEPHERD; upgrade2Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_2_STEPHERD; upgrade0iconActive = GameResources.Inst().GetHudTexture(HUDTexture.IconStepherdActive); upgrade0icon = GameResources.Inst().GetHudTexture(HUDTexture.IconStepherd); upgrade1icon = GameResources.Inst().GetHudTexture(HUDTexture.IconStepherd1); upgrade2icon = GameResources.Inst().GetHudTexture(HUDTexture.IconStepherd2); break; case HexaKind.Stone: buildingKind = SourceBuildingKind.Quarry; titleBuilding = Strings.PROMT_TITLE_WANT_TO_BUILD_QUARRY; upgrade1Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_1_QUARRY; upgrade2Title = Strings.PROMPT_TITLE_WANT_TO_UPGRADE_2_QUARRY; upgrade1Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_1_QUARRY; upgrade2Description = Strings.PROMPT_DESCRIPTION_WANT_TO_UPGRADE_2_QUARRY; upgrade0iconActive = GameResources.Inst().GetHudTexture(HUDTexture.IconQuarryActive); upgrade0icon = GameResources.Inst().GetHudTexture(HUDTexture.IconQuarry); upgrade1icon = GameResources.Inst().GetHudTexture(HUDTexture.IconQuarry1); upgrade2icon = GameResources.Inst().GetHudTexture(HUDTexture.IconQuarry2); break; } }
public void BuyUpgrade(UpgradeKind kind, int upgradeNumber) { upgradeCount++; ApplyEffect(kind, upgradeNumber); }
public override void SetPromptWindow(PromptWindow.Mod mod) { PromptWindow win = PromptWindow.Inst(); GameResources res = GameResources.Inst(); win.Show(mod, titleBuilding, true); upgrade = GetUpgrade(); if (upgrade == UpgradeKind.NoUpgrade) win.AddPromptItem(new SpecialBuildingPromptItem(townID, hexaID, UpgradeKind.FirstUpgrade, 0, this, upgrade1Title, upgrade1Description, upgrade1cost, true, upgrade1icon)); else if (upgrade == UpgradeKind.FirstUpgrade) win.AddPromptItem(new SpecialBuildingPromptItem(townID, hexaID, UpgradeKind.SecondUpgrade, 0, this, upgrade2Title, upgrade2Description, upgrade2cost, true, upgrade2icon)); else { win.AddPromptItem(new SpecialBuildingPromptItem(townID, hexaID, UpgradeKind.SecondUpgrade, 0, this, titleBuilding, Strings.PROMPT_DESCRIPTION_ALL_UPGRADES_USED, new SourceAll(0), true, upgrade2icon)); //win.AddPromptItem(new PromptItem(titleBuilding, Strings.PROMPT_DESCRIPTION_ALL_UPGRADES_USED, new SourceAll(0), false, false, upgrade2icon)); } }
protected override void ApplyEffect(UpgradeKind upgradeKind, int upgradeNumber) { upgrade = upgradeKind; SetPromptWindow(PromptWindow.Mod.Buyer); }
protected override void ApplyEffect(UpgradeKind upgradeKind, int upgradeNumber) { PromptWindow win = PromptWindow.Inst(); GameResources res = GameResources.Inst(); GameMaster gm = GameMaster.Inst(); upgradeCount--; switch (upgradeKind) { case UpgradeKind.FirstUpgrade: switch (upgradeNumber) { case 0 : //costCaptureHexa += new SourceAll(30); gm.GetActivePlayer().AddSources(GetUpgradeCost(upgradeKind, upgradeNumber), TransactionState.TransactionStart); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); HexaModel.SetHexaFort(this); gm.SetFortState(EFortState.CapturingHexa); win.Deactive(); break; case 1: gm.GetActivePlayer().AddSources(GetUpgradeCost(upgradeKind, upgradeNumber), TransactionState.TransactionStart); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); HexaModel.SetHexaFort(this); gm.SetFortState(EFortState.DestroyingHexa); win.Deactive(); break; case 2 : //costSources += new SourceAll(30); gm.GetActivePlayer().AddSources(GetUpgradeCost(upgradeKind, upgradeNumber), TransactionState.TransactionStart); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); win.Show(PromptWindow.Mod.Buyer, Strings.PROMPT_TITLE_WANT_TO_BUY_FORT_ACTION_SOURCES, true); for (int loop1 = 0; loop1 < gm.GetPlayerCount(); loop1++) { if (gm.GetPlayer(loop1) != gm.GetActivePlayer()) { win.AddPromptItem(new PlayerPromptItem(gm.GetPlayer(loop1), gm.GetPlayer(loop1).GetName(), Strings.PROMPT_DESCRIPTION_WANT_TO_BUY_FORT_ACTION_SOURCES_CHOISING_PLAYER, gm.GetPlayer(loop1).GetSource(), false, res.GetHudTexture(HUDTexture.IconTown))); } } playerPrompt = true; break; case 3 : gm.GetActivePlayer().AddSources(GetUpgradeCost(upgradeKind, upgradeNumber), TransactionState.TransactionStart); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); gm.GetActivePlayer().AddSources(new SourceAll(0), TransactionState.TransactionEnd); ShowParade(); //win.Deactive(); break; } break; case UpgradeKind.SecondUpgrade: break; } }
public override SourceAll GetUpgradeCost(UpgradeKind upgradeKind, int upgradeNumber) { switch (upgradeKind) { case UpgradeKind.FirstUpgrade: switch (upgradeNumber) { case 0: return upgrade1cost; } break; case UpgradeKind.SecondUpgrade: switch (upgradeNumber) { case 0: return upgrade2cost; } break; } return new SourceAll(0); }
int upgradeNumber; /// which from 5 upgraded player wants to upgrade #endregion Fields #region Constructors public SpecialBuildingPromptItem(int townID, int hexaID, UpgradeKind upgradeKind, int upgradeNumber, SpecialBuilding building, String title, String description, SourceAll source, bool isSourceCost, Texture2D icon) : base(title, description, source, isSourceCost, false, icon) { this.townID = townID; this.hexaID = hexaID; this.upgradeKind = upgradeKind; this.upgradeNumber = upgradeNumber; this.building = building; }
public void SetSourceBuildingUpdate(UpgradeKind upgradeKind, int upgradeNumber) { statistic.AddStat(Statistic.Kind.Upgrades, 1, GameMaster.Inst().GetTurnNumber()); if (upgradeKind == UpgradeKind.FirstUpgrade) { AddPoints(PlayerPoints.UpgradeLvl1); switch (upgradeNumber) { case 0: AddCollectSources(new SourceAll(collectSourcesNormal.GetCorn() / 2, 0, 0, 0, 0), new SourceAll(0)); break; case 1: AddCollectSources(new SourceAll(0, collectSourcesNormal.GetMeat() / 2, 0, 0, 0), new SourceAll(0)); break; case 2: AddCollectSources(new SourceAll(0, 0, collectSourcesNormal.GetStone() / 2, 0, 0), new SourceAll(0)); break; case 3: AddCollectSources(new SourceAll(0, 0, 0, collectSourcesNormal.GetWood() / 2, 0), new SourceAll(0)); break; case 4: AddCollectSources(new SourceAll(0, 0, 0, 0, collectSourcesNormal.GetOre() / 2), new SourceAll(0)); break; } } else { AddPoints(PlayerPoints.UpgradeLvl2); switch (upgradeNumber) { case 0: AddCollectSources(new SourceAll(collectSourcesNormal.GetCorn() / 3, 0, 0, 0, 0), new SourceAll(0)); break; case 1: AddCollectSources(new SourceAll(0, collectSourcesNormal.GetMeat() / 3, 0, 0, 0), new SourceAll(0)); break; case 2: AddCollectSources(new SourceAll(0, 0, collectSourcesNormal.GetStone() / 3, 0, 0), new SourceAll(0)); break; case 3: AddCollectSources(new SourceAll(0, 0, 0, collectSourcesNormal.GetWood() / 3, 0), new SourceAll(0)); break; case 4: AddCollectSources(new SourceAll(0, 0, 0, 0, collectSourcesNormal.GetOre() / 3), new SourceAll(0)); break; } } upgradeMonastery[upgradeNumber] = upgradeKind; }
protected override void ApplyEffect(UpgradeKind upgradeKind, int upgradeNumber) { Player player = GameMaster.Inst().GetActivePlayer(); player.SetSourceBuildingUpdate(upgradeKind, upgradeNumber); if (!player.GetIsAI()) { int tempItem = PromptWindow.Inst().GetActiveItem(); SetPromptWindow(PromptWindow.Mod.Buyer); PromptWindow.Inst().SetActiveItem(tempItem); } else { Message.Inst().Show(player.GetName() + " vynalezl pokrok", player.GetName() + " vynalezl " + GetUpgradeKindString(upgradeKind) + " pro větší zisky surovin z " + GetUpgradeBuildingName(upgradeNumber) + ".", GetUpgradeIcon(upgradeKind, upgradeNumber)); } }
public abstract SourceAll GetUpgradeCost(UpgradeKind upgradeKind, int upgradeNumber);
public override SourceAll GetUpgradeCost(UpgradeKind upgradeKind, int upgradeNumber) { if (upgradeKind == UpgradeKind.FirstUpgrade) { switch (upgradeNumber) { case 0: return costCaptureHexa; case 1: return Settings.costFortCrusade; case 2: return costSources; case 3: return costParade; } } return new SourceAll(0); }
public ISourceAll GetPrice(SourceBuildingKind buildingKind, UpgradeKind upgradeKind) { if (upgradeKind == UpgradeKind.NoUpgrade) return new SourceAll(0); return GetPrice(GetPriceForMonasteryUpgrade(upgradeKind, buildingKind)); }
public BuyingUpgradeError CanBuyUpgradeInSpecialBuilding(int townID, int hexaID, UpgradeKind upgradeKind, int upgradeNumber) { GameMaster gm = GameMaster.Inst(); TownModel town = map.GetTownByID(townID); if (town == null) { SetLastError(Strings.ERROR_THERE_IS_NO_TOWN); return BuyingUpgradeError.ThereIsNoTown; } SpecialBuilding building = town.GetSpecialBuilding(hexaID); if (building == null) { SetLastError(Strings.ERROR_THERE_IS_NO_BUILDING); return BuyingUpgradeError.ThereIsNoBuilding; } return building.CanActivePlayerBuyUpgrade(upgradeKind, upgradeNumber); }
public bool BuyUpgradeInSpecialBuilding(int townID, int hexaID, UpgradeKind upgradeKind, int upgradeNumber) { GameMaster gm = GameMaster.Inst(); TownModel town = map.GetTownByID(townID); if (town == null) return false; SpecialBuilding building = town.GetSpecialBuilding(hexaID); if (building == null) return false; BuyingUpgradeError error = building.CanActivePlayerBuyUpgrade(upgradeKind, upgradeNumber); if (error == BuyingUpgradeError.OK) { gm.GetActivePlayer().PayForSomething(building.GetUpgradeCost(upgradeKind, upgradeNumber)); building.BuyUpgrade(upgradeKind, upgradeNumber); return true; } return false; }
private PriceKind GetPriceForMonasteryUpgrade(UpgradeKind upgradeKind, SourceBuildingKind buildingKind) { switch (upgradeKind) { case UpgradeKind.FirstUpgrade: switch (buildingKind) { case SourceBuildingKind.Mill: return PriceKind.UMill1; case SourceBuildingKind.Stepherd: return PriceKind.UStepherd1; case SourceBuildingKind.Quarry: return PriceKind.UQuarry1; case SourceBuildingKind.Saw: return PriceKind.USaw1; case SourceBuildingKind.Mine: return PriceKind.UMine1; } break; case UpgradeKind.SecondUpgrade: switch (buildingKind) { case SourceBuildingKind.Mill: return PriceKind.UMill2; case SourceBuildingKind.Stepherd: return PriceKind.UStepherd2; case SourceBuildingKind.Quarry: return PriceKind.UQuarry2; case SourceBuildingKind.Saw: return PriceKind.USaw2; case SourceBuildingKind.Mine: return PriceKind.UMine2; } break; } return PriceKind.UMill1; }
protected abstract void ApplyEffect(UpgradeKind upgradeKind, int upgradeNumber);
private String GetUpgradeKindString(UpgradeKind kind) { switch (kind) { case UpgradeKind.FirstUpgrade: return "první pokrok"; case UpgradeKind.SecondUpgrade: return "druhý pokrok"; } return ""; }
public override SourceAll GetUpgradeCost(UpgradeKind upgradeKind, int upgradeNumber) { switch (upgradeKind) { case UpgradeKind.FirstUpgrade : switch (upgradeNumber) { case 0: return Settings.costMonasteryCorn1; case 1: return Settings.costMonasteryMeat1; case 2: return Settings.costMonasteryStone1; case 3: return Settings.costMonasteryWood1; case 4: return Settings.costMonasteryOre1; } break; case UpgradeKind.SecondUpgrade : switch (upgradeNumber) { case 0: return Settings.costMonasteryCorn2; case 1: return Settings.costMonasteryMeat2; case 2: return Settings.costMonasteryStone2; case 3: return Settings.costMonasteryWood2; case 4: return Settings.costMonasteryOre2; } break; } return new SourceAll(0); }
public override BuyingUpgradeError CanActivePlayerBuyUpgrade(UpgradeKind upgradeKind, int upgradeNumber) { GameMaster gm = GameMaster.Inst(); Player activePlayer = gm.GetActivePlayer(); if (activePlayer.GetMonasteryUpgrade(buildingKind) == UpgradeKind.NoUpgrade || (activePlayer.GetMonasteryUpgrade(buildingKind) == UpgradeKind.FirstUpgrade && upgradeKind == UpgradeKind.SecondUpgrade)) { return BuyingUpgradeError.NoUpgrade; } if (upgradeKind == UpgradeKind.SecondUpgrade) { if (upgrade == UpgradeKind.NoUpgrade) { GameState.map.GetMapController().SetLastError(Strings.YOU_DONT_HAVE_FIRST_UPGRADE); return BuyingUpgradeError.YouDontHaveFirstUpgrade; } if (upgrade == UpgradeKind.SecondUpgrade) { GameState.map.GetMapController().SetLastError(Strings.ERROR_HAVE_SECOND_UPGRADE); return BuyingUpgradeError.YouAlreadyHaveSecondUpgrade; } } if (!GetUpgradeCost(upgradeKind, upgradeNumber).HasPlayerSources(activePlayer)) { GameState.map.GetMapController().SetLastError(Strings.ERROR_NO_SOURCES); return BuyingUpgradeError.NoSources; } return BuyingUpgradeError.OK; }
/// <summary> /// <para>Initializes an instance of the <see cref="System.Fabric.Description.UpgradePolicyDescription" /> class with the upgrade kind.</para> /// </summary> /// <param name="kind"> /// <para> /// <see cref="System.Fabric.Description.UpgradeKind" />: Describes the kind of upgrade.</para> /// </param> protected UpgradePolicyDescription(UpgradeKind kind) { this.Kind = kind; }
protected override void ApplyEffect(UpgradeKind upgradeKind, int upgradeNumber) { LicenceKind licenceKind; switch (upgradeKind) { case UpgradeKind.NoUpgrade: licenceKind = LicenceKind.NoLicence; break; case UpgradeKind.FirstUpgrade: licenceKind = LicenceKind.FirstLicence; break; default: licenceKind = LicenceKind.SecondLicence; break; } Player p = GameMaster.Inst().GetActivePlayer(); p.BuyMarketLicence(licenceKind, upgradeNumber); if (!p.GetIsAI()) { int tempItem = PromptWindow.Inst().GetActiveItem(); SetPromptWindow(PromptWindow.Mod.Buyer); PromptWindow.Inst().SetActiveItem(tempItem); } else { Message.Inst().Show(p.GetName() + " koupil licenci", p.GetName() + " zakoupil " + GetLicenceKindString(licenceKind) + " pro výhodnější výměnu " + GetLicenceSourceName(upgradeNumber) + ".", GetLicenceIcon(licenceKind, upgradeNumber)); } }