예제 #1
0
 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));
 }
예제 #2
0
 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));
     }
 }
예제 #3
0
        // 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);
        }
예제 #4
0
        // 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);
        }
예제 #5
0
        // 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);
        }