[Tools][Expand/Collapse All]Note that automatic extraction of ActionScript 3 is still pretty much unsupported by swfchan. AS1/AS2 works okay most of the time.Section 1 (2.61 KiB) ●
//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 (868 B)
//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 (671 B)
//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 (107 B)
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 5 (2.71 KiB) ●
//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 (779 B)
//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 (152 B)
//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 (270 B)
//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 (1.42 KiB) ●
//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 (728 B)
//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 (2.22 KiB) ●
//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 (45.06 KiB) ● ● ● ●
//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 (5.6 KiB) ● ●
//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 (19.87 KiB) ● ● ●
//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 (3.25 KiB) ●
//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 (1.72 KiB) ●
//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 (139 B)
//leveltheme_fast (leveltheme_fast)
package {
import flash.media.*;
public dynamic class leveltheme_fast extends Sound {
}
}//package
Section 18 (145 B)
//leveltheme_normal (leveltheme_normal)
package {
import flash.media.*;
public dynamic class leveltheme_normal extends Sound {
}
}//package
Section 19 (29.06 KiB) ● ● ●
//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 (114 B)
//Main_ef_0 (Main_ef_0)
package {
import mx.core.*;
public class Main_ef_0 extends SoundAsset {
}
}//package
Section 21 (114 B)
//Main_ef_1 (Main_ef_1)
package {
import mx.core.*;
public class Main_ef_1 extends SoundAsset {
}
}//package
Section 22 (114 B)
//Main_ef_2 (Main_ef_2)
package {
import mx.core.*;
public class Main_ef_2 extends SoundAsset {
}
}//package
Section 23 (114 B)
//Main_ef_3 (Main_ef_3)
package {
import mx.core.*;
public class Main_ef_3 extends SoundAsset {
}
}//package
Section 24 (114 B)
//Main_ef_4 (Main_ef_4)
package {
import mx.core.*;
public class Main_ef_4 extends SoundAsset {
}
}//package
Section 25 (114 B)
//Main_ef_5 (Main_ef_5)
package {
import mx.core.*;
public class Main_ef_5 extends SoundAsset {
}
}//package
Section 26 (114 B)
//Main_ef_6 (Main_ef_6)
package {
import mx.core.*;
public class Main_ef_6 extends SoundAsset {
}
}//package
Section 27 (114 B)
//Main_ef_7 (Main_ef_7)
package {
import mx.core.*;
public class Main_ef_7 extends SoundAsset {
}
}//package
Section 28 (127 B)
//Main_im_bfont (Main_im_bfont)
package {
import mx.core.*;
public class Main_im_bfont extends BitmapAsset {
}
}//package
Section 29 (130 B)
//Main_im_image0 (Main_im_image0)
package {
import mx.core.*;
public class Main_im_image0 extends BitmapAsset {
}
}//package
Section 30 (130 B)
//Main_im_image1 (Main_im_image1)
package {
import mx.core.*;
public class Main_im_image1 extends BitmapAsset {
}
}//package
Section 31 (130 B)
//Main_im_image2 (Main_im_image2)
package {
import mx.core.*;
public class Main_im_image2 extends BitmapAsset {
}
}//package
Section 32 (130 B)
//Main_im_image3 (Main_im_image3)
package {
import mx.core.*;
public class Main_im_image3 extends BitmapAsset {
}
}//package
Section 33 (130 B)
//Main_im_image4 (Main_im_image4)
package {
import mx.core.*;
public class Main_im_image4 extends BitmapAsset {
}
}//package
Section 34 (130 B)
//Main_im_image5 (Main_im_image5)
package {
import mx.core.*;
public class Main_im_image5 extends BitmapAsset {
}
}//package
Section 35 (130 B)
//Main_im_image6 (Main_im_image6)
package {
import mx.core.*;
public class Main_im_image6 extends BitmapAsset {
}
}//package
Section 36 (130 B)
//Main_im_image7 (Main_im_image7)
package {
import mx.core.*;
public class Main_im_image7 extends BitmapAsset {
}
}//package
Section 37 (133 B)
//Main_im_sprites (Main_im_sprites)
package {
import mx.core.*;
public class Main_im_sprites extends BitmapAsset {
}
}//package
Section 38 (127 B)
//Main_im_tiles (Main_im_tiles)
package {
import mx.core.*;
public class Main_im_tiles extends BitmapAsset {
}
}//package
Section 39 (123 B)
//Main_music_0 (Main_music_0)
package {
import mx.core.*;
public class Main_music_0 extends SoundAsset {
}
}//package
Section 40 (123 B)
//Main_music_1 (Main_music_1)
package {
import mx.core.*;
public class Main_music_1 extends SoundAsset {
}
}//package
Section 41 (2.43 KiB) ●
//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 (2.92 KiB) ●
//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 (133 B)
//newchallenger (newchallenger)
package {
import flash.media.*;
public dynamic class newchallenger extends Sound {
}
}//package
Section 44 (151 B)
//newchallenger_bassy (newchallenger_bassy)
package {
import flash.media.*;
public dynamic class newchallenger_bassy extends Sound {
}
}//package
Section 45 (6.75 KiB) ● ●
//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 (142 B)
//Preloader_im_bfont (Preloader_im_bfont)
package {
import mx.core.*;
public class Preloader_im_bfont extends BitmapAsset {
}
}//package
Section 47 (2.8 KiB) ●
//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 (121 B)
//titleloop (titleloop)
package {
import flash.media.*;
public dynamic class titleloop extends Sound {
}
}//package
Section 49 (115 B)
//victory (victory)
package {
import flash.media.*;
public dynamic class victory extends Sound {
}
}//package
Section 50 (132 B)
//victory_bassy (victory_bassy)
package {
import flash.media.*;
public dynamic class victory_bassy extends Sound {
}
}//package