This commit is contained in:
Robert Fritzen 2015-02-12 19:52:33 -06:00
commit 26ff02fd38
23 changed files with 2353 additions and 931 deletions

View file

@ -18,7 +18,7 @@ datablock ItemData(KillstreakBeacon) {
friction = 0.6;
pickupRadius = 2;
pickUpName = "a targeting laser rifle";
isKSSW = 1;
computeCRC = true;
@ -31,7 +31,7 @@ datablock ShapeBaseImageData(KillstreakBeaconImage) {
shapeFile = "weapon_targeting.dts";
item = KillstreakBeacon;
offset = "0 0 0";
isKSSW = 1;
projectile = BasicTargeter;
@ -73,6 +73,14 @@ datablock ShapeBaseImageData(KillstreakBeaconImage) {
};
function KillstreakBeaconImage::onMount(%this, %obj, %slot) {
<<<<<<< HEAD
=======
if(getWordCount(%obj.client.streakList()) == 0) {
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
>>>>>>> origin/development
Parent::onMount(%this, %obj, %slot);
%obj.hasMineModes = 1;
%obj.hasGrenadeModes = 1;
@ -82,6 +90,7 @@ function KillstreakBeaconImage::onMount(%this, %obj, %slot) {
}
%obj.usingKSBeacon = true;
}
<<<<<<< HEAD
function KillstreakBeaconImage::onunmount(%this,%obj,%slot) {
Parent::onUnmount(%this, %obj, %slot);
@ -189,6 +198,77 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
function KillstreakBeaconImage::onunmount(%this,%obj,%slot) {
Parent::onUnmount(%this, %obj, %slot);
%obj.hasMineModes = 0;
%obj.hasGrenadeModes = 0;
%obj.usingKSBeacon = false;
}
function KillstreakBeaconImage::changeMode(%this, %obj, %key) {
switch(%key) {
case 1:
//Mine Modes
%obj.KSSetMode++;
if(%obj.KSSetMode >= getWordCount(%obj.client.streakList())) {
%obj.KSSetMode = 0;
}
case 2:
//Grenade Modes
%obj.KSSetMode--;
if(%obj.KSSetMode < 0) {
%obj.KSSetMode = getWordCount(%obj.client.streakList());
}
}
DisplayKillstreakInfo(%obj);
}
function DisplayKillstreakInfo(%obj) {
%streakList = %obj.client.streakList();
%currentStreak = getWord(%streakList, %obj.KSSetMode);
%strkName = getField($Killstreak[%currentStreak], 0);
%strkCnt = %obj.client.streakCount[%currentStreak];
commandToClient(%obj.client, 'BottomPrint', "<font:Sui Generis:14>>>>Killstreak Beacon<<<\n<font:Arial:14>"@%strkName@" ["@%strkCnt@" Available]\n<font:Arial:12>Press Mine to select next streak, Grenade to select previous streak.", 3, 3);
}
function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%streakList = %obj.client.streakList();
%currentStreak = getWord(%streakList, %obj.KSSetMode);
%strkName = getField($Killstreak[%currentStreak], 0);
%strkCnt = %obj.client.streakCount[%currentStreak];
%newCt = %strkCnt - 1;
echo("KSBeacon::Fire("@%data@", "@%obj@", "@%slot@"): "@%strkName@" "@%strkCnt@" => "@%newCt);
if(%strkCnt <= 0) {
//Oops...
messageClient(%obj.client, 'msgError', "\c5TWM2: Nice Try...");
//%obj.client.streakCount[%currentStreak]--;
if(getWordCount(%obj.client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
return;
}
switch(%currentStreak) {
//
//
// UAV
//
//
case 1:
GainExperience(%obj.client, 25, "UAV Called in ");
%obj.client.TWM2Core.UAVCalls++;
UpdateSWBeaconFile(%obj.client, "UAV");
%obj.client.OnUseKillstreak(1);
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
%count = 0;
if(!$TWM2::FFAMode) {
%obj.team.UAVLoop = UAVLoop(%obj, %obj.client.team, %count);
@ -214,13 +294,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
}
<<<<<<< HEAD
=======
>>>>>>> origin/development
//
//
// Airstrike
//
//
<<<<<<< HEAD
case "Airstrike":
=======
case 2:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -230,13 +318,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%ASCam.mode = "AirstrikeCall";
%obj.client.setControlObject(%ASCam);
CameraMessageLoop(%obj.client, %ASCam, %ASCam.mode);
<<<<<<< HEAD
=======
>>>>>>> origin/development
//
//
// UAMS
//
//
<<<<<<< HEAD
case "GM":
=======
case 3:
>>>>>>> origin/development
GainExperience(%obj.client, 50, "UAMS Called in ");
%obj.client.TWM2Core.GMCalls++;
%obj.client.OnUseKillstreak(3);
@ -251,6 +347,7 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
CreateMissileSat(%obj.client);
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
@ -258,12 +355,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Helicopter
//
//
<<<<<<< HEAD
case "AIHeli":
=======
case 4:
>>>>>>> origin/development
if(Game.CheckModifier("Scrambler") == 1) {
for(%i = 0; %i < MissionCleanup.getCount(); %i++) {
%obj = MissionCleanup.getObject(%i);
@ -290,12 +396,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Helicopter Inbound");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli(%obj.client);
//
@ -303,7 +413,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Harrier
//
//
<<<<<<< HEAD
case "Harrier":
=======
case 5:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -319,7 +433,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// OLS
//
//
<<<<<<< HEAD
case "OLS":
=======
case 6:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -335,7 +453,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Gunship Helicopter
//
//
<<<<<<< HEAD
case "AIGunHeli":
=======
case 7:
>>>>>>> origin/development
if(Game.CheckModifier("Scrambler") == 1) {
for(%i = 0; %i < MissionCleanup.getCount(); %i++) {
%obj = MissionCleanup.getObject(%i);
@ -362,12 +484,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Gunship Helicopter Inbound!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli2(%obj.client, 0);
//
@ -375,7 +501,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Stealth Airstrike
//
//
<<<<<<< HEAD
case "Stealth":
=======
case 8:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -391,7 +521,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Harbinger Gunship
//
//
<<<<<<< HEAD
case "HarbWrath":
=======
case 9:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "Harbinger Gunship Called In ");
if($CurrentMission $= "ChristmasMall09") {
CompleteNWChallenge(%CallerClient, "GunshipMall");
@ -408,12 +542,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Gunship... INCOMING!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
if($TWM2::UnmannedGunship) {
StartHarbingersWrath(%obj.client, 1);
}
@ -426,7 +564,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Apache
//
//
<<<<<<< HEAD
case "Apache":
=======
case 10:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "Apache Gunner Called in ");
%obj.client.OnUseKillstreak(10);
%obj.client.TWM2Core.CGCalls++;
@ -440,12 +582,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Apache... INCOMING!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli(%obj.client, 1);
//
@ -453,7 +599,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// AC130
//
//
<<<<<<< HEAD
case "AC130":
=======
case 11:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "AC130 Called in ");
if($CurrentMission $= "ChristmasMall09") {
CompleteNWChallenge(%CallerClient, "GunshipMall");
@ -470,12 +620,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy AC130 ABOVE!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
if($TWM2::UnmannedGunship) {
StartAC130(%obj.client, 1);
}
@ -488,7 +642,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Artillery
//
//
<<<<<<< HEAD
case "Artillery":
=======
case 12:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -504,7 +662,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// EMP
//
//
<<<<<<< HEAD
case "EMP":
=======
case 13:
>>>>>>> origin/development
%obj.client.TWM2Core.EMPCalls++;
UpdateSWBeaconFile(%obj.client, "EMP");
GainExperience(%obj.client, 1000, "Mass EMP Called in ");
@ -532,19 +694,27 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Nuke
//
//
<<<<<<< HEAD
case "NukeStrike":
=======
case 14:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -560,7 +730,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// ZBomb
//
//
<<<<<<< HEAD
case "ZBomb":
=======
case 15:
>>>>>>> origin/development
GainExperience(%obj.client, 1000, "Zombie Annihilation Bomb Activated ");
MessageAll('msgWohoo', "\c5TWM2: "@%obj.client.namebase@" has activated a Z-Bomb, eliminating all zombies");
%obj.client.OnUseKillstreak(15);
@ -587,19 +761,27 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%flcl.player.setWhiteout(1.8);
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Fission
//
//
<<<<<<< HEAD
case "FBomb":
=======
case 16:
>>>>>>> origin/development
%obj.client.HasFission = 0;
GainExperience(%obj.client, 25000, "Anti-Matter Based Fission Bomb Activated ");
%obj.client.OnUseKillstreak(16);
@ -608,6 +790,7 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
CompleteNWChallenge(%obj.client, "GameEnder");
MessageAll('msgItsOva', "\c5COMMAND: FISSION BOMB!!! IT'S OVER!! RUN!!!!!! ~wfx/misc/red_alert_short.wav");
FissionBombLoop(%obj.client, %obj, %obj.getPosition(), 30);
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
@ -615,12 +798,20 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Napalm
//
//
<<<<<<< HEAD
case "Napalm":
=======
case 17:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -632,7 +823,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
CameraMessageLoop(%obj.client, %ASCam, %ASCam.mode);
}
//Post-Fire Checks
<<<<<<< HEAD
if(%obj.client.ksListInstance.count() <= 0) {
=======
if(getWordCount(%obj.client.streakList()) == 0) {
>>>>>>> origin/development
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
@ -720,7 +915,11 @@ function ConstantBomberTurningLoop(%obj, %TPos) {
%SwapA = -1 * getWord(%target, 0);
%TVector = getWord(%target, 1)@" "@%SwapA@" 0";
%obj.setRotation(fullrot("0 0 0",%TVector));
<<<<<<< HEAD
=======
>>>>>>> origin/development
%dist = vectorDist(%TPos, %BPos);
if(%dist < 75) {
%obj.ReachedDest = 1;
@ -739,7 +938,7 @@ function Airstrike(%CallerClient, %position, %dirFrom) {
%CallerClient.TWM2Core.AirstrikeCalls++;
UpdateSWBeaconFile(%CallerClient, "AirStrike");
}
//new stuff TWM2 2.6
//%dirFrom = Spawn Position of Aircraft
%THeight = getTerrainHeight(%dirFrom);
@ -836,7 +1035,7 @@ function MakeTheHeli(%cl, %gunner) {
if(%gunner $= "") {
%gunner = 0;
}
if(%gunner) {
%Heli = new FlyingVehicle() {
dataBlock = ApacheHelicopter;
@ -953,7 +1152,7 @@ function HeliBeginAttack(%heli, %target) {
%heli.Targeting = schedule(500, 0, "HeliScan", %heli);
return;
}
schedule(500, 0, "HeliBeginAttack", %heli, %target);
%clpos = %target.getPosition();
if(vectorDist(%clpos, %pos) < 125) {
@ -1121,7 +1320,7 @@ function MakeTheHeli2(%cl, %harrier) {
%Heli.doneAttack = 0;
//
%Heli.team = %cl.team;
%heli.canFireMissiles = 1;
%heli.Targeting = GunshipHeliScan(%heli);