public static bool Prefix(ref string name, ref string __result) { var category = name; __result = FarmAnimals.GetCategory(category).AnimalShop.Name; return(false); }
private static void HandleHatchling( ref Decorators.AnimalHouse moddedAnimalHouse, string name, Farmer moddedPlayer) { if (moddedAnimalHouse.IsFull()) { return; } var withEggReadyToHatch = moddedAnimalHouse.GetIncubatorWithEggReadyToHatch(); if (withEggReadyToHatch == null) { return; } string type; type = new Incubator(withEggReadyToHatch) .GetRandomType(FarmAnimals.GroupTypesByCategory() .ToDictionary (kvp => kvp.Key, kvp => moddedPlayer.SanitizeBlueChickens(kvp.Value))); var building = moddedAnimalHouse.GetBuilding(); var farmAnimal = new Decorators.FarmAnimal(moddedPlayer.CreateFarmAnimal(type, name, building)); farmAnimal.AddToBuilding(building); moddedAnimalHouse.ResetIncubator(withEggReadyToHatch); farmAnimal.SetCurrentProduce(-1); }
public static bool Prefix(ref string name, ref string __result) { var str = name; __result = FarmAnimals.GetCategory(str).AnimalShop.Description; var farmer = new Farmer(Game.GetPlayer()); var types1 = FarmAnimals.GroupPurchaseableTypesByCategory()[str]; var types2 = farmer.SanitizeBlueChickens(types1); var count1 = types2.Count; var count2 = farmer.SanitizeAffordableTypes(types2).Count; if (count2 > 0 && count2 < count1) { var strArray = new string[3] { count2.ToString(), count1.ToString(), "$" }; __result = __result + " (" + Content.LoadString("Strings\\Locations:AdventureGuild_KillList_LineFormat", strArray) + ")"; } return(false); }
public static void ValidateCachedFarmAnimals(IModHelper helper, IMonitor monitor) { var animals = FarmAnimals.ReadCache(); var categoriesToBeRemoved = new List <string>(); foreach (var category in animals.Categories) { try { Assert.ValidStringLength("category", category.Category, 1); var typesToBeRemoved = new List <string>(); foreach (var type in category.Types) { try { Assert.FarmAnimalTypeIsNotRestricted(type.Type); Assert.FarmAnimalTypeExists(type.Type); } catch (Exception ex) { monitor.Log(type.Type + " type will not load: " + ex.Message, LogLevel.Warn); typesToBeRemoved.Add(type.Type); } } if (typesToBeRemoved.Any()) { category.Types.RemoveAll(o => typesToBeRemoved.Contains(o.Type)); } Assert.AtLeastOneTypeRequired(category.Types.Select(o => o.Type).ToList()); Assert.AtLeastOneBuildingRequired(category.Buildings); Assert.BuildingsExist(category.Buildings); if (category.CanBePurchased()) { Assert.ValidStringLength("name", category.AnimalShop.Name, 1); Assert.ValidStringLength("description", category.AnimalShop.Description, 1); Assert.FileExists(category.AnimalShop.Icon); Assert.ValidFileExtension(category.AnimalShop.Icon, ".png"); if (category.AnimalShop.Exclude != null) { Assert.FarmAnimalTypesExist(category.AnimalShop.Exclude); } } } catch (Exception ex) { monitor.Log(category.Category + " category will not load: " + ex.Message, LogLevel.Warn); categoriesToBeRemoved.Add(category.Category); } } if (categoriesToBeRemoved.Any()) { animals.Categories.RemoveAll(o => categoriesToBeRemoved.Contains(o.Category)); } FarmAnimals.Write(animals); }
public string GetRandomAnimalShopType(string category, Farmer farmer) { var farmer1 = new Decorators.Farmer(farmer); var types1 = FarmAnimals.GroupPurchaseableTypesByCategory()[category]; var types2 = farmer1.SanitizeBlueChickens(types1); var stringList = farmer1.SanitizeAffordableTypes(types2); return(stringList[Random.Next(stringList.Count)]); }
public override void Callback(string command, string[] args) { var message = "Listing farm animals\n"; FarmAnimals.ReadCache(); foreach (var category in FarmAnimals.GetCategories()) { message += DescribeFarmAnimalCategory(category); } Monitor.Log(message, LogLevel.Info); }
public static void Postfix(ref StardewValley.Menus.PurchaseAnimalsMenu __instance, ref List <StardewValley.Object> stock) { var moddedMenu = new Decorators.PurchaseAnimalsMenu(__instance); var dictionary = FarmAnimals.GetCategories().Where(o => o.CanBePurchased()) .ToDictionary(o => o.Category, o => o.GetAnimalShopIconTexture()); int iconHeight; moddedMenu.SetUpAnimalsToPurchase(stock, dictionary, out iconHeight); AdjustMenuHeight(ref moddedMenu, iconHeight); StardewValley.Menus.PurchaseAnimalsMenu.menuWidth = 640; }
private static void HandleNewborn( ref Decorators.AnimalHouse moddedAnimalHouse, string name, ref QuestionEvent questionEvent, Farmer moddedPlayer) { var withEggReadyToHatch = moddedAnimalHouse.GetIncubatorWithEggReadyToHatch(); var moddedParent = new Decorators.FarmAnimal(questionEvent.animal); var dictionary = FarmAnimals.GroupTypesByCategory().Where(kvp => kvp.Value.Contains(moddedParent.GetTypeString())) .ToDictionary(kvp => kvp.Key, kvp => moddedPlayer.SanitizeBlueChickens(kvp.Value)); var randomTypeFromProduce = moddedParent.GetRandomTypeFromProduce(dictionary); var building = moddedAnimalHouse.GetBuilding(); var farmAnimal = new Decorators.FarmAnimal(moddedPlayer.CreateFarmAnimal(randomTypeFromProduce, name, building)); farmAnimal.AssociateParent(questionEvent.animal); farmAnimal.AddToBuilding(building); farmAnimal.SetCurrentProduce(-1); Event.ForceQuestionEventToProceed(questionEvent); }
public static void SeedCacheWithVanillaFarmAnimals() { FarmAnimals.Write(new Cache.FarmAnimals(FarmAnimals.GetVanillaCategories())); }
public Dictionary <string, Texture2D> GetAnimalShopIcons() { return(FarmAnimals.GetCategories().Where(o => o.CanBePurchased()) .ToDictionary(o => o.Category, o => o.GetAnimalShopIconTexture())); }
public List <Object> GetAnimalShopStock(Farm farm) { return(FarmAnimals.GetPurchaseAnimalStock(farm)); }
public Dictionary <string, List <string> > GetFarmAnimalCategories() { return(FarmAnimals.GetCategories().ToDictionary(o => o.Category, o => o.Types.Select(t => t.Type).ToList())); }
public static bool Prefix(ref List <StardewValley.Object> __result) { __result = FarmAnimals.GetPurchaseAnimalStock(Game.GetFarm()); return(false); }