Example #1
0
 private void SpaceEvents_ChooseNightlyFarmEvent(object sender, EventArgsChooseNightlyFarmEvent e)
 {
     if (OurMoon.CurrentPhase() == MoonPhase.BlueMoon && !Game1.weddingToday &&
         (e.NightEvent == null || (e.NightEvent is SoundInTheNightEvent &&
                                   Helper.Reflection.GetField <NetInt>(e.NightEvent, "behavior").GetValue().Value == 2)))
     {
         if (Dice.NextDouble() < 0.025 && !Game1.currentSeason.Equals("winter"))
         {
             e.NightEvent = new FairyEvent();
         }
         else if (Dice.NextDouble() < 0.025)
         {
             e.NightEvent = new WitchEvent();
         }
         else if (Dice.NextDouble() < 0.025)
         {
             e.NightEvent = new WitchEvent();
         }
         else if (Dice.NextDouble() < 0.025)
         {
             e.NightEvent = new SoundInTheNightEvent(1);
         }
         else if (Dice.NextDouble() < 0.025)
         {
             e.NightEvent = new SoundInTheNightEvent(0);
         }
         else if (Dice.NextDouble() < 0.025)
         {
             e.NightEvent = new SoundInTheNightEvent(3);
         }
     }
 }
Example #2
0
        private void changeFarmEvent(object sender, EventArgsChooseNightlyFarmEvent args)
        {
            if (Game1.player.professions.Contains(PROFESSION_NIGHTLY_EVENTS) && !Game1.weddingToday &&
                (args.NightEvent == null || (args.NightEvent is SoundInTheNightEvent &&
                                             Helper.Reflection.GetField <NetInt>(args.NightEvent, "behavior").GetValue().Value == 2)))
            {
                //Log.Async("Doing event check");
                FarmEvent ev = null;
                //for (uint i = 0; i < 100 && ev == null; ++i) // Testing purposes.
                {
                    Game1.stats.daysPlayed += 999999; // To rig the rng to not just give the same results.
                    try                               // Just in case. Want to make sure stats.daysPlayed gets fixed
                    {
                        ev = pickFarmEvent();
                    }
                    catch (Exception) { }
                    Game1.stats.daysPlayed -= 999999;
                    //if (ev != null) Log.Async("ev=" + ev + " " + (ev is SoundInTheNightEvent ? (Util.GetInstanceField(typeof(SoundInTheNightEvent), ev, "behavior") + " " + Util.GetInstanceField(typeof(SoundInTheNightEvent), ev, "soundName")) : "?"));
                    if (ev != null && ev.setUp())
                    {
                        ev = null;
                    }
                }

                if (ev != null)
                {
                    Log.info($"Applying {ev} as tonight's nightly event, due to having PROFESSION_NIGHTLY_EVENTS");
                    args.NightEvent = ev;
                }
            }
        }