Example #1
0
 public override void Event(Player obj)
 {
     if (server != null)
         server.ChangePlayerMap(obj, targetMapID, targetPos);
     else if(_map.ObjectManager.Server!=null)
         _map.ObjectManager.Server.ChangePlayerMap(obj, targetMapID, targetPos);
 }
Example #2
0
        public override void Event(Player obj)
        {
            //Trigger should only be set one frame when someone steps on it.
            if (!obj.OnGround)
                return;
            _touched = true;
            if (_touchAgain)
            {
                if (_global)
                    GlobalTriggers.SetTriggerValue(_triggerName, 1);
                else
                    _map.SetTrigger(_triggerName, true);

                _touchAgain = false;
                UpdateState();
            }
            else
            {
                if (_global)
                    GlobalTriggers.SetTriggerValue(_triggerName, 0);
                else
                    _map.SetTrigger(_triggerName, false);

                _touchAgain = false;
            }
        }
Example #3
0
File: Lava.cs Project: MyEyes/Igorr
 public override void Event(Player obj)
 {
     if (obj!=null && !obj.Invincible)
     {
         obj.GetDamage(20);
     }
 }
Example #4
0
 public override void Interact(Player player, string sinfo, int info)
 {
     if (!interacts)
         return;
     LuaVM.SetValue("me", this);
     LuaVM.SetValue("player", player);
     LuaVM.DoString(_script_file + ".interact(\"" + sinfo + "\"," + info.ToString() + ")\n");
 }
Example #5
0
 public override Attack GetAttack(Player owner,Vector2 dir, int DmgBonus, int info)
 {
     Attack att = null;
     att = new Attack(owner.map, 17, new Rectangle((int)owner.MidPosition.X, (int)owner.Position.Y + owner.Rect.Height - 16, 10, 16), new Vector2(200, 0), 500, owner.ID, owner.GroupID, 5004, owner.map.ObjectManager.getID());
     att.HitOnce = true;
     att.Knockback = new Vector2(200, -50);
     return att;
 }
Example #6
0
 public override void Event(Player obj)
 {
     if (obj!=null && !obj.Invincible)
     {
         obj.GetDamage(-_healAmount);
         _map.ObjectManager.Remove(this);
         _parent.RemoveChild();
     }
 }
Example #7
0
 public override void Move(Player player, float dir, float yDir)
 {
     if (player.OnWall)
     {
         Vector2 speed = player.Speed;
         speed.Y += yDir*speedBonus;
         player.Speed = speed;
     }
 }
Example #8
0
File: Legs.cs Project: MyEyes/Igorr
 public override void Jump(Player player, float strength)
 {
     if (player.OnGround)
     {
         Vector2 currentSpeed = player.Speed;
         currentSpeed.Y -= 100;
         player.Speed = currentSpeed;
     }
 }
Example #9
0
 public override void Event(Player obj)
 {
     if (obj.GroupID == 2)
         return;
     obj.SetTeam(3);
     if (server != null)
         server.ChangePlayerMap(obj, targetMapID, targetPos);
     else if(_map.ObjectManager.Server!=null)
         _map.ObjectManager.Server.ChangePlayerMap(obj, targetMapID, targetPos);
 }
Example #10
0
 public override Attack GetAttack(Player owner,Vector2 dir, int DmgBonus, int info)
 {
     Attack att = null;
     Rectangle startRect = owner.Rect;
     startRect.Height -= 4;
     startRect.Y += 3;
     startRect.X += (int)(dir.X*8);
     att = new Attack(owner.map, 15, startRect, new Vector2(owner.LastSpeed.X, 0) + 200 * dir, 100, owner.ID, owner.GroupID, 1, owner.map.ObjectManager.getID());
     att.HitOnce = true;
     owner.Attack(0.3f);
     return att;
 }
Example #11
0
 public override void Event(Player obj)
 {
     if (_global && GlobalTriggers.GetTriggerValue(_triggerName) >= 1)
     {
         obj.Knockback(new Vector2(120, -160));
         DoEffect(5, new Point((int)MidPosition.X, (int)MidPosition.Y), new Vector2(120, -160), "");
     }
     else if (_map.GetTrigger(_triggerName))
     {
         obj.Knockback(new Vector2(1, -160));
         DoEffect(5, new Point((int)MidPosition.X, (int)MidPosition.Y), new Vector2(120, -160), "");
     }
 }
