ãäÊÏí ÇßæÇÏ

ãäÊÏí ÇßæÇÏ (https://code.vpscairo.com/index.php)
-   ÊØæíÑ ÓíÑÝÑÇÊ ßæäßÑ (https://code.vpscairo.com/forumdisplay.php?f=11)
-   -   ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ .. (https://code.vpscairo.com/showthread.php?t=1691)

ElSaher 2019-08-18 07:06 PM

ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÈÓÜã Çááå ÇáÑÍãÇä ÇáÑÍíã

ÇáÜäåÜÇÇÑÏÉ ÌíÈÜáÜßÜææã ãáÝ ÇáÇÊßÜÇÇÊ !

ÇÊÜÜÇßÜÇÇÊ ÊÜææ åÜÊ ááÓÜÑÝÜÑÇÊ ÇáÓåÜáÉ !

ÊÜÜÇÇÈÜÜÚÜææ ..

åÜäÜÑææÍ Ú ßÜáÇÇÓ

ßáÇÓ Handle.cs

åÊÈÍË Úä Ïí
ßæÏ PHP:

#region Allowed Skills 

ÈÜÚÜÏ ßÜÜÏÇ ÊÞÝÜáåÜÜÇ !!

ÈÚÏ ßÏÇ ÊãÓÍ ãä Çæá Çáßáãå Ïí áÍÏ Çáßáãå Ïí

ßæÏ PHP:

 default:
                                    { 

åÊÜÜãÜÓÍ ÇáßÜáÃÇÓ ßÜæáæ æÇáÇÓßÜÜáÇÊ ßãÜÜÇÇä !!

åÊÈÜÏáÜææ ÈÜ ÏÇÇ ..

ßæÏ PHP:

                            #region Allowed Skills
                            
if (!attacker.Owner.Fake)
                            {
                                var 
xspell GetWeaponSpell(spell);
                                
//  var xspell = Database.SpellTable.WeaponSpells.Values.Where(p => p.Contains(spell.ID)).FirstOrDefault();
                                
if (xspell != null)
                                {
                                    if (!
attack.weaponspell && spell.Sort == SpellSort.SingleWeaponSkill)
                                    {
                                        
attacker.AttackPacket null;
                                        return;
                                    }
                                }
                                
                                if (
attacker.Owner.LobbyGroup != null)
                                {
                                    if (
attacker.Owner.LobbyGroup.MatchType == Lobby.MatchType.FBSS)
                                    {
                                        if (
spellID != 1045 && spellID != 1046 && spellID != 11005)
                                        {
                                            
attacker.AttackPacket null;
                                            return;
                                        }
                                    }
                                }

                                if (
spellID == 1045 || spellID == 1046)
                                {
                                    if (
attack.Attacked != 0)
                                    {
                                        
attacker.AttackPacket null;
                                        return;
                                    }
                                }
                            }
                            
#endregion

                            
switch (spellID)
                            {
                                
#region Single magic damage spells
                                
case 11030:
                                case 
1000:
                                case 
1001:
                                case 
1002:
                                case 
1150:
                                case 
1160:
                                case 
1180:
                                case 
1320:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
spell.ID == 10310)
                                            {
                                                if (
Time32.Now attacker.EagleEyeStamp.AddSeconds(20))
                                                    return;
                                                
attacker.EagleEyeStamp Time32.Now;
                                            }
                                            if (
attacked != null)
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                                {

                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                        
damage = (uint)(damage 0.8);
                                                        if (
spell.ID == 11030)
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                        }
                                                        
suse.Effect1 attack.Effect1;

                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);
                                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(1900))
                                                        {
                                                            if (
spell.ID == 1002)
                                                            {
                                                                if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                    
attacked.Owner.BreakTouch(attacker.Owner);

                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);

                                                            }
                                                        }
                                                        
suse.AddTarget(attackeddamageattack);
                                                        
attacker.Owner.Player.IsEagleEyeShooted true;

                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.SendScreen(susetrue);
                                                        else
                                                            
attacked.MonsterInfo.SendScreen(suse);

                                                        var 
attackd attacked as Entity;
                                                        if (
Kernel.BlackSpoted.ContainsKey(attackd.UID) && spell.ID == 11030)
                                                        {
                                                            
attacker.Owner.Player.IsEagleEyeShooted false;
                                                            if (
attacker.Owner.Spells.ContainsKey(11130))
                                                            {
                                                                var 
attacker.Owner.Spells[11130];
                                                                var 
sspell Database.SpellTable.SpellInformations[s.ID][s.Level];
                                                                if (
spell != null)
                                                                {
                                                                    
attacker.EagleEyeStamp Time32.Now;
                                                                    
attacker.Owner.Player.IsEagleEyeShooted false;
                                                                    
SpellUse ssuse = new SpellUse(true);
                                                                    
ssuse.Attacker attacker.UID;
                                                                    
ssuse.SpellID sspell.ID;
                                                                    
ssuse.SpellLevel sspell.Level;
                                                                    
ssuse.AddTarget(attacker.Owner.Player, new SpellUse.DamageClass().Damage 11030attack);
                                                                    if (
attacker.EntityFlag == EntityFlag.Entity)
                                                                    {
                                                                        
attacker.Owner.SendScreen(ssusetrue);
                                                                    }

                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                            else
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Distance)
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);

                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Single heal/meditation spells
                                
case 1190:
                                case 
1195:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;

                                            
uint damage spell.Power;
                                            if (
spell.ID == 1190)
                                            {
                                                
Experience damage Math.Min(damageattacker.MaxHitpoints attacker.Hitpoints);
                                                
attacker.Hitpoints += damage;
                                            }
                                            else
                                            {
                                                
Experience damage Math.Min(damage, (uint)(attacker.MaxMana attacker.Mana));
                                                
attacker.Mana += (ushort)damage;
                                            }

                                            
suse.AddTarget(attackerspell.Powerattack);

                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Multi heal spells
                                
case 1005:
                                case 
1055:
                                case 
1170:
                                case 
1175:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            if (
attackedsob != null)
                                            {
                                                if (
attacker.MapID == 1038)
                                                    break;
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Distance)
                                                {
                                                    
PrepareSpell(spellattacker.Owner);

                                                    
uint damage spell.Power;
                                                    
damage Math.Min(damageattackedsob.MaxHitpoints attackedsob.Hitpoints);
                                                    
attackedsob.Hitpoints += damage;
                                                    
Experience += damage;
                                                    
suse.AddTarget(attackedsobdamageattack);

                                                    
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                            else
                                            {
                                                if (
spell.Multi)
                                                {
                                                    if (
attacker.Owner.Team != null)
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        foreach (
Client.GameState teammate in attacker.Owner.Team.Teammates)
                                                        {
                                                            if (
Kernel.GetDistance(attacker.Xattacker.Yteammate.Player.Xteammate.Player.Y) <= spell.Distance)
                                                            {
                                                                
uint damage spell.Power;
                                                                
damage Math.Min(damageteammate.Player.MaxHitpoints teammate.Player.Hitpoints);
                                                                
teammate.Player.Hitpoints += damage;
                                                                
Experience += damage;
                                                                
suse.AddTarget(teammate.Playerdamageattack);

                                                                if (
spell.NextSpellID != 0)
                                                                {
                                                                    
attack.Damage spell.NextSpellID;
                                                                    
attacker.AttackPacket attack;
                                                                }
                                                                else
                                                                {
                                                                    
attacker.AttackPacket null;
                                                                }
                                                            }
                                                        }
                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.SendScreen(susetrue);
                                                        else
                                                            
attacked.MonsterInfo.SendScreen(suse);
                                                    }
                                                    else
                                                    {
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                                        {
                                                            
PrepareSpell(spellattacker.Owner);

                                                            
uint damage spell.Power;
                                                            
damage Math.Min(damageattacked.MaxHitpoints attacked.Hitpoints);
                                                            
attacked.Hitpoints += damage;
                                                            
Experience += damage;
                                                            
suse.AddTarget(attackeddamageattack);

                                                            if (
spell.NextSpellID != 0)
                                                            {
                                                                
attack.Damage spell.NextSpellID;
                                                                
attacker.AttackPacket attack;
                                                            }
                                                            else
                                                            {
                                                                
attacker.AttackPacket null;
                                                            }
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.SendScreen(susetrue);
                                                            else
                                                                
attacked.MonsterInfo.SendScreen(suse);
                                                        }
                                                        else
                                                        {
                                                            
attacker.AttackPacket null;
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);

                                                        
uint damage spell.Power;
                                                        
damage Math.Min(damageattacked.MaxHitpoints attacked.Hitpoints);
                                                        
attacked.Hitpoints += damage;
                                                        
Experience += damage;
                                                        
suse.AddTarget(attackeddamageattack);

                                                        if (
spell.NextSpellID != 0)
                                                        {
                                                            
attack.Damage spell.NextSpellID;
                                                            
attacker.AttackPacket attack;
                                                        }
                                                        else
                                                        {
                                                            
attacker.AttackPacket null;
                                                        }
                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.SendScreen(susetrue);
                                                        else
                                                            
attacked.MonsterInfo.SendScreen(suse);
                                                    }
                                                    else
                                                    {
                                                        
attacker.AttackPacket null;
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion

                                #region AuroraLotus
                                
case 12370:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {

                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
FloorItem item = new FloorItem(true);
                                            
item.UID FloorItem.FloorUID.Next;
                                            
item.ItemID FloorItem.AuroraLotus;
                                            
item.MapID attacker.MapID;
                                            
item.X;
                                            
item.Y;
                                            
item.ItemColor = (Game.Enums.Color)25;
                                            
item.Type FloorItem.Effect;
                                            
item.mColor 13;
                                            
item.OwnerUID attacker.UID;
                                            
item.OwnerGuildUID attacker.GuildID;
                                            
item.Name spell.Name;
                                            
item.Owner attacker.Owner;
                                            
item.OnFloor Time32.Now;
                                            
item.FlowerType 3;
                                            
item.Timer Kernel.Gettime();
                                            
attacker.Owner.Map.AddFloorItem(item);
                                            
attacker.Owner.SendScreenSpawn(itemtrue);
                                            
attacker.Energy 0;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region FlameLotus
                                
case 12380:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {

                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
FloorItem item = new FloorItem(true);
                                            
item.UID FloorItem.FloorUID.Next;
                                            
item.ItemID FloorItem.FlameLotus;
                                            
item.MapID attacker.MapID;
                                            
item.X;
                                            
item.Y;
                                            
item.ItemColor = (Game.Enums.Color)25;
                                            
item.Type FloorItem.Effect;
                                            
item.mColor 13;
                                            
item.OwnerUID attacker.UID;
                                            
item.OwnerGuildUID attacker.GuildID;
                                            
item.Name spell.Name;
                                            
item.Owner attacker.Owner;
                                            
item.OnFloor Time32.Now;
                                            
item.FlowerType 3;
                                            
item.Timer Kernel.Gettime();
                                            
attacker.Owner.Map.AddFloorItem(item);
                                            
attacker.Owner.SendScreenSpawn(itemtrue);
                                            
attacker.Energy 0;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Revive
                                
case 1050:
                                case 
1100:
                                    {
                                        if (
attackedsob != null)
                                            return;
                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <=
                                        
spell.Distance)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
suse.AddTarget(attacked0attack);
                                                
attacked.Owner.Player.Action =
                                                
Game.Enums.ConquerAction.None;
                                                
attacked.Owner.ReviveStamp Time32.Now;
                                                
attacked.Owner.Attackable false;
                                                
attacked.Owner.Player.TransformationID 0;
                                                
attacked.Owner.Player.RemoveFlag((ulong)Update.Flags.Dead);
                                                
attacked.Owner.Player.RemoveFlag((ulong)Update.Flags.Ghost);
                                                
attacked.Owner.Player.Hitpoints attacked.Owner.Player.MaxHitpoints;
                                                
attacked.Ressurect();
                                                
attacked.Owner.SendScreen(susetrue);
                                                if (
attacker.Owner.Spells.ContainsKey(12390))
                                                {
                                                    if (
Kernel.Rate(Database.SpellTable.GetSpell(12390attacker.Owner).Percent))
                                                    {
                                                        
SpellUse susee = new SpellUse(true);
                                                        
susee.Attacker attacker.UID;
                                                        
susee.SpellID 12390;
                                                        
susee.SpellLevel attacker.Owner.Spells[12390].Level;
                                                        
susee.attacked.X;
                                                        
susee.attacked.Y;
                                                        
attacked.Owner.SendScreen(suseetrue);
                                                        
attacked.AddFlag((ulong)Update.Flags.Stigma);
                                                        
attacked.StigmaStamp Time32.Now;
                                                        
attacked.StigmaIncrease 15;
                                                        
attacked.StigmaTime 60;
                                                        
attacked.MagicShieldStamp Time32.Now;
                                                        
attacked.MagicShieldIncrease 15;
                                                        
attacked.MagicShieldTime 60;
                                                        
attacked.LoadTopStatus();
                                                        
attacked.AddFlag(Update.Flags.MagicShield);
                                                        
attacked.AddFlag(Update.Flags.StarOfAccuracy);
                                                        
attacked.AccuracyStamp Time32.Now;
                                                        
attacked.AccuracyTime 60;
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Linear spells
                                
case 11000:

                                case 
11005:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attackclient_Spell.LevelHu2);
                                                        
damage = (damage 46) / 100;
                                                        
suse.Effect1 attack.Effect1;

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (damage 46) / 100;
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Linear spells

                                
case 1045:
                                case 
1046:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 1.100);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 1.000);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.940);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 0.990);
                                                            }
                                                            
suse.Effect1 attack.Effect1;

                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (!
CanAttack(attackerattackedsobspell))
                                                                continue;

                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
damage = (damage 180) / 100;
                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region XPSpells inofensive
                                
case 1015:
                                case 
1020:
                                case 
1110:
                                case 
6011:
                                case 
10390:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(500))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;

                                                
suse.AddTarget(attacked0attack);

                                                if (
spell.ID == 6011)
                                                {
                                                    
attacked.FatalStrikeStamp Time32.Now;
                                                    
attacked.FatalStrikeTime 60;
                                                    
attacked.AddFlag(Update.Flags.FatalStrike);
                                                    
attacker.RemoveFlag(Update.Flags.Ride);
                                                }
                                                else
                                                {
                                                    if (
spell.ID == 1110 || spell.ID == 10390)
                                                    {
                                                        if (!
attacked.OnKOSpell())
                                                            
attacked.KOCount 0;

                                                        
attacked.KOSpell spell.ID;
                                                        if (
spell.ID == 1110)
                                                        {
                                                            
attacked.CycloneStamp Time32.Now;
                                                            
attacked.CycloneTime 20;
                                                            
attacked.AddFlag(Update.Flags.Cyclone);
                                                        }
                                                        else if (
spell.ID == 10390)
                                                        {
                                                            
attacked.OblivionStamp Time32.Now;
                                                            
attacked.OblivionTime 20;
                                                            
attacked.AddFlag2(Update.Flags2.Oblivion);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (
spell.ID == 1020)
                                                        {
                                                            
attacked.ShieldTime 0;
                                                            
attacked.ShieldStamp Time32.Now;
                                                            
attacked.MagicShieldStamp Time32.Now;
                                                            
attacked.MagicShieldTime 0;

                                                            
attacked.AddFlag(Update.Flags.MagicShield);
                                                            
attacked.ShieldStamp Time32.Now;
                                                            
attacked.ShieldIncrease 1.1f;
                                                            
attacked.ShieldTime 60;
                                                        }
                                                        else
                                                        {
                                                            
attacked.AccuracyStamp Time32.Now;
                                                            
attacked.StarOfAccuracyStamp Time32.Now;
                                                            
attacked.StarOfAccuracyTime 0;
                                                            
attacked.AccuracyTime 0;

                                                            
attacked.AddFlag(Update.Flags.StarOfAccuracy);
                                                            
attacked.AccuracyStamp Time32.Now;
                                                            
attacked.AccuracyTime = (byte)spell.Duration;
                                                        }
                                                    }
                                                }
                                                
attacked.Owner.SendScreen(susetrue);
                                                
attacker.SpellStamp Time32.Now;
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Circle spells
                                
case 1010:
                                case 
1120:
                                case 
1125:
                                case 
3090:
                                case 
5001:
                                case 
8030:
                                case 
1115:
                                    {
                                        if (
spell.ID == 10315)
                                        {
                                            if (
attacker.Owner.Weapons.Item1 == null) return;
                                            if (
attacker.Owner.Weapons.Item1.IsTwoHander()) return;
                                        }
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
UInt16 oxoy;
                                            
ox attacker.X;
                                            
oy attacker.Y;
                                            if (
spellID == 10315)
                                            {
                                                
Attack npacket = new Attack(true);
                                                
npacket.Attacker attacker.UID;
                                                
npacket.AttackType 53;
                                                
npacket.X;
                                                
npacket.Y;
                                                
Writer.WriteUInt16(spell.ID28npacket.ToArray());
                                                
Writer.WriteByte(spell.Level30npacket.ToArray());
                                                
attacker.Owner.SendScreen(npackettrue);
                                                
attacker.X;
                                                
attacker.Y;
                                                
attacker.SendSpawn(attacker.Owner);
                                            }

                                            List<
IMapObjectobjects = new List<IMapObject>();
                                            if (
attacker.Owner.Screen.Objects.Count() > 0)
                                                
objects GetObjects(oxoyattacker.Owner);
                                            if (
objects != null)
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                                {
                                                    if (
spellID == 10315)
                                                    {
                                                        foreach (
IMapObject objs in objects.ToArray())
                                                        {
                                                            if (
objs == null)
                                                                continue;

                                                            if (
objs.MapObjType == MapObjectType.Monster || objs.MapObjType == MapObjectType.Entity)
                                                            {
                                                                
attacked objs as Entity;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attackclient_Spell.LevelHu2);
                                                                        
damage = (uint)(damage 0.5);

                                                                        
suse.Effect1 attack.Effect1;
                                                                        if (
spell.Power 0)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                                            
damage = (uint)(damage 0.5);
                                                                            
suse.Effect1 attack.Effect1;
                                                                        }
                                                                        if (
spell.ID == 8030)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedref attackclient_Spell.LevelHu2);
                                                                        }

                                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                                        
suse.AddTarget(attackeddamageattack);
                                                                    }
                                                                }
                                                            }
                                                            else if (
objs.MapObjType == MapObjectType.SobNpc)
                                                            {
                                                                
attackedsob objs as SobNpcSpawn;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedsobspell))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                        if (
spell.Power 0)
                                                                        {
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                                        }
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        if (
spell.ID == 8030)
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                        
suse.AddTarget(attackedsobdamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                        {
                                                            if (
_obj == null)
                                                                continue;
                                                            if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                            {
                                                                
attacked _obj as Entity;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Magic(attackerattackedspellref attackclient_Spell.LevelHu2);

                                                                        if (
spell.ID == 1115)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                                            
damage = (uint)(damage 0.55);
                                                                        }
                                                                        else if (
spell.Power 0)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attackclient_Spell.LevelHu2);

                                                                        }
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                                        
suse.AddTarget(attackeddamageattack);


                                                                    }
                                                                }
                                                            }
                                                            else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                            {
                                                                
attackedsob _obj as SobNpcSpawn;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedsobspell))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                        if (
spell.Power 0)
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        if (
spell.ID == 8030)
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);

                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                        
suse.AddTarget(attackedsobdamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                            
ahmedfathy.Game.Calculations.IsBreaking(attacker.Owneroxoy);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Buffers
                                
case 1075:
                                case 
1085:
                                case 
1090:
                                case 
1095:
                                case 
3080:
                                case 
10405:
                                case 
30000:
                                    {
                                        if (
attackedsob != null)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;

                                                
suse.AddTarget(attackedsob0null);

                                                
attacker.Owner.SendScreen(susetrue);
                                            }
                                        }
                                        else
                                        {
                                            if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                            {
                                                if (
CanUseSpell(spellattacker.Owner))
                                                {
                                                    
PrepareSpell(spellattacker.Owner);

                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    
suse.AddTarget(attacked0null);

                                                    if (
spell.ID == 1075 || spell.ID == 1085)
                                                    {
                                                        if (
spell.ID == 1075)
                                                        {
                                                            
attacked.AddFlag(Update.Flags.Invisibility);
                                                            
attacked.InvisibilityStamp Time32.Now;
                                                            
attacked.InvisibilityTime = (byte)spell.Duration;
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.Send(Constants.Invisibility(spell.Duration));
                                                        }
                                                        else
                                                        {
                                                            
attacked.AccuracyStamp Time32.Now;
                                                            
attacked.StarOfAccuracyStamp Time32.Now;
                                                            
attacked.StarOfAccuracyTime 0;
                                                            
attacked.AccuracyTime 0;
                                                            
attacker.Stamina -= 0;//////////////
                                                            
attacker.Stamina += 150;//////////

                                                            
attacked.AddFlag(Update.Flags.StarOfAccuracy);
                                                            
attacked.StarOfAccuracyStamp Time32.Now;
                                                            
attacked.StarOfAccuracyTime = (byte)spell.Duration;
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.Send(Constants.Accuracy(spell.Duration));
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (
spell.ID == 1090)
                                                        {
                                                            
attacked.ShieldTime 0;
                                                            
attacked.ShieldStamp Time32.Now;
                                                            
attacked.MagicShieldStamp Time32.Now;
                                                            
attacked.MagicShieldTime 0;

                                                            
attacked.AddFlag(Update.Flags.MagicShield);
                                                            
attacked.MagicShieldStamp Time32.Now;
                                                            
attacked.MagicShieldIncrease 1.1f;//spell.PowerPercent;
                                                            
attacked.MagicShieldTime = (byte)spell.Duration;
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.Send(Constants.Shield(spell.PowerPercentspell.Duration));
                                                        }
                                                        else if (
spell.ID == 1095)
                                                        {
                                                            
attacked.AddFlag(Update.Flags.Stigma);
                                                            
attacked.StigmaStamp Time32.Now;
                                                            
attacked.StigmaIncrease spell.PowerPercent;
                                                            
attacked.StigmaTime = (byte)spell.Duration;
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.Send(Constants.Stigma(spell.PowerPercentspell.Duration));
                                                        }
                                                        else if (
spell.ID == 30000)
                                                        {
                                                            if (
attacked.ContainsFlag2(Update.Flags2.AzureShield))
                                                            {
                                                                return;
                                                            }

                                                            if (
spell.Level == 0)
                                                                
attacked.AzureShieldDefence 3000;
                                                            else
                                                                
attacked.AzureShieldDefence = (ushort)(3000 spell.Level);
                                                            
attacked.AzureShieldLevel spell.Level;
                                                            
attacked.MagicShieldStamp Time32.Now;

                                                            
attacked.AzureShieldStamp DateTime.Now;
                                                            
attacked.AddFlag2(Update.Flags2.AzureShield);
                                                            
attacked.MagicShieldTime spell.Percent;
                                                            
attacked.AzureShieldPacket();
                                                            if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                
attacked.Owner.Send(Constants.Shield(12000attacked.MagicShieldTime));
                                                        }
                                                        if (
spell.ID == 10405 && attacked.Dead)
                                                        {
                                                            if (
attacked.EntityFlag != EntityFlag.Entity) break;
                                                            if (!
attacked.ContainsFlag2(Update.Flags2.SoulShackle))
                                                            {
                                                                if ((
attacked.BattlePower attacker.BattlePower) > 20) break;
                                                                {
                                                                    
#region Perfection
                                                                    
Game.Enums.PerfectionEffect effect Enums.PerfectionEffect.FreeSoul;
                                                                    
byte chance 0;
                                                                    new 
MsgRefineEffect().HandleFreeSoul(attackerref chance);
                                                                    if (
Kernel.Rate(chance))
                                                                    {
                                                                        new 
MsgRefineEffect().SendEffect(attackedattackereffect);
                                                                        break;
                                                                    }
                                                                    
#endregion
                                                                    
attacker.SpellStamp Time32.Now;
                                                                    
attacked.AddFlag(Update.Flags.Dead);
                                                                    
attacked.AddFlag2(Update.Flags2.SoulShackle);
                                                                    
attacked.ShackleStamp Time32.Now;
                                                                    
attacked.ShackleTime 90;
                                                                    
Network.GamePackets.Update upgrade = new Network.GamePackets.Update(true);
                                                                    
upgrade.UID attacked.UID;
                                                                    
upgrade.Append((byte)Network.GamePackets.Update.DataType.SoulShackle111900spell.Level);
                                                                    
attacked.Owner.Send(upgrade.ToArray());
                                                                    if (
attacked.EntityFlag == EntityFlag.Entityattacked.Owner.Send(Constants.Shackled(attacked.ShackleTime));
                                                                }
                                                            }
                                                        }
                                                    }
                                                    if (
attacked.EntityFlag == EntityFlag.Entity)
                                                        
attacked.Owner.SendScreen(susetrue);
                                                    else
                                                        
attacked.MonsterInfo.SendScreen(suse);

                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Percent
                                
case 3050:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
attackedsob != null)
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Distance)
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
uint damage Game.Attacking.Calculate.Percent(attackedsobspell.PowerPercent);
                                                        
attackedsob.Hitpoints -= damage;

                                                        
suse.AddTarget(attackedsobdamageattack);

                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
uint damage Game.Attacking.Calculate.Percent(attackedspell.PowerPercent);
                                                        if (
attacked.Owner != null)
                                                        {
                                                            
attacked.Owner.UpdateQualifier(damage);
                                                        }
                                                        
attacked.Hitpoints -= damage;

                                                        
suse.AddTarget(attackeddamageattack);

                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.SendScreen(susetrue);
                                                        else
                                                            
attacked.MonsterInfo.SendScreen(suse);
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region ExtraXP
                                
case 1040:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
PrepareSpell(spellattacker.Owner);
                                            if (
attacker.Owner.Team != null)
                                            {
                                                foreach (
Client.GameState teammate in attacker.Owner.Team.Teammates)
                                                {
                                                    if (
teammate.Player.UID != attacker.UID)
                                                    {
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yteammate.Player.Xteammate.Player.Y) <= 18)
                                                        {
                                                            
teammate.XPCount += 20;
                                                            
suse.AddTarget(teammate.Player20null);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region WeaponSpells
                                #region Circle
                                
case 5010:
                                case 
7020:
                                    {

                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            if (
suse.SpellID != 10415)
                                            {
                                                
suse.X;
                                                
suse.Y;
                                            }
                                            else
                                            {
                                                
suse.6;
                                            }

                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= attacker.AttackRange 1)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null)
                                                        continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                        {
                                                            if (
attacked.ContainsFlag(Update.Flags.Fly))
                                                                return;
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
PrepareSpell(spellattacker.Owner);

                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                                
suse.Effect1 attack.Effect1;

                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
PrepareSpell(spellattacker.Owner);
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }

                                        break;
                                    }
                                
#endregion

                                #region Single target
                                
case 11140://WindStorm
                                
case 10490:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
TryTrip suse = new TryTrip(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;

                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= attacker.AttackRange 1)
                                            {
                                                if (
attackedsob != null)
                                                {
                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
suse.Attacked attackedsob.UID;
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint AllDamage 0;
                                                        
uint damage1 0;
                                                        
uint damage2 0;
                                                        
uint damage 0;
                                                        
Network.GamePackets.Attack.AttackEffects1 Eff1 0;
                                                        
Network.GamePackets.Attack.AttackEffects1 Eff2 0;
                                                        
Network.GamePackets.Attack.AttackEffects1 Eff3 0;
                                                        
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
AllDamage += damage;
                                                        
Eff1 attack.Effect1;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        if (
attackedsob.Hitpoints <= AllDamage)
                                                        {
                                                            
suse.Effect1 attack.Effect1;
                                                            
suse.Damage += damage;

                                                        }
                                                        else
                                                        {
                                                            
damage1 Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
Eff2 attack.Effect1;
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
AllDamage += damage1;
                                                            if (
attackedsob.Hitpoints <= AllDamage)
                                                            {
                                                                
suse.Effect1 attack.Effect1;
                                                                
suse.Effect2 attack.Effect2;
                                                                
suse.Damage += damage;
                                                            }
                                                            else
                                                            {
                                                                
damage2 Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
Eff3 attack.Effect1;
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
AllDamage += damage2;
                                                                
suse.Effect1 attack.Effect1;
                                                                
suse.Effect2 attack.Effect2;
                                                                
suse.Damage damage;

                                                            }
                                                        }
                                                        if (
spellID == 10490)
                                                        {
                                                            if (
attacker.EpicMonk())
                                                            {
                                                                if (
attacker.Owner.Spells.ContainsKey(12570))
                                                                {
                                                                    
attacker.WrathoftheEmperor true;
                                                                    
attacker.WrathoftheEmperorStamp DateTime.Now;
                                                                }
                                                            }
                                                        }
                                                        
ReceiveAttack(attackerattackedsobattackAllDamagespell);

                                                    }
                                                }
                                                else
                                                {
                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
suse.Attacked attacked.UID;
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint AllDamage 0;
                                                        
uint damage1 0;
                                                        
uint damage2 0;
                                                        
uint damage 0;
                                                        
Network.GamePackets.Attack.AttackEffects1 Eff1 0;
                                                        
Network.GamePackets.Attack.AttackEffects1 Eff3 0;
                                                        
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                        
damage1 = (uint)(damage1 1.5);
                                                        
//damage1 = (damage1 * 103) / 100;
                                                        
AllDamage += damage;
                                                        
Eff1 attack.Effect1;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        if (
attacked.Hitpoints <= AllDamage)
                                                        {
                                                            
suse.Effect1 attack.Effect1;
                                                            
suse.Damage += damage;
                                                        }
                                                        else
                                                        {
                                                            
damage1 Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            
damage1 = (uint)(damage1 1.5);
                                                            
//damage1 = (damage1 * 103) / 100;
                                                            
AllDamage += damage;
                                                            
Eff3 attack.Effect1;
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
AllDamage += damage1;
                                                            if (
attacked.Hitpoints <= AllDamage)
                                                            {
                                                                
suse.Effect1 attack.Effect1;
                                                                
suse.Effect2 attack.Effect2;
                                                                
suse.Damage += damage;
                                                            }
                                                            else
                                                            {
                                                                
damage2 Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                
damage2 = (uint)(damage2 1.5);
                                                                
//damage2 = (damage2 * 22) / 100;
                                                                
Eff3 attack.Effect1;
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
AllDamage += damage2;
                                                                
suse.Effect1 attack.Effect1;
                                                                
suse.Effect2 attack.Effect2;
                                                                
suse.Damage damage;
                                                            }
                                                        }
                                                        if (
spellID == 10490)
                                                        {
                                                            if (
attacker.EpicMonk())
                                                            {
                                                                if (
attacker.Owner.Spells.ContainsKey(12570))
                                                                {
                                                                    
attacker.WrathoftheEmperor true;
                                                                    
attacker.WrathoftheEmperorStamp DateTime.Now;
                                                                }
                                                            }
                                                        }
                                                        
ReceiveAttack(attackerattackedattackref AllDamagespell);
                                                    }
                                                }
                                                
//attacker.AttackPacket = null;
                                            
}
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        
//attacker.AttackPacket = null;
                                        
break;
                                    }
                                case 
1290:
                                case 
5030:
                                case 
5040:
                                case 
7000:
                                case 
7010:
                                case 
7030:
                                case 
7040:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.X;
                                            
suse.Y;

                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= attacker.AttackRange 1)
                                            {
                                                if (
attackedsob != null)
                                                {
                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }
                                                }
                                                else
                                                {
                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                        
damage = (uint)(damage 0.7);
                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                
attacker.AttackPacket null;
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        
attacker.AttackPacket null;
                                        break;
                                    }
                                
#endregion
                                #region Sector
                                
case 1250:
                                case 
5050:
                                case 
5020:
                                case 
1300:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Range);
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Distance 1)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null)
                                                        continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);

                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion

                                #region Fly
                                
case 8002:
                                case 
8003:
                                    {
                                        if (
attacker.Owner.Map.ID == 1645)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use Fly Here !!!"System.Drawing.Color.WhiteMessage.Talk), Program.Values);
                                            return;
                                        }
                                        if (
attacker.Owner.Map.ID == 1645)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use Fly Here !!!"System.Drawing.Color.WhiteMessage.Talk), Program.Values);
                                            return;
                                        }
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
attacker.MapID == 1950)
                                                return;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacked.FlyStamp Time32.Now;
                                            
attacked.FlyTime = (byte)spell.Duration;

                                            
suse.AddTarget(attackerattacker.FlyTimenull);

                                            
attacker.AddFlag(Update.Flags.Fly);
                                            
attacker.RemoveFlag(Update.Flags.Ride);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion


                                #region Ninja Spells
                                
case 6010:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;

                                            
attacker.AddFlag(Update.Flags.ShurikenVortex);
                                            
attacker.RemoveFlag(Update.Flags.Ride);
                                            
attacker.ShurikenVortexStamp Time32.Now;
                                            
attacker.ShurikenVortexTime 20;

                                            
attacker.Owner.SendScreen(susetrue);

                                            
attacker.VortexPacket = new Attack(true);
                                            
attacker.VortexPacket.Decoded true;
                                            
attacker.VortexPacket.Damage 6012;
                                            
attacker.VortexPacket.AttackType Attack.Magic;
                                            
attacker.VortexPacket.Attacker attacker.UID;
                                        }
                                        break;
                                    }
                                case 
6012://VortexRespone
                                    
{
                                        if (!
attacker.ContainsFlag(Update.Flags.ShurikenVortex))
                                        {
                                            
attacker.AttackPacket null;
                                            break;
                                        }
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.attacker.X;
                                        
suse.attacker.Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                        {
                                            if (
_obj == null)
                                                continue;
                                            if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                            {
                                                
attacked _obj as Entity;
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                        
//   damage = (UInt32)((damage * 25) / 100);
                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                            }
                                            else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                            {
                                                
attackedsob _obj as SobNpcSpawn;
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
suse.Effect1 attack.Effect1;
                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }
                                                }
                                            }
                                        }
                                        
attacker.Owner.SendScreen(susetrue);
                                        break;
                                    }
                                case 
