void Start() { completedCoolTime = false; coolTimeImage.fillAmount = 0; VariableLoader variableLoader = ServiceLocator.Get <VariableLoader>(); if (variableLoader.useGoogleSheets) { //limit = (int) variableLoader.TrashCanStats["TrashLimit"]; totalCoolTime = variableLoader.TrashCanStats["Cooldown"]; healValue = variableLoader.TrashCanStats["AmountCollected"]; } /////////// Upgrades - Trash Spawn Rate Improved /////////// int level = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.TrashSpawnRate]; UpgradesIdentifier upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.TrashSpawnRate, level); coolTimeBeforeUpgrade = totalCoolTime; if (level >= 1) { totalCoolTime -= ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; coolTimeAfterUpgrade = totalCoolTime; } tutorial2 = GameObject.FindObjectOfType <Tutorial2>()?.GetComponent <Tutorial2>(); }
private void UpdateButtonText(Button button, Upgrade upgrade) { int currentLevel = gameManager.upgradeLevelsDictionary[upgrade]; UpgradesIdentifier upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel + 1); if (upgradesIdentifier == UpgradesIdentifier.None) { upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel); } var enumType = typeof(UpgradesIdentifier); var memberInfos = enumType.GetMember(upgradesIdentifier.ToString()); var enumValueMemberInfo = memberInfos.FirstOrDefault(m => m.DeclaringType == enumType); var valueAttributes = enumValueMemberInfo.GetCustomAttributes(typeof(Identifier), false); var description = ((Identifier)valueAttributes[0]).enumIdentifier; int maxUpgradeLevel = upgradesModel.GetTotalUpgrades(upgrade); if (maxUpgradeLevel == currentLevel) // Check if upgrade is max { button.GetComponentInChildren <Text>().text = description + "\n - Max Level."; } else { button.GetComponentInChildren <Text>().text = description; } }
void ApplyUpgrades() { // Upgrade options GameManager gameManager = ServiceLocator.Get <GameManager>(); UpgradesModel upgradesModel = ModelManager.UpgradesModel; UpgradesIdentifier upgradesIdentifier = UpgradesIdentifier.None; // Long Ranged Upgrade // Moved to tower script // Barricade Reduction Cost Upgrade // Moved to Barricade Spawner Script // Wife tower Upgrade Tower wife = GameObject.FindGameObjectWithTag("Wife").GetComponent <Tower>(); int wifeLevel = gameManager.upgradeLevelsDictionary[UpgradeMenu.Upgrade.ExtraProjectiles] - 1; upgradesIdentifier = upgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.ExtraProjectiles, wifeLevel + 1); if (wifeLevel >= 0) { wife.isShooting = true; wife.attackRate -= upgradesModel.GetRecord(upgradesIdentifier).ModifierValue; //upgradeStats.throwingSpeed[wifeLevel]; } // Specific Target Upgrade int specficLevel = gameManager.upgradeLevelsDictionary[UpgradeMenu.Upgrade.TargetEnemy] - 1; upgradesIdentifier = upgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.TargetEnemy, specficLevel + 1); if (specficLevel >= 0) { towerInstance.GetComponent <Tower>().specificEnemy = gameManager.choosenTarget;//upgradesModel.GetRecord(upgradesIdentifier).Target; } // Fire Upgrade int fireLevel = gameManager.upgradeLevelsDictionary[UpgradeMenu.Upgrade.FireProjectile] - 1; upgradesIdentifier = upgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.FireProjectile, fireLevel + 1); if (fireLevel >= 0) { towerInstance.GetComponent <Tower>().damageType = DamageType.Fire; towerInstance.GetComponent <Tower>().fireDuration = upgradesModel.GetRecord(upgradesIdentifier).ModifierValue;// upgradeStats.fireDuration[fireLevel]; } // Improved Barricades // Moved to Barricade Script // Barricade Spawn Rate Improved // Moved to Barricade Spawner Script // Trash Spawn Rate Improved // Moved to Resource Spawner Script // Improved Player HP // Moved to Player Script // Improved healing // Moved to Tower Script // UpdateTowerTrashCount towerInstance.GetComponent <Tower>().fullHealth = gameManager._houseHP; }
private void DisplayChoosenUpgrade(Upgrade upgrade) { int currentLevel = gameManager.upgradeLevelsDictionary[upgrade]; UpgradesIdentifier upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel + 1); if (upgradesIdentifier == UpgradesIdentifier.None) { upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel); } upgradeDescriptionText.text = "Description:\n" + upgradesModel.GetRecord(upgradesIdentifier).Description; }
private void DisplayChoosenUpgrade(Upgrade upgrade, int level) { UpgradesIdentifier upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, level + 1); if (upgradesIdentifier == UpgradesIdentifier.None) { upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, level); } upgradeDescriptionText.text = upgradesModel.GetRecord(upgradesIdentifier).Description; upgradeCostText.text = "Trash Cost:" + upgradesModel.GetRecord(upgradesIdentifier).TrashCost; }
public UpgradesIdentifier GetUpgradeEnum(UpgradeMenu.Upgrade type, int level) { UpgradesIdentifier ret = UpgradesIdentifier.None; foreach (var record in Records) { UpgradesRecord rec = record as UpgradesRecord; if (rec.UpgradeType == type.ToString() && rec.Upgradelevel == level) { ret = rec.Identifier; } } return(ret); }
void Start() { ResetPlayer(); poisonAttack.SetActive(false); poisonIndicator.SetActive(false); poison.SetActive(_ispoisoned); _maxHealth = health; InvokeRepeating("IncrementUltCharge", 10.0f, ultimateChargeTime); audioSource = GetComponent <AudioSource>(); audioManager = ServiceLocator.Get <AudioManager>(); ultimateChargeStart = _ultimateCharge; _uiManager = ServiceLocator.Get <UIManager>(); //attack = PlayerPrefs.GetFloat(DAMAGE_KEY, 20.0f); //health = PlayerPrefs.GetFloat(HEALTH_KEY, 100.0f); VariableLoader variableLoader = ServiceLocator.Get <VariableLoader>(); if (variableLoader.useGoogleSheets) { _maxHealth = variableLoader.PlayerStats["HP"]; healedByItem = variableLoader.PickUpStats["HealAmount"]; attack = variableLoader.PlayerAbilties["Attack"]["Damage"]; attackRange = variableLoader.PlayerAbilties["Attack"]["Range"]; initialPoisonAttackDamage = variableLoader.PlayerAbilties["Poison"]["Damage"]; poisonRange = variableLoader.PlayerAbilties["Poison"]["Range"]; stunRange = variableLoader.PlayerAbilties["Stun"]["Range"]; ultimateDamage = variableLoader.PlayerAbilties["Ultimate"]["Damage"]; ultimateRange = variableLoader.PlayerAbilties["Ultimate"]["Range"]; } /////////// Upgrades - Improved Player HP /////////// int level = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.ImprovedPlayerHP]; UpgradesIdentifier upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.ImprovedPlayerHP, level); if (level >= 1) { _maxHealth += ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; } health = _maxHealth; _uiManager.UpdatePlayerHealth(health, _maxHealth); animator = GetComponent <Animator>(); }
private void Start() { uiManager = ServiceLocator.Get <UIManager>(); VariableLoader variableLoader = ServiceLocator.Get <VariableLoader>(); if (variableLoader.useGoogleSheets) { MaxHealth = variableLoader.TowerStats["Health"]; towerHealCostValue = variableLoader.TowerStats["PlayerHeal"]; towerLostCostValue = variableLoader.TowerStats["TrashCost"]; fullHealth = MaxHealth; } /////////// Upgrades - Improved healing /////////// int level = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.ImprovedHealing]; UpgradesIdentifier upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.ImprovedHealing, level); towerHealBeforeUpgrade = towerHealCostValue; if (level >= 1) { towerHealCostValue += ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; towerHealAfterUpgrade = towerHealCostValue; } fullHealth = ServiceLocator.Get <GameManager>()._houseHP; /////////// Upgrades - Long Ranged Upgrade /////////// int rangedLevel = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.Ranged] - 1; upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.Ranged, rangedLevel + 1); rangeBeforeUpgrade = range; if (rangedLevel >= 0 && gameObject.CompareTag("Tower")) { range += ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue;// upgradeStats.towerRange[rangedLevel]; rangeAfterUpgrade = range; } tutorial2 = FindObjectOfType <Tutorial2>()?.GetComponent <Tutorial2>(); hapticFeedback = GetComponent <HapticFeedback>(); animatorHealthSignifier = signifierGO != null?signifierGO.GetComponent <Animator>() : null; }
private void Start() { characterSound = GetComponent <ICharacterSound>(); VariableLoader variableLoader = ServiceLocator.Get <VariableLoader>(); if (variableLoader.useGoogleSheets) { health = variableLoader.BarriacdeStats["Health"]; _MaxHealth = variableLoader.BarriacdeStats["Health"]; // _barricadeBuildTime = variableLoader.BarriacdeStats["BuildTime"]; } /////////// Upgrades - Improved Barricades /////////// int level = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.ImprovedBarricades]; UpgradesIdentifier upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.ImprovedBarricades, level); if (level >= 1 && ServiceLocator.Get <GameManager>().upgradeEnabled[UpgradeMenu.Upgrade.ImprovedBarricades]) { health += ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; } healthBarGO.transform.rotation = Quaternion.LookRotation(-Camera.main.transform.forward, Camera.main.transform.up); }
private void Start() { characterSound = GetComponent <ICharacterSound>(); lockCoolTimeImage.gameObject.SetActive(false); VariableLoader variableLoader = ServiceLocator.Get <VariableLoader>(); if (variableLoader.useGoogleSheets) { baseBarricadeCost = variableLoader.BarriacdeStats["TrashCost"]; spawnCoolDownTime = variableLoader.BarriacdeStats["CooldownTime"]; } ServiceLocator.Get <GameManager>().barricadeSpawner = this; /////////// Upgrades - Barricade Spawn Rate Improved /////////// int level = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.BarricadeSpawnRate]; spawnCoolDownBeforeUpgrade = spawnCoolDownTime; UpgradesIdentifier upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.BarricadeSpawnRate, level); if (level >= 1) { spawnCoolDownTime -= ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; spawnCoolDownAfterUpgrade = spawnCoolDownTime; } /////////// Upgrades - Barricade Reduction Cost Upgrade /////////// int barricadeLevel = ServiceLocator.Get <GameManager>().upgradeLevelsDictionary[UpgradeMenu.Upgrade.BarricadeReductionCost]; upgradesIdentifier = ModelManager.UpgradesModel.GetUpgradeEnum(UpgradeMenu.Upgrade.BarricadeReductionCost, barricadeLevel); costBeforeUpgrade = baseBarricadeCost; if (barricadeLevel >= 1) { baseBarricadeCost -= ModelManager.UpgradesModel.GetRecord(upgradesIdentifier).ModifierValue; costAfterUpgrade = baseBarricadeCost; } signifier.transform.rotation = Quaternion.LookRotation(Camera.main.transform.forward, Camera.main.transform.up); }
private void ApplyUpgrade(Upgrade upgrade, int currentLevel) { UpgradesIdentifier upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel + 1); int maxUpgradeLevel = upgradesModel.GetTotalUpgrades(upgrade); if (maxUpgradeLevel > currentLevel) { if (gameManager._houseHP - upgradesModel.GetRecord(upgradesIdentifier).TrashCost <= minimumTrashToSpend) // Cannot afford upgrade { messageText.text = "Cannot Upgrade. Your trash cannot be less than " + minimumTrashToSpend + " after the upgrade."; messageText.transform.parent.gameObject.SetActive(true); return; } UpdateTrashCount(upgradesModel.GetRecord(upgradesIdentifier).TrashCost); gameManager.upgradeLevelsDictionary[upgrade]++; gameManager.upgradeEnabled[upgrade] = true; currentLevel++; if (upgrade == Upgrade.TargetEnemy) // Add target to list { gameManager.specialTargets.Add(upgradesModel.GetRecord(upgradesIdentifier).Target); gameManager.choosenTarget = upgradesModel.GetRecord(upgradesIdentifier).Target; } //Update UI if (maxUpgradeLevel > currentLevel) // Another upgrade available { upgradesIdentifier = upgradesModel.GetUpgradeEnum(upgrade, currentLevel + 1); DisplayChoosenUpgrade(upgrade, currentLevel); } UpdateUI(); } else { messageText.text = "Maxium Upgrade Already Equiped."; messageText.transform.parent.gameObject.SetActive(true); } }
public static UpgradesRecord GetRecord(this UpgradesIdentifier identifier) { return(ModelManager.UpgradesModel.GetRecord(identifier)); }