public Player(string sprite, GameClient client, UserHero userHero) : base(sprite) { Client = client; Backpack = new ItemStorage(); Bank = new ItemStorage(); QuestInfo = new List<UserQuestInfo>(); using (var context = new GameDatabaseContext()) { // Add the skills this player knows foreach (var skillEntry in userHero.Skills) { var skillTemplate = context.SkillTemplates.First(x => x.Id == skillEntry.SkillId); var skill = new Skill(skillTemplate); Skills.Add(skill); } // Add the inventory stuff... foreach (var inventoryItem in userHero.Inventory) { var itemTemplate = context.ItemTemplates.First(x => x.Id == inventoryItem.ItemId); var item = ItemFactory.CreateItem(itemTemplate); Backpack.TryAddItemAt(item, inventoryItem.ItemAmount, inventoryItem.SlotId); } // Add the state of the quest world to the user foreach (var questEntry in userHero.QuestInfo) { QuestInfo.Add(questEntry); } foreach (var eq in userHero.Equipment) { var itemTemplate = context.ItemTemplates.First(x => x.Id == eq.ItemId); var equipment = ItemFactory.CreateItem(itemTemplate) as Equipment; Equipment[(int)equipment.Slot] = equipment; } UserId = userHero.UserHeroId; Experience = userHero.Experience; Level = userHero.Level; } // Store the user hero internally _hero = userHero; }
public Player(string sprite, GameClient client, UserHero userHero) : base(sprite) { Client = client; Backpack = new ItemStorage(); Bank = new ItemStorage(); // Allow extraction of the quest information QuestLog = new QuestLog(userHero.QuestInfo); using (var context = new GameDatabaseContext()) { // Add the skills this player knows foreach (var skillEntry in userHero.Skills) { var skillTemplate = context.SkillTemplates.First(x => x.Id == skillEntry.SkillId); var skill = new Skill(skillTemplate); Skills.Add(skill); } // Add the inventory stuff... foreach (var inventoryItem in userHero.Inventory) { var itemTemplate = context.ItemTemplates.First(x => x.Id == inventoryItem.ItemId); var item = ItemFactory.CreateItem(itemTemplate); Backpack.TryAddItemAt(item, inventoryItem.ItemAmount, inventoryItem.SlotId); } foreach (var eq in userHero.Equipment) { var itemTemplate = context.ItemTemplates.First(x => x.Id == eq.ItemId); var equipment = ItemFactory.CreateItem(itemTemplate) as Equipment; Equipment[(int)equipment.Slot] = equipment; } UserId = userHero.UserHeroId; Experience = userHero.Experience; Level = userHero.Level; Backpack.StorageChanged += BackpackOnStorageChanged; QuestLog.QuestAccepted += QuestLogOnQuestAccepted; } // Store the user hero internally _hero = userHero; }