示例#1
0
        internal static TurnBasedMatch ToTurnBasedMatch(AndroidJavaObject turnBasedMatch)
        {
            if (turnBasedMatch == null)
            {
                return(null);
            }

            string matchId = turnBasedMatch.Call <string>("getMatchId");

            byte[]             data       = turnBasedMatch.Call <byte[]>("getData");
            bool               canRematch = turnBasedMatch.Call <bool>("canRematch");
            uint               availableAutomatchSlots = (uint)turnBasedMatch.Call <int>("getAvailableAutoMatchSlots");
            string             selfParticipantId       = turnBasedMatch.Call <string>("getCreatorId");
            List <Participant> participants            = ToParticipantList(turnBasedMatch);
            string             pendingParticipantId    = turnBasedMatch.Call <string>("getPendingParticipantId");

            TurnBasedMatch.MatchStatus     turnStatus  = ToMatchStatus(turnBasedMatch.Call <int>("getStatus"));
            TurnBasedMatch.MatchTurnStatus matchStatus =
                AndroidJavaConverter.ToMatchTurnStatus(turnBasedMatch.Call <int>("getTurnStatus"));
            uint     variant        = (uint)turnBasedMatch.Call <int>("getVariant");
            uint     version        = (uint)turnBasedMatch.Call <int>("getVersion");
            DateTime creationTime   = AndroidJavaConverter.ToDateTime(turnBasedMatch.Call <long>("getCreationTimestamp"));
            DateTime lastUpdateTime =
                AndroidJavaConverter.ToDateTime(turnBasedMatch.Call <long>("getLastUpdatedTimestamp"));

            return(new TurnBasedMatch(matchId, data, canRematch, selfParticipantId, participants,
                                      availableAutomatchSlots, pendingParticipantId, matchStatus, turnStatus, variant, version, creationTime,
                                      lastUpdateTime));
        }
示例#2
0
        /// <summary>
        /// Convert from <see cref="TurnBasedMatch.MatchStatus"/>
        /// to <see cref="GPGS_TurnBasedMatch.MatchStatus"/>.
        /// </summary>
        public static GPGS_TurnBasedMatch.MatchStatus ToGPGSMatchStatus(this TurnBasedMatch.MatchStatus status)
        {
            switch (status)
            {
            case TurnBasedMatch.MatchStatus.Active:
                return(GPGS_TurnBasedMatch.MatchStatus.Active);

            case TurnBasedMatch.MatchStatus.Ended:
                return(GPGS_TurnBasedMatch.MatchStatus.Complete);

            case TurnBasedMatch.MatchStatus.Matching:
                return(GPGS_TurnBasedMatch.MatchStatus.AutoMatching);

            case TurnBasedMatch.MatchStatus.Cancelled:
                return(GPGS_TurnBasedMatch.MatchStatus.Cancelled);

            case TurnBasedMatch.MatchStatus.Expired:
                return(GPGS_TurnBasedMatch.MatchStatus.Expired);

            case TurnBasedMatch.MatchStatus.Deleted:
                return(GPGS_TurnBasedMatch.MatchStatus.Deleted);

            case TurnBasedMatch.MatchStatus.Unknown:
            default:
                return(GPGS_TurnBasedMatch.MatchStatus.Unknown);
            }
        }
示例#3
0
        public static TurnBasedMatch ConvertMatch(string playerId, AndroidJavaObject matchObj)
        {
            List <AndroidJavaObject> list = new List <AndroidJavaObject>();

            Logger.d("AndroidTbmpClient.ConvertMatch, playerId=" + playerId);
            List <Participant> list2             = new List <Participant>();
            string             matchId           = matchObj.Call <string>("getMatchId", new object[0]);
            AndroidJavaObject  androidJavaObject = JavaUtil.CallNullSafeObjectMethod(matchObj, "getData", new object[0]);

            list.Add(androidJavaObject);
            byte[] data       = JavaUtil.ConvertByteArray(androidJavaObject);
            bool   canRematch = matchObj.Call <bool>("canRematch", new object[0]);
            int    availableAutomatchSlots = matchObj.Call <int>("getAvailableAutoMatchSlots", new object[0]);
            string selfParticipantId       = matchObj.Call <string>("getParticipantId", new object[]
            {
                playerId
            });
            AndroidJavaObject androidJavaObject2 = matchObj.Call <AndroidJavaObject>("getParticipantIds", new object[0]);

            list.Add(androidJavaObject2);
            int num = androidJavaObject2.Call <int>("size", new object[0]);

            for (int i = 0; i < num; i++)
            {
                string text = androidJavaObject2.Call <string>("get", new object[]
                {
                    i
                });
                AndroidJavaObject androidJavaObject3 = matchObj.Call <AndroidJavaObject>("getParticipant", new object[]
                {
                    text
                });
                list.Add(androidJavaObject3);
                Participant item = JavaUtil.ConvertParticipant(androidJavaObject3);
                list2.Add(item);
            }
            string pendingParticipantId = matchObj.Call <string>("getPendingParticipantId", new object[0]);

            TurnBasedMatch.MatchTurnStatus turnStatus  = JavaUtil.ConvertTurnStatus(matchObj.Call <int>("getTurnStatus", new object[0]));
            TurnBasedMatch.MatchStatus     matchStatus = JavaUtil.ConvertMatchStatus(matchObj.Call <int>("getStatus", new object[0]));
            int variant = matchObj.Call <int>("getVariant", new object[0]);

            foreach (AndroidJavaObject current in list)
            {
                if (current != null)
                {
                    current.Dispose();
                }
            }
            list2.Sort();
            return(new TurnBasedMatch(matchId, data, canRematch, selfParticipantId, list2, availableAutomatchSlots, pendingParticipantId, turnStatus, matchStatus, variant));
        }
示例#4
0
 internal TurnBasedMatch(string matchId, byte[] data, bool canRematch, string selfParticipantId, List <Participant> participants, int availableAutomatchSlots, string pendingParticipantId, TurnBasedMatch.MatchTurnStatus turnStatus, TurnBasedMatch.MatchStatus matchStatus, int variant)
 {
     this.mMatchId           = matchId;
     this.mData              = data;
     this.mCanRematch        = canRematch;
     this.mSelfParticipantId = selfParticipantId;
     this.mParticipants      = participants;
     this.mParticipants.Sort();
     this.mAvailableAutomatchSlots = availableAutomatchSlots;
     this.mPendingParticipantId    = pendingParticipantId;
     this.mTurnStatus  = turnStatus;
     this.mMatchStatus = matchStatus;
     this.mVariant     = variant;
 }