Beispiel #1
0
        public void AddPlayer(string connectionid, string name)
        {
            int          id        = NewId();
            RemotePlayer newplayer = new RemotePlayer(connectionid, id, "Overworld", name);

            connectedPlayers.TryAdd(connectionid, newplayer);
            mapstates["Overworld"].playerlist.Add(newplayer.GetPlayerShape());
            newplayer.Teleport(GameData.data.maps["Overworld"].spawnpoint.getCenter());
            PlayerJoinedArea(connectionid, newplayer);
            _broadcaster.SendPlayerId(connectionid, id, name);
            _broadcaster.TeleportPlayer(connectionid, newplayer.GetPosition());
            overworldcollisions.Insert(new CollisionCircle(newplayer.getCollCircle()));
        }
Beispiel #2
0
        private void ChangePlayerArea(RemotePlayer p, string connectionId, string targetArea)
        {
            if (targetArea == "Town")
            {
                p.GetPlayerShape().insafezone      = true;
                p.GetPlayerShape().lastbattletimer = 0;
            }
            else if (targetArea == "Overworld")
            {
                p.GetPlayerShape().insafezone      = false;
                p.GetPlayerShape().lastbattletimer = 0;
            }
            Vec2 fromareapos = gameData.maps[targetArea].triggerareas[p.areaname].getCenter();

            p.Teleport(fromareapos);
            PlayerLeftArea(connectionId, p);
            //delete player from areas playerlist
            mapstates[p.areaname].playerlist.Remove(p.GetPlayerShape());
            //add the player to the new area
            mapstates[targetArea].playerlist.Add(p.GetPlayerShape());
            p.areaname = targetArea;
            PlayerJoinedArea(connectionId, p);
            _broadcaster.MovePlayerInNewZone(connectionId, fromareapos);
        }