public static IEnumerator CreatePet(ActivePet newPet, string username) { string json = JsonUtility.ToJson(newPet.GetSnapshotCopy()); byte[] data = System.Text.Encoding.Default.GetBytes(json); // Create a PUT request because Unity apperantly cannot UnityWebRequest request = new UnityWebRequest(HOST + username + "/pet", "PUT"); request.uploadHandler = (UploadHandler) new UploadHandlerRaw(data); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.isNetworkError) { if (offline_mode) { yield return("0000-0000-0000"); } else { Debug.Log("Error sending data to server"); } } else { byte[] result = request.downloadHandler.data; string resJson = System.Text.Encoding.Default.GetString(result); PetSnapshot newSnapshot = JsonUtility.FromJson <PetSnapshot>(resJson); yield return(newSnapshot._id); } }
public static PetSnapshot Evolve(ActivePet from, Species to) { double timestamp = Timestamp.GetTimeStamp(); PetSnapshot snapshot = from.GetSnapshotCopy(); snapshot.species = to.speciesName; snapshot.longetivity = Random.Range((int)to.longetivityMin, (int)to.longetivityMax + 1); snapshot.stage = from.stage + 1; snapshot.stageStamp = timestamp; snapshot.minWeight = to.minWeight; snapshot.maxWeight = to.maxWeight; if (from.maxWeight - from.minWeight == 0) { snapshot.Weight = to.baseWeight; } else { snapshot.Weight = Mathf.FloorToInt(((from.weight - from.minWeight) / (from.maxWeight - from.minWeight)) * (to.maxWeight - to.minWeight) + to.minWeight); } snapshot.careMistakeCost = to.careMistakeCost; snapshot.hungerRate = Random.Range(to.hungerRateMin, to.hungerRateMax + 1); snapshot.strengthRate = Random.Range(to.strengthRateMin, to.strengthRateMax + 1); snapshot.attentionRate = Random.Range(to.attentionRateMin, to.attentionRateMax + 1); snapshot.happinessRate = Random.Range(to.happinessRateMin, to.happinessRateMax + 1); snapshot.disciplineRate = Random.Range(to.disciplineRateMin, to.disciplineRateMax + 1); snapshot.energy = 20; snapshot.energyRecoveryRate = to.energyRecoveryRate; snapshot.energyStamp = timestamp; snapshot.s_atk = to.atk; snapshot.s_spd = to.spd; snapshot.s_def = to.def; return(snapshot); }