Exemplo n.º 1
0
        void OnFPSMode(bool flag)
        {
            //FPSModeCrosshairObj.SetActive(flag);

                        #if UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY
            UIGameMessage.DisplayMessage("FPS mode is not supported in mobile");
                        #endif

            if (flag)
            {
                UIBuildButton.Hide();
                UIAbilityButton.Hide();
                UIPerkMenu.Hide();
                UIFPSHUD.Show();
            }
            else
            {
                if (UseDragNDrop())
                {
                    UIBuildButton.Show();
                }
                if (AbilityManager.IsOn())
                {
                    UIAbilityButton.Show();
                }
                if (PerkManager.IsOn())
                {
                    UIPerkMenu.Show();
                }
                UIFPSHUD.Hide();
            }
        }
Exemplo n.º 2
0
        public float CreepDestroyed()
        {
            List <int> rscGain = new List <int>();

            for (int i = 0; i < valueRscMin.Count; i++)
            {
                rscGain.Add(Random.Range(valueRscMin[i], valueRscMax[i]));
            }
            ResourceManager.GainResource(rscGain, PerkManager.GetRscCreepKilled());

            AbilityManager.GainEnergy(valueEnergyGain + (int)PerkManager.GetEnergyWaveClearedModifier());

            if (spawnUponDestroyed != null && spawnUponDestroyedCount > 0)
            {
                for (int i = 0; i < spawnUponDestroyedCount; i++)
                {
                    Vector3    posOffset = new Vector3(Random.Range(-0.5f, 0.5f), 0, Random.Range(-0.5f, 0.5f));
                    GameObject obj       = ObjectPoolManager.Spawn(spawnUponDestroyed, thisT.position + posOffset, thisT.rotation);
                    UnitCreep  unit      = obj.GetComponent <UnitCreep>();

                    unit.waveID = waveID;
                    int ID = SpawnManager.AddDestroyedSpawn(unit);
                    unit.Init(path, ID, waveID, this);
                }
            }

            return(0);
        }
Exemplo n.º 3
0
        public void OnAbilityButton(GameObject butObj)
        {
            //if(FPSControl.IsOn()) return;

            //in drag and drop mode, player could be hitting the button while having an active tower selected
            //if that's the case, clear the selectedTower first. and we can show the tooltip properly
            if (UI.UseDragNDrop() && GameControl.GetSelectedTower() != null)
            {
                UI.ClearSelectedTower();
                return;
            }

            UI.ClearSelectedTower();

            int ID = GetButtonID(butObj);

            string exception = AbilityManager.SelectAbility(ID);

            if (exception != "")
            {
                UIGameMessage.DisplayMessage(exception);
            }

            //Hide();
        }
Exemplo n.º 4
0
        void Awake()
        {
            instance = (AbilityManager)target;

            GetAbility();

            EditorUtility.SetDirty(instance);
        }
Exemplo n.º 5
0
        // Update is called once per frame
        void Update()
        {
            txtEnergy.text = AbilityManager.GetEnergy().ToString("f0") + "/" + AbilityManager.GetEnergyFull().ToString("f0");
            float valueX = Mathf.Clamp(AbilityManager.GetEnergy() / AbilityManager.GetEnergyFull() * 200, 4, 200);
            float valueY = Mathf.Min(valueX, 8);

            energyRect.sizeDelta = new Vector2(valueX, valueY);
        }
Exemplo n.º 6
0
        // Use this for initialization
        void Start()
        {
            tooltipObj.SetActive(false);

            if (!AbilityManager.IsOn())
            {
                Hide();
                return;
            }
            BuildAbilityButtons(AbilityManager.GetAbilityList());
        }
Exemplo n.º 7
0
 //not compatible with PointNBuild mode
 void OnMouseEnter()
 {
     if (UIUtilities.IsCursorOnUI())
     {
         return;
     }
     if (AbilityManager.InTargetSelectMode())
     {
         return;
     }
     BuildManager.ShowIndicator(this);
 }
Exemplo n.º 8
0
 public string IsAvailable()
 {
     if (GetCost() > AbilityManager.GetEnergy())
     {
         return("Insufficient Energy");
     }
     if (currentCD > 0)
     {
         return("Ability is on cooldown");
     }
     if (maxUseCount > 0 && usedCount >= maxUseCount)
     {
         return("Usage limit exceed");
     }
     return("");
 }
Exemplo n.º 9
0
        public void OnHoverAbilityButton(GameObject butObj)
        {
            //if(FPSControl.IsOn()) return;


            if (GameControl.GetSelectedTower() != null)
            {
                return;
            }

            int     ID      = GetButtonID(butObj);
            Ability ability = AbilityManager.GetAbilityList()[ID];

            txtTooltipName.text = ability.name;
            txtTooltipCost.text = "Cost:" + ability.cost;
            txtTooltipDesp.text = ability.GetDesp();

            tooltipObj.SetActive(true);
        }
