public bool CanEvolve(int[] oldStats, fmScript fm) { for (int i = 0; i < oldStats.Length; i++) { if (statReqs[i] > 0) { if (!StatCheck((statType)i, statReqs[i], oldStats[i])) { return(false); } } } if (decReq != null && !fm.deployedDec.Contains(decReq)) { return(false); } if (seenMon != null && !fm.seenMon.Contains(seenMon)) { return(false); } timeReq = Mathf.Clamp(timeReq, 0, 2); if (timeReq != 0) { if (timeReq == 1 && !fm.isDay) { return(false); } if (timeReq == 2 && fm.isDay) { return(false); } } return(true); }
void Awake() { fm = GameObject.Find("FarmManager").GetComponent <fmScript>(); //fm.ownedMon.Add(this); if (hatchTime == 0) { hatchTime = species.hatchtime; } }
public static void SavePlayer(fmScript fm) { BinaryFormatter bf = new BinaryFormatter(); FileStream stream = new FileStream(Application.persistentDataPath + "/farmmanager.mon", FileMode.Create); PlayerData data = new PlayerData(fm); bf.Serialize(stream, data); stream.Close(); }
public PlayerData(fmScript fm) { ownedMonNames = new string[fm.ownedMon.Count]; monHatchTime = new float[fm.ownedMon.Count]; monHealthRegen = new float[fm.ownedMon.Count]; ownedMonStats = new int[fm.ownedMon.Count, 10]; seenMonIDs = new int[fm.seenMon.Count]; stamina = fm.stamina; stamRegen = fm.stamRegen; for (int i = 0; i < fm.ownedMon.Count; i++) { if (fm.ownedMon[i] != null) { ownedMonNames[i] = fm.ownedMon[i].monName; monHatchTime[i] = fm.ownedMon[i].hatchTime; monHealthRegen[i] = fm.ownedMon[i].healthRegen; ownedMonStats[i, 0] = fm.ownedMon[i].species.speciesNumber; for (int i2 = 1; i2 < 10; i2++) { ownedMonStats[i, i2] = fm.ownedMon[i].statMods[i2 - 1]; } } } for (int i = 0; i < seenMonIDs.Length; i++) { seenMonIDs[i] = fm.seenMon[i].speciesNumber; } if (fm.egg != null) { eggSpecies = fm.egg.species.speciesNumber; eggWarmth = fm.egg.warmth; eggHatchTime = fm.egg.hatchTime; } else { eggSpecies = 0; eggWarmth = 0; eggHatchTime = 0; } lastLogin = DateTime.Now.ToString(); }
// Use this for initialization void Start() { fm = GameObject.Find("FarmManager").GetComponent <fmScript>(); }
public static void LoadPlayer(fmScript fm) { if (File.Exists(Application.persistentDataPath + "/farmmanager.mon")) { BinaryFormatter bf = new BinaryFormatter(); FileStream stream = new FileStream(Application.persistentDataPath + "/farmmanager.mon", FileMode.Open); PlayerData data = bf.Deserialize(stream) as PlayerData; if (fm.stamina < fm.maxStamina) { fm.stamina += (int)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds / fm.stamRegenTimer + data.stamina; fm.stamRegen = (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds % fm.stamRegenTimer + data.stamRegen; } for (int i = 0; i < data.ownedMonNames.Length; i++) { fm.AddMonster(); fm.ownedMon[i].monName = data.ownedMonNames[i]; fm.ownedMon[i].species = fm.lists.speciesList.Find(x => x.speciesNumber == data.ownedMonStats[i, 0]) ?? fm.lists.speciesList[0]; for (int i2 = 1; i2 < 10; i2++) { fm.ownedMon[i].statMods[i2 - 1] = data.ownedMonStats[i, i2]; } if (fm.ownedMon[i].species.egg) { if ((DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds > fm.ownedMon[i].hatchTime) { fm.ownedMon[i].hatchTime = 0; } else { fm.ownedMon[i].hatchTime = data.monHatchTime[i] - (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds; } fm.ownedMon[i].warmth -= (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds / 5; } if (fm.ownedMon[i].statMods[3] < fm.ownedMon[i].stats[4]) { fm.ownedMon[i].statMods[3] += (int)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds / fm.ownedMon[i].healthRegenTimer; fm.ownedMon[i].healthRegen = (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds % fm.ownedMon[i].healthRegenTimer + data.monHealthRegen[i]; } } fm.seenMon.Clear(); for (int i = 0; i < data.seenMonIDs.Length; i++) { fm.seenMon.Add(fm.lists.speciesList.Find(x => x.speciesNumber == data.seenMonIDs[i]) ?? fm.lists.speciesList[0]); } if (data.eggSpecies != 0) { fm.AddEgg(); fm.egg.species = fm.lists.speciesList.Find(x => x.speciesNumber == data.eggSpecies) ?? fm.lists.speciesList[0]; fm.egg.warmth = (float)data.eggWarmth - (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds % 300; fm.egg.hatchTime = data.eggHatchTime - (float)(DateTime.Now - DateTime.Parse(data.lastLogin)).TotalSeconds; } fm.lastLogin = data.lastLogin; stream.Close(); } else { Debug.LogError("File does not exist."); } }