public override int OnEffectExpires(GameSpellEffect effect, bool noMessages) { if (effect.Owner is GameStorm) { GameStorm targetStorm = effect.Owner as GameStorm; targetStorm.Movable = true; GameEventMgr.RemoveHandler(m_caster, GameLivingEvent.Moving, new DOLEventHandler(LivingMoves)); } return(base.OnEffectExpires(effect, noMessages)); }
public override void OnEffectStart(GameSpellEffect effect) { base.OnEffectStart(effect); m_effect = effect; if (effect.Owner is GameStorm) { GameStorm targetStorm = effect.Owner as GameStorm; targetStorm.Movable = false; MessageToCaster("Now the vortex of this storm is locked!", eChatType.CT_YouWereHit); GameEventMgr.AddHandler(m_caster, GameLivingEvent.Moving, new DOLEventHandler(LivingMoves)); } }
// constructor public SenseDullingCloudSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { // Construct a new storm. storm = new GameStorm { Realm = caster.Realm, X = caster.X, Y = caster.Y, Z = caster.Z, CurrentRegionID = caster.CurrentRegionID, Heading = caster.Heading, Owner = (GamePlayer)caster, Movable = true }; // Construct the storm spell dbs = new DBSpell { Name = spell.Name, Icon = 7305, ClientEffect = 7305, Damage = spell.Damage, DamageType = (int)spell.DamageType, Target = "Enemy", Radius = 0, Type = "StormAcuityDebuff", Value = spell.Value, Duration = spell.ResurrectHealth, Frequency = spell.ResurrectMana, Pulse = 0, PulsePower = 0, LifeDrainReturn = spell.LifeDrainReturn, Power = 0, CastTime = 0, Range = WorldMgr.VISIBILITY_DISTANCE }; // should be 2 sRadius = 350; s = new Spell(dbs, 1); sl = SkillBase.GetSpellLine(GlobalSpellsLines.Reserved_Spells); tempest = ScriptMgr.CreateSpellHandler(Caster, s, sl); }
// constructor public EnervatingGasSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { //Construct a new storm. storm = new GameStorm(); storm.Realm = caster.Realm; storm.X = caster.X; storm.Y = caster.Y; storm.Z = caster.Z; storm.CurrentRegionID = caster.CurrentRegionID; storm.Heading = caster.Heading; storm.Owner = (GamePlayer)caster; storm.Movable = true; // Construct the storm spell dbs = new DBSpell(); dbs.Name = spell.Name; dbs.Icon = 7273; dbs.ClientEffect = 7273; dbs.Damage = Math.Abs(spell.Damage); dbs.DamageType = (int)spell.DamageType; dbs.Target = "Enemy"; dbs.Radius = 0; dbs.Type = "StormEnduDrain"; dbs.Value = spell.Value; dbs.Duration = spell.ResurrectHealth; //should be 2 dbs.Frequency = spell.ResurrectMana; dbs.Pulse = 0; dbs.PulsePower = 0; dbs.LifeDrainReturn = spell.LifeDrainReturn; dbs.Power = 0; dbs.CastTime = 0; dbs.Range = WorldMgr.VISIBILITY_DISTANCE; sRadius = 350; s = new Spell(dbs, 1); sl = SkillBase.GetSpellLine(GlobalSpellsLines.Reserved_Spells); tempest = ScriptMgr.CreateSpellHandler(m_caster, s, sl); }
// constructor public DazzlingArraySpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { //Construct a new storm. storm = new GameStorm(); storm.Realm = caster.Realm; storm.X = caster.X; storm.Y = caster.Y; storm.Z = caster.Z; storm.CurrentRegionID = caster.CurrentRegionID; storm.Heading = caster.Heading; storm.Owner = (GamePlayer)caster; storm.Movable = true; // Construct the storm spell dbs = new DBSpell(); dbs.Name = spell.Name; dbs.Icon = 7210; dbs.ClientEffect = 7210; dbs.Damage = spell.Damage; dbs.DamageType = (int)spell.DamageType; dbs.Target = "Realm"; dbs.Radius = 0; dbs.Type = "StormMissHit"; dbs.Value = spell.Value; dbs.Duration = spell.ResurrectHealth; // should be 4 dbs.Frequency = spell.ResurrectMana; dbs.Pulse = 0; dbs.PulsePower = 0; dbs.LifeDrainReturn = spell.LifeDrainReturn; dbs.Power = 0; dbs.CastTime = 0; dbs.Range = WorldMgr.VISIBILITY_DISTANCE; sRadius = 350; s = new Spell(dbs, 1); sl = SkillBase.GetSpellLine(GlobalSpellsLines.Reserved_Spells); tempest = ScriptMgr.CreateSpellHandler(m_caster, s, sl); }