public ServerPlayerModel(PlayerCombatBehaviourBase playerCombatBehaviour, string playerID, string name, EquipmentItemModel equippedWeaponItemModel, EquipmentItemModel equippedOffHandItemModel, EquipmentItemModel equippedArmorItemModel, IClientConnection clientConnection) : base(playerID, name, equippedWeaponItemModel, equippedOffHandItemModel, equippedArmorItemModel) { this.ClientConnection = clientConnection; PlayerCombatBehaviour = playerCombatBehaviour; }
public void AddPlayerForConnection(PlayerAuthenticationModel playerAuthModel, IClientConnection clientConnection) { clientPeerConnectionToPlayerID.Add(clientConnection, playerAuthModel.UserID); playerIDToConnection.Add(playerAuthModel.UserID, clientConnection); clientConnection.Disconnected += onClientDisconnected; PlayerCombatBehaviourBase playerCombatBehaviour = DIContainer.CreateInstanceByContextID <PlayerCombatBehaviourBase>(InstanceServerApplication.CONTEXT_ID); playerService.GetPlayerModelByID(playerAuthModel, playerCombatBehaviour, onPlayerModelReceived, onGetPlayerModelFailed); }
public void GetPlayerModelByID(PlayerAuthenticationModel playerAuthModel, PlayerCombatBehaviourBase playerCombatBehaviourInstance, Action <ServerPlayerModel> onSuccessHandler, Action <PlayerAuthenticationModel> onFailureHandler) { getPlayerModelByID(playerAuthModel, playerCombatBehaviourInstance, serverPlayerModel => { try { parseEquipmentAndCombatantModel(serverPlayerModel); } catch (Exception) { Log.Warning("PlayerServerBase unable to parse ServerPlayerModel for player with ID: " + playerAuthModel.UserID); onFailureHandler(playerAuthModel); } serverPlayerModel.PlayerID = playerAuthModel.UserID; serverPlayerModel.Name = playerAuthModel.UserName; onSuccessHandler(serverPlayerModel); }, () => { onFailureHandler(playerAuthModel); }); }
protected override void getPlayerModelByID(PlayerAuthenticationModel playerAuthModel, PlayerCombatBehaviourBase playerCombatBehaviourBase, Action <ServerPlayerModel> onSuccessHandler, Action onFailureHandler) { if (playerAuthModel.UserID == "testFail") { onFailureHandler(); return; } ServerPlayerModel playerModel = new ServerPlayerModel(playerCombatBehaviourBase); playerModel.PlayerID = playerAuthModel.UserID; playerModel.Name = playerAuthModel.UserName; AbilityItemModel[] mockAbilities = new AbilityItemModel[] { MockCatalogService.FIREBALL_ABILITY }; playerModel.CombatantModel = new CombatantModel(1, 100, 1, 100, 1, 1, 1, 10, 0f, 10, 0f, PlayerModel.DEFAULT_TEAM_ID, mockAbilities); Task.Delay(100).ContinueWith(t => { onSuccessHandler(playerModel); }); }
public ServerPlayerModel(PlayerCombatBehaviourBase playerCombatBehaviour) { PlayerCombatBehaviour = playerCombatBehaviour; }
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); }
protected override void getPlayerModelByID(PlayerAuthenticationModel playerAuthModel, PlayerCombatBehaviourBase playerCombatBehaviourInstance, Action <ServerPlayerModel> onSuccessHandler, Action onFailureHandler) { GetUserDataRequest request = new GetUserDataRequest(); request.PlayFabId = playerAuthModel.UserID; request.Keys = USER_DATA_KEYS; PlayFabServerAPI.GetUserDataAsync(request).ContinueWith(t => { if (t.Result.Error != null) { onFailureHandler(); } else { try { ServerPlayerModel serverPlayerModel = parseServerPlayerModelFromData(t.Result.Result.Data, playerCombatBehaviourInstance); onSuccessHandler(serverPlayerModel); } catch (Exception e) { Log.Warning("PlayFabPlayerService unable to parse player with ID: " + playerAuthModel.UserID + " " + e.Message); onFailureHandler(); } } }); }
protected abstract void getPlayerModelByID(PlayerAuthenticationModel playerAuthModel, PlayerCombatBehaviourBase playerCombatBehaviourInstance, Action <ServerPlayerModel> onSuccessHandler, Action onFailureHandler);