diff --git a/stardew-access/Features/ReadTile.cs b/stardew-access/Features/ReadTile.cs index a073b67..7b1831d 100644 --- a/stardew-access/Features/ReadTile.cs +++ b/stardew-access/Features/ReadTile.cs @@ -143,8 +143,12 @@ namespace stardew_access.Game { toSpeak = getJunimoBundleAt(x, y); } - #endregion - + else if (getStumpsInWoods(x, y) != null) + { + toSpeak = getStumpsInWoods(x, y); + } + #endregion + #region Narrate toSpeak if (toSpeak != " ") if (manuallyTriggered) @@ -177,8 +181,7 @@ namespace stardew_access.Game { if (Game1.currentLocation is not CommunityCenter) return null; - - CommunityCenter communityCenter = (Game1.currentLocation as CommunityCenter); +CommunityCenter communityCenter = (Game1.currentLocation as CommunityCenter); string? name = (x, y) switch { @@ -747,5 +750,24 @@ namespace stardew_access.Game return null; } + + public static string? getStumpsInWoods(int x, int y) + { + string strIndex = null; + if (Game1.currentLocation is not Woods) + { + return null; + } + Netcode.NetObjectList stumps = ((Woods)Game1.currentLocation).stumps; + for (int i = 0; i < stumps.Count; i++) + { + if (stumps[i].occupiesTile(x, y)) + { + return "large stump"; + } + } + return null; + } + } } diff --git a/stardew-access/Patches/GameMenuPatches.cs b/stardew-access/Patches/GameMenuPatches.cs index eb407cf..6c1cda3 100644 --- a/stardew-access/Patches/GameMenuPatches.cs +++ b/stardew-access/Patches/GameMenuPatches.cs @@ -295,9 +295,9 @@ namespace stardew_access.Patches await Task.Delay(200); isUsingCustomButtons = false; } - + internal static void SocialPagePatch(SocialPage __instance, List ___sprites, int ___slotPosition, List ___kidsNames) - { + { try { int x = Game1.getMouseX(), y = Game1.getMouseY(); // Mouse x and y position @@ -318,6 +318,16 @@ namespace stardew_access.Patches bool hasTalked = Game1.player.hasPlayerTalkedToNPC(name); bool spouse = friendship.IsMarried(); bool housemate = spouse && SocialPage.isRoommateOfAnyone(name); + ___kidsNames.Add("Robin"); + ___kidsNames.Add("Pierre"); + ___kidsNames.Add("Caroline"); + ___kidsNames.Add("Jodi"); + ___kidsNames.Add("Kent"); + ___kidsNames.Add("George"); + ___kidsNames.Add("Evelyn"); + ___kidsNames.Add("Demetrius"); + + string toSpeak = $"{name}"; @@ -325,8 +335,8 @@ namespace stardew_access.Patches { toSpeak = $"{toSpeak}, not talked yet"; } - else - { + + if (datable | housemate) { string text2 = (LocalizedContentManager.CurrentLanguageCode != LocalizedContentManager.LanguageCode.pt) ? Game1.content.LoadString("Strings\\StringsFromCSFiles:SocialPage.cs.11635") : ((__instance.getGender(name) == 0) ? Game1.content.LoadString("Strings\\StringsFromCSFiles:SocialPage.cs.11635").Split('/').First() : Game1.content.LoadString("Strings\\StringsFromCSFiles:SocialPage.cs.11635").Split('/').Last()); @@ -353,10 +363,10 @@ namespace stardew_access.Patches toSpeak = $"{toSpeak}, {text2}"; } - if (!__instance.getFriendship(name).IsMarried() && !___kidsNames.Contains(name)) + if (!__instance.getFriendship(name).IsMarried() && ___kidsNames.Contains(name)) { toSpeak = $"{toSpeak}, married"; - } + } if (spouse) { toSpeak = $"{toSpeak}, spouse"; @@ -367,7 +377,7 @@ namespace stardew_access.Patches } toSpeak = $"{toSpeak}, {heartLevel} hearts, {giftsThisWeek} gifts given this week."; - } + if (socialPageQuery != toSpeak) {