Esempio n. 1
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;
    }
Esempio n. 2
0
        public ShopController(
            ShopView view,
            ShopModel shopModel,
            RoundEndModel roundEndModel,
            ProfileModel profileModel,
            UpgradesModel upgradesModel,
            UpgradeService upgradeService)
            : base(view)
        {
            _view = view;
            _view.Initialize();

            _roundEndModel  = roundEndModel;
            _shopModel      = shopModel;
            _profileModel   = profileModel;
            _upgradesModel  = upgradesModel;
            _upgradeService = upgradeService;

            _roundEndModel.OpenShop
            .Subscribe(_ => Open())
            .AddTo(Disposer);

            SetupOnClick();
            SetupProfileModel();
            SetupUpgradesModel();
        }
Esempio n. 3
0
    private void Start()
    {
        gameManager = ServiceLocator.Get <GameManager>();
        // Update Levels
        barricadeLevel       = gameManager.upgradeLevelsDictionary[Upgrade.BarricadeReductionCost];
        extraProjectileLevel = gameManager.upgradeLevelsDictionary[Upgrade.ExtraProjectiles];
        fireProjectileLevel  = gameManager.upgradeLevelsDictionary[Upgrade.FireProjectile];
        longRangedLevel      = gameManager.upgradeLevelsDictionary[Upgrade.Ranged];
        targetEnemyLevel     = gameManager.upgradeLevelsDictionary[Upgrade.TargetEnemy];

        improvedBarricadeLevel = gameManager.upgradeLevelsDictionary[Upgrade.ImprovedBarricades];
        barricadeSpawnLevel    = gameManager.upgradeLevelsDictionary[Upgrade.BarricadeSpawnRate];
        trashSpawnLevel        = gameManager.upgradeLevelsDictionary[Upgrade.TrashSpawnRate];
        hpLevel      = gameManager.upgradeLevelsDictionary[Upgrade.ImprovedPlayerHP];
        healingLevel = gameManager.upgradeLevelsDictionary[Upgrade.ImprovedHealing];

        trashAvailableText.text = "Trash Available:" + gameManager._houseHP.ToString();
        upgradesModel           = ModelManager.UpgradesModel;

        UpdateUI();
    }
Esempio n. 4
0
    private void OnEnable()
    {
        foreach (var item in buttonSprites)
        {
            if (!buttonSpritesDictionary.ContainsKey(item.upgradeType))
            {
                buttonSpritesDictionary.Add(item.upgradeType, item.sprite);
            }
        }
        upgradesModel = ModelManager.UpgradesModel;
        gameManager   = ServiceLocator.Get <GameManager>();
        foreach (var upgrade in gameManager.upgradeLevelsDictionary)
        {
            if (upgrade.Value > 0 && !listOfUpgrades.ContainsKey(upgrade.Key))
            {
                GameObject go   = Instantiate(upgradeExample, upgradeHolder) as GameObject;
                float      size = upgradeExample.GetComponent <RectTransform>().rect.height;
                go.transform.localPosition = new Vector3(go.transform.localPosition.x, /* go.transform.localPosition.y -*/ -counter * size, go.transform.localPosition.z);

                // Update button text
                Button button = go.GetComponentInChildren <Button>();
                //UpdateButtonText(button, upgrade.Key);
                Image buttonImage = button.gameObject.GetComponent <Image>();
                buttonImage.sprite         = buttonSpritesDictionary[upgrade.Key];
                buttonImage.type           = Image.Type.Simple;
                buttonImage.preserveAspect = true;

                button.onClick.AddListener(() => DisplayChoosenUpgrade(upgrade.Key));

                // Update Drop Down
                Dropdown dropdown = go.GetComponentInChildren <Dropdown>();
                if (upgrade.Key == Upgrade.TargetEnemy)
                {
                    dropdown.AddOptions(gameManager.specialTargets);
                    if (gameManager.choosenTarget != "No Target")
                    {
                        int index = gameManager.specialTargets.IndexOf(gameManager.choosenTarget);
                        dropdown.value = index;
                    }
                }
                else
                {
                    dropdown.gameObject.SetActive(false);
                }

                // Update Toggle enable
                Toggle toggle = go.GetComponentInChildren <Toggle>();
                if (upgrade.Key != Upgrade.ImprovedPlayerHP)
                {
                    toggle.isOn = gameManager.upgradeEnabled[upgrade.Key];
                }
                else
                {
                    toggle.gameObject.SetActive(false);
                }

                counter += 1.0f;
                listOfUpgrades.Add(upgrade.Key, go);
            }
            else if (listOfUpgrades.ContainsKey(upgrade.Key) && upgrade.Key == Upgrade.TargetEnemy)
            {
                GameObject go             = listOfUpgrades[upgrade.Key];
                Dropdown   dropdownTarget = go.GetComponentInChildren <Dropdown>();
                dropdownTarget.ClearOptions();
                dropdownTarget.AddOptions(gameManager.specialTargets);
                if (gameManager.choosenTarget != "No Target")
                {
                    int index = gameManager.specialTargets.IndexOf(gameManager.choosenTarget);
                    dropdownTarget.value = index;
                }
            }
        }
    }