Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }