예제 #1
0
    private void onChallengePlayerJoin(SocketIOEvent e)
    {
        Debug.Log("onChallengePlayerJoin");
        ChallengePlayer newPlayer = JsonUtility.FromJson <ChallengePlayer> (e.data.GetField("player").ToString());

        chalPlayers.Add(newPlayer.id, newPlayer);
        // refresh display;
    }
예제 #2
0
    private void onChallengeReady(SocketIOEvent e)
    {
        Debug.Log("onChallengeReady");
        string playerID = "";
        bool   is_ready = false;
        int    track_id = 0;

        e.data.GetField(ref playerID, "player_id");
        e.data.GetField(ref is_ready, "is_ready");
        e.data.GetField(ref track_id, "track_id");

        ChallengePlayer currPlayer = chalPlayers [playerID];

        currPlayer.is_ready = is_ready;
        currPlayer.track_id = track_id;
    }
예제 #3
0
        void HandleChallengePlayerMessage(ChallengePlayer message)
        {
            ServerPlayer challenger = GetPlayerBySecret(message.Secret);
            ServerPlayer challenged = GetPlayerById(message.ChallengedId);

            if (challenger == challenged)
            {
                return;
            }

            foreach (Challenge chal in _challenges)
            {
                if (chal.Challenger == challenger || chal.Challenged == challenged || chal.Challenger == challenged || chal.Challenged == challenger)
                {
                    return;
                }
            }

            var challenge = new Challenge(challenger, challenged);

            _challenges.Add(challenge);

            BaseServer.SendTo(challenged.NetPlayer, new Messages.Challenge(challenger.Id, challenged.Id));
        }
예제 #4
0
        public ActionResult CreateChallenge_Update([DataSourceRequest]DataSourceRequest request, LadderPlayersViewModel model, int ladderId)
        {
            // create challenge with another player
            if (model != null && ModelState.IsValid)
            {
                string userID = User.Identity.GetUserId();
                int id = System.Convert.ToInt32(userID);
                Users.User user = Users.User.Load(id);
                // create user as a challenge player
                ChallengePlayer userPlayer = new ChallengePlayer()
                {
                    PlayerId = user.Id
                };

                userPlayer.Save();
                // create opponent as a challenge player
                ChallengePlayer opponentPlayer = new ChallengePlayer()
                {
                    PlayerId = LadderPlayer.LoadById(model.LadderPlayerId).PlayerId
                };

                opponentPlayer.Save();
                // create challenge
                // update challenge fields and players within challenge
                Challenge challenge = new Challenge()
                {
                    MatchTypeId = Ladder.LoadById(ladderId).MatchTypeId,
                    MatchFormat = MatchFormat.LoadById(model.MatchFormatId),
                    Facility = Facility.LoadById(model.FacilityId),
                    Court = Court.LoadById(model.CourtId),
                    Status = ChallengeStatusCollection.LoadAll().Where(p => p.Status == "pending").First(),
                    LadderId = ladderId,
                    Players = { userPlayer, opponentPlayer }
                };
                challenge.Save();

                // assign players ChallengeId to the new challenge's Id
                userPlayer.ChallengeId = challenge.Id;
                opponentPlayer.ChallengeId = challenge.Id;

                opponentPlayer.Save();
                userPlayer.Save();

                // create challenge schedule and update SuggestDateTime
                ChallengeSchedule schedule = new ChallengeSchedule()
                {
                    ChallengeId = challenge.Id,
                    PlayerId = user.Id,
                    SuggestedDateTime = model.SuggestDateTime
                };
                schedule.Save();

            }
            RedirectToAction("Challenges", "Player");
            return Json(new[] { model }.ToDataSourceResult(request, ModelState));
        }