Exemplo n.º 10
0
        void Awake()
        {
            instance = this;
            thisT    = transform;

            if (startWithFullEnergy)
            {
                energy = fullEnergy;
            }

            List <Ability> dbList = AbilityDB.Load();

            abilityList = new List <Ability>();
            for (int i = 0; i < dbList.Count; i++)
            {
                if (!unavailableIDList.Contains(dbList[i].ID))
                {
                    abilityList.Add(dbList[i].Clone());
                }
            }

            List <Ability> newList = PerkManager.GetUnlockedAbility();

            for (int i = 0; i < newList.Count; i++)
            {
                abilityList.Add(newList[i]);
            }

            for (int i = 0; i < abilityList.Count; i++)
            {
                abilityList[i].ID = i;
            }

            if (defaultIndicator)
            {
                defaultIndicator        = (Transform)Instantiate(defaultIndicator);
                defaultIndicator.parent = thisT;
                defaultIndicator.gameObject.SetActive(false);
            }
        }
Exemplo n.º 11
0
 void OnDestroy()
 {
     instance = null;
 }
Exemplo n.º 12
0
        public string _PurchasePerk(Perk perk, bool useRsc = true)
        {
            string text = perk.Purchase(useRsc);

            if (text != "")
            {
                return(text);
            }

            if (onPerkPurchasedE != null)
            {
                onPerkPurchasedE(perk);
            }

            //process the prereq for other perk
            for (int i = 0; i < perkList.Count; i++)
            {
                Perk perkTemp = perkList[i];
                if (perkTemp.purchased || perkTemp.prereq.Count == 0)
                {
                    continue;
                }
                perkTemp.prereq.Remove(perk.ID);
            }


            perkPoint += 1;
            if (onPerkPointE != null)
            {
                onPerkPointE(perkPoint);
            }

            if (perk.type == _PerkType.NewTower)
            {
                List <UnitTower> towerList = TowerDB.Load();
                for (int i = 0; i < towerList.Count; i++)
                {
                    if (towerList[i].prefabID == perk.itemIDList[0])
                    {
                        unlockedTower.Add(towerList[i]);
                        BuildManager.AddNewTower(towerList[i]);
                    }
                }
            }
            else if (perk.type == _PerkType.NewAbility)
            {
                List <Ability> abilityList = AbilityDB.Load();
                for (int i = 0; i < abilityList.Count; i++)
                {
                    if (abilityList[i].ID == perk.itemIDList[0])
                    {
                        unlockedAbility.Add(abilityList[i]);
                        AbilityManager.AddNewAbility(abilityList[i]);
                    }
                }
            }
            else if (perk.type == _PerkType.NewFPSWeapon)
            {
                List <FPSWeapon> FPSWeaponList = FPSWeaponDB.Load();
                for (int i = 0; i < FPSWeaponList.Count; i++)
                {
                    if (FPSWeaponList[i].prefabID == perk.itemIDList[0])
                    {
                        unlockedWeapon.Add(FPSWeaponList[i]);
                        FPSControl.AddNewWeapon(FPSWeaponList[i]);
                    }
                }
            }

            else if (perk.type == _PerkType.GainLife)
            {
                GameControl.GainLife((int)Random.Range(perk.value, perk.valueAlt));
            }
            else if (perk.type == _PerkType.LifeCap)
            {
                lifeCap += (int)perk.value; GameControl.GainLife(0);
            }
            else if (perk.type == _PerkType.LifeRegen)
            {
                lifeRegen += perk.value;
            }
            else if (perk.type == _PerkType.LifeWaveClearedBonus)
            {
                lifeWaveClearedBonus += (int)perk.value;
            }

            else if (perk.type == _PerkType.GainRsc)
            {
                List <int> valueList = new List <int>();
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    valueList.Add((int)perk.valueRscList[i]);
                }
                ResourceManager.GainResource(valueList, null, false);                   //dont pass multiplier and dont use multiplier
            }
            else if (perk.type == _PerkType.RscRegen)
            {
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    rscRegen[i] += perk.valueRscList[i];
                }
            }
            else if (perk.type == _PerkType.RscGain)
            {
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    rscGain[i] += perk.valueRscList[i];
                }
            }
            else if (perk.type == _PerkType.RscCreepKilledGain)
            {
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    rscCreepKilledGain[i] += perk.valueRscList[i];
                }
            }
            else if (perk.type == _PerkType.RscWaveClearedGain)
            {
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    rscWaveClearedGain[i] += perk.valueRscList[i];
                }
            }
            else if (perk.type == _PerkType.RscResourceTowerGain)
            {
                for (int i = 0; i < perk.valueRscList.Count; i++)
                {
                    rscRscTowerGain[i] += perk.valueRscList[i];
                }
            }

            else if (perk.type == _PerkType.Tower)
            {
                ModifyTowerModifier(globalTowerModifier, perk);
            }
            else if (perk.type == _PerkType.TowerSpecific)
            {
                for (int i = 0; i < perk.itemIDList.Count; i++)
                {
                    int ID = TowerModifierExist(perk.itemIDList[i]);
                    if (ID == -1)
                    {
                        PerkTowerModifier towerModifier = new PerkTowerModifier();
                        towerModifier.prefabID = perk.itemIDList[i];
                        towerModifierList.Add(towerModifier);
                        ID = towerModifierList.Count - 1;
                    }
                    ModifyTowerModifierInList(ID, perk);
                }
            }
            else if (perk.type == _PerkType.Ability)
            {
                ModifyAbilityModifier(globalAbilityModifier, perk);
            }
            else if (perk.type == _PerkType.AbilitySpecific)
            {
                for (int i = 0; i < perk.itemIDList.Count; i++)
                {
                    int ID = AbilityModifierExist(perk.itemIDList[i]);
                    if (ID == -1)
                    {
                        PerkAbilityModifier abilityModifier = new PerkAbilityModifier();
                        abilityModifier.abilityID = perk.itemIDList[i];
                        abilityModifierList.Add(abilityModifier);
                        ID = abilityModifierList.Count - 1;
                    }
                    ModifyAbilityModifierInList(ID, perk);
                }
            }
            else if (perk.type == _PerkType.FPSWeapon)
            {
                ModifyFPSWeaponModifier(globalFPSWeaponModifier, perk);
            }
            else if (perk.type == _PerkType.FPSWeaponSpecific)
            {
                for (int i = 0; i < perk.itemIDList.Count; i++)
                {
                    int ID = FPSWeaponModifierExist(perk.itemIDList[i]);
                    if (ID == -1)
                    {
                        PerkFPSWeaponModifier weaponModifier = new PerkFPSWeaponModifier();
                        weaponModifier.prefabID = perk.itemIDList[i];
                        FPSWeaponModifierList.Add(weaponModifier);
                        ID = FPSWeaponModifierList.Count - 1;
                    }
                    ModifyFPSWeaponModifierInList(ID, perk);
                }
            }

            else if (perk.type == _PerkType.EnergyRegen)
            {
                energyRegen += perk.value;
            }
            else if (perk.type == _PerkType.EnergyIncreaseCap)
            {
                energyCap += perk.value;
            }
            else if (perk.type == _PerkType.EnergyCreepKilledBonus)
            {
                energyCreepKilledBonus += perk.value;
            }
            else if (perk.type == _PerkType.EnergyWaveClearedBonus)
            {
                energyWaveClearedBonus += perk.value;
            }

            return("");
        }