Example #12
0
        public override void Event(Player obj)
        {
            if (_touchAgain)
            {
                if (_global)
                    GlobalTriggers.SetTriggerValue(_triggerName, 1);
                else
                    _map.SetTrigger(_triggerName, true);

                _touched = true;
                _touchAgain = false;
            }
        }
Example #13
0
 public override void Event(Player obj)
 {
     if (obj != null)
     {
         if (!active)
         {
             IGORR.Protocol.Messages.PlayMessage pm = (IGORR.Protocol.Messages.PlayMessage)map.ObjectManager.Server.ProtocolHelper.NewMessage(IGORR.Protocol.MessageTypes.Play);
             pm.SongName = "";
             pm.Encode();
             server.SendAllMap(_map, pm, true);
         }
         active = true;
         countdown = 2;
     }
 }
Example #14
0
 public override Attack GetAttack(Player owner,Vector2 dir,int DmgBonus, int info)
 {
     Attack att = null;
     Rectangle startRect;
     startRect = owner.Rect;
     startRect.Height = 6;
     startRect.Width = 6;
     startRect.X += 5;
     startRect.Y += 3;
     //startRect.X += (int)(dir.X);
     att = new SlimeShot(owner.map, 0, startRect, dir, 1500, owner.ID, owner.GroupID, owner.map.ObjectManager.getID());
     att.HitOnce = true;
     att.Penetrates = false;
     owner.Attack(1f);
     return att;
 }
Example #15
0
 public override void Update(Player player, float ms)
 {
     if (player.OnGround)
     {
         currentHoverTime = 0;
     }
     else
     {
         Vector2 playerMovement = player.Speed;
         if (playerMovement.Y > 0 && currentHoverTime < maxHoverTime)
         {
             currentHoverTime += ms;
             playerMovement.Y = 0;
             player.Speed = playerMovement;
         }
     }
 }
Example #16
0
 public override void Event(Player plr)
 {
     if (plr.HasPart(_bodyPart))
         return;
     if (!plr.GivePart(_bodyPart))
         return;
     _parent.RemoveChild();
     if (_respawn)
         _map.TimeSpawn(_bodyPart.GetID(), _position, _bodyPart.GetSpawnTime());
     PickupMessage pum = (PickupMessage)map.ObjectManager.Server.ProtocolHelper.NewMessage(MessageTypes.Pickup);
     pum.id = _bodyPart.GetID();
     pum.PlayerID = plr.ID;
     pum.Encode();
     _map.ObjectManager.Server.SendAllMapReliable(map, pum, true);
     Console.WriteLine("Player " + plr.ID.ToString() + " picked up " + _bodyPart.GetName());
     _map.ObjectManager.Remove(this);
 }
Example #17
0
        public int CheckPlayer(Player player)
        {
            int damage = 0;

            for (int x = 0; x < _attacks.Count; x++)
            {
                if (player.Collides(_attacks[x]) && player.ID != _attacks[x].parentID &&(_attacks[x].groupID==0 || _attacks[x].groupID!= player.GroupID) && !player.Invincible)
                {
                    _attacks[x].Hit();
                    damage += _attacks[x].Damage;
                    player.GetDamage(_attacks[x].Damage, _attacks[x].parentID);
                    if (_attacks[x].Knockback != Vector2.Zero)
                        player.Knockback(_attacks[x].Knockback);
                    if (_attacks[x].HitOnce)
                    {
                        Remove(x);
                        x--;
                    }
                }
            }
            return damage;
        }
Example #18
0
 public override void Event(Player obj)
 {
     if (_touchAgain)
     {
         if (setsTrigger)
         {
             if (_global)
                 GlobalTriggers.SetTriggerValue(_triggerName, 1);
             else
                 _map.SetTrigger(_triggerName, true);
         }
         _touched = true;
         _touchAgain = false;
     }
     if (setsInfo && obj != lastToucher)
     {
         _map.SetInfo(obj.Name, _playerInfoName, _playerInfoValue);
         Protocol.Messages.DeSpawnMessage dsm = (Protocol.Messages.DeSpawnMessage)_map.ObjectManager.Server.ProtocolHelper.NewMessage(Protocol.MessageTypes.DeSpawn);
         dsm.id = _id;
         dsm.Encode();
         _map.ObjectManager.Server.SendClient(obj, dsm);
         lastToucher = obj;
     }
 }
Example #19
0
 public void Add(Vector2 position, int id, string Name)
 {
     Player player = new Player(_map, new Rectangle((int)position.X, (int)position.Y, 16, 15), id);
     player.Name = Name;
     Add(player);
 }
