public void LoadData() { if (File.Exists(Application.persistentDataPath + "/HamsterData.dat")) { BinaryFormatter binaryformatter = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/HamsterData.dat", FileMode.Open); m_hamsterdata = (HamsterData)binaryformatter.Deserialize(file); file.Close(); } else { m_hamsterdata.Pleasure = 0.0f; m_hamsterdata.Arousal = 0.0f; m_hamsterdata.Dominance = 0.0f; m_hamsterdata.FoodHealth = 100.0f; m_hamsterdata.WaterHealth = 100.0f; m_hamsterdata.CleanHealth = 100.0f; m_hamsterdata.FoodTimer = 0.0f; m_hamsterdata.CleanTimer = 0.0f; m_hamsterdata.WaterTimer = 0.0f; m_hamsterdata.InterTimer = 0.0f; m_hamsterdata.UIFoodTimer = 0.0f; m_hamsterdata.UIWaterTimer = 0.0f; m_hamsterdata.UICleanTimer = 0.0f; m_hamsterdata.Hours = System.DateTime.Now.Hour; m_hamsterdata.Minutes = System.DateTime.Now.Minute; m_hamsterdata.Seconds = System.DateTime.Now.Second; m_hamsterdata.Emotion = CURRENT_EMOTION.Neutral; SavedData(); } }
private HamsterData GenerateRandomHamster() { Color bellyColor = hamsterDefaultValues.bellyColors[Random.Range(0, hamsterDefaultValues.bellyColors.Count)]; Color bodyColor = hamsterDefaultValues.bodyColors[Random.Range(0, hamsterDefaultValues.bodyColors.Count)]; String firstName = hamsterDefaultValues.firstNames[Random.Range(0, hamsterDefaultValues.firstNames.Count)]; String lastName = hamsterDefaultValues.lastNames[Random.Range(0, hamsterDefaultValues.lastNames.Count)]; HamsterData hamster = new HamsterData(bodyColor, bellyColor, firstName, lastName, HamsterStatus.Adult); return(hamster); }
public static HamsterData Breed(HamsterData a, HamsterData b, string childFirstName) { System.Random rnd = new System.Random(); Stats.StatType[] statTypes = Stats.AllStatTypes.OrderBy(x => rnd.Next()).ToArray(); Dictionary <Stats.StatType, int> childStats = new Dictionary <Stats.StatType, int>(); int split = statTypes.Length / 2; for (int i = 0; i < statTypes.Length; ++i) { Stats.StatType statType = statTypes[i]; if (i < split) { childStats.Add(statType, a.statValues[statType] + RandomSignedStatModifier()); } else { childStats.Add(statType, b.statValues[statType] + RandomSignedStatModifier()); } } Color childBellyColor; Color childBodyColor; float colorSelector = Random.value; if (colorSelector < 0.5f) { childBellyColor = a.bellyColor + b.bellyColor; childBodyColor = a.bodyColor + b.bodyColor; } else if (colorSelector < 0.75f) { childBellyColor = a.bellyColor; childBodyColor = a.bodyColor; } else { childBellyColor = b.bellyColor; childBodyColor = b.bodyColor; } string lastName; float nameSelector = Random.value; if (nameSelector < 0.5f) { lastName = a.lastName; } else { lastName = a.firstName; } return(new HamsterData(childBodyColor, childBellyColor, childFirstName, lastName, HamsterStatus.Unborn, childStats)); }
void Awake() { m_hamsterdata = new HamsterData(); LoadData(); //Get past data //Calculate the time it took from //when the game last ended to when it began //and see how many seconds have passed since then float OldHours = m_hamsterdata.Hours; float OldMinutes = m_hamsterdata.Minutes; float OldSeconds = m_hamsterdata.Seconds; float SystemHour = System.DateTime.Now.Hour; float SystemMinute = System.DateTime.Now.Minute; float SystemSecond = System.DateTime.Now.Second; //If the time passes midnight, the hour turns to 0. //This means that we have to make sure that the total //is more than OldHours. if (SystemHour < OldHours) { SystemHour += 24.0f; } float difhour = SystemHour - OldHours; float difmin = SystemMinute - OldMinutes; float difsec = SystemSecond - OldSeconds; //Make sure the time is positive if (difhour < 0.0f) { difhour = -difhour; } if (difmin < 0.0f) { difmin = -difmin; } if (difsec < 0.0f) { difsec = -difsec; } float hourinsecs = ((difhour * 60) * 60); float minuteinsecs = (difmin * 60); totalTimeMissedInSecs = hourinsecs + minuteinsecs + difsec; //Set up Starting Emotions m_pleasure = m_hamsterdata.Pleasure; m_dominance = m_hamsterdata.Dominance; m_arousal = m_hamsterdata.Arousal; m_emotion = m_hamsterdata.Emotion; }
public void Initialize(HamsterData hamsterData) { _hamsterData = hamsterData; body.color = _hamsterData.bodyColor; foreach (SpriteRenderer sprite in belly) { sprite.color = _hamsterData.bellyColor; } if (_hamsterData.status == HamsterStatus.Unborn) { Debug.Log("still unborn"); InitializeBaby(); } }
public void LoadSystemData() { //If the file exists if (File.Exists(Application.persistentDataPath + "/HamsterData.dat")) { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/HamsterData.dat", FileMode.Open); m_hamsterData = (HamsterData)binaryFormatter.Deserialize(file); file.Close(); } else { Debug.LogError("Save file does not exist"); } }
public void Breed(Hamster hamster, Hamster hamster1) { HamsterData child = hamster.Breed(hamster1); chosenHamsters.Add(child); Debug.Log("Child bred. Status is: " + child.status); Hamster childObj = Instantiate(hamsterPrefab, null, false).GetComponent <Hamster>(); childObj.Initialize(child); currentHamsters.Add(childObj); foreach (HamsterLocation location in RunManager.Instance.BabyLocations) { if (location.Hamster == null) { location.Hamster = childObj; break; } } //todo make these permanent/between runs }
public void SaveHamsterData(HamsterData _hamster) { m_hamsterData = _hamster; }