Skip to content
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

[Discussion] Ride wait time when not evaluated by the park #180

Open
jeanmatthieud opened this issue Jun 14, 2019 · 12 comments
Open

[Discussion] Ride wait time when not evaluated by the park #180

jeanmatthieud opened this issue Jun 14, 2019 · 12 comments

Comments

@jeanmatthieud
Copy link
Contributor

jeanmatthieud commented Jun 14, 2019

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?

@jeanmatthieud
Copy link
Contributor Author

I think that the readme should also mention it (related to #12)

@cubehouse
Copy link
Owner

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),

@jeanmatthieud
Copy link
Contributor Author

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)

@cubehouse
Copy link
Owner

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.

@jeanmatthieud
Copy link
Contributor Author

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?

@jeanmatthieud
Copy link
Contributor Author

jeanmatthieud commented Jun 17, 2019

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

jeanmatthieud added a commit to jeanmatthieud/themeparks that referenced this issue Jun 17, 2019
@cubehouse
Copy link
Owner

OK, so should we add a new ride status?
Maybe -5 for Unknown? Or is that maybe too vauge?

@jeanmatthieud
Copy link
Contributor Author

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

jeanmatthieud added a commit to jeanmatthieud/themeparks that referenced this issue Jun 18, 2019
@jeanmatthieud
Copy link
Contributor Author

jeanmatthieud commented Jun 18, 2019

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.

@jeanmatthieud
Copy link
Contributor Author

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.

@cubehouse
Copy link
Owner

Favourite proramming wtf is "typeof NaN === 'number'"

Having null times makes sense to me

@jeanmatthieud
Copy link
Contributor Author

Hahaha discovered it with this issue :)

@jeanmatthieud jeanmatthieud changed the title [Discussion] Six Flags Ride Times [Discussion] Ride wait time when not evaluated by the park Jun 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants