Beispiel #1
0
        public void ApplyWelcomeMessage(WelcomeMessageData data)
        {
            MainPlayer.ActiveCharacter.Weight    = data.Weight;
            MainPlayer.ActiveCharacter.MaxWeight = data.MaxWeight;

            MainPlayer.ActiveCharacter.Inventory.Clear();
            MainPlayer.ActiveCharacter.Inventory.AddRange(data.Inventory);
            MainPlayer.ActiveCharacter.Spells.Clear();
            MainPlayer.ActiveCharacter.Spells.AddRange(data.Spells);

            ActiveMapRenderer.ClearOtherPlayers();
            ActiveMapRenderer.ClearOtherNPCs();
            ActiveMapRenderer.ClearMapItems();

            foreach (var character in data.CharacterData)
            {
                if (character.Name.ToLower() == MainPlayer.ActiveCharacter.Name.ToLower())
                {
                    MainPlayer.ActiveCharacter.ApplyData(character, false);                     //do NOT copy paperdoll data over the existing!
                }
                else
                {
                    ActiveMapRenderer.AddOtherPlayer(character);
                }
            }

            foreach (var npc in data.NPCData)
            {
                ActiveMapRenderer.AddOtherNPC(npc);
            }
            foreach (var item in data.MapItemData)
            {
                ActiveMapRenderer.AddMapItem(item);
            }
        }
Beispiel #2
0
 public void Remap()
 {
     MapCache.Remove(MainPlayer.ActiveCharacter.CurrentMap);
     if (!_tryLoadMap())
     {
         throw new FileLoadException("Unable to load remapped map file!");
     }
     ActiveMapRenderer.SetActiveMap(MapCache[MainPlayer.ActiveCharacter.CurrentMap]);
 }
Beispiel #3
0
        public void Remap()
        {
            MapCache.Remove(MainPlayer.ActiveCharacter.CurrentMap);
            if (!_tryLoadMap(-1, true))
            {
                EOGame.Instance.DoShowLostConnectionDialogAndReturnToMainMenu();
                return;
            }

            EOGame.Instance.Hud.AddChat(ChatTab.Local, GetString(EOResourceID.STRING_SERVER), GetString(EOResourceID.SERVER_MESSAGE_MAP_MUTATION), ChatIcon.Exclamation, ChatColor.Server);
            EOGame.Instance.Hud.AddChat(ChatTab.System, GetString(EOResourceID.STRING_SERVER), GetString(EOResourceID.SERVER_MESSAGE_MAP_MUTATION), ChatIcon.Exclamation, ChatColor.Server);

            ActiveMapRenderer.SetActiveMap(MapCache[MainPlayer.ActiveCharacter.CurrentMap]);
        }
Beispiel #4
0
        public void WarpAgreeAction(short mapID, WarpAnimation anim, List <CharacterData> chars, List <NPCData> npcs, List <MapItem> items)
        {
            if (mapID >= 0)
            {
                if (!_tryLoadMap(mapID))
                {
                    EOGame.Instance.LostConnectionDialog();
                    EODialog.Show("Something went wrong when loading the map. Try logging in again.", "Map Load Error");
                }

                MainPlayer.ActiveCharacter.CurrentMap = mapID;
                if (!_tryLoadMap(mapID))
                {
                    EOGame.Instance.LostConnectionDialog();
                    return;
                }
                ActiveMapRenderer.SetActiveMap(MapCache[mapID]);
            }

            ActiveMapRenderer.ClearOtherPlayers();
            ActiveMapRenderer.ClearOtherNPCs();
            ActiveMapRenderer.ClearMapItems();

            foreach (var data in chars)
            {
                if (data.ID == MainPlayer.ActiveCharacter.ID)
                {
                    MainPlayer.ActiveCharacter.ApplyData(data);
                }
                else
                {
                    ActiveMapRenderer.AddOtherPlayer(data);
                }
            }

            foreach (var data in npcs)
            {
                ActiveMapRenderer.AddOtherNPC(data);
            }

            foreach (MapItem mi in items)
            {
                ActiveMapRenderer.AddMapItem(mi);
            }
        }
Beispiel #5
0
        public void WarpAgreeAction(short mapID, WarpAnimation anim, List <CharacterData> chars, List <NPCData> npcs, List <MapItem> items)
        {
            if (mapID >= 0)
            {
                if (!_tryLoadMap(mapID))
                {
                    throw new IOException("Something was wrong with the map file...");
                }

                MainPlayer.ActiveCharacter.CurrentMap = mapID;
                ActiveMapRenderer.SetActiveMap(ActiveMap);
            }

            ActiveMapRenderer.ClearOtherPlayers();
            ActiveMapRenderer.ClearOtherNPCs();
            ActiveMapRenderer.ClearMapItems();

            foreach (var data in chars)
            {
                if (data.ID == MainPlayer.ActiveCharacter.ID)
                {
                    MainPlayer.ActiveCharacter.ApplyData(data);
                }
                else
                {
                    ActiveMapRenderer.AddOtherPlayer(data);
                }
            }

            foreach (var data in npcs)
            {
                ActiveMapRenderer.AddOtherNPC(data);
            }

            foreach (MapItem mi in items)
            {
                ActiveMapRenderer.AddMapItem(mi);
            }
        }