Frame 1
this.stop();
this.load_sounds = false;
this.local_mode = false;
this.s3_mode = true;
this.base_url = "http://www.playr.co.uk/onslaught/";
this.ok_url = this.base_url + "/ok.php";
this.score_url = "http://www.playr.co.uk/onslaught/";
this.sound_url = "http://www.playr.co.uk/onslaught/";
if (this.local_mode == true) {
this.base_url = "http://localhost/~gaby/onslaught/";
this.ok_url = this.base_url + "/ok.php";
this.score_url = "http://ec2-1.playr.co.uk/onslaught/";
this.sound_url = "";
} else if (this.s3_mode == true) {
this.base_url = "http://ec2-1.playr.co.uk/onslaught/";
this.ok_url = "http://s3.playr.co.uk/onslaught/ok.html";
this.score_url = "http://ec2-1.playr.co.uk/onslaught/";
this.sound_url = "http://s3.playr.co.uk/onslaught/";
}
this.play();
this.stop();
PlayerURL.onPress = function () {
getURL ("http://playr.co.uk/onslaught/", "_self", "GET");
};
this.play();
Frame 4
this.stop();
if (this.load_sounds == true) {
var the_url = (this.sound_url + "SoundLibrary.swf");
(this);// not popped
loadMovieNum (the_url, 1);
"sound_clip"[undefined] = undefined;
}
this.play();
Frame 7
this.stop();
_level1._visible = false;
var b_loaded = this.getBytesLoaded();
var b_total = this.getBytesTotal();
if (this.load_sounds == true) {
b_loaded = b_loaded + this.sound_clip.getBytesLoaded();
b_total = b_total + this.sound_clip.getBytesTotal();
}
if (b_loaded < b_total) {
var pct = Math.floor((b_loaded / b_total) * 100);
this.Loading.text = pct + "%";
this.play();
} else {
this.gotoAndPlay("Loaded");
}
Frame 10
this.gotoAndPlay("Load");
Frame 13
this.stop();
if (this.local_mode == false) {
Loading.text = "Verifying...";
var lv = new LoadVars();
lv.i_am = "kloot";
var lv_into = new LoadVars();
lv_into.onLoad = function (success) {
if (success) {
if (this.ok == 1) {
gotoAndPlay ("Done");
} else {
Loading.text = this.error;
}
} else {
Loading.text = "Can't verify...";
}
};
var lv_url = this.ok_url;
lv.sendAndLoad(lv_url, lv_into, "GET");
} else {
this.gotoAndPlay("Done");
}
Frame 16
this.stop();
if (this.view_layout) {
gotoAndPlay (44);
} else {
gotoAndPlay (19);
}
Frame 19
this.attacker_count = 0;
this.attackers = new Array();
this.waves = new Array();
this.smoke_trails = new Array();
this.game_map = "map1";
this.turret_counter = 0;
this.sound_engine = _level1;
this.sound_engine._visible = false;
this.NewAttacker = function (the_energy, the_value) {
this.attacker_count++;
var _local3 = "Attacker" + this.attacker_count;
var _local4 = this.getNextHighestDepth();
var _local2 = this.attachMovie("Attacker", _local3, _local4);
_local2._x = this.Waypoint1._x;
_local2._y = this.Waypoint1._y;
_local2.energy_start = the_energy;
_local2.cash_bounty = the_value;
_local2.waypoint_total = this.waypoint_total;
_local2.active = true;
_local2.my_name = _local3;
this.attackers[_local3] = _local2;
};
this.TidyUp = function () {
for (var _local2 in this.waves) {
removeMovieClip(this.waves[_local2]);
}
for (var _local2 in this.turrets) {
removeMovieClip(this.turrets[_local2]);
}
for (var _local2 in this.attackers) {
removeMovieClip(this.attackers[_local2]);
}
for (var _local2 in this.smoke_trails) {
removeMovieClip(this.smoke_trails[_local2]);
}
this.attackers = new Array();
this.waves = new Array();
this.turrets = new Array();
this.smoke_trails = new Array();
this.smoke_count = 0;
this.TurretHighlightHide();
this.cur_turret = false;
};
this.BaseHit = function () {
return(false);
};
this.KilledAttacker = function () {
return(false);
};
this.rocketSmoke = function (source_obj) {
this.smoke_count++;
var _local3 = "RocketTrail";
var _local5 = "RocketTrail" + this.smoke_count;
var _local4 = this.getNextHighestDepth();
var _local2 = this.attachMovie(_local3, _local5, _local4);
_local2._x = source_obj._x;
_local2._y = source_obj._y;
_local2._rotation = Math.random() * 360;
this.smoke_trails.push(_local2);
};
if (flash.external.ExternalInterface.available == true) {
var the_url = flash.external.ExternalInterface.call("window.location.href.toString");
if (the_url == null) {
the_url = flash.external.ExternalInterface.call("window.location.search.substring");
}
if (the_url == null) {
the_url = "Hmm, not sure.";
}
HostedOn.text = "Hosted on: " + the_url;
} else {
HostedOn.text = "Nope.";
}
this.Payment = function (amount) {
if (this.game_over) {
return(false);
}
if (this.player_cash >= amount) {
this.player_cash = this.player_cash - amount;
this.total_spent = this.total_spent + amount;
CashUpdate();
return(true);
}
return(false);
};
this.CanAfford = function (amount) {
if (this.game_over) {
return(false);
}
if (this.player_cash >= amount) {
return(true);
}
return(false);
};
this.CashWin = function (amount) {
this.player_cash = this.player_cash + amount;
CashUpdate();
};
this.CashUpdate = function () {
Cash.text = "$" + this.player_cash;
};
this.degreesToTarget = function (point_from, point_to) {
var _local2 = this.radiansToTarget(point_from, point_to);
var _local3 = _local2 * 57.2957795130823;
return(_local3);
};
this.radiansToTarget = function (point_from, point_to) {
var _local3 = point_from._x;
var _local5 = point_from._y;
var _local2 = point_to._x;
var _local4 = point_to._y;
var _local1 = Math.atan2(_local4 - _local5, _local2 - _local3);
return(_local1);
};
this.DistanceBetween = function (obj_a, obj_b) {
var _local2 = obj_b._x - obj_a._x;
var _local1 = obj_b._y - obj_a._y;
var _local3 = Math.sqrt((_local2 * _local2) + (_local1 * _local1));
return(_local3);
};
this.trigForwardAtAngle = function (the_angle, the_amount) {
var _local4 = parseFloat(the_angle);
var _local3 = _local4 * (Math.PI/180);
var _local2 = the_amount;
var _local1 = new Object();
_local1.x = Math.cos(_local3) * _local2;
_local1.y = Math.sin(_local3) * _local2;
return(_local1);
};
this.dec2hex = function (dec) {
var _local1 = "0123456789ABCDEF";
if (dec > 15) {
pos1 = _local1.charAt(Math.floor(dec / 16));
pos2 = _local1.charAt(dec - (pos1 * 16));
} else {
pos1 = 0;
pos2 = _local1.charAt(dec);
}
hex = pos1 + pos2;
return(hex);
};
this.sound_engine = _level1;
this.sound_engine._visible = false;
this.sound_engine.sound_muted = true;
this.NewTurret = function (the_x, the_y, the_type) {
return(false);
};
this.TryAndBuild = function (the_type) {
return(false);
};
this.rangeShow = function (the_turret) {
return(false);
};
this.rangeHide = function () {
return(false);
};
this.TurretSell = function () {
return(false);
};
this.TurretHighlightShow = function () {
return(false);
};
this.TurretHighlightHide = function () {
return(false);
};
this.stop();
this.TidyUp();
this.NextWave = function () {
};
this.waves = new Array();
this.turrets = new Array();
Green1.turret_type = "Green";
Green2.turret_type = "Green";
Green3.turret_type = "Green";
this.turrets.push(Green1);
this.turrets.push(Green2);
this.turrets.push(Green3);
this.waypoint_total = 2;
this.attacker_energy = 220;
this.attacker_value = 1;
WaveyDavey.gotoAndStop("Idle");
WaveyDavey.wave_spacing = 1200;
WaveyDavey.wave_size = 1;
WaveyDavey.attacker_spacing = 1;
WaveyDavey.gotoAndPlay("Spwan");
Instance of Symbol 455 MovieClip "Keyboard" in Frame 19
onClipEvent (keyDown) {
theKey = Key.getCode();
}
onClipEvent (keyUp) {
var theKey = Key.getCode();
}
Frame 24
this.NewTurret = function (the_x, the_y, the_type) {
if (this.game_over) {
return(false);
}
var _local7 = this.turrets_cost[the_type];
if (!this.Payment(_local7)) {
return(false);
}
this.turret_counter++;
var _local10 = this.getNextHighestDepth();
var _local6 = "Turret" + the_type;
var _local9 = _local6 + this.turret_counter;
var _local4 = _root.attachMovie(_local6, _local9, _local10);
_local4._x = the_x;
_local4._y = the_y;
_local4.turret_type = the_type;
_local4.turret_num = this.turret_counter;
_local4.cash_value = parseInt(_local7);
_local4.active = true;
for (var _local5 in this.turrets) {
var _local3 = this.turrets[_local5];
_local3.notifyNew(_local4);
}
this.turrets.push(_local4);
return(true);
};
this.TryAndBuild = function (the_type) {
this.CancelBuild();
if (this.game_over) {
return(false);
}
var _local9 = _root;
_local9.build_clip = _local9.attachMovie("BuildShape", "BuildShape", _local9.getNextHighestDepth());
_local9.build_clip._x = _root._xmouse;
_local9.build_clip._y = _root._ymouse;
_local9.build_clip.can_build = false;
_local9.build_clip.startDrag();
_local9.build_clip.checkBuild = function () {
var _local18 = _root.turrets_cost[the_type];
if (_local18 > _root.player_cash) {
this.can_afford = false;
return(false);
}
this.can_afford = true;
var _local12 = (this.BuildArea._width / 2) + 1;
var _local17 = (this.BuildArea._height / 2) + 1;
var _local9 = _root._xmouse;
var _local10 = _root._ymouse;
if ((((_local9 < 200) or (_local10 < 240)) or (_local9 > 520)) or (_local10 > 480)) {
return(false);
}
if ((((this.hitTest(_root.OutOfBoundsTop) or this.hitTest(_root.OutOfBoundsRight)) or this.hitTest(_root.OutOfBoundsBottom)) or this.hitTest(_root.OutOfBoundsLeft)) or this.hitTest(_root.OutOfBoundsNav)) {
return(false);
}
_local12 = (this._width / 2) + 1;
_local17 = (this._height / 2) + 1;
_local9 = _root._xmouse;
_local10 = _root._ymouse;
var _local3 = new Array();
_local3.push(Array(_local9, _local10 + _local17));
_local3.push(Array(_local9, _local10 - _local17));
_local3.push(Array(_local9 + _local12, _local10));
_local3.push(Array(_local9 - _local12, _local10));
var _local14 = 0.850903524534118 * _local12;
var _local13 = 0.52532198881773 * _local12;
_local3.push(Array(_local9 + _local14, _local10 + _local13));
_local3.push(Array(_local9 + _local14, _local10 - _local13));
_local3.push(Array(_local9 - _local14, _local10 + _local13));
_local3.push(Array(_local9 - _local14, _local10 - _local13));
var _local11 = this._width * 2;
var _local8 = _root.turrets;
for (var _local16 in _local8) {
var _local4 = _local8[_local16];
var _local7 = _root.DistanceBetween(this, _local4);
if (_local7 < _local11) {
for (var _local15 in _local3) {
var _local6 = _local3[_local15][0];
var _local5 = _local3[_local15][1];
if (_local4.hitTest(_local6, _local5, true)) {
return(false);
}
}
}
}
for (var _local15 in _local3) {
var _local6 = _local3[_local15][0];
var _local5 = _local3[_local15][1];
if (_root.AttackerPath.hitTest(_local6, _local5, true)) {
return(false);
}
if (_root.PlayerBase.hitTest(_local6, _local5, true)) {
return(false);
}
}
return(true);
};
_local9.build_clip.onEnterFrame = function () {
var _local2 = this.checkBuild();
this.can_build = _local2;
};
_local9.build_clip.onPress = function () {
if (this.checkBuild()) {
_root.NewTurret(_root._xmouse, _root._ymouse, the_type);
}
this.stopDrag();
removeMovieClip(this);
};
};
this.CancelBuild = function () {
_root.build_clip.stopDrag();
removeMovieClip(_root.build_clip);
};
this.WeaponFired = function () {
this.total_shots++;
};
this.rangeShow = function (the_turret) {
if (!the_turret) {
return(false);
}
if (this.the_range != false) {
return(true);
}
if (the_turret.range_effective > the_turret.weapon_range) {
var _local5 = this.getNextHighestDepth();
var _local4 = "TurretRangeEffective";
var _local6 = _local4 + _local5;
var _local3 = this.attachMovie(_local4, _local6, _local5);
_local3._width = the_turret.range_effective * 2;
_local3._height = the_turret.range_effective * 2;
_local3._x = the_turret._x;
_local3._y = the_turret._y;
this.the_range_effective = _local3;
}
var _local5 = this.getNextHighestDepth();
var _local4 = "TurretRange";
var _local6 = _local4 + _local5;
this.the_range = this.attachMovie(_local4, _local6, _local5);
this.the_range._width = the_turret.weapon_range * 2;
this.the_range._height = the_turret.weapon_range * 2;
this.the_range._x = the_turret._x;
this.the_range._y = the_turret._y;
};
this.rangeHide = function () {
if (this.the_range != "") {
removeMovieClip(this.the_range);
removeMovieClip(this.the_range_effective);
this.the_range = false;
}
};
this.TurretSell = function () {
if (this.game_over) {
return(false);
}
if (this.cur_turret == false) {
return(false);
}
the_turret = this.cur_turret;
the_turret._visible = false;
the_turret.onSell();
var _local5 = the_turret.cash_value;
var _local6 = Math.ceil(_local5 * this.turret_resale);
this.Kerching(the_turret._x, the_turret._y, _local5);
this.CashWin(_local6);
this.CashUnspend(_local6);
var _local3 = new Array();
for (var _local4 in this.turrets) {
var _local2 = this.turrets[_local4];
if (_local2 != the_turret) {
_local2.notifyGone(the_turret);
_local3.push(_local2);
}
}
this.turrets = _local3;
the_turret.removeMovieClip();
this.cur_turret = false;
this.TurretHighlightHide();
return(true);
};
this.TurretGetLayout = function () {
var _local4 = new Array();
for (var _local5 in this.turrets) {
var _local3 = this.turrets[_local5];
var _local2 = new Object();
_local2.x = _local3._x;
_local2.y = _local3._y;
_local2.name = _local3._name;
_local2.turret_type = _local3.turret_type;
_local2.weapon_rotation = _local3.Weapon._rotation;
_local2.upgrade_damage = _local3.upgrade_damage_level;
_local2.upgrade_range = _local3.upgrade_range_level;
_local2.upgrade_rate = _local3.upgrade_rate_level;
_local2.weapon_damage = _local3.weapon_damage;
_local2.weapon_range = _local3.weapon_range;
_local2.weapon_rate = _local3.weapon_rate;
_local2.weapon_fire_count = _local3.weapon_fire_count;
_local2.weapon_kill_count = _local3.weapon_kill_count;
_local4.push(_local2);
}
return(_local4);
};
this.TurretHighlightShow = function () {
if (!this.turret_highlight) {
var _local2 = "TurretHighlight";
var _local3 = this.getNextHighestDepth();
var _local5 = _local2 + _local3;
var _local4 = this.attachMovie(_local2, _local5, _local3);
this.turret_highlight = _local4;
}
this.turret_highlight._x = this.cur_turret._x;
this.turret_highlight._y = this.cur_turret._y;
};
this.TurretHighlightHide = function () {
if (this.turret_highlight) {
this.turret_highlight.removeMovieClip();
}
this.turret_highlight = false;
};
this.TurretFired = function (the_bullet) {
this.bullets.push(the_bullet);
};
this.stop();
TidyUp();
this.waypoint_total = 3;
WaveyDavey1.wave_spacing = 1200;
WaveyDavey1.wave_size = 1;
WaveyDavey1.attacker_spacing = 1;
this.attacker_energy = 220;
this.attacker_value = 1;
WaveyDavey1.SendWave();
this.player_cash = 100;
this.turrets_cost = new Array();
this.turrets_cost.Blue = 10;
this.turrets_cost.Green = 15;
this.turrets_cost.Red = 20;
_root.turrets = new Array();
CashUpdate();
Instance of Symbol 455 MovieClip "Keyboard" in Frame 24
onClipEvent (keyDown) {
theKey = Key.getCode();
if (theKey == 49) {
this._parent.TryAndBuild("Blue");
} else if (theKey == 50) {
this._parent.TryAndBuild("Green");
} else if (theKey == 51) {
this._parent.TryAndBuild("Red");
} else if (theKey == 81) {
this._parent.TurretUpgrade.tryUpgradeDamage();
} else if (theKey == 87) {
this._parent.TurretUpgrade.tryUpgradeRange();
} else if (theKey == 69) {
this._parent.TurretUpgrade.tryUpgradeRate();
} else if (theKey == 27) {
this._parent.CancelBuild();
} else if (theKey == 39) {
this._parent.WeaponStore.storeNextItem();
} else if (theKey == 37) {
this._parent.WeaponStore.storePrevItem();
} else if (theKey == 13) {
this._parent.WeaponStore.storeBuyItem();
} else if (theKey == 66) {
this._parent.WeaponStore.storeBuyItem();
}
}
onClipEvent (keyUp) {
var theKey = Key.getCode();
}
Frame 29
this.NewTurret = function (the_x, the_y, the_type) {
return(false);
};
this.TryAndBuild = function (the_type) {
return(false);
};
this.rangeShow = function (the_turret) {
return(false);
};
this.rangeHide = function () {
return(false);
};
this.TurretSell = function () {
return(false);
};
this.TurretHighlightShow = function () {
if (!this.turret_highlight) {
var _local2 = "TurretHighlight";
var _local3 = this.getNextHighestDepth();
var _local5 = _local2 + _local3;
var _local4 = this.attachMovie(_local2, _local5, _local3);
this.turret_highlight = _local4;
}
this.turret_highlight._x = this.cur_turret._x;
this.turret_highlight._y = this.cur_turret._y;
};
this.TurretHighlightHide = function () {
if (this.turret_highlight) {
this.turret_highlight.removeMovieClip();
}
this.turret_highlight = false;
};
this.stop();
TidyUp();
this.NextWave = function () {
this.attacker_energy = this.attacker_energy * 1.12;
this.attacker_value++;
};
this.waves = new Array();
this.turrets = new Array();
Green1.turret_type = "Green";
this.turrets.push(Red1);
this.turrets.push(Green1);
this.turrets.push(Blue1);
this.waypoint_total = 2;
WaveyDavey2.wave_spacing = 1500;
WaveyDavey2.wave_size = 2;
WaveyDavey2.attacker_spacing = 400;
this.attacker_energy = 50;
this.attacker_value = 2;
this.player_cash = 400;
WaveyDavey2.SendWave();
Frame 34
this.stop();
TidyUp();
Instance of Symbol 455 MovieClip "Keyboard" in Frame 34
onClipEvent (keyDown) {
theKey = Key.getCode();
}
onClipEvent (keyUp) {
var theKey = Key.getCode();
}
Frame 39
this.stop();
TidyUp();
Frame 44
this.game_version = "v3.5u";
this.debug_mode = false;
if (this.game_map == undefined) {
this.game_map = "map1";
}
this.starting_cash = 30;
this.starting_lives = 10;
this.attacker_upgrade_rate = 1.125;
this.attacker_start_energy = 10;
this.attacker_speed = 60;
this.wave_size = 10;
this.wave_spacing = 20000;
this.attacker_spacing = 700;
this.turret_resale = 0.7;
if (this.debug_mode == true) {
this.starting_cash = 100000 /* 0x0186A0 */;
this.game_version = this.game_version + "-d";
}
this.waypoint_total = 13;
this.attacker_types = 14;
this.attackers = new Array();
this.waves = new Array();
this.turrets = new Array();
this.turret_builders = new Array();
this.waypoints = new Array();
this.smoke_trails = new Array();
this.bullets = new Array();
this.mines = new Array();
this.turrets_cost = new Array();
this.turrets_cost.Blue = 10;
this.turrets_cost.Green = 15;
this.turrets_cost.Red = 20;
this.turrets_cost.DamageUp = 5000;
this.turrets_cost.RangeUp = 2000;
this.turrets_cost.RateUp = 3000;
this.turrets_cost.DamageUpBig = 8500;
this.turrets_cost.DamageUpBigExchange = 3500;
this.turrets_cost.RangeUpExchange = 1000;
this.turrets_cost.RateUpExchange = 1200;
this.turrets_available = new Array();
this.game_over = false;
OutOfBoundsTop._visible = false;
OutOfBoundsRight._visible = false;
OutOfBoundsBottom._visible = false;
OutOfBoundsLeft._visible = false;
OutOfBoundsNav._visible = false;
this.AttackerPath = false;
this.PlayerBase = false;
this.ResetGame = function () {
this.RemoveEverything();
this.ResetVars();
this.RoadCreate();
WaveController.gotoAndStop("Idle");
WaveController.wave_spacing = this.wave_spacing;
WaveController.wave_size = this.wave_size;
WaveController.attacker_spacing = this.attacker_spacing;
WaveController.gotoAndPlay("Spwan");
this.CashUpdate();
};
this.ResetVars = function () {
this.game_over = false;
this.game_paused = false;
this.game_level = 0;
this.player_cash = this.starting_cash;
this.player_lives = this.starting_lives;
this.attacker_level = 500;
this.attacker_count = 0;
this.attacker_upgrade = this.attacker_upgrade_rate;
this.attacker_energy = this.attacker_start_energy / this.attacker_upgrade;
this.total_kills = 0;
this.total_spent = 0;
this.total_shots = 0;
this.cur_turret = false;
this.turret_counter = 0;
this.attackers = new Array();
this.waves = new Array();
this.turrets = new Array();
this.turret_builders = new Array();
this.waypoints = new Array();
this.smoke_trails = new Array();
this.mines = new Array();
this.bullets = new Array();
this.turrets_available = new Array();
this.turrets_available.Red = true;
this.turrets_available.Green = true;
this.turrets_available.Blue = true;
if (this.debug_mode == true) {
this.turrets_available.DamageUp = true;
this.turrets_available.RangeUp = true;
this.turrets_available.RateUp = true;
this.turrets_available.DamageUpBig = true;
this.turrets_available.RangeUpBig = true;
this.turrets_available.RateUpBig = true;
this.turrets_available.DamageUpBigExchange = true;
this.turrets_available.RangeUpExchange = true;
this.turrets_available.RateUpExchange = true;
}
PlayerBase.resetLives();
WeaponStore.storeEmpty();
};
this.RemoveEverything = function () {
this.CancelBuild();
this.rangeHide();
for (var _local2 in this.waves) {
removeMovieClip(this.waves[_local2]);
}
for (var _local2 in this.turrets) {
removeMovieClip(this.turrets[_local2]);
}
for (var _local2 in this.turret_builders) {
removeMovieClip(this.turret_builders[_local2]);
}
for (var _local2 in this.attackers) {
removeMovieClip(this.attackers[_local2]);
}
for (var _local2 in this.waypoints) {
removeMovieClip(this.waypoints[_local2]);
}
for (var _local2 in this.mines) {
removeMovieClip(this.mines[_local2]);
}
if (this.GameOver) {
removeMovieClip(this.GameOver);
}
if (this.AttackerPath) {
this.AttackerPath.removeMovieClip();
}
if (this.PlayerBase) {
this.PlayerBase.removeMovieClip();
}
this.TurretHighlightHide();
};
this.StopEverything = function () {
WaveController.gotoAndStop("Stopped");
this.sound_engine.musicFadeStop();
for (var _local3 in this.waves) {
var _local2 = this.waves[_local3];
_local2.active = false;
_local2.gotoAndStop("Stopped");
}
for (var _local3 in this.turrets) {
var _local2 = this.turrets[_local3];
_local2.active = false;
_local2.gotoAndStop("Stopped");
}
for (var _local3 in this.attackers) {
var _local2 = this.attackers[_local3];
_local2.active = false;
_local2.gotoAndStop("Stopped");
}
};
this.RoadCreate = function () {
var _local3 = "TheRoad";
var _local4 = this.getNextHighestDepth();
var _local2 = "AttackerPath";
this.AttackerPath = this.attachMovie(_local2, _local3, _local4);
if (this.map_layouts[this.game_map]) {
this.AttackerPath.map_layout = this.map_layouts[this.game_map];
this.AttackerPath.map_base = this.map_bases[this.game_map];
}
};
this.GotoHomepage = function () {
this.RemoveEverything();
this.ResetVars();
gotoAndPlay (19);
};
this.NextWave = function () {
this.game_level++;
this.attacker_value = this.game_level;
this.attacker_energy = this.attacker_energy * this.attacker_upgrade;
this.ReelLevel.setValue(this.game_level);
};
this.message_setup = false;
this.message_hints = new Array("Press 1 to build a blue turret", "Press 2 to build a green turret", "Press 3 to build a red turret", "Hold R to to toggle the range view on and off", "Press Q to upgrade the damage of the select turret", "Press W to upgrade the range of the selected turret", "Press E to upgrade the rate of fire of the selected turret", "Press S to sell a turret, for 75% of the cost of the turret and its upgrades", "Bored waiting for the next wave? Press the spacebar to send it now", "Use the left and right arrow keys to select a weapon in the store", "Press B to build the currently selected weapon in the store", "Upgrade the range and fire rate on red towers to active 'Holding Pattern'", "Upgrade the damage and fire rate on blue towers to make them 'Freak Out'", "Green towers can link together in a chain to do much more damage", "Two blue turrets in combo mode will lay down landmines", "One green, red and blue turret in combo mode will fire a BFG", "One red and two blue turrets in combo mode will fire a Nuke", "One red, green and blue turret in combo mode will fire a poison rocket", "Two blue and one red turret in combo mode will lay down a big landmine", "Don't drive tired, make time for a break", "Mayonnaise will go bad if you don't keep it refridgerated after opening", "As long as there is an attacker on screen, rockets will head for it", "Rockets in holding pattern mode will always wait for attackers to hit", "Reading the manual can be beneficial to your life", "Laser turrets work better in long chains", "It's often better to upgrade existing turrets rather than build new ones", "Upgrade a turret's damage all the way to activate it's combo mode", "Several grouped turrets in combo mode can fire many different combo weapons", "The combo weapon that is fired depends on which turrets fires first", "Never lick the live terminal, cross the streams or eat bees.", "It's very hard to convince people to read manuals.", "Seriously, check out how to play, it'll make your game more fun", "Do you have the relevant cable?", "Ooh, lovely. Milk with two sugars please!", "There's more fun games to play on http://playr.co.uk/", "There's more fun games to play on http://playr.co.uk/");
this.messageNew = function (the_msg) {
this.message_box.swapDepths(this.getNextHighestDepth());
this.message_box.messageShow(the_msg);
};
this.messageHint = function () {
var _local4 = this.message_hints.length;
var _local2 = Math.floor(Math.random() * _local4);
var _local3 = "Hint: " + this.message_hints[_local2];
this.messageNew(_local3);
};
if (typeof(this.mesage_box) == "movieclip") {
this.message_box.removeMovieClip();
}
var new_id = "MessageBar";
var new_depth = this.getNextHighestDepth();
var new_name = (new_id + new_depth);
this.message_box = this.attachMovie(new_id, new_name, new_depth);
this.message_box._x = 360;
this.message_box._y = 470;
this.rocketSmoke = function (source_obj) {
if (this.smoke_trails == undefined) {
this.smoke_trails = new Array();
}
var _local3 = "RocketTrail";
var _local4 = this.getNextHighestDepth();
var _local5 = _local3 + _local4;
var _local2 = this.attachMovie(_local3, _local5, _local4);
_local2._x = source_obj._x;
_local2._y = source_obj._y;
_local2._rotation = Math.random() * 360;
this.smoke_trails.push(_local2);
};
this.weaponAvailable = function (new_type) {
var _local4 = false;
var _local5 = false;
var _local3 = false;
if (new_type == "RangeUp") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "DamageUp") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "DamageUpBig") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "RateUp") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "RateUpExchange") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "RangeUpExchange") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
} else if (new_type == "DamageUpBigExchange") {
_local4 = "Turret" + new_type;
_local5 = this.turrets_cost[new_type];
_local3 = new_type;
}
if (_local4 != false) {
this.turrets_available[_local3] = true;
WeaponStore.storeAddItem(_local4, _local5, _local3);
this.messageNew("New weapon available in the weapon store!");
}
};
this.weaponStoreUpdate = function () {
if (this.total_kills == 300) {
this.weaponAvailable("RangeUp");
}
if (this.total_kills == 450) {
this.weaponAvailable("DamageUp");
}
if (this.total_kills == 550) {
this.weaponAvailable("RateUpExchange");
}
if (this.total_kills == 700) {
this.weaponAvailable("RangeUpExchange");
}
if (this.total_kills == 850) {
this.weaponAvailable("RateUp");
}
if (this.total_kills == 1000) {
this.weaponAvailable("DamageUpBig");
}
if (this.total_kills == 1100) {
this.weaponAvailable("DamageUpBigExchange");
}
};
this.NewAttacker = function (the_energy, the_value, wave_num) {
if (this.game_over) {
return(false);
}
this.attacker_count++;
var _local3 = "Attacker" + this.attacker_count;
var _local4 = this.getNextHighestDepth();
var _local5 = "Attacker" + (wave_num % this.attacker_types);
var _local2 = this.attachMovie(_local5, _local3, _local4);
_local2._x = this.Waypoint1._x;
_local2._y = this.Waypoint1._y;
_local2.energy_start = the_energy;
_local2.cash_bounty = the_value;
_local2.waypoint_total = this.waypoint_total;
_local2.move_speed = this.attacker_speed;
_local2.active = true;
_local2.my_name = _local3;
this.attackers[_local3] = _local2;
};
this.KilledAttacker = function (the_att) {
if (this.game_over) {
return(false);
}
var _local5 = the_att.my_name;
this.CashWin(the_att.cash_bounty);
this.Kerching(the_att._x, the_att._y, the_att.cash_bounty);
this.total_kills++;
this.attackers[_local5] = undefined;
this.soundEffect("Death");
var _local3 = new Array();
for (att in this.attackers) {
var _local2 = this.attackers[att]._name;
if (_local2) {
_local3[att] = this.attackers[att];
}
}
this.attackers = _local3;
if (this.total_kills == 500) {
this.messageShow("Five hundred kills! Woot!");
}
if (this.total_kills == 1000) {
this.messageShow("A thousand kills! Keep on going...");
}
if (this.total_kills == 1500) {
this.messageShow("Fifteen hundred kills, is there no stopping you?");
}
if (this.total_kills == 2000) {
this.messageShow("Two thousand kills! Clearly you know what you're doing :)");
}
this.weaponStoreUpdate();
if ((this.total_kills % 157) == 0) {
this.messageHint();
}
this.ReelKills.setValue(this.total_kills);
};
this.BaseHit = function () {
PlayerBase.lifeLost(this.player_lives);
this.player_lives--;
if (this.player_lives == 0) {
this.game_over = true;
this.StopEverything();
var _local3 = this.attachMovie("GameOver", "GameOver", this.getNextHighestDepth());
_local3._x = (_root._width / 2) - (_local3._width / 2);
_local3._y = (_root._height / 2) - (_local3._height / 2);
_local3._alpha = 75;
_local3.total_kills = this.total_kills;
_local3.total_spent = this.total_spent;
_local3.total_shots = this.total_shots;
}
};
this.NewTurret = function (the_x, the_y, the_type) {
if (this.game_over) {
return(false);
}
if (this.game_paused) {
return(false);
}
var _local5 = this.turrets_cost[the_type];
if (!this.Payment(_local5)) {
return(false);
}
var _local7 = this.getNextHighestDepth();
var _local4 = "TurretBuilder";
var _local6 = _local4 + this.new_depth;
var _local3 = _root.attachMovie(_local4, _local6, _local7);
this.turret_builders.push(_local3);
_local3._x = the_x;
_local3._y = the_y;
_local3.turret_type = the_type;
_local3.turret_num = this.turret_counter;
_local3.cash_value = parseInt(_local5);
_local3.active = true;
this.soundEffect("Build");
return(true);
};
this.NewTurretBuilt = function (the_builder) {
var _local3 = new Array();
for (var _local5 in this.turret_builders) {
var _local2 = this.turret_builders[_local5];
if (_local2 != the_builder) {
_local3.push(_local2);
}
}
this.turret_builders = _local3;
the_builder.removeMovieClip();
};
this.TryAndBuild = function (the_type) {
this.CancelBuild();
if (this.game_over) {
return(false);
}
if (this.game_paused) {
return(false);
}
var src = _root;
src.build_clip = src.attachMovie("BuildShape", "BuildShape", src.getNextHighestDepth());
src.build_clip._x = _root._xmouse;
src.build_clip._y = _root._ymouse;
src.build_clip.can_build = false;
src.build_clip.weapon_range = _root.WeaponStore.storeGetRange(the_type);
src.build_clip.startDrag();
src.build_clip.checkBuild = function () {
var _local18 = _root.turrets_cost[the_type];
if (_local18 > _root.player_cash) {
this.can_afford = false;
return(false);
}
src.build_clip._x = _root._xmouse;
src.build_clip._y = _root._ymouse;
this.can_afford = true;
var _local12 = (this.BuildArea._width / 2) + 1;
var _local17 = (this.BuildArea._height / 2) + 1;
var _local9 = _root._xmouse;
var _local10 = _root._ymouse;
if ((((_local9 < 0) or (_local10 < 0)) or (_local9 > 720)) or (_local10 > 470)) {
return(false);
}
if ((((this.BuildArea.hitTest(_root.OutOfBoundsTop) or this.BuildArea.hitTest(_root.OutOfBoundsRight)) or this.BuildArea.hitTest(_root.OutOfBoundsBottom)) or this.BuildArea.hitTest(_root.OutOfBoundsLeft)) or this.BuildArea.hitTest(_root.OutOfBoundsNav)) {
return(false);
}
var _local3 = new Array();
_local3.push(Array(_local9, _local10 + _local17));
_local3.push(Array(_local9, _local10 - _local17));
_local3.push(Array(_local9 + _local12, _local10));
_local3.push(Array(_local9 - _local12, _local10));
var _local14 = 0.850903524534118 * _local12;
var _local13 = 0.52532198881773 * _local12;
_local3.push(Array(_local9 + _local14, _local10 + _local13));
_local3.push(Array(_local9 + _local14, _local10 - _local13));
_local3.push(Array(_local9 - _local14, _local10 + _local13));
_local3.push(Array(_local9 - _local14, _local10 - _local13));
var _local11 = this.BuildArea._width;
var _local8 = _root.turrets;
_local8 = _local8.concat(_root.turret_builders);
for (var _local16 in _local8) {
var _local6 = _local8[_local16];
var _local7 = _root.DistanceBetween(this, _local6);
if (_local7 < _local11) {
return(false);
}
}
for (var _local15 in _local3) {
var _local5 = _local3[_local15][0];
var _local4 = _local3[_local15][1];
if (_root.AttackerPath.hitTest(_local5, _local4, true)) {
return(false);
}
if (_root.PlayerBase.hitTest(_local5, _local4, true)) {
return(false);
}
}
return(true);
};
src.build_clip.onEnterFrame = function () {
var _local2 = this.checkBuild();
this.can_build = _local2;
};
src.build_clip.onPress = function () {
var _local3 = this.checkBuild();
if (_local3 == true) {
_root.NewTurret(_root._xmouse, _root._ymouse, the_type);
}
this.stopDrag();
removeMovieClip(this);
};
};
this.CancelBuild = function () {
_root.build_clip.stopDrag();
removeMovieClip(_root.build_clip);
};
this.WeaponFired = function () {
this.total_shots++;
};
this.rangeShow = function (the_turret) {
if (!the_turret) {
return(false);
}
if (this.the_range != false) {
return(true);
}
if (the_turret.range_effective > the_turret.weapon_range) {
var _local5 = this.getNextHighestDepth();
var _local4 = "TurretRangeEffective";
var _local6 = _local4 + _local5;
var _local3 = this.attachMovie(_local4, _local6, _local5);
_local3._width = the_turret.range_effective * 2;
_local3._height = the_turret.range_effective * 2;
_local3._x = the_turret._x;
_local3._y = the_turret._y;
this.the_range_effective = _local3;
}
var _local5 = this.getNextHighestDepth();
var _local4 = "TurretRange";
var _local6 = _local4 + _local5;
this.the_range = this.attachMovie(_local4, _local6, _local5);
this.the_range._width = the_turret.weapon_range * 2;
this.the_range._height = the_turret.weapon_range * 2;
this.the_range._x = the_turret._x;
this.the_range._y = the_turret._y;
};
this.rangeHide = function () {
if (this.the_range != false) {
removeMovieClip(this.the_range);
removeMovieClip(this.the_range_effective);
this.the_range = false;
}
};
this.rangeUpdate = function () {
if (this.the_range != false) {
this.rangeHide();
this.rangeShow(this.cur_turret);
}
};
this.TurretSell = function () {
if (this.game_over) {
return(false);
}
if (this.cur_turret == false) {
return(false);
}
this.rangeHide();
the_turret = this.cur_turret;
the_turret._visible = false;
the_turret.onSell();
var _local6 = the_turret.cash_value;
var _local5 = Math.ceil(_local6 * this.turret_resale);
this.Kerching(the_turret._x, the_turret._y, _local5);
this.CashWin(_local5);
this.CashUnspend(_local5);
var _local3 = new Array();
for (var _local4 in this.turrets) {
var _local2 = this.turrets[_local4];
if (_local2 != the_turret) {
_local2.notifyGone(the_turret);
_local3.push(_local2);
}
}
this.turrets = _local3;
the_turret.removeMovieClip();
this.cur_turret = false;
this.TurretHighlightHide();
return(true);
};
this.TurretGetLayout = function () {
var _local4 = new Array();
for (var _local5 in this.turrets) {
var _local3 = this.turrets[_local5];
var _local2 = new Object();
_local2.x = _local3._x;
_local2.y = _local3._y;
_local2.name = _local3._name;
_local2.turret_type = _local3.turret_type;
_local2.weapon_rotation = _local3.Weapon._rotation;
_local2.upgrade_damage = _local3.upgrade_damage_level;
_local2.upgrade_range = _local3.upgrade_range_level;
_local2.upgrade_rate = _local3.upgrade_rate_level;
_local2.weapon_damage = _local3.weapon_damage;
_local2.weapon_range = _local3.weapon_range;
_local2.weapon_rate = _local3.weapon_rate;
_local2.weapon_fire_count = _local3.weapon_fire_count;
_local2.weapon_kill_count = _local3.weapon_kill_count;
_local4.push(_local2);
}
return(_local4);
};
this.TurretHighlightShow = function () {
if (!this.turret_highlight) {
var _local2 = "TurretHighlight";
var _local3 = this.getNextHighestDepth();
var _local5 = _local2 + _local3;
var _local4 = this.attachMovie(_local2, _local5, _local3);
this.turret_highlight = _local4;
}
this.turret_highlight._x = this.cur_turret._x;
this.turret_highlight._y = this.cur_turret._y;
};
this.TurretHighlightHide = function () {
if (this.turret_highlight) {
this.turret_highlight.removeMovieClip();
}
this.turret_highlight = false;
};
this.TurretFired = function (the_bullet) {
this.bullets.push(the_bullet);
};
this.Payment = function (amount) {
if (this.game_over) {
return(false);
}
if (this.player_cash >= amount) {
this.player_cash = this.player_cash - amount;
this.total_spent = this.total_spent + amount;
CashUpdate();
return(true);
}
return(false);
};
this.CanAfford = function (amount) {
if (this.game_over) {
return(false);
}
if (this.player_cash >= amount) {
return(true);
}
return(false);
};
this.CashWin = function (amount) {
this.player_cash = this.player_cash + amount;
CashUpdate();
};
this.CashUpdate = function () {
this.Cash.text = "$" + this.player_cash;
this.ReelCash.setValue(this.player_cash);
};
this.CashUnspend = function (amount) {
this.total_spent = this.total_spent - amount;
};
this.Kerching = function (the_x, the_y, amount) {
var _local3 = this.getNextHighestDepth();
var _local4 = "Kerching" + _local3;
var _local5 = "CashEarned";
var _local2 = this.attachMovie(_local5, _local4, _local3);
_local2.amount = amount;
_local2._x = the_x;
_local2._y = the_y;
return(_local2);
};
this.degreesToTarget = function (point_from, point_to) {
var _local2 = this.radiansToTarget(point_from, point_to);
return(_local2 * 57.2957795130823);
};
this.radiansToTarget = function (from, to) {
return(Math.atan2(to._y - from._y, to._x - from._x));
};
this.DistanceBetween = function (obj_a, obj_b) {
var _local2 = obj_b._x - obj_a._x;
var _local1 = obj_b._y - obj_a._y;
return(Math.sqrt((_local2 * _local2) + (_local1 * _local1)));
};
this.trigForwardAtAngle = function (theta, hyp) {
var _local2 = theta * (Math.PI/180);
var _local1 = new Object();
_local1.x = Math.cos(_local2) * hyp;
_local1.y = Math.sin(_local2) * hyp;
return(_local1);
};
this.dec2hex = function (dec) {
var _local1 = "0123456789ABCDEF";
if (dec > 15) {
pos1 = _local1.charAt(Math.floor(dec / 16));
pos2 = _local1.charAt(dec - (pos1 * 16));
} else {
pos1 = 0;
pos2 = _local1.charAt(dec);
}
hex = pos1 + pos2;
return(hex);
};
this.sound_muted = true;
MuteButton._visible = true;
MuteButton.soundMute();
this.sounds = new Array();
this.music = false;
if (this.load_sounds != true) {
this.sound_muted = true;
MuteButton._visible = false;
}
this.musicPlay = function () {
if (this.music == false) {
this.musicSetup();
}
if (this.game_over != true) {
this.music.soundStart();
}
};
this.musicSetup = function () {
if (typeof(this.music) == "movieclip") {
this.music.removeMovieClip();
}
this.music = this.soundNew("MusicImperial");
this.music.playlist_loop = true;
this.music.playlist = new Array("MusicPredator");
};
this.musicFadeStop = function () {
this.music.soundFadeAndStop();
};
this.musicPause = function () {
this.music.soundPause();
};
this.musicRewind = function () {
this.music.soundRewind();
};
this.musicNext = function () {
this.music.soundNextTrack();
};
this.musicStop = function () {
this.music.soundStop();
};
this.soundNew = function (the_track) {
var _local5 = "SoundPlayer";
var _local6 = this.getNextHighestDepth();
var _local8 = _local5 + _local6;
var _local4 = this.attachMovie(_local5, _local8, _local6);
var _local2 = 0;
var _local3 = the_track;
if (_local3 == "RocketFire") {
_local2 = 6;
}
if (_local3 == "BangSmall") {
_local2 = 6;
}
if (_local3 == "Laser") {
_local2 = 6;
}
if (_local3 == "Death") {
_local2 = 10;
}
if (_local3 == "Build") {
_local2 = 4;
}
var _local7 = the_track;
if (_local2 > 0) {
_local7 = (_local3 + "-") + (Math.floor(Math.random() * _local2) + 1);
}
_local4.sound = _local7;
return(_local4);
};
this.soundEffect = function (the_sound) {
if (this.sound_muted == false) {
this.sounds.push(this.soundNew(the_sound));
}
var _local3 = new Array();
for (var _local4 in this.sounds) {
var _local2 = this.sounds[_local4];
if (_local2.duration > 0) {
_local3.push(_local2);
}
}
this.sounds = _local3;
};
this._effectNew = function () {
var _local2 = "VisualEffect";
var _local3 = this.getNextHighestDepth();
var _local5 = _local2 + _local3;
var _local4 = this.attachMovie(_local2, _local5, _local3);
return(_local4);
};
this.effectFadeOut = function (the_obj) {
var _local2 = this._effectNew();
_local2.target_alpha = 0;
_local2.target_obj = the_obj;
return(_local2);
};
this.effectFadeIn = function (the_obj) {
var _local2 = this._effectNew();
_local2.target_alpha = 100;
_local2.target_obj = the_obj;
return(_local2);
};
this.effectWait = function (the_obj) {
var _local2 = this._effectNew();
_local2.target_obj = the_obj;
_local2.wait_time = 1000;
return(_local2);
};
_global.ASProf = {};
ASProf.init = function () {
this._newid = -1;
this._totalTime = 0;
this._methods = {};
this._methodsArr = new this.Array();
this._segmentIDs = {};
this._openSamples = new this.Array();
};
ASProf.begin = function (s) {
if (s == null) {
return(false);
}
if (!this._segmentIDs[s]) {
this._segmentIDs[s] = this._addMethod(s);
}
this._begin(this._segmentIDs[s]);
return(true);
};
ASProf.end = function () {
var _local2 = this._openSamples.pop();
var _local3 = getTimer() - _local2.startTime;
_local2.method.totalTime = _local2.method.totalTime + _local3;
_local2.method.selfTime = _local2.method.selfTime + _local3;
if (_local2._parent) {
_local2._parent.method.selfTime = _local2._parent.method.selfTime - _local3;
} else {
ASProf._totalTime = ASProf._totalTime + _local3;
}
};
ASProf.profile = function (s) {
var f = eval (s);
if (!f) {
return(false);
}
var id = this._addMethod(s);
Set(s, function () {
ASProf._begin(id);
var _local3 = f.apply(this, arguments);
ASProf.end();
return(_local3);
});
ASSetPropFlags(f, null, 0, 1);
for (var i in f) {
Set((s + ".") + i, f[i]);
}
return(true);
};
ASProf.profileObject = function (s) {
var o = eval (s);
if (!o) {
return(false);
}
ASSetPropFlags(o, null, 0, 5);
for (var i in o) {
if (typeof(o[i]) == "function") {
this.profile((s + ".") + i);
}
}
};
ASProf.getFlatGraph = function (order) {
if (order == null) {
order = "selfTime,calls,name";
}
var _local3 = "Flat profile:\n\nEach sample counts as 0.001 seconds.\n % cumulative self self total\n time seconds seconds calls ms/call ms/call name\n";
var _local6 = 0;
this._methodsArr.sortMultiple(order);
var _local5 = this._methodsArr.length;
while (_local5-- , _local5 > -1) {
var _local2 = this._methodsArr[_local5];
if (!_local2.calls) {
} else {
_local3 = _local3 + this._formatNumber((_local2.selfTime ? ((100 * _local2.selfTime) / this._totalTime) : 0), 3, 6);
var _local4 = _local2.selfTime / 1000;
_local6 = _local6 + _local4;
_local3 = _local3 + this._formatNumber(_local6, 3, 10);
_local3 = _local3 + this._formatNumber(_local4, 3, 9);
_local3 = _local3 + this._formatNumber(_local2.calls, 0, 9);
_local3 = _local3 + this._formatNumber(_local2.selfTime / _local2.calls, 3, 9);
_local3 = _local3 + this._formatNumber(_local2.totalTime / _local2.calls, 3, 9);
_local3 = _local3 + ((" " + _local2.name) + newline);
}
}
return(_local3);
};
ASProf._addMethod = function (s) {
var _local2 = ++this._newid;
this._methods[_local2] = new this.Method(s);
this._methodsArr.push(this._methods[_local2]);
return(_local2);
};
ASProf._begin = function (id) {
var _local3 = this._methods[id];
var _local2 = new this.Sample(_local3);
_local3.calls++;
_local2._parent = this._openSamples[this._openSamples.length - 1];
this._openSamples.push(_local2);
};
ASProf._formatNumber = function (n, d, p) {
var _local1 = new ASProf.String(n);
var _local4 = _local1.indexOf(".");
if (_local4 > -1) {
_local1 = _local1.slice(0, (_local4 + d) + 1);
}
var _local2 = _local1.length;
while ((_local2++) < p) {
_local1 = " " + _local1;
}
return(_local1);
};
ASProf.Array = ASconstructor(252, 0);
ASSetNative(ASProf.Array.prototype, 252, "push,pop,concat,shift,unshift,slice,join,splice,toString,sort,reverse,sortOn", 1);
ASProf.Array.prototype.sortMultiple = function (l) {
var cmp = function (a, b, l) {
var _local3 = ASProf.Array.prototype.shift.apply(l);
var _local2 = a[_local3];
var _local1 = b[_local3];
return(((_local2 < _local1) ? -1 : (((_local2 > _local1) ? 1 : ((l.length ? (cmp(a, b, l)) : 0))))));
};
this.sort(function (a, b) {
return(cmp(a, b, ASProf.String.prototype.split.call(l, ",")));
});
};
ASSetPropFlags(ASProf.Array.prototype, null, 3, 7);
ASProf.String = ASconstructor(251, 0);
ASSetNative(ASProf.String.prototype, 251, "valueOf,toString,toUpperCase,toLowerCase,charAt,charCodeAt,concat,indexOf,lastIndexOf,slice,subsring,split,substr,fromCharCode", 1);
ASSetPropFlags(ASProf.String.prototype, null, 3, 7);
ASProf.Method = function (s) {
this.name = s;
this.calls = 0;
this.selfTime = 0;
this.totalTime = 0;
};
ASProf.Sample = function (m) {
this.method = m;
this._parent = null;
this.startTime = getTimer();
};
ASSetPropFlags(ASProf, null, 7);
ASSetPropFlags(_global, "ASProf", 7);
ASProf.init();
this.profileThis = function (thing) {
};
this.profileDump = function () {
};
this.profileThis(this);
var map_layouts = new Array();
var map_bases = new Array();
map_bases.map1 = new Object({x:574.9, y:75.7});
map_layouts.map1 = new Array(new Object({x:0, y:446.2}), new Object({x:84, y:382}), new Object({x:300.45, y:382}), new Object({x:465.85, y:223.6}), new Object({x:636.9, y:223.6}), new Object({x:636.9, y:382}), new Object({x:465.85, y:382}), new Object({x:300.4, y:223.6}), new Object({x:192.2, y:223.6}), new Object({x:192.2, y:35.8}), new Object({x:84, y:35.8}), new Object({x:84, y:129.1}), new Object({x:574.4, y:129.1}));
map_bases.map2 = new Object({x:254.6, y:156.6});
map_layouts.map2 = new Array(new Object({x:655, y:0}), new Object({x:655, y:410}), new Object({x:65, y:410}), new Object({x:65, y:65}), new Object({x:580, y:65}), new Object({x:580, y:335}), new Object({x:140, y:335}), new Object({x:140, y:140}), new Object({x:505, y:140}), new Object({x:505, y:260}), new Object({x:310, y:260}), new Object({x:310, y:240}));
map_bases.map3 = new Object({x:48.2, y:323.2});
map_layouts.map3 = new Array(new Object({x:715, y:65}), new Object({x:583.05, y:65}), new Object({x:583.05, y:390.55}), new Object({x:333.65, y:390.55}), new Object({x:332.85, y:254.85}), new Object({x:456.6, y:254.85}), new Object({x:456.6, y:65}), new Object({x:110.1, y:65}), new Object({x:110.1, y:254.85}), new Object({x:233.35, y:254.85}), new Object({x:233.35, y:353}), new Object({x:147.2, y:353}));
map_bases.map4 = new Object({x:581.2, y:332.6});
map_layouts.map4 = new Array(new Object({x:0, y:209.1}), new Object({x:48.5, y:144.55}), new Object({x:100.35, y:88.95}), new Object({x:161.2, y:50.5}), new Object({x:225.5, y:41.55}), new Object({x:287.55, y:89.6}), new Object({x:308.5, y:176.3}), new Object({x:316, y:273.8}), new Object({x:300.5, y:367.4}), new Object({x:212, y:407.45}), new Object({x:125.85, y:386.45}), new Object({x:75.5, y:337.4}), new Object({x:86.85, y:258.8}), new Object({x:136, y:201.8}), new Object({x:213.5, y:171.8}), new Object({x:333.55, y:177.35}), new Object({x:394.1, y:198.8}), new Object({x:456.05, y:230.2}), new Object({x:512.8, y:266.95}), new Object({x:580.05, y:261}), new Object({x:629.25, y:224.9}), new Object({x:653.4, y:169.3}), new Object({x:659.5, y:110.7}), new Object({x:614.5, y:55.9}), new Object({x:535.25, y:54.6}), new Object({x:459.8, y:99.25}), new Object({x:422.2, y:171.6}), new Object({x:406.05, y:305.3}), new Object({x:446.35, y:354.9}), new Object({x:524.5, y:376}), new Object({x:580.9, y:376}));
map_bases.map5 = new Object({x:587.2, y:249.8});
map_layouts.map5 = new Array(new Object({x:0, y:302.25}), new Object({x:133.8, y:302.25}), new Object({x:156.55, y:283.45}), new Object({x:186.8, y:274.45}), new Object({x:217.05, y:302.25}), new Object({x:263.85, y:302.25}), new Object({x:294.1, y:366.15}), new Object({x:334.8, y:52.2}), new Object({x:363.6, y:415.75}), new Object({x:398.3, y:302.25}), new Object({x:470.65, y:302.25}), new Object({x:491.85, y:274.45}), new Object({x:537.15, y:262.45}), new Object({x:567.35, y:302.25}), new Object({x:585.65, y:302.25}));
map_bases.map6 = new Object({x:564.6, y:356.8});
map_layouts.map6 = new Array(new Object({x:0, y:43.7}), new Object({x:215, y:43.7}), new Object({x:215, y:277.8}), new Object({x:515, y:277.8}), new Object({x:515, y:43.7}), new Object({x:215, y:43.7}), new Object({x:515, y:277.8}), new Object({x:440, y:351.95}), new Object({x:365, y:426.1}), new Object({x:290, y:351.95}), new Object({x:215, y:277.8}), new Object({x:515, y:43.7}), new Object({x:639.85, y:43.7}), new Object({x:639.85, y:368.8}));
map_bases.map7 = new Object({x:24.6, y:356.8});
map_layouts.map7 = new Array(new Object({x:639.85, y:0}), new Object({x:639.85, y:211.85}), new Object({x:462.75, y:211.85}), new Object({x:462.75, y:70.55}), new Object({x:559.8, y:70.55}), new Object({x:559.8, y:381.5}), new Object({x:255.95, y:381.5}), new Object({x:258.3, y:123.15}), new Object({x:404.3, y:123.15}), new Object({x:404.3, y:296.8}), new Object({x:164.3, y:296.8}), new Object({x:164.3, y:40.55}), new Object({x:347.55, y:40.55}), new Object({x:345.85, y:205.85}), new Object({x:97.25, y:205.85}), new Object({x:97.25, y:368.15}));
map_bases.map8 = new Object({x:324, y:191.8});
map_layouts.map8 = new Array(new Object({x:0, y:233.95}), new Object({x:200.5, y:233.95}), new Object({x:200.5, y:54.05}), new Object({x:84.25, y:54.05}), new Object({x:84.25, y:162.3}), new Object({x:636.65, y:162.3}), new Object({x:636.65, y:54.05}), new Object({x:520.4, y:54.05}), new Object({x:520.4, y:415.5}), new Object({x:636.65, y:415.5}), new Object({x:636.65, y:308.8}), new Object({x:84.25, y:308.8}), new Object({x:84.25, y:415.5}), new Object({x:200.5, y:415.5}), new Object({x:200.5, y:233.95}), new Object({x:321.8, y:233.95}));
map_bases.standard = map_bases.map1;
map_layouts.standard = map_layouts.map1;
this.stop();
if (this.view_layout) {
this.gotoAndPlay("View");
} else {
this.ResetGame();
}
Instance of Symbol 455 MovieClip "Keyboard" in Frame 44
onClipEvent (keyDown) {
var theKey = Key.getCode();
var the_type = false;
if (theKey == 49) {
the_type = "Blue";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 50) {
the_type = "Green";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 51) {
the_type = "Red";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 52) {
the_type = "RangeUp";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 53) {
the_type = "DamageUp";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 54) {
the_type = "RateUp";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 55) {
the_type = "DamageUpBig";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 56) {
the_type = "DamageUpBigExchange";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 57) {
the_type = "RangeUpExchange";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 48) {
the_type = "RateUpExchange";
if (this._parent.turrets_available[the_type] == true) {
this._parent.TryAndBuild(the_type);
}
} else if (theKey == 80) {
if (_root.game_paused == undefined) {
_root.game_paused = false;
}
if (_root.game_paused == true) {
_root.game_paused = false;
} else {
_root.game_paused = true;
}
} else if (theKey == 81) {
this._parent.TurretUpgrade.tryUpgradeDamage();
} else if (theKey == 87) {
this._parent.TurretUpgrade.tryUpgradeRange();
} else if (theKey == 68) {
} else if (theKey == 69) {
this._parent.TurretUpgrade.tryUpgradeRate();
} else if (theKey == 70) {
if (_root.cur_turret != false) {
trace("---=== Turret Dump ===---");
trace("Dumping: " + _root.cur_turret);
trace(" ");
for (var i in _root.cur_turret) {
var the_var = _root.cur_turret[i];
var the_type = typeof(the_var);
if (typeof(the_var) == "function") {
} else if (typeof(the_var) == "object") {
} else if (typeof(the_var) == "movieclip") {
} else {
var space = "";
var key = new String(i);
var len = key.length;
var i = len;
while (i < 30) {
key = key + " ";
i++;
}
trace((key + " > ") + the_var);
}
}
}
} else if (theKey == 71) {
} else if (theKey == 72) {
this._parent.messageHint();
} else if (theKey == 82) {
if (this._parent.the_range != false) {
this._parent.rangeHide();
} else {
this._parent.rangeShow(this._parent.cur_turret);
}
} else if (theKey == 83) {
this._parent.TurretSell();
} else if (theKey == 32) {
this._parent.WaveController.SendWave();
} else if (theKey == 27) {
this._parent.CancelBuild();
} else if (theKey == 39) {
this._parent.WeaponStore.storeNextItem();
} else if (theKey == 37) {
this._parent.WeaponStore.storePrevItem();
} else if (theKey == 13) {
this._parent.WeaponStore.storeBuyItem();
} else if (theKey == 66) {
this._parent.WeaponStore.storeBuyItem();
}
}
onClipEvent (keyUp) {
var theKey = Key.getCode();
if (theKey == 82) {
}
}
Frame 49
this.stop();
this.game_map = false;
this.waypoint_total = 16;
this.ResetGame();
Frame 54
this.stop();
this.StopEverything();
this.RemoveEverything();
this.ResetVars();
var loaded_layout = false;
ViewLoading._visible = false;
this.game_over = true;
this.player_cash = 0;
var lv = new LoadVars();
lv.id = this.view_layout;
var lv_into = new LoadVars();
lv_into.onLoad = function (success) {
if (success) {
if (this.ok == "1") {
Score.text = this.score;
Spent.text = "$" + this.spent;
Kills.text = this.kills;
Player.text = this.player;
_root.game_map = this.map;
loaded_layout = JSON.parse(this.layout);
ViewLoading._visible = false;
_root.RoadCreate();
play();
}
}
};
ViewLoading._visible = true;
var lv_url = (this.score_url + "view_layout.php");
lv.sendAndLoad(lv_url, lv_into, "GET");
this.LayoutLoad = function (layout) {
var _local5 = JSON.parse(layout);
for (var _local6 in _local5) {
turret = _local5[_local6];
var _local3 = "Turret" + _local6;
var _local4 = "Turret" + turret.turret_type;
var _local2 = _root.attachMovie(_local4, _local3, _root.getNextHighestDepth());
_local2._x = turret.x;
_local2._y = turret.y;
_local2.active = false;
_local2.turret_type = turret.turret_type;
_local2.turret_num = _local6;
_local2.upgrade_damage_level = turret.upgrade_damage;
_local2.upgrade_range_level = turret.upgrade_range;
_local2.upgrade_rate_level = turret.upgrade_rate;
_local2.weapon_damage = turret.weapon_damage;
_local2.weapon_range = turret.weapon_range;
_local2.weapon_rate = turret.weapon_rate;
_local2.Weapon._rotation = turret.weapon_rotation;
_root.turrets.push(_local2);
}
};
Frame 55
this.stop();
var new_list = new Array();
for (var i in this.loaded_layout) {
var the_tur = this.loaded_layout[i];
var the_name = new String(the_tur.name);
var the_type = the_tur.turret_type;
var parts = the_name.split(the_type);
var tur_num = parts[1];
if (isNaN(tur_num)) {
var parts = the_name.split("Turret");
tur_num = parts[1];
}
the_tur.tur_num = parseInt(tur_num);
new_list.push(the_tur);
}
this.loaded_layout = new_list;
this.loaded_layout.sortOn("tur_num", Array.NUMERIC);
this.view_i = 0;
this.view_end = this.loaded_layout.length;
this.play();
Frame 56
this.stop();
turret = this.loaded_layout[this.view_i];
var new_name = ("Turret" + this.view_i);
var new_type = ("Turret" + turret.turret_type);
var new_turret = _root.attachMovie(new_type, new_name, _root.getNextHighestDepth());
new_turret._x = turret.x;
new_turret._y = turret.y;
new_turret.active = false;
new_turret.turret_type = turret.turret_type;
new_turret.turret_num = i;
new_turret.upgrade_damage_level = turret.upgrade_damage;
new_turret.upgrade_range_level = turret.upgrade_range;
new_turret.upgrade_rate_level = turret.upgrade_rate;
new_turret.weapon_damage = turret.weapon_damage;
new_turret.weapon_range = turret.weapon_range;
new_turret.weapon_rate = turret.weapon_rate;
new_turret.Weapon._rotation = turret.weapon_rotation;
_root.turrets.push(new_turret);
this.view_i++;
this.play();
Frame 58
this.stop();
if (this.view_i >= this.view_end) {
this.gotoAndPlay("ViewDone");
} else {
this.gotoAndPlay("ViewBuild");
}
Frame 59
this.stop();
Symbol 1 MovieClip [VisualEffect] Frame 1
this.stop();
if (this.target_x == undefined) {
this.target_x = false;
}
if (this.target_y == undefined) {
this.target_y = false;
}
if (this.target_alpha == undefined) {
this.target_alpha = false;
}
if (this.target_obj == undefined) {
this.target_obj = false;
}
if (this.wait_time == undefined) {
this.wait_time = false;
}
if (this.move_speed == undefined) {
this.move_speed = 1000;
}
if (this.then_goto == undefined) {
this.then_goto = false;
}
if (this.then_wait == undefined) {
this.then_wait = false;
}
if (this.then_fade == undefined) {
this.then_fade = false;
}
this.done = false;
this.time_last = new Date();
this.setup_done = false;
this.then_done = false;
if (this.target_obj != false) {
if (this.wait_time != false) {
this.gotoAndPlay("Wait");
} else {
this.gotoAndPlay("Move");
}
} else {
this.removeMovieClip();
}
Symbol 1 MovieClip [VisualEffect] Frame 2
this.stop();
if (this.setup_done == false) {
this.wait_until = this.time_last.getTime() + parseFloat(this.wait_time);
this.setup_done = true;
}
var date_now = new Date();
var time_now = date_now.getTime();
if (time_now >= this.wait_until) {
this.gotoAndPlay("Then");
} else {
this.play();
}
Symbol 1 MovieClip [VisualEffect] Frame 3
this.stop();
this.gotoAndPlay("Wait");
Symbol 1 MovieClip [VisualEffect] Frame 4
this.stop();
if (this.setup_done == false) {
this.orig_x = this.target_obj._x;
this.orig_y = this.target_obj._y;
this.orig_alpha = this.target_obj._alpha;
this.dist_x = this.target_x - this.orig_x;
this.dist_y = this.target_y - this.orig_y;
this.dist_alpha = this.target_alpha - this.orig_alpha;
this.time_last = new Date();
this.time_total = 0;
this.setup_done = true;
}
var date_now = new Date();
var time_now = date_now.getTime();
var time_last = this.time_last.getTime();
var time_diff = (time_now - time_last);
this.time_last = date_now;
var then_ready = true;
this.time_total = this.time_total + time_diff;
var pct_done = (this.time_total / this.move_speed);
if (this.target_alpha >= 0) {
if (pct_done < 1) {
var new_alpha = (this.orig_alpha + (this.dist_alpha * pct_done));
this.target_obj._alpha = new_alpha;
then_ready = false;
} else {
this.target_obj._alpha = this.target_alpha;
}
}
if (this.target_x or this.target_y) {
if (pct_done < 100) {
var new_x = (this.orig_x + (this.dist_x * pct_done));
var new_y = (this.orig_y + (this.dist_y * pct_done));
this.target_obj._x = new_x;
this.target_obj._y = new_y;
then_ready = false;
} else {
this.target_obj._x = this.target_x;
this.target_obj._y = this.target_y;
}
}
if (then_ready == true) {
this.gotoAndPlay("Then");
} else {
this.play();
}
Symbol 1 MovieClip [VisualEffect] Frame 5
this.stop();
this.gotoAndPlay("Move");
Symbol 1 MovieClip [VisualEffect] Frame 6
this.stop();
this.onThen();
this.removeMovieClip();
Symbol 2 MovieClip [SoundPlayer] Frame 1
if (this.playlist == undefined) {
this.playlist = new Array();
}
if (this.playlist_loop == undefined) {
this.playlist_loop = false;
}
if (this.sound == undefined) {
this.sound = false;
}
if (this.volume_start == undefined) {
this.volume_start = 100;
}
if (this.volume_fade == undefined) {
this.volume_fade = 5;
}
if (this.then_stop == undefined) {
this.then_stop = false;
}
this.cur_track = false;
this.sound_playing = false;
this.soundNextTrack = function () {
trace(((this + "=") + this.sound) + ": next track");
this.gotoAndPlay("FadeOut");
};
this.soundFadeAndStop = function () {
this.then_stop = true;
this.gotoAndPlay("FadeOut");
};
this.soundStart = function () {
if (this.sound_playing == true) {
this.gotoAndPlay("NowPlaying");
} else {
this.gotoAndPlay("Play");
}
};
this.soundPause = function () {
this.sound_pos = this.cur_track.position;
this.gotoAndStop("Stopped");
};
this.soundRewind = function () {
this.cur_track.stop();
this.sound_pos = 0;
this.soundStart();
};
this.soundStop = function () {
this.cur_track.stop();
this.gotoAndPlay("Stopped");
};
this.stop();
if (this.sound != false) {
this.playlist.unshift(this.sound);
}
if (this.playlist.length == 0) {
this.removeMovieClip();
} else {
this.soundStart();
}
Symbol 2 MovieClip [SoundPlayer] Frame 4
this.stop();
this.cur_track.stop();
Symbol 2 MovieClip [SoundPlayer] Frame 7
this.stop();
var the_track = this.playlist.shift();
if (this.playlist_loop == true) {
this.playlist.push(the_track);
}
this.cur_track = new Object(_root[the_track]);
this.cur_track.from = this;
this.sound_playing = true;
this.sound_pos = 0;
this.cur_track.onSoundComplete = function () {
this.from.removeMovieClip();
};
this.play();
Symbol 2 MovieClip [SoundPlayer] Frame 10
this.stop();
this.cur_track.setVolume(this.volume_start);
var start_at = this.sound_pos;
if (start_at > 0) {
start_at = start_at / 1000;
} else {
start_at = 0;
}
this.cur_track.start();
Symbol 2 MovieClip [SoundPlayer] Frame 13
this.stop();
var the_volume = this.cur_track.getVolume();
var ended = false;
if (this.cur_track.position == this.cur_track.duration) {
ended = true;
}
if (the_volume > 0) {
this.cur_track.setVolume(0);
this.play();
} else {
trace(((this + "=") + this.sound) + ": Stop");
if (this.then_stop == true) {
trace(((this + "=") + this.sound) + ": Stop");
this.then_stop == false;
this.sound_pos = 0;
this.sound_playing = false;
} else if (this.playlist.length > 0) {
trace(((this + "=") + this.sound) + ": Next");
} else {
trace(((this + "=") + this.sound) + ": Halt and quit");
}
}
Symbol 2 MovieClip [SoundPlayer] Frame 16
this.gotoAndPlay("FadeOut");
Symbol 3 MovieClip [WeaponController] Frame 1
if (this.weapon_target == undefined) {
this.weapon_target = false;
}
if (this.weapon_range == undefined) {
this.weapon_range = 100;
}
if (this.debug_on == undefined) {
this.debug_on = false;
}
this.weapon = this._parent;
this.debug = function (msg) {
if (this.debug_on == true) {
trace((this + ": ") + msg);
}
};
this.acquire = function (tg_type) {
if (this.targetInRange()) {
return(true);
}
var _local6 = 2000;
var _local7 = 1E23;
var _local8;
var _local9;
var _local10 = this.attackerList();
var _local12 = new Array();
for (var _local11 in _local10) {
var _local3 = _root[_local11];
var _local4 = this.getRange(_local3);
var _local5 = _local3.energy;
if (_local4 <= this.weapon_range) {
if (_local4 < _local6) {
_local6 = _local4;
_local8 = _local3;
}
if (_local5 < _local7) {
_local7 = _local5;
_local9 = _local3;
}
}
}
if (tg_type == "weak") {
if (_local9 != undefined) {
this.weapon_target = _local9;
return(true);
}
} else if (_local8 != undefined) {
this.weapon_target = _local8;
return(true);
}
return(false);
};
this.findAttackerInRange = function (the_type, in_range) {
var _local6 = 1E18;
var _local7 = 1E18;
var _local8;
var _local9;
var _local10 = this.attackerList();
var _local14 = new Array();
for (var _local11 in _local10) {
var _local4 = _root[_local11];
var _local3 = this.getRange(_local4);
var _local5 = _local4.energy;
this.debug((((_local11 + " r=") + _local3) + " e=") + _local5);
if ((!isNaN(_local3)) and (_local3 <= in_range)) {
if (_local3 < _local6) {
_local6 = _local3;
_local8 = _local4;
}
if (_local5 < _local7) {
_local7 = _local5;
_local9 = _local4;
}
}
}
var _local13 = false;
if (the_type == "weak") {
if (_local9 != undefined) {
_local13 = _local9;
}
} else if (_local8 != undefined) {
_local13 = _local8;
}
return(_local13);
};
this.getRange = function (the_target) {
var _local3 = the_target._x - this.weapon._x;
var _local2 = the_target._y - this.weapon._y;
return(Math.sqrt((_local3 * _local3) + (_local2 * _local2)));
};
this.attackerList = function () {
return(_root.attackers);
};
this.targetInRange = function () {
if (this.targetExists()) {
var _local2 = this.getRange(this.weapon_target);
if (_local2 < this.weapon_range) {
return(true);
}
}
return(false);
};
this.pointAtTarget = function (point_from, to_point) {
if (this.targetExists()) {
var _local3 = this.angleToTarget(point_from);
var _local4 = _local3 * 57.2957795130823;
var _local2 = _local4;
to_point._rotation = _local2;
return(_local2);
}
return(false);
};
this.angleToTarget = function (point_from) {
var _local2 = false;
if (this.targetExists()) {
var _local4 = point_from._x;
var _local6 = point_from._y;
var _local3 = this.weapon_target._x;
var _local5 = this.weapon_target._y;
_local2 = Math.atan2(_local5 - _local6, _local3 - _local4);
}
return(_local2);
};
this.targetExists = function () {
if (typeof(this.weapon_target) == "movieclip") {
if (this.weapon_target._name != undefined) {
return(true);
}
}
return(false);
};
_root.profileThis(this.acquire);
this.stop();
Symbol 4 MovieClip [RocketManager] Frame 1
this.stop();
this.bullet_damage = this._parent.bullet_damage;
this.bullet_speed = this._parent.bullet_speed;
this.bullet_rotation = this._parent.bullet_rotation;
this.bullet_target = this._parent.bullet_target;
this.bullet_no_rotate = this._parent.bullet_no_rotate;
this.holding_pattern = this._parent.holding_pattern;
this.holding_initially = this._parent.holding_initially;
this.impact_range = this._parent.impact_range;
this.weapon_reacquire = this._parent.weapon_reacquire;
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.bullet_speed) {
this.bullet_speed = 250;
}
if (!this.bullet_rotation) {
this.bullet_rotation = 270;
}
if (!this.bullet_no_rotate) {
this.bullet_no_rotate = false;
}
if (!this.bullet_target) {
this.bullet_target = false;
}
if (!this.holding_pattern) {
this.holding_pattern = false;
}
if (!this.holding_initially) {
this.holding_initially = false;
}
if (!this.impact_range) {
this.impact_range = 1;
}
if (!this.weapon_reacquire) {
this.weapon_reacquire = false;
}
if (this.bullet_no_rotate == true) {
this.bullet_rotation = 0;
}
this.holding_dir = 1;
if (Math.random() >= 0.5) {
this.holding_dir = -1;
}
this.WeaponController.weapon_target = this.bullet_target;
this.WeaponController.weapon_range = Math.max(_root._width, _root._height);
this.WeaponController.weapon = this._parent._parent;
this.target_locked = false;
this.time_last = _root.Clock.timeNow();
this.target_obj = this._parent;
if (this.holding_initially == true) {
this.gotoAndPlay("Holding");
} else {
this.gotoAndPlay("Attack");
}
this.engineGetForwardMovement = function (time_diff) {
var _local5 = this.target_obj._rotation;
var _local4 = _local5 * (Math.PI/180);
var _local3 = this.bullet_speed * time_diff;
var _local2 = new Object();
_local2.x = Math.cos(_local4) * _local3;
_local2.y = Math.sin(_local4) * _local3;
return(_local2);
};
this.engineAcquire = function (the_target) {
this.bullet_target = the_target;
this.target_locked = true;
this.WeaponController.weapon_target = this.bullet_target;
this.gotoAndPlay("Attack");
};
this._parent.acquire = function (the_target) {
this.RocketEngine.engineAcquire(the_target);
};
this.laser_capable = this._parent.laser_capable;
this.laser_damage = this._parent.laser_damage;
this.laser_range = this._parent.laser_range;
this.laser_rate = this._parent.laser_rate;
this.laser_type = this._parent.laser_type;
if (!this.laser_capable) {
this.laser_capable = false;
}
if (!this.laser_damage) {
this.laser_damage = 500;
}
if (!this.laser_range) {
this.laser_range = 180;
}
if (!this.laser_rate) {
this.laser_rate = 180;
}
if (!this.laser_type) {
this.laser_type = "LaserBeam";
}
this.laser_fire_rate = 1000 / (this.laser_rate / 60);
this.laser_at_damage = new Array();
this.laser_type = "LaserBeam";
this.laser_fired = _root.Clock.timeNow();
this.laser_fire_count = 0;
this.laser_damage_list = new Array(25, 50, 120, 400, 1500, 3900, 9300, 19500, 35000);
this.laser_bullet_list = new Array();
this.laser_bullet_list["0"] = "LaserBeam";
this.laser_bullet_list["1"] = "LaserBeam2";
this.laser_bullet_list["2"] = "LaserBeam3";
this.laser_bullet_list["3"] = "LaserBeam4";
this.laser_bullet_list["4"] = "LaserBeam5";
this.laser_bullet_list["5"] = "LaserBeam6";
this.laser_bullet_list["6"] = "LaserBeam7";
this.laser_bullet_list["7"] = "LaserBeam8";
this.laser_bullet_list["8"] = "LaserBeam9";
this.laser_bullet_list["9"] = "LaserBeam10";
this.laserFire = function (the_target, the_damage) {
this.laser_fired = _root.Clock.timeNow();
this.laser_fired_count++;
_root.WeaponFired();
var _local5 = "RocketLaser" + this.weapon_fire_count;
var _local7 = this.laserGetWeaponAtDamage(the_damage);
var _local6 = _root.getNextHighestDepth();
var _local3 = _root.attachMovie(_local7, _local5, _local6);
var _local4 = new Object();
_local4.x = 0;
_local4.y = 0;
this.localToGlobal(_local4);
_local3._x = _local4.x;
_local3._y = _local4.y;
_local3.bullet_target = the_target;
_local3.bullet_damage = the_damage;
_local3.turret = this;
};
this.laserGetWeaponAtDamage = function (the_damage) {
if (this.laser_at_damage[the_damage]) {
return(this.laser_at_damage[the_damage]);
}
var _local4 = 0;
var _local5 = 0;
var _local2 = 0;
_local2 = 0;
while (_local2 < this.laser_damage_list.length) {
_local5 = _local4;
_local4 = parseInt(this.laser_damage_list[_local2]);
if ((the_damage >= _local5) and (the_damage < _local4)) {
var _local6 = this.laser_bullet_list[_local2];
this.laser_at_damage[the_damage] = _local6;
return(_local6);
}
_local2++;
}
var _local6 = this.laser_bullet_list[_local2];
this.laser_at_damage[the_damage] = _local6;
return(_local6);
};
this.laserAcquireAndFire = function () {
var _local2 = this.WeaponController.findAttackerInRange("near", this.laser_range);
if (_local2 != false) {
this.laserFire(_local2, this.laser_damage);
}
};
this.stop();
Symbol 4 MovieClip [RocketManager] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
if (!this.target_locked) {
this.WeaponController.weapon = this._parent;
this.WeaponController.pointAtTarget(this.target_obj, this.target_obj);
this.target_locked = true;
}
if (time_diff > 0) {
_root.rocketSmoke(this.target_obj);
if (this.WeaponController.targetExists()) {
var rad = this.WeaponController.angleToTarget(this.target_obj);
var deg_target = (rad * 57.2957795130823);
var deg_diff = (deg_target - this.target_obj._rotation);
var move_deg = (this.bullet_rotation * time_diff);
if (Math.abs(deg_diff) < Math.abs(move_deg)) {
this.target_obj._rotation = deg_target;
} else {
var angle_left = ((deg_diff + 360) % 360);
var angle_right = ((360 - deg_diff) % 360);
if (angle_right < angle_left) {
this.target_obj._rotation = this.target_obj._rotation - move_deg;
} else {
this.target_obj._rotation = this.target_obj._rotation + move_deg;
}
}
var movement = this.engineGetForwardMovement(time_diff);
var move_x = movement.x;
var move_y = movement.y;
var move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
var d_x = (this.bullet_target._x - this.target_obj._x);
var d_y = (this.bullet_target._y - this.target_obj._y);
var tgt_dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
if ((!isNaN(tgt_dist)) and (tgt_dist < move_dist)) {
this.gotoAndPlay("Hit");
} else if ((!isNaN(tgt_dist)) and (tgt_dist < this.impact_range)) {
this.gotoAndPlay("Hit");
} else {
this.target_obj._x = this.target_obj._x + movement.x;
this.target_obj._y = this.target_obj._y + movement.y;
this.play();
}
if (this.laser_capable == true) {
var fire_diff = (time_now - this.laser_fired);
if (fire_diff >= this.laser_fire_rate) {
this.laserAcquireAndFire();
}
}
} else if (this.WeaponController.acquire()) {
this.bullet_target = this.WeaponController.weapon_target;
this.play();
} else if (this.holding_pattern == true) {
var move_deg = (this.bullet_rotation * time_diff);
this.target_obj._rotation = this.target_obj._rotation + (move_deg * this.holding_dir);
var movement = this.engineGetForwardMovement(time_diff);
this.target_obj._x = this.target_obj._x + movement.x;
this.target_obj._y = this.target_obj._y + movement.y;
this.play();
} else {
this.gotoAndPlay("Hit");
}
} else {
this.play();
}
Symbol 4 MovieClip [RocketManager] Frame 3
this.stop();
if (this.weapon_reacquire == true) {
var the_range = this.WeaponController.weapon_range;
var the_type = "near";
nearest = this.WeaponController.findAttackerInRange(the_type, the_range);
this.engineAcquire(nearest);
} else {
this.gotoAndPlay("Attack");
}
Symbol 4 MovieClip [RocketManager] Frame 4
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
if (time_diff > 0) {
_root.rocketSmoke(this.target_obj);
if (this.holding_pattern == true) {
var move_deg = (this.bullet_rotation * time_diff);
this.target_obj._rotation = this.target_obj._rotation + (move_deg * this.holding_dir);
var movement = this.engineGetForwardMovement(time_diff);
this.target_obj._x = this.target_obj._x + movement.x;
this.target_obj._y = this.target_obj._y + movement.y;
this.play();
} else {
this.gotoAndPlay("Hit");
}
} else {
this.play();
}
Symbol 4 MovieClip [RocketManager] Frame 5
this.stop();
this.gotoAndPlay("Holding");
Symbol 4 MovieClip [RocketManager] Frame 6
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.target_obj.hit();
this.target_obj.removeMovieClip();
Symbol 6 MovieClip [Rocket5] Frame 1
this.stop();
Symbol 8 MovieClip [Rocket7] Frame 1
this.stop();
Symbol 10 MovieClip [Rocket8] Frame 1
this.stop();
Symbol 12 MovieClip [Rocket6] Frame 1
this.stop();
Symbol 14 MovieClip [Rocket4] Frame 1
this.stop();
Symbol 16 MovieClip [Rocket3] Frame 1
this.stop();
Symbol 18 MovieClip [Rocket9] Frame 1
this.stop();
Symbol 20 MovieClip [Rocket2] Frame 1
this.stop();
Symbol 22 MovieClip [RocketNuke] Frame 1
this.stop();
if (this.weapon_damage == undefined) {
this.weapon_damage = 5000000 /* 0x4C4B40 */;
}
this.hit = function () {
var _local4 = _root.getNextHighestDepth();
var _local6 = "NukeBlast" + _local4;
var _local5 = "RocketNukeBlast";
var _local3 = _root.attachMovie(_local5, _local6, _local4);
_local3._x = this._x;
_local3._y = this._y;
_local3.weapon_damage = this.weapon_damage;
};
Symbol 24 MovieClip [RocketPoison] Frame 1
this.stop();
this.hit = function () {
var _local4 = _root.getNextHighestDepth();
var _local6 = "PoisonCloud" + _local4;
var _local5 = "RocketPoisonCloud";
var _local3 = _root.attachMovie(_local5, _local6, _local4);
_local3._x = this._x;
_local3._y = this._y;
};
Symbol 25 MovieClip Frame 1
this.weapon_damage = this._parent.addon_weapon_damage;
this.weapon_range = this._parent.addon_weapon_range;
this.weapon_rate = this._parent.addon_weapon_rate;
this.weapon_type = this._parent.addon_weapon_type;
this.holding_pattern = this._parent.addon_holding_pattern;
this.holding_initially = this._parent.addon_holding_initially;
this.laser_capable = this._parent.addon_laser_capable;
this.laser_damage = this._parent.addon_laser_damage;
this.laser_range = this._parent.addon_laser_range;
this.laser_rate = this._parent.addon_laser_rate;
this.laser_type = this._parent.addon_laser_type;
if (!this.weapon_damage) {
this.weapon_damage = 50;
}
if (!this.weapon_range) {
this.weapon_range = 200;
}
if (!this.weapon_rate) {
this.weapon_rate = 200;
}
if (!this.weapon_type) {
this.weapon_type = "Rocket3";
}
if (!this.holding_pattern) {
this.holding_pattern = false;
}
if (!this.holding_initially) {
this.holding_initially = false;
}
if (!this.laser_capable) {
this.laser_capable = false;
}
if (!this.laser_damage) {
this.laser_damage = 500;
}
if (!this.laser_range) {
this.laser_range = 180;
}
if (!this.laser_rate) {
this.laser_rate = 180;
}
if (!this.laser_type) {
this.laser_type = "LaserBeam";
}
this.weapon_fired = 0;
this.weapon_fire_count = 0;
this.weapon_kill_count = 0;
this.WeaponController.weapon_range = this.weapon_range;
this.WeaponController.Weapon = this._parent;
this.fireAt = function (the_target, the_damage) {
this.weapon_fired = _root.Clock.timeNow();
this.weapon_fire_count++;
_root.WeaponFired();
var _local5 = "AddonRocket" + this.weapon_fire_count;
var _local7 = this.weapon_type;
var _local6 = _root.getNextHighestDepth();
var _local3 = _root.attachMovie(_local7, _local5, _local6);
var _local4 = new Object();
_local4.x = this._x;
_local4.y = this._y;
this.localToGlobal(_local4);
_local3._x = _local4.x;
_local3._y = _local4.y;
_local3._rotation = this.Weapon._rotation;
_local3.bullet_target = the_target;
_local3.bullet_damage = the_damage;
_local3.turret = this;
_local3.holding_pattern = this.holding_pattern;
return(_local3);
};
if (this.active == true) {
this.gotoAndPlay("Fire");
}
Symbol 25 MovieClip Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = (time_now - this.weapon_fired);
var fire_rate = (1000 / (this.weapon_rate / 60));
if (time_diff > 0) {
if (this.WeaponController.acquire()) {
if (this.WeaponController.targetInRange()) {
this.WeaponController.pointAtTarget(this, this.Weapon);
}
if (time_diff >= this.fire_rate) {
if (this.WeaponController.targetInRange()) {
this.fireAt(this.WeaponController.weapon_target, this.weapon_damage);
}
}
}
}
this.play();
Symbol 25 MovieClip Frame 3
if (this._parent.active == false) {
this.gotoAndPlay("Stopped");
} else {
this.gotoAndPlay("Fire");
}
Symbol 25 MovieClip Frame 4
this.stop();
Symbol 27 MovieClip [BFGOrb3] Frame 1
this.play();
Symbol 27 MovieClip [BFGOrb3] Frame 64
this.gotoAndPlay("Start");
Symbol 31 MovieClip [BFGOrb2] Frame 1
this.play();
Symbol 31 MovieClip [BFGOrb2] Frame 38
this.gotoAndPlay("Start");
Symbol 35 MovieClip [BFGOrb1] Frame 1
this.play();
Symbol 35 MovieClip [BFGOrb1] Frame 42
this.gotoAndPlay("Start");
Symbol 37 MovieClip [BFGRocket] Frame 1
this.stop();
if (!this.laser_damage) {
this.laser_damage = 5000000 /* 0x4C4B40 */;
}
if (!this.laser_rate) {
this.laser_rate = 240;
}
if (!this.laser_range) {
this.laser_range = 250;
}
if (!this.bullet_speed) {
this.bullet_speed = 60;
}
if (!this.bullet_damage) {
this.bullet_damage = 5000000 /* 0x4C4B40 */;
}
if (!this.impact_range) {
this.impact_range = 10;
}
this.laser_capable = true;
this.bullet_no_rotate = true;
this.holding_pattern = true;
this.weapon_reacquire = true;
this.onEnterFrame = function () {
var _local5 = -this._width;
var _local3 = 720;
var _local4 = -this._height;
var _local2 = 560;
if ((((this._x < _local5) or (this._x > _local3)) or (this._y < _local4)) or (this._y > _local2)) {
this.removeMovieClip();
}
};
this.hit = function () {
var _local4 = _root.getNextHighestDepth();
var _local6 = "BFGBlast" + _local4;
var _local5 = "BFGBlast";
var _local3 = _root.attachMovie(_local5, _local6, _local4);
_local3._x = this._x;
_local3._y = this._y;
};
this.addon_weapon_damage = 5000000 /* 0x4C4B40 */;
this.addon_weapon_range = _root._width;
this.addon_weapon_rate = 180;
this.addon_holding_pattern = true;
this.addon_laser_capable = false;
Symbol 38 MovieClip [BFG] Frame 1
this.stop();
if (!this.laser_damage) {
this.laser_damage = 5000000 /* 0x4C4B40 */;
}
if (!this.laser_rate) {
this.laser_rate = 240;
}
if (!this.laser_range) {
this.laser_range = 250;
}
if (!this.bullet_speed) {
this.bullet_speed = 60;
}
if (!this.bullet_damage) {
this.bullet_damage = 5000000 /* 0x4C4B40 */;
}
if (!this.impact_range) {
this.impact_range = 10;
}
this.laser_capable = true;
this.bullet_no_rotate = true;
this.holding_pattern = true;
this.weapon_reacquire = true;
this.onEnterFrame = function () {
var _local5 = -this._width;
var _local3 = 720;
var _local4 = -this._height;
var _local2 = 560;
if ((((this._x < _local5) or (this._x > _local3)) or (this._y < _local4)) or (this._y > _local2)) {
this.removeMovieClip();
}
};
this.hit = function () {
var _local4 = _root.getNextHighestDepth();
var _local6 = "BFGBlast" + _local4;
var _local5 = "BFGBlast";
var _local3 = _root.attachMovie(_local5, _local6, _local4);
_local3._x = this._x;
_local3._y = this._y;
_local3.weapon_damage = this.bullet_damage;
};
Symbol 40 MovieClip [Rocket] Frame 1
this.stop();
Symbol 44 MovieClip [RocketTrail] Frame 1
this.play();
Symbol 44 MovieClip [RocketTrail] Frame 16
this.removeMovieClip();
Symbol 45 MovieClip [AttackerEngine] Frame 1
this.stop();
this.waypoint_total = this._parent.waypoint_total;
this.active = this._parent.active;
this.energy_start = this._parent.energy_start;
this.move_speed = this._parent.move_speed;
if (this.waypoint_total == undefined) {
this.waypoint_total = 12;
}
if (this.active == undefined) {
this.active = true;
}
if (this.energy_start == undefined) {
this.energy_start = 3;
}
if (this.move_speed == undefined) {
this.move_speed = 60;
}
this.energy = this.energy_start;
this.health = Math.floor((this.energy / this.energy_start) * 100);
this._parent.health = this.health;
this._parent.energy = this.energy;
this.waypoint_cur = 1;
this.snap_dist = 2;
this.time_last = false;
this.the_obj = this._parent;
this.repoint = false;
this.engineHit = function (damage) {
if (this.active != true) {
return(false);
}
this.energy = this.energy - damage;
this.health = Math.ceil((this.energy / this.energy_start) * 100);
this._parent.health = this.health;
this._parent.energy = this.energy;
if (this.energy <= 0) {
this.engineDead();
}
};
this.engineDead = function () {
if (this.active != true) {
return(false);
}
_root.KilledAttacker(this.the_obj);
this.engineRemove();
};
this.engineAttack = function () {
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Setup");
};
this.engineRemove = function () {
this._parent.removeMovieClip();
};
this._parent.hit = function (the_damage) {
this.AttackerEngine.engineHit(the_damage);
};
this._parent.attack = function () {
this.AttackerEngine.engineAttack();
};
this._parent.dead = function () {
this.AttackerEngine.engineDead();
};
this._parent.setMoveSpeed = function (new_speed) {
this.AttackerEngine.move_speed = new_speed;
this.move_speed = new_speed;
};
if (this.active == true) {
this.engineAttack();
}
Symbol 45 MovieClip [AttackerEngine] Frame 3
this.stop();
if (this._parent.point_body == false) {
this.point_body = false;
} else {
this.point_body = true;
}
this.repoint = this.point_body;
this.gotoAndPlay("Attack");
Symbol 45 MovieClip [AttackerEngine] Frame 5
this.stop();
this.active = this._parent.active;
if (this.active != true) {
this.gotoAndPlay("Stopped");
}
var wp_next = Number(this.waypoint_cur + 1);
if (wp_next > this.waypoint_total) {
this.gotoAndStop("Hit");
} else {
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
if (time_diff > 0) {
var wp_name = ("Waypoint" + wp_next);
wp_next = _root[wp_name];
var move_angle = _root.degreesToTarget(this.the_obj, wp_next);
if (this.repoint == true) {
this.repoint = false;
this.the_obj.Body._rotation = move_angle;
}
var dist = _root.DistanceBetween(wp_next, this.the_obj);
var move_amount = (this.move_speed * time_diff);
var movement = _root.trigForwardAtAngle(move_angle, move_amount);
var move_x = movement.x;
var move_y = movement.y;
var dist_move = Math.sqrt((move_x * move_x) + (move_y * move_y));
if ((dist <= dist_move) or (dist <= this.snap_dist)) {
this.the_obj._x = wp_next._x;
this.the_obj._y = wp_next._y;
this.waypoint_cur = this.waypoint_cur + 1;
this.repoint = this.point_body;
} else {
this.the_obj._x = this.the_obj._x + move_x;
this.the_obj._y = this.the_obj._y + move_y;
}
}
this.play();
}
Symbol 45 MovieClip [AttackerEngine] Frame 6
this.stop();
this.gotoAndPlay("Attack");
Symbol 45 MovieClip [AttackerEngine] Frame 7
this.stop();
_root.BaseHit();
this.engineRemove();
Symbol 45 MovieClip [AttackerEngine] Frame 9
this.stop();
Symbol 51 MovieClip [Attacker14] Frame 1
this.stop();
this.point_body = false;
Symbol 56 MovieClip [Attacker13] Frame 1
this.stop();
this.point_body = false;
Symbol 61 MovieClip [Attacker12] Frame 1
this.stop();
Symbol 66 MovieClip [Attacker11] Frame 1
this.stop();
Symbol 71 MovieClip [Attacker10] Frame 1
this.stop();
this.point_body = false;
Symbol 76 MovieClip [Attacker9] Frame 1
this.stop();
Symbol 81 MovieClip [Attacker8] Frame 1
this.stop();
Symbol 86 MovieClip [Attacker7] Frame 1
this.stop();
Symbol 91 MovieClip [Attacker6] Frame 1
this.stop();
this.point_body = false;
Symbol 96 MovieClip [Attacker5] Frame 1
this.stop();
Symbol 101 MovieClip [Attacker4] Frame 1
this.stop();
Symbol 106 MovieClip [Attacker3] Frame 1
this.stop();
Symbol 111 MovieClip [Attacker2] Frame 1
this.stop();
this.point_body = false;
Symbol 116 MovieClip [Attacker1] Frame 1
this.stop();
Symbol 121 MovieClip [Attacker0] Frame 1
this.stop();
this.point_body = false;
Symbol 123 MovieClip [Attacker] Frame 1
this.stop();
this.point_body = false;
Symbol 125 MovieClip [ModifyExchanger] Frame 1
this.stop();
Symbol 134 MovieClip [TurretDamageUpBigExchange] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 0;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 1;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = -0.3;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = -0.3;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
} else {
this.Weapon.stop();
}
Symbol 134 MovieClip [TurretDamageUpBigExchange] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 134 MovieClip [TurretDamageUpBigExchange] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 134 MovieClip [TurretDamageUpBigExchange] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 135 MovieClip [TurretDamageUpBig] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 0;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 1;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = 0;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = 0;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
} else {
this.Weapon.stop();
}
Symbol 135 MovieClip [TurretDamageUpBig] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 135 MovieClip [TurretDamageUpBig] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 135 MovieClip [TurretDamageUpBig] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 140 MovieClip [RangerPulse] Frame 1
this.stop();
this.active = this._parent.active;
if (this.active == undefined) {
this.active = true;
}
if (this.active == true) {
this.play();
}
Symbol 140 MovieClip [RangerPulse] Frame 25
this.gotoAndPlay("Pulse");
Symbol 142 MovieClip [TurretRateUpExchange] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = -0.4;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = -0.1;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = 1;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
} else {
this.Weapon.stop();
}
Symbol 142 MovieClip [TurretRateUpExchange] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 142 MovieClip [TurretRateUpExchange] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 142 MovieClip [TurretRateUpExchange] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 143 MovieClip [TurretRateUp] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 0;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 0;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = 0;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = 1;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
} else {
this.Weapon.stop();
}
Symbol 143 MovieClip [TurretRateUp] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 143 MovieClip [TurretRateUp] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 143 MovieClip [TurretRateUp] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 145 MovieClip [TurretDamageUp] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 0;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 0.4;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = 0;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = 0;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
} else {
this.Weapon.stop();
}
Symbol 145 MovieClip [TurretDamageUp] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 145 MovieClip [TurretDamageUp] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 145 MovieClip [TurretDamageUp] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 151 MovieClip [RadarDish] Frame 1
this.active = this._parent.active;
if (this.active == undefined) {
this.active = true;
}
this.blip = function () {
this.blip_last = new Date();
var _local7 = Math.random();
if (_local7 > this.blip_chance) {
return(true);
}
var _local4 = "RadarBlip";
var _local5 = this.getNextHighestDepth();
var _local10 = _local4 + _local5;
var _local3 = this.attachMovie(_local4, _local10, _local5);
var _local8 = Math.floor(Math.random() * 4);
var _local9 = "Blip" + _local8;
var _local6 = Sweep[_local9];
var _local2 = new Object();
_local2.x = _local6._x;
_local2.y = _local6._y;
Sweep.localToGlobal(_local2);
this.globalToLocal(_local2);
_local3._x = _local2.x;
_local3._y = _local2.y;
return(_local3);
};
this.time_last = new Date();
this.blip_last = this.time_last;
this.blip_rate = 73;
this.blip_chance = 0.55;
this.sweep_rate = 80;
this.stop();
if (this.active == true) {
this.play();
}
Symbol 151 MovieClip [RadarDish] Frame 3
this.stop();
var time_now = new Date();
var time_diff = (time_now.getTime() - this.time_last.getTime());
var blip_diff = (time_now.getTime() - this.blip_last.getTime());
var the_blip_rate = (60000 / this.blip_rate);
if (blip_diff >= the_blip_rate) {
this.blip();
}
var new_rot = (this.sweep_rate * (time_diff / 1000));
Sweep._rotation = Sweep._rotation + new_rot;
time_last = time_now;
this.play();
Symbol 151 MovieClip [RadarDish] Frame 5
this.gotoAndPlay("Scan");
Symbol 153 MovieClip [TurretRangeUpExchange] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 100;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 0;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = 0;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = -0.25;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
}
Symbol 153 MovieClip [TurretRangeUpExchange] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 153 MovieClip [TurretRangeUpExchange] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 153 MovieClip [TurretRangeUpExchange] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 154 MovieClip [TurretRangeUp] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 0;
}
if (this.weapon_range == undefined) {
this.weapon_range = 80;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 0;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.modify_damage == undefined) {
this.modify_damage = 0;
}
if (this.modify_range == undefined) {
this.modify_range = 100;
}
if (this.modify_rate == undefined) {
this.modify_rate = 0;
}
if (this.modify_damage_mult == undefined) {
this.modify_damage_mult = 0;
}
if (this.modify_range_mult == undefined) {
this.modify_range_mult = 0;
}
if (this.modify_rate_mult == undefined) {
this.modify_rate_mult = 0;
}
this.notified_new = new Array();
this.notifyNew = function (the_turret) {
this.notified_new.push(the_turret);
return(true);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this.modifyUnAssert(_local3);
_local2++;
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.modify_possible = false;
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_range = new Array();
this.upgrade_range["130"] = 1500;
this.upgrade_rate = new Array();
this.upgradeDone = function () {
this.onSell();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.modifyUpdate();
};
this.stop();
this.Weapon.stop();
if (this.active == true) {
this.Weapon.play();
this.play();
}
Symbol 154 MovieClip [TurretRangeUp] Frame 4
this.stop();
this.modifyGetInRange(this.weapon_range);
this.modifyAssert();
this.play();
Symbol 154 MovieClip [TurretRangeUp] Frame 7
this.stop();
for (var i in this.notified_new) {
var turret = this.notified_new[i];
this.modifyNotifyNew(turret);
}
this.notified_new = new Array();
this.play();
Symbol 154 MovieClip [TurretRangeUp] Frame 10
this.stop();
if (this.active == true) {
this.gotoAndPlay("Scan");
} else {
this.Weapon.stop();
}
Symbol 156 MovieClip [Bullet9] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 156 MovieClip [Bullet9] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 156 MovieClip [Bullet9] Frame 3
this.gotoAndPlay("Attack");
Symbol 156 MovieClip [Bullet9] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 158 MovieClip [ClusterBomb] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1000000 /* 0x0F4240 */;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 750;
}
if (this.cluster_damage == undefined) {
this.cluster_damage = 1000000 /* 0x0F4240 */;
}
if (this.cluster_qty == undefined) {
this.cluster_qty = 4;
}
if (this.cluster_laser == undefined) {
this.cluster_laser = false;
}
if (this.cluster_holding == undefined) {
this.cluster_holding = true;
}
if (this.cluster_rocket == undefined) {
this.cluster_rocket = "Rocket9";
}
if (this.blast == undefined) {
this.blast = false;
}
if (this.blast_type == undefined) {
this.blast_type = "BlastMedium";
}
if (this.blast_damage == undefined) {
this.blast_damage = 1000000 /* 0x0F4240 */;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 158 MovieClip [ClusterBomb] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
if (time_diff > 0) {
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this._x = target_x;
this._y = target_y;
this.gotoAndPlay("Hit");
} else {
this.play();
}
} else {
this.play();
}
Symbol 158 MovieClip [ClusterBomb] Frame 3
this.gotoAndPlay("Attack");
Symbol 158 MovieClip [ClusterBomb] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
if (!this.blast) {
this.blast = false;
}
if (!this.blast_type) {
this.blast_type = "BlastMedium";
}
if (!this.blast_damage) {
this.blast_damage = 1000000 /* 0x0F4240 */;
}
var new_type = "AddonClusterBlast";
var new_lev = _root.getNextHighestDepth();
var new_name = (new_type + new_lev);
var new_b = _root.attachMovie(new_type, new_name, new_lev);
new_b._x = this._x;
new_b._y = this._y;
new_b.cluster_damage = this.cluster_damage;
new_b.cluster_qty = this.cluster_qty;
new_b.cluster_laser = this.cluster_laser;
new_b.cluster_holding = this.cluster_holding;
new_b.cluster_rocket = this.cluster_rocket;
if (this.blast == true) {
var new_type = this.blast_type;
var new_lev = _root.getNextHighestDepth();
var new_name = (new_type + new_lev);
var new_b = _root.attachMovie(new_type, new_name, new_lev);
new_b._x = this._x;
new_b._y = this._y;
new_b.weapon_damage = this.blast_damage;
}
this.removeMovieClip();
Symbol 160 MovieClip [Bullet8] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 160 MovieClip [Bullet8] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 160 MovieClip [Bullet8] Frame 3
this.gotoAndPlay("Attack");
Symbol 160 MovieClip [Bullet8] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 162 MovieClip [Bullet7] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 162 MovieClip [Bullet7] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 162 MovieClip [Bullet7] Frame 3
this.gotoAndPlay("Attack");
Symbol 162 MovieClip [Bullet7] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 164 MovieClip [Bullet6] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 164 MovieClip [Bullet6] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 164 MovieClip [Bullet6] Frame 3
this.gotoAndPlay("Attack");
Symbol 164 MovieClip [Bullet6] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 165 MovieClip [Bullet5] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 165 MovieClip [Bullet5] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 165 MovieClip [Bullet5] Frame 3
this.gotoAndPlay("Attack");
Symbol 165 MovieClip [Bullet5] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 167 MovieClip [Bullet4] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 167 MovieClip [Bullet4] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 167 MovieClip [Bullet4] Frame 3
this.gotoAndPlay("Attack");
Symbol 167 MovieClip [Bullet4] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 169 MovieClip [Bullet3] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 169 MovieClip [Bullet3] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 169 MovieClip [Bullet3] Frame 3
this.gotoAndPlay("Attack");
Symbol 169 MovieClip [Bullet3] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 171 MovieClip [Bullet2] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 171 MovieClip [Bullet2] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 171 MovieClip [Bullet2] Frame 3
this.gotoAndPlay("Attack");
Symbol 171 MovieClip [Bullet2] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 172 MovieClip [Bullet] Frame 1
this.stop();
if (this.bullet_damage == undefined) {
this.bullet_damage = 1;
}
if (this.bullet_speed == undefined) {
this.bullet_speed = 900;
}
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("Attack");
this.stop();
Symbol 172 MovieClip [Bullet] Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var target_x = this.bullet_target._x;
var target_y = this.bullet_target._y;
var d_x = (target_x - this._x);
var d_y = (target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.gotoAndPlay("Hit");
}
this.play();
Symbol 172 MovieClip [Bullet] Frame 3
this.gotoAndPlay("Attack");
Symbol 172 MovieClip [Bullet] Frame 4
this.stop();
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
this.removeMovieClip();
Symbol 173 MovieClip [LaserBeam10] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 10;
}
this.laser_colour1 = "0x000000";
this.laser_colour2 = "0xffffff";
this.laser_colour3 = "0xff0000";
this.laser_alpha = "80";
this.gotoAndPlay("Attack");
this.stop();
Symbol 173 MovieClip [LaserBeam10] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour2, this.laser_alpha);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size - 2, this.laser_colour1, 100);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size - 4, this.laser_colour2, 100);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size - 6, this.laser_colour1, 100);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size - 8, this.laser_colour2, 100);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size - 9, this.laser_colour3, 100);
this.lineTo(point.x, point.y);
this.play();
Symbol 173 MovieClip [LaserBeam10] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 173 MovieClip [LaserBeam10] Frame 9
this.stop();
this.removeMovieClip();
Symbol 174 MovieClip [LaserBeam9] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 9;
}
this.laser_colour1 = "0xcc3333";
this.laser_colour2 = "0x3333cc";
this.laser_colour3 = "0xcccc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 174 MovieClip [LaserBeam9] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour1, this.laser_alpha);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size / 3, this.laser_colour2, 100);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size / 9, this.laser_colour3, 100);
this.lineTo(point.x, point.y);
this.play();
Symbol 174 MovieClip [LaserBeam9] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 174 MovieClip [LaserBeam9] Frame 9
this.stop();
this.removeMovieClip();
Symbol 175 MovieClip [LaserBeam8] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 8;
}
this.laser_colour1 = "0xcc3333";
this.laser_colour2 = "0xcccc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 175 MovieClip [LaserBeam8] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour1, this.laser_alpha);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size / 2, this.laser_colour2, 100);
this.lineTo(point.x, point.y);
this.play();
Symbol 175 MovieClip [LaserBeam8] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 175 MovieClip [LaserBeam8] Frame 9
this.stop();
this.removeMovieClip();
Symbol 176 MovieClip [LaserBeam7] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 8;
}
this.laser_colour1 = "0x33cc33";
this.laser_colour2 = "0xcc3333";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 176 MovieClip [LaserBeam7] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour1, this.laser_alpha);
this.lineTo(point.x, point.y);
this.moveTo(0, 0);
this.lineStyle(this.laser_size / 2, this.laser_colour2, 100);
this.lineTo(point.x, point.y);
this.play();
Symbol 176 MovieClip [LaserBeam7] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 176 MovieClip [LaserBeam7] Frame 9
this.stop();
this.removeMovieClip();
Symbol 177 MovieClip [LaserBeam6] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 8;
}
this.laser_colour = "0xcc3333";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 177 MovieClip [LaserBeam6] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 177 MovieClip [LaserBeam6] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 177 MovieClip [LaserBeam6] Frame 9
this.stop();
this.removeMovieClip();
Symbol 178 MovieClip [LaserBeam5] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 8;
}
this.laser_colour = "0xcccc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 178 MovieClip [LaserBeam5] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 178 MovieClip [LaserBeam5] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 178 MovieClip [LaserBeam5] Frame 9
this.stop();
this.removeMovieClip();
Symbol 179 MovieClip [LaserBeam4] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 6;
}
this.laser_colour = "0xcccc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 179 MovieClip [LaserBeam4] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 179 MovieClip [LaserBeam4] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 179 MovieClip [LaserBeam4] Frame 9
this.stop();
this.removeMovieClip();
Symbol 180 MovieClip [LaserBeam3] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 6;
}
this.laser_colour = "0x33cc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 180 MovieClip [LaserBeam3] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 180 MovieClip [LaserBeam3] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 180 MovieClip [LaserBeam3] Frame 9
this.stop();
this.removeMovieClip();
Symbol 181 MovieClip [LaserBeam2] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 4;
}
this.laser_colour = "0x33cc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 181 MovieClip [LaserBeam2] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 181 MovieClip [LaserBeam2] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 181 MovieClip [LaserBeam2] Frame 9
this.stop();
this.removeMovieClip();
Symbol 182 MovieClip [LaserBeam] Frame 1
this.stop();
if (!this.bullet_target) {
this.gotoAndPlay("Hit");
}
if (!this.bullet_damage) {
this.bullet_damage = 1;
}
if (!this.laser_size) {
this.laser_size = 2;
}
this.laser_colour = "0x33cc33";
this.laser_alpha = "50";
this.gotoAndPlay("Attack");
this.stop();
Symbol 182 MovieClip [LaserBeam] Frame 4
this.stop();
var point = new Object();
point.x = this.bullet_target._x - this._x;
point.y = this.bullet_target._y - this._y;
this.lineStyle(this.laser_size, this.laser_colour, this.laser_alpha);
this.lineTo(point.x, point.y);
this.play();
Symbol 182 MovieClip [LaserBeam] Frame 6
if (this.bullet_target) {
this.bullet_target.hit(this.bullet_damage);
}
Symbol 182 MovieClip [LaserBeam] Frame 9
this.stop();
this.removeMovieClip();
Symbol 187 MovieClip [CannotBuild] Frame 1
this.play();
Symbol 187 MovieClip [CannotBuild] Frame 24
this.gotoAndPlay("Start");
Symbol 189 MovieClip [CannotAfford] Frame 1
this.play();
Symbol 189 MovieClip [CannotAfford] Frame 24
this.gotoAndPlay("Start");
Symbol 194 MovieClip [BuildShape] Frame 1
if (this.weapon_range == undefined) {
this.weapon_range = false;
}
if (this.weapon_range != false) {
this.TurretRange._width = this.weapon_range * 2;
this.TurretRange._height = this.weapon_range * 2;
} else {
this.TurretRange._visible = false;
}
this.canBuild = function (prop, oldVal, newVal) {
if (newVal == true) {
this.CanBuild._visible = true;
this.CannotBuild._visible = false;
this.CannotAfford._visible = false;
} else {
this.CanBuild._visible = false;
if (this.can_afford == true) {
this.CannotBuild._visible = true;
this.CannotAfford._visible = false;
} else {
this.CannotBuild._visible = false;
this.CannotAfford._visible = true;
}
}
return(true);
};
this.watch("can_build", this.canBuild);
Symbol 197 MovieClip [TurretFreakWarning] Frame 1
this.play();
Symbol 197 MovieClip [TurretFreakWarning] Frame 20
this.gotoAndPlay("Start");
Symbol 206 MovieClip [Cannon] Frame 1
this.fire = function () {
this.gotoAndPlay("Firing");
};
this.stop();
Symbol 206 MovieClip [Cannon] Frame 2
this.play();
Symbol 206 MovieClip [Cannon] Frame 20
this.gotoAndStop("Idle");
Symbol 219 MovieClip [Laser] Frame 1
this.fire = function () {
this.gotoAndPlay("Firing");
};
this.stop();
Symbol 219 MovieClip [Laser] Frame 2
this.play();
Symbol 219 MovieClip [Laser] Frame 16
this.gotoAndStop("Idle");
Symbol 228 MovieClip Frame 1
this.fire = function () {
this.gotoAndPlay("Fire");
};
Symbol 228 MovieClip Frame 15
this.gotoAndStop("Fire");
Symbol 232 MovieClip Frame 1
if (!this.fire_count) {
this.fire_count = 0;
}
this.fire = function () {
this.setFirePoint();
this.fireMissle();
this.fire_count++;
this.gotoAndPlay("Firing");
};
this.fireMissle = function () {
var _local2 = "Fired" + (this.fire_count % 4);
var _local3 = this[_local2];
_local3.fire();
};
this.setFirePoint = function () {
var _local2 = "FirePoint" + (this.fire_count % 4);
this.FirePoint = this[_local2];
};
this.setFirePoint();
this.stop();
Symbol 232 MovieClip Frame 2
this.play();
Symbol 232 MovieClip Frame 18
this.gotoAndStop("Idle");
Symbol 242 MovieClip [TurretStats] Frame 1
this.the_damage = 0;
this.the_range = 0;
this.the_rate = 0;
this.the_type = false;
this.getStats = function (the_turret) {
if (the_turret) {
this.the_damage = the_turret.weapon_damage;
this.the_range = the_turret.weapon_range;
this.the_rate = the_turret.weapon_rate;
this.the_type = the_turret.turret_type;
this.updateStats();
this.gotoAndPlay("Viewing");
}
};
this.updateStats = function () {
Damage.text = this.the_damage;
Range.text = this.the_range;
Rate.text = Math.floor(60000 / this.the_rate);
ExampleRed._visible = false;
ExampleGreen._visible = false;
ExampleBlue._visible = false;
if (this.the_type == "Red") {
ExampleRed._visible = true;
} else if (this.the_type == "Green") {
ExampleGreen._visible = true;
} else if (this.the_type == "Blue") {
ExampleBlue._visible = true;
}
};
this.onEnterFrame = function () {
this.turret = _root.cur_turret;
this.getStats(this.turret);
};
this.stop();
Symbol 242 MovieClip [TurretStats] Frame 4
this.stop();
if (this.turret) {
this.getStats(this.turret);
} else {
this.gotoAndStop("Idle");
}
Symbol 243 MovieClip [WaveSender] Frame 1
this.stop();
if (!this.wave_size) {
this.wave_size = 10;
}
if (!this.wave_num) {
this.wave_num = 0;
}
if (!this.attacker_spacing) {
this.attacker_spacing = 1000;
}
if (!this.attacker_energy) {
this.attacker_energy = 10;
}
if (!this.attacker_value) {
this.attacker_value = 1000;
}
this.time_last_attacker = _root.Clock.timeNow();
this.attackers_sent = 0;
this.gotoAndPlay("Spawn");
this.stop();
Symbol 243 MovieClip [WaveSender] Frame 5
var time_now = _root.Clock.timeNow();
var time_attacker = (time_now - this.time_last_attacker);
if (time_attacker >= this.attacker_spacing) {
if (this.attackers_sent < this.wave_size) {
this._parent.NewAttacker(this.attacker_energy, this.attacker_value, this.wave_num);
this.attackers_sent++;
this.time_last_attacker = time_now;
} else {
this.gotoAndPlay("Stopped");
}
}
this.play();
Symbol 243 MovieClip [WaveSender] Frame 9
this.gotoAndPlay("Spawn");
Symbol 243 MovieClip [WaveSender] Frame 13
this.stop();
removeMovieClip(this);
Symbol 245 MovieClip [UpgradeGraphScaleMinor] Frame 1
this.stop();
Symbol 251 MovieClip [UpgradeGraphScale] Frame 1
this.stop();
if (!this.marker) {
this.marker = "?";
}
Symbol 254 MovieClip [RestartButton] Frame 1
this.stop();
Symbol 273 MovieClip Frame 1
this.stop();
Symbol 275 MovieClip Frame 1
this.stop();
Symbol 277 MovieClip [GameOver] Frame 1
this.stop();
if (!this.total_kills) {
this.total_kills = 0;
}
if (!this.total_shots) {
this.total_shots = 0;
}
if (!this.total_spent) {
this.total_spent = 0;
}
if (!this.total_score) {
this.total_score = 0;
}
this.total_score = this.total_kills * this.total_spent;
Kills.text = this.total_kills;
Shots.text = this.total_shots;
Spent.text = "$" + this.total_spent;
Score.text = this.total_score;
Restart.onPress = function () {
_root.ResetGame();
};
TitleBar.onPress = function () {
this._parent.startDrag();
};
TitleBar.onRelease = function () {
this._parent.stopDrag();
};
function bitOR(a, b) {
var _local1 = (a & 1) | (b & 1);
var _local2 = (a >>> 1) | (b >>> 1);
return((_local2 << 1) | _local1);
}
function bitXOR(a, b) {
var _local1 = (a & 1) ^ (b & 1);
var _local2 = (a >>> 1) ^ (b >>> 1);
return((_local2 << 1) | _local1);
}
function bitAND(a, b) {
var _local1 = (a & 1) & (b & 1);
var _local2 = (a >>> 1) & (b >>> 1);
return((_local2 << 1) | _local1);
}
function addme(x, y) {
var _local1 = (x & 65535) + (y & 65535);
var _local2 = ((x >> 16) + (y >> 16)) + (_local1 >> 16);
return((_local2 << 16) | (_local1 & 65535));
}
function rhex(num) {
str = "";
j = 0;
while (j <= 3) {
str = str + (hex_chr.charAt((num >> ((j * 8) + 4)) & 15) + hex_chr.charAt((num >> (j * 8)) & 15));
j++;
}
return(str);
}
function str2blks(str) {
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
i = 0;
while (i < (nblk * 16)) {
blks[i] = 0;
i++;
}
i = 0;
while (i < str.length) {
blks[i >> 2] = blks[i >> 2] | (str.charCodeAt(i) << ((((str.length * 8) + i) % 4) * 8));
i++;
}
blks[i >> 2] = blks[i >> 2] | (128 << ((((str.length * 8) + i) % 4) * 8));
var _local2 = str.length * 8;
blks[(nblk * 16) - 2] = _local2 & 255;
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 8) & 255) << 8);
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 16) & 255) << 16);
blks[(nblk * 16) - 2] = blks[(nblk * 16) - 2] | (((_local2 >>> 24) & 255) << 24);
return(blks);
}
function rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
function cmn(q, a, b, x, s, t) {
return(addme(rol(addme(addme(a, q), addme(x, t)), s), b));
}
function ff(a, b, c, d, x, s, t) {
return(cmn(bitOR(bitAND(b, c), bitAND(~b, d)), a, b, x, s, t));
}
function gg(a, b, c, d, x, s, t) {
return(cmn(bitOR(bitAND(b, d), bitAND(c, ~d)), a, b, x, s, t));
}
function hh(a, b, c, d, x, s, t) {
return(cmn(bitXOR(bitXOR(b, c), d), a, b, x, s, t));
}
function ii(a, b, c, d, x, s, t) {
return(cmn(bitXOR(c, bitOR(b, ~d)), a, b, x, s, t));
}
function makeChecksum(str) {
x = str2blks(str);
a = 1732584193 /* 0x67452301 */;
b = -271733879;
c = -1732584194;
d = 271733878 /* 0x10325476 */;
var _local1;
i = 0;
while (i < x.length) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
_local1 = 0;
a = ff(a, b, c, d, x[i + 0], 7, -680876936);
d = ff(d, a, b, c, x[i + 1], 12, -389564586);
c = ff(c, d, a, b, x[i + 2], 17, 606105819);
b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = ff(a, b, c, d, x[i + 4], 7, -176418897);
d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = ff(b, c, d, a, x[i + 7], 22, -45705983);
a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = ff(c, d, a, b, x[i + 10], 17, -42063);
b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = ff(d, a, b, c, x[i + 13], 12, -40341101);
c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = gg(a, b, c, d, x[i + 1], 5, -165796510);
d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = gg(c, d, a, b, x[i + 11], 14, 643717713);
b = gg(b, c, d, a, x[i + 0], 20, -373897302);
a = gg(a, b, c, d, x[i + 5], 5, -701558691);
d = gg(d, a, b, c, x[i + 10], 9, 38016083);
c = gg(c, d, a, b, x[i + 15], 14, -660478335);
b = gg(b, c, d, a, x[i + 4], 20, -405537848);
a = gg(a, b, c, d, x[i + 9], 5, 568446438);
d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = gg(c, d, a, b, x[i + 3], 14, -187363961);
b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = gg(d, a, b, c, x[i + 2], 9, -51403784);
c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = hh(a, b, c, d, x[i + 5], 4, -378558);
d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = hh(b, c, d, a, x[i + 14], 23, -35309556);
a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = hh(c, d, a, b, x[i + 7], 16, -155497632);
b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = hh(a, b, c, d, x[i + 13], 4, 681279174);
d = hh(d, a, b, c, x[i + 0], 11, -358537222);
c = hh(c, d, a, b, x[i + 3], 16, -722521979);
b = hh(b, c, d, a, x[i + 6], 23, 76029189);
a = hh(a, b, c, d, x[i + 9], 4, -640364487);
d = hh(d, a, b, c, x[i + 12], 11, -421815835);
c = hh(c, d, a, b, x[i + 15], 16, 530742520);
b = hh(b, c, d, a, x[i + 2], 23, -995338651);
a = ii(a, b, c, d, x[i + 0], 6, -198630844);
d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = ii(b, c, d, a, x[i + 5], 21, -57434055);
a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = ii(c, d, a, b, x[i + 10], 15, -1051523);
b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = ii(d, a, b, c, x[i + 15], 10, -30611744);
c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = ii(a, b, c, d, x[i + 4], 6, -145523070);
d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = ii(c, d, a, b, x[i + 2], 15, 718787259);
b = ii(b, c, d, a, x[i + 9], 21, -343485551);
a = addme(a, olda);
b = addme(b, oldb);
c = addme(c, oldc);
d = addme(d, oldd);
i = i + 16;
}
return(((rhex(a) + rhex(b)) + rhex(c)) + rhex(d));
}
stop();
var hex_chr = "0123456789abcdef";
this.new_score_id = false;
this.submitScore = function (target) {
if (target.clicked != true) {
if (this.PlayerName.text == "") {
target.theText.text = "no name!";
return(false);
}
target.clicked = true;
target.theText.text = "sending...";
var _local3 = new LoadVars();
_local3.game = "onslaught";
_local3.player = this.PlayerName.text;
_local3.score = this.total_score;
_local3.kills = this.total_kills;
_local3.shots = this.total_shots;
_local3.spent = this.total_spent;
_local3.damage = this.total_damage;
_local3.v = _root.game_version;
_local3.map = _root.game_map;
var _local4 = _root.TurretGetLayout();
_local3.layout = JSON.stringify(_local4);
var _local5 = (((((((((((_local3.game + _local3.player) + _local3.score) + _local3.kills) + _local3.shots) + _local3.spent) + _local3.damage) + _local3.v) + _local3.map) + "a98bcb9d8eb9ba28") + "a9b99c9b8e98b9a8") + "fb3081bab08b0c8b") + "f0b52661afa6271b";
_local3.verify = makeChecksum(_local5);
var lv_into = new LoadVars();
lv_into.onLoad = function (success) {
if (success) {
if (lv_into.ok == "1") {
target.theText.text = "thanks!";
ButtonScore.onPress = function () {
this._parent.viewScore(lv_into.score_id);
};
this.fx = _root.effectWait(this);
this.fx.the_box = target.theText;
this.fx.onThen = function () {
this.the_box.text = "view score";
};
} else {
target.theText.text = "invalid!!";
}
} else {
target.theText.text = "error!";
}
};
var _local6 = _root.score_url + "submit_score.php";
_local3.sendAndLoad(_local6, lv_into);
}
};
this.viewScore = function (the_id) {
var _local2 = (_root.score_url + "scores.php?show=") + the_id;
getURL (_local2, "_blank", "POST");
};
this.stop();
Instance of Symbol 273 MovieClip "ButtonBack" in Symbol 277 MovieClip [GameOver] Frame 1
on (press) {
_root.GotoHomepage();
}
Instance of Symbol 275 MovieClip "ButtonScore" in Symbol 277 MovieClip [GameOver] Frame 1
on (press) {
this._parent.submitScore(this);
}
Instance of Symbol 254 MovieClip [RestartButton] "ButtonRestart" in Symbol 277 MovieClip [GameOver] Frame 1
on (press) {
_root.ResetGame();
}
Symbol 283 MovieClip [CashEarned] Frame 1
this.play();
if (!this.amount) {
this.amount = "0";
}
cash_amount = "$" + this.amount;
Symbol 283 MovieClip [CashEarned] Frame 20
this.stop();
this.removeMovieClip();
Symbol 290 MovieClip [RocketPoisonCloud] Frame 1
this.play();
Symbol 290 MovieClip [RocketPoisonCloud] Frame 6
this.stop();
for (var i in _root.attackers) {
var attacker = _root.attackers[i];
var point = new Object();
point.x = attacker._x;
point.y = attacker._y;
if (this.hitTest(point.x, point.y, true)) {
var new_speed = (attacker.move_speed / 2);
attacker.setMoveSpeed(new_speed);
}
}
this.play();
Symbol 290 MovieClip [RocketPoisonCloud] Frame 38
this.stop();
this.removeMovieClip();
Symbol 294 MovieClip [BFGBlast] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 5000000 /* 0x4C4B40 */;
}
Symbol 294 MovieClip [BFGBlast] Frame 5
this.stop();
var spazzed = new Array();
for (var i in _root.attackers) {
var attacker = _root.attackers[i];
var point = new Object();
point.x = attacker._x;
point.y = attacker._y;
if (this.hitTest(point.x, point.y, true)) {
spazzed.push(attacker);
}
}
var i = 0;
while (i < spazzed.length) {
var attacker = spazzed[i];
attacker.hit(this.weapon_damage);
i++;
}
this.play();
Symbol 294 MovieClip [BFGBlast] Frame 38
this.stop();
this.removeMovieClip();
Symbol 298 MovieClip [BlastLarge] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 3000000 /* 0x2DC6C0 */;
}
Symbol 298 MovieClip [BlastLarge] Frame 5
this.stop();
var spazzed = new Array();
for (var i in _root.attackers) {
var attacker = _root.attackers[i];
var point = new Object();
point.x = attacker._x;
point.y = attacker._y;
if (this.hitTest(point.x, point.y, true)) {
spazzed.push(attacker);
}
}
var i = 0;
while (i < spazzed.length) {
var attacker = spazzed[i];
attacker.hit(this.weapon_damage);
i++;
}
this.play();
Symbol 298 MovieClip [BlastLarge] Frame 38
this.stop();
this.removeMovieClip();
Symbol 302 MovieClip [BlastMedium] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 2000000 /* 0x1E8480 */;
}
Symbol 302 MovieClip [BlastMedium] Frame 5
this.stop();
var spazzed = new Array();
for (var i in _root.attackers) {
var attacker = _root.attackers[i];
var point = new Object();
point.x = attacker._x;
point.y = attacker._y;
if (this.hitTest(point.x, point.y, true)) {
spazzed.push(attacker);
}
}
var i = 0;
while (i < spazzed.length) {
var attacker = spazzed[i];
attacker.hit(this.weapon_damage);
i++;
}
this.play();
Symbol 302 MovieClip [BlastMedium] Frame 38
this.stop();
this.removeMovieClip();
Symbol 306 MovieClip [RocketNukeBlast] Frame 1
this.play();
if (this.weapon_damage == undefined) {
this.weapon_damage = 5000000 /* 0x4C4B40 */;
}
Symbol 306 MovieClip [RocketNukeBlast] Frame 5
this.stop();
var spazzed = new Array();
for (var i in _root.attackers) {
var attacker = _root.attackers[i];
var point = new Object();
point.x = attacker._x;
point.y = attacker._y;
if (this.hitTest(point.x, point.y, true)) {
spazzed.push(attacker);
}
}
var i = 0;
while (i < spazzed.length) {
var attacker = spazzed[i];
attacker.hit(this.weapon_damage);
i++;
}
this.play();
Symbol 306 MovieClip [RocketNukeBlast] Frame 38
this.stop();
this.removeMovieClip();
Symbol 310 MovieClip [SpecialFire] Frame 1
this.play();
Symbol 310 MovieClip [SpecialFire] Frame 14
this.stop();
this.removeMovieClip();
Symbol 313 MovieClip [SpecialTake] Frame 1
this.play();
Symbol 313 MovieClip [SpecialTake] Frame 14
this.stop();
this.removeMovieClip();
Symbol 314 MovieClip [AddonClusterBlast] Frame 1
this.stop();
if (!this.cluster_damage) {
this.cluster_damage = 1000000 /* 0x0F4240 */;
}
if (!this.cluster_qty) {
this.cluster_qty = 4;
}
if (!this.cluster_laser) {
this.cluster_laser = false;
}
if (!this.cluster_holding) {
this.cluster_holding = true;
}
if (!this.cluster_rocket) {
this.cluster_rocket = "Rocket9";
}
this.gotoAndPlay("Fire");
Symbol 314 MovieClip [AddonClusterBlast] Frame 6
this.stop();
var i = 0;
while (i < this.cluster_qty) {
var new_b_name = ("ClusterRocket" + i);
var new_b_type = this.cluster_rocket;
var new_b_lev = _root.getNextHighestDepth();
var new_b = _root.attachMovie(new_b_type, new_b_name, new_b_lev);
var point = new Object();
point.x = this._x;
point.y = this._y;
new_b._x = point.x;
new_b._y = point.y;
new_b._rotation = new_b._rotation + (((i + 1) / this.cluster_qty) * 360);
var movement = _root.trigForwardAtAngle(new_b._rotation, 30);
new_b._x = new_b._x + movement.x;
new_b._y = new_b._y + movement.y;
new_b.bullet_target = false;
new_b.bullet_damage = this.cluster_damage;
new_b.turret = this;
new_b.holding_pattern = this.cluster_holding;
new_b.laser_capable = this.cluster_laser;
new_b.laser_damage = this.cluster_damage;
i++;
}
this.gotoAndPlay("Spent");
Symbol 314 MovieClip [AddonClusterBlast] Frame 11
this.stop();
this.removeMovieClip();
Symbol 321 MovieClip Frame 1
this.stop();
this.mine_location = this._parent.mine_location;
this.mine_range = this._parent.mine_range;
this.bullet_speed = this._parent.bullet_speed;
this.bullet_rotation = this._parent.bullet_rotation;
this.bullet_damage = this._parent.bullet_damage;
this.blast = this._parent.blast;
this.blast_type = this._parent.blast_type;
this.blast_damage = this._parent.blast_damage;
this.cluster = this._parent.cluster;
this.cluster_qty = this._parent.cluster_qty;
this.cluster_holding = this._parent.cluster_holding;
this.cluster_damage = this._parent.cluster_damage;
this.cluster_rocket = this._parent.cluster_rocket;
this.cluster_laser = this._parent.cluster_laser;
if (!this.mine_location) {
this.mine_location = false;
}
if (!this.mine_range) {
this.mine_range = 20;
}
if (!this.bullet_speed) {
this.bullet_speed = 220;
}
if (!this.bullet_rotation) {
this.bullet_rotation = 0;
}
if (!this.bullet_damage) {
this.bullet_damage = 1000000 /* 0x0F4240 */;
}
if (!this.blast) {
this.blast = true;
}
if (!this.blast_type) {
this.blast_type = "BlastMedium";
}
if (!this.blast_damage) {
this.blast_damage = 1000000 /* 0x0F4240 */;
}
if (!this.cluster) {
this.cluster = false;
}
if (!this.cluster_qty) {
this.cluster_qty = 5;
}
if (!this.cluster_holding) {
this.cluster_holding = true;
}
if (!this.cluster_damage) {
this.cluster_damage = 1000000 /* 0x0F4240 */;
}
if (!this.cluster_rocket) {
this.cluster_rocket = false;
}
if (!this.cluster_laser) {
this.cluster_laser = false;
}
this.target_obj = this._parent;
this.time_last = _root.Clock.timeNow();
this.target_locked = false;
this.WeaponController.weapon = this.target_obj;
this.gotoAndPlay("Attack");
this.stop();
Symbol 321 MovieClip Frame 2
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
if (time_diff > 0) {
var target_x = this.mine_location.x;
var target_y = this.mine_location.y;
var d_x = (target_x - this.target_obj._x);
var d_y = (target_y - this.target_obj._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.bullet_speed * time_diff));
var move_y = ((d_y / dist) * (this.bullet_speed * time_diff));
this.target_obj._x = this.target_obj._x + move_x;
this.target_obj._y = this.target_obj._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this.target_obj._x = target_x;
this.target_obj._y = target_y;
this.gotoAndPlay("Planted");
} else {
this.play();
}
} else {
this.play();
}
Symbol 321 MovieClip Frame 3
this.stop();
this.gotoAndPlay("Attack");
Symbol 321 MovieClip Frame 4
this.stop();
if (!this.target_locked) {
this.WeaponController.weapon = this.target_obj;
this.target_locked = true;
}
var target = this.WeaponController.findAttackerInRange(near, this.mine_range);
if (target) {
if (this.blast == true) {
var new_type = this.blast_type;
var new_lev = _root.getNextHighestDepth();
var new_name = (new_type + new_lev);
var new_b = _root.attachMovie(new_type, new_name, new_lev);
new_b._x = this.target_obj._x;
new_b._y = this.target_obj._y;
new_b.weapon_damage = this.blast_damage;
}
if (this.cluster == true) {
var new_type = "AddonClusterBlast";
var new_lev = _root.getNextHighestDepth();
var new_name = (new_type + new_lev);
var new_b = _root.attachMovie(new_type, new_name, new_lev);
new_b._x = this.target_obj._x;
new_b._y = this.target_obj._y;
new_b.cluster_damage = this.cluster_damage;
new_b.cluster_qty = this.cluster_qty;
new_b.cluster_laser = this.cluster_laser;
new_b.cluster_holding = this.cluster_holding;
new_b.cluster_rocket = this.cluster_rocket;
}
this.gotoAndPlay("Detonated");
} else {
this.play();
}
Symbol 321 MovieClip Frame 14
this.stop();
this.gotoAndPlay("Planted");
Symbol 321 MovieClip Frame 15
this.stop();
this.target_obj.removeMovieClip();
Symbol 326 MovieClip [LandmineBig] Frame 1
this.stop();
this.play();
Symbol 326 MovieClip [LandmineBig] Frame 2
this.play();
Symbol 326 MovieClip [LandmineBig] Frame 19
this.gotoAndPlay("Beep");
Symbol 330 MovieClip [LandmineBigClusterLaser] Frame 1
this.stop();
this.play();
Symbol 330 MovieClip [LandmineBigClusterLaser] Frame 2
this.play();
Symbol 330 MovieClip [LandmineBigClusterLaser] Frame 19
this.gotoAndPlay("Beep");
Symbol 332 MovieClip [LandmineBigCluster] Frame 1
this.stop();
this.play();
Symbol 332 MovieClip [LandmineBigCluster] Frame 2
this.play();
Symbol 332 MovieClip [LandmineBigCluster] Frame 19
this.gotoAndPlay("Beep");
Symbol 336 MovieClip [Landmine] Frame 1
this.stop();
this.play();
Symbol 336 MovieClip [Landmine] Frame 2
this.play();
Symbol 336 MovieClip [Landmine] Frame 19
this.gotoAndPlay("Beep");
Symbol 339 MovieClip [WeaponStoreItem] Frame 1
this.stop();
if (!this.item_cost) {
this.item_cost = "999";
}
if (!this.item_id) {
this.item_id = "TurretBlue";
}
if (!this.item_type) {
this.item_type = "Blue";
}
var new_id = this.item_id;
var new_lev = this.getNextHighestDepth();
var new_name = (("WeaponRackItem" + new_id) + new_lev);
var new_item = this.attachMovie(new_id, new_name, new_lev);
new_item.active = false;
new_item._x = ItemPoint._x;
new_item._y = ItemPoint._y;
new_item._rotation = 45;
ItemCost.text = "$" + this.item_cost;
this.turret = new_item;
Symbol 342 MovieClip [RadarBlip] Frame 1
this.play();
Symbol 342 MovieClip [RadarBlip] Frame 52
this.stop();
this.removeMovieClip();
Symbol 347 MovieClip [MessageBox] Frame 1
this.stop();
this.setText = function (new_text) {
TheMessage.text = new_text;
};
this.setText("A message");
Symbol 348 MovieClip [MessageBar] Frame 1
this.show_time = 4000;
this.show_total = 0;
this.move_speed = 50;
this.hidden_x = MessageBox._x;
this.hidden_y = MessageBox._y;
this.shown_x = MessageBox._x;
this.shown_y = -MessageBox._height;
this.msg_queue = new Array();
this.showing = false;
this.time_last = false;
this.messageShow = function (the_text) {
this.msg_queue.push(the_text);
this.messageReceived();
};
this.messageReceived = function () {
if (this.showing == false) {
MessageBox.setText(this.msg_queue.shift());
this.time_last = new Date();
this.gotoAndPlay("Reveal");
}
};
this.stop();
this.showing = false;
Symbol 348 MovieClip [MessageBar] Frame 3
this.stop();
var time_now = new Date();
var time_diff = (time_now.getTime() - this.time_last.getTime());
this.time_last = time_now;
this.showing = true;
var target_x = this.shown_x;
var target_y = this.shown_y;
var src_x = MessageBox._x;
var src_y = MessageBox._y;
var pt_from = new Object({_x:src_x, _y:src_y});
var pt_to = new Object({_x:target_x, _y:target_y});
var move_angle = _root.degreesToTarget(pt_from, pt_to);
var move_amount = ((this.time_diff / 1000) * this.move_speed);
var movement = _root.trigForwardAtAngle(move_angle, move_amount);
var d_x = (target_y - src_y);
var d_y = (target_x - src_x);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_d_x = movement.x;
var move_d_y = movement.y;
var move_dist = Math.sqrt((move_d_x * move_d_x) + (move_d_y * move_d_y));
if (dist <= move_dist) {
MessageBox._x = target_x;
MessageBox._y = target_y;
this.show_total = 0;
this.gotoAndPlay("Wait");
} else {
MessageBox._x = MessageBox._x + movement.x;
MessageBox._y = MessageBox._y + movement.y;
this.play();
}
Symbol 348 MovieClip [MessageBar] Frame 4
this.gotoAndPlay("Reveal");
Symbol 348 MovieClip [MessageBar] Frame 5
this.stop();
var time_now = new Date();
var time_diff = (time_now.getTime() - this.time_last.getTime());
this.time_last = time_now;
this.show_total = this.show_total + time_diff;
if (this.show_total >= this.show_time) {
this.gotoAndPlay("Hide");
} else {
this.play();
}
Symbol 348 MovieClip [MessageBar] Frame 6
this.gotoAndPlay("Wait");
Symbol 348 MovieClip [MessageBar] Frame 7
this.stop();
var time_now = new Date();
var time_diff = (time_now.getTime() - this.time_last.getTime());
this.time_last = time_now;
var target_x = this.hidden_x;
var target_y = this.hidden_y;
var src_x = MessageBox._x;
var src_y = MessageBox._y;
var pt_from = new Object({_x:src_x, _y:src_y});
var pt_to = new Object({_x:target_x, _y:target_y});
var move_angle = _root.degreesToTarget(pt_from, pt_to);
var move_amount = ((this.time_diff / 1000) * this.move_speed);
var movement = _root.trigForwardAtAngle(move_angle, move_amount);
var d_x = (target_y - src_y);
var d_y = (target_x - src_x);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_d_x = movement.x;
var move_d_y = movement.y;
var move_dist = Math.sqrt((move_d_x * move_d_x) + (move_d_y * move_d_y));
if (dist <= move_dist) {
MessageBox._x = target_x;
MessageBox._y = target_y;
if (this.msg_queue.length > 0) {
MessageBox.setText(this.msg_queue.shift());
this.time_last = new Date();
this.gotoAndPlay("Reveal");
} else {
this.gotoAndStop("Idle");
}
} else {
MessageBox._x = MessageBox._x + movement.x;
MessageBox._y = MessageBox._y + movement.y;
this.play();
}
Symbol 348 MovieClip [MessageBar] Frame 8
this.gotoAndPlay("Hide");
Symbol 352 MovieClip [TurretBuilder] Frame 1
this.stop();
if (this.cash_value == undefined) {
this.cash_value = 0;
}
if (this.turret_type == undefined) {
this.turret_type = "Blue";
}
if (this.turret_num == undefined) {
this.turret_num = 0;
}
if (this.active == undefined) {
this.active = true;
}
this.play();
Symbol 352 MovieClip [TurretBuilder] Frame 11
this.stop();
_root.turret_counter++;
var new_depth = _root.getNextHighestDepth();
var new_type = ("Turret" + this.turret_type);
var new_name = (new_type + _root.turret_counter);
var new_turret = _root.attachMovie(new_type, new_name, new_depth);
new_turret._x = this._x;
new_turret._y = this._y;
new_turret._alpha = 0;
new_turret.turret_type = this.turret_type;
new_turret.turret_num = _root.turret_counter;
new_turret.cash_value = parseInt(this.cash_value);
new_turret.active = this.active;
for (var i in _root.turrets) {
var the_tur = _root.turrets[i];
the_tur.notifyNew(new_turret);
}
_root.turrets.push(new_turret);
this.new_turret = new_turret;
this.play();
Symbol 352 MovieClip [TurretBuilder] Frame 14
this.stop();
this.new_turret._alpha = this.new_turret._alpha + 12;
if (this.new_turret._alpha >= 100) {
this.gotoAndPlay("Done");
} else {
this.play();
}
Symbol 352 MovieClip [TurretBuilder] Frame 16
this.gotoAndPlay("FadeIn");
Symbol 352 MovieClip [TurretBuilder] Frame 18
this.stop();
_root.NewTurretBuilt(this);
Symbol 359 MovieClip [Mute] Frame 1
this.stop();
this.onPress = function () {
this.soundToggleMute();
};
this.soundMute = function () {
this.sound_muted = true;
Muted._visible = true;
this._parent.sound_muted = this.sound_muted;
};
this.soundUnmute = function () {
this.sound_muted = false;
Muted._visible = false;
this._parent.sound_muted = this.sound_muted;
};
this.soundToggleMute = function () {
if (this.sound_muted == true) {
this.soundUnmute();
} else {
this.soundMute();
}
};
this.soundMute();
Symbol 368 MovieClip [UpgradeBuyButton] Frame 1
if (!this.the_cost) {
this.the_cost = 1000000 /* 0x0F4240 */;
}
this.CanBuy._visible = false;
this.CannotBuy._visible = true;
this.setCost = function (new_cost) {
this.the_cost = new_cost;
BuyCost.text = "$" + this.the_cost;
};
this.setMax = function () {
this.CanBuy._visible = false;
this.CannotBuy._visible = true;
BuyCost.text = "Max!";
};
onEnterFrame = function () {
if (_root.CanAfford(this.the_cost)) {
this.CanBuy._visible = true;
this.CannotBuy._visible = false;
} else {
this.CanBuy._visible = false;
this.CannotBuy._visible = true;
}
};
this.stop();
Symbol 370 MovieClip [UpgradeGraphBar] Frame 1
this.stop();
Symbol 372 MovieClip [UpgradeGraphBarGreen] Frame 1
this.stop();
Symbol 374 MovieClip [UpgradeGraphBarYellow] Frame 1
this.stop();
Symbol 379 MovieClip [UpgradeGraph] Frame 1
if (this.peak_max == undefined) {
this.peak_max = 100000 /* 0x0186A0 */;
}
if (this.steps == undefined) {
this.steps = new Array();
this.steps.push(100);
this.steps.push(1000);
this.steps.push(10000);
this.steps.push(60000);
}
if (this.bar_x == undefined) {
this.bar_x = 3;
}
if (this.bar_y == undefined) {
this.bar_y = 14;
}
if (this.bar_space == undefined) {
this.bar_space = 1;
}
if (this.step_bars == undefined) {
this.step_bars = 15;
}
if (this.scale_minor == undefined) {
this.scale_minor = 9;
}
this.setCurrent = function (the_val) {
this.setValue(the_val, "BarCurrent");
};
this.setPossible = function (the_val) {
this.setValue(the_val, "BarPossible");
};
this.setLimit = function (the_val) {
var _local2 = "BarLimit";
var _local3 = this.getWidth(the_val);
this[_local2]._width = this.bar_x;
this[_local2]._height = this.bar_y;
this[_local2]._x = _local3 - this.bar_x;
this[_local2]._y = 0;
};
this.setValue = function (the_val, the_bar) {
var _local3 = this.getWidth(the_val);
this[the_bar]._width = _local3;
this[the_bar]._height = this.bar_y;
this[the_bar]._y = 0;
};
this.getWidth = function (the_val) {
var _local11 = this.steps;
var _local4 = 0;
var _local10 = 0;
var _local3 = 0;
while (_local3 < _local11.length) {
var _local2 = this.steps[_local3];
if (the_val >= _local2) {
_local10 = _local10 + (this.step_bars * (this.bar_x + this.bar_space));
} else if ((the_val >= _local4) and (the_val < _local2)) {
var _local9 = this.step_bars * (this.bar_x + this.bar_space);
var _local7 = _local2 - _local4;
var _local8 = the_val - _local4;
var _local6 = _local8 / _local7;
_local10 = _local10 + (_local9 * _local6);
}
_local4 = _local2;
_local3++;
}
return(_local10);
};
var block_width = (this.step_bars * (this.bar_x + this.bar_space));
var minor_num = (this.steps.length * this.scale_minor);
var minor_space = (block_width / this.scale_minor);
var i = 1;
while (i <= minor_num) {
var new_item = "UpgradeGraphScaleMinor";
var new_name = ((("ScaleMinorUnit-" + i) + "-") + j);
var new_depth = this.getNextHighestDepth();
new_unit = this.attachMovie(new_item, new_name, new_depth);
new_unit._x = i * minor_space;
new_unit._y = 0;
i++;
}
var i = 1;
while (i <= this.steps.length) {
var new_item = "UpgradeGraphScale";
var new_name = ((("ScaleUnit-" + i) + "-") + j);
var new_depth = this.getNextHighestDepth();
new_unit = this.attachMovie(new_item, new_name, new_depth);
new_unit._x = i * block_width;
new_unit._y = 0;
new_unit.marker = this.steps[i - 1];
i++;
}
var block_width = (this.step_bars * (this.bar_x + this.bar_space));
var full_width = this.steps.length;
this.Background._width = (block_width * full_width) + 2;
this.Background._height = this.bar_y + 2;
this.Background._x = -1;
this.Background._y = 0;
this.Background._visible = true;
this.Fade._width = (block_width * full_width) + 1;
this.Fade._height = this.bar_y;
this.Fade._x = 0;
this.Fade._y = 0;
this.Fade._visible = true;
this.stop();
Symbol 382 Button
on (press) {
this.tryUpgradeDamage();
}
Symbol 383 Button
on (press) {
this.tryUpgradeRange();
}
Symbol 384 Button
on (press) {
this.tryUpgradeRate();
}
Symbol 388 MovieClip [UpgradePanel] Frame 1
this.damage_upgrade = false;
this.damage_cost = false;
this.damage_max = false;
this.range_upgrade = false;
this.range_cost = false;
this.range_max = false;
this.rate_upgrade = false;
this.rate_cost = false;
this.rate_max = false;
this.turret_damage = false;
this.turret_range = false;
this.turret_rate = false;
this.turret_type = false;
this.getStats = function (the_turret) {
if (the_turret) {
this.damage_upgrade = the_turret.getUpgrade("damage");
this.damage_cost = the_turret.getUpgradeCost("damage");
this.damage_max = the_turret.getMax("damage");
this.range_upgrade = the_turret.getUpgrade("range");
this.range_cost = the_turret.getUpgradeCost("range");
this.range_max = the_turret.getMax("range");
this.rate_upgrade = the_turret.getUpgrade("rate");
this.rate_cost = the_turret.getUpgradeCost("rate");
this.rate_max = the_turret.getMax("rate");
this.turret_damage = the_turret.weapon_damage;
this.turret_range = the_turret.weapon_range;
this.turret_rate = the_turret.weapon_rate;
this.turret_type = the_turret.turret_type;
this.updateStats();
this.gotoAndPlay("Viewing");
}
};
this.updateStats = function () {
this.GraphDamage.setCurrent(this.turret_damage);
this.GraphDamage.setPossible(this.damage_upgrade);
this.GraphDamage.setLimit(this.damage_max);
this.GraphRange.setCurrent(this.turret_range);
this.GraphRange.setPossible(this.range_upgrade);
this.GraphRange.setLimit(this.range_max);
this.GraphRate.setCurrent(this.turret_rate);
this.GraphRate.setPossible(this.rate_upgrade);
this.GraphRate.setLimit(this.rate_max);
DamageCost.text = "";
RangeCost.text = "";
RateCost.text = "";
if (this.damage_upgrade) {
BuyDamage.setCost(this.damage_cost);
}
if (this.range_upgrade) {
BuyRange.setCost(this.range_cost);
}
if (this.rate_upgrade) {
BuyRate.setCost(this.rate_cost);
}
if (this.turret_damage eq this.damage_max) {
BuyDamage.setMax();
}
if (this.turret_range eq this.range_max) {
BuyRange.setMax();
}
if (this.turret_rate eq this.rate_max) {
BuyRate.setMax();
}
};
this.onEnterFrame = function () {
this.turret = _root.cur_turret;
if (this.turret) {
this.getStats(this.turret);
}
};
this.tryUpgradeDamage = function () {
if (this.damage_upgrade) {
this.turret.upgradeDamage();
}
};
this.tryUpgradeRange = function () {
if (this.range_upgrade) {
this.turret.upgradeRange();
}
};
this.tryUpgradeRate = function () {
if (this.rate_upgrade) {
this.turret.upgradeRate();
}
};
_root.cur_turret_name = "";
this.stop();
Symbol 388 MovieClip [UpgradePanel] Frame 4
this.GraphDamage.steps = new Array();
this.GraphDamage.steps.push(10);
this.GraphDamage.steps.push(100);
this.GraphDamage.steps.push(1000);
this.GraphDamage.steps.push(10000);
this.GraphDamage.steps.push(65000);
this.GraphRange.steps = new Array();
this.GraphRange.steps.push(100);
this.GraphRange.steps.push(150);
this.GraphRange.steps.push(200);
this.GraphRange.steps.push(250);
this.GraphRange.steps.push(350);
this.GraphRate.steps = new Array();
this.GraphRate.steps.push(50);
this.GraphRate.steps.push(100);
this.GraphRate.steps.push(150);
this.GraphRate.steps.push(200);
this.GraphRate.steps.push(250);
_root.cur_turret_name = _root.cur_turret._name;
this.stop();
if (this.turret) {
this.getStats(this.turret);
} else {
this.gotoAndStop("Idle");
}
Symbol 391 MovieClip [WeaponStoreRack] Frame 1
this.stop();
this.item_list = new Array();
this.item_width = 42;
this.item_height = 50;
this.view_move_speed = 250;
this.by_type = new Array();
this.rackItemAdd = function (item_id, item_cost, item_type) {
var _local3 = "WeaponStoreItem";
var _local4 = this.getNextHighestDepth();
var _local6 = _local3 + _local4;
var _local2 = this.attachMovie(_local3, _local6, _local4);
_local2.item_cost = item_cost;
_local2.item_id = item_id;
_local2.item_type = item_type;
var _local5 = this.rackSize();
var _local8 = _local5 * this.item_width;
var _local7 = 0;
_local2._x = _local8;
_local2._y = _local7;
this.item_list.push(_local2);
this.by_type[item_type] = _local2;
};
this.rackItemType = function (item_num) {
var _local2 = this.item_list[item_num];
return(_local2.item_type);
};
this.rackView = function (item_num) {
this.target_x = -(item_num * this.item_width);
this.target_y = this._y;
this.time_last = _root.Clock.timeNow();
this.gotoAndPlay("ViewItem");
};
this.rackSize = function () {
return(this.item_list.length);
};
this.rackReset = function () {
var _local3 = 0;
while (_local3 < this.item_list.length) {
var _local4 = this.item_list[_local3];
_local4.removeMovieClip();
_local3++;
}
this.item_list = new Array();
this.rackItemAdd("TurretBlue", _root.turrets_cost.Blue, "Blue");
this.rackItemAdd("TurretGreen", _root.turrets_cost.Green, "Green");
this.rackItemAdd("TurretRed", _root.turrets_cost.Red, "Red");
};
this.rackTypeRange = function (the_type) {
var _local2 = this.by_type[the_type];
var _local3 = _local2.turret.weapon_range;
return(_local3);
};
this.stop();
this.rackReset();
Symbol 391 MovieClip [WeaponStoreRack] Frame 2
this.stop();
Symbol 391 MovieClip [WeaponStoreRack] Frame 3
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = ((time_now - this.time_last) / 1000);
this.time_last = time_now;
var d_x = (this.target_x - this._x);
var d_y = (this.target_y - this._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_x = ((d_x / dist) * (this.view_move_speed * time_diff));
var move_y = ((d_y / dist) * (this.view_move_speed * time_diff));
this._x = this._x + move_x;
this._y = this._y + move_y;
move_dist = Math.sqrt((move_x * move_x) + (move_y * move_y));
dist = Math.abs(dist);
move_dist = Math.abs(move_dist);
if (dist <= move_dist) {
this._x = this.target_x;
this._y = this.target_y;
this.gotoAndStop("Idle");
} else {
this.play();
}
Symbol 391 MovieClip [WeaponStoreRack] Frame 4
this.gotoAndPlay("ViewItem");
Symbol 396 Button
on (release) {
storeNextItem();
}
Symbol 399 Button
on (release) {
storePrevItem();
}
Symbol 400 MovieClip [WeaponStore] Frame 1
this.stop();
this.item_current = 0;
this.storeNextItem = function () {
var _local2 = this.item_current + 1;
var _local3 = WeaponRack.rackSize();
if (_local2 < _local3) {
this.item_current = _local2;
}
WeaponRack.rackView(this.item_current);
};
this.storePrevItem = function () {
var _local2 = this.item_current - 1;
if (_local2 >= 0) {
this.item_current = _local2;
}
WeaponRack.rackView(this.item_current);
};
this.storeAddItem = function (item_id, item_cost, item_type) {
WeaponRack.rackItemAdd(item_id, item_cost, item_type);
};
this.storeBuyItem = function () {
var _local3 = WeaponRack.rackItemType(this.item_current);
_root.TryAndBuild(_local3);
};
this.storeEmpty = function () {
WeaponRack.rackReset();
this.item_current = 0;
WeaponRack.rackView(this.item_current);
};
this.storeGetRange = function (the_type) {
return(WeaponRack.rackTypeRange(the_type));
};
this.stop();
WeaponRack.setMask(WeaponStoreMask);
Instance of Symbol 391 MovieClip [WeaponStoreRack] "WeaponRack" in Symbol 400 MovieClip [WeaponStore] Frame 1
on (press) {
this._parent.storeBuyItem();
}
Symbol 404 MovieClip Frame 1
this.stop();
this.killed = function () {
this.gotoAndStop("Dead");
};
this.alive = function () {
this.gotoAndStop("Alive");
};
this.stop();
Symbol 404 MovieClip Frame 6
this.stop();
Symbol 411 MovieClip [PlayerBase] Frame 1
this.stop();
this.lifeLost = function (the_life) {
var _local3 = "Life" + the_life;
var _local2 = this[_local3];
if (_local2) {
_local2.killed();
}
};
this.resetLives = function () {
var _local2 = 1;
while (_local2 <= 10) {
var _local4 = "Life" + _local2;
var _local3 = this[_local4];
if (_local3) {
_local3.alive();
}
_local2++;
}
};
this.onLoad = function () {
this.resetLives();
};
Symbol 415 MovieClip [WaveManager] Frame 1
this.stop();
if (this.wave_spacing == undefined) {
this.wave_spacing = 20000;
}
if (this.wave_size == undefined) {
this.wave_size = 10;
}
if (this.attacker_spacing == undefined) {
this.attacker_spacing = 1000;
}
this.time_last = _root.Clock.timeNow();
this.cur_wave = 0;
this.SendWave = function () {
if (_root.game_over == true) {
return(false);
}
if (_root.game_paused == true) {
return(false);
}
this.time_last = _root.Clock.timeNow();
this.attackers_sent = 0;
this._parent.NextWave();
var _local4 = "WaveSender";
var _local5 = "WaveSender" + this.cur_wave;
var _local6 = this._parent.getNextHighestDepth();
var _local3 = this._parent.attachMovie(_local4, _local5, _local6);
_local3.wave_size = this.wave_size;
_local3.wave_num = this.cur_wave;
_local3.attacker_spacing = this.attacker_spacing;
_local3.attacker_energy = this._parent.attacker_energy;
_local3.attacker_value = this._parent.attacker_value;
this._parent.waves.push(_local3);
this.cur_wave++;
};
this.gotoAndPlay("Spawn");
this.stop();
Symbol 415 MovieClip [WaveManager] Frame 5
var time_now = _root.Clock.timeNow();
var time_wave = (time_now - this.time_last);
if (time_wave >= this.wave_spacing) {
this.SendWave();
}
var time_wave_secs = Math.floor((Math.abs(time_wave) - this.wave_spacing) / 1000);
var next_mins = Math.floor(Math.abs(time_wave_secs) / 60);
var next_secs = (Math.abs(time_wave_secs) % 60);
if (next_secs < 10) {
next_secs = "0" + next_secs;
}
if (next_mins < 10) {
next_mins = "0" + next_mins;
}
this.WaveText.text = next_secs;
this.play();
Symbol 415 MovieClip [WaveManager] Frame 9
this.gotoAndPlay("Spawn");
Symbol 415 MovieClip [WaveManager] Frame 13
this.stop();
Symbol 416 MovieClip [AttackerPath] Frame 1
this.stop();
if (!this.dump_points) {
this.dump_points = false;
}
if (!this.waypoint_total) {
this.waypoint_total = this._parent.waypoint_total;
}
if (!this.line_width) {
this.line_width = 28;
}
if (!this.line_colour) {
this.line_colour = "0xb2885b";
}
if (!this.line_alpha) {
this.line_alpha = "100";
}
if (!this.mao_layout) {
this.mao_layout = false;
}
if (!this.map_base) {
this.map_base = false;
}
if (this.map_layout) {
var count = 0;
var i = 0;
while (i < this.map_layout.length) {
count++;
var point = this.map_layout[i];
var new_name = ("Waypoint" + count);
var new_depth = this._parent.getNextHighestDepth();
var new_id = "Waypoint";
var new_wp = this._parent.attachMovie(new_id, new_name, new_depth);
new_wp._x = point.x;
new_wp._y = point.y;
new_wp._visible = false;
this._parent.waypoints.push(new_wp);
i++;
}
this.waypoint_total = count;
this._parent.waypoint_total = count;
}
if (this.map_base) {
var point = this.map_base;
var new_name = "PlayerBase";
var new_depth = this._parent.getNextHighestDepth();
var new_id = "PlayerBase";
var new_base = this._parent.attachMovie(new_id, new_name, new_depth);
new_base._x = point.x;
new_base._y = point.y;
_root.PlayerBase = new_base;
}
this._x = 0;
this._y = 0;
this.map_as_vec = new Array();
this.mine_points = new Array();
var point = this._parent.Waypoint1;
this.moveTo(point._x, point._y);
this.lineStyle(this.line_width + 3, "0x666666", this.line_alpha);
if (this.dump_points) {
trace((point._x + ", ") + point._y);
}
var point_from = new Object({_x:point._x, _y:point._y});
var point_to = new Object();
var i = 2;
while (i <= this.waypoint_total) {
var point = this._parent["Waypoint" + i];
this.lineTo(point._x, point._y);
var point_to = new Object({_x:point._x, _y:point._y});
var d_x = (point_to._x - point_from._x);
var d_y = (point_to._y - point_from._y);
var dist = Math.sqrt((d_x * d_x) + (d_y * d_y));
var move_dist = 4;
this.num_points = dist / move_dist;
this.angle_from = new Object({_x:point_from._x, _y:point_from._y});
this.angle_to = new Object({_x:point_to._x, _y:point_to._y});
var angle = _root.degreesToTarget(angle_from, angle_to);
var am_at = new Object({_x:point_from._x, _y:point_from._y});
var j = 0;
while (j < num_points) {
var movement = _root.trigForwardAtAngle(angle, move_dist);
am_at._x = am_at._x + movement.x;
am_at._y = am_at._y + movement.y;
var the_point = new Object({_x:am_at._x, _y:am_at._y});
this.mine_points.push(the_point);
j++;
}
var point_vec = new Object({from:point_from, to:point_to});
this.map_as_vec.push(point_vec);
point_from = point_to;
if (this.dump_points) {
trace((point._x + ", ") + point._y);
}
i++;
}
var point = this._parent.Waypoint1;
this.moveTo(point._x, point._y);
this.lineStyle(this.line_width, this.line_colour, this.line_alpha);
var i = 2;
while (i <= this.waypoint_total) {
var point = this._parent["Waypoint" + i];
this.lineTo(point._x, point._y);
i++;
}
this.getRoadAsVectors = function () {
return(this.map_as_vec);
};
this.getMinePoints = function () {
return(this.mine_points);
};
Symbol 418 MovieClip [Waypoint] Frame 1
Symbol 426 MovieClip [TurretUpgradeLevels] Frame 1
this.stop();
if (this.init_val == undefined) {
this.init_val = false;
}
if (this.full_sweep == undefined) {
this.full_sweep = 120;
}
this.setPercentage = function (new_val) {
var _local3 = Math.min(100, Math.max(0, new_val));
var _local5 = 99.9;
var _local4 = 0 + ((_local3 / 100) * this.full_sweep);
_local4 = _local4 / 2;
this.BarLeft._rotation = _local4;
this.LineLeft._rotation = _local4;
this.BarRight._rotation = 180 + (-_local4);
this.LineRight._rotation = 180 + (-_local4);
var _local21 = 255;
var _local14 = 32;
var _local20 = 32;
var _local17 = (("0x" + _root.dec2hex(_local21)) + _root.dec2hex(_local14)) + _root.dec2hex(_local20);
var _local10 = 255;
var _local11 = 255;
var _local9 = 32;
var _local35 = (("0x" + _root.dec2hex(_local10)) + _root.dec2hex(_local11)) + _root.dec2hex(_local9);
var _local18 = 64;
var _local23 = 255;
var _local16 = 64;
var _local15 = (("0x" + _root.dec2hex(_local18)) + _root.dec2hex(_local23)) + _root.dec2hex(_local16);
var _local12 = _local21;
var _local19 = _local14;
var _local13 = _local20;
var _local32 = _local10;
var _local31 = _local11;
var _local33 = _local9;
if (_local3 >= _local5) {
_local12 = _local10;
_local19 = _local11;
_local13 = _local9;
_local32 = _local18;
_local31 = _local23;
_local33 = _local16;
}
var _local28 = _local32 - _local12;
var _local25 = _local31 - _local19;
var _local30 = _local33 - _local13;
var _local6 = new Color(this.BarLeft);
var _local8 = new Color(this.BarRight);
if (_local3 >= 100) {
_local6.setRGB(_local15);
_local8.setRGB(_local15);
this.LineLeft._visible = false;
this.LineRight._visible = false;
} else if (_local3 <= 0) {
_local6.setRGB(_local17);
_local8.setRGB(_local17);
} else {
var _local7 = 0;
if (_local3 < _local5) {
var _local27 = _local3;
var _local34 = _local5;
_local7 = _local27 / _local34;
} else {
var _local27 = _local3 - _local5;
var _local34 = 100 - _local5;
_local7 = _local27 / _local34;
}
var _local26 = Math.floor(_local12 + (_local7 * _local28));
var _local29 = Math.floor(_local19 + (_local7 * _local25));
var _local24 = Math.floor(_local13 + (_local7 * _local30));
var _local22 = (("0x" + _root.dec2hex(_local26)) + _root.dec2hex(_local29)) + _root.dec2hex(_local24);
_local6.setRGB(_local22);
_local8.setRGB(_local22);
}
};
if (this.init_val != false) {
this.setPercentage(this.init_val);
}
Symbol 428 MovieClip [TurretBlue] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 15;
}
if (this.weapon_range == undefined) {
this.weapon_range = 130;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 100;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
this.weapon_type = "Bullet";
this.weapon_fired = 0;
this.weapon_fire_count = 0;
this.weapon_kill_count = 0;
this.WeaponController.weapon_range = this.weapon_range;
this.WeaponController.weapon = this.Weapon;
this.WeaponLegs._rotation = Math.random() * 90;
this.fireAt = function (the_target, the_damage) {
this.weapon_fired = _root.Clock.timeNow();
this.Weapon.fire();
this.weapon_fire_count++;
_root.WeaponFired();
var _local5 = "BlueBullet" + this.weapon_fire_count;
var _local7 = this.weapon_type;
var _local6 = _root.getNextHighestDepth();
var _local3 = _root.attachMovie(_local7, _local5, _local6);
var _local4 = new Object();
_local4.x = this.Weapon.FirePoint._x;
_local4.y = this.Weapon.FirePoint._y;
this.Weapon.localToGlobal(_local4);
_local3._x = _local4.x;
_local3._y = _local4.y;
_root.soundEffect("BangSmall");
_local3.bullet_target = the_target;
_local3.bullet_damage = the_damage;
_local3.turret = this;
_root.TurretFired(_local3);
return(_local3);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.freak_available = false;
this.freak_level_damage = 4;
this.freak_level_range = 0;
this.freak_level_rate = 4;
this.freak_last = _root.Clock.timeNow();
this.freak_start = _root.Clock.timeNow();
this.freak_next = false;
this.freak_length = 5000;
this.freak_space = 80000 /* 0x013880 */;
this.freak_damage_mult = 3;
this.freak_range_mult = 1;
this.freak_rate_mult = 4;
this.freak_twitch_x = 4;
this.freak_twitch_y = 4;
this.freak_start_x = this.Weapon._x;
this.freak_start_y = this.Weapon._y;
this.freak_warn_time = 3000;
this.freak_total_time = this.freak_length + this.freak_warn_time;
this.freakOut = function () {
var _local3 = _root.Clock.timeNow();
this.freak_last = _local3;
this.freak_start = _local3;
this.freak_warning = false;
this.gotoAndPlay("Freakout");
return(true);
};
this.freakOutJitter = function () {
var _local3 = Math.floor(Math.random() * this.freak_twitch_x);
var _local2 = Math.floor(Math.random() * this.freak_twitch_y);
var _local5 = this.Weapon._x - this.freak_start_x;
var _local4 = this.Weapon._y - this.freak_start_y;
if (_local5 > 0) {
this.Weapon._x = this.Weapon._x - _local3;
} else {
this.Weapon._x = this.Weapon._x + _local3;
}
if (_local4 > 0) {
this.Weapon._y = this.Weapon._y - _local2;
} else {
this.Weapon._y = this.Weapon._y + _local2;
}
};
this.freakOutNext = function () {
var _local5 = _root.Clock.timeNow();
var _local3 = this.freak_space / 2;
var _local6 = Math.random() * _local3;
var _local4 = (this.upgrade_rate_level * this.freak_rate_mult) * 1000;
return(((_local5 + _local3) + _local6) - _local4);
};
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_damage["30"] = 20;
this.upgrade_damage["60"] = 50;
this.upgrade_damage["150"] = 100;
this.upgrade_damage["400"] = 250;
this.upgrade_damage["1200"] = 600;
this.upgrade_damage["3100"] = 1000;
this.upgrade_damage["8500"] = 1100;
this.upgrade_damage["18400"] = 1200;
this.upgrade_damage["46000"] = 1500;
this.upgrade_range = new Array();
this.upgrade_range["140"] = 30;
this.upgrade_range["150"] = 100;
this.upgrade_range["165"] = 200;
this.upgrade_range["180"] = 500;
this.upgrade_range["220"] = 950;
this.upgrade_rate = new Array();
this.upgrade_rate["110"] = 50;
this.upgrade_rate["125"] = 150;
this.upgrade_rate["140"] = 300;
this.upgrade_rate["160"] = 450;
this.upgrade_rate["180"] = 950;
this.upgrade_rate["200"] = 1000;
this.upgrade_rate["240"] = 1450;
this.upgrade_bullet = new Array();
this.upgrade_bullet["1"] = "Bullet";
this.upgrade_bullet["2"] = "Bullet2";
this.upgrade_bullet["3"] = "Bullet3";
this.upgrade_bullet["4"] = "Bullet4";
this.upgrade_bullet["5"] = "Bullet5";
this.upgrade_bullet["6"] = "Bullet6";
this.upgrade_bullet["7"] = "Bullet7";
this.upgrade_bullet["8"] = "Bullet8";
this.upgrade_bullet["9"] = "Bullet9";
this.max_bullet = "Bullet9";
this.upgradeDone = function () {
this.modifyUpdate();
if (this.upgrade_bullet[upgrade_damage_level]) {
this.weapon_type = this.upgrade_bullet[upgrade_damage_level];
}
this.WeaponController.weapon_range = this.range_effective;
if (((this.upgrade_damage_level >= this.freak_level_damage) and (this.upgrade_range_level >= this.freak_level_range)) and (this.upgrade_rate_level >= this.freak_level_rate)) {
this.freak_available = true;
if (this.freak_next == false) {
this.freak_next = this.freakOutNext();
}
}
};
this.special_capable = false;
this.special_fired = _root.Clock.timeNow();
this.special_range = 70;
this.special_rate = 7;
this.mine_locations = new Array();
this.mine_located = false;
this.specialGetInRange = function () {
var _local11 = this._x;
var _local10 = this._y;
this.special_blue = new Array();
this.special_green = new Array();
this.special_red = new Array();
var _local12 = this.special_range;
var _local4 = 0;
while (_local4 < _root.turrets.length) {
the_turret = _root.turrets[_local4];
var _local8 = the_turret._x;
var _local7 = the_turret._y;
var _local6 = _local8 - _local11;
var _local5 = _local7 - _local10;
var _local9 = Math.sqrt((_local5 * _local5) + (_local6 * _local6));
if ((((_local9 < _local12) and the_turret.special_capable) and (the_turret != this)) and (the_turret.specialCanFire() == true)) {
var _local3 = the_turret.turret_type;
if (_local3 == "Blue") {
special_blue.push(the_turret);
}
if (_local3 == "Green") {
special_green.push(the_turret);
}
if (_local3 == "Red") {
special_red.push(the_turret);
}
}
_local4++;
}
};
this.specialFireBullet = function (the_type) {
var _local2 = this.weapon_type;
this.weapon_type = the_type;
var _local3 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
this.weapon_type = _local2;
return(_local3);
};
this.specialPickOne = function (the_list) {
if (the_list.length <= 1) {
return(the_list);
}
var _local2 = Math.floor(Math.random() * the_list.length);
return(the_list[_local2]);
};
this.specialPickTwo = function (the_list) {
if (the_list.length <= 2) {
return(the_list);
}
var _local2 = the_list.length;
while (_local2-- , _local2) {
var _local3 = Math.floor(Math.random() * (_local2 + 1));
var _local5 = the_list[_local2];
var _local4 = the_list[_local3];
the_list[_local2] = _local4;
the_list[_local3] = _local5;
}
var _local6 = new Array();
_local6.push(the_list[0]);
_local6.push(the_list[1]);
return(_local6);
};
this.specialTake = function (in_list) {
if (typeof(in_list) == "movieclip") {
in_list = new Array(input);
}
var _local3 = 0;
while (_local3 < in_list.length) {
the_turret = in_list[_local3];
the_turret.special_fired = _root.Clock.timeNow();
var _local5 = "SpecialTake";
var _local6 = _root.getNextHighestDepth();
var _local8 = _local5 + _local6;
var _local4 = _root.attachMovie(_local5, _local8, _local6);
var _local7 = _root.degreesToTarget(the_turret, this);
_local4._rotation = _local7;
_local4._x = the_turret._x;
_local4._y = the_turret._y;
the_turret.Weapon._rotation = _local7;
_local3++;
}
};
this.specialFired = function () {
the_turret = this;
the_turret.special_fired = _root.Clock.timeNow();
var _local4 = "SpecialFire";
var _local5 = _root.getNextHighestDepth();
var _local6 = _local4 + _local5;
var _local3 = _root.attachMovie(_local4, _local6, _local5);
_local3._rotation = the_turret._rotation;
_local3._x = the_turret._x;
_local3._y = the_turret._y;
};
this.specialPointAtMe = function (the_turret) {
deg = _root.degreesToTarget(the_turret, this);
the_turret.Weapon._rotation = deg;
};
this.specialCanFire = function () {
if (this.special_capable != true) {
return(false);
}
var _local3 = _root.Clock.timeNow();
var _local4 = this.weapon_fired;
var _local6 = this.special_fired;
var _local5 = _local3 - _local4;
var _local8 = 1000 / (this.rate_effective / 60);
if (_local5 < _local8) {
return(false);
}
var _local9 = _local3 - _local6;
var _local7 = 1000 / (this.special_rate / 60);
if (_local9 < _local7) {
return(false);
}
return(true);
};
this.specialFindMinepoints = function () {
this.special_minepoints = new Array();
var _local13 = this.getMax("range");
var _local10 = _root.AttackerPath.getMinePoints();
var _local3 = 0;
while (_local3 < _local10.length) {
var _local8 = _local10[_local3];
var _local7 = _local8._x;
var _local6 = _local8._y;
var _local5 = _local7 - this._x;
var _local4 = _local6 - this._y;
var _local9 = Math.sqrt((_local5 * _local5) + (_local4 * _local4));
if (_local9 <= _local13) {
this.mine_locations.push(new Object({x:_local7, y:_local6}));
}
_local3++;
}
this.mine_located = true;
};
this.specialFindMinepoints();
this.specialFireClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(1000000);
_local2.bullet_damage = this.modifyDamage(1000000);
this.specialTake(this.specialPickOne(this.special_red));
return(_local2);
};
this.specialFireBigClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickTwo(this.special_red));
return(_local2);
};
this.specialFireLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastMedium";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireBigLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(4000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(4000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
this.specialTake(this.specialPickOne(this.special_blue));
var _local4 = "Landmine";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3._x = this._x;
_local3._y = this._y;
_local3.blast = true;
_local3.cluster = false;
_local3.bullet_damage = this.modifyDamage(1000000);
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBig";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(2000000);
_local3.cluster = false;
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigCluster";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(4000000);
_local3.cluster_laser = false;
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(4000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLaserClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigClusterLaser";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(5000000);
_local3.cluster_laser = true;
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickOne(this.special_green));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFG");
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireRocketBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFGRocket");
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickTwo(this.special_red));
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
return(true);
};
this.specialFireLaserRocket = function () {
this.specialFired();
var _local2 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
var _local3 = this.specialPickOne(this.special_green);
var _local4 = _local3.linkFire(this, 0);
this.specialTake(_local3);
_local2.laser_capable = true;
_local2.laser_damage = this.modifyDamage(_local4);
_local2.bullet_speed = 100;
return(true);
};
this.specialFirePoisonGas = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketPoison");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
this.specialTake(this.specialPickOne(this.special_green));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireNuke = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketNuke");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
_local2.weapon_damage = this.modifyDamage(5000000000);
this.specialTake(this.specialPickTwo(this.special_blue));
return(true);
};
this.specialFire = function () {
this.specialGetInRange();
var _local3 = this.special_blue.length;
var _local4 = this.special_green.length;
var _local2 = this.special_red.length;
if (((_local2 >= 2) and (_local4 >= 1)) and (_local3 >= 1)) {
return(this.specialFireBigLaserClusterLandmine());
}
if ((_local2 >= 2) and (_local3 >= 1)) {
return(this.specialFireBigClusterLandmine());
}
if ((_local2 >= 2) and (_local4 >= 1)) {
return(this.specialFireBigLaserClusterBomb());
}
if ((_local2 >= 1) and (_local4 >= 1)) {
return(this.specialFireLaserClusterBomb());
}
if (_local2 >= 2) {
return(this.specialFireBigClusterBomb());
}
if ((_local2 >= 1) and (_local3 >= 1)) {
return(this.specialFireBigLandmine());
}
if (_local2 >= 1) {
return(this.specialFireClusterBomb());
}
if (_local3 >= 1) {
return(this.specialFireLandmine());
}
return(false);
};
this.tryFiring = function (the_rate, the_damage) {
var _local7 = 1000 / (the_rate / 60);
var _local6 = 1000 / (this.special_rate / 60);
var _local4 = _root.Clock.timeNow();
var _local5 = this.weapon_fired;
var _local3 = _local4 - _local5;
if (_local3 == 0) {
return(false);
}
if (this.WeaponController.acquire()) {
if (this.WeaponController.targetInRange()) {
this.WeaponController.pointAtTarget(this, this.Weapon);
if (_local3 >= _local7) {
var _local8 = _local4 - this.special_fired;
if ((this.special_capable == true) and (_local8 > _local6)) {
if (this.specialFire()) {
} else {
this.fireAt(this.WeaponController.weapon_target, the_damage);
}
} else {
this.fireAt(this.WeaponController.weapon_target, the_damage);
}
}
}
}
return(true);
};
this.stop();
if (this.active == true) {
this.gotoAndPlay("Fire");
}
this.IndicateDamage.init_val = this.upgradeLevelAsPercent("damage");
this.IndicateRange.init_val = this.upgradeLevelAsPercent("range");
this.IndicateRate.init_val = this.upgradeLevelAsPercent("rate");
_root.profileThis(this);
_root.profileThis(this.WeaponController);
Symbol 428 MovieClip [TurretBlue] Frame 4
this.stop();
var the_time = _root.Clock.timeNow();
if ((this.freak_available == true) and ((the_time - this.freak_next) >= 0)) {
this.freakOut();
} else {
this.tryFiring(this.rate_effective, this.damage_effective);
}
this.play();
Symbol 428 MovieClip [TurretBlue] Frame 7
this.gotoAndPlay("Fire");
Symbol 428 MovieClip [TurretBlue] Frame 10
this.stop();
var time_now = _root.Clock.timeNow();
var freak_time = (time_now - this.freak_start);
var fire_time = (time_now - this.weapon_fired);
if (freak_time <= this.freak_total_time) {
if (freak_time <= this.freak_warn_time) {
if (this.freak_warning == false) {
var warn = attachMovie("TurretFreakWarning", "FreakWarn", this.getNextHighestDepth());
this.freak_warning = warn;
}
this.tryFiring(this.rate_effective, this.damage_effective);
} else {
if (this.freak_warning) {
this.freak_warning.removeMovieClip();
}
var new_rate = (this.rate_effective * this.freak_rate_mult);
var new_dmg = (this.damage_effective * this.freak_damage_mult);
this.tryFiring(new_rate, new_dmg);
this.freakOutJitter();
}
this.play();
} else {
this.Weapon._x = this.freak_start_x;
this.Weapon._y = this.freak_start_y;
this.freak_next = this.freakOutNext();
this.gotoAndPlay("Fire");
}
Symbol 428 MovieClip [TurretBlue] Frame 11
this.gotoAndPlay("Freakout");
Symbol 428 MovieClip [TurretBlue] Frame 14
this.stop();
Symbol 430 MovieClip [TurretRed] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 50;
}
if (this.weapon_range == undefined) {
this.weapon_range = 200;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 50;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
this.weapon_type = "Rocket";
this.weapon_fired = 0;
this.weapon_fire_count = 0;
this.weapon_kill_count = 0;
this.holding_pattern = false;
this.holding_round = false;
this.WeaponController.weapon_range = this.weapon_range;
this.WeaponController.weapon = this.Weapon;
this.fireAt = function (the_target, the_damage) {
this.Weapon.fire();
this.weapon_fired = _root.Clock.timeNow();
this.weapon_fire_count++;
_root.WeaponFired();
var _local5 = "RedBullet" + this.weapon_fire_count;
var _local7 = this.weapon_type;
var _local6 = _root.getNextHighestDepth();
var _local3 = _root.attachMovie(_local7, _local5, _local6);
var _local4 = new Object();
_local4.x = this.Weapon.FirePoint._x;
_local4.y = this.Weapon.FirePoint._y;
this.Weapon.localToGlobal(_local4);
_local3._x = _local4.x;
_local3._y = _local4.y;
_local3._rotation = this.Weapon._rotation;
_local3.bullet_target = the_target;
_local3.bullet_damage = the_damage;
_local3.turret = this;
_local3.holding_pattern = this.holding_pattern;
if (this.holding_round == true) {
_local3.holding_initially = this.holding_round;
this.holdingAdd(_local3);
}
_root.TurretFired(_local3);
_root.soundEffect("RocketFire");
return(_local3);
};
this.notifyGone = function (the_turret) {
return(true);
};
this.onSell = function () {
var _local3 = this.WeaponController.findAttackerInRange("weak", 720);
for (var _local4 in this.holding_current) {
var _local2 = this.holding_current[_local4];
_local2.acquire(_local3);
}
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.holding_current = new Array();
this.holding_max = 4;
this.upgrade_holding_damage = 0;
this.upgrade_holding_range = 3;
this.upgrade_holding_rate = 3;
this.holdingAdd = function (shell) {
this.holding_current.push(shell);
};
this.holdingFinished = function (shell) {
var _local3 = new Array();
for (var _local5 in this.holding_current) {
var _local2 = this.holding_current[_local5];
if (_local2 != shell) {
_local3.push(_local2);
}
}
this.holding_current = _local3;
};
this.holdingEmpty = function () {
this.holding_current = new Array();
};
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_damage["120"] = 50;
this.upgrade_damage["350"] = 100;
this.upgrade_damage["800"] = 200;
this.upgrade_damage["1950"] = 350;
this.upgrade_damage["6050"] = 650;
this.upgrade_damage["11500"] = 1200;
this.upgrade_damage["27000"] = 1300;
this.upgrade_damage["48900"] = 1500;
this.upgrade_damage["65000"] = 1500;
this.upgrade_range = new Array();
this.upgrade_range["210"] = 35;
this.upgrade_range["220"] = 80;
this.upgrade_range["230"] = 160;
this.upgrade_range["250"] = 400;
this.upgrade_range["275"] = 900;
this.upgrade_range["300"] = 1100;
this.upgrade_range["325"] = 1300;
this.upgrade_range["350"] = 1500;
this.upgrade_rate = new Array();
this.upgrade_rate["60"] = 30;
this.upgrade_rate["70"] = 60;
this.upgrade_rate["85"] = 115;
this.upgrade_rate["100"] = 200;
this.upgrade_rate["115"] = 340;
this.upgrade_rate["135"] = 600;
this.upgrade_rate["155"] = 900;
this.upgrade_rate["180"] = 1050;
this.upgrade_rate["210"] = 1150;
this.upgrade_bullet = new Array();
this.upgrade_bullet["1"] = "Rocket";
this.upgrade_bullet["2"] = "Rocket2";
this.upgrade_bullet["3"] = "Rocket3";
this.upgrade_bullet["4"] = "Rocket4";
this.upgrade_bullet["5"] = "Rocket5";
this.upgrade_bullet["6"] = "Rocket6";
this.upgrade_bullet["7"] = "Rocket7";
this.upgrade_bullet["8"] = "Rocket8";
this.upgrade_bullet["9"] = "Rocket9";
this.upgradeDone = function () {
this.modifyUpdate();
if (this.upgrade_bullet[upgrade_damage_level]) {
this.weapon_type = this.upgrade_bullet[upgrade_damage_level];
}
this.WeaponController.weapon_range = this.range_effective;
if (((this.upgrade_damage_level >= this.upgrade_holding_damage) and (this.upgrade_range_level >= this.upgrade_holding_range)) and (this.upgrade_rate_level >= this.upgrade_holding_rate)) {
this.holding_pattern = true;
}
};
this.special_capable = false;
this.special_fired = _root.Clock.timeNow();
this.special_range = 70;
this.special_rate = 7;
this.mine_locations = new Array();
this.mine_located = false;
this.specialGetInRange = function () {
var _local11 = this._x;
var _local10 = this._y;
this.special_blue = new Array();
this.special_green = new Array();
this.special_red = new Array();
var _local12 = this.special_range;
var _local4 = 0;
while (_local4 < _root.turrets.length) {
the_turret = _root.turrets[_local4];
var _local8 = the_turret._x;
var _local7 = the_turret._y;
var _local6 = _local8 - _local11;
var _local5 = _local7 - _local10;
var _local9 = Math.sqrt((_local5 * _local5) + (_local6 * _local6));
if ((((_local9 < _local12) and the_turret.special_capable) and (the_turret != this)) and (the_turret.specialCanFire() == true)) {
var _local3 = the_turret.turret_type;
if (_local3 == "Blue") {
special_blue.push(the_turret);
}
if (_local3 == "Green") {
special_green.push(the_turret);
}
if (_local3 == "Red") {
special_red.push(the_turret);
}
}
_local4++;
}
};
this.specialFireBullet = function (the_type) {
var _local2 = this.weapon_type;
this.weapon_type = the_type;
var _local3 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
this.weapon_type = _local2;
return(_local3);
};
this.specialPickOne = function (the_list) {
if (the_list.length <= 1) {
return(the_list);
}
var _local2 = Math.floor(Math.random() * the_list.length);
return(the_list[_local2]);
};
this.specialPickTwo = function (the_list) {
if (the_list.length <= 2) {
return(the_list);
}
var _local2 = the_list.length;
while (_local2-- , _local2) {
var _local3 = Math.floor(Math.random() * (_local2 + 1));
var _local5 = the_list[_local2];
var _local4 = the_list[_local3];
the_list[_local2] = _local4;
the_list[_local3] = _local5;
}
var _local6 = new Array();
_local6.push(the_list[0]);
_local6.push(the_list[1]);
return(_local6);
};
this.specialTake = function (in_list) {
if (typeof(in_list) == "movieclip") {
in_list = new Array(input);
}
var _local3 = 0;
while (_local3 < in_list.length) {
the_turret = in_list[_local3];
the_turret.special_fired = _root.Clock.timeNow();
var _local5 = "SpecialTake";
var _local6 = _root.getNextHighestDepth();
var _local8 = _local5 + _local6;
var _local4 = _root.attachMovie(_local5, _local8, _local6);
var _local7 = _root.degreesToTarget(the_turret, this);
_local4._rotation = _local7;
_local4._x = the_turret._x;
_local4._y = the_turret._y;
the_turret.Weapon._rotation = _local7;
_local3++;
}
};
this.specialFired = function () {
the_turret = this;
the_turret.special_fired = _root.Clock.timeNow();
var _local4 = "SpecialFire";
var _local5 = _root.getNextHighestDepth();
var _local6 = _local4 + _local5;
var _local3 = _root.attachMovie(_local4, _local6, _local5);
_local3._rotation = the_turret._rotation;
_local3._x = the_turret._x;
_local3._y = the_turret._y;
};
this.specialPointAtMe = function (the_turret) {
deg = _root.degreesToTarget(the_turret, this);
the_turret.Weapon._rotation = deg;
};
this.specialCanFire = function () {
if (this.special_capable != true) {
return(false);
}
var _local3 = _root.Clock.timeNow();
var _local4 = this.weapon_fired;
var _local6 = this.special_fired;
var _local5 = _local3 - _local4;
var _local8 = 1000 / (this.rate_effective / 60);
if (_local5 < _local8) {
return(false);
}
var _local9 = _local3 - _local6;
var _local7 = 1000 / (this.special_rate / 60);
if (_local9 < _local7) {
return(false);
}
return(true);
};
this.specialFindMinepoints = function () {
this.special_minepoints = new Array();
var _local13 = this.getMax("range");
var _local10 = _root.AttackerPath.getMinePoints();
var _local3 = 0;
while (_local3 < _local10.length) {
var _local8 = _local10[_local3];
var _local7 = _local8._x;
var _local6 = _local8._y;
var _local5 = _local7 - this._x;
var _local4 = _local6 - this._y;
var _local9 = Math.sqrt((_local5 * _local5) + (_local4 * _local4));
if (_local9 <= _local13) {
this.mine_locations.push(new Object({x:_local7, y:_local6}));
}
_local3++;
}
this.mine_located = true;
};
this.specialFindMinepoints();
this.specialFireClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(1000000);
_local2.bullet_damage = this.modifyDamage(1000000);
this.specialTake(this.specialPickOne(this.special_red));
return(_local2);
};
this.specialFireBigClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickTwo(this.special_red));
return(_local2);
};
this.specialFireLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastMedium";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireBigLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(4000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(4000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
this.specialTake(this.specialPickOne(this.special_blue));
var _local4 = "Landmine";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3._x = this._x;
_local3._y = this._y;
_local3.blast = true;
_local3.cluster = false;
_local3.bullet_damage = this.modifyDamage(1000000);
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBig";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(2000000);
_local3.cluster = false;
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigCluster";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(4000000);
_local3.cluster_laser = false;
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(4000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLaserClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigClusterLaser";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(5000000);
_local3.cluster_laser = true;
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickOne(this.special_green));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFG");
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireRocketBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFGRocket");
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickTwo(this.special_red));
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
return(true);
};
this.specialFireLaserRocket = function () {
this.specialFired();
var _local2 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
var _local3 = this.specialPickOne(this.special_green);
var _local4 = _local3.linkFire(this, 0);
this.specialTake(_local3);
_local2.laser_capable = true;
_local2.laser_damage = this.modifyDamage(_local4);
_local2.bullet_speed = 100;
return(true);
};
this.specialFirePoisonGas = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketPoison");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
this.specialTake(this.specialPickOne(this.special_green));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireNuke = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketNuke");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
_local2.weapon_damage = this.modifyDamage(5000000000);
this.specialTake(this.specialPickTwo(this.special_blue));
return(true);
};
this.specialFire = function () {
this.specialGetInRange();
var _local3 = this.special_blue.length;
var _local2 = this.special_green.length;
var _local4 = this.special_red.length;
if (_local3 >= 2) {
this.specialFireNuke();
} else {
if ((_local3 >= 1) and (_local2 >= 1)) {
return(this.specialFirePoisonGas());
}
if (_local2 >= 1) {
return(this.specialFireLaserRocket());
}
return(false);
}
};
this.stop();
if (this.active == true) {
this.gotoAndPlay("Fire");
}
this.IndicateDamage.init_val = this.upgradeLevelAsPercent("damage");
this.IndicateRange.init_val = this.upgradeLevelAsPercent("range");
this.IndicateRate.init_val = this.upgradeLevelAsPercent("rate");
_root.profileThis(this);
_root.profileThis(this.WeaponController);
Symbol 430 MovieClip [TurretRed] Frame 4
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = (time_now - this.weapon_fired);
var fire_rate = (1000 / (this.rate_effective / 60));
if (time_diff > 0) {
if (this.WeaponController.acquire("weak")) {
for (var shot in this.holding_current) {
var the_shot = this.holding_current[shot];
the_shot.acquire(this.WeaponController.weapon_target);
}
this.holdingEmpty();
if (this.WeaponController.targetInRange()) {
this.WeaponController.pointAtTarget(this, this.Weapon);
}
if (time_diff >= this.fire_rate) {
if (this.WeaponController.targetInRange()) {
var special_diff = (time_now - this.special_fired);
if ((this.special_capable == true) and (special_diff > this.special_rate)) {
if (this.specialFire()) {
} else {
this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
}
} else {
this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
}
}
}
} else if (this.holding_pattern) {
if (time_diff >= fire_rate) {
var holding_shots = 0;
for (var i in this.holding_current) {
holding_shots++;
}
if (holding_shots < this.holding_max) {
this.holding_round = true;
this.fireAt(false, this.damage_effective);
this.holding_round = false;
}
}
}
}
this.play();
Symbol 430 MovieClip [TurretRed] Frame 7
this.gotoAndPlay("Fire");
Symbol 430 MovieClip [TurretRed] Frame 10
this.stop();
Symbol 434 MovieClip [TurretGreen] Frame 1
if (this.active == undefined) {
this.active = true;
}
if (this.weapon_damage == undefined) {
this.weapon_damage = 25;
}
if (this.weapon_range == undefined) {
this.weapon_range = 100;
}
if (this.weapon_rate == undefined) {
this.weapon_rate = 60;
}
if (this.cash_value == undefined) {
this.cash_value = 0;
}
this.weapon_type = "LaserBeam";
this.weapon_fired = 0;
this.weapon_fire_count = 0;
this.weapon_kill_count = 0;
this.WeaponController.weapon_range = this.weapon_range;
this.WeaponController.weapon = this.Weapon;
this.fireAt = function (the_target, the_damage, no_sound) {
this.weapon_fired = _root.Clock.timeNow();
this.Weapon.fire();
this.weapon_fire_count++;
_root.WeaponFired();
var _local5 = "GreenBullet" + this.weapon_fire_count;
var _local7 = this.weapon_type;
var _local6 = this._parent.getNextHighestDepth();
var _local3 = this._parent.attachMovie(_local7, _local5, _local6);
var _local4 = new Object();
_local4.x = this.Weapon.FirePoint._x;
_local4.y = this.Weapon.FirePoint._y;
this.Weapon.localToGlobal(_local4);
_local3._x = _local4.x;
_local3._y = _local4.y;
_local3.bullet_target = the_target;
_local3.bullet_damage = the_damage;
_local3.turret = this;
_root.TurretFired(_local3);
if (no_sound != true) {
_root.soundEffect("Laser");
}
return(_local3);
};
this.notifyGone = function (the_turret) {
this.linkNotifyGone(the_turret);
return(true);
};
this.onPress = function () {
if (this._parent.cur_turret) {
_root.TurretHighlightHide();
}
if (this._parent.cur_turret == this) {
this._parent.cur_turret = false;
_root.TurretHighlightHide();
} else {
this._parent.cur_turret = this;
_root.TurretHighlightShow();
}
if (_root.the_range != false) {
_root.rangeHide();
_root.rangeShow(_root.cur_turret);
}
};
if (this.damage_added == undefined) {
this.damage_added = 0;
}
if (this.damage_mult == undefined) {
this.damage_mult = 1;
}
if (this.range_added == undefined) {
this.range_added = 0;
}
if (this.range_mult == undefined) {
this.range_mult = 1;
}
if (this.rate_added == undefined) {
this.rate_added = 0;
}
if (this.rate_mult == undefined) {
this.rate_mult = 1;
}
if (this.damage_effective == undefined) {
this.damage_effective = this.weapon_damage;
}
if (this.range_effective == undefined) {
this.range_effective = this.weapon_range;
}
if (this.rate_effective == undefined) {
this.rate_effective = this.weapon_rate;
}
this.turrets_in_range = new Array();
this.modify_possible = true;
this.modifyGain = function (the_type, the_amount) {
if (this.modify_possible == false) {
return(false);
}
var _local2 = parseFloat(the_amount);
if (the_type == "damage_added") {
this.damage_added = this.damage_added + _local2;
} else if (the_type == "damage_mult") {
this.damage_mult = this.damage_mult + _local2;
} else if (the_type == "range_added") {
this.range_added = this.range_added + _local2;
} else if (the_type == "range_mult") {
this.range_mult = this.range_mult + _local2;
} else if (the_type == "rate_added") {
this.rate_added = this.rate_added + _local2;
} else if (the_type == "rate_mult") {
this.rate_mult = this.rate_mult + _local2;
}
if (_local2 > 0) {
}
this.modifyUpdate();
};
this.modifyUpdate = function () {
this.damage_effective = this.modifyDamage(this.weapon_damage);
this.range_effective = this.modifyRange(this.weapon_range);
this.rate_effective = this.modifyRate(this.weapon_rate);
this.WeaponController.weapon_range = this.range_effective;
return(true);
};
this.modifyDumpStats = function () {
trace((this + ": added damage ") + this.damage_added);
trace((this + ": added range ") + this.range_added);
trace((this + ": added rate ") + this.rate_added);
trace((this + ": mult damage ") + this.damage_mult);
trace((this + ": mult range ") + this.range_mult);
trace((this + ": mult rate ") + this.rate_mult);
trace((this + ": weapon damage ") + this.weapon_damage);
trace((this + ": weapon range ") + this.weapon_range);
trace((this + ": weapon rate ") + this.weapon_rate);
trace((this + ": effective damage ") + this.damage_effective);
trace((this + ": effective range ") + this.range_effective);
trace((this + ": effective rate ") + this.rate_effective);
};
this.modifyLose = function (the_type, the_amount) {
this.modifyGain(the_type, -the_amount);
};
this.modifyDamage = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.damage_added) * this.damage_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRange = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.range_added) * this.range_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyRate = function (the_amount) {
var _local3 = parseFloat(the_amount);
var _local2 = (_local3 + this.rate_added) * this.rate_mult;
_local2 = Math.max(_local2, 0);
return(_local2);
};
this.modifyGetInRange = function (the_range) {
this.turrets_in_range = new Array();
var _local9 = the_range;
var _local8 = _root.turrets;
var _local4 = 0;
while (_local4 < _local8.length) {
var _local3 = _local8[_local4];
if (point != this) {
var _local6 = _local3._x - this._x;
var _local5 = _local3._y - this._y;
var _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5));
if (_local7 <= _local9) {
this.turrets_in_range.push(_local3);
}
}
_local4++;
}
};
this.modifyAssert = function () {
var _local2 = 0;
while (_local2 < this.turrets_in_range.length) {
var _local3 = this.turrets_in_range[_local2];
this._modifyAssert(_local3);
_local2++;
}
};
this._modifyAssert = function (the_turret) {
the_turret.modifyGain("damage_added", this.modify_damage);
the_turret.modifyGain("range_added", this.modify_range);
the_turret.modifyGain("rate_added", this.modify_rate);
the_turret.modifyGain("damage_mult", this.modify_damage_mult);
the_turret.modifyGain("range_mult", this.modify_range_mult);
the_turret.modifyGain("rate_mult", this.modify_rate_mult);
};
this.modifyUnAssert = function (the_turret) {
the_turret.modifyLose("damage_added", this.modify_damage);
the_turret.modifyLose("range_added", this.modify_range);
the_turret.modifyLose("rate_added", this.modify_rate);
the_turret.modifyLose("damage_mult", this.modify_damage_mult);
the_turret.modifyLose("range_mult", this.modify_range_mult);
the_turret.modifyLose("rate_mult", this.modify_rate_mult);
};
this.modifyNotifyNew = function (the_turret) {
var _local3 = the_turret._x - this._x;
var _local2 = the_turret._y - this._y;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if (_local5 <= this.weapon_range) {
this.turrets_in_range.push(the_turret);
this._modifyAssert(the_turret);
}
};
this.link_can_do = true;
this.link_mult = 1.25;
this.link_in_range = new Array();
this.link_offered = false;
this.LinkWantedFlag._visible = false;
this.LinkOfferedFlag._visible = false;
this.linkGetTurretsInRange = function () {
this.link_in_range = new Array();
var _local5 = _root.turrets;
for (var _local6 in _local5) {
var _local3 = _local5[_local6];
if ((_local3.turret_type == "Green") and (this != _local3)) {
var _local4 = _root.DistanceBetween(this, _local3);
if (_local4 <= this.range_effective) {
this.link_in_range.push(_local3);
}
if (_local4 <= _local3.range_effective) {
_local3.link_in_range.push(this);
}
}
}
};
this.linkNotifyNew = function () {
for (var _local3 in this.link_in_range) {
var _local2 = this.link_in_range[_local3];
_local2.link_in_range.push(this);
}
};
this.linkNotifyGone = function (the_tur) {
var _local3 = new Array();
for (var _local5 in this.link_in_range) {
var _local2 = this.link_in_range[_local5];
if (_local2 != the_tur) {
_local3.push(_local2);
}
}
this.link_in_range = _local3;
};
this.linkFire = function (the_target, the_damage, lead_turret) {
this.linkOffered(false);
the_damage = new Number(this.damage_effective);
var _local6 = new Array();
var _local8 = 0;
for (var _local9 in this.link_in_range) {
var _local4 = this.link_in_range[_local9];
if (_local4.link_offered == true) {
_local4.linkOffered(false);
_local6.push(_local4);
_local8++;
}
}
if (_local8 == 0) {
if (lead_turret == true) {
this.fireAt(the_target, the_damage, false);
} else {
this.fireAt(the_target, the_damage, true);
}
return(the_damage);
}
for (var _local9 in _local6) {
var _local4 = _local6[_local9];
var _local7 = _root.degreesToTarget(_local4, this);
_local4.Weapon._rotation = _local7;
var _local3 = _local4.linkFire(this, 0, false);
_local3 = _local3 * this.link_mult;
the_damage = new Number(the_damage + _local3);
}
this.weapon_type = this.upgradeGetWeaponAtDamage(the_damage);
if (lead_turret == true) {
this.fireAt(the_target, the_damage, false);
} else {
this.fireAt(the_target, the_damage, true);
}
this.weapon_type = this.upgrade_bullet[this.upgrade_damage_level];
return(the_damage);
};
this.linkWanted = function (the_state) {
if (the_state == true) {
this.link_wanted = true;
} else {
this.link_wanted = false;
}
this.LinkWantedFlag._visible = this.link_wanted;
};
this.linkOffered = function (the_state) {
if (the_state == true) {
this.link_offered = true;
} else {
this.link_offered = false;
}
this.LinkOfferedFlag._visible = this.link_offered;
};
this.linkGetTurretsInRange();
this.linkNotifyNew();
if (!this.upgrade_damage_level) {
this.upgrade_damage_level = 0;
}
if (!this.upgrade_range_level) {
this.upgrade_range_level = 0;
}
if (!this.upgrade_rate_level) {
this.upgrade_rate_level = 0;
}
this.max_damage = 0;
this.max_range = 0;
this.max_rate = 0;
this.max_built = false;
this.cost_damage = 0;
this.cost_range = 0;
this.cost_rate = 0;
this.cost_built = false;
this.upgrade_to_damage = 0;
this.upgrade_to_range = 0;
this.upgrade_to_rate = 0;
this.upgrade_to_built = false;
this.upgrade_pct_damage = 0;
this.upgrade_pct_range = 0;
this.upgrade_pct_rate = 0;
this.upgrade_pct_built = false;
this.upgrade_weapon_at_damage = new Array();
this._upgradeDone = function () {
this.cost_built = false;
this.upgrade_to_built = false;
this.upgrade_pct_built = false;
var _local3 = this.getMax("damage");
if (_local3 == this.weapon_damage) {
this.special_capable = true;
}
this.IndicateDamage.setPercentage(this.upgradeLevelAsPercent("damage"));
this.IndicateRange.setPercentage(this.upgradeLevelAsPercent("range"));
this.IndicateRate.setPercentage(this.upgradeLevelAsPercent("rate"));
this.modifyUpdate();
_root.rangeUpdate();
this.upgradeDone();
};
this.upgradeGetWeaponAtDamage = function (the_damage) {
if (this.upgrade_weapon_at_damage[the_damage]) {
return(this.upgrade_weapon_at_damage[the_damage]);
}
var _local8 = this.getMax("damage");
if (the_damage > _local8) {
return(this.max_bullet);
}
var _local6 = 0;
var _local5 = this.getMax("damage");
var _local4 = 0;
for (var _local7 in this.upgrade_damage) {
_local4++;
}
for (var _local7 in this.upgrade_damage) {
_local6 = _local5;
_local5 = parseInt(_local7);
if ((the_damage < _local6) and (the_damage >= _local5)) {
var _local2 = this.upgrade_bullet[_local4];
this.upgrade_weapon_at_damage[the_damage] = _local2;
return(_local2);
}
_local4--;
}
return(this.weapon_type);
};
this.getUpgrade = function (the_type) {
if (this.cost_built == false) {
this.upgrade_to_damage = this._getUpgrade("damage");
this.upgrade_to_range = this._getUpgrade("range");
this.upgrade_to_rate = this._getUpgrade("rate");
this.upgrade_to_built = true;
}
if (the_type == "damage") {
return(this.upgrade_to_damage);
}
if (the_type == "range") {
return(this.upgrade_to_range);
}
if (the_type == "rate") {
return(this.upgrade_to_rate);
}
return(false);
};
this._getUpgrade = function (the_type) {
var _local2 = new Array();
var _local3 = false;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local5);
}
count--;
}
return(false);
};
this.getUpgradeCost = function (the_type) {
if (this.cost_built == false) {
this.cost_damage = this._getUpgradeCost("damage");
this.cost_range = this._getUpgradeCost("range");
this.cost_rate = this._getUpgradeCost("rate");
this.cost_built = true;
}
if (the_type == "damage") {
return(this.cost_damage);
}
if (the_type == "range") {
return(this.cost_range);
}
if (the_type == "rate") {
return(this.cost_rate);
}
return(false);
};
this._getUpgradeCost = function (the_type) {
var _local2;
var _local3;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local3 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local3 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local3 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = 0;
for (var _local5 in _local2) {
_local4++;
}
if (_local3 >= _local4) {
return(false);
}
count = _local4 - 1;
for (var _local5 in _local2) {
if (count eq _local3) {
return(_local2[_local5]);
}
count--;
}
return(false);
};
this.getMax = function (the_type) {
if (this.max_built == false) {
this.max_damage = this._getMax("damage");
this.max_range = this._getMax("range");
this.max_rate = this._getMax("rate");
this.max_built = true;
}
if (the_type == "damage") {
return(this.max_damage);
}
if (the_type == "range") {
return(this.max_range);
}
if (the_type == "rate") {
return(this.max_rate);
}
return(false);
};
this._getMax = function (the_type) {
var _local5;
var _local7;
if (the_type == "damage") {
_local5 = this.upgrade_damage;
_local7 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local5 = this.upgrade_range;
_local7 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local5 = this.upgrade_rate;
_local7 = this.upgrade_rate_level;
} else {
return(false);
}
var _local4 = new Number(0);
for (var _local6 in _local5) {
var _local3 = new Number(_local6);
var _local2 = _local3.valueOf();
if (_local2 > _local4) {
_local4 = _local2;
}
}
return(_local4);
};
this.upgradeDamage = function () {
var _local4 = this.upgrade_damage;
var _local8 = this.upgrade_damage_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_damage = _local7;
this.upgrade_damage_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRange = function () {
var _local4 = this.upgrade_range;
var _local8 = this.upgrade_range_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_range = _local7;
this.upgrade_range_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeRate = function () {
var _local4 = this.upgrade_rate;
var _local8 = this.upgrade_rate_level;
var _local6 = _local8 + 1;
var _local5 = 0;
for (var _local7 in _local4) {
_local5++;
}
if (_local6 > _local5) {
return(false);
}
count = _local5;
for (var _local7 in _local4) {
if (count eq _local6) {
var _local3 = _local4[_local7];
if (_root.Payment(_local3)) {
this.cash_value = this.cash_value + _local3;
this.weapon_rate = _local7;
this.upgrade_rate_level++;
this._upgradeDone();
return(true);
}
return(false);
}
count--;
}
return(false);
};
this.upgradeLevelAsPercent = function (the_type) {
if (this.upgrade_pct_built == false) {
this.upgrade_pct_damage = this._upgradeLevelAsPercent("damage");
this.upgrade_pct_range = this._upgradeLevelAsPercent("range");
this.upgrade_pct_rate = this._upgradeLevelAsPercent("rate");
this.upgrade_pct_built = true;
}
if (the_type == "damage") {
return(this.upgrade_pct_damage);
}
if (the_type == "range") {
return(this.upgrade_pct_range);
}
if (the_type == "rate") {
return(this.upgrade_pct_rate);
}
return(false);
};
this._upgradeLevelAsPercent = function (the_type) {
var _local2;
var _local5;
if (the_type == "damage") {
_local2 = this.upgrade_damage;
_local5 = this.upgrade_damage_level;
} else if (the_type == "range") {
_local2 = this.upgrade_range;
_local5 = this.upgrade_range_level;
} else if (the_type == "rate") {
_local2 = this.upgrade_rate;
_local5 = this.upgrade_rate_level;
} else {
return(false);
}
var _local3 = 0;
for (var _local4 in _local2) {
_local3++;
}
var _local7 = Math.ceil((_local5 / _local3) * 100);
return(_local7);
};
this.upgrade_damage = new Array();
this.upgrade_damage["50"] = 20;
this.upgrade_damage["120"] = 50;
this.upgrade_damage["400"] = 125;
this.upgrade_damage["1500"] = 300;
this.upgrade_damage["3900"] = 700;
this.upgrade_damage["9300"] = 850;
this.upgrade_damage["19500"] = 950;
this.upgrade_damage["35000"] = 1000;
this.upgrade_range = new Array();
this.upgrade_range["110"] = 15;
this.upgrade_range["125"] = 25;
this.upgrade_range["140"] = 40;
this.upgrade_range["160"] = 65;
this.upgrade_range["180"] = 105;
this.upgrade_range["205"] = 170;
this.upgrade_range["230"] = 275;
this.upgrade_range["255"] = 445;
this.upgrade_range["285"] = 720;
this.upgrade_range["320"] = 1100;
this.upgrade_rate = new Array();
this.upgrade_rate["65"] = 30;
this.upgrade_rate["70"] = 75;
this.upgrade_rate["80"] = 180;
this.upgrade_rate["90"] = 300;
this.upgrade_rate["105"] = 450;
this.upgrade_rate["120"] = 600;
this.upgrade_rate["135"] = 800;
this.upgrade_rate["160"] = 900;
this.upgrade_rate["190"] = 1000;
this.upgrade_bullet = new Array();
this.upgrade_bullet["0"] = "LaserBeam";
this.upgrade_bullet["1"] = "LaserBeam2";
this.upgrade_bullet["2"] = "LaserBeam3";
this.upgrade_bullet["3"] = "LaserBeam4";
this.upgrade_bullet["4"] = "LaserBeam5";
this.upgrade_bullet["5"] = "LaserBeam6";
this.upgrade_bullet["6"] = "LaserBeam7";
this.upgrade_bullet["7"] = "LaserBeam8";
this.upgrade_bullet["8"] = "LaserBeam9";
this.upgrade_bullet["9"] = "LaserBeam10";
this.max_bullet = "LaserBeam10";
this.upgradeDone = function () {
this.modifyUpdate();
if (this.upgrade_bullet[upgrade_damage_level]) {
this.weapon_type = this.upgrade_bullet[upgrade_damage_level];
}
this.WeaponController.weapon_range = this.range_effective;
this.linkGetTurretsInRange();
};
this.special_capable = false;
this.special_fired = _root.Clock.timeNow();
this.special_range = 70;
this.special_rate = 7;
this.mine_locations = new Array();
this.mine_located = false;
this.specialGetInRange = function () {
var _local11 = this._x;
var _local10 = this._y;
this.special_blue = new Array();
this.special_green = new Array();
this.special_red = new Array();
var _local12 = this.special_range;
var _local4 = 0;
while (_local4 < _root.turrets.length) {
the_turret = _root.turrets[_local4];
var _local8 = the_turret._x;
var _local7 = the_turret._y;
var _local6 = _local8 - _local11;
var _local5 = _local7 - _local10;
var _local9 = Math.sqrt((_local5 * _local5) + (_local6 * _local6));
if ((((_local9 < _local12) and the_turret.special_capable) and (the_turret != this)) and (the_turret.specialCanFire() == true)) {
var _local3 = the_turret.turret_type;
if (_local3 == "Blue") {
special_blue.push(the_turret);
}
if (_local3 == "Green") {
special_green.push(the_turret);
}
if (_local3 == "Red") {
special_red.push(the_turret);
}
}
_local4++;
}
};
this.specialFireBullet = function (the_type) {
var _local2 = this.weapon_type;
this.weapon_type = the_type;
var _local3 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
this.weapon_type = _local2;
return(_local3);
};
this.specialPickOne = function (the_list) {
if (the_list.length <= 1) {
return(the_list);
}
var _local2 = Math.floor(Math.random() * the_list.length);
return(the_list[_local2]);
};
this.specialPickTwo = function (the_list) {
if (the_list.length <= 2) {
return(the_list);
}
var _local2 = the_list.length;
while (_local2-- , _local2) {
var _local3 = Math.floor(Math.random() * (_local2 + 1));
var _local5 = the_list[_local2];
var _local4 = the_list[_local3];
the_list[_local2] = _local4;
the_list[_local3] = _local5;
}
var _local6 = new Array();
_local6.push(the_list[0]);
_local6.push(the_list[1]);
return(_local6);
};
this.specialTake = function (in_list) {
if (typeof(in_list) == "movieclip") {
in_list = new Array(input);
}
var _local3 = 0;
while (_local3 < in_list.length) {
the_turret = in_list[_local3];
the_turret.special_fired = _root.Clock.timeNow();
var _local5 = "SpecialTake";
var _local6 = _root.getNextHighestDepth();
var _local8 = _local5 + _local6;
var _local4 = _root.attachMovie(_local5, _local8, _local6);
var _local7 = _root.degreesToTarget(the_turret, this);
_local4._rotation = _local7;
_local4._x = the_turret._x;
_local4._y = the_turret._y;
the_turret.Weapon._rotation = _local7;
_local3++;
}
};
this.specialFired = function () {
the_turret = this;
the_turret.special_fired = _root.Clock.timeNow();
var _local4 = "SpecialFire";
var _local5 = _root.getNextHighestDepth();
var _local6 = _local4 + _local5;
var _local3 = _root.attachMovie(_local4, _local6, _local5);
_local3._rotation = the_turret._rotation;
_local3._x = the_turret._x;
_local3._y = the_turret._y;
};
this.specialPointAtMe = function (the_turret) {
deg = _root.degreesToTarget(the_turret, this);
the_turret.Weapon._rotation = deg;
};
this.specialCanFire = function () {
if (this.special_capable != true) {
return(false);
}
var _local3 = _root.Clock.timeNow();
var _local4 = this.weapon_fired;
var _local6 = this.special_fired;
var _local5 = _local3 - _local4;
var _local8 = 1000 / (this.rate_effective / 60);
if (_local5 < _local8) {
return(false);
}
var _local9 = _local3 - _local6;
var _local7 = 1000 / (this.special_rate / 60);
if (_local9 < _local7) {
return(false);
}
return(true);
};
this.specialFindMinepoints = function () {
this.special_minepoints = new Array();
var _local13 = this.getMax("range");
var _local10 = _root.AttackerPath.getMinePoints();
var _local3 = 0;
while (_local3 < _local10.length) {
var _local8 = _local10[_local3];
var _local7 = _local8._x;
var _local6 = _local8._y;
var _local5 = _local7 - this._x;
var _local4 = _local6 - this._y;
var _local9 = Math.sqrt((_local5 * _local5) + (_local4 * _local4));
if (_local9 <= _local13) {
this.mine_locations.push(new Object({x:_local7, y:_local6}));
}
_local3++;
}
this.mine_located = true;
};
this.specialFindMinepoints();
this.specialFireClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(1000000);
_local2.bullet_damage = this.modifyDamage(1000000);
this.specialTake(this.specialPickOne(this.special_red));
return(_local2);
};
this.specialFireBigClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickTwo(this.special_red));
return(_local2);
};
this.specialFireLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 5;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(2000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(2000000);
_local2.blast = true;
_local2.blast_type = "BlastMedium";
_local2.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireBigLaserClusterBomb = function () {
this.specialFired();
var _local3 = "ClusterBomb";
var _local2 = this.specialFireBullet(_local3);
_local2.cluster_qty = 10;
_local2.cluster_holding = true;
_local2.cluster_damage = this.modifyDamage(4000000);
_local2.cluster_laser = true;
_local2.bullet_damage = this.modifyDamage(4000000);
_local2.blast = true;
_local2.blast_type = "BlastLarge";
_local2.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_green));
return(_local2);
};
this.specialFireLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
this.specialTake(this.specialPickOne(this.special_blue));
var _local4 = "Landmine";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3._x = this._x;
_local3._y = this._y;
_local3.blast = true;
_local3.cluster = false;
_local3.bullet_damage = this.modifyDamage(1000000);
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBig";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(2000000);
_local3.cluster = false;
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(3000000);
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigCluster";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(4000000);
_local3.cluster_laser = false;
_local3.bullet_damage = this.modifyDamage(4000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(4000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBigLaserClusterLandmine = function () {
this.specialFired();
if (!this.mine_located) {
this.specialFindMinepoints();
this.mine_located = true;
}
var _local4 = "LandmineBigClusterLaser";
var _local3 = this.specialFireBullet(_local4);
_local3.mine_location = this.specialPickOne(this.mine_locations);
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.cluster = true;
_local3.cluster_qty = 10;
_local3.cluster_holding = true;
_local3.cluster_damage = this.modifyDamage(5000000);
_local3.cluster_laser = true;
_local3.bullet_damage = this.modifyDamage(5000000);
_local3.blast = true;
_local3.blast_type = "BlastLarge";
_local3.blast_damage = this.modifyDamage(5000000);
this.specialTake(this.specialPickTwo(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickOne(this.special_green));
_root.mines.push(_local3);
return(_local3);
};
this.specialFireBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFG");
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
this.specialTake(this.specialPickOne(this.special_red));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireRocketBFG = function () {
this.specialFired();
var _local3 = this.linkFire(this, 0);
var _local2 = this.specialFireBullet("BFGRocket");
this.specialTake(this.specialPickOne(this.special_blue));
this.specialTake(this.specialPickTwo(this.special_red));
_local2.bullet_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_damage = this.modifyDamage(5000000 + _local3);
_local2.laser_rate = 240;
return(true);
};
this.specialFireLaserRocket = function () {
this.specialFired();
var _local2 = this.fireAt(this.WeaponController.weapon_target, this.damage_effective);
var _local3 = this.specialPickOne(this.special_green);
var _local4 = _local3.linkFire(this, 0);
this.specialTake(_local3);
_local2.laser_capable = true;
_local2.laser_damage = this.modifyDamage(_local4);
_local2.bullet_speed = 100;
return(true);
};
this.specialFirePoisonGas = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketPoison");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
this.specialTake(this.specialPickOne(this.special_green));
this.specialTake(this.specialPickOne(this.special_blue));
return(true);
};
this.specialFireNuke = function () {
this.specialFired();
var _local2 = this.specialFireBullet("RocketNuke");
_local2.bullet_speed = 150;
_local2.holding_pattern = true;
_local2.weapon_damage = this.modifyDamage(5000000000);
this.specialTake(this.specialPickTwo(this.special_blue));
return(true);
};
this.specialFire = function () {
this.specialGetInRange();
var _local3 = this.special_blue.length;
var _local4 = this.special_green.length;
var _local2 = this.special_red.length;
if ((_local2 >= 2) and (_local3 >= 1)) {
return(this.specialFireRocketBFG());
}
if ((_local2 >= 1) and (_local3 >= 1)) {
return(this.specialFireBFG());
}
return(false);
};
this.stop();
if (this.active == true) {
this.gotoAndPlay("Fire");
}
this.IndicateDamage.init_val = this.upgradeLevelAsPercent("damage");
this.IndicateRange.init_val = this.upgradeLevelAsPercent("range");
this.IndicateRate.init_val = this.upgradeLevelAsPercent("rate");
_root.profileThis(this);
_root.profileThis(this.WeaponController);
Symbol 434 MovieClip [TurretGreen] Frame 4
this.stop();
var time_now = _root.Clock.timeNow();
var time_diff = (time_now - this.weapon_fired);
var fire_rate = (1000 / (this.rate_effective / 60));
if (time_diff > 0) {
if (time_diff >= this.fire_rate) {
this.linkOffered(true);
}
if (this.WeaponController.acquire()) {
this.linkWanted(true);
if (this.WeaponController.targetInRange()) {
this.WeaponController.pointAtTarget(this, this.Weapon);
}
if (time_diff >= this.fire_rate) {
if (this.WeaponController.targetInRange()) {
var special_diff = (time_now - this.special_fired);
if ((this.special_capable == true) and (special_diff > this.special_rate)) {
if (this.specialFire()) {
} else {
this.linkFire(this.WeaponController.weapon_target, this.damage_effective, true);
}
} else {
this.linkFire(this.WeaponController.weapon_target, this.damage_effective, true);
}
this.linkOffered(false);
}
}
} else {
this.linkWanted(false);
}
}
this.play();
Symbol 434 MovieClip [TurretGreen] Frame 7
this.gotoAndPlay("Fire");
Symbol 434 MovieClip [TurretGreen] Frame 10
this.stop();
Symbol 443 MovieClip Frame 1
this.play();
Symbol 443 MovieClip Frame 16
this.gotoAndPlay("Start");
Symbol 446 MovieClip Frame 1
this.stop();
Symbol 452 Button
on (press) {
getURL ("http://playr.co.uk/onslaught/", "_self");
}
Symbol 598 MovieClip [__Packages.JSON] Frame 0
class JSON
{
function JSON () {
}
static function stringify(arg) {
var _local3;
var _local2;
var _local6;
var _local1 = "";
var _local4;
switch (typeof(arg)) {
case "object" :
if (arg) {
if (arg instanceof Array) {
_local2 = 0;
while (_local2 < arg.length) {
_local4 = stringify(arg[_local2]);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + _local4;
_local2++;
}
return(("[" + _local1) + "]");
}
if (typeof(arg.toString) != "undefined") {
for (_local2 in arg) {
_local4 = arg[_local2];
if ((typeof(_local4) != "undefined") && (typeof(_local4) != "function")) {
_local4 = stringify(_local4);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + ((stringify(_local2) + ":") + _local4);
}
}
return(("{" + _local1) + "}");
}
}
return("null");
case "number" :
return((isFinite(arg) ? (String(arg)) : "null"));
case "string" :
_local6 = arg.length;
_local1 = "\"";
_local2 = 0;
while (_local2 < _local6) {
_local3 = arg.charAt(_local2);
if (_local3 >= " ") {
if ((_local3 == "\\") || (_local3 == "\"")) {
_local1 = _local1 + "\\";
}
_local1 = _local1 + _local3;
} else {
switch (_local3) {
case "\b" :
_local1 = _local1 + "\\b";
break;
case "\f" :
_local1 = _local1 + "\\f";
break;
case newline :
_local1 = _local1 + "\\n";
break;
case "\r" :
_local1 = _local1 + "\\r";
break;
case "\t" :
_local1 = _local1 + "\\t";
break;
default :
_local3 = _local3.charCodeAt();
_local1 = _local1 + (("\\u00" + Math.floor(_local3 / 16).toString(16)) + (_local3 % 16).toString(16));
}
}
_local2 = _local2 + 1;
}
return(_local1 + "\"");
case "boolean" :
return(String(arg));
}
return("null");
}
static function parse(text) {
function error(m) {
throw {name:"JSONError", message:m, at:at - 1, text:text};
}
function next() {
ch = text.charAt(at);
at = at + 1;
return(ch);
}
function white() {
while (ch) {
if (ch <= " ") {
this.next();
} else if (ch == "/") {
switch (this.next()) {
case "/" :
while ((this.next() && (ch != newline)) && (ch != "\r")) {
}
break;
case "*" :
this.next();
for(;;){
if (ch) {
if (ch == "*") {
if (this.next() == "/") {
next();
// unexpected jump
}
} else {
this.next();
}
} else {
error("Unterminated comment");
}
};
break;
default :
this.error("Syntax error");
}
} else {
break;
}
}
}
function str() {
var _local5;
var _local2 = "";
var _local4;
var _local3;
var _local6 = false;
if (ch == "\"") {
while (this.next()) {
if (ch == "\"") {
this.next();
return(_local2);
}
if (ch == "\\") {
switch (this.next()) {
case "b" :
_local2 = _local2 + "\b";
break;
case "f" :
_local2 = _local2 + "\f";
break;
case "n" :
_local2 = _local2 + newline;
break;
case "r" :
_local2 = _local2 + "\r";
break;
case "t" :
_local2 = _local2 + "\t";
break;
case "u" :
_local3 = 0;
_local5 = 0;
while (_local5 < 4) {
_local4 = parseInt(this.next(), 16);
if (!isFinite(_local4)) {
_local6 = true;
break;
}
_local3 = (_local3 * 16) + _local4;
_local5 = _local5 + 1;
}
if (_local6) {
_local6 = false;
break;
}
_local2 = _local2 + String.fromCharCode(_local3);
break;
default :
_local2 = _local2 + ch;
}
} else {
_local2 = _local2 + ch;
}
}
}
this.error("Bad string");
}
function arr() {
var _local2 = [];
if (ch == "[") {
this.next();
this.white();
if (ch == "]") {
this.next();
return(_local2);
}
while (ch) {
_local2.push(this.value());
this.white();
if (ch == "]") {
this.next();
return(_local2);
}
if (ch != ",") {
break;
}
this.next();
this.white();
}
}
this.error("Bad array");
}
function obj() {
var _local3;
var _local2 = {};
if (ch == "{") {
this.next();
this.white();
if (ch == "}") {
this.next();
return(_local2);
}
while (ch) {
_local3 = this.str();
this.white();
if (ch != ":") {
break;
}
this.next();
_local2[_local3] = this.value();
this.white();
if (ch == "}") {
this.next();
return(_local2);
}
if (ch != ",") {
break;
}
this.next();
this.white();
}
}
this.error("Bad object");
}
function num() {
var _local2 = "";
var _local3;
if (ch == "-") {
_local2 = "-";
this.next();
}
while ((ch >= "0") && (ch <= "9")) {
_local2 = _local2 + ch;
this.next();
}
if (ch == ".") {
_local2 = _local2 + ".";
this.next();
while ((ch >= "0") && (ch <= "9")) {
_local2 = _local2 + ch;
this.next();
}
}
if ((ch == "e") | (ch == "E")) {
_local2 = _local2 + ch;
this.next();
if ((ch == "-") || (ch == "+")) {
_local2 = _local2 + ch;
this.next();
}
while ((ch >= "0") && (ch <= "9")) {
_local2 = _local2 + ch;
this.next();
}
}
_local3 = Number(_local2);
if (!isFinite(_local3)) {
this.error("Bad number");
}
return(_local3);
}
function word() {
switch (ch) {
case "t" :
if (((this.next() == "r") && (this.next() == "u")) && (this.next() == "e")) {
this.next();
return(true);
}
break;
case "f" :
if ((((this.next() == "a") && (this.next() == "l")) && (this.next() == "s")) && (this.next() == "e")) {
this.next();
return(false);
}
break;
case "n" :
if (!(((this.next() == "u") && (this.next() == "l")) && (this.next() == "l"))) {
break;
}
this.next();
return(null);
}
this.error("Syntax error");
}
function value() {
this.white();
switch (ch) {
case "{" :
return(this.obj());
case "[" :
return(this.arr());
case "\"" :
return(this.str());
case "-" :
return(this.num());
}
return((((ch >= "0") && (ch <= "9")) ? (this.num()) : (this.word())));
}
var at = 0;
var ch = " ";
return(value());
}
}
Symbol 454 MovieClip Frame 1
this.time_now = 0;
this.timeNow = function () {
return(this.time_now);
};
this.stop();
var date_now = new Date();
this.time_last = date_now.getTime();
this.play();
Symbol 454 MovieClip Frame 2
this.stop();
var date_now = new Date();
var now_time = date_now.getTime();
var time_diff = (now_time - this.time_last);
if (_root.game_paused != true) {
this.time_now = this.time_now + time_diff;
}
this.time_last = now_time;
this.play();
Symbol 454 MovieClip Frame 3
this.gotoAndPlay("Time");
Symbol 464 Button
on (press) {
TidyUp();
gotoAndPlay ("Page5");
}
Symbol 470 Button
on (press) {
this.gotoAndPlay("Page2");
}
Symbol 482 Button
on (press) {
this.gotoAndPlay("Page1");
}
Symbol 483 Button
on (press) {
this.gotoAndPlay("Page3");
}
Symbol 494 Button
on (press) {
this.gotoAndPlay("Page2");
}
Symbol 495 Button
on (press) {
this.gotoAndPlay("Page4");
}
Symbol 504 Button
on (press) {
TidyUp();
this.gotoAndPlay("Page5");
}
Symbol 505 Button
on (press) {
this.gotoAndPlay("Page3");
}
Symbol 536 Button
on (release) {
TidyUp();
this.game_map = "map8";
gotoAndPlay (44);
}
Symbol 539 Button
on (release) {
TidyUp();
var which = Math.floor((Math.random() * 8) + 1);
this.game_map = "map" + which;
gotoAndPlay (44);
}
Symbol 542 Button
on (release) {
TidyUp();
this.game_map = "map7";
gotoAndPlay (44);
}
Symbol 545 Button
on (release) {
TidyUp();
this.game_map = "map6";
gotoAndPlay (44);
}
Symbol 548 Button
on (release) {
TidyUp();
this.game_map = "map5";
gotoAndPlay (44);
}
Symbol 551 Button
on (release) {
TidyUp();
this.game_map = "map4";
gotoAndPlay (44);
}
Symbol 554 Button
on (release) {
TidyUp();
this.game_map = "map3";
gotoAndPlay (44);
}
Symbol 557 Button
on (release) {
TidyUp();
this.game_map = "map2";
gotoAndPlay (44);
}
Symbol 560 Button
on (release) {
TidyUp();
this.game_map = "map1";
gotoAndPlay (44);
}
Symbol 561 Button
on (press) {
this.gotoAndPlay("Page4");
}
Symbol 575 Button
on (press) {
WaveController.SendWave();
}
Symbol 597 Button
on (press) {
_root.view_layout = false;
_root.GotoHomepage();
}