6001:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
if (Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Distance)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Entity || _obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
attacked.MapObjType == MapObjectType.Monster)
                                                            if (
attacked.MonsterInfo.Boss)
                                                                continue;
                                                        if (
Kernel.GetDistance(XYattacked.Xattacked.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
int potDifference attacker.BattlePower attacked.BattlePower;

                                                                
int rate spell.Percent potDifference 20;

                                                                if (
Kernel.Rate(rate))
                                                                {
                                                                    
attacked.ToxicFogStamp Time32.Now;
                                                                    
attacked.ToxicFogLeft 20;
                                                                    
attacked.ToxicFogPercent spell.PowerPercent;
                                                                    
attacked.AddFlag(Update.Flags.Poisoned);
                                                                    
suse.AddTarget(attacked1null);
                                                                }
                                                                else
                                                                {
                                                                    
suse.AddTarget(attacked0null);
                                                                    
suse.Targets[attacked.UID].Hit false;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                case 
6000:
                                    {
                                        
// if (Time32.Now >= attacker.SpellStamp.AddMilliseconds(1))
                                        
{
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
ushort XxYx;
                                                if (
attacked != null)
                                                {
                                                    
Xx attacked.X;
                                                    
Yx attacked.Y;
                                                }
                                                else
                                                {
                                                    
Xx attackedsob.X;
                                                    
Yx attackedsob.Y;
                                                }
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXxYx) <= 5)
                                                {
                                                    if (
attackedsob == null)
                                                        if (
attacked.ContainsFlag(Network.GamePackets.Update.Flags.Fly))
                                                            return;
                                                    
//if (attacked.ContainsFlag(Network.GamePackets.Update.Flags.Fly))
                                                    //  return;
                                                    
if (attacker.ContainsFlag(Network.GamePackets.Update.Flags.Fly))
                                                        return;
                                                    
PrepareSpell(spellattacker.Owner);

                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;
                                                    
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                                    
bool send false;

                                                    if (
attackedsob == null)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
suse.AddTarget(attackeddamageattack);
                                                            
send true;

                                                            if (
attacker.Owner.Spells.ContainsKey(11230) && !attacked.Dead)
                                                            {
                                                                var 
attacker.Owner.Spells[11230];
                                                                var 
spellz Database.SpellTable.SpellInformations[s.ID][s.Level];
                                                                if (
spellz != null)
                                                                {
                                                                    if (
Kernel.Rate(spellz.Percent))
                                                                    {
                                                                        
SpellUse ssuse = new SpellUse(true);
                                                                        
ssuse.Attacker attacker.UID;
                                                                        
ssuse.SpellID spellz.ID;

                                                                        
ssuse.SpellLevel spellz.Level;
                                                                        
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack) / 2;
                                                                        
damage 1000;
                                                                        
ssuse.AddTarget(attacked, new SpellUse.DamageClass().Damage damageattack);
                                                                        
ReceiveAttack(attackerattackedattackref damagespellz);
                                                                        
attacker.Owner.SendScreen(ssusetrue);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Calculate.Melee(attackerattackedsobref attack);
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.Effect1 attack.Effect1;

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                            
send true;
                                                        }
                                                    }
                                                    if (
send)
                                                        
attacker.Owner.SendScreen(susetrue);
                                                    
attacker.SpellStamp Time32.Now;
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                        }
                                        break;
                                    }


                                case 
6002:
                                    {
                                        if (
attackedsob != null)
                                            return;
                                        if (
attacked.EntityFlag == EntityFlag.Monster)
                                            return;
                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
int potDifference attacker.BattlePower attacked.BattlePower;

                                                
int rate spell.Percent potDifference;

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
//suse.SpellLevelHu = client_Spell.LevelHu2;

                                                
if (CanAttack(attackerattackedspellfalse))
                                                {
                                                    
suse.AddTarget(attacked1attack);
                                                    if (
Calculate.RateStatus(35))//Kernel.Rate(rate))
                                                    
{
                                                        
attacked.AddFlag2(Update.Flags2.EffectBall);
                                                        
attacked.NoDrugsStamp Time32.Now;
                                                        
attacked.NoDrugsTime = (short)spell.Duration;
                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.Send(Constants.NoDrugs(spell.Duration));
                                                    }
                                                    else
                                                    {
                                                        
suse.Targets[attacked.UID].Hit false;
                                                        
suse.Targets[attacked.UID].Damage spell.ID;
                                                    }

                                                    
attacked.Owner.SendScreen(susetrue);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                case 
6004:
                                    {
                                        if (
attackedsob != null)
                                            return;
                                        if (
attacked.EntityFlag == EntityFlag.Monster)
                                            return;
                                        if (!
attacked.ContainsFlag(Update.Flags.Fly))
                                            return;
                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
int potDifference attacker.BattlePower attacked.BattlePower;

                                                
int rate spell.Percent potDifference;

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                                
if (CanAttack(attackerattackedspellfalse))
                                                {
                                                    
uint dmg Calculate.Percent(attacked0.1F);
                                                    
suse.AddTarget(attackeddmgattack);

                                                    if (
Kernel.Rate(rate))
                                                    {
                                                        
attacked.Hitpoints -= dmg;
                                                        
attacked.RemoveFlag(Update.Flags.Fly);
                                                    }
                                                    else
                                                    {
                                                        
suse.Targets[attacked.UID].Hit false;
                                                    }

                                                    
attacked.Owner.SendScreen(susetrue);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                case 
11180:
                                    {
                                        if (
attacked != null)
                                        {
                                            if (
attacked.ContainsFlag(Update.Flags.Fly))
                                                return;
                                            if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                            {
                                                if (
CanUseSpell(spellattacker.Owner))
                                                {
                                                    if (!
Kernel.Rate(Math.Max(5100 - (attacked.BattlePower attacker.BattlePower) / 5))) return;
                                                    
PrepareSpell(spellattacker.Owner);
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                                    
suse.attacked.X;
                                                    
suse.attacked.Y;
                                                    
ushort newx attacker.X;
                                                    
ushort newy attacker.Y;
                                                    
Map.Pushback(ref newxref newyattacked.Facing5);
                                                    if (
attacker.Owner.Map.Floor[newxnewyMapObjectType.Entityattacked])
                                                    {
                                                        
suse.attacked.newx;
                                                        
suse.attacked.newy;
                                                    }
                                                    
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                                    if (
CanAttack(attackerattackedspellfalse))
                                                    {
                                                        
tar.Damage Calculate.Melee(attackerattackedref attack) / 2;
                                                        
suse.AddTarget(attackedtarattack);
                                                        
ReceiveAttack(attackerattackedattackref tar.Damagespell);
                                                    }
                                                    if (
attacker.EntityFlag == EntityFlag.Entity)
                                                        
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                case 
11170:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {

                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                            foreach (var 
t in attacker.Owner.Screen.Objects)
                                            {
                                                if (
== null)
                                                    continue;
                                                if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                                {
                                                    var 
target as Entity;
                                                    if (
Kernel.GetDistance(XYtarget.Xtarget.Y) <= spell.Range)
                                                    {
                                                        if (
CanAttack(attackertargetspellfalse))
                                                        {
                                                            
tar.Damage Calculate.Melee(attackertargetspellref attackclient_Spell.LevelHu2) / 4;
                                                            
tar.Hit true;
                                                            
suse.AddTarget(targettarattack);
                                                            
ReceiveAttack(attackertargetattackref tar.Damagespell);
                                                        }
                                                    }
                                                }
                                            }

                                            if (
attacker.EntityFlag == EntityFlag.Entity)
                                                
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region InfernalEcho
                                
case 12550:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            var 
map attacker.Owner.Map;
                                            if (!
map.Floor[XYMapObjectType.Itemnull]) return;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
suse.SpellEffect 0;
                                            
suse.AddTarget(attacker0null);
                                            
attacker.Owner.SendScreen(susetrue);

                                            
Random R = new Random();
                                            
int Nr R.Next(13);
                                            switch (
spell.Level)
                                            {
                                                
#region case 0 - 1 - 2 - 3 - 4 - 5
                                                
case 0:
                                                case 
1:
                                                case 
2:
                                                case 
3:
                                                case 
4:
                                                case 
5:
                                                    {
                                                        var 
area2 GetLocation2(attacker.Xattacker.Y);
                                                        
int count 3;
                                                        List<
System.Drawing.PointArea = new List<Point>();
                                                        for (
int i 0360+= spell.Sector)
                                                        {
                                                            if (
Area.Count >= count)
                                                            {
                                                                break;
                                                            }
                                                            
int r i;
                                                            var 
distance Kernel.Random.Next(spell.Rangespell.Distance);
                                                            var 
x2 = (ushort)(+ (distance Math.Cos(r)));
                                                            var 
y2 = (ushort)(+ (distance Math.Sin(r)));
                                                            
System.Drawing.Point point = new System.Drawing.Point((int)x2, (int)y2);
                                                            if (!
Area.Contains(point))
                                                            {
                                                                
Area.Add(point);
                                                            }
                                                            else
                                                            {
                                                                
i--;
                                                            }
                                                        }
                                                        if (
Nr == 1)
                                                        {
                                                            foreach (var 
a in area2)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;
                                                            }
                                                        }
                                                        else if (
Nr == 2)
                                                        {
                                                            foreach (var 
a in Area)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;
                                                            }
                                                        }
                                                        else if (
Nr == 3)
                                                        {
                                                            foreach (var 
a in Area)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;
                                                            }
                                                        }
                                                        break;
                                                    }
                                                
#endregion
                                                #region case 6
                                                
case 6:
                                                    {
                                                        var 
area2 GetLocation(attacker.Xattacker.Y);
                                                        
int count 4;
                                                        List<
System.Drawing.PointArea = new List<Point>();
                                                        for (
int i 0360+= spell.Sector)
                                                        {
                                                            if (
Area.Count >= count)
                                                            {
                                                                break;
                                                            }
                                                            
int r i;
                                                            var 
distance Kernel.Random.Next(spell.Rangespell.Distance);
                                                            var 
x2 = (ushort)(+ (distance Math.Cos(r)));
                                                            var 
y2 = (ushort)(+ (distance Math.Sin(r)));
                                                            
System.Drawing.Point point = new System.Drawing.Point((int)x2, (int)y2);
                                                            if (!
Area.Contains(point))
                                                            {
                                                                
Area.Add(point);
                                                            }
                                                            else
                                                            {
                                                                
i--;
                                                            }
                                                        }
                                                        if (
Nr == 1)
                                                        {
                                                            foreach (var 
a in area2)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;

                                                            }
                                                        }
                                                        else if (
Nr == 2)
                                                        {
                                                            foreach (var 
a in Area)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;
                                                            }
                                                        }
                                                        else if (
Nr == 3)
                                                        {
                                                            foreach (var 
a in Area)
                                                            {
                                                                
FloorItem item = new FloorItem(true);
                                                                
item.ItemID 1397;
                                                                
item.MapID attacker.MapID;
                                                                
item.Type FloorItem.Effect;
                                                                
item.= (ushort)a.X;
                                                                
item.= (ushort)a.Y;
                                                                
item.OnFloor Time32.Now;
                                                                
item.Owner attacker.Owner;
                                                                
item.UID FloorItem.FloorUID.Next;
                                                                while (
attacker.Owner.Map.FloorItems.ContainsKey(item.UID))
                                                                    
item.UID FloorItem.FloorUID.Next;
                                                                
item.mColor 14;
                                                                
item.OwnerUID attacker.UID;
                                                                
item.OwnerGuildUID attacker.GuildID;
                                                                
item.FlowerType 0;
                                                                
item.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(3));
                                                                
item.Name "InfernalEcho";
                                                                
attacker.Owner.SendScreenSpawn(itemtrue);
                                                                
attacker.AttackPacket null;
                                                            }
                                                        }
                                                        break;
                                                    }
                                                
#endregion
                                            
}
                                        }
                                        break;
                                    }
                                
#endregion

                                #region WrathoftheEmperor
                                
case 12570:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
suse.SpellEffect 1;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null) continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= 2)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Ranged))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            
damage = (uint)(damage 1.100);
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
attacked.Stunned true;
                                                            
