New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Boiler breakdown rate should depend on stuff #490
Comments
From mark.l1...@hotmail.co.uk on April 13, 2012 00:31:37 It may say that in the manual, but test it in TH and it is random |
From henke@henke37.cjb.net on April 18, 2012 16:52:54 Of course there still was a random part to it, but even random effects can be influenced by other variables. |
From mark.l1...@hotmail.co.uk on December 03, 2012 12:51:30 Issue 1392 has been merged into this issue. |
From maartenp...@hotmail.nl on April 01, 2013 07:17:12 Labels: -Priority-Medium Priority-Low |
From maartenp...@hotmail.nl on July 04, 2013 12:06:53 Status: Queued |
Im new in CorsixTH, but i know very well the orignal game. I've made some thougs about this issue which i want to discuss. Boiler Breakdown should depend on
My idea ist to have a breakdown score. Each day this score will be increased by some value depend on heating level, ratio radiators/handyman and some random value. If score reaches critical level boiler breaks down. But there should be some independent random part too. The decision if boiler breaks down is now implemented with What do you think about having something like:
with a very low probability it is possible that you have multiple breakdowns within short time, because there is still some random part. I've tested this algorithm in Matlab with 1000 runs and the boiler will breakdown between 58 and 63 months. If you run the same values but with 100% heating rate breakdown will occur every 28 to 32 months. Im not sure about a good ratio radiators/handyman and average time for breakdown. |
In my uninformed opinion both of the time frames are too long. Boiler breakdowns were a semiregular occurrence and most levels can be easily beaten before 5 years. Did you measure the average breakdown rate and range in the original? |
Played yesterday the original game level 1 and 2. Another thing that i noticed which could be related to this topic is that the stuff ask much more for salery in corsixTH than in the original game. |
In the original, disasters are controlld by gbv.DisasterLaunch from what I can observe - this is days between disasters. When that ticks over, there is 25% chance of nothing happening, 50% chance of boiler breakdown (low or high heat) and 25% chance of a vomit wave, you can only get hit with one at a time. Boiler breakdown and duration of breakdowns is affected by handyman/radiator ratios. A ratio of 1 handyman per 8 radiators or better appears to veto all of the breakdowns. Vomit waves get vetoed by some variable also. So its possible to avoid breakdowns, and possible the game randomly doesn't give you the opportunity. If a boiler breakdown is active, its duration is also affected by that ratio, if it goes 1 to 8 or better, then the remaining duration ticks down at twice the rate, if 1 to 5 or better, 3 times the rate. Boiler breakdowns last randomly between 10-30 days. |
Thank you for your analysis. |
How often is in the level configuration, but its every 150, 200, 300 days depending on difficulty. The original literally translates as; if 8 * handymancount < num_radiators then do setbreakdownparameters. The other code paths, just clean up the state so it doesn't interfere next time the function is called, as it is called to count down the duration of the breakdown also. |
I have now implemented it as in the original game. |
From |
Link PR #1345 to this issue. But it might also be abandoned. |
From henke@henke37.cjb.net on April 12, 2012 19:32:18
The boiler currently breaks randomly. According to the manual it should depend on the number of radiators and the number of handymen. I think that the set heating level should be a variable too.
Original issue: http://code.google.com/p/corsix-th/issues/detail?id=1220
The text was updated successfully, but these errors were encountered: