Frame 1
function LoadLayout() {
_root.createEmptyMovieClip("loader", 2);
MCL.loadClip("http://people.alfred.edu/~nam2/LaserBack.jpg", Background);
LISTENER.onLoadStart = function () {
};
LISTENER.onLoadProgress = function () {
};
LISTENER.onLoadInit = function () {
Back.removeMovieClip();
loadtext.removeTextField();
};
}
TRACK1 = new Sound();
TRACK2 = new Sound();
TRACK1.loadSound("http://people.alfred.edu/~nam2/LaserDefense.mp3", false);
_root.createEmptyMovieClip("musicPanel", 55000);
musicPanel.moveTo(0, 0);
musicPanel.lineStyle(0, 0, 25);
musicPanel.beginFill(16711680, 8);
musicPanel.lineTo(120, 0);
musicPanel.lineTo(120, 50);
musicPanel.lineTo(110, 60);
musicPanel.lineTo(0, 60);
musicPanel.endFill();
musicPanel.moveTo(0, 3);
musicPanel.lineStyle(0, 0, 50);
musicPanel.beginFill(16711680, 8);
musicPanel.lineTo(117, 3);
musicPanel.lineTo(117, 47);
musicPanel.lineTo(107, 57);
musicPanel.lineTo(0, 57);
musicPanel.endFill();
musicPanel._x = -121;
musicPanel._y = 520;
musicPanel.createTextField("ARTIST", 55001, 5, 5, 100, 20);
musicPanel.createTextField("TITLE", 55002, 5, 20, 100, 20);
musicPanel.createTextField("ALBUM", 55003, 5, 35, 100, 20);
count2 = 0;
TRACK1.onLoad = function () {
TRACK2.loadSound("http://people.alfred.edu/~nam2/LaserDefense2.mp3", false);
_root.createEmptyMovieClip("music", 87);
_root.music._x = 626;
_root.music._y = 180;
_root.music.moveTo(0, 0);
_root.music.lineStyle(0, 0, 75);
_root.music.beginFill(16711680, 8);
_root.music.lineTo(60, 0);
_root.music.lineTo(60, 20);
_root.music.lineTo(10, 20);
_root.music.lineTo(0, 10);
_root.music.lineTo(0, 0);
_root.music.endFill();
_root.music.createTextField("MUSIC", 88, 0, 0, 60, 20);
_root.createEmptyMovieClip("track1", 89);
_root.track1.moveTo(0, 0);
_root.track1.lineStyle(0, 0, 75);
_root.track1.beginFill(16711680, 8);
_root.track1.lineTo(25, 0);
_root.track1.lineTo(25, 20);
_root.track1.lineTo(10, 20);
_root.track1.lineTo(0, 10);
_root.track1.lineTo(0, 0);
_root.track1.endFill();
_root.track1._x = 704;
_root.track1._y = 180;
_root.track1.createTextField("Track1", 90, 0, 0, 25, 20);
_root.music.ON = 0;
_root.music.pan = false;
_root.music._alpha = 0;
_root.track1._alpha = 0;
if (count == 0) {
_root.music._alpha = 100;
_root.track1._alpha = 100;
_root.music.MUSIC.text = "MUSIC";
_root.track1.Track1.text = "1";
_root.music.MUSIC.setTextFormat(Starttext);
_root.track1.Track1.setTextFormat(Starttext);
}
_root.music.onPress = function () {
if (_root.music.ON > 0) {
_root.music.ON = false;
TRACK1.stop();
TRACK2.stop();
_root.music.MUSIC.setTextFormat(Starttext);
_root.track1.Track1.setTextFormat(Starttext);
_root.track2.Track2.setTextFormat(Starttext);
}
};
_root.track1.onPress = function () {
if (_root.music.ON != 1) {
TRACK2.stop();
TRACK1.start();
TRACK1.setVolume(50);
_root.track1.Track1.setTextFormat(PanelUp);
_root.track2.Track2.setTextFormat(Starttext);
_root.music.ON = 1;
_root.music.MUSIC.setTextFormat(PanelUp);
_root.musicPanel.ARTIST.text = "Dj Tiesto";
_root.musicPanel.TITLE.text = "Clear View";
_root.musicPanel.ALBUM.text = "Magik 2";
_root.musicPanel.ARTIST.setTextFormat(PanelValue);
_root.musicPanel.TITLE.setTextFormat(PanelValue);
_root.musicPanel.ALBUM.setTextFormat(PanelValue);
_root.createEmptyMovieClip("musicMove", -5);
_root.music.pan = true;
count2 = 0;
}
};
};
TRACK2.onLoad = function () {
_root.createEmptyMovieClip("track2", 91);
_root.track2.moveTo(0, 0);
_root.track2.lineStyle(0, 0, 75);
_root.track2.beginFill(16711680, 8);
_root.track2.lineTo(25, 0);
_root.track2.lineTo(25, 20);
_root.track2.lineTo(10, 20);
_root.track2.lineTo(0, 10);
_root.track2.lineTo(0, 0);
_root.track2.endFill();
_root.track2._x = 733;
_root.track2._y = 180;
_root.track2.createTextField("Track2", 92, 0, 0, 25, 20);
openLoad.removeMovieClip();
_root.track2._alpha = 0;
if (count == 0) {
_root.track2._alpha = 100;
_root.track2.Track2.text = "2";
_root.track2.Track2.setTextFormat(Starttext);
}
_root.track2.onPress = function () {
if (_root.music.ON != 2) {
TRACK1.stop();
TRACK2.start(0.02);
TRACK2.setVolume(60);
_root.track2.Track2.setTextFormat(PanelUp);
_root.track1.Track1.setTextFormat(Starttext);
_root.music.ON = 2;
_root.music.MUSIC.setTextFormat(PanelUp);
_root.musicPanel.ARTIST.text = "Dj Tiesto";
_root.musicPanel.TITLE.text = "Binary Finary";
_root.musicPanel.ALBUM.text = "Magik 2";
_root.musicPanel.ARTIST.setTextFormat(PanelValue);
_root.musicPanel.TITLE.setTextFormat(PanelValue);
_root.musicPanel.ALBUM.setTextFormat(PanelValue);
_root.music.pan = true;
count2 = 0;
}
};
};
pp = 0;
_root.createEmptyMovieClip("Background", -1);
_root.createEmptyMovieClip("Back", 60001);
MCL = new MovieClipLoader();
LISTENER = new Object();
MCL.addListener(LISTENER);
LoadLayout();
_root.Back.createTextField("loadtext", 70001, 0, 0, 180, 20);
_root.Back.loadtext.selectable = false;
Back.onEnterFrame = function () {
if (pp == 0) {
this.loadtext.text = "loading background ";
} else if (pp == 4) {
this.loadtext.text = "loading background. ";
} else if (pp == 8) {
this.loadtext.text = "loading background.. ";
} else if (pp == 12) {
this.loadtext.text = "loading background...";
}
if (count == undefined) {
this.loadtext._x = 220;
this.loadtext._y = 60;
this.loadtext.setTextFormat(TitleSubtext);
} else if (count == 0) {
this.loadtext._x = 632;
this.loadtext._y = 450;
this.loadtext.setTextFormat(PanelValue);
}
pp = ((pp < 16) ? (pp + 1) : 0);
};
function CreateLaser(b) {
_root.createEmptyMovieClip("Laser" + TowerArray.length, 1000 + TowerArray.length);
_root["Laser" + TowerArray.length].Info = new Array();
_root["Laser" + TowerArray.length].Info[0] = false;
_root["Laser" + TowerArray.length].Info[5] = TowerArray.length;
_root["Laser" + TowerArray.length].Info[1] = b;
_root["Laser" + TowerArray.length].Info[7] = 0;
_root["Laser" + TowerArray.length].n = 0;
_root["Laser" + TowerArray.length].nn = 0;
_root["Laser" + TowerArray.length].Target = new Array();
_root["Laser" + TowerArray.length].TargetSort = new Array();
TowerArrayB[TowerArrayB.length] = _root["Laser" + TowerArray.length];
TowerArray[TowerArray.length] = 0;
switch (b) {
case 0 :
DrawBlaster("Laser" + (TowerArray.length - 1));
break;
case 1 :
DrawBeam("Laser" + (TowerArray.length - 1));
break;
case 2 :
DrawCharge("Laser" + (TowerArray.length - 1));
break;
case 3 :
DrawDisruptor("Laser" + (TowerArray.length - 1));
break;
case 4 :
DrawRailgun("Laser" + (TowerArray.length - 1));
break;
case 5 :
DrawInverter("Laser" + (TowerArray.length - 1));
break;
case 6 :
DrawRadar("Laser" + (TowerArray.length - 1));
break;
case 7 :
DrawFission("Laser" + (TowerArray.length - 1));
break;
case 8 :
DrawScissor("Laser" + (TowerArray.length - 1));
}
AssignButton("Laser" + (TowerArray.length - 1));
}
function DrawBlaster(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1400 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 16776960);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 4;
_root[Tower].Info[3] = 50;
_root[Tower].Info[4] = 10;
_root[Tower].Info[6] = 30;
_root[Tower].BlasterArray = new Array();
_root[Tower].POWER = 4;
_root[Tower].RANGE = 50;
_root[Tower].SPEED = 10;
_root[Tower].charge = 100;
}
function DrawBeam(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1400 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 16711935);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 2;
_root[Tower].Info[3] = 60;
_root[Tower].Info[4] = 9;
_root[Tower].Info[6] = 150;
_root[Tower].POWER = 2;
_root[Tower].RANGE = 60;
_root[Tower].SPEED = 9;
_root[Tower].charge = 100;
}
function DrawCharge(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1400 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 16711680);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 25;
_root[Tower].Info[3] = 100;
_root[Tower].Info[4] = 1;
_root[Tower].Info[6] = 75;
_root[Tower].ch = 0;
_root[Tower].POWER = 25;
_root[Tower].RANGE = 120;
_root[Tower].SPEED = 1;
_root[Tower].charge = 100;
}
function DrawDisruptor(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1400 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 4521796);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 6;
_root[Tower].Info[3] = 60;
_root[Tower].Info[4] = 2;
_root[Tower].Info[6] = 100;
_root[Tower].POWER = 6;
_root[Tower].RANGE = 60;
_root[Tower].SPEED = 2;
_root[Tower].charge = 100;
}
function DrawRailgun(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 255);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 5;
_root[Tower].Info[3] = 150;
_root[Tower].Info[4] = 1;
_root[Tower].Info[6] = 200;
_root[Tower].x = 0;
_root[Tower].y = 0;
_root[Tower].fire = false;
_root[Tower].POWER = 5;
_root[Tower].RANGE = 150;
_root[Tower].SPEED = 1;
_root[Tower].charge = 100;
_root[Tower].targeted = false;
}
function DrawInverter(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 6710886);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 3;
_root[Tower].Info[3] = 80;
_root[Tower].Info[4] = 2;
_root[Tower].Info[6] = 200;
_root[Tower].POWER = 3;
_root[Tower].RANGE = 80;
_root[Tower].SPEED = 2;
_root[Tower].charge = 100;
_root[Tower].targeted = undefined;
}
function DrawRadar(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 39168);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 2;
_root[Tower].Info[3] = 80;
_root[Tower].Info[4] = 2;
_root[Tower].Info[6] = 200;
_root[Tower].POWER = 2;
_root[Tower].RANGE = 80;
_root[Tower].SPEED = 2;
_root[Tower].charge = 100;
DrawRadarSight(_root[Tower]);
}
function DrawFission(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 5667071);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 20;
_root[Tower].Info[3] = 100;
_root[Tower].Info[4] = 1;
_root[Tower].Info[6] = 150;
_root[Tower].POWER = 20;
_root[Tower].RANGE = 100;
_root[Tower].SPEED = 1;
_root[Tower].charge = 100;
}
function DrawScissor(Tower) {
_root[Tower].lineStyle(0, 8947848);
_root[Tower].moveTo(-10, 0);
_root[Tower].lineTo(0, -10);
_root[Tower].lineTo(10, 0);
_root[Tower].lineTo(0, 10);
_root[Tower].lineTo(-10, 0);
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
_root[Tower].middle.lineStyle(1, 10027161);
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
_root[Tower].beginFill(0);
_root[Tower].lineStyle(0, 0);
_root[Tower].moveTo(-4, 0);
_root[Tower].lineTo(0, -4);
_root[Tower].lineTo(4, 0);
_root[Tower].lineTo(0, 4);
_root[Tower].lineTo(-4, 0);
_root[Tower].endFill();
_root[Tower].Info[2] = 1;
_root[Tower].Info[3] = 90;
_root[Tower].Info[4] = 1;
_root[Tower].Info[6] = 200;
_root[Tower].POWER = 1;
_root[Tower].RANGE = 90;
_root[Tower].SPEED = 1;
_root[Tower].charge = 100;
}
function DrawRange(Tower) {
_root.createEmptyMovieClip("Range", 30000);
_root.Range.lineStyle(1, 0, 75);
_root.Range.beginFill(8947848, 15);
_root.Range.moveTo(-Tower.Info[3], 0);
l = 0;
while (l <= (Math.PI*2)) {
_root.Range.lineTo((-Tower.Info[3]) * Math.cos(l), (-Tower.Info[3]) * Math.sin(l));
l = l + 0.196349540849362;
}
_root.Range.endFill();
_root.Range._x = Tower._x;
_root.Range._y = Tower._y;
}
function DrawRadarSight(Tower) {
_root.createEmptyMovieClip("radar" + Tower.Info[5], 1100 + Tower.Info[5]);
_root["radar" + Tower.Info[5]].moveTo(0, 0);
_root["radar" + Tower.Info[5]].lineStyle(0, 39168, 25);
_root["radar" + Tower.Info[5]].beginFill(39168, 25);
_root["radar" + Tower.Info[5]].lineTo(0, Tower.Info[3]);
uu = 0;
while (uu <= ((Tower.Info[4] / 16) * Math.PI)) {
_root["radar" + Tower.Info[5]].lineTo(Tower.Info[3] * Math.sin(uu), Tower.Info[3] * Math.cos(uu));
uu = uu + 0.196349540849362;
}
_root["radar" + Tower.Info[5]].lineTo(0, 0);
_root["radar" + Tower.Info[5]].endFill();
}
function DrawScissorBeam(Tower) {
Tower.n = ((Tower.n < 30) ? (Tower.n + 1) : 0);
for (i3 in TowerArrayB) {
if (TowerArrayB[i3].Info[1] == 8) {
if (Math.sqrt(Math.pow(TowerArrayB[i3]._x - Tower._x, 2) + Math.pow(TowerArrayB[i3]._y - Tower._y, 2)) <= Tower.Info[3]) {
_root.createEmptyMovieClip(("BeamX" + Tower.Info[5]) + i3, ((70 + Tower.Info[5]) + 4) + i3);
_root[("BeamX" + Tower.Info[5]) + i3].moveTo(Tower._x, Tower._y);
_root[("BeamX" + Tower.Info[5]) + i3].lineStyle(Tower.n / 4, 10031513, 50);
_root[("BeamX" + Tower.Info[5]) + i3].lineTo(TowerArrayB[i3]._x, TowerArrayB[i3]._y);
} else if (Math.sqrt(Math.pow(TowerArrayB[i3]._x - Tower._x, 2) + Math.pow(TowerArrayB[i3]._y - Tower._y, 2)) > Tower.Info[3]) {
_root[("BeamX" + Tower.Info[5]) + i3].removeMovieClip();
}
}
for (k3 in EnemyArrayB) {
if ((_root[("BeamX" + Tower.Info[5]) + i3].hitTest(EnemyArrayB[k3]._x, EnemyArrayB[k3]._y, true) && (TowerArrayB[i3].Info[0] == true)) && (Tower.Info[0] == true)) {
EnemyArrayB[k3].life = EnemyArrayB[k3].life - Tower.Info[2];
}
}
}
}
function DrawFreqWave(Tower) {
_root.createEmptyMovieClip("FreqWave" + Tower.Info[5], 550 + Tower.Info[5]);
_root["FreqWave" + Tower.Info[5]].moveTo(Tower.PointArray[0]._x + Tower._x, Tower.PointArray[0]._y + Tower._y);
_root["FreqWave" + Tower.Info[5]].lineStyle(2, 16746496);
for (n in Tower.PointArray) {
if (Tower.PointArray[n] != undefined) {
Tower.PointArray[n]._x = Tower.PointArray[n]._x + (Tower.PointArray[n].xV / Tower.PointArray[n].mag);
Tower.PointArray[n]._y = Tower.PointArray[n]._y + (Tower.PointArray[n].yV / Tower.PointArray[n].mag);
_root["FreqWave" + Tower.Info[5]].lineTo(Tower.PointArray[n]._x + Tower._x, Tower.PointArray[n]._y + Tower._y);
}
}
}
function ReDraw(Tower) {
_root[Tower].middle.removeMovieClip();
_root[Tower].createEmptyMovieClip("middle", 1100 + _root[Tower].Info[5]);
switch (_root[Tower].Info[1]) {
case 0 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 16776960);
break;
case 1 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 16711935);
break;
case 2 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 16711680);
break;
case 3 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 4521796);
break;
case 4 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 255);
break;
case 5 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 6710886);
break;
case 6 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 39168);
break;
case 7 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 5667071);
break;
case 8 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 10027161);
break;
case 9 :
_root[Tower].middle.lineStyle(_root[Tower].Info[2] / _root[Tower].POWER, 16746496);
}
_root[Tower].middle.moveTo(-7, 0);
_root[Tower].middle.lineTo(0, -7);
_root[Tower].middle.lineTo(7, 0);
_root[Tower].middle.lineTo(0, 7);
_root[Tower].middle.lineTo(-7, 0);
}
function DrawUpgrade(Tower) {
key = false;
_root.Panel.Credit.duplicateMovieClip("upgradeP", 200, _root.Panel);
_root.Panel.upgradeP.createTextField("UPT", 201, 3, 0, 60, 20);
_root.Panel.upgradeP.UPT.text = "UPGRADE";
_root.Panel.upgradeP._x = 629;
_root.Panel.upgradeP._y = 229;
_root.Panel.upgradeP.UPT.setTextFormat(PanelUp);
_root.Panel.Credit.duplicateMovieClip("upgradeR", 202, _root.Panel);
_root.Panel.upgradeR.createTextField("URT", 203, 3, 0, 60, 20);
_root.Panel.upgradeR.URT.text = "UPGRADE";
_root.Panel.upgradeR._x = 629;
_root.Panel.upgradeR._y = 252;
_root.Panel.upgradeR.URT.setTextFormat(PanelUp);
if (_root[Tower].Info[1] != 8) {
_root.Panel.Credit.duplicateMovieClip("upgradeS", 204, _root.Panel);
_root.Panel.upgradeS.createTextField("UST", 205, 3, 0, 60, 20);
_root.Panel.upgradeS.UST.text = "UPGRADE";
_root.Panel.upgradeS._x = 629;
_root.Panel.upgradeS._y = 275;
_root.Panel.upgradeS.UST.setTextFormat(PanelUp);
}
_root.Panel.createEmptyMovieClip("selltower", 206, _root.Panel);
_root.Panel.selltower.moveTo(0, 0);
_root.Panel.selltower.lineStyle(1, 0);
_root.Panel.selltower.lineTo(40, 0);
_root.Panel.selltower.lineTo(40, 20);
_root.Panel.selltower.lineTo(10, 20);
_root.Panel.selltower.lineTo(0, 10);
_root.Panel.selltower.lineTo(0, 0);
_root.Panel.selltower.createTextField("SEL", 207, 3, 0, 40, 20);
_root.Panel.selltower.SEL.text = "SELL";
_root.Panel.selltower.SEL.setTextFormat(PanelUp);
_root.Panel.selltower._x = 629;
_root.Panel.selltower._y = 480;
UpgradeButton(Tower);
_root.Panel.upgradeP.onEnterFrame = function () {
if (Key.isDown(80) && (key == false)) {
if (money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[2]) / _root[Tower].POWER)) {
money = money - Math.round((_root[Tower].Info[6] * _root[Tower].Info[2]) / _root[Tower].POWER);
_root[Tower].Info[2] = _root[Tower].Info[2] + _root[Tower].POWER;
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
ReDraw(Tower);
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
}
key = true;
}
if (Key.isDown(82) && (key == false)) {
if ((money >= Math.round(_root[Tower].Info[3] * 2.5)) && (_root[Tower].Info[3] < 200)) {
money = money - Math.round(_root[Tower].Info[3] * 2.5);
_root[Tower].Info[3] = _root[Tower].Info[3] + 20;
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
DrawRange(_root[Tower]);
if (_root[Tower].Info[1] == 6) {
DrawRadarSight(_root[Tower]);
}
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
}
key = true;
}
if (Key.isDown(83) && (key == false)) {
if (((money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2)) && (_root[Tower].Info[1] != 1)) && (_root[Tower].Info[1] != 6)) {
money = money - Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2);
_root[Tower].Info[4] = _root[Tower].Info[4] + 1;
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
} else if (((_root[Tower].Info[1] == 1) && (money >= Math.round(_root[Tower].Info[4] * 20))) && (_root[Tower].Info[4] < 17)) {
money = money - Math.round(_root[Tower].Info[4] * 20);
_root[Tower].Info[4] = _root[Tower].Info[4] + 2;
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
} else if (((_root[Tower].Info[1] == 6) && (money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2))) && (_root[Tower].Info[4] < 17)) {
money = money - Math.round(_root[Tower].Info[4] * 20);
_root[Tower].Info[4] = _root[Tower].Info[4] + 1;
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
DrawRadarSight(_root[Tower]);
}
key = true;
}
if (((Key.isDown(80) == false) && (Key.isDown(82) == false)) && (Key.isDown(83) == false)) {
key = false;
}
};
}
function AssignButton(Tower) {
_root[Tower].onPress = function () {
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
DrawUpgrade(Tower);
DrawRange(_root[Tower]);
_root.createEmptyMovieClip("Placer", -10);
};
}
function UpgradeButton(Tower) {
_root.Panel.upgradeP.onRollOver = function () {
_root.Panel.Upgrade.cost.Cost.text = Math.round((_root[Tower].Info[6] * _root[Tower].Info[2]) / _root[Tower].POWER);
_root.Panel.Upgrade.info.INFO.text = "Power + Initial Power";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
this._alpha = 50;
this.UPT.textColor = 8947848 /* 0x888888 */;
};
_root.Panel.upgradeR.onRollOver = function () {
if (_root[Tower].Info[3] < 200) {
_root.Panel.Upgrade.cost.Cost.text = Math.round(_root[Tower].Info[3] * 2.5);
_root.Panel.Upgrade.info.INFO.text = "Range + 20";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
} else if (_root[Tower].Info[3] >= 200) {
_root.Panel.Upgrade.cost.Cost.text = "Max";
_root.Panel.Upgrade.info.INFO.text = "This Tower has maximum range";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
}
this._alpha = 50;
this.URT.textColor = 8947848 /* 0x888888 */;
};
_root.Panel.upgradeS.onRollOver = function () {
if ((_root[Tower].Info[1] == 1) && (_root[Tower].Info[4] == 17)) {
_root.Panel.Upgrade.cost.Cost.text = "Max";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.text = "This tower already has 4 extensions";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
} else if ((_root[Tower].Info[1] == 1) && (_root[Tower].Info[4] < 17)) {
_root.Panel.Upgrade.cost.Cost.text = Math.round(_root[Tower].Info[4] * 20);
_root.Panel.Upgrade.info.INFO.text = "Adds 1 beam extension. Up to 4 extensions";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
} else if ((_root[Tower].Info[1] != 1) && (_root[Tower].Info[1] != 6)) {
_root.Panel.Upgrade.cost.Cost.text = Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2);
_root.Panel.Upgrade.info.INFO.text = "Speed + 1";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
} else if ((_root[Tower].Info[1] == 6) && (_root[Tower].Info[4] < 17)) {
_root.Panel.Upgrade.cost.Cost.text = Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2);
_root.Panel.Upgrade.info.INFO.text = "Increases radar width by 11.25 degrees. Up to 180 degress";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
} else if ((_root[Tower].Info[1] == 6) && (_root[Tower].Info[4] == 17)) {
_root.Panel.Upgrade.cost.Cost.text = "Max";
_root.Panel.Upgrade.info.INFO.text = "This tower already has maximum sight.";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
}
this._alpha = 50;
this.UST.textColor = 8947848 /* 0x888888 */;
};
_root.Panel.upgradeP.onRollOut = function () {
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this._alpha = 100;
this.UPT.textColor = 0;
};
_root.Panel.upgradeR.onRollOut = function () {
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this._alpha = 100;
this.URT.textColor = 0;
};
_root.Panel.upgradeS.onRollOut = function () {
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this._alpha = 100;
this.UST.textColor = 0;
};
_root.Panel.selltower.onRollOver = function () {
_root.Panel.Upgrade.sell.Sell.text = Math.round((((_root[Tower].Info[6] / 4) + (((_root[Tower].Info[2] / _root[Tower].POWER) * _root[Tower].Info[6]) / 4)) + (((_root[Tower].Info[3] / _root[Tower].RANGE) * _root[Tower].Info[6]) / 4)) + (((_root[Tower].Info[4] / _root[Tower].SPEED) * _root[Tower].Info[6]) / 4));
_root.Panel.Upgrade.sell.Sell.setTextFormat(PanelValue);
this._alpha = 50;
this.SEL.textColor = 8947848 /* 0x888888 */;
};
_root.Panel.selltower.onRollOut = function () {
_root.Panel.Upgrade.sell.Sell.text = "";
this._alpha = 100;
this.SEL.textColor = 0;
};
_root.Panel.upgradeP.onPress = function () {
if (money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[2]) / _root[Tower].POWER)) {
money = money - Math.round((_root[Tower].Info[6] * _root[Tower].Info[2]) / _root[Tower].POWER);
_root[Tower].Info[2] = _root[Tower].Info[2] + _root[Tower].POWER;
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
ReDraw(Tower);
}
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
};
_root.Panel.upgradeR.onPress = function () {
if ((money >= Math.round(_root[Tower].Info[3] * 2.5)) && (_root[Tower].Info[3] < 200)) {
money = money - Math.round(_root[Tower].Info[3] * 2.5);
_root[Tower].Info[3] = _root[Tower].Info[3] + 20;
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
DrawRange(_root[Tower]);
if (_root[Tower].Info[1] == 6) {
DrawRadarSight(_root[Tower]);
}
}
};
_root.Panel.upgradeS.onPress = function () {
if (((money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2)) && (_root[Tower].Info[1] != 1)) && (_root[Tower].Info[1] != 6)) {
money = money - Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2);
_root[Tower].Info[4] = _root[Tower].Info[4] + 1;
} else if (((_root[Tower].Info[1] == 1) && (money >= Math.round(_root[Tower].Info[4] * 20))) && (_root[Tower].Info[4] < 17)) {
money = money - Math.round(_root[Tower].Info[4] * 20);
_root[Tower].Info[4] = _root[Tower].Info[4] + 2;
} else if (((_root[Tower].Info[1] == 6) && (money >= Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2))) && (_root[Tower].Info[4] < 17)) {
money = money - Math.round((_root[Tower].Info[6] * _root[Tower].Info[4]) / 2);
_root[Tower].Info[4] = _root[Tower].Info[4] + 1;
DrawRadarSight(_root[Tower]);
}
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
};
_root.Panel.selltower.onPress = function () {
money = money + Math.round((((_root[Tower].Info[6] / 4) + (((_root[Tower].Info[2] / _root[Tower].POWER) * _root[Tower].Info[6]) / 4)) + (((_root[Tower].Info[3] / _root[Tower].RANGE) * _root[Tower].Info[6]) / 4)) + (((_root[Tower].Info[4] / _root[Tower].SPEED) * _root[Tower].Info[6]) / 4));
_root["radar" + _root[Tower].Info[5]].removeMovieClip();
for (w in TowerArrayB) {
_root[("BeamX" + _root[Tower].Info[5]) + TowerArrayB[w].Info[5]].removeMovieClip();
_root[("BeamX" + TowerArrayB[w].Info[5]) + _root[Tower].Info[5]].removeMovieClip();
}
_root[Tower].removeMovieClip();
_root.Range.removeMovieClip();
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
_root.Panel.Upgrade.sell.Sell.text = "";
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
for (p2 in TowerArrayB) {
if (TowerArrayB[p2] == undefined) {
TowerArrayB.splice(p2, 1);
}
}
};
_root.Panel.Upgrade.power.Power.text = _root[Tower].Info[2];
_root.Panel.Upgrade.range.Range.text = _root[Tower].Info[3];
_root.Panel.Upgrade.speed.Speed.text = _root[Tower].Info[4];
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
}
function DrawNormalEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(-2, -2);
_root["enemy" + iter].lineStyle(0, 11145693);
_root["enemy" + iter].lineTo(2, -2);
_root["enemy" + iter].lineTo(2, 2);
_root["enemy" + iter].lineTo(-2, 2);
_root["enemy" + iter].lineTo(-2, -2);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-4, -4);
_root["enemy" + iter].LIFE.lineStyle(2, 65280);
_root["enemy" + iter].LIFE.lineTo(4, -4);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 4;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 4;
_root["enemy" + iter].life = LifeTotal;
}
function DrawFastEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(-4, 0);
_root["enemy" + iter].lineStyle(0, 1122867);
_root["enemy" + iter].curveTo(0, -5, 4, 0);
_root["enemy" + iter].curveTo(0, 5, -4, 0);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-4, -5);
_root["enemy" + iter].LIFE.lineStyle(2, 65280);
_root["enemy" + iter].LIFE.lineTo(4, -5);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 8;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 8;
_root["enemy" + iter].life = LifeTotal;
}
function DrawSlowEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(0, -3);
_root["enemy" + iter].lineStyle(0, 1140445);
_root["enemy" + iter].lineTo(3, 0);
_root["enemy" + iter].lineTo(0, 3);
_root["enemy" + iter].lineTo(-3, 0);
_root["enemy" + iter].lineTo(0, -3);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-4, -5);
_root["enemy" + iter].LIFE.lineStyle(2, 65280);
_root["enemy" + iter].LIFE.lineTo(4, -5);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 2;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 2;
_root["enemy" + iter].life = LifeTotal;
}
function DrawRegenEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(-2, -2);
_root["enemy" + iter].lineStyle(0, 11141120);
_root["enemy" + iter].lineTo(3, 3);
_root["enemy" + iter].lineTo(5, 1);
_root["enemy" + iter].lineTo(3, -1);
_root["enemy" + iter].lineTo(-3, 5);
_root["enemy" + iter].lineTo(-5, 3);
_root["enemy" + iter].lineTo(-3, 1);
_root["enemy" + iter].lineTo(2, 6);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-4, -5);
_root["enemy" + iter].LIFE.lineStyle(2, 4474111);
_root["enemy" + iter].LIFE.lineTo(4, -5);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 4;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 4;
_root["enemy" + iter].life = LifeTotal;
}
function DrawExplodeEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(3, -5);
_root["enemy" + iter].lineStyle(0, 43520);
_root["enemy" + iter].lineTo(6, -2);
_root["enemy" + iter].lineTo(3, 1);
_root["enemy" + iter].lineTo(0, -2);
_root["enemy" + iter].lineTo(3, -5);
_root["enemy" + iter].moveTo(0, -2);
_root["enemy" + iter].lineTo(5, 3);
_root["enemy" + iter].lineTo(0, 8);
_root["enemy" + iter].lineTo(-5, 3);
_root["enemy" + iter].lineTo(0, -2);
_root["enemy" + iter].moveTo(-3, 5);
_root["enemy" + iter].lineTo(-6, 8);
_root["enemy" + iter].lineTo(-3, 11);
_root["enemy" + iter].lineTo(0, 8);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-5, -7);
_root["enemy" + iter].LIFE.lineStyle(2, 14483456);
_root["enemy" + iter].LIFE.lineTo(5, -7);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 4;
_root["enemy" + iter]._xscale = 80;
_root["enemy" + iter]._yscale = 80;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 4;
_root["enemy" + iter].life = LifeTotal;
}
function DrawWarpEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(-4, -2);
_root["enemy" + iter].lineStyle(0, 16711697);
_root["enemy" + iter].lineTo(-2, -4);
_root["enemy" + iter].lineTo(0, -4);
_root["enemy" + iter].lineTo(2, -2);
_root["enemy" + iter].lineTo(2, 0);
_root["enemy" + iter].lineTo(0, 2);
_root["enemy" + iter].lineTo(-2, 2);
_root["enemy" + iter].lineTo(-4, 0);
_root["enemy" + iter].lineTo(-4, -2);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-5, -7);
_root["enemy" + iter].LIFE.lineStyle(2, 65280);
_root["enemy" + iter].LIFE.lineTo(5, -7);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 3;
_root["enemy" + iter]._xscale = 100;
_root["enemy" + iter]._yscale = 100;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 3;
_root["enemy" + iter].life = LifeTotal;
_root["enemy" + iter].createEmptyMovieClip("warp", 600 + iter);
_root["enemy" + iter].warp.lineStyle(1, 0);
_root["enemy" + iter].warp.moveTo(-5, 0);
e = 0;
while (e <= 6.40818530717959) {
_root["enemy" + iter].warp.lineTo(-5 * Math.cos(e), -5 * Math.sin(e));
e = e + 0.392699081698724;
}
_root["enemy" + iter].warp._x = -1;
_root["enemy" + iter].warp._y = -1;
_root["enemy" + iter].warp._alpha = 50;
_root["enemy" + iter].n = 0;
_root["enemy" + iter].warp._xscale = 140;
_root["enemy" + iter].warp._yscale = 140;
}
function DrawSuperEnemy(iter) {
_root.createEmptyMovieClip("enemy" + iter, 400 + iter);
_root["enemy" + iter].moveTo(0, -4);
_root["enemy" + iter].lineStyle(0, 0);
_root["enemy" + iter].lineTo(1, -1);
_root["enemy" + iter].lineTo(4, 0);
_root["enemy" + iter].lineTo(1, 1);
_root["enemy" + iter].lineTo(0, 4);
_root["enemy" + iter].lineTo(-1, 1);
_root["enemy" + iter].lineTo(-4, 0);
_root["enemy" + iter].lineTo(-1, -1);
_root["enemy" + iter].lineTo(0, -4);
_root["enemy" + iter].createEmptyMovieClip("LIFE", 500 + iter);
_root["enemy" + iter].LIFE.moveTo(-5, -7);
_root["enemy" + iter].LIFE.lineStyle(2, 65280);
_root["enemy" + iter].LIFE.lineTo(5, -7);
_root["enemy" + iter]._x = -30 - (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter]._y = 50 + (10 * Math.cos(iter * Math.PI));
_root["enemy" + iter].speed = 6;
_root["enemy" + iter]._xscale = 100;
_root["enemy" + iter]._yscale = 100;
_root["enemy" + iter].TargetBy = new Array();
EnemyArrayB[iter] = _root["enemy" + iter];
SpeedTotal = 6;
_root["enemy" + iter].life = LifeTotal;
_root["enemy" + iter].createEmptyMovieClip("warp", 600 + iter);
_root["enemy" + iter].warp.lineStyle(1, 16711680);
_root["enemy" + iter].warp.moveTo(-5, 0);
e = 0;
while (e <= 6.40818530717959) {
_root["enemy" + iter].warp.lineTo(-5 * Math.cos(e), -5 * Math.sin(e));
e = e + 0.392699081698724;
}
_root["enemy" + iter].warp._x = 0;
_root["enemy" + iter].warp._y = 0;
_root["enemy" + iter].warp._alpha = 50;
_root["enemy" + iter].n = 0;
_root["enemy" + iter].warp._xscale = 140;
_root["enemy" + iter].warp._yscale = 140;
}
function GameOver() {
_root.createEmptyMovieClip("gameover", 600000);
_root.gameover.createTextField("GAMEOVER", 600001, 0, 0, 200, 50);
_root.gameover._x = 150;
_root.gameover._y = 100;
_root.gameover.GAMEOVER.text = "Game Over";
_root.gameover.GAMEOVER.setTextFormat(TitleScreen);
_root.gameover.createTextField("LEVEL", 600002, 0, 50, 200, 50);
_root.gameover.LEVEL.wordWrap = true;
_root.gameover.LEVEL.text = (("You made it to level " + level) + " with a score of ") + score;
_root.gameover.LEVEL.setTextFormat(TitleSubtext);
_root.createEmptyMovieClip("Again", 600003);
_root.Again.createTextField("AGAIN", 600004, 0, 0, 150, 50);
_root.Again._x = 170;
_root.Again._y = 200;
_root.Again.AGAIN.selectable = false;
_root.Again.AGAIN.text = "Again?";
_root.Again.AGAIN.setTextFormat(TitleScreen);
Panel.Start.removeMovieClip();
Panel.restart.removeMovieClip();
for (t in EnemyArrayB) {
EnemyArrayB[t].removeMovieClip();
}
for (rr in TowerArrayB) {
for (rrr in TowerArrayB) {
_root[("BeamX" + rr) + rrr].removeMovieClip();
_root[("BeamX" + rrr) + rr].removeMovieClip();
}
TowerArrayB[rr].removeMovieClip();
_root["radar" + rr].removeMovieClip();
}
NextWave.removeMovieClip();
Movement.removeMovieClip();
_root.createEmptyMovieClip("EASY", 600005);
EASY._x = 145;
EASY._y = 300;
EASY.createTextField("easy", 600006, -40, -20, 120, 50);
EASY.easy.text = "Easy";
EASY.easy.selectable = false;
EASY.easy.setTextFormat(TitleScreen);
_root.createEmptyMovieClip("HARD", 600007);
HARD._x = 320;
HARD._y = 300;
HARD.createTextField("hard", 600008, -40, -20, 120, 50);
HARD.hard.text = "Hard";
HARD.hard.selectable = false;
HARD.hard.setTextFormat(TitleScreen);
EASY.onRollOver = function () {
EASY._xscale = 120;
EASY._yscale = 120;
Title.inform.text = "weaker enemies and more money";
Title.inform.setTextFormat(TitleSubtext);
};
EASY.onRollOut = function () {
EASY._xscale = 100;
EASY._yscale = 100;
Title.inform.text = "";
};
EASY.onPress = function () {
EASY._xscale = 150;
EASY._yscale = 150;
Title.removeMovieClip();
EASY.removeMovieClip();
HARD.removeMovieClip();
DIF = 0;
_root.Again.removeMovieClip();
_root.gameover.removeMovieClip();
Begin();
level = 1;
};
HARD.onRollOver = function () {
HARD._xscale = 120;
HARD._yscale = 120;
Title.inform.text = "stronger enemies and less money";
Title.inform.setTextFormat(TitleSubtext);
};
HARD.onRollOut = function () {
HARD._xscale = 100;
HARD._yscale = 100;
Title.inform.text = "";
};
HARD.onPress = function () {
HARD._xscale = 150;
HARD._yscale = 150;
Title.removeMovieClip();
HARD.removeMovieClip();
EASY.removeMovieClip();
DIF = 1;
_root.Again.removeMovieClip();
_root.gameover.removeMovieClip();
Begin();
level = 1;
};
Range.removeMovieClip();
ButtonBlaster.removeMovieClip();
ButtonBeam.removeMovieClip();
ButtonCharge.removeMovieClip();
ButtonDisruptor.removeMovieClip();
ButtonRailgun.removeMovieClip();
ButtonInverter.removeMovieClip();
ButtonRadar.removeMovieClip();
ButtonFission.removeMovieClip();
ButtonScissor.removeMovieClip();
}
function Restart() {
_root.createEmptyMovieClip("REstart", 600000);
_root.REstart.createTextField("AYS", 600001, 0, 0, 200, 50);
_root.REstart._x = 200;
_root.REstart._y = 130;
_root.REstart.AYS.text = "Restart ?";
_root.createEmptyMovieClip("YES", 600002);
_root.YES.createTextField("yes", 600003, 130, 200, 200, 50);
_root.YES.yes.text = "Obviously";
_root.createEmptyMovieClip("NO", 600004);
_root.NO.createTextField("no", 600005, 380, 200, 100, 50);
_root.NO.no.text = "NO";
_root.YES.yes.setTextFormat(TitleScreen);
_root.NO.no.setTextFormat(TitleScreen);
_root.REstart.AYS.setTextFormat(TitleScreen);
_root.YES.onPress = function () {
GameOver();
_root.REstart.removeMovieClip();
_root.YES.removeMovieClip();
_root.NO.removeMovieClip();
};
_root.NO.onPress = function () {
_root.REstart.removeMovieClip();
_root.YES.removeMovieClip();
_root.NO.removeMovieClip();
};
}
function StartWave() {
Panel.Start._alpha = 50;
EnemyArrayB = [];
_root.createEmptyMovieClip("NextWave", 115);
j = 0;
jj = 0;
jjj = 0;
Panel.Start.START.setTextFormat(Starttext);
Killcount = 0;
NextWave.onEnterFrame = function () {
jj = jj + 1;
switch (EnemyCycle[enemyloop]) {
case 0 :
if (jj == 10) {
DrawNormalEnemy(j);
DrawNormalEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 1 :
if (jj == 5) {
DrawFastEnemy(j);
DrawFastEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 2 :
if (jj == 20) {
DrawSlowEnemy(j);
DrawSlowEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 3 :
if (jj == 10) {
DrawRegenEnemy(j);
DrawRegenEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 4 :
if (jj == 10) {
DrawExplodeEnemy(j);
DrawExplodeEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 5 :
if (jj == 55) {
DrawWarpEnemy(j);
DrawWarpEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
break;
case 6 :
if (jj != 40) {
break;
}
DrawSuperEnemy(j);
DrawSuperEnemy(j + 1);
EnemyArray1[jjj] = 1;
EnemyArray2[jjj] = 1;
j = j + 2;
jj = 0;
jjj = jjj + 1;
}
if (((enemyloop != 9) && (j == 16)) || ((enemyloop == 9) && (j == 8))) {
jj = 0;
j = 0;
jjj = 0;
this.removeMovieClip();
}
};
EnemyStuff();
}
function EnemyStuff() {
_root.createEmptyMovieClip("Movement", 116);
Movement.onEnterFrame = function () {
for (p in EnemyArray1) {
for (oo in PathArray1) {
if ((((_root["enemy" + ((p * 2) + 1)]._x > PathArray1[oo][0]) && (_root["enemy" + ((p * 2) + 1)]._x < PathArray1[oo][1])) && (_root["enemy" + ((p * 2) + 1)]._y > PathArray1[oo][2])) && (_root["enemy" + ((p * 2) + 1)]._y < PathArray1[oo][3])) {
if ((EnemyCycle[enemyloop] != 5) && (EnemyCycle[enemyloop] != 6)) {
if (((((oo == 1) || (oo == 5)) || (oo == 9)) || (oo == 11)) || (oo == 17)) {
_root["enemy" + ((p * 2) + 1)]._y = _root["enemy" + ((p * 2) + 1)]._y + _root["enemy" + ((p * 2) + 1)].speed;
} else if ((((((oo == 3) || (oo == 7)) || (oo == 13)) || (oo == 15)) || (oo == 19)) || (oo == 21)) {
_root["enemy" + ((p * 2) + 1)]._y = _root["enemy" + ((p * 2) + 1)]._y - _root["enemy" + ((p * 2) + 1)].speed;
} else if (((((((oo == 0) || (oo == 6)) || (oo == 8)) || (oo == 12)) || (oo == 16)) || (oo == 18)) || (oo == 22)) {
_root["enemy" + ((p * 2) + 1)]._x = _root["enemy" + ((p * 2) + 1)]._x + _root["enemy" + ((p * 2) + 1)].speed;
} else if (((((oo == 2) || (oo == 4)) || (oo == 10)) || (oo == 14)) || (oo == 20)) {
_root["enemy" + ((p * 2) + 1)]._x = _root["enemy" + ((p * 2) + 1)]._x - _root["enemy" + ((p * 2) + 1)].speed;
}
} else {
_root["enemy" + ((p * 2) + 1)].n = _root["enemy" + ((p * 2) + 1)].n + 1;
if (_root["enemy" + ((p * 2) + 1)].n < Math.round(9 / _root["enemy" + ((p * 2) + 1)].speed)) {
_root["enemy" + ((p * 2) + 1)].warp._xscale = _root["enemy" + ((p * 2) + 1)].warp._xscale - (_root["enemy" + ((p * 2) + 1)].n * 15);
_root["enemy" + ((p * 2) + 1)].warp._yscale = _root["enemy" + ((p * 2) + 1)].warp._yscale - (_root["enemy" + ((p * 2) + 1)].n * 15);
} else if (_root["enemy" + ((p * 2) + 1)].n == Math.round(9 / _root["enemy" + ((p * 2) + 1)].speed)) {
_root["enemy" + ((p * 2) + 1)]._visible = false;
if (((((oo == 1) || (oo == 5)) || (oo == 9)) || (oo == 11)) || (oo == 17)) {
_root["enemy" + ((p * 2) + 1)]._y = _root["enemy" + ((p * 2) + 1)]._y + 20;
} else if ((((((oo == 3) || (oo == 7)) || (oo == 13)) || (oo == 15)) || (oo == 19)) || (oo == 21)) {
_root["enemy" + ((p * 2) + 1)]._y = _root["enemy" + ((p * 2) + 1)]._y - 20;
} else if (((((((oo == 0) || (oo == 6)) || (oo == 8)) || (oo == 12)) || (oo == 16)) || (oo == 18)) || (oo == 22)) {
_root["enemy" + ((p * 2) + 1)]._x = _root["enemy" + ((p * 2) + 1)]._x + 20;
} else if (((((oo == 2) || (oo == 4)) || (oo == 10)) || (oo == 14)) || (oo == 20)) {
_root["enemy" + ((p * 2) + 1)]._x = _root["enemy" + ((p * 2) + 1)]._x - 20;
}
} else if (_root["enemy" + ((p * 2) + 1)].n == Math.round(30 / _root["enemy" + ((p * 2) + 1)].speed)) {
_root["enemy" + ((p * 2) + 1)]._visible = true;
} else if ((_root["enemy" + ((p * 2) + 1)].n > Math.round(30 / _root["enemy" + ((p * 2) + 1)].speed)) && (_root["enemy" + ((p * 2) + 1)].n < Math.round(39 / _root["enemy" + ((p * 2) + 1)].speed))) {
_root["enemy" + ((p * 2) + 1)].warp._xscale = _root["enemy" + ((p * 2) + 1)].warp._xscale + (_root["enemy" + ((p * 2) + 1)].n * 3);
_root["enemy" + ((p * 2) + 1)].warp._yscale = _root["enemy" + ((p * 2) + 1)].warp._yscale + (_root["enemy" + ((p * 2) + 1)].n * 3);
} else if (_root["enemy" + ((p * 2) + 1)].n == Math.round(45 / _root["enemy" + ((p * 2) + 1)].speed)) {
_root["enemy" + ((p * 2) + 1)].warp._visible = false;
}
if (_root["enemy" + ((p * 2) + 1)].n >= Math.round(50 / _root["enemy" + ((p * 2) + 1)].speed)) {
_root["enemy" + ((p * 2) + 1)].warp._visible = true;
_root["enemy" + ((p * 2) + 1)].warp._xscale = 140;
_root["enemy" + ((p * 2) + 1)].warp._yscale = 140;
_root["enemy" + ((p * 2) + 1)].n = 0;
}
}
}
}
}
for (p in EnemyArray2) {
for (oo in PathArray2) {
if ((((_root["enemy" + (p * 2)]._x > PathArray2[oo][0]) && (_root["enemy" + (p * 2)]._x < PathArray2[oo][1])) && (_root["enemy" + (p * 2)]._y > PathArray2[oo][2])) && (_root["enemy" + (p * 2)]._y < PathArray2[oo][3])) {
if ((EnemyCycle[enemyloop] != 5) && (EnemyCycle[enemyloop] != 6)) {
if (((((oo == 1) || (oo == 5)) || (oo == 9)) || (oo == 11)) || (oo == 17)) {
_root["enemy" + (p * 2)]._y = _root["enemy" + (p * 2)]._y + _root["enemy" + (p * 2)].speed;
} else if ((((((oo == 3) || (oo == 7)) || (oo == 13)) || (oo == 15)) || (oo == 19)) || (oo == 21)) {
_root["enemy" + (p * 2)]._y = _root["enemy" + (p * 2)]._y - _root["enemy" + (p * 2)].speed;
} else if (((((((oo == 0) || (oo == 6)) || (oo == 8)) || (oo == 12)) || (oo == 16)) || (oo == 18)) || (oo == 22)) {
_root["enemy" + (p * 2)]._x = _root["enemy" + (p * 2)]._x + _root["enemy" + (p * 2)].speed;
} else if (((((oo == 2) || (oo == 4)) || (oo == 10)) || (oo == 14)) || (oo == 20)) {
_root["enemy" + (p * 2)]._x = _root["enemy" + (p * 2)]._x - _root["enemy" + (p * 2)].speed;
}
} else {
_root["enemy" + (p * 2)].n = _root["enemy" + (p * 2)].n + 1;
if (_root["enemy" + (p * 2)].n < Math.round(9 / _root["enemy" + (p * 2)].speed)) {
_root["enemy" + (p * 2)].warp._xscale = _root["enemy" + (p * 2)].warp._xscale - (_root["enemy" + (p * 2)].n * 15);
_root["enemy" + (p * 2)].warp._yscale = _root["enemy" + (p * 2)].warp._yscale - (_root["enemy" + (p * 2)].n * 15);
} else if (_root["enemy" + (p * 2)].n == Math.round(9 / _root["enemy" + (p * 2)].speed)) {
_root["enemy" + (p * 2)]._visible = false;
if (((((oo == 1) || (oo == 5)) || (oo == 9)) || (oo == 11)) || (oo == 17)) {
_root["enemy" + (p * 2)]._y = _root["enemy" + (p * 2)]._y + 20;
} else if ((((((oo == 3) || (oo == 7)) || (oo == 13)) || (oo == 15)) || (oo == 19)) || (oo == 21)) {
_root["enemy" + (p * 2)]._y = _root["enemy" + (p * 2)]._y - 20;
} else if (((((((oo == 0) || (oo == 6)) || (oo == 8)) || (oo == 12)) || (oo == 16)) || (oo == 18)) || (oo == 22)) {
_root["enemy" + (p * 2)]._x = _root["enemy" + (p * 2)]._x + 20;
} else if (((((oo == 2) || (oo == 4)) || (oo == 10)) || (oo == 14)) || (oo == 20)) {
_root["enemy" + (p * 2)]._x = _root["enemy" + (p * 2)]._x - 20;
}
if ((_root["enemy" + (p * 2)]._y == 140) && (_root["enemy" + (p * 2)]._x == 420)) {
_root["enemy" + (p * 2)]._y = _root["enemy" + (p * 2)]._y - 20;
}
} else if (_root["enemy" + (p * 2)].n == Math.round(30 / _root["enemy" + (p * 2)].speed)) {
_root["enemy" + (p * 2)]._visible = true;
} else if ((_root["enemy" + (p * 2)].n > Math.round(30 / _root["enemy" + (p * 2)].speed)) && (_root["enemy" + (p * 2)].n < Math.round(39 / _root["enemy" + (p * 2)].speed))) {
_root["enemy" + (p * 2)].warp._xscale = _root["enemy" + (p * 2)].warp._xscale + (_root["enemy" + (p * 2)].n * 3);
_root["enemy" + (p * 2)].warp._yscale = _root["enemy" + (p * 2)].warp._yscale + (_root["enemy" + (p * 2)].n * 3);
} else if (_root["enemy" + (p * 2)].n == Math.round(45 / _root["enemy" + (p * 2)].speed)) {
_root["enemy" + (p * 2)].warp._visible = false;
}
if (_root["enemy" + (p * 2)].n >= Math.round(50 / _root["enemy" + (p * 2)].speed)) {
_root["enemy" + (p * 2)].warp._visible = true;
_root["enemy" + (p * 2)].warp._xscale = 140;
_root["enemy" + (p * 2)].warp._yscale = 140;
_root["enemy" + (p * 2)].n = 0;
}
}
}
}
}
for (ps in EnemyArrayB) {
EnemyArrayB[ps].LIFE._xscale = 100 * (EnemyArrayB[ps].life / LifeTotal);
if ((EnemyArrayB[ps].life <= 0) && (EnemyArrayB[ps] != undefined)) {
if (EnemyCycle[enemyloop] == 4) {
_root.createEmptyMovieClip("explode" + ps, 450 + ps);
_root["explode" + ps].moveTo(-12, 0);
_root["explode" + ps].lineStyle(2, 0, 60);
circ = 0;
while (circ <= 6.47953484802895) {
_root["explode" + ps].lineTo(-12 * Math.cos(circ), -12 * Math.sin(circ));
circ = circ + 0.196349540849362;
}
_root["explode" + ps]._xscale = 25;
_root["explode" + ps]._yscale = 25;
_root["explode" + ps].n = 0;
_root["explode" + ps]._x = EnemyArrayB[ps]._x;
_root["explode" + ps]._y = EnemyArrayB[ps]._y;
_root["explode" + ps].onEnterFrame = function () {
this.n = this.n + 5;
this._xscale = this._xscale + this.n;
this._yscale = this._yscale + this.n;
for (pc in EnemyArray) {
if (this.hitTest(_root["enemy" + pc]._x, _root["enemy" + pc]._y, true)) {
_root["enemy" + pc].life = _root["enemy" + pc].life * 0.8;
}
}
if (this.n > 50) {
this.n = 0;
this.removeMovieClip();
}
};
}
EnemyArrayB[ps].removeMovieClip();
EnemyArrayB[ps] = undefined;
money = money + ((enemyloop != 9) ? (4 + Math.round((level + 4) / 4)) : (4 + Math.round((level + 4) / 2)));
Killcount = Killcount + 1;
score = score + (4 + level);
}
if ((EnemyArrayB[ps]._x >= 600) && (EnemyArrayB[ps] != undefined)) {
EnemyArrayB[ps]._x = -20;
EnemyArrayB[ps]._y = EnemyArrayB[ps]._y - 180;
Life = Life - 1;
score = score - (4 + level);
}
if (EnemyArrayB[ps].speed < SpeedTotal) {
EnemyArrayB[ps].speed = EnemyArrayB[ps].speed + 0.02;
}
if (((EnemyCycle[enemyloop] == 3) || (EnemyCycle[enemyloop] == 6)) && (EnemyArrayB[ps].life < LifeTotal)) {
EnemyArrayB[ps].life = EnemyArrayB[ps].life * 1.002;
}
}
if (((enemyloop != 9) && (Killcount == 16)) || ((enemyloop == 9) && (Killcount == 8))) {
this.removeMovieClip();
EnemyArrayB = [];
_root.Panel.Levelinfo.interest.text = ((enemyloop != 9) ? ("5% interest = " + Math.round(money * 0.05)) : ("15% interest = " + Math.round(money * 0.15)));
_root.Panel.Levelinfo.interest.setTextFormat(PanelValue);
money = ((enemyloop != 9) ? (Math.round(money * 1.05)) : (Math.round(money * 1.15)));
Panel.Start._alpha = 100;
level = level + 1;
enemyloop = ((enemyloop < 9) ? (enemyloop + 1) : 0);
Killcount = 16;
_root.Panel.Start.START.setTextFormat(PanelUp);
for (ij in TowerArrayB) {
if (TowerArrayB[ij].Info[1] == 6) {
ji = 0;
while (ji <= 15) {
TowerArrayB[ij]["Beam" + ji].removeMovieClip();
ji++;
}
}
}
switch (EnemyCycle[enemyloop]) {
case 0 :
LifeTotal = ((DIF == 0) ? (4 * level) : (5 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Normal. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 1 :
LifeTotal = ((DIF == 0) ? (2 * level) : (3 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Fast and weak. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 2 :
LifeTotal = ((DIF == 0) ? (6 * level) : (8 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Slow but strong. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 3 :
LifeTotal = ((DIF == 0) ? (3 * level) : (5 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Enemies slowly regenerate. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 4 :
LifeTotal = ((DIF == 0) ? (5 * level) : (7 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Enemies explode when killed. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 5 :
LifeTotal = ((DIF == 0) ? (8 * level) : (10 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Enemies warp. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
break;
case 6 :
LifeTotal = ((DIF == 0) ? (8 * level) : (10 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". SUPER ENEMIES. Fast, Strong, Warping, Regenerating. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 4) / 4));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
}
}
};
}
function Fire(Tower) {
switch (Tower.Info[1]) {
case 0 :
if (Tower.charge == 100) {
Tower.BlasterArray[Tower.nn] = 0;
Tower.nn = ((Tower.nn < 6) ? (Tower.nn + 1) : 0);
Tower.charge = 0;
}
for (m in Tower.BlasterArray) {
if ((Tower["beam" + m] == undefined) && (Tower.BlasterArray[m] == 0)) {
Tower.BlasterArray[m] = 1;
Tower.createEmptyMovieClip("beam" + m, (500 + Tower.Info[5]) + m);
Tower["beam" + m].moveTo(0, 0);
Tower["beam" + m].lineStyle(2, 11184640);
Tower["beam" + m].lineTo((Tower.Target[0]._x - Tower._x) / 6, (Tower.Target[0]._y - Tower._y) / 6);
}
Tower["beam" + m].onEnterFrame = function () {
this._x = this._x + ((Tower.Target[0]._x - Tower._x) / 2.2);
this._y = this._y + ((Tower.Target[0]._y - Tower._y) / 2.2);
if (Tower.Target[0] != undefined) {
if (Math.sqrt(Math.pow((this._x + Tower._x) - Tower.Target[0]._x, 2) + Math.pow((this._y + Tower._y) - Tower.Target[0]._y, 2)) <= 5) {
this.removeMovieClip();
Tower.Target[0].life = Tower.Target[0].life - Tower.Info[2];
}
}
if (Math.sqrt(Math.pow(this._x, 2) + Math.pow(this._y, 2)) >= Tower.Info[3]) {
this.removeMovieClip();
}
};
}
break;
case 1 :
Tower.nn = Tower.nn + 1;
Tower.createEmptyMovieClip("beam", (500 + Tower.Info[5]) + 0);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(0, 16711935, 50 + random(51));
Tower.beam.lineTo((Tower.Target[0]._x - Tower._x) + random(2), (Tower.Target[0]._y - Tower._y) + random(2));
Tower.Target[0].life = Tower.Target[0].life - (Tower.Info[2] / 3);
if (Tower.Info[4] > 10) {
Tower.beam.lineTo((Tower.Target[1]._x - Tower._x) + random(2), (Tower.Target[1]._y - Tower._y) + random(2));
Tower.Target[1].life = Tower.Target[1].life - (Tower.Info[2] / 4);
}
if (Tower.Info[4] > 12) {
Tower.beam.lineTo((Tower.Target[2]._x - Tower._x) + random(2), (Tower.Target[2]._y - Tower._y) + random(2));
Tower.Target[2].life = Tower.Target[2].life - (Tower.Info[2] / 5);
}
if (Tower.Info[4] > 14) {
Tower.beam.lineTo((Tower.Target[3]._x - Tower._x) + random(2), (Tower.Target[3]._y - Tower._y) + random(2));
Tower.Target[3].life = Tower.Target[3].life - (Tower.Info[2] / 6);
}
if (Tower.Info[4] > 16) {
Tower.beam.lineTo((Tower.Target[4]._x - Tower._x) + random(2), (Tower.Target[4]._y - Tower._y) + random(2));
Tower.Target[4].life = Tower.Target[4].life - (Tower.Info[2] / 7);
}
break;
case 2 :
if (Tower.charge >= 100) {
Tower.ch = Tower.ch + 4;
Tower.createEmptyMovieClip("beam", (500 + Tower.Info[5]) + 1);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(1, 16711680, Tower.ch);
Tower.beam.lineTo(Tower.Target[0]._x - Tower._x, Tower.Target[0]._y - Tower._y);
if (Tower.ch >= 90) {
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(5, 14483456, Tower.ch - 50);
Tower.beam.lineTo(Tower.Target[0]._x - Tower._x, Tower.Target[0]._y - Tower._y);
}
if (Tower.ch == 100) {
Tower.Target[0].life = Tower.Target[0].life - Tower.Info[2];
Tower.beam.removeMovieClip();
Tower.ch = 0;
Tower.charge = 0;
}
}
break;
case 3 :
if (Tower.charge >= 100) {
if (Tower.nn < 8) {
Tower.nn = Tower.nn + 1;
Tower.createEmptyMovieClip("beam", (500 + Tower.Info[5]) + 2);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(2, 56576);
Tower.beam.lineTo(Tower.Target[0]._x - Tower._x, Tower.Target[0]._y - Tower._y);
}
if (Tower.nn == 8) {
Tower.Target[0].life = Tower.Target[0].life - Tower.Info[2];
Tower.beam.removeMovieClip();
Tower.createEmptyMovieClip("beamX", (500 + Tower.Info[5]) + 2);
Tower.beamX.lineStyle(1, 60928, 80);
Tower.beamX.moveTo(-12, 0);
q = 0;
while (q <= 6.34568530717959) {
Tower.beamX.lineTo(-12 * Math.cos(q), -12 * Math.sin(q));
q = q + 0.196349540849362;
}
Tower.beamX._xscale = 25;
Tower.beamX._yscale = 25;
Tower.beamX._x = Tower.Target[0]._x - Tower._x;
Tower.beamX._y = Tower.Target[0]._y - Tower._y;
Tower.beamX.nc = Tower.nn + 1;
Tower.charge = 0;
Tower.nn = 0;
Tower.beamX.onEnterFrame = function () {
if ((this.nc >= 9) && (this.nc <= (13 + (Tower.Info[2] / 3)))) {
this.nc = this.nc + 1;
this._xscale = this._xscale + (this.nc * 2.5);
this._yscale = this._yscale + (this.nc * 2.5);
for (r in EnemyArrayB) {
if (this.hitTest(EnemyArrayB[r]._x, EnemyArrayB[r]._y, false) && (EnemyCycle[enemyloop] != 6)) {
EnemyArrayB[r].speed = EnemyArrayB[r].speed / 1.2;
}
}
}
if (this.nc == (14 + (Tower.Info[2] / 3))) {
this.removeMovieClip();
}
};
}
}
break;
case 4 :
if (Tower.charge >= 100) {
if (Tower.beamStart == undefined) {
Tower.x = Tower.Target[0]._x - Tower._x;
Tower.y = Tower.Target[0]._y - Tower._y;
Tower.createEmptyMovieClip("beamStart", (510 + Tower.Info[5]) + 3);
Tower.nn = 100;
}
Tower.beamStart.onEnterFrame = function () {
Tower.nn = Tower.nn - 6;
Tower.createEmptyMovieClip("beamX", (500 + Tower.Info[5]) + 3);
Tower.beamX.moveTo(0, 0);
Tower.beamX.lineStyle(3, 3355647, Tower.nn + 50);
Tower.beamX.lineTo(Tower.x * 30, Tower.y * 30);
Tower.beamX.moveTo(0, 0);
Tower.beamX.lineStyle(Tower.nn / 5, 187, Tower.nn);
Tower.beamX.lineTo(Tower.x * 30, Tower.y * 30);
for (rr in EnemyArrayB) {
if (Tower.beamX.hitTest(EnemyArrayB[rr]._x, EnemyArrayB[rr]._y, true) && (EnemyArrayB[rr]._visible == true)) {
EnemyArrayB[rr].life = EnemyArrayB[rr].life - Tower.Info[2];
}
}
if (Tower.nn < 0) {
Tower.charge = 0;
Tower.beamX.removeMovieClip();
this.removeMovieClip();
}
};
}
break;
case 5 :
if (Tower.nn == 0) {
Tower.targeted = Tower.Target[0];
}
if (Tower.nn < 40) {
Tower.createEmptyMovieClip("beam", (500 + Tower.Info[5]) + 3);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(3, 0);
Tower.beam.lineTo(Tower.targeted._x - Tower._x, Tower.targeted._y - Tower._y);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(0, 11184810);
Tower.beam.lineTo(Tower.targeted._x - Tower._x, Tower.targeted._y - Tower._y);
Tower.targeted.life = Tower.targeted.life - Tower.Info[2];
Tower.targeted.speed = Tower.targeted.speed / 1.4;
Tower.nn = Tower.nn + 1;
if (Tower.targeted == undefined) {
Tower.nn = 40;
}
}
if (Tower.nn >= 40) {
Tower.beam.removeMovieClip();
Tower.charge = 0;
Tower.nn = 0;
trace("reset " + Tower.charge);
}
break;
case 7 :
if (Tower.charge < 100) {
break;
}
Tower.nn = Tower.nn + Tower.Info[4];
Tower.createEmptyMovieClip("beam", (500 + Tower.Info[5]) + 5);
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(Tower.nn / 20, 5667071, Tower.nn * 0.8);
Tower.beam.lineTo(Tower.Target[0]._x - Tower._x, Tower.Target[0]._y - Tower._y);
if (Tower.nn >= 120) {
Tower.beam.moveTo(0, 0);
Tower.beam.lineStyle(6, 2311679, Tower.nn * 0.8);
Tower.beam.lineTo(Tower.Target[0]._x - Tower._x, Tower.Target[0]._y - Tower._y);
}
if (Tower.nn < 125) {
break;
}
Tower.Target[0].life = Tower.Target[0].life - Tower.Info[2];
Tower.beam.removeMovieClip();
Tower.nn = 0;
Tower.charge = 0;
Tower.createEmptyMovieClip("beamX", (510 + Tower.Info[5]) + 5);
Tower.beamX.lineStyle(2, 2311679, 90);
Tower.beamX.moveTo(-6, 0);
q = 0;
while (q <= 6.34568530717959) {
Tower.beamX.lineTo(-6 * Math.cos(q), -6 * Math.sin(q));
q = q + 0.196349540849362;
}
Tower.beamX._xscale = 50;
Tower.beamX._yscale = 50;
Tower.beamX._x = Tower.Target[0]._x - Tower._x;
Tower.beamX._y = Tower.Target[0]._y - Tower._y;
Tower.beamX.nc = 0;
Tower.beamX.onEnterFrame = function () {
if (this.nc < (20 + (Tower.Info[2] / 4))) {
this.nc = this.nc + 2;
this._xscale = this._xscale + (this.nc * 2.5);
this._yscale = this._yscale + (this.nc * 2.5);
for (r in EnemyArrayB) {
if (this.hitTest(EnemyArrayB[r]._x, EnemyArrayB[r]._y, true)) {
EnemyArrayB[r].life = EnemyArrayB[r].life - (Tower.Info[2] / 5);
}
}
}
if (this.nc >= (20 + (Tower.Info[2] / 4))) {
this.removeMovieClip();
}
};
}
}
function Begin() {
_root.music._alpha = 100;
_root.track1._alpha = 100;
_root.track2._alpha = 100;
_root.music.MUSIC.text = "MUSIC";
_root.track1.Track1.text = "1";
_root.track2.Track2.text = "2";
_root.music.MUSIC.setTextFormat(Starttext);
_root.track1.Track1.setTextFormat(Starttext);
_root.track2.Track2.setTextFormat(Starttext);
_root.createEmptyMovieClip("ButtonBlaster", 900);
_root.createEmptyMovieClip("ButtonBeam", 901);
_root.createEmptyMovieClip("ButtonCharge", 902);
_root.createEmptyMovieClip("ButtonDisruptor", 903);
_root.createEmptyMovieClip("ButtonRailgun", 904);
_root.createEmptyMovieClip("ButtonInverter", 905);
_root.createEmptyMovieClip("ButtonRadar", 906);
_root.createEmptyMovieClip("ButtonFission", 907);
_root.createEmptyMovieClip("ButtonScissor", 908);
ButtonBlaster.Info = new Array();
ButtonBeam.Info = new Array();
ButtonCharge.Info = new Array();
ButtonDisruptor.Info = new Array();
ButtonRailgun.Info = new Array();
ButtonInverter.Info = new Array();
ButtonRadar.Info = new Array();
ButtonFission.Info = new Array();
ButtonScissor.Info = new Array();
DrawBlaster("ButtonBlaster");
DrawBeam("ButtonBeam");
DrawCharge("ButtonCharge");
DrawDisruptor("ButtonDisruptor");
DrawRailgun("ButtonRailgun");
DrawInverter("ButtonInverter");
DrawRadar("ButtonRadar");
DrawFission("ButtonFission");
DrawScissor("ButtonScissor");
_root["radar" + undefined].removeMovieClip();
Range.removeMovieClip();
ButtonBlaster._x = 775;
ButtonBlaster._y = 25;
ButtonBeam._x = 775;
ButtonBeam._y = 50;
ButtonCharge._x = 775;
ButtonCharge._y = 75;
ButtonDisruptor._x = 750;
ButtonDisruptor._y = 75;
ButtonRailgun._x = 725;
ButtonRailgun._y = 75;
ButtonInverter._x = 700;
ButtonInverter._y = 75;
ButtonRadar._x = 675;
ButtonRadar._y = 75;
ButtonFission._x = 650;
ButtonFission._y = 75;
ButtonScissor._x = 750;
ButtonScissor._y = 50;
_root.createEmptyMovieClip("Grid", 90);
Grid.moveTo(0, 0);
Grid.lineStyle(0, 255, 25);
i = 0;
while (i <= 590) {
Grid.moveTo(i + 10, 10);
Grid.lineTo(i + 10, 590);
Grid.moveTo(10, i + 10);
Grid.lineTo(590, i + 10);
i = i + 20;
}
Grid.createTextField("V", 91, 8, 0, 150, 15);
Grid.V.text = "VERSION 1 . 1 NICK MARTUCCI";
Grid.V.selectable = false;
Grid.V.setTextFormat(Version);
_root.createEmptyMovieClip("Route", 100);
Route.moveTo(-40, 30);
Route.lineStyle(1, 0);
Route.beginFill(14540253);
Route.lineTo(550, 30);
Route.lineTo(550, 170);
Route.lineTo(390, 170);
Route.lineTo(390, 130);
Route.lineTo(70, 130);
Route.lineTo(70, 210);
Route.lineTo(150, 210);
Route.lineTo(150, 170);
Route.lineTo(350, 170);
Route.lineTo(350, 330);
Route.lineTo(70, 330);
Route.lineTo(70, 530);
Route.lineTo(310, 530);
Route.lineTo(310, 490);
Route.lineTo(110, 490);
Route.lineTo(110, 370);
Route.lineTo(430, 370);
Route.lineTo(430, 490);
Route.lineTo(530, 490);
Route.lineTo(530, 330);
Route.lineTo(390, 330);
Route.lineTo(390, 210);
Route.lineTo(600, 210);
Route.lineTo(600, 250);
Route.lineTo(430, 250);
Route.lineTo(430, 290);
Route.lineTo(570, 290);
Route.lineTo(570, 530);
Route.lineTo(390, 530);
Route.lineTo(390, 410);
Route.lineTo(150, 410);
Route.lineTo(150, 450);
Route.lineTo(350, 450);
Route.lineTo(350, 570);
Route.lineTo(30, 570);
Route.lineTo(30, 290);
Route.lineTo(310, 290);
Route.lineTo(310, 210);
Route.lineTo(190, 210);
Route.lineTo(190, 250);
Route.lineTo(30, 250);
Route.lineTo(30, 90);
Route.lineTo(430, 90);
Route.lineTo(430, 130);
Route.lineTo(510, 130);
Route.lineTo(510, 70);
Route.lineTo(-40, 70);
Route.lineTo(-40, 30);
Route.endFill();
_root.createEmptyMovieClip("Panel", 50);
Panel.moveTo(620, 10);
Panel.lineStyle(0, 0, 25);
Panel.beginFill(16711680, 8);
Panel.lineTo(620, 600);
Panel.lineTo(800, 600);
Panel.lineTo(800, 0);
Panel.lineTo(630, 0);
Panel.lineTo(620, 10);
Panel.endFill();
Panel.moveTo(623, 13);
Panel.lineStyle(0, 0, 50);
Panel.beginFill(16711680, 8);
Panel.lineTo(623, 597);
Panel.lineTo(797, 597);
Panel.lineTo(797, 3);
Panel.lineTo(633, 3);
Panel.lineTo(623, 13);
Panel.endFill();
Panel.createEmptyMovieClip("Credit", 51);
Panel.Credit.moveTo(10, 0);
Panel.Credit.lineStyle(0, 0, 75);
Panel.Credit.beginFill(16711680, 8);
Panel.Credit.lineTo(60, 0);
Panel.Credit.lineTo(60, 20);
Panel.Credit.lineTo(0, 20);
Panel.Credit.lineTo(0, 10);
Panel.Credit.lineTo(10, 0);
Panel.Credit.endFill();
Panel.Credit._x = 626;
Panel.Credit._y = 6;
Panel.Credit.createTextField("credit", 52, 65, 0, 55, 20);
Panel.Credit.credit.text = "MONEY";
Panel.Credit.credit.selectable = false;
Panel.Credit.credit.setTextFormat(PanelTextUp);
Panel.Credit.createTextField("Money", 53, 10, 0, 55, 20);
Panel.Credit.Money.text = money;
Panel.Credit.Money.selectable = false;
Panel.Credit.Money.setTextFormat(PanelTextUp);
Panel.Credit.duplicateMovieClip("Lives", 54, _root.Panel);
Panel.Lives._x = 626;
Panel.Lives._y = 29;
Panel.Lives.createTextField("lives", 55, 65, 0, 55, 20);
Panel.Lives.lives.text = "LIVES";
Panel.Lives.lives.selectable = false;
Panel.Lives.lives.setTextFormat(PanelTextUp);
Panel.Lives.createTextField("Life", 56, 10, 0, 55, 20);
Panel.Lives.Life.selectable = false;
Panel.Credit.duplicateMovieClip("Start", 57, _root.Panel);
Panel.Start._x = 626;
Panel.Start._y = 574;
Panel.Start.createTextField("START", 58, 0, 0, 60, 20);
Panel.Start.START.text = "START";
Panel.Start.START.selectable = false;
Panel.Start.START.setTextFormat(PanelUp);
Panel.createEmptyMovieClip("Upgrade", 59);
Panel.Upgrade.moveTo(0, 0);
Panel.Upgrade.lineStyle(0, 0, 75);
Panel.Upgrade.beginFill(16711680, 8);
Panel.Upgrade.lineTo(168, 0);
Panel.Upgrade.lineTo(168, 290);
Panel.Upgrade.lineTo(158, 300);
Panel.Upgrade.lineTo(0, 300);
Panel.Upgrade.lineTo(0, 0);
Panel.Upgrade.endFill();
Panel.Upgrade._x = 626;
Panel.Upgrade._y = 203;
Panel.Upgrade.createEmptyMovieClip("box", 60);
Panel.Upgrade.box.moveTo(0, 0);
Panel.Upgrade.box.lineStyle(0, 0);
Panel.Upgrade.box.beginFill(16711680, 8);
Panel.Upgrade.box.lineTo(40, 0);
Panel.Upgrade.box.lineTo(40, 10);
Panel.Upgrade.box.lineTo(30, 20);
Panel.Upgrade.box.lineTo(0, 20);
Panel.Upgrade.box.lineTo(0, 0);
Panel.Upgrade.box.endFill();
Panel.Upgrade.box.duplicateMovieClip("power", 63, _root.Panel.Upgrade);
Panel.Upgrade.power._x = 125;
Panel.Upgrade.power._y = 26;
Panel.Upgrade.power.createTextField("PowerText", 64, -60, 0, 60, 20);
Panel.Upgrade.power.PowerText.text = "POWER";
Panel.Upgrade.power.PowerText.setTextFormat(PanelTextUpgrade);
Panel.Upgrade.power.createTextField("Power", 65, 5, 0, 60, 20);
Panel.Upgrade.box.duplicateMovieClip("range", 66, _root.Panel.Upgrade);
Panel.Upgrade.range._x = 125;
Panel.Upgrade.range._y = 49;
Panel.Upgrade.range.createTextField("RangeText", 67, -60, 0, 60, 20);
Panel.Upgrade.range.RangeText.text = "RANGE";
Panel.Upgrade.range.RangeText.setTextFormat(PanelTextUpgrade);
Panel.Upgrade.range.createTextField("Range", 68, 5, 0, 60, 20);
Panel.Upgrade.box.duplicateMovieClip("speed", 69, _root.Panel.Upgrade);
Panel.Upgrade.speed._x = 125;
Panel.Upgrade.speed._y = 72;
Panel.Upgrade.speed.createTextField("SpeedText", 70, -60, 0, 60, 20);
Panel.Upgrade.speed.SpeedText.text = "SPEED";
Panel.Upgrade.speed.SpeedText.setTextFormat(PanelTextUpgrade);
Panel.Upgrade.speed.createTextField("Speed", 71, 5, 0, 60, 20);
Panel.Upgrade.createEmptyMovieClip("info", 72);
Panel.Upgrade.info.moveTo(0, 0);
Panel.Upgrade.info.lineStyle(0, 0);
Panel.Upgrade.info.beginFill(16711680, 8);
Panel.Upgrade.info.lineTo(162, 0);
Panel.Upgrade.info.lineTo(162, 169);
Panel.Upgrade.info.lineTo(152, 179);
Panel.Upgrade.info.lineTo(0, 179);
Panel.Upgrade.info.lineTo(0, 0);
Panel.Upgrade.info.endFill();
Panel.Upgrade.info._x = 3;
Panel.Upgrade.info._y = 95;
Panel.Upgrade.info.createTextField("INFO", 76, 5, 5, 150, 150);
Panel.Upgrade.info.INFO.wordWrap = true;
Panel.Upgrade.box.duplicateMovieClip("cost", 73, _root.Panel.Upgrade);
Panel.Upgrade.cost._x = 125;
Panel.Upgrade.cost._y = 3;
Panel.Upgrade.cost.createTextField("CostText", 74, -60, 0, 60, 20);
Panel.Upgrade.cost.CostText.text = "COST";
Panel.Upgrade.cost.CostText.setTextFormat(PanelTextUpgrade);
Panel.Upgrade.cost.createTextField("Cost", 75, 5, 0, 60, 20);
Panel.Upgrade.box.duplicateMovieClip("sell", 77, _root.Panel.Upgrade);
Panel.Upgrade.sell._x = 125;
Panel.Upgrade.sell._y = 277;
Panel.Upgrade.sell.createTextField("SellText", 78, -80, 0, 80, 20);
Panel.Upgrade.sell.SellText.text = "SELL VALUE";
Panel.Upgrade.sell.SellText.setTextFormat(PanelTextUpgrade);
Panel.Upgrade.sell.createTextField("Sell", 79, 5, 0, 60, 20);
Panel.Upgrade.box.removeMovieClip();
Panel.createEmptyMovieClip("Levelinfo", 80);
Panel.Levelinfo.moveTo(0, 0);
Panel.Levelinfo.lineStyle(0, 0, 75);
Panel.Levelinfo.beginFill(16711680, 8);
Panel.Levelinfo.lineTo(168, 0);
Panel.Levelinfo.lineTo(168, 68);
Panel.Levelinfo.lineTo(158, 78);
Panel.Levelinfo.lineTo(0, 78);
Panel.Levelinfo.lineTo(0, 0);
Panel.Levelinfo.endFill();
Panel.Levelinfo.moveTo(3, 3);
Panel.Levelinfo.lineStyle(0, 0);
Panel.Levelinfo.beginFill(16711680, 8);
Panel.Levelinfo.lineTo(165, 3);
Panel.Levelinfo.lineTo(165, 65);
Panel.Levelinfo.lineTo(155, 75);
Panel.Levelinfo.lineTo(3, 75);
Panel.Levelinfo.lineTo(3, 3);
Panel.Levelinfo.endFill();
Panel.Levelinfo._x = 626;
Panel.Levelinfo._y = 99;
Panel.Levelinfo.createTextField("LEVELinfo", 81, 5, 5, 150, 75);
Panel.Levelinfo.LEVELinfo.wordWrap = true;
Panel.Levelinfo.createTextField("interest", 87, 5, 55, 150, 75);
Panel.Levelinfo.interest.wordWrap = true;
Panel.createEmptyMovieClip("restart", 82);
Panel.restart._x = 734;
Panel.restart._y = 574;
Panel.restart.moveTo(0, 0);
Panel.restart.lineStyle(0, 0, 75);
Panel.restart.beginFill(16711680, 8);
Panel.restart.lineTo(60, 0);
Panel.restart.lineTo(60, 10);
Panel.restart.lineTo(50, 20);
Panel.restart.lineTo(0, 20);
Panel.restart.lineTo(0, 0);
Panel.restart.endFill();
Panel.restart.createTextField("RESTART", 83, 0, 0, 60, 20);
Panel.restart.RESTART.text = "RESTART";
Panel.restart.RESTART.setTextFormat(PanelUp);
Panel.createEmptyMovieClip("Score", 84);
Panel.Score.moveTo(0, 0);
Panel.Score.lineStyle(0, 0, 75);
Panel.Score.beginFill(16711680, 8);
Panel.Score.lineTo(100, 0);
Panel.Score.lineTo(100, 20);
Panel.Score.lineTo(10, 20);
Panel.Score.lineTo(0, 10);
Panel.Score.lineTo(0, 0);
Panel.Score.endFill();
Panel.Score._x = 626;
Panel.Score._y = 506;
Panel.Score.createTextField("scoreText", 85, 110, 0, 60, 20);
Panel.Score.scoreText.text = "SCORE";
Panel.Score.scoreText.setTextFormat(PanelTextUp);
Panel.Score.createTextField("SCORE", 86, 10, 0, 100, 20);
Panel.Score.SCORE.setTextFormat(PanelValue);
ButtonBlaster.onPress = function () {
if ((money >= ButtonBlaster.Info[6]) && (placer == false)) {
CreateLaser(0);
placer = true;
}
};
ButtonBeam.onPress = function () {
if ((money >= ButtonBeam.Info[6]) && (placer == false)) {
CreateLaser(1);
placer = true;
}
};
ButtonCharge.onPress = function () {
if ((money >= ButtonCharge.Info[6]) && (placer == false)) {
CreateLaser(2);
placer = true;
}
};
ButtonDisruptor.onPress = function () {
if ((money >= ButtonDisruptor.Info[6]) && (placer == false)) {
CreateLaser(3);
placer = true;
}
};
ButtonRailgun.onPress = function () {
if ((money >= ButtonRailgun.Info[6]) && (placer == false)) {
CreateLaser(4);
placer = true;
}
};
ButtonInverter.onPress = function () {
if ((money >= ButtonInverter.Info[6]) && (placer == false)) {
CreateLaser(5);
placer = true;
}
};
ButtonRadar.onPress = function () {
if ((money >= ButtonRadar.Info[6]) && (placer == false)) {
CreateLaser(6);
placer = true;
}
};
ButtonFission.onPress = function () {
if ((money >= ButtonFission.Info[6]) && (placer == false)) {
CreateLaser(7);
placer = true;
}
};
ButtonScissor.onPress = function () {
if ((money >= ButtonScissor.Info[6]) && (placer == false)) {
CreateLaser(8);
placer = true;
}
};
ButtonLowFreq.onPress = function () {
if ((money >= ButtonLowFreq.Info[6]) && (placer == false)) {
CreateLaser(9);
placer = true;
}
};
ButtonBlaster.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonBlaster.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonBlaster.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonBlaster.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonBlaster.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Laser Blaster. Fires short rapid blasts at nearest target.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 0;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonBlaster");
};
ButtonBlaster.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 0;
this.Info[2] = this.POWER;
ReDraw("ButtonBlaster");
};
ButtonBeam.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonBeam.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonBeam.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonBeam.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonBeam.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Laser Beam. Fires a continuous beam at the nearest target. Upgrading speed causes the beam to bounce to other targets.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 1;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonBeam");
};
ButtonBeam.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 1;
this.Info[2] = this.POWER;
ReDraw("ButtonBeam");
};
ButtonCharge.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonCharge.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonCharge.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonCharge.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonCharge.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Charge Beam. Charges a beam and then releases all the power onto a single target.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 2;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonCharge");
};
ButtonCharge.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 2;
this.Info[2] = this.POWER;
ReDraw("ButtonCharge");
};
ButtonDisruptor.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonDisruptor.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonDisruptor.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonDisruptor.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonDisruptor.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Disruptor Beam. When the beam hits its target a disruptor wave hits the surrounding targets slowing them down. Upgrading power increases the size of the wave.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 3;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonDisruptor");
};
ButtonDisruptor.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 3;
this.Info[2] = this.POWER;
ReDraw("ButtonDisruptor");
};
ButtonRailgun.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonRailgun.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonRailgun.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonRailgun.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonRailgun.Info[6];
_root.Panel.Upgrade.info.INFO.text = "RailGun. Fires an infinite single faiding beam that will pierce through all targets it intercepts.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 4;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonRailgun");
};
ButtonRailgun.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 4;
this.Info[2] = this.POWER;
ReDraw("ButtonRailgun");
};
ButtonInverter.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonInverter.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonInverter.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonInverter.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonInverter.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Inverter Beam. The beam will target a single enemy for a short time causing it to freeze.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 5;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonInverter");
};
ButtonInverter.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 5;
this.Info[2] = this.POWER;
ReDraw("ButtonInverter");
};
ButtonRadar.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonRadar.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonRadar.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonRadar.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonRadar.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Radar Beam. Will fire a constant beam at all targets in sight. The sight rotates clockwise around the tower. Upgrading speed increases the width of the sight.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 6;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonRadar");
};
ButtonRadar.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 6;
this.Info[2] = this.POWER;
ReDraw("ButtonRadar");
};
ButtonFission.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonFission.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonFission.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonFission.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonFission.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Fission Laser. Similar to the charge beam but when a target is destroyed it creates a chain reaction that devistates surrounding targets. Upgrading speed also decreases the charge time and upgrading power increases the Devistation!!";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 7;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonFission");
};
ButtonFission.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 7;
this.Info[2] = this.POWER;
ReDraw("ButtonFission");
};
ButtonScissor.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonScissor.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonScissor.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonScissor.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonScissor.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Scissor Beam (requires at least 2 towers). Creates a fluctuating beam between all other scissor beam towers in range that causes constant damage to enemies that run through it.";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 8;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonScissor");
};
ButtonScissor.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 8;
this.Info[2] = this.POWER;
ReDraw("ButtonScissor");
};
ButtonLowFreq.onRollOver = function () {
_root.Panel.Upgrade.power.Power.text = ButtonScissor.Info[2];
_root.Panel.Upgrade.range.Range.text = ButtonScissor.Info[3];
_root.Panel.Upgrade.speed.Speed.text = ButtonScissor.Info[4];
_root.Panel.Upgrade.cost.Cost.text = ButtonScissor.Info[6];
_root.Panel.Upgrade.info.INFO.text = "Low Frequency Laser. Fires a constant slow moving beam at its target that slowly fades as it gets farther away from the tower. Upgrading speed causes the laser to go farther";
_root.Panel.Upgrade.cost.Cost.setTextFormat(PanelValue);
_root.Panel.Upgrade.power.Power.setTextFormat(PanelValue);
_root.Panel.Upgrade.range.Range.setTextFormat(PanelValue);
_root.Panel.Upgrade.speed.Speed.setTextFormat(PanelValue);
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
_root.Range.removeMovieClip();
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
this.Info[1] = 9;
this.Info[2] = this.Info[2] * 5;
ReDraw("ButtonLowFreq");
};
ButtonLowFreq.onRollOut = function () {
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.Upgrade.cost.Cost.text = "";
_root.Panel.Upgrade.info.INFO.text = "";
this.Info[1] = 9;
this.Info[2] = this.POWER;
ReDraw("ButtonLowFreq");
};
Panel.Start.onRollOver = function () {
if (NextWave == undefined) {
this._alpha = 50;
this.START.textColor = 65535;
}
};
Panel.Start.onRollOut = function () {
if (NextWave == undefined) {
this._alpha = 100;
this.START.textColor = 0;
}
};
Panel.Start.onPress = function () {
if (Killcount == 16) {
StartWave();
}
};
Panel.restart.onPress = function () {
Restart();
};
Panel.restart.onRollOver = function () {
this._alpha = 50;
this.RESTART.textColor = 16711935 /* 0xFF00FF */;
};
Panel.restart.onRollOut = function () {
this._alpha = 100;
this.RESTART.textColor = 0;
};
placer = false;
money = ((DIF == 0) ? 400 : 300);
Life = 20;
score = 0;
TowerArray = new Array();
TowerArrayB = new Array();
EnemyArray = new Array();
EnemyArray1 = new Array();
EnemyArray2 = new Array();
transvar1 = false;
transvar2 = false;
Killcount = 16;
level = 1;
WaveDone = true;
j = 0;
jj = 0;
jjj = 0;
count = 0;
enemyloop = 0;
EnemyCycle = new Array();
EnemyCycle = [0, 1, 2, 3, 4, 5, 4, 3, 2, 6];
LifeTotal = ((DIF == 0) ? (4 * level) : (5 * level));
if (level >= 40) {
LifeTotal = LifeTotal * 2;
}
if (level >= 80) {
LifeTotal = LifeTotal * 2;
}
if (level >= 100) {
LifeTotal = LifeTotal * 2;
}
if (level >= 120) {
LifeTotal = LifeTotal * 2;
}
_root.Panel.Levelinfo.LEVELinfo.text = (((("Level " + level) + ". Normal. HP=") + LifeTotal) + ". For each kill you get $") + (4 + Math.round((level + 3) / 3));
_root.Panel.Levelinfo.LEVELinfo.setTextFormat(PanelValue);
}
function OpenScreen() {
_root.createEmptyMovieClip("Title", 1);
_root.Title._x = 100;
_root.Title._y = 100;
_root.Title.createTextField("TITLE", 2, 0, 0, 400, 50);
_root.Title.TITLE.text = "LASER DEFENSE";
_root.Title.TITLE.setTextFormat(TitleScreen);
_root.Title.createTextField("SUBTEXT", 3, 0, 40, 400, 40);
_root.Title.SUBTEXT.text = "Version 1.1 \r By Nick Martucci";
_root.Title.SUBTEXT.setTextFormat(TitleSubtext);
_root.Title.createTextField("inform", 8, 0, 150, 400, 20);
_root.createEmptyMovieClip("EASY", 4);
EASY._x = 200;
EASY._y = 200;
EASY.createTextField("easy", 5, -40, -20, 120, 50);
EASY.easy.text = "Easy";
EASY.easy.selectable = false;
EASY.easy.setTextFormat(TitleScreen);
_root.createEmptyMovieClip("HARD", 6);
HARD._x = 375;
HARD._y = 200;
HARD.createTextField("hard", 7, -40, -20, 120, 50);
HARD.hard.text = "Hard";
HARD.hard.selectable = false;
HARD.hard.setTextFormat(TitleScreen);
EASY.onRollOver = function () {
EASY._xscale = 120;
EASY._yscale = 120;
Title.inform.text = "weaker enemies and more money";
Title.inform.setTextFormat(TitleSubtext);
};
EASY.onRollOut = function () {
EASY._xscale = 100;
EASY._yscale = 100;
Title.inform.text = "";
};
EASY.onPress = function () {
EASY._xscale = 150;
EASY._yscale = 150;
Title.removeMovieClip();
EASY.removeMovieClip();
HARD.removeMovieClip();
INSTRUCTIONS.removeMovieClip();
TIPS.removeMovieClip();
DIF = 0;
Begin();
};
HARD.onRollOver = function () {
HARD._xscale = 120;
HARD._yscale = 120;
Title.inform.text = "stronger enemies and less money";
Title.inform.setTextFormat(TitleSubtext);
};
HARD.onRollOut = function () {
HARD._xscale = 100;
HARD._yscale = 100;
Title.inform.text = "";
};
HARD.onPress = function () {
HARD._xscale = 150;
HARD._yscale = 150;
Title.removeMovieClip();
HARD.removeMovieClip();
EASY.removeMovieClip();
INSTRUCTIONS.removeMovieClip();
TIPS.removeMovieClip();
DIF = 1;
Begin();
};
_root.createEmptyMovieClip("INSTRUCTIONS", 8);
INSTRUCTIONS.createTextField("instruct", 9, -50, -10, 200, 50);
INSTRUCTIONS._x = 150;
INSTRUCTIONS._y = 410;
INSTRUCTIONS.instruct.text = "Instructions";
INSTRUCTIONS.instruct.setTextFormat(TitleOther);
_root.createEmptyMovieClip("TIPS", 10);
TIPS.createTextField("tips", 11, -100, -10, 200, 50);
TIPS._x = 450;
TIPS._y = 410;
TIPS.tips.text = "Tips";
TIPS.tips.setTextFormat(TitleOther);
INSTRUCTIONS.onRollOver = function () {
INSTRUCTIONS._xscale = 120;
INSTRUCTIONS._yscale = 120;
};
INSTRUCTIONS.onRollOut = function () {
INSTRUCTIONS._xscale = 100;
INSTRUCTIONS._yscale = 100;
Title.inform.text = "";
};
INSTRUCTIONS.onPress = function () {
INSTRUCTIONS._xscale = 150;
INSTRUCTIONS._yscale = 150;
Title.removeMovieClip();
INSTRUCTIONS.removeMovieClip();
TIPS.removeMovieClip();
EASY.removeMovieClip();
HARD.removeMovieClip();
Instructions();
};
TIPS.onRollOver = function () {
TIPS._xscale = 120;
TIPS._yscale = 120;
};
TIPS.onRollOut = function () {
TIPS._xscale = 100;
TIPS._yscale = 100;
Title.inform.text = "";
};
TIPS.onPress = function () {
HARD._xscale = 150;
HARD._yscale = 150;
Title.removeMovieClip();
HARD.removeMovieClip();
EASY.removeMovieClip();
INSTRUCTIONS.removeMovieClip();
TIPS.removeMovieClip();
Tips();
};
}
function Instructions() {
_root.createEmptyMovieClip("INSTRUCTIONS", 1);
INSTRUCTIONS.createTextField("Instruct", 2, -100, 0, 200, 50);
INSTRUCTIONS.Instruct.text = "Instructions";
INSTRUCTIONS.Instruct.setTextFormat(TitleOther);
INSTRUCTIONS.createTextField("writing", 3, 0, 30, 600, 400);
INSTRUCTIONS.writing.wordWrap = true;
INSTRUCTIONS.writing.text = "Laser Defense is like many other Tower Defense games. Place towers along the path to kill the enemies as they come. The panel to the right shows all the information you will need. Money, Lives, Score, Tower Information, Level Information, ect. Rolling over the diamond shapes at the top right will show the tower information. Click the towers (diamonds) to purchase the tower and place it on the map. Click on purchased towers to view their information and upgrade them. Power, Range and Speed can be upgraded individually by pressing the button in the panel or the P, R, or S keys while the tower is selected. Press the start button or Spacebar to send the next wave.";
INSTRUCTIONS.writing.setTextFormat(TitleInfo);
INSTRUCTIONS.createTextField("upgradeIndicate", 4, 0, 285, 600, 400);
INSTRUCTIONS.upgradeIndicate.wordWrap = true;
INSTRUCTIONS.upgradeIndicate.text = "The rotating colors in the middle of each purchased tower will indicate how upgraded each towers is. The thicker the line the more the power has been upgraded. The faster it spins the more upgraded the speed is. Click on the tower to see how upgraded its range is.";
INSTRUCTIONS.upgradeIndicate.setTextFormat(TitleInfo);
INSTRUCTIONS.createTextField("Critters", 9, 0, 400, 600, 400);
INSTRUCTIONS.Critters.wordWrap = true;
INSTRUCTIONS.Critters.text = "There are 7 different types of enemies. Normal, Fast and Weak, Slow and Strong, Regen Enemies, Exploding Enemies, Warp Enemies, and Super Enemies. Regen enemies slowly regenerate lost HP. They have less than Normal enemies but more than Fast enemies. The Exploding enemies explode after they are killed damaging nearby enemies. They have more HP than Normal enemies and less HP than Slow enemies. Warp enemies move 1 space at a time and dissappear for a short time in-between. They have the same HP as normal enemies and cannot be targeted while invisible. However they can still be slowed down. Super Enemies are fast, strong, warping, regenerating enemies that are immune to the disruptor wave.";
INSTRUCTIONS.Critters.setTextFormat(TitleInfo);
INSTRUCTIONS._x = 100;
_root.createEmptyMovieClip("Normal", 5);
_root.createEmptyMovieClip("Speed", 6);
_root.createEmptyMovieClip("Power", 7);
_root.createEmptyMovieClip("Ranger", 8);
Normal.Info = new Array();
Speed.Info = new Array();
Power.Info = new Array();
Ranger.Info = new Array();
DrawRailgun("Normal");
DrawCharge("Speed");
DrawDisruptor("Power");
DrawBeam("Ranger");
Normal._x = 160;
Normal._y = 225;
Speed._x = 260;
Speed._y = 225;
Power._x = 360;
Power._y = 225;
Ranger._x = 460;
Ranger._y = 225;
Power.Info[1] = 3;
Power.Info[2] = Power.Info[2] * 5;
DrawRange(_root.Ranger);
ReDraw("Power");
DrawNormalEnemy(0);
DrawFastEnemy(1);
DrawSlowEnemy(2);
DrawRegenEnemy(3);
DrawExplodeEnemy(4);
DrawWarpEnemy(5);
DrawSuperEnemy(6);
_root.enemy0._x = 500;
_root.enemy0._y = 375;
_root.enemy1._x = 440;
_root.enemy1._y = 375;
_root.enemy2._x = 380;
_root.enemy2._y = 375;
_root.enemy3._x = 220;
_root.enemy3._y = 375;
_root.enemy4._x = 160;
_root.enemy4._y = 375;
_root.enemy5._x = 100;
_root.enemy5._y = 375;
_root.enemy5.n = 0;
_root.enemy6._x = 120;
_root.enemy6._y = 375;
_root.enemy6.n = 0;
INSTRUCTIONS.onEnterFrame = function () {
Normal.middle._rotation = Normal.middle._rotation + 1;
Speed.middle._rotation = Speed.middle._rotation + 6;
Power.middle._rotation = Power.middle._rotation + 1;
Ranger.middle._rotation = Ranger.middle._rotation + 1;
i = 0;
while (i <= 4) {
_root["enemy" + i]._x = _root["enemy" + i]._x + _root["enemy" + i].speed;
if (_root["enemy" + i]._x > 600) {
_root["enemy" + i]._x = 100;
}
i++;
}
t = 5;
while (t <= 6) {
_root["enemy" + t].n = _root["enemy" + t].n + 1;
if (_root["enemy" + t].n < Math.round(9 / _root["enemy" + t].speed)) {
_root["enemy" + t].warp._xscale = _root["enemy" + t].warp._xscale - (_root["enemy" + t].n * 15);
_root["enemy" + t].warp._yscale = _root["enemy" + t].warp._yscale - (_root["enemy" + t].n * 15);
} else if (_root["enemy" + t].n == Math.round(9 / _root["enemy" + t].speed)) {
_root["enemy" + t]._visible = false;
_root["enemy" + t]._x = _root["enemy" + t]._x + 20;
} else if (_root["enemy" + t].n == Math.round(30 / _root["enemy" + t].speed)) {
_root["enemy" + t]._visible = true;
} else if ((_root["enemy" + t].n > Math.round(30 / _root["enemy" + t].speed)) && (_root["enemy" + t].n < Math.round(39 / _root["enemy" + t].speed))) {
_root["enemy" + t].warp._xscale = _root["enemy" + t].warp._xscale + (_root["enemy" + t].n * 3);
_root["enemy" + t].warp._yscale = _root["enemy" + t].warp._yscale + (_root["enemy" + t].n * 3);
} else if (_root["enemy" + t].n == Math.round(45 / _root["enemy" + t].speed)) {
_root["enemy" + t].warp._visible = false;
}
if (_root["enemy" + t].n >= Math.round(50 / _root["enemy" + t].speed)) {
_root["enemy" + t].warp._visible = true;
_root["enemy" + t].warp._xscale = 140;
_root["enemy" + t].warp._yscale = 140;
_root["enemy" + t].n = 0;
}
if (_root["enemy" + t]._x > 600) {
_root["enemy" + t]._x = 100;
}
t++;
}
};
_root.createEmptyMovieClip("BACK", 10);
BACK._x = 50;
BACK._y = 510;
BACK.createTextField("back", 11, -50, -10, 100, 50);
BACK.back.text = "Back";
BACK.back.setTextFormat(TitleOther);
BACK.onRollOver = function () {
BACK._xscale = 120;
BACK._yscale = 120;
};
BACK.onRollOut = function () {
BACK._xscale = 100;
BACK._yscale = 100;
};
BACK.onPress = function () {
INSTRUCTIONS.removeMovieClip();
BACK.removeMovieClip();
i = 0;
while (i <= 6) {
_root["enemy" + i].removeMovieClip();
i++;
}
Range.removeMovieClip();
Normal.removeMovieClip();
Speed.removeMovieClip();
Power.removeMovieClip();
Ranger.removeMovieClip();
TowerArrayB = [];
OpenScreen();
};
}
function Tips() {
_root.createEmptyMovieClip("TIPS", 1);
TIPS.createTextField("tip", 2, 0, 0, 100, 50);
TIPS.tip.text = "Tips";
TIPS.tip.setTextFormat(TitleOther);
TIPS.createTextField("Blaster", 3, 150, 30, 600, 100);
TIPS.Blaster.wordWrap = true;
TIPS.Blaster.text = "Shoots short blasts at nearest enemies. Cheap to buy and upgrade but the speed of the projectiles is limited and the tower can miss fast targets.";
TIPS.Blaster.setTextFormat(TitleInfo);
TIPS.createTextField("Beam", 4, 150, 85, 600, 100);
TIPS.Beam.wordWrap = true;
TIPS.Beam.text = "Does its power/3 damage to enemies every frame. The beam can be extended to other targets. Each extension does a little less damage. Good starting tower.";
TIPS.Beam.setTextFormat(TitleInfo);
TIPS.createTextField("Charge", 5, 150, 140, 600, 100);
TIPS.Charge.wordWrap = true;
TIPS.Charge.text = "Fires slowly but does tremendous damage and has a decent range. Becomes more effective if the speed is upgraded.";
TIPS.Charge.setTextFormat(TitleInfo);
TIPS.createTextField("Disruptor", 6, 150, 195, 600, 100);
TIPS.Disruptor.wordWrap = true;
TIPS.Disruptor.text = "Does very little damage but is very effective at slowing down fast enemies and is fairly inexpensive. Helps other tower get more shots off and also allows the Laser Blasters to hit fast targets.";
TIPS.Disruptor.setTextFormat(TitleInfo);
TIPS.createTextField("Railgun", 7, 150, 250, 600, 100);
TIPS.Railgun.wordWrap = true;
TIPS.Railgun.text = "Does its power damage per frame while any enemy is in contact with its beam. If placed at the end of a long straight away it can take out an entire row of enemies at once.";
TIPS.Railgun.setTextFormat(TitleInfo);
TIPS.createTextField("Inverter", 8, 150, 305, 600, 100);
TIPS.Inverter.wordWrap = true;
TIPS.Inverter.text = "Does its power damage per frame while its firing and its beam stops the enemy. Only effective if you have alot of them.";
TIPS.Inverter.setTextFormat(TitleInfo);
TIPS.createTextField("Radar", 9, 150, 360, 600, 100);
TIPS.Radar.wordWrap = true;
TIPS.Radar.text = "Does tremendous damage as long as the enemies don't slip past the sight. The sight rotates clockwise so it is best placed on a counter clockwise turn.";
TIPS.Radar.setTextFormat(TitleInfo);
TIPS.createTextField("Fission", 10, 150, 405, 600, 100);
TIPS.Fission.wordWrap = true;
TIPS.Fission.text = "Takes longer to charge than the Charge Beam but when it is done it releases a large blast that does much damage to surrounding targets. It needs a large range so it can follow a target around the map long enough to charge the beam.";
TIPS.Fission.setTextFormat(TitleInfo);
TIPS.createTextField("Scissor", 11, 150, 470, 600, 100);
TIPS.Scissor.wordWrap = true;
TIPS.Scissor.text = "Warp enemies and fast enemies can slip past it but with enough money very large meshes of these towers can be made.";
TIPS.Scissor.setTextFormat(TitleInfo);
_root.createEmptyMovieClip("BACK", 12);
BACK._x = 50;
BACK._y = 550;
BACK.createTextField("back", 11, -50, -10, 100, 50);
BACK.back.text = "Back";
BACK.back.setTextFormat(TitleOther);
BACK.onRollOver = function () {
BACK._xscale = 120;
BACK._yscale = 120;
};
BACK.onRollOut = function () {
BACK._xscale = 100;
BACK._yscale = 100;
};
BACK.onPress = function () {
TIPS.removeMovieClip();
NEXT.removeMovieClip();
BACK.removeMovieClip();
i = 0;
while (i <= 9) {
ii = 0;
while (ii <= 9) {
_root[("BeamX" + _root["tower" + i].Info[5]) + _root["tower" + ii].Info[5]].removeMovieClip();
_root[("BeamX" + _root["tower" + ii].Info[5]) + _root["tower" + i].Info[5]].removeMovieClip();
ii++;
}
i++;
}
i = 0;
while (i <= 9) {
_root["tower" + i].removeMovieClip();
i++;
}
Range.removeMovieClip();
_root.enemy0.removeMovieClip();
_root.radar6.removeMovieClip();
_root.beamX1.removeMovieClip();
_root.beamX2.removeMovieClip();
TowerArrayB = [];
OpenScreen();
};
_root.createEmptyMovieClip("NEXT", 30);
NEXT._x = 700;
NEXT._y = 550;
NEXT.createTextField("Next", 31, -50, -10, 100, 50);
NEXT.Next.text = "Next";
NEXT.Next.setTextFormat(TitleOther);
NEXT.onRollOver = function () {
NEXT._xscale = 120;
NEXT._yscale = 120;
};
NEXT.onRollOut = function () {
NEXT._xscale = 100;
NEXT._yscale = 100;
};
NEXT.onPress = function () {
NEXT.removeMovieClip();
i = 0;
while (i <= 9) {
_root["tower" + i].removeMovieClip();
i++;
}
_root.enemy0.removeMovieClip();
_root.radar6.removeMovieClip();
_root.beamX1.removeMovieClip();
_root.beamX2.removeMovieClip();
TIPS.removeMovieClip();
TowerArrayB = new Array();
ScissorExplain();
};
_root.createEmptyMovieClip("tower0", 20);
_root.createEmptyMovieClip("tower1", 13);
_root.createEmptyMovieClip("tower2", 14);
_root.createEmptyMovieClip("tower3", 15);
_root.createEmptyMovieClip("tower4", 16);
_root.createEmptyMovieClip("tower5", 17);
_root.createEmptyMovieClip("tower6", 18);
_root.createEmptyMovieClip("tower7", 19);
_root.createEmptyMovieClip("tower8", 21);
_root.createEmptyMovieClip("tower9", 22);
_root.tower0.Info = new Array();
_root.tower1.Info = new Array();
_root.tower2.Info = new Array();
_root.tower3.Info = new Array();
_root.tower4.Info = new Array();
_root.tower5.Info = new Array();
_root.tower6.Info = new Array();
_root.tower7.Info = new Array();
_root.tower8.Info = new Array();
_root.tower9.Info = new Array();
_root.tower0.Info[1] = 0;
_root.tower1.Info[1] = 1;
_root.tower2.Info[1] = 2;
_root.tower3.Info[1] = 3;
_root.tower4.Info[1] = 4;
_root.tower5.Info[1] = 5;
_root.tower6.Info[1] = 6;
_root.tower7.Info[1] = 7;
_root.tower8.Info[1] = 8;
_root.tower9.Info[1] = 8;
_root.tower0.Info[5] = 0;
_root.tower1.Info[5] = 1;
_root.tower2.Info[5] = 2;
_root.tower3.Info[5] = 3;
_root.tower4.Info[5] = 4;
_root.tower5.Info[5] = 5;
_root.tower6.Info[5] = 6;
_root.tower7.Info[5] = 7;
_root.tower8.Info[5] = 8;
_root.tower9.Info[5] = 9;
_root.tower0.BlasterArray = new Array();
_root.tower0.n = 0;
_root.tower1.n = 0;
_root.tower2.n = 0;
_root.tower3.n = 0;
_root.tower4.n = 0;
_root.tower5.n = 0;
_root.tower6.n = 0;
_root.tower7.n = 0;
_root.tower8.n = 0;
_root.tower9.n = 50;
_root.tower0.nn = 0;
_root.tower1.nn = 0;
_root.tower2.nn = 0;
_root.tower3.nn = 0;
_root.tower4.nn = 0;
_root.tower5.nn = 0;
_root.tower6.nn = 0;
_root.tower7.nn = 0;
_root.tower8.nn = 0;
_root.tower9.nn = 0;
_root.tower0.Target = new Array();
_root.tower1.Target = new Array();
_root.tower2.Target = new Array();
_root.tower3.Target = new Array();
_root.tower4.Target = new Array();
_root.tower5.Target = new Array();
_root.tower6.Target = new Array();
_root.tower7.Target = new Array();
_root.tower8.Target = new Array();
_root.tower9.Target = new Array();
DrawBlaster("tower0");
DrawBeam("tower1");
DrawCharge("tower2");
DrawDisruptor("tower3");
DrawRailgun("tower4");
DrawInverter("tower5");
DrawRadar("tower6");
DrawFission("tower7");
DrawScissor("tower8");
DrawScissor("tower9");
_root.tower0._x = 20;
_root.tower0._y = 50;
_root.tower1._x = 20;
_root.tower1._y = 105;
_root.tower2._x = 20;
_root.tower2._y = 160;
_root.tower3._x = 20;
_root.tower3._y = 215;
_root.tower4._x = 20;
_root.tower4._y = 270;
_root.tower5._x = 20;
_root.tower5._y = 325;
_root.tower6._x = 20;
_root.tower6._y = 380;
_root.tower7._x = 20;
_root.tower7._y = 435;
_root.tower8._x = 20;
_root.tower8._y = 490;
_root.tower9._x = 120;
_root.tower9._y = 490;
DrawNormalEnemy(0);
_root.tower6.Info[3] = 120;
_root.tower6.Info[4] = 4;
DrawRadarSight(_root.tower6);
_root.enemy0._x = 80;
_root.enemy0._y = 50;
_root.radar6._x = _root.tower6._x;
_root.radar6._y = _root.tower6._y;
c = 0;
d = 0;
TIPS.onEnterFrame = function () {
_root.tower0.middle._rotation = _root.tower0.middle._rotation + 2;
_root.tower1.middle._rotation = _root.tower1.middle._rotation + 2;
_root.tower2.middle._rotation = _root.tower2.middle._rotation + 2;
_root.tower3.middle._rotation = _root.tower3.middle._rotation + 2;
_root.tower4.middle._rotation = _root.tower4.middle._rotation + 2;
_root.tower5.middle._rotation = _root.tower5.middle._rotation + 2;
_root.tower6.middle._rotation = _root.tower6.middle._rotation + 2;
_root.tower7.middle._rotation = _root.tower7.middle._rotation + 2;
_root.tower8.middle._rotation = _root.tower8.middle._rotation + 2;
_root.tower9.middle._rotation = _root.tower9.middle._rotation + 2;
_root.enemy0._y = _root.enemy0._y + _root.enemy0.speed;
_root.radar6._rotation = _root.radar6._rotation + 2;
if (_root.enemy0._y > 500) {
_root.enemy0._y = 50;
}
if (_root.enemy0.speed < 4) {
_root.enemy0.speed = _root.enemy0.speed + 0.05;
}
if (_root.radar6.hitTest(_root.enemy0._x, _root.enemy0._y, true)) {
_root.tower6.createEmptyMovieClip("beam", 95);
_root.tower6.beam.lineStyle(1, 16711680);
_root.tower6.beam.lineTo(_root.enemy0._x - _root.tower6._x, _root.enemy0._y - _root.tower6._y);
} else {
_root.tower6.beam.removeMovieClip();
}
_root.createEmptyMovieClip("beamX1", 96);
_root.beamX1.lineStyle(_root.tower8.n / 20, 10027161, 50);
_root.beamX1.moveTo(_root.tower8._x, _root.tower8._y);
_root.beamX1.lineTo(_root.tower9._x, _root.tower9._y);
_root.createEmptyMovieClip("beamX2", 97);
_root.beamX2.lineStyle(_root.tower9.n / 20, 10027161, 50);
_root.beamX2.moveTo(_root.tower9._x, _root.tower9._y);
_root.beamX2.lineTo(_root.tower8._x, _root.tower8._y);
_root.tower8.n = ((_root.tower8.n < 100) ? (_root.tower8.n + 3) : 0);
_root.tower9.n = ((_root.tower9.n < 100) ? (_root.tower9.n + 3) : 0);
i = 0;
while (i <= 7) {
if ((_root.enemy0._y > (_root["tower" + i]._y - 100)) && (_root.enemy0._y < (_root["tower" + i]._y + 100))) {
_root["tower" + i].Target[0] = _root.enemy0;
Fire(_root["tower" + i]);
} else {
_root["tower" + i].beam.removeMovieClip();
for (j in _root["tower" + i].BlasterArray) {
_root["tower" + i]["beam" + j].removeMovieClip();
}
}
i++;
}
};
}
function ScissorExplain() {
_root.createEmptyMovieClip("SCISSOR", 1);
SCISSOR.createTextField("scis", 2, 0, 0, 400, 50);
SCISSOR.scis.text = "Scissor Tower Explaination";
SCISSOR.scis.setTextFormat(TitleOther);
SCISSOR.createTextField("intro", 3, 40, 30, 600, 100);
SCISSOR.intro.wordWrap = true;
SCISSOR.intro.text = "There are a couple different situations for the scissor towers. This section will explain them.";
SCISSOR.intro.setTextFormat(TitleInfo);
SCISSOR.createTextField("exp1", 4, 240, 90, 550, 100);
SCISSOR.exp1.wordWrap = true;
SCISSOR.exp1.text = "If both scissor towers are within range of eachother each tower will create a beam to the other tower, so there will actually be two beams (if the pulsing is out of phase you may notice). Each beam will do damage of the power of the tower that it is associated with divided by 2. So if the tower on the right has a power of 1, and the tower on the left has a power of 2 the total damage done by the two beams will 1.5 damage per frame.";
SCISSOR.exp1.setTextFormat(TitleInfo);
SCISSOR.createTextField("exp2", 5, 40, 220, 400, 100);
SCISSOR.exp2.wordWrap = true;
SCISSOR.exp2.text = "If a tower has upgraded range and has another scissor tower in its range, but the upgraded scissor tower is not in range of the other scissor tower, then only one beam will be created from the upgraded range tower to the other scissor tower. The one beam will only do the damage of the one upgraded range tower's power divided by 2. So if the upgraded tower on the left has a power of 1 but the normal range scissor tower on the right has a power of three, the one beam will still only do .5 damage per frame.";
SCISSOR.exp2.setTextFormat(TitleInfo);
SCISSOR.createTextField("exp3", 6, 330, 340, 450, 100);
SCISSOR.exp3.wordWrap = true;
SCISSOR.exp3.text = "If multiple scissor towers create a chain, the same rules for the beam still applies. The right tower and middle tower both have eachother in range so two beam will be created between them doing their combined powers divided by 2 damage. The left tower and middle tower also have eachother in range so two beams will be created between those two towers. The right tower and left tower are not in range of each other so no beams will be draw between them. Upgrading the power of the left tower will not affect the beams on the right and vice versa.";
SCISSOR.exp3.setTextFormat(TitleInfo);
SCISSOR.createTextField("exp4", 7, 120, 470, 440, 100);
SCISSOR.exp4.wordWrap = true;
SCISSOR.exp4.text = "Below, the left tower has the other two towers in range, so it will draw a beam to each of those two towers. The other two towers however do not have the left tower in range so they will not draw a beam to the left tower. The two towers on the right however are within range of eachother so they will each draw a beam to the other creating two beams inbetween them. Upgrading the right towers' power will increase the damage of the beam on the right, but will not upgrade the beams from the tower to the left. Upgrading the tower on the left will increase both beams' damage that are coming from that tower but will not affect the other beam's power.";
SCISSOR.exp4.setTextFormat(TitleInfo);
TowerArrayB = new Array();
i = 0;
while (i <= 9) {
_root.createEmptyMovieClip("tower" + i, 20 + i);
_root["tower" + i].Info = new Array();
_root["tower" + i].Info[1] = 8;
_root["tower" + i].Info[5] = i;
TowerArrayB[TowerArrayB.length] = _root["tower" + i];
i++;
}
_root.tower0.n = 0;
_root.tower1.n = 15;
_root.tower2.n = 0;
_root.tower3.n = 15;
_root.tower4.n = 0;
_root.tower5.n = 5;
_root.tower6.n = 10;
_root.tower7.n = 0;
_root.tower8.n = 5;
_root.tower9.n = 10;
_root.tower0.nn = 0;
_root.tower1.nn = 0;
_root.tower2.nn = 0;
_root.tower3.nn = 0;
_root.tower4.nn = 0;
_root.tower5.nn = 0;
_root.tower6.nn = 0;
_root.tower7.nn = 0;
_root.tower8.nn = 0;
_root.tower9.nn = 0;
_root.tower0.Target = new Array();
_root.tower1.Target = new Array();
_root.tower2.Target = new Array();
_root.tower3.Target = new Array();
_root.tower4.Target = new Array();
_root.tower5.Target = new Array();
_root.tower6.Target = new Array();
_root.tower7.Target = new Array();
_root.tower8.Target = new Array();
_root.tower9.Target = new Array();
DrawScissor("tower0");
DrawScissor("tower1");
DrawScissor("tower2");
DrawScissor("tower3");
DrawScissor("tower4");
DrawScissor("tower5");
DrawScissor("tower6");
DrawScissor("tower7");
DrawScissor("tower8");
DrawScissor("tower9");
_root.tower2.Info[3] = 140;
_root.tower7.Info[3] = 130;
_root.tower0._x = 60;
_root.tower0._y = 140;
_root.tower1._x = 140;
_root.tower1._y = 140;
_root.tower2._x = 580;
_root.tower2._y = 270;
_root.tower3._x = 700;
_root.tower3._y = 270;
_root.tower4._x = 80;
_root.tower4._y = 390;
_root.tower5._x = 160;
_root.tower5._y = 390;
_root.tower6._x = 240;
_root.tower6._y = 390;
_root.tower7._x = 620;
_root.tower7._y = 520;
_root.tower8._x = 720;
_root.tower8._y = 480;
_root.tower9._x = 720;
_root.tower9._y = 560;
counter1 = 25;
counter2 = 0;
SCISSOR.onEnterFrame = function () {
counter1 = ((counter1 < 30) ? (counter1 + 1) : 0);
if (counter1 == 30) {
DrawRange(_root["tower" + counter2]);
counter2 = ((counter2 < 9) ? (counter2 + 1) : 0);
}
for (i in TowerArrayB) {
_root["tower" + i].middle._rotation = _root["tower" + i].middle._rotation + 2;
DrawScissorBeam(_root["tower" + i]);
}
};
}
PanelTextUp = new TextFormat();
PanelTextUp.align = "left";
PanelTextUp.font = "arial";
PanelTextUp.bold = true;
PanelTextUp.size = 11;
PanelTextUpgrade = new TextFormat();
PanelTextUpgrade.align = "right";
PanelTextUpgrade.font = "arial";
PanelTextUpgrade.bold = true;
PanelTextUpgrade.size = 11;
PanelUp = new TextFormat();
PanelUp.align = "center";
PanelUp.font = "arial";
PanelUp.bold = true;
PanelUp.size = 11;
PanelUp.color = 0;
PanelValue = new TextFormat();
PanelValue.align = "left";
PanelValue.font = "arial";
PanelValue.bold = true;
PanelValue.size = 10;
PanelValue.color = 6697830 /* 0x663366 */;
Starttext = new TextFormat();
Starttext.color = 10066329 /* 0x999999 */;
Starttext.font = "arial";
Starttext.size = 11;
Starttext.bold = true;
Starttext.align = "center";
TitleScreen = new TextFormat("Courier New", 36, 14483456, true, false, false);
TitleSubtext = new TextFormat("Courier New", 14, 14483456, false, true, false);
TitleScreen.align = "center";
TitleSubtext.align = "center";
TitleOther = new TextFormat("Courier New", 24, 14505216, true, false, false);
TitleOther.align = "center";
TitleInfo = new TextFormat("Courier New", 12, 14483456, false, true, false);
TitleInfo.align = "left";
Version = new TextFormat("Arial CE", 7, 6684842);
Version.align = "left";
doc1 = new LoadVars();
doc1.load("http://people.alfred.edu/~nam2/information.txt");
keyStart = new Object();
Key.addListener(keyStart);
keyStart.onKeyDown = function () {
if ((Killcount == 16) && (Key.isDown(32))) {
StartWave();
}
};
PathArray1 = new Array();
PathArray2 = new Array();
o = 0;
while (o <= 22) {
PathArray1[o] = new Array();
o++;
}
ooo = 0;
while (ooo <= 22) {
PathArray2[ooo] = new Array();
ooo++;
}
PathArray1[0] = [-50, 540, 30, 50];
PathArray1[1] = [530, 550, 30, 160];
PathArray1[2] = [400, 550, 150, 170];
PathArray1[3] = [390, 410, 120, 170];
PathArray1[4] = [60, 410, 110, 130];
PathArray1[5] = [50, 70, 110, 220];
PathArray1[6] = [50, 160, 210, 230];
PathArray1[7] = [150, 170, 180, 230];
PathArray1[8] = [150, 340, 170, 190];
PathArray1[9] = [330, 350, 170, 320];
PathArray1[10] = [60, 350, 310, 330];
PathArray1[11] = [50, 70, 310, 540];
PathArray1[12] = [50, 320, 530, 550];
PathArray1[13] = [310, 330, 480, 550];
PathArray1[14] = [120, 330, 470, 490];
PathArray1[15] = [110, 130, 380, 490];
PathArray1[16] = [110, 420, 370, 390];
PathArray1[17] = [410, 430, 370, 500];
PathArray1[18] = [410, 540, 490, 510];
PathArray1[19] = [530, 550, 320, 510];
PathArray1[20] = [400, 550, 310, 330];
PathArray1[21] = [390, 410, 220, 330];
PathArray1[22] = [390, 600, 210, 230];
PathArray2[0] = [-50, 520, 50, 70];
PathArray2[1] = [510, 530, 50, 140];
PathArray2[2] = [380, 530, 130, 150];
PathArray2[3] = [410, 430, 100, 150];
PathArray2[4] = [40, 430, 90, 110];
PathArray2[5] = [30, 50, 90, 240];
PathArray2[6] = [30, 180, 230, 250];
PathArray2[7] = [170, 190, 200, 250];
PathArray2[8] = [170, 320, 190, 210];
PathArray2[9] = [310, 330, 190, 300];
PathArray2[10] = [40, 330, 290, 310];
PathArray2[11] = [30, 50, 290, 560];
PathArray2[12] = [30, 340, 550, 570];
PathArray2[13] = [330, 350, 460, 570];
PathArray2[14] = [140, 350, 450, 470];
PathArray2[15] = [130, 150, 400, 470];
PathArray2[16] = [130, 400, 390, 410];
PathArray2[17] = [390, 410, 390, 520];
PathArray2[18] = [390, 560, 510, 530];
PathArray2[19] = [550, 570, 300, 530];
PathArray2[20] = [420, 570, 290, 310];
PathArray2[21] = [410, 430, 240, 310];
PathArray2[22] = [410, 605, 230, 250];
OpenScreen();
TowerArrayB = new Array();
EnemyArrayB = new Array();
_root.onEnterFrame = function () {
for (i2 in TowerArrayB) {
for (k2 in EnemyArrayB) {
if (((EnemyArrayB[k2].TargetBy[i2] == undefined) && (TowerArrayB[i2].Info[0] == true)) && (EnemyArrayB[k2]._visible == true)) {
if (((EnemyArrayB[k2] != undefined) && (TowerArrayB[i2].Info[1] != 6)) && (TowerArrayB[i2].Info[1] != 8)) {
if (Math.sqrt(Math.pow(EnemyArrayB[k2]._x - TowerArrayB[i2]._x, 2) + Math.pow(EnemyArrayB[k2]._y - TowerArrayB[i2]._y, 2)) <= TowerArrayB[i2].Info[3]) {
TowerArrayB[i2].Target[TowerArrayB[i2].Target.length] = EnemyArrayB[k2];
EnemyArrayB[k2].TargetBy[i2] = TowerArrayB[i2];
}
}
}
if ((TowerArrayB[i2].Info[1] == 6) && (TowerArrayB[i2].Info[0] == true)) {
if ((_root["radar" + TowerArrayB[i2].Info[5]].hitTest(EnemyArrayB[k2]._x, EnemyArrayB[k2]._y, true) && (EnemyArrayB[k2] != undefined)) && (EnemyArrayB[k2]._visible == true)) {
TowerArrayB[i2].createEmptyMovieClip("Beam" + k2, ((70 + i2) + 4) + k2);
TowerArrayB[i2]["Beam" + k2].moveTo(0, 0);
TowerArrayB[i2]["Beam" + k2].lineStyle(1, 16711680);
TowerArrayB[i2]["Beam" + k2].lineTo(EnemyArrayB[k2]._x - TowerArrayB[i2]._x, EnemyArrayB[k2]._y - TowerArrayB[i2]._y);
EnemyArrayB[k2].life = EnemyArrayB[k2].life - TowerArrayB[i2].Info[2];
}
if ((((_root["radar" + TowerArrayB[i2].Info[5]].hitTest(EnemyArrayB[k2]._x, EnemyArrayB[k2]._y, true) == false) || (EnemyArrayB[k2] == undefined)) || (EnemyArrayB[k2]._visible == false)) && (TowerArrayB[i2]["Beam" + k2] != undefined)) {
TowerArrayB[i2]["Beam" + k2].removeMovieClip();
}
}
}
for (j2 in TowerArrayB[i2].Target) {
if (Math.sqrt(Math.pow(TowerArrayB[i2].Target[j2]._x - TowerArrayB[i2]._x, 2) + Math.pow(TowerArrayB[i2].Target[j2]._y - TowerArrayB[i2]._y, 2)) > TowerArrayB[i2].Info[3]) {
TowerArrayB[i2].Target[j2].TargetBy[i2] = undefined;
TowerArrayB[i2].Target.splice(j2, 1);
}
if (TowerArrayB[i2].Target[j2]._visible == false) {
TowerArrayB[i2].Target[j2].TargetBy[i2] = undefined;
TowerArrayB[i2].Target.splice(j2, 1);
}
if (TowerArrayB[i2].Target[j2]._x == undefined) {
TowerArrayB[i2].Target[j2].TargetBy[i2] = undefined;
TowerArrayB[i2].Target.splice(j2, 1);
}
}
if (TowerArrayB[i2].Target.length > 0) {
if (TowerArrayB[i2].charge >= 100) {
Fire(TowerArrayB[i2]);
}
}
if (TowerArrayB[i2].charge < 100) {
TowerArrayB[i2].charge = TowerArrayB[i2].charge + TowerArrayB[i2].Info[4];
}
if (TowerArrayB[i2].Info[1] == 6) {
_root["radar" + TowerArrayB[i2].Info[5]]._rotation = _root["radar" + TowerArrayB[i2].Info[5]]._rotation + 2;
_root["radar" + TowerArrayB[i2].Info[5]]._x = TowerArrayB[i2]._x;
_root["radar" + TowerArrayB[i2].Info[5]]._y = TowerArrayB[i2]._y;
}
if (TowerArrayB[i2].Info[1] == 8) {
DrawScissorBeam(TowerArrayB[i2]);
}
if ((TowerArrayB[i2].Info[1] == 9) && (TowerArrayB[i2].PointArray.length > 1)) {
DrawFreqWave(TowerArrayB[i2]);
}
if ((TowerArrayB[i2].Info[0] == false) && (Route.hitTest(_xmouse, _ymouse, true) == false)) {
for (i3 in TowerArrayB) {
if ((TowerArrayB[i3].Info[7] == 1) && (TowerArrayB[i3].hitTest(_xmouse, _ymouse, false))) {
_root.Panel.Upgrade.info.INFO.text = "Cannot Place There. Overlapping Another Tower";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
TowerArrayB[i2]._x = this._xmouse;
TowerArrayB[i2]._y = this._ymouse;
TowerArrayB[i2]._alpha = 25;
_root.Range.removeMovieClip();
TowerArrayB[i2].Info[7] = 0;
iiii = i2;
} else if (((TowerArrayB[i3].Info[7] == 0) || (TowerArrayB[i3].Info[7] == 2)) && (TowerArrayB[i3].hitTest(_xmouse, _ymouse, false) == false)) {
TowerArrayB[i2]._x = Math.round(this._xmouse / 20) * 20;
TowerArrayB[i2]._y = Math.round(this._ymouse / 20) * 20;
TowerArrayB[i2]._alpha = 50;
DrawRange(TowerArrayB[i2]);
TowerArrayB[i2].Info[7] = 2;
iiii = i2;
_root.Panel.Upgrade.info.INFO.text = "";
TowerArrayB[i2].onMouseDown = function () {
if (((((Route.hitTest(_xmouse, _ymouse, true) == false) && (this.Info[0] == false)) && (placer == true)) && (Grid.hitTest(_xmouse, _ymouse, false) == true)) && (this.Info[7] == 2)) {
this.Info[0] = true;
this._alpha = 100;
placer = false;
money = money - this.Info[6];
this.Info[7] = 1;
} else if (placer == true) {
this.removeMovieClip();
_root.Range.removeMovieClip();
placer = false;
_root["radar" + iiii].removeMovieClip();
TowerArrayB.splice(iiii + 1, 1);
}
};
}
}
} else if ((TowerArrayB[i2].Info[0] == false) && (Route.hitTest(_xmouse, _ymouse, true) == true)) {
TowerArrayB[i2]._x = this._xmouse;
TowerArrayB[i2]._y = this._ymouse;
TowerArrayB[i2]._alpha = 25;
_root.Range.removeMovieClip();
TowerArrayB[i2].Info[7] = 0;
_root.Panel.Upgrade.info.INFO.text = "Cannot Place There. Overlapping the Path";
_root.Panel.Upgrade.info.INFO.setTextFormat(PanelValue);
}
if (TowerArrayB[i2].Target.length == 0) {
TowerArrayB[i2].beam.removeMovieClip();
for (i8 in TowerArrayB[i2].BlasterArray) {
TowerArrayB[i2]["beam" + i8].removeMovieClip();
}
}
TowerArrayB[i2].middle._rotation = TowerArrayB[i2].middle._rotation + ((TowerArrayB[i2].Info[4] - TowerArrayB[i2].SPEED) + 1);
}
Panel.Credit.Money.text = money;
Panel.Lives.Life.text = Life;
Panel.Score.SCORE.text = score;
Panel.Credit.Money.setTextFormat(PanelValue);
Panel.Lives.Life.setTextFormat(PanelValue);
Panel.Score.SCORE.setTextFormat(PanelValue);
if ((Life <= 0) && (count == 0)) {
GameOver();
Life = -1;
}
};
pj = 0;
_root.createEmptyMovieClip("openLoad", 60510);
_root.openLoad.createTextField("countingm", 70510, 0, 0, 200, 30);
openLoad.onEnterFrame = function () {
pj = pj + ((pj < 15) ? 1 : -15);
if (p == 0) {
_root.openLoad.countingm.text = "loading music ";
} else if (pj == 4) {
_root.openLoad.countingm.text = "loading music. ";
} else if (pj == 8) {
_root.openLoad.countingm.text = "loading music.. ";
} else if (pj == 12) {
_root.openLoad.countingm.text = "loading music...";
}
if (count == undefined) {
_root.openLoad.countingm.setTextFormat(TitleSubtext);
_root.openLoad._x = 200;
_root.openLoad._y = 80;
} else if (count == 0) {
_root.openLoad.countingm.setTextFormat(PanelValue);
_root.openLoad._x = 632;
_root.openLoad._y = 460;
}
};
musicPanel.onEnterFrame = function () {
if (TRACK1.position >= 82665) {
TRACK1.start(0);
TRACK1.setVolume(50);
}
if (TRACK2.position >= 95850) {
TRACK2.start(0.02);
TRACK2.setVolume(40);
}
if (_root.music.pan == true) {
count2 = count2 + 1;
if (count2 < 60) {
_root.musicPanel._x = _root.musicPanel._x / 1.1;
} else if (count2 > 180) {
_root.musicPanel._x = -120 + ((_root.musicPanel._x + 120) / 1.1);
} else if (count2 > 300) {
this.removeMovieClip();
count2 = 0;
_root.music.pan = false;
}
}
};
_root.onMouseDown = function () {
for (ii in TowerArrayB) {
if (this.Panel.hitTest(_xmouse, _ymouse, false) == false) {
this.Range.removeMovieClip();
_root.Panel.Upgrade.power.Power.text = "";
_root.Panel.Upgrade.range.Range.text = "";
_root.Panel.Upgrade.speed.Speed.text = "";
_root.Panel.upgradeP.removeMovieClip();
_root.Panel.upgradeR.removeMovieClip();
_root.Panel.upgradeS.removeMovieClip();
_root.Panel.selltower.removeMovieClip();
}
}
};