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); });
 }
Beispiel #4
0
        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;
 }
Beispiel #6
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);
        }
Beispiel #7
0
        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);