Line 15: |
Line 15: |
| :An excellent question, I don't know the answer. In all my playthroughs, I've always gone straight to the area where I needed the gem, and found the bird. Or else, I forgot about the puzzle entirely, and have no memory of what happened (was there a duplicate bird, or no bird?) If you have save files with an incomplete puzzle, in-game testing might give the answer more quickly than a code dive. [[User:Margotbean|margotbean]] ([[User talk:Margotbean|talk]]) 18:08, 12 September 2021 (UTC) | | :An excellent question, I don't know the answer. In all my playthroughs, I've always gone straight to the area where I needed the gem, and found the bird. Or else, I forgot about the puzzle entirely, and have no memory of what happened (was there a duplicate bird, or no bird?) If you have save files with an incomplete puzzle, in-game testing might give the answer more quickly than a code dive. [[User:Margotbean|margotbean]] ([[User talk:Margotbean|talk]]) 18:08, 12 September 2021 (UTC) |
| ::Thanks. My current active game does have an incomplete puzzle. At the fourth bird, I entered the fourth area, much as you do, and found the bird there, but I abandoned that play mid-day, no save. (It happens. I generally am unable to continue play beyond one game day at a time. So, forget about trains in SV, too.) I don't remember whether, in my replayed game day, I went to Ginger Island or not. But the next rainy game day, the same one or another, the bird was not in the one remaining area I needed. Intrigued, I searched and found it in the first area I had ever found a bird, and there it was. Since then, successive rainy days have produced birds that have followed the same succession of locations I first encountered! (Isn't that rather a coincidence? Or is it?) I have yet to reach the fourth day since I missed. Watch this space for developments. I rather think I'll need to replay from various saved days in order to sort out the details. I didn't even know there were questions when I took my first pass, and haven't remembered other details that might pertain. I need to explore what's relevant and what's not also. [[User:Giles|Giles]] ([[User talk:Giles|talk]]) 17:09, 13 September 2021 (UTC) | | ::Thanks. My current active game does have an incomplete puzzle. At the fourth bird, I entered the fourth area, much as you do, and found the bird there, but I abandoned that play mid-day, no save. (It happens. I generally am unable to continue play beyond one game day at a time. So, forget about trains in SV, too.) I don't remember whether, in my replayed game day, I went to Ginger Island or not. But the next rainy game day, the same one or another, the bird was not in the one remaining area I needed. Intrigued, I searched and found it in the first area I had ever found a bird, and there it was. Since then, successive rainy days have produced birds that have followed the same succession of locations I first encountered! (Isn't that rather a coincidence? Or is it?) I have yet to reach the fourth day since I missed. Watch this space for developments. I rather think I'll need to replay from various saved days in order to sort out the details. I didn't even know there were questions when I took my first pass, and haven't remembered other details that might pertain. I need to explore what's relevant and what's not also. [[User:Giles|Giles]] ([[User talk:Giles|talk]]) 17:09, 13 September 2021 (UTC) |
| + | |
| + | :::The location of Gem Birds should be random. Here are parts of relating codes: |
| + | :::<syntaxhighlight lang="C#"> |
| + | if (IsMasterGame && (bool)netWorldState.Value.GetWeatherForLocation(GameLocation.LocationContext.Island).isRaining) |
| + | { |
| + | Vector2 tile_location = new Vector2(0f, 0f); |
| + | IslandLocation island_location = null; |
| + | List<int> order = new List<int>(); |
| + | for (int i = 0; i < 4; i++) |
| + | { |
| + | order.Add(i); |
| + | } |
| + | Utility.Shuffle(new Random((int)uniqueIDForThisGame), order); |
| + | switch (order[currentGemBirdIndex]) |
| + | { |
| + | case 0: |
| + | island_location = getLocationFromName("IslandSouth") as IslandLocation; |
| + | tile_location = new Vector2(10f, 30f); |
| + | break; |
| + | case 1: |
| + | island_location = getLocationFromName("IslandNorth") as IslandLocation; |
| + | tile_location = new Vector2(56f, 56f); |
| + | break; |
| + | case 2: |
| + | island_location = getLocationFromName("Islandwest") as IslandLocation; |
| + | tile_location = new Vector2(53f, 51f); |
| + | break; |
| + | case 3: |
| + | island_location = getLocationFromName("IslandEast") as IslandLocation; |
| + | tile_location = new Vector2(21f, 35f); |
| + | break; |
| + | } |
| + | currentGemBirdIndex = (currentGemBirdIndex + 1) % 4; |
| + | if (island_location != null) |
| + | { |
| + | island_location.locationGemBird.Value = new IslandGemBird(tile_location, IslandGemBird.GetBirdTypeForLocation(island_location.Name)); |
| + | } |
| + | } |
| + | </syntaxhighlight> |
| + | :::"uniqueIDForThisGame" changes each time when you return to the title (You can consider it as a random seed). Initial value of currentGemBirdIndex is 0. In every rainy day, the game selects a random int from <nowiki>[0,1,2,3]</nowiki> ("Utility.Shuffle" changes 2 random numbers' order, repeating 4 times). Each number matches one location. So the Gem Birds's location is random. What you came across looks like to be an coincidence. --<small>[[User:Horizon98|Horizon98]] ([[User talk:Horizon98|Discussion]])</small> 18:04, 13 September 2021 (UTC) |