attacked.StunStamp Time32.Now;
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= 2)
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {

                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region GraceofHeaven
                                
case 12560:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
SpellID 10425;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
attacker.Stamina += (byte)spell.Power;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null) continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= 12)
                                                    {
                                                        
int R Kernel.Random.Next(110);
                                                        if (
!= 4) continue;
                                                        if (
attacked.ContainsFlag2((ulong)Update.Flags2.SoulShackle))
                                                        {

                                                            
suse.AddTarget(attacked0attack);

                                                            
attacked.RemoveFlag2((ulong)Update.Flags2.SoulShackle);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.IncreaseSpellExperience(1012560);
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Riding
                                
case 7001:
                                    {
                                        if (
attacker.Owner.Map.ID == 1081 || attacker.Owner.Map.ID == 4444 || attacker.Owner.Map.ID == 1038 || attacker.Owner.Map.ID == 1707 || attacker.Owner.Map.ID == 2233 || attacker.Owner.Map.ID == 9898 || attacker.Owner.Map.ID == 2233 || attacker.Owner.Map.ID == 16414 || attacker.Owner.Map.ID == 3691 || attacker.Owner.Map.ID == 3692 || attacker.Owner.Map.ID == 3693 || attacker.Owner.Map.ID == 3694 || attacker.Owner.Map.ID == 44444 || attacker.Owner.Map.ID == 2222 || attacker.Owner.Map.ID == 8899 || attacker.Owner.Map.ID == 1365 || attacker.Owner.Map.ID == 1366)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use Riding Here !!!"System.Drawing.Color.WhiteMessage.Talk), Program.Values);
                                            return;
                                        }
                                        if (
attacker.Owner.Map.ID == 1507 || attacker.Owner.Map.ID == 881 || attacker.Owner.Map.ID == 882 || attacker.Owner.Map.ID == 883 || attacker.Owner.Map.ID == 884 || attacker.Owner.Map.ID == 1238 || attacker.Owner.Map.ID == 1459 || attacker.Owner.Map.ID == 1458 || attacker.Owner.Map.ID == 1460 || attacker.Owner.Map.ID == 1991 || attacker.Owner.Map.ID == 1992 || attacker.Owner.Map.ID == 1993 || attacker.Owner.Map.ID == 1994 || attacker.Owner.Map.ID == 1995 || attacker.Owner.Map.ID == 1996 || attacker.Owner.Map.ID == 1997 || attacker.Owner.Map.ID == 1998 || attacker.Owner.Map.ID == 1989 || attacker.Owner.Map.ID == 2005 || attacker.Owner.Map.ID == 2000 || attacker.Owner.Map.ID == 1990 || attacker.Owner.Map.ID == 1987 || attacker.Owner.Map.ID == 1988 || attacker.Owner.Map.ID == 39990 || attacker.Owner.Map.ID == 39984)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use Riding Here !!!"System.Drawing.Color.WhiteMessage.Talk), Program.Values);
                                            return;
                                        }
                                        if (
attacker.ContainsFlag(Update.Flags.ShurikenVortex))
                                            return;
                                        if (!
attacker.Owner.Equipment.Free(12))
                                        {
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
UInt16 oxoy;
                                            
ox attacker.X;
                                            
oy attacker.Y;
                                            if (
attacker.ContainsFlag(Update.Flags.Ride))
                                            {
                                                
attacker.RemoveFlag(Update.Flags.Ride);
                                            }
                                            else
                                            {
                                                if (
attacker.Owner.Map.ID == 1036 && attacker.Owner.Equipment.TryGetItem((byte)12).Plus 6)
                                                    break;
                                                if (
attacker.Owner.Map.BaseID == 700)
                                                    break;
                                                if (
attacker.Stamina >= 1)
                                                {
                                                    
attacker.AddFlag(Update.Flags.Ride);
                                                    
attacker.Stamina -= 1;
                                                    
attacker.Vigor = (ushort)(attacker.Owner.MaxVigor 2);
                                                    
Network.GamePackets.Vigor vigor = new Network.GamePackets.Vigor(true);
                                                    
vigor.Amount attacker.Owner.Vigor;
                                                    
vigor.Send(attacker.Owner);
                                                }
                                            }
                                            
suse.AddTarget(attacker0attack);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                case 
7002:
                                    {
//Spook
                                        
if (attacked.ContainsFlag(Update.Flags.Ride) && attacker.ContainsFlag(Update.Flags.Ride))
                                        {
                                            
ConquerItem attackedSteed nullattackerSteed null;
                                            if ((
attackedSteed attacked.Owner.Equipment.TryGetItem(ConquerItem.Steed)) != null)
                                            {
                                                if ((
attackerSteed attacker.Owner.Equipment.TryGetItem(ConquerItem.Steed)) != null)
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;
                                                    
suse.AddTarget(attacked0attack);
                                                    if (
attackedSteed.Plus attackerSteed.Plus)
                                                        
attacked.RemoveFlag(Update.Flags.Ride);
                                                    else if (
attackedSteed.Plus == attackerSteed.Plus && attackedSteed.PlusProgress <= attackerSteed.PlusProgress)
                                                        
attacked.RemoveFlag(Update.Flags.Ride);
                                                    else
                                                        
suse.Targets[attacked.UID].Hit false;
                                                    
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                case 
7003:
                                    {
//WarCry
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        
ConquerItem attackedSteed nullattackerSteed null;
                                        foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                        {
                                            if (
_obj == null)
                                                continue;
                                            if (
_obj.MapObjType == MapObjectType.Entity && _obj.UID != attacker.UID)
                                            {
                                                
attacked _obj as Entity;
                                                if ((
attackedSteed attacked.Owner.Equipment.TryGetItem(ConquerItem.Steed)) != null)
                                                {
                                                    if ((
attackerSteed attacker.Owner.Equipment.TryGetItem(ConquerItem.Steed)) != null)
                                                    {
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= attackedSteed.Plus)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
suse.AddTarget(attacked0attack);
                                                                if (
attackedSteed.Plus attackerSteed.Plus)
                                                                    
attacked.RemoveFlag(Update.Flags.Ride);
                                                                else if (
attackedSteed.Plus == attackerSteed.Plus && attackedSteed.PlusProgress <= attackerSteed.PlusProgress)
                                                                    
attacked.RemoveFlag(Update.Flags.Ride);
                                                                else
                                                                    
suse.Targets[attacked.UID].Hit false;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        
attacker.Owner.SendScreen(susetrue);
                                        break;
                                    }
                                
#endregion

                                #region Dash
                                
case 1051:
                                    {
                                        if (
attacked != null)
                                        {
                                            if (!
attacked.Dead)
                                            {
                                                var 
direction Kernel.GetAngle(attacker.Xattacker.Yattacked.Xattacked.Y);
                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                {
                                                    
attack = new Attack(true);
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Calculate.Melee(attackerattackedref attack);
                                                    
attack.AttackType Attack.Dash;
                                                    
attack.attacked.X;
                                                    
attack.attacked.Y;
                                                    
attack.Attacker attacker.UID;
                                                    
attack.Attacked attacked.UID;
                                                    
attack.Damage damage;
                                                    
attack.ToArray()[27] = (byte)direction;
                                                    
attacked.Move(direction);
                                                    
attacker.Move(direction);

                                                    
ReceiveAttack(attackerattackedattackref damagespell);

                                                    
attacker.Owner.SendScreen(attacktrue);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region RapidFire
                                
case 8000:
                                    {
                                        if (
attackedsob != null)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                if (
CanAttack(attackerattackedsobspell))
                                                {
                                                    
PrepareSpell(spellattacker.Owner);
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.attackedsob.X;
                                                    
suse.attackedsob.Y;
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Calculate.Ranged(attackerattackedsobref attack);
                                                    
suse.Effect1 attack.Effect1;
                                                    
suse.AddTarget(attackedsobdamageattack);

                                                    
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                    
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (!
attacked.Dead)
                                            {
                                                if (
CanUseSpell(spellattacker.Owner))
                                                {
                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
SpellUse suse = new SpellUse(true);
                                                        
suse.Attacker attacker.UID;
                                                        
suse.SpellID spell.ID;
                                                        
suse.SpellLevel spell.Level;
                                                        
suse.attacked.X;
                                                        
suse.attacked.Y;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Calculate.Ranged(attackerattackedref attack);
                                                        
suse.AddTarget(attackeddamageattack);

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region FireOfHell
                                
case 1165:
                                case 
7014:
                                case 
7017:
                                case 
7015:
                                case 
7011:
                                case 
7012:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Distance);
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;

                                                    if (
sector.Inside(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Magic(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                            
suse.Effect1 attack.Effect1;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);

                                                            if (
spell.ID == 1165)
                                                            {
                                                                if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                {
                                                                    
#region BreakingTouch
                                                                    
attacked.Owner.BreakTouch(attacker.Owner);
                                                                    
#endregion
                                                                
}
                                                            }

                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Scatter
                                
case 8001:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Distance);
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;

                                                    if (
sector.Inside(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Ranged(attackerattackedspellref attack);

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);
                                                            
suse.Effect1 attack.Effect1;
                                                            if (
damage == 0)
                                                                
damage 1;
                                                            
damage Game.Attacking.Calculate.Percent((int)damagespell.PowerPercent);

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region StarArrow
                                
case 10313:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
if (attacked != null)
                                            {
                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                {
                                                    
ushort _X attacked.X_Y attacked.Y;
                                                    
byte dist 5;
                                                    var 
angle Kernel.GetAngle(attacker.Xattacker.Yattacked.Xattacked.Y);
                                                    while (
dist != 0)
                                                    {
                                                        if (
attacked.fMove(angleref _Xref _Y))
                                                        {
                                                            
_X;
                                                            
_Y;
                                                        }
                                                        else break;
                                                        
dist--;
                                                    }
                                                    
suse.attacked.X;
                                                    
suse.attacked.Y;
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                    
ReceiveAttack(attackerattackedattackref damagespell);

                                                    
suse.AddTarget(attackeddamageattack);
                                                }
                                            }
                                            else if (
attackedsob != null)
                                            {
                                                if (
CanAttack(attackerattackedsobspell))
                                                {
                                                    
suse.attackedsob.X;
                                                    
suse.attackedsob.Y;
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                    
suse.Effect1 attack.Effect1;
                                                    if (
damage == 0)
                                                        
damage 1;
                                                    
damage Game.Attacking.Calculate.Percent((int)damagespell.PowerPercent);

                                                    
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                    
suse.AddTarget(attackedsobdamageattack);
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Trasnformations
                                
case 1270:
                                case 
1280:
                                case 
1350:
                                case 
1360:
                                case 
3321:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
attacker.MapID == 1036)
                                                return;
                                            if (
attacker.MapID == 1950)
                                                return;
                                            
bool wasTransformated attacker.Transformed;
                                            
PrepareSpell(spellattacker.Owner);

                                            
#region Atributes
                                            
switch (spell.ID)
                                            {
                                                case 
3321://GM skill
                                                    
{
                                                        
attacker.TransformationMaxAttack 2000000;
                                                        
attacker.TransformationMinAttack 2000000;
                                                        
attacker.TransformationDefence 65355;
                                                        
attacker.TransformationMagicDefence 65355;
                                                        
attacker.TransformationDodge 35;
                                                        
attacker.TransformationTime 65355;
                                                        
attacker.TransformationID 223;
                                                        
attacker.Hitpoints attacker.MaxHitpoints;
                                                        
attacker.Mana attacker.MaxMana;
                                                        break;
                                                    }
                                                case 
1350:
                                                    switch (
spell.Level)
                                                    {
                                                        case 
0:
                                                            {
                                                                
attacker.TransformationMaxAttack 182;
                                                                
attacker.TransformationMinAttack 122;
                                                                
attacker.TransformationDefence 1300;
                                                                
attacker.TransformationMagicDefence 94;
                                                                
attacker.TransformationDodge 35;
                                                                
attacker.TransformationTime 39;
                                                                
attacker.TransformationID 207;
                                                                break;
                                                            }
                                                        case 
1:
                                                            {
                                                                
attacker.TransformationMaxAttack 200;
                                                                
attacker.TransformationMinAttack 134;
                                                                
attacker.TransformationDefence 1400;
                                                                
attacker.TransformationMagicDefence 96;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 49;
                                                                
attacker.TransformationID 207;
                                                                break;
                                                            }
                                                        case 
2:
                                                            {
                                                                
attacker.TransformationMaxAttack 240;
                                                                
attacker.TransformationMinAttack 160;
                                                                
attacker.TransformationDefence 1500;
                                                                
attacker.TransformationMagicDefence 97;
                                                                
attacker.TransformationDodge 45;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 207;
                                                                break;
                                                            }
                                                        case 
3:
                                                            {
                                                                
attacker.TransformationMaxAttack 258;
                                                                
attacker.TransformationMinAttack 172;
                                                                
attacker.TransformationDefence 1600;
                                                                
attacker.TransformationMagicDefence 98;
                                                                
attacker.TransformationDodge 50;
                                                                
attacker.TransformationTime 69;
                                                                
attacker.TransformationID 267;
                                                                break;
                                                            }
                                                        case 
4:
                                                            {
                                                                
attacker.TransformationMaxAttack 300;
                                                                
attacker.TransformationMinAttack 200;
                                                                
attacker.TransformationDefence 1900;
                                                                
attacker.TransformationMagicDefence 99;
                                                                
attacker.TransformationDodge 55;
                                                                
attacker.TransformationTime 79;
                                                                
attacker.TransformationID 267;
                                                                break;
                                                            }
                                                    }
                                                    break;
                                                case 
1270:
                                                    switch (
spell.Level)
                                                    {
                                                        case 
0:
                                                            {
                                                                
attacker.TransformationMaxAttack 282;
                                                                
attacker.TransformationMinAttack 179;
                                                                
attacker.TransformationDefence 73;
                                                                
attacker.TransformationMagicDefence 34;
                                                                
attacker.TransformationDodge 9;
                                                                
attacker.TransformationTime 34;
                                                                
attacker.TransformationID 214;
                                                                break;
                                                            }
                                                        case 
1:
                                                            {
                                                                
attacker.TransformationMaxAttack 395;
                                                                
attacker.TransformationMinAttack 245;
                                                                
attacker.TransformationDefence 126;
                                                                
attacker.TransformationMagicDefence 45;
                                                                
attacker.TransformationDodge 12;
                                                                
attacker.TransformationTime 39;
                                                                
attacker.TransformationID 214;
                                                                break;
                                                            }
                                                        case 
2:
                                                            {
                                                                
attacker.TransformationMaxAttack 616;
                                                                
attacker.TransformationMinAttack 367;
                                                                
attacker.TransformationDefence 180;
                                                                
attacker.TransformationMagicDefence 53;
                                                                
attacker.TransformationDodge 15;
                                                                
attacker.TransformationTime 44;
                                                                
attacker.TransformationID 214;
                                                                break;
                                                            }
                                                        case 
3:
                                                            {
                                                                
attacker.TransformationMaxAttack 724;
                                                                
attacker.TransformationMinAttack 429;
                                                                
attacker.TransformationDefence 247;
                                                                
attacker.TransformationMagicDefence 53;
                                                                
attacker.TransformationDodge 15;
                                                                
attacker.TransformationTime 49;
                                                                
attacker.TransformationID 214;
                                                                break;
                                                            }
                                                        case 
4:
                                                            {
                                                                
attacker.TransformationMaxAttack 1231;
                                                                
attacker.TransformationMinAttack 704;
                                                                
attacker.TransformationDefence 499;
                                                                
attacker.TransformationMagicDefence 50;
                                                                
attacker.TransformationDodge 20;
                                                                
attacker.TransformationTime 54;
                                                                
attacker.TransformationID 274;
                                                                break;
                                                            }
                                                        case 
5:
                                                            {
                                                                
attacker.TransformationMaxAttack 1573;
                                                                
attacker.TransformationMinAttack 941;
                                                                
attacker.TransformationDefence 601;
                                                                
attacker.TransformationMagicDefence 53;
                                                                
attacker.TransformationDodge 25;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 274;
                                                                break;
                                                            }
                                                        case 
6:
                                                            {
                                                                
attacker.TransformationMaxAttack 1991;
                                                                
attacker.TransformationMinAttack 1107;
                                                                
attacker.TransformationDefence 1029;
                                                                
attacker.TransformationMagicDefence 55;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 64;
                                                                
attacker.TransformationID 274;
                                                                break;
                                                            }
                                                        case 
7:
                                                            {
                                                                
attacker.TransformationMaxAttack 2226;
                                                                
attacker.TransformationMinAttack 1235;
                                                                
attacker.TransformationDefence 1029;
                                                                
attacker.TransformationMagicDefence 55;
                                                                
attacker.TransformationDodge 35;
                                                                
attacker.TransformationTime 69;
                                                                
attacker.TransformationID 274;
                                                                break;
                                                            }
                                                    }
                                                    break;
                                                case 
1360:
                                                    switch (
spell.Level)
                                                    {
                                                        case 
0:
                                                            {
                                                                
attacker.TransformationMaxAttack 1215;
                                                                
attacker.TransformationMinAttack 610;
                                                                
attacker.TransformationDefence 100;
                                                                
attacker.TransformationMagicDefence 96;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 217;
                                                                break;
                                                            }
                                                        case 
1:
                                                            {
                                                                
attacker.TransformationMaxAttack 1310;
                                                                
attacker.TransformationMinAttack 650;
                                                                
attacker.TransformationDefence 400;
                                                                
attacker.TransformationMagicDefence 97;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 79;
                                                                
attacker.TransformationID 217;
                                                                break;
                                                            }
                                                        case 
2:
                                                            {
                                                                
attacker.TransformationMaxAttack 1420;
                                                                
attacker.TransformationMinAttack 710;
                                                                
attacker.TransformationDefence 650;
                                                                
attacker.TransformationMagicDefence 98;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 89;
                                                                
attacker.TransformationID 217;
                                                                break;
                                                            }
                                                        case 
3:
                                                            {
                                                                
attacker.TransformationMaxAttack 1555;
                                                                
attacker.TransformationMinAttack 780;
                                                                
attacker.TransformationDefence 720;
                                                                
attacker.TransformationMagicDefence 98;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 99;
                                                                
attacker.TransformationID 277;
                                                                break;
                                                            }
                                                        case 
4:
                                                            {
                                                                
attacker.TransformationMaxAttack 1660;
                                                                
attacker.TransformationMinAttack 840;
                                                                
attacker.TransformationDefence 1200;
                                                                
attacker.TransformationMagicDefence 99;
                                                                
attacker.TransformationDodge 30;
                                                                
attacker.TransformationTime 109;
                                                                
attacker.TransformationID 277;
                                                                break;
                                                            }
                                                    }
                                                    break;
                                                case 
1280:
                                                    switch (
spell.Level)
                                                    {
                                                        case 
0:
                                                            {
                                                                
attacker.TransformationMaxAttack 930;
                                                                
attacker.TransformationMinAttack 656;
                                                                
attacker.TransformationDefence 290;
                                                                
attacker.TransformationMagicDefence 45;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 29;
                                                                
attacker.TransformationID 213;
                                                                break;
                                                            }
                                                        case 
1:
                                                            {
                                                                
attacker.TransformationMaxAttack 1062;
                                                                
attacker.TransformationMinAttack 750;
                                                                
attacker.TransformationDefence 320;
                                                                
attacker.TransformationMagicDefence 46;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 34;
                                                                
attacker.TransformationID 213;
                                                                break;
                                                            }
                                                        case 
2:
                                                            {
                                                                
attacker.TransformationMaxAttack 1292;
                                                                
attacker.TransformationMinAttack 910;
                                                                
attacker.TransformationDefence 510;
                                                                
attacker.TransformationMagicDefence 50;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 39;
                                                                
attacker.TransformationID 213;
                                                                break;
                                                            }
                                                        case 
3:
                                                            {
                                                                
attacker.TransformationMaxAttack 1428;
                                                                
attacker.TransformationMinAttack 1000;
                                                                
attacker.TransformationDefence 600;
                                                                
attacker.TransformationMagicDefence 53;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 44;
                                                                
attacker.TransformationID 213;
                                                                break;
                                                            }
                                                        case 
4:
                                                            {
                                                                
attacker.TransformationMaxAttack 1570;
                                                                
attacker.TransformationMinAttack 1100;
                                                                
attacker.TransformationDefence 700;
                                                                
attacker.TransformationMagicDefence 55;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 49;
                                                                
attacker.TransformationID 213;
                                                                break;
                                                            }
                                                        case 
5:
                                                            {
                                                                
attacker.TransformationMaxAttack 1700;
                                                                
attacker.TransformationMinAttack 1200;
                                                                
attacker.TransformationDefence 880;
                                                                
attacker.TransformationMagicDefence 57;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 54;
                                                                
attacker.TransformationID 273;
                                                                break;
                                                            }
                                                        case 
6:
                                                            {
                                                                
attacker.TransformationMaxAttack 1900;
                                                                
attacker.TransformationMinAttack 1300;
                                                                
attacker.TransformationDefence 1540;
                                                                
attacker.TransformationMagicDefence 59;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 273;
                                                                break;
                                                            }
                                                        case 
7:
                                                            {
                                                                
attacker.TransformationMaxAttack 2100;
                                                                
attacker.TransformationMinAttack 1500;
                                                                
attacker.TransformationDefence 1880;
                                                                
attacker.TransformationMagicDefence 61;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 273;
                                                                break;
                                                            }
                                                        case 
8:
                                                            {
                                                                
attacker.TransformationMaxAttack 2300;
                                                                
attacker.TransformationMinAttack 1600;
                                                                
attacker.TransformationDefence 1970;
                                                                
attacker.TransformationMagicDefence 63;
                                                                
attacker.TransformationDodge 40;
                                                                
attacker.TransformationTime 59;
                                                                
attacker.TransformationID 273;
                                                                break;
                                                            }
                                                    }
                                                    break;

                                            }
                                            
#endregion

                                            
SpellUse spellUse = new SpellUse(true);
                                            
spellUse.Attacker attacker.UID;
                                            
spellUse.SpellID spell.ID;
                                            
spellUse.SpellLevel spell.Level;
                                            
spellUse.X;
                                            
spellUse.Y;
                                            
spellUse.AddTarget(attacker, (uint)0attack);
                                            
attacker.Owner.SendScreen(spellUsetrue);
                                            
attacker.TransformationStamp Time32.Now;
                                            
attacker.TransformationMaxHP 3000;
                                            if (
spell.ID == 1270)
                                                
attacker.TransformationMaxHP 50000;
                                            
attacker.TransformationAttackRange 3;
                                            if (
spell.ID == 1360)
                                                
attacker.TransformationAttackRange 10;
                                            if (!
wasTransformated)
                                            {
                                                
double maxHP attacker.MaxHitpoints;
                                                
double HP attacker.Hitpoints;
                                                
double point HP maxHP;

                                                
attacker.Hitpoints = (uint)(attacker.TransformationMaxHP point);
                                            }
                                            
attacker.Update(Update.MaxHitpointsattacker.TransformationMaxHPfalse);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Bless
                                
case 9876:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
attacker.AddFlag(Update.Flags.CastPray);
                                            
SpellUse spellUse = new SpellUse(true);
                                            
spellUse.Attacker attacker.UID;
                                            
spellUse.SpellID spell.ID;
                                            
spellUse.SpellLevel spell.Level;
                                            
spellUse.X;
                                            
spellUse.Y;
                                            
spellUse.AddTarget(attacker0attack);
                                            
attacker.Owner.SendScreen(spellUsetrue);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Companions
                                
case 4000:
                                case 
4010:
                                case 
4020:
                                case 
4050:
                                case 
4060:
                                case 
4070:
                                case 
12020:
                                case 
12030:
                                case 
12040:
                                case 
12610:
                                case 
12050:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {

                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse spellUse = new SpellUse(true);
                                            
spellUse.Attacker attacker.UID;
                                            
spellUse.SpellID spell.ID;
                                            
spellUse.SpellLevel spell.Level;
                                            
spellUse.X;
                                            
spellUse.Y;
                                            
spellUse.AddTarget(attacker0attack);
                                            
attacker.Owner.SendScreen(spellUsetrue);
                                            
MonsterInformation information5 null;
                                            if (
MonsterInformation.MonsterInformations.TryGetValue(spell.Powerout information5))
                                                
attacker.Owner.Pet.AddPet(information5);


                                        }
                                        break;
                                    }
                                
#endregion

                                #region MonkSpells
                                #region Auras

                                
case 10424:
                                case 
10423:
                                case 
10422:
                                case 
10421:
                                case 
10420:
                                
//Tyrant Aura
                                
case 10395:
                                
//Fend Aura
                                
case 10410:
                                    {
                                        
HandleAura(attackerspell);
                                    }
                                    break;
                                
#endregion
                                #region Compassion
                                
case 10430:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;

                                            if (
attacker.Owner.Team != null)
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                foreach (
Client.GameState teammate in attacker.Owner.Team.Teammates)
                                                {
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yteammate.Player.Xteammate.Player.Y) <= spell.Distance)
                                                    {
                                                        
teammate.Player.RemoveFlag(Update.Flags.Poisoned);

                                                        
suse.AddTarget(teammate.Player0attack);
                                                    }
                                                }
                                                
attacker.Owner.SendScreen(susetrue);
                                            }
                                            else
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
attacker.RemoveFlag(Update.Flags.Poisoned);

                                                
suse.AddTarget(attacker0attack);

                                                if (
attacked.EntityFlag == EntityFlag.Entity)
                                                    
attacked.Owner.SendScreen(susetrue);
                                                else
                                                    
attacker.Owner.SendScreen(susetrue);
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Serenity
                                
case 10400:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            if (
attacker == null) return;

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;

                                            
suse.AddTarget(attacker0attack);
                                            
attacked.ToxicFogLeft 0;
                                            
attacked.NoDrugsTime 0;
                                            
attacked.RemoveFlag2(Update.Flags2.SoulShackle);
                                            
attacked.RemoveFlag2(Update.Flags2.EffectBall);
                                            
attacked.lianhuaranLeft 0;
                                            
//                                            attacked.Owner.Send(new GameCharacterUpdates(true) { UID = attacked.UID, }
                                            //                                                        .Remove(GameCharacterUpdates.SoulShacle));
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                
case 10425:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
//if (attacker.EpicMonk())
                                            
{


                                                
PrepareSpell(spellattacker.Owner);

                                                if (
attacked == null) return;

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;*//*Mr.Lover*__!__*For*Other*:D 
                                                
suse.SpellID SpellID;
                                                
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                                
suse.X;
                                                
suse.Y;


                                                
suse.AddTarget(attacked0attack);

                                                
attacked.ToxicFogLeft 0;
                                                
attacked.RemoveFlag2(Update.Flags2.SoulShackle);

                                                
Network.GamePackets.Update upgrade = new Network.GamePackets.Update(true);
                                                
upgrade.UID attacked.UID;
                                                
upgrade.Append(Network.GamePackets.Update.SoulShackle
                                                    
111//*Mr.Lover*__!__*For*Other*:D 
                                                    
00spell.Level);
                                                if (
attacked.EntityFlag == EntityFlag.Entity)
                                                    
attacked.Owner.Send(upgrade.ToArray());

                                                
attacked.RemoveFlag2(Update.Flags2.Congelado);
                                                
attacked.RemoveFlag2(Update.Flags2.EffectBall);
                                                
//*attacked.lianhuaranLeft1*=*0; 


                                                
attacked.NoDrugsTime 0;//*Mr.Lover*__!__*For*Other*:D 
                                                
if (attacked.EntityFlag == EntityFlag.Entity)
                                                    
attacked.Owner.SendScreen(susetrue);
                                                else
                                                    
attacker.Owner.SendScreen(susetrue);//*Mr.Lover*__!__*For*Other*:D 


                                            
}
                                            break;

                                        }
                                        break;
                                    }
                                
#region WhirlwindKick
                                
case 10415:
                                    {
                                        if (
Time32.Now attacker.SpellStamp.AddMilliseconds(300))
                                        {
                                            
attacker.AttackPacket null; return;
                                        }
                                        if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= 400)
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel 0;
                                                
suse.= (ushort)Kernel.Random.Next(310);
                                                
suse.0;
                                                
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                                
if (Kernel.GetDistance(attacker.Xattacker.YXY) <= 500)
                                                {
                                                    for (
int c 0attacker.Owner.Screen.Objects.Lengthc++)
                                                    {
                                                        
//For a multi threaded application, while we go through the collection
                                                        //the collection might change. We will make sure that we wont go off  
                                                        //the limits with a check.
                                                        
if (>= attacker.Owner.Screen.Objects.Length)
                                                            break;
                                                        
Interfaces.IMapObject _obj attacker.Owner.Screen.Objects[c];
                                                        if (
_obj == null)
                                                            continue;
                                                        if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                        {
                                                            
attacked _obj as Entity;
                                                            if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                            {
                                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Ranged))
                                                                {
                                                                    var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                    
damage = (uint)(damage 0.550);
                                                                    
suse.Effect1 attack.Effect1;
                                                                    
ReceiveAttack(attackerattackedattackref damagespell);
                                                                    
attacked.Stunned true;
                                                                    
attacked.StunStamp Time32.Now;
                                                                    
suse.AddTarget(attackeddamageattack);

                                                                }
                                                            }
                                                        }
                                                    }
                                                    
attacker.AttackPacket null;
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null; return;
                                                }
                                                
attacker.Owner.SendScreen(susetrue);
                                                
attacker.SpellStamp Time32.Now;
                                                
suse.Targets = new SafeDictionary<uintSpellUse.DamageClass>();
                                                
attacker.AttackPacket null; return;
                                            }
                                            
attacker.AttackPacket null;
                                        }
                                        
attacker.AttackPacket null; return;
                                    }
                                
#endregion
                                #endregion

                                #region PirateSpells

                                #region GaleBomb
                                
case 11070:
                                    if (
CanUseSpell(spellattacker.Owner))
                                    {

                                        
PrepareSpell(spellattacker.Owner);
                                        
Map map;
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        
int num 0;

                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num 4;
                                                break;
                                            default:
                                                
num 5;
                                                break;
                                        }
                                        
int i 0;
                                        
Kernel.Maps.TryGetValue(attacker.Owner.Map.BaseIDout map);
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
== null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target as Entity;
                                                if (
Kernel.GetDistance(XYtarget.Xtarget.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackertargetspellfalse))
                                                    {
                                                        
tar.Damage Calculate.Ranged(attackertargetspellref attack);
                                                        
tar.Hit true;
                                                        
tar.newX target.X;
                                                        
tar.newY target.Y;
                                                        
Map.Pushback(ref tar.newXref tar.newYattacker.Facing5);

                                                        if (
map != null)
                                                        {
                                                            if (
map.Floor[tar.newXtar.newYMapObjectType.Entityattacker])
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
tar.newX target.X;
                                                                
tar.newY target.Y;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (
attacker.Owner.Map.Floor[tar.newXtar.newYMapObjectType.Entityattacker])
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                        }
                                                        
suse.AddTarget(targettarattack);
                                                        
ReceiveAttack(attackertargetattackref tar.Damagespell);

                                                        
i++;
                                                        if (
num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(susetrue);
                                    }
                                    break;
                                
#endregion

                                #region BladeTempest
                                
case 11110:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(400))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
// suse.SpellLevelHu = 0;
                                                
suse.SpellLevel spell.Level;
                                                
ushort _X attacker.X_Y attacker.Y;
                                                
ushort _tX X_tY Y;
                                                
byte dist = (byte)spell.Distance;
                                                var Array = 
attacker.Owner.Screen.Objects;
                                                
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                                   
InLineAlgorithm.Algorithm.DDA);
                                                
attacker.X;
                                                
attacker.Y;
                                                
int i 0;
                                                for (
0algo.lcoords.Counti++)
                                                {
                                                    if (
attacker.Owner.Map.Floor[algo.lcoords[i].Xalgo.lcoords[i].YMapObjectType.Entity]
                                                        && !
attacker.ThroughGate(algo.lcoords[i].Xalgo.lcoords[i].Y))
                                                    {
                                                        
= (ushort)algo.lcoords[i].X;
                                                        
= (ushort)algo.lcoords[i].Y;
                                                    }
                                                    else
                                                    {
                                                        break;
                                                    }
                                                }
                                                
suse.X;
                                                
suse.Y;
                                                if (!
attacker.Owner.Map.Floor[XYMapObjectType.Entitynull])
                                                    return;
                                                
double disth 2;

                                                foreach (
Interfaces.IMapObject _obj in Array)
                                                {
                                                    
bool hit false;
                                                    for (
int j 0ij++)
                                                        if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                            
hit true;
                                                    if (
hit)
                                                    {
                                                        if (
_obj.MapObjType == MapObjectType.Monster)
                                                        {
                                                            
attacked _obj as Entity;
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.818);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.855);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.958);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 1.050);
                                                                }
                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                        else if (
_obj.MapObjType == MapObjectType.Entity)
                                                        {
                                                            
attacked _obj as Entity;
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.818);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.855);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.958);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 1.050);
                                                                }

                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                        else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                        {
                                                            
attackedsob _obj as SobNpcSpawn;
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.850);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.840);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.800);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 0.6);
                                                                }
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                                
attacker.PX attacker.X;
                                                