Exemplo n.º 13
0
        void OnUnitCleared(UnitCreep creep)
        {
            int waveID = creep.waveID;

            activeUnitCount -= 1;

            Wave wave = null;

            if (spawnLimit == _SpawnLimit.Finite)
            {
                wave = waveList[waveID];
            }
            else if (spawnLimit == _SpawnLimit.Infinite)
            {
                for (int i = 0; i < waveList.Count; i++)
                {
                    if (waveList[i].waveID == waveID)
                    {
                        wave = waveList[i];
                        break;
                    }
                }

                if (wave == null)
                {
                    Debug.Log("error!");
                    return;
                }
            }


            wave.activeUnitCount -= 1;
            if (wave.spawned && wave.activeUnitCount == 0)
            {
                wave.cleared      = true;
                waveClearedCount += 1;
                //Debug.Log("wave"+(waveID+1)+ " is cleared");

                ResourceManager.GainResource(wave.rscGainList, PerkManager.GetRscWaveKilled());
                GameControl.GainLife(wave.lifeGain + PerkManager.GetLifeWaveClearedModifier());
                AbilityManager.GainEnergy(wave.energyGain + (int)PerkManager.GetEnergyWaveClearedModifier());

                if (spawnLimit == _SpawnLimit.Infinite)
                {
                    waveList.Remove(wave);
                }

                if (IsAllWaveCleared())
                {
                    GameControl.GameWon();
                }
                else
                {
                    if (spawnMode == _SpawnMode.Round && onEnableSpawnE != null)
                    {
                        onEnableSpawnE();
                    }
                }
            }


            if (!IsAllWaveCleared() && activeUnitCount == 0 && !spawning)
            {
                if (spawnMode == _SpawnMode.WaveCleared)
                {
                    SpawnWaveFinite();
                }
            }
        }