public void UpgradeTower(int choice) { if (PlayerPrefs.HasKey("Used stars")) { int currentlyUsedStars = PlayerPrefs.GetInt("Used stars"); PlayerPrefs.SetInt("Used stars", currentlyUsedStars + levelPrice); } else { PlayerPrefs.SetInt("Used stars", levelPrice); } PlayerPrefs.SetInt(gameObject.name, 1); starsCounter.Calculate(); SetButtonsInteractable(false); PlayerPrefs.SetInt(gameObject.name + " choice", choice); IceTowerUpgrade previousTowerUpgrades = SaveLoad.Load(towerName); SaveLoad.Save(previousTowerUpgrades + upgradeSelection[choice]); if (!subscribedToDeleteUpgrades) { subscribedToDeleteUpgrades = true; deleteUpgrades += DeleteUpgrades; } isUpgraded = true; UpdateInfo(); towerInfoMenu.UpdateTowerInfo(); }
public static IceTowerUpgrade Load(string towerName) { if (File.Exists(Path.Combine(Application.persistentDataPath, towerName + ".ug"))) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Path.Combine(Application.persistentDataPath, towerName + ".ug"), FileMode.Open); IceTowerUpgrade upgradeInfo = (IceTowerUpgrade)bf.Deserialize(file); file.Close(); return(upgradeInfo); } return(new IceTowerUpgrade(towerName)); }
public static void Save(IceTowerUpgrade upgradeInfo) { BinaryFormatter bf = new BinaryFormatter(); FileStream file; if (File.Exists(Path.Combine(Application.persistentDataPath, upgradeInfo.towerName + ".ug"))) { file = File.Open(Path.Combine(Application.persistentDataPath, upgradeInfo.towerName + ".ug"), FileMode.Truncate); } else { file = File.Create(Path.Combine(Application.persistentDataPath, upgradeInfo.towerName + ".ug")); } bf.Serialize(file, upgradeInfo); file.Close(); }
public static IceTowerUpgrade operator +(IceTowerUpgrade tower1, IceTowerUpgrade tower2) { IceTowerUpgrade newTower = new IceTowerUpgrade(); newTower.towerName = tower1.towerName; newTower.starsPrice = tower1.starsPrice + tower2.starsPrice; newTower.additionalDamage = tower1.additionalDamage + tower2.additionalDamage; newTower.armorPiercing = tower1.armorPiercing + tower2.armorPiercing; newTower.additionalAttackSpeed = tower1.additionalAttackSpeed + tower2.additionalAttackSpeed; newTower.basePriceDecrease = tower1.basePriceDecrease + tower2.basePriceDecrease; newTower.upgradePriceDecrease = tower1.upgradePriceDecrease + tower2.upgradePriceDecrease; newTower.additionalRange = tower1.additionalRange + tower2.additionalRange; newTower.additionalExplosionRange = tower1.additionalExplosionRange + tower2.additionalExplosionRange; newTower.additionalFreezingRate = tower1.additionalFreezingRate + tower2.additionalFreezingRate; newTower.additionalFreezingTime = tower1.additionalFreezingTime + tower2.additionalFreezingTime; return(newTower); }
public void Calculate() { int starsAmount = 0; for (int i = 1; i <= numberOfLevels; i++) { string saveName = "Level " + i + " stars"; if (PlayerPrefs.HasKey(saveName)) { starsAmount += PlayerPrefs.GetInt(saveName); } } foreach (string name in towerNames) { IceTowerUpgrade info = SaveLoad.Load(name); starsAmount -= info.starsPrice; } starsNumber.text = starsAmount.ToString(); TotalStars = starsAmount; }
void Awake() { iceTowerAttack = gameObject.GetComponent <IceTowerAttack>(); upgradeBonuses = SaveLoad.Load(towerName); }