Пример #1
0
 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);
 }
Пример #2
0
 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();
 }
Пример #5
0
 // 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.");
        }
    }