Section 1
//ag_intro_mc_2 (Penguinz_ArmorGames_fla.ag_intro_mc_2)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class ag_intro_mc_2 extends MovieClip {
public function ag_intro_mc_2(){
addFrameScript(0, frame1, 216, frame217);
}
function frame217(){
stop();
MovieClip(parent).play();
MovieClip(parent).removeChild(this);
}
function frame1(){
MovieClip(parent).stop();
gotoAndPlay(2);
}
}
}//package Penguinz_ArmorGames_fla
Section 2
//creditsbox_284 (Penguinz_ArmorGames_fla.creditsbox_284)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class creditsbox_284 extends MovieClip {
public var buttonLongAnimals:SimpleButton;
public var buttonJimp:MovieClip;
public var buttonContinue:SimpleButton;
}
}//package Penguinz_ArmorGames_fla
Section 3
//MainTimeline (Penguinz_ArmorGames_fla.MainTimeline)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class MainTimeline extends MovieClip {
public var _mochiads_game_id:String;
public function MainTimeline(){
addFrameScript(0, frame1, 17, frame18);
}
function frame18(){
stop();
}
function frame1(){
_mochiads_game_id = "9f06f8fb0af6308f";
}
}
}//package Penguinz_ArmorGames_fla
Section 4
//menu_312 (Penguinz_ArmorGames_fla.menu_312)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class menu_312 extends MovieClip {
public var buttonCredits:SimpleButton;
public var buttonOptions:SimpleButton;
public var buttonHard:SimpleButton;
public var buttonBack:MovieClip;
public var buttonEasy:SimpleButton;
public var buttonMedium:SimpleButton;
public var buttonMoreGames:SimpleButton;
public var buttonPlay:SimpleButton;
}
}//package Penguinz_ArmorGames_fla
Section 5
//shop_weapons_344 (Penguinz_ArmorGames_fla.shop_weapons_344)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class shop_weapons_344 extends MovieClip {
public var buttonWeapon2:SimpleButton;
public var buttonWeapon4:SimpleButton;
public var buttonWeapon7:SimpleButton;
public var buttonWeapon5:SimpleButton;
public var buttonWeapon6:SimpleButton;
public var buttonWeapon0:SimpleButton;
public var buttonWeapon8:SimpleButton;
public var buttonWeapon1:SimpleButton;
public var buttonWeapon3:SimpleButton;
public var weaponTick0:MovieClip;
public var weaponTick4:MovieClip;
public var weaponTick5:MovieClip;
public var weaponTick1:MovieClip;
public var weaponTick6:MovieClip;
public var weaponTick2:MovieClip;
public var weaponTick8:MovieClip;
public var weaponTick3:MovieClip;
public var weaponTick7:MovieClip;
public var selector:MovieClip;
}
}//package Penguinz_ArmorGames_fla
Section 6
//shop_weaponSelecter_345 (Penguinz_ArmorGames_fla.shop_weaponSelecter_345)
package Penguinz_ArmorGames_fla {
import flash.display.*;
import flash.text.*;
public dynamic class shop_weaponSelecter_345 extends MovieClip {
public var indicator_0_A_2:MovieClip;
public var textDamage:TextField;
public var textPrice:TextField;
public var indicator_0_A_0:MovieClip;
public var indicator_0_A_1:MovieClip;
public var textUpAccuracyCost:TextField;
public var textUpExtraCost:TextField;
public var indicator_0_D_0:MovieClip;
public var textUpDamage:TextField;
public var indicator_0_D_2:MovieClip;
public var textUpExtra:TextField;
public var buttonBuyClip:SimpleButton;
public var textAccuracy:TextField;
public var textBuyWeapon:TextField;
public var indicator_0_D_1:MovieClip;
public var buttonBuyUpgrade0:SimpleButton;
public var buttonBuyUpgrade1:SimpleButton;
public var buttonBuyUpgrade2:SimpleButton;
public var textUpDamageCost:TextField;
public var indicator_0_B_1:MovieClip;
public var indicator_0_B_0:MovieClip;
public var indicator_0_B_2:MovieClip;
public var textUpAccuracy:TextField;
}
}//package Penguinz_ArmorGames_fla
Section 7
//snowbox_273 (Penguinz_ArmorGames_fla.snowbox_273)
package Penguinz_ArmorGames_fla {
import flash.display.*;
public dynamic class snowbox_273 extends MovieClip {
public var selectedSound:MovieClip;
public var buttonMoreGames:SimpleButton;
public var buttonQuit:SimpleButton;
public var buttonContinue:SimpleButton;
public var buttonSound:SimpleButton;
}
}//package Penguinz_ArmorGames_fla
Section 8
//BigExplosion1 (BigExplosion1)
package {
import flash.display.*;
public dynamic class BigExplosion1 extends MovieClip {
}
}//package
Section 9
//BigExplosion2 (BigExplosion2)
package {
import flash.display.*;
public dynamic class BigExplosion2 extends MovieClip {
}
}//package
Section 10
//bloodSpray1 (bloodSpray1)
package {
import flash.display.*;
public dynamic class bloodSpray1 extends MovieClip {
}
}//package
Section 11
//bloodSpray2 (bloodSpray2)
package {
import flash.display.*;
public dynamic class bloodSpray2 extends MovieClip {
}
}//package
Section 12
//bloodSpray3 (bloodSpray3)
package {
import flash.display.*;
public dynamic class bloodSpray3 extends MovieClip {
}
}//package
Section 13
//bloodSpray4 (bloodSpray4)
package {
import flash.display.*;
public dynamic class bloodSpray4 extends MovieClip {
}
}//package
Section 14
//bullet1 (bullet1)
package {
import flash.display.*;
public dynamic class bullet1 extends MovieClip {
}
}//package
Section 15
//bullet2 (bullet2)
package {
import flash.display.*;
public dynamic class bullet2 extends MovieClip {
}
}//package
Section 16
//bulletwhizwav (bulletwhizwav)
package {
import flash.media.*;
public dynamic class bulletwhizwav extends Sound {
}
}//package
Section 17
//buttonQuestionMark (buttonQuestionMark)
package {
import flash.display.*;
public dynamic class buttonQuestionMark extends SimpleButton {
}
}//package
Section 18
//buttonRestart (buttonRestart)
package {
import flash.display.*;
public dynamic class buttonRestart extends SimpleButton {
}
}//package
Section 19
//buttonSubmit (buttonSubmit)
package {
import flash.display.*;
public dynamic class buttonSubmit extends SimpleButton {
}
}//package
Section 20
//chainsawLoopWAV (chainsawLoopWAV)
package {
import flash.media.*;
public dynamic class chainsawLoopWAV extends Sound {
}
}//package
Section 21
//changeweaponwav (changeweaponwav)
package {
import flash.media.*;
public dynamic class changeweaponwav extends Sound {
}
}//package
Section 22
//Collision (Collision)
package {
import flash.geom.*;
public class Collision {
public static var stats_numPolyCollisionTests:int;
public static var stats_numBBTests:int;
public static var closestX:Number = 0;
public static var closestY:Number = 0;
public static var main:Main;
public static var stats_numIntersections:int;
static var PolyCollision_LineHit:Line;
public static var IntersectionX:Number = 0;
public static var IntersectionY:Number = 0;
public static var closestInfiniteX:Number = 0;
public static var closestInfiniteY:Number = 0;
public static function ObjectSurfaceCollision(_arg1:GameObj):Boolean{
var _local2:Array;
var _local3:Boolean;
var _local4:Poly;
var _local5:Line;
var _local6:Point;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_local2 = new Array();
_local2.push(new Point(0, 0));
for each (_local4 in Game.polygonList) {
if (((_local4.active) && ((_local4.type == Poly.polytype_FLOOR)))){
if (GameObjectInPolyBoundingBox(_arg1, _local4)){
for each (_local5 in _local4.lineList) {
for each (_local6 in _local2) {
_local7 = (_arg1.xpos + _local6.x);
_local8 = (_arg1.ypos + _local6.y);
if ((((_local7 >= _local5.x0)) && ((_local7 <= _local5.x1)))){
_local9 = ((1 / (_local5.x1 - _local5.x0)) * (_local7 - _local5.x0));
_local10 = (_local5.y0 + (_local5.dy * _local9));
_local11 = _local8;
if ((((_local11 > _local10)) && ((_local11 < (_local10 + 20))))){
return (true);
};
};
};
};
};
};
};
return (false);
}
static function DotProduct(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
_local5 = ((_arg1 * _arg3) + (_arg2 * _arg4));
return (_local5);
}
static function ObjectOnLineCollision(_arg1:GameObj):Boolean{
var _local2:Array;
var _local3:Boolean;
var _local4:Point;
var _local5:Number;
var _local6:Number;
var _local7:Line;
var _local8:Number;
if (_arg1.currentPoly == null){
return (false);
};
_local2 = new Array();
_local2.push(new Point(0, 0));
_local2.push(new Point(-10, 0));
_local2.push(new Point(10, 0));
for each (_local4 in _local2) {
_local5 = (_arg1.xpos + _local4.x);
_local6 = (_arg1.ypos + _local4.y);
for each (_local7 in _arg1.currentPoly.lineList) {
if ((((_local5 >= _local7.x0)) && ((_local5 <= _local7.x1)))){
_local8 = ((1 / (_local7.x1 - _local7.x0)) * (_local5 - _local7.x0));
_arg1.ypos = (_local7.y0 + (_local7.dy * _local8));
_arg1.currentLine = _local7;
return (true);
};
};
};
return (false);
}
static function PolyCollision(_arg1:GameObj, _arg2:Poly, _arg3:Number, _arg4:Number, _arg5:Number):Boolean{
var _local6:Array;
var _local7:Array;
var _local8:Line;
var _local9:Boolean;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Line;
var _local16:int;
var _local17:int;
var _local18:*;
var _local19:Number;
var _local20:Number;
var _local21:Line;
var _local22:Line;
stats_numPolyCollisionTests++;
_local6 = new Array();
_local7 = new Array();
_local11 = (_arg1.xpos + _arg3);
_local12 = (_arg1.ypos + _arg4);
_local13 = _arg5;
_local14 = (_arg5 * _local13);
for each (_local15 in _arg2.lineList) {
_local9 = SideOfLine(_local15.x0, _local15.y0, _local15.x1, _local15.y1, _local11, _local12);
if (_local9 == true){
_local10 = Dist2ToLine(_local15.x0, _local15.y0, _local15.x1, _local15.y1, _local11, _local12);
if (_local10 < _local14){
_local6.push(_local15);
_local7.push(_local10);
};
};
};
_local18 = _local6.length;
_local16 = 0;
while (_local16 < (_local18 - 1)) {
_local17 = _local16;
while (_local17 < _local18) {
_local19 = _local7[_local16];
_local20 = _local7[_local17];
_local21 = _local6[_local16];
_local22 = _local6[_local17];
if (_local20 < _local19){
_local7[_local16] = _local20;
_local7[_local17] = _local19;
_local6[_local16] = _local22;
_local6[_local17] = _local21;
};
_local17++;
};
_local16++;
};
_local16 = 0;
while (_local16 < _local18) {
_local8 = _local6[_local16];
_local9 = SideOfLine(_local8.x0, _local8.y0, _local8.x1, _local8.y1, _local11, _local12);
if (_local9 == true){
_local10 = Dist2ToLine(_local8.x0, _local8.y0, _local8.x1, _local8.y1, _local11, _local12);
if (_local10 < _local14){
stats_numIntersections++;
Intersected(_arg1, _local8, closestX, closestY, _arg3, _arg4, _arg5);
PolyCollision_LineHit = _local8;
return (true);
};
};
return (true);
_local16++;
};
return (false);
}
public static function EnemyBombCollision(_arg1:GameObj, _arg2:Number){
var _local3:GameObj;
for each (_local3 in GameObjects.objs) {
if (((_local3.active) && (_local3.colFlag_canBeShot))){
if (Utils.DistBetweenPoints(_local3.xpos, _local3.ypos, _arg1.xpos, _arg1.ypos) < _arg2){
_local3.EnemyHitByBullet(_arg1);
};
};
};
}
public static function ClosestPointOnLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
_local7 = (_arg5 - _arg1);
_local8 = (_arg6 - _arg2);
_local9 = (_arg3 - _arg1);
_local10 = (_arg4 - _arg2);
_local11 = ((_local9 * _local9) + (_local10 * _local10));
_local12 = ((_local7 * _local9) + (_local8 * _local10));
_local13 = (_local12 / _local11);
closestInfiniteX = (_arg1 + (_local9 * _local13));
closestInfiniteY = (_arg2 + (_local10 * _local13));
if (_local13 < 0){
_local13 = 0;
};
if (_local13 > 1){
_local13 = 1;
};
closestX = (_arg1 + (_local9 * _local13));
closestY = (_arg2 + (_local10 * _local13));
}
public static function GetSwitchInRange(_arg1:GameObj):GameObj{
var _local2:GameObj;
return (null);
return (null);
}
public static function PlayerBombCollision(_arg1:GameObj, _arg2:Number):Boolean{
var _local3:GameObj;
_local3 = Game.goPlayer;
if (Utils.DistBetweenPoints(_local3.xpos, _local3.ypos, _arg1.xpos, _arg1.ypos) < _arg2){
Game.goPlayer.PlayerHitByEnemy(_arg1);
return (true);
};
return (false);
}
public static function PlayerDeathZoneCollision():void{
var _local1:GameObj;
var _local2:Poly;
if (Game.goPlayer.colFlag_playercanbekilled == false){
return;
};
_local1 = Game.goPlayer;
for each (_local2 in Game.polygonList) {
if (((((_local2.active) && ((_local2.type == Poly.polytype_ZONE)))) && ((_local2.subTypeName == "Death")))){
if (GameObjectInPolyBoundingBox(_local1, _local2)){
if (PointInConvexPoly(_local1.xpos, _local1.ypos, _local2.lineList)){
_local1.PlayerHitByEnemy(null);
return;
};
};
};
};
}
public static function SingleBulletEnemyCollision(_arg1:GameObj){
var _local2:Number;
var _local3:Number;
var _local4:GameObj;
var _local5:Rectangle;
_local2 = _arg1.xpos;
_local3 = _arg1.ypos;
for each (_local4 in GameObjects.objs) {
if (((_local4.active) && (_local4.colFlag_canBeShot))){
_local5 = _local4.GetObjectRectangle().clone();
_local4.GetObjectRectangle().clone().x = (_local5.x + _local4.xpos);
_local5.y = (_local5.y + _local4.ypos);
if (_local5.contains(_local2, _local3)){
_local4.EnemyHitByBullet(_arg1);
return (true);
};
};
};
return (false);
}
static function SideOfLine1(_arg1:Line, _arg2:Number, _arg3:Number):Boolean{
var _local4:Number;
_local4 = DotProduct((_arg1.x1 - _arg1.x0), (_arg1.y1 - _arg1.y0), (_arg2 - _arg1.x0), (_arg3 - _arg1.y0));
if (_local4 < 0){
return (false);
};
return (true);
}
public static function PlayerExitCollision(){
var _local1:GameObj;
for each (_local1 in GameObjects.objs) {
if (((_local1.active) && (_local1.colFlag_isExit))){
if (PlayerObjectRectangleCollision(_local1)){
Game.goPlayer.PlayerHitExit(_local1);
};
};
};
}
static function Dist2Between(_arg1:GameObj, _arg2:GameObj):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg2.xpos - _arg1.xpos);
_local4 = (_arg2.ypos - _arg1.ypos);
return (((_local3 * _local3) + (_local4 * _local4)));
}
public static function PlayerJumpOnEnemyCollision(){
var _local1:GameObj;
for each (_local1 in GameObjects.objs) {
if (((_local1.active) && (_local1.colFlag_jumpon))){
if (PlayerObjectRectangleCollision(_local1)){
_local1.EnemyJumpedOn();
};
};
};
}
public static function FindNearestPathStartPointToPos(_arg1:Number, _arg2:Number):Poly{
var _local3:Poly;
var _local4:Number;
var _local5:Poly;
var _local6:Point;
var _local7:*;
_local3 = null;
_local4 = 99999999;
for each (_local5 in Game.polygonList) {
if (((_local5.active) && ((_local5.type == Poly.polytype_PATH)))){
_local6 = _local5.GetPoint(0);
_local7 = Utils.Dist2BetweenPoints(_local6.x, _local6.y, _arg1, _arg2);
if (_local7 < _local4){
_local4 = _local7;
_local3 = _local5;
};
};
};
return (_local3);
}
static function SideOfLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Boolean{
var _local7:Number;
_local7 = DotProduct((_arg3 - _arg1), (_arg4 - _arg2), (_arg5 - _arg1), (_arg6 - _arg2));
if (_local7 < 0){
return (false);
};
return (true);
}
static function PlayerObjectRectangleCollision(_arg1:GameObj):Boolean{
var _local2:GameObj;
var _local3:ObjectDef;
var _local4:ObjectDef;
var _local5:Rectangle;
var _local6:Rectangle;
_local2 = Game.goPlayer;
_local3 = _local2.GetObjectDef();
_local4 = _arg1.GetObjectDef();
_local5 = _local3.colRect.clone();
_local6 = _local4.colRect.clone();
_local5.x = (_local5.x + _local2.xpos);
_local5.y = (_local5.y + _local2.ypos);
_local6.x = (_local6.x + _arg1.xpos);
_local6.y = (_local6.y + _arg1.ypos);
return (_local5.intersects(_local6));
}
static function GameObjectInPolyBoundingBox(_arg1:GameObj, _arg2:Poly):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = (_arg1.radius + 50);
_local4 = _arg1.xpos;
_local5 = _arg1.ypos;
stats_numBBTests++;
if (_local4 < (_arg2.boundingRectangle.left - _local3)){
return (false);
};
if (_local4 > (_arg2.boundingRectangle.right + _local3)){
return (false);
};
if (_local5 < (_arg2.boundingRectangle.top - _local3)){
return (false);
};
if (_local5 > (_arg2.boundingRectangle.bottom + _local3)){
return (false);
};
return (true);
}
public static function PlayerEnemyBulletCollision(){
var _local1:GameObj;
if (Game.goPlayer.colFlag_playercanbekilled == false){
return;
};
if (Game.invincibleTimer > 0){
return;
};
for each (_local1 in GameObjects.objs) {
if (((_local1.active) && (_local1.colFlag_isEnemyBullet))){
if (PlayerObjectRectangleCollision(_local1)){
Game.goPlayer.PlayerHitByEnemyBullet(_local1);
};
};
};
}
public static function BulletEnemyCollision(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:GameObj;
var _local5:Number;
var _local6:Number;
var _local7:GameObj;
var _local8:Rectangle;
for each (_local4 in GameObjects.objs) {
if (((_local4.active) && (_local4.colFlag_isBullet))){
_local5 = _local4.xpos;
_local6 = _local4.ypos;
for each (_local7 in GameObjects.objs) {
if (((_local7.active) && (_local7.colFlag_canBeShot))){
_local8 = _local7.GetObjectRectangle().clone();
_local7.GetObjectRectangle().clone().x = (_local8.x + _local7.xpos);
_local8.y = (_local8.y + _local7.ypos);
if (_local8.contains(_local5, _local6)){
_local7.EnemyHitByBullet(_local4);
};
};
};
};
};
}
public static function ObjectFallingSurfaceCollision(_arg1:GameObj):Boolean{
var _local2:Array;
var _local3:Boolean;
var _local4:Poly;
var _local5:Line;
var _local6:Point;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_local2 = new Array();
_local2.push(new Point(0, 0));
_local2.push(new Point(-10, 0));
_local2.push(new Point(10, 0));
if (_arg1.yvel < 0){
return (false);
};
for each (_local4 in Game.polygonList) {
if (((_local4.active) && ((_local4.type == Poly.polytype_FLOOR)))){
if (GameObjectInPolyBoundingBox(_arg1, _local4)){
for each (_local5 in _local4.lineList) {
for each (_local6 in _local2) {
_local7 = (_arg1.xpos + _local6.x);
_local8 = (_arg1.ypos + _local6.y);
if ((((_local7 >= _local5.x0)) && ((_local7 <= _local5.x1)))){
_local9 = ((1 / (_local5.x1 - _local5.x0)) * (_local7 - _local5.x0));
_local10 = (_local5.y0 + (_local5.dy * _local9));
_local11 = _local8;
if ((((_local11 > _local10)) && ((_local11 < (_local10 + 100))))){
_arg1.ypos = (_local10 - _local6.y);
_arg1.LandedOnLine(_local4, _local5);
return (true);
};
};
};
};
};
};
};
return (false);
}
static function Dist2BetweenPoints(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((_local5 * _local5) + (_local6 * _local6)));
}
static function PlayerFootObjectRectangleCollision(_arg1:GameObj):Boolean{
var _local2:GameObj;
var _local3:ObjectDef;
var _local4:Rectangle;
_local2 = Game.goPlayer;
_local3 = _arg1.GetObjectDef();
_local4 = _local3.colRect.clone();
_local3.colRect.clone().x = (_local4.x + _arg1.xpos);
_local4.y = (_local4.y + _arg1.ypos);
return (_local4.contains(_local2.xpos, _local2.ypos));
}
public static function FindHighestFloorPos(_arg1:Number):Number{
var _local2:Number;
var _local3:Boolean;
var _local4:Poly;
var _local5:Line;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
for each (_local4 in Game.polygonList) {
if (((_local4.active) && ((_local4.type == Poly.polytype_FLOOR)))){
for each (_local5 in _local4.lineList) {
_local6 = _arg1;
_local7 = 0;
if ((((_local6 >= _local5.x0)) && ((_local6 <= _local5.x1)))){
_local8 = ((1 / (_local5.x1 - _local5.x0)) * (_local6 - _local5.x0));
_local9 = (_local5.y0 + (_local5.dy * _local8));
return (_local9);
};
};
};
};
return (999999);
}
public static function PlayerPickupCollision(){
var _local1:GameObj;
for each (_local1 in GameObjects.objs) {
if (((_local1.active) && (_local1.colFlag_canBePickedUp))){
if (PlayerObjectRectangleCollision(_local1)){
Game.goPlayer.PlayerHitPickup(_local1);
};
};
};
}
public static function LineLineIntersection(_arg1:Line, _arg2:Line):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local3 = _arg1.x0;
_local4 = _arg1.y0;
_local5 = _arg1.x1;
_local6 = _arg1.y1;
_local7 = _arg2.x0;
_local8 = _arg2.y0;
_local9 = _arg2.x1;
_local10 = _arg2.y1;
_local11 = (_local5 - _local3);
_local12 = (_local9 - _local7);
_local13 = ((_local6 - _local4) / _local11);
_local14 = ((_local10 - _local8) / _local12);
_local15 = (_local4 - (_local13 * _local3));
_local16 = (_local8 - (_local14 * _local7));
_local17 = ((_local15 - _local16) / (_local14 - _local13));
_local18 = (((_local13 * (_local16 - _local15)) / (_local13 - _local14)) + _local15);
if (_arg1.boundingRect.contains(_local17, _local18)){
if (_arg2.boundingRect.contains(_local17, _local18)){
IntersectionX = _local17;
IntersectionY = _local18;
return (true);
};
};
return (false);
}
static function PlayerObjectPointCollision(_arg1:GameObj):Boolean{
var _local2:GameObj;
var _local3:ObjectDef;
var _local4:Rectangle;
_local2 = Game.goPlayer;
_local3 = _local2.GetObjectDef();
_local4 = _local3.colRect.clone();
_local3.colRect.clone().x = (_local4.x + _local2.xpos);
_local4.y = (_local4.y + _local2.ypos);
return (_local4.contains(_arg1.xpos, _arg1.ypos));
}
static function Dist2ToLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
var _local7:Number;
var _local8:Number;
ClosestPointOnLine(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
_local7 = (closestX - _arg5);
_local8 = (closestY - _arg6);
return (((_local7 * _local7) + (_local8 * _local8)));
}
static function Intersected(_arg1:GameObj, _arg2:Line, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):void{
var _local8:int;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:int;
var _local15:Number;
_local8 = 50;
_local9 = ((_arg1.oldxpos + _arg5) - _arg3);
_local10 = ((_arg1.oldypos + _arg6) - _arg4);
_local9 = (_local9 / Number(_local8));
_local10 = (_local10 / Number(_local8));
_local11 = (_arg1.xpos + _arg5);
_local12 = (_arg1.ypos + _arg6);
_local13 = (_arg7 * _arg7);
_local14 = 0;
while (_local14 < _local8) {
_local11 = (_local11 + _local9);
_local12 = (_local12 + _local10);
_local15 = Dist2ToLine(_arg2.x0, _arg2.y0, _arg2.x1, _arg2.y1, _local11, _local12);
if (_local15 > _local13){
_arg1.xpos = (_local11 - _arg5);
_arg1.ypos = (_local12 - _arg6);
return;
};
_local14++;
};
}
static function DistBetween(_arg1:GameObj, _arg2:GameObj):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg2.xpos - _arg1.xpos);
_local4 = (_arg2.ypos - _arg1.ypos);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
static function DistBetweenPoints(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public static function SingleObjectZoneCollision(_arg1:GameObj):Poly{
var _local2:Poly;
for each (_local2 in Game.polygonList) {
if (((_local2.active) && ((_local2.type == Poly.polytype_ZONE)))){
if (GameObjectInPolyBoundingBox(_arg1, _local2)){
if (PointInConvexPoly(_arg1.xpos, _arg1.ypos, _local2.lineList)){
return (_local2);
};
};
};
};
return (null);
}
public static function PointInConvexPoly(_arg1:Number, _arg2:Number, _arg3:Array):Boolean{
var _local4:int;
var _local5:int;
var _local6:Line;
var _local7:Number;
_local4 = _arg3.length;
_local5 = 0;
while (_local5 < _local4) {
_local6 = _arg3[_local5];
_local7 = DotProduct((_local6.x0 - _arg1), (_local6.y0 - _arg2), _local6.nx, _local6.ny);
if (_local7 < 0){
return (false);
};
_local5++;
};
return (true);
}
public static function ObjectWallCollision(_arg1:GameObj):Boolean{
var _local2:Boolean;
var _local3:int;
var _local4:Poly;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local2 = false;
if (_arg1.objectDef == null){
return (false);
};
if (_arg1.objectDef.collisionCircleOffsets.length == 0){
return (false);
};
_local3 = _arg1.objectDef.collisionCircleOffsets.length;
for each (_local4 in Game.polygonList) {
if (_local4.active){
if (GameObjectInPolyBoundingBox(_arg1, _local4)){
if (_local4.type == Poly.polytype_WALL){
_local5 = 0;
while (_local5 < _local3) {
_local6 = _arg1.objectDef.collisionCircleOffsets[_local5].x;
_local7 = _arg1.objectDef.collisionCircleOffsets[_local5].y;
_local8 = _arg1.objectDef.collisionCircleRadii[_local5];
_local2 = PolyCollision(_arg1, _local4, _local6, _local7, _local8);
if (_local2){
return (true);
};
_local5++;
};
};
};
};
};
return (false);
}
public static function Update(_arg1:Main){
(main = _arg1);
(stats_numIntersections = 0);
(stats_numBBTests = 0);
(stats_numPolyCollisionTests = 0);
PlayerEnemyCollision();
PlayerEnemyBulletCollision();
BulletEnemyCollision();
PlayerPickupCollision();
}
public static function PlayerEnemyCollision(){
var _local1:GameObj;
if (Game.goPlayer.colFlag_playercanbekilled == false){
return;
};
if (Game.invincibleTimer > 0){
return;
};
for each (_local1 in GameObjects.objs) {
if (((((_local1.active) && (_local1.colFlag_killPlayer))) && ((_local1.isDead == false)))){
if (PlayerObjectRectangleCollision(_local1)){
Game.goPlayer.PlayerHitByEnemy(_local1);
};
};
};
}
static function DistToLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
var _local7:Number;
var _local8:Number;
var _local9:Number;
ClosestPointOnLine(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
_local7 = (closestX - _arg5);
_local8 = (closestY - _arg6);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
return (_local9);
}
public static function SingleObjectPlatformCollision(_arg1:GameObj):GameObj{
var _local2:Number;
var _local3:Number;
var _local4:GameObj;
var _local5:Rectangle;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local2 = _arg1.xpos;
_local3 = _arg1.ypos;
for each (_local4 in GameObjects.objs) {
if (((_local4.active) && (_local4.colFlag_isPlatform))){
_local5 = _local4.GetObjectRectangle();
_local6 = (_local4.xpos + _local5.x);
_local7 = (_local6 + _local5.width);
_local8 = (_local4.ypos + _local5.y);
_local9 = (_local8 + 15);
if ((((((((((_local2 >= _local6)) && ((_local2 <= _local7)))) && ((_arg1.yvel >= 0)))) && ((_local3 >= _local8)))) && ((_local3 <= _local9)))){
return (_local4);
};
};
};
return (null);
}
public static function PlayerBouncyPadCollision(){
var _local1:GameObj;
if (Game.goPlayer.colFlag_playercanbekilled == false){
return;
};
if (Game.goPlayer.yvel <= 0){
return;
};
for each (_local1 in GameObjects.objs) {
if (((_local1.active) && (_local1.colFlag_isBouncyPad))){
if (PlayerFootObjectRectangleCollision(_local1)){
Game.goPlayer.JumpedOnBouncyPad(_local1);
};
};
};
}
}
}//package
Section 23
//CreditsScreen (CreditsScreen)
package {
import flash.display.*;
public dynamic class CreditsScreen extends MovieClip {
public var pm:MovieClip;
public function CreditsScreen(){
addFrameScript(23, frame24, 48, frame49);
}
function frame24(){
stop();
}
function frame49(){
stop();
TitleScreenState.CreditsScreenAnimFinished();
}
}
}//package
Section 24
//cursor (cursor)
package {
import flash.display.*;
public dynamic class cursor extends MovieClip {
}
}//package
Section 25
//Debug (Debug)
package {
public class Debug {
public static var debugMode:int = 0;
public static function RenderCollision(){
var _local1:Number;
var _local2:Number;
var _local3:int;
var _local4:uint;
var _local5:Line;
var _local6:Line;
var _local7:Poly;
if ((debugMode & 1) == 0){
return;
};
_local1 = Game.scrollX;
_local2 = Game.scrollY;
for each (_local7 in Game.polygonList) {
_local3 = 0;
while (_local3 < (_local7.GetNumLines() - 1)) {
_local4 = 4294967295;
_local5 = _local7.GetLine(_local3);
Utils.RenderDotLine(Game.main.screenBD, (_local5.x0 - _local1), (_local5.y0 - _local2), (_local5.x1 - _local1), (_local5.y1 - _local2), 100, _local4);
_local3++;
};
if (_local7.closed){
};
};
}
public static function RenderPlayerInfo(){
var _local1:String;
var _local2:GameObj;
if ((debugMode & 2) == 0){
return;
};
_local2 = Game.goPlayer;
}
}
}//package
Section 26
//Defs (Defs)
package {
public class Defs {
public static const zpos_PICKUP = 1100;
public static const zpos_ENEMY = 1000;
public static const displayarea_w = 640;
public static const zpos_OVERLAY = 500;
public static const zpos_PLAYER = 1000;
public static const fps:Number = 50;
public static const zpos_FAR = 10000;
public static const zpos_BACKGROUND = 10000;
public static const displayarea_h = 480;
public static const platformW2 = 15;
}
}//package
Section 27
//DisplayObj (DisplayObj)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
public class DisplayObj {
var flags:int;
var deferred:Boolean;
var mc:MovieClip;
var frames:Array;
public var frame:int;
public function DisplayObj(_arg1:MovieClip, _arg2:Number, _arg3:int, _arg4=false):void{
deferred = _arg4;
flags = _arg3;
frame = 0;
mc = _arg1;
if (deferred){
} else {
if (mc != null){
CreateBitmapsFromMovieClip(mc, flags);
};
mc = null;
};
}
public function GetHeight():Number{
return (frames[frame].bitmap.height);
}
public function GetBitmap():Bitmap{
return (frames[frame].bitmap);
}
public function RenderAt(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Boolean=false):void{
frames[frame].RenderAt(_arg1, _arg2, _arg3, _arg4);
}
public function CreateFont(_arg1:TextFormat):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Matrix;
var _local7:Rectangle;
var _local8:Bitmap;
var _local9:BitmapData;
var _local10:Array;
var _local11:TextField;
var _local12:*;
frames = new Array();
_local10 = CreateAsciiStringTable();
_local2 = 0;
while (_local2 < _local10.length) {
_local11 = new TextField();
_local11.textColor = 4294967295;
_local11.selectable = false;
_local11.embedFonts = true;
_local11.autoSize = TextFieldAutoSize.LEFT;
_local11.x = 0;
_local11.y = 0;
_local11.text = _local10[_local2];
_local11.setTextFormat(_arg1);
_local12 = new DisplayObjFrame();
_local12.bitmaps = new Array();
_local12.xoffsets = new Array();
_local12.yoffsets = new Array();
_local12.mat = new Matrix();
_local12.colTrans = new ColorTransform();
_local7 = _local11.getBounds(null);
_local6 = new Matrix();
_local12.xoffsets.push(0);
_local12.yoffsets.push(0);
_local8 = new Bitmap();
_local9 = new BitmapData(_local7.width, _local7.height, true, 0);
_local9.draw(_local11, _local6);
_local8.bitmapData = _local9;
_local12.bitmaps.push(_local8);
frames.push(_local12);
_local2++;
};
}
public function SetFrame(_arg1:int){
frame = _arg1;
if (frame < 0){
frame = 0;
};
if (frame >= frames.length){
frame = (frames.length - 1);
};
}
public function GetMaxFrames():int{
return (frames.length);
}
public function CreateBitmapsFromMovieClip(_arg1:MovieClip, _arg2:int):void{
var _local3:Boolean;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Matrix;
var _local9:Rectangle;
var _local10:Bitmap;
var _local11:BitmapData;
var _local12:Bitmap;
var _local13:BitmapData;
var _local14:int;
var _local15:*;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Boolean;
var _local20:Number;
var _local21:*;
var _local22:Number;
var _local23:Point;
var _local24:Point;
var _local25:Point;
var _local26:Point;
var _local27:ColorTransform;
_local3 = false;
if (_arg2 == 2){
_local3 = true;
_arg2 = 0;
};
if (_arg2 == 3){
};
frames = new Array();
_arg1.gotoAndStop(0);
_local14 = 32;
_local4 = 0;
while (_local4 < _arg1.totalFrames) {
_local15 = new DisplayObjFrame();
_local15.bitmaps = new Array();
_local15.burnedbitmaps = new Array();
_local15.xoffsets = new Array();
_local15.yoffsets = new Array();
_local15.mat = new Matrix();
_local15.colTrans = new ColorTransform();
if (_arg2 == 3){
_local16 = 1000;
_local9 = _arg1.getBounds(null);
_local17 = _local9.width;
_local18 = (_local17 + _local16);
_local19 = true;
_local20 = 0;
do {
_local8 = new Matrix();
_local8.translate(-(_local20), 0);
_local6 = _local20;
_local7 = 0;
_local15.xoffsets.push(Number(_local20));
_local15.yoffsets.push(Number(_local7));
_local20 = (_local20 + _local16);
_local21 = _local16;
_local18 = (_local18 - _local16);
if (_local18 < _local16){
_local19 = false;
_local21 = _local18;
};
trace(((("split: w:" + _local21) + " xoff:") + _local20));
_local10 = new Bitmap();
_local11 = new BitmapData(_local21, _arg1.height, true, 0);
_local11.draw(_arg1, _local8);
_local10.bitmapData = _local11;
_local15.bitmaps.push(_local10);
} while (_local19);
} else {
if (_arg2 == 1){
_local5 = 0;
while (_local5 < _local14) {
_local22 = (((Math.PI * 2) / Number(_local14)) * Number(_local5));
_local22 = -(_local22);
_local22 = (_local22 + (Math.PI / 2));
_local9 = _arg1.getBounds(null);
_local8 = new Matrix();
_local8.rotate(_local22);
_local8.translate(_local9.width, _local9.height);
_local23 = _local8.transformPoint(new Point(_local9.left, _local9.top));
_local24 = _local8.transformPoint(new Point(_local9.right, _local9.top));
_local25 = _local8.transformPoint(new Point(_local9.right, _local9.bottom));
_local26 = _local8.transformPoint(new Point(_local9.left, _local9.bottom));
if (((!((_arg1.width == 0))) && (!((_arg1.height == 0))))){
_local11 = new BitmapData((_local9.width * 2), (_local9.height * 2), true, 0);
_local11.draw(_arg1, _local8);
_local10 = new Bitmap(_local11);
_local15.bitmaps.push(_local10);
_local27 = new ColorTransform(1, 1, 1, 1, -100, -100, -100, 0);
_local13 = new BitmapData((_local9.width * 2), (_local9.height * 2), true, 0);
_local13.draw(_arg1, _local8, _local27);
_local12 = new Bitmap(_local13);
_local15.burnedbitmaps.push(_local12);
_local6 = (_local9.width / 2);
_local7 = (_local9.height / 2);
_local15.xoffsets.push(Number(-(_local9.width)));
_local15.yoffsets.push(Number(-(_local9.height)));
} else {
_local15.bitmaps.push(null);
_local15.burnedbitmaps.push(null);
_local15.xoffsets.push(0);
_local15.yoffsets.push(0);
};
_local5++;
};
} else {
_local9 = _arg1.getBounds(null);
_local9.x = Math.floor(_local9.x);
_local9.y = Math.floor(_local9.y);
_local9.width = Math.floor((_local9.width + 1));
_local9.height = Math.floor((_local9.height + 1));
_local7 = Math.floor(_local7);
_local8 = new Matrix();
_local6 = _local9.left;
_local7 = _local9.top;
_local8.translate(-(_local6), -(_local7));
_local15.xoffsets.push(Number(_local6));
_local15.yoffsets.push(Number(_local7));
if (((!((_arg1.width == 0))) && (!((_arg1.height == 0))))){
_local10 = new Bitmap();
_local11 = new BitmapData(_local9.width, _local9.height, true, 0);
_local11.draw(_arg1, _local8);
_local10.bitmapData = _local11;
_local15.bitmaps.push(_local10);
} else {
_local15.bitmaps.push(null);
};
if (_local3){
_local9 = _arg1.getBounds(null);
_local9.x = Math.floor(_local9.x);
_local9.y = Math.floor(_local9.y);
_local9.width = Math.floor((_local9.width + 1));
_local9.height = Math.floor((_local9.height + 1));
_local8 = new Matrix();
_local6 = _local9.left;
_local7 = _local9.top;
_local8.translate(-(_local6), -(_local7));
_local8.scale(-1, 1);
_local8.translate(_local9.width, 0);
_local15.xoffsets.push(Number(-(_local9.right)));
_local15.yoffsets.push(Number(_local7));
if (((!((_arg1.width == 0))) && (!((_arg1.height == 0))))){
_local10 = new Bitmap();
_local11 = new BitmapData(_local9.width, _local9.height, true, 0);
_local11.draw(_arg1, _local8);
_local10.bitmapData = _local11;
_local15.bitmaps.push(_local10);
} else {
_local15.bitmaps.push(null);
};
};
};
};
frames.push(_local15);
_arg1.nextFrame();
_local4++;
};
}
public function GetYOffset():Number{
return (frames[frame].yoffset);
}
public function GetFrame():int{
return (frame);
}
public function GetXOffset():Number{
return (frames[frame].xoffset);
}
function CreateAsciiStringTable():Array{
var _local1:Array;
_local1 = new Array();
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push("");
_local1.push(" ");
_local1.push("!");
_local1.push("'");
_local1.push("#");
_local1.push("$");
_local1.push("%");
_local1.push("&");
_local1.push("'");
_local1.push("(");
_local1.push(")");
_local1.push("*");
_local1.push("+");
_local1.push(",");
_local1.push("-");
_local1.push(".");
_local1.push("/");
_local1.push("0");
_local1.push("1");
_local1.push("2");
_local1.push("3");
_local1.push("4");
_local1.push("5");
_local1.push("6");
_local1.push("7");
_local1.push("8");
_local1.push("9");
_local1.push(":");
_local1.push(";");
_local1.push("<");
_local1.push("=");
_local1.push(">");
_local1.push("?");
_local1.push("@");
_local1.push("A");
_local1.push("B");
_local1.push("C");
_local1.push("D");
_local1.push("E");
_local1.push("F");
_local1.push("G");
_local1.push("H");
_local1.push("I");
_local1.push("J");
_local1.push("K");
_local1.push("L");
_local1.push("M");
_local1.push("N");
_local1.push("O");
_local1.push("P");
_local1.push("Q");
_local1.push("R");
_local1.push("S");
_local1.push("T");
_local1.push("U");
_local1.push("V");
_local1.push("W");
_local1.push("X");
_local1.push("Y");
_local1.push("Z");
_local1.push("[");
_local1.push("\\");
_local1.push("]");
_local1.push("^");
_local1.push("_");
_local1.push("'");
_local1.push("a");
_local1.push("b");
_local1.push("c");
_local1.push("d");
_local1.push("e");
_local1.push("f");
_local1.push("g");
_local1.push("h");
_local1.push("i");
_local1.push("j");
_local1.push("k");
_local1.push("l");
_local1.push("m");
_local1.push("n");
_local1.push("o");
_local1.push("p");
_local1.push("q");
_local1.push("r");
_local1.push("s");
_local1.push("t");
_local1.push("u");
_local1.push("v");
_local1.push("w");
_local1.push("x");
_local1.push("y");
_local1.push("z");
_local1.push("{");
_local1.push("|");
_local1.push("}");
_local1.push("~");
return (_local1);
}
public function GetFrameWidth(_arg1:int):Number{
return (frames[_arg1].bitmap.width);
}
public function GetWidth():Number{
return (frames[frame].bitmap.width);
}
public function RenderAtColTrans(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:ColorTransform, _arg5:Boolean=false):void{
frames[frame].RenderAtColTrans(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function AddIfDeferred(){
if (deferred){
if (mc != null){
CreateBitmapsFromMovieClip(mc, flags);
};
deferred = false;
mc = null;
};
}
public function GetScaledBitmap():Bitmap{
return (frames[frame].scaledBitmap);
}
}
}//package
import flash.display.*;
import flash.geom.*;
class DisplayObjFrame {
public var mat:Matrix;
public var bitmaps:Array;
public var xoffsets:Array;
public var burnedbitmaps:Array;
public var colTrans:ColorTransform;
public var yoffsets:Array;
private function DisplayObjFrame(){
}
public function RenderAtScaled(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Number=1):void{
var _local6:Bitmap;
var _local7:Number;
var _local8:Number;
_local6 = bitmaps[0];
_local7 = xoffsets[0];
_local8 = yoffsets[0];
if (_arg4){
_local6 = bitmaps[1];
_local7 = xoffsets[1];
_local8 = yoffsets[1];
};
mat.identity();
mat.scale(_arg5, _arg5);
mat.translate((_arg2 + (_local7 * _arg5)), (_arg3 + (_local8 * _arg5)));
if (_local6 != null){
if (_local6.bitmapData != null){
_arg1.draw(_local6.bitmapData, mat);
};
};
}
public function RenderAt(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Boolean=false):void{
var _local5:Bitmap;
var _local6:Number;
var _local7:Number;
_local5 = bitmaps[0];
_local6 = xoffsets[0];
_local7 = yoffsets[0];
if (_arg4){
_local5 = bitmaps[1];
_local6 = xoffsets[1];
_local7 = yoffsets[1];
};
_arg1.copyPixels(_local5.bitmapData, new Rectangle(0, 0, _local5.width, _local5.height), new Point((_arg2 + _local6), (_arg3 + _local7)), null, null, true);
}
public function RenderAtRotScaled(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Number=1, _arg6:Number=0):void{
var _local7:Bitmap;
var _local8:Number;
var _local9:Number;
_local7 = bitmaps[0];
_local8 = xoffsets[0];
_local9 = yoffsets[0];
if (_arg4){
_local7 = bitmaps[1];
_local8 = xoffsets[1];
_local9 = yoffsets[1];
};
mat.identity();
mat.translate(_local8, _local9);
mat.rotate(_arg6);
mat.translate(-(_local8), -(_local9));
mat.scale(_arg5, _arg5);
mat.translate((_arg2 + (_local8 * _arg5)), (_arg3 + (_local9 * _arg5)));
if (_local7 != null){
if (_local7.bitmapData != null){
_arg1.draw(_local7.bitmapData, mat);
};
};
}
public function RenderAtSplit(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{
var _local4:int;
var _local5:Bitmap;
var _local6:Number;
var _local7:Number;
_local4 = 0;
while (_local4 < bitmaps.length) {
_local5 = bitmaps[_local4];
_local6 = xoffsets[_local4];
_local7 = yoffsets[_local4];
_arg1.copyPixels(_local5.bitmapData, new Rectangle(0, 0, _local5.width, _local5.height), new Point((_arg2 + _local6), (_arg3 + _local7)), null, null, true);
_local4++;
};
}
public function RenderAtColTrans(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:ColorTransform, _arg5:Boolean=false):void{
var _local6:Bitmap;
var _local7:Number;
var _local8:Number;
_local6 = bitmaps[0];
_local7 = xoffsets[0];
_local8 = yoffsets[0];
if (_arg5){
_local6 = bitmaps[1];
_local7 = xoffsets[1];
_local8 = yoffsets[1];
};
mat.identity();
mat.translate((_arg2 + _local7), (_arg3 + _local8));
if (_local6 != null){
if (_local6.bitmapData != null){
_arg1.draw(_local6.bitmapData, mat, _arg4);
};
};
}
public function RenderAtAdditive(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Bitmap;
var _local6:Number;
var _local7:Number;
_local5 = bitmaps[0];
_local6 = xoffsets[0];
_local7 = yoffsets[0];
mat.identity();
mat.translate((_arg2 + _local6), (_arg3 + _local7));
colTrans.alphaMultiplier = _arg4;
if (_local5 != null){
if (_local5.bitmapData != null){
_arg1.draw(_local5.bitmapData, mat, colTrans, "add");
};
};
}
public function RenderAtAlpha(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Bitmap;
var _local6:Number;
var _local7:Number;
_local5 = bitmaps[0];
_local6 = xoffsets[0];
_local7 = yoffsets[0];
mat.identity();
mat.translate((_arg2 + _local6), (_arg3 + _local7));
colTrans.alphaMultiplier = _arg4;
if (_local5 != null){
if (_local5.bitmapData != null){
_arg1.draw(_local5.bitmapData, mat, colTrans);
};
};
}
public function RenderAtRot(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:int;
var _local6:int;
var _local7:Bitmap;
var _local8:Number;
var _local9:Number;
_arg4 = (_arg4 - 0.01);
_local5 = bitmaps.length;
_arg4 = ((Number(_local5) / (Math.PI * 2)) * _arg4);
_local6 = _arg4;
while (_local6 < 0) {
_local6 = (_local6 + _local5);
};
while (_local6 > (_local5 - 1)) {
_local6 = (_local6 - _local5);
};
_local6 = ((_local5 - 1) - _local6);
_local7 = bitmaps[_local6];
_local8 = xoffsets[_local6];
_local9 = yoffsets[_local6];
_arg1.copyPixels(_local7.bitmapData, new Rectangle(0, 0, _local7.width, _local7.height), new Point((_arg2 + _local8), (_arg3 + _local9)));
}
}
Section 28
//enemy_blood1 (enemy_blood1)
package {
import flash.display.*;
public dynamic class enemy_blood1 extends MovieClip {
}
}//package
Section 29
//enemy_blood2 (enemy_blood2)
package {
import flash.display.*;
public dynamic class enemy_blood2 extends MovieClip {
}
}//package
Section 30
//enemy_blood3 (enemy_blood3)
package {
import flash.display.*;
public dynamic class enemy_blood3 extends MovieClip {
}
}//package
Section 31
//enemy1_death (enemy1_death)
package {
import flash.display.*;
public dynamic class enemy1_death extends MovieClip {
}
}//package
Section 32
//enemy1_idle (enemy1_idle)
package {
import flash.display.*;
public dynamic class enemy1_idle extends MovieClip {
}
}//package
Section 33
//enemy1_run (enemy1_run)
package {
import flash.display.*;
public dynamic class enemy1_run extends MovieClip {
}
}//package
Section 34
//enemy1_weapon (enemy1_weapon)
package {
import flash.display.*;
public dynamic class enemy1_weapon extends MovieClip {
}
}//package
Section 35
//enemy10_death (enemy10_death)
package {
import flash.display.*;
public dynamic class enemy10_death extends MovieClip {
}
}//package
Section 36
//enemy10_idle (enemy10_idle)
package {
import flash.display.*;
public dynamic class enemy10_idle extends MovieClip {
}
}//package
Section 37
//enemy10_run (enemy10_run)
package {
import flash.display.*;
public dynamic class enemy10_run extends MovieClip {
}
}//package
Section 38
//enemy10_weapon (enemy10_weapon)
package {
import flash.display.*;
public dynamic class enemy10_weapon extends MovieClip {
}
}//package
Section 39
//enemy11_attack (enemy11_attack)
package {
import flash.display.*;
public dynamic class enemy11_attack extends MovieClip {
}
}//package
Section 40
//enemy11_death (enemy11_death)
package {
import flash.display.*;
public dynamic class enemy11_death extends MovieClip {
}
}//package
Section 41
//enemy11_idle (enemy11_idle)
package {
import flash.display.*;
public dynamic class enemy11_idle extends MovieClip {
}
}//package
Section 42
//enemy11_run (enemy11_run)
package {
import flash.display.*;
public dynamic class enemy11_run extends MovieClip {
}
}//package
Section 43
//enemy12_death (enemy12_death)
package {
import flash.display.*;
public dynamic class enemy12_death extends MovieClip {
}
}//package
Section 44
//enemy12_idle (enemy12_idle)
package {
import flash.display.*;
public dynamic class enemy12_idle extends MovieClip {
}
}//package
Section 45
//enemy12_run (enemy12_run)
package {
import flash.display.*;
public dynamic class enemy12_run extends MovieClip {
}
}//package
Section 46
//enemy12_weapon (enemy12_weapon)
package {
import flash.display.*;
public dynamic class enemy12_weapon extends MovieClip {
}
}//package
Section 47
//enemy13_death (enemy13_death)
package {
import flash.display.*;
public dynamic class enemy13_death extends MovieClip {
}
}//package
Section 48
//enemy13_idle (enemy13_idle)
package {
import flash.display.*;
public dynamic class enemy13_idle extends MovieClip {
}
}//package
Section 49
//enemy13_run (enemy13_run)
package {
import flash.display.*;
public dynamic class enemy13_run extends MovieClip {
}
}//package
Section 50
//enemy13_weapon (enemy13_weapon)
package {
import flash.display.*;
public dynamic class enemy13_weapon extends MovieClip {
}
}//package
Section 51
//enemy14_attack (enemy14_attack)
package {
import flash.display.*;
public dynamic class enemy14_attack extends MovieClip {
}
}//package
Section 52
//enemy14_death (enemy14_death)
package {
import flash.display.*;
public dynamic class enemy14_death extends MovieClip {
}
}//package
Section 53
//enemy14_idle (enemy14_idle)
package {
import flash.display.*;
public dynamic class enemy14_idle extends MovieClip {
}
}//package
Section 54
//enemy14_run (enemy14_run)
package {
import flash.display.*;
public dynamic class enemy14_run extends MovieClip {
}
}//package
Section 55
//enemy15_attack (enemy15_attack)
package {
import flash.display.*;
public dynamic class enemy15_attack extends MovieClip {
}
}//package
Section 56
//enemy15_death (enemy15_death)
package {
import flash.display.*;
public dynamic class enemy15_death extends MovieClip {
}
}//package
Section 57
//enemy15_idle (enemy15_idle)
package {
import flash.display.*;
public dynamic class enemy15_idle extends MovieClip {
}
}//package
Section 58
//enemy15_run (enemy15_run)
package {
import flash.display.*;
public dynamic class enemy15_run extends MovieClip {
}
}//package
Section 59
//enemy16_attack (enemy16_attack)
package {
import flash.display.*;
public dynamic class enemy16_attack extends MovieClip {
}
}//package
Section 60
//enemy16_death (enemy16_death)
package {
import flash.display.*;
public dynamic class enemy16_death extends MovieClip {
}
}//package
Section 61
//enemy16_idle (enemy16_idle)
package {
import flash.display.*;
public dynamic class enemy16_idle extends MovieClip {
}
}//package
Section 62
//enemy16_run (enemy16_run)
package {
import flash.display.*;
public dynamic class enemy16_run extends MovieClip {
}
}//package
Section 63
//enemy17_death (enemy17_death)
package {
import flash.display.*;
public dynamic class enemy17_death extends MovieClip {
}
}//package
Section 64
//enemy17_idle (enemy17_idle)
package {
import flash.display.*;
public dynamic class enemy17_idle extends MovieClip {
}
}//package
Section 65
//enemy17_run (enemy17_run)
package {
import flash.display.*;
public dynamic class enemy17_run extends MovieClip {
}
}//package
Section 66
//enemy17_weapon (enemy17_weapon)
package {
import flash.display.*;
public dynamic class enemy17_weapon extends MovieClip {
}
}//package
Section 67
//enemy18_death (enemy18_death)
package {
import flash.display.*;
public dynamic class enemy18_death extends MovieClip {
}
}//package
Section 68
//enemy18_idle (enemy18_idle)
package {
import flash.display.*;
public dynamic class enemy18_idle extends MovieClip {
}
}//package
Section 69
//enemy18_run (enemy18_run)
package {
import flash.display.*;
public dynamic class enemy18_run extends MovieClip {
}
}//package
Section 70
//enemy18_weapon (enemy18_weapon)
package {
import flash.display.*;
public dynamic class enemy18_weapon extends MovieClip {
}
}//package
Section 71
//enemy19_bolt (enemy19_bolt)
package {
import flash.display.*;
public dynamic class enemy19_bolt extends MovieClip {
}
}//package
Section 72
//enemy19_death (enemy19_death)
package {
import flash.display.*;
public dynamic class enemy19_death extends MovieClip {
}
}//package
Section 73
//enemy19_idle (enemy19_idle)
package {
import flash.display.*;
public dynamic class enemy19_idle extends MovieClip {
}
}//package
Section 74
//enemy19_run (enemy19_run)
package {
import flash.display.*;
public dynamic class enemy19_run extends MovieClip {
}
}//package
Section 75
//enemy19_weapon (enemy19_weapon)
package {
import flash.display.*;
public dynamic class enemy19_weapon extends MovieClip {
}
}//package
Section 76
//enemy2_death (enemy2_death)
package {
import flash.display.*;
public dynamic class enemy2_death extends MovieClip {
}
}//package
Section 77
//enemy2_idle (enemy2_idle)
package {
import flash.display.*;
public dynamic class enemy2_idle extends MovieClip {
}
}//package
Section 78
//enemy2_run (enemy2_run)
package {
import flash.display.*;
public dynamic class enemy2_run extends MovieClip {
}
}//package
Section 79
//enemy2_weapon (enemy2_weapon)
package {
import flash.display.*;
public dynamic class enemy2_weapon extends MovieClip {
}
}//package
Section 80
//enemy3_death (enemy3_death)
package {
import flash.display.*;
public dynamic class enemy3_death extends MovieClip {
}
}//package
Section 81
//enemy3_idle (enemy3_idle)
package {
import flash.display.*;
public dynamic class enemy3_idle extends MovieClip {
}
}//package
Section 82
//enemy3_run (enemy3_run)
package {
import flash.display.*;
public dynamic class enemy3_run extends MovieClip {
}
}//package
Section 83
//enemy3_weapon (enemy3_weapon)
package {
import flash.display.*;
public dynamic class enemy3_weapon extends MovieClip {
}
}//package
Section 84
//enemy4_attack (enemy4_attack)
package {
import flash.display.*;
public dynamic class enemy4_attack extends MovieClip {
}
}//package
Section 85
//enemy4_death (enemy4_death)
package {
import flash.display.*;
public dynamic class enemy4_death extends MovieClip {
}
}//package
Section 86
//enemy4_idle (enemy4_idle)
package {
import flash.display.*;
public dynamic class enemy4_idle extends MovieClip {
}
}//package
Section 87
//enemy4_run (enemy4_run)
package {
import flash.display.*;
public dynamic class enemy4_run extends MovieClip {
}
}//package
Section 88
//enemy5_death (enemy5_death)
package {
import flash.display.*;
public dynamic class enemy5_death extends MovieClip {
}
}//package
Section 89
//enemy5_idle (enemy5_idle)
package {
import flash.display.*;
public dynamic class enemy5_idle extends MovieClip {
}
}//package
Section 90
//enemy5_run (enemy5_run)
package {
import flash.display.*;
public dynamic class enemy5_run extends MovieClip {
}
}//package
Section 91
//enemy5_weapon (enemy5_weapon)
package {
import flash.display.*;
public dynamic class enemy5_weapon extends MovieClip {
}
}//package
Section 92
//enemy6_death (enemy6_death)
package {
import flash.display.*;
public dynamic class enemy6_death extends MovieClip {
}
}//package
Section 93
//enemy6_idle (enemy6_idle)
package {
import flash.display.*;
public dynamic class enemy6_idle extends MovieClip {
}
}//package
Section 94
//enemy6_run (enemy6_run)
package {
import flash.display.*;
public dynamic class enemy6_run extends MovieClip {
}
}//package
Section 95
//enemy6_weapon (enemy6_weapon)
package {
import flash.display.*;
public dynamic class enemy6_weapon extends MovieClip {
}
}//package
Section 96
//enemy7_death (enemy7_death)
package {
import flash.display.*;
public dynamic class enemy7_death extends MovieClip {
}
}//package
Section 97
//enemy7_idle (enemy7_idle)
package {
import flash.display.*;
public dynamic class enemy7_idle extends MovieClip {
}
}//package
Section 98
//enemy7_run (enemy7_run)
package {
import flash.display.*;
public dynamic class enemy7_run extends MovieClip {
}
}//package
Section 99
//enemy7_weapon (enemy7_weapon)
package {
import flash.display.*;
public dynamic class enemy7_weapon extends MovieClip {
}
}//package
Section 100
//enemy8_death (enemy8_death)
package {
import flash.display.*;
public dynamic class enemy8_death extends MovieClip {
}
}//package
Section 101
//enemy8_idle (enemy8_idle)
package {
import flash.display.*;
public dynamic class enemy8_idle extends MovieClip {
}
}//package
Section 102
//enemy8_run (enemy8_run)
package {
import flash.display.*;
public dynamic class enemy8_run extends MovieClip {
}
}//package
Section 103
//enemy8_weapon (enemy8_weapon)
package {
import flash.display.*;
public dynamic class enemy8_weapon extends MovieClip {
}
}//package
Section 104
//enemy9_attack (enemy9_attack)
package {
import flash.display.*;
public dynamic class enemy9_attack extends MovieClip {
}
}//package
Section 105
//enemy9_death (enemy9_death)
package {
import flash.display.*;
public dynamic class enemy9_death extends MovieClip {
}
}//package
Section 106
//enemy9_idle (enemy9_idle)
package {
import flash.display.*;
public dynamic class enemy9_idle extends MovieClip {
}
}//package
Section 107
//enemy9_run (enemy9_run)
package {
import flash.display.*;
public dynamic class enemy9_run extends MovieClip {
}
}//package
Section 108
//explo01wav (explo01wav)
package {
import flash.media.*;
public dynamic class explo01wav extends Sound {
}
}//package
Section 109
//explo02wav (explo02wav)
package {
import flash.media.*;
public dynamic class explo02wav extends Sound {
}
}//package
Section 110
//FinishThemOffText (FinishThemOffText)
package {
import flash.display.*;
public dynamic class FinishThemOffText extends MovieClip {
}
}//package
Section 111
//Font20 (Font20)
package {
import flash.text.*;
public dynamic class Font20 extends Font {
}
}//package
Section 112
//Game (Game)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.ui.*;
public class Game {
static const levelState_FinishThemOff = 4;
static const levelFinishedState_WON = 1;
static const levelFinishedState_NOT = 0;
static const levelState_GameOver = 2;
static const levelFinishedState_LOST = 2;
static const levelState_Play = 1;
static const levelState_Null = 3;
static const levelState_LevelStart = 0;
static const levelState_LevelEnd = 5;
static var dibsSpeechTimer:int;
static var isBossLevel:Boolean;
static var wheelMoved:int;
static var levelFinishedState:int;
static var levelTimer:int;
static var goBackground:GameObj;
public static var currentCash:int;
public static var gravity:Number = 0.5;
static var totalNumKills:int;
public static var firstTime_Powerup3:Boolean;
public static var firstTime_Powerup1:Boolean;
public static var firstTime_Powerup4:Boolean;
static var initEnemy_xpos:Number;
public static var scrollXoff:Number;
static var invincibleTimer:int;
public static var currentStartPointIndex:int;
public static var mc_interface_cash:MovieClip;
static var snowGenTimer:int;
public static var bulletBaseDamage:Number = 10;
public static var firstTime_Powerup2:Boolean;
public static var maxFallSpeed:Number = 10;
public static var killedSoundTimerMax:int;
static var levelNumKills:int;
static var numLevels:int;
public static var totalCash:int;
static var currentScore:int;
static var playerHealth:Number;
public static var LevelUpdateCallback:Object;
static var backgroundOrder:Array;
public static var scrollYoff:Number;
static var initEnemy_ypos:Number;
static var showingOverlay:Boolean;
static var ammo:int;
static var ammoPerPickup:int;
public static var numEnemiesActive:int;
public static var polygonList:Array;
static var snowRate:Number = 0;
public static var shellCollisionMap:Array;
public static var scrollH:Number;
public static var healthBarTimerMax:int = (Defs.fps * 3);
static var numLives:int;
static var invincibleTimerMax:int;
public static var mc_interface_mute:MovieClip;
public static var scrollW:Number;
public static var scrollX:Number;
public static var scrollY:Number;
static var showingOverlayID:int;
static var speedupTimerMax:int;
public static var hitSoundTimerMax:int;
static var speedupTimer:int;
public static var enemyBaseAcc:Number = 0.2;
static var numBullets:int;
public static var enemyJumpYVel:Number = -15;
static var nextPickup:int;
public static var playerBaseDamage:Number = 10;
public static var mc_interface_score:MovieClip;
public static var hitSoundTimer:int;
static var levelState:int;
public static var numWeapons:int = 5;
public static var enemyBaseMaxVel:Number = 3;
public static var enemyGenTimer:int;
static var snowTimer:Number = 0;
static var levelTimerMax:int;
static var currentLevel:int;
static var dibsSpeechFlag:Boolean;
public static var mc_interface_health:MovieClip;
public static var AkGrenadeCounter:int;
static var main:Main;
static var difficulty:int = 1;
public static var bulletsFired:int;
static var multiplier:int;
static var enemiesSeen:Array;
public static var startPointObjs:Array;
public static var helpOverlay:MovieClip;
static var levelStateTimer:int;
public static var killedSoundTimer:int;
public static var enemyBaseKnock:Number = 1;
public static var mc_interface_ammo:MovieClip;
static var scrollMaxX;
public static var playerJumpYvel:Number = -15;
static var panelHealthLevel:Number;
public static var startPoints:Array;
static var overlayMC:MovieClip;
static var goPlayer:GameObj;
static var scrollMaxY;
static function UpdateSnow():void{
snowRate = Math.sin(snowTimer);
snowTimer = (snowTimer + 0.003);
if (snowRate <= 0){
return;
};
snowRate = (1 - snowRate);
snowRate = (snowRate * 10);
snowGenTimer++;
if (snowGenTimer > snowRate){
snowGenTimer = 0;
Particles.Add(Particles.type_snowflake, Utils.RandBetweenFloat(0, Game.scrollW), -20, 0, 0);
};
}
public static function UpdateGameplay():void{
if (PauseMenu.active){
return;
};
if (levelState == levelState_Null){
return;
};
if (levelState == levelState_GameOver){
levelStateTimer--;
if (levelStateTimer <= 0){
Kong.DoLevelOver();
Kong.DoGameOver();
InitLevelState(levelState_Null);
TitleScreenState.InitGameOver();
};
};
if (Shop.active){
return;
};
UpdateSnow();
enemyBaseAcc = TweakVars.GetNumber("EnemyAccel");
enemyBaseMaxVel = TweakVars.GetNumber("EnemySpeed");
bulletBaseDamage = TweakVars.GetNumber("DamageToEnemy");
playerBaseDamage = TweakVars.GetNumber("DamageToPlayer");
enemyBaseKnock = TweakVars.GetNumber("EnemyKnock");
if ((Debug.debugMode & 16) != 0){
TweakVars.Update();
};
if (LevelUpdateCallback != null){
LevelUpdateCallback();
};
if (levelState == levelState_Play){
if (levelTimer > 0){
levelTimer--;
if (levelTimer == 0){
InitLevelState(levelState_FinishThemOff);
};
};
};
if (killedSoundTimer > 0){
killedSoundTimer--;
};
if (hitSoundTimer > 0){
hitSoundTimer--;
};
if (invincibleTimer > 0){
invincibleTimer--;
};
if (speedupTimer > 0){
speedupTimer--;
};
if (dibsSpeechTimer > 0){
dibsSpeechTimer--;
if (dibsSpeechTimer == 0){
ExitDibsSpeech();
};
};
if (levelState == levelState_LevelStart){
levelStateTimer--;
if (levelStateTimer <= 0){
InitLevelState(levelState_Play);
};
};
if ((((((((levelState == levelState_Play)) || ((levelState == levelState_LevelStart)))) || ((levelState == levelState_FinishThemOff)))) || ((levelState == levelState_LevelEnd)))){
goPlayer.UpdatePlayer();
};
if (levelState == levelState_Play){
UpdateEnemyGen();
};
if (levelState == levelState_FinishThemOff){
if (GetNumEnemiesActive() == 0){
InitLevelState(levelState_LevelEnd);
};
};
if (levelState == levelState_LevelEnd){
levelStateTimer--;
if (levelStateTimer < 0){
Kong.DoLevelOver();
CloseHelpScreen();
Shop.Init(true);
};
};
UpdateScroll();
GameObjects.Update();
Collision.Update(main);
Particles.Update(1);
}
public static function NextLevel():void{
var _local1:String;
currentLevel++;
if (currentLevel >= LevelContents.levels.length){
Kong.SubmitStat(int((Game.currentLevel + 1)), "GameComplete");
if (Game.difficulty == 0){
_local1 = "GameCompleteEasy";
};
if (Game.difficulty == 1){
_local1 = "GameCompleteMedium";
};
if (Game.difficulty == 2){
_local1 = "GameCompleteHard";
};
Kong.SubmitStat(1, _local1);
currentLevel = 0;
};
InitLevel();
}
public static function InitLevel(){
var _local1:int;
var _local2:GameObj;
var _local3:MovieClip;
var _local4:Rectangle;
var _local5:Point;
MusicPlayer.StartMusic(1);
SoundPlayer.InitForLevel();
Debug.debugMode = 0;
KeyReader.InitOnce(main.stage);
Particles.Reset();
InitEnemyGen();
_local1 = backgroundOrder[(currentLevel % 7)];
numWeapons = WeaponDefs.list.length;
GameObjects.ClearAll();
levelFinishedState = levelFinishedState_NOT;
goPlayer = GameObjects.AddObj(400, 400, 1000);
goPlayer.InitPlayer();
scrollX = 0;
scrollY = 0;
if (_local1 == 0){
_local3 = new Level1_Background();
};
if (_local1 == 1){
_local3 = new Level2_Background();
};
if (_local1 == 2){
_local3 = new Level3_Background();
};
if (_local1 == 3){
_local3 = new Level4_Background();
};
if (_local1 == 4){
_local3 = new Level5_Background();
};
if (_local1 == 5){
_local3 = new Level6_Background();
};
if (_local1 == 6){
_local3 = new Level7_Background();
};
_local3.gotoAndStop(2);
_local4 = _local3.getBounds(null);
scrollW = _local4.width;
scrollH = _local4.height;
_local3 = null;
scrollXoff = 0;
scrollYoff = 0;
LevelUpdateCallback = null;
polygonList = new Array();
startPoints = new Array();
startPointObjs = new Array();
currentStartPointIndex = 0;
if (_local1 == 0){
LevelDef1.Init(main);
};
if (_local1 == 1){
LevelDef2.Init(main);
};
if (_local1 == 2){
LevelDef3.Init(main);
};
if (_local1 == 3){
LevelDef4.Init(main);
};
if (_local1 == 4){
LevelDef5.Init(main);
};
if (_local1 == 5){
LevelDef6.Init(main);
};
if (_local1 == 6){
LevelDef7.Init(main);
};
scrollMaxX = (scrollW - Defs.displayarea_w);
scrollMaxY = (scrollH - Defs.displayarea_h);
_local5 = startPoints[0];
goPlayer.xpos = _local5.x;
goPlayer.ypos = _local5.y;
showingOverlay = false;
showingOverlayID = 0;
invincibleTimer = 0;
invincibleTimerMax = (Defs.fps * 10);
speedupTimer = 0;
speedupTimerMax = (Defs.fps * 10);
numBullets = 1000;
dibsSpeechFlag = false;
dibsSpeechTimer = 0;
firstTime_Powerup1 = false;
firstTime_Powerup2 = false;
firstTime_Powerup3 = false;
firstTime_Powerup4 = false;
InitLevelState(levelState_LevelStart);
levelTimerMax = (levelTimer = (Defs.fps * 30));
InitSnow();
InitShellCollisionMap();
levelNumKills = 0;
InitInterface();
goPlayer.currentWeapon = WeaponDefs.PreviousWeapon(goPlayer.currentWeapon);
goPlayer.weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + goPlayer.currentWeapon);
goPlayer.weaponFrame = 0;
AkGrenadeCounter = 0;
killedSoundTimer = 0;
killedSoundTimerMax = 20;
hitSoundTimer = 0;
hitSoundTimerMax = 20;
helpOverlay = null;
if (currentLevel == 0){
helpOverlay = new instructions_overlay();
helpOverlay.x = Defs.displayarea_w;
helpOverlay.y = Defs.displayarea_h;
main.addChild(helpOverlay);
helpOverlay.addEventListener(MouseEvent.CLICK, helpClosePressed, false, 0, true);
};
}
static function GetNumEnemiesActive():int{
var _local1:int;
var _local2:GameObj;
_local1 = 0;
for each (_local2 in GameObjects.objs) {
if (((_local2.active) && (_local2.colFlag_canBeShot))){
_local1++;
};
};
return (_local1);
}
public static function GetPolyByName(_arg1:String):Poly{
var _local2:Poly;
for each (_local2 in polygonList) {
if (((_local2.active) && ((_local2.name == _arg1)))){
return (_local2);
};
};
return (null);
}
static function UpdateInterface(){
var _local1:WeaponDef;
var _local2:Number;
var _local3:Number;
_local1 = WeaponDefs.GetWeaponDef(goPlayer.currentWeapon);
panelHealthLevel = (panelHealthLevel + ((playerHealth - panelHealthLevel) * 0.4));
_local2 = mc_interface_health.healthBar.totalFrames;
_local3 = ((_local2 / goPlayer.objectDef.GetMaxHealth()) * panelHealthLevel);
_local3 = Math.floor(_local3);
_local3 = (_local2 - _local3);
_local3++;
mc_interface_health.healthBar.gotoAndPlay(_local3);
mc_interface_ammo.weaponSelector.gotoAndStop((goPlayer.currentWeapon + 1));
mc_interface_ammo.textAmmo.text = ammo.toString();
mc_interface_ammo.textTimer.text = int((levelTimer / Defs.fps)).toString();
mc_interface_ammo.textLevel.text = int((currentLevel + 1)).toString();
mc_interface_cash.textCash.text = currentCash.toString();
mc_interface_score.textScore.text = currentScore.toString();
mc_interface_ammo.textKills.text = levelNumKills.toString();
if (MusicPlayer.doMusic){
mc_interface_mute.gotoAndStop(1);
} else {
mc_interface_mute.gotoAndStop(2);
};
}
public static function ShowSign(_arg1:int){
if (showingOverlay){
return;
};
showingOverlay = true;
showingOverlayID = _arg1;
}
public static function RemoveGO(_arg1:String){
var _local2:GameObj;
_local2 = GetGOByName(_arg1);
if (_local2){
_local2.active = false;
};
}
public static function AddScore(_arg1:int):void{
currentScore = (currentScore + (_arg1 * multiplier));
}
public static function UpdateEnemyGen():void{
var _local1:LevelContent;
var _local2:GameObj;
var _local3:*;
var _local4:String;
_local1 = LevelContents.GetLevelContent(currentLevel);
isBossLevel = false;
if (_local1.maxEnemiesAtOnce == 1){
isBossLevel = true;
};
enemyGenTimer--;
if (enemyGenTimer <= 0){
enemyGenTimer = 10;
if (numEnemiesActive >= _local1.maxEnemiesAtOnce){
return;
};
_local3 = _local1.GetRandomType((levelTimerMax - levelTimer));
if (TestInitEnemy()){
_local2 = GameObjects.AddObj(initEnemy_xpos, initEnemy_ypos, 1000);
enemyGenTimer = 10;
_local4 = ("Enemy_" + _local3);
_local2.InitEnemy(_local4);
enemiesSeen[(_local3 - 1)] = true;
if (isBossLevel){
enemyGenTimer = 99999999;
};
};
};
if (isBossLevel){
if (numEnemiesActive == 0){
if (levelTimer > 20){
levelTimer = (levelTimer - 10);
};
};
};
}
static function RenderCursor(){
var _local1:Number;
var _local2:Number;
_local1 = MouseControl.mousePosX;
_local2 = MouseControl.mousePosY;
GraphicObjects.RenderAt(GraphicObjects.gfx_cursor, 0, main.screenBD, _local1, _local2, false);
}
public static function InitLevelState(_arg1:int){
var _local2:GameObj;
wheelMoved = 0;
levelState = _arg1;
levelStateTimer = 50;
if (levelState == levelState_FinishThemOff){
_local2 = GameObjects.AddObj(0, 0, 10);
_local2.InitOverlayText(1);
};
if (levelState == levelState_LevelStart){
_local2 = GameObjects.AddObj(0, 0, 10);
_local2.InitOverlayText(0);
};
if (levelState == levelState_LevelEnd){
levelStateTimer = (Defs.fps * 2);
};
}
static function InitSnow():void{
snowRate = 0;
snowTimer = 0;
snowGenTimer = 0;
snowTimer = Math.PI;
}
static function helpClosePressed(_arg1:MouseEvent){
CloseHelpScreen();
}
public static function RemovePoly(_arg1:String){
var _local2:Poly;
_local2 = GetPolyByName(_arg1);
if (_local2){
_local2.active = false;
};
}
public static function buttonOverlayClosedPressed(_arg1:MouseEvent){
Overlay_Remove();
InitLevelState(levelState_Play);
}
static function CloseHelpScreen(){
if (helpOverlay == null){
return;
};
main.removeChild(helpOverlay);
helpOverlay = null;
}
public static function Init(_arg1:Main){
main = _arg1;
currentScore = 0;
multiplier = 1;
InitGame(1);
}
static function GetNumEnemiesSeen():int{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < 100) {
if (enemiesSeen[_local2] == true){
_local1++;
};
_local2++;
};
return (_local1);
}
public static function InitGame(_arg1:int){
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
Debug.debugMode = 0;
currentScore = 0;
currentLevel = 0;
numLives = 3;
currentCash = 0;
totalCash = 0;
bulletsFired = 0;
LevelContents.InitOnce();
difficulty = _arg1;
TweakVars.Reset();
TweakVars.Add("EnemyAccel", 0.01, 0.5, 0.2);
TweakVars.Add("EnemySpeed", 0.1, 10, 3);
TweakVars.Add("DamageToEnemy", 1, 50, 40);
TweakVars.Add("DamageToPlayer", 1, 50, 10);
TweakVars.Add("EnemyKnock", 0, 2, 0.5);
totalNumKills = 0;
mc_interface_ammo = null;
mc_interface_health = null;
mc_interface_score = null;
mc_interface_cash = null;
mc_interface_mute = null;
backgroundOrder = new Array(0, 1, 2, 3, 4, 5, 6);
_local2 = 0;
while (_local2 < 1000) {
_local3 = Utils.RandBetweenInt(0, 6);
_local4 = Utils.RandBetweenInt(0, 6);
_local5 = backgroundOrder[_local3];
backgroundOrder[_local3] = backgroundOrder[_local4];
backgroundOrder[_local4] = _local5;
_local2++;
};
ObjectDefs.Init();
WeaponDefs.InitOnce();
ammoPerPickup = 20;
ammo = 0;
nextPickup = 0;
playerHealth = 100;
enemiesSeen = new Array();
_local2 = 0;
while (_local2 < 100) {
enemiesSeen.push(Boolean(false));
_local2++;
};
}
static function UpdateScroll(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
_local1 = (goPlayer.speed * 10);
_local2 = goPlayer.xpos;
_local3 = goPlayer.ypos;
_local2 = (_local2 + scrollXoff);
_local3 = (_local3 + scrollYoff);
_local2 = (_local2 - 320);
_local3 = (_local3 - 240);
_local2 = (_local2 + ((MouseControl.mousePosX - 320) * 0.2));
_local3 = (_local3 + ((MouseControl.mousePosY - 240) * 0.2));
scrollX = (scrollX + ((_local2 - scrollX) * 0.4));
scrollY = (scrollY + ((_local3 - scrollY) * 0.4));
if (scrollX < 0){
scrollX = 0;
};
if (scrollY < 0){
scrollY = 0;
};
if (scrollX > scrollMaxX){
scrollX = scrollMaxX;
};
if (scrollY > scrollMaxY){
scrollY = scrollMaxY;
};
}
public static function InitDibsSpeech(_arg1:int){
if (dibsSpeechFlag){
return;
};
dibsSpeechFlag = true;
dibsSpeechTimer = (Defs.fps * 5);
}
public static function GetGOFrame(_arg1:String):int{
var _local2:GameObj;
_local2 = GetGOByName(_arg1);
if (_local2){
return (int(_local2.frame));
};
return (-1);
}
public static function Overlay_Remove(){
main.removeChild(overlayMC);
overlayMC = null;
KeyReader.InitOnce(main.stage);
}
static function MutePressed(_arg1:MouseEvent){
if (PauseMenu.IsPaused()){
return;
};
PauseMenu.Pause();
}
public static function GetGOByName(_arg1:String):GameObj{
var _local2:GameObj;
for each (_local2 in GameObjects.objs) {
if (((_local2.active) && ((_local2.name == _arg1)))){
return (_local2);
};
};
return (null);
}
public static function InitExplosion(_arg1:Number, _arg2:Number, _arg3:int){
var _local4:GameObj;
SoundPlayer.Play(SoundPlayer.SOUND_EXPLOSION01);
_local4 = GameObjects.AddObj(_arg1, _arg2, 800);
_local4.InitExplosion(_arg3);
}
public static function TestInitEnemy():Boolean{
var _local1:*;
var _local2:Boolean;
var _local3:int;
var _local4:Number;
_local1 = 0;
_local2 = false;
_local3 = 0;
if (Utils.RandBetweenInt(0, 100) < 50){
_local3 = 1;
};
if (_local3 == 0){
_local1 = ((Game.scrollX - scrollXoff) - 16);
_local2 = true;
} else {
_local1 = (((Game.scrollX - scrollXoff) + Defs.displayarea_w) + 16);
_local2 = false;
};
_local4 = Collision.FindHighestFloorPos(_local1);
initEnemy_xpos = _local1;
initEnemy_ypos = _local4;
if (_local4 > 10000){
return (false);
};
return (true);
}
public static function Overlay_Show(_arg1:int){
if (_arg1 == 0){
overlayMC = new level1Info();
};
main.addChild(overlayMC);
overlayMC.buttonClose.addEventListener(MouseEvent.CLICK, buttonOverlayClosedPressed);
}
static function Render(){
Debug.RenderCollision();
Debug.RenderPlayerInfo();
RenderPanel();
RenderCursor();
UpdateInterface();
if ((Debug.debugMode & 16) != 0){
TweakVars.Render();
};
}
static function InitShellCollisionMap(){
var _local1:int;
var _local2:Number;
shellCollisionMap = new Array();
_local1 = 0;
while (_local1 < 3000) {
_local2 = Collision.FindHighestFloorPos(_local1);
shellCollisionMap.push(_local2);
_local1++;
};
}
static function InitInterface(){
if (mc_interface_ammo != null){
return;
};
mc_interface_ammo = new interface_ammo();
mc_interface_ammo.x = Defs.displayarea_w;
mc_interface_ammo.y = 0;
main.addChild(mc_interface_ammo);
mc_interface_ammo.cacheAsBitmap = true;
mc_interface_health = new interface_health();
mc_interface_health.x = 0;
mc_interface_health.y = 0;
main.addChild(mc_interface_health);
mc_interface_health.cacheAsBitmap = true;
mc_interface_cash = new interface_cash();
mc_interface_cash.x = 0;
mc_interface_cash.y = 0;
main.addChild(mc_interface_cash);
mc_interface_cash.cacheAsBitmap = true;
mc_interface_score = new interface_score();
mc_interface_score.x = 0;
mc_interface_score.y = 480;
main.addChild(mc_interface_score);
mc_interface_score.cacheAsBitmap = true;
mc_interface_mute = new MuteButton();
mc_interface_mute.x = 640;
mc_interface_mute.y = 480;
mc_interface_mute.addEventListener(MouseEvent.CLICK, MutePressed, false, 0, true);
main.addChild(mc_interface_mute);
mc_interface_mute.cacheAsBitmap = true;
panelHealthLevel = 0;
UpdateInterface();
}
static function RenderPanel(){
var _local1:String;
_local1 = ("FPS:" + Utils.DP2(main.fps).toString());
}
public static function ExitDibsSpeech(){
dibsSpeechFlag = false;
}
public static function InitEnemyGen():void{
numEnemiesActive = 0;
enemyGenTimer = 0;
}
}
}//package
Section 113
//GameObj (GameObj)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class GameObj {
var graphicID:int;
var jumpInARowCount:int;
public var xvel:Number;
var path:Poly;
var boss1_hasShot:Boolean;
public var todir:Number;
var parallaxNumRepats:int;
var minFrame:int;
var rotVel:Number;
public var speed:Number;
var yoffset:Number;
var enemy_maxvel:Number;
var boss4_shooting:Boolean;
var objectDef:ObjectDef;
var startx:Number;
public var ypos2:Number;
var startz:Number;
public var colFlag_canBeShot:Boolean;
var boss1_attackCount:int;
var health:Number;
var starty:Number;
var currentPathNode:int;
public var colFlag_playercanbekilled:Boolean;
public var movementVec:Vec;
var playerHitByEnemyTimer:int;
var maxFrame:int;
var frame1:Number;
public var visible:Boolean;
var onLine:Boolean;
var boss4_shootAtPosX:Number;
var boss4_shootAtPosY:Number;
var bossPickupTimer:int;
public var yvel:Number;
var weaponTimer:int;
public var name:String;
public var dir:Number;
public var radius:Number;
var graphicID1:int;
public var colFlag_canBePickedUp:Boolean;
public var colFlag_isPowerup:Boolean;
public var controlMode:int;
public var colFlag_isCheckpoint:Boolean;
public var origspeed:Number;
var boss4_shootAtAng:Number;
var weaponFrame:Number;
public var colFlag_isBullet:Boolean;
var isDead:Boolean;
var EnemyHitByBulletFunctionCallback:Function;
var shimmyTimer:int;
var isGrenade:Boolean;
var enemy_decel:Number;
public var xpos2:Number;
public var colFlag_isPlatform:Boolean;
public var xpos:Number;
public var zvel:Number;
var xflip:Boolean;
var EnemyUpdateFunctionCallback:Function;
var currentPoly:Poly;
public var frameVel:Number;
public var colFlag_killPlayer:Boolean;
public var weaponControlMode:int;
var currentWeapon:int;
public var weaponUpdateFunction:Function;
var enemy_maxvelOff:Number;
public var xacc:Number;
var xoffset:Number;
var currentPlatform:GameObj;
public var active:Boolean;
var currentLine:Line;
public var count:int;
public var colFlag_jumpon:Boolean;
public var weaponFrameVel:Number;
public var colFlag_isEnemyBullet:Boolean;
var playerWeaponYoffset;
var flashTimer:Number;
public var type:int;
public var ypos:Number;
var weaponNumShots:int;
var maxSpeed:Number;
var timer:Number;
var weaponGraphicID:int;
var scale:Number;
var weaponGraphicOffsetX:Number;
var platformCurrentNodePosX:Number;
public var isBoss4:Boolean;
var weaponGraphicOffsetY:Number;
var bulletWeaponDef:WeaponDef;
public var yacc:Number;
var enemy_acc:Number;
var frame:Number;
var healthBarTimer:int;
var platformCurrentNodePosY:Number;
public var controlIndex:int;
var changeVelTimer:int;
public var hitTimer:Number;
public var subtype:int;
var flashFlag:Boolean;
var direction:Boolean;
public var oldxpos:Number;
var onPlatform:Boolean;
var timer1:Number;
public var renderFunction:Function;
var enemy_decelOff:Number;
public var zpos:Number;
var platformSpeed:Number;
public var toPosX:Number;
public var toPosY:Number;
public var colFlag_isBouncyPad:Boolean;
var dist:Number;
public var driveVec:Vec;
var main:Main;
public var updateFunction:Function;
var enemy_accOff:Number;
var inFrontZone:Poly;
var currentMaxSpeed:Number;
var timerMax:Number;
public var oldypos:Number;
var parentObj:GameObj;
var flashTimerMax:Number;
var boss4_shootingFrame:Number;
var jumpDelay:Number;
public var colFlag_isExit:Boolean;
static const enemyType_STATIONARY = 0;
static const enemyType_WALKER = 2;
static const enemyType_JUMPING = 1;
static const enemyType_PATH = 3;
public function GameObj(_arg1, _arg2, _arg3){
xpos = _arg2;
ypos = _arg3;
zpos = 1;
starty = _arg2;
startx = _arg2;
active = false;
main = _arg1;
zpos = 0;
graphicID = 0;
frame = 0;
frameVel = 0;
controlIndex = 0;
timer = 0;
timer1 = 0;
radius = 14;
minFrame = 0;
maxFrame = 0;
}
function UpdateEnemyBullet():void{
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
timer--;
if (timer < 0){
active = false;
};
if (Collision.ObjectFallingSurfaceCollision(this)){
active = false;
};
}
public function HitLine(_arg1:Line, _arg2:Poly):void{
onLine = true;
currentLine = _arg1;
currentPoly = _arg2;
}
public function RenderOverlayText():void{
var _local1:Number;
var _local2:Number;
_local1 = Math.floor(xpos);
_local2 = Math.floor(ypos);
GraphicObjects.RenderAt(graphicID, frame, main.screenBD, _local1, _local2, false);
}
function PlayerShootSound(){
var _local1:WeaponDef;
var _local2:int;
_local1 = WeaponDefs.GetWeaponDef(currentWeapon);
if (_local1.sfx != -1){
if (_local1.sfx == SoundPlayer.SOUND_CHAINSAW_LOOP){
SoundPlayer.StartChainsaw();
} else {
SoundPlayer.StopChainsaw();
SoundPlayer.Play(_local1.sfx);
_local2 = Utils.RandBetweenInt(0, 1000);
if (_local2 < 50){
SoundPlayer.Play(SoundPlayer.SOUND_BULLETWHIZ);
} else {
if (_local2 < 100){
SoundPlayer.Play(SoundPlayer.SOUND_RICOCHET);
};
};
};
};
}
function RenderShell(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
GraphicObjects.RenderAtRotScaled(graphicID, frame, main.screenBD, _local3, _local4, false, 1, dir);
}
function UpdateEnemy(){
if (EnemyUpdateFunctionCallback != null){
EnemyUpdateFunctionCallback();
};
if (healthBarTimer > 0){
healthBarTimer--;
};
if (((TestOffMapX(100)) || (TestOffMapBottom(100)))){
if (active){
RemoveEnemy();
};
};
}
public function UpdateBloodSplat(){
if (PlayAnimation()){
active = false;
};
}
function UpdateEnemy_Boss1(){
var _local1:GameObj;
colFlag_killPlayer = true;
UpdateEnemy_BossGeneratePickups();
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (IsFacingTowardsPlayer()){
if (Utils.RandBetweenInt(0, 1000) < 50){
if (Utils.RandBetweenInt(0, 1000) < 500){
controlMode = 2;
graphicID = objectDef.GetAnimIDFromName("attack");
frame = 0;
boss1_attackCount = 0;
boss1_hasShot = false;
boss1_attackCount = Utils.RandBetweenInt(3, 5);
} else {
yvel = Utils.RandBetweenFloat(-12, -18);
controlMode = 3;
};
};
};
CycleAnimation();
} else {
if (controlMode == 2){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
if (!boss1_hasShot){
if (frame > 9){
boss1_hasShot = true;
_local1 = GameObjects.AddObj(0, 0, (zpos - 10));
_local1.InitEnemy_Boss1Bomb(this);
};
};
if (PlayAnimation()){
boss1_attackCount--;
if (boss1_attackCount <= 0){
frame = 0;
graphicID = objectDef.GetAnimIDFromName("run");
controlMode = 1;
} else {
boss1_hasShot = false;
frame = 0;
};
};
} else {
if (controlMode == 3){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
};
};
}
function UpdateSidekick():void{
}
function UpdateEnemy_Boss4(){
UpdateEnemy_BossGeneratePickups();
boss4_shooting = false;
weaponControlMode = 0;
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 50){
yvel = Utils.RandBetweenFloat(-6, -18);
controlMode = 3;
} else {
if (Utils.RandBetweenInt(0, 1000) < 50){
controlMode = 2;
timer = Utils.RandBetweenInt(10, 20);
Boss4GetWeaponAng();
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 50)))){
shimmyTimer = Utils.RandBetweenInt(5, 10);
};
};
};
CycleAnimation();
};
if (controlMode == 2){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
CycleAnimation();
weaponControlMode = 1;
boss4_shooting = true;
boss4_shootingFrame++;
if (boss4_shootingFrame >= 10){
boss4_shootingFrame = 0;
Boss4GetWeaponAng();
timer--;
if (timer < 0){
controlMode = 1;
};
};
};
if (controlMode == 3){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsXvel();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
if (Collision.ObjectWallCollision(this)){
xvel = 0;
};
}
public function PlayerHitByEnemyBullet(_arg1:GameObj){
var _local2:GameObj;
var _local3:Boolean;
if (controlMode >= 99){
return;
};
Game.playerHealth = (Game.playerHealth - ((_arg1.objectDef.playerDamagePercent * 0.01) * Game.playerBaseDamage));
if (Game.playerHealth <= 0){
Game.playerHealth = 0;
Game.InitLevelState(Game.levelState_GameOver);
};
healthBarTimer = (Defs.fps * 3);
colFlag_playercanbekilled = false;
playerHitByEnemyTimer = (Defs.fps * 0.5);
_local2 = GameObjects.AddObj(xpos, (ypos - 50), (zpos - 10));
_local3 = false;
if (_arg1.xpos < xpos){
_local3 = true;
};
_local2.InitBloodSplat(_local3);
_arg1.active = false;
}
function RenderRocket(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
if (objectDef != null){
_local3 = (_local3 - objectDef.offsetX);
_local4 = (_local4 - objectDef.offsetY);
};
GraphicObjects.RenderAtRotScaled(graphicID, frame, main.screenBD, _local3, _local4, false, 1, dir);
}
function UpdateEnemy_ChasePlayer(){
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 20){
yvel = Utils.RandBetweenFloat(-6, -12);
controlMode = 2;
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 10)))){
shimmyTimer = Utils.RandBetweenInt(20, 40);
};
};
if (GetHorizDistToPlayer() < 50){
controlMode = 3;
graphicID = objectDef.GetAnimIDFromName("idle");
frame = 0;
};
CycleAnimation();
};
if (controlMode == 3){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (GetHorizDistToPlayer() > 70){
controlMode = 0;
graphicID = objectDef.GetAnimIDFromName("run");
frame = 0;
};
CycleAnimation();
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsXvel();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
if (Collision.ObjectWallCollision(this)){
xvel = 0;
};
}
function InitPlayer():void{
weaponGraphicID = GraphicObjects.gfx_player_weapon0_idle;
weaponFrame = 0;
weaponFrameVel = 1;
playerWeaponYoffset = -40;
playerHitByEnemyTimer = 0;
colFlag_playercanbekilled = true;
SetAnim(GraphicObjects.gfx_player_idle);
objectDef = ObjectDefs.GetObjectDefByExportName("Player");
movementVec = new Vec();
updateFunction = null;
renderFunction = RenderPlayer;
yvel = 0;
xvel = 0;
onLine = false;
currentLine = null;
radius = 40;
frame = 0;
jumpInARowCount = 0;
currentWeapon = 0;
controlMode = 0;
}
function ClearColFlags(){
colFlag_jumpon = false;
colFlag_killPlayer = false;
colFlag_playercanbekilled = false;
colFlag_canBePickedUp = false;
colFlag_canBeShot = false;
colFlag_isBullet = false;
colFlag_isPlatform = false;
colFlag_isPowerup = false;
colFlag_isBouncyPad = false;
colFlag_isCheckpoint = false;
colFlag_isExit = false;
colFlag_isEnemyBullet = false;
}
function UpdateEnemy_Boss3(){
colFlag_killPlayer = true;
UpdateEnemy_BossGeneratePickups();
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
weaponControlMode = 0;
weaponControlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 20){
yvel = Utils.RandBetweenFloat(-4, -8);
controlMode = 2;
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 10)))){
shimmyTimer = Utils.RandBetweenInt(20, 40);
};
};
CycleAnimation();
};
if (controlMode == 3){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (GetHorizDistToPlayer() > 300){
controlMode = 0;
graphicID = objectDef.GetAnimIDFromName("run");
weaponControlMode = 0;
frame = 0;
};
CycleAnimation();
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
}
function Enemy_UpdateVels(){
var _local1:GameObj;
_local1 = Game.goPlayer;
xacc = -(enemy_acc);
if (_local1.xpos > xpos){
xacc = enemy_acc;
};
if (shimmyTimer > 0){
shimmyTimer--;
xacc = -(xacc);
};
xvel = (xvel + xacc);
if (xvel > enemy_maxvel){
xvel = enemy_maxvel;
};
if (xvel < -(enemy_maxvel)){
xvel = -(enemy_maxvel);
};
xpos = (xpos + xvel);
UpdateEnemy_AddExternalVels();
}
function RenderPlayer(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Boolean;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
if (((!((controlMode == 99))) && (!((controlMode == 100))))){
_local1 = 0;
_local2 = (((MouseControl.mousePosX + Game.scrollX) - Game.scrollXoff) - xpos);
_local3 = (((MouseControl.mousePosY + Game.scrollY) - Game.scrollYoff) - (ypos + playerWeaponYoffset));
_local4 = Math.atan2(_local3, _local2);
_local5 = false;
if (_local4 > (Math.PI / 2)){
_local5 = true;
_local4 = (_local4 + Math.PI);
} else {
if (_local4 < (-(Math.PI) / 2)){
_local5 = true;
_local4 = (_local4 + Math.PI);
};
};
_local1 = _local4;
_local6 = Math.floor(Game.scrollX);
_local7 = Math.floor(Game.scrollY);
_local8 = (Math.floor(xpos) - _local6);
_local9 = (Math.floor(ypos) - _local7);
_local8 = (_local8 + Game.scrollXoff);
_local9 = (_local9 + Game.scrollYoff);
if (objectDef != null){
_local8 = (_local8 - objectDef.offsetX);
_local9 = (_local9 - objectDef.offsetY);
};
_local9 = (_local9 + playerWeaponYoffset);
GraphicObjects.RenderAtRotScaled(weaponGraphicID, weaponFrame, main.screenBD, _local8, _local9, _local5, 1, _local1);
};
RenderNormally();
RenderLaserSight();
}
public function InitEnemy(_arg1:String){
var _local2:Number;
var _local3:GameObj;
var _local4:Number;
shimmyTimer = 0;
changeVelTimer = 0;
Game.numEnemiesActive++;
_local2 = 0;
_local3 = Game.goPlayer;
_local4 = 370;
onLine = false;
currentLine = null;
currentPoly = null;
controlMode = 0;
movementVec = new Vec();
updateFunction = UpdateEnemy;
colFlag_canBeShot = true;
objectDef = ObjectDefs.GetObjectDefByExportName(_arg1);
health = objectDef.GetMaxHealth();
weaponUpdateFunction = null;
weaponGraphicID = -1;
renderFunction = RenderEnemy;
weaponFrameVel = 1;
if (objectDef.controlType == "Boss1"){
InitEnemyBoss1(_local2);
};
if (objectDef.controlType == "Boss2"){
InitEnemyBoss2(_local2);
};
if (objectDef.controlType == "Boss3"){
InitEnemyBoss3(_local2);
};
if (objectDef.controlType == "Boss4"){
InitEnemyBoss4(_local2);
};
if (objectDef.controlType == "ChasePlayer"){
InitEnemyChasePlayer(_local2);
weaponUpdateFunction = WeaponFunction_HitPlayerWhenNear;
weaponControlMode = 0;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
};
if (objectDef.controlType == "ChasePlayerWithAttackFrame"){
InitEnemyChasePlayerWithAttackFrame(_local2);
};
if (objectDef.controlType == "BirdWithSwoop"){
InitEnemyBirdWithSwoop(_local2);
};
if (objectDef.controlType == "BirdWithBomb"){
InitEnemyBirdWithBomb(_local2);
};
if (objectDef.controlType == "ChasePlayerAndBomb"){
InitEnemyChasePlayerWithBomb(_local2);
};
if (objectDef.controlType == "ChasePlayerAndShoot"){
InitEnemyChasePlayerAndShoot(_local2);
};
if (objectDef.controlType == "ChasePlayerAndShootWithAttackFrame"){
InitEnemyChasePlayerAndShootWithAttackFrame(_local2);
};
radius = 100;
}
function UpdateBullet_Grenade():void{
xpos = (xpos + xvel);
UpdateGravity();
if (Collision.ObjectFallingSurfaceCollision(this)){
Game.InitExplosion(xpos, ypos, 1);
Collision.EnemyBombCollision(this, 150);
active = false;
};
if (IsInWorld(100) == false){
active = false;
};
}
function UpdateEnemy_Boss2(){
colFlag_killPlayer = true;
UpdateEnemy_BossGeneratePickups();
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
CycleAnimation();
};
if (Collision.ObjectWallCollision(this)){
xvel = 0;
};
}
public function PlayerHitByEnemy(_arg1:GameObj){
var _local2:GameObj;
var _local3:Boolean;
if (controlMode >= 99){
return;
};
Game.playerHealth = (Game.playerHealth - ((_arg1.objectDef.playerDamagePercent * 0.01) * Game.playerBaseDamage));
if (Game.playerHealth <= 0){
Game.playerHealth = 0;
controlMode = 99;
graphicID = GraphicObjects.gfx_player_die;
frame = 0;
frameVel = 1;
};
healthBarTimer = (Defs.fps * 3);
colFlag_playercanbekilled = false;
playerHitByEnemyTimer = (Defs.fps * 0.5);
_local2 = GameObjects.AddObj(xpos, (ypos - 50), (zpos - 10));
_local3 = false;
if (_arg1.xpos < xpos){
_local3 = true;
};
_local2.InitBloodSplat(_local3);
}
function PlayerShootBullet():Boolean{
var _local1:WeaponDef;
var _local2:GameObj;
_local1 = WeaponDefs.GetWeaponDef(currentWeapon);
if (_local1.timer <= 0){
_local1.timer = (_local1.GetRepeatRate() * Defs.fps);
if (currentWeapon == 0){
_local2 = GameObjects.AddObj(0, playerWeaponYoffset, (zpos - 10));
_local2.InitBullet(this, 0, _local1);
PlayerShootSound();
} else {
if (Game.ammo <= 0){
currentWeapon = 0;
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + currentWeapon);
weaponFrame = 0;
} else {
_local2 = GameObjects.AddObj(0, playerWeaponYoffset, (zpos - 10));
_local2.InitBullet(this, 0, _local1);
PlayerShootSound();
Game.ammo = (Game.ammo - _local1.ammoPerShot);
if (Game.ammo <= 0){
currentWeapon = 0;
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + currentWeapon);
weaponFrame = 0;
};
};
};
return (true);
};
return (false);
}
function PlayerHandleWeaponTimers(){
var _local1:WeaponDef;
for each (_local1 in WeaponDefs.list) {
if (_local1.available){
if (_local1.timer > 0){
_local1.timer--;
};
};
};
}
public function UpdateExplosion():void{
if (PlayAnimation()){
active = false;
};
}
public function GetOffsetObjectRectangle():Rectangle{
var _local1:ObjectDef;
var _local2:Rectangle;
_local1 = GetObjectDef();
_local2 = _local1.colRect.clone();
_local2.x = (_local2.x + xpos);
_local2.y = (_local2.y + ypos);
return (_local2);
}
function RenderBoss4(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
RenderWeaponCarryingEnemy();
if (boss4_shooting){
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
_local4 = (_local4 - 150);
if (xflip == true){
_local3 = (_local3 + 50);
} else {
_local3 = (_local3 - 50);
};
_local5 = boss4_shootAtAng;
GraphicObjects.RenderAtRotScaled(GraphicObjects.gfx_enemy19_bolt, boss4_shootingFrame, main.screenBD, _local3, _local4, false, 1, _local5);
};
}
function InitBullet(_arg1:GameObj, _arg2:int, _arg3:WeaponDef):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:GameObj;
var _local12:int;
bulletWeaponDef = _arg3;
colFlag_isBullet = true;
updateFunction = UpdateBullet;
graphicID = GraphicObjects.gfx_bullet1;
parentObj = _arg1;
_local4 = 10;
_local5 = 20;
xpos = _arg1.xpos;
ypos = (_arg1.ypos + _arg1.playerWeaponYoffset);
xvel = 10;
if (_arg1.xflip){
xvel = -10;
};
yvel = -2;
timer = 100;
startx = xpos;
starty = ypos;
_local6 = ((MouseControl.mousePosX + Game.scrollX) - Game.scrollXoff);
_local7 = ((MouseControl.mousePosY + Game.scrollY) - Game.scrollYoff);
_local8 = Math.atan2((_local7 - ypos), (_local6 - xpos));
_local9 = Utils.ScaleBetween(0, 0.2, ((100 - bulletWeaponDef.GetAccuracy()) * 0.01));
movementVec = new Vec();
movementVec.Set((_local8 + Math.PI), 1);
parentObj.movementVec.Add(movementVec);
if (parentObj.movementVec.speed > 2){
parentObj.movementVec.speed = 2;
};
_local10 = Utils.RandBetweenFloat((_local8 - _local9), (_local8 + _local9));
movementVec.Set(_local10, 20);
if (bulletWeaponDef.name != "Chainsaw"){
_local11 = GameObjects.AddObj(_arg1.xpos, (_arg1.ypos - 50), 100);
_local11.InitShell(this, _arg1.currentWeapon);
Game.bulletsFired++;
};
if (bulletWeaponDef.name == "AK47"){
Game.AkGrenadeCounter++;
if (Game.AkGrenadeCounter >= 10){
Game.AkGrenadeCounter = 0;
};
if ((((bulletWeaponDef.GetExtraUpgrade() == WeaponDefs.extra_ak)) && ((Game.AkGrenadeCounter == 0)))){
timer = 10000;
graphicID = GraphicObjects.gfx_bullet_grenade;
xflip = false;
if (movementVec.GetUnitXComponent() < 0){
xflip = true;
};
renderFunction = RenderRocket;
dir = movementVec.rot;
updateFunction = UpdateBullet_Grenade;
movementVec.speed = 12;
xvel = movementVec.GetXComponent();
yvel = movementVec.GetYComponent();
isGrenade = true;
} else {
timer = 20;
startx = xpos;
starty = ypos;
UpdateBullet_Instant(_arg1.currentWeapon);
active = false;
};
} else {
if (bulletWeaponDef.name == "Rocket Launcher"){
timer = 100;
graphicID = GraphicObjects.gfx_bullet_rocket;
if (bulletWeaponDef.GetExtraUpgrade() == WeaponDefs.extra_rocketlauncher){
graphicID = GraphicObjects.gfx_bullet_penguin;
};
xflip = false;
if (movementVec.GetUnitXComponent() < 0){
xflip = true;
};
renderFunction = RenderRocket;
dir = movementVec.rot;
} else {
if (bulletWeaponDef.name == "Shotgun"){
startx = xpos;
starty = ypos;
_local12 = 0;
while (_local12 < 6) {
xpos = startx;
ypos = starty;
_local6 = ((MouseControl.mousePosX + Game.scrollX) - Game.scrollXoff);
_local7 = ((MouseControl.mousePosY + Game.scrollY) - Game.scrollYoff);
_local9 = Utils.ScaleBetween(0, 0.2, ((100 - bulletWeaponDef.GetAccuracy()) * 0.01));
_local10 = Utils.RandBetweenFloat((_local8 - _local9), (_local8 + _local9));
movementVec.Set(_local10, 20);
timer = 10;
UpdateBullet_Instant(_arg1.currentWeapon);
_local12++;
};
active = false;
} else {
if (bulletWeaponDef.name == "Chainsaw"){
timer = 5;
startx = xpos;
starty = ypos;
UpdateBullet_Instant(_arg1.currentWeapon, false);
active = false;
} else {
timer = 20;
startx = xpos;
starty = ypos;
UpdateBullet_Instant(_arg1.currentWeapon);
active = false;
};
};
};
};
}
public function InitOverlayText(_arg1:int){
xpos = (Defs.displayarea_w * 0.5);
ypos = (Defs.displayarea_h * 0.5);
graphicID = GraphicObjects.gfx_overlay_getready;
if (_arg1 == 1){
graphicID = GraphicObjects.gfx_overlay_finishthemoff;
};
updateFunction = UpdateOverlayText;
timer = (Defs.fps * 2);
renderFunction = RenderOverlayText;
}
function UpdateEnemy_Die(){
if (controlMode == 0){
if (PlayAnimation()){
timer = Defs.fps;
controlMode = 1;
};
} else {
if (controlMode == 1){
timer--;
if (timer < 0){
RemoveEnemy();
};
};
};
UpdateGravity();
Collision.ObjectFallingSurfaceCollision(this);
}
function FaceTowardsPlayer():void{
var _local1:GameObj;
xflip = true;
_local1 = Game.goPlayer;
if (_local1.xpos > xpos){
xflip = false;
};
}
function UpdateSign(){
}
function UpdateEnemy_Path(){
var _local1:*;
var _local2:Point;
var _local3:*;
var _local4:Point;
_local1 = currentPoly.GetNumPoints();
platformSpeed = (3 * Defs.fps);
_local2 = currentPoly.GetPoint(currentPathNode);
_local3 = (currentPathNode + 1);
if (_local3 > _local1){
_local3 = 0;
};
_local4 = currentPoly.GetPoint(_local3);
xvel = ((_local4.x - _local2.x) / platformSpeed);
yvel = ((_local4.y - _local2.y) / platformSpeed);
xpos = (xpos + xvel);
ypos = (ypos + yvel);
if (Utils.Dist2BetweenPoints(xpos, ypos, _local4.x, _local4.y) < (8 * 8)){
currentPathNode++;
if (currentPathNode > _local1){
currentPathNode = 0;
};
};
CycleAnimation();
}
function InitExit(){
colFlag_isExit = true;
objectDef = ObjectDefs.GetObjectDefByExportName("Exit");
updateFunction = UpdateExit;
controlMode = 0;
graphicID = objectDef.GetAnimIDFromName("idle");
frame = 0;
}
function Platform_GetToPos():void{
var _local1:*;
var _local2:Point;
var _local3:*;
var _local4:Point;
_local1 = currentPoly.GetNumPoints();
_local2 = currentPoly.GetPoint(currentPathNode);
_local3 = (currentPathNode + 1);
if (_local3 >= _local1){
_local3 = 0;
};
_local4 = currentPoly.GetPoint(_local3);
toPosX = _local4.x;
toPosY = _local4.y;
platformCurrentNodePosX = _local2.x;
platformCurrentNodePosY = _local2.y;
}
public function InitEnemyBirdWithSwoop(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_BirdWithSwoop;
ypos = (Game.goPlayer.ypos - 200);
direction = true;
if (xpos > Game.goPlayer.xpos){
direction = false;
};
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
function RenderWallCollision():void{
var _local1:int;
var _local2:Number;
var _local3:Number;
var _local4:Number;
if ((Debug.debugMode & 8) == 0){
return;
};
if (objectDef == null){
return;
};
if (objectDef.collisionCircleOffsets.length == 0){
return;
};
_local1 = 0;
while (_local1 < objectDef.collisionCircleOffsets.length) {
_local2 = objectDef.collisionCircleOffsets[_local1].x;
_local3 = objectDef.collisionCircleOffsets[_local1].y;
_local4 = objectDef.collisionCircleRadii[_local1];
_local2 = (_local2 + xpos);
_local2 = (_local2 - Game.scrollX);
_local3 = (_local3 + ypos);
_local3 = (_local3 - Game.scrollY);
Utils.RenderCircle(main.screenBD, _local2, _local3, _local4, 4294967295);
_local1++;
};
}
function RenderBlockCollision():void{
var _local1:Rectangle;
if ((Debug.debugMode & 4) == 0){
return;
};
if (objectDef == null){
return;
};
if (objectDef.colRect == null){
return;
};
_local1 = objectDef.colRect.clone();
_local1.x = (_local1.x + xpos);
_local1.y = (_local1.y + ypos);
_local1.x = (_local1.x - Game.scrollX);
_local1.y = (_local1.y - Game.scrollY);
main.screenBD.fillRect(_local1, 1082163328);
}
public function EnemyHitByBullet(_arg1:GameObj){
var _local2:GameObj;
var _local3:Boolean;
var _local4:Vec;
var _local5:Number;
var _local6:GameObj;
healthBarTimer = Game.healthBarTimerMax;
_local2 = GameObjects.AddObj(_arg1.xpos, _arg1.ypos, (_arg1.zpos - 10));
_local3 = false;
if (_arg1.movementVec.GetXComponent() > 0){
_local3 = true;
};
if (((_arg1.bulletWeaponDef.explosionType) || (_arg1.isGrenade))){
_local2.InitExplosion(0);
} else {
_local2.InitBloodSplat(_local3);
};
health = (health - (Game.bulletBaseDamage * (_arg1.bulletWeaponDef.GetDamage() * 0.01)));
_local4 = new Vec();
_local5 = ((200 - objectDef.massPercent) * 0.01);
_local5 = (_local5 * Game.enemyBaseKnock);
_local4.Set(_arg1.movementVec.rot, _local5);
movementVec.Add(_local4);
if (movementVec.speed > 2){
movementVec.speed = 2;
};
if (health <= 0){
Game.AddScore(objectDef.score);
Game.levelNumKills++;
Game.totalNumKills++;
isDead = true;
healthBarTimer = 0;
_local6 = GameObjects.AddObj(xpos, (ypos - 50), (zpos - 10));
_local6.InitPickup();
EnemyUpdateFunctionCallback = UpdateEnemy_Die;
colFlag_canBeShot = false;
scale = 1;
timer = 0;
frame = 0;
graphicID = objectDef.GetAnimIDFromName("death");
controlMode = 0;
frameVel = 1;
weaponUpdateFunction = null;
weaponFrame = -1;
if (Game.killedSoundTimer == 0){
SoundPlayer.Play(Utils.RandBetweenInt(SoundPlayer.SOUND_KILLED, SoundPlayer.SOUND_KILLED_LAST));
Game.killedSoundTimer = Game.killedSoundTimerMax;
};
if (((isBoss4) && ((Game.difficulty == 2)))){
Kong.SubmitStat(1, "LastBossCompletedOnHard");
};
} else {
if (Game.hitSoundTimer == 0){
SoundPlayer.Play(Utils.RandBetweenInt(SoundPlayer.SOUND_HIT, SoundPlayer.SOUND_HIT_LAST));
Game.hitSoundTimer = Game.hitSoundTimerMax;
};
};
_arg1.active = false;
}
function IsFacingTowardsPlayer():Boolean{
var _local1:GameObj;
_local1 = Game.goPlayer;
if (_local1.xpos > xpos){
return ((xflip = false));
};
return (xflip);
}
function RotateToRequiredRot(_arg1:Number){
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = Math.atan2((toPosY - ypos), (toPosX - xpos));
_local3 = (_local2 + (Math.PI / 2));
_local4 = Utils.DotProduct(Math.cos(movementVec.rot), Math.sin(movementVec.rot), Math.cos(_local3), Math.sin(_local3));
if (_local4 < 0){
movementVec.AddRot(_arg1);
} else {
movementVec.AddRot(-(_arg1));
};
if (movementVec.NearRot(_local2, _arg1)){
movementVec.rot = _local2;
};
}
function HandleFlash(){
flashTimerMax = 10;
flashTimer = (flashTimer + 1);
if (flashTimer >= flashTimerMax){
flashTimer = 0.01;
if (flashFlag == false){
flashFlag = true;
} else {
flashFlag = false;
};
};
}
function RenderWeaponCarryingEnemy(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Point;
if (objectDef.weaponOrder == true){
RenderNormally();
};
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
_local5 = objectDef.GetWeaponOffset(0);
weaponGraphicOffsetX = _local5.x;
weaponGraphicOffsetY = _local5.y;
if (xflip == false){
_local3 = (_local3 + weaponGraphicOffsetX);
} else {
_local3 = (_local3 - weaponGraphicOffsetX);
};
_local4 = (_local4 + weaponGraphicOffsetY);
_local3 = (_local3 - objectDef.offsetX);
_local4 = (_local4 - objectDef.offsetY);
if (weaponFrame != -1){
if (scale != 1){
GraphicObjects.RenderAtScaled(weaponGraphicID, weaponFrame, main.screenBD, _local3, _local4, xflip, scale);
} else {
GraphicObjects.RenderAt(weaponGraphicID, weaponFrame, main.screenBD, _local3, _local4, xflip);
};
};
if (objectDef.weaponOrder == false){
RenderNormally();
};
RenderHealthBar();
}
public function PlayAnimation():Boolean{
var _local1:int;
_local1 = (GraphicObjects.GetNumFrames(graphicID) - 1);
frame = (frame + frameVel);
if (frame >= _local1){
frame = _local1;
return (true);
};
return (false);
}
function RenderNormally(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
if (objectDef != null){
_local3 = (_local3 - objectDef.offsetX);
_local4 = (_local4 - objectDef.offsetY);
};
if (scale != 1){
GraphicObjects.RenderAtScaled(graphicID, frame, main.screenBD, _local3, _local4, xflip, scale);
} else {
GraphicObjects.RenderAt(graphicID, frame, main.screenBD, _local3, _local4, xflip);
};
}
public function InitBackground(_arg1:int){
frame = 0;
graphicID = _arg1;
updateFunction = UpdateBackground;
renderFunction = RenderBackground;
}
function UpdateEnemy_ChasePlayerAndShootWithAttackFrame(){
var _local1:GameObj;
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
weaponControlMode = 0;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (GetHorizDistToPlayer() < 250){
if (Utils.RandBetweenInt(0, 1000) < 50){
controlMode = 3;
graphicID = objectDef.GetAnimIDFromName("attack");
frame = 0;
};
};
CycleAnimation();
};
if (controlMode == 3){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (PlayAnimation()){
_local1 = GameObjects.AddObj(0, 0, (zpos - 10));
_local1.InitEnemyBullet_ThrowSnowball(this, 0);
controlMode = 1;
graphicID = objectDef.GetAnimIDFromName("run");
frame = 0;
};
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
}
public function WeaponCycleAnimation():void{
var _local1:int;
_local1 = GraphicObjects.GetNumFrames(weaponGraphicID);
weaponFrame = (weaponFrame + weaponFrameVel);
if (weaponFrame >= _local1){
weaponFrame = (weaponFrame - _local1);
};
if (weaponFrame < 0){
weaponFrame = (weaponFrame + _local1);
};
}
function WeaponFunction_Boss4(){
colFlag_killPlayer = true;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
if (weaponControlMode == 0){
weaponFrame = 0;
} else {
if (weaponControlMode == 1){
weaponFrameVel = 1;
WeaponCycleAnimation();
};
};
}
public function InitEnemyPath(){
subtype = enemyType_PATH;
EnemyUpdateFunctionCallback = UpdateEnemy_Path;
currentPathNode = 0;
currentPoly = Collision.FindNearestPathStartPointToPos(xpos, ypos);
controlMode = 0;
timer = 100;
frameVel = 1;
}
function UpdateEnemy_BirdWithBomb(){
var _local1:GameObj;
var _local2:int;
var _local3:GameObj;
_local1 = Game.goPlayer;
UpdateEnemy_GetVels();
xvel = enemy_maxvel;
if (direction == false){
xvel = (xvel * -1);
};
xflip = (direction == false);
colFlag_killPlayer = true;
if (controlMode == 0){
toPosY = (_local1.ypos - 220);
xpos = (xpos + xvel);
ypos = (ypos + ((toPosY - ypos) * 0.03));
_local2 = 20;
if (GetHorizDistToPlayer() < 100){
_local2 = 100;
};
if (Utils.RandBetweenInt(0, 1000) < _local2){
_local3 = GameObjects.AddObj(0, 0, (zpos - 10));
_local3.InitEnemyBomb(this, 0);
controlMode = 1;
timer = 50;
};
CycleAnimation();
} else {
if (controlMode == 1){
toPosY = (_local1.ypos - 220);
xpos = (xpos + xvel);
ypos = (ypos + ((toPosY - ypos) * 0.03));
CycleAnimation();
timer--;
if (timer <= 0){
controlMode = 0;
};
};
};
}
public function GetDirBetween(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:*;
_local5 = Math.atan2((_arg4 - _arg2), (_arg3 - _arg1));
return (_local5);
}
function Enemy_UpdateVels_Stopping(){
var _local1:GameObj;
_local1 = Game.goPlayer;
if (xvel > 0){
xvel = (xvel + enemy_decel);
if (xvel < 0){
xvel = 0;
};
} else {
xvel = (xvel - enemy_decel);
if (xvel > 0){
xvel = 0;
};
};
xpos = (xpos + xvel);
UpdateEnemy_AddExternalVels();
}
public function InitEnemyChasePlayerAndShootWithAttackFrame(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
renderFunction = RenderEnemy;
EnemyUpdateFunctionCallback = UpdateEnemy_ChasePlayerAndShootWithAttackFrame;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
function UpdateEnemy_GetVels(){
var _local1:GameObj;
changeVelTimer--;
if (changeVelTimer <= 0){
changeVelTimer = Utils.RandBetweenInt(50, 100);
enemy_accOff = Utils.RandBetweenFloat(0, 0.01);
enemy_decelOff = Utils.RandBetweenFloat(0, 0.01);
enemy_maxvelOff = Utils.RandBetweenFloat(0, 0.5);
};
_local1 = Game.goPlayer;
enemy_acc = ((objectDef.xacc * 0.01) * Game.enemyBaseAcc);
enemy_decel = ((-(objectDef.xacc) * 0.01) * Game.enemyBaseAcc);
enemy_maxvel = ((objectDef.maxxv * 0.01) * Game.enemyBaseMaxVel);
enemy_acc = (enemy_acc + enemy_accOff);
enemy_decel = (enemy_decel + enemy_decelOff);
enemy_maxvel = (enemy_maxvel + enemy_maxvelOff);
}
public function InitEnemyBirdWithBomb(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_BirdWithBomb;
ypos = (Game.goPlayer.ypos - 200);
direction = true;
if (xpos > Game.goPlayer.xpos){
direction = false;
};
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
public function InitEnemyWalker(_arg1:Number){
}
public function InitEnemyChasePlayerWithBomb(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_ChasePlayerWithBomb;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
public function CycleAnimationEx():Boolean{
var _local1:Boolean;
var _local2:*;
_local1 = false;
frame = (frame + frameVel);
_local2 = (maxFrame - minFrame);
if (frame > maxFrame){
frame = (frame - _local2);
_local1 = true;
};
if (frame < minFrame){
frame = (frame + _local2);
_local1 = true;
};
return (_local1);
}
function IsInWorld(_arg1:Number):Boolean{
if (xpos < (0 - _arg1)){
return (false);
};
if (ypos < (0 - _arg1)){
return (false);
};
if (xpos > (Game.scrollW + _arg1)){
return (false);
};
if (ypos > (Game.scrollH + _arg1)){
return (false);
};
return (true);
}
public function InitEnemyChasePlayerAndShoot(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
renderFunction = RenderWeaponCarryingEnemy;
EnemyUpdateFunctionCallback = UpdateEnemy_ChasePlayerAndShoot;
weaponUpdateFunction = UpdateWeapon_ChasePlayerAndShoot;
weaponControlMode = 0;
weaponFrame = 0;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
function UpdateBullet_Instant(_arg1:int, _arg2=true):void{
var _local3:Number;
var _local4:Number;
var _local5:Matrix;
var _local6:Point;
var _local7:int;
var _local8:Particle;
_local3 = bulletWeaponDef.fireOffsetX;
_local4 = bulletWeaponDef.fireOffsetY;
_local5 = new Matrix();
_local5.rotate(movementVec.rot);
_local6 = new Point(_local3, _local4);
_local6 = _local5.transformPoint(_local6);
_local3 = _local6.x;
_local4 = _local6.y;
_local3 = (_local3 + xpos);
_local4 = (_local4 + ypos);
_local7 = 99;
do {
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
timer--;
if (_arg2){
_local7++;
if (_local7 >= 3){
_local7 = 0;
_local8 = Particles.Add(Particles.type_dust, _local3, _local4, (GraphicObjects.gfx_weapon_pistol_shoot + _arg1), 0);
_local8.rot = movementVec.rot;
};
};
_local3 = (_local3 + movementVec.GetXComponent());
_local4 = (_local4 + movementVec.GetYComponent());
if (Collision.SingleBulletEnemyCollision(this)){
timer = 0;
};
if (Collision.ObjectSurfaceCollision(this)){
timer = 0;
};
} while (timer > 0);
}
function InitSwitch(_arg1:String){
updateFunction = UpdateSwitch;
frame = 0;
}
function InitEnemyBullet_ThrowSnowball(_arg1:GameObj, _arg2:int):void{
objectDef = ObjectDefs.GetObjectDefByExportName("EnemyBullet");
updateFunction = UpdateEnemyBullet_ThrowSnowball;
graphicID = GraphicObjects.gfx_bullet2;
parentObj = _arg1;
colFlag_isEnemyBullet = true;
xpos = (_arg1.xpos + _arg1.objectDef.weaponFireOffset.x);
ypos = (_arg1.ypos + _arg1.objectDef.weaponFireOffset.y);
xvel = Utils.RandBetweenFloat(5, 7);
if (_arg1.xflip){
xvel = -(xvel);
xpos = (_arg1.xpos - _arg1.objectDef.weaponFireOffset.x);
};
yvel = Utils.RandBetweenFloat(-10, -20);
timer = 200;
}
public function UpdatePickup(){
var _local1:int;
if (controlMode == 0){
xpos = (xpos + xvel);
UpdateGravity();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
timer = (Defs.fps * 7.5);
};
};
if (controlMode == 1){
timer--;
if (timer <= 0){
active = false;
};
if (timer < (Defs.fps * 1)){
_local1 = (timer & 1);
visible = false;
if (_local1 == 0){
visible = true;
};
};
};
if (controlMode == 2){
visible = true;
if (PlayAnimation()){
active = false;
};
};
}
function UpdatePlatform(){
var _local1:Number;
Platform_GetToPos();
if (subtype == 0){
_local1 = Math.atan2((toPosY - ypos), (toPosX - xpos));
movementVec.Set(_local1, platformSpeed);
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
};
if (subtype == 1){
movementVec.speed = platformSpeed;
RotateToRequiredRot(0.05);
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
};
if (Utils.Dist2BetweenPoints(xpos, ypos, toPosX, toPosY) < (8 * 8)){
currentPathNode++;
if (currentPathNode >= currentPoly.GetNumPoints()){
currentPathNode = 0;
};
};
}
public function InitShell(_arg1:GameObj, _arg2:int){
var _local3:Number;
var _local4:Number;
var _local5:Matrix;
var _local6:Point;
objectDef = ObjectDefs.GetObjectDefByExportName("Shell");
updateFunction = UpdateShell;
renderFunction = RenderShell;
subtype = _arg2;
graphicID = (GraphicObjects.gfx_player_weapon0_shell + subtype);
frame = 0;
yvel = Utils.RandBetweenFloat(-8, -12);
xvel = Utils.RandBetweenFloat(-2, 2);
dir = 0;
rotVel = Utils.RandBetweenFloat(-0.2, 0.2);
frameVel = 1;
controlMode = 0;
_local3 = _arg1.bulletWeaponDef.shellOffsetX;
_local4 = _arg1.bulletWeaponDef.shellOffsetY;
_local5 = new Matrix();
_local5.rotate(_arg1.movementVec.rot);
_local6 = new Point(_local3, _local4);
_local6 = _local5.transformPoint(_local6);
xpos = (xpos + _local6.x);
ypos = (ypos + _local6.y);
}
public function GetObjectRectangle():Rectangle{
var _local1:ObjectDef;
_local1 = GetObjectDef();
return (_local1.colRect);
}
public function Update():void{
oldxpos = xpos;
oldypos = ypos;
if (updateFunction != null){
updateFunction();
};
if (weaponUpdateFunction != null){
weaponUpdateFunction();
};
}
public function InitParallax(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:int){
parallaxNumRepats = _arg6;
renderFunction = RenderParallax;
updateFunction = UpdateParallax;
graphicID = _arg1;
frame = 0;
speed = _arg5;
zpos = _arg4;
}
function InitEnemyBomb(_arg1, _arg2:int):void{
objectDef = ObjectDefs.GetObjectDefByExportName("EnemyBomb");
updateFunction = UpdateEnemyBomb;
graphicID = GraphicObjects.gfx_bullet2;
xpos = _arg1.xpos;
ypos = (_arg1.ypos + 20);
xvel = _arg1.xvel;
yvel = 0;
}
public function UpdateOverlayText():void{
timer--;
if (timer <= 0){
active = false;
};
}
public function UpdateShell(){
var _local1:int;
var _local2:Number;
if (controlMode == 0){
xpos = (xpos + xvel);
UpdateGravity();
dir = (dir + rotVel);
_local1 = xpos;
if ((((_local1 >= 1)) && ((_local1 < (3000 - 1))))){
_local2 = Game.shellCollisionMap[_local1];
if (ypos >= _local2){
ypos = _local2;
Game.shellCollisionMap[(_local1 - 1)] = (Game.shellCollisionMap[(_local1 - 1)] - 1);
Game.shellCollisionMap[_local1] = (Game.shellCollisionMap[_local1] - 2);
Game.shellCollisionMap[(_local1 + 1)] = (Game.shellCollisionMap[(_local1 + 1)] - 1);
RenderShellToBackground();
active = false;
};
} else {
if (ypos > (Game.scrollH + 32)){
active = false;
};
};
};
}
function RenderHealthBar(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Point;
var _local6:Number;
var _local7:Number;
var _local8:*;
var _local9:Rectangle;
if (healthBarTimer <= 0){
return;
};
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local3 = (_local3 + Game.scrollXoff);
_local4 = (_local4 + Game.scrollYoff);
_local5 = objectDef.healthBarOffset;
_local3 = (_local3 + _local5.x);
_local4 = (_local4 + _local5.y);
_local6 = 50;
_local7 = 5;
_local8 = (_local6 * 0.5);
_local3 = (_local3 - _local8);
_local9 = new Rectangle();
_local9.x = _local3;
_local9.y = _local4;
_local9.width = _local6;
_local9.height = _local7;
main.screenBD.fillRect(_local9, 4286578688);
_local9.x = _local3;
_local9.y = _local4;
_local9.width = ((_local6 / objectDef.GetMaxHealth()) * health);
_local9.height = _local7;
main.screenBD.fillRect(_local9, 4294901760);
}
function UpdateEnemy_BossGeneratePickups(){
var _local1:GameObj;
bossPickupTimer++;
if (bossPickupTimer > 100){
bossPickupTimer = 0;
_local1 = GameObjects.AddObj(xpos, (ypos - 50), (zpos - 10));
_local1.InitPickup();
};
}
public function LandedOnLine(_arg1:Poly, _arg2:Line):void{
onLine = true;
currentLine = _arg2;
currentPoly = _arg1;
yvel = 0;
}
function InitBouncyPad():void{
}
public function InitEnemyBoss1(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_Boss1;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
public function InitEnemyBoss3(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
renderFunction = RenderWeaponCarryingEnemy;
EnemyUpdateFunctionCallback = UpdateEnemy_Boss3;
weaponUpdateFunction = UpdateWeapon_ChasePlayerAndShoot;
weaponControlMode = 0;
weaponFrame = 0;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
public function InitEnemyChasePlayer(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_ChasePlayer;
renderFunction = RenderWeaponCarryingEnemy;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
public function UpdateBackground(){
xpos = -(Game.scrollX);
ypos = -(Game.scrollY);
}
function UpdateWeapon_ChasePlayerAndShoot(){
var _local1:GameObj;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
if (weaponControlMode == 0){
weaponFrame = 0;
weaponNumShots = 0;
} else {
if (weaponControlMode == 1){
weaponFrame = 0;
weaponControlMode = 2;
};
};
if (weaponControlMode == 2){
if (WeaponPlayAnimation()){
_local1 = GameObjects.AddObj(0, 0, (zpos - 10));
_local1.InitEnemyBullet(this, 0);
weaponNumShots++;
if (weaponNumShots >= objectDef.weaponRepeats){
weaponTimer = objectDef.weaponRestRate;
weaponControlMode = 4;
weaponNumShots = 0;
} else {
weaponTimer = objectDef.weaponRepeatRate;
weaponControlMode = 3;
};
};
} else {
if (weaponControlMode == 3){
weaponTimer--;
if (weaponTimer <= 0){
weaponControlMode = 1;
};
} else {
if (weaponControlMode == 4){
weaponTimer--;
if (weaponTimer <= 0){
weaponControlMode = 1;
};
};
};
};
}
function UpdateEnemy_Boss1Bomb():void{
if (controlMode == 0){
xpos = (xpos + xvel);
UpdateGravity();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
timer = 50;
};
} else {
if (controlMode == 1){
timer--;
if (timer < 0){
Game.InitExplosion(xpos, ypos, 0);
Collision.PlayerBombCollision(this, 180);
active = false;
};
};
};
}
function TestOffMap(_arg1:Number):Boolean{
if (xpos < (0 - _arg1)){
return (true);
};
if (ypos < (0 - _arg1)){
return (true);
};
if (xpos > (Game.scrollW + _arg1)){
return (true);
};
if (ypos > (Game.scrollH + _arg1)){
return (true);
};
return (false);
}
public function InitEnemyBoss2(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_Boss2;
renderFunction = RenderWeaponCarryingEnemy;
controlMode = 0;
frameVel = 1;
speed = _arg1;
weaponUpdateFunction = WeaponFunction_HitPlayerWhenNear;
weaponControlMode = 0;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
}
public function InitEnemyBoss4(_arg1:Number){
isBoss4 = true;
boss4_shooting = false;
boss4_shootingFrame = 0;
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_Boss4;
renderFunction = RenderBoss4;
controlMode = 0;
frameVel = 1;
speed = _arg1;
weaponUpdateFunction = WeaponFunction_Boss4;
weaponControlMode = 0;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
weaponFrame = 0;
}
function UpdateEnemyBullet_ThrowSnowball():void{
UpdateGravity();
xpos = (xpos + xvel);
timer--;
if (timer < 0){
active = false;
};
if (Collision.ObjectFallingSurfaceCollision(this)){
active = false;
};
}
public function Init(_arg1:int):void{
var _local2:int;
var _local3:Number;
_local2 = 0;
_local3 = 0;
type = _arg1;
controlMode = _local2;
xvel = _local3;
yvel = _local3;
frame = _local3;
weaponFrame = _local3;
frameVel = _local3;
timer = _local3;
hitTimer = _local3;
flashTimer = _local3;
flashFlag = false;
dir = 0;
todir = 0;
health = 1;
zvel = 0;
name = "";
scale = 1;
objectDef = null;
xflip = false;
weaponUpdateFunction = null;
updateFunction = null;
renderFunction = null;
visible = true;
healthBarTimer = 0;
ClearColFlags();
xoffset = 0;
yoffset = 0;
bossPickupTimer = 0;
isGrenade = false;
isDead = false;
isBoss4 = false;
}
function UpdatePlayer():void{
var _local1:Boolean;
var _local2:Boolean;
var _local3:Boolean;
var _local4:Boolean;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
oldxpos = xpos;
oldypos = ypos;
_local1 = false;
_local2 = false;
_local3 = false;
_local4 = false;
_local5 = false;
_local6 = false;
_local7 = false;
if (KeyReader.Down(KeyReader.KEY_LEFT)){
_local1 = true;
};
if (KeyReader.Down(KeyReader.KEY_A)){
_local1 = true;
};
if (KeyReader.Down(KeyReader.KEY_RIGHT)){
_local2 = true;
};
if (KeyReader.Down(KeyReader.KEY_D)){
_local2 = true;
};
if (KeyReader.Pressed(KeyReader.KEY_UP)){
_local4 = true;
};
if (KeyReader.Pressed(KeyReader.KEY_W)){
_local4 = true;
};
if (KeyReader.Pressed(KeyReader.KEY_E)){
_local7 = true;
};
if (KeyReader.Pressed(KeyReader.KEY_SPACE)){
_local7 = true;
};
if (KeyReader.Pressed(KeyReader.KEY_Q)){
_local6 = true;
};
if (Game.wheelMoved < 0){
_local6 = true;
Game.wheelMoved = 0;
};
if (Game.wheelMoved > 0){
_local7 = true;
Game.wheelMoved = 0;
};
if (controlMode == 99){
if (PlayAnimation()){
timer = (Defs.fps * 1);
controlMode = 100;
};
UpdateGravity();
Collision.ObjectFallingSurfaceCollision(this);
return;
};
if (controlMode == 100){
timer--;
if (timer < 0){
Game.InitLevelState(Game.levelState_GameOver);
};
return;
};
if (MouseControl.buttonPressed){
_local5 = true;
};
if (playerHitByEnemyTimer > 0){
playerHitByEnemyTimer--;
if (playerHitByEnemyTimer == 0){
colFlag_playercanbekilled = true;
};
};
_local8 = 5;
_local9 = 0.5;
_local10 = 0.5;
if (_local7){
SoundPlayer.StopChainsaw();
currentWeapon = WeaponDefs.NextWeapon(currentWeapon);
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + currentWeapon);
weaponFrame = 0;
SoundPlayer.Play(SoundPlayer.SOUND_CHANGEWEAPON);
};
if (_local6){
SoundPlayer.StopChainsaw();
currentWeapon = WeaponDefs.PreviousWeapon(currentWeapon);
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + currentWeapon);
weaponFrame = 0;
SoundPlayer.Play(SoundPlayer.SOUND_CHANGEWEAPON);
};
xflip = false;
if (((xpos - Game.scrollX) + Game.scrollXoff) > MouseControl.mousePosX){
xflip = true;
};
xacc = 0;
if (_local1){
xacc = -(_local10);
};
if (_local2){
xacc = _local10;
};
xvel = (xvel + xacc);
if (xvel < -(_local8)){
xvel = -(_local8);
};
if (xvel > _local8){
xvel = _local8;
};
if (xacc == 0){
if (xvel > 0){
xvel = (xvel - _local9);
if (xvel < 0){
xvel = 0;
};
} else {
xvel = (xvel + _local9);
if (xvel > 0){
xvel = 0;
};
};
};
PlayerHandleWeaponTimers();
if (_local5){
if (PlayerShootBullet()){
weaponFrame = 0;
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_shoot + currentWeapon);
};
};
if (WeaponPlayAnimation()){
if ((((weaponGraphicID >= GraphicObjects.gfx_player_weapon0_shoot)) && ((weaponGraphicID <= GraphicObjects.gfx_player_weapon7_shoot)))){
weaponGraphicID = (GraphicObjects.gfx_player_weapon0_idle + currentWeapon);
weaponFrame = 0;
};
};
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
movementVec.speed = (movementVec.speed * 0.9);
if (onLine){
xpos = (xpos + (currentLine.udx * xvel));
ypos = (ypos + (currentLine.udy * xvel));
if (xvel == 0){
SetAnim(GraphicObjects.gfx_player_idle);
frameVel = 1;
} else {
_local11 = (((xpos - Game.scrollX) + Game.scrollXoff) - MouseControl.mousePosX);
if (xvel > 0){
if (_local11 < 0){
SetAnim(GraphicObjects.gfx_player_run);
} else {
SetAnim(GraphicObjects.gfx_player_run_backwards);
};
} else {
if (_local11 > 0){
SetAnim(GraphicObjects.gfx_player_run);
} else {
SetAnim(GraphicObjects.gfx_player_run_backwards);
};
};
frameVel = (Math.abs(xvel) * 0.2);
};
CycleAnimation();
if (_local4){
onLine = false;
yvel = Game.playerJumpYvel;
jumpInARowCount = 1;
frame = 0;
SetAnim(GraphicObjects.gfx_player_jump);
frameVel = 1;
};
if (Collision.ObjectOnLineCollision(this) == false){
onLine = false;
frame = 0;
};
} else {
frameVel = 1;
xpos = (xpos + xvel);
if (yvel < 0){
PlayAnimation();
UpdateGravity();
if (frame > 7){
frame = 7;
};
} else {
PlayAnimation();
UpdateGravity();
};
Collision.ObjectFallingSurfaceCollision(this);
currentPlatform = Collision.SingleObjectPlatformCollision(this);
if (currentPlatform != null){
onPlatform = true;
frame = 0;
};
if (TestOffMapBottom(100)){
ypos = 0;
xpos = (Game.scrollW * 0.5);
yvel = 0;
};
};
if (Collision.ObjectWallCollision(this)){
};
}
public function PlayerHitExit(_arg1:GameObj){
}
function UpdateEnemy_ChasePlayerWithAttackFrame(){
colFlag_killPlayer = false;
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 20){
yvel = Utils.RandBetweenFloat(-6, -12);
controlMode = 2;
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 10)))){
shimmyTimer = Utils.RandBetweenInt(20, 40);
};
};
if (GetHorizDistToPlayer() < 120){
controlMode = 3;
graphicID = objectDef.GetAnimIDFromName("attack");
frame = 0;
};
CycleAnimation();
};
if (controlMode == 3){
colFlag_killPlayer = true;
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (PlayAnimation()){
frame = 0;
graphicID = objectDef.GetAnimIDFromName("run");
controlMode = 1;
};
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
}
function UpdateGravity(){
yvel = (yvel + Game.gravity);
if (yvel > Game.maxFallSpeed){
yvel = Game.maxFallSpeed;
};
ypos = (ypos + yvel);
}
function RemoveEnemy(){
Game.numEnemiesActive--;
active = false;
}
function InitSign(_arg1:int){
subtype = _arg1;
frame = 0;
}
public function InitEnemyChasePlayerWithAttackFrame(_arg1:Number){
graphicID = objectDef.GetAnimIDFromName("run");
EnemyUpdateFunctionCallback = UpdateEnemy_ChasePlayerWithAttackFrame;
controlMode = 0;
frameVel = 1;
speed = _arg1;
}
function NearPlayer():Boolean{
var _local1:GameObj;
_local1 = Game.goPlayer;
if (Utils.DistBetweenPoints(_local1.xpos, 0, xpos, 0) < 80){
return (true);
};
return (false);
}
function UpdateBullet():void{
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
timer--;
if (timer < 0){
active = false;
};
if (Collision.ObjectFallingSurfaceCollision(this)){
active = false;
};
}
function RenderShellToBackground(){
var _local1:Number;
var _local2:Number;
var _local3:Bitmap;
var _local4:BitmapData;
_local1 = Math.floor(xpos);
_local2 = Math.floor(ypos);
_local3 = GraphicObjects.GetBitmap(Game.goBackground.graphicID, Game.goBackground.frame);
_local4 = _local3.bitmapData;
GraphicObjects.RenderAtRotScaled(graphicID, frame, _local4, _local1, _local2, false, 1, dir);
}
function GetHorizDistToPlayer():Number{
var _local1:GameObj;
var _local2:Number;
_local1 = Game.goPlayer;
_local2 = Utils.DistBetweenPoints(_local1.xpos, 0, xpos, 0);
return (_local2);
}
function InitEnemyBullet(_arg1:GameObj, _arg2:int):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
objectDef = ObjectDefs.GetObjectDefByExportName("EnemyBullet");
updateFunction = UpdateEnemyBullet;
graphicID = GraphicObjects.gfx_bullet2;
parentObj = _arg1;
_local3 = 10;
_local4 = 20;
colFlag_isEnemyBullet = true;
xpos = (_arg1.xpos + _arg1.objectDef.weaponFireOffset.x);
ypos = (_arg1.ypos + _arg1.objectDef.weaponFireOffset.y);
xvel = 5;
if (_arg1.xflip){
xvel = -(xvel);
xpos = (_arg1.xpos - _arg1.objectDef.weaponFireOffset.x);
};
yvel = 0;
timer = 200;
_local5 = Math.atan2(0, xvel);
movementVec = new Vec();
movementVec.Set(_local5, 5);
}
public function CycleAnimation():void{
var _local1:Number;
var _local2:int;
_local1 = frameVel;
_local2 = GraphicObjects.GetNumFrames(graphicID);
frame = (frame + _local1);
if (frame >= _local2){
frame = (frame - _local2);
};
if (frame < 0){
frame = (frame + _local2);
};
}
public function PlayAnimationEx():Boolean{
var _local1:Boolean;
var _local2:*;
_local1 = false;
frame = (frame + frameVel);
_local2 = (maxFrame - minFrame);
if (frame > maxFrame){
if (frame > maxFrame){
frame = maxFrame;
_local1 = true;
};
};
if (frame < minFrame){
frame = minFrame;
_local1 = true;
};
return (_local1);
}
function FaceTowardsXvel():void{
xflip = true;
if (xvel >= 0){
xflip = false;
};
}
function Anim_FromVel():void{
var _local1:int;
var _local2:Number;
var _local3:Number;
var _local4:*;
_local1 = GraphicObjects.GetNumFrames(graphicID);
_local2 = xvel;
_local3 = yvel;
_local4 = Math.atan2(_local3, _local2);
frame = ((_local1 / (Math.PI * 2)) * -(_local4));
if (frame < 0){
frame = (frame + _local1);
};
if (frame > _local1){
frame = (frame - _local1);
};
frame = (frame + (_local1 / 2));
if (frame > _local1){
frame = (frame - _local1);
};
}
function UpdateEnemyBomb():void{
UpdateGravity();
xpos = (xpos + xvel);
if (Collision.ObjectFallingSurfaceCollision(this)){
Game.InitExplosion(xpos, ypos, 0);
Collision.PlayerBombCollision(this, 100);
active = false;
};
if (TestOffMapX(50)){
active = false;
};
if (TestOffMapBottom(50)){
active = false;
};
}
function Boss4GetWeaponAng(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
boss4_shootAtAng = (Utils.RandBetweenFloat(-0.8, 0.8) + (Math.PI * 0.5));
boss4_shootingFrame = 0;
_local1 = (xpos + Utils.RandBetweenFloat(-300, 300));
_local2 = Collision.FindHighestFloorPos(_local1);
if (_local2 > 9999){
_local2 = (ypos + 40);
};
_local3 = xpos;
_local4 = ypos;
_local4 = (_local4 - 150);
if (xflip == true){
_local3 = (_local3 + 50);
} else {
_local3 = (_local3 - 50);
};
_local5 = (_local1 - _local3);
_local6 = (_local2 - _local4);
boss4_shootAtAng = Math.atan2(_local6, _local5);
Collision.PlayerBombCollision(this, 200);
Game.InitExplosion(_local1, _local2, 0);
}
function RenderParallax(){
var _local1:Number;
var _local2:Number;
var _local3:int;
var _local4:*;
_local1 = Math.floor(xpos);
_local2 = Math.floor(ypos);
_local1 = (_local1 + xoffset);
_local2 = (_local2 + yoffset);
_local3 = GraphicObjects.GetWidth(graphicID, frame);
_local3 = (_local3 - 4);
_local4 = 0;
while (_local4 < parallaxNumRepats) {
GraphicObjects.RenderAt(graphicID, frame, main.screenBD, _local1, _local2);
_local1 = (_local1 + _local3);
_local4++;
};
}
function UpdateSwitch(){
}
function TestOffMapX(_arg1:Number):Boolean{
if (xpos < (0 - _arg1)){
return (true);
};
if (xpos > (Game.scrollW + _arg1)){
return (true);
};
return (false);
}
function RenderEnemy(){
RenderNormally();
RenderHealthBar();
}
function RenderBackground(){
var _local1:Number;
var _local2:Number;
_local1 = Math.floor(xpos);
_local2 = Math.floor(ypos);
_local1 = (_local1 + Game.scrollXoff);
_local2 = (_local2 + Game.scrollYoff);
GraphicObjects.RenderAt(graphicID, frame, main.screenBD, _local1, _local2);
}
function InitSidekick():void{
}
public function JumpedOnBouncyPad(_arg1:GameObj){
}
function UpdateEnemy_BirdWithSwoop(){
var _local1:GameObj;
_local1 = Game.goPlayer;
UpdateEnemy_GetVels();
xvel = enemy_maxvel;
if (direction == false){
xvel = (xvel * -1);
};
xflip = (direction == false);
if (controlMode == 0){
colFlag_killPlayer = true;
toPosY = (_local1.ypos - 220);
xpos = (xpos + xvel);
ypos = (ypos + ((toPosY - ypos) * 0.03));
if (GetHorizDistToPlayer() < 180){
graphicID = objectDef.GetAnimIDFromName("attack");
yvel = 6;
controlMode = 1;
frame = 0;
};
CycleAnimation();
};
if (controlMode == 1){
colFlag_killPlayer = true;
yvel = (yvel + -0.1);
ypos = (ypos + yvel);
xpos = (xpos + xvel);
PlayAnimation();
};
}
function WeaponFunction_HitPlayerWhenNear(){
if (weaponControlMode == 0){
colFlag_killPlayer = false;
if (NearPlayer()){
weaponFrame = 0;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
weaponControlMode = 1;
};
} else {
if (weaponControlMode == 1){
colFlag_killPlayer = true;
weaponFrameVel = 1;
if (WeaponPlayAnimation()){
weaponFrame = 0;
weaponGraphicID = objectDef.GetAnimIDFromName("weapon_hit");
weaponControlMode = 0;
};
};
};
}
public function EnemyJumpedOn():void{
}
function SetAnim(_arg1:int){
var _local2:int;
graphicID = _arg1;
_local2 = (GraphicObjects.GetNumFrames(graphicID) - 1);
if (frame >= _local2){
frame = 0;
};
}
public function InitBloodSplat(_arg1:Boolean){
xflip = _arg1;
updateFunction = UpdateBloodSplat;
graphicID = Utils.RandBetweenInt(GraphicObjects.gfx_bloodspray1, GraphicObjects.gfx_enemy_blood3);
frame = 0;
frameVel = 1;
}
function SignPressed(){
Game.ShowSign(subtype);
}
function UpdateEnemy_DropToLine(){
var _local1:int;
ypos = (ypos - 10);
_local1 = 0;
while (_local1 < 50) {
UpdateGravity();
if (Collision.ObjectFallingSurfaceCollision(this)){
return;
};
_local1++;
};
trace("UpdateEnemy_DropToLine - Not found");
}
function FlipFlagFromXvel(){
xflip = false;
if (xvel < 0){
xflip = true;
};
}
function UpdateExit(){
if (controlMode == 1){
timer--;
if (timer < 0){
controlMode = 0;
colFlag_isExit = true;
};
};
}
public function GetObjectDef():ObjectDef{
return (objectDef);
}
public function Render():void{
if (visible == false){
return;
};
if (renderFunction != null){
renderFunction();
} else {
RenderNormally();
};
RenderBlockCollision();
RenderWallCollision();
}
public function UpdateParallax(){
xpos = (Game.goBackground.xpos * speed);
ypos = (Game.goBackground.ypos * speed);
ypos = 0;
}
public function InitPlatform(_arg1:String, _arg2:String, _arg3:Number){
subtype = 0;
if (_arg2 == "Path_Linear"){
subtype = 0;
platformSpeed = _arg3;
if (platformSpeed == 0){
trace("ERROR: Platform speed is 0");
};
};
if (_arg2 == "Path_Smooth"){
subtype = 1;
platformSpeed = _arg3;
};
updateFunction = UpdatePlatform;
movementVec = new Vec();
colFlag_isPlatform = true;
objectDef = ObjectDefs.GetObjectDefByExportName(_arg1);
graphicID = objectDef.GetAnimIDFromName("idle");
trace(((((("initing platform " + objectDef.exportName) + " animID:") + graphicID) + " pathmode:") + _arg2));
currentPathNode = 0;
currentPoly = Collision.FindNearestPathStartPointToPos(xpos, ypos);
controlMode = 0;
timer = 100;
}
public function InitPickup(){
objectDef = ObjectDefs.GetObjectDefByExportName("Pickup");
updateFunction = UpdatePickup;
subtype = Game.nextPickup;
Game.nextPickup++;
if (Game.nextPickup >= 3){
Game.nextPickup = 0;
};
graphicID = (GraphicObjects.gfx_pickup_ammo + subtype);
frame = 0;
yvel = -3;
xvel = Utils.RandBetweenFloat(-2, 2);
frameVel = 1;
controlMode = 0;
colFlag_canBePickedUp = true;
visible = true;
}
function InitEnemy_Boss1Bomb(_arg1:GameObj):void{
objectDef = ObjectDefs.GetObjectDefByExportName("EnemyBomb");
graphicID = GraphicObjects.gfx_bullet1;
frame = 0;
xpos = (_arg1.xpos + 10);
ypos = (_arg1.ypos - 96);
xvel = Utils.RandBetweenFloat(6, 12);
if (_arg1.xflip){
xvel = -(xvel);
xpos = (_arg1.xpos - 10);
};
yvel = -(Utils.RandBetweenFloat(4, 12));
updateFunction = UpdateEnemy_Boss1Bomb;
controlMode = 0;
}
public function WeaponPlayAnimation():Boolean{
var _local1:int;
_local1 = (GraphicObjects.GetNumFrames(weaponGraphicID) - 1);
weaponFrame = (weaponFrame + weaponFrameVel);
if (weaponFrame >= _local1){
weaponFrame = _local1;
return (true);
};
return (false);
}
function UpdateEnemy_ChasePlayerWithBomb(){
colFlag_killPlayer = false;
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 20){
yvel = Utils.RandBetweenFloat(-6, -12);
controlMode = 2;
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 10)))){
shimmyTimer = Utils.RandBetweenInt(20, 40);
};
};
if (GetHorizDistToPlayer() < 30){
controlMode = 3;
graphicID = objectDef.GetAnimIDFromName("attack");
frame = 0;
};
CycleAnimation();
};
if (controlMode == 4){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (PlayAnimation()){
RemoveEnemy();
};
};
if (controlMode == 3){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (PlayAnimation()){
RemoveEnemy();
};
if (frame > 10){
Collision.PlayerBombCollision(this, 100);
SoundPlayer.Play(SoundPlayer.SOUND_EXPLOSION01);
controlMode = 4;
};
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
}
function TestOffMapBottom(_arg1:Number):Boolean{
if (ypos > (Game.scrollH + _arg1)){
return (true);
};
return (false);
}
public function InitExplosion(_arg1:int){
frame = 0;
frameVel = 1;
graphicID = GraphicObjects.gfx_explosion01;
if (_arg1 == 1){
graphicID = GraphicObjects.gfx_explosion02;
};
updateFunction = UpdateExplosion;
}
function RenderCheckpoint(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = Math.floor(Game.scrollX);
_local2 = Math.floor(Game.scrollY);
_local3 = (Math.floor(xpos) - _local1);
_local4 = (Math.floor(ypos) - _local2);
_local4 = (_local4 - 130);
GraphicObjects.RenderAt(graphicID1, frame1, main.screenBD, _local3, _local4);
RenderNormally();
}
function UpdateEnemy_ChasePlayerAndShoot(){
UpdateEnemy_GetVels();
if (controlMode == 0){
UpdateEnemy_DropToLine();
controlMode = 1;
weaponControlMode = 0;
};
if (controlMode == 1){
Enemy_UpdateVels();
Collision.ObjectOnLineCollision(this);
FaceTowardsXvel();
if (Utils.RandBetweenInt(0, 1000) < 20){
yvel = Utils.RandBetweenFloat(-6, -12);
controlMode = 2;
} else {
if ((((shimmyTimer == 0)) && ((Utils.RandBetweenInt(0, 1000) < 10)))){
shimmyTimer = Utils.RandBetweenInt(20, 40);
};
};
if (GetHorizDistToPlayer() < 250){
if (Utils.RandBetweenInt(0, 1000) < 40){
controlMode = 3;
graphicID = objectDef.GetAnimIDFromName("idle");
weaponControlMode = 1;
frame = 0;
};
};
CycleAnimation();
};
if (controlMode == 3){
Enemy_UpdateVels_Stopping();
Collision.ObjectOnLineCollision(this);
FaceTowardsPlayer();
if (GetHorizDistToPlayer() > 300){
controlMode = 0;
graphicID = objectDef.GetAnimIDFromName("run");
weaponControlMode = 0;
frame = 0;
};
CycleAnimation();
};
if (controlMode == 2){
Enemy_UpdateVels();
UpdateGravity();
FaceTowardsPlayer();
if (Collision.ObjectFallingSurfaceCollision(this)){
controlMode = 1;
};
CycleAnimation();
};
}
function RenderLaserSight(){
var _local1:WeaponDef;
var _local2:*;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Matrix;
var _local13:Point;
var _local14:int;
_local1 = WeaponDefs.GetWeaponDef(currentWeapon);
if (_local1.GetExtraUpgrade() != WeaponDefs.extra_m16){
return;
};
_local2 = GraphicObjects.gfx_bullet_lasersight;
_local3 = xpos;
_local4 = (ypos + playerWeaponYoffset);
_local5 = ((MouseControl.mousePosX + Game.scrollX) - Game.scrollXoff);
_local6 = ((MouseControl.mousePosY + Game.scrollY) - Game.scrollYoff);
_local7 = Math.atan2((_local6 - _local4), (_local5 - _local3));
_local8 = (Math.cos(_local7) * 50);
_local9 = (Math.sin(_local7) * 50);
_local10 = _local1.fireOffsetX;
_local11 = _local1.fireOffsetY;
_local12 = new Matrix();
_local12.rotate(_local7);
_local13 = new Point(_local10, _local11);
_local13 = _local12.transformPoint(_local13);
_local10 = _local13.x;
_local11 = _local13.y;
_local10 = (_local10 + _local3);
_local11 = (_local11 + _local4);
_local10 = (_local10 - (Game.scrollX - Game.scrollXoff));
_local11 = (_local11 - (Game.scrollY - Game.scrollYoff));
_local14 = 0;
while (_local14 < 10) {
GraphicObjects.RenderAtRotScaled(_local2, 0, main.screenBD, _local10, _local11, false, 1, _local7);
_local10 = (_local10 + _local8);
_local11 = (_local11 + _local9);
_local14++;
};
}
function UpdateEnemy_AddExternalVels(){
xpos = (xpos + movementVec.GetXComponent());
ypos = (ypos + movementVec.GetYComponent());
movementVec.speed = (movementVec.speed * 0.9);
}
public function PlayerHitPickup(_arg1:GameObj){
var _local2:WeaponDef;
var _local3:int;
_local2 = WeaponDefs.GetWeaponDef(currentWeapon);
Game.AddScore(_arg1.objectDef.score);
SoundPlayer.Play(SoundPlayer.SOUND_PICKUP);
if (_arg1.subtype == 0){
Game.ammo = (Game.ammo + Game.ammoPerPickup);
};
if (_arg1.subtype == 1){
Game.playerHealth = (Game.playerHealth + (objectDef.maxHealth * 0.1));
if (Game.playerHealth > objectDef.maxHealth){
Game.playerHealth = objectDef.maxHealth;
};
};
if (_arg1.subtype == 2){
_local3 = (300 + (Game.currentLevel * 20));
Game.currentCash = (Game.currentCash + _local3);
Game.totalCash = (Game.totalCash + _local3);
};
_arg1.controlMode = 2;
_arg1.graphicID = (GraphicObjects.gfx_pickup_ammogot + _arg1.subtype);
_arg1.frame = 0;
_arg1.colFlag_canBePickedUp = false;
}
public function GetVelFromDir(_arg1:Number){
xvel = (Math.cos(dir) * _arg1);
yvel = (Math.sin(dir) * _arg1);
}
}
}//package
Section 114
//GameObjects (GameObjects)
package {
import flash.events.*;
class GameObjects {
public static var numobjs;
static var m:Main;
public static var zorder:Array;
public static var objs:Array;
public function GameObjGroup(){
}
public static function Update():void{
var _local1:int;
_local1 = 0;
while (_local1 < objs.length) {
if (objs[_local1].active == true){
objs[_local1].Update();
};
_local1++;
};
}
public static function ForEachActive(_arg1:Function):void{
var _local2:GameObj;
var _local3:Array;
_local3 = new Array();
for each (_local2 in objs) {
if (_local2.active){
_arg1(_local2);
};
};
}
public static function InitOnce(_arg1:Main, _arg2:int){
var _local3:*;
numobjs = _arg2;
m = _arg1;
objs = new Array();
zorder = new Array(numobjs);
_local3 = 0;
while (_local3 < numobjs) {
objs.push(new GameObj(m, 0, 0));
_local3++;
};
}
public static function ClearAll(){
var _local1:int;
_local1 = 0;
while (_local1 < numobjs) {
objs[_local1].active = false;
_local1++;
};
}
public static function AddObj(_arg1:Number, _arg2:Number, _arg3:Number):GameObj{
var _local4:int;
var _local5:GameObj;
_local4 = 0;
while (_local4 < numobjs) {
if (objs[_local4].active == false){
_local5 = objs[_local4];
_local5.active = true;
_local5.zpos = _arg3;
_local5.xpos = _arg1;
_local5.ypos = _arg2;
_local5.startx = _arg1;
_local5.starty = _arg2;
_local5.startz = _arg3;
_local5.Init(0);
return (objs[_local4]);
};
_local4++;
};
trace("ERROR! NO FREE OBJECTS");
return (null);
}
public static function Render():void{
var _local1:GameObj;
var _local2:Array;
_local2 = new Array();
for each (_local1 in objs) {
if (((_local1.active) && (_local1.visible))){
_local2.push(_local1);
};
};
_local2.sortOn("zpos", (Array.NUMERIC | Array.DESCENDING));
for each (_local1 in _local2) {
_local1.Render();
};
}
}
}//package
Section 115
//GameOver (GameOver)
package {
import flash.display.*;
import flash.text.*;
public dynamic class GameOver extends MovieClip {
public var restartButton:buttonRestart;
public var q01:buttonQuestionMark;
public var q02:buttonQuestionMark;
public var q03:buttonQuestionMark;
public var q04:buttonQuestionMark;
public var q05:buttonQuestionMark;
public var q06:buttonQuestionMark;
public var q07:buttonQuestionMark;
public var q08:buttonQuestionMark;
public var q10:buttonQuestionMark;
public var q12:buttonQuestionMark;
public var q17:buttonQuestionMark;
public var q18:buttonQuestionMark;
public var q19:buttonQuestionMark;
public var q14:buttonQuestionMark;
public var q16:buttonQuestionMark;
public var q11:buttonQuestionMark;
public var q13:buttonQuestionMark;
public var q09:buttonQuestionMark;
public var q15:buttonQuestionMark;
public var buttonKong:SimpleButton;
public var textDescription:TextField;
public var textCashEarned:TextField;
public var buttonContinueKongregate:SimpleButton;
public var textNumKills:TextField;
public var buttonMoreGames:SimpleButton;
public var enemy01:SimpleButton;
public var enemy02:SimpleButton;
public var enemy03:SimpleButton;
public var enemy06:SimpleButton;
public var enemy07:SimpleButton;
public var enemy08:SimpleButton;
public var textBulletsFired:TextField;
public var enemy09:SimpleButton;
public var enemy04:SimpleButton;
public var enemy05:SimpleButton;
public var enemy10:SimpleButton;
public var enemy11:SimpleButton;
public var enemy12:SimpleButton;
public var enemy13:SimpleButton;
public var enemy15:SimpleButton;
public var enemy16:SimpleButton;
public var enemy18:SimpleButton;
public var enemy19:SimpleButton;
public var enemy14:SimpleButton;
public var enemy17:SimpleButton;
public var textFinalScore:TextField;
public var textLastLevel:TextField;
public var buttonContinue:SimpleButton;
}
}//package
Section 116
//GetReadyText (GetReadyText)
package {
import flash.display.*;
public dynamic class GetReadyText extends MovieClip {
}
}//package
Section 117
//GraphicObjects (GraphicObjects)
package {
import flash.display.*;
import flash.text.*;
public class GraphicObjects {
public static const gfx_enemy8_run = 81;
public static const gfx_enemy19_idle = 190;
public static const gfx_enemy2_weapon = 22;
public static const gfx_player_weapon8_shell = 248;
public static const gfx_explosion01 = 205;
public static const gfx_explosion02 = 206;
public static const gfx_level5_parallax0 = 442;
public static const gfx_enemy12_death = 123;
public static const gfx_player_weapon5_shoot = 235;
public static const gfx_enemy3_idle = 30;
public static const gfx_weapon_uzi_shoot = 332;
public static const gfx_enemy8_death = 83;
public static const gfx_enemy16_idle = 160;
public static const gfx_enemy10_run = 101;
public static const gfx_enemy14_run = 141;
public static const gfx_enemy18_weapon = 182;
public static const gfx_enemy18_run = 181;
public static const gfx_player_weapon5_shell = 245;
public static const gfx_player_weapon6_idle = 226;
public static const gfx_enemy11_attack = 112;
public static const gfx_level1_background = 400;
public static const gfx_weapon_ak47_shoot = 333;
public static const gfx_enemy13_idle = 130;
public static const gfx_enemy9_attack = 92;
public static const gfx_player_weapon3_idle = 223;
public static const gfx_level4_background = 430;
public static const gfx_enemy17_death = 173;
public static const gfx_player_weapon2_shoot = 232;
public static const gfx_enemy7_weapon = 72;
public static const gfx_enemy5_death = 53;
public static const gfx_player_run_backwards = 212;
public static const gfx_player_weapon2_shell = 242;
public static const gfx_enemy10_idle = 100;
public static const gfx_bullet_penguin = 203;
public static const gfx_level3_parallax0 = 422;
public static const gfx_player_weapon0_idle = 220;
public static const gfx_enemy3_run = 31;
public static const gfx_enemy7_run = 71;
public static const gfx_bullet_rocket = 202;
public static const gfx_level7_background = 460;
public static const gfx_weapon_m16_shoot = 335;
public static const gfx_bullet_grenade = 207;
public static const gfx_enemy14_death = 143;
public static const gfx_enemy7_idle = 70;
public static const gfx_player_weapon7_shoot = 237;
public static const gfx_enemy2_death = 23;
public static const gfx_enemy16_attack = 162;
public static const gfx_enemy5_weapon = 52;
public static const gfx_bullet1 = 200;
public static const gfx_bullet2 = 201;
public static const gfx_player_idle = 210;
public static const gfx_player_die = 213;
public static const gfx_enemy13_run = 131;
public static const gfx_player_run = 211;
public static const gfx_enemy17_run = 171;
public static const gfx_player_weapon7_shell = 247;
public static const gfx_enemy4_idle = 40;
public static const gfx_pickup_healthgot = 324;
public static const gfx_weapon_shotgun_shoot = 334;
public static const gfx_enemy19_bolt = 194;
public static const gfx_enemy17_idle = 170;
public static const gfx_enemy11_death = 113;
public static const gfx_weapon_pistol_shoot = 330;
public static const gfx_cursor = 312;
public static const gfx_enemy19_death = 193;
public static const gfx_player_weapon4_shoot = 234;
public static const gfx_particle_weapon0 = 195;
public static const gfx_enemy14_attack = 142;
public static const gfx_enemy1_idle = 10;
public static const gfx_player_weapon7_idle = 227;
public static const gfx_particle_weapon1 = 196;
public static const gfx_level1_parallax0 = 402;
public static const gfx_enemy14_idle = 140;
public static const gfx_level1_parallax2 = 404;
public static const gfx_enemy3_weapon = 32;
public static const gfx_pickup_ammo = 320;
public static const gfx_player_weapon4_idle = 224;
public static const gfx_enemy12_weapon = 122;
public static const gfx_enemy7_death = 73;
public static const gfx_enemy2_run = 21;
public static const gfx_level1_parallax1 = 403;
public static const gfx_level3_background = 420;
public static const gfx_enemy6_run = 61;
public static const gfx_player_weapon4_shell = 244;
public static const gfx_enemy11_idle = 110;
public static const gfx_weapon_gatling_shoot = 337;
public static const gfx_enemy_blood1 = 304;
public static const gfx_player_jump = 214;
public static const gfx_player_weapon1_idle = 221;
public static const gfx_enemy19_weapon = 192;
public static const gfx_enemy16_death = 163;
public static const gfx_player_weapon1_shoot = 231;
public static const gfx_weapon_rocketlauncher_shoot = 336;
public static const gfx_enemy_blood3 = 306;
public static const gfx_enemy4_death = 43;
public static const gfx_overlay_getready = 310;
public static const gfx_enemy1_weapon = 12;
public static const gfx_enemy_blood2 = 305;
public static const gfx_enemy12_run = 121;
public static const gfx_player_weapon1_shell = 241;
public static const gfx_level6_background = 450;
public static const gfx_pickup_health = 321;
public static const gfx_enemy10_weapon = 102;
public static const gfx_enemy8_idle = 80;
public static const gfx_enemy16_run = 161;
public static const gfx_enemy8_weapon = 82;
public static const gfx_pickup_cashgot = 325;
public static const gfx_enemy17_weapon = 172;
public static const gfx_enemy13_death = 133;
public static const gfx_pickup_cash = 322;
public static const gfx_player_weapon6_shoot = 236;
public static const gfx_enemy1_death = 13;
public static const gfx_enemy5_idle = 50;
public static const gfx_enemy18_idle = 180;
public static const gfx_enemy9_death = 93;
public static const gfx_particle_snowflake = 197;
public static const gfx_weapon_desertEagle_shoot = 331;
public static const gfx_player_weapon8_idle = 228;
public static const gfx_player_weapon6_shell = 246;
public static const gfx_enemy1_run = 11;
public static const gfx_font1 = 190;
public static const gfx_font2 = 191;
public static const gfx_font3 = 192;
public static const gfx_enemy5_run = 51;
public static const gfx_enemy2_idle = 20;
public static const gfx_weapon_chainsaw = 338;
public static const gfx_enemy6_weapon = 62;
public static const gfx_enemy9_run = 91;
public static const gfx_enemy15_idle = 150;
public static const gfx_enemy10_death = 103;
public static const gfx_player_weapon5_idle = 225;
public static const gfx_enemy18_death = 183;
public static const gfx_player_weapon3_shoot = 233;
public static const gfx_parallax = 280;
public static const gfx_level2_background = 410;
public static const gfx_enemy6_death = 63;
public static const gfx_enemy11_run = 111;
public static const gfx_level2_parallax1 = 413;
public static const gfx_enemy12_idle = 120;
public static const gfx_enemy15_run = 151;
public static const gfx_player_weapon3_shell = 243;
public static const gfx_player_weapon2_idle = 222;
public static const gfx_enemy15_attack = 152;
public static const gfx_enemy19_run = 191;
public static const gfx_level2_parallax0 = 412;
public static const gfx_bullet_lasersight = 204;
public static const gfx_fontblack = 193;
public static const gfx_level5_foreground = 441;
public static const gfx_pickup_ammogot = 323;
public static const gfx_enemy13_weapon = 132;
public static const gfx_bloodspray1 = 300;
public static const gfx_bloodspray2 = 301;
public static const gfx_enemy9_idle = 90;
public static const gfx_bloodspray3 = 302;
public static const gfx_enemy15_death = 153;
public static const gfx_player_weapon8_shoot = 238;
public static const gfx_enemy3_death = 33;
public static const gfx_player_weapon0_shoot = 230;
public static const gfx_level5_background = 440;
public static const gfx_overlay_finishthemoff = 311;
public static const gfx_bloodspray4 = 303;
public static const gfx_player_weapon0_shell = 240;
public static const gfx_enemy4_attack = 44;
public static const gfx_level5_parallax1 = 443;
public static const gfx_enemy4_run = 41;
public static const gfx_enemy6_idle = 60;
public static var stringCharX:Number;
static var idList:Array;
public static var stringCharY:Number;
static var count:int;
public static var stringCharBitmap:Bitmap;
static var graphicobjs:Array;
static var main:Main;
public static function RenderStringAt(_arg1:BitmapData, _arg2:int, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Object){
var _local7:int;
var _local8:int;
stringCharX = _arg3;
stringCharY = _arg4;
_local7 = 0;
while (_local7 < _arg5.length) {
_local8 = int(_arg5.charCodeAt(_local7));
if (_local8 < 0){
_local8 = 0;
};
if (_local8 > 127){
_local8 = 127;
};
RenderAt(gfx_fontblack, _local8, _arg1, stringCharX, stringCharY);
RenderAt(_arg2, _local8, _arg1, stringCharX, stringCharY);
stringCharBitmap = GetBitmap(_arg2, _local8);
if (_arg6 != null){
_arg6();
} else {
stringCharX = (stringCharX + stringCharBitmap.width);
};
_local7++;
};
}
public static function GetBitmap(_arg1:int, _arg2:int):Bitmap{
var _local3:int;
_local3 = idList[_arg1];
graphicobjs[_local3].AddIfDeferred();
return (graphicobjs[_local3].frames[_arg2].bitmaps[0]);
}
public static function GetWidth(_arg1:int, _arg2:int):int{
var _local3:int;
_local3 = idList[_arg1];
graphicobjs[_local3].AddIfDeferred();
return (graphicobjs[_local3].frames[_arg2].bitmaps[0].width);
}
public static function RenderAtSplit(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number){
var _local6:int;
_local6 = idList[_arg1];
graphicobjs[_local6].frames[_arg2].RenderAtSplit(_arg3, _arg4, _arg5);
}
public static function RenderAtScaled(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number, _arg6:Boolean=false, _arg7:Number=1){
var _local8:int;
_local8 = idList[_arg1];
graphicobjs[_local8].AddIfDeferred();
graphicobjs[_local8].frames[_arg2].RenderAtScaled(_arg3, _arg4, _arg5, _arg6, _arg7);
}
public static function AddFont(_arg1:int, _arg2:TextFormat):void{
var _local3:DisplayObj;
_local3 = new DisplayObj(null, 0, 0);
_local3.CreateFont(_arg2);
idList[_arg1] = count;
graphicobjs.push(_local3);
count++;
}
public static function GetHeught(_arg1:int, _arg2:int):int{
var _local3:int;
_local3 = idList[_arg1];
graphicobjs[_local3].AddIfDeferred();
return (graphicobjs[_local3].frames[_arg2].bitmaps[0].height);
}
public static function RenderAtAlpha(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number, _arg6:Number){
var _local7:int;
_local7 = idList[_arg1];
graphicobjs[_local7].AddIfDeferred();
graphicobjs[_local7].frames[_arg2].RenderAtAlpha(_arg3, _arg4, _arg5, _arg6);
}
public static function RenderAt(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number, _arg6:Boolean=false){
var _local7:int;
_local7 = idList[_arg1];
graphicobjs[_local7].AddIfDeferred();
graphicobjs[_local7].frames[_arg2].RenderAt(_arg3, _arg4, _arg5, _arg6);
}
public static function RenderAtRotScaled(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number, _arg6:Boolean=false, _arg7:Number=1, _arg8:Number=0){
var _local9:int;
_local9 = idList[_arg1];
graphicobjs[_local9].AddIfDeferred();
graphicobjs[_local9].frames[_arg2].RenderAtRotScaled(_arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public static function Add(_arg1:int, _arg2:DisplayObj):void{
idList[_arg1] = count;
graphicobjs.push(_arg2);
count++;
}
public static function GetNumFrames(_arg1:int):int{
var _local2:int;
_local2 = idList[_arg1];
graphicobjs[_local2].AddIfDeferred();
return (graphicobjs[_local2].frames.length);
}
public static function GetPixelAt(_arg1:int, _arg2:int, _arg3:int, _arg4:int):uint{
var _local5:int;
var _local6:Bitmap;
var _local7:uint;
_local5 = idList[_arg1];
_local6 = graphicobjs[_local5].frames[_arg2].bitmaps[0];
_local7 = _local6.bitmapData.getPixel32(_arg3, _arg4);
return (_local7);
}
public static function RenderAtAdditive(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:Number, _arg5:Number, _arg6:Number){
var _local7:int;
_local7 = idList[_arg1];
graphicobjs[_local7].AddIfDeferred();
graphicobjs[_local7].frames[_arg2].RenderAtAdditive(_arg3, _arg4, _arg5, _arg6);
}
public static function RenderNumberAt(_arg1:BitmapData, _arg2:int, _arg3:Number, _arg4:Number, _arg5:int){
var _local6:Array;
var _local7:int;
var _local8:int;
var _local9:Boolean;
var _local10:int;
var _local11:int;
var _local12:Bitmap;
_local6 = new Array();
_local7 = _arg5;
_local8 = 0;
while (_local8 < 11) {
_local10 = (_local7 % 10);
_local6.push(_local10);
_local7 = (_local7 / 10);
_local8++;
};
_local9 = false;
_local8 = (_local6.length - 1);
while (_local8--) {
_local11 = _local6[_local8];
if ((((_local9 == false)) && (!((_local11 == 0))))){
_local9 = true;
};
if (_local9){
RenderAt(_arg2, (_local11 + 48), _arg1, _arg3, _arg4);
_local12 = GetBitmap(_arg2, (_local11 + 48));
_arg3 = (_arg3 + _local12.width);
};
(_local8 >= 0);
};
return (_arg3);
}
public static function InitOnce(_arg1:Main):void{
main = _arg1;
graphicobjs = new Array();
idList = new Array(500);
count = 0;
AddFont(gfx_font1, main.tf_scorespr);
AddFont(gfx_fontblack, main.tf_scoresprblack);
Add(gfx_weapon_ak47_shoot, new DisplayObj(new weapon_ak47_shoot(), 1, 0));
Add(gfx_weapon_desertEagle_shoot, new DisplayObj(new weapon_desertEagle_shoot(), 1, 0));
Add(gfx_weapon_gatling_shoot, new DisplayObj(new weapon_gatling_shoot(), 1, 0));
Add(gfx_weapon_m16_shoot, new DisplayObj(new weapon_m16_shoot(), 1, 0));
Add(gfx_weapon_pistol_shoot, new DisplayObj(new weapon_pistol_shoot(), 1, 0));
Add(gfx_weapon_shotgun_shoot, new DisplayObj(new weapon_shotgun_shoot(), 1, 0));
Add(gfx_weapon_uzi_shoot, new DisplayObj(new weapon_uzi_shoot(), 1, 0));
Add(gfx_weapon_rocketlauncher_shoot, new DisplayObj(new weapon_pistol_shoot(), 1, 0));
Add(gfx_weapon_chainsaw, new DisplayObj(new weapon_pistol_shoot(), 1, 0));
Add(gfx_particle_snowflake, new DisplayObj(new Particle_Snowflake(), 1, 0));
Add(gfx_level1_parallax0, new DisplayObj(new Level1_Parallax0(), 1, 0));
Add(gfx_level1_parallax1, new DisplayObj(new Level1_Parallax1(), 1, 0));
Add(gfx_level1_parallax2, new DisplayObj(new Level1_Parallax2(), 1, 0));
Add(gfx_level2_parallax0, new DisplayObj(new Level2_Parallax0(), 1, 0));
Add(gfx_level2_parallax1, new DisplayObj(new Level2_Parallax1(), 1, 0));
Add(gfx_level3_parallax0, new DisplayObj(new Level3_Parallax0(), 1, 0));
Add(gfx_level5_parallax0, new DisplayObj(new Level5_Parallax0(), 1, 0));
Add(gfx_level5_parallax1, new DisplayObj(new Level5_Parallax1(), 1, 0));
Add(gfx_bloodspray1, new DisplayObj(new bloodSpray1(), 1, 2));
Add(gfx_bloodspray2, new DisplayObj(new bloodSpray2(), 1, 2));
Add(gfx_bloodspray3, new DisplayObj(new bloodSpray3(), 1, 2));
Add(gfx_bloodspray4, new DisplayObj(new bloodSpray4(), 1, 2));
Add(gfx_enemy_blood1, new DisplayObj(new enemy_blood1(), 1, 2));
Add(gfx_enemy_blood2, new DisplayObj(new enemy_blood2(), 1, 2));
Add(gfx_enemy_blood3, new DisplayObj(new enemy_blood3(), 1, 2));
Add(gfx_overlay_getready, new DisplayObj(new GetReadyText(), 1, 0));
Add(gfx_overlay_finishthemoff, new DisplayObj(new FinishThemOffText(), 1, 0));
Add(gfx_cursor, new DisplayObj(new cursor(), 1, 0));
Add(gfx_pickup_ammo, new DisplayObj(new pickups_ammo_idle(), 1, 2));
Add(gfx_pickup_health, new DisplayObj(new pickups_health_idle(), 1, 2));
Add(gfx_pickup_cash, new DisplayObj(new pickups_cash_idle(), 1, 2));
Add(gfx_pickup_ammogot, new DisplayObj(new pickups_ammo_got(), 1, 2));
Add(gfx_pickup_healthgot, new DisplayObj(new pickups_health_got(), 1, 2));
Add(gfx_pickup_cashgot, new DisplayObj(new pickups_cash_got(), 1, 2));
Add(gfx_player_idle, new DisplayObj(new penguin_idle(), 1, 2));
Add(gfx_player_run, new DisplayObj(new penguin_run(), 1, 2));
Add(gfx_player_die, new DisplayObj(new player_die(), 1, 2));
Add(gfx_player_run_backwards, new DisplayObj(new penguin_runbackwards(), 1, 2));
Add(gfx_player_jump, new DisplayObj(new penguin_jump_mc(), 1, 2));
Add(gfx_bullet1, new DisplayObj(new bullet1(), 1, 0));
Add(gfx_bullet2, new DisplayObj(new bullet2(), 1, 0));
Add(gfx_bullet_rocket, new DisplayObj(new weapons_rocketLauncher_rocket(), 1, 2));
Add(gfx_bullet_penguin, new DisplayObj(new weapons_rocketlauncher_penguin(), 1, 2));
Add(gfx_bullet_lasersight, new DisplayObj(new LaserSight(), 1, 2));
Add(gfx_explosion01, new DisplayObj(new BigExplosion1(), 1, 0));
Add(gfx_explosion02, new DisplayObj(new BigExplosion2(), 1, 0));
Add(gfx_bullet_grenade, new DisplayObj(new weapons_grenade(), 1, 0));
Add(gfx_player_weapon0_idle, new DisplayObj(new weapons_pistol(), 1, 2));
Add(gfx_player_weapon1_idle, new DisplayObj(new weapons_desertEagle(), 1, 2));
Add(gfx_player_weapon2_idle, new DisplayObj(new weapons_uzi(), 1, 2));
Add(gfx_player_weapon3_idle, new DisplayObj(new weapons_ak(), 1, 2));
Add(gfx_player_weapon4_idle, new DisplayObj(new weapons_shotgun(), 1, 2));
Add(gfx_player_weapon5_idle, new DisplayObj(new weapons_m16(), 1, 2));
Add(gfx_player_weapon6_idle, new DisplayObj(new weapons_rocketlauncher(), 1, 2));
Add(gfx_player_weapon7_idle, new DisplayObj(new weapons_gattling(), 1, 2));
Add(gfx_player_weapon8_idle, new DisplayObj(new weapons_chainsaw(), 1, 2));
Add(gfx_player_weapon0_shoot, new DisplayObj(new weapons_pistol_shoot(), 1, 2));
Add(gfx_player_weapon1_shoot, new DisplayObj(new weapons_desertEagle_shoot(), 1, 2));
Add(gfx_player_weapon2_shoot, new DisplayObj(new weapons_uzi_shoot(), 1, 2));
Add(gfx_player_weapon3_shoot, new DisplayObj(new weapons_ak_shoot(), 1, 2));
Add(gfx_player_weapon4_shoot, new DisplayObj(new weapons_shotgun_shoot(), 1, 2));
Add(gfx_player_weapon5_shoot, new DisplayObj(new weapons_m16_shoot(), 1, 2));
Add(gfx_player_weapon6_shoot, new DisplayObj(new weapons_rocketlauncher_shoot(), 1, 2));
Add(gfx_player_weapon7_shoot, new DisplayObj(new weapons_gattling_shoot(), 1, 2));
Add(gfx_player_weapon8_shoot, new DisplayObj(new weapons_chainsaw(), 1, 2));
Add(gfx_player_weapon0_shell, new DisplayObj(new weapons_pistol_shell(), 1, 0));
Add(gfx_player_weapon1_shell, new DisplayObj(new weapons_pistol_shell(), 1, 0));
Add(gfx_player_weapon2_shell, new DisplayObj(new weapons_uzi_shell(), 1, 0));
Add(gfx_player_weapon3_shell, new DisplayObj(new weapons_ak_shell(), 1, 0));
Add(gfx_player_weapon4_shell, new DisplayObj(new weapons_shotgun_shell(), 1, 0));
Add(gfx_player_weapon5_shell, new DisplayObj(new weapons_m16_shell(), 1, 0));
Add(gfx_player_weapon5_shell, new DisplayObj(new weapons_pistol_shell(), 1, 0));
Add(gfx_player_weapon6_shell, new DisplayObj(new weapons_gattling_shell(), 1, 0));
Add(gfx_player_weapon7_shell, new DisplayObj(new weapons_pistol_shell(), 1, 0));
Add(gfx_player_weapon8_shell, new DisplayObj(new weapons_pistol_shell(), 1, 0));
Add(gfx_enemy1_idle, new DisplayObj(new enemy1_idle(), 1, 2, false));
Add(gfx_enemy1_run, new DisplayObj(new enemy1_run(), 1, 2, false));
Add(gfx_enemy1_weapon, new DisplayObj(new enemy1_weapon(), 1, 2, false));
Add(gfx_enemy1_death, new DisplayObj(new enemy1_death(), 1, 2, false));
Add(gfx_enemy2_idle, new DisplayObj(new enemy2_idle(), 1, 2, false));
Add(gfx_enemy2_run, new DisplayObj(new enemy2_run(), 1, 2, false));
Add(gfx_enemy2_weapon, new DisplayObj(new enemy2_weapon(), 1, 2, false));
Add(gfx_enemy2_death, new DisplayObj(new enemy2_death(), 1, 2, false));
Add(gfx_enemy3_idle, new DisplayObj(new enemy3_idle(), 1, 2, true));
Add(gfx_enemy3_run, new DisplayObj(new enemy3_run(), 1, 2, true));
Add(gfx_enemy3_weapon, new DisplayObj(new enemy3_weapon(), 1, 2, true));
Add(gfx_enemy3_death, new DisplayObj(new enemy3_death(), 1, 2, true));
Add(gfx_enemy4_idle, new DisplayObj(new enemy4_idle(), 1, 2, true));
Add(gfx_enemy4_run, new DisplayObj(new enemy4_run(), 1, 2, true));
Add(gfx_enemy4_attack, new DisplayObj(new enemy4_attack(), 1, 2, true));
Add(gfx_enemy4_death, new DisplayObj(new enemy4_death(), 1, 2, true));
Add(gfx_enemy5_idle, new DisplayObj(new enemy5_idle(), 1, 2, true));
Add(gfx_enemy5_run, new DisplayObj(new enemy5_run(), 1, 2, true));
Add(gfx_enemy5_weapon, new DisplayObj(new enemy5_weapon(), 1, 2, true));
Add(gfx_enemy5_death, new DisplayObj(new enemy5_death(), 1, 2, true));
Add(gfx_enemy6_idle, new DisplayObj(new enemy6_idle(), 1, 2, true));
Add(gfx_enemy6_run, new DisplayObj(new enemy6_run(), 1, 2, true));
Add(gfx_enemy6_weapon, new DisplayObj(new enemy6_weapon(), 1, 2, true));
Add(gfx_enemy6_death, new DisplayObj(new enemy6_death(), 1, 2, true));
Add(gfx_enemy7_idle, new DisplayObj(new enemy7_idle(), 1, 2, true));
Add(gfx_enemy7_run, new DisplayObj(new enemy7_run(), 1, 2, true));
Add(gfx_enemy7_weapon, new DisplayObj(new enemy7_weapon(), 1, 2, true));
Add(gfx_enemy7_death, new DisplayObj(new enemy7_death(), 1, 2, true));
Add(gfx_enemy8_idle, new DisplayObj(new enemy8_idle(), 1, 2, true));
Add(gfx_enemy8_run, new DisplayObj(new enemy8_run(), 1, 2, true));
Add(gfx_enemy8_weapon, new DisplayObj(new enemy8_weapon(), 1, 2, true));
Add(gfx_enemy8_death, new DisplayObj(new enemy8_death(), 1, 2, true));
Add(gfx_enemy9_idle, new DisplayObj(new enemy9_idle(), 1, 2, true));
Add(gfx_enemy9_run, new DisplayObj(new enemy9_run(), 1, 2, true));
Add(gfx_enemy9_attack, new DisplayObj(new enemy9_attack(), 1, 2, true));
Add(gfx_enemy9_death, new DisplayObj(new enemy9_death(), 1, 2, true));
Add(gfx_enemy10_idle, new DisplayObj(new enemy10_idle(), 1, 2, true));
Add(gfx_enemy10_run, new DisplayObj(new enemy10_run(), 1, 2, true));
Add(gfx_enemy10_weapon, new DisplayObj(new enemy10_weapon(), 1, 2, true));
Add(gfx_enemy10_death, new DisplayObj(new enemy10_death(), 1, 2, true));
Add(gfx_enemy11_idle, new DisplayObj(new enemy11_idle(), 1, 2, true));
Add(gfx_enemy11_run, new DisplayObj(new enemy11_run(), 1, 2, true));
Add(gfx_enemy11_attack, new DisplayObj(new enemy11_attack(), 1, 2, true));
Add(gfx_enemy11_death, new DisplayObj(new enemy11_death(), 1, 2, true));
Add(gfx_enemy12_idle, new DisplayObj(new enemy12_idle(), 1, 2, true));
Add(gfx_enemy12_run, new DisplayObj(new enemy12_run(), 1, 2, true));
Add(gfx_enemy12_weapon, new DisplayObj(new enemy12_weapon(), 1, 2, true));
Add(gfx_enemy12_death, new DisplayObj(new enemy12_death(), 1, 2, true));
Add(gfx_enemy13_idle, new DisplayObj(new enemy13_idle(), 1, 2, true));
Add(gfx_enemy13_run, new DisplayObj(new enemy13_run(), 1, 2, true));
Add(gfx_enemy13_weapon, new DisplayObj(new enemy13_weapon(), 1, 2, true));
Add(gfx_enemy13_death, new DisplayObj(new enemy13_death(), 1, 2, true));
Add(gfx_enemy14_idle, new DisplayObj(new enemy14_idle(), 1, 2, true));
Add(gfx_enemy14_run, new DisplayObj(new enemy14_run(), 1, 2, true));
Add(gfx_enemy14_attack, new DisplayObj(new enemy14_attack(), 1, 2, true));
Add(gfx_enemy14_death, new DisplayObj(new enemy14_death(), 1, 2, true));
Add(gfx_enemy15_idle, new DisplayObj(new enemy15_idle(), 1, 2, true));
Add(gfx_enemy15_run, new DisplayObj(new enemy15_run(), 1, 2, true));
Add(gfx_enemy15_attack, new DisplayObj(new enemy15_attack(), 1, 2, true));
Add(gfx_enemy15_death, new DisplayObj(new enemy15_death(), 1, 2, true));
Add(gfx_enemy16_idle, new DisplayObj(new enemy16_idle(), 1, 2, true));
Add(gfx_enemy16_run, new DisplayObj(new enemy16_run(), 1, 2, true));
Add(gfx_enemy16_attack, new DisplayObj(new enemy16_attack(), 1, 2, true));
Add(gfx_enemy16_death, new DisplayObj(new enemy16_death(), 1, 2, true));
Add(gfx_enemy17_idle, new DisplayObj(new enemy17_idle(), 1, 2, true));
Add(gfx_enemy17_run, new DisplayObj(new enemy17_run(), 1, 2, true));
Add(gfx_enemy17_weapon, new DisplayObj(new enemy17_weapon(), 1, 2, true));
Add(gfx_enemy17_death, new DisplayObj(new enemy17_death(), 1, 2, true));
Add(gfx_enemy18_idle, new DisplayObj(new enemy18_idle(), 1, 2, true));
Add(gfx_enemy18_run, new DisplayObj(new enemy18_run(), 1, 2, true));
Add(gfx_enemy18_weapon, new DisplayObj(new enemy18_weapon(), 1, 2, true));
Add(gfx_enemy18_death, new DisplayObj(new enemy18_death(), 1, 2, true));
Add(gfx_enemy19_idle, new DisplayObj(new enemy19_idle(), 1, 2, true));
Add(gfx_enemy19_run, new DisplayObj(new enemy19_run(), 1, 2, true));
Add(gfx_enemy19_weapon, new DisplayObj(new enemy19_weapon(), 1, 2, true));
Add(gfx_enemy19_death, new DisplayObj(new enemy19_death(), 1, 2, true));
Add(gfx_enemy19_bolt, new DisplayObj(new enemy19_bolt(), 1, 2, true));
}
}
}//package
Section 118
//hit01wav (hit01wav)
package {
import flash.media.*;
public dynamic class hit01wav extends Sound {
}
}//package
Section 119
//hit02wav (hit02wav)
package {
import flash.media.*;
public dynamic class hit02wav extends Sound {
}
}//package
Section 120
//hit03wav (hit03wav)
package {
import flash.media.*;
public dynamic class hit03wav extends Sound {
}
}//package
Section 121
//hit04wav (hit04wav)
package {
import flash.media.*;
public dynamic class hit04wav extends Sound {
}
}//package
Section 122
//instructions_overlay (instructions_overlay)
package {
import flash.display.*;
public dynamic class instructions_overlay extends MovieClip {
public var buttonClose:SimpleButton;
}
}//package
Section 123
//interface_ammo (interface_ammo)
package {
import flash.display.*;
import flash.text.*;
public dynamic class interface_ammo extends MovieClip {
public var weaponSelector:MovieClip;
public var textTimer:TextField;
public var textLevel:TextField;
public var textKills:TextField;
public var textAmmo:TextField;
}
}//package
Section 124
//interface_cash (interface_cash)
package {
import flash.display.*;
import flash.text.*;
public dynamic class interface_cash extends MovieClip {
public var textCash:TextField;
}
}//package
Section 125
//interface_health (interface_health)
package {
import flash.display.*;
public dynamic class interface_health extends MovieClip {
public var healthBar:MovieClip;
}
}//package
Section 126
//interface_kills2 (interface_kills2)
package {
import flash.display.*;
import flash.text.*;
public dynamic class interface_kills2 extends MovieClip {
public var textKills:TextField;
}
}//package
Section 127
//interface_score (interface_score)
package {
import flash.display.*;
import flash.text.*;
public dynamic class interface_score extends MovieClip {
public var textScore:TextField;
}
}//package
Section 128
//KeyReader (KeyReader)
package {
import flash.events.*;
import flash.display.*;
public class KeyReader {
static const KEY_LEFT = 37;
static const KEY_UP = 38;
static const KEY_DOWN = 40;
static const KEY_3 = 51;
static const KEY_5 = 53;
static const KEY_7 = 55;
static const KEY_1 = 49;
static const KEY_2 = 50;
static const KEY_4 = 52;
static const KEY_6 = 54;
static const KEY_8 = 56;
static const KEY_9 = 57;
static const KEY_A = 65;
static const KEY_B = 66;
static const KEY_C = 67;
static const KEY_E = 69;
static const KEY_F = 70;
static const KEY_G = 71;
static const KEY_H = 72;
static const KEY_I = 73;
static const KEY_J = 74;
static const KEY_D = 68;
static const KEY_M = 77;
static const KEY_N = 78;
static const KEY_O = 79;
static const KEY_P = 80;
static const KEY_Q = 81;
static const KEY_R = 82;
static const KEY_L = 76;
static const KEY_T = 84;
static const KEY_U = 85;
static const KEY_V = 86;
static const KEY_W = 87;
static const KEY_X = 88;
static const KEY_Y = 89;
static const KEY_K = 75;
static const KEY_0 = 58;
static const KEY_Z = 90;
static const KEY_S = 83;
static const KEY_SPACE = 32;
static const KEY_RIGHT = 39;
static var keysPressed:Array;
static var keysDown:Array;
public static function Pressed(_arg1:int):Boolean{
return (keysPressed[_arg1]);
}
static function keyUpListener(_arg1:KeyboardEvent):void{
var _local2:int;
_local2 = _arg1.keyCode;
keysDown[_local2] = 0;
}
public static function Down(_arg1:int):Boolean{
return (!((keysDown[_arg1] == 0)));
}
static function keyDownListener(_arg1:KeyboardEvent):void{
var _local2:int;
_local2 = _arg1.keyCode;
var _local3 = keysDown;
var _local4 = _local2;
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
}
public static function UpdateOncePerFrame():void{
var _local1:int;
_local1 = 0;
while (_local1 < 0x0100) {
if (keysDown[_local1] == 1){
keysPressed[_local1] = true;
var _local2 = keysDown;
var _local3 = _local1;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
} else {
keysPressed[_local1] = false;
};
_local1++;
};
}
public static function InitOnce(_arg1:Stage){
var _local2:int;
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyUpListener);
_arg1.focus = _arg1;
keysDown = new Array(0x0100);
keysPressed = new Array(0x0100);
_local2 = 0;
while (_local2 < 0x0100) {
keysDown[_local2] = int(0);
keysPressed[_local2] = Boolean(false);
_local2++;
};
}
}
}//package
Section 129
//killed01wav (killed01wav)
package {
import flash.media.*;
public dynamic class killed01wav extends Sound {
}
}//package
Section 130
//killed02wav (killed02wav)
package {
import flash.media.*;
public dynamic class killed02wav extends Sound {
}
}//package
Section 131
//killed03wav (killed03wav)
package {
import flash.media.*;
public dynamic class killed03wav extends Sound {
}
}//package
Section 132
//killed04wav (killed04wav)
package {
import flash.media.*;
public dynamic class killed04wav extends Sound {
}
}//package
Section 133
//killed05wav (killed05wav)
package {
import flash.media.*;
public dynamic class killed05wav extends Sound {
}
}//package
Section 134
//killed06wav (killed06wav)
package {
import flash.media.*;
public dynamic class killed06wav extends Sound {
}
}//package
Section 135
//Kong (Kong)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class Kong {
static var root:Object;
static var kongmessage:String;
static var kongregate;
public static function SubmitStat(_arg1:Number, _arg2:String){
if (Licensors.IsAtKongregate() == false){
return;
};
kongregate.stats.submit(_arg2, _arg1);
}
public static function DoLevelOver(){
var _local1:int;
var _local2:*;
_local1 = Game.GetNumEnemiesSeen();
_local2 = "";
SubmitStat(_local1, "NumEnemiesSeen");
if (Game.difficulty == 0){
_local2 = "NumEnemiesSeenEasy";
};
if (Game.difficulty == 1){
_local2 = "NumEnemiesSeenMedium";
};
if (Game.difficulty == 2){
_local2 = "NumEnemiesSeenHard";
};
SubmitStat(_local1, _local2);
SubmitStat(Game.totalCash, "TotalCash");
if (Game.difficulty == 0){
_local2 = "TotalCashEasy";
};
if (Game.difficulty == 1){
_local2 = "TotalCashMedium";
};
if (Game.difficulty == 2){
_local2 = "TotalCashHard";
};
SubmitStat(Game.totalCash, _local2);
SubmitStat(Game.bulletsFired, "BulletsFired");
if (Game.difficulty == 0){
_local2 = "BulletsFiredEasy";
};
if (Game.difficulty == 1){
_local2 = "BulletsFiredMedium";
};
if (Game.difficulty == 2){
_local2 = "BulletsFiredHard";
};
SubmitStat(Game.bulletsFired, _local2);
SubmitStat(Game.totalNumKills, "TotalKills");
if (Game.difficulty == 0){
_local2 = "TotalKillsEasy";
};
if (Game.difficulty == 1){
_local2 = "TotalKillsMedium";
};
if (Game.difficulty == 2){
_local2 = "TotalKillsHard";
};
SubmitStat(Game.totalNumKills, _local2);
SubmitStat(int((Game.currentLevel + 1)), "HighestLevel");
if (Game.difficulty == 0){
_local2 = "HighestLevelEasy";
};
if (Game.difficulty == 1){
_local2 = "HighestLevelMedium";
};
if (Game.difficulty == 2){
_local2 = "HighestLevelHard";
};
SubmitStat(int((Game.currentLevel + 1)), _local2);
}
public static function InitOnce(_arg1:Object){
var _local2:Object;
var _local3:Object;
var _local4:String;
var _local5:URLRequest;
var _local6:Loader;
kongmessage = "V7";
if (Licensors.IsAtKongregate() == false){
return;
};
root = _arg1;
_local2 = root.loaderInfo.loader;
_local3 = LoaderInfo(_local2.loaderInfo).parameters;
_local4 = ((_local3.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf"));
trace(("API path: " + _local4));
_local5 = new URLRequest(_local4);
_local6 = new Loader();
_local6.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
_local6.load(_local5);
root.addChild(_local6);
}
public static function DoGameOver(){
var _local1:*;
_local1 = "";
if (Game.difficulty == 0){
_local1 = "HighScoreEasy";
};
if (Game.difficulty == 1){
_local1 = "HighScoreMedium";
};
if (Game.difficulty == 2){
_local1 = "HighScoreHard";
};
SubmitScore(Game.currentScore, _local1);
}
public static function SubmitScore(_arg1:Number, _arg2:String){
if (Licensors.IsAtKongregate() == false){
return;
};
kongregate.scores.submit(_arg1, _arg2);
}
static function loadComplete(_arg1:Event):void{
kongregate = _arg1.target.content;
kongregate.services.connect();
kongmessage = "K7";
trace(("\n" + kongregate.services));
trace(("\n" + kongregate.user));
trace(("\n" + kongregate.scores));
trace(("\n" + kongregate.stats));
}
}
}//package
Section 136
//LaserSight (LaserSight)
package {
import flash.display.*;
public dynamic class LaserSight extends MovieClip {
}
}//package
Section 137
//Level1_Background (Level1_Background)
package {
import flash.display.*;
public dynamic class Level1_Background extends MovieClip {
}
}//package
Section 138
//Level1_Parallax0 (Level1_Parallax0)
package {
import flash.display.*;
public dynamic class Level1_Parallax0 extends MovieClip {
}
}//package
Section 139
//Level1_Parallax1 (Level1_Parallax1)
package {
import flash.display.*;
public dynamic class Level1_Parallax1 extends MovieClip {
}
}//package
Section 140
//Level1_Parallax2 (Level1_Parallax2)
package {
import flash.display.*;
public dynamic class Level1_Parallax2 extends MovieClip {
}
}//package
Section 141
//level1Info (level1Info)
package {
import flash.display.*;
public dynamic class level1Info extends MovieClip {
public var buttonClose:SimpleButton;
}
}//package
Section 142
//Level2_Background (Level2_Background)
package {
import flash.display.*;
public dynamic class Level2_Background extends MovieClip {
}
}//package
Section 143
//Level2_Parallax0 (Level2_Parallax0)
package {
import flash.display.*;
public dynamic class Level2_Parallax0 extends MovieClip {
}
}//package
Section 144
//Level2_Parallax1 (Level2_Parallax1)
package {
import flash.display.*;
public dynamic class Level2_Parallax1 extends MovieClip {
}
}//package
Section 145
//Level3_Background (Level3_Background)
package {
import flash.display.*;
public dynamic class Level3_Background extends MovieClip {
}
}//package
Section 146
//Level3_Parallax0 (Level3_Parallax0)
package {
import flash.display.*;
public dynamic class Level3_Parallax0 extends MovieClip {
}
}//package
Section 147
//Level4_Background (Level4_Background)
package {
import flash.display.*;
public dynamic class Level4_Background extends MovieClip {
}
}//package
Section 148
//Level5_Background (Level5_Background)
package {
import flash.display.*;
public dynamic class Level5_Background extends MovieClip {
}
}//package
Section 149
//Level5_Foreground (Level5_Foreground)
package {
import flash.display.*;
public dynamic class Level5_Foreground extends MovieClip {
}
}//package
Section 150
//Level5_Parallax0 (Level5_Parallax0)
package {
import flash.display.*;
public dynamic class Level5_Parallax0 extends MovieClip {
}
}//package
Section 151
//Level5_Parallax1 (Level5_Parallax1)
package {
import flash.display.*;
public dynamic class Level5_Parallax1 extends MovieClip {
}
}//package
Section 152
//Level6_Background (Level6_Background)
package {
import flash.display.*;
public dynamic class Level6_Background extends MovieClip {
}
}//package
Section 153
//Level7_Background (Level7_Background)
package {
import flash.display.*;
public dynamic class Level7_Background extends MovieClip {
}
}//package
Section 154
//LevelContent (LevelContent)
package {
public class LevelContent {
public var pcs:Array;
public var times:Array;
var currentPC;
public var maxEnemiesAtOnce:int;
public var types:Array;
public function LevelContent(_arg1:int){
types = new Array();
pcs = new Array();
times = new Array();
maxEnemiesAtOnce = _arg1;
currentPC = 0;
}
public function AddType(_arg1:int, _arg2:Number, _arg3:Number=0){
_arg1++;
types.push(_arg1);
currentPC = (currentPC + _arg2);
pcs.push(currentPC);
times.push(int((_arg3 * Defs.fps)));
}
public function GetRandomType(_arg1:int):int{
var _local2:int;
var _local3:int;
var _local4:int;
_local3 = 0;
while (_local3 < 10) {
_local4 = Utils.RandBetweenInt(0, 100);
_local2 = 0;
while (_local2 < types.length) {
if (_arg1 > times[_local2]){
if (_local4 < pcs[_local2]){
return (types[_local2]);
};
};
_local2++;
};
_local3++;
};
trace("no enemy found");
return (types[0]);
}
}
}//package
Section 155
//LevelContents (LevelContents)
package {
public class LevelContents {
static var levels:Array;
public static function InitOnce(){
var _local1:LevelContent;
levels = new Array();
_local1 = new LevelContent(2);
_local1.AddType(0, 80);
_local1.AddType(1, 20);
levels.push(_local1);
_local1 = new LevelContent(3);
_local1.AddType(0, 30);
_local1.AddType(1, 50);
_local1.AddType(2, 20, 20);
levels.push(_local1);
_local1 = new LevelContent(4);
_local1.AddType(0, 15);
_local1.AddType(1, 30);
_local1.AddType(2, 50);
_local1.AddType(3, 5, 22);
levels.push(_local1);
_local1 = new LevelContent(4);
_local1.AddType(0, 25);
_local1.AddType(1, 25);
_local1.AddType(2, 25);
_local1.AddType(3, 25);
levels.push(_local1);
_local1 = new LevelContent(1);
_local1.AddType(15, 100);
levels.push(_local1);
_local1 = new LevelContent(5);
_local1.AddType(0, 5);
_local1.AddType(1, 30);
_local1.AddType(2, 20);
_local1.AddType(3, 5);
_local1.AddType(4, 40);
levels.push(_local1);
_local1 = new LevelContent(7);
_local1.AddType(0, 40);
_local1.AddType(1, 20);
_local1.AddType(2, 10);
_local1.AddType(4, 15);
_local1.AddType(5, 15);
levels.push(_local1);
_local1 = new LevelContent(5);
_local1.AddType(0, 20);
_local1.AddType(4, 20);
_local1.AddType(5, 30);
_local1.AddType(6, 30);
levels.push(_local1);
_local1 = new LevelContent(6);
_local1.AddType(1, 20);
_local1.AddType(2, 5);
_local1.AddType(3, 10);
_local1.AddType(4, 15);
_local1.AddType(6, 20);
_local1.AddType(7, 30, 15);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(0, 45);
_local1.AddType(1, 45);
_local1.AddType(2, 10);
levels.push(_local1);
_local1 = new LevelContent(1);
_local1.AddType(16, 100);
levels.push(_local1);
_local1 = new LevelContent(6);
_local1.AddType(4, 5);
_local1.AddType(5, 5);
_local1.AddType(6, 30);
_local1.AddType(7, 20);
_local1.AddType(8, 20);
_local1.AddType(13, 20);
levels.push(_local1);
_local1 = new LevelContent(7);
_local1.AddType(5, 10);
_local1.AddType(6, 20);
_local1.AddType(7, 30);
_local1.AddType(8, 10);
_local1.AddType(13, 15);
_local1.AddType(14, 15);
levels.push(_local1);
_local1 = new LevelContent(7);
_local1.AddType(3, 10);
_local1.AddType(5, 10);
_local1.AddType(6, 10);
_local1.AddType(7, 25);
_local1.AddType(13, 10);
_local1.AddType(14, 10);
_local1.AddType(9, 25, 15);
levels.push(_local1);
_local1 = new LevelContent(8);
_local1.AddType(6, 25);
_local1.AddType(7, 25);
_local1.AddType(8, 5);
_local1.AddType(9, 20);
_local1.AddType(14, 20);
_local1.AddType(10, 5, 22);
levels.push(_local1);
_local1 = new LevelContent(15);
_local1.AddType(0, 45);
_local1.AddType(1, 45);
_local1.AddType(2, 10);
levels.push(_local1);
_local1 = new LevelContent(1);
_local1.AddType(17, 100);
levels.push(_local1);
_local1 = new LevelContent(8);
_local1.AddType(5, 10);
_local1.AddType(7, 10);
_local1.AddType(8, 15);
_local1.AddType(9, 15);
_local1.AddType(13, 10);
_local1.AddType(14, 10);
_local1.AddType(10, 20);
_local1.AddType(11, 10);
levels.push(_local1);
_local1 = new LevelContent(7);
_local1.AddType(7, 20);
_local1.AddType(8, 15);
_local1.AddType(10, 10);
_local1.AddType(11, 15);
_local1.AddType(12, 15);
_local1.AddType(13, 10);
_local1.AddType(14, 15);
levels.push(_local1);
_local1 = new LevelContent(8);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(9);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(20);
_local1.AddType(0, 45);
_local1.AddType(1, 45);
_local1.AddType(2, 10);
levels.push(_local1);
_local1 = new LevelContent(1);
_local1.AddType(18, 100);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(10);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
_local1 = new LevelContent(11);
_local1.AddType(5, 10);
_local1.AddType(6, 15);
_local1.AddType(7, 20);
_local1.AddType(10, 15);
_local1.AddType(9, 5);
_local1.AddType(11, 15);
_local1.AddType(12, 20);
levels.push(_local1);
}
public static function GetLevelContent(_arg1:int){
if (_arg1 >= (levels.length - 1)){
_arg1 = (levels.length - 1);
};
return (levels[_arg1]);
}
}
}//package
Section 156
//LevelDef_Level1 (LevelDef_Level1)
package {
public class LevelDef_Level1 {
public static function Init(){
SetupScript.LineStart("", 106, 320, 5, "Floor", "", "", "");
SetupScript.LineAdd(135, 307, 5);
SetupScript.LineAdd(152, 308, 5);
SetupScript.LineAdd(170, 311, 5);
SetupScript.LineAdd(187, 313, 5);
SetupScript.LineAdd(206, 314, 5);
SetupScript.LineAdd(217, 314, 5);
SetupScript.LineAdd(225, 318, 5);
SetupScript.LineAdd(234, 321, 5);
SetupScript.LineAdd(247, 323, 5);
SetupScript.LineAdd(0xFF, 323, 5);
SetupScript.LineAdd(272, 320, 5);
SetupScript.LineAdd(290, 316, 5);
SetupScript.LineAdd(309, 314, 5);
SetupScript.LineAdd(324, 314, 5);
SetupScript.LineAdd(344, 319, 5);
SetupScript.LineAdd(364, 324, 5);
SetupScript.LineAdd(393, 331, 5);
SetupScript.LineAdd(421, 363, 5);
SetupScript.LineAdd(437, 392, 5);
SetupScript.LineAdd(461, 400, 5);
SetupScript.LineAdd(511, 403, 5);
SetupScript.LineAdd(575, 401, 5);
SetupScript.LineAdd(617, 401, 5);
SetupScript.LineAdd(654, 392, 5);
SetupScript.LineAdd(673, 380, 5);
SetupScript.LineAdd(707, 353, 5);
SetupScript.LineAdd(732, 330, 5);
SetupScript.LineAdd(762, 305, 5);
SetupScript.LineAdd(801, 281, 5);
SetupScript.LineAdd(877, 287, 5);
SetupScript.LineAdd(938, 285, 5);
SetupScript.LineAdd(984, 289, 5);
SetupScript.LineAdd(1018, 289, 5);
SetupScript.LineAdd(1051, 293, 5);
SetupScript.LineAdd(1079, 308, 5);
SetupScript.LineAdd(1106, 324, 5);
SetupScript.LineAdd(1124, 326, 5);
SetupScript.LineAdd(1151, 323, 5);
SetupScript.LineAdd(1158, 323, 5);
SetupScript.LineAdd(1190, 330, 5);
SetupScript.LineAdd(1225, 340, 5);
SetupScript.LineAdd(1257, 338, 5);
SetupScript.LineAdd(1290, 327, 5);
SetupScript.LineAdd(1321, 315, 5);
SetupScript.LineAdd(1370, 308, 5);
SetupScript.LineAdd(1418, 307, 5);
SetupScript.LineAdd(1455, 316, 5);
SetupScript.LineAdd(1474, 325, 5);
SetupScript.LineAdd(1497, 328, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 138, -37, 0, "Wall", "", "", "");
SetupScript.LineAdd(99, 250, 0);
SetupScript.LineAdd(109, 442, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 1498, 351, 0, "Wall", "", "", "");
SetupScript.LineAdd(1502, 227, 0);
SetupScript.LineAdd(1465, 164, 0);
SetupScript.LineAdd(1439, 142, 0);
SetupScript.LineAdd(1415, -28, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 498, 334, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 157
//LevelDef_Level2 (LevelDef_Level2)
package {
public class LevelDef_Level2 {
public static function Init(){
SetupScript.LineStart("", 232, 465, 5, "Floor", "", "", "");
SetupScript.LineAdd(249, 470, 5);
SetupScript.LineAdd(298, 478, 5);
SetupScript.LineAdd(329, 478, 5);
SetupScript.LineAdd(375, 489, 5);
SetupScript.LineAdd(424, 496, 5);
SetupScript.LineAdd(438, 495, 5);
SetupScript.LineAdd(513, 518, 5);
SetupScript.LineAdd(551, 533, 5);
SetupScript.LineAdd(595, 549, 5);
SetupScript.LineAdd(624, 561, 5);
SetupScript.LineAdd(672, 572, 5);
SetupScript.LineAdd(702, 572, 5);
SetupScript.LineAdd(735, 574, 5);
SetupScript.LineAdd(765, 582, 5);
SetupScript.LineAdd(800, 586, 5);
SetupScript.LineAdd(848, 609, 5);
SetupScript.LineAdd(894, 628, 5);
SetupScript.LineAdd(917, 633, 5);
SetupScript.LineAdd(977, 636, 5);
SetupScript.LineAdd(997, 630, 5);
SetupScript.LineAdd(1031, 630, 5);
SetupScript.LineAdd(1062, 635, 5);
SetupScript.LineAdd(1091, 638, 5);
SetupScript.LineAdd(1105, 637, 5);
SetupScript.LineAdd(1129, 632, 5);
SetupScript.LineAdd(1170, 611, 5);
SetupScript.LineAdd(1221, 599, 5);
SetupScript.LineAdd(1262, 593, 5);
SetupScript.LineAdd(1303, 598, 5);
SetupScript.LineAdd(1346, 610, 5);
SetupScript.LineAdd(1384, 623, 5);
SetupScript.LineAdd(1418, 622, 5);
SetupScript.LineAdd(1440, 614, 5);
SetupScript.LineAdd(1481, 607, 5);
SetupScript.LineAdd(1530, 608, 5);
SetupScript.LineAdd(1564, 607, 5);
SetupScript.LineAdd(1602, 587, 5);
SetupScript.LineAdd(1628, 577, 5);
SetupScript.LineAdd(1661, 567, 5);
SetupScript.LineAdd(1719, 559, 5);
SetupScript.LineAdd(1749, 550, 5);
SetupScript.LineAdd(1772, 547, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 242, 150, 0, "Wall", "", "", "");
SetupScript.LineAdd(231, 502, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 1769, 730, 0, "Wall", "", "", "");
SetupScript.LineAdd(1777, 212, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 950, 607, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 158
//LevelDef_Level3 (LevelDef_Level3)
package {
public class LevelDef_Level3 {
public static function Init(){
SetupScript.LineStart("", 266, 57, 5, "Floor", "", "", "");
SetupScript.LineAdd(350.0035, 49.99065, 5);
SetupScript.LineAdd(434.0383, 34.89722, 5);
SetupScript.LineAdd(476.5408, 26.23328, 5);
SetupScript.LineAdd(533.4801, 43.71066, 5);
SetupScript.LineAdd(572.1496, 92.59825, 5);
SetupScript.LineAdd(616, 173, 5);
SetupScript.LineAdd(727, 214, 5);
SetupScript.LineAdd(802, 238, 5);
SetupScript.LineAdd(853, 242, 5);
SetupScript.LineAdd(885, 265, 5);
SetupScript.LineAdd(963, 297, 5);
SetupScript.LineAdd(1016, 322, 5);
SetupScript.LineAdd(1082, 361, 5);
SetupScript.LineAdd(1151, 391, 5);
SetupScript.LineAdd(1187, 399, 5);
SetupScript.LineAdd(1252, 416, 5);
SetupScript.LineAdd(1327, 434, 5);
SetupScript.LineAdd(1367, 445, 5);
SetupScript.LineAdd(1424, 455, 5);
SetupScript.LineAdd(1474, 454, 5);
SetupScript.LineAdd(1517, 454, 5);
SetupScript.LineAdd(1585, 453, 5);
SetupScript.LineAdd(1636, 450, 5);
SetupScript.LineAdd(1697, 444, 5);
SetupScript.LineAdd(1741, 425, 5);
SetupScript.LineAdd(1828, 393, 5);
SetupScript.LineAdd(1929, 362, 5);
SetupScript.LineAdd(1948, 347, 5);
SetupScript.LineAdd(1988, 326, 5);
SetupScript.LineAdd(2033, 298, 5);
SetupScript.LineAdd(2061, 277, 5);
SetupScript.LineAdd(2097, 252, 5);
SetupScript.LineAdd(2131, 230, 5);
SetupScript.LineAdd(2162, 222, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 2159, 289, 0, "Wall", "", "", "");
SetupScript.LineAdd(2179, -139, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 263, -197, 0, "Wall", "", "", "");
SetupScript.LineAdd(263, 136, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 1429, 413, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 159
//LevelDef_Level4 (LevelDef_Level4)
package {
public class LevelDef_Level4 {
public static function Init(){
SetupScript.LineStart("", 611, 124, 5, "Floor", "", "", "");
SetupScript.LineAdd(627, 128, 5);
SetupScript.LineAdd(712, 149, 5);
SetupScript.LineAdd(787, 168, 5);
SetupScript.LineAdd(835, 178, 5);
SetupScript.LineAdd(900, 192, 5);
SetupScript.LineAdd(970, 213, 5);
SetupScript.LineAdd(1039, 231, 5);
SetupScript.LineAdd(1100, 243, 5);
SetupScript.LineAdd(1156, 251, 5);
SetupScript.LineAdd(1199, 258, 5);
SetupScript.LineAdd(1242, 267, 5);
SetupScript.LineAdd(1273, 279, 5);
SetupScript.LineAdd(1281, 300, 5);
SetupScript.LineAdd(1294, 355, 5);
SetupScript.LineAdd(1311, 402, 5);
SetupScript.LineAdd(1321, 415, 5);
SetupScript.LineAdd(1346, 421, 5);
SetupScript.LineAdd(1388, 423, 5);
SetupScript.LineAdd(1457, 426, 5);
SetupScript.LineAdd(1522, 423, 5);
SetupScript.LineAdd(1556, 416, 5);
SetupScript.LineAdd(1584, 405, 5);
SetupScript.LineAdd(1605, 368, 5);
SetupScript.LineAdd(1623, 313, 5);
SetupScript.LineAdd(1646, 0x0101, 5);
SetupScript.LineAdd(1660, 250, 5);
SetupScript.LineAdd(1704, 237, 5);
SetupScript.LineAdd(1740, 235, 5);
SetupScript.LineAdd(1781, 242, 5);
SetupScript.LineAdd(1823, 0xFF, 5);
SetupScript.LineAdd(1884, 267, 5);
SetupScript.LineAdd(1963, 272, 5);
SetupScript.LineAdd(2019, 258, 5);
SetupScript.LineAdd(2081, 236, 5);
SetupScript.LineAdd(2135, 217, 5);
SetupScript.LineAdd(2235, 193, 5);
SetupScript.LineAdd(2297, 173, 5);
SetupScript.LineAdd(2406, 160, 5);
SetupScript.LineAdd(2445, 146, 5);
SetupScript.LineAdd(2511, 133, 5);
SetupScript.LineAdd(2556, 130, 5);
SetupScript.LineAdd(2574, 130, 5);
SetupScript.LineAdd(2589, 129, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 2591, 505, 0, "Wall", "", "", "");
SetupScript.LineAdd(2589, -223, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 630, -286, 0, "Wall", "", "", "");
SetupScript.LineAdd(619, -4, 0);
SetupScript.LineAdd(610, 81, 0);
SetupScript.LineAdd(601, 386, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 23, -329, 0, "Wall", "", "", "");
SetupScript.LineAdd(23, 522, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 1427, 402, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 160
//LevelDef_Level5 (LevelDef_Level5)
package {
public class LevelDef_Level5 {
public static function Init(){
SetupScript.LineStart("", 449, 451, 5, "Floor", "", "", "");
SetupScript.LineAdd(492, 454, 5);
SetupScript.LineAdd(552, 454, 5);
SetupScript.LineAdd(600, 447, 5);
SetupScript.LineAdd(646, 445, 5);
SetupScript.LineAdd(705, 455, 5);
SetupScript.LineAdd(805, 460, 5);
SetupScript.LineAdd(891, 459, 5);
SetupScript.LineAdd(944, 450, 5);
SetupScript.LineAdd(1009, 443, 5);
SetupScript.LineAdd(1073, 443, 5);
SetupScript.LineAdd(1114, 451, 5);
SetupScript.LineAdd(1185, 448, 5);
SetupScript.LineAdd(1354, 431, 5);
SetupScript.LineAdd(1428, 418, 5);
SetupScript.LineAdd(1482, 416, 5);
SetupScript.LineAdd(1566, 419, 5);
SetupScript.LineAdd(1641, 420, 5);
SetupScript.LineAdd(1680, 420, 5);
SetupScript.LineAdd(1731, 421, 5);
SetupScript.LineAdd(1795, 430, 5);
SetupScript.LineAdd(1866, 422, 5);
SetupScript.LineAdd(1908, 411, 5);
SetupScript.LineAdd(1941, 395, 5);
SetupScript.LineAdd(2005, 387, 5);
SetupScript.LineAdd(2046, 392, 5);
SetupScript.LineAdd(2095, 415, 5);
SetupScript.LineAdd(2149, 430, 5);
SetupScript.LineAdd(2198, 433, 5);
SetupScript.LineAdd(2218, 433, 5);
SetupScript.LineAdd(2230, 433, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 2222, 457, 0, "Wall", "", "", "");
SetupScript.LineAdd(2266, 341, 0);
SetupScript.LineAdd(2260, 223, 0);
SetupScript.LineAdd(2245, 1, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 440, -24, 0, "Wall", "", "", "");
SetupScript.LineAdd(436, 150, 0);
SetupScript.LineAdd(408, 254, 0);
SetupScript.LineAdd(406, 314, 0);
SetupScript.LineAdd(436, 414, 0);
SetupScript.LineAdd(473, 557, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 1429, 413, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 161
//LevelDef_Level6 (LevelDef_Level6)
package {
public class LevelDef_Level6 {
public static function Init(){
SetupScript.LineStart("", 279, 227, 5, "Floor", "", "", "");
SetupScript.LineAdd(296, 229, 5);
SetupScript.LineAdd(327, 235, 5);
SetupScript.LineAdd(369, 251, 5);
SetupScript.LineAdd(405, 270, 5);
SetupScript.LineAdd(442, 283, 5);
SetupScript.LineAdd(501, 290, 5);
SetupScript.LineAdd(556, 298, 5);
SetupScript.LineAdd(592, 302, 5);
SetupScript.LineAdd(661, 301, 5);
SetupScript.LineAdd(715, 300, 5);
SetupScript.LineAdd(789, 295, 5);
SetupScript.LineAdd(820, 297, 5);
SetupScript.LineAdd(847, 304, 5);
SetupScript.LineAdd(879, 305, 5);
SetupScript.LineAdd(934, 305, 5);
SetupScript.LineAdd(976, 305, 5);
SetupScript.LineAdd(1008, 320, 5);
SetupScript.LineAdd(1068, 325, 5);
SetupScript.LineAdd(1251, 335, 5);
SetupScript.LineAdd(1343, 337, 5);
SetupScript.LineAdd(1463, 344, 5);
SetupScript.LineAdd(1604, 348, 5);
SetupScript.LineAdd(1667, 343, 5);
SetupScript.LineAdd(1691, 296, 5);
SetupScript.LineAdd(1745, 280, 5);
SetupScript.LineAdd(1819, 261, 5);
SetupScript.LineAdd(1878, 245, 5);
SetupScript.LineAdd(1911, 233, 5);
SetupScript.LineAdd(1927, 237, 5);
SetupScript.LineAdd(1941, 266, 5);
SetupScript.LineAdd(1960, 281, 5);
SetupScript.LineAdd(2022, 298, 5);
SetupScript.LineAdd(2104, 296, 5);
SetupScript.LineAdd(2149, 285, 5);
SetupScript.LineAdd(2214, 263, 5);
SetupScript.LineAdd(2244, 258, 5);
SetupScript.LineAdd(2263, 0x0100, 5);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 2265, 455, 0, "Wall", "", "", "");
SetupScript.LineAdd(2265, 157, 0);
SetupScript.LineAdd(2206, -125, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 362, -229, 0, "Wall", "", "", "");
SetupScript.LineAdd(289, 83, 0);
SetupScript.LineAdd(272, 126, 0);
SetupScript.LineAdd(272, 174, 0);
SetupScript.LineAdd(287, 311, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 9, -357, 0, "Wall", "", "", "");
SetupScript.LineAdd(9, 436, 0);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 1391, 286, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 162
//LevelDef_Level7 (LevelDef_Level7)
package {
public class LevelDef_Level7 {
public static function Init(){
SetupScript.LineStart("", 5, -248, 0, "Wall", "", "", "");
SetupScript.LineAdd(1, 387, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 2095, 429, 0, "Wall", "", "", "");
SetupScript.LineAdd(2087, -202, 0);
SetupScript.LineEnd(false);
SetupScript.LineStart("", 216, 194, 5, "Floor", "", "", "");
SetupScript.LineAdd(259, 187, 5);
SetupScript.LineAdd(311, 188, 5);
SetupScript.LineAdd(385, 192, 5);
SetupScript.LineAdd(441, 193, 5);
SetupScript.LineAdd(493, 192, 5);
SetupScript.LineAdd(545, 181, 5);
SetupScript.LineAdd(587, 166, 5);
SetupScript.LineAdd(640, 145, 5);
SetupScript.LineAdd(701, 120, 5);
SetupScript.LineAdd(751, 97, 5);
SetupScript.LineAdd(787, 76, 5);
SetupScript.LineAdd(848, 47, 5);
SetupScript.LineAdd(908, 29, 5);
SetupScript.LineAdd(987, 10, 5);
SetupScript.LineAdd(1046, 12, 5);
SetupScript.LineAdd(1112, 22, 5);
SetupScript.LineAdd(1225, 45, 5);
SetupScript.LineAdd(1312, 67, 5);
SetupScript.LineAdd(1363, 82, 5);
SetupScript.LineAdd(1421, 107, 5);
SetupScript.LineAdd(1545, 142, 5);
SetupScript.LineAdd(1618, 158, 5);
SetupScript.LineAdd(1688, 173, 5);
SetupScript.LineAdd(1751, 183, 5);
SetupScript.LineAdd(1796, 179, 5);
SetupScript.LineAdd(1869, 180, 5);
SetupScript.LineAdd(1911, 186, 5);
SetupScript.LineEnd(false);
SetupScript.AddObject("Undefined", 1095, -4, "StartPoint", "obj", "Start", 0, 0, 0, 0);
}
}
}//package
Section 163
//LevelDef1 (LevelDef1)
package {
public class LevelDef1 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level1.Init();
GraphicObjects.Add(GraphicObjects.gfx_level1_background, new DisplayObj(new Level1_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level1_background);
Game.scrollXoff = 0;
Game.scrollYoff = -5;
Game.scrollW = (Game.scrollW - 25);
Game.scrollH = (Game.scrollH - 15);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax0, 0, 0, 5000, 0.5, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax1, 0, 0, 4000, 0.6, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax2, 0, 0, 3000, 0.7, 1);
}
}
}//package
Section 164
//LevelDef2 (LevelDef2)
package {
public class LevelDef2 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level2.Init();
GraphicObjects.Add(GraphicObjects.gfx_level2_background, new DisplayObj(new Level2_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level2_background);
Game.scrollXoff = -15;
Game.scrollYoff = 0;
Game.scrollW = (Game.scrollW - 10);
Game.scrollH = (Game.scrollH - 22);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax0, 0, 0, 5000, 0.5, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax1, 0, 0, 4000, 0.6, 3);
}
}
}//package
Section 165
//LevelDef3 (LevelDef3)
package {
public class LevelDef3 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level3.Init();
GraphicObjects.Add(GraphicObjects.gfx_level3_background, new DisplayObj(new Level3_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level3_background);
Game.scrollXoff = -230;
Game.scrollYoff = 200;
Game.scrollW = (Game.scrollW - 0);
Game.scrollH = (Game.scrollH + (200 - 50));
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level3_parallax0, 0, 0, 5000, 0.5, 3);
}
}
}//package
Section 166
//LevelDef4 (LevelDef4)
package {
public class LevelDef4 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level4.Init();
GraphicObjects.Add(GraphicObjects.gfx_level4_background, new DisplayObj(new Level4_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level4_background);
Game.scrollXoff = 0;
Game.scrollYoff = 0;
Game.scrollW = (Game.scrollW - 20);
Game.scrollH = (Game.scrollH - 40);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax0, 0, 0, 5000, 0.5, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax1, 0, 0, 4000, 0.6, 3);
}
}
}//package
Section 167
//LevelDef5 (LevelDef5)
package {
public class LevelDef5 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level5.Init();
GraphicObjects.Add(GraphicObjects.gfx_level5_background, new DisplayObj(new Level5_Background(), 1, 0));
GraphicObjects.Add(GraphicObjects.gfx_level5_foreground, new DisplayObj(new Level5_Foreground(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level5_background);
Game.scrollXoff = 0;
Game.scrollYoff = 0;
Game.scrollW = (Game.scrollW - 100);
Game.scrollH = (Game.scrollH - 30);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level5_parallax0, 0, 0, 4000, 0.05, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level5_parallax1, 0, 0, 3000, 0.4, 1);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level5_foreground, 0, 0, 100, 1, 1);
}
}
}//package
Section 168
//LevelDef6 (LevelDef6)
package {
public class LevelDef6 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level6.Init();
GraphicObjects.Add(GraphicObjects.gfx_level6_background, new DisplayObj(new Level6_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level6_background);
Game.scrollXoff = -100;
Game.scrollYoff = 0;
Game.scrollW = (Game.scrollW - 100);
Game.scrollH = (Game.scrollH - 20);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax0, 0, 0, 5000, 0.5, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax1, 0, 0, 4000, 0.6, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level1_parallax2, 0, 0, 3000, 0.7, 1);
}
}
}//package
Section 169
//LevelDef7 (LevelDef7)
package {
public class LevelDef7 {
static var main:Main;
public static function Init(_arg1:Main){
var _local2:GameObj;
main = _arg1;
LevelDef_Level7.Init();
GraphicObjects.Add(GraphicObjects.gfx_level7_background, new DisplayObj(new Level7_Background(), 1, 0));
Game.goBackground = GameObjects.AddObj(0, 0, 2000);
Game.goBackground.InitBackground(GraphicObjects.gfx_level7_background);
Game.scrollXoff = 0;
Game.scrollYoff = 200;
Game.scrollW = (Game.scrollW - 0);
Game.scrollH = (Game.scrollH + 100);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax0, 0, 0, 5000, 0.5, 3);
_local2 = GameObjects.AddObj(0, 0, 100);
_local2.InitParallax(GraphicObjects.gfx_level2_parallax1, 0, 0, 4000, 0.6, 3);
}
}
}//package
Section 170
//Licensors (Licensors)
package {
public class Licensors {
public static const LICENSOR_BIGFISH = 6;
public static const LICENSOR_ANDKON = 5;
public static const LICENSOR_KONGREGATE = 1;
public static const LICENSOR_MINDJOLT = 4;
public static const LICENSOR_ARMORGAMES = 8;
public static const LICENSOR_MINICLIP = 2;
public static const LICENSOR_DOOF = 3;
public static const LICENSOR_BUBBLEBOX = 7;
public static const LICENSOR_NONE = 0;
static var licensor:int = 8;
public static function InitOnce():void{
if (licensor == LICENSOR_MINDJOLT){
};
}
public static function IsAtKongregate():Boolean{
if (licensor != LICENSOR_KONGREGATE){
return (false);
};
if (SiteLock.GetDomain() == "kongregate.com"){
return (true);
};
return (false);
}
public static function GetLicensor():int{
return (licensor);
}
public static function CanUseMochiAds():Boolean{
if (licensor == LICENSOR_NONE){
return (true);
};
if (licensor == LICENSOR_KONGREGATE){
return (true);
};
if (licensor == LICENSOR_MINICLIP){
return (false);
};
if (licensor == LICENSOR_DOOF){
return (false);
};
if (licensor == LICENSOR_MINDJOLT){
return (true);
};
if (licensor == LICENSOR_ANDKON){
return (false);
};
if (licensor == LICENSOR_BIGFISH){
return (false);
};
if (licensor == LICENSOR_ARMORGAMES){
return (false);
};
return (true);
}
public static function SetLicensor(_arg1:int):void{
licensor = _arg1;
}
public static function IsHosted():Boolean{
if (licensor == LICENSOR_NONE){
return (false);
};
if (licensor == LICENSOR_ANDKON){
return (true);
};
if (licensor == LICENSOR_BIGFISH){
return (true);
};
if (licensor == LICENSOR_KONGREGATE){
if (SiteLock.GetDomain() == "kongregate.com"){
return (true);
};
return (false);
};
if (licensor == LICENSOR_MINICLIP){
if (SiteLock.GetDomain() == "miniclip.com"){
return (true);
};
return (false);
};
if (licensor == LICENSOR_DOOF){
if (SiteLock.GetDomain() == "doof.com"){
return (true);
};
return (false);
};
if (licensor == LICENSOR_MINDJOLT){
return (false);
};
return (false);
}
public static function CanUseMochiBot():Boolean{
if (licensor == LICENSOR_ARMORGAMES){
return (false);
};
return (true);
}
}
}//package
Section 171
//Line (Line)
package {
import flash.geom.*;
public class Line {
public var udx:Number;
public var nx:Number;
public var ny:Number;
public var dir:Number;
public var udy:Number;
public var dy:Number;
public var y0:Number;
public var y1:Number;
public var dx:Number;
public var normalDir:Number;
public var length:Number;
public var boundingRect:Rectangle;
public var x0:Number;
public var x1:Number;
public function Line(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){
x0 = _arg1;
y0 = _arg2;
x1 = _arg3;
y1 = _arg4;
CalcNormal();
CalcBoundingRect();
}
function CalcNormal():void{
dir = Math.atan2((y1 - y0), (x1 - x0));
normalDir = (dir - (Math.PI * 0.5));
nx = Math.cos(normalDir);
ny = Math.sin(normalDir);
dx = (x1 - x0);
dy = (y1 - y0);
length = Math.sqrt(((dx * dx) + (dy * dy)));
udx = Math.cos(dir);
udy = Math.sin(dir);
}
function CalcBoundingRect():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = x0;
_local2 = x1;
if (_local1 > _local2){
_local1 = x1;
_local2 = x0;
};
_local3 = y0;
_local4 = y1;
if (_local3 > _local4){
_local3 = y1;
_local4 = y0;
};
boundingRect = new Rectangle(_local1, _local3, ((_local2 - _local1) + 1), ((_local4 - _local3) + 1));
}
}
}//package
Section 172
//Main (Main)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
import flash.utils.*;
public class Main extends MovieClip {
public var tf_scorespr:TextFormat;
var framecounter:int;// = 0
public var tf_scorespr2:TextFormat;
var cheatMode:Boolean;
var levelTimer:Number;
var ftime:Number;
public var tf_scorespr1:TextFormat;
private var screenB:Bitmap;
public var backgroundMC:MovieClip;
var levelTimerMax:Number;
public var mochiScores;
public var screenBD:BitmapData;
var gameState:int;// = 0
var currentTime:Number;// = 0
var secondCounter:Number;// = 0
public var fps:Number;
public var tf_scoresprblack:TextFormat;
static const gameState_HIGHSCORES = 5;
static const gameState_TITLE = 0;
static const gameState_LEVEL_PLAY = 2;
public static var theStage:Stage;
static var theRoot:MovieClip;
public function Main(){
currentTime = 0;
gameState = gameState_TITLE;
framecounter = 0;
secondCounter = 0;
super();
theRoot = this;
theStage = this.root.stage;
SetEverythingUpOnce();
}
function calcFrameTime(){
var _local1:Number;
_local1 = currentTime;
currentTime = getTimer();
if (currentTime < _local1){
_local1 = (currentTime - 100);
};
if (currentTime > (_local1 + (100 * 10))){
_local1 = (100 * 10);
};
ftime = ((1 / (1000 / Defs.fps)) * (currentTime - _local1));
framecounter++;
secondCounter = (secondCounter + (currentTime - _local1));
if (secondCounter > 1000){
fps = ((Number(framecounter) / secondCounter) * 1000);
framecounter = 0;
secondCounter = 0;
};
ftime = 1;
}
function addedToStage(_arg1:Event){
SetEverythingUpOnce2();
}
private function CreateTextField(_arg1:TextFormat, _arg2:Number, _arg3:Number, _arg4:String):TextField{
var _local5:TextField;
_local5 = new TextField();
_local5.selectable = false;
_local5.embedFonts = true;
_local5.autoSize = TextFieldAutoSize.CENTER;
_local5.x = _arg2;
_local5.y = _arg3;
_local5.text = _arg4;
_local5.setTextFormat(_arg1);
addChild(_local5);
return (_local5);
}
function AddMovieClip(_arg1:Number, _arg2:Number, _arg3:MovieClip):MovieClip{
_arg3.x = _arg1;
_arg3.y = _arg2;
addChild(_arg3);
return (_arg3);
}
function InitLevel(){
InitStageForGame();
Particles.Reset();
MouseControl.Reset();
Particles.Reset();
GameObjects.ClearAll();
Game.InitLevel();
}
function DoMochiBot(_arg1:int){
if (Licensors.CanUseMochiBot() == false){
return;
};
if (_arg1 == 0){
MochiBot.track(this, "972fe74d");
};
if (_arg1 == 1){
MochiBot.track(this, "09189252");
};
if (_arg1 == 2){
MochiBot.track(this, "74450ab4");
};
if (_arg1 == 3){
MochiBot.track(this, "a5d2682f");
};
if (_arg1 == 4){
MochiBot.track(this, "d1acfd5f");
};
}
function run(_arg1:Event):void{
KeyReader.UpdateOncePerFrame();
if (SiteLock.IsLocked()){
return;
};
calcFrameTime();
switch (gameState){
case gameState_TITLE:
break;
case gameState_HIGHSCORES:
break;
case gameState_LEVEL_PLAY:
RunLevel();
break;
};
}
function InitStageNoBackground(){
var _local1:int;
_local1 = (this.numChildren - 1);
while (_local1 >= 0) {
removeChildAt(_local1);
_local1--;
};
}
function SetEverythingUpOnce2():void{
theRoot = this;
theStage = this.root.stage;
Licensors.InitOnce();
Kong.InitOnce(this.root);
MusicPlayer.InitOnce();
KeyReader.InitOnce(theStage);
MouseControl.InitOnce(theStage);
SoundPlayer.InitOnce(this);
PauseMenu.InitOnce(this);
Particles.InitOnce(this, 1000);
GameObjects.InitOnce(this, 300);
InitDrawScreen();
InitFonts();
GraphicObjects.InitOnce(this);
TweakVars.InitOnce(this);
InitStage();
Game.Init(this);
stage.frameRate = Defs.fps;
addEventListener(Event.ENTER_FRAME, run);
DoMochiBot(0);
SetGameState(gameState_TITLE);
}
function RunTitle(){
}
function SetEverythingUpOnce():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
} else {
SetEverythingUpOnce2();
};
}
function InitFonts():void{
var _local1:Font;
_local1 = new Font20();
tf_scorespr = new TextFormat();
tf_scorespr1 = new TextFormat();
tf_scorespr2 = new TextFormat();
tf_scoresprblack = new TextFormat();
tf_scorespr.font = _local1.fontName;
tf_scorespr.size = 16;
tf_scorespr.color = 4294901760;
tf_scorespr1.font = _local1.fontName;
tf_scorespr1.size = 16;
tf_scorespr1.color = 4294967295;
tf_scorespr2.font = _local1.fontName;
tf_scorespr2.size = 16;
tf_scorespr2.color = 4294967040;
tf_scoresprblack.font = _local1.fontName;
tf_scoresprblack.size = 18;
tf_scoresprblack.color = 0;
}
function InitStage(){
var _local1:int;
_local1 = (this.numChildren - 1);
while (_local1 >= 0) {
removeChildAt(_local1);
_local1--;
};
addChild(screenB);
screenB.x = 0;
screenB.y = 0;
}
function Render(){
this.x = 0;
this.y = 0;
screenBD.fillRect(new Rectangle(0, 0, Defs.displayarea_w, Defs.displayarea_h), 128);
GameObjects.Render();
Particles.Render(this);
Game.RenderPanel();
Game.Render();
}
function InitDrawScreen():void{
screenBD = new BitmapData(Defs.displayarea_w, Defs.displayarea_h, true, 0);
screenB = new Bitmap(screenBD);
}
function SetGameState(_arg1:int):void{
gameState = _arg1;
switch (gameState){
case gameState_TITLE:
TitleScreenState.Init(this);
break;
case gameState_HIGHSCORES:
break;
case gameState_LEVEL_PLAY:
InitLevel();
break;
};
}
function InitStageForGame(){
var _local1:int;
_local1 = (this.numChildren - 1);
while (_local1 >= 0) {
removeChildAt(_local1);
_local1--;
};
addChild(screenB);
screenB.x = 0;
screenB.y = 0;
}
function RunLevel(){
if (KeyReader.Pressed(KeyReader.KEY_P)){
if (PauseMenu.IsPaused()){
PauseMenu.Unpause();
} else {
PauseMenu.Pause();
};
};
if (PauseMenu.IsPaused() == false){
Game.UpdateGameplay();
};
Render();
}
}
}//package
Section 173
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 174
//MouseControl (MouseControl)
package {
import flash.events.*;
import flash.display.*;
public class MouseControl {
public static var mouseVelX:Number = 0;
public static var mouseVelY:Number = 0;
public static var mouseOldPosX:Number = 0;
public static var mouseOldPosY:Number = 0;
public static var mousePosX:Number = 0;
public static var mousePosY:Number = 0;
public static var buttonPressed:Boolean = false;
public static var buttonReleased:Boolean = false;
public static function MouseHandler(_arg1:MouseEvent):void{
mousePosX = _arg1.stageX;
mousePosY = _arg1.stageY;
mouseVelX = (mousePosX - mouseOldPosX);
mouseVelY = (mousePosY - mouseOldPosY);
mouseOldPosX = mousePosX;
mouseOldPosY = mousePosY;
}
public static function InitOnce(_arg1:Stage):void{
_arg1.addEventListener(MouseEvent.MOUSE_MOVE, MouseHandler);
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, MouseClickHandler);
_arg1.addEventListener(MouseEvent.MOUSE_UP, MouseUpHandler);
_arg1.addEventListener(MouseEvent.MOUSE_WHEEL, MousewheelHandler);
}
public static function MouseUpHandler(_arg1:MouseEvent):void{
buttonPressed = false;
buttonReleased = true;
}
public static function MousewheelHandler(_arg1:MouseEvent):void{
Game.wheelMoved = _arg1.delta;
}
public static function Reset():void{
buttonPressed = false;
buttonReleased = false;
}
public static function MouseClickHandler(_arg1:MouseEvent):void{
buttonPressed = true;
buttonReleased = false;
}
}
}//package
Section 175
//music01 (music01)
package {
import flash.media.*;
public dynamic class music01 extends Sound {
}
}//package
Section 176
//music02 (music02)
package {
import flash.media.*;
public dynamic class music02 extends Sound {
}
}//package
Section 177
//music03 (music03)
package {
import flash.media.*;
public dynamic class music03 extends Sound {
}
}//package
Section 178
//MusicPlayer (MusicPlayer)
package {
import flash.media.*;
public class MusicPlayer {
static var musicChannel:SoundChannel = null;
static var musicSound1:Sound;
static var musicSoundTransform:SoundTransform;
static var musicSound:Sound;
static var musicSoundTransform1:SoundTransform;
static var lastMusicID = -1;
static var musicChannel1:SoundChannel = null;
static var currentMusicID:int = -1;
public static var mid:int = 0;
static var doMusic:Boolean = true;
public static function PauseMusic(){
musicChannel.stop();
}
public static function StartMusic(_arg1:int){
_arg1 = mid;
mid++;
if (mid > 2){
mid = 0;
};
if (doMusic == false){
return;
};
if (musicChannel != null){
musicChannel.stop();
};
if (musicChannel1 != null){
musicChannel1.stop();
};
if (_arg1 == 0){
musicSoundTransform = new SoundTransform(0.75, 0);
musicSound = new music01();
musicChannel = musicSound.play(0, 999999, musicSoundTransform);
};
if (_arg1 == 1){
musicSoundTransform = new SoundTransform(0.75, 0);
musicSound = new music02();
musicChannel = musicSound.play(0, 999999, musicSoundTransform);
};
if (_arg1 == 2){
musicSoundTransform = new SoundTransform(0.75, 0);
musicSound = new music03();
musicChannel = musicSound.play(0, 999999, musicSoundTransform);
};
lastMusicID = _arg1;
}
public static function InitOnce():void{
doMusic = true;
lastMusicID = -1;
currentMusicID = -1;
}
public static function ResumeMusic(){
currentMusicID = (lastMusicID - 1);
StartMusic(lastMusicID);
}
}
}//package
Section 179
//MuteButton (MuteButton)
package {
import flash.display.*;
public dynamic class MuteButton extends MovieClip {
}
}//package
Section 180
//ObjectDef (ObjectDef)
package {
import flash.geom.*;
public class ObjectDef {
public var description:String;
var colRect:Rectangle;
var animIDs:Array;
public var xacc:Number;
public var healthBarOffset:Point;
var weaponOffsets:Array;
public var weaponRestRate:int;
public var weaponOrder:Boolean;
public var score:Number;
var offsetX:Number;
var offsetY:Number;
public var weaponFireOffset:Point;
public var massPercent:Number;
public var controlType:String;
var type:int;
var collisionCircleOffsets:Array;
var animNames:Array;
public var weaponRepeatRate:int;
var exportName:String;
var maxHealth:Number;
public var maxxv:Number;
var collisionCircleRadii:Array;
public var playerDamagePercent:Number;
public var weaponRepeats:int;
public function ObjectDef(_arg1:String, _arg2:int, _arg3:Rectangle){
animNames = new Array();
animIDs = new Array();
collisionCircleOffsets = new Array();
collisionCircleRadii = new Array();
exportName = _arg1;
type = _arg2;
colRect = _arg3.clone();
xacc = 0;
maxxv = 0;
offsetX = 0;
offsetY = 0;
weaponOffsets = new Array();
maxHealth = 100;
healthBarOffset = new Point(0, -100);
controlType = "ChasePlayer";
weaponOrder = false;
playerDamagePercent = 100;
massPercent = 100;
weaponFireOffset = new Point(0, 0);
weaponRepeatRate = 100;
weaponRepeats = 1;
weaponRestRate = 0;
score = 0;
description = "";
}
public function SetControlType(_arg1:String){
controlType = _arg1;
}
public function SetDefs(_arg1:Number, _arg2:Number, _arg3:Number){
xacc = _arg1;
maxxv = _arg2;
massPercent = _arg3;
}
public function SetWeaponFireOffset(_arg1:Number, _arg2:Number):void{
weaponFireOffset.x = _arg1;
weaponFireOffset.y = _arg2;
}
public function SetScore(_arg1:Number){
score = _arg1;
}
public function DoesAnimIDExist(_arg1:String):Boolean{
var _local2:int;
var _local3:int;
_local2 = animNames.length;
_local3 = 0;
while (_local3 < _local2) {
if (animNames[_local3] == _arg1){
return (true);
};
_local3++;
};
return (false);
}
public function AddAnim(_arg1:String, _arg2:int){
animNames.push(_arg1);
animIDs.push(_arg2);
}
public function GetWeaponOffset(_arg1:int):Point{
if (weaponOffsets.length == 0){
return (new Point(0, 0));
};
if (_arg1 >= weaponOffsets.length){
_arg1 = (weaponOffsets.length - 1);
};
return (weaponOffsets[_arg1]);
}
public function SetMaxHealth(_arg1:Number):void{
maxHealth = _arg1;
}
public function GetAnimIDFromName(_arg1:String):int{
var _local2:int;
var _local3:int;
_local2 = animNames.length;
_local3 = 0;
while (_local3 < _local2) {
if (animNames[_local3] == _arg1){
return (animIDs[_local3]);
};
_local3++;
};
trace(((("ERROR: Can't find anim name " + _arg1) + " on object ") + exportName));
return (40);
}
public function GetMaxHealth():Number{
return (maxHealth);
}
public function SetDescription(_arg1:String){
description = _arg1;
}
public function AddCollisionCircle(_arg1:Number, _arg2:Number, _arg3:Number){
collisionCircleOffsets.push(new Point(_arg1, _arg2));
collisionCircleRadii.push(_arg3);
}
public function SetHealthBarOffset(_arg1:Number, _arg2:Number):void{
healthBarOffset.x = _arg1;
healthBarOffset.y = _arg2;
}
public function SetWeaponOrder(_arg1:Boolean){
weaponOrder = _arg1;
}
public function AddWeaponOffset(_arg1:int, _arg2:Number, _arg3:Number){
var _local4:Point;
_local4 = new Point(_arg2, _arg3);
weaponOffsets.push(_local4);
}
public function AddOffset(_arg1:Number, _arg2:Number){
offsetX = _arg1;
offsetY = _arg2;
}
public function SetWeaponRate(_arg1:int, _arg2:int, _arg3:int):void{
weaponRepeatRate = _arg1;
weaponRepeats = _arg2;
weaponRestRate = _arg3;
}
}
}//package
Section 181
//ObjectDefs (ObjectDefs)
package {
import flash.geom.*;
public class ObjectDefs {
static var list:Array;
public static function Init(){
var _local1:ObjectDef;
list = new Array();
_local1 = new ObjectDef("Player", 0, new Rectangle(-20, -75, 40, 78));
_local1.SetHealthBarOffset(0, -100);
_local1.SetMaxHealth(100);
_local1.AddCollisionCircle(0, -17, 15);
_local1.AddCollisionCircle(0, -31, 15);
_local1.AddCollisionCircle(0, -45, 15);
list.push(_local1);
_local1 = new ObjectDef("Pickup", 0, new Rectangle(-20, -30, 40, 30));
_local1.SetScore(100);
list.push(_local1);
_local1 = new ObjectDef("Shell", 0, new Rectangle(-20, -30, 40, 30));
list.push(_local1);
_local1 = new ObjectDef("EnemyBullet", 0, new Rectangle(-10, -10, 20, 20));
list.push(_local1);
_local1 = new ObjectDef("EnemyBomb", 0, new Rectangle(-10, -10, 20, 20));
list.push(_local1);
_local1 = new ObjectDef("Enemy_1", 0, new Rectangle(-20, -70, 40, 70));
_local1.SetDescription("Eric, the psycho penguin");
_local1.SetScore(1000);
_local1.AddCollisionCircle(0, -30, 30);
_local1.SetControlType("ChasePlayer");
_local1.SetHealthBarOffset(0, -100);
_local1.SetMaxHealth(100);
_local1.AddWeaponOffset(0, 0, -70);
_local1.SetDefs(80, 70, 100);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy1_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy1_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy1_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy1_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_2", 0, new Rectangle(-20, -90, 40, 90));
_local1.SetDescription("Martin, the thug bird");
_local1.SetScore(2000);
_local1.SetControlType("ChasePlayer");
_local1.SetHealthBarOffset(0, -120);
_local1.SetMaxHealth(140);
_local1.AddOffset(-6, 36);
_local1.AddWeaponOffset(0, 0, -20);
_local1.SetDefs(100, 80, 120);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy2_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy2_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy2_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy2_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_3", 0, new Rectangle(-20, -100, 40, 100));
_local1.SetDescription("Aituserk will spike you");
_local1.SetWeaponOrder(true);
_local1.SetScore(3000);
_local1.SetControlType("ChasePlayer");
_local1.SetHealthBarOffset(0, -120);
_local1.SetMaxHealth(180);
_local1.AddWeaponOffset(0, 8, -32);
_local1.SetDefs(120, 80, 80);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy3_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy3_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy3_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy3_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_4", 0, new Rectangle(-20, -50, 40, 50));
_local1.SetDescription("Tiddles, the kamikaze penguin");
_local1.SetScore(4000);
_local1.SetControlType("ChasePlayerAndBomb");
_local1.SetHealthBarOffset(0, -70);
_local1.SetMaxHealth(200);
_local1.SetDefs(150, 135, 30);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy4_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy4_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy4_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy4_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_5", 0, new Rectangle(-20, -100, 40, 100));
_local1.SetDescription("Biisaiyowaq, who solves problems with fire sticks");
_local1.SetWeaponOrder(true);
_local1.SetScore(5000);
_local1.SetControlType("ChasePlayerAndShoot");
_local1.SetWeaponFireOffset(68, -52);
_local1.SetWeaponRate(100, 1, 150);
_local1.SetHealthBarOffset(0, -120);
_local1.SetMaxHealth(200);
_local1.SetDefs(100, 100, 100);
_local1.AddWeaponOffset(0, 13, -39);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy5_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy5_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy5_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy5_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_6", 0, new Rectangle(-20, -70, 40, 70));
_local1.SetDescription("Arthur, nutter penguin of legend");
_local1.SetScore(6000);
_local1.SetControlType("ChasePlayer");
_local1.SetHealthBarOffset(0, -90);
_local1.SetMaxHealth(300);
_local1.SetDefs(80, 120, 130);
_local1.AddWeaponOffset(0, 0, -50);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy6_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy6_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy6_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy6_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_7", 0, new Rectangle(-30, -120, 60, 120));
_local1.SetDescription("Winnie, a hairy monster");
_local1.SetWeaponOrder(true);
_local1.SetScore(7000);
_local1.SetControlType("ChasePlayerAndShoot");
_local1.SetWeaponFireOffset(55, -95);
_local1.SetWeaponRate(50, 2, 100);
_local1.SetHealthBarOffset(0, -140);
_local1.SetMaxHealth(500);
_local1.SetDefs(80, 75, 120);
_local1.AddWeaponOffset(0, -15, -72);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy7_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy7_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy7_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy7_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_8", 0, new Rectangle(-30, -120, 60, 120));
_local1.SetDescription("Teddie, who has found that repeaters are good");
_local1.SetWeaponOrder(true);
_local1.SetScore(8000);
_local1.SetControlType("ChasePlayerAndShoot");
_local1.SetWeaponRate(20, 4, 100);
_local1.SetWeaponFireOffset(55, -95);
_local1.SetHealthBarOffset(0, -140);
_local1.SetMaxHealth(750);
_local1.SetDefs(100, 80, 120);
_local1.AddWeaponOffset(0, -15, -72);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy8_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy8_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy8_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy8_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_9", 0, new Rectangle(-40, -80, 80, 80));
_local1.SetDescription("Trixie, his bite is worse than his bark");
_local1.SetScore(9000);
_local1.SetControlType("ChasePlayerWithAttackFrame");
_local1.SetHealthBarOffset(0, -70);
_local1.SetMaxHealth(250);
_local1.SetDefs(160, 175, 60);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy9_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy9_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy9_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy9_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_10", 0, new Rectangle(-20, -90, 40, 90));
_local1.SetDescription("Leatherface, who does not have a leather face");
_local1.SetScore(10000);
_local1.SetControlType("ChasePlayer");
_local1.SetHealthBarOffset(0, -90);
_local1.SetMaxHealth(700);
_local1.SetDefs(100, 100, 75);
_local1.AddWeaponOffset(0, 0, -100);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy10_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy10_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy10_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy10_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_11", 0, new Rectangle(-20, -50, 40, 50));
_local1.SetDescription("Gordon, a lazy but vicious bird");
_local1.SetScore(11000);
_local1.SetControlType("ChasePlayerAndShootWithAttackFrame");
_local1.SetHealthBarOffset(0, -140);
_local1.SetMaxHealth(550);
_local1.SetDefs(100, 150, 150);
_local1.AddWeaponOffset(0, 0, -50);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy11_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy11_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy11_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy11_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_12", 0, new Rectangle(-30, -100, 60, 100));
_local1.SetDescription("Tetsuowk, bird of metal");
_local1.SetScore(12000);
_local1.SetWeaponOrder(true);
_local1.SetControlType("ChasePlayerAndShoot");
_local1.SetWeaponRate(20, 4, 100);
_local1.SetWeaponFireOffset(35, -45);
_local1.SetHealthBarOffset(0, -140);
_local1.SetMaxHealth(1000);
_local1.SetDefs(60, 40, 160);
_local1.AddWeaponOffset(0, -20, -80);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy12_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy12_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy12_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy12_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_13", 0, new Rectangle(-30, -100, 60, 100));
_local1.SetDescription("Tin Sam, beware his evil intent");
_local1.SetScore(13000);
_local1.SetWeaponOrder(true);
_local1.SetControlType("ChasePlayerAndShoot");
_local1.SetWeaponRate(20, 4, 100);
_local1.SetWeaponFireOffset(35, -43);
_local1.SetHealthBarOffset(0, -140);
_local1.SetMaxHealth(1000);
_local1.SetDefs(80, 60, 170);
_local1.AddWeaponOffset(0, -40, -120);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy13_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy13_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy13_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy13_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_14", 0, new Rectangle(-30, -30, 60, 60));
_local1.SetDescription("Squawk the slayer");
_local1.SetScore(5000);
_local1.SetControlType("BirdWithSwoop");
_local1.SetHealthBarOffset(0, -70);
_local1.SetMaxHealth(250);
_local1.SetDefs(140, 155, 80);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy14_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy14_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy14_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy14_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_15", 0, new Rectangle(-30, -30, 60, 60));
_local1.SetDescription("Walrus, the egg-man");
_local1.SetScore(5100);
_local1.SetControlType("BirdWithBomb");
_local1.SetHealthBarOffset(0, -70);
_local1.SetMaxHealth(350);
_local1.SetDefs(130, 135, 80);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy14_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy14_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy14_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy14_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_16", 0, new Rectangle(-40, -200, 80, 200));
_local1.SetDescription("Big Boy Bennie, he's been at the protein drinks");
_local1.SetMaxHealth(10000);
_local1.SetScore(10000);
_local1.SetControlType("Boss1");
_local1.SetHealthBarOffset(0, -220);
_local1.SetDefs(130, 135, 80);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy16_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy16_run);
_local1.AddAnim("attack", GraphicObjects.gfx_enemy16_attack);
_local1.AddAnim("death", GraphicObjects.gfx_enemy16_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_17", 0, new Rectangle(-100, -100, 200, 100));
_local1.SetDescription("Arjalinerk, eskimo I scream");
_local1.SetScore(10000);
_local1.AddCollisionCircle(0, -30, 30);
_local1.SetControlType("Boss2");
_local1.SetHealthBarOffset(0, -100);
_local1.SetMaxHealth(15000);
_local1.AddWeaponOffset(0, 70, -40);
_local1.SetDefs(100, 300, 100);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy17_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy17_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy17_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy17_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_18", 0, new Rectangle(-40, -140, 80, 140));
_local1.SetDescription("Big Ted, who clearly has an inferiority complex");
_local1.SetWeaponOrder(true);
_local1.SetScore(8000);
_local1.SetControlType("Boss3");
_local1.SetWeaponRate(5, 10, 100);
_local1.SetWeaponFireOffset(130, -55);
_local1.SetHealthBarOffset(0, -170);
_local1.SetMaxHealth(20000);
_local1.SetDefs(100, 80, 120);
_local1.AddWeaponOffset(0, -20, -70);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy18_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy18_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy18_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy18_death);
list.push(_local1);
_local1 = new ObjectDef("Enemy_19", 0, new Rectangle(-20, -85, 40, 85));
_local1.SetDescription("Clive, king bird of Antarctica (so he says)");
_local1.SetScore(1000);
_local1.AddCollisionCircle(0, -30, 30);
_local1.SetControlType("Boss4");
_local1.SetHealthBarOffset(0, -100);
_local1.SetMaxHealth(30000);
_local1.AddWeaponOffset(0, 0, -70);
_local1.SetDefs(150, 300, 100);
_local1.AddAnim("idle", GraphicObjects.gfx_enemy19_idle);
_local1.AddAnim("run", GraphicObjects.gfx_enemy19_run);
_local1.AddAnim("weapon_hit", GraphicObjects.gfx_enemy19_weapon);
_local1.AddAnim("death", GraphicObjects.gfx_enemy19_death);
_local1.AddAnim("bolt", GraphicObjects.gfx_enemy19_bolt);
list.push(_local1);
}
public static function GetObjectDefByExportName(_arg1:String){
var _local2:ObjectDef;
var _local3:int;
var _local4:int;
_local4 = list.length;
_local3 = 0;
while (_local3 < _local4) {
_local2 = list[_local3];
if (_local2.exportName == _arg1){
return (_local2);
};
_local3++;
};
trace(("ERROR: ObjectDefs can't find object exportname " + _arg1));
return (null);
}
}
}//package
Section 182
//Particle (Particle)
package {
class Particle {
var graphicID:int;
public var yvel:Number;
var timer:Number;
var active:Boolean;
var maxframe:int;
var counter:int;
var speed:Number;
var dir:Number;
var rot:Number;
var xpos:Number;
var alpha:Number;
var alphaAdd:Number;
public var xvel:Number;
var m:Main;
var frame:Number;
var frameVel:Number;
var visible:Boolean;
var maxy:Number;
var type:int;
var ypos:Number;
function PlayAnimation(_arg1):Boolean{
frame = (frame + frameVel);
if (frame >= maxframe){
frame = maxframe;
return (true);
};
return (false);
}
function Update(_arg1:Number){
var _local2:Number;
var _local3:Number;
_local3 = 0.02;
if (type == Particles.type_dust){
frame = (frame + frameVel);
if (frame >= maxframe){
frame = maxframe;
active = false;
};
};
if (type == Particles.type_snowflake){
xpos = (xpos + xvel);
ypos = (ypos + yvel);
if (ypos > maxy){
active = false;
};
};
}
}
}//package
Section 183
//Particle_Dust (Particle_Dust)
package {
import flash.display.*;
public dynamic class Particle_Dust extends MovieClip {
}
}//package
Section 184
//Particle_Snowflake (Particle_Snowflake)
package {
import flash.display.*;
public dynamic class Particle_Snowflake extends MovieClip {
}
}//package
Section 185
//Particle_Weapon0 (Particle_Weapon0)
package {
import flash.display.*;
public dynamic class Particle_Weapon0 extends MovieClip {
}
}//package
Section 186
//Particles (Particles)
package {
import flash.display.*;
import flash.geom.*;
public class Particles {
public static const type_snowflake = 1;
public static const type_dust = 0;
static var max:int;
static var main:Main;
static var list:Array;
static var nextIndex:int;
public function Particles():void{
}
public static function Add(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Particle{
var _local6:Number;
var _local7:Number;
var _local8:Particle;
_local8 = list[nextIndex];
nextIndex++;
if (nextIndex >= max){
nextIndex = 0;
};
_local8.active = true;
_local8.timer = 0;
_local8.type = _arg1;
_local8.alpha = 1;
_local8.alphaAdd = 0;
_local8.visible = true;
_local8.rot = 0;
if (_arg1 == type_dust){
_local8.xpos = _arg2;
_local8.ypos = _arg3;
_local8.graphicID = _arg4;
_local8.frame = 0;
_local8.frameVel = 0.9;
};
if (_arg1 == type_snowflake){
_local8.xpos = _arg2;
_local8.ypos = (-90 - Game.scrollYoff);
_local8.yvel = Utils.RandBetweenFloat(3, 3.5);
_local8.xvel = Utils.RandBetweenFloat(3, 4);
_local8.graphicID = GraphicObjects.gfx_particle_snowflake;
_local8.frame = Utils.RandBetweenInt(5, 15);
_local8.maxy = (Game.scrollH + 32);
};
_local8.maxframe = (GraphicObjects.GetNumFrames(_local8.graphicID) - 1);
return (_local8);
}
public static function GetNextIndex():int{
return (nextIndex);
}
public static function Reset(){
var _local1:int;
nextIndex = 0;
_local1 = 0;
while (_local1 < max) {
list[_local1].active = false;
_local1++;
};
}
public static function Update(_arg1:Number){
var _local2:int;
var _local3:Particle;
_local2 = 0;
while (_local2 < max) {
_local3 = list[_local2];
if (_local3.active == true){
_local3.Update(_arg1);
};
_local2++;
};
}
public static function InitOnce(_arg1:Main, _arg2:int):void{
var _local3:int;
main = _arg1;
max = _arg2;
nextIndex = 0;
list = new Array(max);
_local3 = 0;
while (_local3 < max) {
list[_local3] = new Particle();
list[_local3].active = false;
_local3++;
};
}
public static function CountActive():int{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < max) {
if (list[_local2].active){
_local1++;
};
_local2++;
};
return (_local1);
}
public static function Render(_arg1:Main){
var _local2:Number;
var _local3:Number;
var _local4:BitmapData;
var _local5:int;
var _local6:Particle;
var _local7:Number;
var _local8:Number;
_local2 = (-(Game.scrollX) + Game.scrollXoff);
_local3 = (-(Game.scrollY) + Game.scrollYoff);
_local4 = _arg1.screenBD;
_local5 = 0;
while (_local5 < max) {
_local6 = list[_local5];
if (((_local6.active) && (_local6.visible))){
_local7 = _local6.xpos;
_local8 = _local6.ypos;
_local7 = (_local7 + _local2);
_local8 = (_local8 + _local3);
if (_local6.rot == 0){
GraphicObjects.RenderAt(_local6.graphicID, _local6.frame, _arg1.screenBD, _local7, _local8);
} else {
GraphicObjects.RenderAtRotScaled(_local6.graphicID, _local6.frame, _local4, _local7, _local8, false, 1, _local6.rot);
};
};
_local5++;
};
}
}
}//package
Section 187
//PauseMenu (PauseMenu)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
import flash.ui.*;
import flash.net.*;
public class PauseMenu {
static var active:Boolean;
static var pauseMC:MovieClip;
static var main:Main;
public function PauseMenu():void{
}
public static function buttonQuitPressed(_arg1:MouseEvent){
Unpause();
Game.main.SetGameState(Main.gameState_TITLE);
}
public static function buttonSoundPressed(_arg1:MouseEvent){
var _local2:Boolean;
_local2 = MusicPlayer.doMusic;
if (_local2 == true){
MusicPlayer.PauseMusic();
MusicPlayer.doMusic = false;
} else {
MusicPlayer.doMusic = true;
MusicPlayer.ResumeMusic();
};
_local2 = SoundPlayer.doSFX;
SoundPlayer.doSFX = (_local2 == false);
pauseMC.pm.selectedSound.visible = MusicPlayer.doMusic;
}
public static function buttonContinuePressed(_arg1:MouseEvent){
Unpause();
}
public static function InitOnce(_arg1:Main):void{
main = _arg1;
active = false;
}
public static function Pause():void{
Mouse.show();
pauseMC = new PauseMenuScreen();
main.addChild(pauseMC);
pauseMC.x = 90;
pauseMC.y = 50;
pauseMC.pm.buttonSound.addEventListener(MouseEvent.CLICK, buttonSoundPressed);
pauseMC.pm.buttonQuit.addEventListener(MouseEvent.CLICK, buttonQuitPressed);
pauseMC.pm.buttonContinue.addEventListener(MouseEvent.CLICK, buttonContinuePressed);
TitleScreenState.MoreGamesButton(pauseMC.pm);
active = true;
pauseMC.pm.selectedSound.visible = MusicPlayer.doMusic;
SoundPlayer.StopChainsaw();
}
public static function Unpause():void{
active = false;
Game.main.removeChild(pauseMC);
pauseMC = null;
KeyReader.InitOnce(Game.main.stage);
}
public static function IsPaused():Boolean{
return (active);
}
}
}//package
Section 188
//PauseMenuScreen (PauseMenuScreen)
package {
import flash.display.*;
public dynamic class PauseMenuScreen extends MovieClip {
public var pm:MovieClip;
public function PauseMenuScreen(){
addFrameScript(23, frame24, 48, frame49);
}
function frame24(){
stop();
}
function frame49(){
stop();
}
}
}//package
Section 189
//penguin_idle (penguin_idle)
package {
import flash.display.*;
public dynamic class penguin_idle extends MovieClip {
public function penguin_idle(){
addFrameScript(44, frame45);
}
function frame45(){
gotoAndPlay("breathing_start");
}
}
}//package
Section 190
//penguin_jump_mc (penguin_jump_mc)
package {
import flash.display.*;
public dynamic class penguin_jump_mc extends MovieClip {
}
}//package
Section 191
//penguin_run (penguin_run)
package {
import flash.display.*;
public dynamic class penguin_run extends MovieClip {
}
}//package
Section 192
//penguin_runbackwards (penguin_runbackwards)
package {
import flash.display.*;
public dynamic class penguin_runbackwards extends MovieClip {
}
}//package
Section 193
//Pickup_Ammo (Pickup_Ammo)
package {
import flash.display.*;
public dynamic class Pickup_Ammo extends MovieClip {
}
}//package
Section 194
//Pickup_HealthLarge (Pickup_HealthLarge)
package {
import flash.display.*;
public dynamic class Pickup_HealthLarge extends MovieClip {
}
}//package
Section 195
//Pickup_HealthSmall (Pickup_HealthSmall)
package {
import flash.display.*;
public dynamic class Pickup_HealthSmall extends MovieClip {
}
}//package
Section 196
//Pickup_Money1 (Pickup_Money1)
package {
import flash.display.*;
public dynamic class Pickup_Money1 extends MovieClip {
}
}//package
Section 197
//Pickup_Money2 (Pickup_Money2)
package {
import flash.display.*;
public dynamic class Pickup_Money2 extends MovieClip {
}
}//package
Section 198
//Pickup_Money3 (Pickup_Money3)
package {
import flash.display.*;
public dynamic class Pickup_Money3 extends MovieClip {
}
}//package
Section 199
//pickups_ammo_got (pickups_ammo_got)
package {
import flash.display.*;
public dynamic class pickups_ammo_got extends MovieClip {
}
}//package
Section 200
//pickups_ammo_idle (pickups_ammo_idle)
package {
import flash.display.*;
public dynamic class pickups_ammo_idle extends MovieClip {
}
}//package
Section 201
//pickups_cash_got (pickups_cash_got)
package {
import flash.display.*;
public dynamic class pickups_cash_got extends MovieClip {
}
}//package
Section 202
//pickups_cash_idle (pickups_cash_idle)
package {
import flash.display.*;
public dynamic class pickups_cash_idle extends MovieClip {
}
}//package
Section 203
//pickups_health_got (pickups_health_got)
package {
import flash.display.*;
public dynamic class pickups_health_got extends MovieClip {
}
}//package
Section 204
//pickups_health_idle (pickups_health_idle)
package {
import flash.display.*;
public dynamic class pickups_health_idle extends MovieClip {
}
}//package
Section 205
//Pickupwav (Pickupwav)
package {
import flash.media.*;
public dynamic class Pickupwav extends Sound {
}
}//package
Section 206
//player_die (player_die)
package {
import flash.display.*;
public dynamic class player_die extends MovieClip {
}
}//package
Section 207
//Poly (Poly)
package {
import flash.geom.*;
public class Poly {
var param0:String;
var param1:String;
var subTypeName:String;
var active:Boolean;
var name:String;
var pointList:Array;
var typeName:String;
var boundingRectangle:Rectangle;
var iparam0:int;
var lineList:Array;
var closed:Boolean;
var hitCallback:Object;
var type:int;
public static const polytype_WALL = 0;
public static const polytype_CEILING = 7;
public static const polytype_ZONE = 2;
public static const polytype_FLOOR = 5;
public static const polytype_OVERLAY = 4;
public static const polytype_PATH = 3;
public static const polytype_TRIGGER = 1;
public function Poly(_arg1:String, _arg2:int, _arg3:Number, _arg4:Number):void{
lineList = new Array();
active = true;
type = _arg2;
name = _arg1;
boundingRectangle = null;
hitCallback = null;
closed = false;
pointList = new Array();
pointList.push(new Point(_arg3, _arg4));
}
public function GetPoint(_arg1:int):Point{
return (new Point(pointList[_arg1].x, pointList[_arg1].y));
}
public function GetPointNormal(_arg1:int):Point{
return (new Point(lineList[_arg1].nx, lineList[_arg1].ny));
}
public function AddLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Line;
var _local6:Rectangle;
_local5 = new Line(_arg1, _arg2, _arg3, _arg4);
lineList.push(_local5);
pointList.push(new Point(_arg3, _arg4));
if (boundingRectangle == null){
boundingRectangle = _local5.boundingRect;
} else {
_local6 = boundingRectangle.clone();
boundingRectangle = _local6.union(_local5.boundingRect);
};
}
public function GetLine(_arg1:int):Line{
return (lineList[_arg1]);
}
public function Finish(_arg1:Boolean){
var _local2:Line;
var _local3:Line;
var _local4:Line;
var _local5:Rectangle;
if (_arg1){
_local2 = lineList[0];
_local3 = lineList[(lineList.length - 1)];
_local4 = new Line(_local3.x1, _local3.y1, _local2.x0, _local2.y0);
lineList.push(_local4);
_local5 = boundingRectangle.clone();
boundingRectangle = _local5.union(_local4.boundingRect);
};
closed = _arg1;
}
public function GetNumLines():int{
return (lineList.length);
}
public function GetNumPoints():int{
return (pointList.length);
}
public static function FindAllByType(_arg1:int, _arg2:Array):Array{
var _local3:Array;
var _local4:Poly;
_local3 = new Array();
for each (_local4 in _arg2) {
if (_local4.type == _arg1){
_local3.push(_local4);
};
};
return (_local3);
}
public static function FindByName(_arg1:String, _arg2:Array):Poly{
var _local3:Poly;
for each (_local3 in _arg2) {
if (_local3.name == _arg1){
return (_local3);
};
};
return (null);
}
public static function FindIndexByName(_arg1:String, _arg2:Array):int{
var _local3:int;
var _local4:Poly;
_local3 = 0;
for each (_local4 in _arg2) {
if (_local4.name == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
}
}//package
Section 208
//ricochetwav (ricochetwav)
package {
import flash.media.*;
public dynamic class ricochetwav extends Sound {
}
}//package
Section 209
//rocket01wav (rocket01wav)
package {
import flash.media.*;
public dynamic class rocket01wav extends Sound {
}
}//package
Section 210
//SetupScript (SetupScript)
package {
import flash.geom.*;
public class SetupScript {
static const outputMessages:Boolean = false;
static var main:Main;
static var lastGOGeneratedX;
static var lastGOGeneratedY;
static var lineStartX:int;
static var lineStartY:int;
static var lineType:int;
static var lineRectangle:Rectangle;
static var currentPoly:Poly;
static var lastGOGenerated;
static var lineList:Array;
public static function InitOnce(_arg1:Main){
main = _arg1;
}
static function AddPickup(_arg1:int, _arg2:int):void{
}
static function AddEnemy(_arg1:String, _arg2:int, _arg3:int, _arg4:int):void{
}
static function AddObject(_arg1:String, _arg2:int, _arg3:int, _arg4:String, _arg5:String, _arg6:String, _arg7:int=0, _arg8:int=0, _arg9:Number=0, _arg10:Number=0):void{
var _local11:GameObj;
if (outputMessages){
trace((((((("SetupScript.AddObject(" + _arg2) + ", ") + _arg3) + ", ") + _arg4) + ");"));
};
if (_arg5 == "obj"){
if (_arg4 == "StartPoint"){
Game.startPoints.push(new Point(_arg2, _arg3));
};
if (_arg4 == "Exit"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 1100);
_local11.InitExit();
_local11.name = _arg1;
};
if (_arg4 == "BouncyPad"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 1000);
_local11.InitBouncyPad();
_local11.name = _arg1;
};
if (_arg4.substr(0, 9) == "Platform_"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 900);
_local11.InitPlatform(_arg4, _arg6, _arg9);
_local11.name = _arg1;
};
if (_arg4 == "Switch"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 1100);
_local11.InitSwitch(_arg6);
_local11.name = _arg1;
};
if (_arg4 == "Door"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 1100);
_local11.name = _arg1;
};
if (_arg4 == "Sign"){
_local11 = GameObjects.AddObj(_arg2, _arg3, 1200);
_local11.InitSign(_arg7);
_local11.name = _arg1;
};
};
lastGOGenerated = _local11;
lastGOGeneratedX = _arg2;
lastGOGeneratedY = _arg3;
}
static function LineEnd(_arg1:Boolean){
if (outputMessages){
trace((("SetupScript.LineEnd(" + _arg1) + ");"));
};
currentPoly.Finish(_arg1);
Game.polygonList.push(currentPoly);
if (lineType == 1){
Trigger.Add((Game.polygonList.length - 1));
};
}
static function LineStart(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:String="", _arg6:String="", _arg7:String="", _arg8:String=""){
if (outputMessages){
trace((((((("SetupScript.LineStart(" + _arg2) + ", ") + _arg3) + ", ") + _arg4) + ");"));
};
lineStartX = _arg2;
lineStartY = _arg3;
lineType = _arg4;
currentPoly = new Poly(_arg1, _arg4, _arg2, _arg3);
currentPoly.typeName = _arg5;
currentPoly.subTypeName = _arg6;
currentPoly.iparam0 = int(_arg7);
}
static function LineAdd(_arg1:int, _arg2:int, _arg3:int){
if (outputMessages){
trace((((((("SetupScript.LineAdd(" + _arg1) + ", ") + _arg2) + ", ") + _arg3) + ");"));
};
currentPoly.AddLine(lineStartX, lineStartY, _arg1, _arg2);
lineStartX = _arg1;
lineStartY = _arg2;
}
static function AddExit(_arg1:int, _arg2:int):void{
}
}
}//package
Section 211
//Shop (Shop)
package {
import flash.events.*;
import flash.display.*;
import flash.ui.*;
public class Shop {
static var weaponButtons:Array;
public static var active:Boolean = false;
static var healthCost:int;
static var extraList:Array = new Array("indicator_0_D_0", "indicator_0_D_1", "indicator_0_D_2");
static var mc:MovieClip;
static var upgradeList:Array;
static var isBetweenLevels:Boolean;
static var damageList:Array = new Array("indicator_0_B_0", "indicator_0_B_1", "indicator_0_B_2");
static var currentWeapon:int;
static var accuracyList:Array = new Array("indicator_0_A_0", "indicator_0_A_1", "indicator_0_A_2");
static var ammoCost:int;
public function Shop(){
active = false;
}
static function SetClips(){
var _local1:Array;
var _local2:Array;
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:WeaponDef;
_local1 = new Array(accuracyList, damageList, extraList);
_local6 = 0;
while (_local6 < 3) {
_local4 = WeaponDefs.GetUpgrade(currentWeapon, _local6);
_local3 = _local1[_local6];
_local2 = WeaponDefs.GetUpgradeList(currentWeapon, _local6);
_local5 = 0;
while (_local5 < 3) {
mc.weapons.selector[_local3[_local5]].visible = false;
if (_local5 < _local2.length){
mc.weapons.selector[_local3[_local5]].visible = true;
};
if (_local5 < _local4){
mc.weapons.selector[_local3[_local5]].gotoAndStop(2);
} else {
mc.weapons.selector[_local3[_local5]].gotoAndStop(1);
};
_local5++;
};
_local6++;
};
_local7 = WeaponDefs.GetWeaponDef(currentWeapon);
mc.weapons.selector.buttonBuyUpgrade0.visible = false;
mc.weapons.selector.buttonBuyUpgrade1.visible = false;
mc.weapons.selector.buttonBuyUpgrade2.visible = false;
if (_local7.available){
if (CanBuyUpgrade(0)){
mc.weapons.selector.buttonBuyUpgrade0.visible = true;
};
if (CanBuyUpgrade(1)){
mc.weapons.selector.buttonBuyUpgrade1.visible = true;
};
if (CanBuyUpgrade(2)){
mc.weapons.selector.buttonBuyUpgrade2.visible = true;
};
};
mc.weapons.selector.textBuyWeapon.visible = false;
mc.weapons.selector.buttonBuyClip.visible = false;
if (CanBuyWeapon()){
mc.weapons.selector.buttonBuyClip.visible = true;
mc.weapons.selector.textBuyWeapon.visible = true;
};
mc.buttonHealth.visible = false;
mc.textHealthPrice.visible = false;
if (CanBuyHealth()){
mc.buttonHealth.visible = true;
mc.textHealthPrice.visible = true;
mc.textHealthPrice.text = ("$" + healthCost.toString());
};
mc.buttonAmmo.visible = false;
mc.textAmmoPrice.visible = false;
if (CanBuyAmmo()){
mc.buttonAmmo.visible = true;
mc.textAmmoPrice.visible = true;
mc.textAmmoPrice.text = ("$" + ammoCost.toString());
};
SetTicks();
SetText();
mc.textCash.text = ("Cash: $" + Game.currentCash.toString());
mc.textHealth.text = (("Health: " + Game.playerHealth.toString()) + "%");
mc.textAmmo.text = ("Ammo: " + Game.ammo.toString());
}
public static function CanBuyUpgrade(_arg1:int):Boolean{
var _local2:Number;
if (WeaponDefs.CanUpgrade(currentWeapon, _arg1)){
_local2 = WeaponDefs.GetUpgradeCost(currentWeapon, _arg1);
if (Game.currentCash >= _local2){
return (true);
};
};
return (false);
}
static function SetText(){
var _local1:WeaponDef;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = WeaponDefs.list[currentWeapon];
mc.weapons.selector.textPrice.text = ("Price: " + _local1.price.toString());
trace(("damage" + _local1.damage.toString()));
mc.weapons.selector.textDamage.text = ("Damage: " + _local1.damage.toString());
mc.weapons.selector.textAccuracy.text = ("Accuracy: " + _local1.accuracy.toString());
trace(_local1.upgrades[1]);
trace(_local1.damageUpgrades[_local1.upgrades[1]]);
_local2 = _local1.upgrades[0];
_local3 = _local1.upgrades[1];
_local4 = _local1.upgrades[2];
if (_local2 < _local1.GetMaxUpgrade(0)){
mc.weapons.selector.textUpAccuracy.text = (("Accuracy " + _local1.accuracyUpgrades[_local2].toString()) + "%");
mc.weapons.selector.textUpAccuracyCost.text = ("$" + _local1.accuracyCosts[_local2].toString());
} else {
mc.weapons.selector.textUpAccuracy.text = "Accuracy";
mc.weapons.selector.textUpAccuracyCost.text = "";
};
if (_local3 < _local1.GetMaxUpgrade(1)){
mc.weapons.selector.textUpDamage.text = (("Damage " + _local1.damageUpgrades[_local3].toString()) + "%");
mc.weapons.selector.textUpDamageCost.text = ("$" + _local1.damageCosts[_local3].toString());
} else {
mc.weapons.selector.textUpDamage.text = "Damage";
mc.weapons.selector.textUpDamageCost.text = "";
};
if (_local4 < _local1.GetMaxUpgrade(2)){
mc.weapons.selector.textUpExtra.text = _local1.GetExtraText();
mc.weapons.selector.textUpExtraCost.text = ("$" + _local1.extraCosts[_local4].toString());
} else {
mc.weapons.selector.textUpExtra.text = _local1.GetExtraText();
mc.weapons.selector.textUpExtraCost.text = "";
};
}
public static function buttonHealthPressed(_arg1:MouseEvent){
if (CanBuyHealth()){
Game.currentCash = (Game.currentCash - healthCost);
healthCost = (healthCost + 50);
Game.playerHealth = (Game.playerHealth + 10);
if (Game.playerHealth >= 100){
Game.playerHealth = 100;
};
};
SetClips();
}
public static function buttonWeaponPressed(_arg1:MouseEvent){
var _local2:String;
var _local3:int;
_local2 = _arg1.currentTarget.name;
trace((_local2 + " pressed"));
mc.weapons.x = 100;
_local3 = weaponButtons.indexOf(_local2);
currentWeapon = _local3;
mc.weapons.selector.gotoAndStop((_local3 + 1));
SetClips();
}
public static function buttonBuyClipPressed(_arg1:MouseEvent){
if (CanBuyWeapon()){
WeaponDefs.MakeWeaponAvailable(currentWeapon);
Game.currentCash = (Game.currentCash - WeaponDefs.GetWeaponPrice(currentWeapon));
};
SetClips();
}
public static function buttonStartPressed(_arg1:MouseEvent){
}
static function SetTicks(){
var _local1:int;
var _local2:WeaponDef;
var _local3:MovieClip;
_local1 = 0;
while (_local1 < WeaponDefs.list.length) {
_local2 = WeaponDefs.list[_local1];
_local3 = mc.weapons[("weaponTick" + _local1.toString())];
_local3.visible = false;
if (_local2.available){
_local3.visible = true;
};
_local1++;
};
}
public static function CanBuyAmmo():Boolean{
var _local1:int;
_local1 = 500;
if (Game.ammo >= _local1){
return (false);
};
if (Game.currentCash >= ammoCost){
return (true);
};
return (false);
}
public static function buttonAmmoPressed(_arg1:MouseEvent){
var _local2:int;
_local2 = 500;
if (CanBuyAmmo()){
Game.currentCash = (Game.currentCash - ammoCost);
ammoCost = (ammoCost + 50);
Game.ammo = (Game.ammo + 20);
if (Game.ammo >= _local2){
Game.ammo = _local2;
};
};
SetClips();
}
public static function Init(_arg1:Boolean){
var _local2:int;
Mouse.show();
SoundPlayer.StopChainsaw();
isBetweenLevels = _arg1;
upgradeList = new Array();
weaponButtons = new Array("buttonWeapon0", "buttonWeapon1", "buttonWeapon2", "buttonWeapon3", "buttonWeapon4", "buttonWeapon5", "buttonWeapon6", "buttonWeapon7", "buttonWeapon8");
currentWeapon = 0;
active = true;
mc = Game.main.AddMovieClip(0, 0, new shop_mc());
mc.gotoAndStop(1);
mc.buttonOK.addEventListener(MouseEvent.CLICK, buttonOKPressed);
mc.buttonHealth.addEventListener(MouseEvent.CLICK, buttonHealthPressed);
mc.buttonAmmo.addEventListener(MouseEvent.CLICK, buttonAmmoPressed);
_local2 = 0;
while (_local2 < weaponButtons.length) {
mc.weapons[weaponButtons[_local2]].addEventListener(MouseEvent.CLICK, buttonWeaponPressed);
_local2++;
};
mc.weapons.selector.gotoAndStop(1);
mc.weapons.selector.buttonBuyClip.addEventListener(MouseEvent.CLICK, buttonBuyClipPressed);
mc.weapons.selector.buttonBuyUpgrade0.addEventListener(MouseEvent.CLICK, buttonBuyUpgradePressed);
mc.weapons.selector.buttonBuyUpgrade1.addEventListener(MouseEvent.CLICK, buttonBuyUpgradePressed);
mc.weapons.selector.buttonBuyUpgrade2.addEventListener(MouseEvent.CLICK, buttonBuyUpgradePressed);
TitleScreenState.MoreGamesButton(mc);
TitleScreenState.KongButton(mc);
healthCost = 100;
ammoCost = 100;
SetClips();
}
public static function CanBuyWeapon():Boolean{
if (WeaponDefs.IsWeaponAvailable(currentWeapon)){
return (false);
};
if (Game.currentCash >= WeaponDefs.GetWeaponPrice(currentWeapon)){
return (true);
};
return (false);
}
public static function buttonOKPressed(_arg1:MouseEvent){
Game.main.removeChild(mc);
KeyReader.InitOnce(Game.main.stage);
mc = null;
active = false;
if (isBetweenLevels){
Game.NextLevel();
};
}
public static function CanBuyHealth():Boolean{
if (Game.playerHealth >= 100){
return (false);
};
if (Game.currentCash >= healthCost){
return (true);
};
return (false);
}
public static function buttonBuyUpgradePressed(_arg1:MouseEvent){
var _local2:String;
var _local3:int;
var _local4:Number;
_local2 = _arg1.currentTarget.name;
_local3 = 0;
if (_local2 == "buttonBuyUpgrade0"){
_local3 = 0;
};
if (_local2 == "buttonBuyUpgrade1"){
_local3 = 1;
};
if (_local2 == "buttonBuyUpgrade2"){
_local3 = 2;
};
trace(("upgrade " + _local3));
if (WeaponDefs.CanUpgrade(currentWeapon, _local3)){
_local4 = WeaponDefs.GetUpgradeCost(currentWeapon, _local3);
if (Game.currentCash >= _local4){
WeaponDefs.DoUpgrade(currentWeapon, _local3);
Game.currentCash = (Game.currentCash - _local4);
};
};
SetClips();
}
}
}//package
Section 212
//shop_mc (shop_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class shop_mc extends MovieClip {
public var textCash:TextField;
public var buttonHealth:SimpleButton;
public var buttonAmmo:SimpleButton;
public var buttonMoreGames:SimpleButton;
public var textAmmoPrice:TextField;
public var buttonKong:SimpleButton;
public var buttonOK:SimpleButton;
public var textAmmo:TextField;
public var weapons:MovieClip;
public var textHealthPrice:TextField;
public var textHealth:TextField;
}
}//package
Section 213
//shot01wav (shot01wav)
package {
import flash.media.*;
public dynamic class shot01wav extends Sound {
}
}//package
Section 214
//shot02wav (shot02wav)
package {
import flash.media.*;
public dynamic class shot02wav extends Sound {
}
}//package
Section 215
//shot03wav (shot03wav)
package {
import flash.media.*;
public dynamic class shot03wav extends Sound {
}
}//package
Section 216
//shot04wav (shot04wav)
package {
import flash.media.*;
public dynamic class shot04wav extends Sound {
}
}//package
Section 217
//shotgunwav (shotgunwav)
package {
import flash.media.*;
public dynamic class shotgunwav extends Sound {
}
}//package
Section 218
//SiteLock (SiteLock)
package {
import flash.events.*;
public class SiteLock {
static var miniclip_locked:Boolean = false;
static var sitelockActive:Boolean = false;
public static function InitOnce():void{
}
static function onValidDomain(_arg1:Event):void{
trace("Miniclip sitelock OK");
miniclip_locked = false;
}
public static function IsLocked():Boolean{
var _local1:String;
_local1 = GetDomain();
if (Licensors.GetLicensor() == Licensors.LICENSOR_ARMORGAMES){
if (_local1 != "armorgames.com"){
return (true);
};
return (false);
};
if (Licensors.GetLicensor() == Licensors.LICENSOR_BUBBLEBOX){
if (_local1 != "bubblebox.com"){
return (true);
};
return (false);
};
if (Licensors.GetLicensor() == Licensors.LICENSOR_ANDKON){
if (_local1 != "andkon.com"){
return (true);
};
return (false);
};
if (Licensors.GetLicensor() == Licensors.LICENSOR_BIGFISH){
_local1 = GetDomain();
if (((((((((((!((_local1 == "bigfishgames.com"))) && (!((_local1 == "bigfishgames.de"))))) && (!((_local1 == "bigfishgames.fr"))))) && (!((_local1 == "bigfishgames.es"))))) && (!((_local1 == "bigfishgames.mx"))))) && (!((_local1 == "bigfishgames.jp"))))){
return (true);
};
return (false);
};
return (false);
}
public static function GetDomain():String{
var _local1:String;
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local1 = Main.theStage.loaderInfo.url;
_local2 = (_local1.indexOf("://") + 3);
_local3 = _local1.indexOf("/", _local2);
_local4 = _local1.substring(_local2, _local3);
_local5 = (_local4.lastIndexOf(".") - 1);
_local6 = (_local4.lastIndexOf(".", _local5) + 1);
_local4 = _local4.substring(_local6, _local4.length);
return (_local4);
}
public static function GetDomainFromUrl(_arg1:String):String{
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local2 = (_arg1.indexOf("://") + 3);
_local3 = _arg1.indexOf("/", _local2);
_local4 = _arg1.substring(_local2, _local3);
_local5 = (_local4.lastIndexOf(".") - 1);
_local6 = (_local4.lastIndexOf(".", _local5) + 1);
_local4 = _local4.substring(_local6, _local4.length);
return (_local4);
}
static function onInvalidDomain(_arg1:Event):void{
trace("Miniclip sitelock INVALID");
miniclip_locked = true;
}
}
}//package
Section 219
//SoundPlayer (SoundPlayer)
package {
import flash.media.*;
import flash.utils.*;
public class SoundPlayer {
public static const SOUND_RICOCHET = 19;
public static const minPlayTime = 3;
public static const SOUND_BULLETWHIZ = 18;
public static const SOUND_SHOTGUN = 6;
public static const SOUND_SHOT_02 = 3;
public static const SOUND_SHOT_04 = 5;
public static const SOUND_CHANGEWEAPON = 20;
public static const SOUND_SHOT_03 = 4;
public static const SOUND_HIT = 7;
public static const SOUND_SHOT_01 = 2;
public static const SOUND_CHAINSAW_LOOP = 0;
public static const SOUND_HIT_LAST = 10;
public static const SOUND_KILLED_LAST = 16;
public static const SOUND_PICKUP = 17;
public static const SOUND_KILLED = 11;
static const maxSounds = 6;
public static const SOUND_EXPLOSION01 = 21;
public static const SOUND_EXPLOSION02 = 22;
public static const SOUND_MAX = 6;
public static const SOUND_ROCKET_01 = 1;
static var channel:SoundChannel;
public static var startTimes:Array;
static var active = false;
public static var sound:Sound;
public static var soundTransform:SoundTransform;
public static var volumes:Array;
static var chainsawSoundChannel:SoundChannel;
static var main:Main;
public static var sounds:Array;
static var timer:Timer;
static var playingFlag:Boolean;
public static var lengths:Array;
static var Instances:Array;
static var chainsawSound:Sound;
public static var soundTransforms:Array;
static var doSFX:Boolean;
public static var soundChannels:Array;
public static function InitForLevel(){
StopChainsaw();
}
static function AddSound(_arg1:Number, _arg2:Number){
startTimes.push((_arg1 * 1000));
lengths.push((_arg2 * 1000));
sounds.push(null);
}
public static function InitOnce(_arg1:Main):void{
var _local2:int;
var _local3:SoundPlay;
chainsawSound = null;
chainsawSoundChannel = null;
doSFX = true;
main = _arg1;
Instances = new Array(maxSounds);
_local2 = 0;
while (_local2 < maxSounds) {
_local3 = new SoundPlay();
_local3.Clear();
Instances[_local2] = _local3;
_local2++;
};
volumes = new Array();
startTimes = new Array();
lengths = new Array();
sounds = new Array();
soundChannels = new Array();
soundTransforms = new Array();
AddSound1(new chainsawLoopWAV());
AddSound1(new rocket01wav(), 0.5);
AddSound1(new shot01wav(), 0.5);
AddSound1(new shot02wav(), 0.5);
AddSound1(new shot03wav(), 0.5);
AddSound1(new shot04wav(), 0.5);
AddSound1(new shotgunwav(), 0.5);
AddSound1(new hit01wav());
AddSound1(new hit02wav());
AddSound1(new hit03wav());
AddSound1(new hit04wav());
AddSound1(new killed01wav());
AddSound1(new killed02wav());
AddSound1(new killed03wav());
AddSound1(new killed04wav());
AddSound1(new killed05wav());
AddSound1(new killed06wav());
AddSound1(new Pickupwav(), 0.7);
AddSound1(new bulletwhizwav());
AddSound1(new ricochetwav());
AddSound1(new changeweaponwav());
AddSound1(new explo01wav());
AddSound1(new explo02wav());
soundTransform = new SoundTransform(1, 0);
active = true;
playingFlag = false;
}
public static function StopChainsaw():void{
if (chainsawSoundChannel != null){
chainsawSoundChannel.stop();
chainsawSoundChannel = null;
};
}
public static function Play(_arg1:int):void{
var _local2:SoundTransform;
var _local3:Sound;
var _local4:int;
var _local5:SoundPlay;
if (doSFX == false){
return;
};
if (sounds[_arg1] != null){
_local3 = sounds[_arg1];
_local2 = new SoundTransform();
_local2.volume = volumes[_arg1];
_local2.pan = Utils.RandBetweenFloat(-0.5, 0.5);
_local3.play(0, 0, _local2);
} else {
_local4 = 0;
while (_local4 < maxSounds) {
_local5 = Instances[_local4];
if (_local5.Active() == false){
_local5.Play(_arg1);
return;
};
_local4++;
};
};
}
static function AddSound1(_arg1:Sound, _arg2:Number=1){
sounds.push(_arg1);
startTimes.push(0);
lengths.push(0);
volumes.push(_arg2);
}
public static function StartChainsaw():void{
var _local1:int;
if (chainsawSoundChannel != null){
return;
};
if (doSFX == false){
return;
};
_local1 = SOUND_CHAINSAW_LOOP;
chainsawSound = sounds[_local1];
chainsawSoundChannel = chainsawSound.play(0, 9999999);
}
}
}//package
import flash.events.*;
import flash.media.*;
import flash.utils.*;
class SoundPlay {
private var channel:SoundChannel;
private var timer:Timer;
private var playingFlag;
private function SoundPlay(){
}
private function timerHandler(_arg1:TimerEvent):void{
timer.stop();
channel.stop();
playingFlag = false;
}
public function Clear():void{
playingFlag = false;
timer = null;
}
public function Active():Boolean{
return (playingFlag);
}
public function Play(_arg1:int):void{
channel = SoundPlayer.sound.play(SoundPlayer.startTimes[_arg1], 1, SoundPlayer.soundTransform);
timer = new Timer(SoundPlayer.lengths[_arg1]);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();
playingFlag = true;
}
}
Section 220
//TitlePage (TitlePage)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TitlePage extends MovieClip {
public var textVersion:TextField;
public var buttonArmorGames:SimpleButton;
public var buttonsBit:MovieClip;
}
}//package
Section 221
//TitleScreenState (TitleScreenState)
package {
import flash.events.*;
import flash.display.*;
import flash.ui.*;
import flash.net.*;
public class TitleScreenState {
static var main:Main;
static var overlayMC:MovieClip;
static var titleMC:MovieClip;
public static function InitCreditsScreen_buttonContinuePressed(_arg1:MouseEvent){
overlayMC.gotoAndPlay(25);
}
public static function InitGameOverButtons():void{
var _local1:Array;
var _local2:Array;
var _local3:int;
var _local4:SimpleButton;
var _local5:SimpleButton;
_local1 = new Array();
_local2 = new Array();
_local1.push("enemy01");
_local1.push("enemy02");
_local1.push("enemy03");
_local1.push("enemy04");
_local1.push("enemy05");
_local1.push("enemy06");
_local1.push("enemy07");
_local1.push("enemy08");
_local1.push("enemy09");
_local1.push("enemy10");
_local1.push("enemy11");
_local1.push("enemy12");
_local1.push("enemy13");
_local1.push("enemy14");
_local1.push("enemy15");
_local1.push("enemy16");
_local1.push("enemy17");
_local1.push("enemy18");
_local1.push("enemy19");
_local2.push("q01");
_local2.push("q02");
_local2.push("q03");
_local2.push("q04");
_local2.push("q05");
_local2.push("q06");
_local2.push("q07");
_local2.push("q08");
_local2.push("q09");
_local2.push("q10");
_local2.push("q11");
_local2.push("q12");
_local2.push("q13");
_local2.push("q14");
_local2.push("q15");
_local2.push("q16");
_local2.push("q17");
_local2.push("q18");
_local2.push("q19");
_local3 = 0;
while (_local3 <= 18) {
_local4 = titleMC[_local1[_local3]];
_local5 = titleMC[_local2[_local3]];
if (Game.enemiesSeen[_local3] == false){
_local4.visible = false;
_local5.visible = true;
_local5.addEventListener(MouseEvent.ROLL_OVER, buttonQRollOver, false, 0, true);
_local5.addEventListener(MouseEvent.ROLL_OUT, buttonEnemyRollOut, false, 0, true);
} else {
_local4.visible = true;
_local4.addEventListener(MouseEvent.ROLL_OVER, buttonEnemyRollOver, false, 0, true);
_local4.addEventListener(MouseEvent.ROLL_OUT, buttonEnemyRollOut, false, 0, true);
};
_local3++;
};
}
public static function buttonArmorGamesPressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.armorgames.com"), "_blank");
}
public static function buttonEnemyRollOver(_arg1:MouseEvent){
var _local2:String;
var _local3:int;
var _local4:ObjectDef;
_local2 = _arg1.currentTarget.name;
_local2 = _local2.slice(5);
_local3 = int(_local2);
_local4 = ObjectDefs.GetObjectDefByExportName(("Enemy_" + int(_local3).toString()));
titleMC.textDescription.text = _local4.description;
}
public static function CreditsScreenAnimFinished(){
Game.main.removeChild(overlayMC);
overlayMC = null;
}
static function buttonJimpPressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.jimp.grindheadstudios.com"), "_blank");
}
static function KongButton(_arg1:MovieClip, _arg2:Boolean=false){
if (Licensors.GetLicensor() == Licensors.LICENSOR_KONGREGATE){
if (((Licensors.IsAtKongregate()) && ((_arg2 == false)))){
_arg1.buttonKong.visible = false;
} else {
_arg1.buttonKong.visible = true;
_arg1.buttonKong.addEventListener(MouseEvent.CLICK, buttonKongregateGamePressed, false, 0, true);
};
} else {
_arg1.buttonKong.visible = false;
};
}
static function buttonLonganimalsPressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.longanimalsgames.com?refer=penguinz"), "_blank");
}
static function InitCreditsScreen(){
overlayMC = new CreditsScreen();
Game.main.addChild(overlayMC);
overlayMC.x = 90;
overlayMC.y = 50;
overlayMC.pm.buttonContinue.addEventListener(MouseEvent.CLICK, InitCreditsScreen_buttonContinuePressed);
overlayMC.pm.buttonLongAnimals.addEventListener(MouseEvent.CLICK, buttonLonganimalsPressed);
overlayMC.pm.buttonJimp.addEventListener(MouseEvent.CLICK, buttonJimpPressed);
}
public static function buttonMediumPressed(_arg1:MouseEvent){
Game.main.DoMochiBot(2);
Game.InitGame(1);
main.SetGameState(Main.gameState_LEVEL_PLAY);
}
public static function InitGameOverBits():void{
titleMC.textNumKills.text = Game.totalNumKills.toString();
titleMC.textLastLevel.text = int((Game.currentLevel + 1)).toString();
titleMC.textBulletsFired.text = Game.bulletsFired.toString();
titleMC.textCashEarned.text = ("$" + Game.totalCash.toString());
titleMC.textFinalScore.text = Game.currentScore.toString();
titleMC.textDescription.text = "";
}
static function MoreGamesButton(_arg1:MovieClip, _arg2:Boolean=false){
if (Licensors.GetLicensor() == Licensors.LICENSOR_KONGREGATE){
_arg1.buttonMoreGames.visible = true;
_arg1.buttonMoreGames.addEventListener(MouseEvent.CLICK, buttonKongregatePressed, false, 0, true);
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ANDKON){
_arg1.buttonMoreGames.visible = true;
_arg1.buttonMoreGames.addEventListener(MouseEvent.CLICK, buttonAndkonPressed, false, 0, true);
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_BUBBLEBOX){
_arg1.buttonMoreGames.visible = false;
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ARMORGAMES){
_arg1.buttonMoreGames.visible = true;
_arg1.buttonMoreGames.addEventListener(MouseEvent.CLICK, buttonArmorGamesPressed, false, 0, true);
};
};
};
};
}
public static function buttonGameOverContinuePressed(_arg1:MouseEvent){
Game.currentScore = 0;
Game.playerHealth = 100;
Game.levelNumKills = 0;
Game.totalNumKills = 0;
if (Game.currentLevel < 10){
if (Game.ammo < 200){
Game.ammo = 200;
};
} else {
if (Game.currentLevel < 15){
if (Game.ammo < 300){
Game.ammo = 300;
};
} else {
if (Game.ammo < 400){
Game.ammo = 400;
};
};
};
Game.totalCash = 0;
Game.InitLevel();
Game.main.removeChild(titleMC);
titleMC = null;
}
public static function buttonHardPressed(_arg1:MouseEvent){
Game.main.DoMochiBot(3);
Game.InitGame(2);
main.SetGameState(Main.gameState_LEVEL_PLAY);
}
public static function buttonMoreGamesPressed(_arg1:MouseEvent){
if (Licensors.GetLicensor() == Licensors.LICENSOR_KONGREGATE){
buttonKongregatePressed(_arg1);
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ANDKON){
buttonAndkonPressed(_arg1);
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_BUBBLEBOX){
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ARMORGAMES){
buttonArmorGamesPressed(_arg1);
};
};
};
};
}
public static function buttonKongregateGamePressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.kongregate.com/games/LongAnimals/penguinz?gamereferral=penguinz"), "_blank");
}
public static function buttonGameOverRestartPressed(_arg1:MouseEvent){
main.removeChild(titleMC);
titleMC = null;
main.SetGameState(Main.gameState_TITLE);
}
public static function buttonQRollOver(_arg1:MouseEvent){
var _local2:String;
var _local3:int;
var _local4:ObjectDef;
_local2 = _arg1.currentTarget.name;
_local2 = _local2.slice(1);
_local3 = int(_local2);
_local4 = ObjectDefs.GetObjectDefByExportName(("Enemy_" + int(_local3).toString()));
titleMC.textDescription.text = _local4.description;
}
public static function buttonStartPressed(_arg1:MouseEvent){
titleMC.buttonsBit.buttonEasy.visible = true;
titleMC.buttonsBit.buttonMedium.visible = true;
titleMC.buttonsBit.buttonHard.visible = true;
titleMC.buttonsBit.buttonPlay.visible = false;
titleMC.buttonsBit.buttonCredits.visible = false;
titleMC.buttonsBit.buttonOptions.visible = false;
}
public static function buttonEasyPressed(_arg1:MouseEvent){
Game.main.DoMochiBot(1);
Game.InitGame(0);
main.SetGameState(Main.gameState_LEVEL_PLAY);
}
public static function InitGameOver(){
Mouse.show();
Game.main.DoMochiBot(4);
SoundPlayer.StopChainsaw();
Game.levelState = Game.levelState_Null;
titleMC = main.AddMovieClip(0, 0, new GameOver());
titleMC.buttonContinueKongregate.addEventListener(MouseEvent.CLICK, buttonKongregateGamePressed);
titleMC.buttonContinue.addEventListener(MouseEvent.CLICK, buttonGameOverContinuePressed);
if (Licensors.GetLicensor() == Licensors.LICENSOR_KONGREGATE){
if (Licensors.IsAtKongregate()){
titleMC.buttonContinueKongregate.visible = false;
titleMC.buttonContinue.visible = true;
} else {
titleMC.buttonContinueKongregate.visible = true;
titleMC.buttonContinue.visible = false;
};
} else {
titleMC.buttonContinueKongregate.visible = false;
titleMC.buttonContinue.visible = true;
};
titleMC.restartButton.addEventListener(MouseEvent.CLICK, buttonGameOverRestartPressed);
MoreGamesButton(titleMC);
KongButton(titleMC);
InitGameOverButtons();
InitGameOverBits();
}
public static function Init(_arg1:Main){
overlayMC = null;
Mouse.show();
SoundPlayer.StopChainsaw();
main = _arg1;
MusicPlayer.StartMusic(1);
main.InitStage();
titleMC = main.AddMovieClip(0, 0, new TitlePage());
titleMC.buttonsBit.buttonEasy.addEventListener(MouseEvent.CLICK, buttonEasyPressed);
titleMC.buttonsBit.buttonMedium.addEventListener(MouseEvent.CLICK, buttonMediumPressed);
titleMC.buttonsBit.buttonHard.addEventListener(MouseEvent.CLICK, buttonHardPressed);
titleMC.buttonsBit.buttonEasy.visible = false;
titleMC.buttonsBit.buttonMedium.visible = false;
titleMC.buttonsBit.buttonHard.visible = false;
titleMC.buttonsBit.buttonPlay.visible = true;
titleMC.buttonsBit.buttonCredits.visible = true;
titleMC.buttonsBit.buttonOptions.visible = true;
titleMC.buttonsBit.buttonPlay.addEventListener(MouseEvent.CLICK, buttonStartPressed);
titleMC.buttonsBit.buttonMoreGames.addEventListener(MouseEvent.CLICK, buttonMoreGamesPressed);
titleMC.buttonsBit.buttonCredits.addEventListener(MouseEvent.CLICK, buttonCreditsPressed);
if (Licensors.GetLicensor() == Licensors.LICENSOR_KONGREGATE){
titleMC.buttonKong1.addEventListener(MouseEvent.CLICK, buttonKongregatePressed, false, 0, true);
titleMC.buttonKong.addEventListener(MouseEvent.CLICK, buttonKongregateGamePressed, false, 0, true);
if (Licensors.IsAtKongregate()){
titleMC.buttonKong.visible = false;
titleMC.buttonKong1.visible = true;
} else {
titleMC.buttonKong.visible = true;
titleMC.buttonKong1.visible = false;
};
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ANDKON){
titleMC.buttonAndkon.addEventListener(MouseEvent.CLICK, buttonAndkonPressed, false, 0, true);
} else {
if (Licensors.GetLicensor() == Licensors.LICENSOR_ARMORGAMES){
titleMC.buttonArmorGames.addEventListener(MouseEvent.CLICK, buttonArmorGamesPressed, false, 0, true);
};
};
};
titleMC.textVersion.text = Kong.kongmessage;
}
public static function buttonCreditsPressed(_arg1:MouseEvent){
InitCreditsScreen();
}
public static function buttonEnemyRollOut(_arg1:MouseEvent){
var _local2:String;
_local2 = _arg1.currentTarget.name;
titleMC.textDescription.text = "";
}
public static function buttonKongregatePressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.kongregate.com/?gamereferral=penguinz"), "_blank");
}
public static function buttonAndkonPressed(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.andkon.com"), "_blank");
}
}
}//package
Section 222
//Trigger (Trigger)
package {
public class Trigger {
static var lineIDLookup:Array;
static var index:int;
static var triggerList:Array;
public static function Add(_arg1:int){
var _local2:TriggerInst;
_local2 = new TriggerInst();
_local2.lineID = _arg1;
lineIDLookup[_arg1] = index;
triggerList.push(_local2);
index++;
}
public static function CanTrigger(_arg1:int):Boolean{
var _local2:int;
var _local3:TriggerInst;
_local2 = lineIDLookup[_arg1];
if (_local2 == -1){
trace(("ERROR: LineIDLookup:" + _arg1));
};
_local3 = triggerList[_local2];
if (_local3.active){
if (_local3.canTriggerCallbackFunction != null){
return (_local3.canTriggerCallbackFunction(_local3));
};
if (_local3.triggerCount < 1){
return (true);
};
};
return (false);
}
public static function DoTrigger(_arg1:int):void{
var _local2:int;
var _local3:TriggerInst;
_local2 = lineIDLookup[_arg1];
if (_local2 == -1){
trace("ERROR: LineIDLookup");
};
_local3 = triggerList[_local2];
if (_local3.active){
_local3.triggerCount++;
if (_local3.callbackFunction != null){
_local3.callbackFunction(_local3);
};
};
}
public static function SetCanTriggerCallback(_arg1:String, _arg2){
var _local3:int;
var _local4:int;
var _local5:TriggerInst;
_local3 = Poly.FindIndexByName(_arg1, Game.polygonList);
if (_local3 != -1){
_local4 = lineIDLookup[_local3];
_local5 = triggerList[_local4];
_local5.canTriggerCallbackFunction = _arg2;
};
}
public static function InitOnce():void{
var _local1:int;
triggerList = new Array();
lineIDLookup = new Array(0x0100);
_local1 = 0;
while (_local1 < 0x0100) {
lineIDLookup[_local1] = int(-1);
_local1++;
};
index = 0;
}
public static function SetTriggerCallback(_arg1:String, _arg2){
var _local3:int;
var _local4:int;
var _local5:TriggerInst;
_local3 = Poly.FindIndexByName(_arg1, Game.polygonList);
if (_local3 != -1){
_local4 = lineIDLookup[_local3];
_local5 = triggerList[_local4];
_local5.callbackFunction = _arg2;
};
}
}
}//package
Section 223
//TriggerInst (TriggerInst)
package {
public class TriggerInst {
var canTriggerCallbackFunction;
var active:Boolean;
var lineID:int;
var triggerCount:int;
var callbackFunction;
public function TriggerInst():void{
active = true;
triggerCount = 0;
lineID = 0;
callbackFunction = null;
canTriggerCallbackFunction = null;
}
public function Disable():void{
active = false;
}
}
}//package
Section 224
//TweakVar (TweakVar)
package {
import flash.display.*;
import flash.geom.*;
public class TweakVar {
var initValue:Number;
var name:String;
var min:Number;
var maxw:Number;// = 100
var changedCallback:Object;
var rate:Number;
var h:Number;// = 10
var max:Number;
var y:Number;
var variable:Number;
var x:Number;
public function TweakVar(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number){
maxw = 100;
h = 10;
super();
name = _arg1;
min = _arg2;
max = _arg3;
rate = ((max - min) / 50);
variable = _arg4;
initValue = _arg4;
changedCallback = null;
}
public function SetVarFromPos(_arg1:Number){
variable = ((((max - min) / maxw) * _arg1) + min);
}
public function Dec(){
variable = (variable - rate);
if (variable >= max){
variable = max;
};
}
public function Render(_arg1:BitmapData){
var _local2:Rectangle;
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:String;
_local2 = GetRenderRect();
_arg1.fillRect(_local2, 4278190080);
_local3 = new Rectangle(x, y, ((maxw / (max - min)) * (variable - min)), h);
_arg1.fillRect(_local3, 4294901760);
_local4 = new Rectangle((x + ((maxw / (max - min)) * (initValue - min))), y, 1, h);
_arg1.fillRect(_local4, 4294934656);
_local5 = ((Utils.DP2(variable) + " ") + name);
GraphicObjects.RenderStringAt(_arg1, GraphicObjects.gfx_font1, ((x + maxw) + 10), (y - 5), _local5, null);
}
public function GetRenderRect():Rectangle{
var _local1:Rectangle;
_local1 = new Rectangle(x, y, maxw, h);
return (_local1);
}
public function Inc(){
variable = (variable + rate);
if (variable >= max){
variable = max;
};
}
}
}//package
Section 225
//TweakVars (TweakVars)
package {
import flash.geom.*;
public class TweakVars {
static var y:Number;
static var yd:Number;
static var x:Number;
static var main:Main;
static var list:Array;
public static function AddCB(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object){
var _local6:*;
_local6 = new TweakVar(_arg1, _arg2, _arg3, _arg4);
_local6.x = x;
_local6.y = (y + (list.length * yd));
_local6.changedCallback = _arg5;
list.push(_local6);
}
public static function Add(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number){
var _local5:*;
_local5 = new TweakVar(_arg1, _arg2, _arg3, _arg4);
_local5.x = x;
_local5.y = (y + (list.length * yd));
list.push(_local5);
}
public static function Update(){
var _local1:Number;
var _local2:Number;
var _local3:TweakVar;
var _local4:Rectangle;
var _local5:Number;
_local1 = MouseControl.mousePosX;
_local2 = MouseControl.mousePosY;
if (MouseControl.buttonPressed != true){
return;
};
for each (_local3 in list) {
_local4 = _local3.GetRenderRect();
if (_local4.contains(_local1, _local2)){
_local5 = (_local1 - _local4.x);
_local3.SetVarFromPos(_local5);
if (_local3.changedCallback != null){
_local3.changedCallback(_local3.variable);
};
};
};
}
public static function Reset(){
list = new Array();
x = 10;
y = 40;
yd = 15;
}
public static function InitOnce(_arg1:Main){
Reset();
main = _arg1;
}
public static function Render(){
var _local1:TweakVar;
for each (_local1 in list) {
_local1.Render(main.screenBD);
};
}
public static function GetNumber(_arg1:String):Number{
var _local2:TweakVar;
for each (_local2 in list) {
if (_local2.name == _arg1){
return (_local2.variable);
};
};
return (0);
}
}
}//package
Section 226
//Utils (Utils)
package {
import flash.display.*;
import flash.geom.*;
public class Utils {
public static function RandPointInCircle(_arg1:Number):Point{
var _local2:Point;
var _local3:Number;
_local2 = new Point();
_local3 = (Math.random() * (Math.PI * 2));
_local2.x = (Math.cos(_local3) * _arg1);
_local2.y = (Math.sin(_local3) * _arg1);
return (_local2);
}
static function SideOfLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Boolean{
var _local7:Number;
_local7 = DotProduct((_arg3 - _arg1), (_arg4 - _arg2), (_arg5 - _arg1), (_arg6 - _arg2));
if (_local7 < 0){
return (false);
};
return (true);
}
public static function DP1(_arg1:Number):Number{
var _local2:Number;
_local2 = (Math.ceil((_arg1 * 10)) / 10);
return (_local2);
}
public static function DP2(_arg1:Number):Number{
var _local2:Number;
_local2 = (Math.ceil((_arg1 * 100)) / 100);
return (_local2);
}
static function RenderDotLine(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:int, _arg7:uint):void{
var _local8:int;
var _local9:int;
var _local10:Number;
var _local11:Number;
_local9 = _arg6;
_local10 = ((_arg4 - _arg2) / Number(_local9));
_local11 = ((_arg5 - _arg3) / Number(_local9));
_local8 = 0;
while (_local8 < _local9) {
_arg2 = (_arg2 + _local10);
_arg3 = (_arg3 + _local11);
_arg1.setPixel32(int(_arg2), int(_arg3), _arg7);
_local8++;
};
}
static function RenderRectangle(_arg1:BitmapData, _arg2:Rectangle, _arg3:uint):void{
RenderDotLine(_arg1, _arg2.left, _arg2.top, _arg2.right, _arg2.top, 100, _arg3);
RenderDotLine(_arg1, _arg2.left, _arg2.bottom, _arg2.right, _arg2.bottom, 100, _arg3);
RenderDotLine(_arg1, _arg2.left, _arg2.top, _arg2.left, _arg2.bottom, 100, _arg3);
RenderDotLine(_arg1, _arg2.right, _arg2.top, _arg2.right, _arg2.bottom, 100, _arg3);
}
static function RandBetweenInt(_arg1:int, _arg2:int):int{
var _local3:int;
_local3 = (Math.random() * ((_arg2 - _arg1) + 1));
_local3 = (_local3 + _arg1);
return (_local3);
}
static function DotProduct(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
_local5 = ((_arg1 * _arg3) + (_arg2 * _arg4));
return (_local5);
}
public static function NumberToString2DP(_arg1:Number):String{
var _local2:String;
var _local3:int;
var _local4:int;
_local2 = DP2(_arg1).toString();
_local3 = _local2.lastIndexOf(".");
if (_local3 == -1){
_local2.concat(".00");
} else {
_local4 = _local2.length;
if (_local3 == (_local4 - 1)){
_local2.concat("0");
};
};
return (_local2);
}
static function RenderCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:uint):void{
var _local6:int;
var _local7:Number;
var _local8:int;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_local6 = 100;
_local7 = ((Math.PI * 2) / _local6);
_local9 = 0;
_local8 = 0;
while (_local8 < _local6) {
_local10 = (_arg2 + (Math.cos(_local9) * _arg4));
_local11 = (_arg3 + (Math.sin(_local9) * _arg4));
_local9 = (_local9 + _local7);
_arg1.setPixel32(int(_local10), int(_local11), _arg5);
_local8++;
};
}
static function DotProductAng(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local3 = Math.cos(_arg1);
_local4 = Math.sin(_arg1);
_local5 = Math.cos(_arg2);
_local6 = Math.sin(_arg2);
_local7 = ((_local3 * _local5) + (_local4 * _local6));
return (_local7);
}
public static function RandCircle():Number{
return ((Math.random() * (Math.PI * 2)));
}
public static function RadToDeg(_arg1:Number):Number{
return (((360 / (Math.PI * 2)) * _arg1));
}
static function RandBetweenFloat(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
_local3 = (Math.random() * (_arg2 - _arg1));
_local3 = (_local3 + _arg1);
return (_local3);
}
public static function LineLength(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
static function DistBetweenPoints(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))));
}
public static function ScaleBetween(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number;
_local4 = ((_arg2 - _arg1) * _arg3);
_local4 = (_arg1 + _local4);
return (_local4);
}
static function Dist2BetweenPoints(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg3 - _arg1);
_local6 = (_arg4 - _arg2);
return (((_local5 * _local5) + (_local6 * _local6)));
}
}
}//package
Section 227
//Vec (Vec)
package {
import flash.geom.*;
public class Vec {
public var speed:Number;
public var rot:Number;
public function Vec(){
rot = 0;
speed = 0;
}
public function Set(_arg1:Number, _arg2:Number){
rot = _arg1;
speed = _arg2;
}
public function GetUnitYComponent():Number{
return (Math.sin(rot));
}
public function dotRot(_arg1:Number):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = Math.cos(rot);
_local3 = Math.sin(rot);
_local4 = Math.cos(_arg1);
_local5 = Math.sin(_arg1);
_local6 = ((_local2 * _local4) + (_local3 * _local5));
return (_local6);
}
public function Add(_arg1:Vec){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = (Math.cos(rot) * speed);
_local3 = (Math.sin(rot) * speed);
_local4 = (Math.cos(_arg1.rot) * _arg1.speed);
_local5 = (Math.sin(_arg1.rot) * _arg1.speed);
_local6 = (_local2 + _local4);
_local7 = (_local3 + _local5);
rot = Math.atan2(_local7, _local6);
speed = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
}
function NormalizeRot():void{
while (rot < 0) {
rot = (rot + (Math.PI * 2));
};
while (rot > (Math.PI * 2)) {
rot = (rot - (Math.PI * 2));
};
}
public function GetUnitTangent():Point{
var _local1:Number;
var _local2:Point;
_local1 = (rot + (Math.PI * 0.5));
_local2 = new Point(Math.cos(_local1), Math.sin(_local1));
return (_local2);
}
public function NearRot(_arg1:Number, _arg2:Number):Boolean{
var _local3:Number;
var _local4:Number;
_local3 = (rot - _arg1);
_local4 = Math.abs(_local3);
if (_local3 > Math.PI){
if (_arg1 < rot){
_arg1 = (_arg1 + (Math.PI * 2));
} else {
_arg1 = (_arg1 - (Math.PI * 2));
};
_local3 = (rot - _arg1);
};
if (Math.abs(_local3) <= _arg2){
return (true);
};
return (false);
}
public function GetYComponent():Number{
return ((Math.sin(rot) * speed));
}
public function GetXComponent():Number{
return ((Math.cos(rot) * speed));
}
public function AddRot(_arg1:Number):void{
rot = (rot + _arg1);
NormalizeRot();
}
public function GetUnitXComponent():Number{
return (Math.cos(rot));
}
}
}//package
Section 228
//weapon_ak47_shoot (weapon_ak47_shoot)
package {
import flash.display.*;
public dynamic class weapon_ak47_shoot extends MovieClip {
}
}//package
Section 229
//weapon_desertEagle_shoot (weapon_desertEagle_shoot)
package {
import flash.display.*;
public dynamic class weapon_desertEagle_shoot extends MovieClip {
}
}//package
Section 230
//weapon_gatling_shoot (weapon_gatling_shoot)
package {
import flash.display.*;
public dynamic class weapon_gatling_shoot extends MovieClip {
}
}//package
Section 231
//weapon_m16_shoot (weapon_m16_shoot)
package {
import flash.display.*;
public dynamic class weapon_m16_shoot extends MovieClip {
}
}//package
Section 232
//weapon_pistol_shoot (weapon_pistol_shoot)
package {
import flash.display.*;
public dynamic class weapon_pistol_shoot extends MovieClip {
}
}//package
Section 233
//weapon_shotgun_shoot (weapon_shotgun_shoot)
package {
import flash.display.*;
public dynamic class weapon_shotgun_shoot extends MovieClip {
}
}//package
Section 234
//weapon_uzi_shoot (weapon_uzi_shoot)
package {
import flash.display.*;
public dynamic class weapon_uzi_shoot extends MovieClip {
}
}//package
Section 235
//WeaponDef (WeaponDef)
package {
public class WeaponDef {
public var sfx:int;
public var ammoPerShot:Number;
var name:String;
public var fireOffsetY:Number;
public var damageCosts:Array;
var repeatRate:Number;
public var extraCosts:Array;
public var extraUpgrades:Array;
public var fireOffsetX:Number;
public var numInClip:int;
public var numClips:int;
public var timer:int;
public var available:Boolean;
public var accuracyCosts:Array;
public var ammo:int;
public var price:Number;
public var shellOffsetX:Number;
public var shellOffsetY:Number;
public var upgrades:Array;
public var damageUpgrades:Array;
var damage:Number;
public var accuracyUpgrades:Array;
public var accuracy:Number;
public var explosionType:Boolean;
public function WeaponDef(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:int){
name = _arg1;
damage = _arg2;
repeatRate = _arg3;
accuracy = _arg4;
timer = 0;
numInClip = _arg5;
numClips = 1;
ammo = numInClip;
available = false;
accuracyUpgrades = new Array();
damageUpgrades = new Array();
extraUpgrades = new Array();
accuracyCosts = new Array();
damageCosts = new Array();
extraCosts = new Array();
upgrades = new Array();
upgrades.push(0, 0, 0);
fireOffsetX = 0;
fireOffsetY = 0;
shellOffsetX = 0;
shellOffsetY = 0;
price = 0;
ammoPerShot = 1;
sfx = -1;
explosionType = false;
}
public function AddExtraUpgrade(_arg1:Number=0, _arg2:Number=0){
if (_arg1 != 0){
extraUpgrades.push(_arg1);
};
extraCosts.push(_arg2);
}
public function AddAccuracyUpgrade(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0){
if (_arg1 != 0){
accuracyUpgrades.push(_arg1);
};
if (_arg2 != 0){
accuracyUpgrades.push(_arg2);
};
if (_arg3 != 0){
accuracyUpgrades.push(_arg3);
};
accuracyCosts.push(_arg4, _arg5, _arg6);
}
public function SetPrice(_arg1:Number){
price = _arg1;
}
public function SetShellOffset(_arg1:Number, _arg2:Number){
shellOffsetX = _arg1;
shellOffsetY = _arg2;
}
public function GetExtraUpgrade():int{
var _local1:int;
if (upgrades[2] != 0){
_local1 = extraUpgrades[(upgrades[2] - 1)];
return (_local1);
};
return (0);
}
public function AddSFX(_arg1:int){
sfx = _arg1;
}
public function GetExtraText():String{
var _local1:int;
if (extraUpgrades.length == 0){
return ("No Extras");
};
_local1 = extraUpgrades[0];
if (_local1 == WeaponDefs.extra_uzi){
return ("Dual Uzi");
};
if (_local1 == WeaponDefs.extra_ak){
return ("Grenade Launcher");
};
if (_local1 == WeaponDefs.extra_shotgun){
return ("Double Barrel");
};
if (_local1 == WeaponDefs.extra_m16){
return ("Laser Sight");
};
if (_local1 == WeaponDefs.extra_rocketlauncher){
return ("Baby Penguin");
};
if (_local1 == WeaponDefs.extra_gatling){
return ("Slug Mode");
};
return ("No Extras");
}
public function SetFireOffset(_arg1:Number, _arg2:Number){
fireOffsetX = _arg1;
fireOffsetY = _arg2;
}
public function GetAccuracy():Number{
var _local1:int;
var _local2:Number;
var _local3:int;
_local1 = 0;
_local2 = accuracy;
if (upgrades[_local1] != 0){
_local2 = (_local2 + accuracyUpgrades[(upgrades[_local1] - 1)]);
};
if (upgrades[2] != 0){
_local3 = extraUpgrades[(upgrades[2] - 1)];
if (_local3 == WeaponDefs.extra_m16){
_local2 = (_local2 + 20);
};
};
if (_local2 > 100){
_local2 = 100;
};
return (_local2);
}
public function SetExplosionType(){
explosionType = true;
}
public function AddDamageUpgrade(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0){
if (_arg1 != 0){
damageUpgrades.push(_arg1);
};
if (_arg2 != 0){
damageUpgrades.push(_arg2);
};
if (_arg3 != 0){
damageUpgrades.push(_arg3);
};
damageCosts.push(_arg4, _arg5, _arg6);
}
public function GetDamage():Number{
var _local1:int;
var _local2:Number;
var _local3:int;
_local1 = 1;
_local2 = damage;
if (upgrades[_local1] != 0){
_local2 = (_local2 + damageUpgrades[(upgrades[_local1] - 1)]);
};
if (upgrades[2] != 0){
_local3 = extraUpgrades[(upgrades[2] - 1)];
if (_local3 == WeaponDefs.extra_shotgun){
_local2 = (_local2 + 50);
};
if (_local3 == WeaponDefs.extra_rocketlauncher){
_local2 = (_local2 + 50);
};
if (_local3 == WeaponDefs.extra_gatling){
_local2 = (_local2 + 20);
};
};
if (Game.difficulty == 0){
_local2 = (_local2 * 2.8);
} else {
if (Game.difficulty == 1){
_local2 = (_local2 * 1.5);
} else {
if (Game.difficulty == 2){
_local2 = (_local2 * 1.1);
};
};
};
return (_local2);
}
public function SetAmmoPerShot(_arg1:Number){
ammoPerShot = _arg1;
}
public function GetMaxUpgrade(_arg1:int):int{
if (_arg1 == 0){
return (accuracyUpgrades.length);
};
if (_arg1 == 1){
return (damageUpgrades.length);
};
if (_arg1 == 2){
return (extraUpgrades.length);
};
return (0);
}
public function GetRepeatRate():Number{
var _local1:Number;
var _local2:int;
_local1 = repeatRate;
if (upgrades[2] != 0){
_local2 = extraUpgrades[(upgrades[2] - 1)];
if (_local2 == WeaponDefs.extra_gatling){
_local1 = (_local1 - 0.02);
};
if (_local2 == WeaponDefs.extra_uzi){
_local1 = (_local1 - 0.04);
};
};
return (_local1);
}
public function GetUpgradeCost(_arg1:int):int{
if (_arg1 == 0){
return (accuracyCosts[upgrades[0]]);
};
if (_arg1 == 1){
return (damageCosts[upgrades[1]]);
};
if (_arg1 == 2){
return (extraCosts[upgrades[2]]);
};
return (0);
}
}
}//package
Section 236
//WeaponDefs (WeaponDefs)
package {
public class WeaponDefs {
public static const extra_rocketlauncher = 5;
public static const extra_shotgun = 3;
public static const extra_gatling = 6;
public static const extra_m16 = 4;
public static const extra_uzi = 1;
public static const extra_ak = 2;
public static var list:Array;
public static function GetUpgradeList(_arg1:int, _arg2:int):Array{
var _local3:WeaponDef;
_local3 = list[_arg1];
if (_arg2 == 0){
return (_local3.accuracyUpgrades);
};
if (_arg2 == 1){
return (_local3.damageUpgrades);
};
if (_arg2 == 2){
return (_local3.extraUpgrades);
};
return (null);
}
public static function HasClips(_arg1:int):Boolean{
var _local2:WeaponDef;
_local2 = list[_arg1];
if (_local2.numClips > 0){
return (true);
};
return (false);
}
public static function CanUpgrade(_arg1:int, _arg2:int):Boolean{
var _local3:WeaponDef;
_local3 = list[_arg1];
if (_local3.upgrades[_arg2] < _local3.GetMaxUpgrade(_arg2)){
return (true);
};
return (false);
}
public static function GetUpgrade(_arg1:int, _arg2:int):int{
var _local3:WeaponDef;
_local3 = list[_arg1];
return (_local3.upgrades[_arg2]);
}
public static function NextWeapon(_arg1:int):int{
var _local2:int;
var _local3:int;
_local3 = _arg1;
_local2 = 0;
while (_local2 < list.length) {
_local3++;
if (_local3 >= list.length){
_local3 = 0;
};
if (((IsWeaponAvailable(_local3)) && (HasClips(_local3)))){
return (_local3);
};
_local2++;
};
return (_arg1);
}
public static function InitOnce(){
var _local1:WeaponDef;
var _local2:int;
list = new Array();
_local1 = new WeaponDef("Pistol", 100, 0.3, 100, 10);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_01);
_local1.SetPrice(0);
_local1.SetFireOffset(49, -1);
_local1.SetShellOffset(35, -2);
_local1.AddAccuracyUpgrade(20, 40, 60, 50, 100, 200);
_local1.AddDamageUpgrade(20, 40, 60, 50, 100, 200);
list.push(_local1);
_local1 = new WeaponDef("Desert Eagle", 120, 0.3, 100, 10);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_01);
_local1.SetPrice(800);
_local1.SetFireOffset(33, 1);
_local1.SetShellOffset(18, -1);
_local1.AddAccuracyUpgrade(20, 40, 60, 100, 200, 400);
_local1.AddDamageUpgrade(20, 40, 60, 100, 200, 400);
list.push(_local1);
_local1 = new WeaponDef("Uzi", 80, 0.18, 80, 20);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_02);
_local1.SetPrice(2000);
_local1.SetFireOffset(40, -3);
_local1.SetShellOffset(18, -8);
_local1.AddAccuracyUpgrade(20, 40, 0, 400, 800, 0);
_local1.AddDamageUpgrade(15, 30, 0, 400, 800, 0);
_local1.AddExtraUpgrade(extra_uzi, 1000);
list.push(_local1);
_local1 = new WeaponDef("AK47", 100, 0.13, 90, 20);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_03);
_local1.SetPrice(4000);
_local1.SetFireOffset(79, -2);
_local1.SetShellOffset(27, -5);
_local1.AddAccuracyUpgrade(10, 0, 0, 1600, 0, 0);
_local1.AddDamageUpgrade(20, 0, 0, 1600, 0, 0);
_local1.AddExtraUpgrade(extra_ak, 1000);
list.push(_local1);
_local1 = new WeaponDef("Shotgun", 50, 0.3, 20, 5);
_local1.AddSFX(SoundPlayer.SOUND_SHOTGUN);
_local1.SetAmmoPerShot(5);
_local1.SetPrice(6000);
_local1.SetFireOffset(90, -3);
_local1.SetShellOffset(47, -3);
_local1.AddAccuracyUpgrade(20, 40, 0, 1200, 2400, 0);
_local1.AddDamageUpgrade(20, 40, 0, 1200, 2400, 0);
_local1.AddExtraUpgrade(extra_shotgun, 2400);
list.push(_local1);
_local1 = new WeaponDef("M16", 100, 0.1, 70, 30);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_04);
_local1.SetPrice(10000);
_local1.SetFireOffset(96, -4);
_local1.SetShellOffset(33, -6);
_local1.AddAccuracyUpgrade(20, 40, 60, 1000, 2000, 4000);
_local1.AddDamageUpgrade(20, 40, 60, 1000, 2000, 4000);
_local1.AddExtraUpgrade(extra_m16, 4000);
list.push(_local1);
_local1 = new WeaponDef("Rocket Launcher", 500, 0.5, 80, 5);
_local1.SetExplosionType();
_local1.AddSFX(SoundPlayer.SOUND_ROCKET_01);
_local1.SetAmmoPerShot(20);
_local1.SetPrice(20000);
_local1.SetFireOffset(99, -9);
_local1.SetShellOffset(0, 0);
_local1.AddExtraUpgrade(extra_rocketlauncher, 8000);
list.push(_local1);
_local1 = new WeaponDef("Gatling Gun", 200, 0.1, 50, 100);
_local1.AddSFX(SoundPlayer.SOUND_SHOT_01);
_local1.SetPrice(30000);
_local1.SetFireOffset(119, 5);
_local1.SetShellOffset(28, 1);
_local1.AddAccuracyUpgrade(10, 30, 60, 3000, 6000, 12000);
_local1.AddExtraUpgrade(extra_gatling, 12000);
list.push(_local1);
_local1 = new WeaponDef("Chainsaw", 100, 0.01, 100, 100);
_local1.AddSFX(SoundPlayer.SOUND_CHAINSAW_LOOP);
_local1.SetPrice(50000);
_local1.SetFireOffset(0, 0);
_local1.AddDamageUpgrade(20, 40, 0, 10000, 20000, 0);
list.push(_local1);
list[0].available = true;
list[0].numClips = 999;
_local2 = 0;
while (_local2 < list.length) {
_local2++;
};
}
public static function PreviousWeapon(_arg1:int):int{
var _local2:int;
var _local3:int;
_local3 = _arg1;
_local2 = 0;
while (_local2 < list.length) {
_local3--;
if (_local3 < 0){
_local3 = (list.length - 1);
};
if (((IsWeaponAvailable(_local3)) && (HasClips(_local3)))){
return (_local3);
};
_local2++;
};
return (_arg1);
}
public static function MakeWeaponAvailable(_arg1:int){
var _local2:WeaponDef;
_local2 = list[_arg1];
_local2.available = true;
}
public static function BestAvailableWeapon():int{
var _local1:int;
var _local2:int;
_local2 = 0;
_local1 = 0;
while (_local1 < list.length) {
if (((IsWeaponAvailable(_local1)) && (HasClips(_local1)))){
_local2 = _local1;
};
_local1++;
};
return (_local2);
}
public static function GetRandomAvailableWeapon():WeaponDef{
var _local1:int;
var _local2:Array;
var _local3:int;
_local2 = new Array();
_local1 = 0;
while (_local1 < list.length) {
if (IsWeaponAvailable(_local1)){
_local2.push(_local1);
};
_local1++;
};
_local3 = Utils.RandBetweenInt(0, (_local2.length - 1));
return (GetWeaponDef(_local2[_local3]));
}
public static function DoUpgrade(_arg1:int, _arg2:int):void{
var _local3:WeaponDef;
_local3 = list[_arg1];
var _local4 = _local3.upgrades;
var _local5 = _arg2;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
}
public static function GetUpgradeCost(_arg1:int, _arg2:int):Number{
var _local3:WeaponDef;
_local3 = list[_arg1];
return (_local3.GetUpgradeCost(_arg2));
}
public static function GetWeaponPrice(_arg1:int):Number{
var _local2:WeaponDef;
_local2 = list[_arg1];
return (_local2.price);
}
public static function AddClip(_arg1:int){
var _local2:WeaponDef;
_local2 = list[_arg1];
_local2.numClips++;
_local2.ammo = _local2.numInClip;
}
public static function GetWeaponDef(_arg1:int):WeaponDef{
return (list[_arg1]);
}
public static function IsWeaponAvailable(_arg1:int):Boolean{
var _local2:WeaponDef;
_local2 = list[_arg1];
return (_local2.available);
}
}
}//package
Section 237
//weapons_ak (weapons_ak)
package {
import flash.display.*;
public dynamic class weapons_ak extends MovieClip {
}
}//package
Section 238
//weapons_ak_shell (weapons_ak_shell)
package {
import flash.display.*;
public dynamic class weapons_ak_shell extends MovieClip {
}
}//package
Section 239
//weapons_ak_shoot (weapons_ak_shoot)
package {
import flash.display.*;
public dynamic class weapons_ak_shoot extends MovieClip {
}
}//package
Section 240
//weapons_chainsaw (weapons_chainsaw)
package {
import flash.display.*;
public dynamic class weapons_chainsaw extends MovieClip {
}
}//package
Section 241
//weapons_desertEagle (weapons_desertEagle)
package {
import flash.display.*;
public dynamic class weapons_desertEagle extends MovieClip {
}
}//package
Section 242
//weapons_desertEagle_shoot (weapons_desertEagle_shoot)
package {
import flash.display.*;
public dynamic class weapons_desertEagle_shoot extends MovieClip {
}
}//package
Section 243
//weapons_gattling (weapons_gattling)
package {
import flash.display.*;
public dynamic class weapons_gattling extends MovieClip {
}
}//package
Section 244
//weapons_gattling_shell (weapons_gattling_shell)
package {
import flash.display.*;
public dynamic class weapons_gattling_shell extends MovieClip {
}
}//package
Section 245
//weapons_gattling_shoot (weapons_gattling_shoot)
package {
import flash.display.*;
public dynamic class weapons_gattling_shoot extends MovieClip {
}
}//package
Section 246
//weapons_grenade (weapons_grenade)
package {
import flash.display.*;
public dynamic class weapons_grenade extends MovieClip {
}
}//package
Section 247
//weapons_m16 (weapons_m16)
package {
import flash.display.*;
public dynamic class weapons_m16 extends MovieClip {
}
}//package
Section 248
//weapons_m16_shell (weapons_m16_shell)
package {
import flash.display.*;
public dynamic class weapons_m16_shell extends MovieClip {
}
}//package
Section 249
//weapons_m16_shoot (weapons_m16_shoot)
package {
import flash.display.*;
public dynamic class weapons_m16_shoot extends MovieClip {
}
}//package
Section 250
//weapons_pistol (weapons_pistol)
package {
import flash.display.*;
public dynamic class weapons_pistol extends MovieClip {
}
}//package
Section 251
//weapons_pistol_shell (weapons_pistol_shell)
package {
import flash.display.*;
public dynamic class weapons_pistol_shell extends MovieClip {
}
}//package
Section 252
//weapons_pistol_shoot (weapons_pistol_shoot)
package {
import flash.display.*;
public dynamic class weapons_pistol_shoot extends MovieClip {
}
}//package
Section 253
//weapons_rocketlauncher (weapons_rocketlauncher)
package {
import flash.display.*;
public dynamic class weapons_rocketlauncher extends MovieClip {
}
}//package
Section 254
//weapons_rocketlauncher_penguin (weapons_rocketlauncher_penguin)
package {
import flash.display.*;
public dynamic class weapons_rocketlauncher_penguin extends MovieClip {
}
}//package
Section 255
//weapons_rocketLauncher_rocket (weapons_rocketLauncher_rocket)
package {
import flash.display.*;
public dynamic class weapons_rocketLauncher_rocket extends MovieClip {
}
}//package
Section 256
//weapons_rocketlauncher_shoot (weapons_rocketlauncher_shoot)
package {
import flash.display.*;
public dynamic class weapons_rocketlauncher_shoot extends MovieClip {
}
}//package
Section 257
//weapons_shotgun (weapons_shotgun)
package {
import flash.display.*;
public dynamic class weapons_shotgun extends MovieClip {
}
}//package
Section 258
//weapons_shotgun_shell (weapons_shotgun_shell)
package {
import flash.display.*;
public dynamic class weapons_shotgun_shell extends MovieClip {
}
}//package
Section 259
//weapons_shotgun_shoot (weapons_shotgun_shoot)
package {
import flash.display.*;
public dynamic class weapons_shotgun_shoot extends MovieClip {
}
}//package
Section 260
//weapons_uzi (weapons_uzi)
package {
import flash.display.*;
public dynamic class weapons_uzi extends MovieClip {
}
}//package
Section 261
//weapons_uzi_shell (weapons_uzi_shell)
package {
import flash.display.*;
public dynamic class weapons_uzi_shell extends MovieClip {
}
}//package
Section 262
//weapons_uzi_shoot (weapons_uzi_shoot)
package {
import flash.display.*;
public dynamic class weapons_uzi_shoot extends MovieClip {
}
}//package