If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Dragon Rage/Source Code
Jump to navigation
Jump to search
This is a sub-page of Dragon Rage.
Found in nearly every folder on the game disc are files that when opened in a text editor contain the following: .ICE - Scripts written in what appears to be a proprietary scripting language called, you guessed it, ice. .POI - A list of the actors in each level, followed by what is likely (According to some of the ICE files) the xyz positions and rotations of said actor. .PMF - XML file giving the x and y locations of "pads" (event triggers) and another unknown set of coordinates. .CML - An XML like file in a script called "Castle". Same as a POI but apparently for destroyable keeps and wall parts.
Contents
- 1 ..\TECH\DATA\AMBUSH\AMBUSH.ICE
- 2 ..\TECH\DATA\AMBUSH\AMBUSH.CML
- 3 ..\TECH\DATA\AMBUSH\AMBUSH.PMF
- 4 ..\TECH\DATA\AMBUSH\AMBUSH.POI
- 5 ..\TECH\DATA\ARMADA\ARMADA.ICE
- 6 ..\TECH\DATA\ARMADA\ARMADA.CML
- 7 ..\TECH\DATA\ARMADA\ARMADA.PMF
- 8 ..\TECH\DATA\ARMADA\ARMADA.POI
- 9 ..\TECH\DATA\COLLSON\BEND.TXT
- 10 ..\TECH\DATA\COLLSON\BSPAN.TXT
- 11 ..\TECH\DATA\COLLSON\CAPN.TXT
- 12 ..\TECH\DATA\COLLSON\COLLSON.INI
- 13 ..\TECH\DATA\COLLSON\DRAGON.TXT
- 14 ..\TECH\DATA\COLLSON\GALVILLA.TXT
- 15 ..\TECH\DATA\COLLSON\GRTHALL.TXT
- 16 ..\TECH\DATA\COLLSON\INCBATOR.TXT
- 17 ..\TECH\DATA\COLLSON\MINE.TXT
- 18 ..\TECH\DATA\COLLSON\PIER.TXT
- 19 ..\TECH\DATA\COLLSON\ROAR.TXT
- 20 ..\TECH\DATA\COLLSON\TRIKEEP.TXT
- 21 ..\TECH\DATA\COLLSON\WALKER.TXT
- 22 ..\TECH\DATA\COLLSON\WINDMILL.TXT
- 23 ..\TECH\DATA\COLLSON\ZEPP.TXT
- 24 ..\TECH\DATA\COLLSON\ZFACTORY.TXT
- 25 ..\TECH\DATA\COVE\COVE.ICE
..\TECH\DATA\AMBUSH\AMBUSH.ICE
include "../scripts/dtypes.ice" include "../scripts/dlightning.ice" constant enum VOICE_OVERS { VO_ADARAINTRO, VO_MULTIWARD, VO_RESCUEDSPRITE, VO_DEADFACTORY, VO_AMBUSH, VO_LEAVECITY, VO_DARKWARD, VO_MANDEKTAUNT, VO_FINDKEY, VO_GRABKEY, VO_WARDGONE, VO_LEVELWIN, VO_LEVELLOSE } // fVO_Player( VO_LEVELLOSE) create xyz dStartLoc create xyz dEndLoc create xyz gTempLoc create float dStartOffset create float dEndOffset // Variables Daryl needs // Daryl: I do? :-) create ObjHandle gModelHandle create ObjHandle gCave1TroopAHandle create ObjHandle gCave1TroopBHandle create ObjHandle gCave1TroopCHandle create ObjHandle gCave2TroopAHandle create ObjHandle gCave2TroopBHandle create ObjHandle gCave2TroopCHandle create ObjHandle gCave3TroopAHandle create ObjHandle gCave3TroopBHandle create ObjHandle gCave3TroopCHandle create ObjHandle gCave4TroopAHandle create ObjHandle gCave4TroopBHandle create ObjHandle gCave4TroopCHandle create ObjHandle gCave5TroopAHandle create ObjHandle gCave5TroopBHandle create ObjHandle gCave5TroopCHandle create ObjHandle gDocksTroopAHandle create ObjHandle gDocksTroopBHandle create ObjHandle gDocksTroopCHandle create ObjHandle gGalleonHandle create ObjHandle gEarthWardGeneratorHandle create integer gIsMultiWardAlive = FALSE create integer gIsPlantAlive = TRUE create integer gIsKeyAlive = FALSE create integer gGateVOs = FALSE create integer gAmbushVOs = FALSE create integer gIsStaticGalleonAlive = FALSE create integer gCave1Start = FALSE create integer gCave2Start = FALSE create integer gCave3Start = FALSE create integer gCave4Start = FALSE create integer gCave5Start = FALSE create integer gCave1 = 12 create integer gCave2 = 12 create integer gCave3 = 12 create integer gCave4 = 12 create integer gCave5 = 12 create integer gDocks = 10 create integer gNewTroop create integer gAmbushCount create integer gBuildingCount create integer gPreKeyCount create integer gKeyCount create integer gGemCount create integer gExitMarker create integer gGotUpgrade = FALSE create integer gEndGame = FALSE create integer gWagonCount create ObjHandle gDarkWardAnchorHandle create ObjHandle gDarkWagonHandle create ObjHandle gAdaraHandle create ObjHandle gSprite1Handle create ObjHandle gExitRockHandle create xyz gLocation create xyz gOrientation = (0, 0, 0) create xyz tempLoc create xyz gEmergencyKeyLoc = (106.4, 56.6, -3) create float gDragonDistance create xyz gGemLoc create ObjHandle gDarkKeyHandle //--------------------------------------------------- // Function declarations //--------------------------------------------------- FUNCTION fInitModels() { //Main Gate fDWardCreatePOI(EARTH, "FireWardGeneratorPoi", 9.0, 15.0) set gEarthWardGeneratorHandle = dModelHandle GetPoiLoc("OrcTowerOctid4x2600Poi", gTempLoc) fDShrineCreateLoc(gTempLoc) AddObjectPOISnap(gModelHandle, "MountedArcher", "GateDefender1Poi") AddObjectPOISnap(gModelHandle, "MountedArcher", "GateDefender2Poi") AddObjectPOISnap(gModelHandle, "MountedArcher", "GateDefender3Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender1Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender2Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender3Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender4Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender5Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictADefender6Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "DistrictBDefender1Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictBDefender2Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "DistrictBDefender3Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictBDefender4Poi") AddObjectPOISnap(gModelHandle, "Archer", "DistrictBDefender5Poi") AddObjectPOISnap(gModelHandle, "MountedArcher", "CavalryGroup1Poi") AddObjectPOISnap(gModelHandle, "MountedArcher", "CavalryGroup2Poi") AddObjectPOISnap(gModelHandle, "MountedArcher", "CavalryGroup3Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender1Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender2Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender3Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender4Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender5Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender6Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender7Poi") AddObjectPOISnap(gModelHandle, "Skirmisher", "PlantDefender8Poi") AddObjectPOI(gModelHandle, "KeepOctStone", "SpriteBuildingPoi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtBonusSprite) AddObjectPOI(gModelHandle, "HouseLowerClassB", "MoreTown1Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "MoreTown2Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "MoreTown3Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "MoreTown4Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "MoreTown5Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "Tavern1Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "Tavern2Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "Tavern3Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "Tavern4Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "Tavern", "Tavern5Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "KeepOctStone", "GreatHallid52x106Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "KeepOctStone", "GreatHallid53x280Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid54x830Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid55x840Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid56x870Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid57x830Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid58x850Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid59x870Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid60x830Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid61x850Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid62x760Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid63x780Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid64x760Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid65x780Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid66x760Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid67x780Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid68x220Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid69x240Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid70x220Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseCountryA", "HouseLowerClassBid71x230Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid72x210Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid73x240Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid74x220Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid75x230Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid76x260Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid77x260Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOISnap(gModelHandle, "Catapult", "Catapultid87x610Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapultid88x660Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapultid89x720Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapultid90x280Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapultid91x330Poi") AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid1x8100Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid2x7900Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseLowerClassB", "HouseLowerClassBid3x7700Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOISnap(gModelHandle, "MonkEarthM", "Ballistaid5x7500Poi") AddObjectPOISnap(gModelHandle, "Archer", "Ballistaid6x7300Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "Ballistaid7x7100Poi") AddObjectPOISnap(gModelHandle, "Archer", "Ballistaid8x7000Poi") AddObjectPOISnap(gModelHandle, "Windmill", "Windmillid49x570Poi") AddObjectPOISnap(gModelHandle, "Windmill", "Windmillid50x610Poi") AddObjectPOISnap(gModelHandle, "Windmill", "Windmillid51x630Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult1Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult2Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult3Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult4Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult5Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult6Poi") AddObjectPOISnap(gModelHandle, "Catapult", "Catapult7Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk1Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk2Poi") AddObjectPOISnap(gModelHandle, "Archer", "EarthMonk3Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk4Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk5Poi") AddObjectPOISnap(gModelHandle, "Archer", "EarthMonk6Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk7Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk8Poi") AddObjectPOISnap(gModelHandle, "Archer", "EarthMonk9Poi") AddObjectPOISnap(gModelHandle, "MonkEarthM", "EarthMonk10Poi") AddObjectPOI(gModelHandle, "HouseMiddleClassA", "MidClass1Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseMiddleClassA", "MidClass2Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseMiddleClassA", "MidClass3Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseMiddleClassA", "MidClass4Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "HouseMiddleClassA", "MidClass5Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadBuilding) AddObjectPOI(gModelHandle, "SuperGalleonDamaged", "StaticGalleon1Poi") SetHitPOInts(gModelHandle, 2000) SetDragonSight(gModelHandle, 0) } FUNCTION fVO_Player (integer whichVO) { select whichVO case VO_ADARAINTRO BEGIN VoiceOverPlay ( VO_13ad096 ) // IceDisplay( "The Orcs are hurting, but they've got one Zeenium factory left. I think it's time you paid them a visit. \n") END case VO_MULTIWARD BEGIN VoiceOverPlay ( VO_13ad097 ) // IceDisplay( "The Orcs just put up Wards all around you. Something doesn't feel right. \n") END case VO_RESCUEDSPRITE BEGIN VoiceOverPlay ( VO_grs005 ) // IceDisplay( "Thank you for rescuing me. \n") END case VO_DEADFACTORY BEGIN VoiceOverPlay ( VO_gnad145 ) // IceDisplay( "Good job. \n") END case VO_AMBUSH BEGIN VoiceOverPlay ( VO_13mk007 ) // IceDisplay( "Surprise, lizard. You shall not be underestimated this time. \n") END case VO_LEAVECITY BEGIN VoiceOverPlay ( VO_13ad098 ) // IceDisplay( "It's an ambush! Orcs everywhere! You've got to get out of here! . \n") END case VO_DARKWARD BEGIN VoiceOverPlay ( VO_13ad099 ) // IceDisplay( "They sealed the gate! \n") END case VO_MANDEKTAUNT BEGIN VoiceOverPlay ( VO_13mk008 ) // IceDisplay( "Ha, ha, ha, ha...ha, ha ha ha, ha ha. Numb miss...No mistakes this time! \n") END case VO_FINDKEY BEGIN VoiceOverPlay ( VO_13ad100 ) // IceDisplay( "There's got to be a Dark Key somewhere in this city; Orcs always keep one around. Keep blowing up buildings until you find it! \n") END case VO_GRABKEY BEGIN VoiceOverPlay ( VO_13ad101 ) // IceDisplay( "There it is, grab it and get out of here! \n") END case VO_WARDGONE BEGIN if ( gGotUpgrade == TRUE ) then BEGIN VoiceOverPlay ( VO_GNAD150 ) // IceDisplay( "Fly into the glowing sphere... \n") END else BEGIN VoiceOverPlay ( VO_gnad135 ) // IceDisplay( "Well Done! \n") END END case VO_LEVELWIN BEGIN VoiceOverPlay ( VO_13ad102 ) // IceDisplay( "Cael, I love what you've done with the place, but we barely escaped the ambush and Mandek's troops are right behind us. Why do I get the feeling you're enjoying yourself? \n") END case VO_LEVELLOSE BEGIN VoiceOverPlay ( VO_13mk009 ) // IceDisplay( "Tonight we feast! Roast Dragon for all! \n") END default BEGIN EXIT // IceDisplay( "Why am I here? What is the meaning of Ice? \n") END EXIT } FUNCTION fCave1Spawn() { set gNewTroop = Random(3) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Cave1 Mounted Archer!!! \n") AddObjectPOISnap(gCave1TroopAHandle, "ArcherMounted", "Cave1SpawnPoi") SetBehaviorPatrol(gCave1TroopAHandle, "Cave1Path", PATH_ONEWAY_FORWARD) AssignTeamID(gCave1TroopAHandle, 0101) set gCave1 = gCave1 - 1 END else if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Cave1 Wizard!!! \n") AddObjectPOI(gCave1TroopBHandle, "MonkWaterA", "Cave1SpawnPoi") fAdjustHeightUp( gCave1TroopBHandle, 1.7 ) //SetObjIceHandler(gCave1TroopBHandle, ICEOBJHANDLER_DEATH, evtCave1Dead) SetBehaviorPatrol(gCave1TroopBHandle, "Cave1Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave1TroopBHandle, 0103) set gCave1 = gCave1 - 3 END ELSE //if (gNewTroop == 2) then BEGIN // IceDisplay ("..................Cave1 War Machine!!! \n") AddObjectPOISnap(gCave1TroopCHandle, "Catapult", "Cave1SpawnPoi") // AddObjectPOI(gCave1TroopCHandle, "Ballista", "Cave1SpawnPoi") //SetObjIceHandler(gCave1TroopCHandle, ICEOBJHANDLER_DEATH, evtCave1Dead) SetBehaviorPatrol(gCave1TroopCHandle, "Cave1Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave1TroopCHandle, 0103) set gCave1 = gCave1 - 3 END EXIT } FUNCTION fCave2Spawn() { set gNewTroop = Random(3) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Cave2 Mounted Archer!!! \n") AddObjectPOISnap(gCave2TroopAHandle, "ArcherMounted", "Cave2SpawnPoi") //SetObjIceHandler(gCave2TroopAHandle, ICEOBJHANDLER_DEATH, evtCave2Dead) SetBehaviorPatrol(gCave2TroopAHandle, "Cave2Path", PATH_ONEWAY_FORWARD) AssignTeamID(gCave2TroopAHandle, 0201) set gCave2 = gCave2 - 1 END else if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Cave2 Wizard!!! \n") AddObjectPOISnap(gCave2TroopBHandle, "MonkAirM", "Cave2SpawnPoi") //SetObjIceHandler(gCave2TroopBHandle, ICEOBJHANDLER_DEATH, evtCave2Dead) SetBehaviorPatrol(gCave2TroopBHandle, "Cave2Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave2TroopBHandle, 0202) set gCave2 = gCave2 - 2 END ELSE //if (gNewTroop == 2) then BEGIN // IceDisplay ("..................Cave2 War Machine!!! \n") AddObjectPOISnap(gCave2TroopCHandle, "Catapult", "Cave2SpawnPoi") //SetObjIceHandler(gCave2TroopCHandle, ICEOBJHANDLER_DEATH, evtCave2Dead) SetBehaviorPatrol(gCave2TroopCHandle, "Cave2Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave2TroopCHandle, 0203) set gCave2 = gCave2 - 3 END EXIT } FUNCTION fCave3Spawn() { set gNewTroop = Random(3) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Cave3 Mounted Archer!!! \n") AddObjectPOISnap(gCave3TroopAHandle, "ArcherMounted", "Cave3SpawnPoi") //SetObjIceHandler(gCave3TroopAHandle, ICEOBJHANDLER_DEATH, evtCave3Dead) SetBehaviorPatrol(gCave3TroopAHandle, "Cave3Path", PATH_ONEWAY_FORWARD) AssignTeamID(gCave3TroopAHandle, 0301) set gCave3 = gCave3 - 1 END else if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Cave3 Wizard!!! \n") AddObjectPOISnap(gCave3TroopBHandle, "ArcherMounted", "Cave3SpawnPoi") //SetObjIceHandler(gCave3TroopBHandle, ICEOBJHANDLER_DEATH, evtCave3Dead) SetBehaviorPatrol(gCave3TroopBHandle, "Cave3Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave3TroopBHandle, 0302) set gCave3 = gCave3 - 2 END ELSE //if (gNewTroop == 2) then BEGIN // IceDisplay ("..................Cave3 War Machine!!! \n") AddObjectPOISnap(gCave3TroopCHandle, "Catapult", "Cave3SpawnPoi") //SetObjIceHandler(gCave3TroopCHandle, ICEOBJHANDLER_DEATH, evtCave3Dead) SetBehaviorPatrol(gCave3TroopCHandle, "Cave3Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave3TroopCHandle, 0303) set gCave3 = gCave3 - 3 END EXIT } FUNCTION fCave4Spawn() { set gNewTroop = Random(3) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Cave4 Mounted Archer!!! \n") AddObjectPOISnap(gCave4TroopAHandle, "ArcherMounted", "Cave4SpawnPoi") //SetObjIceHandler(gCave4TroopAHandle, ICEOBJHANDLER_DEATH, evtCave4Dead) SetBehaviorPatrol(gCave4TroopAHandle, "Cave4Path", PATH_ONEWAY_FORWARD) AssignTeamID(gCave4TroopAHandle, 0401) set gCave4 = gCave4 - 1 END else if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Cave4 Wizard!!! \n") AddObjectPOI(gCave4TroopBHandle, "MonkWaterA", "Cave4SpawnPoi") fAdjustHeightUp( gCave4TroopBHandle, 1.7 ) //SetObjIceHandler(gCave4TroopBHandle, ICEOBJHANDLER_DEATH, evtCave4Dead) SetBehaviorPatrol(gCave4TroopBHandle, "Cave4Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave4TroopBHandle, 0403) set gCave4 = gCave4 - 3 END ELSE //if (gNewTroop == 2) then BEGIN // IceDisplay ("..................Cave4 War Machine!!! \n") AddObjectPOISnap(gCave4TroopCHandle, "Catapult", "Cave4SpawnPoi") // AddObjectPOI(gCave4TroopCHandle, "Ballista", "Cave4SpawnPoi") //SetObjIceHandler(gCave4TroopCHandle, ICEOBJHANDLER_DEATH, evtCave4Dead) SetBehaviorPatrol(gCave4TroopCHandle, "Cave4Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave4TroopCHandle, 0403) set gCave4 = gCave4 - 3 END EXIT } FUNCTION fCave5Spawn() { set gNewTroop = Random(3) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Cave5 Mounted Archer!!! \n") AddObjectPOISnap(gCave5TroopAHandle, "ArcherMounted", "Cave5SpawnPoi") //SetObjIceHandler(gCave5TroopAHandle, ICEOBJHANDLER_DEATH, evtCave5Dead) SetBehaviorPatrol(gCave5TroopAHandle, "Cave5Path", PATH_ONEWAY_FORWARD) AssignTeamID(gCave5TroopAHandle, 0501) set gCave5 = gCave5 - 1 END else if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Cave5 Wizard!!! \n") AddObjectPOISnap(gCave5TroopBHandle, "MonkAirM", "Cave5SpawnPoi") //SetObjIceHandler(gCave5TroopBHandle, ICEOBJHANDLER_DEATH, evtCave5Dead) SetBehaviorPatrol(gCave5TroopBHandle, "Cave5Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave5TroopBHandle, 0502) set gCave5 = gCave5 - 2 END ELSE //if (gNewTroop == 2) then BEGIN // IceDisplay ("..................Cave5 War Machine!!! \n") AddObjectPOISnap(gCave5TroopCHandle, "Catapult", "Cave5SpawnPoi") //SetObjIceHandler(gCave5TroopCHandle, ICEOBJHANDLER_DEATH, evtCave5Dead) SetBehaviorPatrol(gCave5TroopCHandle, "Cave5Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gCave5TroopCHandle, 0503) set gCave5 = gCave5 - 3 END EXIT } FUNCTION fDocksSpawn() { set gNewTroop = Random(2) if (gNewTroop == 0) then BEGIN // IceDisplay ("..................Docks Caravel!!! \n") AddObjectPOI(gDocksTroopAHandle, "Caravel", "OceanSpawnPoi") //SetObjIceHandler(gDocksTroopAHandle, ICEOBJHANDLER_DEATH, evtDocksDead) SetBehaviorPatrol(gDocksTroopAHandle, "DocksPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gDocksTroopAHandle, 0602) set gDocks = gDocks - 2 END ELSE //if (gNewTroop == 1) then BEGIN // IceDisplay ("..................Docks Galleon!!! \n") AddObjectPOI(gDocksTroopBHandle, "Galleon", "OceanSpawnPoi") //SetObjIceHandler(gDocksTroopBHandle, ICEOBJHANDLER_DEATH, evtDocksDead) SetBehaviorPatrol(gDocksTroopBHandle, "DocksPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID(gDocksTroopBHandle, 0603) set gDocks = gDocks - 3 END EXIT } // this function takes the point at which you want the lightning to start... // ...and the point at which you want the lightning to strike... // ...then offsets them within the range you provide via dStartOffset and dEndOffset FUNCTION fSetLightningLocs() { create integer dTemp set dTemp = Random(2) if (dTemp == 0) then BEGIN set dStartLoc^x = dStartLoc^x + dStartOffset END ELSE //if (dTemp == 1) then BEGIN set dStartLoc^x = dStartLoc^x - dStartOffset END set dTemp = Random(2) if (dTemp == 0) then BEGIN set dStartLoc^y = dStartLoc^y + dStartOffset END ELSE //if (dTemp == 1) then BEGIN set dStartLoc^y = dStartLoc^y - dStartOffset END set dTemp = Random(2) if (dTemp == 0) then BEGIN set dEndLoc^x = dEndLoc^x + dEndOffset END ELSE //if (dTemp == 1) then BEGIN set dEndLoc^x = dEndLoc^x - dEndOffset END set dTemp = Random(2) if (dTemp == 0) then BEGIN set dEndLoc^y = dEndLoc^y + dEndOffset END ELSE //if (dTemp == 1) then BEGIN set dEndLoc^y = dEndLoc^y - dEndOffset END EXIT } // // // // // // // // // // // // // // // // // // // // // // // // // // Events begin here // // // // // // // // // // // // // // // // // // // // // // // // // ONCE ANYOF(initializeScripts) (void void) { // IceDisplay ("..................initializeScripts \n") fInitDaryl(5, AMBUSH) fInitModels() //Main Gate HudRadarEnable (DRAGON1) AddObjectPOI(gModelHandle, "ZeeniumFactory", "ProcessingPlantPoi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadPlant) SetHitPOInts(gModelHandle, 3300) fDRadarObj (PRIMARY, gModelHandle) Trigger(evtEricsLightning) Trigger(evtWagons) } ONCE ANYOF( evtLevelBegin ) { AddObjectPoi( gAdaraHandle, "Adara", "Dragon1_Start") // Adara Created TriggerPulse(500, evtSpriteFollowCael, gAdaraHandle) } ANYOF (evtWagons) (void void) { if (gWagonCount < 3) then BEGIN AddObjectPOISnap(gModelHandle, "WagonStandard", "Cave4SpawnPoi") SetBehaviorPatrol(gModelHandle, "WagonPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) SetMovementSpeed(gModelHandle, 0.8) SetDragonSight(gModelHandle, 0) SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtRandomGem) SetObjIceHandler(gModelHandle, ICEOBJHANDLER_PAD, evtWagonPad) set gWagonCount = gWagonCount + 1 TriggerDelay (3*SECOND, evtWagons) END } ANYOF(evtWagonPad) (integer whoGUID string padName) { create objhandle who GUIDtoObjHandle(whoGUID, who) if (StringsEqual(padName,"WagonPad") == TRUE) then BEGIN RemoveObject (who) set gWagonCount = gWagonCount - 1 if (gWagonCount == 0) then BEGIN TriggerDelay (10*SECOND, evtWagons) END END } ANYOF(evtRandomGem) (integer whoGUID integer killerGUID) { create objhandle who if (gGemCount < 20) then BEGIN GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, gTempLoc) set gTempLoc^z = gTempLoc^z + 0.6 fDGemCreateLoc (Random(4), gTempLoc) // DGems.ice has changed to allow all attempts to create gems set gGemCount = gGemCount + 1 END set gWagonCount = gWagonCount - 1 if (gWagonCount == 0) then BEGIN TriggerDelay (15*SECOND, evtWagons) END } ANYOF(evtGemDied) (void void) { set gGemCount = gGemCount - 1 } ONCE ANYOF(evtBonusSprite) (integer whoGUID integer killerGUID) { create objhandle who GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, gTempLoc) AddObjectLOC(gSprite1Handle, "SpriteFire", gTempLoc, gOrientation) TriggerPulse( 1000, evtSpriteFlutter, gSprite1Handle ) TriggerDelay(10*SECOND, evtKillSprites) // IceDisplay ("............Thank you for freeing me!!! \n") fVO_Player( VO_RESCUEDSPRITE) if (fDCanDragonUpgrade() >= 0) then BEGIN // IceDisplay ("............Upgrades!!! \n") set gGotUpgrade = TRUE END ELSE if (fDCanDragonUpgrade() < 0) then BEGIN // IceDisplay ("............Cows!!! \n") AddObjectPOISnap(gModelHandle, "Cow", "Cow1Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow2Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow3Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow4Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow5Poi") END } ANYOF( evtSpriteFlutter ) ( ObjHandle who ) { create xyz newLoc set newLoc^x = gTempLoc^x + float(Random(5)) - float(Random(5)) set newLoc^y = gTempLoc^y + float(Random(5)) - float(Random(5)) set newLoc^z = gTempLoc^z + float(Random(5)) - float(Random(5)) SetBehaviorGoTo( who, newLoc ) } ONCE ANYOF(evtKillSprites) (void void) { RemoveObject(gSprite1Handle) } ONCE ANYOF(evtDeadPlant) (integer whoGUID integer killerGUID) { create xyz tempLoc create integer tempInt create objhandle who GUIDtoObjHandle(whoGUID, who) GetPoiLoc("Bonanza1Poi", gTempLoc) set gTempLoc^z = gTempLoc^z + 1.0 fDGemCreateLoc(Random(4), gTempLoc) GetPoiLoc("Bonanza2Poi", gTempLoc) set gTempLoc^z = gTempLoc^z + 1.0 fDGemCreateLoc(Random(4), gTempLoc) GetPoiLoc("Bonanza3Poi", gTempLoc) set gTempLoc^z = gTempLoc^z + 1.0 fDGemCreateLoc(Random(4), gTempLoc) KillObject (gEarthWardGeneratorHandle) fVO_Player( VO_DEADFACTORY ) AddObjectPoi(gExitRockHandle, "BoulderMedA", "AdaraPoi") set gExitMarker = fDRadarObj( PRIMARY, gExitRockHandle) set gIsPlantAlive = FALSE AddObjectPOISnap(gDarkWagonHandle, "WagonStandard", "DarkWardGeneratorPoi") SetHitPOInts(gDarkWagonHandle, 5000) Trigger(evtAmbush) TriggerDelay(8*SECOND, evtAmbush) TriggerDelay(16*SECOND, evtAmbush) } ANYOF(evtAmbush) (void void) { // IceDisplay ("..................Wave!!! \n") fCave1Spawn() AddObjectPOISnap(gModelHandle, "Archer", "Cave1SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave1Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AddObjectPOISnap(gModelHandle, "ArcherMounted", "Cave1SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave1Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) fCave2Spawn() AddObjectPOISnap(gModelHandle, "Archer", "Cave2SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave2Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) AddObjectPOISnap(gModelHandle, "ArcherMounted", "Cave2SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave2Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) fCave3Spawn() AddObjectPOISnap(gModelHandle, "ArcherMounted", "Cave3SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave3Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) fCave4Spawn() AddObjectPOISnap(gModelHandle, "Archer", "Cave4SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave4Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) fCave5Spawn() AddObjectPOISnap(gModelHandle, "ArcherMounted", "Cave5SpawnPoi") SetBehaviorPatrol(gModelHandle, "Cave5Path", PATH_ONEWAY_FORWARD_NEVERSLEEP) fDocksSpawn() } ANYOF(evtDeadBuilding) (integer whoGUID integer killerGUID) { create objhandle who GUIDtoObjHandle(whoGUID, who) set gBuildingCount = gBuildingCount + 1 // IceDisplay ("..................DeadBuilding \n") if ((gGateVOs == TRUE) AND (gIsKeyAlive == FALSE)) then BEGIN set gPreKeyCount = gPreKeyCount + 1 set gKeyCount = Random(38) if (((gKeyCount <= gBuildingCount) AND (gPreKeyCount > 4)) OR (gBuildingCount >= 41)) then //if keycount is within the range of buildingcount BEGIN set gIsKeyAlive = TRUE GetObjLocation (who, gGemLoc) set gGemLoc^z = gGemLoc^z + 1.0 AddObjectLOC(gDarkKeyHandle, "DarkKey", gGemLoc, gOrientation) fDRadarObj( PRIMARY, gDarkKeyHandle) MakeWardKey(gDarkKeyHandle) fVO_Player( VO_GRABKEY) //fAdaraVO( VO_GRABKEY, 5000 ) END END } ONCE ANYOF (evtItemAquired) (integer playerNum integer itemType) { set gExitMarker = fDRadarObj( PRIMARY, gExitRockHandle) if (gGotUpgrade == TRUE) then BEGIN fDUpgradeCreate() END } ONCE ANYOF (evtItemReleased) (integer playerNum integer itemType) { UnTrigger(evtSpriteFollowCael) GetPoiLoc( "AdaraPoi", gTempLoc ) TriggerPulse( 1000, evtSpriteFlutter, gAdaraHandle ) SetNeverSleepFlag( gAdaraHandle ) fVO_Player( VO_WARDGONE) } ANYOF(evtDragonPad) (integer whoGUID string padName) { create objhandle who GUIDtoObjHandle(whoGUID, who) if ((StringsEqual(padName,"MultiWardPad") == TRUE) AND (gIsMultiWardAlive == FALSE)) then BEGIN fDWardCreatePOI(EARTH, "MultiWardPoi", 12.0, 19.0) fDWardCreatePOI(FIRE, "MultiWardPoi", 10.0, 19.0) set gIsMultiWardAlive = TRUE fVO_Player( VO_MULTIWARD) //fAdaraVO( VO_MULTIWARD, 10000 ) END ELSE if ((StringsEqual(padName,"AmbushVOPad") == TRUE) AND (gIsPlantAlive == FALSE) AND (gAmbushVOs == FALSE)) then BEGIN fVO_Player( VO_AMBUSH) fVO_Player( VO_LEAVECITY) //fAdaraVO( VO_LEAVECITY, 10000 ) set gAmbushVOs = TRUE END ELSE if ((StringsEqual(padName,"MainGatePad") == TRUE) AND (gGateVOs == FALSE)) then BEGIN if (gIsPlantAlive == FALSE) then BEGIN KillObject (gDarkWagonHandle) fDWardCreatePOI(DARK, "DarkWardGeneratorPoi", 10.0, 14.0) set gExitMarker = fDRadarObj( SECONDARY, gExitRockHandle) fVO_Player( VO_DARKWARD) //fAdaraVO( VO_DARKWARD, 14000 ) fVO_Player( VO_MANDEKTAUNT) fVO_Player( VO_FINDKEY) set gEndGame = TRUE set gGateVOs = TRUE if (gBuildingCount == 44) then BEGIN AddObjectLOC(gDarkKeyHandle, "DarkKey", gEmergencyKeyLoc, gOrientation) SetObjIceHandler(gDarkKeyHandle, ICEOBJHANDLER_DEATH, evtDarkKey) fDRadarObj( PRIMARY, gDarkKeyHandle) MakeWardKey(gDarkKeyHandle) END END END ELSE if ((StringsEqual(padName,"EndPad") == TRUE) AND (gEndGame == TRUE) AND (gGotUpgrade == FALSE)) then BEGIN fAltEnd(WIN) // IceDisplay(".................End Pad!!! \n") END } // Cave 1 death. ANYOF(evtObjDiedTeam1) (integer theInt void) { set gCave1 = gCave1 + theInt TriggerDelay(3*SECOND, evtRespawnCave1 ) if (gCave1Start == FALSE) then BEGIN TriggerDelay( 180*SECOND, evtCave1Dead) set gCave1Start = TRUE END } ANYOF( evtRespawnCave1 ) { while (gCave1 > 3) BEGIN fCave1Spawn() END } ONCE ANYOF( evtCave1Dead ) { set gCave1 = -99 } // Cave 2 death. ANYOF(evtObjDiedTeam2) (integer theInt void) { set gCave2 = gCave2 + theInt TriggerDelay(3*SECOND, evtRespawnCave2 ) if (gCave2Start == FALSE) then BEGIN TriggerDelay( 180*SECOND, evtCave2Dead) set gCave2Start = TRUE END } ANYOF( evtRespawnCave2 ) { while (gCave2 > 3) BEGIN fCave2Spawn() END } ONCE ANYOF( evtCave2Dead ) { set gCave2 = -99 } // Cave 3 death. ANYOF(evtObjDiedTeam3) (integer theInt void) { set gCave3 = gCave3 + theInt TriggerDelay(3*SECOND, evtRespawnCave3 ) if (gCave3Start == FALSE) then BEGIN TriggerDelay( 180*SECOND, evtCave3Dead) set gCave3Start = TRUE END } ANYOF( evtRespawnCave3 ) { while (gCave3 > 3) BEGIN fCave3Spawn() END } ONCE ANYOF( evtCave3Dead ) { set gCave3 = -99 } // Cave 4 death. ANYOF(evtObjDiedTeam4) (integer theInt void) { set gCave4 = gCave4 + theInt TriggerDelay(3*SECOND, evtRespawnCave4 ) if (gCave4Start == FALSE) then BEGIN TriggerDelay( 180*SECOND, evtCave4Dead) set gCave4Start = TRUE END } ANYOF( evtRespawnCave4 ) { while (gCave4 > 3) BEGIN fCave4Spawn() END } ONCE ANYOF( evtCave4Dead ) { set gCave4 = -99 } // Cave 5 death. ANYOF(evtObjDiedTeam5) (integer theInt void) { set gCave5 = gCave5 + theInt TriggerDelay(3*SECOND, evtRespawnCave5 ) if (gCave5Start == FALSE) then BEGIN TriggerDelay( 180*SECOND, evtCave5Dead) set gCave5Start = TRUE END } ANYOF( evtRespawnCave5 ) { while (gCave5 > 3) BEGIN fCave5Spawn() END } ONCE ANYOF( evtCave5Dead ) { set gCave5 = -99 } // Docks death. ANYOF(evtObjDiedTeam6) (integer theInt void) { set gDocks = gDocks + theInt TriggerDelay(3*SECOND, evtDocksRespawn ) } ANYOF( evtDocksRespawn ) { while (gDocks > 3) BEGIN fDocksSpawn() END } ANYOF(evtEricsLightning) (void void) { create integer dTemp // //IceDisplay("evtEricsLightning\n") // // choose an area // set dTemp = Random(9) //number of active areas select dTemp case 0 BEGIN // //IceDisplay("location choice 0 \n") set dEndLoc = (44.0, 114.4, 2.8) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 5.0 set dEndOffset = 0.0 END case 1 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (50.9, 114.5, 2.9) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 10.0 set dEndOffset = 0.0 END case 2 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (56.9, 112.4, 2.7) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 10.0 set dEndOffset = 0.0 END case 3 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (58.9, 107.9, 3.0) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 10.0 set dEndOffset = 0.0 END case 4 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (59.0, 103.5, 3.8) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 10.0 set dEndOffset = 0.0 END case 5 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (41.7, 110.3, 0.9) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 5.0 set dEndOffset = 0.0 END case 6 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (51.9, 109.9, 0.8) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 5.0 set dEndOffset = 0.0 END case 7 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (54.9, 101.4, 1.1) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 10.0 set dEndOffset = 0.0 END case 8 BEGIN // //IceDisplay("location choice 1 \n") set dEndLoc = (59.0, 103.5, 1.0) set dStartLoc = dEndLoc set dStartLoc^z = dStartLoc^z + 10.0 set dStartOffset = 5.0 set dEndOffset = 0.0 END default BEGIN EXIT // IceDisplay("sdfbweberbzsdrrbzwegewzbwerwgwebrwr \n") END fSetLightningLocs() // // choose type of bolt to shoot in that area // set dTemp = Random(3) select dTemp case 0 BEGIN // //IceDisplay("Config choice 0 \n") set dLparam1 = ELIGHTNING_EFFECT_OPTION_THICK // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BRANCH // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT + ELIGHTNING_EFFECT_OPTION_FADE // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(700))*0.001) set dLparam1 = ELIGHTNING_EFFECT_OPTION_THICK // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BOLT // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT + ELIGHTNING_EFFECT_OPTION_FADE // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(600))*0.001) END case 1 BEGIN // //IceDisplay("Config choice 1 \n") set dLparam1 = ELIGHTNING_EFFECT_OPTION_THICK // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BRANCH // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(600))*0.001) set dLparam1 = ELIGHTNING_EFFECT_OPTION_THICK // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BOLT // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(500))*0.001) set dLparam1 = ELIGHTNING_EFFECT_OPTION_THICK // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BOLT // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(500))*0.001) END case 2 BEGIN // //IceDisplay("Config choice 2 \n") set dLparam1 = ELIGHTNING_EFFECT_OPTION_THIN // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BOLT // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(500))*0.001) set dLparam1 = ELIGHTNING_EFFECT_OPTION_THIN // choose one of (ELIGHTNING_EFFECT_OPTION_THICK, ELIGHTNING_EFFECT_OPTION_THIN) set dLparam2 = ELIGHTNING_EFFECT_OPTION_BOLT // choose one of (ELIGHTNING_EFFECT_OPTION_BOLT, ELIGHTNING_EFFECT_OPTION_SHAFT, ELIGHTNING_EFFECT_OPTION_BRANCH) set dLparam3 = ELIGHTNING_EFFECT_OPTION_COLD // choose one of (ELIGHTNING_EFFECT_OPTION_HOT, ELIGHTNING_EFFECT_OPTION_WARM, ELIGHTNING_EFFECT_OPTION_COOL, ELIGHTNING_EFFECT_OPTION_COLD, ELIGHTNING_EFFECT_OPTION_FROZEN) set dLparam4 = ELIGHTNING_EFFECT_OPTION_END_SPOT + ELIGHTNING_EFFECT_OPTION_START_SPOT // choose any combination of (ELIGHTNING_EFFECT_OPTION_START_SPOT, ELIGHTNING_EFFECT_OPTION_END_SPOT, ELIGHTNING_EFFECT_OPTION_FADE, ELIGHTNING_EFFECT_OPTION_GROW) // // launch the bolt at the chosen location in the chosen area // CreateLightning(dStartLoc, dEndLoc, dLparam1+dLparam2+dLparam3+dLparam4, FLOAT(Random(400))*0.001) END default BEGIN EXIT // IceDisplay("!!!!!!!!! you have two few cases in your select statment \n") END BEGIN if (gIsPlantAlive == TRUE) then BEGIN TriggerDelay(Random(900)+200, evtEricsLightning) // //IceDisplay("reTriggering evtEricsLightning \n") END END }
..\TECH\DATA\AMBUSH\AMBUSH.CML
<CASTLE version="1" > <KEEP name="AssaultTurretWaterT" id="0" x="100.222229" y="56.666668" z="0.000000" yaw="1.505000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretWaterT" id="1" x="23.888889" y="47.777779" z="0.000000" yaw="-0.915000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretWaterT" id="2" x="35.666664" y="52.222225" z="0.000000" yaw="-0.215000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="3" x="82.313133" y="48.313129" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="KeepOctStone" id="4" x="82.000000" y="37.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="5" x="90.000000" y="89.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="6" x="82.000000" y="98.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="7" x="90.888893" y="61.666668" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="KeepOctStone" id="8" x="18.181818" y="81.909096" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="9" x="41.006050" y="103.709099" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="10" x="42.090908" y="106.090912" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="11" x="11.363636" y="68.363640" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="12" x="17.818182" y="74.636360" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="13" x="24.454544" y="74.818176" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="14" x="28.000000" y="72.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="15" x="13.929293" y="77.909088" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretFireT" id="16" x="19.959597" y="79.868690" z="0.000000" yaw="4.256000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretFireT" id="17" x="20.939394" y="82.212120" z="0.000000" yaw="4.756000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="18" x="18.454544" y="90.727272" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="19" x="19.909088" y="90.181824" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretFireT" id="20" x="21.848484" y="89.796982" z="0.000000" yaw="5.056000" pitch="0.000000" roll="0.000000" /> <KEEP name="AssaultTurretFireT" id="21" x="23.222223" y="85.746468" z="0.000000" yaw="4.756000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="22" x="31.545454" y="71.181816" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="23" x="37.818180" y="94.454544" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="24" x="29.222219" y="94.555557" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="25" x="52.000000" y="110.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="26" x="55.000000" y="107.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="27" x="55.000000" y="101.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="28" x="44.111111" y="114.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="29" x="51.000000" y="114.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="30" x="57.000000" y="112.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="31" x="59.000000" y="108.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="32" x="58.656563" y="103.545456" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="33" x="42.999996" y="110.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="34" x="36.309528" y="61.065083" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="35" x="35.914280" y="69.814285" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="36" x="38.974602" y="59.647755" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <KEEP name="TowerTallStoneArch" id="37" x="39.133335" y="66.000000" z="0.000000" yaw="0.000000" pitch="0.000000" roll="0.000000" /> <WALL name="StoneWall" start="31" end="32" /> <WALL name="StoneWall" start="30" end="31" /> <WALL name="StoneWall" start="29" end="30" /> <WALL name="StoneWall" start="28" end="29" /> <WALL name="StoneWall" start="26" end="27" /> <WALL name="StoneWall" start="25" end="26" /> <WALL name="StoneWall" start="33" end="25" /> <WALL name="StoneWall" start="10" end="33" /> <WALL name="StoneWall" start="9" end="10" /> <WALL name="StoneWall" start="24" end="23" /> <WALL name="StoneWall" start="19" end="18" /> <WALL name="StoneWall" start="20" end="19" /> <WALL name="StoneWall" start="21" end="20" /> <WALL name="StoneWall" start="16" end="17" /> <WALL name="StoneWall" start="15" end="16" /> <WALL name="StoneWall" start="11" end="12" /> <WALL name="StoneWall" start="13" end="12" /> <WALL name="StoneWall" start="14" end="13" /> <WALL name="StoneWall" start="22" end="14" /> <WALL name="StoneWall" start="35" end="22" /> <WALL name="StoneWall" start="34" end="35" /> <WALL name="StoneWall" start="36" end="37" /> </CASTLE>
..\TECH\DATA\AMBUSH\AMBUSH.PMF
<?xml version="1.0" encoding="UTF-8"?> <PADS VER="1"> <PAD NAME="WagonPad" X="35" Y="86" DX="5" DY="5" /> <PAD NAME="MultiWardPad" X="72" Y="34" DX="30" DY="5" /> <PAD NAME="MainGatePad" X="65" Y="80" DX="26" DY="5" /> <PAD NAME="AmbushVOPad" X="15" Y="94" DX="27" DY="5" /> <PAD NAME="EndPad" X="110" Y="95" DX="5" DY="19" /> </PADS>
..\TECH\DATA\AMBUSH\AMBUSH.POI
Tree80Poi 33.346 32.443 0.000 0.000 0.000 2.000 TreeDead2 Tree79Poi 33.111 34.333 0.000 0.000 0.000 0.000 TreeDead2 Tree78Poi 30.556 35.778 0.000 0.000 0.000 0.000 TreeDead2 Tree77Poi 26.444 29.444 0.000 0.000 0.000 0.000 TreeDead2 Tree76Poi 27.000 40.111 0.000 0.000 0.000 0.000 TreeDecid Tree75Poi 28.222 37.889 0.000 0.000 0.000 0.000 TreeDecid Tree74Poi 26.111 34.889 0.000 0.000 0.000 0.000 TreeDecid Tree73Poi 32.556 30.333 0.000 0.000 0.000 0.000 TreeDecid Tree72Poi 30.889 33.667 0.000 0.000 0.000 0.000 TreeDecid Tree71Poi 27.889 31.778 0.000 0.000 0.000 0.000 TreeDecid Tree70Poi 28.434 36.647 0.000 0.000 0.000 -0.006 TreeDecid Tree69Poi 31.693 30.360 0.000 0.000 0.000 1.094 TreeDecid Tree68Poi 28.800 27.800 0.000 0.000 0.000 0.829 TreeDecid Tree67Poi 34.613 55.176 0.000 0.000 0.000 0.000 TreeDecid Tree66Poi 32.584 58.449 0.000 0.000 0.000 -2.004 TreeDecid Tree65Poi 32.742 63.425 0.000 0.000 0.000 -2.518 TreeDead2 Tree64Poi 27.142 63.890 0.000 0.000 -0.045 0.212 TreeDead2 Tree63Poi 34.236 61.602 0.000 0.000 0.000 0.612 TreeDead2 Tree62Poi 24.369 40.395 0.000 0.000 0.000 -0.391 TreeDead2 Tree61Poi 34.015 29.545 0.000 0.000 0.000 0.811 TreeDead2 Windmillid51x630Poi 63.203 75.346 0.000 0.000 0.000 0.911 Windmillid50x610Poi 59.996 72.051 0.000 0.000 0.000 1.000 Windmillid49x570Poi 57.000 68.000 0.000 0.000 0.000 0.930 Ballistaid8x7000Poi 70.000 79.000 0.000 0.000 0.000 0.000 Ballistaid7x7100Poi 38.760 56.093 0.000 0.000 0.000 0.786 Ballistaid6x7300Poi 38.945 55.299 0.000 0.000 0.000 1.476 Ballistaid5x7500Poi 37.868 54.282 0.000 0.000 0.000 1.385 OrcTowerOctid4x2600Poi 25.022 9.044 0.000 0.000 0.000 -0.641 HouseLowerClassBid3x7700Poi 77.000 40.300 0.000 0.000 0.000 -0.074 HouseLowerClassBid2x7900Poi 78.564 40.591 0.000 0.000 0.000 1.684 HouseLowerClassBid1x8100Poi 80.622 40.000 0.000 0.000 0.000 -0.241 StaticGalleon1Poi 88.146 38.505 3.062 -0.026 -0.232 -1.583 StaticGalleon2Poi 90.566 43.001 3.000 0.000 0.000 1.554 Catapultid91x330Poi 24.576 81.111 0.000 0.000 0.000 0.000 Catapultid90x280Poi 26.778 85.667 0.000 0.000 0.000 0.000 Catapultid89x720Poi 75.333 50.000 0.000 0.000 0.000 0.000 Catapultid88x660Poi 66.000 46.000 0.000 0.000 0.000 0.000 Catapultid87x610Poi 61.000 47.000 0.000 0.000 0.000 -0.936 HouseLowerClassBid77x260Poi 30.225 58.121 0.000 0.000 0.000 1.827 HouseLowerClassBid76x260Poi 27.441 54.368 0.000 0.000 0.000 -1.076 HouseLowerClassBid75x230Poi 30.669 55.045 0.000 0.000 0.000 3.951 HouseLowerClassBid74x220Poi 28.459 58.676 0.000 0.000 0.000 0.493 HouseLowerClassBid73x240Poi 34.829 56.883 0.000 0.000 0.000 -1.384 HouseLowerClassBid72x210Poi 25.781 53.883 0.000 0.000 0.000 0.424 HouseLowerClassBid71x230Poi 20.513 54.305 0.000 0.000 0.000 -0.603 HouseLowerClassBid70x220Poi 24.595 59.929 0.000 0.000 0.000 4.443 HouseLowerClassBid69x240Poi 25.967 61.601 0.000 0.000 0.000 0.255 HouseLowerClassBid68x220Poi 25.993 64.097 0.000 0.000 0.000 -0.348 HouseLowerClassBid67x780Poi 77.778 33.333 0.000 0.000 0.000 0.150 HouseLowerClassBid66x760Poi 76.000 33.000 0.000 0.000 0.000 1.418 HouseLowerClassBid65x780Poi 76.455 36.857 0.000 0.000 0.000 1.293 HouseLowerClassBid64x760Poi 76.040 34.261 0.000 0.000 0.000 -0.305 HouseLowerClassBid63x780Poi 78.040 35.268 0.000 0.000 0.000 2.693 HouseLowerClassBid62x760Poi 76.420 38.357 0.000 0.000 0.000 -0.711 HouseLowerClassBid61x850Poi 85.076 65.691 0.000 0.000 0.000 1.746 HouseLowerClassBid60x830Poi 83.339 63.240 0.000 0.177 0.002 -0.509 HouseLowerClassBid59x870Poi 87.000 62.000 0.000 0.000 0.000 -1.217 HouseLowerClassBid58x850Poi 84.353 58.033 0.000 0.000 0.167 -2.051 HouseLowerClassBid57x830Poi 82.931 55.964 0.000 0.000 0.000 0.235 HouseLowerClassBid56x870Poi 87.845 63.260 0.000 0.000 0.000 1.059 HouseLowerClassBid55x840Poi 84.343 60.106 0.000 0.096 0.000 -0.726 HouseLowerClassBid54x830Poi 82.920 60.179 0.000 0.000 0.000 0.119 GreatHallid53x280Poi 30.350 60.694 0.000 0.000 0.000 -0.098 GreatHallid52x106Poi 106.395 57.078 0.000 0.000 0.000 3.439 Tree60Poi 104.742 58.815 0.000 0.000 0.000 -0.874 TreeDead2 Tree59Poi 24.111 103.444 0.000 0.000 0.000 -1.178 TreeDead2 Tree58Poi 78.667 87.001 0.000 0.000 0.000 1.160 TreeDead2 Tree57Poi 86.672 65.727 0.000 0.000 0.000 -1.181 TreeDead2 Tree56Poi 109.448 59.160 0.000 0.000 0.000 0.997 TreeDead2 Tree55Poi 84.292 61.776 0.000 0.000 0.000 -2.319 TreeDead2 Tree54Poi 76.889 87.889 0.000 0.000 0.000 1.749 TreeDead2 Dragon1_Start 102.534 10.074 10.100 0.000 0.000 0.267 Tree40Poi 27.537 58.465 0.000 0.014 0.267 2.586 TreeDead2 Tree39Poi 26.387 60.503 0.000 0.000 0.000 1.031 TreeDead2 Tree38Poi 58.669 42.614 0.000 0.000 0.000 -4.871 TreeDead2 Tree37Poi 31.111 29.778 0.000 0.000 0.000 -0.534 TreeDead2 Tree36Poi 28.000 34.444 0.000 0.000 0.000 -0.969 TreeDead2 Tree35Poi 24.667 99.778 0.000 0.000 0.000 0.530 TreeDead2 Tree34Poi 26.778 101.556 0.000 0.000 0.000 -1.411 TreeDead2 Tree33Poi 27.222 97.333 0.000 0.000 0.000 -0.206 TreeDead2 Tree32Poi 26.445 96.555 0.000 0.000 0.000 1.643 TreeDead2 Tree31Poi 27.333 94.222 0.000 0.000 0.000 -0.554 TreeDead2 Tree30Poi 76.222 52.131 0.000 0.000 0.000 1.010 TreeDead2 Tree29Poi 70.667 47.556 0.000 0.000 0.000 -2.000 TreeDead2 Tree28Poi 69.778 49.333 0.000 0.000 0.000 0.505 TreeDead2 Tree27Poi 68.667 47.000 0.000 0.000 0.000 -0.923 TreeDead2 Tree26Poi 62.675 52.639 0.000 0.000 0.000 1.282 TreeDead2 Tree25Poi 62.000 53.560 0.000 0.000 0.000 -1.438 TreeDead2 Tree24Poi 60.059 54.516 0.000 0.000 0.000 0.282 TreeDead2 Tree23Poi 62.333 61.444 0.000 0.000 0.000 1.979 TreeDead2 Tree22Poi 67.889 66.556 0.000 0.000 0.000 -1.637 TreeDead2 Tree21Poi 75.444 65.111 0.000 0.000 0.000 0.835 TreeDead2 Tree20Poi 29.333 31.333 0.000 0.000 0.000 -0.197 TreeDecid Tree19Poi 28.333 30.333 0.000 0.000 0.000 -1.881 TreeDecid Tree18Poi 31.373 32.770 0.000 0.017 0.000 -1.864 TreeDecid Tree17Poi 29.333 32.667 0.000 0.000 0.000 -0.653 TreeDecid Tree16Poi 65.667 68.334 0.000 0.000 0.000 -0.619 TreeDecid Tree15Poi 23.111 95.889 0.000 0.000 0.000 1.565 TreeDecid Tree14Poi 24.111 91.667 0.000 0.000 0.000 -0.578 TreeDecid Tree13Poi 26.889 92.889 0.000 -0.001 0.000 -0.659 TreeDecid Tree12Poi 27.962 88.213 0.000 0.056 0.000 -0.609 TreeDecid Tree11Poi 36.556 90.333 0.000 0.000 0.000 -1.267 TreeDecid Tree10Poi 75.529 62.972 0.000 0.000 0.000 -1.226 TreeDecid Tree9Poi 73.556 65.333 0.000 0.000 0.000 -1.116 TreeDecid Tree8Poi 64.444 64.111 0.000 0.000 0.000 1.161 TreeDecid Tree7Poi 74.702 68.879 0.000 0.000 0.000 0.604 TreeDecid Tree6Poi 71.778 65.889 0.000 0.000 0.000 -1.043 TreeDecid Tree5Poi 70.000 71.000 0.000 0.000 0.000 1.103 TreeDecid Tree4Poi 67.444 68.444 0.000 0.000 0.000 -0.919 TreeDecid Tree3Poi 65.556 64.778 0.000 0.000 0.000 1.293 TreeDecid Tree2Poi 69.667 67.333 0.000 0.000 0.000 -0.232 TreeDecid Tree1Poi 68.889 69.333 0.000 0.000 0.000 2.378 TreeDecid DarkWardGeneratorPoi 90.441 97.737 0.000 0.000 0.000 -0.840 PlantDefender8Poi 43.312 105.409 0.000 0.000 0.000 0.000 PlantDefender7Poi 39.556 98.222 0.000 0.000 0.000 0.000 PlantDefender6Poi 39.711 104.078 0.000 0.000 0.000 0.000 PlantDefender5Poi 42.421 103.257 0.000 0.000 0.000 0.000 PlantDefender4Poi 49.689 107.933 0.000 0.000 0.000 0.000 PlantDefender3Poi 40.456 99.520 0.000 0.000 0.000 0.000 PlantDefender2Poi 39.111 101.438 0.000 0.000 0.000 0.000 PlantDefender1Poi 49.786 105.514 0.000 0.000 0.000 0.000 FarmCPeasant1Poi 19.600 81.600 0.000 0.000 0.000 0.000 FarmCPig2Poi 17.400 80.600 0.000 0.000 0.000 0.000 Sheep FarmCPig1Poi 17.545 84.636 0.000 0.000 0.000 0.000 Sheep FarmCCow1Poi 21.564 84.273 0.000 0.000 0.000 0.000 Sheep DistrictCPeasant3Poi 31.309 77.436 0.000 0.000 0.000 0.000 DistrictCPeasant2Poi 34.655 88.618 0.000 0.000 0.000 0.000 DistrictCPeasant1Poi 30.273 81.600 0.000 0.000 0.000 0.000 DistrictCDefender4Poi 26.600 79.800 0.000 0.000 0.000 0.000 DistrictCDefender3Poi 31.400 85.200 0.000 0.000 0.000 0.000 DistrictCDefender2Poi 26.547 81.509 0.000 0.000 0.000 0.000 DistrictCDefender1Poi 31.600 89.600 0.000 0.000 0.000 0.000 DistrictBPeasant4Poi 41.600 52.000 0.000 0.000 0.000 0.000 DistrictBPeasant3Poi 38.378 54.467 0.000 0.000 0.000 0.000 DistrictBPeasant2Poi 24.400 63.756 0.000 0.000 0.000 0.000 DistrictBPeasant1Poi 31.917 58.432 0.000 0.000 0.000 0.000 DistrictBDefender5Poi 50.600 48.800 0.000 0.000 0.000 0.000 DistrictBDefender4Poi 42.600 55.800 0.000 0.000 0.000 0.000 DistrictBDefender3Poi 36.400 57.156 0.000 0.000 0.000 0.000 DistrictBDefender2Poi 28.475 59.356 0.000 0.000 0.000 0.000 DistrictBDefender1Poi 29.000 63.978 0.000 0.000 0.000 0.000 FarmBPeasant2Poi 38.289 35.844 0.000 0.000 0.000 0.000 FarmBPeasant1Poi 35.400 38.000 0.000 0.000 0.000 0.000 FarmBPig3Poi 31.400 38.800 0.000 0.000 0.000 0.000 Sheep FarmBPig2Poi 38.200 31.800 0.000 0.000 0.000 0.000 Sheep FarmBPig1Poi 38.200 37.800 0.000 0.000 0.000 0.000 Sheep FarmBCow4Poi 32.200 31.400 0.000 0.000 0.000 0.000 Sheep FarmBCow3Poi 29.000 36.400 0.000 0.000 0.000 0.000 Sheep FarmBCow2Poi 36.978 33.289 0.000 0.000 0.000 0.000 Sheep FarmBCow1Poi 41.378 38.133 0.000 0.000 0.000 0.000 Sheep CavalryGroup3Poi 69.582 41.240 0.000 0.000 0.000 0.000 CavalryGroup2Poi 67.709 42.252 0.000 0.000 0.000 0.000 CavalryGroup1Poi 71.491 42.200 0.000 0.000 0.000 0.000 FarmADefender1Poi 65.400 48.400 0.000 0.000 0.000 0.000 Archer FarmAPeasant3Poi 65.711 66.400 0.000 0.000 0.000 0.000 FarmAPeasant2Poi 60.491 60.545 0.000 0.000 0.000 0.000 FarmAPeasant1Poi 71.800 71.200 0.000 0.000 0.000 0.000 FarmACow5Poi 71.289 49.267 0.000 0.000 0.000 0.000 Sheep FarmACow4Poi 77.600 60.000 0.000 0.000 0.000 0.000 Sheep FarmACow3Poi 61.800 64.600 0.000 0.000 0.000 0.000 Sheep FarmACow2Poi 73.200 67.000 0.000 0.000 0.000 0.000 Sheep FarmACow1Poi 70.000 73.600 0.000 0.000 0.000 0.000 Sheep GateDefender3Poi 85.285 90.994 0.000 0.000 0.000 0.000 GateDefender2Poi 84.242 91.067 0.000 0.000 0.000 0.000 GateDefender1Poi 83.848 92.345 0.000 0.000 0.000 0.000 DistrictAPeasant4Poi 85.911 68.044 0.000 0.000 0.000 0.000 DistrictAPeasant3Poi 88.022 60.578 0.000 0.000 0.000 0.000 DistrictAPeasant2Poi 85.800 58.000 0.000 0.000 0.000 0.000 DistrictAPeasant1Poi 81.600 41.700 0.000 0.000 0.000 0.000 DistrictADefender6Poi 82.400 36.200 0.000 0.000 0.000 0.000 DistrictADefender5Poi 78.745 43.656 0.000 0.000 0.000 0.000 DistrictADefender4Poi 82.400 68.800 0.000 0.000 0.000 0.000 DistrictADefender3Poi 104.756 56.222 0.000 0.000 0.000 0.000 DistrictADefender2Poi 108.511 58.800 0.000 0.000 0.000 0.000 DistrictADefender1Poi 85.800 73.600 0.000 0.000 0.000 0.000 Cave1SpawnPoi 35.255 87.775 0.009 0.000 0.000 1.643 Cave2SpawnPoi 35.943 44.463 0.000 0.000 0.000 1.091 Cave3SpawnPoi 81.620 33.153 0.000 0.000 0.000 0.000 Cave4SpawnPoi 94.062 63.068 0.000 0.000 0.000 2.693 Cave5SpawnPoi 66.565 72.739 0.000 0.000 0.000 -2.000 OceanSpawnPoi 91.450 11.667 0.000 0.000 0.000 0.000 Boat1Poi 89.328 47.906 0.000 0.000 0.000 0.000 Boat2Poi 93.975 52.150 0.000 0.000 0.000 0.000 Boat3Poi 90.400 35.200 0.000 0.000 0.000 0.000 Tree41Poi 23.494 60.813 0.000 0.000 0.000 1.130 TreeDead2 Tree42Poi 28.961 57.638 0.000 0.000 0.000 -0.681 TreeDead2 Tree43Poi 26.810 53.721 0.000 0.000 0.000 -1.146 TreeDead2 Tree44Poi 28.327 54.910 0.000 0.000 0.000 1.091 TreeDead2 Tree45Poi 32.690 55.847 0.000 0.000 0.000 -1.660 TreeDead2 Tree46Poi 76.480 36.151 0.000 0.000 0.000 1.317 TreeDead2 Tree47Poi 55.000 41.889 0.000 0.000 0.000 -0.235 TreeDead2 Tree48Poi 87.419 56.581 0.000 0.000 0.000 0.761 TreeDead2 Tree49Poi 78.883 38.141 0.000 0.000 0.000 3.670 TreeDead2 Tree50Poi 78.738 33.974 0.000 0.000 0.000 -2.671 TreeDead2 Tree51Poi 82.708 64.404 0.000 0.000 0.000 1.166 TreeDead2 Tree52Poi 76.001 87.333 0.000 0.000 0.000 1.096 TreeDead2 Tree53Poi 101.859 60.646 0.000 0.000 0.000 -0.914 TreeDead2 FireWardGeneratorPoi 47.222 106.667 0.000 0.000 0.000 -0.912 Catapult2Poi 42.444 36.667 0.000 0.000 0.000 0.000 Catapult3Poi 43.778 34.889 0.000 0.000 0.000 0.000 Catapult4Poi 77.028 65.000 0.000 0.000 0.000 0.000 Catapult6Poi 29.667 108.667 0.000 0.000 0.000 0.000 Catapult7Poi 34.000 109.778 0.000 0.000 0.000 0.000 EarthMonk1Poi 31.667 88.000 0.000 0.000 0.000 0.000 EarthMonk3Poi 81.556 34.333 0.000 0.000 0.000 0.000 EarthMonk4Poi 81.589 45.239 0.000 0.000 0.000 0.000 EarthMonk5Poi 83.533 39.667 0.000 0.000 0.000 0.000 EarthMonk6Poi 85.000 89.445 0.000 0.000 0.000 0.000 EarthMonk7Poi 82.778 92.000 0.000 0.000 0.000 0.000 EarthMonk8Poi 95.667 59.111 0.000 0.000 0.000 0.000 EarthMonk9Poi 98.528 61.139 0.000 0.000 0.000 0.000 EarthMonk10Poi 95.333 60.666 0.000 0.000 0.000 0.000 ProcessingPlantPoi 47.700 103.999 0.000 0.000 0.000 -0.067 WagonCityPoi 29.145 58.095 0.000 0.000 0.000 0.000 WagonDocksPoi 111.790 59.921 0.000 0.000 0.000 0.000 WagonPierPoi 83.111 44.167 0.000 0.000 0.000 0.000 Tavern1Poi 82.103 58.031 0.000 0.000 0.000 1.505 Tavern2Poi 86.128 64.099 0.000 0.000 0.000 -0.959 Tavern3Poi 26.394 56.723 0.000 0.000 0.000 0.000 Tavern4Poi 26.380 57.516 0.026 0.018 0.018 0.001 Tavern5Poi 33.610 53.341 0.000 0.000 0.000 -3.328 WaterWardGeneratorPoi 102.874 56.240 0.000 0.000 0.000 0.000 MoreTown1Poi 22.135 57.837 0.000 0.000 0.000 0.683 MoreTown2Poi 33.691 56.497 0.000 0.000 0.000 0.223 MoreTown3Poi 22.219 55.839 0.000 0.000 0.000 0.000 MoreTown4Poi 23.385 56.216 0.000 0.000 0.000 -0.566 MoreTown5Poi 24.064 64.562 0.000 0.000 0.000 -0.196 MidClass1Poi 31.520 58.181 0.000 0.000 0.000 1.355 MidClass2Poi 23.398 53.880 0.000 0.000 0.000 4.823 MidClass3Poi 22.090 63.951 0.000 0.000 0.000 1.995 MidClass4Poi 22.519 59.289 0.000 0.000 0.000 2.155 MidClass5Poi 34.446 63.563 0.000 0.000 0.000 0.639 Cave1Poi 35.752 87.827 -0.140 0.000 0.029 -1.679 Cave Cave2Poi 36.545 44.046 0.029 0.000 0.000 -2.028 Cave Cave3Poi 81.586 32.428 0.092 0.000 0.087 3.253 Cave Cave4Poi 94.461 63.693 0.010 0.000 0.000 -0.378 Cave Cave5Poi 66.020 73.203 -0.027 -0.158 0.023 0.715 Cave Bonanza1Poi 46.223 105.000 0.000 0.000 0.000 0.000 Bonanza3Poi 46.555 102.223 0.000 0.000 0.000 0.000 Bonanza2Poi 49.334 104.000 0.000 0.000 0.000 0.000 MultiWardPoi 99.605 21.440 0.161 0.000 0.506 0.000 MooCow_253 29.750 87.125 0.000 0.000 0.000 0.000 Cow MooCow_254 28.750 81.500 0.000 0.000 0.000 0.000 Cow MooCow_255 27.750 79.125 0.000 0.000 0.000 0.000 Cow MooCow_256 33.750 37.000 0.000 0.000 0.000 0.000 Cow MooCow_257 37.875 34.500 0.000 0.000 0.000 0.000 Cow MooCow_258 30.125 31.375 0.000 0.000 0.000 0.000 Cow MooCow_259 28.125 62.625 0.000 0.000 0.000 0.000 Cow MooCow_260 31.000 62.375 0.000 0.000 0.000 0.000 Cow MooCow_261 67.125 71.000 0.000 0.000 0.000 0.000 Cow MooCow_262 72.875 69.375 0.000 0.000 0.000 0.000 Cow MooCow_263 75.000 67.250 0.000 0.000 0.000 0.000 Cow MooCow_264 61.205 50.284 0.000 0.000 0.000 0.000 Cow MooCow_265 67.875 49.625 0.000 0.000 0.000 0.000 Cow MooCow_266 102.750 58.250 0.000 0.000 0.000 0.000 Cow MooCow_267 103.500 60.625 0.000 0.000 0.000 0.000 Cow UpgradeFirePOI 113.011 106.784 0.000 0.000 0.000 0.000 UpgradeWaterPOI 113.023 104.489 0.000 0.000 0.000 0.000 UpgradeAirPOI 113.216 101.875 0.000 0.000 0.000 0.000 UpgradeEarthPOI 113.136 99.670 0.000 0.000 0.000 0.000 AdaraPoi 115.568 103.011 -4.000 0.000 0.000 0.000 SpriteBuildingPoi 20.000 87.064 0.000 0.000 0.000 0.000 Cow1Poi 19.272 84.455 0.000 0.000 0.000 0.000 Cow2Poi 18.182 85.364 0.000 0.000 0.000 0.000 Cow3Poi 20.455 85.091 0.000 0.000 0.000 0.000 Cow4Poi 22.091 85.636 0.000 0.000 0.000 0.000 Cow5Poi 19.636 83.545 0.000 0.000 0.000 0.000 BoulderMedB_279 30.846 104.122 0.000 0.000 0.000 0.000 BoulderMedA BoulderMedB_280 26.822 104.460 0.000 0.000 0.000 0.000 DragSkull BoulderMedB_281 25.854 104.896 0.000 0.000 0.000 0.792 BoulderMedA BoulderMedB_282 35.050 97.556 0.000 0.000 0.000 -0.247 DragSkull BoulderMedB_283 32.240 103.684 0.000 0.000 0.000 -2.804 BoulderMedA BoulderMedB_284 30.570 97.403 0.000 0.000 0.000 -2.639 BoulderMedA Sheep_284 31.000 86.333 0.000 0.000 0.000 0.000 Sheep Sheep_285 28.333 84.500 0.000 0.000 0.000 0.000 Sheep Sheep_286 30.462 79.659 0.000 0.000 0.000 0.000 Sheep Sheep_287 31.750 35.417 0.000 0.000 0.000 0.000 Sheep Sheep_288 28.833 34.583 0.000 0.000 0.000 0.000 Sheep Sheep_289 69.833 46.667 0.000 0.000 0.000 0.000 Sheep Sheep_290 77.583 57.667 0.000 0.000 0.000 0.000 Sheep BoulderMedB_285 64.660 39.686 0.000 0.000 0.000 0.000 BoulderMedA BoulderMedB_286 65.649 39.671 0.000 0.000 0.000 -1.064 BoulderMedA BoulderMedB_287 57.932 42.637 0.000 0.000 0.000 -1.484 BoulderMedA BoulderMedA_284 45.394 61.390 0.000 0.000 0.000 1.847 BoulderMedA BoulderMedA_285 45.107 61.870 0.000 0.000 0.000 0.074 BoulderMedA ENDOFPOIFILE
..\TECH\DATA\ARMADA\ARMADA.ICE
include "../scripts/Dtypes.ice" include "../scripts/dlightning.ice" include "../scripts/dBalloons.ice" constant MAXGALLEONS = 6 constant MAXTROOPS = 30 constant GHOSTHEALTH = 50000 constant FLGHOSTHEALTH = 50000.0 constant MANDEKSHEALTH = 25000 constant DAMAGECAP = 300 constant DAMAGEWELL = 3000 create ObjHandle gModelHandle create ObjHandle gSpriteHandle create ObjHandle gGhostHandle create xyz gObjectLoc create xyz gObjectOrientation create integer gSpriteFound create integer gManHPcur = MANDEKSHEALTH create integer gGhostHPcur = GHOSTHEALTH create integer gDamageWell = 0 create float gPrcntGodHP ////////////////remove Mandek fresh super galleon model, swap it with wrecked super gallson model when it flees//////////// // These are generic object creation variables create integer gGalleonCount create integer gNextWave create integer gWave9 = FALSE create integer gMaxFuryCharge create integer gTroopCount = 0 make string tArrayOf6Strings[6] make objHandle tArrayOf6ObjHandles[6] //Dmake integer tArrayOf20Integers[20] create integer gNextTBoat create integer gReleaseMines create tArrayOf6Strings[] gTBoatHeads create tArrayOf6Strings[] gTBoatLanes create tArrayOf6Strings[] gTBoatPads create tArrayOf6Strings[] gTBoatTails create tArrayOf6ObjHandles[] gTBoatHandles = ((NONE,NONE),(NONE,NONE),(NONE,NONE),(NONE,NONE),(NONE,NONE),(NONE,NONE)) make objHandle tArrayOf5ObjHandles[5] create tArrayOf5ObjHandles[] gTowerHandles = ((NONE,NONE),(NONE,NONE),(NONE,NONE),(NONE,NONE),(NONE,NONE)) create ObjHandle gSuperGalleonHandle create ObjHandle gShrineHandle create ObjHandle gShrineEffectHandle create ObjHandle gFriendlyhandle create ObjHandle gAdaraHandle create xyz gModelLoc create xyz gModelOrientation //create xyz gTempLoc create xyz gGemLoc create xyz gLocation create xyz gOrientation = (0, 0, 0) // integer variable declarations create integer gAWPUWPlayer // bool variable declarations create integer gGotKeyBool //Shows whether or not the Player is carrying the Key create integer gShutDownBool //Shuts down the boat waves constant enum VOs { VO_GREETINGS = 0, VO_OH_DEAR, VO_WATCH_OUT, VO_I_REMEMBER, VO_HANG_IN_THERE, VO_SO_ITS_TRUE, VO_YOUR_NOT_BEING, VO_AARGH_YOU_FOOLS, VO_THANK_YOU, VO_IM_SORRY_CAEL, FLY_INTO_THE_SPHERE } FUNCTION fVO_Player( integer vo) { select vo case VO_GREETINGS BEGIN //// IceDisplay("Greetings, I'm The Great General Mandek \n") VoiceOverPlay( VO_10mk001 ) END case VO_OH_DEAR BEGIN // IceDisplay("Oh dear, so many Orcs in boats. \n") VoiceOverPlay( VO_10ad078 ) END case VO_WATCH_OUT BEGIN // IceDisplay("Watch out, they're bringing in reinforcements.\n") VoiceOverPlay( VO_gnad141 ) END case VO_I_REMEMBER BEGIN // IceDisplay(" I remember there being a Shrine near here.\n") VoiceOverPlay( VO_gnad153 ) END case VO_HANG_IN_THERE BEGIN // IceDisplay("Hang in there, this is the last attack wave!\n") VoiceOverPlay( VO_gnad154 ) END case VO_SO_ITS_TRUE BEGIN // IceDisplay("So it's true; one puny Dragon causing this trouble\n") VoiceOverPlay( VO_10mk002 ) END case VO_YOUR_NOT_BEING BEGIN // IceDisplay("You're not being nice Dragon.\n") VoiceOverPlay( VO_10mk002 ) END case VO_AARGH_YOU_FOOLS BEGIN // IceDisplay("Aargh! Put that fire out, you fools!\n") VoiceOverPlay( VO_10mk003 ) END case VO_THANK_YOU BEGIN // IceDisplay("Thank you. I was able to get free when you crippled that ship\n") VoiceOverPlay( VO_10rs002 ) //RANDOM SPRITE END case VO_IM_SORRY_CAEL BEGIN // IceDisplay(" I'm sorry Cael; Mandek was just too powerful.\n") VoiceOverPlay( VO_10ad079) //CAELS DEATH END case FLY_INTO_THE_SPHERE BEGIN // IceDisplay(" fly int the shere of your choice and be granted your upgrade\n") VoiceOverPlay( VO_GNAD151 ) //upgrades END default EXIT // IceDisplay(" BABY DID A BAD BAD THANG") } //--------------------------------------------------- // Function declarations //--------------------------------------------------- FUNCTION fInitModelPlacement() { create xyz tempLoc create xyz ori create ObjHandle gStrawHandle create ObjHandle gWoodHandle create ObjHandle gBrickHandle create integer spriteLoc AddObjectPOI(gModelHandle, "FishingBoat", "InitialFleet5Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtMakeMonk) // IceDisplay( "SHIP 1AHOY MATEY!!!!/n") AddObjectPOI(gModelHandle, "FishingBoat", "InitialFleet2Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtMakeMonk) // IceDisplay( "SHIP 2AHOY MATEY!!!!/n") AddObjectPOI(gModelHandle, "FishingBoat", "InitialFleet3Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtMakeMonk) // IceDisplay( "SHIP3 AHOY MATEY!!!!/n") AddObjectPOI(gStrawHandle, "FishingBoat", "InitialFleet4Poi") // IceDisplay( "SHIP4 AHOY MATEY!!!!/n") AddObjectPOI(gWoodHandle, "FishingBoat", "InitialFleet1Poi") // IceDisplay( "SHIP 5AHOY MATEY!!!!/n") AddObjectPOI(gBrickHandle, "Caravel", "InitialFleet6Poi") // IceDisplay( "SHIP6 AHOY MATEY!!!!/n") AddObjectPOI(gModelHandle, "FishingBoat", "InitialFleet7Poi") // IceDisplay( "SHIP 7 AHOY MATEY!!!!/n") AddObjectPOISnap(gModelHandle, "Cow", "IslandAPeasant1Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandACow1Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandACow2Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandCDefender1Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandCDefender2Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandCSheep1Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandDDefender1Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandDDefender2Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandDSheep1Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow1_Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow2_Poi") AddObjectPOISnap(gModelHandle, "Cow", "Cow3_Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandFPeasant1Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandXPeasant1Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandFCow1Poi") AddObjectPOISnap(gModelHandle, "Sheep", "IslandFCow2Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandGDefender1Poi") AddObjectPOISnap(gModelHandle, "Cow", "IslandGDefender2Poi") AddObjectPOI(gModelHandle, "Windmill", "Wind01_Poi") SetNeverSleepFlag(gModelHandle) AddObjectPOI(gModelHandle, "Windmill", "Wind02_Poi") SetNeverSleepFlag(gModelHandle) AddObjectPOI(gModelHandle, "Windmill", "Wind03_Poi") SetNeverSleepFlag(gModelHandle) ////////////setting up random sprite set spriteLoc = Random (3) select spriteLoc // i switched to a selection instead of if-elsing, too case 0 BEGIN // IceDisplay("option1 \n") SetObjIceHandler(gStrawHandle, ICEOBJHANDLER_DEATH, evtMakeSprite) END case 1 BEGIN // IceDisplay("option2 \n") SetObjIceHandler(gWoodHandle, ICEOBJHANDLER_DEATH, evtMakeSprite) END case 2 BEGIN // IceDisplay("option3 \n") SetObjIceHandler(gBrickHandle, ICEOBJHANDLER_DEATH, evtMakeSprite) END default BEGIN EXIT // IceDisplay( "Bad select on spriteLoc in initializeScripts\n" ) END ///////////////////////////////// //GetPoiLoc("ShrinePoi", tempLoc) // fDShrineCreateLoc(tempLoc) fDShrineCreatePoi("ShrinePoi") fDShrineCreatePoi("Shrine2_Poi") ////////////Towers for Ballon bombs to come out of they need to only produce one, /////////// about 10 seconds into the game. AddObjectPOI(gTowerHandles[0], "TowerTallWood", "Tower1_Poi") TriggerDelay(4*SECOND, evtTowerBalloons, gTowerHandles[0]) AddObjectPOI(gTowerHandles[1], "TowerTallWood", "Tower2_Poi") TriggerDelay(6*SECOND, evtTowerBalloons, gTowerHandles[1]) AddObjectPOI(gTowerHandles[2], "TowerTallWood", "Tower3_Poi") TriggerDelay(6*SECOND, evtTowerBalloons, gTowerHandles[2]) AddObjectPOI(gTowerHandles[3], "TowerTallWood", "Tower4_Poi") TriggerDelay(5*SECOND, evtTowerBalloons, gTowerHandles[3]) AddObjectPOI(gTowerHandles[4], "TowerTallWood", "Tower5_Poi") TriggerDelay(3*SECOND, evtTowerBalloons, gTowerHandles[4]) set tempLoc^x = 0 set tempLoc^y = 0 set tempLoc^z = -50.0 AddObjectLOC(gGhostHandle, "Silo", tempLoc, ori) SetInvulnerable( gGhostHandle, FALSE ) SetHitPoints( gGhostHandle, 100 ) // set Ghost's HP to the percentage remaining value: Ghost starts at 100HP, HUDMeter starts at 100% full SetInvulnerable( gGhostHandle, TRUE ) } //--------------------------------------------------- // AnyOf declarations //--------------------------------------------------- ONCE ANYOF( initializeScripts ) (void void) { fInitDaryl(20, ARMADA) //Daryl: Removed fSetUpgradeAllowance() from Dxxx.ice files //D fSetUpgradeAllowance (3, 3, 3, 3) set gNextTBoat = 0 //transport lane set gReleaseMines = 0 set gGalleonCount = 0 set gTBoatHeads[0] = "TBoat1_Poi" set gTBoatHeads[1] = "TBoat2_Poi" set gTBoatHeads[2] = "TBoat3_Poi" set gTBoatHeads[3] = "TBoat4_Poi" set gTBoatHeads[4] = "TBoat5_Poi" set gTBoatHeads[5] = "TBoat6_Poi" set gTBoatLanes[0] = "TBoat1Path" set gTBoatLanes[1] = "TBoat2Path" set gTBoatLanes[2] = "TBoat3Path" set gTBoatLanes[3] = "TBoat4Path" set gTBoatLanes[4] = "TBoat5Path" set gTBoatLanes[5] = "TBoat6Path" set gTBoatPads[0] = "TBoat1EndPad" set gTBoatPads[1] = "TBoat2EndPad" set gTBoatPads[2] = "TBoat3EndPad" set gTBoatPads[3] = "TBoat4EndPad" set gTBoatPads[4] = "TBoat5EndPad" set gTBoatPads[5] = "TBoat6EndPad" set gTBoatTails[0] = "TLand1_Poi" set gTBoatTails[1] = "TLand2_Poi" set gTBoatTails[2] = "TLand3_Poi" set gTBoatTails[3] = "TLand4_Poi" set gTBoatTails[4] = "TLand5_Poi" set gTBoatTails[5] = "TLand6_Poi" } ANYOF( evtLevelBegin ) ( integer nothing integer nothing ) { fInitModelPlacement() AddObjectPoi( gAdaraHandle, "Adara", "Dragon1_Start") // Adara Created TriggerPulse(500, evtSpriteFollowCael, gAdaraHandle) // Adara bops around Cael TriggerDelay(10*SECOND, evtWave1) TriggerDelay(5*SECOND, evtTBoat) TriggerDelay(5*SECOND, evtTBoat) TriggerDelay(5*SECOND, evtTBoat) TriggerDelay(5*SECOND, evtTBoat) TriggerDelay(5*SECOND, evtTBoat) TriggerDelay(5*SECOND, evtTBoat) } ANYOF (evtMakeMonk) (integer whoGUID) { create objhandle who create xyz monkLoc GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, monkLoc) AddObjectLOC(gModelhandle, "MonkAirA", monkLoc, gOrientation) SetHeightAboveGround(gModelhandle, 3.0) } //--------------------------------------------------- // odds n ends declarations //--------------------------------------------------- ANYOF( evtMakeSprite ) (integer whoGUID ) { create objhandle who create xyz spriteLoc GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, spriteLoc) set spriteLoc^z = spriteLoc^z + 0.4 AddObjectLOC(gModelhandle, "SpriteFire", spriteLoc, gOrientation) SetInvulnerable (gModelhandle, 1) SetBehaviorWander (gModelhandle, 3.0 ) fVO_Player( VO_THANK_YOU ) set gSpriteFound = TRUE } //--------------------------------------------------- // 55 declarations //--------------------------------------------------- ANYOF(evtMandekCheck) (void void) { create integer hpDiff create integer healthbar set gManHPcur = GetHitPoints( gSuperGalleonHandle ) if ( gManHPcur < MANDEKSHEALTH OR gDamageWell > 0) then // if Mandek's current health is less than the previous grab: Mandek took damage BEGIN set hpDiff = MANDEKSHEALTH - gManHPcur // get the difference between Mandek's previous health and his current: how much damage did Mandek take if (hpDiff > DAMAGECAP) BEGIN set gDamageWell = gDamageWell + (hpDiff - DAMAGECAP) if (gDamageWell > DAMAGEWELL) set gDamageWell = DAMAGEWELL set hpDiff = DAMAGECAP // IceDisplay ("Taking off 300 from damage\n") END else if (hpDiff = 0) BEGIN if (gDamageWell > DAMAGECAP) BEGIN set hpDiff = DAMAGECAP set gDamageWell = gDamageWell - DAMAGECAP // IceDisplay ("Taking off 300 from well\n") END else BEGIN set hpDiff = gDamageWell set gDamageWell = 0 // IceDisplay("Taking off remainder of well\n") END END set gGhostHPcur = gGhostHPcur - hpDiff // subtract that difference from God's current HP: offload Mandek's damage onto God...don't we wish we all could set gPrcntGodHP = FLOAT(gGhostHPcur) / FLGHOSTHEALTH // get the percentage at which God's current health stands as compared to God's starting health: what percentage of health does God have left set healthBar = INTEGER(100.0 * gPrcntGodHP) // set this value equal to the percentage of health remaining for God SetInvulnerable( gGhostHandle, FALSE ) SetHitPoints( gGhostHandle, healthBar ) // set Ghost's HP to the percentage remaining value: Ghost starts at 100HP, HUDMeter starts at 100% full SetInvulnerable( gGhostHandle, TRUE ) SetHitPoints( gSuperGalleonHandle, MANDEKSHEALTH ) // if he took damage, then give it back to him if (healthBar < 1) BEGIN RemoveObject(gSuperGalleonHandle) Trigger(evtMandekDeath) END END } ANYOF(evtMandekDeath) { create xyz loc create xyz ori set ori =(0,0,1) DisableHudMeter() // Store Location of Mandek. GetObjLocation (gSuperGalleonHandle, loc) // Swap model for damaged one. AddObjectLoc (gSuperGalleonHandle,"SuperGalleonDamaged", loc, ori) fZapLoc(loc) SetInvulnerable(gSuperGalleonHandle, 1) // IceDisplay ("..................Mandek is running!!! \n") // Change Mandek state. SetDragonSight(gSuperGalleonHandle, 0) SetObjIceHandler(gSuperGalleonHandle, ICEOBJHANDLER_PAD, evtMandekEscape) SetBehaviorPatrol(gSuperGalleonHandle, "MandekEscapePath", PATH_ONEWAY_FORWARD_NEVERSLEEP) SetMovementSpeed(gSuperGalleonHandle,1.5) ObjAttachEmitter(gSuperGalleonHandle, "EmitSmokeMandekAft") ObjAttachEmitter(gSuperGalleonHandle, "EmitSmokeMandekFore") // EXPRESSLY REMOVED FROM DVOS.ICE!!! VoiceOverPlay( VO_10MK003 ) // Win.. if ( gSpriteFound == TRUE ) AND ( fDCanDragonUpgrade() >= 0 ) then BEGIN fDUpgradeCreate() fVO_Player(FLY_INTO_THE_SPHERE) END else BEGIN TriggerDelay (10000, evtArmadaEnd) END } ANYOF (evtArmadaEnd) { StartFXSequence( P1DragonHandle, FXSEQUENCE_TYPE_WIN, 10000, 0 ) } ANYOF(evtMandekEscape) (integer whoGUID string padName) { create objhandle mandek // Bail if it's not mandek's escape pad that we hit.. if ( padName != "MandekEscapePad" ) then EXIT // Get mandek's handle. GUIDtoObjHandle(whoGUID, mandek) // Remove Mandek. RemoveObject(mandek) // Display.. Remove. // IceDisplay("..................Mandek is gone.. You Win!!! \n") } //--------------------------------------------------- // transport declarations //--------------------------------------------------- create integer gGemCount = 0 ANYOF(evtDeadTBoat) (integer whoGUID integer killerGUID) { create objhandle who create objhandle assassin if (GUIDtoObjHandle(killerGUID, assassin) == 0) then exit else // IceDisplay ("..................skating Gem \n") GUIDtoObjHandle(whoGUID, who) if ( gGemCount < 5 ) BEGIN // IceDisplay ("..................Creating Gem \n") GetObjLocation (who, gGemLoc) set gGemLoc^z = gGemLoc^z + 1.3 fDGemCreateLoc(Random(3), gGemLoc) set gGemCount = gGemCount + 1 END //respawn transport TriggerDelay(25*SECOND, evtTBoat) } ANYOF( evtGemDied ) { set gGemCount = gGemCount - 1 } ANYOF(evtTBoat) (void void) { create objHandle tmpHandle // IceDisplay ("..................Creating Transport \n") AddObjectPOI(tmpHandle, "TransportBoat", gTBoatHeads[gNextTBoat]) SetMovementSpeed (tmpHandle, 2) // Turn on radar marker. // HudRadarEnableMarker(fDRadarObj(SECONDARY, tmpHandle), 1) SetObjIceHandler(tmpHandle, ICEOBJHANDLER_DEATH, evtDeadTBoat) SetObjIceHandler(tmpHandle, ICEOBJHANDLER_PAD, evtTBoatEscape) SetDragonSight(tmpHandle, 0) SetBehaviorPatrol(tmpHandle, gTBoatLanes[gNextTBoat],PATH_ONEWAY_FORWARD_NEVERSLEEP) set gTBoatHandles[gNextTBoat] = tmpHandle TriggerDelay(20*SECOND, evtCheckMineRelease, gNextTBoat) //increment boat ring counter set gNextTBoat = gNextTBoat + 1 if (gNextTBoat >= 6) then set gNextTBoat = 0 //set up Balloon releases } //////around the poi function FUNCTION AddObjectAroundPOI ( Objhandle gilligan,String name, String where ) { create xyz finalLoc GetPoiLoc (where, finalLoc) set finalLoc = fPerturbXYZ( 2.0, finalLoc ) AddObjectLocSnap( gilligan, name, finalLoc, gOrientation ) } ANYOF(evtTBoatEscape) (integer whoGUID string where) { create integer n create integer rnd create objhandle who GUIDtoObjHandle(whoGUID, who) set n = 0 while (n<6) // loop through the number of tBoats that exist BEGIN if (StringsEqual(where, gTBoatPads[n]) == TRUE) then // check if this is the proper pad for this boat. BEGIN if (gTroopCount < MAXTROOPS) then // Is there room to drop off more people? BEGIN // IceDisplay ("..................Unloading troops \n") //spawn troops set rnd = Random(10) if (rnd < 4) BEGIN AddObjectAroundPOI(gModelHandle, "Archer", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Archer", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Archer", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Cow", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) set gTroopCount = gTroopCount + 4 END else if (rnd < 7) BEGIN AddObjectAroundPOI(gModelHandle, "Skirmisher", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Skirmisher", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Skirmisher", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) AddObjectAroundPOI(gModelHandle, "Cow", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) set gTroopCount = gTroopCount + 4 END else if (rnd < 9) BEGIN AddObjectAroundPOI(gModelHandle, "MonkEarthM", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) set gTroopCount = gTroopCount + 1 END else BEGIN AddObjectAroundPOI(gModelHandle, "MonkWaterM", gTBoatTails[n]) AssignTeamID(gModelHandle, 2000) set gTroopCount = gTroopCount + 1 END END // check for room KillObject(who) //sink boat //respawn transport TriggerDelay(25*SECOND, evtTBoat) exit END // correct pad for this boat set n = n + 1 END // while (n < 6) } ANYOF (evtObjDiedTeam20) { set gTroopCount = gTroopCount - 1 } //--------------------------------------------------- // baloon release declarations //--------------------------------------------------- create integer gBalloonCount ANYOF (evtCheckMineRelease) (integer who void) { create xyz tempLoc create xyz tempGoalLoc // creating a temporary goal loc because I didn't have a predefined one create objHandle tmpHandle create integer TBoatHealth set tmpHandle = gTBoatHandles[who] TriggerDelay((Random(20)+20)*SECOND, evtCheckMineRelease, who) if (gReleaseMines == 0 ) EXIT if ( gBalloonCount >= 25 ) EXIT if ( IsObjectAlive( tmpHandle ) == 0 ) EXIT // IceDisplay ("..................Releasing a MINE. \n") //create a Balloon. GetObjLocation(tmpHandle, tempLoc) set tempLoc^z = tempLoc^z + 0.4 set tempGoalLoc = tempLoc // set the Balloon's goal loc equal to the origin loc... set tempGoalLoc^Z = tempGoalLoc^Z + 1.0 // ...then increase the goal^Z value by 5.0 so the Balloon floats up from the wagon set dBalloonYaw = 3.14 // set the Balloon facing this direction set dBalloonRadius = 4.5 // set the length of the Balloon's leash to a radial distance of 5.0 fDBalloonCreateLoc( MINE, tempLoc, tempGoalLoc) // make the Balloon with all the info supplied within and set above SetObjIceHandler( dModelHandle, ICEOBJHANDLER_DEATH, evtBalloonDeath) fSandman( dModelHandle, 10*SECOND ) set gBalloonCount = gBalloonCount + 1 } ANYOF( evtBalloonDeath ) { set gBalloonCount = gBalloonCount - 1 } ANYOF (evtTowerBalloons) (objHandle who void) { create xyz tempLoc create xyz tempGoalLoc // creating a temporary goal loc because I didn't have a predefined one // IceDisplay ("..................Releasing a BOMB. \n") //create a Balloon. GetObjLocation(who, tempLoc) set tempLoc^z = tempLoc^z + 1.6 set tempLoc^x = tempLoc^x - 3.0 set tempGoalLoc = tempLoc // set the Balloon's goal loc equal to the origin loc... set tempGoalLoc^Z = tempGoalLoc^Z + 1.9 // ...then increase the goal^Z value by 5.0 so the Balloon floats up from the wagon set dBalloonYaw = 3.14 // set the Balloon facing this direction set dBalloonRadius = 5.0 // set the length of the Balloon's leash to a radial distance of 5.0 fDBalloonCreateLoc( BOMB, tempLoc, tempGoalLoc) // make the Balloon with all the info supplied within and set above fSandman( dModelHandle, 10*SECOND ) } //--------------------------------------------------- // other ship declarations ??? //--------------------------------------------------- FUNCTION fMakeAGalleon(string PoiName, string PathName) { AddObjectPOI( gModelHandle, "Galleon", PoiName ) SetBehaviorPatrol( gModelHandle, PathName, PATH_ONEWAY_FORWARD_NEVERSLEEP ) fZap( PoiName ) //D fPrimaryRadar( gModelHandle) // Turn on radar marker. fDRadarObj( PRIMARY, gModelHandle ) AssignTeamID( gModelHandle, 3000 ) SetDragonSight( gModelHandle, 0 ) set gGalleonCount = gGalleonCount + 1 // Debug(gGalleonCount) } FUNCTION fMakeACaravel(string PoiName, string PathName) { AddObjectPOI(gModelHandle, "Caravel", PoiName) fZap( PoiName ) SetBehaviorPatrol(gModelHandle, PathName, PATH_ONEWAY_FORWARD_NEVERSLEEP) SetDragonSight(gModelHandle, 0) } FUNCTION fMakeAZeppelin(string PoiName, string PathName) { AddObjectPOI(gModelHandle, "Zeppelin", PoiName) fZap( PoiName ) SetBehaviorPatrol(gModelHandle, PathName, PATH_ONEWAY_FORWARD_NEVERSLEEP) SetDragonSight(gModelHandle, 0) SetHeightAboveGround(gModelHandle, 7.0) } ANYOF (evtObjDiedTeam30) (integer unitID) { set gGalleonCount = gGalleonCount - 1 } ONCE ANYOF(evtWave1) { // IceDisplay ("..................Wave1 \n") fMakeACaravel("WestBoatSpawnEPoi", "WestPath") fZap( "WestBoatSpawnEPoi" ) TriggerDelay(2*SECOND, evtWave1B) } ANYOF(evtWave1B) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 1B in a sec...\n") TriggerDelay (1*SECOND, evtWave1B) END else BEGIN fMakeAGalleon ("NorthBoatSpawnEPoi", "NorthPath") fZap( "NorthBoatSpawnEPoi" ) TriggerDelay(4*SECOND, evtWave2) // IceDisplay ("1st Galleon\n") END } ONCE ANYOF(evtWave2) { // IceDisplay ("..................Wave2 \n") fMakeACaravel("NorthWestBoatSpawnAPoi", "NorthWestPath") fZap( "NorthWestBoatSpawnAPoi" ) TriggerDelay(7*SECOND, evtWave2B) } ONCE ANYOF(evtWave2B) { fMakeACaravel("EastBoatSpawnPoi", "EastshipPath") fZap("EastBoatSpawnPoi" ) TriggerDelay(6*SECOND, evtWave2C) } ANYOF(evtWave2C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 2C in a sec...\n") TriggerDelay (1*SECOND, evtWave2C) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnBPoi", "NorthWestPathC") fZap("NorthWestBoatSpawnBPoi" ) TriggerDelay(6*SECOND, evtWave2D) // IceDisplay ("2nd Galleon\n") END } ANYOF(evtWave2D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 2D in a sec...\n") TriggerDelay (1*SECOND, evtWave2D) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnEPoi", "NorthWestPath") fZap("NorthWestBoatSpawnEPoi" ) TriggerDelay(5*SECOND, evtWave3) // IceDisplay ("3rd Galleon\n") END } ONCE ANYOF(evtWave3) { // IceDisplay ("..................Wave3 \n") fMakeACaravel("NorthBoatSpawnAPoi", "NorthPath") fZap("NorthBoatSpawnAPoi") TriggerDelay(2*SECOND, evtWave3B) } ONCE ANYOF(evtWave3B) { fMakeACaravel("NorthBoatSpawnDPoi", "NorthPath") fZap("NorthBoatSpawnDPoi") TriggerDelay(4*SECOND, evtWave3C) } ONCE ANYOF(evtWave3C) { fVO_Player(VO_I_REMEMBER) fMakeACaravel("NorthBoatSpawnEPoi", "NorthPath") fZap("NorthBoatSpawnEPoi") TriggerDelay(4*SECOND, evtWave3D) } ANYOF(evtWave3D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 3D in a sec...\n") TriggerDelay (1*SECOND, evtWave3D) END else BEGIN fMakeAGalleon ("EastBoatSpawnPoi", "EastshipPath") fZap("EastBoatSpawnPoi") TriggerDelay(5*SECOND, evtWave4) // IceDisplay ("4th Galleon\n") END } ONCE ANYOF(evtWave4) { // IceDisplay ("..................Wave4 \n") fMakeACaravel("WestBoatSpawnDPoi", "WestPath") fZap("WestBoatSpawnDPoi") TriggerDelay(6*SECOND, evtWave4B) } ONCE ANYOF(evtWave4B) { fMakeACaravel("WestBoatSpawnEPoi", "WestPath") fZap("WestBoatSpawnEPoi") TriggerDelay(6*SECOND, evtWave4C) } ONCE ANYOF(evtWave4C) { fMakeACaravel("WestBoatSpawnAPoi", "WestPath") fZap("WestBoatSpawnAPoi") TriggerDelay(14*SECOND, evtWave4D) } ANYOF(evtWave4D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 4D in a sec...\n") TriggerDelay (1*SECOND, evtWave4D) END else BEGIN fMakeAGalleon ("WestBoatSpawnCPoi", "WestPath") fZap("WestBoatSpawnCPoi") TriggerDelay(5*SECOND, evtWave5) // IceDisplay ("5th Galleon\n") END } ONCE ANYOF(evtWave5) { // IceDisplay ("..................Wave5 \n") fMakeACaravel("NorthWestBoatSpawnAPoi", "NorthWestPath") fZap("NorthWestBoatSpawnAPoi") TriggerDelay(6*SECOND, evtWave5B) } ONCE ANYOF(evtWave5B) { fMakeACaravel("NorthWestBoatSpawnBPoi", "NorthWestPath") fZap("NorthWestBoatSpawnBPoi") TriggerDelay(9*SECOND, evtWave5C) } ANYOF(evtWave5B) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 5D in a sec...\n") TriggerDelay (1*SECOND, evtWave5B) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnEPoi", "NorthWestPath") fZap("NorthWestBoatSpawnEPoi") TriggerDelay(5*SECOND, evtWave6) // IceDisplay ("6th Galleon\n") END } ONCE ANYOF(evtWave6) { // IceDisplay ("..................Wave6 \n") fMakeACaravel("EastBoatSpawnPoi", "EastshipPath") fZap("EastBoatSpawnPoi") TriggerDelay(6*SECOND, evtWave6B) } ONCE ANYOF(evtWave6B) { // IceDisplay ("**********8MINES TURNED OFF ***************MINES TURNED OFF!!!******** \n") set gReleaseMines = 0 fMakeAZeppelin("EastBoatSpawnPoi", "EastshipPath") fZap("EastBoatSpawnPoi") SetBehaviorPatrol(gModelHandle, "EastshipPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) ActAsLeader( gModelHandle, X_FORMATION, DONT_TRANSMIT_LEADERSHIP, 1.0 ) AddObjectPoi(gFriendlyhandle, "MonkWaterA","LilFriendly1_Poi" ) fZap("LilFriendly1_Poi") SetHeightAboveGround(gFriendlyhandle, 1.6) SetBehaviorFollow( gFriendlyhandle, gModelHandle ) TriggerDelay(6*SECOND, evtWave6C) } ANYOF(evtWave6C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 6C in a sec...\n") TriggerDelay (1*SECOND, evtWave6C) END else BEGIN fMakeAGalleon ("NorthBoatSpawnEPoi", "NorthPath") fZap("NorthBoatSpawnEPoi") TriggerDelay(6*SECOND, evtWave6D) // IceDisplay ("7th Galleon\n") END } ANYOF(evtWave6D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 6D in a sec...\n") TriggerDelay (1*SECOND, evtWave6D) END else BEGIN fMakeAGalleon ("EastBoatSpawnPoi", "EastshipPath") fZap("EastBoatSpawnPoi") TriggerDelay(5*SECOND, evtWave7) END } ONCE ANYOF(evtWave7) { set gReleaseMines = 1 // IceDisplay ("..................Wave7 \n") fMakeAZeppelin("WestBoatSpawnBPoi", "WestPath") fZap("WestBoatSpawnBPoi") TriggerDelay(2*SECOND, evtWave7B) } ANYOF(evtWave7B) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 7B in a sec...\n") TriggerDelay (1*SECOND, evtWave7B) END else BEGIN fVO_Player( VO_WATCH_OUT) fMakeAGalleon ("WestBoatSpawnAPoi", "WestPath") fZap("WestBoatSpawnAPoi") TriggerDelay(6*SECOND, evtWave7C) // IceDisplay ("8th Galleon\n") END } ANYOF(evtWave7C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 7C in a sec...\n") TriggerDelay (1*SECOND, evtWave7C) END else BEGIN fMakeAGalleon ("WestBoatSpawnEPoi", "WestPath") fZap("WestBoatSpawnEPoi") TriggerDelay(7*SECOND, evtWave8) // IceDisplay ("9th Galleon\n") END } ONCE ANYOF(evtWave8) { // IceDisplay ("..................Wave8 \n") fMakeAZeppelin("NorthWestBoatSpawnAPoi", "NorthWestPath") fZap("NorthWestBoatSpawnAPoi") TriggerDelay(10*SECOND, evtWave8B) } ANYOF(evtWave8B) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 8B in a sec...\n") TriggerDelay (1*SECOND, evtWave8B) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnBPoi", "NorthWestPath") fZap("NorthWestBoatSpawnBPoi") TriggerDelay(9*SECOND, evtWave8C) // IceDisplay ("10th Galleon\n") END } ANYOF(evtWave8C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 8C in a sec...\n") TriggerDelay (1*SECOND, evtWave8C) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnCPoi", "NorthWestPath") fZap("NorthWestBoatSpawnCPoi") TriggerDelay(8*SECOND, evtWave9) // IceDisplay ("11th Galleon\n") END } ONCE ANYOF(evtWave9) { // IceDisplay ("..................Wave9 \n") fMakeACaravel("NorthBoatSpawnBPoi", "NorthPath") fZap("NorthBoatSpawnBPoi") TriggerDelay(3*SECOND, evtWave9B) } ONCE ANYOF(evtWave9B) { fMakeACaravel("NorthBoatSpawnDPoi", "NorthPath") fZap("NorthBoatSpawnDPoi") TriggerDelay(3*SECOND, evtWave9C) } ANYOF(evtWave9C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 9C in a sec...\n") TriggerDelay (1*SECOND, evtWave9C) END else BEGIN fMakeAGalleon ("NorthBoatSpawnEPoi", "NorthPath") fZap("NorthBoatSpawnEPoi") TriggerDelay(6*SECOND, evtWave9D) // IceDisplay ("12th Galleon\n") END } ANYOF(evtWave9D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 9D in a sec...\n") TriggerDelay (1*SECOND, evtWave9D) END else BEGIN fMakeAGalleon ("NorthBoatSpawnAPoi", "NorthPath") fZap("NorthBoatSpawnAPoi") TriggerDelay(5*SECOND, evtWave9E) // IceDisplay ("13th Galleon\n") END } ANYOF(evtWave9E) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 9E in a sec...\n") TriggerDelay (1*SECOND, evtWave9E) END else BEGIN set gWave9 = TRUE fMakeAGalleon ("NorthBoatSpawnCPoi", "NorthPath") fZap("NorthBoatSpawnCPoi") TriggerDelay(8*SECOND, evtWave10) // IceDisplay ("14th Galleon\n") END } ONCE ANYOF(evtWave10) { fVO_Player(VO_HANG_IN_THERE) // IceDisplay ("..................Wave10 \n") fMakeACaravel("NorthWestBoatSpawnAPoi", "NorthWestPath") fZap("NorthWestBoatSpawnAPoi") TriggerDelay(8*SECOND, evtWave10B) } ONCE ANYOF(evtWave10B) { fMakeACaravel("NorthWestBoatSpawnCPoi", "NorthWestPathC") fZap("NorthWestBoatSpawnCPoi") TriggerDelay(8*SECOND, evtWave10C) } ANYOF(evtWave10C) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 10C in a sec...\n") TriggerDelay (1*SECOND, evtWave10C) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnDPoi", "NorthWestPath") fZap("NorthWestBoatSpawnDPoi") TriggerDelay(6*SECOND, evtWave10D) // IceDisplay ("15th Galleon\n") END } ANYOF(evtWave10D) { if (gGalleonCount > MAXGALLEONS) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 10D in a sec...\n") TriggerDelay (1*SECOND, evtWave10D) END else BEGIN fMakeAGalleon ("NorthWestBoatSpawnBPoi", "NorthWestPathC") fZap("NorthWestBoatSpawnBPoi") TriggerDelay(1*SECOND, evtWave11) END } ANYOF(evtWave11) (void void) { create integer i if ( gGalleonCount != 0 ) BEGIN // IceDisplay ("TOO MANY GALLEONS, will try 11 in two secs...\n") TriggerDelay ( 2*SECOND, evtWave11 ) END else BEGIN // IceDisplay ("..................SUPER GALLEON!!! \n") AddObjectPOI(gSuperGalleonHandle, "SuperGalleon", "Mandek_Poi")//"SuperGalleon" fZap("Mandek_Poi") SetMovementSpeed (gSuperGalleonHandle, 2.3) SetFireRate (gSuperGalleonHandle, 0.5 ) SetBehaviorPatrol(gSuperGalleonHandle, "MandekPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) ActAsLeader( gSuperGalleonHandle, X_FORMATION, DONT_TRANSMIT_LEADERSHIP, 2.5 ) SetObjIceHandler (gSuperGalleonHandle, ICEOBJHANDLER_UPDATE, evtMandekCheck) fVO_Player(VO_SO_ITS_TRUE) // Clear all primary markers. //D fPrimaryRadarClearAll() while i < 20 BEGIN HudRadarDisableMarker( i, DRAGON1 ) set i = i + 1 END // Turn on radar marker. fDRadarObj( PRIMARY, gSuperGalleonHandle ) EnableHudHealthMeter (gGhostHandle) SetHudMeterCaption ( "Mandek's Flagship" ) AddObjectPoi(gFriendlyhandle, "MonkFireA","LilFriendly2_Poi" ) fZap("LilFriendly2_Poi") SetBehaviorFollow( gFriendlyhandle, gSuperGalleonHandle ) SetMovementSpeed (gFriendlyhandle, 2.1) SetHeightAboveGround(gFriendlyhandle, 3.7) AddObjectPoi(gFriendlyhandle, "MonkFireA","LilFriendly2_Poi" ) fZap("LilFriendly2_Poi") SetBehaviorFollow( gFriendlyhandle, gSuperGalleonHandle ) SetMovementSpeed (gFriendlyhandle, 2.1) SetHeightAboveGround(gFriendlyhandle, 2.5) END }
..\TECH\DATA\ARMADA\ARMADA.CML
<CASTLE version="1" > </CASTLE>
..\TECH\DATA\ARMADA\ARMADA.PMF
<?xml version="1.0" encoding="UTF-8"?> <PADS VER="1"> <PAD NAME="TBoat5EndPad" X="103" Y="18" DX="7" DY="5" /> <PAD NAME="TBoat6EndPad" X="78" Y="28" DX="5" DY="6" /> <PAD NAME="TBoat2EndPad" X="97" Y="51" DX="5" DY="6" /> <PAD NAME="TBoat3EndPad" X="58" Y="12" DX="6" DY="5" /> <PAD NAME="TBoat4EndPad" X="95" Y="85" DX="6" DY="7" /> <PAD NAME="TBoat1EndPad" X="60" Y="47" DX="4" DY="5" /> <PAD NAME="MandekEscapePad" X="38" Y="116" DX="9" DY="7" /> </PADS>
..\TECH\DATA\ARMADA\ARMADA.POI
IslandAPeasant1Poi 59.000 22.200 0.000 0.000 0.000 -0.053 IslandGDefender2Poi 97.749 81.207 0.000 0.000 0.000 -0.034 IslandGDefender1Poi 55.971 20.840 0.000 0.000 0.000 -0.991 IslandDDefender2Poi 58.247 42.172 0.000 0.000 0.000 0.024 IslandDDefender1Poi 65.143 48.491 0.000 0.000 0.000 -1.337 IslandCDefender2Poi 82.370 29.608 0.000 0.000 0.000 -1.318 IslandCDefender1Poi 78.535 26.543 0.000 0.000 0.000 0.130 IslandCSheep1Poi 56.215 19.184 0.000 0.000 0.000 -0.030 IslandACow2Poi 58.527 12.987 0.000 0.000 0.000 0.002 IslandACow1Poi 57.600 20.800 0.000 0.000 0.000 -1.057 IslandFCow2Poi 106.419 19.243 0.000 0.000 0.000 0.761 IslandFPeasant2Poi 97.125 41.400 0.000 0.000 0.000 0.000 IslandFCow1Poi 85.625 40.700 0.000 0.000 0.000 0.000 IslandFPeasant1Poi 96.275 49.198 0.000 0.000 0.000 -1.081 Dragon1_Start 115.089 10.011 8.619 -0.346 0.268 0.064 TBoat1_Poi 24.400 124.400 -1.237 0.000 0.000 -3.119 WestBoatSpawnCPoi 2.200 66.600 -1.237 0.000 0.000 -1.679 NorthWestBoatSpawnCPoi 6.000 118.600 -1.237 0.000 0.000 -1.679 NorthBoatSpawnCPoi 52.400 127.000 -1.237 0.000 0.000 -3.119 InitialFleet1Poi 28.200 38.000 0.000 0.000 0.000 0.000 InitialFleet3Poi 56.200 99.000 0.000 0.000 0.000 0.000 InitialFleet5Poi 106.200 30.200 0.000 0.000 0.000 0.000 InitialFleet7Poi 25.200 62.800 0.000 0.000 0.000 0.000 InitialFleet6Poi 42.400 43.000 0.000 0.000 0.000 0.000 IslandDSheep1Poi 64.079 42.245 0.000 0.000 0.000 0.000 InitialFleet2Poi 36.800 80.600 0.000 0.000 0.000 0.000 IslandGDefender3Poi 96.409 82.385 0.000 0.000 0.000 -1.157 ShrinePoi 87.202 88.031 0.460 0.000 0.000 -1.838 NorthBoatSpawnAPoi 33.867 125.800 -1.237 0.000 0.000 -3.119 NorthBoatSpawnBPoi 42.600 126.600 -1.237 0.000 0.000 -3.119 NorthBoatSpawnDPoi 53.200 125.600 -1.237 0.000 0.000 -3.119 NorthBoatSpawnEPoi 53.800 124.200 0.000 0.000 0.000 -3.119 NorthWestBoatSpawnAPoi 12.400 125.200 -1.237 0.000 0.000 -1.679 NorthWestBoatSpawnBPoi 6.000 124.000 -1.237 0.000 0.000 -1.679 NorthWestBoatSpawnDPoi 3.200 111.000 -1.237 0.000 0.000 -1.679 NorthWestBoatSpawnEPoi 3.000 102.133 -1.237 0.000 0.000 -1.679 WestBoatSpawnAPoi 6.800 74.600 -1.237 0.000 0.000 -1.679 WestBoatSpawnBPoi 3.200 71.000 -1.237 0.000 0.000 -1.679 WestBoatSpawnDPoi 1.000 61.600 -1.237 0.000 0.000 -1.679 WestBoatSpawnEPoi 2.600 55.000 -1.237 0.000 0.000 -1.237 Farmhouse_045 100.216 44.122 -0.004 0.000 0.000 -0.566 Farmhouse Farmhouse_046 99.563 48.061 -0.034 0.242 0.002 -2.669 Farmhouse Farmhouse_048 80.942 27.903 -0.012 0.000 0.000 -1.173 Farmhouse Farmhouse_049 59.406 21.249 -0.035 0.000 0.000 -4.441 Farmhouse Silo_049 101.344 43.990 -0.064 -0.095 0.000 3.917 Silo Silo_050 55.970 15.570 -0.076 0.000 0.000 -1.832 Silo Wind02_Poi 85.456 42.264 -0.076 -0.075 0.000 -5.125 Wind01_Poi 108.363 18.624 -0.119 0.008 -0.025 0.821 TreeEvergreen_052 56.778 16.944 0.000 0.000 0.000 -4.087 TreeEvergreen TreeEvergreen_053 60.695 22.651 0.000 0.000 0.000 -2.422 TreeEvergreen TreeEvergreen_054 57.125 21.625 0.000 0.000 0.000 -1.021 TreeEvergreen TreeEvergreen_055 57.359 22.730 0.000 0.000 0.000 -1.960 TreeEvergreen TreeEvergreen_056 56.477 17.318 0.000 0.000 0.000 -2.336 TreeEvergreen TreeEvergreen_057 55.255 16.358 0.000 0.000 0.000 -0.680 TreeEvergreen TreeEvergreen_058 78.102 28.445 0.000 0.000 0.000 -2.180 TreeEvergreen TreeEvergreen_059 76.746 24.779 0.000 0.000 0.000 -1.385 TreeEvergreen TreeEvergreen_060 79.953 28.443 0.000 0.000 0.000 -1.067 TreeEvergreen TreeEvergreen_061 80.572 28.977 0.000 0.000 0.000 -2.914 TreeEvergreen TreeEvergreen_062 83.572 28.404 0.000 0.000 0.000 -0.443 TreeEvergreen TreeEvergreen_063 84.069 29.378 0.000 0.000 0.000 -0.534 TreeEvergreen TreeEvergreen_064 90.694 27.407 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_065 105.828 18.764 0.000 0.000 0.000 -2.258 TreeEvergreen TreeEvergreen_066 90.977 25.050 0.000 0.000 0.000 -2.563 TreeEvergreen TreeEvergreen_067 99.293 43.009 0.000 0.000 0.000 -1.592 TreeEvergreen TreeEvergreen_068 100.875 42.750 0.000 0.000 0.000 -2.240 TreeEvergreen TreeEvergreen_069 101.592 45.126 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_070 101.371 45.931 0.000 0.000 0.000 -4.888 TreeEvergreen TreeEvergreen_071 98.082 51.733 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_072 82.934 41.553 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_073 84.082 41.248 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_074 78.245 29.615 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_075 97.873 50.623 0.000 0.000 0.000 -1.188 TreeEvergreen TreeEvergreen_076 96.751 53.885 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_077 99.102 49.047 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_078 99.712 75.169 0.000 0.000 0.000 0.005 TreeEvergreen TreeEvergreen_079 95.971 79.249 0.000 0.000 0.000 0.000 TreeEvergreen TreeEvergreen_085 84.411 42.267 0.000 0.000 0.000 -1.389 TreeEvergreen TreeEvergreen_090 105.718 20.025 0.000 0.000 0.000 -0.915 TreeEvergreen TBoat4_Poi 92.800 123.800 -1.237 0.000 0.000 -3.119 TBoat5_Poi 11.133 37.333 -1.237 0.000 0.000 -1.679 TBoat6_Poi 103.800 118.333 -1.237 0.000 0.000 -3.119 TBoat2_Poi 10.400 69.600 -1.237 0.000 0.000 -1.679 TBoat3_Poi 12.400 15.600 -1.237 0.000 0.000 -1.679 Tower1_Poi 97.179 79.888 0.105 0.000 0.039 -4.010 Tower2_Poi 61.593 20.962 0.000 0.000 0.000 0.476 Tower4_Poi 87.626 28.569 0.122 0.000 0.014 -2.145 Bomb01_Poi 95.227 77.312 0.000 0.000 0.000 -1.679 Bomb02_Poi 101.653 49.094 0.000 0.000 0.000 -0.875 Tower5_Poi 77.125 22.528 0.061 -0.067 0.000 1.300 Bomb03_Poi 81.535 30.102 0.000 0.000 0.000 -0.699 Bomb04_Poi 61.000 17.543 0.000 0.000 0.000 -1.349 Bomb05_Poi 59.600 46.800 0.000 0.000 0.000 0.757 InitialFleet4Poi 70.800 88.000 0.000 0.000 0.000 0.000 Tower3_Poi 74.600 48.800 0.000 0.000 0.000 0.000 Stone1_Poi 85.900 83.433 0.000 5.238 -0.209 -4.565 StandingStoneTall Stone2_Poi 88.833 89.644 0.000 0.201 0.000 -2.861 StandingStoneTall Stone3_Poi 87.733 83.800 0.000 -0.366 0.000 -2.736 StandingStoneTall Stone4_Poi 91.700 89.167 0.000 -0.488 0.000 0.610 StandingStoneTall Stone5_Poi 84.100 88.600 0.000 -0.315 0.000 0.000 Stone6_Poi 91.267 86.533 0.000 -0.481 0.000 -2.235 StandingStoneTall Wreck1_Poi 90.542 76.488 0.161 0.321 0.236 -3.119 RuinsWreckedGalleon UpgradeFirePoi 62.925 25.893 2.184 0.000 0.000 0.018 UpgradeEarthPOI 69.122 49.220 2.007 0.000 0.219 0.075 UpgradeWaterPOI 75.251 54.925 2.741 0.000 0.000 0.454 UpgradeAirPOI 72.304 40.825 3.708 1.142 0.681 -0.221 UpgradeFirePOI 80.336 47.420 2.263 0.000 -0.647 -1.176 Wind03_Poi 95.150 84.278 -0.103 -0.084 0.002 -2.759 POI_114 53.308 32.710 0.257 0.000 0.000 1.728 GuardTurretAirT POI_116 90.040 84.394 -0.002 -0.587 0.050 -1.427 RuinsStoneTower POI_117 83.568 89.152 0.227 0.118 -0.265 -1.688 RuinsStoneTower POI_118 84.139 82.999 -0.243 -0.655 0.044 -0.089 RuinsStoneTower POI_120 53.201 37.512 -0.960 0.597 0.319 5.535 RuinsWreckedGalleon Mandek_Poi 125.634 59.267 -1.237 0.000 0.000 1.300 EastBoatSpawnPoi 124.400 102.800 -1.237 0.000 0.000 -3.119 Shrine2_Poi 44.333 20.000 0.000 0.000 0.000 0.000 Cow1_Poi 57.388 19.446 0.000 0.000 0.000 -1.130 Cow2_Poi 61.502 40.917 0.000 0.000 0.000 0.692 Cow3_Poi 95.100 80.634 0.000 0.000 0.000 -0.159 IslandXPeasant1Poi 97.333 51.396 0.000 0.000 0.000 -0.053 TLand2_Poi 98.667 45.833 0.000 0.000 0.000 0.000 TLand4_Poi 96.167 80.933 0.000 0.000 0.000 0.000 TLand1_Poi 61.833 45.833 0.000 0.000 0.000 0.000 TLand6_Poi 82.500 27.500 0.000 0.000 0.000 0.000 TLand5_Poi 108.500 19.500 0.000 0.000 0.000 0.000 TLand3_Poi 56.667 14.500 0.000 0.000 0.000 0.000 LilFriendly1_Poi 122.200 103.200 -1.237 0.000 0.000 0.000 LilFriendly2_Poi 123.400 57.000 -1.237 0.000 0.000 0.000 ENDOFPOIFILE
..\TECH\DATA\COLLSON\BEND.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 5.25f 0.0f, -3.0f, 0.0f, 1.5f 0.0f, -3.0f, 1.0f, 1.5f 0.0f, -3.0f, 2.0f, 1.5f 0.0f, -3.0f, 3.0f, 1.5f 0.0f, -2.0f, 3.0f, 0.75f 0.0f, -0.8f, 2.7f, 1.0f 0.0f, 0.0f, 2.3f, 0.75f 0.0f, 1.0f, 1.9f, 0.75f 0.0f, 2.0f, 1.3f, 0.75f 0.0f, 3.0f, 0.8f, 0.75f 0.0f, 4.0f, 0.0f, 0.75f
..\TECH\DATA\COLLSON\BSPAN.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 6.5f 0.0f, 0.0f, 0.1f, 1.1f 0.0f, 1.0f, 0.0f, 0.8f 0.0f, 2.0f, -0.25f, 0.7f 0.0f, 3.0f, -0.25f, 0.85f 0.0f, 4.4f, -0.7f, 0.8f 0.0f, 5.4f, -0.7f, 0.75f 0.0f, -1.0f, 0.0f, 0.8f 0.0f, -2.0f, -0.25f, 0.7f 0.0f, -3.0f, -0.25f, 0.85f 0.0f, -4.4f, -0.7f, 0.8f 0.0f, -5.4f, -0.7f, 0.75f
..\TECH\DATA\COLLSON\CAPN.TXT
SUBSPHERE 0.0f 0.0f 0.6f 0.6f
..\TECH\DATA\COLLSON\COLLSON.INI
BEGIN_COLLISION_FILES_LIST 2 dragon.txt 100 walker.txt 2 windmill.txt 2 galvilla.txt 2 trikeep.txt 2 zfactory.txt 2 grthall.txt 2 mine.txt 2 zepp.txt 2 bspan.txt 2 bend.txt 2 capn.txt 10 roar.txt 1 pier.txt 1 incbator.txt END_COLLISION_FILES_LIST BEGIN_LEVEL_CUSTOMIZE demoa END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE dwalpineb END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE tom END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE dragon1 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE escape END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE scramble END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE homeland END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE defend END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE revenge END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE training END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE payback END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE trap END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE rescue END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE armada END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE cove END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE gold END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE ambush END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE war END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE rampage END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE tower END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE egg1 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE egg2 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE feed1 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE feed2 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE duel1 END_LEVEL_CUSTOMIZE BEGIN_LEVEL_CUSTOMIZE duel2 END_LEVEL_CUSTOMIZE
..\TECH\DATA\COLLSON\DRAGON.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 0.35f, 0.0f, 0.0f, 0.0f, 0.125f, 0.20f, 0.0f, 0.0f, 0.08f, -0.20f, 0.0f, 0.0f, 0.08f
..\TECH\DATA\COLLSON\GALVILLA.TXT
SUBSPHERE 0.00f, 0.00f, 0.00f, 7.00f, -3.00f, -1.00f, -0.30f, 4.00f, 3.00f, -1.00f, -0.30f, 4.00f, -0.70f, 1.50f, 1.00f, 2.50f, -0.70f, 1.50f, 3.30f, 2.50f,
..\TECH\DATA\COLLSON\GRTHALL.TXT
SUBSPHERE 0.00f, 0.00f, 0.00f, 7.00f, -3.00f, -1.00f, -0.30f, 4.00f, 3.00f, -1.00f, -0.30f, 4.00f, -0.70f, 1.50f, 1.00f, 2.50f, -0.70f, 1.50f, 3.30f, 2.50f,
..\TECH\DATA\COLLSON\INCBATOR.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 2.75f, 0.0f, 0.0f, 0.5f, 1.75f, 2.0f, 0.0f, 0.3f, 0.5f, 0.0f, -2.0f, 0.3f, 0.75f,
..\TECH\DATA\COLLSON\MINE.TXT
CYLINDER 1.5f 2.5f 1.0f
..\TECH\DATA\COLLSON\PIER.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 5.5f 0.0f, 0.0f, 0.5f, 1.75f 0.0f, 1.5f, 0.5f, 1.75f 0.0f, 3.25f, 0.5f, 1.0f 0.0f, -1.5f, 0.5f, 1.75f 0.0f, -3.0f, 0.5f, 2.0f 0.5f, 0.5f, 2.5f, 0.5f
..\TECH\DATA\COLLSON\ROAR.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 0.3f
..\TECH\DATA\COLLSON\TRIKEEP.TXT
SUBSPHERE 0.00f, 0.00f, 1.00f, 3.00f, 0.00f, 1.00f, 0.0f, 1.30f, 0.95f, -1.10f, 0.00f, 1.30f, -0.95f, -0.40f, 0.00f, 1.30f, -1.00f, -0.45f, 1.51f, 0.60f,
..\TECH\DATA\COLLSON\WALKER.TXT
SUBSPHERE 0.0f 0.0f 0.2f 0.2f
..\TECH\DATA\COLLSON\WINDMILL.TXT
CYLINDER 1.0f 2.0f 1.0
..\TECH\DATA\COLLSON\ZEPP.TXT
SUBSPHERE 0.0f 0.0f -0.7f 2.8f
..\TECH\DATA\COLLSON\ZFACTORY.TXT
SUBSPHERE 0.0f, 0.0f, 0.0f, 5.0f 0.0f, 0.0f, 2.0f, 2.0f 0.0f, 0.0f, 0.0f, 2.5f 3.0f, 0.0f, -0.5f, 2.0f -3.0f, 0.0f, -0.5f, 2.0f
..\TECH\DATA\COVE\COVE.ICE
include "../scripts/dtypes.ice" include "../scripts/dballoons.ice" create ObjHandle gModelHandle create xyz gObjectLoc create xyz gObjectOrientation constant NUM_BOMB_BALLOONS = 8 constant enum VOICE_OVERS { VO_ADARAINTRO, VO_DARKKEYCLUE, VO_AIRGEMCLUE, VO_RESCUEDSPRITE, VO_GOTDARKKEY, VO_MANDEKTAUNT, VO_COVEDESTROYED, VO_LEVELLOSE, VO_LEVELWIN } constant TEAM_TBOAT = 5400 make integer IntArray10[10] make string stringArrayBomb[NUM_BOMB_BALLOONS] make string stringArrayTwentyOne[21] create IntArray10[] gTBoatGemFlag //POIs create stringArrayBomb[] gBomberPOIArray = ( "BombBalloon1Poi", "BombBalloon2Poi", "BombBalloon3Poi", "BombBalloon4Poi", "BombBalloon5Poi", "BombBalloon6Poi", "BombBalloon7Poi", "BombBalloon8Poi" ) create stringArrayTwentyOne[] gMinePOIArray = ( "MineBalloon1Poi", "MineBalloon2Poi", "MineBalloon3Poi", "MineBalloon4Poi", "MineBalloon5Poi", "MineBalloon6Poi", "MineBalloon7Poi", "MineBalloon8Poi", "MineBalloon9Poi", "MineBalloon10Poi", "MineBalloon11Poi", "MineBalloon12Poi", "MineBalloon13Poi", "MineBalloon14Poi", "MineBalloon15Poi", "MineBalloon16Poi", "MineBalloon17Poi", "MineBalloon18Poi", "MineBalloon19Poi", "MineBalloon20Poi", "MineBalloon21Poi" ) // fVO_Player( VO_LEVELLOSE) create integer gCoveMarker create integer gBaseCount = 3 //Counting destroyed buildings at the zeppelin base create integer gCoveCount = 3 //Counting destroyed buildings in the Cove create integer gMaxFuryCharge create integer gAirVO = FALSE create integer gDarkVO = FALSE create integer gTauntVO = FALSE create integer gZBaseDead = FALSE create integer gNextBoat = FALSE create integer gTBoatCount create integer gGemCount create ObjHandle gDarkKeyHandle create ObjHandle gDarkWardHandle create ObjHandle gDarkWardGeneratorHandle create ObjHandle gZeppelinBaseHandle create ObjHandle gCoveBaseHandle create ObjHandle gMandekHandle create ObjHandle gSprite1Handle create ObjHandle gSprite2Handle create ObjHandle gAdaraHandle create xyz gPoiLoc create xyz gTempLoc create xyz gGemLoc create xyz gLocation create xyz gOrientation = (0.0, 0.0, 0.0) create float gDragonDistance create integer gGotKeyBool //Shows whether or not the Player is carrying the Key create integer gGotGemBool create integer gFoundKeyBool //so as not to play the "find the key" VO if already found create integer gGotUpgrade = FALSE create ObjHandle gPatrolAHandle create ObjHandle gPatrolBHandle create ObjHandle gPatrolCHandle create ObjHandle gPatrolDHandle create ObjHandle gPatrolEHandle create ObjHandle gCoveDefender1Handle create ObjHandle gCoveDefender2Handle create ObjHandle gCoveDefender3Handle create ObjHandle gCoveDefender4Handle create ObjHandle gCoveDefender5Handle create ObjHandle gCoveDefender6Handle create ObjHandle gCoveDefender7Handle create ObjHandle gCoveDefender8Handle create ObjHandle gFireTurret1Handle create ObjHandle gFireTurret2Handle create ObjHandle gFireTurret3Handle create ObjHandle gFireTurret4Handle create ObjHandle gFireTurret5Handle create ObjHandle gFireTurret6Handle create ObjHandle gFireTurret7Handle create ObjHandle gFireTurret8Handle create ObjHandle gFireTower1Handle create ObjHandle gFireTower2Handle create ObjHandle gFireTower3Handle create ObjHandle gBarnHandle create ObjHandle gCoveBase1Handle create ObjHandle gCoveBase2Handle create ObjHandle gCoveBase3Handle //--------------------------------------------------- // Function declarations //--------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// // ZAP MODULE //////////////////////////////////////////////////////////////////////////////// // fPerturbFloat FUNCTION fPerturbFloat RETURN float( integer radius float myFloat) { RETURN myFloat - FLOAT( radius) + FLOAT( Random( 1+2*radius)) } FUNCTION fPerturbXYZ RETURN xyz( integer radius xyz myLoc) { create xyz tempLoc set tempLoc = (0.0, 0.0, 0.0) set tempLoc^x = fPerturbFloat( radius, myLoc^x) set tempLoc^y = fPerturbFloat( radius, myLoc^y) set tempLoc^z = myLoc^z RETURN tempLoc } // fZapLoc FUNCTION fZapLoc( xyz zapLoc ) { create xyz effectLoc create xyz skyLoc set effectLoc = fPerturbXYZ(2, zapLoc) set effectLoc^z = effectLoc^z+4.0 //set skyLoc = fPerturbXYZ(20, (64.0, 64.0, 30.0)) set skyLoc = zapLoc set skyLoc^z = skyLoc^z + 15.0 //bolt comes down from sky //branches comes up from poi //fade out bolt for immediate effect //grow in branches for delayed effect // bolt from sky CreateLightning( skyLoc, zapLoc, ELIGHTNING_EFFECT_OPTION_THICK+ELIGHTNING_EFFECT_OPTION_SHAFT+ELIGHTNING_EFFECT_OPTION_COOL+ELIGHTNING_EFFECT_OPTION_END_SPOT+ELIGHTNING_EFFECT_OPTION_FADE+ELIGHTNING_EFFECT_OPTION_SOUNDFX, 0.5 ) //branch from ground CreateLightning( zapLoc, effectLoc, ELIGHTNING_EFFECT_OPTION_THIN+ELIGHTNING_EFFECT_OPTION_BRANCH+ELIGHTNING_EFFECT_OPTION_COLD+ELIGHTNING_EFFECT_OPTION_GROW, 0.6 ) } // fZap FUNCTION fZap ( string poi) { create xyz zapLoc GetPoiLoc( poi, zapLoc ) fZapLoc( zapLoc ) } FUNCTION fInitModelPlacement() { // Dark Ward fDWardCreatePOI(DARK, "DarkWardGeneratorPoi", 7.0, 16.0) set gDarkWardGeneratorHandle = dModelHandle // Shrine GetPoiLoc("ShrinePoi", gTempLoc) fDShrineCreateLoc(gTempLoc) GetPoiLoc("Shrine2Poi", gTempLoc) fDShrineCreateLoc(gTempLoc) // Air Ward at base fDWardCreatePOI(AIR, "AirWardGeneratorPoi", 10.0, 15.0) AddObjectPOI(gZeppelinBaseHandle, "GreatHall", "WarehousePoi") SetObjIceHandler(gZeppelinBaseHandle, ICEOBJHANDLER_DEATH, evtMakeDarkKey) AddObjectPOI(gModelHandle, "KeepOctStone", "SpriteBuildingPoi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtBonusSprite) AddObjectPOI(gModelHandle, "BombBalloon", "GroundBalloon1Poi") DisableWeapon (gModelHandle) SetDragonSight(gModelHandle, 0) AddObjectPOI(gModelHandle, "BombBalloon", "GroundBalloon2Poi") DisableWeapon (gModelHandle) SetDragonSight(gModelHandle, 0) AddObjectPOI(gModelHandle, "BombBalloon", "GroundBalloon3Poi") DisableWeapon (gModelHandle) SetDragonSight(gModelHandle, 0) AddObjectPOI(gModelHandle, "HouseMiddleClassB", "GemBuilding1Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtGemBuilding) AddObjectPOI(gModelHandle, "HouseMiddleClassB", "GemBuilding2Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtGemBuilding) //Cove AddObjectPOI(gCoveBase1Handle, "KeepTriStone", "CoveBuilding3Poi") SetObjIceHandler(gCoveBase1Handle, ICEOBJHANDLER_DEATH, evtCoveBase) AddObjectPOI(gCoveBase2Handle, "KeepOctStone", "CoveBuilding7Poi") SetObjIceHandler(gCoveBase2Handle, ICEOBJHANDLER_DEATH, evtCoveBase) AddObjectPOI(gCoveBase3Handle, "KeepTriStone", "CoveBuilding10Poi") SetObjIceHandler(gCoveBase3Handle, ICEOBJHANDLER_DEATH, evtCoveBase) AddObjectPOISnap(gCoveDefender1Handle, "MonkFireM", "CoveDefender1Poi") DisableWeapon (gCoveDefender1Handle) AddObjectPOISnap(gCoveDefender2Handle, "MonkFireM", "CoveDefender2Poi") DisableWeapon (gCoveDefender2Handle) AddObjectPOISnap(gCoveDefender3Handle, "MonkFireM", "CoveDefender3Poi") DisableWeapon (gCoveDefender3Handle) AddObjectPOISnap(gCoveDefender4Handle, "MonkFireM", "CoveDefender4Poi") DisableWeapon (gCoveDefender4Handle) AddObjectPOISnap(gCoveDefender5Handle, "MonkFireM", "CoveDefender5Poi") DisableWeapon (gCoveDefender5Handle) AddObjectPOISnap(gCoveDefender6Handle, "MonkFireM", "CoveDefender6Poi") DisableWeapon (gCoveDefender6Handle) AddObjectPOISnap(gCoveDefender7Handle, "MonkFireM", "CoveDefender7Poi") DisableWeapon (gCoveDefender7Handle) AddObjectPOISnap(gCoveDefender8Handle, "MonkFireM", "CoveDefender8Poi") DisableWeapon (gCoveDefender8Handle) AddObjectPOI(gFireTurret1Handle, "AssaultTurretFireT", "FireTurret1Poi") DisableWeapon (gFireTurret1Handle) AddObjectPOI(gFireTurret2Handle, "AssaultTurretFireT", "FireTurret2Poi") DisableWeapon (gFireTurret2Handle) AddObjectPOI(gFireTurret3Handle, "AssaultTurretFireT", "FireTurret3Poi") DisableWeapon (gFireTurret3Handle) AddObjectPOI(gFireTurret4Handle, "AssaultTurretFireT", "FireTurret4Poi") DisableWeapon (gFireTurret4Handle) AddObjectPOI(gFireTurret5Handle, "AssaultTurretFireT", "FireTurret5Poi") DisableWeapon (gFireTurret5Handle) AddObjectPOI(gFireTurret6Handle, "AssaultTurretFireT", "FireTurret6Poi") DisableWeapon (gFireTurret6Handle) AddObjectPOI(gFireTurret7Handle, "AssaultTurretFireT", "FireTurret7Poi") DisableWeapon (gFireTurret7Handle) AddObjectPOI(gFireTurret8Handle, "AssaultTurretFireT", "FireTurret8Poi") DisableWeapon (gFireTurret8Handle) AddObjectPOI(gMandekHandle, "SuperGalleonDamaged", "MandekPoi") SetObjIceHandler(gMandekHandle, ICEOBJHANDLER_PAD, evtMandekEscape) SetInvulnerable (gMandekHandle, 1) //SetDragonSight(gMandekHandle, 0) //DisableWeapon(gMandekHandle) SetMovementSpeed(gMandekHandle, 1.4) AddObjectPOI(gModelHandle, "HouseLowerClassB", "GemBuilding3Poi") SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtGemBuilding) //Patrol 1 AddObjectPOI(gPatrolAHandle, "Zeppelin", "Patrol1ASpawnPoi") SetHeightAboveGround(gPatrolAHandle, 8.0) SetDragonSight(gPatrolAHandle, 0) SetMovementSpeed(gPatrolAHandle, 1.3) ActAsLeader (gPatrolAHandle, RING_FORMATION, TRANSMIT_LEADERSHIP, 4.5) SetBehaviorPatrol(gPatrolAHandle, "PatrolPath1", PATH_LOOPING_FORWARD_NEVERSLEEP) AddObjectPOI(gModelHandle, "Zeppelin", "Patrol1BSpawnPoi") SetHeightAboveGround(gModelHandle, 6.0) SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolAHandle) AddObjectPOI(gModelHandle, "Zeppelin", "Patrol1CSpawnPoi") SetHeightAboveGround(gModelHandle, 7.0) SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolAHandle) //Patrol 2 AddObjectPOI(gPatrolBHandle, "Galleon", "Patrol2ASpawnPoi") SetDragonSight(gPatrolBHandle, 0) SetMovementSpeed(gPatrolBHandle, 1.3) ActAsLeader (gPatrolBHandle, RING_FORMATION, TRANSMIT_LEADERSHIP, 2.5) SetBehaviorPatrol(gPatrolBHandle, "PatrolPath2", PATH_LOOPING_FORWARD_NEVERSLEEP) AddObjectPOI(gModelHandle, "Caravel", "Patrol2BSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolBHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol2CSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolBHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol2DSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolBHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol2ESpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolBHandle) //Patrol 3 AddObjectPOI(gPatrolCHandle, "Galleon", "Patrol3ASpawnPoi") SetDragonSight(gPatrolCHandle, 0) SetMovementSpeed(gPatrolCHandle, 1.3) ActAsLeader (gPatrolCHandle, RING_FORMATION, TRANSMIT_LEADERSHIP, 2.5) SetBehaviorPatrol(gPatrolCHandle, "PatrolPath3", PATH_LOOPING_FORWARD_NEVERSLEEP) AddObjectPOI(gModelHandle, "Caravel", "Patrol3BSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolCHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol3CSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolCHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol3DSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolCHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol3ESpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolCHandle) // patrol 4 AddObjectPOI(gPatrolDHandle, "Galleon", "Patrol4ASpawnPoi") SetDragonSight(gPatrolDHandle, 0) SetMovementSpeed(gPatrolDHandle, 1.3) ActAsLeader (gPatrolDHandle, RING_FORMATION, TRANSMIT_LEADERSHIP, 2.5) SetBehaviorPatrol(gPatrolDHandle, "PatrolPath4", PATH_LOOPING_FORWARD_NEVERSLEEP) AddObjectPOI(gModelHandle, "Caravel", "Patrol4BSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolDHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol4CSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolDHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol4DSpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolDHandle) AddObjectPOI(gModelHandle, "Caravel", "Patrol4ESpawnPoi") SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolDHandle) // patrol 5 AddObjectPOI(gPatrolEHandle, "Zeppelin", "Patrol5ASpawnPoi") SetHeightAboveGround(gPatrolEHandle, 8.0) SetDragonSight(gPatrolEHandle, 0) SetMovementSpeed(gPatrolEHandle, 1.3) ActAsLeader (gPatrolEHandle, RING_FORMATION, TRANSMIT_LEADERSHIP, 4.5) SetBehaviorPatrol(gPatrolEHandle, "PatrolPath5", PATH_LOOPING_FORWARD_NEVERSLEEP) AddObjectPOI(gModelHandle, "Zeppelin", "Patrol5BSpawnPoi") SetHeightAboveGround(gModelHandle, 7.0) SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolEHandle) AddObjectPOI(gModelHandle, "Zeppelin", "Patrol5CSpawnPoi") SetHeightAboveGround(gModelHandle, 6.0) SetMovementSpeed(gModelHandle, 1.3) SetBehaviorFollow (gModelHandle, gPatrolEHandle) } FUNCTION fVO_Player (integer whichVO) { select whichVO case VO_ADARAINTRO BEGIN VoiceOverPlay ( VO_11AD080 ) //// IceDisplay( "Time to get moving. Destroy the island fortress near here and you'll scatter their navy. No more navy, no more transporting Dragon eggs or Zeenium. \n") END case VO_DARKKEYCLUE BEGIN VoiceOverPlay ( VO_11AD081 ) // IceDisplay( "There's another base near here. That must be where they're hiding the Dark Key. \n") END case VO_AIRGEMCLUE BEGIN VoiceOverPlay ( VO_11AD082 ) // IceDisplay( "That's an Air Ward. There must be an Air Gem around here somewhere. \n") END case VO_RESCUEDSPRITE BEGIN VoiceOverPlay ( VO_grs005 ) // IceDisplay( "Thank you for rescuing me. \n") END case VO_GOTDARKKEY BEGIN VoiceOverPlay ( VO_11AD083 ) // IceDisplay( "Now let's find that Orc base. \n") END case VO_MANDEKTAUNT BEGIN VoiceOverPlay ( VO_11MK004 ) // IceDisplay( "Ha, welcome to your death. A pity I can't stay and watch, but I have other matters to attend to. \n") END case VO_COVEDESTROYED BEGIN VoiceOverPlay ( VO_GNAD150 ) // IceDisplay( "Fly into the glowing sphere... \n") END case VO_LEVELLOSE BEGIN VoiceOverPlay ( VO_11MK005 ) // IceDisplay( "Spiced Dragon blood for all! Save the head; it will look good hanging from my wall. \n") END case VO_LEVELWIN BEGIN VoiceOverPlay ( VO_11AD085 ) // IceDisplay( "Very nice! I wonder where Mandek went off to in such a hurry. \n") END default BEGIN EXIT // IceDisplay( "Why am I here? What is the meaning of Ice? \n") END EXIT } ONCE ANYOF(initializeScripts) (void void) { create AnimalGenerator rFarmInfo fInitDaryl(10, COVE) fInitModelPlacement() set rFarmInfo = ( POIStart: "BarnPoi", POIGoTo: "AnimalGotoPoi", Cap: 3, minRate: 4000, maxRate: 8000, chanceCow: 25, chancePig: 0, chanceSheep: 75 ) AddObjectPOI(gBarnHandle, "Barn", "BarnPoi") fStartAnimalGen( rFarmInfo, gBarnHandle ) set gCoveMarker = fDRadarObj(PRIMARY, gDarkWardGeneratorHandle) Trigger(evtMakeBalloons) Trigger(evtTBoat) TriggerPulse(40*SECOND, evtTBoat) } ONCE ANYOF( evtLevelBegin ) { AddObjectPoi( gAdaraHandle, "Adara", "Dragon1_Start") // Adara Created TriggerPulse(500, evtSpriteFollowCael, gAdaraHandle) } ONCE ANYOF(evtMakeBalloons) (void void) { create integer loopValue create xyz originLoc create xyz goalLoc set dBalloonYaw = 3.14 set dBalloonRadius = 2.0 set loopValue = 0 while loopValue < NUM_BOMB_BALLOONS BEGIN GetPoiLoc( gBomberPOIArray[loopValue], originLoc) set goalLoc = originLoc fDBalloonCreateLoc( BOMB, originLoc, goalLoc) set loopValue = loopValue + 1 END set loopValue = 0 while loopValue < 21 BEGIN GetPoiLoc( gMinePOIArray[loopValue], originLoc) set goalLoc = originLoc fDBalloonCreateLoc( MINE, originLoc, goalLoc) set loopValue = loopValue + 1 END } ONCE ANYOF(evtBonusSprite) (integer whoGUID integer killerGUID) { create objhandle who GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, gGemLoc) AddObjectLOC(gSprite1Handle, "SpriteFire", gGemLoc, gOrientation) TriggerPulse( 1000, evtSpriteFlutter, gSprite1Handle ) TriggerDelay(15*SECOND, evtKillSprites) // IceDisplay ("............Thank you for freeing me!!! \n") fVO_Player( VO_RESCUEDSPRITE) if (fDCanDragonUpgrade() >= 0) then BEGIN // IceDisplay ("............Upgrades!!! \n") set gGotUpgrade = TRUE END } ANYOF( evtSpriteFlutter ) ( ObjHandle who ) { create xyz newLoc set newLoc^x = gGemLoc^x + float(Random(5)) - float(Random(5)) set newLoc^y = gGemLoc^y + float(Random(5)) - float(Random(5)) set newLoc^z = gGemLoc^z + float(Random(5)) - float(Random(5)) SetBehaviorGoTo( who, newLoc ) } ONCE ANYOF(evtKillSprites) (void void) { RemoveObject(gSprite1Handle) } ANYOF(evtGemBuilding) (integer whoGUID integer killerGUID) { create objhandle who create integer temp create integer i GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, gTempLoc) set gTempLoc^z = gTempLoc^z + 0.7 // IceDisplay( "..................... Gem!!! \n") fDGemCreateLoc(Random(3), gTempLoc) set gGemCount = gGemCount + 1 } ANYOF(evtTBoat) (void void) { if (gTBoatCount < 4) then BEGIN AddObjectPOI(gModelHandle, "TransportBoat", "TBoatSpawnPoi") SetMovementSpeed(gModelHandle, 1.0) SetObjIceHandler(gModelHandle, ICEOBJHANDLER_DEATH, evtDeadTBoat) SetObjIceHandler(gModelHandle, ICEOBJHANDLER_PAD, evtTBoatPad) SetDragonSight(gModelHandle, 0) SetBehaviorPatrol(gModelHandle, "TBoatPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) AssignTeamID( gModelHandle, TEAM_TBOAT+gNextBoat) fZap( "TBoatSpawnPoi") set gNextBoat = gNextBoat + 1 if (gNextBoat = 10) then BEGIN set gNextBoat = 0 END set gTBoatCount = gTBoatCount + 1 END } ANYOF(evtDeadTBoat) (integer whoGUID integer killerGUID) { create integer temp create objhandle who GUIDtoObjHandle(whoGUID, who) set temp = GetTeamMemberNumber(who) if (gTBoatGemFlag[temp] == TRUE) then BEGIN GetObjLocation (who, gTempLoc) set gTempLoc^z = gTempLoc^z + 2.0 if ((gZBaseDead == FALSE) AND (gAirVO = TRUE)) then BEGIN // IceDisplay ("..................Creating AirGem \n") fDGemCreateLoc(Air, gTempLoc) set gAirVO = TRUE END ELSE BEGIN // IceDisplay ("..................Random GEM!! \n") if (gGemCount < 20) then BEGIN fDGemCreateLoc(Random(3), gTempLoc) set gGemCount = gGemCount + 1 END END set gTBoatGemFlag[temp] = FALSE END set gTBoatCount = gTBoatCount - 1 } ANYOF(evtGemDied) (void void) { set gGemCount = gGemCount - 1 } ANYOF( evtTBoatPad) (integer whoGUID string padName) { create integer temp create ObjHandle who GUIDtoObjHandle( whoGUID, who) set temp = GetTeamMemberNumber(who) if (StringsEqual(padName,"TBoatEndPad") == TRUE) then //edge of map BEGIN RemoveObject(who) set gTBoatCount = gTBoatCount - 1 fZap( "TBoatEndPoi") END ELSE if (StringsEqual(padName,"Border1Pad") == TRUE) then //beyond the Dragon turn around zone BEGIN // IceDisplay ("..................TBoat is in range!!!! \n") set gTBoatGemFlag[temp] = TRUE END ELSE if (StringsEqual(padName,"Border2Pad") == TRUE) then //back into the Dragon turn around zone BEGIN // IceDisplay ("..................TBoat is out of range!!!! \n") set gTBoatGemFlag[temp] = FALSE END } ANYOF(evtMandekEscape) (integer whoGUID string padName) { create objhandle who GUIDtoObjHandle(whoGUID, who) if (StringsEqual(padName,"MandekExitPad") == TRUE) then BEGIN RemoveObject(who) END } ANYOF(evtDragonPad) (integer whoGUID string padName) { create objhandle who GUIDtoObjHandle(whoGUID, who) if (StringsEqual(padName,"AirWardVOPad") == TRUE) AND (gAirVO == FALSE) then BEGIN fVO_Player( VO_AIRGEMCLUE ) //fAdaraVO( VO_AIRGEMCLUE, 8000 ) set gAirVO = TRUE END ELSE if (StringsEqual(padName,"DarkWardVOPad") == TRUE) AND (gDarkVO == FALSE) then BEGIN if (gZBaseDead == FALSE) then BEGIN fVO_Player( VO_DARKKEYCLUE ) //fAdaraVO( VO_DARKKEYCLUE, 10000 ) fDRadarObj (PRIMARY, gZeppelinBaseHandle) set gCoveMarker = fDRadarObj(SECONDARY, gDarkWardGeneratorHandle) END set gDarkVO = TRUE END } ONCE ANYOF (evtItemReleased) (integer playerNum integer itemType) { fVO_Player( VO_MANDEKTAUNT) set gTauntVO = TRUE // IceDisplay("The Dark Ward Is Down \n") //HudRadarDisableMarker( gCoveMarker, DRAGON1) fDRadarObj (PRIMARY, gCoveBase1Handle) fDRadarObj (PRIMARY, gCoveBase2Handle) fDRadarObj (PRIMARY, gCoveBase3Handle) EnableWeapon(gCoveDefender1Handle) EnableWeapon(gCoveDefender2Handle) EnableWeapon(gCoveDefender3Handle) EnableWeapon(gCoveDefender4Handle) EnableWeapon(gCoveDefender5Handle) EnableWeapon(gFireTurret1Handle) EnableWeapon(gFireTurret2Handle) EnableWeapon(gFireTurret3Handle) EnableWeapon(gFireTurret4Handle) EnableWeapon(gFireTurret5Handle) EnableWeapon(gFireTurret6Handle) EnableWeapon(gFireTurret7Handle) EnableWeapon(gFireTurret8Handle) SetBehaviorPatrol(gMandekHandle, "MandekPath", PATH_ONEWAY_FORWARD_NEVERSLEEP) } ONCE ANYOF(evtMakeDarkKey) (integer whoGUID integer killerGUID) { create objhandle who GUIDtoObjHandle(whoGUID, who) GetObjLocation (who, gGemLoc) set gGemLoc^z = gGemLoc^z + 1.4 AddObjectLOC(gDarkKeyHandle, "DarkKey", gGemLoc, gOrientation) fDRadarObj (PRIMARY, gDarkKeyHandle) MakeWardKey(gDarkKeyHandle) set gZBaseDead = TRUE //set gCoveMarker = fDRadarObj(SECONDARY, gDarkWardGeneratorHandle) } ANYOF(evtCoveBase) (void void) { set gBaseCount = gBaseCount - 1 if (gBaseCount == 0) then BEGIN KillObject(gCoveDefender1Handle) KillObject(gCoveDefender2Handle) KillObject(gCoveDefender3Handle) KillObject(gCoveDefender4Handle) KillObject(gCoveDefender5Handle) KillObject(gCoveDefender6Handle) KillObject(gCoveDefender7Handle) KillObject(gCoveDefender8Handle) KillObject(gFireTurret1Handle) KillObject(gFireTurret2Handle) KillObject(gFireTurret3Handle) KillObject(gFireTurret4Handle) KillObject(gFireTurret5Handle) KillObject(gFireTurret6Handle) KillObject(gFireTurret7Handle) KillObject(gFireTurret8Handle) AddObjectPoi(gSprite2Handle, "SpriteWater", "SpritePoi") GetPoiLoc( "SpritePoi", gGemLoc ) TriggerPulse( 1000, evtSpriteFlutter, gSprite2Handle ) if (gGotUpgrade == TRUE) then BEGIN fVO_Player( VO_COVEDESTROYED ) //fAdaraVO( VO_COVEDESTROYED, 5000 ) // IceDisplay ("..................Upgrades!!!! \n") fDUpgradeCreate() END ELSE BEGIN fAltEnd(WIN) //D TriggerDelay (2*SECOND, evtDEnd) END END } ONCE ANYOF (evtItemAquired) (integer playerNum integer itemType) { set gCoveMarker = fDRadarObj(PRIMARY, gDarkWardGeneratorHandle) fVO_Player( VO_GOTDARKKEY ) //fAdaraVO( VO_GOTDARKKEY, 5000 ) }