Beispiel #1
0
        public void SaveCharacterEndFightProgress(Map.Map map, Character character, List <uint> loots, double experienceEarned, int kamasEarned)
        {
            var client    = map.GetClientFromCharacter(character);
            var inventory = character.Inventory;

            character.Experience += experienceEarned;
            character.Kamas      += kamasEarned;

            foreach (var loot in loots)
            {
                var item = InventoryRepository.Instance.GenerateItemFromId((int)loot);

                if (item == null)
                {
                    continue;
                }

                inventory.ObjectItems.Add(InventoryRepository.Instance.GenerateItemFromId((int)loot));

                if (client == null)
                {
                    continue;
                }

                client.SendPacket(new ObjectAddedMessage(item, 0));
                client.SendPacket(new InventoryWeightMessage(0, 0, 1000));
            }

            CharacterRepository.Instance.Update(character);
            InventoryRepository.Instance.Update(inventory);

            if (LevelManager.Instance.CheckLevelUpFromExperience <Character>(character)) //gerer l'exp TODO
            {
                //levelup
                character.OnLevelUp();

                if (client != null)
                {
                    client.SendPacket(new CharacterLevelUpMessage((uint)character.Level));
                }
            }

            //exit de la map le joueur pour le faire actualiser la carte TODO
            if (client != null)
            {
                client.ActiveCharacter = character;
            }
        }