public Effect GetEffectOnHit() { int overrideID = PerkManager.GetAbilityOverrideOnHitEff(prefabID); //GetPerkOverrideOnHitEff(); if (overrideID < 0 && stats.effectOnHitID < 0) { return(null); } else { //return EffectDB.GetPrefab(stats.effectOnHitID).Clone(); Effect effect = EffectDB.GetPrefab(overrideID >= 0 ? overrideID : stats.effectOnHitID).ModifyWithPerk(); effect.SetType(instanceID, this); return(effect); } }
public Effect GetEffectOnHit() { if (IsTower()) { int overrideID = PerkManager.GetUnitOverrideOnHitEff(prefabID); if (overrideID < 0 && statsList[level].effectOnHitID < 0) { return(null); } Effect effect = EffectDB.GetPrefab(overrideID >= 0 ? overrideID : statsList[level].effectOnHitID).ModifyWithPerk(); effect.SetType(level, this); return(effect); } else { if (statsList[level].effectOnHitID < 0) { return(null); } Effect effect = null; if (cachedEffOnHitIdx < 0) { effect = EffectDB.GetPrefab(statsList[level].effectOnHitID).Clone(); cachedEffOnHitIdx = EffectDB.GetPrefabIndex(effect.prefabID); } else { effect = EffectDB.GetItem(cachedEffOnHitIdx).Clone(); //Debug.Log("use cached "+cachedEffOnHitIdx+" "+effect.name); } effect.SetType(level, this); return(effect); } }