inigmatus / GAP

Giving Aircraft a Purpose (GAP) - Air Flights, Tours, Coast Guard, STS
http://forum.kerbalspaceprogram.com/index.php?/topic/129208-contract-pack-giving-aircraft-a-purpose-gap-10-beta-air-flights-tours-coast-guard-sts-105jan-4-2016/
MIT License
8 stars 5 forks source link

GAP: Add Stricter VPG Definitions to Avoid Unintended Craft Tripping Contracts Preventing Intended Crafts from Completing Parameters #177

Closed inigmatus closed 8 years ago

inigmatus commented 8 years ago

Some user contracts appear to not complete after definition check passed. I suspect unintended crafts usurping a contract's vessel definition preventing later intended craft from completing. Fix? I need to add stricter vessel definition checks to all contracts so only the player's intended craft is defined and thus registered for the contract.

Solutions (Pick One Per Contract):

  1. (Specific) Some contracts are so specific in what they want a vessel to have or do (parts specific or mission specific) that such is used within the definition VPG, making all other solutions unnecessary. (Such as Wright Glider)
  2. (Preflight) Safety After Launch - Add a pre-flight check of waiting stationary on runway for 20 seconds. (invasive countdown seen by player) - Wright-2500m tests ok with this.
  3. (Landing) Safety After Mission but Before Landing (no need for KerbalDeaths check?)- Copy the first parameter listed after definition VPG, into the definition VPG as a hidden parameter. (non invasive / aka hidden from player view): I am not quite sure of using this method since VPG would not complete until hidden parameter completed, thus confusing players wondering why a goal with all checked subgoals is not completed. I could add a title to it to tell player to complete first goal parameter that follows but that just seems silly. It might make sense to avoid the hidden copy, and just move the first parameter itself into definition VPG altogether but this would really look weird on the contract screen, especially for waypoint and single goal contracts as the justification would be visually messed up. - All other Milestone contracts have this at the moment now but I'm reconsidering. The only reasonable implementation of this solution is encapsulating every parameter before landing, into the define VPG, thus effectively making this usable only for a landing check. This however runs into an existing CC bug that shows hidden parameters unintentionally, and a large number of my contract parameters use hidden values. I'll probably use this solution on a case-by-case if all other solutions don't work well.
  4. (Passenger) Passenger Contracts - Move passenger load parameter to definition parameter - All Airlines and Charters have this apparently, but this will need to be checked.

Not Doable: Removing VPG checks from GAP essentially makes specifying and checking landing zones impossible since toggling to other sitting craft could inadvertently complete contracts.

Completion:

Milestones - Wright-Glider: (Specific) Milestones - Wright-FirstFlight: (Specific) Milestones - SSI-Seaplane (Specific) Milestones - all other (Preflight)

BDArmory Missions - KSP-IslandLandingBD (Specific)

Charters & Airlines - KSP-IslandSurvey (Preflight) Charters & Airlines - KSP-IslandCargoPrep (Specific) Charters & Airlines - KAB (all contracts) (Specific) Charters & Airlines - all others (Passenger)

Coast Guard - CoastGuard-Certification (Preflight) Coast Guard - CoastGuard-CarrierLanding (Preflight) Coast Guard - CoastGuard-CarrierTakeoff (Preflight) Coast Guard - all others (Passenger)

Mining - SSI-Mining (Specific)

Road Trips - KSP-TourBus (Passenger)

Seacraft - IslandTours-Shoreline (Passenger) Seacraft - SSI-Submarine (Preflight) Seacraft - IslandTours-Submarine (Passenger)

Skydiving - all contracts (Preflight)

Space Shuttle Missions - STS-30 (Preflight)

Stunts - all contracts (Preflight)

Done!

inigmatus commented 8 years ago

suggest using waypoint to begin mission (and thus mark craft definitions from there)

credit to GhostMonkeyNKHI for the idea: http://forum.kerbalspaceprogram.com/index.php?/topic/129208-contract-pack-giving-aircraft-a-purpose-gap-112-air-flights-tours-coast-guard-sts-jan-31-2016/&do=findComment&comment=2406661

Whether people revert or not, a crash on the way over to the island doesn't seem relevant to the contract. Crashes during/after the barnstorm are interesting, because safe landing both signals the end of the contract, and is an objective measure of successful barnstorming - you didn't hit the mountains behind the hanger.

What about this idea? You could play "ATC" and have staging area / holding pattern waypoints to signal when a plane is intended for some of the contracts. To take barnstorming again, "ATC" might allow your stunt, but first you have to proceed to Waypoint X and receive clearance. Hitting that waypoint would identify the contract vessel. If you pick the waypoints well enough, there shouldn't be many people hitting them by accident. If they did hit it by accident, or didn't want to go through with the stunt, they could still always safely land and recover to free the tag (right)?

an ATC makes sense for later missions, but not early ones. Thus inconsistency and not a recommended method. What might work better is just a simple countdown timer pre-flight check. A little annoying for sure, but not too long as to make it unbearable. I need VPGs to define landing zones.

inigmatus commented 8 years ago

I think I will instead just use a Reach State and Duration timer to verify a player is stationary on the runway, and have them wait 20 seconds to request clearance for takeoff. Should be long enough.

I tested this with Wright-2500m

inigmatus commented 8 years ago

updated main comment above with solutions and progress. It's slow going all month because I was testing out various solutions. now's the time to pick and choose on a per contract basis now that I've got my head wrapped around fixing this.