public IOClient(Connection s) { this.connection = s; this.connectedAt = Server.CurrentTimeMillis(); this.mm_stream = new PacketWriter(255); this.castHandler = new CastHandler(this, handler); this.combatHandler = new CombatHandler2(this, handler); // IOHostList.add(connectedFrom); }
public static List <BaseObject> GetTileTarget(Player play, Point2D adjecentTile, int swingdir = 0) { List <BaseObject> ret = new List <BaseObject>(); var Targets = World.NewMonsters.Where(xe => xe.Value.m_Map != null && xe.Value.m_Map == play.Map && xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y && xe.Value.Alive).Select(xe => xe); // .Select(xe => xe); foreach (var tttt in Targets) { ret.Add(tttt.Value); } var Targets2 = PlayerHandler.getSingleton().add.Where(xe => xe.Value != null && xe.Value.Map != null && xe.Value != play && xe.Value.Map == play.Map && xe.Value.loggedIn && xe.Value.Loc.X == adjecentTile.X && xe.Value.Loc.Y == adjecentTile.Y) .Select(xe => xe); foreach (var tttt in Targets2) { ret.Add(tttt.Value); } var TargetOre = World.NewMonsters.Where(xe => xe.Value.m_Map != null && xe.Value.m_Map == play.Map && xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y && (xe.Value is script.monster.BaseNode) && xe.Value.Alive).Select(xe => xe); foreach (var ore in TargetOre) { (ore.Value as script.monster.BaseNode).Hit(play); return(null); } if (play.m_Buffs.Where(xe => xe.BuffEffect.BuffType == script.spells.BuffCase.Triple) .FirstOrDefault() != null) { ret.Clear(); Targets = World.NewMonsters.Where(xe => xe.Value.m_Map != null && xe.Value.m_Map == play.Map && ( (xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir - 1).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir - 1).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 1).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 1).Y) ) && xe.Value.Alive) .Select(xe => xe); Targets2 = PlayerHandler.getSingleton().add.Where(xe => xe.Key != null && xe.Value != null && xe.Value.loggedIn && xe.Value.Map == play.Map && ( (xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir - 1).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir - 1).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 1).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 1).Y) ) ).Select(xe => xe); foreach (var tttt in Targets) { ret.Add(tttt.Value); } foreach (var tttt in Targets2) { ret.Add(tttt.Value); } } if (play.m_Buffs.Where(xe => xe.BuffEffect.BuffType == script.spells.BuffCase.Twister) .FirstOrDefault() != null) { ret.Clear(); Targets = World.NewMonsters.Where(xe => xe.Value.m_Map != null && xe.Value.m_Map == play.Map && ( (xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir - 2).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir - 2).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 2).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 2).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 4).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 4).Y) ) && xe.Value.Alive) .Select(xe => xe); Targets2 = PlayerHandler.getSingleton().add.Where(xe => xe.Key != null && xe.Value != null && xe.Value.loggedIn && xe.Value.Map == play.Map && ( (xe.Value.m_Loc.X == adjecentTile.X && xe.Value.m_Loc.Y == adjecentTile.Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir - 2).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir - 2).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 2).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 2).Y) || (xe.Value.m_Loc.X == CombatHandler2.AdjecentTile(play, swingdir + 4).X&& xe.Value.m_Loc.Y == CombatHandler2.AdjecentTile(play, swingdir + 4).Y) ) ).Select(xe => xe); foreach (var tttt in Targets) { ret.Add(tttt.Value); } foreach (var tttt in Targets2) { ret.Add(tttt.Value); } } return(ret.Count > 0 ? ret : null); }