attacker.PY attacker.Y;
                                                
attacker.X;
                                                
attacker.Y;
                                                
attacker.Owner.SendScreen(susetrue);
                                                
attacker.Owner.Screen.Reload(suse);
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Kraken`sRevenge
                                
case 11100:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {

                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
int num 0;

                                            switch (
spell.Level)
                                            {
                                                case 
0:
                                                case 
1:
                                                    
num 3;
                                                    break;
                                                case 
2:
                                                case 
3:
                                                    
num 4;
                                                    break;
                                                default:
                                                    
num 5;
                                                    break;
                                            }

                                            
int i 0;
                                            
BlackSpotPacket bsp = new BlackSpotPacket();
                                            foreach (var 
t in attacker.Owner.Screen.Objects)
                                            {
                                                if (
== null)
                                                    continue;
                                                if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                                {
                                                    var 
target as Entity;
                                                    if (
CanAttack(attackertargetspellfalse))
                                                    {
                                                        
target.IsBlackSpotted true;
                                                        
target.BlackSpotStamp Time32.Now;
                                                        
target.BlackSpotStepSecs spell.Duration;
                                                        
Kernel.BlackSpoted.TryAdd(target.UIDtarget);
                                                        
suse.AddTarget(target, new SpellUse.DamageClass(), attack);
                                                        
i++;
                                                        if (
== num) break;
                                                    }
                                                }
                                            }
                                            if (
attacker.EntityFlag == EntityFlag.Entity)
                                                
attacker.Owner.SendScreen(susetrue);

                                            foreach (var 
h in Program.Values)
                                            {
                                                foreach (var 
t in suse.Targets.Keys)
                                                {
                                                    
h.Send(bsp.ToArray(truet));
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region ScurvyBomb
                                
case 11040:
                                    if (
CanUseSpell(spellattacker.Owner))
                                    {

                                        
PrepareSpell(spellattacker.Owner);
                                        
Map map;
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        
int num 0;

                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num 4;
                                                break;
                                            default:
                                                
num 5;
                                                break;
                                        }
                                        
int i 0;
                                        
Kernel.Maps.TryGetValue(attacker.Owner.Map.BaseIDout map);
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
== null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target as Entity;
                                                if (
Kernel.GetDistance(XYtarget.Xtarget.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackertargetspellfalse))
                                                    {
                                                        
tar.Damage Calculate.Ranged(attackertargetref attack);
                                                        
tar.Hit true;
                                                        
tar.newX target.X;
                                                        
tar.newY target.Y;
                                                        
Map.Pushback(ref tar.newXref tar.newYattacker.Facing5);

                                                        if (
map != null)
                                                        {
                                                            if (
map.Floor[tar.newXtar.newYMapObjectType.Entityattacker])
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
tar.newX target.X;
                                                                
tar.newY target.Y;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (
attacker.Owner.Map.Floor[tar.newXtar.newYMapObjectType.Entityattacker])
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
target.tar.newX;
                                                                
target.tar.newY;
                                                            }
                                                        }

                                                        
suse.AddTarget(targettarattack);
                                                        
ReceiveAttack(attackertargetattackref tar.Damagespell);

                                                        
i++;
                                                        if (
num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(susetrue);
                                    }
                                    break;
                                
#endregion

                                #region Cannon Barrage
                                
case 11050:
                                    {
                                        if (
attacker.Owner.Player.ContainsFlag(ahmedfathy.Network.GamePackets.Update.Flags.XPList))
                                        {
                                            
attacker.Owner.Player.RemoveFlag(ahmedfathy.Network.GamePackets.Update.Flags.XPList);
                                            
attacker.Owner.Player.AddFlag2(ahmedfathy.Network.GamePackets.Update.Flags2.CannonBarrage);
                                            
attacker.Owner.Player.CannonBarrageStamp Time32.Now;
                                            return;
                                        }


                                        
PrepareSpell(spellattacker.Owner);

                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
== null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target as Entity;
                                                if (
Kernel.GetDistance(attacker.Owner.Player.Xattacker.Owner.Player.Ytarget.Xtarget.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackertargetspellfalse))
                                                    {
                                                        
tar.Damage Calculate.Ranged(attackertargetref attackclient_Spell.LevelHu2);
                                                        
suse.AddTarget(targettarattack);
                                                        
ReceiveAttack(attackertargetattackref tar.Damagespell);
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(susetrue);

                                        break;
                                    }
                                
#endregion

                                #region Blackbeard`sRage
                                
case 11060:
                                    {
                                        if (
attacker.Owner.Player.ContainsFlag(ahmedfathy.Network.GamePackets.Update.Flags.XPList))
                                        {
                                            
attacker.Owner.Player.RemoveFlag(ahmedfathy.Network.GamePackets.Update.Flags.XPList);
                                            
attacker.Owner.Player.AddFlag2(ahmedfathy.Network.GamePackets.Update.Flags2.BlackbeardsRage);
                                            
attacker.Owner.Player.BlackbeardsRageStamp Time32.Now;
                                            return;
                                        }

                                        
int num 0;
                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num 4;
                                                break;
                                            default:
                                                
num 5;
                                                break;
                                        }
                                        
int i 0;
                                        
PrepareSpell(spellattacker.Owner);

                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
