protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { if (!(target is Character)) { failReason = SpellFailedReason.TargetNotPlayer; } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { if (target.MaxPower == 0 || target.PowerType != (PowerType)m_spellEffect.MiscValue) { failReason = SpellFailedReason.BadTargets; } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { Caster = casterInfo.Caster as Unit; if (Caster == null || Caster is Vehicle) { log.Warn("Invalid SpellCaster \"{0}\" for Spell: {1}", Caster, SpellEffect.Spell); failReason = SpellFailedReason.Error; return; } Vehicle = target as Vehicle; if (Vehicle == null) { failReason = SpellFailedReason.BadTargets; } else { Seat = Vehicle.GetSeatFor(Caster); if (Seat == null) { // must never happen since Vehicle is unclickable when full failReason = SpellFailedReason.BadTargets; } } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { if (!(target is Character)) return; var chr = (Character)target; if (chr.Class != ClassId.Hunter) { failReason = SpellFailedReason.BadTargets; } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { caster = casterInfo.Caster as Unit; if (!(target is NPC) || caster == null) { failReason = SpellFailedReason.BadTargets; } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { if (!(target is Character)) { failReason = SpellFailedReason.TargetNotPlayer; } else if (((Character)target).CurrentTracker != null) { ((Character)target).CurrentTracker.Remove(true); } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { if (target is Character) { var chr = (Character) target; if (!chr.CanFly) { failReason = SpellFailedReason.NotHere; } } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { form = (ShapeShiftForm)SpellEffect.MiscValue; if (target.ShapeShiftForm == form) { // stances can't be undone: if (form != ShapeShiftForm.BattleStance && form != ShapeShiftForm.BerserkerStance && form != ShapeShiftForm.DefensiveStance) { target.Auras.RemoveWhere(aura => aura.Spell.Id == m_spellEffect.Spell.Id); } } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { var caster = casterInfo.Caster as Unit; if (caster == null) { failReason = SpellFailedReason.BadTargets; } else { if (!(target is NPC)) { LogManager.GetCurrentClassLogger().Warn("{0} tried to Charm {1} which is not an NPC, but Player charming is not yet supported."); failReason = SpellFailedReason.BadTargets; } if (caster.Charm != null) { failReason = SpellFailedReason.AlreadyHaveCharm; } else if (target.HasMaster) { failReason = SpellFailedReason.CantBeCharmed; } else if (caster.Level > EffectValue) { failReason = SpellFailedReason.Highlevel; } else if (caster.HasMaster) { failReason = SpellFailedReason.Charmed; } else if (caster is Character) { if (((Character)caster).ActivePet != null) { failReason = SpellFailedReason.AlreadyHaveSummon; } } } }
protected internal override void CheckInitialize(CasterInfo casterInfo, Unit target, ref SpellFailedReason failReason) { //if (target.PowerType != WCell.Core.PowerType.Mana) { // failReason = SpellFailedReason.AlreadyAtFullPower; //} }