public IPlayer Create(string user, CharClass cc, int xp, int coins) { ICharClass icc = charClassConverter.Convert(cc, xp); Dictionary <EquipSlot, IEquipment> dic = new Dictionary <EquipSlot, IEquipment>(); IList <IItem> items = new List <IItem>(); LegacyItemEquipmentConverter ef = new LegacyItemEquipmentConverter(); cc.myItems.ForEach(item => { IEquipment e = ef.Convert(item); if (e != null) { if (item.isActive) { dic.Add(e.EquipSlot, e); } else { items.Add(e); } } }); IPlayer player = new Player(user, icc, coins, cc.lastDailyGroupFinder, items, dic); foreach (var o in observers) { player.AddObserver(o); } return(player); }
public IPlayer Create(string id, string user) { IPlayer player = new Player(id, user, classChoiceLevel); foreach (var o in observers) { player.AddObserver(o); } return(player); }
private static IPlayer Convert(int classChoiceLevel, int levelCap, IEquipmentRepository equipmentRepository, IPlayerFactory playerFactory, PlayerDTO dto) { PlayerDTO.CharClassDTO cc = dto.CharClass; ICharClass cci; if (cc.Type.ID == 0) { cci = new DeprivedCharClass(classChoiceLevel); } else { cci = new CharClassImpl(cc.Type, cc.CoinBonus, cc.ItemFind, cc.Pets, cc.Prestige, cc.PreventDeathBonus, cc.SuccessChance, cc.XpBonus, levelCap, cc.Xp); } IList <IItem> items = new List <IItem>(); foreach (var item in dto.Items) { items.Add(equipmentRepository.getById(item)); } var equipment = new Dictionary <EquipSlot, IEquipment>(); foreach (var kvp in dto.Equipment) { equipment.Add(kvp.Key, equipmentRepository.getById(kvp.Value)); } IPlayer player = new Player(dto.ID, dto.Name, cci, dto.Coins, dto.LastDailyGroupFinder, items, equipment); foreach (var o in playerFactory.GetCurrentDefaultObservers()) { player.AddObserver(o); } return(player); }