Frame 1
this.play();
this.load_sounds = true;
this.local_mode = false;
this.s3_mode = true;
this.base_url = "http://www.jslibrary.org/onslaught/";
this.ok_url = this.base_url + "/ok.php";
this.score_url = "http://www.jslibrary.org/onslaught/";
this.sound_url = "http://www.jslibrary.org/onslaught/";
if (this.local_mode == true) {
this.base_url = "http://www.jslibrary.org/onslaught/";
this.ok_url = this.base_url + "/ok.php";
this.score_url = "http://www.jslibrary.org/onslaught/";
this.sound_url = "";
} else if (this.s3_mode == true) {
this.base_url = "http://www.jslibrary.org/onslaught/";
this.ok_url = this.base_url + "ok.html";
this.score_url = "http://www.jslibrary.org/onslaught/";
this.sound_url = "http://www.jslibrary.org/onslaught/";
}
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 + _level1.getBytesLoaded();
b_total = b_total + _level1.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) {
gotoAndStop ("Done");
if (success) {
if (this.ok == 1) {
play();
} 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);
};
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 * 0.0174532925199433 /* 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 450 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 450 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 450 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.5i";
this.debug_mode = false;
if (this.game_map == undefined) {
this.game_map = "map1";
}
this.starting_cash = 1000000 /* 0x0F4240 */;
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);
_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.turret_builders.push(_local3);
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 _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.weapon_range = _root.WeaponStore.storeGetRange(the_type);
_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 < 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);
};
_local9.build_clip.onEnterFrame = function () {
var _local2 = this.checkBuild();
this.can_build = _local2;
};
_local9.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 * 0.0174532925199433 /* 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 450 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 = 9.99999999999999E22;
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 * 0.0174532925199433 /* 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 218 MovieClip [Laser] Frame 1
this.fire = function () {
this.gotoAndPlay("Firing");
};
this.stop();
Symbol 218 MovieClip [Laser] Frame 2
this.play();
Symbol 218 MovieClip [Laser] Frame 16
this.gotoAndStop("Idle");
Symbol 227 MovieClip Frame 1
this.fire = function () {
this.gotoAndPlay("Fire");
};
Symbol 227 MovieClip Frame 15
this.gotoAndStop("Fire");
Symbol 231 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 231 MovieClip Frame 2
this.play();
Symbol 231 MovieClip Frame 18
this.gotoAndStop("Idle");
Symbol 241 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 241 MovieClip [TurretStats] Frame 4
this.stop();
if (this.turret) {
this.getStats(this.turret);
} else {
this.gotoAndStop("Idle");
}
Symbol 242 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 242 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 242 MovieClip [WaveSender] Frame 9
this.gotoAndPlay("Spawn");
Symbol 242 MovieClip [WaveSender] Frame 13
this.stop();
removeMovieClip(this);
Symbol 244 MovieClip [UpgradeGraphScaleMinor] Frame 1
this.stop();
Symbol 250 MovieClip [UpgradeGraphScale] Frame 1
this.stop();
if (!this.marker) {
this.marker = "?";
}
Symbol 253 MovieClip [RestartButton] Frame 1
this.stop();
Symbol 272 MovieClip Frame 1
this.stop();
Symbol 274 MovieClip Frame 1
this.stop();
Symbol 276 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 + "";
_local3.sendAndLoad(_local6, lv_into);
}
};
this.viewScore = function (the_id) {
var _local2 = (_root.score_url + "") + the_id;
getURL (_local2, "_blank", "POST");
};
this.stop();
Instance of Symbol 272 MovieClip "ButtonBack" in Symbol 276 MovieClip [GameOver] Frame 1
on (press) {
_root.GotoHomepage();
}
Instance of Symbol 274 MovieClip "ButtonScore" in Symbol 276 MovieClip [GameOver] Frame 1
on (press) {
this._parent.submitScore(this);
}
Instance of Symbol 253 MovieClip [RestartButton] "ButtonRestart" in Symbol 276 MovieClip [GameOver] Frame 1
on (press) {
_root.ResetGame();
}
Symbol 282 MovieClip [CashEarned] Frame 1
this.play();
if (!this.amount) {
this.amount = "0";
}
cash_amount = "$" + this.amount;
Symbol 282 MovieClip [CashEarned] Frame 20
this.stop();
this.removeMovieClip();
Symbol 289 MovieClip [RocketPoisonCloud] Frame 1
this.play();
Symbol 289 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 289 MovieClip [RocketPoisonCloud] Frame 38
this.stop();
this.removeMovieClip();
Symbol 293 MovieClip [BFGBlast] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 5000000 /* 0x4C4B40 */;
}
Symbol 293 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 293 MovieClip [BFGBlast] Frame 38
this.stop();
this.removeMovieClip();
Symbol 297 MovieClip [BlastLarge] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 3000000 /* 0x2DC6C0 */;
}
Symbol 297 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 297 MovieClip [BlastLarge] Frame 38
this.stop();
this.removeMovieClip();
Symbol 301 MovieClip [BlastMedium] Frame 1
this.play();
if (!this.weapon_damage) {
this.weapon_damage = 2000000 /* 0x1E8480 */;
}
Symbol 301 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 301 MovieClip [BlastMedium] Frame 38
this.stop();
this.removeMovieClip();
Symbol 305 MovieClip [RocketNukeBlast] Frame 1
this.play();
if (this.weapon_damage == undefined) {
this.weapon_damage = 5000000 /* 0x4C4B40 */;
}
Symbol 305 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 305 MovieClip [RocketNukeBlast] Frame 38
this.stop();
this.removeMovieClip();
Symbol 309 MovieClip [SpecialFire] Frame 1
this.play();
Symbol 309 MovieClip [SpecialFire] Frame 14
this.stop();
this.removeMovieClip();
Symbol 312 MovieClip [SpecialTake] Frame 1
this.play();
Symbol 312 MovieClip [SpecialTake] Frame 14
this.stop();
this.removeMovieClip();
Symbol 313 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 313 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 313 MovieClip [AddonClusterBlast] Frame 11
this.stop();
this.removeMovieClip();
Symbol 320 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 320 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 320 MovieClip Frame 3
this.stop();
this.gotoAndPlay("Attack");
Symbol 320 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 320 MovieClip Frame 14
this.stop();
this.gotoAndPlay("Planted");
Symbol 320 MovieClip Frame 15
this.stop();
this.target_obj.removeMovieClip();
Symbol 325 MovieClip [LandmineBig] Frame 1
this.stop();
this.play();
Symbol 325 MovieClip [LandmineBig] Frame 2
this.play();
Symbol 325 MovieClip [LandmineBig] Frame 19
this.gotoAndPlay("Beep");
Symbol 329 MovieClip [LandmineBigClusterLaser] Frame 1
this.stop();
this.play();
Symbol 329 MovieClip [LandmineBigClusterLaser] Frame 2
this.play();
Symbol 329 MovieClip [LandmineBigClusterLaser] Frame 19
this.gotoAndPlay("Beep");
Symbol 331 MovieClip [LandmineBigCluster] Frame 1
this.stop();
this.play();
Symbol 331 MovieClip [LandmineBigCluster] Frame 2
this.play();
Symbol 331 MovieClip [LandmineBigCluster] Frame 19
this.gotoAndPlay("Beep");
Symbol 335 MovieClip [Landmine] Frame 1
this.stop();
this.play();
Symbol 335 MovieClip [Landmine] Frame 2
this.play();
Symbol 335 MovieClip [Landmine] Frame 19
this.gotoAndPlay("Beep");
Symbol 338 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 341 MovieClip [RadarBlip] Frame 1
this.play();
Symbol 341 MovieClip [RadarBlip] Frame 52
this.stop();
this.removeMovieClip();
Symbol 346 MovieClip [MessageBox] Frame 1
this.stop();
this.setText = function (new_text) {
TheMessage.text = new_text;
};
this.setText("A message");
Symbol 347 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 347 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 347 MovieClip [MessageBar] Frame 4
this.gotoAndPlay("Reveal");
Symbol 347 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 347 MovieClip [MessageBar] Frame 6
this.gotoAndPlay("Wait");
Symbol 347 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 347 MovieClip [MessageBar] Frame 8
this.gotoAndPlay("Hide");
Symbol 351 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 351 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 351 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 351 MovieClip [TurretBuilder] Frame 16
this.gotoAndPlay("FadeIn");
Symbol 351 MovieClip [TurretBuilder] Frame 18
this.stop();
_root.NewTurretBuilt(this);
Symbol 358 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 367 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 369 MovieClip [UpgradeGraphBar] Frame 1
this.stop();
Symbol 371 MovieClip [UpgradeGraphBarGreen] Frame 1
this.stop();
Symbol 373 MovieClip [UpgradeGraphBarYellow] Frame 1
this.stop();
Symbol 378 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 381 Button
on (press) {
this.tryUpgradeDamage();
}
Symbol 382 Button
on (press) {
this.tryUpgradeRange();
}
Symbol 383 Button
on (press) {
this.tryUpgradeRate();
}
Symbol 387 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 387 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 390 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 390 MovieClip [WeaponStoreRack] Frame 2
this.stop();
Symbol 390 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 390 MovieClip [WeaponStoreRack] Frame 4
this.gotoAndPlay("ViewItem");
Symbol 395 Button
on (release) {
storeNextItem();
}
Symbol 398 Button
on (release) {
storePrevItem();
}
Symbol 399 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 390 MovieClip [WeaponStoreRack] "WeaponRack" in Symbol 399 MovieClip [WeaponStore] Frame 1
on (press) {
this._parent.storeBuyItem();
}
Symbol 403 MovieClip Frame 1
this.stop();
this.killed = function () {
this.gotoAndStop("Dead");
};
this.alive = function () {
this.gotoAndStop("Alive");
};
this.stop();
Symbol 403 MovieClip Frame 6
this.stop();
Symbol 410 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 414 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 414 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 414 MovieClip [WaveManager] Frame 9
this.gotoAndPlay("Spawn");
Symbol 414 MovieClip [WaveManager] Frame 13
this.stop();
Symbol 415 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 417 MovieClip [Waypoint] Frame 1
Symbol 425 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 427 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 427 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 427 MovieClip [TurretBlue] Frame 7
this.gotoAndPlay("Fire");
Symbol 427 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 427 MovieClip [TurretBlue] Frame 11
this.gotoAndPlay("Freakout");
Symbol 427 MovieClip [TurretBlue] Frame 14
this.stop();
Symbol 429 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 429 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 429 MovieClip [TurretRed] Frame 7
this.gotoAndPlay("Fire");
Symbol 429 MovieClip [TurretRed] Frame 10
this.stop();
Symbol 433 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 433 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 433 MovieClip [TurretGreen] Frame 7
this.gotoAndPlay("Fire");
Symbol 433 MovieClip [TurretGreen] Frame 10
this.stop();
Symbol 442 MovieClip Frame 1
this.play();
Symbol 442 MovieClip Frame 16
this.gotoAndPlay("Start");
Symbol 445 MovieClip Frame 1
this.stop();
Symbol 593 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 449 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 449 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 449 MovieClip Frame 3
this.gotoAndPlay("Time");
Symbol 459 Button
on (press) {
TidyUp();
gotoAndPlay ("Page5");
}
Symbol 465 Button
on (press) {
this.gotoAndPlay("Page2");
}
Symbol 476 Button
on (press) {
this.gotoAndPlay("Page1");
}
Symbol 477 Button
on (press) {
this.gotoAndPlay("Page3");
}
Symbol 487 Button
on (press) {
this.gotoAndPlay("Page2");
}
Symbol 488 Button
on (press) {
this.gotoAndPlay("Page4");
}
Symbol 497 Button
on (press) {
TidyUp();
this.gotoAndPlay("Page5");
}
Symbol 498 Button
on (press) {
this.gotoAndPlay("Page3");
}
Symbol 529 Button
on (release) {
TidyUp();
this.game_map = "map8";
gotoAndPlay (44);
}
Symbol 532 Button
on (release) {
TidyUp();
var which = Math.floor((Math.random() * 8) + 1);
this.game_map = "map" + which;
gotoAndPlay (44);
}
Symbol 535 Button
on (release) {
TidyUp();
this.game_map = "map7";
gotoAndPlay (44);
}
Symbol 538 Button
on (release) {
TidyUp();
this.game_map = "map6";
gotoAndPlay (44);
}
Symbol 541 Button
on (release) {
TidyUp();
this.game_map = "map5";
gotoAndPlay (44);
}
Symbol 544 Button
on (release) {
TidyUp();
this.game_map = "map4";
gotoAndPlay (44);
}
Symbol 547 Button
on (release) {
TidyUp();
this.game_map = "map3";
gotoAndPlay (44);
}
Symbol 550 Button
on (release) {
TidyUp();
this.game_map = "map2";
gotoAndPlay (44);
}
Symbol 553 Button
on (release) {
TidyUp();
this.game_map = "map1";
gotoAndPlay (44);
}
Symbol 554 Button
on (press) {
this.gotoAndPlay("Page4");
}
Symbol 569 Button
on (press) {
WaveController.SendWave();
}
Symbol 592 Button
on (press) {
_root.view_layout = false;
_root.GotoHomepage();
}