STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228073
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/80781977?noj=FRM80781977-29DC" width="1" height="1"></div>

vegetable.swf

This is the info page for
Flash #87002

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS3]
Section 1
//KeyPoll (bigroom.input.KeyPoll) package bigroom.input { import flash.events.*; import flash.display.*; import flash.utils.*; public class KeyPoll { private var states:ByteArray; public var press:Boolean;// = false public var click:Boolean;// = false public var onscreen:Boolean;// = true public var hasclicked:Boolean;// = false private var dispObj:DisplayObject; public function KeyPoll(obj:DisplayObject){ super(); states = new ByteArray(); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); dispObj = obj; dispObj.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener, false, 0, true); dispObj.addEventListener(KeyboardEvent.KEY_UP, keyUpListener, false, 0, true); dispObj.addEventListener(Event.ACTIVATE, activateListener, false, 0, true); dispObj.addEventListener(Event.DEACTIVATE, deactivateListener, false, 0, true); dispObj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener); dispObj.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener); dispObj.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); dispObj.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); } public function mouseOutHandler(e:MouseEvent):void{ onscreen = false; } public function isUp(keyCode:uint):Boolean{ return (((states[(keyCode >>> 3)] & (1 << (keyCode & 7))) == 0)); } private function activateListener(ev:Event):void{ var i:int; while (i < 8) { states[i] = 0; i++; }; } public function isDown(keyCode:uint):Boolean{ return (!(((states[(keyCode >>> 3)] & (1 << (keyCode & 7))) == 0))); } private function keyUpListener(ev:KeyboardEvent):void{ states[(ev.keyCode >>> 3)] = (states[(ev.keyCode >>> 3)] & ~((1 << (ev.keyCode & 7)))); } private function deactivateListener(ev:Event):void{ var i:int; while (i < 8) { states[i] = 0; i++; }; } public function mouseOverHandler(e:MouseEvent):void{ onscreen = true; } public function mouseUpListener(e:MouseEvent):void{ press = false; click = false; hasclicked = false; } public function mouseDownListener(e:MouseEvent):void{ press = true; click = true; hasclicked = true; } private function keyDownListener(ev:KeyboardEvent):void{ states[(ev.keyCode >>> 3)] = (states[(ev.keyCode >>> 3)] | (1 << (ev.keyCode & 7))); } } }//package bigroom.input
Section 2
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.5.0.12683"; public function BitmapAsset(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ super(bitmapData, pixelSnapping, smoothing); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(newWidth:Number, newHeight:Number):void{ width = newWidth; height = newHeight; } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } } }//package mx.core
Section 3
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexBitmap(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ var bitmapData = bitmapData; var pixelSnapping = pixelSnapping; var smoothing = smoothing; super(bitmapData, pixelSnapping, smoothing); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 4
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 5
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(void:Point):Point; function get name():String; function set width(flash.display:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(flash.display:String):void; function set scaleX(flash.display:Number):void; function set scaleY(flash.display:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(flash.display:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(void:Point):Point; function get height():Number; function set blendMode(flash.display:String):void; function get parent():DisplayObjectContainer; function getBounds(String:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(flash.display:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(flash.display:Number):void; function set accessibilityProperties(flash.display:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(flash.display:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(flash.display:Number):void; function set mask(flash.display:DisplayObject):void; function getRect(String:DisplayObject):Rectangle; function get alpha():Number; function set transform(flash.display:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean; function set opaqueBackground(flash.display:Object):void; function set visible(flash.display:Boolean):void; function get mask():DisplayObject; function set x(flash.display:Number):void; function set y(flash.display:Number):void; function get transform():Transform; function set filters(flash.display:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(flash.display:Number):void; function get stage():Stage; } }//package mx.core
Section 6
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get isDocument():Boolean; function set repeaters(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function initializeRepeaterArrays(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 7
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 8
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; public function SoundAsset(){ super(); } } }//package mx.core
Section 9
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.5.0.12683"; private static var counter:int = 0; public function NameUtil(){ super(); } public static function displayObjectToString(displayObject:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = displayObject; o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; //unresolved jump var _slot1 = e; return (result); } public static function createUniqueName(object:Object):String{ if (!object){ return (null); }; var name:String = getQualifiedClassName(object); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; var charCode:int = name.charCodeAt((name.length - 1)); if ((((charCode >= 48)) && ((charCode <= 57)))){ name = (name + "_"); }; return ((name + counter++)); } } }//package mx.utils
Section 10
//blockclass (blockclass) package { import flash.geom.*; public class blockclass { public var hp:int; public var rect:Rectangle; public var active:Boolean; public var yp:int; public var xp:int; public var wp:int; public var type:int; public var trigger:int; public function blockclass():void{ super(); clear(); } public function clear():void{ active = false; type = 0; trigger = 0; xp = 0; yp = 0; wp = 0; hp = 0; rect = new Rectangle(); rect.x = xp; rect.y = yp; rect.width = wp; rect.height = hp; } public function rectset(xi:int, yi:int, wi:int, hi:int):void{ rect.x = xi; rect.y = yi; rect.width = wi; rect.height = hi; } } }//package
Section 11
//entclass (entclass) package { public class entclass { public var size:int; public var rule:int; public var active:Boolean; public var harmful:Boolean; public var life:int; public var attackspeed:int; public var hurt:int; public var xp:Number; public var yp:Number; public var onground:int; public var onwall:int; public var behave:int; public var framedelay:int; public var ax:Number; public var ay:Number; public var type:int; public var onroof:int; public var onywall:int; public var gravity:Boolean; public var oldxp:Number; public var h:int; public var cx:int; public var cy:int; public var w:int; public var oldyp:Number; public var onentity:int; public var state:int; public var statedelay:int; public var walkingframe:int; public var recovery:int; public var isplatform:Boolean; public var newxp:Number; public var dir:int; public var drawframe:int; public var tile:int; public var newyp:Number; public var x1:int; public var x2:int; public var vy:Number; public var vx:Number; public var onxwall:int; public var colour:int; public var y1:int; public var y2:int; public var invis:Boolean; public var para:int; public var animate:int; public var attacked:int; public var consolation:String; public var jumping:Boolean; public var actionframe:int; public var jumpframe:int; public function entclass():void{ super(); clear(); } public function clear():void{ active = false; invis = false; type = 0; size = 0; tile = 0; rule = 0; state = 0; statedelay = 0; life = 0; colour = 0; para = 0; behave = 0; animate = 0; xp = 0; yp = 0; ax = 0; ay = 0; vx = 0; vy = 0; w = 32; h = 32; cx = 0; cy = 0; newxp = 0; newyp = 0; x1 = 0; y1 = 0; x2 = 320; y2 = 240; attacked = 0; jumping = false; gravity = false; onground = 0; onroof = 0; jumpframe = 0; onentity = 0; harmful = false; onwall = 0; onxwall = 0; onywall = 0; isplatform = false; framedelay = 0; drawframe = 0; walkingframe = 0; dir = 0; actionframe = 0; attackspeed = 0; hurt = 0; recovery = 0; consolation = "There There"; } } }//package
Section 12
//entityclass (entityclass) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class entityclass { public var blocks:Array; public var j:int; public var z:int; public var temph:int; public var activetrigger:int; public var colpoint1:Point; public var tempw:int; public var tempy:int; public var tempx:int; public var nblocks:int; public var colpoint2:Point; public var tpx1:int; public var tpx2:int; public var temprect:Rectangle; public var entities:Array; public var nentity:int; public var tpy1:int; public var tpy2:int; public var temp2:int; public var i:int; public var k:int; public var temp:int; public var temprect2:Rectangle; public static var TRIGGER:Number = 1; public static var BLOCK:Number = 0; public static var DAMAGE:Number = 2; public function entityclass(){ entities = new Array(); blocks = new Array(); super(); } public function removeblock(t:int):void{ blocks[t].clear(); i = (nblocks - 1); while ((((i >= 0)) && (!(blocks[i].active)))) { nblocks--; i--; }; } public function updateentities(i:int, game:gameclass, music:musicclass):Boolean{ if (entities[i].active){ if (entities[i].statedelay <= 0){ switch (entities[i].type){ case 0: if (entities[i].state == 0){ } else { if (entities[i].state == 10){ game.test = true; }; }; break; case 1: if (entities[i].behave == 0){ if (entities[i].state == 0){ entities[i].vx = -2; entities[i].dir = 1; if (entities[i].xp < 30){ entities[i].state = 1; }; } else { if (entities[i].state == 1){ entities[i].vx = 2; entities[i].dir = 0; if (entities[i].xp > 260){ entities[i].state = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; entities[i].vx = 0; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].vx = 0; entities[i].state = 0; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; } else { if (entities[i].behave == 1){ if (entities[i].state == 0){ entities[i].vx = -3; entities[i].dir = 1; if (entities[i].xp < 100){ music.playef(6, 10); createentity(entities[i].xp, (entities[i].yp + 20), 5, 4, 0); entities[i].state = 2; }; } else { if (entities[i].state == 1){ entities[i].vx = 3; entities[i].dir = 0; if (entities[i].xp > 200){ music.playef(6, 10); createentity(entities[i].xp, (entities[i].yp + 20), 5, -4, 0); entities[i].state = 3; }; } else { if (entities[i].state == 2){ entities[i].vx = -3; entities[i].dir = 1; if (entities[i].xp < 30){ entities[i].state = 1; }; } else { if (entities[i].state == 3){ entities[i].vx = 3; entities[i].dir = 0; if (entities[i].xp > 260){ entities[i].state = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; if (entities[i].vx < 0){ entities[i].vx = 0; entities[i].state = 11; } else { entities[i].vx = 0; entities[i].state = 12; }; } else { if (entities[i].state == 11){ entities[i].vx = 0; entities[i].state = 2; entities[i].statedelay = 20; entities[i].attackspeed = 0; } else { if (entities[i].state == 12){ entities[i].vx = 0; entities[i].state = 3; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; }; }; }; } else { if (entities[i].behave == 2){ if (entities[i].state == 0){ entities[i].vx = -2; entities[i].life++; if (entities[i].life > 90){ entities[i].life = 0; }; if (entities[i].xp < 30){ entities[i].state = 1; }; if (entities[i].life > 45){ entities[i].attacked = 20; entities[i].dir = ((entities[i].dir + 1) % 2); } else { entities[i].dir = 1; }; } else { if (entities[i].state == 1){ entities[i].vx = 2; entities[i].life++; if (entities[i].life > 90){ entities[i].life = 0; }; if (entities[i].xp > 260){ entities[i].state = 0; }; if (entities[i].life > 45){ entities[i].attacked = 20; entities[i].dir = ((entities[i].dir + 1) % 2); } else { entities[i].dir = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; entities[i].vx = 0; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].vx = 0; entities[i].state = 0; entities[i].statedelay = 20; entities[i].life = 0; entities[i].attackspeed = 0; }; }; }; }; j = getplayer(); if (j > -1){ if ((((entities[j].hurt <= 0)) && ((entities[i].attacked > 0)))){ if (Math.abs((entities[i].yp - entities[j].yp)) < 30){ if (entities[i].dir == 1){ if (entities[i].xp < (entities[j].xp + 35)){ if (entities[i].xp > (entities[j].xp - 15)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; } else { if (entities[i].dir == 0){ if (entities[i].xp < (entities[j].xp + 15)){ if (entities[i].xp > (entities[j].xp - 35)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; }; }; }; }; }; } else { if (entities[i].behave == 3){ if (entities[i].state == 0){ j = getplayer(); if (entities[i].xp > (entities[j].xp + 30)){ entities[i].vx = -2; entities[i].dir = 1; } else { if (entities[i].xp < (entities[j].xp - 30)){ entities[i].vx = 2; entities[i].dir = 0; } else { entities[i].vx = 0; }; }; if ((((entities[i].vx == 0)) && ((entities[i].recovery <= 0)))){ entities[i].attackspeed++; }; if (entities[i].attackspeed > 5){ entities[i].attackspeed = 0; entities[i].state = 1; }; } else { if (entities[i].state == 1){ music.playef(2, 10); entities[i].attacked = 20; entities[i].state = 2; j = getplayer(); if (j > -1){ if (entities[j].hurt <= 0){ if (Math.abs((entities[i].yp - entities[j].yp)) < 30){ if (entities[i].dir == 1){ if (entities[i].xp < (entities[j].xp + 35)){ if (entities[i].xp > (entities[j].xp - 15)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; } else { if (entities[i].dir == 0){ if (entities[i].xp < (entities[j].xp + 15)){ if (entities[i].xp > (entities[j].xp - 35)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; }; }; }; }; }; } else { if (entities[i].state == 2){ entities[i].state = 3; entities[i].statedelay = 20; } else { if (entities[i].state == 3){ j = getplayer(); if (entities[i].xp > entities[j].xp){ entities[i].vx = 2; entities[i].dir = 1; } else { if (entities[i].xp < entities[j].xp){ entities[i].vx = -2; entities[i].dir = 0; }; }; entities[i].attackspeed++; if (entities[i].attackspeed > 45){ entities[i].attackspeed = 0; entities[i].state = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].state = 0; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; }; }; } else { if (entities[i].behave == 4){ if (entities[i].state == 0){ entities[i].vx = -3; entities[i].dir = 1; if (entities[i].xp < 30){ entities[i].state = 2; }; } else { if (entities[i].state == 1){ entities[i].vx = 3; entities[i].dir = 0; if (entities[i].xp > 260){ entities[i].state = 3; }; } else { if (entities[i].state == 2){ entities[i].attacked = 5; entities[i].vx = 0; entities[i].dir = 0; entities[i].life++; if ((entities[i].life % 30) == 0){ music.playef(6, 10); createentity(entities[i].xp, entities[i].yp, 5, 4, 0, 2); }; if (entities[i].life > 100){ entities[i].state = 1; entities[i].life = 0; }; } else { if (entities[i].state == 3){ entities[i].attacked = 5; entities[i].vx = 0; entities[i].dir = 1; entities[i].life++; if ((entities[i].life % 30) == 0){ music.playef(6, 10); createentity(entities[i].xp, entities[i].yp, 5, -4, 0, 2); }; if (entities[i].life > 100){ entities[i].state = 0; entities[i].life = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; if (entities[i].vx < 0){ entities[i].vx = 0; entities[i].state = 11; } else { entities[i].vx = 0; entities[i].state = 12; }; } else { if (entities[i].state == 11){ entities[i].vx = 0; entities[i].state = 2; entities[i].statedelay = 20; entities[i].attackspeed = 0; } else { if (entities[i].state == 12){ entities[i].vx = 0; entities[i].state = 3; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; }; }; }; } else { if (entities[i].behave == 5){ if (entities[i].state == 0){ entities[i].vx = -1; entities[i].dir = 1; entities[i].life++; if (entities[i].life > 160){ entities[i].life = 0; }; if (entities[i].life == 60){ music.playef(5, 10); }; if (entities[i].life > 60){ entities[i].vx = -6; entities[i].attacked = 2; }; if (entities[i].xp < 30){ entities[i].state = 1; }; } else { if (entities[i].state == 1){ entities[i].vx = 1; entities[i].dir = 0; entities[i].life++; if (entities[i].life > 160){ entities[i].life = 0; }; if (entities[i].life == 60){ music.playef(5, 10); }; if (entities[i].life > 60){ entities[i].vx = 6; entities[i].attacked = 2; }; if (entities[i].xp > 260){ entities[i].state = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; entities[i].vx = 0; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].vx = 0; entities[i].state = 0; entities[i].statedelay = 20; entities[i].life = 0; entities[i].attackspeed = 0; }; }; }; }; j = getplayer(); if (j > -1){ if ((((entities[j].hurt <= 0)) && ((entities[i].attacked > 0)))){ if (Math.abs((entities[i].yp - entities[j].yp)) < 30){ if (entities[i].dir == 1){ if (entities[i].xp < (entities[j].xp + 35)){ if (entities[i].xp > (entities[j].xp - 15)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; } else { if (entities[i].dir == 0){ if (entities[i].xp < (entities[j].xp + 15)){ if (entities[i].xp > (entities[j].xp - 35)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; }; }; }; }; }; } else { if (entities[i].behave == 6){ entities[i].life++; if ((((((entities[i].onground > 0)) && ((entities[i].attacked == 0)))) && ((entities[i].life < 30)))){ entities[i].ay = -8; entities[i].jumping = true; entities[i].jumpframe = 30; }; if (entities[i].state == 0){ j = getplayer(); if (entities[i].xp > (entities[j].xp + 30)){ entities[i].vx = -4; entities[i].dir = 1; } else { if (entities[i].xp < (entities[j].xp - 30)){ entities[i].vx = 4; entities[i].dir = 0; } else { entities[i].vx = 0; }; }; if ((((entities[i].vx == 0)) && ((entities[i].recovery <= 0)))){ entities[i].attackspeed++; }; if (entities[i].attackspeed > 5){ entities[i].attackspeed = 0; entities[i].state = 1; }; } else { if (entities[i].state == 1){ entities[i].attacked = 20; entities[i].state = 2; entities[i].life = 0; j = getplayer(); if (j > -1){ music.playef(2, 10); if (entities[j].hurt <= 0){ if (Math.abs((entities[i].yp - entities[j].yp)) < 30){ if (entities[i].dir == 1){ if (entities[i].xp < (entities[j].xp + 35)){ if (entities[i].xp > (entities[j].xp - 15)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; } else { if (entities[i].dir == 0){ if (entities[i].xp < (entities[j].xp + 15)){ if (entities[i].xp > (entities[j].xp - 35)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; }; }; }; }; }; } else { if (entities[i].state == 2){ entities[i].state = 3; entities[i].statedelay = 20; } else { if (entities[i].state == 3){ j = getplayer(); if (entities[i].xp > entities[j].xp){ entities[i].vx = 2; entities[i].dir = 1; } else { if (entities[i].xp < entities[j].xp){ entities[i].vx = -2; entities[i].dir = 0; }; }; entities[i].attackspeed++; if (entities[i].attackspeed > 45){ entities[i].attackspeed = 0; entities[i].state = 0; }; } else { if (entities[i].state == 10){ entities[i].life = 100; entities[i].hurt = 20; entities[i].recovery = 40; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].life = 100; entities[i].state = 0; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; }; }; } else { if (entities[i].behave == 7){ if (entities[i].state == 0){ j = getplayer(); if (entities[i].xp > (entities[j].xp + 30)){ entities[i].vx = -8; entities[i].dir = 1; } else { if (entities[i].xp < (entities[j].xp - 30)){ entities[i].vx = 8; entities[i].dir = 0; } else { entities[i].vx = 0; }; }; if ((((entities[i].vx == 0)) && ((entities[i].recovery <= 0)))){ entities[i].attackspeed++; }; if (entities[i].attackspeed > 5){ entities[i].attackspeed = 0; entities[i].state = 1; }; } else { if (entities[i].state == 1){ game.screenshake = 10; entities[i].attacked = 10; entities[i].state = 2; j = getplayer(); if (j > -1){ music.playef(1, 10); if (entities[j].hurt <= 0){ if (Math.abs((entities[i].yp - entities[j].yp)) < 30){ if (entities[i].dir == 1){ if (entities[i].xp < (entities[j].xp + 35)){ if (entities[i].xp > (entities[j].xp - 15)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; } else { if (entities[i].dir == 0){ if (entities[i].xp < (entities[j].xp + 15)){ if (entities[i].xp > (entities[j].xp - 35)){ music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; }; }; }; }; }; }; }; } else { if (entities[i].state == 2){ entities[i].state = 3; entities[i].statedelay = 20; } else { if (entities[i].state == 3){ j = getplayer(); if (entities[i].xp > entities[j].xp){ entities[i].vx = 2; entities[i].dir = 1; } else { if (entities[i].xp < entities[j].xp){ entities[i].vx = -2; entities[i].dir = 0; }; }; entities[i].attackspeed++; if (entities[i].attackspeed > 45){ entities[i].attackspeed = 0; entities[i].state = 0; }; } else { if (entities[i].state == 5){ entities[i].life++; if (entities[i].life < 10){ entities[i].state = 1; } else { entities[i].state = 2; entities[i].life = 0; }; } else { if (entities[i].state == 10){ entities[i].hurt = 20; entities[i].recovery = 40; entities[i].state = 11; } else { if (entities[i].state == 11){ entities[i].state = 0; entities[i].statedelay = 20; entities[i].attackspeed = 0; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; break; case 2: if (entities[i].state == 0){ entities[i].xp = (entities[i].xp + ((Math.random() * 21) - 10)); entities[i].yp = (entities[i].yp + ((Math.random() * 21) - 10)); entities[i].state = 1; } else { if (entities[i].state == 1){ entities[i].yp = (entities[i].yp - 8); entities[i].life--; if (entities[i].life <= 3){ entities[i].state = 2; entities[i].statedelay = 1; }; } else { if (entities[i].state == 2){ entities[i].yp = (entities[i].yp + 8); entities[i].life--; if (entities[i].life <= 0){ entities[i].state = 3; }; } else { if (entities[i].state == 3){ entities[i].state = 4; entities[i].statedelay = 20; } else { if (entities[i].state == 4){ entities[i].active = false; }; }; }; }; }; break; case 5: if (entities[i].state == 0){ if (entities[i].xp < 0){ entities[i].active = false; }; if (entities[i].xp > 320){ entities[i].active = false; }; } else { if (entities[i].state == 1){ j = getplayer(); music.playef(3, 10); entities[j].hurt = 20; game.playerhealth = (game.playerhealth - game.enemystrength); entities[j].vx = 0; entities[j].vy = 0; if (game.playerhealth <= 0){ game.playerhealth = 0; game.playerdead = true; }; entities[i].state = 0; entities[i].active = false; } else { if (entities[i].state == 2){ entities[i].state = 0; entities[i].active = false; }; }; }; break; }; } else { entities[i].statedelay--; if (entities[i].statedelay < 0){ entities[i].statedelay = 0; }; }; }; return (true); } public function checkblocks():Boolean{ i = 0; while (i < nblocks) { if (blocks[i].active){ if (blocks[i].type == BLOCK){ if (blocks[i].rect.intersects(temprect)){ return (true); }; }; }; i++; }; return (false); } public function init():void{ var entity:entclass; var block:blockclass; nentity = 0; nblocks = 0; temprect = new Rectangle(); temprect2 = new Rectangle(); colpoint1 = new Point(); colpoint2 = new Point(); var z:Number = 0; while (z < 200) { entity = new entclass(); entities.push(entity); block = new blockclass(); blocks.push(block); z++; }; } public function createblock(t:int, xp:int=0, yp:int=0, w:int=0, h:int=0, trig:int=0):void{ if (nblocks == 0){ z = 0; } else { i = 0; z = -1; while (i < nblocks) { if (!blocks[i].active){ z = i; i = nblocks; }; i++; }; if (z == -1){ z = nblocks; nblocks++; }; }; blocks[z].clear(); blocks[z].active = true; switch (t){ case BLOCK: blocks[z].type = BLOCK; blocks[z].xp = xp; blocks[z].yp = yp; blocks[z].wp = w; blocks[z].hp = h; blocks[z].rectset(xp, yp, w, h); nblocks++; break; case TRIGGER: blocks[z].type = TRIGGER; blocks[z].x = xp; blocks[z].y = yp; blocks[z].w = w; blocks[z].h = h; blocks[z].rectset(xp, yp, w, h); blocks[z].trigger = trig; nblocks++; break; case DAMAGE: blocks[z].type = DAMAGE; blocks[z].x = xp; blocks[z].y = yp; blocks[z].w = w; blocks[z].h = h; blocks[z].rectset(xp, yp, w, h); nblocks++; break; }; } public function gettype(t:int):Boolean{ var i:int; while (i < nentity) { if (entities[i].type == t){ return (true); }; i++; }; return (false); } public function animateentities(game:gameclass, i:int):void{ if (entities[i].active){ if (entities[i].statedelay <= 0){ switch (entities[i].type){ case 0: entities[i].drawframe = (entities[i].tile + (entities[i].dir * 5)); if (entities[i].framedelay <= 0){ entities[i].walkingframe = ((entities[i].walkingframe + 1) % 2); entities[i].framedelay = 8; } else { entities[i].framedelay--; }; if (entities[i].vx != 0){ entities[i].drawframe = (entities[i].drawframe + (1 + entities[i].walkingframe)); }; if (entities[i].onground <= 1){ entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 2); }; if (entities[i].attacked > 0){ entities[i].attacked--; entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 4); }; if (entities[i].hurt > 0){ entities[i].hurt--; entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 3); }; break; case 1: entities[i].drawframe = (entities[i].tile + (entities[i].dir * 5)); if (entities[i].framedelay <= 0){ entities[i].walkingframe = ((entities[i].walkingframe + 1) % 2); entities[i].framedelay = 8; } else { entities[i].framedelay--; }; if (entities[i].vx != 0){ entities[i].drawframe = (entities[i].drawframe + (1 + entities[i].walkingframe)); }; if (entities[i].onground <= 1){ entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 2); }; if (entities[i].attacked > 0){ entities[i].attacked--; entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 4); }; if (entities[i].hurt > 0){ entities[i].hurt--; entities[i].drawframe = ((entities[i].tile + (entities[i].dir * 5)) + 3); }; break; case 4: entities[i].drawframe = (entities[i].tile + (entities[i].dir * 5)); if (entities[i].framedelay <= 0){ entities[i].walkingframe = ((entities[i].walkingframe + 1) % 2); entities[i].framedelay = 8; } else { entities[i].framedelay--; }; if (entities[i].vx != 0){ entities[i].drawframe = (entities[i].drawframe + (1 + entities[i].walkingframe)); }; break; case 5: if (entities[i].framedelay <= 0){ entities[i].walkingframe = ((entities[i].walkingframe + 1) % 2); entities[i].framedelay = 4; } else { entities[i].framedelay--; }; entities[i].drawframe = (entities[i].tile + entities[i].walkingframe); break; default: entities[i].drawframe = entities[i].tile; break; }; } else { entities[i].statedelay--; if (entities[i].statedelay < 0){ entities[i].statedelay = 0; }; }; }; } public function cleanup():void{ i = (nentity - 1); while ((((i >= 0)) && (!(entities[i].active)))) { nentity--; i--; }; } public function checktrigger():int{ i = 0; while (i < nentity) { if (entities[i].rule == 0){ tempx = (entities[i].xp + entities[i].cx); tempy = (entities[i].yp + entities[i].cy); tempw = entities[i].w; temph = entities[i].h; rectset(tempx, tempy, tempw, temph); j = 0; while (j < nblocks) { if ((((blocks[j].type == TRIGGER)) && (blocks[j].active))){ if (blocks[j].rect.intersects(temprect)){ activetrigger = blocks[j].trigger; return (blocks[j].trigger); }; }; j++; }; }; i++; }; return (-1); } public function removetrigger(t:int):void{ i = 0; while (i < nblocks) { if (blocks[i].type == TRIGGER){ if (blocks[i].trigger == t){ removeblock(i); }; }; i++; }; } public function getplayer():int{ var i:int; while (i < nentity) { if (entities[i].type == 0){ return (i); }; i++; }; return (-1); } public function entitymapcollision(t:int, map:mapclass):void{ if (testwallsx(map, t, entities[t].newxp, entities[t].yp)){ entities[t].xp = entities[t].newxp; } else { if (entities[t].onwall > 0){ entities[t].state = entities[t].onwall; }; if (entities[t].onxwall > 0){ entities[t].state = entities[t].onxwall; }; }; if (testwallsy(map, t, entities[t].xp, entities[t].newyp)){ entities[t].yp = entities[t].newyp; } else { if (entities[t].onwall > 0){ entities[t].state = entities[t].onwall; }; if (entities[t].onywall > 0){ entities[t].state = entities[t].onywall; }; entities[t].jumpframe = 0; }; } public function testwallsx(map:mapclass, t:int, tx:int, ty:int):Boolean{ tempx = (tx + entities[t].cx); tempy = (ty + entities[t].cy); tempw = entities[t].w; temph = entities[t].h; rectset(tempx, tempy, tempw, temph); if (checkwall(map)){ if (entities[t].vx > 1){ entities[t].vx--; entities[t].newxp = int((entities[t].xp + entities[t].vx)); return (testwallsx(map, t, entities[t].newxp, entities[t].yp)); }; if (entities[t].vx < -1){ entities[t].vx++; entities[t].newxp = int((entities[t].xp + entities[t].vx)); return (testwallsx(map, t, entities[t].newxp, entities[t].yp)); }; entities[t].vx = 0; return (false); }; return (true); } public function testwallsy(map:mapclass, t:int, tx:int, ty:int):Boolean{ tempx = (tx + entities[t].cx); tempy = (ty + entities[t].cy); tempw = entities[t].w; temph = entities[t].h; rectset(tempx, tempy, tempw, temph); if (checkwall(map)){ if (entities[t].vy > 1){ entities[t].vy--; entities[t].newyp = int((entities[t].yp + entities[t].vy)); return (testwallsy(map, t, entities[t].xp, entities[t].newyp)); }; if (entities[t].vy < -1){ entities[t].vy++; entities[t].newyp = int((entities[t].yp + entities[t].vy)); return (testwallsy(map, t, entities[t].xp, entities[t].newyp)); }; entities[t].vy = 0; return (false); }; return (true); } public function checkwall(map:mapclass):Boolean{ if (checkblocks()){ return (true); }; tempx = getgridpoint(temprect.x); tempy = getgridpoint(temprect.y); tempw = getgridpoint(((temprect.x + temprect.width) - 1)); temph = getgridpoint(((temprect.y + temprect.height) - 1)); if (map.collide(tempx, tempy)){ return (true); }; if (map.collide(tempw, tempy)){ return (true); }; if (map.collide(tempx, temph)){ return (true); }; if (map.collide(tempw, temph)){ return (true); }; if (temprect.height >= 12){ tpy1 = getgridpoint((temprect.y + 6)); if (map.collide(tempx, tpy1)){ return (true); }; if (map.collide(tempw, tpy1)){ return (true); }; if (temprect.height >= 18){ tpy1 = getgridpoint((temprect.y + 12)); if (map.collide(tempx, tpy1)){ return (true); }; if (map.collide(tempw, tpy1)){ return (true); }; if (temprect.height >= 24){ tpy1 = getgridpoint((temprect.y + 18)); if (map.collide(tempx, tpy1)){ return (true); }; if (map.collide(tempw, tpy1)){ return (true); }; }; }; }; if (temprect.width >= 12){ tpx1 = getgridpoint((temprect.x + 6)); if (map.collide(tpx1, tempy)){ return (true); }; if (map.collide(tpx1, temph)){ return (true); }; }; return (false); } public function rect2set(xi:int, yi:int, wi:int, hi:int):void{ temprect2.x = xi; temprect2.y = yi; temprect2.width = wi; temprect2.height = hi; } public function createentity(xp:Number, yp:Number, t:int, vx:Number=0, vy:Number=0, para:int=0):void{ if (nentity == 0){ z = 0; nentity++; } else { i = 0; z = -1; while (i < nentity) { if (!entities[i].active){ z = i; i = nentity; }; i++; }; if (z == -1){ z = nentity; nentity++; }; }; entities[z].clear(); entities[z].active = true; entities[z].type = t; switch (t){ case 0: entities[z].rule = 0; entities[z].tile = 0; entities[z].xp = xp; entities[z].yp = yp; entities[z].cx = 16; entities[z].cy = 8; entities[z].w = 16; entities[z].h = 56; entities[z].gravity = true; break; case 1: entities[z].rule = 1; entities[z].behave = vx; entities[z].xp = xp; entities[z].yp = yp; entities[z].cx = 16; entities[z].cy = 8; entities[z].w = 16; entities[z].h = 56; entities[z].life = 0; switch (vx){ case 0: entities[z].tile = 60; break; case 1: entities[z].tile = 70; break; case 2: entities[z].tile = 80; break; case 3: entities[z].tile = 50; break; case 4: entities[z].tile = 30; break; case 5: entities[z].tile = 40; break; case 6: entities[z].tile = 20; break; case 7: entities[z].tile = 10; break; }; entities[z].gravity = true; break; case 2: entities[z].type = 2; entities[z].size = 1; entities[z].life = 6; entities[z].xp = xp; entities[z].yp = yp; i = (Math.random() * 100); if (i < 15){ entities[z].consolation = "There There"; } else { if (i < 30){ entities[z].consolation = "It's ok"; } else { if (i < 45){ entities[z].consolation = "Don't worry"; } else { if (i <= 60){ entities[z].consolation = "I understand"; } else { if (i <= 75){ entities[z].consolation = "I'm here for you"; } else { if (i <= 90){ entities[z].consolation = "Let it out"; } else { if (i <= 100){ entities[z].consolation = "You're not alone"; }; }; }; }; }; }; }; entities[z].state = 0; entities[z].statedelay = 0; break; case 4: entities[z].rule = 2; entities[z].tile = 0; entities[z].xp = xp; entities[z].yp = yp; entities[z].cx = 16; entities[z].cy = 8; entities[z].w = 16; entities[z].h = 56; entities[z].gravity = true; break; case 5: entities[z].rule = 3; entities[z].tile = (90 + para); entities[z].xp = xp; entities[z].yp = yp; entities[z].vx = vx; entities[z].vy = vy; if (para < 2){ entities[z].cx = 4; entities[z].cy = 2; entities[z].w = 5; entities[z].h = 1; } else { entities[z].cx = 12; entities[z].cy = 0; entities[z].w = 24; entities[z].h = 64; }; entities[z].onentity = 1; entities[z].onwall = 2; entities[z].gravity = false; break; }; } public function removeallblocks():void{ i = 0; while (i < nblocks) { blocks[i].clear(); i++; }; nblocks = 0; } public function entitycollisioncheck(gfx:graphicsclass, game:gameclass, map:mapclass, music:musicclass):void{ i = 0; while (i < nentity) { if (entities[i].active){ j = 0; while (j < nentity) { if (((entities[j].active) && (!((i == j))))){ if ((((entities[i].rule == 0)) && ((entities[j].rule == 3)))){ if (entitycollide(i, j)){ entities[j].state = entities[j].onentity; entities[j].statedelay = 0; }; }; }; j++; }; }; i++; }; j = getplayer(); if (j > -1){ if (!testwallsx(map, j, entities[j].xp, entities[j].yp)){ entities[j].yp = (entities[j].yp - 3); }; }; activetrigger = -1; if (checktrigger() > -1){ game.state = activetrigger; game.statedelay = 0; }; } public function applyfriction(t:int, xrate:Number, yrate:Number):void{ if (entities[t].vx > 0){ entities[t].vx = (entities[t].vx - xrate); }; if (entities[t].vx < 0){ entities[t].vx = (entities[t].vx + xrate); }; if (entities[t].vy > 0){ entities[t].vy = (entities[t].vy - yrate); }; if (entities[t].vy < 0){ entities[t].vy = (entities[t].vy + yrate); }; if (entities[t].vy > 6){ entities[t].vy = 6; }; if (entities[t].vy < -6){ entities[t].vy = -6; }; if (entities[t].vx > 6){ entities[t].vx = 6; }; if (entities[t].vx < -6){ entities[t].vx = -6; }; if (Math.abs(entities[t].vx) <= xrate){ entities[t].vx = 0; }; if (Math.abs(entities[t].vy) <= yrate){ entities[t].vy = 0; }; } public function entitycollidefloor(map:mapclass, t:int):Boolean{ tempx = (entities[t].xp + entities[t].cx); tempy = ((entities[t].yp + entities[t].cy) + 1); tempw = entities[t].w; temph = entities[t].h; rectset(tempx, tempy, tempw, temph); if (checkwall(map)){ return (true); }; return (false); } public function updateentitylogic(t:int, game:gameclass):void{ entities[t].oldxp = entities[t].xp; entities[t].oldyp = entities[t].yp; entities[t].vx = (entities[t].vx + entities[t].ax); entities[t].vy = (entities[t].vy + entities[t].ay); entities[t].ax = 0; if (entities[t].jumping){ if (entities[t].ay < 0){ entities[t].ay++; }; if (entities[t].ay > -1){ entities[t].ay = 0; }; entities[t].jumpframe--; if (entities[t].jumpframe <= 0){ entities[t].jumping = false; }; } else { if (entities[t].gravity){ entities[t].ay = 3; }; }; if (entities[t].gravity){ applyfriction(t, 0, 0.5); }; entities[t].newxp = (entities[t].xp + entities[t].vx); entities[t].newyp = (entities[t].yp + entities[t].vy); } public function getgridpoint(t:int):int{ t = ((t - (t % 16)) / 16); return (t); } public function checkdamage():Boolean{ i = 0; while (i < nentity) { if (entities[i].rule == 0){ tempx = (entities[i].xp + entities[i].cx); tempy = (entities[i].yp + entities[i].cy); tempw = entities[i].w; temph = entities[i].h; rectset(tempx, tempy, tempw, temph); j = 0; while (j < nblocks) { if ((((blocks[j].type == DAMAGE)) && (blocks[j].active))){ if (blocks[j].rect.intersects(temprect)){ return (true); }; }; j++; }; }; i++; }; return (false); } public function getenemy():int{ var i:int; while (i < nentity) { if (entities[i].rule == 1){ return (i); }; i++; }; return (-1); } public function entitycollide(a:int, b:int):Boolean{ tempx = (entities[a].xp + entities[a].cx); tempy = (entities[a].yp + entities[a].cy); tempw = entities[a].w; temph = entities[a].h; rectset(tempx, tempy, tempw, temph); tempx = (entities[b].xp + entities[b].cx); tempy = (entities[b].yp + entities[b].cy); tempw = entities[b].w; temph = entities[b].h; rect2set(tempx, tempy, tempw, temph); if (temprect.intersects(temprect2)){ return (true); }; return (false); } public function removeblockat(x:int, y:int):void{ i = 0; while (i < nblocks) { if ((((blocks[i].x == x)) && ((blocks[i].y == y)))){ removeblock(i); }; i++; }; } public function rectset(xi:int, yi:int, wi:int, hi:int):void{ temprect.x = xi; temprect.y = yi; temprect.width = wi; temprect.height = hi; } } }//package
Section 13
//gameclass (gameclass) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class gameclass extends Sprite { public var hascontrol:Boolean; public var playerhealth:int; public var lives:int; public var mutebutton:int; public var enemydef:int; public var startlevel:int; public var state:int; public var statedelay:int; public var test:Boolean; public var screenshake:int; public var maxlevel:int; public var teststring:String; public var flashlight:int; public var nextenemyframe:int; public var mx:int; public var my:int; public var paused:Boolean; public var currentlevel:int; public var jumppressed:int; public var nextenemydelay:int; public var donotplaytimer:int; public var completestop:Boolean; public var levelcomplete:int; public var playerdead:Boolean; public var enemystrength:int; public var globalsound:int; public var levelselecttimer:int; public var infocus:Boolean; public var gamestate:int; public var jumpheld:Boolean; public var enemyhealth:int; public var muted:Boolean; public var nextlevel:int; public var deathseq:int; public var gamecookie:SharedObject; public var attackheld:Boolean; public static var GAMEMODE:Number = 0; public static var TRIGGER:Number = 1; public static var BLOCK:Number = 0; public static var DAMAGE:Number = 2; public function gameclass(obj:entityclass, music:musicclass):void{ super(); gamecookie = SharedObject.getLocal("dwvegetablegame"); maxlevel = 0; startlevel = 0; if (gamecookie.data.level == undefined){ gamecookie.data.level = 0; } else { maxlevel = gamecookie.data.level; }; levelselecttimer = 0; infocus = true; paused = false; muted = false; globalsound = 1; addEventListener(Event.DEACTIVATE, windowNotActive); addEventListener(Event.ACTIVATE, windowActive); gamestate = GAMEMODE; completestop = false; hascontrol = true; jumpheld = false; jumppressed = 0; deathseq = 0; attackheld = false; nextenemydelay = 0; nextenemyframe = 0; currentlevel = 0; nextlevel = 0; lives = 3; playerdead = false; donotplaytimer = 0; test = false; teststring = "TEST = True"; state = 1; statedelay = 0; updatestate(obj, music); } public function enemyname():String{ switch (currentlevel){ case 0: return ("JAYWALKER"); case 1: return ("LITTERER"); case 2: return ("SOMEONE WHO PLAYS MUSIC ON THEIR PHONE AT THE BACK OF THE BUS"); case 3: return ("BLACKBEARD"); case 4: return ("JOHN WAYNE GACY"); case 5: return ("LEOPOLD II OF BELGIUM"); case 6: return ("JOSEPH STALIN"); case 7: return ("ADOLF HITLER"); }; return (""); } public function windowActive(e:Event):void{ infocus = true; } public function setsavepoint():void{ if (currentlevel == 8){ kongapi.submit("congratulation", maxlevel); }; maxlevel = currentlevel; gamecookie.data.level = maxlevel; kongapi.submit("level", maxlevel); } public function windowNotActive(e:Event):void{ infocus = false; } public function starttitle(obj:entityclass):void{ var i:int; obj.nblocks = 0; obj.createblock(0, -1000, 200, (320 + 2000), 40); playerhealth = 20; enemyhealth = 20; playerdead = false; levelcomplete = 0; currentlevel = 7; i = 0; while (i < obj.nentity) { obj.entities[i].active = false; i++; }; obj.cleanup(); obj.nentity = 0; i = 0; while (i < 20) { obj.createentity((-300 + (i * 40)), (200 - 64), 4); i++; }; } public function start(t:int, obj:entityclass, music:musicclass):void{ obj.nblocks = 0; obj.createblock(0, -1000, 200, (320 + 2000), 40); obj.createblock(0, -10, 0, 10, 240); obj.createblock(0, 320, 0, 10, 240); playerhealth = 20; enemyhealth = 20; playerdead = false; levelcomplete = 0; switch (t){ case 0: music.play(1); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 0); enemystrength = 0; enemydef = 20; break; case 1: music.play(1); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 1); enemystrength = 4; enemydef = 8; break; case 2: music.play(1); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 2); enemystrength = 4; enemydef = 6; break; case 3: music.play(2); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 3); enemystrength = 4; enemydef = 6; break; case 4: music.play(2); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 4); enemystrength = 6; enemydef = 4; break; case 5: music.play(2); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 5); enemystrength = 12; enemydef = 4; break; case 6: music.play(2); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 6); enemystrength = 12; enemydef = 4; break; case 7: music.play(2); obj.createentity(10, (200 - 64), 0); obj.createentity((310 - 48), (200 - 64), 1, 7); enemystrength = 20; enemydef = 4; break; }; } public function updatestate(obj:entityclass, music:musicclass):void{ statedelay--; if (statedelay <= 0){ statedelay = 0; }; if (statedelay <= 0){ switch (state){ case 0: break; case 1: break; }; }; } } }//package
Section 14
//graphicsclass (graphicsclass) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class graphicsclass extends Sprite { public var bfontpos:int; public var backgrounds:Array; public var sprites_rect:Rectangle; public var cur:int; public var fontheight:int; public var buffer:BitmapData; public var currentfont:String; public var images_rect:Rectangle; public var tempshape:Shape; public var sprites:Array; public var bigbuffer:BitmapData; public var ntextbox:int; public var trect:Rectangle; public var tiles_rect:Rectangle; public var i:int; public var j:int; public var k:int; public var l:int; public var ct:ColorTransform; public var z:int; public var images:Array; public var screen:Bitmap; public var temptile:BitmapData; public var textbox:Array; public var alphamult:uint; public var tiles:Array; public var tl:Point; public var tpoint:Point; public var shapematrix:Matrix; public var scaleMatrix:Matrix; public var screenbuffer:BitmapData; public var bfont:Array; public var bfont_rect:Rectangle; public var bigbufferscreen:Bitmap; public var updatebackground:Boolean; public var tbuffer:BitmapData; public var bfontlen:Array; public var bfontmask_rect:Rectangle; public var stemp:String; public var fontwidth:int; public var temp:int; public var temp2:int; public var temp3:int; public var backbuffer:BitmapData; public function graphicsclass(){ backgrounds = new Array(); images = new Array(); tiles = new Array(); sprites = new Array(); bfont = new Array(); bfontlen = new Array(); textbox = new Array(); scaleMatrix = new Matrix(); tempshape = new Shape(); shapematrix = new Matrix(); super(); } public function createtextbox(t:String, xp:int, yp:int, r:int=0xFF, g:int=0xFF, b:int=0xFF):void{ if (ntextbox == 0){ z = 0; ntextbox++; } else { i = 0; z = -1; while (i < ntextbox) { if (!textbox[i].active){ z = i; i = ntextbox; }; i++; }; if (z == -1){ z = ntextbox; ntextbox++; }; }; if (z < 20){ textbox[z].clear(); textbox[z].line[0] = t; textbox[z].xp = xp; if (xp == -1){ textbox[z].xp = (160 - (((t.length / 2) + 1) * 8)); }; textbox[z].yp = yp; textbox[z].initcol(r, g, b); textbox[z].resize(); }; } public function textboxactive():void{ i = 0; while (i < ntextbox) { if (z != i){ textbox[i].remove(); }; i++; }; } public function drawentities(game:gameclass, obj:entityclass):void{ if (game.levelcomplete == 0){ i = 0; while (i < obj.nentity) { if (obj.entities[i].recovery > 0){ obj.entities[i].recovery--; }; i++; }; }; i = (obj.nentity - 1); while (i >= 0) { if (game.levelcomplete == 0){ obj.animateentities(game, i); }; if (obj.entities[i].active){ if (obj.entities[i].size == 1){ print(obj.entities[i].xp, obj.entities[i].yp, String(obj.entities[i].consolation), 0xFF, 0xFF, 0xFF); } else { if (obj.entities[i].size == 2){ if (((!(obj.entities[i].invis)) && (obj.entities[i].active))){ backbuffer.copyPixels(tiles[obj.entities[i].drawframe], tiles_rect, new Point(obj.entities[i].xp, obj.entities[i].yp)); backbuffer.copyPixels(tiles[(obj.entities[i].drawframe + 20)], tiles_rect, new Point(obj.entities[i].xp, (obj.entities[i].yp + 16))); }; } else { if (!obj.entities[i].invis){ if (obj.entities[i].drawframe > -1){ j = obj.getenemy(); if (j > -1){ if (!(((obj.entities[j].hurt > 0)) && ((obj.entities[i].rule == 0)))){ backbuffer.copyPixels(sprites[obj.entities[i].drawframe], sprites_rect, new Point(obj.entities[i].xp, obj.entities[i].yp)); }; } else { backbuffer.copyPixels(sprites[obj.entities[i].drawframe], sprites_rect, new Point(obj.entities[i].xp, obj.entities[i].yp)); }; }; }; }; }; }; i--; }; } public function makespritearray():void{ var i:Number; var t:BitmapData; var temprect:Rectangle; var j:Number = 0; while (j < 10) { i = 0; while (i < 10) { t = new BitmapData(48, 64, true, 0); temprect = new Rectangle((i * 48), (j * 64), 48, 64); t.copyPixels(buffer, temprect, tl); sprites.push(t); i++; }; j++; }; } public function drawbox(x1:int, y1:int, w1:int, h1:int, r:int, g:int, b:int):void{ settrect(x1, y1, w1, 1); backbuffer.fillRect(trect, RGB(r, g, b)); settrect(x1, ((y1 + h1) - 1), w1, 1); backbuffer.fillRect(trect, RGB(r, g, b)); settrect(x1, y1, 1, h1); backbuffer.fillRect(trect, RGB(r, g, b)); settrect(((x1 + w1) - 1), y1, 1, h1); backbuffer.fillRect(trect, RGB(r, g, b)); } public function drawsprite(x:int, y:int, t:int):void{ backbuffer.copyPixels(sprites[t], sprites_rect, new Point(x, y)); } public function init():void{ var t:textboxclass; updatebackground = true; tiles_rect = new Rectangle(0, 0, 16, 16); sprites_rect = new Rectangle(0, 0, 48, 64); trect = new Rectangle(); tpoint = new Point(); tbuffer = new BitmapData(1, 1, true); tl = new Point(0, 0); ct = new ColorTransform(0, 0, 0, 1, 0xFF, 0xFF, 0xFF, 1); currentfont = "04b11"; fontwidth = 8; fontheight = 8; if (currentfont == "terminal"){ fontheight = 12; }; if (currentfont == "casual"){ fontheight = 16; }; if (currentfont == "2xcrypt"){ fontwidth = 16; fontheight = 16; }; bfont_rect = new Rectangle(0, 0, fontwidth, fontheight); bigbuffer = new BitmapData(320, 32, true, 0); bigbufferscreen = new Bitmap(bigbuffer); bigbufferscreen.width = 640; bigbufferscreen.height = 64; scaleMatrix = new Matrix(); i = 0; while (i < 20) { t = new textboxclass(); textbox.push(t); i++; }; ntextbox = 0; backbuffer = new BitmapData(320, 240, false, 0); screenbuffer = new BitmapData(320, 240, false, 0); temptile = new BitmapData(16, 16, false, 0); screen = new Bitmap(screenbuffer); screen.width = 640; screen.height = 480; addChild(screen); } public function addline(t:String):void{ textbox[z].addline(t); } public function screenshake():void{ screenbuffer.lock(); screenbuffer.copyPixels(backbuffer, backbuffer.rect, tl, null, null, false); screenbuffer.copyPixels(backbuffer, backbuffer.rect, new Point(((Math.random() * 5) - 3), ((Math.random() * 5) - 3)), null, null, false); screenbuffer.unlock(); backbuffer.lock(); backbuffer.fillRect(backbuffer.rect, 0); backbuffer.unlock(); } public function len(t:String):int{ bfontpos = 0; var i:int; while (i < t.length) { cur = t.charCodeAt(i); bfontpos = (bfontpos + bfontlen[cur]); i++; }; return (bfontpos); } public function rbigprint(x:int, y:int, t:String, r:int, g:int, b:int, cen:Boolean=false, sc:Number=2):void{ x = (x - (len(t) * sc)); bigprint(x, y, t, r, g, b, cen, sc); } public function flashlight():void{ backbuffer.fillRect(backbuffer.rect, 9383213); } public function drawbuffertile(x:int, y:int, t:int):void{ buffer.copyPixels(tiles[t], tiles_rect, new Point(x, y)); } public function settrect(x:int, y:int, w:int, h:int):void{ trect.x = x; trect.y = y; trect.width = w; trect.height = h; } public function drawline(x1:int, y1:int, x2:int, y2:int, r:int, g:int, b:int):void{ if (x1 > x2){ drawline(x2, y1, x1, y2, r, g, b); } else { if (y1 > y2){ drawline(x1, y2, x2, y1, r, g, b); } else { tempshape.graphics.clear(); tempshape.graphics.lineStyle(1, RGB(r, g, b)); tempshape.graphics.lineTo((x2 - x1), (y2 - y1)); shapematrix.translate(x1, y1); backbuffer.draw(tempshape, shapematrix); shapematrix.translate(-(x1), -(y1)); }; }; } public function normalrender():void{ screenbuffer.lock(); screenbuffer.copyPixels(backbuffer, backbuffer.rect, tl, null, null, false); screenbuffer.unlock(); backbuffer.lock(); backbuffer.fillRect(backbuffer.rect, 0); backbuffer.unlock(); } public function maketilearray():void{ var i:Number; var t:BitmapData; var temprect:Rectangle; var j:Number = 0; while (j < 15) { i = 0; while (i < 20) { t = new BitmapData(16, 16, true, 0); temprect = new Rectangle((i * 16), (j * 16), 16, 16); t.copyPixels(buffer, temprect, tl); tiles.push(t); i++; }; j++; }; } public function textboxcenter():void{ textbox[z].centerx(); textbox[z].centery(); } public function addimage():void{ var t:BitmapData = new BitmapData(buffer.width, buffer.height, true, 0); t.copyPixels(buffer, new Rectangle(0, 0, buffer.width, buffer.height), tl); images.push(t); } public function textboxcleanup():void{ i = (ntextbox - 1); while ((((i >= 0)) && (!(textbox[i].active)))) { ntextbox--; i--; }; } public function drawbackground(t:int):void{ backbuffer.copyPixels(backgrounds[t], backbuffer.rect, tl); } public function adjustletter(t1:int, d:int=1):void{ bfontlen[t1] = (bfontlen[t1] + d); bfontlen[(t1 + 32)] = (bfontlen[(t1 + 32)] + d); } public function drawgui():void{ textboxcleanup(); i = 0; while (i < ntextbox) { textbox[i].update(); if (textbox[i].active){ if (textbox[i].ismenu){ backbuffer.fillRect(textbox[i].textrect, RGB((textbox[i].r / 6), (textbox[i].g / 6), (textbox[i].b / 6))); j = 0; while (j < textbox[i].numlines) { if (textbox[i].highlighted == j){ print((textbox[i].xp + 2), ((textbox[i].yp + fontheight) + (j * fontheight)), ">", (0xFF - help.glow), (0xFF - help.glow), (0xFF - help.glow)); print((textbox[i].xp + 8), ((textbox[i].yp + fontheight) + (j * fontheight)), textbox[i].line[j], (0xFF - help.glow), (0xFF - help.glow), (0xFF - help.glow)); } else { print((textbox[i].xp + 8), ((textbox[i].yp + fontheight) + (j * fontheight)), textbox[i].line[j], (textbox[i].r * 0.5), (textbox[i].g * 0.5), (textbox[i].b * 0.5)); }; j++; }; } else { backbuffer.fillRect(textbox[i].textrect, RGB((textbox[i].r / 6), (textbox[i].g / 6), (textbox[i].b / 6))); j = 0; while (j < textbox[i].numlines) { print((textbox[i].xp + 8), ((textbox[i].yp + fontheight) + (j * fontheight)), textbox[i].line[j], textbox[i].r, textbox[i].g, textbox[i].b); j++; }; }; }; i++; }; } public function rprint(x:int, y:int, t:String, r:int, g:int, b:int):void{ x = (x - len(t)); print(x, y, t, r, g, b, false); } public function settpoint(x:int, y:int):void{ tpoint.x = x; tpoint.y = y; } public function adjustcharacter(t1:int, d:int=1):void{ bfontlen[t1] = (bfontlen[t1] + d); } public function textboxremove():void{ i = 0; while (i < ntextbox) { textbox[i].remove(); i++; }; } public function textboxsetmenu():void{ textbox[z].ismenu = true; } public function textboxcenterx():void{ textbox[z].centerx(); } public function textboxcentery():void{ textbox[z].centery(); } public function textboxtimer(t:int):void{ textbox[z].timer = t; } public function makebfont():void{ var maprow:Array; var tstring:String; var k:int; j = 0; while (j < 16) { i = 0; while (i < 16) { tbuffer = new BitmapData(fontwidth, fontheight, true, 0); settrect((i * fontwidth), (j * fontheight), fontwidth, fontheight); tbuffer.copyPixels(buffer, trect, tl); bfont.push(tbuffer); i++; }; j++; }; if (currentfont == "small"){ i = 0; while (i < 0x0100) { bfontlen.push(6); i++; }; tstring = "4,3,5,7,6,7,6,3,4,4,7,7,3,5,2,5,6,5,6,6,6,6,6,6,6,6,2,3,5,5,5,6,7,6,6,6,6,5,5,6,6,3,6,6,5,7,7,6,6,6,6,6,5,6,7,7,7,7,5,4,5,4,5,6,4,6,6,6,6,5,5,6,6,3,6,6,5,7,7,6,6,6,6,6,5,6,7,7,7,7,5,5,3,5,6,4"; maprow = new Array(); maprow = tstring.split(","); k = 0; while (k < 96) { bfontlen[(k + 32)] = int(maprow[k]); k++; }; } else { if (currentfont == "tiny"){ i = 0; while (i < 0x0100) { bfontlen.push(4); i++; }; adjustletter("I".charCodeAt(0), -2); adjustletter("M".charCodeAt(0), 2); adjustletter("N".charCodeAt(0)); adjustletter("W".charCodeAt(0), 2); adjustcharacter(" ".charCodeAt(0), -1); adjustcharacter(".".charCodeAt(0), -1); adjustcharacter(",".charCodeAt(0), -1); adjustcharacter(";".charCodeAt(0), -1); adjustcharacter(":".charCodeAt(0), -1); adjustcharacter("'".charCodeAt(0), -2); adjustcharacter("&".charCodeAt(0)); adjustcharacter("*".charCodeAt(0), 2); adjustcharacter("4".charCodeAt(0)); } else { if (currentfont == "flixel"){ i = 0; while (i < 0x0100) { bfontlen.push(6); i++; }; adjustletter("I".charCodeAt(0), -3); adjustletter("J".charCodeAt(0), -1); adjustletter("K".charCodeAt(0)); adjustletter("L".charCodeAt(0), -1); adjustletter("M".charCodeAt(0), 2); adjustletter("N".charCodeAt(0)); adjustletter("O".charCodeAt(0)); adjustletter("Q".charCodeAt(0)); adjustletter("S".charCodeAt(0), -1); adjustletter("T".charCodeAt(0)); adjustletter("V".charCodeAt(0)); adjustletter("W".charCodeAt(0), 2); adjustletter("X".charCodeAt(0)); adjustletter("Y".charCodeAt(0)); adjustcharacter("c".charCodeAt(0), -1); adjustcharacter("f".charCodeAt(0), -2); adjustcharacter("k".charCodeAt(0), -1); adjustcharacter("l".charCodeAt(0), -2); adjustcharacter("m".charCodeAt(0)); adjustcharacter("n".charCodeAt(0), -1); adjustcharacter("o".charCodeAt(0), -1); adjustcharacter("q".charCodeAt(0), -1); adjustcharacter("r".charCodeAt(0), -1); adjustcharacter("t".charCodeAt(0), -3); adjustcharacter("v".charCodeAt(0), -1); adjustcharacter("x".charCodeAt(0), -1); adjustcharacter("y".charCodeAt(0), -1); adjustcharacter("'".charCodeAt(0), -4); adjustcharacter(".".charCodeAt(0), -2); adjustcharacter(",".charCodeAt(0), -2); adjustcharacter("&".charCodeAt(0)); adjustcharacter(" ".charCodeAt(0), -1); } else { if (currentfont == "04b11"){ i = 0; while (i < 0x0100) { bfontlen.push(7); i++; }; adjustcharacter(" ".charCodeAt(0), -2); adjustcharacter("i".charCodeAt(0), -4); adjustcharacter("l".charCodeAt(0), -4); adjustcharacter("j".charCodeAt(0), -2); adjustcharacter("m".charCodeAt(0), 2); adjustcharacter("w".charCodeAt(0), 2); adjustcharacter(",".charCodeAt(0), -4); adjustcharacter(".".charCodeAt(0), -4); adjustcharacter("'".charCodeAt(0), -4); adjustcharacter("1".charCodeAt(0), -3); adjustcharacter("!".charCodeAt(0), -4); adjustcharacter("$".charCodeAt(0), 1); adjustcharacter("^".charCodeAt(0), -2); adjustcharacter("[".charCodeAt(0), -3); adjustcharacter("]".charCodeAt(0), -3); adjustcharacter("(".charCodeAt(0), -3); adjustcharacter(")".charCodeAt(0), -3); adjustcharacter("I".charCodeAt(0), -2); adjustcharacter("M".charCodeAt(0), 1); adjustcharacter("W".charCodeAt(0), 2); } else { if (currentfont == "crypt"){ i = 0; while (i < 0x0100) { bfontlen.push(5); i++; }; } else { if (currentfont == "2xcrypt"){ i = 0; while (i < 0x0100) { bfontlen.push(10); i++; }; } else { if (currentfont == "starperv"){ i = 0; while (i < 0x0100) { bfontlen.push(6); i++; }; } else { if (currentfont == "casual"){ i = 0; while (i < 0x0100) { bfontlen.push(8); i++; }; adjustcharacter("i".charCodeAt(0), -4); adjustcharacter("j".charCodeAt(0), -2); adjustcharacter("l".charCodeAt(0), -3); adjustcharacter("f".charCodeAt(0), -1); adjustcharacter("m".charCodeAt(0), 2); adjustcharacter("w".charCodeAt(0)); adjustcharacter("'".charCodeAt(0), -4); adjustcharacter(".".charCodeAt(0), -2); adjustcharacter(",".charCodeAt(0), -2); } else { i = 0; while (i < 0x0100) { bfontlen.push(8); i++; }; }; }; }; }; }; }; }; }; } public function addbackground():void{ var t:BitmapData = new BitmapData(160, 144, true, 0); t.copyPixels(buffer, backbuffer.rect, tl); backgrounds.push(t); } public function render(game:gameclass):void{ if (game.test){ print(5, 5, game.teststring, 196, 196, 196, false); }; if (game.flashlight > 0){ game.flashlight--; flashlight(); }; if (game.screenshake > 0){ game.screenshake--; screenshake(); } else { normalrender(); }; } public function drawimage(t:int, xp:int, yp:int, cent:Boolean=false):void{ if (cent){ backbuffer.copyPixels(images[t], new Rectangle(0, 0, images[t].width, images[t].height), new Point((80 - int((images[t].width / 2))), yp)); } else { backbuffer.copyPixels(images[t], new Rectangle(0, 0, images[t].width, images[t].height), new Point(xp, yp)); }; } public function drawmap(map:mapclass):void{ j = 0; while (j < 15) { i = 0; while (i < 20) { drawtile((i * 16), (j * 16), map.at(i, j)); i++; }; j++; }; } public function RGB(red:Number, green:Number, blue:Number):Number{ return (((blue | (green << 8)) | (red << 16))); } public function print(x:int, y:int, t:String, r:int, g:int, b:int, cen:Boolean=false):void{ if (r < 0){ r = 0; }; if (g < 0){ g = 0; }; if (b < 0){ b = 0; }; if (r > 0xFF){ r = 0xFF; }; if (g > 0xFF){ g = 0xFF; }; if (b > 0xFF){ b = 0xFF; }; ct.color = RGB(r, g, b); if (cen){ x = (160 - (len(t) / 2)); }; bfontpos = 0; var i:int; while (i < t.length) { cur = t.charCodeAt(i); bfont[cur].colorTransform(bfont_rect, ct); backbuffer.copyPixels(bfont[cur], bfont_rect, new Point((x + bfontpos), y)); bfontpos = (bfontpos + bfontlen[cur]); i++; }; } public function bigprint(x:int, y:int, t:String, r:int, g:int, b:int, cen:Boolean=false, sc:Number=2):void{ if (r < 0){ r = 0; }; if (g < 0){ g = 0; }; if (b < 0){ b = 0; }; if (r > 0xFF){ r = 0xFF; }; if (g > 0xFF){ g = 0xFF; }; if (b > 0xFF){ b = 0xFF; }; ct.color = RGB(r, g, b); scaleMatrix.scale(sc, sc); bigbuffer.fillRect(bigbuffer.rect, 0); ct.color = RGB(r, g, b); if (sc == 2){ if (cen){ x = (160 - len(t)); }; } else { if (sc == 3){ if (cen){ x = (160 - ((len(t) / 2) * 3)); }; } else { if (sc == 4){ if (cen){ x = (160 - (len(t) * 2)); }; } else { if (cen){ x = (160 - ((len(t) / 2) * sc)); }; }; }; }; bfontpos = 0; i = 0; while (i < t.length) { cur = t.charCodeAt(i); bfont[cur].colorTransform(bfont_rect, ct); bigbuffer.copyPixels(bfont[cur], bfont_rect, new Point(bfontpos, 0)); bfontpos = (bfontpos + bfontlen[cur]); i++; }; scaleMatrix.translate(x, y); backbuffer.draw(bigbufferscreen, scaleMatrix); scaleMatrix.identity(); } public function fillrect(x1:int, y1:int, w1:int, h1:int, r:int, g:int, b:int):void{ settrect(x1, y1, w1, h1); backbuffer.fillRect(trect, RGB(r, g, b)); } public function drawtile(x:int, y:int, t:int):void{ backbuffer.copyPixels(tiles[t], tiles_rect, new Point(x, y)); } } }//package
Section 15
//help (help) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class help { public static var sine:Array; public static var slowsine:int; public static var glow:int; public static var globaltemp2:int; public static var globaltemp3:int; public static var glowdir:int; public static var globaltemp:int; public static var cosine:Array; public function help(){ super(); } public static function threedigits(t:int):String{ if (t < 10){ return (("00" + String(t))); }; if (t < 100){ return (("0" + String(t))); }; return (String(t)); } public static function inbox(xc:int, yc:int, x1:int, y1:int, x2:int, y2:int):Boolean{ if ((((xc >= x1)) && ((xc <= x2)))){ if ((((yc >= y1)) && ((yc <= y2)))){ return (true); }; }; return (false); } public static function number(t:int):String{ switch (t){ case 0: return ("Zero"); case 1: return ("One"); case 2: return ("Two"); case 3: return ("Three"); case 4: return ("Four"); case 5: return ("Five"); case 6: return ("Six"); case 7: return ("Seven"); case 8: return ("Eight"); case 9: return ("Nine"); case 10: return ("Ten"); case 11: return ("Eleven"); case 12: return ("Twelve"); case 13: return ("Thirteen"); case 14: return ("Fourteen"); case 15: return ("Fifteen"); case 16: return ("Sixteen"); case 17: return ("Seventeen"); case 18: return ("Eighteen"); case 19: return ("Nineteen"); case 20: return ("Twenty"); case 21: return ("Twenty One"); }; return ("Some"); } public static function init():void{ sine = new Array(); cosine = new Array(); var i:int; while (i < 64) { sine[i] = Math.sin(((i * 6.283) / 64)); cosine[i] = Math.cos(((i * 6.283) / 64)); i++; }; glow = 0; glowdir = 0; slowsine = 0; } public static function updateglow():void{ slowsine++; if (slowsine >= 64){ slowsine = 0; }; if (glowdir == 0){ glow = (glow + 2); if (glow >= 62){ glowdir = 1; }; } else { glow = (glow - 2); if (glow < 2){ glowdir = 0; }; }; } public static function thousand(t:int):String{ var temp:int; if (t < 1000){ return (("$" + String(t))); }; if (t < 1000000){ return (((("$" + String(((t - (t % 1000)) / 1000))) + ",") + threedigits((t % 1000)))); }; temp = ((t - (t % 1000)) / 1000); return (((((("$" + String(((temp - (temp % 1000)) / 1000))) + ",") + threedigits((temp % 1000))) + ",") + threedigits((t % 1000)))); } public static function opa(t:int):int{ return (((t + 32) % 64)); } public static function removeObject(obj:Object, arr:Array):void{ var i:String; for (i in arr) { if (arr[i] == obj){ arr.splice(i, 1); break; }; }; } public static function inboxw(xc:int, yc:int, x1:int, y1:int, x2:int, y2:int):Boolean{ if ((((xc >= x1)) && ((xc <= (x1 + x2))))){ if ((((yc >= y1)) && ((yc <= (y1 + y2))))){ return (true); }; }; return (false); } } }//package
Section 16
//kongapi (kongapi) package { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class kongapi { public static var haskey:Boolean; public static var loggedin:int; public static var notboughtgame:Boolean; public static var service; public static var apitimeout:int; public static var boughtgame:Boolean; public static var loadcomplete:Boolean; public function kongapi(){ super(); } public static function guestcheck():void{ service.services.addEventListener("login", onKongregateInPageLogin); } private static function loaded(event:Event):void{ loadcomplete = true; service = event.target.content; service.services.connect(); } public static function getusername():String{ if (loadcomplete){ return (service.services.getUsername()); }; return ("Guest"); } public static function isguest():Boolean{ if (loadcomplete){ return (service.services.isGuest()); }; return (true); } public static function init(paramObj:Object, swfStage:Stage):void{ loadcomplete = false; apitimeout = 60; loggedin = 0; var api_url:String = ((paramObj.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(api_url); var request:URLRequest = new URLRequest(api_url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); loader.load(request); swfStage.addChild(loader); } public static function submit(name:String, value:int):void{ if (loadcomplete){ service.stats.submit(name, value); }; } public static function onKongregateInPageLogin(event:Event):void{ if (loggedin == 0){ loggedin = 1; }; } } }//package
Section 17
//leveltheme_fast (leveltheme_fast) package { import flash.media.*; public dynamic class leveltheme_fast extends Sound { } }//package
Section 18
//leveltheme_normal (leveltheme_normal) package { import flash.media.*; public dynamic class leveltheme_normal extends Sound { } }//package
Section 19
//Main (Main) package { import bigroom.input.*; import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.ui.*; public class Main extends Sprite { public var game:gameclass; private var ef_0:Class; private var ef_1:Class; private var ef_3:Class; private var ef_4:Class; private var ef_7:Class; private var ef_2:Class; private var ef_5:Class; private var ef_6:Class; public var music:musicclass; private var _current:Number;// = 0 public var CLICKTOSTART:int;// = 2 private var _timer:Timer; public var NEXTENEMY:int;// = 4 public var OHNO:int;// = 7 public var FOCUSMODE:int;// = 3 public var map:mapclass; public var key:KeyPoll; private var im_sprites:Class; private var _skip:Number; public var i:int; public var j:int; public var k:int; public var pixel2:uint; private var _last:Number;// = -1 public var gfx:graphicsclass; public var DONOTPLAY:int;// = 5 public var pixel:uint; public var GAMEMODE:int;// = 0 private var music_1:Class; private var music_0:Class; public var slogo:MovieClip; private var im_image1:Class; private var im_image2:Class; private var im_image3:Class; private var im_image0:Class; private var _delta:Number;// = 0 private var _rate:Number;// = 16 private var im_tiles:Class; private var im_image5:Class; private var im_image6:Class; private var im_image7:Class; private var im_image4:Class; public var logoposition:Matrix; private var im_bfont:Class; public var TITLEMODE:int;// = 1 public var CONGRATULATION:int;// = 6 public var temp:int; public var obj:entityclass; public var pi:uint; public var pj:uint; public static const TARGET_FPS:Number = 60; public static var TRIGGER:Number = 1; public static var BLOCK:Number = 0; public static var DAMAGE:Number = 2; public function Main():void{ gfx = new graphicsclass(); music = new musicclass(); map = new mapclass(); obj = new entityclass(); _skip = (_rate * 10); _timer = new Timer(4); im_tiles = Main_im_tiles; im_sprites = Main_im_sprites; im_bfont = Main_im_bfont; im_image0 = Main_im_image0; im_image1 = Main_im_image1; im_image2 = Main_im_image2; im_image3 = Main_im_image3; im_image4 = Main_im_image4; im_image5 = Main_im_image5; im_image6 = Main_im_image6; im_image7 = Main_im_image7; music_0 = Main_music_0; music_1 = Main_music_1; ef_0 = Main_ef_0; ef_1 = Main_ef_1; ef_2 = Main_ef_2; ef_3 = Main_ef_3; ef_4 = Main_ef_4; ef_5 = Main_ef_5; ef_6 = Main_ef_6; ef_7 = Main_ef_7; super(); if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, gameinit); }; } private function gameinit(e:Event=null):void{ var tempbmp:Bitmap; var rc_menu:ContextMenu; var credit:ContextMenuItem; removeEventListener(Event.ADDED_TO_STAGE, gameinit); if (sitelock()){ rc_menu = new ContextMenu(); credit = new ContextMenuItem("Visit distractionware.com"); credit.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_distractionware); rc_menu.hideBuiltInItems(); rc_menu.customItems.push(credit); this.contextMenu = rc_menu; obj.init(); key = new KeyPoll(stage); SoundMixer.soundTransform = new SoundTransform(1); music.currentsong = -1; music.musicfade = 0; music.initefchannels(); music.currentefchan = 0; music.numplays = 0; music.musicchan.push(new titleloop()); music.musicchan.push(new leveltheme_normal()); music.musicchan.push(new leveltheme_fast()); music.musicchan.push(new newchallenger()); music.musicchan.push(new newchallenger_bassy()); music.musicchan.push(new victory()); music.musicchan.push(new victory_bassy()); music.musicchan.push(new music_0()); music.musicchan.push(new music_1()); music.efchan.push(new ef_0()); music.efchan.push(new ef_1()); music.efchan.push(new ef_2()); music.efchan.push(new ef_3()); music.efchan.push(new ef_4()); music.efchan.push(new ef_5()); music.efchan.push(new ef_6()); music.efchan.push(new ef_7()); game = new gameclass(obj, music); game.gamestate = CLICKTOSTART; game.starttitle(obj); gfx.init(); tempbmp = new im_tiles(); gfx.buffer = tempbmp.bitmapData; gfx.maketilearray(); tempbmp = new im_sprites(); gfx.buffer = tempbmp.bitmapData; gfx.makespritearray(); tempbmp = new im_bfont(); gfx.buffer = tempbmp.bitmapData; gfx.makebfont(); tempbmp = new im_image0(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image1(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image2(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image3(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image4(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image5(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image6(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); tempbmp = new im_image7(); gfx.buffer = tempbmp.bitmapData; gfx.addimage(); gfx.buffer = new BitmapData(320, 240, false, 0); addChild(gfx); _timer.addEventListener(TimerEvent.TIMER, mainloop); _timer.start(); } else { gfx.init(); addChild(gfx); tempbmp = new im_bfont(); gfx.buffer = tempbmp.bitmapData; gfx.makebfont(); gfx.buffer = new BitmapData(320, 240, false, 0); addEventListener(Event.ENTER_FRAME, lockedloop); }; } public function titlelogic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ if (!game.completestop){ i = 0; while (i < obj.nentity) { obj.entities[i].vx = 3; if (obj.entities[i].xp > 320){ obj.entities[i].xp = (obj.entities[i].xp - 360); }; obj.updateentities(i, game, music); obj.updateentitylogic(i, game); obj.entitymapcollision(i, map); i++; }; obj.entitycollisioncheck(gfx, game, map, music); }; obj.cleanup(); } public function gamerender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ gfx.drawimage(game.currentlevel, 0, 0); gfx.drawentities(game, obj); gfx.fillrect(0, 0, 320, 25, 0, 0, 0); gfx.rprint((155 - 10), 5, "PLAYER", 0xFF, 0xFF, 0xFF); gfx.print((165 + 10), 5, game.enemyname(), 0xFF, 0xFF, 0xFF); i = 0; while (i < game.playerhealth) { gfx.fillrect(((150 - 10) - (i * 7)), 14, 5, 8, 0xFF, 0xFF, 0); i++; }; i = 0; while (i < game.enemyhealth) { gfx.fillrect(((165 + 10) + (i * 7)), 14, 5, 8, 0xFF, 0xFF, 0); i++; }; gfx.drawgui(); gfx.render(game); } public function nextenemylogic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ game.nextenemydelay++; if (game.nextenemydelay > 12){ game.nextenemydelay = 0; game.nextenemyframe = ((game.nextenemyframe + 1) % 2); }; game.nextlevel++; if (game.nextlevel > 300){ game.nextlevel = 0; game.gamestate = GAMEMODE; obj.nentity = 0; game.start(game.currentlevel, obj, music); }; } public function sitelock():Boolean{ var currUrl:String = stage.loaderInfo.url.toLowerCase(); if ((((currUrl.indexOf("distractionware.com") <= 0)) && ((currUrl.indexOf("kongregate.com") <= 0)))){ return (false); }; return (true); } public function congratsinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ } public function gameinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ i = 0; while (i < gfx.ntextbox) { if (gfx.textbox[i].active){ if (gfx.textbox[i].ismenu){ gfx.textbox[i].highlighted = -1; if (help.inboxw(game.mx, game.my, gfx.textbox[i].textrect.x, gfx.textbox[i].textrect.y, gfx.textbox[i].textrect.width, gfx.textbox[i].textrect.height)){ gfx.textbox[i].highlighted = (game.my - (gfx.textbox[i].textrect.y + 8)); gfx.textbox[i].highlighted = (gfx.textbox[i].highlighted / 8); }; if (key.click){ if (gfx.textbox[i].highlighted == 2){ game.test = true; }; }; }; }; i++; }; i = 0; while (i < obj.nentity) { if (obj.entitycollidefloor(map, i)){ obj.entities[i].onground = 2; } else { obj.entities[i].onground--; }; if (obj.entities[i].rule == 0){ if (((game.hascontrol) && ((obj.entities[i].hurt <= 0)))){ if ((((obj.entities[i].attacked == 0)) || ((obj.entities[i].onground <= 1)))){ if (((key.isDown(Keyboard.LEFT)) || (key.isDown(65)))){ obj.entities[i].vx = -3; obj.entities[i].dir = 1; } else { if (((key.isDown(Keyboard.RIGHT)) || (key.isDown(68)))){ obj.entities[i].vx = 3; obj.entities[i].dir = 0; } else { obj.entities[i].vx = 0; }; }; } else { obj.entities[i].vx = 0; }; if (((!(key.isDown(87))) && (!(key.isDown(Keyboard.UP))))){ game.jumppressed = 0; game.jumpheld = false; }; if (((((key.isDown(87)) || (key.isDown(Keyboard.UP)))) && (!(game.jumpheld)))){ game.jumppressed = 5; game.jumpheld = true; }; j = obj.getenemy(); if ((((((game.jumppressed > 0)) && ((obj.entities[i].attacked <= 0)))) && ((obj.entities[j].hurt <= 0)))){ game.jumppressed--; if ((((obj.entities[i].onground > 0)) && (!(obj.entities[i].jumping)))){ music.playef(4, 10); obj.entities[i].ay = -16; obj.entities[i].jumping = true; obj.entities[i].jumpframe = 30; }; }; if (((((!(key.isDown(90))) && (!(key.isDown(32))))) && (!(key.isDown(86))))){ game.attackheld = false; }; if (((((((((key.isDown(90)) || (key.isDown(32)))) || (key.isDown(86)))) && ((obj.entities[i].attacked == 0)))) && (!(game.attackheld)))){ game.attackheld = true; obj.entities[i].attacked = 20; game.screenshake = 20; music.playef(0); j = obj.getenemy(); if (j > -1){ if ((((obj.entities[j].hurt <= 0)) && ((obj.entities[j].recovery <= 0)))){ if (Math.abs((obj.entities[i].yp - obj.entities[j].yp)) < 30){ if (obj.entities[i].dir == 1){ if (obj.entities[i].xp < (obj.entities[j].xp + 30)){ if (obj.entities[i].xp > (obj.entities[j].xp - 10)){ obj.entities[j].state = 10; game.enemyhealth = (game.enemyhealth - game.enemydef); obj.createentity(obj.entities[i].xp, obj.entities[i].yp, 2); if (game.enemyhealth <= 0){ game.enemyhealth = 0; if (game.currentlevel < 3){ music.play(5); } else { music.play(6); }; game.levelcomplete = 1; obj.entities[j].hurt = 20; obj.entities[j].recovery = 40; obj.animateentities(game, i); obj.animateentities(game, j); }; }; }; } else { if (obj.entities[i].dir == 0){ if (obj.entities[i].xp < (obj.entities[j].xp + 10)){ if (obj.entities[i].xp > (obj.entities[j].xp - 30)){ obj.entities[j].state = 10; game.enemyhealth = (game.enemyhealth - game.enemydef); obj.createentity(obj.entities[i].xp, obj.entities[i].yp, 2); if (game.enemyhealth <= 0){ game.enemyhealth = 0; if (game.currentlevel < 3){ music.play(5); } else { music.play(6); }; game.levelcomplete = 1; obj.entities[j].hurt = 20; obj.entities[j].recovery = 40; obj.animateentities(game, i); obj.animateentities(game, j); }; }; }; }; }; }; }; }; }; }; }; i++; }; } public function visit_sponsor_logo():void{ var sponsor_link:URLRequest = new URLRequest("http://www.kongregate.com/?gamereferral=dontlookback"); navigateToURL(sponsor_link, "_blank"); } public function visit_sponsor(e:Event):void{ var sponsor_link:URLRequest = new URLRequest("http://www.kongregate.com/?gamereferral=dontlookback"); navigateToURL(sponsor_link, "_blank"); } public function donotplayrender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ if ((Math.random() * 100) > 50){ gfx.bigprint(-1, 100, "WARNING", 0xFF, 0xFF, 0xFF, true, 4); gfx.print(-1, 130, "DO NOT PLAY VEGETABLE GAME", 0xFF, 0xFF, 0xFF, true); } else { gfx.bigprint(-1, 100, "WARNING", 0xFF, 0xFF, 0, true, 4); gfx.print(-1, 130, "DO NOT PLAY VEGETABLE GAME", 0xFF, 0xFF, 0, true); }; gfx.drawgui(); gfx.render(game); } public function donotplaylogic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ game.donotplaytimer++; if (game.donotplaytimer > 500){ game.donotplaytimer = 0; game.gamestate = TITLEMODE; music.play(0); }; } public function ohnologic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ game.donotplaytimer++; if (game.donotplaytimer > 150){ game.donotplaytimer = 0; game.gamestate = TITLEMODE; game.starttitle(obj); music.play(0); }; } public function nextenemyrender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ gfx.drawgui(); if ((Math.random() * 100) > 50){ gfx.bigprint(8, 35, "NEXT CHALLENGER", 0xFF, 0xFF, 0xFF, false, 3); if (game.lives > 1){ gfx.bigprint(8, 195, (help.number(game.lives) + " lives left"), 0xFF, 0xFF, 0xFF, true, 2); } else { gfx.bigprint(8, 195, "one life left", 0xFF, 0xFF, 0xFF, true, 2); }; } else { gfx.bigprint(8, 35, "NEXT CHALLENGER", 0xFF, 0xFF, 0, false, 3); if (game.lives > 1){ gfx.bigprint(8, 195, (help.number(game.lives) + " lives left"), 0xFF, 0xFF, 0, true, 2); } else { gfx.bigprint(8, 195, "one life left", 0xFF, 0xFF, 0, true, 2); }; }; if (game.currentlevel == 0){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.drawsprite(40, 90, (61 + game.nextenemyframe)); gfx.print(30, 162, "JAYWALKER", 0xFF, 0xFF, 0xFF); gfx.print(150, 162, "????", 0xFF, 0xFF, 0xFF); gfx.print(240, 162, "????", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 1){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.drawsprite(40, 90, 63); gfx.drawsprite(140, 90, (71 + game.nextenemyframe)); gfx.print(30, 162, "JAYWALKER", 0xFF, 0xFF, 0xFF); gfx.print(136, 162, "LITTERER", 0xFF, 0xFF, 0xFF); gfx.print(240, 162, "????", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 2){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.drawsprite(40, 90, 63); gfx.drawsprite(140, 90, 73); gfx.drawsprite(230, 90, (81 + game.nextenemyframe)); gfx.print(30, 162, "JAYWALKER", 0xFF, 0xFF, 0xFF); gfx.print(136, 162, "LITTERER", 0xFF, 0xFF, 0xFF); gfx.print(200, 162, "SOMEONE WHO PLAYS", 0xFF, 0xFF, 0xFF); gfx.print(187, 170, "MUSIC ON THEIR PHONE", 0xFF, 0xFF, 0xFF); gfx.print(175, 178, "AT THE BACK OF THE BUS", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 3){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.drawsprite(40, 90, (51 + game.nextenemyframe)); gfx.print(30, 162, "BLACKBEARD", 0xFF, 0xFF, 0xFF); gfx.print(150, 162, "????", 0xFF, 0xFF, 0xFF); gfx.print(240, 162, "????", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 4){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.drawsprite(40, 90, 53); gfx.drawsprite(140, 90, (31 + game.nextenemyframe)); gfx.print(30, 162, "BLACKBEARD", 0xFF, 0xFF, 0xFF); gfx.print(150, 162, "JOHN", 0xFF, 0xFF, 0xFF); gfx.print(130, 170, "WAYNE GACY ", 0xFF, 0xFF, 0xFF); gfx.print(240, 162, "????", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 5){ gfx.fillrect(35, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(135, 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect(225, 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.drawsprite(40, 90, 53); gfx.drawsprite(140, 90, 33); gfx.drawsprite(230, 90, (41 + game.nextenemyframe)); gfx.print(30, 162, "BLACKBEARD", 0xFF, 0xFF, 0xFF); gfx.print(150, 162, "JOHN", 0xFF, 0xFF, 0xFF); gfx.print(130, 170, "WAYNE GACY ", 0xFF, 0xFF, 0xFF); gfx.print(220, 162, "LEOPOLD II", 0xFF, 0xFF, 0xFF); gfx.print(220, 170, "OF BELGIUM", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 6){ gfx.fillrect((135 - 60), 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.fillrect((225 - 40), 85, (48 + 8), (64 + 10), 196, 64, 64); gfx.drawsprite((140 - 60), 90, (21 + game.nextenemyframe)); gfx.print((136 - 80), 162, "JOSEPH STALIN", 0xFF, 0xFF, 0xFF); gfx.print((240 - 40), 162, "????", 0xFF, 0xFF, 0xFF); } else { if (game.currentlevel == 7){ gfx.fillrect((135 - 60), 85, (48 + 8), (64 + 10), 64, 96, 64); gfx.fillrect((225 - 40), 85, (48 + 8), (64 + 10), 128, 196, 128); gfx.drawsprite((140 - 60), 90, 23); gfx.drawsprite((230 - 40), 90, (11 + game.nextenemyframe)); gfx.print((136 - 80), 162, "JOSEPH STALIN", 0xFF, 0xFF, 0xFF); gfx.print((240 - 65), 162, "ADOLF HITLER", 0xFF, 0xFF, 0xFF); }; }; }; }; }; }; }; }; gfx.render(game); } public function visit_distractionware(e:Event):void{ var distractionware_link:URLRequest = new URLRequest("http://www.distractionware.com"); navigateToURL(distractionware_link, "_blank"); } public function logic():void{ if (!game.infocus){ if (game.globalsound > 0){ game.globalsound = 0; SoundMixer.soundTransform = new SoundTransform(0); }; music.processmusic(); help.updateglow(); } else { switch (game.gamestate){ case TITLEMODE: titlelogic(key, gfx, map, game, obj, music); break; case GAMEMODE: gamelogic(key, gfx, map, game, obj, music); break; case NEXTENEMY: nextenemylogic(key, gfx, map, game, obj, music); break; case DONOTPLAY: donotplaylogic(key, gfx, map, game, obj, music); break; case CONGRATULATION: congratslogic(key, gfx, map, game, obj, music); break; case OHNO: ohnologic(key, gfx, map, game, obj, music); break; }; music.processmusic(); help.updateglow(); if (((key.isDown(77)) && ((game.mutebutton <= 0)))){ game.mutebutton = 8; if (game.muted){ game.muted = false; } else { game.muted = true; }; }; if (game.mutebutton > 0){ game.mutebutton--; }; if (game.muted){ if (game.globalsound == 1){ game.globalsound = 0; SoundMixer.soundTransform = new SoundTransform(0); }; }; if (((!(game.muted)) && ((game.globalsound == 0)))){ game.globalsound = 1; SoundMixer.soundTransform = new SoundTransform(1); }; }; } public function ohnorender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ if ((Math.random() * 100) > 50){ gfx.bigprint(-1, 115, "GAME OVER", 0xFF, 0xFF, 0xFF, true, 3); } else { gfx.bigprint(-1, 115, "GAME OVER", 0xFF, 0xFF, 0, true, 3); }; gfx.drawgui(); gfx.render(game); } public function titleinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ if (((((key.isDown(90)) || (key.isDown(32)))) || (key.isDown(86)))){ game.lives = 3; game.gamestate = NEXTENEMY; game.currentlevel = game.startlevel; if (game.currentlevel < 3){ music.play(3); } else { music.play(4); }; }; if (game.levelselecttimer <= 0){ if (((key.isDown(Keyboard.LEFT)) || (key.isDown(65)))){ game.levelselecttimer = 8; game.startlevel--; music.playef(7, 10); } else { if (((key.isDown(Keyboard.RIGHT)) || (key.isDown(68)))){ game.levelselecttimer = 8; game.startlevel++; music.playef(7, 10); }; }; } else { game.levelselecttimer--; }; if (game.startlevel < 0){ game.startlevel = 0; }; if (game.startlevel > 7){ game.startlevel = 7; }; if (game.startlevel > game.maxlevel){ game.startlevel = game.maxlevel; }; } public function nextenemyinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ } public function render():void{ gfx.backbuffer.lock(); if (!game.infocus){ gfx.bigprint(5, 105, "Game paused", (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), true); gfx.print(5, 125, "[click to resume]", (196 - (help.glow / 2)), (196 - (help.glow / 2)), (196 - (help.glow / 2)), true); gfx.print(5, 230, "Press M to mute", (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), true); gfx.normalrender(); } else { switch (game.gamestate){ case TITLEMODE: titlerender(key, gfx, map, game, obj); break; case GAMEMODE: gamerender(key, gfx, map, game, obj); break; case NEXTENEMY: nextenemyrender(key, gfx, map, game, obj); break; case DONOTPLAY: donotplayrender(key, gfx, map, game, obj); break; case CONGRATULATION: congratsrender(key, gfx, map, game, obj); break; case OHNO: ohnorender(key, gfx, map, game, obj); break; case CLICKTOSTART: gfx.bigprint(5, 115, "[ Click to start ]", (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), (0xFF - (help.glow / 2)), true, 2); gfx.normalrender(); break; }; }; } public function congratslogic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ game.donotplaytimer++; if (game.donotplaytimer > 600){ game.donotplaytimer = 0; game.gamestate = TITLEMODE; game.starttitle(obj); music.play(0); }; } public function gamelogic(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ game.updatestate(obj, music); if (game.levelcomplete > 0){ game.levelcomplete++; if (game.levelcomplete > 300){ obj.nentity = 0; if (game.playerdead){ game.lives--; if (game.lives <= 0){ music.play(8); game.gamestate = OHNO; } else { game.levelcomplete = 0; if (game.currentlevel < 8){ game.gamestate = NEXTENEMY; if (game.currentlevel < 3){ music.play(3); } else { music.play(4); }; } else { game.gamestate = CONGRATULATION; music.play(7); }; }; } else { game.currentlevel++; game.setsavepoint(); game.levelcomplete = 0; if (game.currentlevel < 8){ game.gamestate = NEXTENEMY; if (game.currentlevel < 3){ music.play(3); } else { music.play(4); }; } else { game.gamestate = CONGRATULATION; music.play(7); }; }; }; } else { if (game.playerdead){ game.playerhealth = 0; music.play(8); game.levelcomplete = 1; i = obj.getplayer(); j = obj.getenemy(); obj.entities[i].hurt = 20; obj.entities[i].recovery = 40; obj.animateentities(game, i); obj.animateentities(game, j); }; if (!game.completestop){ i = 0; while (i < obj.nentity) { obj.updateentities(i, game, music); obj.updateentitylogic(i, game); obj.entitymapcollision(i, map); i++; }; obj.entitycollisioncheck(gfx, game, map, music); }; i = obj.getenemy(); if (obj.entities[i].hurt == 1){ j = obj.getplayer(); obj.entities[j].xp = obj.entities[i].xp; }; obj.cleanup(); }; } public function lockedloop(e:Event):void{ gfx.backbuffer.lock(); gfx.print(5, 110, "Sorry! This game can only by played on", (196 - help.glow), (196 - help.glow), (0xFF - help.glow), true); gfx.print(5, 120, "www.distractionware.com", (196 - help.glow), (196 - help.glow), (0xFF - help.glow), true); gfx.normalrender(); gfx.backbuffer.unlock(); help.updateglow(); } public function ohnoinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ } public function donotplayinput(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass, music:musicclass):void{ } public function input():void{ if (game.infocus){ game.mx = (mouseX / 2); game.my = (mouseY / 2); switch (game.gamestate){ case TITLEMODE: titleinput(key, gfx, map, game, obj, music); break; case GAMEMODE: gameinput(key, gfx, map, game, obj, music); break; case NEXTENEMY: nextenemyinput(key, gfx, map, game, obj, music); break; case DONOTPLAY: donotplayinput(key, gfx, map, game, obj, music); break; case CONGRATULATION: congratsinput(key, gfx, map, game, obj, music); break; case OHNO: ohnoinput(key, gfx, map, game, obj, music); break; case CLICKTOSTART: if (key.click){ music.play(8); game.gamestate = DONOTPLAY; }; break; }; }; } public function mainloop(e:TimerEvent):void{ _current = getTimer(); if (_last < 0){ _last = _current; }; _delta = (_delta + (_current - _last)); _last = _current; if (_delta >= _rate){ _delta = (_delta % _skip); while (_delta >= _rate) { _delta = (_delta - _rate); input(); logic(); if (key.hasclicked){ key.click = false; }; }; render(); e.updateAfterEvent(); }; } public function congratsrender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ if ((Math.random() * 100) > 50){ gfx.bigprint(-1, 115, "CONGRATULATION", 0xFF, 0xFF, 0xFF, true, 2); } else { gfx.bigprint(-1, 115, "CONGRATULATION", 0xFF, 0xFF, 0, true, 2); }; gfx.drawgui(); gfx.render(game); } public function titlerender(key:KeyPoll, gfx:graphicsclass, map:mapclass, game:gameclass, obj:entityclass):void{ gfx.drawimage(game.startlevel, 0, 0); gfx.drawentities(game, obj); if ((Math.random() * 100) > 50){ gfx.bigprint(-1, 50, "VEGETABLE", 0xFF, 0xFF, 0xFF, true, 4); gfx.bigprint(-1, 90, "GAME", 0xFF, 0xFF, 0xFF, true, 4); gfx.print(-1, 220, "GAME BY TERRY CAVANAGH", 0xFF, 0xFF, 0xFF, true); gfx.print(-1, 230, "MUSIC BY UNCREDITED QUICKSILVA EMPLOYEE", 0xFF, 0xFF, 0xFF, true); if (game.maxlevel > 0){ if (game.startlevel == 0){ gfx.print(-1, 5, " START ON LEVEL 1 >", 0xFF, 0xFF, 0xFF, true); } else { if ((((game.startlevel == game.maxlevel)) || ((game.startlevel == 7)))){ gfx.print(-1, 5, ("< START ON LEVEL " + String((game.startlevel + 1))), 0xFF, 0xFF, 0xFF, true); } else { gfx.print(-1, 5, (("< START ON LEVEL " + String((game.startlevel + 1))) + " >"), 0xFF, 0xFF, 0xFF, true); }; }; }; } else { gfx.bigprint(-1, 50, "VEGETABLE", 0xFF, 0xFF, 0, true, 4); gfx.bigprint(-1, 90, "GAME", 0xFF, 0xFF, 0, true, 4); gfx.print(-1, 220, "GAME BY TERRY CAVANAGH", 0xFF, 0xFF, 0, true); gfx.print(-1, 230, "MUSIC BY UNCREDITED QUICKSILVA EMPLOYEE", 0xFF, 0xFF, 0, true); if (game.maxlevel > 0){ if (game.startlevel == 0){ gfx.print(-1, 5, " START ON LEVEL 1 >", 0xFF, 0xFF, 0, true); } else { if ((((game.startlevel == game.maxlevel)) || ((game.startlevel == 7)))){ gfx.print(-1, 5, ("< START ON LEVEL " + String((game.startlevel + 1))), 0xFF, 0xFF, 0, true); } else { gfx.print(-1, 5, (("< START ON LEVEL " + String((game.startlevel + 1))) + " >"), 0xFF, 0xFF, 0, true); }; }; }; }; gfx.drawgui(); gfx.render(game); } } }//package
Section 20
//Main_ef_0 (Main_ef_0) package { import mx.core.*; public class Main_ef_0 extends SoundAsset { } }//package
Section 21
//Main_ef_1 (Main_ef_1) package { import mx.core.*; public class Main_ef_1 extends SoundAsset { } }//package
Section 22
//Main_ef_2 (Main_ef_2) package { import mx.core.*; public class Main_ef_2 extends SoundAsset { } }//package
Section 23
//Main_ef_3 (Main_ef_3) package { import mx.core.*; public class Main_ef_3 extends SoundAsset { } }//package
Section 24
//Main_ef_4 (Main_ef_4) package { import mx.core.*; public class Main_ef_4 extends SoundAsset { } }//package
Section 25
//Main_ef_5 (Main_ef_5) package { import mx.core.*; public class Main_ef_5 extends SoundAsset { } }//package
Section 26
//Main_ef_6 (Main_ef_6) package { import mx.core.*; public class Main_ef_6 extends SoundAsset { } }//package
Section 27
//Main_ef_7 (Main_ef_7) package { import mx.core.*; public class Main_ef_7 extends SoundAsset { } }//package
Section 28
//Main_im_bfont (Main_im_bfont) package { import mx.core.*; public class Main_im_bfont extends BitmapAsset { } }//package
Section 29
//Main_im_image0 (Main_im_image0) package { import mx.core.*; public class Main_im_image0 extends BitmapAsset { } }//package
Section 30
//Main_im_image1 (Main_im_image1) package { import mx.core.*; public class Main_im_image1 extends BitmapAsset { } }//package
Section 31
//Main_im_image2 (Main_im_image2) package { import mx.core.*; public class Main_im_image2 extends BitmapAsset { } }//package
Section 32
//Main_im_image3 (Main_im_image3) package { import mx.core.*; public class Main_im_image3 extends BitmapAsset { } }//package
Section 33
//Main_im_image4 (Main_im_image4) package { import mx.core.*; public class Main_im_image4 extends BitmapAsset { } }//package
Section 34
//Main_im_image5 (Main_im_image5) package { import mx.core.*; public class Main_im_image5 extends BitmapAsset { } }//package
Section 35
//Main_im_image6 (Main_im_image6) package { import mx.core.*; public class Main_im_image6 extends BitmapAsset { } }//package
Section 36
//Main_im_image7 (Main_im_image7) package { import mx.core.*; public class Main_im_image7 extends BitmapAsset { } }//package
Section 37
//Main_im_sprites (Main_im_sprites) package { import mx.core.*; public class Main_im_sprites extends BitmapAsset { } }//package
Section 38
//Main_im_tiles (Main_im_tiles) package { import mx.core.*; public class Main_im_tiles extends BitmapAsset { } }//package
Section 39
//Main_music_0 (Main_music_0) package { import mx.core.*; public class Main_music_0 extends SoundAsset { } }//package
Section 40
//Main_music_1 (Main_music_1) package { import mx.core.*; public class Main_music_1 extends SoundAsset { } }//package
Section 41
//mapclass (mapclass) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class mapclass { public var contents:Array; public var vmult:Array; public var tmap:Array; public var i:int; public var j:int; public var k:int; public var temp2:int; public var background:int; public var temp:int; public function mapclass():void{ contents = new Array(); vmult = new Array(); tmap = new Array(); super(); i = 0; while (i < 15) { vmult.push(int((i * 20))); i++; }; j = 0; while (j < 15) { i = 0; while (i < 20) { contents.push(0); i++; }; j++; }; } public function loadlevel(r:int, obj:entityclass):void{ switch (r){ case 0: tmap = new Array(); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"); tmap.push("1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1"); tmap.push("1,1,1,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,1,1"); tmap.push("1,1,1,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2"); tmap.push("1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2"); tmap.push("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"); tmap.push("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"); tmap.push("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"); tmap.push("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"); fillcontent(tmap); break; }; } public function fillcontent(tmap:Array):void{ var maprow:Array; j = 0; while (j < 15) { maprow = new Array(); maprow = tmap[j].split(","); i = 0; while (i < 20) { contents[(i + vmult[j])] = maprow[i]; i++; }; j++; }; } public function at(xp:int, yp:int):int{ if ((((((((xp >= 0)) && ((yp >= 0)))) && ((xp < 20)))) && ((yp < 15)))){ return (contents[(xp + vmult[yp])]); }; return (0); } public function collide(x:int, y:int):Boolean{ if ((((((((x < 0)) || ((y < 0)))) || ((x >= 20)))) || ((y >= 14)))){ return (false); }; if (contents[(x + vmult[y])] == 2){ return (true); }; return (false); } } }//package
Section 42
//musicclass (musicclass) package { import flash.events.*; import flash.display.*; import flash.media.*; public class musicclass { public var musicchannel:SoundChannel; public var musicfadein:int; public var currentsong:int; public var efchannel:Array; public var musicfade:int; public var currentefchan:int; public var efchan:Array; public var musicchan:Array; public var numplays:int; public function musicclass(){ musicchan = new Array(); efchannel = new Array(); efchan = new Array(); super(); } public function loopmusic(e:Event):void{ musicchannel.removeEventListener(Event.SOUND_COMPLETE, loopmusic); if (currentsong > -1){ musicchannel = musicchan[currentsong].play(); musicchannel.addEventListener(Event.SOUND_COMPLETE, loopmusic); }; } public function stop():void{ musicchannel.removeEventListener(Event.SOUND_COMPLETE, stopmusic); musicchannel.stop(); currentsong = -1; } public function initefchannels():void{ var i:int; while (i < 16) { efchannel.push(new SoundChannel()); i++; }; } public function dontloopmusic(e:Event):void{ musicchannel.removeEventListener(Event.SOUND_COMPLETE, dontloopmusic); currentsong = -1; } public function fadeout():void{ if (musicfade == 0){ musicfade = 31; }; } public function playef(t:int, offset:int=0):void{ efchannel[currentefchan] = efchan[t].play(offset); currentefchan++; if (currentefchan > 15){ currentefchan = (currentefchan - 16); }; } public function processmusic():void{ if (musicfade > 0){ processmusicfade(); }; if (musicfadein > 0){ processmusicfadein(); }; } public function processmusicfade():void{ musicfade--; if (musicfade > 0){ musicchannel.soundTransform = new SoundTransform((musicfade / 30)); } else { musicchannel.stop(); currentsong = -1; }; } public function stopmusic(e:Event):void{ musicchannel.removeEventListener(Event.SOUND_COMPLETE, stopmusic); musicchannel.stop(); currentsong = -1; } public function play(t:int):void{ if (currentsong != t){ if (currentsong != -1){ musicchannel.stop(); musicchannel.removeEventListener(Event.SOUND_COMPLETE, loopmusic); }; if (t != -1){ currentsong = t; musicchannel = musicchan[currentsong].play(0); switch (t){ case 3: case 4: case 5: case 6: case 7: case 8: musicchannel.addEventListener(Event.SOUND_COMPLETE, dontloopmusic); break; default: musicchannel.addEventListener(Event.SOUND_COMPLETE, loopmusic); break; }; } else { currentsong = -1; }; }; } public function processmusicfadein():void{ musicfadein--; if (musicfadein > 0){ musicchannel.soundTransform = new SoundTransform(((60 - musicfadein) / 60)); } else { musicchannel.soundTransform = new SoundTransform(1); }; } } }//package
Section 43
//newchallenger (newchallenger) package { import flash.media.*; public dynamic class newchallenger extends Sound { } }//package
Section 44
//newchallenger_bassy (newchallenger_bassy) package { import flash.media.*; public dynamic class newchallenger_bassy extends Sound { } }//package
Section 45
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.ui.*; import flash.net.*; import mochi.as3.*; import flash.utils.*; public dynamic class Preloader extends MovieClip { public var stagewidth:int; public var bfontpos:int; public var loadercol:int; public var adson:Boolean; public var screenheight:int; public var tpoint:Point; public var screenbuffer:BitmapData; public var bfont:Array; public var bfont_rect:Rectangle; public var stageheight:int; public var frontcol:int; public var temprect:Rectangle; public var backcol:int; public var buffer:BitmapData; public var bfontlen:Array; public var cur:int; public var startgame:Boolean; private var im_bfont:Class; public var screenwidth:int; public var temp:int; public var tempstring:String; public var screen:Bitmap; public var ct:ColorTransform; public var backbuffer:BitmapData; public var tl:Point; public var onkong:Boolean; public function Preloader(){ var tempbmp:Bitmap; bfontlen = new Array(); bfont = new Array(); im_bfont = Preloader_im_bfont; super(); onkong = true; adson = false; screenwidth = 320; screenheight = 240; stagewidth = 640; stageheight = 480; backcol = RGB(0, 0, 0); frontcol = RGB(0xFF, 0xFF, 0xFF); loadercol = RGB(0xFF, 0xFF, 0xFF); if (adson){ if (checksite()){ adson = false; } else { adson = true; }; }; if (onkong){ kongapi.init(loaderInfo.parameters, stage); }; help.init(); if (adson){ }; var rc_menu:ContextMenu = new ContextMenu(); rc_menu.hideBuiltInItems(); this.contextMenu = rc_menu; ct = new ColorTransform(0, 0, 0, 1, 0xFF, 0xFF, 0xFF, 1); temprect = new Rectangle(); tl = new Point(0, 0); tpoint = new Point(0, 0); bfont_rect = new Rectangle(0, 0, 8, 8); tempbmp = new im_bfont(); buffer = tempbmp.bitmapData; makebfont(); backbuffer = new BitmapData(screenwidth, screenheight, false, 0); screenbuffer = new BitmapData(screenwidth, screenheight, false, 0); screen = new Bitmap(screenbuffer); screen.width = stagewidth; screen.height = stageheight; addChild(screen); addEventListener(Event.ENTER_FRAME, checkFrame); startgame = false; } public function makebfont():void{ var i:Number; var t:BitmapData; var t2emprect:Rectangle; var j:Number = 0; while (j < 16) { i = 0; while (i < 16) { t = new BitmapData(8, 8, true, 0); t2emprect = new Rectangle((i * 8), (j * 8), 8, 8); t.copyPixels(buffer, t2emprect, tl); bfont.push(t); i++; }; j++; }; i = 0; while (i < 0x0100) { bfontlen.push(6); i++; }; var k:int; while (k < 96) { bfontlen[(k + 32)] = 8; k++; }; } public function len(t:String):int{ bfontpos = 0; var i:int; while (i < t.length) { cur = t.charCodeAt(i); bfontpos = (bfontpos + bfontlen[cur]); i++; }; return (bfontpos); } public function rprintcol(x:int, y:int, t:String, col:int, cen:Boolean=false):void{ printcol((x - len(t)), y, t, col, false); } public function visit_sponsor(e:Event):void{ var sponsor_link:URLRequest = new URLRequest("http://www.kongregate.com/?gamereferral=dontlookback"); navigateToURL(sponsor_link, "_blank"); } public function print(x:int, y:int, t:String, r:int, g:int, b:int, cen:Boolean=false):void{ if (r < 0){ r = 0; }; if (g < 0){ g = 0; }; if (b < 0){ b = 0; }; if (r > 0xFF){ r = 0xFF; }; if (g > 0xFF){ g = 0xFF; }; if (b > 0xFF){ b = 0xFF; }; ct.color = RGB(r, g, b); if (cen){ x = ((screenwidth - len(t)) / 2); }; bfontpos = 0; var i:int; while (i < t.length) { cur = t.charCodeAt(i); tpoint.x = (x + bfontpos); tpoint.y = y; bfont[cur].colorTransform(bfont_rect, ct); backbuffer.copyPixels(bfont[cur], bfont_rect, tpoint); bfontpos = (bfontpos + bfontlen[cur]); i++; }; } public function printcol(x:int, y:int, t:String, col:int, cen:Boolean=false):void{ ct.color = col; if (cen){ x = ((screenwidth - len(t)) / 2); }; bfontpos = 0; var i:int; while (i < t.length) { cur = t.charCodeAt(i); tpoint.x = (x + bfontpos); tpoint.y = y; bfont[cur].colorTransform(bfont_rect, ct); backbuffer.copyPixels(bfont[cur], bfont_rect, tpoint); bfontpos = (bfontpos + bfontlen[cur]); i++; }; } public function RGB(red:Number, green:Number, blue:Number):Number{ return (((blue | (green << 8)) | (red << 16))); } public function checkFrame(e:Event):void{ var p:Number = (this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal); if (p >= 1){ startgame = true; }; backbuffer.fillRect(backbuffer.rect, backcol); temp = int((p * (screenwidth - 114))); fillrect(55, ((screenheight / 2) - 13), (screenwidth - 110), 12, frontcol); fillrect(57, ((screenheight / 2) - 11), (screenwidth - 114), 8, backcol); fillrect(57, ((screenheight / 2) - 11), temp, 8, loadercol); tempstring = "LOADING..."; printcol(70, ((screenheight / 2) + 7), tempstring, frontcol, false); tempstring = (String(int((p * 100))) + "%"); rprintcol((screenwidth - 70), ((screenheight / 2) + 7), tempstring, frontcol, false); screenbuffer.lock(); screenbuffer.copyPixels(backbuffer, backbuffer.rect, tl, null, null, false); screenbuffer.unlock(); backbuffer.lock(); backbuffer.fillRect(backbuffer.rect, 0); backbuffer.unlock(); if (currentFrame >= totalFrames){ if (startgame){ startup(); }; }; } public function visit_distractionware(e:Event):void{ var distractionware_link:URLRequest = new URLRequest("http://www.distractionware.com"); navigateToURL(distractionware_link, "_blank"); } public function checksite():Boolean{ var currUrl:String = stage.loaderInfo.url.toLowerCase(); if ((((((((currUrl.indexOf("distractionware.com") <= 0)) && ((currUrl.indexOf("flashgamelicense.com") <= 0)))) && ((currUrl.indexOf("kongregate.com") <= 0)))) && ((currUrl.indexOf("chat.kongregate.com") <= 0)))){ return (false); }; return (true); } public function fillrect(x:int, y:int, w:int, h:int, col:int):void{ temprect.x = x; temprect.y = y; temprect.width = w; temprect.height = h; backbuffer.fillRect(temprect, col); } public function rprint(x:int, y:int, t:String, r:int, g:int, b:int, cen:Boolean=false):void{ print((x - len(t)), y, t, r, g, b, false); } private function startup():void{ removeChild(screen); removeEventListener(Event.ENTER_FRAME, checkFrame); var mainClass:Class = (getDefinitionByName("Main") as Class); addChild((new (mainClass) as DisplayObject)); } } }//package
Section 46
//Preloader_im_bfont (Preloader_im_bfont) package { import mx.core.*; public class Preloader_im_bfont extends BitmapAsset { } }//package
Section 47
//textboxclass (textboxclass) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; public class textboxclass { public var tr:int; public var active:Boolean; public var ismenu:Boolean; public var lw:int; public var textrect:Rectangle; public var yp:int; public var iter:int; public var numlines:int; public var timer:int; public var highlighted:int; public var boxname:String; public var b:int; public var g:int; public var h:int; public var max:int; public var r:int; public var tg:int; public var line:Array; public var tb:int; public var tl:Number; public var tm:int; public var w:int; public var xp:int; public function textboxclass():void{ line = new Array(); super(); firstcreate(); } public function remove():void{ tm = 2; tl = 1; } public function addline(t:String):void{ line[numlines] = t; numlines++; resize(); if (numlines >= 10){ numlines = 0; }; } public function firstcreate():void{ var t:String; iter = 0; while (iter < 10) { t = new String(); t = ""; line.push(t); iter++; }; xp = 0; yp = 0; w = 0; h = 0; numlines = 0; lw = 0; tl = 0; tm = 0; active = false; timer = 0; ismenu = false; boxname = "textbox"; highlighted = 1; } public function resize():void{ max = 0; iter = 0; while (iter < numlines) { if (line[iter].length > max){ max = line[iter].length; }; iter++; }; lw = max; w = ((max + 2) * 6); h = ((numlines + 2) * 8); textrect.x = xp; textrect.y = yp; textrect.width = w; textrect.height = h; } public function centerx():void{ resize(); xp = (160 - (w / 2)); resize(); } public function centery():void{ resize(); yp = (120 - (h / 2)); resize(); } public function update():void{ if (tm == 0){ tl = (tl + 0.1); if (tl >= 1){ tl = 1; tm = 1; }; setcol(int((tr * tl)), int((tg * tl)), int((tb * tl))); } else { if (tm == 2){ tl = (tl - 0.1); if (tl <= 0.5){ tl = 0.5; active = false; }; setcol(int((tr * tl)), int((tg * tl)), int((tb * tl))); }; }; if (timer > 0){ timer--; if (timer == 0){ tm = 2; }; }; } public function clear():void{ iter = 0; while (iter < 10) { line[iter] = ""; iter++; }; textrect = new Rectangle(); xp = 0; yp = 0; w = 0; h = 0; numlines = 1; lw = 0; tl = 0; tm = 0; active = true; timer = 0; } public function setcol(rr:int, gg:int, bb:int):void{ r = rr; g = gg; b = bb; } public function initcol(rr:int, gg:int, bb:int):void{ tr = rr; tg = gg; tb = bb; r = 0; g = 0; b = 0; tl = 0.5; } } }//package
Section 48
//titleloop (titleloop) package { import flash.media.*; public dynamic class titleloop extends Sound { } }//package
Section 49
//victory (victory) package { import flash.media.*; public dynamic class victory extends Sound { } }//package
Section 50
//victory_bassy (victory_bassy) package { import flash.media.*; public dynamic class victory_bassy extends Sound { } }//package

Library Items

Symbol 1 Bitmap {Preloader_im_bfont}
Symbol 2 Sound {leveltheme_normal} [leveltheme_normal]
Symbol 3 Sound {victory_bassy} [victory_bassy]
Symbol 4 Sound {victory} [victory]
Symbol 5 Sound {Main_ef_1} [Main_ef_1]
Symbol 6 Sound {Main_ef_0} [Main_ef_0]
Symbol 7 Sound {Main_ef_3} [Main_ef_3]
Symbol 8 Sound {Main_ef_2} [Main_ef_2]
Symbol 9 Sound {Main_ef_5} [Main_ef_5]
Symbol 10 Sound {titleloop} [titleloop]
Symbol 11 Sound {Main_ef_4} [Main_ef_4]
Symbol 12 Sound {Main_ef_7} [Main_ef_7]
Symbol 13 Sound {Main_ef_6} [Main_ef_6]
Symbol 14 Sound {Main_music_0} [Main_music_0]
Symbol 15 Sound {Main_music_1} [Main_music_1]
Symbol 16 Sound {newchallenger} [newchallenger]
Symbol 17 Sound {newchallenger_bassy} [newchallenger_bassy]
Symbol 18 Sound {leveltheme_fast} [leveltheme_fast]
Symbol 19 Bitmap {Main_im_bfont}
Symbol 20 Bitmap {Main_im_tiles}
Symbol 21 Bitmap {Main_im_image2}
Symbol 22 Bitmap {Main_im_image3}
Symbol 23 Bitmap {Main_im_image4}
Symbol 24 Bitmap {Main_im_image5}
Symbol 25 Bitmap {Main_im_sprites}
Symbol 26 Bitmap {Main_im_image0}
Symbol 27 Bitmap {Main_im_image1}
Symbol 28 Bitmap {Main_im_image7}
Symbol 29 Bitmap {Main_im_image6}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 2Symbol 2 as "leveltheme_normal"
ExportAssets (56)Timeline Frame 2Symbol 3 as "victory_bassy"
ExportAssets (56)Timeline Frame 2Symbol 4 as "victory"
ExportAssets (56)Timeline Frame 2Symbol 5 as "Main_ef_1"
ExportAssets (56)Timeline Frame 2Symbol 6 as "Main_ef_0"
ExportAssets (56)Timeline Frame 2Symbol 7 as "Main_ef_3"
ExportAssets (56)Timeline Frame 2Symbol 8 as "Main_ef_2"
ExportAssets (56)Timeline Frame 2Symbol 9 as "Main_ef_5"
ExportAssets (56)Timeline Frame 2Symbol 10 as "titleloop"
ExportAssets (56)Timeline Frame 2Symbol 11 as "Main_ef_4"
ExportAssets (56)Timeline Frame 2Symbol 12 as "Main_ef_7"
ExportAssets (56)Timeline Frame 2Symbol 13 as "Main_ef_6"
ExportAssets (56)Timeline Frame 2Symbol 14 as "Main_music_0"
ExportAssets (56)Timeline Frame 2Symbol 15 as "Main_music_1"
ExportAssets (56)Timeline Frame 2Symbol 16 as "newchallenger"
ExportAssets (56)Timeline Frame 2Symbol 17 as "newchallenger_bassy"
ExportAssets (56)Timeline Frame 2Symbol 18 as "leveltheme_fast"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$JP$ydPLX8pg.WPHN7wmIDgJl0."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1
"start"Frame 2




http://swfchan.com/18/87002/info.shtml
Created: 30/3 -2019 05:25:52 Last modified: 30/3 -2019 05:25:52 Server time: 29/04 -2024 14:51:51