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); } }
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; } } } } }
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)); }