/* Scenario: safari mission 3: Danger Club Photo Safari * ==================================== Brief: The wealthy thrill seekers from the Danger Club are offering to donate a fortune to Jurassic Park. In order to qualify for the donation, the Club has requested that we show them evidence of truly thrilling safari rides. We need a safari expert, like yourself, to go out into the park and get thrilling photos of dinosaurs fighting. You must score 200 points in order to successfully complete this mission. Can you help us? * Available Jeeps: 5 Jeeps * Photos available: 10 Objectives: ------------ Objective 1: You have ten photos for capturing scenes of carnivores hunting, fighting and eating. The scarier you make your photos the better the score. All photos will be given a score, you must score over 200 points. Carnivores should have their hunting need completely turned up for this mission. No matter how much hunting they do, they should always want more. The player will need to be able to spot dinosaur behaviours on the radar. This park will be full of carnivores and prey so it should not be difficult to get photos of violent dinosaur activity. The particular behaviours that the player will want to capture are: Hunting, Hunger, Eating[?], Fighting [Pre-canned animations] As there will likely be a huge casualty rate amongst the dinosaur population, we should have a series of hatcheries which will spawn replacement dinosaur into the park environment when a dinosaur is killed. Dinosaurs in the Park: Carnivores: [5 species] 2 x Tyrannosaurus 1 x Spinosaurus 1 x Carcharadontosaurus 10 x Dilophosaurus 5 x Ceratosaurus Herbivores: [6 species] 5 x Ouranosaurs 6 x Styracosaurus 10 x Pachycephalosaurus 10 x Cory 10 x Anky 10 x Dryosaurus DNA --- Morrison Judith River Chenini Organized in the following enclosures: * Tyrannosaurus Spinosaurus and Dryosaurus with 1 x Carnivore Feeder, plus Hatchery * Tyrannosaurus, Velociraptor and Triceratops with 1 x Carnivore Feeder and 1 x Herbivore Feeder, plus Hatchery. * Torosaurus, Styracosaurus and Dilophosaurus with 1 x Carnivore Feeder and 1 x Herbivore Feeder, plus Hatchery. * Ceratosaurus and Homalocephale with 1 x Herbivore Feeder, 1 x Carnivore Feeder, plus Hatchery * Carcharadontosaurus and Parasaurolophus, plus 1 x Herbivore Feeder and 1 x Carnivore Feeder, plus Hatchery. * Once the player has taken all their photos they should then return to base to analyse the photos. When the jeep arrives back in the Safari Depot, then the player should receive the final score. Victory Conditions: Total score of the players ten photos is 200 points or greater. Failure Conditions: Total score of the player is ten photos is below 200 points. */ mission Safari3 { ;// mission info .info "budget" 50000000 ; Make sure there's enough money to spawn lots of dinos .info "objectives" 1 .info "savestate" "Safari3" ;// systems to activate/de-activate .systemactive "Economy" false .systemactive "Visitor Pool" false .systemactive "Corporate System" false .systemactive "Build Menu" false .systemactive "Enclosure Analyser" false .systemactive "Weather System" false .systemactive "Mail" false ;// Features to disable in the mission .featuredisable "SaveGame" .featuredisable "LoadGame" .featuredisable "Demolish" .featuredisable "Build" .featuredisable "Dinosaurs" .featuredisable "Manager" .featuredisable "Attractions" .featuredisable "Paths" .featuredisable "Amenities" .featuredisable "Security" .featuredisable "Environment" .featuredisable "PaleoFlora" .featuredisable "ModernFlora" .featuredisable "Flatten" .featuredisable "Mountain" .featuredisable "Lake" .featuredisable "GotoParkEntrance" .featuredisable "BuildParkEntrance" .featuredisable "AFossilHuntDialog" .featuredisable "ADNAInventoryDialog" .featuredisable "AFossilMarketDialog" .featuredisable "ADNAModificationDialog" .featuredisable "ADinoSummaryDialog" .featuredisable "AParkSafetyDialog" .featuredisable "AParkFinanceDialog" .featuredisable "AStructureSummaryDialog" .featuredisable "AEntertainmentSummaryDialog" .featuredisable "AParkGuestbookDialog" .featuredisable "AHeadOfficePerformanceDialog" .featuredisable "Order_SpeciesInfo" .featuredisable "Order_StructureSummary" .featuredisable "Order_Guestbook" .featuredisable "Order_Subdue" .featuredisable "Order_Retire" .featuredisable "Order_Vaccinate" .featuredisable "Order_LethalGene" .featuredisable "EmergencyOn" .featuredisable "GotoChopper" .featuredisable "AResearchDialog" .featuredisable "maintdep" .featuredisable "fountn" .featuredisable "bin" .featuredisable "bench" .featuredisable "road" .featuredisable "kiosk" .featuredisable "toilet" .featuredisable "picnic" .featuredisable "shop" .featuredisable "vent" .featuredisable "viewplat" .featuredisable "hventry" .featuredisable "bllnride" .featuredisable "safari" .featuredisable "welccntr" .featuredisable "huntplat" .featuredisable "rangerdp" .featuredisable "scamera" .featuredisable "abeacbld" .featuredisable "turret" .featuredisable "shelter" .featuredisable "hatchery" .featuredisable "carnfdsp" .featuredisable "herbfdsp" .featuredisable "lurebld" .featuredisable "wt1sct90" .featuredisable "wt2sct90" .featuredisable "wt3sct90" .fossilsenable "Chenini" .fossilsenable "FlamingCliffs" .fossilsenable "JudithRiverB" ;// mission parameters .misparam ;// objective parameters .objparam 1 200 ;// variable declarations (Example) .var iJeepsRemaining .var iPhotoGoal .var iTemp .var iTemp2 .var iObjTip .var bDisplayedNoPhotosMessage .var iTip ;// --------------------------------------------------------------- ;// mission states state MissionInit { ; Jeeps for this mission iJeepsRemaining = 3 iPhotoGoal = 200 iTemp = 200 iTemp2 = 0 iObjTip = 1 iTip = 1 bDisplayedNoPhotosMessage = false action SetAllSafariDepotsAutoSpawn() action VaccinateAllDinosaurs() action RemoveAllMailMessages() action SetObjectiveScore(iPhotoGoal) ; // Enable and start mission timer ;action EnableMissionTimer(true) ;action StartMissionTimer(1200) ; 20 minutues ; // Set mini-game flags action ClearAllMiniGameParams() action SetCurrentMiniGameParamList(0) ; This is param list AddMiniGameParam() will add Params to action AddMiniGameParam("SafariFlag", 163) ; Unlimited fuel + display jeeps remaing action AddMiniGameParam("JeepNotThreat", true) ; Dinos not scared of jeep action AddMiniGameParam("IsScenario", true) action SetDefaultMiniGameParamList(0) action SetJeepsAvailable(iJeepsRemaining) action SetJeepsRemaining(iJeepsRemaining) ; Setup photo album action SetMaximumPhotos(10) action ResetPhotoAlbum() ; Setup analyser (the ONLY way to score points in this mission is from pictures of carnivores) action SetPhotoAnalyserParam("Weights", 0.0, 1.0, 0.0, 0.0) ; Terrain, dinos, trees, wildlife action SetPhotoAnalyserParam("AddBias", "Violence") ; Only score high for violent images of dinos action SetPhotoAnalyserParam("Multiplier", 40.0) ; //Score multiplier action SetUnitTypeSelectable("rgrcopt", true) action SetUnitTypeSelectable("rangerdp", true) action SetUnitTypeSelectable("welccntr", true) iTemp = 0 action SetObjectiveParametersFromVars(1, iPhotoGoal, iTemp, iPhotoGoal) ; Goal, total, remaing action StartTimer(2, 5) action StartTimer(3, 5) action StartTimer(4, 30) action StartTimer(1, 20) action SetAllCarnivoresHungry() transition { direct goto PlayFlyOver } } ;// --------------------------------------------------------------- state PlayFlyOver { transition PlayTransition(1, false, 1) { direct goto StartMission } } ;// --------------------------------------------------------------- state StartMission { transition ShowMissionIntro() { direct goto DisplayObjectives } } ;// --------------------------------------------------------------- state DisplayObjectives { transition ShowObjectiveMessage(1) { action StartTimer(1, 2) goto StartGame } } ;// --------------------------------------------------------------- state StartGame { transition ;// StartMiniGame(1,1) ;// This is now performed by the PlayTransition call while the screen is black! { goto MissionLoop } } ;// --------------------------------------------------------------- state MissionLoop { ; Switch objective tips transition HasTimerElapsed(2) { action StartTimer(2, 10) goto SwitchTips } ; Update tips transition HasTimerElapsed(5) { action StartTimer(5, 2) goto UpdateTips } ; Keep the carnivores hungry transition HasTimerElapsed(1) { goto MakeCarnivoresHunger } ; // Player has returned to the safari depot with their photos transition HasSafariJeepReturned() { goto UserReturnedToDepot } ; // Mini-game unitdestroyed transition IsMiniGameUnitDestroyed() { goto JeepDestroyed } ; Reset any dead jeeps back to their safari depot transition HasTimerElapsed(3) { action ResetDeadJeeps() action StartTimer(3, 5) goto MissionLoop } transition GetTotalPhotoScore() >= 200 { goto DecideMissionOutcome } transition GetPhotosAvailable() == 0 { goto NoPhotosLeft } ; Every 30 seconds vaccinate all dinos (so as respawned dinos from hatchery are also vaccinated) transition HasTimerElapsed(4) { action StartTimer(4, 30) action VaccinateAllDinosaurs() goto MissionLoop } } ;// --------------------------------------------------------------- state JeepDestroyed { transition { action SubImm(iJeepsRemaining, 1) action SetJeepsRemaining(iJeepsRemaining) goto HasJeepsLeft } } ;// --------------------------------------------------------------- state HasJeepsLeft { transition iJeepsRemaining >= 1 { goto DisplayJeepsLeft } ; No jeeps left, end mission transition { goto DecideMissionOutcome } } ;// --------------------------------------------------------------- state WaitThenRestartMiniGame { transition HasTimerElapsed(1) { goto FadeOutNow } } ;// --------------------------------------------------------------- state FadeOutNow { transition FadeOutAndRespawnJeep() { goto MissionLoop } } ;// --------------------------------------------------------------- state DisplayJeepsLeft { ; You have blah jeeps left, go and purchase another. transition SetMessageLocale("Mission_Safari1_JeepDestroyed_H", "Mission_Safari1_JeepsLeft") { action StartTimer(1,5) goto WaitThenRestartMiniGame } } ;// --------------------------------------------------------------- state UserReturnedToDepot { ; Other wise just continue with mission transition { goto DecideMissionOutcome } } ;// --------------------------------------------------------------- state MakeCarnivoresHunger { action SetAllCarnivoresHungry() action SetDinoStress(4, 1.0) transition { action StartTimer(1, 5) goto MissionLoop } } ;// --------------------------------------------------------------- state DecideMissionOutcome { ; Achieved photo score transition GetTotalPhotoScore() >= 200 { action StartTimer(1, 3) goto PreVictoryWait } transition iJeepsRemaining < 1 { goto MissionFailed_NoJeepsLeft } ; Else you failed transition { goto MissionFailed } } ;// --------------------------------------------------------------- state PreVictoryWait { transition HasTimerElapsed(1) { goto MissionVictory } } ; // Victory message ;// --------------------------------------------------------------- state MissionVictory { transition ShowMissionVictory() { action SetMissionWon() action UnlockMission("Safari5") action SaveOptions() action StartTimer(1, 1) goto SaveOptions } } ;// --------------------------------------------------------------- state SaveOptions { transition NotCurrentGameState("AOptionsSaveState") { goto PostVictoryDisplayScores } } ;// --------------------------------------------------------------- state PostVictoryDisplayScores { transition ShowPhotoAnalyserDialog() { goto MissionComplete } } ; // Failure message ;// --------------------------------------------------------------- state MissionFailed { transition ShowMissionFailure() { goto PostFailState } } ;// --------------------------------------------------------------- state MissionFailed_NoJeepsLeft { transition ShowMissionFailure("facebuttonHammond", "Mission_Safari1_NoJeepsLeft") { action StartTimer(1, 6) action ShowObjectives() goto PostFailState } } ;// --------------------------------------------------------------- state PostFailState { transition ShowPhotoAlbumDialog() { goto MissionComplete } } ;// --------------------------------------------------------------- ; // Will return to front end final state MissionComplete { } ;// --------------------------------------------------------------- state NoPhotosLeft { transition { action StartTimer(1,2) goto WaitForDecide } } ;// --------------------------------------------------------------- state WaitForDecide { transition HasTimerElapsed(1) { goto DecideMissionOutcome } } ;; **************** ;; TIPS ;; **************** ;// --------------------------------------------------------------- state UpdateTips { transition iTip == 1 { iTemp = 200 iTemp2 = GetTotalPhotoScore() action SubVarFromVar(iTemp, iTemp2) action Clip(iTemp, 0, 200) action ShowMiniGameLocaleMessageHint("Hint_Safari_H1", true, iTemp) goto MissionLoop } transition iTip == 2 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H2", true, iJeepsRemaining) goto MissionLoop } transition iTip == 3 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H3", true) goto MissionLoop } transition iTip == 4 { ; action ShowMiniGameLocaleMessageHint("Hint_Safari_H4", true) ; Skip this one iTip = 5 action ShowMiniGameLocaleMessageHint("Hint_Safari_H5", true) goto MissionLoop } transition iTip == 5 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H5", true) goto MissionLoop } transition iTip == 6 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H6", true) goto MissionLoop } transition iTip == 7 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H7", true) goto MissionLoop } ;Hint_Safari_H8 = "Only thrilling and dangerous photos will score high points!"; transition iTip == 8 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H8", true) goto MissionLoop } ;Hint_Safari_H9 = "Be patient and keep your distance"; transition iTip == 9 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H9", true) goto MissionLoop } ;Hint_Safari_H10 = "Use the horn to scare away nearby dinosaurs"; transition iTip == 10 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H10", true) goto MissionLoop } ;Hint_Safari_H11 = "Don't get too close, the camera flash will frighten the dinosaurs"; transition iTip == 11 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H11", true) goto MissionLoop } transition iTip == 12 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H15", true) goto MissionLoop } ;Hint_Safari_H12 = "Good work, objective %1 completed!"; transition iTip == 13 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H12", true) goto MissionLoop } ;Hint_Safari_H13 = "%1 %{1:objective:objectives} remaining"; transition iTip == 14 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H13", true) goto MissionLoop } transition iTip == 99 { action ShowMiniGameLocaleMessageHint("Hint_Safari_H4", true) goto MissionLoop } } ;// --------------------------------------------------------------- state SwitchTips { ; Don't show tips once we've reached the score transition GetTotalPhotoScore() >= 200 { iTip = 99 goto UpdateTips } action AddImm(iTip, 1) transition iTip > 12 { iTip = 1 goto UpdateTips } transition { goto UpdateTips } } }