Beispiel #1
0
        private ServerPlayerModel parseServerPlayerModelFromData(Dictionary <string, UserDataRecord> data, PlayerCombatBehaviourBase playerCombatBehaviourInstance)
        {
            ServerPlayerModel serverPlayerModel = new ServerPlayerModel(playerCombatBehaviourInstance);

            serverPlayerModel.EquippedWeapon = data.ContainsKey(WEAPON_ID_AND_LEVEL_KEY) ?
                                               ItemIDLevelPair.Parse(data[WEAPON_ID_AND_LEVEL_KEY].Value) : new ItemIDLevelPair(PlayerModel.EMPTY_EQUIPMENT_ID, 0);

            serverPlayerModel.EquippedOffHand = data.ContainsKey(OFFHAND_ID_AND_LEVEL_KEY) ?
                                                ItemIDLevelPair.Parse(data[OFFHAND_ID_AND_LEVEL_KEY].Value) : new ItemIDLevelPair(PlayerModel.EMPTY_EQUIPMENT_ID, 0);

            serverPlayerModel.EquippedArmor = data.ContainsKey(ARMOR_ID_AND_LEVEL_KEY) ?
                                              ItemIDLevelPair.Parse(data[ARMOR_ID_AND_LEVEL_KEY].Value) : new ItemIDLevelPair(PlayerModel.EMPTY_EQUIPMENT_ID, 0);

            serverPlayerModel.Level_ZeroBased = data.ContainsKey(ZERO_BASED_LEVEL_KEY) ? int.Parse(data[ZERO_BASED_LEVEL_KEY].Value) : 0;

            // User must have at least one ability.
            if (!data.ContainsKey(ABILITY_ID_AND_LEVELS_KEY) || string.IsNullOrEmpty(data[ABILITY_ID_AND_LEVELS_KEY].Value))
            {
                throw new Exception("Player doesn't have any equipped abilities.");
            }
            string[]          abilityStrings      = data[ABILITY_ID_AND_LEVELS_KEY].Value.Trim().Split(':');
            ItemIDLevelPair[] abilityIDLevelPairs = new ItemIDLevelPair[abilityStrings.Length];
            for (int i = 0; i < abilityStrings.Length; i++)
            {
                abilityIDLevelPairs[i] = ItemIDLevelPair.Parse(abilityStrings[i]);
            }
            serverPlayerModel.EquippedAbilities = abilityIDLevelPairs;

            return(serverPlayerModel);
        }
        private void parseItemModel <T>(ref T itemModelRef, ref ItemIDLevelPair itemIDLevelPair) where T : ItemModel
        {
            if (itemIDLevelPair.ItemModelID == PlayerModel.EMPTY_EQUIPMENT_ID)
            {
                return;
            }

            itemModelRef = (catalogModel.GetItemByID(itemIDLevelPair.ItemModelID).Clone() as T);
            itemModelRef.Level_ZeroBased = itemIDLevelPair.ItemLevel_ZeroBased;
        }