/* Spanky new improved tutorial script file. Alex McLean */ /* Tutorial Script (Revised version) */ //variables private INT tutState; private INT dpMovedCount; public int initialPowerValue; //initial power level public TEXTSTRING m_msg1; public TEXTSTRING m_msg2; public TEXTSTRING m_msg3; public TEXTSTRING m_msg4; public TEXTSTRING m_msg5; public TEXTSTRING m_msg6; public TEXTSTRING m_msg7; public TEXTSTRING m_msg8; public TEXTSTRING m_msg9; public TEXTSTRING m_msg10; public TEXTSTRING m_msg11; public TEXTSTRING m_msg12; public TEXTSTRING m_msg13; public TEXTSTRING m_msg14; public TEXTSTRING m_msg15; public TEXTSTRING m_msg16; public TEXTSTRING m_msg17; public TEXTSTRING m_msg18; public TEXTSTRING m_msg19; public TEXTSTRING m_msg20; public TEXTSTRING m_msg21; public TEXTSTRING m_msg22; public TEXTSTRING m_msg23; public TEXTSTRING m_msg24; public TEXTSTRING m_msge1; public TEXTSTRING m_msge2; public TEXTSTRING m_msge3; public TEXTSTRING m_msge4; public TEXTSTRING m_msge5; public TEXTSTRING m_msge6; public TEXTSTRING m_msge7; public TEXTSTRING m_msge8; public TEXTSTRING m_msge9; public TEXTSTRING m_msge10; public TEXTSTRING m_msge11; public TEXTSTRING m_msge12; public TEXTSTRING m_msge13; public TEXTSTRING m_msge14; public TEXTSTRING m_msge15; public TEXTSTRING m_msge16; public TEXTSTRING m_msge17; public TEXTSTRING m_msge18; public TEXTSTRING m_msge19; public TEXTSTRING factoryRPL; //components public SENSOR defaultSensor; public BODY viperBody; public BODY howitzerBody; public BODY missileBody; public BODY trikeBody; public BODY buggyBody; public BODY babaBody; public CONSTRUCT spade; public PROPULSION wheeledProp; public PROPULSION trackProp; public PROPULSION babaProp; private DROID selDroid; //selected droid public STRUCTURESTAT powerGen; public STRUCTURESTAT oilDerrick; public STRUCTURE commandCentre; public STRUCTURE factoryStruc, researchStruc; public FEATURE res1; private FEATURE hiddenArtefact; public FEATURESTAT crate; public int art1X, art1Y; public INTMESSAGE art1Msg; public STRUCTURESTAT research; public RESEARCHSTAT artefact; public STRUCTURESTAT factory; public WEAPON mg; public SOUND SND_ARTIFACT_DIS; public SOUND SND_TUT1; public SOUND SND_TUT2; public SOUND SND_TUT3; public SOUND SND_TUT4; public SOUND SND_TUT5; public SOUND SND_TUT6; public SOUND SND_TUT7; public SOUND SND_TUT8; public SOUND SND_TUT9; public SOUND SND_TUT10; public SOUND SND_TUT11; public SOUND SND_TUT12; public SOUND SND_TUT13; public SOUND SND_TUT14; public SOUND SND_TUT15; public SOUND SND_TUT16; public SOUND SND_TUT17; public SOUND SND_TUT18; public SOUND SND_TUT19; public SOUND SND_TUT20; public SOUND SND_TUT21; public SOUND SND_TUT22; public SOUND SND_TUT23; public SOUND SND_TUT24; public SOUND SND_TUT25; //public SOUND SND_TUT26; //public SOUND SND_TUT27; public SOUND SND_TUT28; public SOUND SND_TUT29; public SOUND SND_TUT30; public SOUND SND_TUT31; public SOUND SND_TUT32; public SOUND SND_TUT33; public SOUND SND_TUT34; public SOUND SND_TUT35; public SOUND SND_TUT36; public SOUND SND_TUT37; public SOUND SND_TUT38; public SOUND SND_TUT39; public SOUND SND_TUT40; public SOUND SND_TUT41; public SOUND SND_TUT42; public SOUND SND_TUT43; public SOUND SND_TUT44; public SOUND SND_TUT45; public SOUND SND_TUT46; public SOUND SND_TUT47; public SOUND SND_TUT48; public SOUND SND_TUT49; public SOUND SND_TUT50; public SOUND SND_TUT51; public SOUND SND_TUT52; public SOUND SND_TUT53; public SOUND SND_TUT54; public SOUND SND_TUT55; public SOUND SND_TUT56; public SOUND SND_TUT57; public SOUND SND_TUT58; public SOUND SND_TUT59; public SOUND SND_TUT60; public SOUND SND_TUT61; public SOUND SND_TUT62; public SOUND SND_TUT63; public SOUND SND_TUT64; public SOUND SND_TUT65; public SOUND SND_TUT66; public SOUND SND_TUT67; public SOUND SND_TUT68; public SOUND SND_TUT69; public SOUND SND_TUT70; public SOUND SND_TUT71; public SOUND SND_TUT72; public SOUND SND_TUT73; public SOUND SND_TUT74; public SOUND SND_TUT75; //public SOUND SND_TUT76; //public SOUND SND_TUT77; public SOUND SND_TUT78; //public SOUND SND_TUT79; //public SOUND SND_TUT80; public SOUND SND_TUT81; public SOUND SND_TUT82; public SOUND SND_TUT83; public SOUND SND_TUT84; //proximity messages public SOUND SND_GEN_ART_HERE; public SOUND SND_RESO_HERE; public SOUND SND_DROIDS_REQ; public SOUND SND_FRIEND_LZ; public SOUND SND_ENEMY_LZ; //Design screen buttons public int NEWDESIGN_BUT, TURRET_BUT, BODY_BUT, PROP_BUT; public int WEAP_BUT, SYS_BUT, COMM_BUT; //holder for the researchCompleted callback - can use it if we want, but not really necessary private RESEARCHSTAT researchDone; //triggers trigger droidSelTrig(CALL_DROID_SELECTED, ref selDroid); trigger droidHelpTrig((selDroid.order==DORDER_HELPBUILD), 5); trigger droidHelpTrig2((selDroid.order==DORDER_NONE), 5); trigger tutorialTrigger(every,10); trigger beingBuilt(structureBeingBuilt(powerGen, 0), 10); trigger derrickBeingBuilt(structureBeingBuilt(oilDerrick, 0), 10); trigger inRange(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 256), 5); trigger nextTo(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 128), 5); trigger researchBeingBuilt(structureBeingBuilt(research, 0), 10); trigger factoryBeingBuilt(structureBeingBuilt(factory, 0), 10); trigger droidBuilt(CALL_DROIDBUILT); trigger manurunTrig(CALL_MANURUN); trigger manulistTrig(CALL_MANULIST); trigger buildlistTrig(CALL_BUILDLIST); trigger buildgridTrig(CALL_BUILDGRID); trigger researchlistTrig(CALL_RESEARCHLIST); trigger desTrig(CALL_BUTTON_PRESSED, IDRET_DESIGN); trigger intelTrig(CALL_BUTTON_PRESSED, IDRET_INTELMAP); trigger newdesTrig(CALL_BUTTON_PRESSED, NEWDESIGN_BUT); trigger turretTrig2(CALL_DESIGN_WEAPON); trigger bodyTrig(CALL_BUTTON_PRESSED, BODY_BUT); trigger bodyTrig2(CALL_DESIGN_BODY); trigger propTrig2(CALL_DESIGN_PROPULSION); trigger desQuit(CALL_DESIGN_QUIT); trigger prodrunTrig(CALL_BUTTON_PRESSED, IDRET_MANUFACTURE); trigger prodrunTrig2(not(structureIdle(factoryStruc)), 5); trigger researchartTrig(not(structureIdle(researchStruc)), 5); trigger designScreenQuitted(CALL_DESIGN_QUIT); trigger trigDeliv(CALL_DELIVPOINTMOVED); // Alex's new features event setupEvent; event buildDerrick; event truckSelected; event derrickBuilt; event buildIconChosen; event buildItemChosen; event tellToHelpBuild; event otherUnitSelected; event correctUnit; event helpedToBuild; event powerGenBuilt; event atArtefactSite; event buildResearchCentre; event buildIconChosenResearch; event rfUnderConstruction; event researchCentreBuilt; event researchIconSelected; event artefactChosen; event researchCompleted; event designSelected; event design1; event design3; event design4; event design5; event design7; event droidCreated; event buildIconChosenFactory; event factoryChosen; event factoryBuilt; event manufactureChosen; event manufactureIconChosen; event delivPointMoved; event buildSelectedFactory; event soundBug; event firstDroidBuilt; event videoDone; // ------------------------------------------------------------- /* Main entry event - performs setup and the like */ event setupEvent(CALL_GAMEINIT) { // ajl: setup templates... tutorialTemplates(); // Set the flag to say we're in the tutorial - C Variable inTutorial = TRUE; // Specify the initial viewing position centreViewPos(3840,3840); // Set the initial level of radar zoom setRadarZoom(1); // Set up the game level variable gameLevel = 0; // Num times delivery point moved dpMovedCount = 0; // Remove all the reticule buttons - we don't need them removeReticuleButton(MANUFACTURE,TRUE); removeReticuleButton(RESEARCH,TRUE); removeReticuleButton(INTELMAP,TRUE); removeReticuleButton(DESIGN,TRUE); removeReticuleButton(BUILD,TRUE); removeReticuleButton(OPTIONS,TRUE); // Set up our initial power level - declared in .slo file setPowerLevel(initialPowerValue,0); // Make some components available for later makeComponentAvailable(viperBody,0); makeComponentAvailable(spade,0); makeComponentAvailable(wheeledProp,0); makeComponentAvailable(mg,0); // Flag the default sensor setDefaultSensor(defaultSensor,0); // Setup the structure limits for all structures setStructureLimits(factory,1,0); setStructureLimits(oilDerrick,1,0); setStructureLimits(powerGen,1,0); setStructureLimits(research,1,0); // Fire off track one on the CD if it's there... playCDAudio(1); // Fire off next one setEventTrigger(soundBug,tutorialTrigger); // And set this event to inactive - switch off setEventTrigger(setupEvent,inactive); // Cam3daynight has set to cam 3 so reset to cam 1 - GJ setCampaignNumber(1); } // ------------------------------------------------------------- event soundBug(inactive) { // Wait a bit pause(20); pause(20); // needed cos you can't have a pause in CALL_GAMEINIT playSound(SND_TUT1,0); addConsoleText(m_msge15,0); // ... and setup the first real event for action setEventTrigger(buildDerrick,tutorialTrigger); setEventTrigger(soundBug,inactive); } // ------------------------------------------------------------- // First event-Sets things up for the player to build a derrick event buildDerrick(inactive) { // Setup our state tutState = 1; //wait pause(20); tagConsoleText(m_msge16,0); // Playsound "Oil resources are key to your success" playSound(SND_TUT2,0); // Allow the player to build derricks enableStructure(oilDerrick,0); // PlaySound "To build an oil derrick, select one of your trucks" playSound(SND_TUT3,0); pause(40); tagConsoleText(m_msg1,0); // Close this event down setEventTrigger(buildDerrick,inactive); } // ------------------------------------------------------------- // What to do when we get the truck selected event truckSelected(CALL_DROID_SELECTED,ref selDroid) { tutState = 2; // Wait.. pause(10); addConsoleText(m_msg2,0); // Playsound "then left click the oil pool indicated by the radar pulse" playSound(SND_TUT4,0); // Switch off this event - we don't need it anymore setEventTrigger(truckSelected,inactive); } // ------------------------------------------------------------- // What to do when the resource extractor has been built event derrickBuilt(CALL_RESEX_BUILT) { tutState = 3; // Wait for a wee bit... pause(20); addConsoleText(m_msg3,0); // PlaySound "The oil derrick is currently dormant" playSound(SND_TUT5,0); // PlaySound "To extract the oil and convert it into power // a power generator is needed" playSound(SND_TUT6,0); // wait... pause(20); // Allow power generators to be built enableStructure(powerGen,0); // PlaySound "Left click the flashing build icon" playSound(SND_TUT7,0); pause(40); tagConsoleText(m_msge1,0); // We want them to build a power generator now, so add the // build button addReticuleButton(BUILD); // Set it off flashing flashOn(IDRET_BUILD); // Close this event setEventTrigger(derrickBuilt,inactive); } // ------------------------------------------------------------- // Fires off when player has clicked on the build icon event buildIconChosen(buildlistTrig) { tutState = 4; // Stop the build icon flashing... flashOff(IDRET_BUILD); // PlaySound "Now left click the power generator in the build menu" playSound(SND_TUT8,0); tagConsoleText(m_msge2,0); setEventTrigger(buildItemChosen,buildgridTrig); // Close this event setEventTrigger(buildIconChosen,inactive); } // ------------------------------------------------------------- // Fires off when we've clicked on the item in the build menu event buildItemChosen(inactive) { tutState = 5; addConsoleText(m_msg4,0); // PlaySound "Position the square at your base then left click // to start the build process playSound(SND_TUT9,0); // Close event setEventTrigger(buildItemChosen,inactive); } // ------------------------------------------------------------- // Fires off when power station is being built event tellToHelpBuild(beingBuilt) { tutState = 6; addConsoleText(m_msg5,0); // PlaySound "To increase your build rate, select your second truck" playSound(SND_TUT10,0); // Set up other trigger - conflict on droid selection? setEventTrigger(otherUnitSelected,droidSelTrig); // get rid of the build button to stop people being silly buggers removeReticuleButton(BUILD,TRUE); // Close this event setEventTrigger(tellToHelpBuild,inactive); } // ------------------------------------------------------------- event otherUnitSelected(inactive) { tutState = 7; // Got to be the right unit - not the one already building setEventTrigger(correctUnit,droidHelpTrig2); // Close this one setEventTrigger(otherUnitSelected,inactive); } // ------------------------------------------------------------- event correctUnit(inactive) { if(tutState==7) { tutState = 8; // PlaySound "Now left click the power generator site playSound(SND_TUT11,0); addConsoleText(m_msge18,0); // Setup the helped-to-build event setEventTrigger(helpedToBuild,droidHelpTrig); // And close this one setEventTrigger(correctUnit,inactive); } } // ------------------------------------------------------------- event helpedToBuild(inactive) { if(tutState == 8) { tutState = 9; addConsoleText(m_msge12,0); // PlaySound "the truck will now help to build the power // generator" playSound(SND_TUT12,0); // Close this event setEventTrigger(helpedToBuild,inactive); } else { // default behaviour clearConsole(); setEventTrigger(helpedToBuild,inactive); } } // ------------------------------------------------------------- // PART TWO - Power Station has been built, by whatever means // ------------------------------------------------------------- // ------------------------------------------------------------- // Whatever - eventually they'll manage to build a power gen..?! event powerGenBuilt(CALL_POWERGEN_BUILT) { tutState = 10; clearConsole(); // Wait for a bit pause(30); // PlaySound "during missions, you need to ..." playSound(SND_TUT13,0); addConsoleText(m_msge19,0); // Wait a bit pause(40); // PlaySound "Use a truck to search..." playSound(SND_TUT15,0); // Wait for a bit pause(20); tagConsoleText(m_msg6,0); pause(20); tagConsoleText(m_msge13,0); // PlaySound "Move the pointer over the artifact" playSound(SND_TUT16,0); // Wait.. pause(30); // PlaySound "when it turns into a grabber..." playSound(SND_TUT17,0); // Add the feature to the map hiddenArtefact = addFeature(crate,art1X,art1Y); // Fire off the in range event setEventTrigger(atArtefactSite,inRange); // And kill this event setEventTrigger(powerGenBuilt,inactive); } // ------------------------------------------------------------- event atArtefactSite(inactive) { tutState = 11; // Enable the research - premature? enableResearch(artefact,0); // Wait for a bit pause(10); // fire off the build research centre malarky setEventTrigger(buildResearchCentre,nextTo); // Shut this event setEventTrigger(atArtefactSite,inactive); } // ------------------------------------------------------------- event buildResearchCentre(inactive) { tutState = 12; addConsoleText(m_msg7,0); // Remove the artefact destroyFeature(hiddenArtefact); // PlaySound "A research facility is required..." playSound(SND_TUT18,0); // Wait.. pause(30); // PlaySound "Left click the build icon" playSound(SND_TUT19,0); tagConsoleText(m_msge1,0); // Allow them to build research centres enableStructure(research,0); // Get the build icon back addReticuleButton(BUILD); // flash the icon flashOn(IDRET_BUILD); // Activate event setEventTrigger(buildIconChosenResearch,buildlistTrig); // close this event setEventTrigger(buildResearchCentre,inactive); } // ------------------------------------------------------------- event buildIconChosenResearch(inactive) { tutState = 13; // Switch off flashing... flashOff(IDRET_BUILD); // PlaySound "Now left click thr research facility.." playSound(SND_TUT20,0); tagConsoleText(m_msge4,0); setEventTrigger(buildIconChosenResearch,inactive); } // ------------------------------------------------------------- event rfUnderConstruction(researchBeingBuilt) { tutState = 14; clearConsole(); // Wait... pause(10); // And get rid of it removeReticuleButton(BUILD,TRUE); // PlaySound "Use your other truck to help build..." playSound(SND_TUT21,0); // fire off this event second time on different state number - woohoo! setEventTrigger(helpedToBuild,droidHelpTrig); addConsoleText(m_msge5,0); // close event setEventTrigger(rfUnderConstruction,inactive); } // ------------------------------------------------------------- // PART THREE - they've built a research centre!!! Whahey! // ------------------------------------------------------------- // ------------------------------------------------------------- event researchCentreBuilt(CALL_RESEARCH_BUILT) { tutState = 15; // Get the structure researchStruc = getStructure(research,0); // Wait pause(30); // PlaySound "to resarch the artefact.." playSound(SND_TUT22,0); addConsoleText(m_msge6,0); // Better add it then addReticuleButton(RESEARCH); // Set it flashing flashOn(RESEARCH); // Set the event that catches this setEventTrigger(researchIconSelected,researchlistTrig); // Kill this event setEventTrigger(researchCentreBuilt,inactive); } // ------------------------------------------------------------- event researchIconSelected(inactive) { tutState = 16; // stop the icon flashing flashOff(IDRET_RESEARCH); // PlaySound "Now left click the icon" playSound(SND_TUT23,0); tagConsoleText(m_msge7,0); // Fire up event setEventTrigger(artefactChosen,researchartTrig); // Close this one setEventTrigger(researchIconSelected,inactive); } // ------------------------------------------------------------- event artefactChosen(inactive) { tutState = 17; addConsoleText(m_msg8,0); // PlaySound "the artefact will now be researched" playSound(SND_TUT24,0); // Remove the button removeReticuleButton(RESEARCH,TRUE); // Close event... setEventTrigger(artefactChosen,inactive); } // ------------------------------------------------------------- event researchCompleted(CALL_RESEARCHCOMPLETED, ref researchDone) { tutState = 18; pause(20); // PlaySound "the researched mg can now be used to .." playSound(SND_TUT28,0); addConsoleText(m_msg9,0); pause(20); // Remove intel button removeReticuleButton(INTELMAP,TRUE); // Add the design button addReticuleButton(DESIGN); // Flash Icon flashOn(IDRET_DESIGN); // PlaySound "Left click the deisgn icon" playSound(SND_TUT29,0); pause(30); tagConsoleText(m_msge8,0); // Setup up design event setEventTrigger(designSelected,desTrig); // Kill this event.. setEventTrigger(researchCompleted,inactive); } // ------------------------------------------------------------- event designSelected(inactive) { tutState = 20; // Switch off flashing flashOff(IDRET_DESIGN); addConsoleText(m_msg10,0); // PlaySound "To start your design" playSound(SND_TUT30,0); // Close this one setEventTrigger(designSelected,inactive); } // ------------------------------------------------------------- // they're going to clikc on the vehicle body icon event design1(newdesTrig) { tutState = 21; clearConsole(); addConsoleText(m_msg11,0); // PlaySound "Now left click the vehicle body icon" playSound(SND_TUT31,0); // Kill this event. setEventTrigger(design1, inactive); } // tell them to click on the body - it's flashing event design4(bodyTrig) { tutState = 22; addConsoleText(m_msg12,0); playSound(SND_TUT32,0); // Kill event setEventTrigger(design4, inactive); } // tell them to select the viper body event design5(bodyTrig2) { tutState = 23; addConsoleText(m_msg13,0); // PlaySound "then left click the machine gun to complete design" playSound(SND_TUT33,0); setEventTrigger(design5, inactive); } event design7(propTrig2) { tutState = 27; // click the machinegun to finalise oyur design addConsoleText(m_msg16,0); playSound(SND_TUT34,0); setEventTrigger(design7, inactive); } event design3(turretTrig2) { // Your vehicle is named automatically playSound(SND_TUT35,0); playSound(SND_TUT36,0); // Kill event setEventTrigger(design3, inactive); } // ------------------------------------------------------------- // PART FOUR - they've designed their first droid!!! // ------------------------------------------------------------- // ------------------------------------------------------------- event droidDesigned(CALL_DROIDDESIGNED) { tutState = 28; removeReticuleButton(DESIGN,FALSE); // wait.. pause(60); addConsoleText(m_msg17,0); // 'to finalise your design' playSound(SND_TUT37,0); setEventTrigger(droidCreated,designScreenQuitted); setEventTrigger(droidDesigned,inactive); } // ------------------------------------------------------------- event droidCreated(inactive) { tutState = 29; clearConsole(); // Allow 'em to build factories. enableStructure(factory,0); // Wait for a bit pause(30); addConsoleText(m_msg18,0); // PlaySound "A factory is now required to build..." playSound(SND_TUT38,0); // Wait for a bit... pause(20); // PlaySound "Left click the build icon" playSound(SND_TUT39,0); pause(20); tagConsoleText(m_msge1,0); // Add the reticule button addReticuleButton(BUILD); // Start it flashing flashOn(IDRET_BUILD); // Start next event setEventTrigger(buildSelectedFactory,buildlistTrig); // Kill this event setEventTrigger(droidCreated,inactive); } // ------------------------------------------------------------- event buildSelectedFactory(inactive) { tutState = 30; //playSound "Now left click the factory" playSound(SND_TUT40,0); tagConsoleText(m_msge9,0); // Setup next event setEventTrigger(buildIconChosenFactory,buildgridTrig); // Kill this event setEventTrigger(buildSelectedFactory,inactive); } // ------------------------------------------------------------- event buildIconChosenFactory(inactive) { tutState = 31; // Stop icon flashing flashOff(IDRET_BUILD); // Playsound - now position it at your base playSound(SND_TUT41,0); addConsoleText(m_msg19,0); // kill event setEventTrigger(buildIconChosenFactory,inactive); } // ------------------------------------------------------------- event factoryChosen(factoryBeingBuilt) { tutState = 32; clearConsole(); pause(10); // Remove build button removeReticuleButton(BUILD,TRUE); playSound(SND_TUT42,0); pause(10); addConsoleText(m_msg20,0); pause(20); playSound(SND_TUT43,0); tagConsoleText(m_msg21,0); pause(40); tagConsoleText(m_msge14,0); playSound(SND_TUT44,0); // Kill event setEventTrigger(factoryChosen,inactive); } // ------------------------------------------------------------- event delivPointMoved(trigDeliv) { if(dpMovedCount == 0) { tutState = 33; dpMovedCount = 1; playSound(SND_TUT45,0); tagConsoleText(m_msge17,0); } else { if(tutState==33) { // if they're getting carried away - just clear the console clearConsole(); } } } // ------------------------------------------------------------- event factoryBuilt(CALL_FACTORY_BUILT) { tutState = 34; addConsoleText(m_msg22,0); // get a handle to the built structure factoryStruc = getStructure(factory,0); // Wait... pause(30); // PlaySound "Manufactre a viper" playSound(SND_TUT47,0); // wait.. pause(10); // Add the manufacture icon addReticuleButton(MANUFACTURE); // Setup event trigger setEventTrigger(manufactureChosen,manulistTrig); // Flash the manufacture button flashOn(IDRET_MANUFACTURE); // PlaySound "Left click the flashing manufacture icon" playSound(SND_TUT48,0); tagConsoleText(m_msge10,0); // Kill this event setEventTrigger(factoryBuilt,inactive); } // ------------------------------------------------------------- event manufactureChosen(inactive) { tutState = 35; // Stop flashing flashOff(IDRET_MANUFACTURE); // Play sound "now in te build list..." playSound(SND_TUT49,0); playSound(SND_TUT50,0); tagConsoleText(m_msge11,0); // Set off next event setEventTrigger(manufactureIconChosen,prodrunTrig2); // Kill this one... setEventTrigger(manufactureChosen,inactive); } // ------------------------------------------------------------- event manufactureIconChosen(inactive) { tutState = 36; addConsoleText(m_msg23,0); // playSoundHere playSound(SND_TUT52,0); setEventTrigger(manufactureIconChosen,inactive); } // ------------------------------------------------------------- // PART FIVE - They've built their first droid. // ------------------------------------------------------------- event firstDroidBuilt(droidBuilt) { tutState = 37; // Remove Button removeReticuleButton(MANUFACTURE,TRUE); playVideo(factoryRPL,NULLSTRING); setEventTrigger(firstDroidBuilt,inactive); } // the video is over event videoDone(CALL_VIDEO_QUIT) { pause(20); playSound(SND_TUT81,0); addConsoleText(m_msg24,0); pause(80); gameOver(TRUE); setEventTrigger(videoDone,inactive); }