ahmedfathy.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
== null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target as Entity;
                                                if (
Kernel.GetDistance(attacker.Owner.Player.Xattacker.Owner.Player.Ytarget.Xtarget.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attackertargetspellfalse))
                                                    {
                                                        
tar.Damage Calculate.Ranged(attackertargetref attackclient_Spell.LevelHu2);
                                                        
suse.AddTarget(targettarattack);
                                                        
ReceiveAttack(attackertargetattackref tar.Damagespell);
                                                        
i++;
                                                        if (
== num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(susetrue);

                                        break;
                                    }
                                
#endregion

                                #endregion
                                #region MagicDefender
                                
case 11200:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse spellUse = new SpellUse(true);
                                            
spellUse.Attacker attacker.UID;
                                            
spellUse.SpellID spell.ID;
                                            
spellUse.SpellLevel spell.Level;
                                            
spellUse.X;
                                            
spellUse.Y;
                                            if (
attacker.Owner.Team != null)
                                            {
                                                foreach (var 
mate in attacker.Owner.Team.Teammates)
                                                {
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Ymate.Player.Xmate.Player.Y) <= 4)
                                                    {
                                                        
spellUse.AddTarget(mate.Player0attack);
                                                        if (
attacker.UID == mate.Player.UID)
                                                            
mate.Player.MagicDefenderOwner true;
                                                        
mate.Player.HasMagicDefender true;
                                                        
mate.Player.MagicDefenderSecs = (byte)spell.Duration;
                                                        
attacker.RemoveFlag3(ahmedfathy.Network.GamePackets.Update.Flags3.MagicDefender);
                                                        
mate.Player.AddFlag3(ahmedfathy.Network.GamePackets.Update.Flags3.MagicDefender);
                                                        
mate.Player.Update(mate.Player.StatusFlagmate.Player.StatusFlag2mate.Player.StatusFlag3Update.MagicDefenderIcone0x80mate.Player.MagicDefenderSecs0false);
                                                        
mate.Player.MagicDefenderStamp Time32.Now;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
spellUse.AddTarget(attacker0null);
                                                
attacker.Owner.Player.HasMagicDefender true;
                                                
attacker.Owner.Player.MagicDefenderOwner true;
                                                
attacker.Owner.Player.MagicDefenderSecs = (byte)spell.Duration;
                                                
attacker.RemoveFlag3(ahmedfathy.Network.GamePackets.Update.Flags3.MagicDefender);
                                                
attacker.AddFlag3(ahmedfathy.Network.GamePackets.Update.Flags3.MagicDefender);
                                                
attacker.Owner.Player.Update(attacker.Owner.Player.StatusFlagattacker.Owner.Player.StatusFlag2attacker.Owner.Player.StatusFlag3Update.MagicDefenderIcone0x80attacker.Owner.Player.MagicDefenderSecs0false);
                                                
attacker.Owner.Player.MagicDefenderStamp Time32.Now;
                                            }
                                            
attacker.Owner.SendScreen(spellUsetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region DefensiveStance
                                
case 11160:
                                    {
                                        if (
Time32.Now >= attacker.DefensiveStanceStamp.AddSeconds(10))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
SpellUse spellUse = new SpellUse(true);
                                                
spellUse.Attacker attacker.UID;
                                                
spellUse.SpellID spell.ID;
                                                
spellUse.SpellLevel spell.Level;
                                                
spellUse.X;
                                                
spellUse.Y;
                                                
attacker.Owner.SendScreen(spellUsetrue);
                                                if (
attacker.IsDefensiveStance)
                                                {
                                                    
attacker.RemoveFlag2(ahmedfathy.Network.GamePackets.Update.Flags2.Fatigue);
                                                    
attacker.IsDefensiveStance false;
                                                }
                                                else
                                                {
                                                    
attacker.FatigueSecs spell.Duration;
                                                    
attacker.FatigueStamp Time32.Now;
                                                    
attacker.AddFlag2(ahmedfathy.Network.GamePackets.Update.Flags2.Fatigue);
                                                    
attacker.Update(attacker.Owner.Player.StatusFlagattacker.Owner.Player.StatusFlag2attacker.Owner.Player.StatusFlag3Update.DefensiveStance0x7E, (uint)spell.Duration, (uint)(spell.Level 1), false);
                                                    
attacker.IsDefensiveStance true;
                                                }
                                            }
                                        }
                                        else
                                        {
                                            
attacker.Owner.Send(new Message("You need to wait 10 seconds in order to cast the spell again!"Color.RedMessage.TopLeft));
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ShieldBlock
                                
case 10470// Shield Block
                                    
{

                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
SpellUse spellUse = new SpellUse(true);
                                                
spellUse.Attacker attacker.UID;
                                                
spellUse.SpellID spell.ID;
                                                
spellUse.SpellLevel spell.Level;
                                                
spellUse.X;
                                                
spellUse.Y;
                                                
attacker.Owner.SendScreen(spellUsetrue);
                                                if (
attacker.IsShieldBlock)
                                                {
                                                    
Network.GamePackets.Update aupgrade = new Network.GamePackets.Update(true);
                                                    
aupgrade.UID attacker.UID;
                                                    
aupgrade.Append(49
                                                   
113
                                                   
, (uint)000);
                                                    
attacker.Owner.Send(aupgrade);
                                                    
attacker.IsShieldBlock false;
                                                }
                                                else
                                                {
                                                    
attacker.ShieldBlockStamp Time32.Now;
                                                    
attacker.ShieldBlockPercent = (ushort)spell.Power;
                                                    
Network.GamePackets.Update aupgrade = new Network.GamePackets.Update(true);
                                                    
aupgrade.UID attacker.UID;
                                                    
aupgrade.Append(49
                                                   
113
                                                   
, (uint)spell.Durationspell.Powerspell.Level);
                                                    
attacker.Owner.Send(aupgrade);
                                                    
attacker.IsShieldBlock true;
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Assassin
                                #region Blistering Wave
                                
case 11650:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (!
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                                return;
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Distance);
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;

                                                    if (
sector.Inside(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.628);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.712);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.780);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 0.820);
                                                            }
                                                            
suse.Effect1 attack.Effect1;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
damage = (uint)(damage 1.0);

                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region PathOfJoseph
                                
case 11620:
                                    {
                                        var 
weps attacker.Owner.Weapons;
                                        if ((
weps.Item1 != null && weps.Item1.ID 1000 != 613) || (weps.Item2 != null && weps.Item2.ID 1000 != 613))
                                        {
                                            
attacker.Owner.Send(new Message("You need to wear only knifes!"Color.RedMessage.Talk));
                                            return;
                                        }
                                        
SpellUse spellUse = new SpellUse(true);
                                        
spellUse.Attacker attacker.UID;
                                        
spellUse.SpellID spell.ID;
                                        
spellUse.SpellLevel spell.Level;
                                        
spellUse.X;
                                        
spellUse.Y;
                                        
attacker.Owner.SendScreen(spellUsetrue);
                                        if (
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                        {
                                            
attacker.RemoveFlag3(Update.Flags3.Assassin);
                                            if (
attacker.ContainsFlag3(Update.Flags3.BladeFlurry))
                                                
attacker.RemoveFlag3(Update.Flags3.BladeFlurry);
                                            if (
attacker.ContainsFlag3(Update.Flags3.KineticSpark))
                                                
attacker.RemoveFlag3(Update.Flags3.KineticSpark);
                                        }
                                        else
                                            
attacker.AddFlag3(Update.Flags3.Assassin);
                                        break;
                                    }
                                
#endregion
                                #region Blade Furry
                                
case 11610:
                                    {
                                        if (!
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                            return;
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
suse.Y;
                                        if (
attacker.ContainsFlag(Update.Flags.XPList))
                                        {
                                            
attacker.AddFlag3(Update.Flags3.BladeFlurry);
                                            
attacker.BladeFlurryStamp Time32.Now;
                                            
attacker.RemoveFlag(Update.Flags.XPList);
                                        }
                                        else
                                        {
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null) continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
suse.Effect1 attack.Effect1;

                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        
attacker.Owner.SendScreen(susetrue);
                                        break;
                                    }
                                
#endregion
                                #region Mortal Wound
                                
case 11660:
                                    {
                                        if (
attacker.Stamina >= 10)
                                            
attacker.Stamina -= 10;
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (!
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                                return;
                                            if (
Time32.Now attacker.MortalWoundStamp.AddMilliseconds(10))
                                            {
                                                
attacker.MortalWoundStamp Time32.Now;
                                                
PrepareSpell(spellattacker.Owner);
                                                
attacker.AttackPacket null;
                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                if (
attackedsob == null)
                                                {
                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                        {
                                                            
damage = (uint)(damage 0.558);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                        {
                                                            
damage = (uint)(damage 0.633);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                        {
                                                            
damage = (uint)(damage 0.667);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                        {
                                                            
damage = (uint)(damage 0.820);
                                                        }
                                                        
suse.Effect1 attack.Effect1;
                                                        
ReceiveAttack(attackerattackedattackref damagespell);
                                                        
suse.AddTarget(attackeddamageattack);
                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                                else
                                                {
                                                    if (
CanAttack(attackerattackedsobspell))
                                                    {
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (uint)(damage 1.0);
                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                        
suse.AddTarget(attackedsobdamageattack);
                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Spirit Focus
                                
case 9000:
                                case 
11670:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
spell.ID == 11670)
                                                if (!
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                                    return;

                                            
PrepareSpell(spellattacker.Owner);

                                            
attack = new Attack(true);
                                            
attack.Attacker attacker.UID;
                                            
attack.Attacked attacker.UID;
                                            
attack.AttackType Attack.Magic;
                                            
attack.attacker.X;
                                            
attack.attacker.Y;
                                            
attack.Damage spell.ID;
                                            
attack.KOCount spell.Level;
                                            
attacker.Owner.SendScreen(attacktrue);

                                            
attacker.IntensifyPercent spell.PowerPercent;
                                            
attacker.IntensifyStamp Time32.Now;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Kinetic Spark
                                
case 11590:
                                    {
                                        if (!
attacker.ContainsFlag3(Update.Flags3.Assassin))
                                            return;

                                        
SpellUse spellUse = new SpellUse(true);
                                        
spellUse.Attacker attacker.UID;
                                        
spellUse.SpellID spell.ID;
                                        
spellUse.SpellLevel spell.Level;
                                        
spellUse.X;
                                        
spellUse.Y;
                                        
attacker.Owner.SendScreen(spellUsetrue);

                                        if (
attacker.ContainsFlag3(Update.Flags3.KineticSpark))
                                            
attacker.RemoveFlag3(Update.Flags3.KineticSpark);
                                        else
                                            
attacker.AddFlag3(Update.Flags3.KineticSpark);
                                        break;
                                    }
                                
#endregion
                                #region Dagger Storm
                                
case 11600:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (!
attacker.ContainsFlag3((ulong)Update.Flags3.Assassin)) return;
                                            var 
map attacker.Owner.Map;
                                            if (!
map.Floor[XYMapObjectType.Itemnull]) return;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.AddTarget(attacker0null);
                                            
attacker.Owner.SendScreen(susetrue);
                                            
FloorItem flooritem = new FloorItem(true);
                                            if (
attacker.Owner.Spells[spellID].LevelHu2 == 1)
                                            {

                                                
flooritem.ItemID FloorItem.FuryofEgg;
                                                
flooritem.X;
                                                
flooritem.MapID map.ID;
                                                
flooritem.Y;
                                                
flooritem.Type FloorItem.Effect;
                                                
flooritem.mColor 10;
                                                
flooritem.OwnerUID attacker.UID;
                                                
flooritem.OnFloor Time32.Now;
                                                
flooritem.Owner attacker.Owner;
                                                
flooritem.Name "FuryofEgg";
                                                
map.AddFloorItem(flooritem);
                                                
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                            }
                                            else if (
attacker.Owner.Spells[spellID].LevelHu2 == 2)
                                            {
                                                
flooritem.ItemID FloorItem.ShacklingIce;
                                                
flooritem.X;
                                                
flooritem.MapID map.ID;
                                                
flooritem.Y;
                                                
flooritem.Type FloorItem.Effect;
                                                
flooritem.mColor 10;
                                                
flooritem.OwnerUID attacker.UID;
                                                
flooritem.OnFloor Time32.Now;
                                                
flooritem.Owner attacker.Owner;
                                                
flooritem.Name "ShacklingIce";
                                                
map.AddFloorItem(flooritem);
                                                
attacker.Owner.SendScreenSpawn(flooritemtrue);

                                            }
                                            else
                                            {
                                                
flooritem.ItemID FloorItem.DaggerStorm;
                                                
flooritem.X;
                                                
flooritem.MapID map.ID;
                                                
flooritem.Y;
                                                
flooritem.Type FloorItem.Effect;
                                                
flooritem.mColor 10;
                                                
flooritem.OwnerUID attacker.UID;
                                                
flooritem.OnFloor Time32.Now;
                                                
flooritem.Owner attacker.Owner;
                                                
flooritem.Name "DaggerStorm";
                                                
map.AddFloorItem(flooritem);
                                                
attacker.Owner.SendScreenSpawn(flooritemtrue);

                                            }

                                        }
                                        break;
                                    }
                                
#endregion

                                #endregion
                                #region ChainBolt
                                
case 10309:
                                    {
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.attacker.X;
                                        
suse.attacker.Y;
                                        if (
attacked != null)
                                        {
                                            if (
attacker.ContainsFlag2(Update.Flags2.ChainBoltActive))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
suse.X;
                                                
suse.Y;
                                                
int maxR spell.Distance;
                                                if (
attacked != null)
                                                {
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= maxR)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attack);
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                }
                                                var Array = 
attacker.Owner.Screen.Objects;
                                                var 
closestTarget findClosestTarget(attackedattacked.Xattacked.Y, Array);
                                                
ushort x closestTarget.XclosestTarget.Y;
                                                
int targets Math.Max((int)spell.Level1);

                                                foreach (
Interfaces.IMapObject _obj in Array)
                                                {
                                                    if (
targets == 0) continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
Kernel.GetDistance(xyattacked.Xattacked.Y) <= maxR)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
maxR 6;

                                                                var 
damage2 Game.Attacking.Calculate.Magic(attackerattackedspellref attack);
                                                                
damage2 = (uint)(damage2 2);
                                                                
ReceiveAttack(attackerattackedattackref damage2spell);

                                                                
suse.AddTarget(attackeddamage2attack);
                                                                
attacked.X;
                                                                
attacked.Y;
                                                                
targets--;
                                                            }
                                                        }
                                                    }
                                                }
                                                if (
suse.Targets.Count == 0) return;
                                                
attacker.Owner.SendScreen(susetrue);
                                            }
                                            else
                                            {
                                                if (
CanUseSpell(spellattacker.Owner))
                                                {
                                                    
PrepareSpell(spellattacker.Owner);
                                                    
attacker.ChainboltStamp Time32.Now;
                                                    
attacker.ChainboltTime spell.Duration;
                                                    
attacker.AddFlag2(Update.Flags2.ChainBoltActive);
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ChargingVortex
                                
case 1260:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
spell.UseStamina 20;
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attackclient_Spell.LevelHu2);
                                                        
suse.Effect1 attack.Effect1;
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#region RadiantPalm
                                
case 10381:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(620))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
attacker.SpellStamp Time32.Now;
                                                
ushort XxYx;
                                                if (
attacked != null)
                                                {
                                                    
Xx attacked.X;
                                                    
Yx attacked.Y;
                                                }
                                                else
                                                {
                                                    
Xx attackedsob.X;
                                                    
Yx attackedsob.Y;
                                                }
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXxYx) <= 7)
                                                {
                                                    if (
attackedsob == null)
                                                        if (
attacked.ContainsFlag(Update.Flags.Fly))
                                                            return;
                                                    if (
attacker.ContainsFlag(Update.Flags.Fly))
                                                        return;
                                                    
PrepareSpell(spellattacker.Owner);
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    
bool send false;
                                                    if (
attackedsob == null)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.899);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.929);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.999);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.100);
                                                            }
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                            
send true;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
damage = (uint)(damage 180 100);
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.Effect1 attack.Effect1;
                                                            
suse.AddTarget(attackedsobdamageattack);
                                                            
send true;
                                                        }
                                                    }
                                                    if (
send)
                                                        
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                
case 10315:
                                    {
                                        if (
spell.ID == 10315)
                                        {
                                            if (
attacker.Owner.Weapons.Item1 == null) return;
                                            if (
attacker.Owner.Weapons.Item1.IsTwoHander()) return;
                                        }
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
UInt16 oxoy;
                                            
ox attacker.X;
                                            
oy attacker.Y;
                                            if (
spellID == 10315)
                                            {
                                                
Attack npacket = new Attack(true);
                                                
npacket.Attacker attacker.UID;
                                                
npacket.AttackType 53;
                                                
npacket.X;
                                                
npacket.Y;
                                                
Writer.WriteUInt16(spell.ID28npacket.ToArray());
                                                
Writer.WriteByte(spell.Level30npacket.ToArray());
                                                
attacker.Owner.SendScreen(npackettrue);
                                                
attacker.X;
                                                
attacker.Y;
                                                
attacker.SendSpawn(attacker.Owner);
                                                
attacker.Owner.Screen.Reload(npacket);
                                            }
                                            List<
IMapObjectobjects = new List<IMapObject>();
                                            if (
attacker.Owner.Screen.Objects.Count() > 0)
                                                
objects GetObjects(oxoyattacker.Owner);
                                            if (
objects != null)
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                                {
                                                    if (
spellID == 10315)
                                                    {
                                                        foreach (
IMapObject objs in objects.ToArray())
                                                        {
                                                            if (
objs == null) continue;
                                                            if (
objs.MapObjType == MapObjectType.Monster || objs.MapObjType == MapObjectType.Entity)
                                                            {
                                                                
attacked objs as Entity;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                        
damage = (uint)(damage 0.8);
                                                                        
suse.Effect1 attack.Effect1;
                                                                        if (
spell.Power 0)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attack);
                                                                            
suse.Effect1 attack.Effect1;
                                                                        }
                                                                        if (
spell.ID == 8030)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedref attack);
                                                                        }
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                                        
suse.AddTarget(attackeddamageattack);
                                                                    }
                                                                }
                                                            }
                                                            else if (
objs.MapObjType == MapObjectType.SobNpc)
                                                            {
                                                                
attackedsob objs as SobNpcSpawn;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedsobspell))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                        if (
spell.Power 0)
                                                                        {
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                                        }
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        if (
spell.ID == 8030)
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                        
suse.AddTarget(attackedsobdamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                        {
                                                            if (
_obj == null) continue;
                                                            if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                            {
                                                                
attacked _obj as Entity;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                        
suse.Effect1 attack.Effect1;
                                                                        if (
spell.Power 0)
                                                                        {
                                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attack);
                                                                            
suse.Effect1 attack.Effect1;
                                                                        }
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        if (
spell.ID == 8030)
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedref attack);
                                                                        if (
spell.ID == 1115)
                                                                            
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                                        
ReceiveAttack(attackerattackedattackref damagespell);
                                                                        
suse.AddTarget(attackeddamageattack);
                                                                    }
                                                                }
                                                            }
                                                            else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                            {
                                                                
attackedsob _obj as SobNpcSpawn;
                                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                                {
                                                                    if (
CanAttack(attackerattackedsobspell))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                        if (
spell.Power 0)
                                                                            
damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        if (
spell.ID == 8030)
                                                                            
damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                        
suse.AddTarget(attackedsobdamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                            
Calculations.IsBreaking(attacker.Owneroxoy);
                                        }
                                        break;
                                    }
                                
#region ChargingVortex
                                
case 11190:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
attacker.Owner.Map.Floor[XYMapObjectType.InvalidCastnull])
                                                break;
                                            
spell.UseStamina 20;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
UInt16 oxoy;
                                            
ox attacker.X;
                                            
oy attacker.Y;
                                            
attack.X;
                                            
attack.Y;
                                            
attack.Attacker attacker.UID;
                                            
attack.AttackType 53;
                                            
attack.X;
                                            
attack.Y;
                                            
attacker.Owner.SendScreen(attacktrue);
                                            
attacker.X;
                                            
attacker.Y;
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                            {

                                                var Array = 
attacker.Owner.Screen.Objects;

                                                foreach (
Interfaces.IMapObject _obj in Array)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(XYattacked.Xattacked.Y) > spell.Range)
                                                            continue;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
Calculations.IsBreaking(attacker.Owneroxoy);
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #region Heaven Blade
                                
case 10310:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            if (
attacked != null)
                                            {
                                                if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedspellfalse))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        var 
damage Game.Attacking.Calculate.Magic(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                        
damage = (uint)(damage 1.4);
                                                        if (
Kernel.Rate(spell.Percent))
                                                        {
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                        else
                                                        {
                                                            
damage 0;
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                        
attacker.Owner.SendScreen(susetrue);
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                            else
                                            {
                                                if (
attackedsob != null)
                                                {
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Distance)
                                                    {
                                                        
SpellUse suse = new SpellUse(true);
                                                        
suse.Attacker attacker.UID;
                                                        
suse.SpellID spell.ID;
                                                        
suse.SpellLevel spell.Level;
                                                        
suse.X;
                                                        
suse.Y;

                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
PrepareSpell(spellattacker.Owner);
                                                            var 
damage Game.Attacking.Calculate.Magic(attackerattackedsobspellref attack);
                                                            if (
Kernel.Rate(spell.Percent))
                                                            {
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                            else
                                                            {
                                                                
damage 0;
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                            
attacker.Owner.SendScreen(susetrue);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region New Trojan
                                #region SuperCyclone
                                
case 11970:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacked.OnKOSpell())
                                                
attacked.KOCount 0;
                                            
attacked.KOSpell spell.ID;
                                            
suse.AddTarget(attacked0attack);
                                            
attacked.SuperCycloneStamp Time32.Now;
                                            
attacked.SuperCycloneTime 40;
                                            
attacked.AddFlag3(Update.Flags3.SuperCyclone);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region FatalCross
                                
case 11980:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner) && Time32.Now attacker.SpellStamp.AddMilliseconds(1))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
ushort _X attacker.X_Y attacker.Y;
                                            
ushort _tX X_tY Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
int i algo.lcoords.Count;
                                            
suse.X;
                                            
suse.Y;
                                            foreach (
Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit false;
                                                for (
int j 0ij++)
                                                    if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= 5)
                                                        
hit true;
                                                if (
hit)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                            
damage = (damage 36) / 100;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.818);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.855);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.958);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.050);
                                                            }
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);

                                        }
                                        break;
                                    }
                                
#endregion
                                #region BreathFocus
                                
case 11960:
                                    {
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.attacker.X;
                                        
suse.attacker.Y;
                                        
suse.Targets.Add(attacker.UID1);
                                        
attacker.Owner.SendScreen(susetrue);
                                        
attacker.Stamina += (byte)spell.Power;
                                        
attacker.Owner.Send(new Message("Your Stamina has increased by " spell.PowerMessage.TopLeft));
                                        break;
                                    }
                                
#endregion
                                #region MortalStrike
                                
case 11990:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Range);
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range 1)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null)
                                                        continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                
damage = (uint)(damage 1.0);
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #region Windwalker
                                #region Chaser
                                #region ShadowofChaser(Active)
                                
case 13090:
                                    {
                                        if (
attacker.ContainsFlag4(Update.Flags4.ShadowofChaser))
                                        {
                                            
attacker.RemoveFlag4(Update.Flags4.ShadowofChaser);
                                            
attacker.AttackPacket null;
                                            break;
                                        }
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.AddTarget(attacker0null);
                                            
attack = new Attack(true);
                                            
attack.Attacker attack.Attacked attacker.UID;
                                            
attack.attacker.Xattack.attacker.Y;
                                            
attack.AttackType 24;
                                            
attack.SpellID spell.ID;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AddFlag4(Update.Flags4.ShadowofChaser);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ThunderCloud[Chaser]
                                
case 12840:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
attacker.GreenEffect 10;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            var 
cl = new WindWalker.ThunderCloud(attacker.Ownerattack.Xattack.Y);
                                            
suse.AddTarget(cl.UID0null);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ThunderBolt[Chaser]
                                
case 12970:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
//attacker.GreenEffect = 10;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.AddTarget(attacker.UID0null);
                                            
attacker.Owner.SendScreen(susetrue);
                                            foreach (var 
Cloud in attacker.Owner.Map.Clouds.Values.ToList())
                                            {
                                                
Cloud.ThunderBolt true;
                                                
attacker.ThunderBolt true;
                                                
//Cloud.DisposeCloud2(attacker.Owner);
                                                
if (Kernel.GetDistance(Cloud.XCloud.Yattacker.Owner.Player.Xattacker.Owner.Player.Y) > 16) continue;
                                                
Cloud.SendSpawn2(attacker.Ownerfalse);
                                                
//ThunderCloud cl = new ThunderCloud(attacker.Owner, Cloud.X, Cloud.Y);
                                            
}

                                        }
                                        break;
                                    }
                                
