Difference between revisions of "Talk:Desert Festival"
Margotbean (talk | contribs) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 187: | Line 187: | ||
:I don't have much of a horse in this race other than if I can back up my edit with proof in the form of a youtube video of playing the game on a vanilla installation of 1.6.8 and I directly link the video in my edit summary, I have completed the proof requirement and the edit should stay, not be struck a second time based on nothing but an admin disagreeing. Quoting the code as proof of a behavior is in theory all good, but if the behavior observed in game differs from what the code "says", then the answer isn't that the behavior observed is wrong, it's that the code was misread. There is a time and place for snap judgements of striking misinformation from the record, and it's not when there is decisive evidence to back up the claim. [[User:PrincessFelicity|PrincessFelicity]] ([[User talk:PrincessFelicity|talk]]) 13:52, 6 July 2024 (UTC) | :I don't have much of a horse in this race other than if I can back up my edit with proof in the form of a youtube video of playing the game on a vanilla installation of 1.6.8 and I directly link the video in my edit summary, I have completed the proof requirement and the edit should stay, not be struck a second time based on nothing but an admin disagreeing. Quoting the code as proof of a behavior is in theory all good, but if the behavior observed in game differs from what the code "says", then the answer isn't that the behavior observed is wrong, it's that the code was misread. There is a time and place for snap judgements of striking misinformation from the record, and it's not when there is decisive evidence to back up the claim. [[User:PrincessFelicity|PrincessFelicity]] ([[User talk:PrincessFelicity|talk]]) 13:52, 6 July 2024 (UTC) | ||
+ | ::A youtube video is in no way proof of anything. When the game behavior seems to differ from what the code says, then stepping through the code may be the only way to find the answer. Thank you JackBlack for the thorough analysis! [[User:Margotbean|margotbean]] ([[User talk:Margotbean|talk]]) 16:51, 6 July 2024 (UTC) | ||
+ | |||
+ | == Clarification of racing time edit/reverts. == | ||
+ | |||
+ | Firstly, let me say that "this is how it works for me" is only enough to show that this is one possible way for things to happen. | ||
+ | Not everyone plays the exact same way, so they may experience something different. And the race is rare, in that most parts will only process when the player is there as opposed to lots of other things which happen regardless. i.e. most of the race actions are in or called from UpdateWhenCurrentLocation. The other part (for race progress) is in performTenMinuteUpdate which only sets it to go to the starting line and sets a timer. | ||
+ | |||
+ | The way you have worded it implies that these are the definitive times. | ||
+ | e.g. you will be able to start betting at 10, and the race will definitely start at 10:15. The next betting period starts at 11:25, with the race then starting at 12:15. | ||
+ | But that is not necessarily true. | ||
+ | |||
+ | If you go to the desert festival at 9:50, you will then have the race go to prep mode at 10, and start at roughly 10:15. It will then take a random amount of time for the race to finish for you to be able to start placing bets for the next race. | ||
+ | I haven't looked to see what the maximum range is, but just looking at how long it can take for last place to finish after first place, there is more than 7 seconds so more than 10 minutes. So the next betting period will certainly not always start at exactly 11:25. | ||
+ | |||
+ | But what happens if your play style is more unique? | ||
+ | What if you only go to the festival at 11:00? Well, then the race starts at roughly 11:15, with you able to bet until 11:15. | ||
+ | You then skip the 12 pm race and only have the next race at 2 pm. | ||
+ | |||
+ | What about if you go at 9:50, watch the first race, place a bet while the announcer is announcing the winner, and then leave, coming back just before 12? Well because you didn't give the announcer enough time to finish, they then finish at 12, and you skip the 12 pm race, so the bet you placed at around 11, will be for the next race to start. | ||
+ | |||
+ | As an extreme example, you can go at 9:50, watch the first race, let it complete entirely, then place your bet and leave before the next race starts, and then come back just before the last race is due to start, and the bet you placed early in the morning will be for that race. And while that last race is meant to start just after 10 pm, you can just not be in the area, and have it start much later. So much so that you could pass out before it ends. | ||
+ | |||
+ | But this does raise a few important points: | ||
+ | *The race should be every 2 hours, not every hour. (performTenMinuteClockUpdate has <code>timeOfDay % 200 == 0</code> check, which maps to every 2 hours. | ||
+ | *The race doesn't actually start on the hour. It preps for start on the hour, and you then need to be there for it to start. | ||
+ | *You can artificially delay the start of the race last race, by not being at the desert festival until just before you pass out at night, with the race starting then. | ||
+ | |||
+ | Not sure what the best way to word those points are.[[User:JackBlack69|JackBlack69]] ([[User talk:JackBlack69|talk]]) 10:28, 15 August 2024 (UTC) | ||
+ | :I don't know how to word those points either, but I've removed the "on the hour" text from the page. I suppose being vague is better than being incorrect, information-wise. [[User:Margotbean|margotbean]] ([[User talk:Margotbean|talk]]) 20:23, 15 August 2024 (UTC) |
Latest revision as of 20:23, 15 August 2024
This talk page is for discussing Desert Festival. | |
---|---|
|
|
Scholar questions workspace
Temporary workspace for scholar questions
Scholar's questions and answers | ||
---|---|---|
# | Questions | Answers |
1 | Who runs the Blacksmith in Pelican Town? | Clint |
Who runs the Museum in Pelican Town? | Gunther | |
Who runs the Saloon in Pelican Town? | Gus | |
Who runs the Fish Shop in Pelican Town? | Willy | |
Who runs the Animal Shop in Pelican Town? | Marnie | |
Who runs the General Store in Pelican Town? | Pierre | |
What is the date of the season's end? | 28th | |
Where are we? | Calico Desert | |
2 | What season does Garlic grow in? | Spring |
What season does Red Cabbage grow in? | Summer | |
What season does Artichoke grow in? | Fall | |
When does the Apricot tree bear fruit? | Spring | |
When does the Peach tree bear fruit? | Summer | |
When does the Pomegranate tree bear fruit? | Fall | |
When is Pierre's Shop normally closed? | Wednesday | |
3 | In what season can you catch Carp? | Any Season |
In what season can you catch Pufferfish? | Summer | |
In what season can you catch Salmon? | Fall | |
In what season can you catch Squid? | Winter | |
How many steps have you taken? | ||
How much does a Chicken cost? | ![]() | |
How much does a Cow cost? | ![]() | |
How much does a Pig cost? | ![]() | |
How much does a Rabbit cost? | ![]() | |
How much does a Duck cost? | ![]() | |
4 | Where might you catch the Stonefish? | Mine level 20 |
Where might you catch the Ice Pip? | Mine level 60 | |
Where might you catch the Lava Eel? | Mine level 100 | |
What is George's last name? | Mullner | |
How many garbage cans are there in Pelican Town? | 8 |
--Spaceeinstein (talk) 03:33, 22 March 2024 (UTC)
Cost typo
Are we sure that Caroline sells a single dandelion for 410g? That seems like a typo. If it is then can we get the correct number there?
Mellowheart (talk) 23:10, 22 March 2024 (UTC)
- It's definitely a typo. The cost should be 10 but I don't have the game up to verify that.--Spaceeinstein (talk) 00:35, 23 March 2024 (UTC)
- I can confirm that it is indeed 10. User314159 (talk) 00:38, 23 March 2024 (UTC)
Page for the egg?
The Calico Egg itself is an item in the players inventory, should that mean we create a separate page for it? With its description and other properties? YuvixAdun (talk) 14:59, 23 March 2024 (UTC)
Gold Prices?
What happened to the egg price tag? Everything is showing as coins now :(
--Darkstreamfarm (talk) 02:48, 24 March 2024 (UTC)
- Changes to templates need to be discussed first, and then when agreement has been reached, the changes need to be carried out in all 12 languages. The changes to Template:Price weren't discussed, much less agreed upon or carried out in the other languages. Therefore, they have been reverted. margotbean (talk) 02:49, 24 March 2024 (UTC)
- Started the discussion here; Template_talk:Price, everybody feel free to chip in. YuvixAdun (talk) 07:10, 24 March 2024 (UTC)
- I think the template reversion reflects the fact that, since it has wide-spread effects across the Wiki, changes need prior discussion before their implementation. In addition, when the implementation occurs, the changes need to incorporate full language support so they can be seen correctly in every language. It was a procedural objection, and it's clear that several pages at least were adversely affected when procedure was not followed. Let's be clear that a change to the template is definitely allowable, and may be desirable in matters like this, but the time to sort out possible bugs in changes comes *before* the changes are saved to the template itself. Giles (talk) 22:40, 26 March 2024 (UTC)
Escar-go stats
Most of the racers are identical, but Escar-Go is special in 3 locations. When the racers are initially set up, the default min speed and max speed is 1.5 and 4 respectively; but for Escar-Go, it is 0.5 and 3.5. For the speed burst (which is applied immediately thereafter and other locations), the default time for a burst is 0.25 to 1; with a chance to double, and then Escar-Go gets that cut by 4. After the speed burst ends, there is a 0.75 to 1.5 delay for the next burst, with a chance to cut that in half, and for Escar-Go that result is cut by 4. With the motion, they start off at max speed, and during their speed burst they remain at their max speed. After the speed burst, they slow down at a rate of 0.5 to go towards their min speed. My understanding is that due to the boost time and time to next boost both being cut by a factor of 4, their time spent at maximum speed will be equal. The average time spent at full speed will be 0.78125 or 0.195313 for Escar-Go. The average time spent slowing down will be 0.984375 or 0.246094 for Escar-Go. However, it looks like the slow down doesn't consider the actual time spent slowing down and instead just updates every time the update function is called. Is it possible (perhaps due to frame rate) for the normal racers to spend more time slowing down so they go to their min speed, while Escar-Go spends less time slowing down, so Escar-Go on average ends up faster? And is this frame rate dependent? JackBlack69 (talk) 22:32, 7 April 2024 (UTC)
- Checking some more, the game usually runs at 60 frames per second, making EscarGo slower, and the slowdown process is basically irrelevant. If it would run at 6-20 frames per second, it would be more luck based. But this is primarily due to the different speeds involved, not the different boost times. JackBlack69 (talk) 23:16, 9 April 2024 (UTC)
Food Vendor Stacks
So food from the food vendor stacks with normal food and drinks, allowing total boosts like +6 luck (which is great for the casino!) and +3 speed overall Rangerbookwyrm (talk) 07:31, 11 April 2024 (UTC)
New page for Assassin Bug?
Should we make a new page for the Assassin Bug (the one spawned by a Calico Statue effect)? It has its own sprite sheet in the Content\Characters\Monsters folder, and it has different stats than the Armored Bug. I do think they have the exact same drops, though. Any thoughts? Bluestblur (talk) 00:42, 15 April 2024 (UTC)
scholar question - steps taken
I just got the 'steps taken' question and it said the middle option was incorrect. Does it mean middle as in positioning (which is what I thought it meant) or middle as in value-wise? like one is an incorrect higher number and one is an incorrect lower number? Rangerbookwyrm (talk) 07:09, 28 April 2024 (UTC)
- One is an incorrect higher number and one is an incorrect lower number. I've changed the page to make it more clear. The key is "the order of options is randomized", so the middle value can appear in any of the 3 slots given. margotbean (talk) 19:04, 28 April 2024 (UTC)
Condition for 100-egg bonus on race win
It's not "the first win". I've reloaded and won (on the first day) several times now, with and without sabotage, and gotten 20 eggs every time. There's definitely a bonus in the code (see CollectRacePrizes() in DesertFestival.cs), but I can't figure out what the condition is to get it. Anyone? Rekiy (talk) 19:13, 26 May 2024 (UTC)
- Without stepping through the code, the only clue I can find is the string that gets called when the condition is met, from 1_6_Strings.xnb: "Race_Collect_Prize_Special": "Race Announcer: Escar-go... how?? Um...Well, here's your big payout..."
- So, the first time Escar-go wins? margotbean (talk) 19:34, 26 May 2024 (UTC)
- Makes sense, but that result's still crashing. (This has a history. Search for "stardew valley desert festival race crash" on Google.) Presumably Clarineric got it somehow.
- Another note btw: I'm not able to get to the desert till Pam gets there at 8:50, even on the first day. (I'd edit the page to say so myself, but I'm new here and don't want to step on any toes. Besides, I'm not sure my own research is proof enough.) Rekiy (talk) 00:19, 27 May 2024 (UTC)
- Could you try winning a bet on Escar-go after already winning a bet on a different contestant that day? Wikonimo (talk) 01:21, 27 May 2024 (UTC)
- Bingo! Took a few tries, but can confirm: winning with someone else, then winning with Escar-go lets you collect the 100-egg prize. (It's not a bonus, though - my reward was exactly 100 eggs.) My guess is Escar-go winning is enough, but the game will crash unless you win with someone else first.
- Another note btw: the chef's food buffs don't last all day. Mine lasted ten hours (from 9 AM to 7 PM). Rekiy (talk) 02:32, 27 May 2024 (UTC)
- I can weigh in. The relavent code is DesertFestival OnRaceWon(int winner). If winner == 3 (i.e. it is escargo) and you don't already have the specialRewardsCollected flag it triggers the specialRewardsCollected flag, and goes to the next iteration of the loop. Importantly, this skips the check directly below for a key existing in a dictionary, and then below that incrementing it for a normal prize and adding you to the list of winning farmers. Then in CollectRacePrizes, you get the bonus if needed, and it sets it so you can't get it again until it is cleared, then proceeds to give you 20 eggs for every normal win. It does this by pulling the value from a dictionary which only exists if you get a normal prize, which is likely what causes the crash. I think it will also say that no one won. Will quickly do some testing and report back, maybe make a mod to patch away the crash. JackBlack69 (talk) 11:30, 27 May 2024 (UTC)
- Thank you all for the research! The bug should have been fixed with version 1.6.7 on April 28. Please be sure you are running the latest version of the game! margotbean (talk) 18:16, 27 May 2024 (UTC)
- I'm definitely reading 1.6.8 code, and the bug still exists. Wikonimo (talk) 18:32, 27 May 2024 (UTC)
- Version 1.6.8.24119 here, according to the ? menu. Still crashing. Rekiy (talk) 20:56, 27 May 2024 (UTC)
- The bug does still occur. I'm using 1.6.8. I don't see anything in the version history indicating this bug was fixed. SMAPI appears to prevent it crashing, but still shows it in the log. As I thought it is a System.Collections.Generic.KeyNotFoundException which occurs in StardewValley.Locations.DesertFestival.CollectRacePrizes. I have also made a simple patch which fixes it. This patch uses harmony to prefix OnRaceWon, where it iterates through the players with a winning bet and makes sure the entry exists in the collection.JackBlack69 (talk) 21:43, 27 May 2024 (UTC)
- I don't see any bug report on the forums. Please make a bug report with details and attach the save file or SMAPI log! margotbean (talk) 02:24, 28 May 2024 (UTC)
- Well, it's been a full week now since the bug report (which was there all along, you just missed it!) was reposted, and you still haven't restored the missing info. Pathetic. No wonder this page has so many errors. Does the rest of the wiki? How can I know? You shouldn't be in charge of vegetable peelers, let alone a website. (Speaking of which, great job on the Dyeing talk page too. Wonder how many other people you've pushed out of here?)
- You can go ahead and ban me or whatever, I'mma go play a game with an accurate wiki. Rekiy (talk) 11:19, 4 June 2024 (UTC)
- The bug is already fixed in the 1.6.9 Beta and will be pushed out to the public branch as soon as the patch is ready. Bugs introduced then fixed during beta don't normally appear in version history, but you were free to re-add the information to the page at any time after the bug report was discovered or re-posted.
- I would remind anyone reading this that hostility is not only completely unacceptable on this wiki, but that honest communication will always go farther. 🖖 margotbean (talk) 18:39, 4 June 2024 (UTC)
- I don't see any bug report on the forums. Please make a bug report with details and attach the save file or SMAPI log! margotbean (talk) 02:24, 28 May 2024 (UTC)
- The bug does still occur. I'm using 1.6.8. I don't see anything in the version history indicating this bug was fixed. SMAPI appears to prevent it crashing, but still shows it in the log. As I thought it is a System.Collections.Generic.KeyNotFoundException which occurs in StardewValley.Locations.DesertFestival.CollectRacePrizes. I have also made a simple patch which fixes it. This patch uses harmony to prefix OnRaceWon, where it iterates through the players with a winning bet and makes sure the entry exists in the collection.JackBlack69 (talk) 21:43, 27 May 2024 (UTC)
- Thank you all for the research! The bug should have been fixed with version 1.6.7 on April 28. Please be sure you are running the latest version of the game! margotbean (talk) 18:16, 27 May 2024 (UTC)
- I can weigh in. The relavent code is DesertFestival OnRaceWon(int winner). If winner == 3 (i.e. it is escargo) and you don't already have the specialRewardsCollected flag it triggers the specialRewardsCollected flag, and goes to the next iteration of the loop. Importantly, this skips the check directly below for a key existing in a dictionary, and then below that incrementing it for a normal prize and adding you to the list of winning farmers. Then in CollectRacePrizes, you get the bonus if needed, and it sets it so you can't get it again until it is cleared, then proceeds to give you 20 eggs for every normal win. It does this by pulling the value from a dictionary which only exists if you get a normal prize, which is likely what causes the crash. I think it will also say that no one won. Will quickly do some testing and report back, maybe make a mod to patch away the crash. JackBlack69 (talk) 11:30, 27 May 2024 (UTC)
- Could you try winning a bet on Escar-go after already winning a bet on a different contestant that day? Wikonimo (talk) 01:21, 27 May 2024 (UTC)
Bet time restrictions
Given the back and forth on the page, I decided I would do a bit of digging into the code. From what I can tell, the prompt to place your bet starts in DesertFestival:performAction. For the case "DesertRacerMan", it first checks for prizes, and then if it is before 10 am it says the race is closed. Otherwise, it checks if the race is currently in progress, specifically checking if DesertFestival.currentRaceState.Value >= RaceState.Go, and they haven't announced the winner. It then checks if you can make another guess, by confirming the time is at or after 10 pm AND the race hasn't started, with the same check as before. Then when you actually make the guess it again checks if the race is in progress. So your ability to make a guess depends on the Value of currentRaceState. If it is currently at PreRace, then the 10 minute update puts it to StaringLine, with a timer of 5. Then the normal update process (every tick) to ready, then set, then go, with a delay of 3 between each. Then after the race is over it increments through to RaceEnd, and then either goes to RacesOver or back to PreRace depending on the time. This means 2 things: 1 - You can place a bet (normally) from 10 am, until the last race starts just after 10 pm. Based on the above 5 second, then two 3 second delays, this should be 11 seconds after 10pm, which with the default passage of time of 7 seconds per 10 minutes, brings it to roughly 10:15:43 pm. So without mods to change the passage of time, you can place a bet until part way through 10:10 pm. 2 - In multiplayer, so dialogues don't freeze time, you can open the dialogue before the last race begins, and then wait for it to finish, and then place your bet. This is probably a bug/unintended as I don't think you can use that bet. JackBlack69 (talk) 11:40, 6 July 2024 (UTC)
- I don't have much of a horse in this race other than if I can back up my edit with proof in the form of a youtube video of playing the game on a vanilla installation of 1.6.8 and I directly link the video in my edit summary, I have completed the proof requirement and the edit should stay, not be struck a second time based on nothing but an admin disagreeing. Quoting the code as proof of a behavior is in theory all good, but if the behavior observed in game differs from what the code "says", then the answer isn't that the behavior observed is wrong, it's that the code was misread. There is a time and place for snap judgements of striking misinformation from the record, and it's not when there is decisive evidence to back up the claim. PrincessFelicity (talk) 13:52, 6 July 2024 (UTC)
- A youtube video is in no way proof of anything. When the game behavior seems to differ from what the code says, then stepping through the code may be the only way to find the answer. Thank you JackBlack for the thorough analysis! margotbean (talk) 16:51, 6 July 2024 (UTC)
Clarification of racing time edit/reverts.
Firstly, let me say that "this is how it works for me" is only enough to show that this is one possible way for things to happen. Not everyone plays the exact same way, so they may experience something different. And the race is rare, in that most parts will only process when the player is there as opposed to lots of other things which happen regardless. i.e. most of the race actions are in or called from UpdateWhenCurrentLocation. The other part (for race progress) is in performTenMinuteUpdate which only sets it to go to the starting line and sets a timer.
The way you have worded it implies that these are the definitive times. e.g. you will be able to start betting at 10, and the race will definitely start at 10:15. The next betting period starts at 11:25, with the race then starting at 12:15. But that is not necessarily true.
If you go to the desert festival at 9:50, you will then have the race go to prep mode at 10, and start at roughly 10:15. It will then take a random amount of time for the race to finish for you to be able to start placing bets for the next race. I haven't looked to see what the maximum range is, but just looking at how long it can take for last place to finish after first place, there is more than 7 seconds so more than 10 minutes. So the next betting period will certainly not always start at exactly 11:25.
But what happens if your play style is more unique? What if you only go to the festival at 11:00? Well, then the race starts at roughly 11:15, with you able to bet until 11:15. You then skip the 12 pm race and only have the next race at 2 pm.
What about if you go at 9:50, watch the first race, place a bet while the announcer is announcing the winner, and then leave, coming back just before 12? Well because you didn't give the announcer enough time to finish, they then finish at 12, and you skip the 12 pm race, so the bet you placed at around 11, will be for the next race to start.
As an extreme example, you can go at 9:50, watch the first race, let it complete entirely, then place your bet and leave before the next race starts, and then come back just before the last race is due to start, and the bet you placed early in the morning will be for that race. And while that last race is meant to start just after 10 pm, you can just not be in the area, and have it start much later. So much so that you could pass out before it ends.
But this does raise a few important points:
- The race should be every 2 hours, not every hour. (performTenMinuteClockUpdate has
timeOfDay % 200 == 0
check, which maps to every 2 hours. - The race doesn't actually start on the hour. It preps for start on the hour, and you then need to be there for it to start.
- You can artificially delay the start of the race last race, by not being at the desert festival until just before you pass out at night, with the race starting then.
Not sure what the best way to word those points are.JackBlack69 (talk) 10:28, 15 August 2024 (UTC)
- I don't know how to word those points either, but I've removed the "on the hour" text from the page. I suppose being vague is better than being incorrect, information-wise. margotbean (talk) 20:23, 15 August 2024 (UTC)