Example #20
0
        public void KillPlayer(Player player)
        {
            if (player == null)
                return;
            if (!(player is NPC))
            {
                Point spawnPoint = _map.getRandomSpawn();
                Player newPlayer = new Player(_map, new Rectangle(spawnPoint.X, spawnPoint.Y, 16, 15), getID());
                newPlayer.Name = player.Name;
                newPlayer.SetTeam(player.GroupID);
                //Send client their new playerID
                AssignPlayerMessage apm = (AssignPlayerMessage)Server.ProtocolHelper.NewMessage(MessageTypes.AssignPlayer);
                apm.objectID = newPlayer.ID;
                apm.Encode();
                _server.SendClient(player, apm);
                //Add the new player to the game objects
                Add(newPlayer);
                newPlayer.Body = player.Body;
                newPlayer.Inventory = player.Inventory;
                for (int x = 0; x < player.Inventory.Count; x++)
                {
                    Body.BodyPart part = player.Inventory[x] as Body.BodyPart;
                    if(part==null)
                        continue;
                    PickupMessage pum = (PickupMessage)Server.ProtocolHelper.NewMessage(MessageTypes.Pickup);
                    pum.id = part.GetID();
                    pum.autoEquip = false;
                    pum.Encode();
                    _map.ObjectManager.Server.SendClient(player, pum);
                }
                //newPlayer.GetExp(player.TotalXP, Vector2.Zero);
                newPlayer.GetExp(0, Vector2.Zero);
                //Change the local clients stored playerid
                Client client = _server.getClient(player);
                if (client == null)
                    return;
                client.PlayerID = newPlayer.ID;

                newPlayer.Body.SetOwner(newPlayer);
                newPlayer.Body.SendBody(null);

                KillMessage km = (KillMessage)Server.ProtocolHelper.NewMessage(MessageTypes.Kill);
                km.killerID = player.Attacker;
                km.deadID = player.ID;
                km.Encode();
                player.Die();
                _server.SendAllMapReliable(_map, km, true);
                RemoveQuiet(player);
            }
            else
            {
                Remove(player);
                Player killer = GetPlayer(player.Attacker);
                if (killer != null)
                {
                    killer.GetExp((player as NPC).XPBonus, player.MidPosition);
                    Console.WriteLine("Giving " + (player as NPC).XPBonus.ToString() + " XP to " + killer.Name);
                }
            }
        }
Example #21
0
 public override void Event(Player obj)
 {
     blocked = true;
 }
Example #22
0
 public override void Jump(Player player, float strength)
 {
 }
Example #23
0
        void HandleJoin(IgorrMessage message)
        {
            JoinMessage jm = (JoinMessage)(message);

            if (Management.LoginData.CheckLogin(jm.Name, jm.Password))
            {
                Map targetMap = MapManager.GetMapByID(0);
                int id = targetMap.ObjectManager.getID();

                Player player = new Player(null, new Rectangle(0, 0, 16, 15), id);
                player.Name = jm.Name;

                Management.PlayerInfo pinfo = Management.ClientInfoInterface.GetInfo(player);
                targetMap = MapManager.GetMapByID(pinfo.Map);
                if(targetMap==null)
                    targetMap = MapManager.GetMapByID(0);

                Client client = new Client(message.SenderConnection, jm.Name, _protocolHelper);
                client.PlayerID = id;
                _clientids.Add(client.Connection.RemoteUniqueIdentifier, client.ID);
                _clients.Add(client.ID, client);
                _connections.Add(client.Connection);
                client.SetMap(targetMap, new Vector2(pinfo.PosX, pinfo.PosY));

                Point spawnPoint;
                if (pinfo.PosX == 0 && pinfo.PosY == 0)
                    spawnPoint = targetMap.getRandomSpawn();
                else spawnPoint = new Point(pinfo.PosX, pinfo.PosY);
                player = new Player(targetMap, new Rectangle((int)spawnPoint.X, (int)spawnPoint.Y, 16, 15), id);
                player.Name = jm.Name;
                targetMap.ObjectManager.Add(player);

                AssignPlayerMessage apm = (AssignPlayerMessage)ProtocolHelper.NewMessage(MessageTypes.AssignPlayer);
                apm.objectID = id;
                apm.Encode();
                SendClient(client, apm);

                if (pinfo.Parts != null)
                    for (int x = 0; x < pinfo.Parts.Count; x++)
                    {
                        GameObject obj = Modules.ModuleManager.SpawnByIdServer(null, pinfo.Parts[x], -1, Point.Zero, null);
                        Logic.Body.IPartContainer cont = obj as Logic.Body.IPartContainer;
                        if (cont == null)
                            continue;
                        player.GivePart(cont.Part);
                        PickupMessage pum = (PickupMessage)ProtocolHelper.NewMessage(MessageTypes.Pickup);
                        pum.PlayerID = player.ID;
                        pum.id = cont.Part.GetID();
                        pum.Encode();
                        SendAllMapReliable(client.CurrentMap, pum, true);
                    }

                for (int x = 0; x < targetMap.ObjectManager.Objects.Count; x++)
                {
                    Player play = targetMap.ObjectManager.Objects[x] as Player;
                    if (play != null && play!=player)
                    {
                        play.Body.SendBody(player);
                    }
                }

                Console.WriteLine(client.Name + " joined");
            }
            else
                Console.WriteLine("Invalid Login: Name: " + jm.Name + " Password: " + jm.Password);
        }
