Пример #1
0
    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>();
    }
Пример #2
0
    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;
        }
    }
Пример #3
0
    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;
    }
Пример #4
0
    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;
    }
Пример #5
0
    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;
    }
Пример #6
0
        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);
        }
Пример #7
0
    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>();
    }
Пример #8
0
    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;
    }
Пример #9
0
    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);
    }
Пример #10
0
    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);
    }
Пример #11
0
    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);
        }
    }
Пример #12
0
 public static UpgradesRecord GetRecord(this UpgradesIdentifier identifier)
 {
     return(ModelManager.UpgradesModel.GetRecord(identifier));
 }