Beispiel #1
0
        //public Rectangle getNetZone(Farmer who)
        //{

        //}

        public override bool beginUsing(GameLocation location, int x, int y, StardewValley.Farmer who)
        {
            inUse = true;
            Log.info("beginging hte use");
            Rectangle rectangle = new Rectangle((int)who.GetToolLocation(false).X, (int)who.GetToolLocation(false).Y, 64, 64);

            CritterLocations checkLocation = new CritterLocations(location);
            List <Critter>   critters      = new List <Critter>();

            critters = checkLocation.getAllActiveCritters();

            if (!caughtBug)
            {
                if (critters.Count > 0)
                {
                    foreach (Critter critter in critters)
                    {
                        if (checkCatch(critter, rectangle))
                        {
                            break;
                        }
                    }
                }
            }


            return(base.beginUsing(location, x, y, who));
        }
Beispiel #2
0
 internal void updateCritterLocations(GameLocation location)
 {
     if (location.IsOutdoors)
     {
         CritterLocations thisLocation = new CritterLocations(location);
         thisLocation.buildAllPossibleHomes();
         thisLocation.balanceSpawning();
         AllCritterLocations.AddOrReplace(thisLocation);
     }
 }
Beispiel #3
0
        /*********
        ** Private methods
        *********/
        private void createCritterLocationList(object sender, StardewModdingAPI.Events.DayStartedEventArgs args)
        {
            Log.debug("in create critter day start event");
            SeasonalCritters = AllCritters.Where(c => c.SpawnConditions.Seasons.Contains(Game1.currentSeason)).ToList();
            CritterLocations Farm = new CritterLocations(Game1.getFarm());

            Farm.buildAllPossibleHomes();
            Farm.balanceSpawning();
            AllCritterLocations.AddOrReplace(Farm);
            //Helper.Events.GameLoop.DayStarted -= createCritterLocationList;
        }
Beispiel #4
0
        public static void getBugFromNet(GameLocation location, StardewValley.Farmer who)
        {
            Log.info($"Now the bug comes from the net");
            CritterLocations critterLocations = new CritterLocations(location);

            critterLocations.removeThisCritter(CaughtCritter);
            who.addItemByMenuIfNecessary((Item)BugInNet.getOne());

            who.AddCustomSkillExperience(BugCatchingMod.skill, BugInNet.bugModel.Price);
            Log.info("player experience: " + Game1.player.GetCustomSkillExperience(BugCatchingMod.skill).ToString());
            CaughtCritter = (CustomCritter)null;
        }
Beispiel #5
0
        public bool DisturbBug(string action, GameLocation location, Vector2 tile, string layerName)
        {
            Log.debug($"{action} | {location} | {tile} | {layerName}");
            bool flag = false;

            CritterLocations CritterLocator  = AllCritterLocations.Where(l => l.Location == Game1.currentLocation).Single();
            CritterLocation  critterLocation = CritterLocator.getCritterHome(layerName, tile);

            if (critterLocation != null)
            {
                CritterLocator.activateCritter(critterLocation);
                flag = true;
            }

            return(flag);
        }
Beispiel #6
0
        /// <summary>Raised after the player presses a button on the keyboard, controller, or mouse.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="args">The event data.</param>
        ///
        private void onLocationChanged(object sender, StardewModdingAPI.Events.WarpedEventArgs args)
        {
            Log.info($"Location changed to {args.NewLocation}");
            try
            {
                CritterLocations CritterLocator = AllCritterLocations.Where(l => l.Location == Game1.currentLocation).SingleOrDefault();
                CritterLocator.spawnCritters();
            }
            catch
            {
                Log.debug("CritterLocator failed, creating new CritterLocations");
                CritterLocations CritterLocator = new CritterLocations(args.NewLocation);
                CritterLocator.buildAllPossibleHomes();
                CritterLocator.balanceSpawning();
                CritterLocator.spawnCritters();
                AllCritterLocations.AddOrReplace(CritterLocator);
            }

            // Helper.Events.Player.Warped -= onLocationChanged;
        }