void Awake(){ instance = (PerkManager)target; GetPerk(); EditorUtility.SetDirty(instance); }
public void Init(){ if(init) return; init=true; if(instance!=null){ Destroy(gameObject); return; } instance=this; //load your custom/saved purchasedIDList here if you are doing a persistent perk system List<Perk> dbList=PerkDB.Load(); for(int i=0; i<dbList.Count; i++){ if(!unavailableIDList.Contains(dbList[i].ID)){ Perk perk=dbList[i].Clone(); perkList.Add(perk); } } globalTowerModifier=new PerkTowerModifier(); globalAbilityModifier=new PerkAbilityModifier(); globalFPSWeaponModifier=new PerkFPSWeaponModifier(); emptyTowerModifier=new PerkTowerModifier(); emptyAbilityModifier=new PerkAbilityModifier(); emptyFPSWeaponModifier=new PerkFPSWeaponModifier(); int rscCount=ResourceManager.GetResourceCount(); for(int i=0; i<rscCount; i++){ rscRegen.Add(0); rscGain.Add(0); rscCreepKilledGain.Add(0); rscWaveClearedGain.Add(0); rscRscTowerGain.Add(0); } for(int i=0; i<perkList.Count; i++){ if(purchasedIDList.Contains(perkList[i].ID)){ if(perkList[i].type==_PerkType.NewTower || perkList[i].type==_PerkType.NewAbility || perkList[i].type==_PerkType.NewFPSWeapon){ StartCoroutine(DelayPurchasePerk(perkList[i])); } else _PurchasePerk(perkList[i], false); //dont use rsc since these are pre-purchased perk } } if(persistantProgress){ transform.parent=null; DontDestroyOnLoad(gameObject); } }
public float GetCost() { return(cost * (1 - PerkManager.GetAbilityCost(ID))); }
private float GetPerkModCritChance() { return(IsTower() ? PerkManager.GetTowerCritChance(prefabID) : 0); }
private float GetPerkModHit() { return(IsTower() ? PerkManager.GetTowerHit(prefabID) : 0); }
private float GetPerkMulRange() { return(IsTower() ? PerkManager.GetTowerRange(prefabID) : 0); }
private float GetPerkMulClipSize() { return(IsTower() ? PerkManager.GetTowerClipSize(prefabID) : 0); }
private float GetPerkMulShieldStagger() { return(IsTower() ? PerkManager.GetTowerShieldStagger(prefabID) : 0); }
private InstantKill ModifyInstantKillWithPerkBonus(InstantKill instKill) { return(IsTower() ? PerkManager.ModifyInstantKillWithPerkBonus(instKill.Clone(), prefabID) : instKill); }
private float GetUpgradeCostMultiplier() { return(1 - PerkManager.GetTowerUpgradeCost(prefabID)); }
private float GetBuildCostMultiplier() { return(1 - PerkManager.GetTowerBuildCost(prefabID)); }
public float GetAOERadius() { return(aoeRadius * (1 + PerkManager.GetAbilityAOERadius(ID))); }
public override void Start() { base.Start(); if (!PerkManager.IsEnabled()) { thisObj.SetActive(false); return; } if (PerkManager.UseRscManagerForCost()) { for (int i = 0; i < RscManager.GetResourceCount(); i++) { if (i > 0) { costItemList.Add(new UIObject(UI.Clone(costItemList[0].rootObj))); } costItemList[i].Init(); costItemList[i].imgMain.sprite = RscManager.GetRscIcon(i); } } else { costItemList[0].Init(); costItemList[0].imgMain.sprite = PerkDB.GetRscIcon(); } if (customLayout) { List <Perk> perkList = PerkManager.GetPerkList(); for (int i = 0; i < itemList.Count; i++) { itemList[i].Init(); itemList[i].SetCallback(null, null, this.OnItem, null); bool matched = false; for (int n = 0; n < perkList.Count; n++) { if (itemList[i].linkedPerkPID == perkList[n].prefabID) { itemList[i].linkedPerkIdx = n; matched = true; itemList[i].imgMain.sprite = perkList[n].icon; } } if (!matched) { Debug.LogWarning("No perk with matching prefab found"); itemList[i].rootObj.SetActive(false); continue; } itemList[i].UnparentConnector(); itemList[i].UnparentConnectorBase(); } } else { List <Perk> perkList = PerkManager.GetPerkList(); for (int i = 0; i < perkList.Count; i++) { if (i > 0) { itemList.Add(UIPerkItem.Clone(itemList[0].rootObj, "Item" + (i))); } itemList[i].Init(); itemList[i].SetCallback(null, null, this.OnItem, null); itemList[i].linkedPerkIdx = i; itemList[i].imgMain.sprite = perkList[i].icon; } } buttonPurchase.Init(); buttonPurchase.SetCallback(null, null, this.OnPurchaseButton, null); if (UIControl.IsGameScene()) { buttonClose.Init(); buttonClose.SetCallback(null, null, this.OnCloseButton, null); } if (!UIControl.IsGameScene()) { canvasGroup.alpha = 1; thisObj.SetActive(true); StartCoroutine(DelayUpdateList()); } else { thisObj.SetActive(false); } OnItem(itemList[0].rootObj); }
public InstantKill GetInstantKill() { return(PerkManager.ModifyInstantKillWithPerkBonus(stats[currentActiveStat].instantKill.Clone(), prefabID, 1)); }
public Dot GetDot() { return(PerkManager.ModifyDotWithPerkBonus(stats[currentActiveStat].dot.Clone(), prefabID, 1)); }
} //pass 1 to indicate this is for FPSWeapon public Slow GetSlow() { return(PerkManager.ModifySlowWithPerkBonus(stats[currentActiveStat].slow.Clone(), prefabID, 1)); }
private float GetPerkMulShieldRegen() { return(IsTower() ? PerkManager.GetTowerShieldRegen(unitT.prefabID) : 0); }
private float GetPerkMulHPRegen() { return(IsTower() ? PerkManager.GetTowerHPRegen(prefabID) : 0); }
private float GetPerkMulDamage() { return(IsTower() ? PerkManager.GetTowerDamage(unitT.prefabID) : 0); }
private float GetPerkMulCooldown() { return(IsTower() ? PerkManager.GetTowerCD(prefabID) : 0); }
private float GetPerkModShieldBreak() { return(IsTower() ? PerkManager.GetTowerShieldBreakMultiplier(unitT.prefabID) : 0); }
private float GetPerkMulReloadDuration() { return(IsTower() ? PerkManager.GetTowerReloadDuration(prefabID) : 0); }
private float GetPerkMulHPStagger() { return(IsTower() ? PerkManager.GetTowerHPStagger(unitT.prefabID) : 0); }
private float GetPerkMulAOERadius() { return(IsTower() ? PerkManager.GetTowerAOERadius(prefabID) : 0); }
private float GetPerkModCritMul() { return(IsTower() ? PerkManager.GetTowerCritMultiplier(prefabID) : 0); }
private float GetPerkModDodge() { return(IsTower() ? PerkManager.GetTowerDodge(prefabID) : 0); }
private float GetPerkModShieldPierce() { return(IsTower() ? PerkManager.GetTowerShieldPierceMultiplier(prefabID) : 0); }
private Stun ModifyStunWithPerkBonus(Stun stun) { return(IsTower() ? PerkManager.ModifyStunWithPerkBonus(stun.Clone(), prefabID) : stun); }
private Slow ModifySlowWithPerkBonus(Slow slow) { return(IsTower() ? PerkManager.ModifySlowWithPerkBonus(slow.Clone(), prefabID) : slow); }
public float GetCooldown() { return(cooldown * (1 - PerkManager.GetAbilityCooldown(ID))); }
private Dot ModifyDotWithPerkBonus(Dot dot) { return(IsTower() ? PerkManager.ModifyDotWithPerkBonus(dot.Clone(), prefabID) : dot); }
void OnDestroy(){ if(!persistantProgress) instance=null; }
public Stun GetStun() { return(PerkManager.ModifyStunWithPerkBonus(stats[currentActiveStat].stun.Clone(), prefabID, 1)); } //pass 1 to indicate this is for FPSWeapon