public override void OnSpellAdd(ModularSpell addedSpell)
        {
            // save onCast actions
            IOnCastAction[] totalOnCastActions = addedSpell.onCastActions.Clone() as IOnCastAction[];


            //modify damage of AllOnHitActions
            foreach (IOnHitAction onHitAction in addedSpell.AllOnHitActions)
            {
                if (onHitAction.GetType() == typeof(DamageOnHit))
                {
                    DamageOnHit damageAction = onHitAction as DamageOnHit;
                    damageAction.damage *= damageMultiplier;
                }
            }


            addedSpell.onCastActions = new IOnCastAction[1];

            // create new multiple cast action
            RepeatCastOnCast castRepeater = new RepeatCastOnCast();

            castRepeater.nRepeats         = nCasts;
            castRepeater.timeBetweenCasts = timeBetweenCasts;
            // add old onCast actions to it
            castRepeater.OnCastActions = totalOnCastActions;
            castRepeater.Init(addedSpell);


            addedSpell.onCastActions[0] = castRepeater;
        }
Пример #2
0
 public abstract void OnSpellAdd(ModularSpell addedSpell);