Ejemplo n.º 1
0
        public SpellFailedReason FindAllTargets()
        {
            this.IsInitialized = true;
            WorldObject casterObject = this.Cast.CasterObject;

            if (casterObject == null)
            {
                SpellTargetCollection.log.Warn("Invalid SpellCast - Tried to find targets, without Caster set: {0}",
                                               (object)casterObject);
                return(SpellFailedReason.Error);
            }

            SpellEffect effect = this.FirstHandler.Effect;

            if (effect.Spell.IsPreventionDebuff)
            {
                SpellFailedReason spellFailedReason = SpellFailedReason.Ok;
                foreach (SpellEffectHandler handler in this.m_handlers)
                {
                    spellFailedReason = handler.ValidateAndInitializeTarget(casterObject);
                    if (spellFailedReason != SpellFailedReason.Ok)
                    {
                        return(spellFailedReason);
                    }
                }

                this.Add(casterObject);
                return(spellFailedReason);
            }

            SpellFailedReason spellFailedReason1 = SpellFailedReason.Ok;
            TargetDefinition  targetDefinition   = effect.GetTargetDefinition();

            if (targetDefinition != null)
            {
                SpellFailedReason failReason = SpellFailedReason.Ok;
                targetDefinition.Collect(this, ref failReason);
            }
            else
            {
                if (effect.ImplicitTargetA != ImplicitSpellTargetType.None)
                {
                    spellFailedReason1 = this.FindTargets(effect.ImplicitTargetA);
                    if (spellFailedReason1 != SpellFailedReason.Ok)
                    {
                        return(spellFailedReason1);
                    }
                }

                if (effect.ImplicitTargetB != ImplicitSpellTargetType.None)
                {
                    spellFailedReason1 = this.FindTargets(effect.ImplicitTargetB);
                }
            }

            return(spellFailedReason1);
        }
Ejemplo n.º 2
0
        public SpellFailedReason FindTargets(ImplicitSpellTargetType targetType)
        {
            SpellFailedReason failReason       = SpellFailedReason.Ok;
            TargetDefinition  targetDefinition = DefaultTargetDefinitions.GetTargetDefinition(targetType);

            if (targetDefinition != null)
            {
                targetDefinition.Collect(this, ref failReason);
            }
            return(failReason);
        }