Ejemplo n.º 1
0
 protected void parseMonsterInfo(string name)
 {
     string[] monsterInfo = Game1.content.Load <Dictionary <string, string> >("Data\\Monsters")[name].Split('/');
     Health            = Convert.ToInt32(monsterInfo[0]);
     MaxHealth         = Health;
     DamageToFarmer    = Convert.ToInt32(monsterInfo[1]);
     coinsToDrop.Value = Game1.random.Next(Convert.ToInt32(monsterInfo[2]), Convert.ToInt32(monsterInfo[3]) + 1);
     isGlider.Value    = Convert.ToBoolean(monsterInfo[4]);
     durationOfRandomMovements.Value = Convert.ToInt32(monsterInfo[5]);
     string[] objectsSplit = monsterInfo[6].Split(' ');
     objectsToDrop.Clear();
     for (int i = 0; i < objectsSplit.Length; i += 2)
     {
         if (Game1.random.NextDouble() < Convert.ToDouble(objectsSplit[i + 1]))
         {
             objectsToDrop.Add(Convert.ToInt32(objectsSplit[i]));
         }
     }
     resilience.Value  = Convert.ToInt32(monsterInfo[7]);
     jitteriness.Value = Convert.ToDouble(monsterInfo[8]);
     base.willDestroyObjectsUnderfoot = false;
     moveTowardPlayer(Convert.ToInt32(monsterInfo[9]));
     base.speed        = Convert.ToInt32(monsterInfo[10]);
     missChance.Value  = Convert.ToDouble(monsterInfo[11]);
     mineMonster.Value = Convert.ToBoolean(monsterInfo[12]);
     if (maxTimesReachedMineBottom() >= 1 && (bool)mineMonster)
     {
         resilience.Value  += resilience.Value / 2;
         missChance.Value  *= 2.0;
         Health            += Game1.random.Next(0, Health);
         DamageToFarmer    += Game1.random.Next(0, DamageToFarmer / 2);
         coinsToDrop.Value += Game1.random.Next(0, (int)coinsToDrop + 1);
         if (Game1.random.NextDouble() < 0.001)
         {
             objectsToDrop.Add((Game1.random.NextDouble() < 0.5) ? 72 : 74);
         }
     }
     try
     {
         ExperienceGained = Convert.ToInt32(monsterInfo[13]);
     }
     catch (Exception)
     {
         ExperienceGained = 1;
     }
     if (LocalizedContentManager.CurrentLanguageCode != 0)
     {
         base.displayName = monsterInfo[monsterInfo.Length - 1];
     }
 }
Ejemplo n.º 2
0
        public void ResetPhaseDays()
        {
            Dictionary <int, string> cropData = Game1.content.Load <Dictionary <int, string> >("Data\\Crops");
            int seedIndex = -1;

            if ((int)rowInSpriteSheet != 23 && netSeedIndex.Value == -1)
            {
                InferSeedIndex();
            }
            seedIndex = (((int)rowInSpriteSheet != 23) ? netSeedIndex.Value : whichForageCrop.Value);
            if (cropData.ContainsKey(seedIndex))
            {
                string[] phaseSplit = cropData[seedIndex].Split('/')[0].Split(' ');
                phaseDays.Clear();
                for (int i = 0; i < phaseSplit.Length; i++)
                {
                    phaseDays.Add(Convert.ToInt32(phaseSplit[i]));
                }
                phaseDays.Add(99999);
            }
        }