예제 #1
0
 public pawnStatus DeserializePawnState(string serialData)
 {
     if (serialData != null)
     {
         pawnStatus pawnToSync = new pawnStatus();
         Debug.Log("Deserialize: " + serialData);
         serialData = serialData.Substring(10);
         pawnToSync = JsonUtility.FromJson <pawnStatus> (serialData);
         Debug.Log("Deserialize: " + pawnToSync.Health);
         return(pawnToSync);
     }
     else
     {
         return(null);
     }
 }
예제 #2
0
    private void LoadPawnStateFromCloud(ExecuteCloudScriptResult result)
    {
        Debug.Log("PAWNS IN COULD: " + result.FunctionResult);
        JsonObject jsonResult = (JsonObject)result.FunctionResult;

        //for (int i = 0; i <= jsonResult.Count; i++) {
        foreach (string key in jsonResult.Keys)
        {
            Pawn       pawn       = FindPawnOnBoard(int.Parse(key));
            pawnStatus pawnToSync = new pawnStatus();
            object     value;
            jsonResult.TryGetValue(key, out value);
            Debug.Log(" parsed '" + value.ToString() + "'");
            pawnToSync = DeserializePawnState(value.ToString());
            //pawnStatus pawnToSync = JsonUtility.FromJson( JsonUtility.FromJson<pawnStatus> (serialData);
            if (pawnToSync != null)
            {
                if (pawn != null)
                {
                    Debug.Log("apply: " + pawnToSync.Health);
                    GameplayComponent.ConfirmEnemyPawnPos(pawn.Name,
                                                          pawn.pawnBoardID,
                                                          pawnToSync.RotationPosIndex,
                                                          pawnToSync.boardPosisionIndex);
                    pawn.BuffedAttack = pawnToSync.BuffedAttack;
                    pawn.BuffedHealth = pawnToSync.BuffedHealth;
                    pawn.SetHealth(pawnToSync.Health);
                    pawn.SetAttack(pawnToSync.Attack);
                    if (pawnToSync.Frozen)
                    {
                        pawn.Freeze();
                    }
                    if (pawnToSync.Burning)
                    {
                        pawn.SetOnFire(pawnToSync.BurningTurnsLeft);
                    }
                    if (pawnToSync.Poisoned)
                    {
                        pawn.Poisoned = true;
                    }
                }
            }
        }
    }
예제 #3
0
    public static string SerializePawnState(Pawn pawn)
    {
        //cardID,owner,pos,rot,health,attack,healthbuff,attackbuff,frozen,burned,burningturns,poisoned,effectserial
        pawnStatus pawnSerial = new pawnStatus();

        pawnSerial.CardId = pawn.CardID;
        //pawnSerial.Owner = pawn.owner;
        pawnSerial.boardPosisionIndex = pawn.boardPosisionIndex;
        pawnSerial.RotationPosIndex   = pawn.RotationPosIndex;
        pawnSerial.Health             = pawn.Health;
        pawnSerial.Attack             = pawn.Attack;
        pawnSerial.BuffedHealth       = pawn.BuffedHealth;
        pawnSerial.BuffedAttack       = pawn.BuffedAttack;
        pawnSerial.Frozen             = pawn.Frozen;
        pawnSerial.Burning            = pawn.Burning;
        pawnSerial.BurningTurnsLeft   = pawn.BurningTurnsLeft;
        pawnSerial.Poisoned           = pawn.Poisoned;

        return(JsonUtility.ToJson(pawnSerial));
    }