#endregion
                                #region TripleBlasts(Passive)
                                
case 12850:
                                    if (
attacker.Stamina >= 10)
                                        
attacker.Stamina -= 10;
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attackedsob == null attacked.UID attackedsob.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            if (
attackedsob == null)
                                            {
                                                if (
CanAttack(attackerattackedspellfalse))
                                                {
                                                    if (
attacker.ContainsFlag4(Update.Flags4.ShadowofChaser) && attacker.IsChaser2())
                                                    {
                                                        var 
spell2 Database.SpellTable.GetSpell(13090attacker.Owner);
                                                        if (
spell2 != null)
                                                        {
                                                            
spell2.CanKill true;
                                                            if (
Kernel.Rate(spell2.Percent))
                                                            {
                                                                
ShadowofChaser(attackerattackedattack1);
                                                                break;
                                                            }
                                                        }
                                                    }
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                    {
                                                        
damage = (uint)(damage 0.558);
                                                    }
                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                    {
                                                        
damage = (uint)(damage 0.633);
                                                    }
                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                    {
                                                        
damage = (uint)(damage 0.667);
                                                    }
                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                    {
                                                        
damage = (uint)(damage 0.820);
                                                    }
                                                    
suse.Effect1 attack.Effect1;
                                                    
ReceiveAttack(attackerattackedattackref damagespell);
                                                    
suse.AddTarget(attackeddamageattack);
                                                    
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }
                                            else
                                            {
                                                if (
CanAttack(attackerattackedsobspell))
                                                {
                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                    
uint damage Game.Attacking.Calculate.Ranged(attackerattackedsobref attack);
                                                    
suse.Effect1 attack.Effect1;
                                                    
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                    
suse.AddTarget(attackedsobdamageattack);
                                                    
attacker.Owner.SendScreen(susetrue);
                                                }
                                            }

                                        }
                                        break;
                                    }
                                
#endregion
                                #region SwirlingStorm(Passive)
                                
case 12890:
                                    if (
attacker.Stamina >= 15)
                                        
attacker.Stamina -= 15;
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Distance);
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                
byte dist = (byte)spell.Distance;
                                                
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdistInLineAlgorithm.Algorithm.DDA);
                                                
int i algo.lcoords.Count;
                                                
double disth 3.0;
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
bool hit false;
                                                    for (
int j 0ij++)
                                                        if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                            
hit true;
                                                    if (
hit)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.628);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.712);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.780);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 0.820);
                                                                }
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.Monster)
                                                {
                                                    
bool hit false;
                                                    for (
int j 0ij++)
                                                        if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                            
hit true;
                                                    if (
hit)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {

                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                                
damage = (uint)(damage 0.9);
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
bool hit false;
                                                    for (
int j 0ij++)
                                                        if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                            
hit true;
                                                    if (
hit)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
attackedsob == null) continue;
                                                        if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;

                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
damage = (uint)(damage 0.3);
                                                                
attack.Damage 0;
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        else
                                        {
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Omnipotence(XP)
                                
case 12860:
                                    {
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        if (
attacker.ContainsFlag(Update.Flags.XPList))
                                        {
                                            
attacker.AddFlag4(Update.Flags4.Omnipotence);
                                            
attacker.OmnipotenceStamp Time32.Now;
                                            
attacker.RemoveFlag(Update.Flags.XPList);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        else
                                        {
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null) continue;
                                                    if (
_obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
attacked == null) break;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack) / 10;
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
attackedsob == null) continue;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
damage = (uint)(damage 180 100);
                                                                
suse.Effect1 attack.Effect1;

                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                                
damage = (uint)(damage 0.5);
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        
attacker.Owner.SendScreen(susetrue);
                                        
attacker.AttackPacket null;
                                        break;
                                    }
                                
#endregion
                                #region FrostGaze(I-II-III)
                                
case 12830:
                                case 
13070:
                                case 
13080:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
attacked == null) break;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Range)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
int Rate 100;
                                                            
int diff attacked.BattlePower attacker.BattlePower;
                                                            if (
diff 0diff 0;
                                                            
Rate -= (byte)(diff 5);
                                                            if (
Rate 0Rate 0;
                                                            if (
Kernel.Rate(Rate))
                                                            {
                                                                if (
attacked.Stamina >= (byte)spell.Power)
                                                                    
attacked.Stamina -= (byte)spell.Power;
                                                                else 
attacked.Stamina 0;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #region Stomper
                                #region HealingSnow(Active)
                                
case 12950:
                                    {
                                        if (
attacker.ContainsFlag4(Update.Flags4.HealingSnow))
                                        {
                                            
attacker.RemoveFlag4(Update.Flags4.HealingSnow);
                                            
attacker.AttackPacket null;
                                            break;
                                        }
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
attacker.RemoveFlag4(Update.Flags4.HealingSnow);
                                            
attacker.RemoveFlag4(Update.Flags4.HealingSnow);
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
suse.AddTarget(attacker0attack);
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AddFlag4(Update.Flags4.HealingSnow);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region RevengeTail(Active)
                                
case 13030:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
suse.AddTarget(attacker0attack);
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AddFlag4(Update.Flags4.RevengeTaill);
                                            
attacker.RevengeTaillStamp Time32.Now;
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #region BurntFrost[Stomper]
                                
case 12940:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner); if (CanUseSpell(spellattacker.Owner))
                                                
attacker.GreenEffect 10;
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(180spell.Distance);
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Distance 1)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null) continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.780);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.810);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.958);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 1.050);
                                                                }
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedattackref damagespell);
                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
attackedsob == null) continue;
                                                        
//if (attackedsob == null) Console.WriteLine(Environment.StackTrace);
                                                        
if (sector.Inside(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
suse.Effect1 attack.Effect1;
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region RageofWar(Passive)
                                
case 12930:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
bool first false;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 15) continue;
                                                        if (!
first)
                                                        {
                                                            var 
map Kernel.Maps[attacker.MapID];
                                                            
Network.GamePackets.FloorItem flooritem = new Network.GamePackets.FloorItem(true);
                                                            
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                            while (
map.Npcs.ContainsKey(flooritem.UID))
                                                                
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                            
flooritem.ItemID FloorItem.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                        {
                                                            
damage = (uint)(damage 0.758);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                        {
                                                            
damage = (uint)(damage 0.858);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                        {
                                                            
damage = (uint)(damage 0.920);
                                                        }
                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                        {
                                                            
damage = (uint)(damage 1.020);
                                                        }
                                                        
attack.Damage damage;
                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.Monster)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            var 
map Kernel.Maps[attacker.MapID];
                                                            
Network.GamePackets.FloorItem flooritem = new Network.GamePackets.FloorItem(true);
                                                            
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                            while (
map.Npcs.ContainsKey(flooritem.UID))
                                                                
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;

                                                            
flooritem.ItemID FloorItem.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                        
damage = (uint)(damage 1.0);

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }


                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
attackedsob == null) continue;
                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;
                                                        if (
Kernel.GetDistance(attackedsob.Xattackedsob.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            var 
map Kernel.Maps[attacker.MapID];
                                                            
Network.GamePackets.FloorItem flooritem = new Network.GamePackets.FloorItem(true);
                                                            
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                            while (
map.Npcs.ContainsKey(flooritem.UID))
                                                                
flooritem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.ItemID FloorItem.RageOfWarTrap;
                                                            
flooritem.attackedsob.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attackedsob.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (uint)(damage 180 100);
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }


                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #endregion
                                #region EpicWarrior
                                
case 12660:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#region Superman
                                
case 1025:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacked.OnKOSpell())
                                                
attacked.KOCount 0;
                                            
attacked.KOSpell spell.ID;
                                            
suse.AddTarget(attacked0attack);
                                            
attacked.SupermanStamp Time32.Now;
                                            
attacked.SupermanTime 20;
                                            
attacked.AddFlag(Update.Flags.Superman);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ScarofEarth
                                
case 12670:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
suse.SpellEffect 1;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null) continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= 2)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Ranged))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            
damage = (uint)(damage 1.100);
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);
                                                            
attacked.Stunned true;
                                                            
attacked.StunStamp Time32.Now;
                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
Kernel.GetDistance(attacker.Xattacker.Yattackedsob.Xattackedsob.Y) <= 2)
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {

                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
damage = (damage 2);
                                                            
attack.Damage damage;
                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Pounce
                                
case 12770:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.SpellLevel spell.Level;
                                            
ushort _X attacker.X_Y attacker.Y;
                                            
ushort _tX X_tY Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
attacker.X;
                                            
attacker.Y;
                                            
int i 0;
                                            for (
0algo.lcoords.Counti++)
                                            {
                                                if (
attacker.Owner.Map.Floor[algo.lcoords[i].Xalgo.lcoords[i].YMapObjectType.Entity]
                                                    && !
attacker.ThroughGate(algo.lcoords[i].Xalgo.lcoords[i].Y))
                                                {
                                                    
= (ushort)algo.lcoords[i].X;
                                                    
= (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacker.Owner.Map.Floor[XYMapObjectType.Entitynull])
                                                return;
                                            
double disth 1.5;

                                            foreach (
Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit false;
                                                for (
int j 0ij++)
                                                    if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        
hit true;
                                                if (
hit)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            
damage = (uint)(damage 1.100);
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.X;
                                            
attacker.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region ManiacDance
                                
case 12700:
                                    {

                                        if (
attacker.ContainsFlag(Update.Flags.XPList))
                                        {
                                            
attacker.RemoveFlag(Update.Flags.XPList);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;

                                            
attacker.ManiacDanceStamp Time32.Now;
                                            
attacker.AddFlag3(Update.Flags3.WaniacDance);
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region BackFire
                                
case 12680:
                                    if (
attacker.Stamina >= 10)
                                        
attacker.Stamina -= 10;
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
attack.Attacker attack.Attacked attacker.UID;
                                            
attack.attacker.X;
                                            
attack.attacker.Y;
                                            
attack.AttackType 24;
                                            
attack.Damage 3000;
                                            
attacker.Owner.SendScreen(attacktrue);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.BackFireStamp Time32.Now;
                                            
attacker.AddFlag3(Update.Flags3.BackFire);
                                            if (
attacker.Stamina <= 70attacker.Stamina += 30;
                                            else 
attacker.Stamina 100;
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region WaveofBlood
                                
case 12690:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(1))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
Sector sector = new Sector(attacker.Xattacker.YXY);
                                                
sector.Arrange(spell.Sectorspell.Range);
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Distance 1)
                                                {
                                                    foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                    {
                                                        
byte dist = (byte)spell.Distance;
                                                        
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdistInLineAlgorithm.Algorithm.DDA);
                                                        
int i algo.lcoords.Count;
                                                        
double disth 3.0;
                                                        if (
_obj == null)
                                                            continue;
                                                        if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                        {
                                                            
bool hit false;
                                                            for (
int j 0ij++)
                                                                if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                                    
hit true;
                                                            if (
hit)
                                                            {
                                                                
attacked _obj as Entity;

                                                                if (
sector.Inside(attacked.Xattacked.Y))
                                                                {
                                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                        {
                                                                            
damage = (uint)(damage 0.818);
                                                                        }
                                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                        {
                                                                            
damage = (uint)(damage 0.855);
                                                                        }
                                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                        {
                                                                            
damage = (uint)(damage 0.958);
                                                                        }
                                                                        if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                        {
                                                                            
damage = (uint)(damage 1.050);
                                                                        }
                                                                        
suse.Effect1 attack.Effect1;
                                                                        
ReceiveAttack(attackerattackedattackref damagespell);
                                                                        
suse.AddTarget(attackeddamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                        {
                                                            
bool hit false;
                                                            for (
int j 0ij++)
                                                                if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                                    
hit true;
                                                            if (
hit)
                                                            {
                                                                
attackedsob _obj as SobNpcSpawn;

                                                                if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                                {
                                                                    if (
CanAttack(attackerattackedsobspell))
                                                                    {
                                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                        
damage = (uint)(damage 180 100);
                                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                        
suse.AddTarget(attackedsobdamageattack);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                                
byte seconds 8;
                                                if (
Time32.Now >= attacker.AngerCooldown.AddSeconds(seconds))
                                                {
                                                    
attacker.AngerCooldown Time32.Now;
                                                    
attacker.Update(90secondsfalse);
                                                }
                                                
attacker.Owner.SendScreen(susetrue);
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #region New Ninja By Phoenix
                                #region TwilightDance
                                
case 12070:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
// suse.Attacker1 = attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;

                                            
TwilightAction(attackersusespellXY);

                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AttackPacket null;

                                        }
                                        break;
                                    }
                                
#endregion
                                #region SuperTwofoldBlade
                                
case 12080:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(870))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
ushort XxYx;
                                                if (
attacked != null)
                                                {
                                                    
Xx attacked.X;
                                                    
Yx attacked.Y;
                                                }
                                                else
                                                {
                                                    
Xx attackedsob.X;
                                                    
Yx attackedsob.Y;
                                                }
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXxYx) <= 5)
                                                {
                                                    if (
attackedsob == null)
                                                        if (
attacked.ContainsFlag(Update.Flags.Fly))
                                                            return;
                                                    if (
attacker.ContainsFlag(Update.Flags.Fly))
                                                        return;
                                                    
PrepareSpell(spellattacker.Owner);

                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;
                                                    
bool send false;

                                                    if (
attackedsob == null)
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.899);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.929);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.999);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.100);
                                                            }

                                                            
suse.Effect1 attack.Effect1;
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                            
send true;

                                                            if (
attacker.Owner.Spells.ContainsKey(0) && !attacked.Dead)
                                                            {
                                                                var 
attacker.Owner.Spells[0];
                                                                var 
spellz Database.SpellTable.SpellInformations[s.ID][s.Level];
                                                                if (
spellz != null)
                                                                {
                                                                    if (
Kernel.Rate(spellz.Percent))
                                                                    {
                                                                        
SpellUse ssuse = new SpellUse(true);
                                                                        
ssuse.Attacker attacker.UID;
                                                                        
ssuse.SpellID spellz.ID;

                                                                        
ssuse.SpellLevel spellz.Level;
                                                                        
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                                        
ssuse.AddTarget(attacked, new SpellUse.DamageClass().Damage damageattack);
                                                                        
ReceiveAttack(attackerattackedattackref damagespell);
                                                                        
attacker.Owner.SendScreen(ssusetrue);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
damage = (uint)(damage 180 100);
                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                            
suse.Effect1 attack.Effect1;

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                            
send true;
                                                        }
                                                    }
                                                    if (
send)
                                                        
attacker.Owner.SendScreen(susetrue);
                                                    
attacker.SpellStamp Time32.Now;
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                            }
                                        }
                                        break;
                                    }


                                
#endregion
                                #region ShadowClone
                                
case 12090:
                                    {
                                        if (
attacker.Owner.Map.ID == 6565 || attacker.Owner.Map.ID == 5555 || attacker.Owner.Map.ID == 2014)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use ThisSpell Here !!!"System.Drawing.Color.RedMessage.Talk), Program.Values);
                                            return;
                                        }
                                        if (
attacker.Owner.Map.ID == 6565 || attacker.Owner.Map.ID == 5555 || attacker.Owner.Map.ID == 2014)
                                        {
                                            
Kernel.SendWorldMessage(new Message("Mr: " attacker.Name " You Can`t Use ThisSpell Here !!!"System.Drawing.Color.RedMessage.Talk), Program.Values);
                                            return;
                                        }
                                        
attacker.AttackPacket null;
                                        if (
attacker.MyClones.Count 0)
                                        {
                                            var 
clones attacker.MyClones.Values.ToArray();
                                            for (
int i 0clones.Lengthi++)
                                            {
                                                var 
item clones[i];
                                                if (
item == null)
                                                    continue;
                                                
Data data = new Data(true);
                                                
data.UID item.UID;
                                                
data.ID Network.GamePackets.Data.RemoveEntity;
                                                
attacker.Owner.SendScreen(data);
                                                
//  attacker.MyClones[item.UID] = null;
                                            
}
                                            
attacker.MyClones.Clear();
                                        }
                                        else
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);
                                                
SpellUse spellUse = new SpellUse(true);
                                                
spellUse.Attacker attacker.UID;
                                                
spellUse.SpellID spell.ID;
                                                
spellUse.SpellLevel spell.Level;
                                                
spellUse.X;
                                                
spellUse.Y;
                                                
attacker.AddClone(3);
                                                if (
spell.Level >= 0)
                                                    
attacker.AddClone(0);
                                                foreach (var 
item in attacker.MyClones.Values)
                                                    
spellUse.AddTarget(item0attack);

                                                
attacker.Owner.SendScreen(spellUsetrue);
                                            }

                                        }
                                        break;
                                    }
                                
#endregion
                                #region FatalSpin
                                
case 12110:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.DistanceInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                        
damage = (uint)(damage 1.100);
                                                        
suse.Effect1 attack.Effect1;

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;

                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;

                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (uint)(damage 1.100);
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion
                                #region LeeLong

                                #region DragonFlow
                                
case 12270:
                                    {

                                        
SpellUse spellUse = new SpellUse(true);
                                        
spellUse.Attacker attacker.UID;
                                        
spellUse.Attacker1 attacker.UID;
                                        
spellUse.SpellID spell.ID;
                                        
spellUse.SpellLevel spell.Level;
                                        
spellUse.X;
                                        
spellUse.Y;
                                        
spellUse.AddTarget(attacker1attack);
                                        
attacker.Owner.SendScreen(spellUsetrue);
                                        if (
attacker.ContainsFlag3((uint)Update.Flags3.DragonFlow))
                                            
attacker.RemoveFlag3((uint)Update.Flags3.DragonFlow);
                                        else
                                            
attacker.AddFlag3((uint)Update.Flags3.DragonFlow);
                                        
attacker.DragonFlowStamp attacker.DragonFlowStamp2 Time32.Now;
                                        break;
                                    }
                                
#endregion
                                #region DragonRoar
                                
