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.
..\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 )
}