Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public IPlayer Create(string id, string user)
        {
            IPlayer player = new Player(id, user, classChoiceLevel);

            foreach (var o in observers)
            {
                player.AddObserver(o);
            }
            return(player);
        }
Exemplo n.º 3
0
        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);
        }