case 12280:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
PrepareSpell(spellattacker.Owner);
                                            if (
attacker.Owner.Team != null)
                                            {
                                                foreach (
Client.GameState teammate in attacker.Owner.Team.Teammates)
                                                {
                                                    if (
teammate.Player.UID != attacker.UID)
                                                    {
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yteammate.Player.Xteammate.Player.Y) <= spell.Range)
                                                        {
                                                            
teammate.Player.Stamina += (byte)spell.Power;
                                                            
suse.AddTarget(teammate.Playerspell.Powernull);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region DragonCyclone
                                
case 12290:
                                    {
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker attacker.UID;
                                        
suse.SpellID spell.ID;
                                        
suse.SpellLevel spell.Level;
                                        
suse.X;
                                        
suse.Y;
                                        if (
attacker.ContainsFlag(Update.Flags.XPList))
                                        {
                                            
attacker.RemoveFlag(Update.Flags.XPList);
                                            
attacker.AddFlag3(Update.Flags3.DragonCyclone);
                                            
attacker.DragonCycloneStamp Time32.Now;
                                            
attacker.Owner.SendScreen(susetrue);

                                        }
                                        else
                                        {
                                            
ushort _X attacker.X_Y attacker.Y;
                                            
ushort _tX X_tY Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
attacker.X;
                                            
attacker.Y;
                                            
int i 0;
                                            for (
0algo.lcoords.Counti++)
                                            {
                                                if (
attacker.Owner.Map.Floor[algo.lcoords[i].Xalgo.lcoords[i].YMapObjectType.Entity]
                                                    && !
attacker.ThroughGate(algo.lcoords[i].Xalgo.lcoords[i].Y))
                                                {
                                                    
= (ushort)algo.lcoords[i].X;
                                                    
= (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacker.Owner.Map.Floor[XYMapObjectType.Entitynull])
                                                return;
                                            
double disth 1.5;
                                            
//   if (attacker.MapID == DeathMatch.MAPID) disth = 1;
                                            
foreach (Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit false;
                                                for (
int j 0ij++)
                                                    if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        
hit true;
                                                if (
hit)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.758);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.858);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.985);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.120);
                                                            }
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.PX attacker.X;
                                            
attacker.PY attacker.Y;
                                            
attacker.X;
                                            
attacker.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.Owner.Screen.Reload(suse);

                                        }
                                        break;
                                    }
                                
#endregion
                                #region DragonSlash
                                
case 12350:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.Attacker1 attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.758);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.858);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.920);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.020);
                                                            }
                                                            
suse.Effect1 attack.Effect1;

                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
ila.InLine(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                                
damage = (uint)(damage 1.0);
                                                                
suse.Effect1 attack.Effect1;

                                                                
attack.Damage damage;

                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (!
CanAttack(attackerattackedsobspell))
                                                                continue;

                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region AirKick
                                
case 12320:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.SpellLevel spell.Level;
                                            
ushort _X attacker.X_Y attacker.Y;
                                            
ushort _tX X_tY Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
attacker.X;
                                            
attacker.Y;
                                            
int i 0;
                                            for (
0algo.lcoords.Counti++)
                                            {
                                                if (
attacker.Owner.Map.Floor[algo.lcoords[i].Xalgo.lcoords[i].YMapObjectType.Entity]
                                                    && !
attacker.ThroughGate(algo.lcoords[i].Xalgo.lcoords[i].Y))
                                                {
                                                    
= (ushort)algo.lcoords[i].X;
                                                    
= (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacker.Owner.Map.Floor[XYMapObjectType.Entitynull])
                                                return;
                                            
double disth 0.5;

                                            foreach (
Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit false;
                                                for (
int j 0ij++)
                                                    if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        
hit true;
                                                if (
hit)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.758);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.858);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.985);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.120);
                                                            }
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.PX attacker.X;
                                            
attacker.PY attacker.Y;
                                            
attacker.X;
                                            
attacker.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region AirSweep and AirRaid
                                
case 12330:
                                case 
12210:
                                case 
12340:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);

                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
suse.SpellLevel spell.Level;
                                            
suse.X;
                                            
suse.Y;
                                            
Sector sector = new Sector(attacker.Xattacker.YXY);
                                            
sector.Arrange(spell.Sectorspell.Range);
                                            if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Range)
                                            {
                                                foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (
_obj == null)
                                                        continue;
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;

                                                        if (
sector.Inside(attacked.Xattacked.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                {
                                                                    
damage = (uint)(damage 0.758);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                {
                                                                    
damage = (uint)(damage 0.858);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                {
                                                                    
damage = (uint)(damage 0.985);
                                                                }
                                                                if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                {
                                                                    
damage = (uint)(damage 1.120);
                                                                }
                                                                
suse.Effect1 attack.Effect1;

                                                                
ReceiveAttack(attackerattackedattackref damagespell);

                                                                
suse.AddTarget(attackeddamageattack);
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
sector.Inside(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
attack.Effect1 Attack.AttackEffects1.None;
                                                                
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                
attacker.AttackPacket null;
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Speed Kick
                                
case 12120:
                                case 
12130:
                                case 
12140:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID spell.ID;
                                            
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                            
suse.SpellLevel spell.Level;
                                            
ushort _X attacker.X_Y attacker.Y;
                                            
ushort _tX X_tY Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.XXattacker.YYdist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
attacker.X;
                                            
attacker.Y;
                                            
int i 0;
                                            for (
0algo.lcoords.Counti++)
                                            {
                                                if (
attacker.Owner.Map.Floor[algo.lcoords[i].Xalgo.lcoords[i].YMapObjectType.Entity]
                                                    && !
attacker.ThroughGate(algo.lcoords[i].Xalgo.lcoords[i].Y))
                                                {
                                                    
= (ushort)algo.lcoords[i].X;
                                                    
= (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            
suse.X;
                                            
suse.Y;
                                            if (!
attacker.Owner.Map.Floor[XYMapObjectType.Entitynull])
                                                return;
                                            
double disth 1.5;
                                            foreach (
Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit false;
                                                for (
int j 0ij++)
                                                    if (
Kernel.GetDDistance(_obj.X_obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        
hit true;
                                                if (
hit)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 0.358);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 0.458);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 0.585);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 0.620);
                                                            }
                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
CanAttack(attackerattackedsobspell))
                                                        {
                                                            var 
damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.PX attacker.X;
                                            
attacker.PY attacker.Y;
                                            
attacker.X;
                                            
attacker.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Cracking swipe
                                
case 12170:
                                case 
12160:
                                    {
                                        if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(5))
                                        {
                                            if (
CanUseSpell(spellattacker.Owner))
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
Fan sector = new Fan(attacker.Xattacker.YXYspell.Rangespell.Sector);
                                                if (
Kernel.GetDistance(attacker.Xattacker.YXY) <= 15)
                                                {
                                                    foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                    {
                                                        if (
_obj == null)
                                                            continue;
                                                        if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                        {
                                                            
attacked _obj as Entity;

                                                            if (
sector.IsInFan(attacked.Xattacked.Y))
                                                            {
                                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                {
                                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                                    
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                                    {
                                                                        
damage = (uint)(damage 0.780);
                                                                    }
                                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                                    {
                                                                        
damage = (uint)(damage 0.810);
                                                                    }
                                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                                    {
                                                                        
damage = (uint)(damage 0.958);
                                                                    }
                                                                    if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                                    {
                                                                        
damage = (uint)(damage 1.050);
                                                                    }


                                                                    
suse.Effect1 attack.Effect1;
                                                                    
suse.Effect1 attack.Effect1;
                                                                    
ReceiveAttack(attackerattackedattackref damagespell);
                                                                    
suse.AddTarget(attackeddamageattack);
                                                                }
                                                            }
                                                        }
                                                        else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                        {
                                                            
attackedsob _obj as SobNpcSpawn;

                                                            if (
sector.IsInFan(attackedsob.Xattackedsob.Y))
                                                            {
                                                                if (
CanAttack(attackerattackedsobspell))
                                                                {
                                                                    
attack.Effect1 Attack.AttackEffects1.None;
                                                                    
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                    
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                                    
suse.AddTarget(attackedsobdamageattack);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    
attacker.AttackPacket null;
                                                }
                                                
attacker.Owner.SendScreen(susetrue);
                                                
attacker.SpellStamp Time32.Now;
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #region Dragon Punch
                                
case 12240:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new ahmedfathy.Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                        {
                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.King)
                                                            {
                                                                
damage = (uint)(damage 1.100);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Prince)
                                                            {
                                                                
damage = (uint)(damage 1.200);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Duke)
                                                            {
                                                                
damage = (uint)(damage 1.300);
                                                            }
                                                            if (
attacker.NobilityRank == ahmedfathy.Game.ConquerStructures.NobilityRank.Earl)
                                                            {
                                                                
damage = (uint)(damage 1.200);
                                                            }
                                                            
suse.Effect1 attack.Effect1;

                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedattackref damagespell);

                                                            
suse.AddTarget(attackeddamageattack);
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;

                                                        if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                        {
                                                            if (!
CanAttack(attackerattackedsobspell))
                                                                continue;

                                                            
attack.Effect1 Attack.AttackEffects1.None;
                                                            
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                            
attack.Damage damage;

                                                            
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                            
suse.AddTarget(attackedsobdamageattack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }

                                
#endregion
                                #region DragonFury
                                
case 12220:
                                    {
                                        if (
attacked != null)
                                        {
                                            if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= spell.Distance)
                                            {
                                                if (
CanUseSpell(spellattacker.Owner))
                                                {
                                                    
SpellUse suse = new SpellUse(true);
                                                    
suse.Attacker attacker.UID;
                                                    
suse.SpellID spell.ID;
                                                    
suse.SpellLevel spell.Level;
                                                    
suse.X;
                                                    
suse.Y;

                                                    if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                    {
                                                        
PrepareSpell(spellattacker.Owner);
                                                        
attack.Effect1 Attack.AttackEffects1.None;

                                                        var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
                                                        
damage = (uint)(damage 1.100);
                                                        
suse.Effect1 attack.Effect1;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                        
attacker.Owner.Player.IsEagleEyeShooted true;

                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                            
attacked.Owner.SendScreen(susetrue);
                                                        else
                                                            
attacked.MonsterInfo.SendScreen(suse);
                                                        if (
attacked.EntityFlag == EntityFlag.Entity)
                                                        {
                                                            
int potDifference attacker.BattlePower attacked.BattlePower;

                                                            
int rate spell.Percent potDifference 20;
                                                            if (
Kernel.Rate(rate))
                                                            {

                                                                
attacked.AddFlag3(Update.Flags3.DragonFury);
                                                                
attacked.DragonFuryStamp Time32.Now;
                                                                
attacked.DragonFuryTime spell.Duration;

                                                                
Network.GamePackets.Update upgrade = new Network.GamePackets.Update(true);
                                                                
upgrade.UID attacked.UID;
                                                                
upgrade.Append(74
                                                                    
, (uint)spell.Status
                                                                    
, (uint)spell.Durationspell.Powerspell.Level);
                                                                
attacker.Owner.Send(upgrade.ToArray());

                                                                if (
attacked.EntityFlag == EntityFlag.Entity)
                                                                    
attacked.Owner.Send(upgrade);
                                                                else
                                                                    
attacked.MonsterInfo.SendScreen(upgrade);
                                                            }
                                                        }

                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #region DragonSwing
                                
case 12200:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
SpellUse spellUse = new SpellUse(true);
                                            
spellUse.Attacker attacker.UID;
                                            
spellUse.SpellID spell.ID;
                                            
spellUse.SpellLevel spell.Level;
                                            
spellUse.X;
                                            
spellUse.Y;
                                            
attacker.Owner.SendScreen(spellUsetrue);
                                            if (
attacker.OnDragonSwing)
                                            {
                                                
attacker.OnDragonSwing false;
                                                
attacker.RemoveFlag3(Update.Flags3.DragonSwing);
                                                
Update upgrade = new Update(true);
                                                
upgrade.UID attacker.UID;
                                                
upgrade.Append(Update.DragonSwing, (uint)spell.Status000);
                                                
attacker.Owner.Send(upgrade.ToArray());
                                            }
                                            else
                                            {
                                                
attacker.OnDragonSwing true;
                                                
attacker.DragonSwingPower spell.Level;
                                                
attacker.AddFlag3(Update.Flags3.DragonSwing);
                                                
Update upgrade = new Update(true);
                                                
upgrade.UID attacker.UID;
                                                
upgrade.Append(Update.DragonSwing, (uint)spell.Duration, (uint)spell.Statusspell.Powerspell.Level);
                                                
attacker.Owner.Send(upgrade.ToArray());
                                                
attacker.DragonSwingStamp Time32.Now;
                                            }
                                        }
                                        break;
                                    }
                                
#endregion
                                #endregion

                                
default:
                                    { 

áæ ÇäÊÇ ÓæÑÓß Player åíÌíáß ÇíÑæÑ Ýí

ahmedfathy

åÊÛÜíÑ ßÜá ÇÓÜã ÇÓãÜÜæ AhmedFathy

ÈÜí ÇÓÜã ÈÜÜÑææÌíÜßÜß

æáÜÜæ ÓÜææÑÓÜß

Entity

åíÜÌÜíÜáß ÇíÜÑæÑ Ý Player

æíÜ Ahmed Fathy

åÊÈÜÏá Player ÈíEntity

æåÊÛÜÜíÑ ÇÓÜã Ahmed Fathy

Èí ÇÓÜã ÇáÈÜÑææÌíÜßÊ ÈÊÜÜÇÚÜÜß ..

æÇáÜí ãÔÜÚÜÜÇÑÝ íÚÜãÜá ÇáÇÊÜßÜÇÇÊ åÓÜíÈ ÇáÝíÓÜ Ý ÇáßæãäÊÜÇÇÊ

#ÈÜÜÇÇí ♥

ãÍãÏ íÇÓÑ 2019-08-18 07:45 PM

ÑÏ: ãáÝ ÇÊÇßÇÊ 2åÊ ááÓáÝÑÇÊ ÇáÓåáÇ
 
ÌãÜÜíÜÜá!!

LyokaWarior 2019-08-18 08:03 PM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÇáÝÜÜíÓÜÜ ÈÜÚÜÏ ÊäÓÜÜíÞ ÇáãÜÜæÖæÚ !

ÇßÜß ÕÜÜÇÇÍÜÈ ÇáãÜæÖæÚ !!

ÚÝæÇð áÇíãßä ÚÑÖ ÇáÑæÇÈØ ÅáÇ ÈÚÏ ÇáÑÏ Úáì ÇáãæÖæÚ

#ÓÜÜáÇãÜææÒ

Hassan Emprator 2019-08-18 08:05 PM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
Íáæ ÚÇÔ

ElSaher 2019-08-18 08:14 PM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÇÞÊÈÇÓ:

ÇáãÔÇÑßÉ ÇáÃÕáíÉ ßÊÈÊ ÈæÇÓØÉ Hassan Emprator (ÇáãÔÇÑßÉ 12064)
Íáæ ÚÇÔ

ÍÈíÈí íÇ ÍÓä

ElSaher 2019-08-18 08:15 PM

ÑÏ: ãáÝ ÇÊÇßÇÊ 2åÊ ááÓáÝÑÇÊ ÇáÓåáÇ
 
ÇÞÊÈÇÓ:

ÇáãÔÇÑßÉ ÇáÃÕáíÉ ßÊÈÊ ÈæÇÓØÉ Hazem (ÇáãÔÇÑßÉ 12061)
ÌÜãÜÜíÜÜá !!

ÊÓÜÜáã íÍÜÜÇÇÒÒã

ElSaher 2019-08-18 09:29 PM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÇÞÊÈÇÓ:

ÇáãÔÇÑßÉ ÇáÃÕáíÉ ßÊÈÊ ÈæÇÓØÉ MuuHaaMmeedd (ÇáãÔÇÑßÉ 12062)
ÇáÝÜÜíÓÜÜ ÈÜÚÜÏ ÊäÓÜÜíÞ ÇáãÜÜæÖæÚ !

ÇßÜß ÕÜÜÇÇÍÜÈ ÇáãÜæÖæÚ !!

ÚÝæÇð áÇíãßä ÚÑÖ ÇáÑæÇÈØ ÅáÇ ÈÚÏ ÇáÑÏ Úáì ÇáãæÖæÚ

#ÓÜÜáÇãÜææÒ

ÊÓáã íÇ ÕÍÈíMuuHaaMmeedd

MRonlineGvrix 2019-08-19 01:14 AM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
Ìãíá ÌÏÇ ÇÓÊãÑ íÈÇÔÇ

LyokaWarior 2019-08-19 01:41 AM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÇÞÊÈÇÓ:

ÇáãÔÇÑßÉ ÇáÃÕáíÉ ßÊÈÊ ÈæÇÓØÉ mohamed1366 (ÇáãÔÇÑßÉ 12076)
ÊÓáã íÇ ÕÍÈímuuhaammeedd

ÇáÜÚÜÝÜÜææÇ íÛÜÜÇáí Ú ÇíÜÜ ÇíÜÜ ÍÜÜÇÌÉ ÊÞÈÜáß ÓíÈåÜÇ Ý ÞÓÜÜã ÇáãÔÜÜÃÃßÜÜá

#ÈÜÜÇáÊÜææÝíÜÜÞ

ElSaher 2019-08-22 08:52 PM

ÑÏ: ãÜáÜÝ ÇÊÜÜÇÇßÜÃÇÊ 2 åÜÜÊ ááÜÓÜÑÝÜÑÊ ÇáÓåÜáÉÉ ..
 
ÇÞÊÈÇÓ:

ÇáãÔÇÑßÉ ÇáÃÕáíÉ ßÊÈÊ ÈæÇÓØÉ LyokaWarior (ÇáãÔÇÑßÉ 12100)
ÇáÜÚÜÝÜÜææÇ íÛÜÜÇáí Ú ÇíÜÜ ÇíÜÜ ÍÜÜÇÌÉ ÊÞÈÜáß ÓíÈåÜÇ Ý ÞÓÜÜã ÇáãÔÜÜÃÃßÜÜá

#ÈÜÜÇáÊÜææÝíÜÜÞ

Çæß íÇ ÕÍÈí


ÇáÓÇÚÉ ÇáÂä 11:10 AM

ãÑÍÈÇ Èßã Ýí ãäÊÏí ÇßæÇÏ áÊØæíÑ ÇáÇáÚÇÈ