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; }