//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)); }
internal void updateCritterLocations(GameLocation location) { if (location.IsOutdoors) { CritterLocations thisLocation = new CritterLocations(location); thisLocation.buildAllPossibleHomes(); thisLocation.balanceSpawning(); AllCritterLocations.AddOrReplace(thisLocation); } }
/********* ** 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; }
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; }
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); }
/// <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; }