/* Scenario: RgrMust4 : "Muster Maze 2" * ==================================== NOTE: Make sure that we have 100% DNA dinosaurs before placing dinosaurs! - (CUT - Make mustering too difficult, continuity issues and stuffs up mustering functionality) Avoidance beacons should be in "open-ish" areas within the maze (they should not be near a fence as when the helicopter flies around them, we don't want the fence obscuring the shot) Brief: "A Park Manager has gone crazy and built a complex enclosure maze and we need to move our valuable herds of Edmontodons and Ouranosaurus. The player must get both Edmontodons and Ouranosaurus herds to the target destination within the time limit." To make this more challenging this mission will include some hungry predators as well as "out of control" avoidance beacons. o Time Limit: 15 minutes o Herbivores in the Park: - 15 x Edmontosaurus (Hell Creek B) - 15 x Ouranosaurus (Chenini) o Carnivores in the park: - 4 x Carcharadontosaurus (Chenini) o Structures in the Park - Low Security Fence maze - 5 x “out-of-control” Avoidance Beacons o Victory Conditions: - 50+% of Edmontosaurus arrive in the muster destination - 50+% of Ouranosaurus arrive in the muster destination */ mission RgrMust4 { ;// mission info .info "budget" 0 .info "objectives" 4 .info "savestate" "RgrMust4" ;// systems to activate/de-activate .systemactive "Economy" false .systemactive "Mail" false .systemactive "Visitor Pool" false .systemactive "Corporate System" false .systemactive "Build Menu" false .systemactive "Enclosure Analyser" false .systemactive "Weather System" false ;// features to disable .featuredisable "AParkGuestbookDialog" .featuredisable "AParkSafetyDialog" .featuredisable "AStructureSummaryDialog" .featuredisable "AParkFinanceDialog" .featuredisable "ADinoSummaryDialog" .featuredisable "GotoParkEntrance" .featuredisable "EmergencyOn" .featuredisable "GotoSafari" .featuredisable "AResearchDialog" .featuredisable "Manager" .featuredisable "SaveGame" ;// Disable all save game menu .featuredisable "LoadGame" ;// Disable all load game menu .featuredisable "ParkManager_Dinosaurs" ;// Disable all "dinosaurs" submenu .featuredisable "ParkManager_Build" ;// Disable the build menu .featuredisable "Command_Orders" ;// Disables ALL "order" commands .featuredisable "AutoRescue" ;// Disables automatic rescues .featuredisable "BuildParkEntrance" ;// Disable build park entrace from manager ;// fossil maps to enable .fossilsenable "Chenini" .fossilsenable "HellCreekB" .fossilsenable "FlamingCliffs" .misparam 4 4 ;// (Number of Ouranos), (Number of Edmontos) needed at muster trigger ;// These numbers are reset on the first time through the missions script .objparam 1 3 ;// (Number of carchas left) .objparam 2 4 4 ;// (Number of Ouranos needed to get through maze), (current number needed on muster area) .objparam 3 4 4 ;// (Number of Edmonts needed to get through maze), (current number needed on muster area) .objparam 4 4 ;// (Number of avoidance beacons left) ;// variable declarations .var iTmp .var iCarnivoreCount .var iCountOurano .var iCountEdmont .var iNeededEdmont .var iNeededOurano .var iTotalEdmont .var iTotalOurano .var iAreaEdmont .var iAreaOurano .var iCurrStep .var iNumBeaconsOperating ;// Set up hint messages .hint 1 "Mission_RgrMust4_Hint6" ;// Shoot out avoidance beacons .objhint 2 1 tip ;// Number of carcha left .objhint 4 2 obj ;// Number Ourano needed in muster area .objhint 8 3 obj ;// Number Edmont needed in muster area .hint 16 "Mission_RgrMust4_Hint4" ;// Enough Ourano in muster area .hint 32 "Mission_RgrMust4_Hint5" ;// Enough Edmont in muster area .objhint 64 4 tip ;// Number of avoidance beacons left ;// mission states state MissionInit { action SetWeatherFrequency(0, 100) action SetWeatherFrequency(1, 0) action SetWeatherFrequency(2, 0) action SetWeatherFrequency(3, 0) action SetWeatherFrequency(4, 0) action SendWeather(0) action LockCurrentWeather(true) action SetAllSpeciesDinoDNA(100); action VaccinateAllDinosaurs() action RemoveAllMailMessages() ;// Set up the number of dinos needed alive for the mission to continue iNeededEdmont = 4 iNeededOurano = 4 ;// Set up minigame action SetCurrentMiniGameParamList(0) ; This is param list AddMiniGameParam() will add Params to action AddMiniGameParam("IsScenario", true) ;// Make it so that the user can't exit the minigame action AddMiniGameParam("SetMiniGameExitEnable", false) ;// **** Allow/Disallow different ranger "modes" ;// Enable Muster action AddMiniGameParam("SetModeEnable", 8, true) ;// Enable Retire action AddMiniGameParam("SetModeEnable", 4, true) ;// **** Allow/Disallow components ;// Allow retire of all dinosaurs, but don't count herbivores as targets, allow avoidance beacons to be "retired" action AddMiniGameParam("SetRetireFlags", 21) ;// Initialises bullet limitation action AddMiniGameParam("InitBulletLimit", -1); ;// Point the arrow at the centre of the muster area when in muster mode action SetMusterTarget(0); ;// The user can freely enter and leave minigames within the mission. ;// Whenever a new minigame is created, it will use this parameter list action SetDefaultMiniGameParamList(0) ;// Start the minigame - RgrMust(2), Game #4 ;// action StartMiniGame(2, 4) ;// This is now performed by the PlayTransition call while the screen is black! action SetAvoidBeaconInstRecharge(true) transition { direct goto PlayFlyOver } } state PlayFlyOver { transition PlayTransition(0, false, 0) { goto StartMission } } state StartMission { transition ShowMissionIntro("facebuttonSattler") { iCurrStep = 1 action StartTimer(1, 10) ;// Start timer action EnableMissionTimer(true) action StartMissionTimer(780.0) ;// Start hints action StartTimer(6, 6) action SetHintFlag(1) ;// Enable "Shoot out avoidance beacons" action SetHintFlag(2) ;// Enable "Number of carcha left" action SetHintFlag(4) ;// Enable "Number Ourano needed in muster area" action SetHintFlag(8) ;// Enable "Number Edmont needed in muster area" action SetHintFlag(64) ;// Enable "Number of avoidance beacons left" action ShowNextHint() ;// Show first hint action StartTimer(2, 5) goto MainLoop } } ;// Check to see if the main loop has been completed state MainLoop { ;// Keep carnivores enraged transition iCurrStep == 1 { action SetDinoStress(4, 1.0) goto CheckCarnivores } transition iCurrStep == 2 { goto CheckEdmont } transition iCurrStep == 3 { goto CheckOurano } transition iCurrStep == 4 { goto CheckVictory } transition HasMissionTimerElapsed() { ;// Outta time goto MissionFailureOuttaTime } transition iCurrStep == 5 { goto CheckTimers } transition iCurrStep == 6 { goto CheckBeacons } transition iCurrStep == 7 { iCurrStep = 1 goto MainLoop } } state NextStep { action AddImm(iCurrStep, 1) transition { goto MainLoop } } state CheckVictory { transition GetObjectiveStatus(2) == false { ;// Don't have necessary Ouranos goto NextStep } transition GetObjectiveStatus(3) == false { ;// Don't have necessary Edmonts goto NextStep } transition { goto MissionVictory } } state CheckBeacons { iNumBeaconsOperating = NumBeaconsOperating() action SetObjectiveParametersFromVars(4, iNumBeaconsOperating) ;// All beacons have been stopped transition iNumBeaconsOperating == 0 { action ClearHintFlag(1) ;// Clear "Shoot out avoidance beacons" action ClearHintFlag(64) ;// Clear "Number of avoidance beacons left" action SetObjectiveStatus(4, true) goto NextStep } transition { goto NextStep } } state CheckTimers { transition HasTimerElapsed(1) { ;// Keep dinos on the muster area action SedateDinosOnTriggerArea(0, 5) action StartTimer(1, 10) goto NextStep } transition HasTimerElapsed(2) { ;// Keep all herbivores in the active state action StartTimer(2, 20) action SetDinoTypeToMissionMode(6) goto NextStep } transition HasTimerElapsed(6) { ;// Show the next hint action ShowNextHint() action StartTimer(6, 6) goto NextStep } transition { goto NextStep } } state CheckCarnivores { action SetObjectiveStatus(1, false) iCarnivoreCount = GetDinoTypeCount(4) action SetObjectiveParametersFromVars(1, iCarnivoreCount) transition iCarnivoreCount == 0 { action SetObjectiveStatus(1, true) action ClearHintFlag(2) ;// Disable "Number of carcha left" goto NextStep } transition { goto NextStep } } state CheckEdmont { ;// Too many Edmonts were killed transition GetSpeciesCount("edmont") < iNeededEdmont { goto MissionFailureEdmont } iCountEdmont = GetDinoTypeCountInArea(0, "edmont") transition iCountEdmont >= iNeededEdmont { iTmp = 0 action SetObjectiveParametersFromVars(3, iNeededEdmont, iTmp) action SetObjectiveStatus(3, true) action ClearHintFlag(8) ;// Clear "Number Edmont needed in muster area" action SetHintFlag(32) ;// Set "Enough Edmont in muster area" goto NextStep } iTmp = iNeededEdmont action SubVarFromVar(iTmp, iCountEdmont) action SetObjectiveParametersFromVars(3, iNeededEdmont, iTmp) transition { goto NextStep } } state CheckOurano { ;// Too many Ouranos were killed transition GetSpeciesCount("ourano") < iNeededOurano { goto MissionFailureOurano } iCountOurano = GetDinoTypeCountInArea(0, "ourano") transition iCountOurano >= iNeededOurano { iTmp = 0 action SetObjectiveParametersFromVars(2, iNeededOurano, iTmp) action SetObjectiveStatus(2, true) action ClearHintFlag(4) ;// Clear "Number Ourano needed in muster area" action SetHintFlag(16) ;// Set "Enough Ourano in muster area" goto NextStep } iTmp = iNeededOurano action SubVarFromVar(iTmp, iCountOurano) action SetObjectiveParametersFromVars(2, iNeededOurano, iTmp) transition { goto NextStep } } ;// Success state MissionVictory { action StartTimer(1, 3) transition { goto MissionVictoryWait } } state MissionVictoryWait { transition HasTimerElapsed(1) { goto MissionVictoryShow } } state MissionVictoryShow { transition ShowMissionVictory("facebuttonSattler") { action SetMissionWon() action UnlockMission("Safari4") action SaveOptions() goto SaveOptions } } state SaveOptions { transition NotCurrentGameState("AOptionsSaveState") { goto MissionComplete } } ;// Mission failed because too many Edmonts were killed state MissionFailureEdmont { transition ShowMissionFailure("facebuttonSattler", "Mission_RgrMust4_Failure_Edmont") { goto MissionComplete } } ;// Mission failed because too many ouranos were killed state MissionFailureOurano { transition ShowMissionFailure("facebuttonSattler", "Mission_RgrMust4_Failure_Ourano") { goto MissionComplete } } ;// Mission failed because the gallis weren't mustered within the given time state MissionFailureOuttaTime { transition ShowMissionFailure("facebuttonSattler", "Mission_RgrMust4_Failure_OuttaTime") { goto MissionComplete } } ;// Go back to the front screen final state MissionComplete { } }