function CrateRandomSpawnController:: onTimer(%this) { %this.setTimerOff(); %this.setTimerOn(getRandom(8000,50000)); %this.SpawnCrate(); } function CrateRandomSpawnSpecialController:: onTimer(%this) { %this.setTimerOff(); %this.setTimerOn(getRandom(40000,60000)); %this.SpawnCrate(); } function CrateRandomSpawnSpecialController:: SpawnCrate() { //get random crate %rndCrate = getRandom(1,4); switch (%rndCrate) { case 1 : alxPlay(CrateAppear); CopterSpawnCrate.setTimerOn(8000); CopterSpawnCrate.spawnCrate(); break; case 2 : alxPlay(CrateAppear); CopterSpawnCrate.setTimerOn(8000); CopterSpawnCrate.spawnCrate(); break; case 3 : alxPlay(CrateAppear); BombananaCrate.spawnCrate(); BombananaCrate.setTimerOn(8000); break; case 4 : alxPlay(CrateAppear); CopterSpawnCrate.setTimerOn(8000); CopterSpawnCrate.spawnCrate(); break; } return; } function CrateRandomSpawnController:: SpawnCrate() { //get random crate %rndCrate = getRandom(1,5); switch (%rndCrate) { case 1 : // cannon crate alxPlay(CrateAppear); CannonCrate.spawnCrate(); CannonCrate.setTimerOn(8000); break; case 2 : // health crate alxPlay(CrateAppear); HealthCrate.spawnCrate(); HealthCrate.setTimerOn(8000); break; case 3: //machinegun crate alxPlay(CrateAppear); MachinegunCrate.spawnCrate(); MachinegunCrate.setTimerOn(8000); break; case 4 : // health crate alxPlay(CrateAppear); HealthCrate.spawnCrate(); HealthCrate.setTimerOn(8000); break; case 5: // grenade crate alxPlay(CrateAppear); GrenadeCrate.spawnCrate(); GrenadeCrate.setTimerOn(8000); break; default : // health crate alxPlay(CrateAppear); HealthCrate.spawnCrate(); HealthCrate.setTimerOn(8000); break; } return; } // monnkeycopter crate collision function CopterSpawnCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") Player1CopterSpawn(); else if(%dstObj.class $= "Player2") Player2CopterSpawn(); else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; alxPlay(HeliCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-152, -185); } // monkeycopter crate spawn function CopterSpawnCrate:: spawnCrate(%this) { //get random position %rndPosition = getRandom(1,10); switch (%rndPosition) { case 1: echo("in case1ofposition"); CopterSpawnCrate.setPosition(-89,-31); return; case 2: CopterSpawnCrate.setPosition(-31,-93); return; case 3: CopterSpawnCrate.setPosition(-111,36); return; case 4: CopterSpawnCrate.setPosition(-63,83); return; case 5: CopterSpawnCrate.setPosition(-43,-17); return; case 6: CopterSpawnCrate.setPosition(122,-68); return; case 7: CopterSpawnCrate.setPosition(27,-60); return; case 8: CopterSpawnCrate.setPosition(97,44); return; case 9: CopterSpawnCrate.setPosition(122,-20); return; default: CopterSpawnCrate.setPosition(44,10); return; } } // monkey copter crate remove function CopterSpawnCrate:: onTimer(%this) { CopterSpawnCrate.removeCrate(); } function CopterSpawnCrate:: removeCrate(%this) { echo("incoptereremovecrate"); CopterSpawnCrate.setPosition(-162,-185); } //machine gun crate collision function MachinegunCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") { //add ammo to player 1 here p1MgAmmoCount.add(20); p1MgAmmoCount.checkCount(p1MgAmmoCount.text); } else if(%dstObj.class $= "Player2") { //add ammo to player 2 here p2MgAmmoCount.add(20); p2MgAmmoCount.checkCount(p2MgAmmoCount.text); } else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; // play crate collect sound effect here alxPlay(AmmoCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-120, -185); } //machine gun crate spawn function MachinegunCrate:: spawnCrate() { //get random position %rndPosition = getRandom(1,10); //spawn to that random position switch (%rndPosition) { case"1": MachinegunCrate.setPosition(71,10); return; case"2": MachinegunCrate.setPosition(102,-27); return; case"3": MachinegunCrate.setPosition(39,-39); return; case"4": MachinegunCrate.setPosition(72,68); return; case"5": MachinegunCrate.setPosition(62,108); return; case"6": MachinegunCrate.setPosition(-73,-63); return; case"7": MachinegunCrate.setPosition(-121,-13); return; case"8": MachinegunCrate.setPosition(-123,50); return; case"9": MachinegunCrate.setPosition(-48,32); return; default: MachinegunCrate.setPosition(-30,67); return; } } function MachinegunCrate::onTimer(%this) { MachinegunCrate.removeCrate(); } //machine gun crate remove function MachinegunCrate:: removeCrate() { MachinegunCrate.setPosition(-120,-185); } //bombanana crate collision function BombananaCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") { //add ammo to player 1 here p1BombananaAmmoCount.add(3); p1BombananaAmmoCount.checkCount(p1BombananaAmmoCount.text); } else if(%dstObj.class $= "Player2") { //add ammo to player 2 here p2BombananaAmmoCount.add(3); p2BombananaAmmoCount.checkCount(p2BombananaAmmoCount.text); } else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; // play crate collect sound effect here alxPlay(BombananaCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-80, -185); } //bombanana crate spawn function BombananaCrate:: spawnCrate() { //get random position %rndPosition = getRandom(1,10); //spawn to that random position switch (%rndPosition) { case 1: echo("in case1ofposition"); BombananaCrate.setPosition(-89,-31); return; case 2: BombananaCrate.setPosition(-31,-93); return; case 3: BombananaCrate.setPosition(-111,36); return; case 4: BombananaCrate.setPosition(-63,83); return; case 5: BombananaCrate.setPosition(-43,-17); return; case 6: BombananaCrate.setPosition(122,-68); return; case 7: BombananaCrate.setPosition(27,-60); return; case 8: BombananaCrate.setPosition(97,44); return; case 9: BombananaCrate.setPosition(122,-20); return; default: BombananaCrate.setPosition(44,10); return; } } function BombananaCrate::onTimer(%this) { BombananaCrate.removeCrate(); } //bombanana crate remove function BombananaCrate:: removeCrate() { BombananaCrate.setPosition(-80,-185); } //grenade crate collision function GrenadeCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") { //add ammo to player 1 here p1grenadeAmmoCount.add(10); p1grenadeAmmoCount.checkCount(p1grenadeAmmoCount.text); } else if(%dstObj.class $= "Player2") { //add ammo to player 2 here p2grenadeAmmoCount.add(10); p2grenadeAmmoCount.checkCount(p2grenadeAmmoCount.text); } else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; // play crate collect sound effect here alxPlay(OtherCrateCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-80, -185); } //grenade crate spawn function GrenadeCrate:: spawnCrate() { //get random position %rndPosition = getRandom(1,10); //spawn to that random position switch (%rndPosition) { case"1": GrenadeCrate.setPosition(71,10); return; case"2": GrenadeCrate.setPosition(102,-27); return; case"3": GrenadeCrate.setPosition(39,-39); return; case"4": GrenadeCrate.setPosition(72,68); return; case"5": GrenadeCrate.setPosition(62,108); return; case"6": GrenadeCrate.setPosition(-73,-63); return; case"7": GrenadeCrate.setPosition(-121,-13); return; case"8": GrenadeCrate.setPosition(-123,50); return; case"9": GrenadeCrate.setPosition(-48,32); return; default: GrenadeCrate.setPosition(-30,67); return; } } function GrenadeCrate::onTimer(%this) { GrenadeCrate.removeCrate(); } //grenade crate remove function GrenadeCrate:: removeCrate() { GrenadeCrate.setPosition(-30,-185); } //cannon crate collision function CannonCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") { //add ammo to player 1 here p1cannonAmmoCount.add(10); p1cannonAmmoCount.checkCount(p1cannonAmmoCount.text); } else if(%dstObj.class $= "Player2") { //add ammo to player 2 here p2cannonAmmoCount.add(10); p2cannonAmmoCount.checkCount(p2cannonAmmoCount.text); } else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; // play crate collect sound effect here alxPlay(OtherCrateCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-80, -185); } //cannon crate spawn function CannonCrate:: spawnCrate() { //get random position %rndPosition = getRandom(1,10); //spawn to that random position switch (%rndPosition) { case"1": CannonCrate.setPosition(71,10); return; case"2": CannonCrate.setPosition(102,-27); return; case"3": CannonCrate.setPosition(39,-39); return; case"4": CannonCrate.setPosition(72,68); return; case"5": CannonCrate.setPosition(62,108); return; case"6": CannonCrate.setPosition(-73,-63); return; case"7": CannonCrate.setPosition(-121,-13); return; case"8": CannonCrate.setPosition(-123,50); return; case"9": CannonCrate.setPosition(-48,32); return; default: CannonCrate.setPosition(-30,67); return; } } function CannonCrate::onTimer(%this) { CannonCrate.removeCrate(); } //cannon crate remove function CannonCrate:: removeCrate() { CannonCrate.setPosition(10,-185); } //health crate collision function HealthCrate:: onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "Player1") { //add health to player 1 here %srcObj.dealDamage(-40, %dstObj); } else if(%dstObj.class $= "Player2") { //add health to player 2 here %srcObj.dealDamage(-40, %dstObj); } else return; %crateEffect = new t2dParticleEffect() { scenegraph = %srcObj.scenegraph; }; // play crate collect sound effect here alxPlay(OtherCrateCollect); %crateEffect.loadEffect("~/data/particles/portal.eff"); %crateEffect.setEffectLifeMode("KILL", 1); %crateEffect.setPosition(%srcObj.getPosition()); %crateEffect.playEffect(); %srcObj.setPosition(-80, -185); } //increase heath "deal damage" function HealthCrate ::dealDamage(%this, %amount, %victim) { %takesDamage = %victim.getBehavior("TakesDamageAdvBehavior"); if (!isObject(%takesDamage)) return; %takesDamage.takeDamage(%amount, %this); } //Health crate spawn function HealthCrate:: spawnCrate() { //get random position %rndPosition = getRandom(1,10); //spawn to that random position switch (%rndPosition) { case"1": HealthCrate.setPosition(71,10); return; case"2": HealthCrate.setPosition(102,-27); return; case"3": HealthCrate.setPosition(39,-39); return; case"4": HealthCrate.setPosition(72,68); return; case"5": HealthCrate.setPosition(62,108); return; case"6": HealthCrate.setPosition(-73,-63); return; case"7": HealthCrate.setPosition(-121,-13); return; case"8": HealthCrate.setPosition(-123,50); return; case"9": HealthCrate.setPosition(-48,32); return; default: HealthCrate.setPosition(-30,67); return; } } function HealthCrate::onTimer(%this) { HealthCrate.removeCrate(); } //Health crate remove function HealthCrate:: removeCrate() { HealthCrate.setPosition(55,-185); } //dummy crate collision //dummy crate remove