themeparks
themeparks copied to clipboard
[Discussion] Ride wait time when not evaluated by the park
I never went to a Six Flags park. On the readme file, it's specified that all the six flags parks supports ride waiting times.
I checked the responses for Six Flags Great Adventure, and the waiting time is null, which is interpreted as 'ride closed' by the library (lib\sixflags\sixflagsbase.js:59).
E.g.
{
"rideId": 263,
"status": "AttractionStatusOpen",
"waitTime": null
}
waitTime: (ride.status === 'AttractionStatusOpen' ? (parseInt(ride.waitTime, 10) || -1) : -1),
We cannot distinguish a closed attraction, the library gives the same result.
{
"rideId":11617,
"status":"AttractionStatusTemporarilyClosed", // also "AttractionStatusClosed"
"waitTime":null
}
How could we manage the 'open ride but no waiting time' status?
I think that the readme should also mention it (related to #12)
I think we usually just return a wait time of "0". Under the assumption (a good assumption??) that rides without wait times usually don't have much of a queue.
Should it maybe be this instead? waitTime: (ride.status === 'AttractionStatusOpen' ? (parseInt(ride.waitTime, 10) || 0) : -1),
I think it's a bad assumption. If some parks have open/close/down informations but not the waiting time, the waiting time should not be 0 OR we should have a flag on the park or ride to interpret it. For me, the easiest solution is to set waiting time to "null" but still maintaining the state. It could be done by using a new negative number when calling UpdateRide. Eg.
- waitTime >= 0 : ride open and waiting time known
- waitTime = -1 : closed
- waitTime = -2 : down
- waitTime = -3 : refurbishment
- waitTime = -4 : open but waiting time unknown (at the end, will return "Open" as status and "null" as waitTime)
I need to ponder this, I find "open but waiting time unknown" really confusing as you never really "know" a wait time, it's all guessing by the parks using what data they have, and I have never been to a theme park where they just shrug rather than taking some guess at the wait time.
I understand your point. I'm not an English native, so let's find another expression than "open but waiting time unknown".
Do you agree on the concept of having this kind of state (status of ride without waiting time)? How do you want us to apply it on the source code?
I will try to update the following table in the meantime:
Park | Ride Status | Ride Wait Times |
---|---|---|
Magic Kingdom - Walt Disney World Florida | ✓ | ✓ |
Epcot - Walt Disney World Florida | ✓ | ✓ |
Hollywood Studios - Walt Disney World Florida | ✓ | ✓ |
Animal Kingdom - Walt Disney World Florida | ✓ | ✓ |
Disneyland Resort - Magic Kingdom | ✓ | ✓ |
Disneyland Resort - California Adventure | ✓ | ✓ |
Disneyland Paris - Magic Kingdom | ✓ | ✓ |
Walt Disney Studios - Disneyland Paris | ✓ | ✓ |
Hong Kong Disneyland | ✓ | ✗ |
Magic Kingdom - Shanghai Disney Resort | ✓ | ✗ |
Tokyo Disney Resort - Magic Kingdom | ✓ | ? |
Tokyo Disney Resort - Disney Sea | ✓ | ✓ |
Europa Park | ✓ | ✓ |
Hershey Park | ✓ | ✓ |
Parc-Asterix | ✓ | ✓ |
California's Great America | ✓ | ✓ |
Canada's Wonderland | ✓ | ✓ |
Carowinds | ✓ | ✓ |
Cedar Point | ✓ | ✓ |
Kings Island | ✓ | ✓ |
Knott's Berry Farm | ✓ | ✓ |
Dollywood | ✓ | ✓ |
Silver Dollar City | ✓ | ✓ |
Seaworld Orlando | ✓ | ✓ |
Efteling | ✓ | ✓ |
Universal Studios Florida | ✓ | ✓ |
Universal's Islands Of Adventure | ✓ | ✓ |
Universal Volcano Bay | ✓ | ✗ |
Universal Studios Hollywood | ✓ | ✓ |
Universal Studios Singapore | ✓ | ? |
Six Flags Over Texas | ✓ | ✗ |
Six Flags Over Georgia | ✓ | ✓ |
Six Flags St. Louis | ✓ | ✓ |
Six Flags Great Adventure | ✓ | ✗ |
Six Flags Magic Mountain | ✓ | ✗ |
Six Flags Great America | ✓ | ✗ |
Six Flags Fiesta Texas | ✓ | ✓ |
Six Flags Hurricane Harbor, Arlington | ✓ | ✗ |
Six Flags Hurricane Harbor, Los Angeles | ✓ | ✗ |
Six Flags America | ✓ | ✗ |
Six Flags Discovery Kingdom | ✓ | ✓ |
Six Flags New England | ✓ | ✓ |
Six Flags Hurricane Harbor, Jackson | ✓ | ✗ |
The Great Escape | ✓ | ✗ |
Six Flags White Water, Atlanta | ✓ | ✗ |
Six Flags México | ✓ | ✗ |
La Ronde, Montreal | ✓ | ✗ |
Six Flags Hurricane Harbor, Oaxtepec | ✓ | ✗ |
Six Flags Hurricane Harbor, Concord | ✓ | ✗ |
PortAventura | ✓ | ✓ |
Ferrari Land | ✓ | ✗ |
Alton Towers | ✓ | ✓ |
Thorpe Park | ✓ | ✓ |
Chessington World Of Adventures | ✓ | ✓ |
Bellewaerde | ✓ | ✓ |
Phantasialand | ✓ | ✓ |
OK, so should we add a new ride status? Maybe -5 for Unknown? Or is that maybe too vauge?
OK, so should we add a new ride status? Maybe -5 for Unknown? Or is that maybe too vauge?
IMHO, We don't need a "Unknown" status, but a "Open but wait time not shared by the park" status lol
I submitted a PR to accept null as a valid value for ride.waitTime, to illustrate my opinion.
Currently (before the PR), if you look at the AsterixPark, some rides have waitTime set to NaN, and it still passes the OnlineTest check.
// In asterixpark.js, with 'ridetime.latency = undefined'
rideUpdateData.waitTime = parseInt(ridetime.latency, 10);
// so rideUpdateData.waitTime = NaN
// In OnlineTest
typeOf rideUpdateData.waitTime === 'number' // is true when waitTime = NaN
// so the test passes: the NaN value is considered valid even if it's more a code issue than a real value.
For me, NaN should not be a valid value, but null should be considered as valid, as 'null' symbolise the fact that we explicitly set that the waitTime is not shared by the park.
Another approach is to consider that the waitTime is not mandatory, and add it in the meta data. But in this case, it's a big rework for every park.
Favourite proramming wtf is "typeof NaN === 'number'"
Having null times makes sense to me
Hahaha discovered it with this issue :)