string GetStringTowerDetails(ETower type, int level, bool ignoreFirstRow = false) { TowerLevelAttributes attr = Configurations.Instance.GetTowerLevels(type)[level - 1]; var bulletAttr = attr.bulletAttributes; var sb = new System.Text.StringBuilder(); if (!ignoreFirstRow) { sb.AppendFormat("{0} Tower Lvl {1}\n", Configurations.TowerNameFromType(type), level); } sb.AppendFormat("AttackRate: {0}\nDmg: {1}", attr.attackRate, bulletAttr.baseDamage); if (bulletAttr.dotDps > 0) { sb.AppendFormat(" + {0} over {1}s", bulletAttr.dotDps, bulletAttr.dotDuration); } if (bulletAttr.slowRate > 0.0f) { sb.AppendFormat("\nSlows: {0:0.#}% for {1:0.#}s", 100.0f - 100.0f / (1.0f + bulletAttr.slowRate), bulletAttr.slowDuration); } if (bulletAttr.splash) { sb.Append("\nSplash"); } return(sb.ToString()); }
public void BuildTowerString(string nameOfType) { if (GameManager.ThePlayer.Paused) { return; } PointerOverObjectName = ""; ETower type = ETower.Venom; if (Configurations.TowerTypeFromName(nameOfType, ref type)) { var towerPlace = GameManager.ThePlayerController.selected.GetComponent <TowerPlaceSelection>(); int i, j; i = towerPlace.i; j = towerPlace.j; int cost = 0; if (BuildingManager.Instance.CanBuildAt(i, j) && GameManager.ThePlayer.canAffordOption(nameOfType, ref cost)) { GameManager.ThePlayer.IncreaseMoney(-cost); var tower = BuildingManager.Instance.buildTower(type, i, j); GameManager.ThePlayerController.SetNewSelected(tower.gameObject); } } EventPlayerControllerClicked(); }
public void SetInventoryImages(ETower tower, int inventoryLoc) { switch (tower) { case ETower.Freeze: _inventoryImages[inventoryLoc].sprite = _towerSprites[0]; break; case ETower.StandardCannon: _inventoryImages[inventoryLoc].sprite = _towerSprites[1]; break; case ETower.StaticCannon: _inventoryImages[inventoryLoc].sprite = _towerSprites[2]; break; case ETower.Reverse: _inventoryImages[inventoryLoc].sprite = _towerSprites[3]; break; case ETower.NULL: _inventoryImages[inventoryLoc].sprite = _towerSprites[4]; break; } }
public int getSellingPriceOfTower(ETower type, int level) { int sum = 0; for (int i = 1; i <= level; i++) { sum += getCostOfTower(type, i); } return((int)(sum * refundRate)); }
public static object[] getTowerBuildReso(ETower type) { float stretch = 0.0f; Vector2 vector = Vector2.zero; switch (type) { #region ARCHITECT case ETower.ARCHITECT: stretch = PlayConfig.StretchTowerBuildArchitect; vector = PlayConfig.AnchorTowerBuildArchitect; break; #endregion #region ROCK case ETower.ROCK: stretch = PlayConfig.StretchTowerBuildRock; vector = PlayConfig.AnchorTowerBuildRock; break; #endregion #region ICE case ETower.ICE: stretch = PlayConfig.StretchTowerBuildIce; vector = PlayConfig.AnchorTowerBuildIce; break; #endregion #region FIRE case ETower.FIRE: stretch = PlayConfig.StretchTowerBuildFire; vector = PlayConfig.AnchorTowerBuildFire; break; #endregion #region GOLD case ETower.GOLD: stretch = PlayConfig.StretchTowerBuildGold; vector = PlayConfig.AnchorTowerBuildGold; break; #endregion #region POISON case ETower.POISON: stretch = PlayConfig.StretchTowerBuildPoison; vector = PlayConfig.AnchorTowerBuildPoison; break; #endregion } return(new object[] { stretch, vector }); }
public void UpdateTowerDetailsContent(ETower type, int level) { GameObject panel = towerDetailsPanel; Image icon = panel.transform.Find("Icon").GetComponent <Image>(); var currentLevelText = panel.transform.Find("CurrentLevelText").GetComponent <Text>(); var NextLevelText = panel.transform.Find("NextLevelText").GetComponent <Text>(); var SellText = panel.transform.Find("SellText").GetComponent <Text>(); icon.sprite = GuiHandler.Instance.GetIcon(type.ToString()); var sb = new System.Text.StringBuilder(); if (level == 0) { sb.Append(GetStringTowerDetails(type, 1)); sb.AppendFormat("\nCost: {0}", Configurations.Instance.getCostOfTower(type, 1)); currentLevelText.text = sb.ToString(); NextLevelText.text = ""; SellText.text = ""; return; } sb.Append(GetStringTowerDetails(type, level)); currentLevelText.text = sb.ToString(); sb = new System.Text.StringBuilder(); sb.Append("Next level\n"); if (Configurations.Instance.getMaxLevel(type) == level) { sb.AppendFormat("Maximum lvl reached"); } else { sb.Append(GetStringTowerDetails(type, level + 1, true)); sb.AppendFormat("\nCost: {0}", Configurations.Instance.getCostOfTower(type, level + 1)); } NextLevelText.text = sb.ToString(); SellText.text = "Sell value: " + Configurations.Instance.getSellingPriceOfTower(type, level); }
public void UpdateDetails() { Unregister(); var s = GameManager.ThePlayerController.selected; if (s == null) { //disable tower details towerDetailsPanel.SetActive(false); return; } var towerSel = s.GetComponent <TowerPlaceSelection>(); if (towerSel != null) { ETower type = ETower.Electro; if (Configurations.TowerTypeFromName(GuiHandler.Instance.PointerOverObjectName, ref type)) { towerDetailsPanel.SetActive(true); UpdateTowerDetailsContent(type, 0); return; } else { towerDetailsPanel.SetActive(false); return; } } var t = s.GetComponent <Tower>(); if (t != null) { towerDetailsPanel.SetActive(true); Register(t); UpdateTowerDetailsContent(t.type, t.level); } else { towerDetailsPanel.SetActive(false); } }
public static string TowerNameFromType(ETower type) { switch (type) { case ETower.Fire: return("Fire"); case ETower.Venom: return("Venom"); case ETower.Electro: return("Electro"); case ETower.Ice: return("Ice"); default: return("Error: tower type not recognized"); } }
public bool canAffordOption(string name, ref int cost) { ETower type = ETower.Electro; if (Configurations.TowerTypeFromName(name, ref type)) { cost = Configurations.Instance.getCostOfTower(type, 1); return(cost <= CurrentMoney); } else if (name == "Upgrade") { Tower t = GameManager.ThePlayerController.GetSelectedTower(); if (t != null && Configurations.Instance.getMaxLevel(t.type) > t.level) { cost = Configurations.Instance.getCostOfTower(t.type, t.level + 1); return(cost <= CurrentMoney); } return(false); } return(true); }
public static bool TowerTypeFromName(string name, ref ETower type) { switch (name) { case "Fire": type = ETower.Fire; return(true); case "Venom": type = ETower.Venom; return(true); case "Electro": type = ETower.Electro; return(true); case "Ice": type = ETower.Ice; return(true); default: return(false); } }
public STowerID(ETower type, int level) { Type = type; Level = level; }
public static object[] getTowerBuildReso(ETower type) { float stretch = 0.0f; Vector2 vector = Vector2.zero; switch (type) { #region ARCHITECT case ETower.ARCHITECT: stretch = PlayConfig.StretchTowerBuildArchitect; vector = PlayConfig.AnchorTowerBuildArchitect; break; #endregion #region ROCK case ETower.ROCK: stretch = PlayConfig.StretchTowerBuildRock; vector = PlayConfig.AnchorTowerBuildRock; break; #endregion #region ICE case ETower.ICE: stretch = PlayConfig.StretchTowerBuildIce; vector = PlayConfig.AnchorTowerBuildIce; break; #endregion #region FIRE case ETower.FIRE: stretch = PlayConfig.StretchTowerBuildFire; vector = PlayConfig.AnchorTowerBuildFire; break; #endregion #region GOLD case ETower.GOLD: stretch = PlayConfig.StretchTowerBuildGold; vector = PlayConfig.AnchorTowerBuildGold; break; #endregion #region POISON case ETower.POISON: stretch = PlayConfig.StretchTowerBuildPoison; vector = PlayConfig.AnchorTowerBuildPoison; break; #endregion } return new object[] {stretch, vector}; }
public Tower buildTower(ETower type, int i, int j) { return(buildTowerAt(i, j, Configurations.Instance.GetBaseTowerPrefab(type), Configurations.Instance.GetTowerLevels(type))); }
public int getMaxLevel(ETower type) { return(towerLevels[type].Length); }
public GameObject GetBaseTowerPrefab(ETower towertype) { return(towerPrefabs[towertype]); }
public int getCostOfTower(ETower towertype, int level) { return(towerLevels[towertype][level - 1].cost); }
public TowerLevelAttributes[] GetTowerLevels(ETower type) { return(towerLevels[type]); }