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(); } }
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); }
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(); }
void Awake() { instance = (AbilityManager)target; GetAbility(); EditorUtility.SetDirty(instance); }
// 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); }
// Use this for initialization void Start() { tooltipObj.SetActive(false); if (!AbilityManager.IsOn()) { Hide(); return; } BuildAbilityButtons(AbilityManager.GetAbilityList()); }
//not compatible with PointNBuild mode void OnMouseEnter() { if (UIUtilities.IsCursorOnUI()) { return; } if (AbilityManager.InTargetSelectMode()) { return; } BuildManager.ShowIndicator(this); }
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(""); }
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); }
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); } }
void OnDestroy() { instance = null; }
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(""); }
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(); } } }