t2-mapper/docs/base/@vl2/Patience.vl2/missions/Patience.mis
2025-09-11 16:56:30 -07:00

983 lines
25 KiB
Text

// DisplayName = Patience
// MissionTypes = Siege
//--- MISSION QUOTE BEGIN ---
//Patience and tenacity of purpose are worth more than twice their weight of cleverness.
// --Thomas Henry Huxley
// • Map by powdahound; Code by t-b0n3, Byte, & [HvC]Dev; Fixes by a tiny fishie.
//--- MISSION QUOTE END ---
//--- MISSION STRING BEGIN ---
//The Forcefield Generator protects the Lava Generator
//While the Lava Generator is disabled, the lava level will lower
//When the lava is low enough, the Capture Switch will be revealed
//A repair pack is located on a platform above the lava
//--- MISSION STRING END ---
function ForceFieldBareData::onAdd(%data, %obj)
{
Parent::onAdd(%data, %obj);
//%velo = 1;
//%grav = 0.1;
//%appl = "0 0 0";
if (%obj.custom $= "" || %obj.custom $= "0")
{
%velo = %obj.velocityMod;
%grav = %obj.gravityMod;
%appl = %obj.appliedForce;
}
else
return; // add physical zones unless the force field contains 'custom = "1";'
%pz = new PhysicalZone() {
position = %obj.position;
rotation = %obj.rotation;
scale = %obj.scale;
polyhedron = "0.000000 1.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
velocityMod = %velo;
gravityMod = %grav;
appliedForce = %appl;
ffield = %obj;
};
%pzGroup = nameToID("MissionCleanup/PZones");
if(%pzGroup <= 0)
{
%pzGroup = new SimGroup("PZones");
MissionCleanup.add(%pzGroup);
}
%pzGroup.add(%pz);
}
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
cdTrack = "2";
powerCount = "0";
musicTrack = "Volcanic";
new MissionArea(MissionArea) {
area = "-440 -576 1152 1264";
flightCeiling = "2000";
flightCeilingRange = "50";
locked = "true";
};
new Sun() {
direction = "0.57735 0.57735 -0.57735";
color = "0.600000 0.600000 0.600000 1.000000";
ambient = "0.400000 0.400000 0.400000 1.000000";
locked = "true";
scale = "1 1 1";
position = "-1216 -848 0";
rotation = "1 0 0 0";
};
new TerrainBlock(Terrain) {
rotation = "1 0 0 0";
scale = "1 1 1";
detailTexture = "details/lushdet1";
terrainFile = "Caldera.ter";
squareSize = "8";
emptySquares = "167592 167848 102569";
locked = "true";
hazeDistance = "250";
position = "-1024 -1024 0";
visibleDistance = "1200";
};
new NavigationGraph(NavGraph) {
conjoinAngleDev = "45";
cullDensity = "0.3";
customArea = "0 0 0 0";
conjoinBowlDev = "20";
locked = "true";
scale = "1 1 1";
coverage = "0";
YDimOverSize = "0";
position = "0 0 0 1";
XDimOverSize = "0";
GraphFile = "Patience.nav";
rotation = "0 0 0 0";
};
new Sky(Sky) {
position = "-1536 -720 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0.149971";
cloudHeightPer[1] = "0.25";
cloudHeightPer[2] = "0.199973";
cloudSpeed1 = "0.001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "390";
useSkyTextures = "1";
renderBottomTexture = "0";
SkySolidColor = "0.000000 0.000000 0.000000 0.000000";
fogDistance = "160";
fogColor = "0.850000 0.380000 0.100000 1.000000";
fogVolume1 = "0 0 0";
fogVolume2 = "0 0 0";
fogVolume3 = "0 0 0";
materialList = "sky_lava_starrynight.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
fogVolumeColor1 = "1.000000 100.000000 1.000000 0.000000";
fogVolumeColor2 = "1.000000 100.000000 1.000000 -198748244414614883000000000000000000000.000000";
fogVolumeColor3 = "128.000000 128.000000 128.000000 -222768154483160258000000000000000000000.000000";
locked = "true";
cloudSpeed0 = "0.000000 0.000000";
};
new SimGroup(Teams) {
powerCount = "0";
new SimGroup(Team1) {
powerCount = "0";
new SimGroup(spawnspheres) {
powerCount = "0";
new SpawnSphere() {
position = "-114.528 571.588 162.521";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnSphereMarker";
lockCount = "0";
homingCount = "0";
radius = "50";
sphereWeight = "100";
indoorWeight = "100";
outdoorWeight = "100";
};
};
new SimGroup(Base0) {
powerCount = "1";
new InteriorInstance() {
position = "-107.254 557.985 197.32";
rotation = "0 0 1 162.72";
scale = "1 1 1";
interiorFile = "dtowr4.dif";
showTerrainInside = "0";
locked = "true";
team = "1";
};
new ForceFieldBare(ff1) {
position = "-96.5634 554.451 197.306";
rotation = "0 0 1 162.72";
scale = "18.2383 0.889118 6.53687";
dataBlock = "defaultTeamSlowFieldBare";
Target = "33";
lockCount = "0";
homingCount = "0";
team = "1";
custom = "1";
};
new ForceFieldBare(ff2) {
position = "-99.5607 566.801 198.352";
rotation = "0 0 1 162.72";
scale = "0.950705 12.6622 5.47157";
dataBlock = "defaultTeamSlowFieldBare";
Target = "34";
lockCount = "0";
homingCount = "0";
team = "1";
custom = "1";
};
new ForceFieldBare(ff3) {
position = "-117.654 561.119 198.267";
rotation = "0 0 1 162.72";
scale = "0.950705 12.6622 5.47157";
dataBlock = "defaultTeamSlowFieldBare";
Target = "35";
lockCount = "0";
homingCount = "0";
team = "1";
custom = "1";
};
new Turret(FirstAssaultTurret) {
position = "-142.405 548.163 197.331";
rotation = "0 0 1 161.574";
scale = "1 1 1";
nameTag = "First Assault";
dataBlock = "TurretBaseLarge";
lockCount = "0";
homingCount = "0";
initialBarrel = "AABarrelLarge";
Target = "36";
locked = "true";
team = "1";
};
new Turret(SecondAssaultTurret) {
position = "-72.6665 569.458 197.173";
rotation = "0 0 1 161.001";
scale = "1 1 1";
nameTag = "Second Assault";
dataBlock = "TurretBaseLarge";
lockCount = "0";
homingCount = "0";
initialBarrel = "AABarrelLarge";
Target = "37";
locked = "true";
team = "1";
};
new StaticShape(AssaultGenerator) {
position = "-109.179 570.628 122.296";
rotation = "0 0 1 18.3347";
scale = "1 1 1";
nameTag = "Assault";
dataBlock = "GeneratorLarge";
lockCount = "0";
homingCount = "0";
Target = "38";
team = "1";
};
new StaticShape(SecondUpperAssault) {
position = "-102.644 563.424 198.27";
rotation = "0 0 -1 18.9076";
scale = "1 1 1";
nameTag = "Second Upper Assault";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "39";
team = "1";
};
new StaticShape(FirstUpperAssault) {
position = "-114.07 559.904 198.27";
rotation = "0 0 -1 18.9076";
scale = "1 1 1";
nameTag = "First Upper Assault";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "40";
team = "1";
};
new StaticShape(OutsideAssault) {
position = "-108.743 562.617 161.219";
rotation = "0 0 1 161.574";
scale = "1 1 1";
nameTag = "Outside";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "41";
team = "1";
};
new ForceFieldBare(ff4) {
position = "-100.353 566.62 197.102";
rotation = "0 0 1 162.72";
scale = "18.1794 0.181268 6.75839";
dataBlock = "defaultTeamSlowFieldBare";
Target = "42";
lockCount = "0";
homingCount = "0";
team = "1";
custom = "1";
};
new StaticShape(AssaultSensor) {
position = "-106.539 555.81 205.046";
rotation = "0 0 1 161.574";
scale = "1 1 1";
nameTag = "Assault";
dataBlock = "SensorLargePulse";
lockCount = "0";
homingCount = "0";
Target = "43";
team = "1";
};
};
};
new SimGroup(Team2) {
powerCount = "0";
new SimGroup(spawnspheres) {
powerCount = "0";
new SpawnSphere() {
position = "-93.1379 -18.6596 91.6641";
rotation = "0 0 1 1.7196";
scale = "1 1 1";
dataBlock = "SpawnSphereMarker";
lockCount = "0";
homingCount = "0";
radius = "50";
sphereWeight = "100";
indoorWeight = "100";
outdoorWeight = "100";
};
new SpawnSphere() {
position = "324.388 108.414 165.424";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnSphereMarker";
lockCount = "0";
homingCount = "0";
radius = "100";
sphereWeight = "100";
indoorWeight = "100";
outdoorWeight = "100";
};
new SpawnSphere() {
position = "206.292 -117.527 161.706";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnSphereMarker";
lockCount = "0";
homingCount = "0";
radius = "30";
sphereWeight = "100";
indoorWeight = "100";
outdoorWeight = "100";
};
new SpawnSphere() {
position = "91.9579 -18.2651 163.334";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnSphereMarker";
lockCount = "0";
homingCount = "0";
radius = "20";
sphereWeight = "100";
indoorWeight = "100";
outdoorWeight = "100";
};
};
new SimGroup(Base0) {
powerCount = "1";
new InteriorInstance() {
position = "336.45 117.504 201.06";
rotation = "0 0 1 47.5555";
scale = "1 1 1";
interiorFile = "dtowr2.dif";
showTerrainInside = "0";
locked = "true";
team = "2";
};
new StaticShape(LavaGenerator) {
position = "327.068 111.911 190.986";
rotation = "0 0 1 47.5555";
scale = "1 1 1";
nameTag = "Lava";
dataBlock = "GeneratorLarge";
lockCount = "0";
homingCount = "0";
Target = "44";
team = "2";
needsObjectiveWaypoint = "1";
};
};
new StaticShape(Switch) {
position = "215.999 15.5824 84.1074";
rotation = "1 0 0 0";
scale = "1 1 1";
nameTag = "Control";
dataBlock = "FlipFlop";
lockCount = "0";
homingCount = "0";
Target = "45";
locked = "true";
team = "2";
needsObjectiveWaypoint = "1";
};
new SimGroup(ffbase) {
powerCount = "1";
new InteriorInstance() {
position = "-93.2626 -19.4114 88.963";
rotation = "0 0 1 33.8046";
scale = "1 1 1";
interiorFile = "dtowr1.dif";
showTerrainInside = "0";
team = "2";
};
new StaticShape(ForcefieldGenerator) {
position = "-93.4641 -19.7113 112.471";
rotation = "0 0 1 34.1946";
scale = "1 1 1";
nameTag = "Forcefield";
dataBlock = "GeneratorLarge";
lockCount = "0";
homingCount = "0";
Target = "46";
team = "2";
needsObjectiveWaypoint = "1";
};
new ForceFieldBare(ff2) {
position = "302.743 108.426 178.041";
rotation = "0 0 1 47.5";
scale = "8.09539 1 5.04836";
dataBlock = "defaultTeamSlowFieldBare";
Target = "47";
lockCount = "0";
homingCount = "0";
team = "2";
};
new ForceFieldBare(ff2) {
position = "342.767 116.538 177.945";
rotation = "0 0 1 47.5";
scale = "8.09539 1 5.04836";
dataBlock = "defaultTeamSlowFieldBare";
Target = "48";
lockCount = "0";
homingCount = "0";
team = "2";
};
new ForceFieldBare(arf) {
position = "315.904 110.203 200.17";
rotation = "0 0 1 47.5555";
scale = "12.5762 14.1549 0.77919";
dataBlock = "defaultNoTeamLavaLightField";
Target = "49";
lockCount = "0";
homingCount = "0";
team = "2";
};
};
new SimGroup(equipment) {
powerCount = "2";
new StaticShape(MainBaseSensor) {
position = "268.647 -73.8241 166.697";
rotation = "0 0 -1 38.5708";
scale = "1 1 1";
nameTag = "Main Base";
dataBlock = "SensorLargePulse";
lockCount = "0";
homingCount = "0";
Target = "50";
locked = "true";
team = "2";
};
new StaticShape(FirstEquipmentGenerator) {
position = "338.362 100.474 160.993";
rotation = "0 0 -1 41.826";
scale = "1 1 1";
nameTag = "First Equipment";
dataBlock = "GeneratorLarge";
lockCount = "0";
homingCount = "0";
Target = "51";
team = "2";
};
new StaticShape(SecondEquipmentGenerator) {
position = "333.901 96.3878 161.007";
rotation = "-0.0149879 0.0392227 -0.999118 41.8597";
scale = "1 1 1";
nameTag = "Second Equipment";
dataBlock = "GeneratorLarge";
lockCount = "0";
homingCount = "0";
Target = "52";
team = "2";
};
new StaticShape(BaseInventory1) {
position = "318.351 127.163 161";
rotation = "0 0 -1 47.5555";
scale = "1 1 1";
nameTag = "Base";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "53";
team = "2";
};
new StaticShape(BaseInventory2) {
position = "312.52 121.556 161";
rotation = "0 0 -1 47.5555";
scale = "1 1 1";
nameTag = "Base";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "54";
team = "2";
};
new StaticShape(ForcefieldBaseInventory) {
position = "-93.3344 -30.6533 88.943";
rotation = "0 0 1 168.059";
scale = "1 1 1";
nameTag = "Forcefield Base";
dataBlock = "StationInventory";
lockCount = "0";
homingCount = "0";
Target = "55";
team = "2";
};
new StaticShape(ForcefieldBaseSensor) {
position = "-96.1364 -22.4047 142.926";
rotation = "0 0 1 90.5273";
scale = "1 1 1";
nameTag = "Forcefield Base";
dataBlock = "SensorMediumPulse";
lockCount = "0";
homingCount = "0";
Target = "56";
team = "2";
};
new Turret() {
position = "-146.278 5.8762 121.257";
rotation = "0 0 1 103.132";
scale = "1 1 1";
nameTag = "Forcefield Base";
dataBlock = "TurretBaseLarge";
lockCount = "0";
homingCount = "0";
initialBarrel = "PlasmaBarrelLarge";
Target = "57";
locked = "true";
team = "2";
};
new Turret() {
position = "252.852 110.007 160.388";
rotation = "0 0 -1 42.9718";
scale = "1 1 1";
nameTag = "Main Base";
dataBlock = "TurretBaseLarge";
lockCount = "0";
homingCount = "0";
initialBarrel = "PlasmaBarrelLarge";
Target = "58";
team = "2";
};
};
};
new SimGroup(team0) {
powerCount = "0";
};
};
new SimGroup(RandomOrganics) {
powerCount = "0";
new TSStatic() {
position = "309.048 -27.1378 154.33";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "dorg16.dts";
locked = "true";
};
new Item() {
position = "-106.661 556.116 198.638";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "RepairPack";
lockCount = "0";
homingCount = "0";
collideable = "0";
static = "1";
rotate = "1";
Target = "-1";
};
new TSStatic() {
position = "101.351 -120.54 167.234";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "dorg16.dts";
};
new TSStatic() {
position = "464.842 298.396 79.6909";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "dorg16.dts";
};
new TSStatic() {
position = "261.041 502.394 140.942";
rotation = "1 0 0 0";
scale = "2 2 1";
shapeName = "dorg17.dts";
};
new TSStatic() {
position = "-179.046 482.958 133.652";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "dorg19.dts";
};
new TSStatic() {
position = "-79.7171 283.882 117.974";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "dorg18.dts";
};
new TSStatic() {
position = "200.169 108.041 148.373";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "porg5.dts";
};
new TSStatic() {
position = "383.1 104.224 154.805";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "porg1.dts";
};
new TSStatic() {
position = "387.165 99.5415 154.764";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "porg1.dts";
};
new TSStatic() {
position = "188.321 172.793 113.218";
rotation = "1 0 0 0";
scale = "1 1 1";
shapeName = "porg1.dts";
};
};
new SimGroup(ObserverDropPoints) {
powerCount = "0";
new Camera(observer1) {
position = "89.9067 45.4067 198.273";
rotation = "0.0863833 -0.0994006 0.991291 98.512";
scale = "1 1 1";
dataBlock = "Observer";
lockCount = "0";
homingCount = "0";
team = "0";
};
new Camera(obs2) {
position = "-112.491 -97.7194 157.154";
rotation = "0.996092 0.0149425 -0.0870486 19.5555";
scale = "1 1 1";
dataBlock = "Observer";
lockCount = "0";
homingCount = "0";
team = "0";
};
new Camera(obs3) {
position = "-170.53 590.907 228.259";
rotation = "0.127912 -0.197037 0.972016 115.495";
scale = "1 1 1";
dataBlock = "Observer";
lockCount = "0";
homingCount = "0";
team = "0";
};
};
new SimGroup(environment) {
powerCount = "0";
new FireballAtmosphere(FireballAtmosphere) {
position = "177.8 730 143.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "fireball";
dropRadius = "900";
dropsPerMinute = "100";
minDropAngle = "0";
maxDropAngle = "10";
startVelocity = "300";
dropHeight = "1000";
dropDir = "0.212 0.212 -0.953998";
lockCount = "0";
locked = "false";
homingCount = "0";
};
new InteriorInstance() {
position = "-145.648 5.55263 111.471";
rotation = "0 0 -1 76.2034";
scale = "1 1 1";
interiorFile = "dmisc1.dif";
showTerrainInside = "0";
locked = "true";
};
new AudioEmitter() {
position = "213.054 6.89907 146.851";
rotation = "1 0 0 0";
scale = "1 1 1";
fileName = "fx/environment/lavahostile.wav";
useProfileDescription = "0";
outsideAmbient = "1";
volume = "1";
isLooping = "1";
is3D = "1";
minDistance = "120";
maxDistance = "200";
coneInsideAngle = "360";
coneOutsideAngle = "360";
coneOutsideVolume = "1";
coneVector = "0 0 1";
loopCount = "-1";
minLoopGap = "0";
maxLoopGap = "0";
type = "EffectAudioType";
locked = "true";
};
new WaterBlock(LavaPool) {
position = "120 -96 66.9963";
rotation = "1 0 0 0";
scale = "256 192 60.1947";
liquidType = "HotLava";
density = "10";
viscosity = "15";
waveMagnitude = "3";
surfaceTexture = "LiquidTiles/Lava";
surfaceOpacity = "1";
envMapTexture = "desert/skies/d_n_move1";
envMapIntensity = "0.3";
submergeTexture[0] = "special/lavadeath_1";
submergeTexture[1] = "special/lavadeath_2";
removeWetEdges = "1";
locked = "1";
};
new InteriorInstance() {
position = "215.826 15.5557 89.1571";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat2.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "191.29 34.6116 106.737";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "182.131 -35.7488 117.705";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "false";
};
new InteriorInstance() {
position = "257.328 37.3029 134.919";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "180.037 9.37294 156.925";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "224.792 -24.357 149.806";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "253.31 33.7575 109.412";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "dplat1.dif";
showTerrainInside = "0";
locked = "true";
};
new TSStatic() {
position = "12.5365 255.282 122.271";
rotation = "0 -1 0 9.16745";
scale = "1 1 1";
shapeName = "vehicle_air_scout_wreck.dts";
locked = "true";
};
new InteriorInstance() {
position = "268.575 -73.7475 156.927";
rotation = "0 0 -1 34.9504";
scale = "0.724826 1 1";
interiorFile = "dmisc1.dif";
showTerrainInside = "0";
locked = "true";
};
new StaticShape() {
position = "7.79674 258.369 124.24";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "LightMaleHuman_Dead";
lockCount = "0";
homingCount = "0";
Target = "-1";
};
new InteriorInstance() {
position = "252.784 110.06 150.609";
rotation = "0 0 1 45.8367";
scale = "1 1 1";
interiorFile = "dmisc1.dif";
showTerrainInside = "0";
locked = "true";
};
new InteriorInstance() {
position = "3.64849 67.5518 104.952";
rotation = "-0.933865 0.324319 -0.150707 52.9094";
scale = "2 2 2";
interiorFile = "drock7.dif";
showTerrainInside = "0";
};
new Item() {
position = "180.049 9.42249 159.559";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "RepairPack";
lockCount = "0";
homingCount = "0";
collideable = "0";
static = "1";
rotate = "1";
Target = "-1";
};
new Item() {
position = "329.105 107.661 181.265";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "RepairKit";
lockCount = "0";
homingCount = "0";
collideable = "0";
static = "1";
rotate = "1";
Target = "-1";
};
new AudioEmitter() {
position = "7.79674 258.369 125.04";
rotation = "1 0 0 0";
scale = "1 1 1";
fileName = "fx/environment/fly_swarm.wav";
useProfileDescription = "0";
outsideAmbient = "1";
volume = "1";
isLooping = "1";
is3D = "1";
minDistance = "4";
maxDistance = "25";
coneInsideAngle = "360";
coneOutsideAngle = "360";
coneOutsideVolume = "1";
coneVector = "0 0 1";
loopCount = "-1";
minLoopGap = "0";
maxLoopGap = "0";
type = "EffectAudioType";
locked = "false";
};
new ParticleEmissionDummy(smoke) {
position = "13.2614 250.543 126.018";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "defaultEmissionDummy";
emitter = "SmallHeavyDamageSmoke";
velocity = "1";
lockCount = "0";
homingCount = "0";
};
};
};
//--- OBJECT WRITE END ---
package Patience
{
function SiegeGame::missionLoadDone(%game)
{
Parent::missionLoadDone(%game);
Game.originalScale = nameToID("LavaPool").scale;
Game.powerIsUp = true;
}
function SiegeGame::startMatch(%game)
{
Parent::startMatch(%game);
AdjustWaterLevel(NameToID("LavaPool"));
}
function Generator::onDisabled(%data, %obj, %prevState)
{
%obj.decPowerCount();
if (%obj == nameToId("LavaGenerator"))
Game.PowerIsUp = false;
Parent::onDisabled(%data, %obj, %prevState);
}
function Generator::onEnabled(%data, %obj, %prevState)
{
%obj.incPowerCount();
if (%obj == nameToId("LavaGenerator"))
Game.PowerIsUp = true;
Parent::onEnabled(%data, %obj, %prevState);
}
function SiegeGame::gameOver(%game)
{
cancel(Game.PatienceSched);
exec("scripts/forceField.cs");
Parent::gameOver(%game);
deactivatePackage(Patience);
}
function SiegeGame::halftime(%game, %reason)
{
cancel(Game.PatienceSched);
Game.PowerIsUp = true;
ReSizeWater(nameToID("LavaPool"), Game.originalScale);
Parent::halftime(%game, %reason);
}
function SiegeGame::startSecondHalf(%game)
{
Parent::startSecondHalf(%game);
AdjustWaterLevel(NameToID("LavaPool"));
}
// The following functions were taken from "Polar Dip", by [HvC]Scuba and [HvC]Dev. Much thanks, Scuba and Dev.
function AdjustWaterLevel(%Water)
{
// If the Object you specified to increase in size is not water, just
// note that in the console and log and quit
if (%Water.getType() != 16)
{
logEcho("Attempting to raise/lower water level on non-water object.");
return;
}
%Water.Locked = true;
Game.PatienceSched = Schedule(1000, 0, SizeWater, %Water);
}
function ReSizeWater(%Water, %OriginalScale)
{
%Water.Scale = %OriginalScale;
%Water.setTransform(%Water.getTransform());
}
function SizeWater(%Water)
{
if (Game.powerIsUp)
AdjustWaterLevel(%Water);
else
{
%ScaleXY = getWords(%Water.Scale, 0, 1);
%ScaleZ = getWord(%Water.Scale, 2) - 0.13333;
%Water.Scale = %ScaleXY @ " " @ %ScaleZ;
// Just needed to cause a refresh
%Water.setTransform(%Water.getTransform());
AdjustWaterLevel(%Water);
}
}
};
if (!$OFFLINE_NAV_BUILD)
activatePackage(Patience);