Example #24
0
 public void SendClient(Player player, IgorrMessage message)
 {
     if (!message.Encoded)
     {
         Console.WriteLine("WARNING: Message not encoded: " + message.MessageType.ToString());
         message.Encode();
     }
     foreach (Client client in _clients.Values)
         if (client.PlayerID == player.ID)
             connection.SendMessage(message.GetMessage(), client.Connection, NetDeliveryMethod.ReliableOrdered,currentChannel);
 }
Example #25
0
 public void SendAllExcept(IMap map, Player player, IgorrMessage message, bool Reliable)
 {
     Client client = getClient(player);
     if (_connections.Count > 1)
     {
         List<NetConnection> recipients = new List<NetConnection>();
         recipients.AddRange(_connections);
         if (client != null)
             recipients.Remove(client.Connection);
         for (int x = 0; x < recipients.Count; x++)
         {
             if (_clients[_clientids[recipients[x].RemoteUniqueIdentifier]].CurrentMap != map)
             {
                 recipients.RemoveAt(x);
                 x--;
             }
         }
         if (!message.Encoded)
         {
             Console.WriteLine("WARNING: Message not encoded: " + message.MessageType.ToString());
             message.Encode();
         }
         if (recipients.Count > 0 && Reliable)
             connection.SendMessage(message.GetMessage(), recipients, NetDeliveryMethod.ReliableOrdered, currentChannel);
         else if (recipients.Count > 0 && !Reliable && !_enableSend)
             connection.SendMessage(message.GetMessage(), recipients, NetDeliveryMethod.Unreliable, currentChannel);
     }
 }
Example #26
0
 public Client getClient(Player player)
 {
     if (player == null)
         return null;
     foreach (Client client in _clients.Values)
         if (client.PlayerID == player.ID)
             return client;
     return null;
 }
Example #27
0
 public void ChangePlayerMap(Player player, int mapID, Vector2 position)
 {
     Client client = getClient(player);
     Map map = MapManager.GetMapByID(mapID);
     if (map != null && client != null)
         client.SetMap(map, position);
 }
Example #28
0
 public virtual void Event(Player obj)
 {
 }
Example #29
0
 public override void Event(Player obj)
 {
     obj.ShadowsOn = true;
 }
Example #30
0
File: Map.cs Project: MyEyes/Igorr
        /*
        public EventObject GetEvent(GameObject obj)
        {

            if (obj is NPC)
                return null;
            int posX=(int)(obj.MidPosition.X/tileSize);
            int posY=(int)(obj.MidPosition.Y/tileSize);

            for (int x = -1; x <= 1; x++)
                for (int y = -1; y <= 1; y++)
                    if (isValid(posX + x, posY + y))
                        if (_layers[3][posX + x, posY + y].EventObject!=null && _layers[3][posX + x, posY + y].EventObject.Collides(obj))
                            return _layers[3][posX + x, posY + y].EventObject;
            return null;
        }
         */
        public void DoPlayerEvents(Player player)
        {
            /*
            if (player is NPC)
                return ;
             */
            int posX = (int)(player.MidPosition.X / tileSize);
            int posY = (int)(player.MidPosition.Y / tileSize);

            for (int x = -1; x <= 1; x++)
                for (int y = -1; y <= 1; y++)
                    if (isValid(posX + x, posY + y))
                        if (_layers[3][posX + x, posY + y].EventObject != null && _layers[3][posX + x, posY + y].EventObject.Collides(player))
                            _layers[3][posX + x, posY + y].EventObject.Event(player);
        }