STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 228075 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2560 · P5120 |
This is the info page for Flash #168105 |
-Music and sound effects -Enemies and bosses -Improved gameplay -Other minor improvements Estimated release date: August 2015 |
http://doom-the-wolf.deviantart.com |
PLAY |
ActionScript [AS3]
Section 1//Amber (amber3.Amber) package amber3 { import flash.media.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class Amber extends Character { private var _lives:int; private var _oldY:Number; private var _fireballTimer:Number; private var _flyTimer:Number; private var _bellyMode:int; private var _invincibleTimer:Number; private var _modesUnlocked:int; private var _controller:Controller; private var _soundTransform:SoundTransform; private var _fireImage:Class; private var _isPaused:Boolean; private var _maxHealth:int; private var _sounds:Array; private var _platPos:Point; private var _pieces:int; private var _glow:Number; private var _health:int; private var _attackMode:int; private var _appleTimer:Number; private var _appleImage:Class; public var playerID:int; private var _currentSoundID:int; private var _platform:Platform; private var _recoveryTimer:Number; private var RANDOM_V:uint; private var RANDOM_W:uint; private var RANDOM_X:uint; private var RANDOM_Y:uint; private var _soundQueue:Array; private var _items:Number; private var RANDOM_Z:uint; private var _nextBellyMode:int; private var _fireballCount:int; private var _currentSound:SoundChannel; private var _oldX:Number; public static const WALL_BOUNCE_SPEED:int = 18; public static const ANIM_STAND:int = 1; public static const WATER_MULTIPLIER:Number = 0.5; public static const FLOATING:int = 11; private static const RUN_SOUND:int = 1; public static const DECELERATION:int = 4; private static const BELLY_ATTACK_SOUND:int = 12; public static const INVINCIBLE:int = 17; public static const MODE_DRAGON:int = 3; public static const WALK_SPEED:int = 8; public static const ANIM_ATTACK:int = 7; public static const SIDE_ATTACK:int = 3; public static const STOMP:String = "stomp"; public static const BELLY_DRAGON_JUMP_SPEED:Number = 22; public static const FLOAT:int = 8; private static const TRANSFORM_SOUND:int = 10; public static const ATTACK_BOUNCE_SPEED:Number = 26; public static const SEEK_PLAYER_1:String = "seekPlayer1"; private static const CRUSH_SOUND:int = 8; public static const MOVING:int = 3; public static const FLY:int = 16; public static const DAMAGE_TIMER:Number = 10; private static const GOLD_SOUND:int = 13; public static const FLOAT_SPEED:int = 8; public static const DEAD:String = "dead"; public static const CHANGING:int = 7; public static const ANIMATIONS_PER_MODE:int = 11; public static const DISABLED:int = 5; public static const ANIM_BOUNCE:int = 9; private static const BOUNCE_SOUND:int = 0; public static const ACCELERATION:int = 4; public static const ATTACKING:int = 6; public static const ANIM_STOMP:int = 7; public static const NO_ATTACK:int = 0; public static const THROWABLE_TIME:Number = 4; public static const SURFACE:int = 1; public static const FLYING:int = 15; public static const MODE_LIGHT_BELLY:int = 1; public static const ANIM_START:int = 0; public static const ANIM_FLOAT:int = 8; private static const INFLATE_SOUND:int = 3; public static const THROWABLE_LIFE:Number = 30; public static const THROW_HEIGHT:Number = 21; public static const PAUSE_GAME:String = "pauseGame"; private static const ITEM_SOUND:int = 4; private static const MAX_FIRE_BALLS:int = 8; public static const ONEWAY:int = 18; public static const DAMAGE_RECOVERY_TIMER:Number = 60; private static const WALL_BOUNCE_SOUND:int = 7; public static const CHANGE_MODE:String = "changeMode"; private static const FIRE_BALL_INTERVAL:Number = 1; public static const JUMP_SPEED:int = 26; public static const NUMBER_OF_MODES:int = 5; public static const ANIM_FALL:int = 5; public static const ANIM_CRUSH:int = 8; public static const ANIM_FILL:int = 7; public static const WATER:int = 14; public static const FRICTION:Number = 0.9; public static const LIFE:String = "life"; public static const ANIM_START_FIRE:int = 7; public static const MODE_NORMAL:int = 0; public static const WALL_BOUNCE_HEIGHT:int = 20; public static const ANIM_FROM_DRAGON:int = 8; public static const MAX_HORIZONTAL_VELOCITY:int = 24; public static const ANIM_THROW:int = 8; public static const JUMP_ONLY:int = 20; public static const ANIM_FLY:int = 9; public static const BOSS_ENCOUNTERED:String = "bossEncountered"; public static const COLLECT_ITEM:String = "collectItem"; public static const ANIM_WALK:int = 2; public static const FLY_SPEED:int = 5; public static const ANIM_RUN:int = 3; private static const MID_GLOW:int = 10; public static const BOUNCING:int = 9; public static const CRUSHING:int = 12; public static const ANIMATING:int = 13; public static const RUN_SPEED:int = 15; public static const DAMAGE_SPEED:Number = 10; public static const ANIM_DAMAGE:int = 6; public static const PROJECTILE_ATTACK:int = 1; public static const DIRECTION:int = 4; private static const STOMP_SOUND:int = 5; public static const THROW_SPEED:Number = 18; public static const JUMP_ATTACK:int = 2; public static const DAMAGE:String = "damage"; public static const INV_MAX_FLY_TIME:Number = 0.01; public static const GROUND:int = 0; public static const CHECKPOINT:String = "checkpoint"; public static const MODE_HEAVY_BELLY:int = 2; public static const CUTSCENE:int = 21; public static const ANIM_END:int = 10; private static const BREAK_SOUND:int = 6; public static const BELLY_DRAGON_RUN_SPEED:Number = 13; public static const ANIM_JUMP:int = 4; public static const RUNNING:int = 2; public static const ANIM_FIRE:int = 8; private static const FIRE_SOUND:int = 11; public static const ANIM_TO_DRAGON:int = 9; private static const MAX_GLOW:int = 12; public static const BOUNCE_SPEED:int = 39; public static const SWIM_SPEED:Number = 4; private static const DEFLATE_SOUND:int = 7; private static const TAIL_ATTACK_SOUND:int = 2; public static const MAX_FLY_TIME:int = 100; public static const MODE_BELLY_DRAGON:int = 4; public static const NO_REPEAT:int = 10; private static const HEAL_SOUND:int = 9; public static const MESSAGE:String = "message"; public static const VICTORY:String = "victory"; public static const RIGHT:int = 19; public static const LOSE_ITEM:String = "loseItem"; public static var RECORD:Boolean = false; public static var RECORD_X_OFFSET:int = 0; public static var RECORD_Y_OFFSET:int = 0; public static var RECORD_NAME:String = "frames"; public function Amber(_arg1:int, _arg2:int, _arg3:Class, _arg4:Controller){ super(_arg1, _arg2, _arg3); _type = "amber"; _controller = _arg4; _controller.addEventListener(ButtonEvent.BUTTON_DOWN, buttonDown, false, 0, true); _controller.addEventListener(ButtonEvent.BUTTON_UP, buttonUp, false, 0, true); _fireImage = null; _appleImage = null; _bellyMode = 0; _nextBellyMode = 0; _modesUnlocked = 0; _lives = 0; _items = 0; _health = 0; _maxHealth = 0; _pieces = 0; _platform = null; _platPos = null; _fireballCount = 0; _fireballTimer = 0; _appleTimer = 0; _attackMode = NO_ATTACK; _glow = -1; _flyTimer = -1; _invincibleTimer = -1; _recoveryTimer = -1; _isPaused = false; _oldX = 0; _oldY = 0; clip.attackbox.visible = false; playerID = 0; _sounds = [new BounceSound(), new RunSound(), new TailAttackSound(), new InflateSound(), new ItemSound(), new StompSound(), new BreakSound(), new DeflateSound(), new CrushSound(), new HealSound(), new TransformSound(), new FireSound(), new BellyAttackSound(), new GoldSound()]; _soundQueue = []; _currentSoundID = -1; _currentSound = null; _soundTransform = new SoundTransform(); RANDOM_X = 957462256; RANDOM_Y = 6363463525; RANDOM_Z = 1058206222; RANDOM_W = 65020508; RANDOM_V = 345072345; } public function get maxHealth():int{ return (_maxHealth); } public function buttonDown(_arg1:ButtonEvent){ var _local2:int; if (bit(CUTSCENE)){ return; }; if (((bit(DISABLED)) && (!((_arg1.button == Controller.BUTTON_START))))){ if (((bit(CHANGING)) && ((_arg1.button == Controller.BUTTON_B)))){ if ((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_END){ _bellyMode = _nextBellyMode; }; bitReset(CHANGING); bitReset(ANIMATING); bitReset(DISABLED); animate(ANIM_STAND); _glow = MAX_GLOW; makeSparkles(); dispatchEvent(new Event(CHANGE_MODE)); }; if (!((bit(JUMP_ONLY)) && ((_arg1.button == Controller.BUTTON_A)))){ return; }; }; if (((_isPaused) && (!((_arg1.button == Controller.BUTTON_START))))){ return; }; switch (_arg1.button){ case Controller.BUTTON_UP: break; case Controller.BUTTON_DOWN: break; case Controller.BUTTON_LEFT: if (((!(bit(GROUND))) && (!(bit(FLOATING))))){ clip.scaleX = -1; }; break; case Controller.BUTTON_RIGHT: if (((!(bit(GROUND))) && (!(bit(FLOATING))))){ clip.scaleX = 1; }; break; case Controller.BUTTON_A: if (bit(FLOATING)){ break; }; if (((bit(GROUND)) || (bit(WATER)))){ if (bellyMode == MODE_BELLY_DRAGON){ vY = -(BELLY_DRAGON_JUMP_SPEED); } else { vY = -(JUMP_SPEED); }; if (_controller.down(Controller.BUTTON_LEFT)){ clip.scaleX = -1; if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = ((_v.x > 0)) ? 1 : -1; }; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = 1; }; }; bitReset(GROUND); if (((((bit(ATTACKING)) && ((bellyMode == MODE_DRAGON)))) && (Boolean(((((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_START_FIRE)) || (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_FIRE))))))){ bitReset(DISABLED); bitReset(ANIMATING); bitReset(ATTACKING); }; if (bit(JUMP_ONLY)){ bitReset(DISABLED); bitReset(ANIMATING); bitReset(ATTACKING); bitReset(JUMP_ONLY); }; } else { if (bellyMode == MODE_LIGHT_BELLY){ animate(ANIM_BOUNCE); bitSet(ATTACKING); bitSet(BOUNCING); _attackMode = JUMP_ATTACK; } else { if (bellyMode == MODE_HEAVY_BELLY){ animate(ANIM_CRUSH); bitSet(ATTACKING); bitSet(CRUSHING); _attackMode = JUMP_ATTACK; } else { if (bellyMode == MODE_DRAGON){ if (((((!(bit(FLY))) && (!(bit(DISABLED))))) && (!(bit(CUTSCENE))))){ bitReset(DISABLED); bitReset(ANIMATING); bitSet(FLYING); bitSet(FLY); _flyTimer = MAX_FLY_TIME; animate(ANIM_FLY); _attackMode = NO_ATTACK; }; }; }; }; }; break; case Controller.BUTTON_B: if (bit(FLOATING)){ bitReset(FLOATING); playSound(DEFLATE_SOUND); break; }; if ((((bit(GROUND) | bit(WATER))) && (_controller.down(Controller.BUTTON_DOWN)))){ if (_modesUnlocked <= 1){ break; }; vX = 0; vY = 0; _nextBellyMode = ((_bellyMode + 1) % _modesUnlocked); if ((((_bellyMode == MODE_DRAGON)) && ((_nextBellyMode == MODE_BELLY_DRAGON)))){ bitSet(DISABLED); bitSet(ANIMATING); bitSet(CHANGING); _bellyMode = _nextBellyMode; animate(ANIM_FROM_DRAGON, false); playSound(TRANSFORM_SOUND, false); } else { if ((((_bellyMode == MODE_BELLY_DRAGON)) && ((_nextBellyMode == MODE_DRAGON)))){ bitSet(DISABLED); bitSet(ANIMATING); bitSet(CHANGING); animate(ANIM_TO_DRAGON, false); _bellyMode = _nextBellyMode; playSound(TRANSFORM_SOUND, false); } else { bitSet(DISABLED); bitSet(ANIMATING); bitSet(CHANGING); animate(ANIM_END, false); }; }; } else { if (((((!(bit(FLOAT))) && ((bellyMode == MODE_LIGHT_BELLY)))) && (_controller.down(Controller.BUTTON_UP)))){ if (!bit(FLOATING)){ vX = 0; vY = 0; animate(ANIM_FILL, false); bitSet(FLOAT); bitSet(FLOATING); bitSet(ANIMATING); bitSet(DISABLED); playSound(INFLATE_SOUND); }; } else { if ((((bellyMode == MODE_NORMAL)) && (_controller.down(Controller.BUTTON_UP)))){ if ((((_items > 0)) && (!(_appleTimer)))){ if (_controller.down(Controller.BUTTON_LEFT)){ clip.scaleX = -1; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = 1; }; }; bitSet(DISABLED); bitSet(ANIMATING); bitSet(ATTACKING); animate(ANIM_THROW, false); _attackMode = PROJECTILE_ATTACK; _items--; }; } else { if (bellyMode == MODE_NORMAL){ if (_controller.down(Controller.BUTTON_LEFT)){ clip.scaleX = -1; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = 1; }; }; if (bit(GROUND)){ }; bitSet(DISABLED); bitSet(JUMP_ONLY); bitSet(ANIMATING); bitSet(ATTACKING); animate(ANIM_ATTACK, false); playSound(TAIL_ATTACK_SOUND); _attackMode = SIDE_ATTACK; } else { if (bellyMode == MODE_HEAVY_BELLY){ if (_controller.down(Controller.BUTTON_LEFT)){ clip.scaleX = -1; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = 1; }; }; if (((bit(GROUND)) && ((Math.abs(vX) <= RUN_SPEED)))){ }; bitSet(ANIMATING); bitSet(ATTACKING); animate(ANIM_ATTACK, false); _attackMode = SIDE_ATTACK; playSound(BELLY_ATTACK_SOUND); } else { if (bellyMode == MODE_DRAGON){ if (!bit(FLYING)){ _attackMode = PROJECTILE_ATTACK; bitSet(ANIMATING); bitSet(ATTACKING); animate(ANIM_START_FIRE, false); } else { bitSet(ATTACKING); }; }; }; }; }; }; }; break; case Controller.BUTTON_START: if (playerID > 0){ if (((!(bit(DISABLED))) && (!(bit(CUTSCENE))))){ dispatchEvent(new Event(SEEK_PLAYER_1)); }; } else { if (!bit(CUTSCENE)){ _isPaused = !(_isPaused); if (_isPaused){ stopSound(); }; dispatchEvent(new Event(PAUSE_GAME)); }; }; break; case Controller.BUTTON_C: if (_modesUnlocked <= 1){ break; }; if (!(bit(GROUND) | bit(WATER))){ break; }; _local2 = MODE_NORMAL; if (_controller.down(Controller.BUTTON_UP)){ _local2 = MODE_LIGHT_BELLY; } else { if (_controller.down(Controller.BUTTON_DOWN)){ _local2 = MODE_BELLY_DRAGON; } else { if (_controller.down(Controller.BUTTON_LEFT)){ _local2 = MODE_HEAVY_BELLY; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ _local2 = MODE_DRAGON; }; }; }; }; bitReset(ANIMATING); bitReset(ATTACKING); quickChange(_local2); break; }; } public function get lives():int{ return (_lives); } public function set lives(_arg1:int){ _lives = _arg1; } public function transformTo(_arg1:int){ if (_arg1 >= modesUnlocked){ return; }; vX = 0; vY = 0; bitSet(DISABLED); bitSet(ANIMATING); bitSet(CHANGING); animate(ANIM_END, false); _nextBellyMode = _arg1; } public function enemyKilled(_arg1:Enemy){ dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_KILLED, _arg1)); } public function get fireImage():Class{ return (_fireImage); } override protected function updateFrame(){ var _local1:int; var _local2:int; _local1 = Math.floor(_time); _local2 = ((_animations[((_currentAnimation * 2) + 1)] - _animations[(_currentAnimation * 2)]) + 1); if (bit(NO_REPEAT)){ _local1 = Math.min(_local1, (_local2 - 1)); } else { _local1 = (_local1 % _local2); }; _clip.gotoAndStop((_animations[(_currentAnimation * 2)] + _local1)); } public function get soundTransform():SoundTransform{ var _local1:SoundTransform; _local1 = new SoundTransform(); _local1.leftToLeft = _soundTransform.leftToLeft; _local1.leftToRight = _soundTransform.leftToRight; _local1.pan = _soundTransform.pan; _local1.rightToLeft = _soundTransform.rightToLeft; _local1.rightToRight = _soundTransform.rightToRight; _local1.volume = _soundTransform.volume; return (_local1); } public function attackSprite(_arg1:GameSprite, _arg2:World):Boolean{ if (((((bit(ATTACKING)) && (Geometry.collide(getAttackPoints(), _arg1.getPoints(_arg2.timeSpeed))))) || ((((((_bellyMode == MODE_BELLY_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_RUN)))) && (Geometry.collide(getAttackPoints(), _arg1.getPoints(_arg2.timeSpeed))))))){ if (_arg1.type == "block"){ if ((_arg1 as Block).subtype == Block.CONTAINER_BLOCK){ hitContainer((_arg1 as Container), _arg2); } else { (_arg1 as Block).smash(_arg2); queueSound(BREAK_SOUND); }; } else { if (_arg1.type == "enemy"){ return (hitEnemy((_arg1 as Enemy), _arg2)); }; _arg2.removeSprite(_arg1); }; return (true); }; return (false); } public function hitContainer(_arg1:Container, _arg2:World){ _items = (_items + _arg1.numItems); dispatchEvent(new ItemEvent(COLLECT_ITEM, Item.COLLECTIBLE)); _arg1.smash(_arg2); queueSound(BREAK_SOUND); } public function get appleImage():Class{ return (_appleImage); } private function pseudoRandom():Number{ var _local1:uint; var _local2:Number; _local1 = (RANDOM_X ^ (RANDOM_X >> 7)); RANDOM_X = RANDOM_Y; RANDOM_Y = RANDOM_Z; RANDOM_Z = RANDOM_W; RANDOM_W = RANDOM_V; RANDOM_V = ((RANDOM_V ^ (RANDOM_V << 6)) ^ (_local1 ^ (_local1 << 13))); _local2 = (uint((((RANDOM_Y + RANDOM_Y) + 1) * RANDOM_V)) / Number(uint.MAX_VALUE)); return (_local2); } public function set controller(_arg1:Controller){ _controller.removeEventListener(ButtonEvent.BUTTON_DOWN, buttonDown); _controller.removeEventListener(ButtonEvent.BUTTON_UP, buttonUp); _controller = _arg1; _controller.addEventListener(ButtonEvent.BUTTON_DOWN, buttonDown, false, 0, true); _controller.addEventListener(ButtonEvent.BUTTON_UP, buttonUp, false, 0, true); } public function get pieces():int{ return (_pieces); } public function set appleImage(_arg1:Class){ _appleImage = _arg1; } public function get modesUnlocked():int{ return (_modesUnlocked); } public function set soundTransform(_arg1:SoundTransform){ _soundTransform.leftToLeft = _arg1.leftToLeft; _soundTransform.leftToRight = _arg1.leftToRight; _soundTransform.pan = _arg1.pan; _soundTransform.rightToLeft = _arg1.rightToLeft; _soundTransform.rightToRight = _arg1.rightToRight; _soundTransform.volume = _arg1.volume; } function playSound(_arg1:int, _arg2:Boolean=true){ var _local3:Sound; if (_arg2){ stopSound(); }; _local3 = _sounds[_arg1]; if (_arg2){ _currentSoundID = _arg1; _currentSound = _local3.play(0, 0, _soundTransform); _currentSound.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true); } else { _local3.play(0, 0, _soundTransform); }; } public function reset(_arg1:Boolean=true){ _state = 0; if (_arg1){ _bellyMode = MODE_NORMAL; }; _clip.transform.colorTransform = new ColorTransform(); _time = 0; _platform = null; _platPos = null; _fireballCount = 0; _fireballTimer = 0; _appleTimer = 0; _glow = -1; _flyTimer = -1; _invincibleTimer = -1; _recoveryTimer = -1; _health = _maxHealth; vX = 0; vY = 0; animate(ANIM_STAND); } override public function getRect():Rectangle{ var _local1:MovieClip; var _local2:MovieClip; var _local3:Rectangle; var _local4:Rectangle; _local1 = _clip.hitbox; _local2 = _clip.attackbox; if ((((_local1 == null)) || ((_local2 == null)))){ throw ("Error in Character::getRect(). Property 'hitbox' or 'attackbox' not found in Character::clip"); }; _local3 = _local1.getRect(clip); _local4 = _local2.getRect(clip); if (clip.scaleX == -1){ _local3.x = (-(_local3.x) - _local3.width); _local4.x = (-(_local4.x) - _local4.width); }; _local3.x = (_local3.x + x); _local3.y = (_local3.y + y); _local4.x = (_local4.x + x); _local4.y = (_local4.y + y); return (_local3.union(_local4)); } public function get health():int{ return (_health); } public function collectItem(_arg1:Item, _arg2:World):Boolean{ if (!Geometry.collide(getStaticPoints(), _arg1.getPoints(_arg2.timeSpeed))){ return (false); }; switch (_arg1.subtype){ case Item.WATER: bitSet(WATER); bitReset(FLOAT); bitReset(FLY); break; case Item.COLLECTIBLE: _items++; dispatchEvent(new ItemEvent(COLLECT_ITEM, _arg1.subtype)); _arg2.removeSprite(_arg1); queueSound(ITEM_SOUND); break; case Item.RECOVERY: if (_health < _maxHealth){ _health++; } else { return (false); }; dispatchEvent(new ItemEvent(COLLECT_ITEM, _arg1.subtype)); _arg2.removeSprite(_arg1); queueSound(HEAL_SOUND); break; case Item.HEALTH: _pieces++; dispatchEvent(new ItemEvent(COLLECT_ITEM, _arg1.subtype)); _arg2.removeSprite(_arg1); queueSound(GOLD_SOUND); break; case Item.LIFE: _lives++; dispatchEvent(new Event(LIFE)); _arg2.removeSprite(_arg1); break; case Item.VICTORY: dispatchEvent(new Event(VICTORY)); break; case Item.CHECKPOINT: dispatchEvent(new CheckPointEvent(CHECKPOINT, _arg1.x, _arg1.y)); break; case Item.BOSS_EVENT: dispatchEvent(new Event(BOSS_ENCOUNTERED)); break; default: dispatchEvent(new ItemEvent(COLLECT_ITEM, _arg1.subtype)); break; }; return (true); } public function set modesUnlocked(_arg1:int){ _modesUnlocked = _arg1; } public function get collectibles():int{ return (Math.floor(_items)); } public function buttonUp(_arg1:ButtonEvent){ switch (_arg1.button){ case Controller.BUTTON_UP: break; case Controller.BUTTON_DOWN: break; case Controller.BUTTON_LEFT: break; case Controller.BUTTON_RIGHT: break; case Controller.BUTTON_A: if ((((bellyMode == MODE_LIGHT_BELLY)) && ((_currentAnimation == (ANIM_BOUNCE + (MODE_LIGHT_BELLY * ANIMATIONS_PER_MODE)))))){ bitReset(BOUNCING); bitReset(ATTACKING); _attackMode = NO_ATTACK; }; if ((((bellyMode == MODE_HEAVY_BELLY)) && ((_currentAnimation == (ANIM_CRUSH + (MODE_HEAVY_BELLY * ANIMATIONS_PER_MODE)))))){ bitReset(CRUSHING); bitReset(ATTACKING); _attackMode = NO_ATTACK; }; if (bellyMode == MODE_DRAGON){ bitReset(DISABLED); bitReset(FLYING); bitReset(ATTACKING); _flyTimer = -1; _attackMode = NO_ATTACK; }; break; case Controller.BUTTON_B: if (((bit(ATTACKING)) && ((bellyMode == MODE_DRAGON)))){ bitReset(DISABLED); bitReset(ANIMATING); bitReset(ATTACKING); _attackMode = NO_ATTACK; }; break; case Controller.BUTTON_START: break; }; } public function getAttackPoints():Array{ var _local1:MovieClip; var _local2:Rectangle; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local1 = _clip.attackbox; if (_local1 == null){ throw ("Error in Character::getAttackPoints(). Property 'attackbox' not found in Character::clip"); }; _local2 = _local1.getRect(clip); _local3 = ((_local2.x * clip.scaleX) + x); _local4 = (_local2.y + y); _local5 = Math.min((_local3 + (_local2.width * clip.scaleX)), _local3); _local6 = Math.max((_local3 + (_local2.width * clip.scaleX)), _local3); return ([new Point(_local5, _local4), new Point(_local6, _local4), new Point(_local6, (_local4 + _local2.height)), new Point(_local5, (_local4 + _local2.height))]); } public function bossKilled(_arg1:Enemy){ dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DEFEATED, _arg1)); } function queueSound(_arg1:int){ _soundQueue.push(_arg1); } public function set fireImage(_arg1:Class){ _fireImage = _arg1; } public function hitByEnemy(_arg1:Enemy, _arg2:World){ var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Array; var _local10:Boolean; var _local11:Array; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:int; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local3 = 0.8; _local4 = 10; _local5 = getStaticPoints(); _local6 = (base.x - _arg1.base.x); _local7 = (base.y - _arg1.base.y); _local8 = Math.atan2(_local7, _local6); _local9 = []; _local10 = super.getRect().intersects(_arg1.getRect()); if (!_local10){ return; }; _local16 = _lives; _local14 = _local5[GROUND_POINT].y; _local12 = (_local5[LEFT_GROUND_POINT].y - vY); _local11 = _arg1.getStaticPoints(); _local15 = _local11[HEAD_POINT].y; _local13 = (_local11[HEAD_POINT].y - _arg1.vY); if (!_arg1.dangerous){ return; }; if (((((((((!(_arg1.jumpResistant)) && ((vY >= (_arg1.vY - 1))))) && ((_local14 >= (_local15 - 1))))) && ((_local12 <= (_local13 + 1))))) && (_arg1.solid))){ _local17 = _arg1.health; if (((!(_arg1.invincible)) && (_arg1.solid))){ _arg1.damage(this, _arg2); }; if (_arg1.health < _local17){ if (_arg1.boss){ if (!_arg1.health){ dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DEFEATED, _arg1)); } else { dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DAMAGED, _arg1)); }; } else { dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_KILLED, _arg1)); }; }; if (_bellyMode != MODE_BELLY_DRAGON){ _local18 = (_local11[HEAD_POINT].y - _local5[GROUND_POINT].y); y = (y + ((_local18)<0) ? _local18 : 0); vY = (-(ATTACK_BOUNCE_SPEED) + _arg1.vY); if (bit(BOUNCING)){ vY = -(BOUNCE_SPEED); playSound(BOUNCE_SOUND); }; bitReset(GROUND); bitReset(FLOAT); bitReset(FLY); }; } else { if (((((!(_arg1.hurt())) && (_arg1.solid))) && (damage()))){ vY = -(DAMAGE_SPEED); y--; if (_arg1.base.x < x){ vX = DAMAGE_SPEED; } else { vX = -(DAMAGE_SPEED); }; } else { if (((((_arg1.boss) && (_arg1.health))) && ((_lives < _local16)))){ _arg1.revive(); dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DAMAGED, _arg1)); }; if (_arg1.solid){ _local19 = Math.min((_local11[LEFT_GROUND_POINT].x - _local5[RIGHT_GROUND_POINT].x), 0); _local20 = Math.max((_local11[RIGHT_GROUND_POINT].x - _local5[LEFT_GROUND_POINT].x), 0); _local21 = Math.max((_local11[GROUND_POINT].y - _local5[HEAD_POINT].y)); if ((((((-(_local19) <= _local21)) || ((_local20 <= _local21)))) || (bit(GROUND)))){ if (-(_local19) < _local20){ _local22 = (_local19 * _local3); if (_local22 < -(_local4)){ _local22 = -(_local4); }; } else { _local22 = (_local20 * _local3); if (_local22 > _local4){ _local22 = _local4; }; }; x = (x + _local22); } else { if ((((_local21 > 0)) && (!(bit(GROUND))))){ y = (y + (_local21 * _local3)); vY = Math.max(vY, 0); }; }; }; }; }; } public function damage(_arg1:Boolean=false):Boolean{ if (((((bit(INVINCIBLE)) || (bit(CHANGING)))) || (bit(CUTSCENE)))){ return (false); }; _health--; _state = 0; _invincibleTimer = DAMAGE_RECOVERY_TIMER; _recoveryTimer = DAMAGE_TIMER; bitSet(INVINCIBLE); bitSet(DISABLED); bitReset(FLYING); bitReset(ATTACKING); _flyTimer = -1; bitReset(FLOATING); animate(ANIM_DAMAGE); if ((((_health <= 0)) || (_arg1))){ _lives--; dispatchEvent(new Event(DEAD)); return (false); }; dispatchEvent(new Event(DAMAGE)); _clip.transform.colorTransform = new ColorTransform(1, 0.5, 0.5, 1); return (true); } private function shootApple(_arg1:World){ var _local2:Projectile; _local2 = new Projectile(_appleImage, THROWABLE_LIFE, this, (_clip.attackbox.x * _clip.scaleX), _clip.attackbox.y); _local2.x = (x + (_clip.attackbox.x * clip.scaleX)); _local2.y = (y + _clip.attackbox.y); _local2.vX = (THROW_SPEED * clip.scaleX); _local2.vY = -(THROW_HEIGHT); _local2.depth = 1; _local2.linked = false; _local2.gravity = true; _arg1.addProjectile(_local2); _appleTimer = THROWABLE_TIME; dispatchEvent(new ItemEvent(LOSE_ITEM, Item.COLLECTIBLE)); } private function shootFireBall(_arg1:World){ var _local2:Array; var _local3:Number; var _local4:int; var _local5:Projectile; var _local6:Number; var _local7:Number; var _local8:Number; if (_fireballTimer > 0){ _fireballTimer = (_fireballTimer - _arg1.timeSpeed); return; }; _fireballTimer = (_fireballTimer + FIRE_BALL_INTERVAL); if (_fireballCount >= MAX_FIRE_BALLS){ return; }; _fireballCount++; _local2 = getStaticPoints(); _local3 = (_local2[GROUND_POINT].y - _local2[HEAD_POINT].y); _local4 = 8; _local5 = new Projectile(_fireImage, _local4, this, (_clip.attackbox.x * _clip.scaleX), _clip.attackbox.y); _local5.x = ((x + (_clip.attackbox.x * clip.scaleX)) + (pseudoRandom() * 2)); _local5.y = ((y + _clip.attackbox.y) + (pseudoRandom() * 2)); _local6 = (Math.PI * 0.45); _local7 = (_local3 / _local4); _local8 = (((Math.PI * 0.25) + (pseudoRandom() * _local6)) - (0.5 * _local6)); _local5.vX = ((Math.cos(_local8) * _local7) * clip.scaleX); _local5.vY = (Math.sin(_local8) * _local7); _local5.clip.scaleX = (_local5.clip.scaleX - (pseudoRandom() * 0.25)); _local5.clip.scaleY = _local5.clip.scaleX; _local5.depth = 1; _arg1.addProjectile(_local5); playSound(FIRE_SOUND); } public function get bellyMode():int{ return (_bellyMode); } public function get flyTimer():int{ return (_flyTimer); } public function bossDamaged(_arg1:Enemy){ dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DAMAGED, _arg1)); } public function get controller():Controller{ return (_controller); } function makeSparkles(){ var sparkle:MovieClip; var fade:Function; var points:Array; var p:Point; var rad:Number; var radMin:Number; var i:int; playSound(TRANSFORM_SOUND, false); fade = function (_arg1:Event){ var _local2:MovieClip; var _local3:ColorTransform; _local2 = (_arg1.currentTarget as MovieClip); _local2.x = (_local2.x + _local2.vX); _local2.y = (_local2.y + _local2.vY); _local2.rotation = (_local2.rotation + _local2.vR); _local2.vX = (_local2.vX * 0.98); _local2.vY = (_local2.vY * 0.98); _local2.vR = (_local2.vR * 0.99); _local2.shine = (_local2.shine * _local2.shineDivide); _local2.life--; _local3 = new ColorTransform(1, _local2.shine, 1); _local2.transform.colorTransform = _local3; if (_local2.life <= 0){ _local2.parent.removeChild(_local2); _local2.removeEventListener("enterFrame", _local2.myFunc); }; }; points = getStaticPoints(); p = new Point(); p.x = points[HEAD_POINT].x; p.y = ((points[HEAD_POINT].y * 0.5) + (points[GROUND_POINT].y * 0.5)); rad = (points[GROUND_POINT].y - points[HEAD_POINT].y); rad = (rad * 0.05); radMin = (rad * 0.2); i = 0; while (i < 20) { sparkle = new MovieClip(); sparkle.x = p.x; sparkle.y = p.y; sparkle.scaleX = ((1 + (Math.random() * 0.1)) - 0.05); sparkle.scaleY = sparkle.scaleX; sparkle.graphics.beginFill(0xFFFFFF); sparkle.graphics.moveTo(rad, 0); sparkle.graphics.lineTo(radMin, radMin); sparkle.graphics.lineTo(0, rad); sparkle.graphics.lineTo(-(radMin), radMin); sparkle.graphics.lineTo(-(rad), 0); sparkle.graphics.lineTo(-(radMin), -(radMin)); sparkle.graphics.lineTo(0, -(rad)); sparkle.graphics.lineTo(radMin, -(radMin)); sparkle.graphics.endFill(); sparkle.vX = ((Math.random() * 20) - 10); sparkle.vY = ((Math.random() * 20) - 10); sparkle.vR = ((Math.random() * 20) - 10); sparkle.life = 10; sparkle.shine = 1; sparkle.myFunc = fade; sparkle.shineDivide = (0.9 + (Math.random() * 0.09)); clip.parent.addChild(sparkle); sparkle.addEventListener("enterFrame", fade, false, 0, true); i = (i + 1); }; } public function hitEnemy(_arg1:Enemy, _arg2:World):Boolean{ if (((((((((((_arg1.jumpResistant) && ((_attackMode == JUMP_ATTACK)))) || (((_arg1.attackResistant) && ((_attackMode == SIDE_ATTACK)))))) || (((_arg1.fireResistant) && ((_attackMode == PROJECTILE_ATTACK)))))) || (!(((_arg1.dangerous) || (_arg1.solid)))))) || (_arg1.invincible))){ return (false); }; _arg1.damage(this, _arg2); if (_arg1.boss){ if (!_arg1.health){ dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DEFEATED, _arg1)); } else { dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_DAMAGED, _arg1)); }; } else { dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_KILLED, _arg1)); }; return (true); } override public function behaviour(_arg1:World){ var _local2:int; var _local3:Point; var _local4:Point; var _local5:Number; var _local6:Number; var _local7:Boolean; var _local8:int; var _local9:Array; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Array; var _local16:int; var _local17:Array; var _local18:GameSprite; var _local19:int; var _local20:Platform; var _local21:Point; var _local22:Point; var _local23:Number; var _local24:Array; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:int; var _local30:OneWayWall; var _local31:Array; var _local32:Array; var _local33:Array; var _local34:MessageBlock; var _local35:SpikeBlock; var _local36:Number; var _local37:Number; var _local38:int; var _local39:Number; var _local40:Number; var _local41:Boolean; var _local42:Number; var _local43:Array; var _local44:Number; var _local45:int; var _local46:Number; var _local47:int; var _local48:Point; var _local49:Point; var _local50:Number; var _local51:Point; var _local52:Number; var _local53:Number; var _local54:ColorTransform; _local2 = WALK_SPEED; bitReset(RUNNING); bitReset(MOVING); if (!bit(GROUND)){ if (!Boolean((((bellyMode == MODE_LIGHT_BELLY)) && (bit(WATER))))){ vY = (vY + (World.GRAVITY * _arg1.timeSpeed)); }; } else { if (_controller.down(Controller.BUTTON_B)){ bitSet(RUNNING); if (bellyMode == MODE_BELLY_DRAGON){ _local2 = BELLY_DRAGON_RUN_SPEED; } else { _local2 = RUN_SPEED; }; }; }; if (((((((!(bit(DISABLED))) && (!(bit(CUTSCENE))))) && (!(bit(FLOATING))))) || (bit(JUMP_ONLY)))){ if (_controller.down(Controller.BUTTON_LEFT)){ if (vX > -(_local2)){ vX = (vX - (ACCELERATION * _arg1.timeSpeed)); if (vX < -(_local2)){ vX = -(_local2); }; }; bitSet(MOVING); bitReset(DIRECTION); } else { if (_controller.down(Controller.BUTTON_RIGHT)){ if (vX < _local2){ vX = (vX + (ACCELERATION * _arg1.timeSpeed)); if (vX > _local2){ vX = _local2; }; }; bitSet(MOVING); bitSet(DIRECTION); }; }; }; if (bit(FLOATING)){ vY = -(FLOAT_SPEED); vX = 0; } else { if (((bit(WATER)) && ((bellyMode == MODE_LIGHT_BELLY)))){ if (vY >= (-(SWIM_SPEED) + 1)){ vY--; } else { if (vY > -(SWIM_SPEED)){ vY = -(SWIM_SPEED); }; }; }; }; _local3 = _p.clone(); if (bit(ONEWAY)){ if (bit(RIGHT)){ vX = Math.max(vX, 0); } else { vX = Math.min(vX, 0); }; }; _local4 = _v.clone(); _v.clone().x = (_local4.x * _arg1.timeSpeed); _local4.y = (_local4.y * _arg1.timeSpeed); if (bit(WATER)){ _local4.x = (_local4.x * WATER_MULTIPLIER); if ((((vY <= 0)) || (!((_bellyMode == MODE_BELLY_DRAGON))))){ _local4.y = (_local4.y * WATER_MULTIPLIER); }; }; _oldX = x; _oldY = y; if (_platform != null){ y = (_platform.y + 0.5); x = (x + (_platform.x - _platPos.x)); _platform = null; }; x = (x + _local4.x); y = (y + _local4.y); _local5 = _v.y; bitReset(ONEWAY); _local6 = bit(WATER); bitReset(WATER); _local7 = false; _local8 = getTimer(); _local9 = _arg1.hitSprites(this); _local10 = (getTimer() - _local8); _local11 = 0; _local12 = 0; if (_local10 > 40){ trace(("TIMEOUT:" + _local10)); }; _local13 = 0; _local14 = 0; _local15 = []; _local16 = 0; while (_local16 < _local9.length) { _local18 = _local9[_local16]; switch (_local18.type){ case "block": _local19 = Block(_local18).subtype; switch (true){ case (((_local19 == Block.GROUND_BLOCK)) && ((((((bellyMode == MODE_HEAVY_BELLY)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_CRUSH)))) || ((((bellyMode == MODE_BELLY_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_STOMP))))))): case (((((_local19 == Block.GROUND_BLOCK)) && ((bellyMode == MODE_HEAVY_BELLY)))) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_BOUNCE))): case (((((_local19 == Block.WALL_BLOCK)) && ((bellyMode == MODE_HEAVY_BELLY)))) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_ATTACK))): case (((_local19 == Block.CONTAINER_BLOCK)) && (Boolean((((((((((((((bellyMode == MODE_HEAVY_BELLY)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_ATTACK)))) || ((((bellyMode == MODE_HEAVY_BELLY)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_BOUNCE)))))) || ((((bellyMode == MODE_HEAVY_BELLY)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_CRUSH)))))) || ((((bellyMode == MODE_BELLY_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_STOMP)))))) || ((((bellyMode == MODE_NORMAL)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_ATTACK)))))) || ((((bellyMode == MODE_BELLY_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_RUN)))))))): if (attackSprite(_local18, _arg1)){ break; }; default: _local33 = hitBlock((_local18 as Block), _arg1, _oldX, _oldY); if (_local33.length){ if ((((((_local19 == Block.THIN_BLOCK)) && ((bellyMode == MODE_BELLY_DRAGON)))) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_RUN)))){ if (_local33[0].x == _local33[1].x){ if (attackSprite(_local18, _arg1)){ break; }; }; }; if (Block(_local18).subtype == Block.MESSAGE_BLOCK){ _local34 = MessageBlock(_local18); dispatchEvent(new MessageEvent(_local34.message)); } else { if (Block(_local18).subtype == Block.SPIKE_BLOCK){ _local35 = SpikeBlock(_local18); _local36 = ((Math.PI * 0.5) * _local35.orientation); _local37 = (Math.atan2((_local33[1].y - _local33[0].y), (_local33[1].x - _local33[0].x)) - (Math.PI * 0.5)); if (Geometry.angularDistance(_local36, _local37) >= (1 - Geometry.TOLERANCE)){ if (damage()){ _local38 = (_local35.positive * DAMAGE_SPEED); if (_local35.vertical){ vY = _local38; } else { vX = _local38; }; }; }; } else { if (Block(_local18).subtype == Block.FIRE_BLOCK){ if ((((bellyMode < MODE_DRAGON)) && (damage()))){ _local37 = (Math.atan2((_local33[1].y - _local33[0].y), (_local33[1].x - _local33[0].x)) - (Math.PI * 0.5)); vY = (Math.sin(_local37) * DAMAGE_SPEED); vX = (Math.cos(_local37) * DAMAGE_SPEED); }; } else { if (Block(_local18).subtype == Block.CONTAINER_BLOCK){ _local37 = (Math.atan2((_local33[1].y - _local33[0].y), (_local33[1].x - _local33[0].x)) - (Math.PI * 0.5)); if ((((Geometry.angularDistance((-(Math.PI) * 0.5), _local37) >= (1 - Geometry.TOLERANCE))) && ((vY >= 0)))){ hitContainer((_local18 as Container), _arg1); if (_bellyMode != MODE_BELLY_DRAGON){ y = (y + ((_local33[0].y - getStaticPoints()[GROUND_POINT].y) - 1)); vY = -(ATTACK_BOUNCE_SPEED); if (bit(BOUNCING)){ vY = -(BOUNCE_SPEED); playSound(BOUNCE_SOUND); }; bitReset(GROUND); bitReset(FLOAT); bitReset(FLY); }; _local33 = []; } else { if (((bit(ATTACKING)) && (Geometry.polygon2polygon(getAttackPoints(), (_local18 as Container).getPoints(_arg1.timeSpeed))))){ hitContainer((_local18 as Container), _arg1); _local33 = []; }; }; }; }; }; }; }; _local15 = _local15.concat(_local33); break; }; break; case "platform": _local20 = (_local18 as Platform); _local21 = new Point(_local20.x, _local20.y); _local22 = _local20.position((_arg1.time - _arg1.timeSpeed)); if (((_platform) && ((_platform.position(_arg1.time).y <= _local21.y)))){ break; }; _local23 = ((_local4.y + _local12) - (_local21.y - _local22.y)); _local24 = getStaticPoints(); if ((((_local24[LEFT_GROUND_POINT].x > (_local20.x + _local20.clip.width))) || ((_local24[RIGHT_GROUND_POINT].x < _local20.x)))){ break; }; _local25 = (Math.min(y, (_oldY - _local12)) - 1); _local26 = (Math.min(_local21.y, _local22.y) - 1); _local27 = (Math.max(y, (_oldY - _local12)) + 1); _local28 = (Math.max(_local21.y, _local22.y) + 1); if ((((_local27 >= _local26)) && ((_local25 <= _local28)))){ _platform = _local20; y = (_platform.y + 0.5); vY = Math.min(vY, 0); _platPos = _local21.clone(); _local15.push(new Point(_local21.x, _local21.y)); _local15.push(new Point((_local21.x + _platform.clip.width), _local21.y)); bitReset(FLYING); bitReset(FLY); _flyTimer = -1; }; break; case "item": collectItem(Item(_local18), _arg1); break; case "wind": if ((((((((((bellyMode == MODE_HEAVY_BELLY)) || ((bellyMode == MODE_BELLY_DRAGON)))) || (_local7))) || (!(hitSprite(_local18, _arg1.timeSpeed))))) || (!((_platform == null))))){ break; }; _local7 = true; _local29 = ((_local18 as Wind).positive * (_local18 as Wind).speed); if (Wind(_local18).vertical){ if ((((_local29 < 0)) || (!(bit(GROUND))))){ _local12 = (_local12 + _local29); y = (y + _local29); }; } else { _local11 = (_local11 + _local29); x = (x + _local29); }; break; case "oneway": _local30 = (_local18 as OneWayWall); _local31 = getStaticPoints(); _local32 = _local30.getPoints(_arg1.timeSpeed); if (_local31[HEAD_POINT].y > _local32[2].y){ break; }; if (_local31[GROUND_POINT].y < _local32[0].y){ break; }; if (_local31[LEFT_HEAD_POINT].x > _local32[2].x){ break; }; if (_local31[RIGHT_GROUND_POINT].x < _local32[0].x){ break; }; if (_local30.direction > 0){ bitSet(RIGHT); if (_local31[HEAD_POINT].x >= (_local30.x + Tile.TILE_HALF)){ _local15.push(new Point((_local30.x + Tile.TILE_HALF), _local30.y)); _local15.push(new Point((_local30.x + Tile.TILE_HALF), (_local30.y + Tile.TILE_HALF))); }; } else { bitReset(RIGHT); if (_local31[HEAD_POINT].x <= _local30.x){ _local15.push(new Point(_local30.x, (_local30.y + Tile.TILE_HALF))); _local15.push(new Point(_local30.x, _local30.y)); }; }; bitSet(ONEWAY); break; case "enemy": if (!attackSprite((_local18 as Enemy), _arg1)){ hitByEnemy((_local18 as Enemy), _arg1); }; break; default: break; }; _local16++; }; if (((_local6) && (!(bit(WATER))))){ if ((((vY >= -(SWIM_SPEED))) && ((vY < 0)))){ vY = 1; y++; bitSet(WATER); bitReset(FLOAT); bitReset(FLY); }; }; _local47 = 0; while (_local47 < _local15.length) { _local50 = (Math.atan2((_local15[1].y - _local15[0].y), (_local15[1].x - _local15[0].x)) - (Math.PI * 0.5)); _local39 = Math.cos(_local50); _local40 = Math.sin(_local50); if (_local39 < -(Geometry.TOLERANCE)){ vX = Math.min(vX, 0); } else { if (_local39 > Geometry.TOLERANCE){ vX = Math.max(vX, 0); }; }; if (_local40 < -(Geometry.TOLERANCE)){ vY = Math.min(vY, 0); } else { if (_local40 > Geometry.TOLERANCE){ vY = Math.max(vY, 0); }; }; _local47 = (_local47 + 2); }; _local17 = correct(_arg1, _local3); _local17 = _local17.concat(_local15); x = _local3.x; y = _local3.y; if (_local17.length){ _local41 = false; _local42 = Infinity; _local43 = []; _local44 = 0; _local45 = 0; _local46 = NaN; _local47 = 0; while (_local47 < _local17.length) { _local48 = _local17[_local47]; _local49 = _local17[(_local47 + 1)]; _local50 = Math.atan2((_local49.y - _local48.y), (_local49.x - _local48.x)); _local44 = (_local44 + _local50); _local45++; if (Math.cos(_local50) >= (Math.SQRT1_2 - Geometry.TOLERANCE)){ _local51 = Geometry.closestPointOnLine(base, _local48, _local49); if (((((((!(_platform)) || (!((_local48.x == _platPos.x))))) || (!((_local48.y == _platPos.y))))) || (!((_local49.y == _local48.y))))){ if (((isNaN(_local46)) || ((_local51.y < _local46)))){ _local46 = _local51.y; }; }; if (base.y <= (Math.max(_local48.y, _local49.y) + 4)){ _local41 = true; }; }; _local47 = (_local47 + 2); }; if (_local45){ _local44 = (_local44 / _local45); }; if (_local41){ if (bit(GROUND)){ } else { if (bit(BOUNCING)){ vY = -(BOUNCE_SPEED); playSound(BOUNCE_SOUND); } else { if (_recoveryTimer >= 0){ } else { if ((((((((bellyMode == MODE_BELLY_DRAGON)) && (!(bit(DISABLED))))) && (!(bit(CUTSCENE))))) && ((_local5 > 14)))){ bitSet(DISABLED); bitSet(ANIMATING); bitSet(ATTACKING); animate(ANIM_STOMP, false); dispatchEvent(new Event(STOMP)); _attackMode = JUMP_ATTACK; playSound(STOMP_SOUND, false); vX = (vY = 0); } else { if (_recoveryTimer >= 0){ _recoveryTimer = 0; }; vY = 0; }; }; }; if (bit(CRUSHING)){ vX = 0; bitReset(CRUSHING); bitSet(ANIMATING); bitSet(DISABLED); animate(ANIM_BOUNCE, false); playSound(CRUSH_SOUND); }; }; bitSet(GROUND); if (((_platform) && ((_local46 < _platPos.y)))){ y = (_local46 + 0.5); _platform = null; }; bitReset(FLOAT); bitReset(FLY); } else { if (bit(GROUND)){ } else { if (bit(BOUNCING)){ if (Math.abs(Geometry.angularDistance(_local44, (Math.PI * 0.5))) > (Math.SQRT1_2 - Geometry.TOLERANCE)){ if (Math.sin(_local44) > 0){ vX = WALL_BOUNCE_SPEED; clip.scaleX = 1; } else { vX = -(WALL_BOUNCE_SPEED); clip.scaleX = -1; }; vY = -(WALL_BOUNCE_HEIGHT); playSound(WALL_BOUNCE_SOUND, false); }; }; }; bitReset(GROUND); }; if (Geometry.angularDistance(_local44, -(Math.PI)) >= Math.SQRT1_2){ vY = Math.max(vY, 0); }; } else { if (bit(GROUND)){ _local52 = _arg1.highestSurfaceUnder(getStaticPoints(), _local4); if (((!(((bit(WATER)) && ((_bellyMode == MODE_LIGHT_BELLY))))) && (!(isNaN(_local52))))){ y = (y + _local52); } else { bitReset(GROUND); }; } else { bitReset(GROUND); }; }; if (bit(GROUND)){ if (((((bit(ANIMATING)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_ATTACK)))) && ((bellyMode == MODE_HEAVY_BELLY)))){ } else { if (!bit(MOVING)){ speed = (speed - ((Number((1 - FRICTION)) * _arg1.timeSpeed) * speed)); }; }; if (speed < (1 * _arg1.timeSpeed)){ _v.x = 0; _v.y = 0; }; }; if (vX > MAX_HORIZONTAL_VELOCITY){ vX = MAX_HORIZONTAL_VELOCITY; } else { if (vX < -(MAX_HORIZONTAL_VELOCITY)){ vX = -(MAX_HORIZONTAL_VELOCITY); }; }; if (vY > TERMINAL_VELOCITY){ vY = TERMINAL_VELOCITY; } else { if (vY < -(TERMINAL_VELOCITY)){ vY = -(TERMINAL_VELOCITY); }; }; if (_health <= 0){ animate(ANIM_DAMAGE); } else { if (_recoveryTimer >= 0){ } else { if (bit(BOUNCING)){ animate(ANIM_BOUNCE); } else { if (bit(CRUSHING)){ animate(ANIM_CRUSH); } else { if (bit(ANIMATING)){ if ((((_currentAnimation == (ANIM_ATTACK + (MODE_NORMAL * ANIMATIONS_PER_MODE)))) && (bit(GROUND)))){ }; if ((((((bellyMode == MODE_NORMAL)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_THROW)))) && ((clip.currentFrame == (_animations[(_currentAnimation * 2)] + 2))))){ shootApple(_arg1); }; if (bit(FLOATING)){ vX = 0; vY = 0; }; if (clip.currentFrame >= _animations[((_currentAnimation * 2) + 1)]){ if (bit(FLOATING)){ vY = -(FLOAT_SPEED); animate(ANIM_FLOAT); }; if (bit(CHANGING)){ if ((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_END){ _bellyMode = _nextBellyMode; animate(ANIM_START, false); playSound(TRANSFORM_SOUND, false); } else { if (((((((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_START)) || ((((_bellyMode == MODE_BELLY_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_FROM_DRAGON)))))) || ((((_bellyMode == MODE_DRAGON)) && ((_currentAnimation == (ANIM_TO_DRAGON + (ANIMATIONS_PER_MODE * MODE_BELLY_DRAGON)))))))){ bitReset(CHANGING); bitReset(ANIMATING); bitReset(DISABLED); dispatchEvent(new Event(CHANGE_MODE)); animate(ANIM_STAND); }; }; } else { if ((((bellyMode == MODE_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_START_FIRE)))){ animate(ANIM_FIRE); bitReset(ANIMATING); } else { bitReset(ANIMATING); bitReset(DISABLED); bitReset(JUMP_ONLY); bitReset(ATTACKING); _attackMode = NO_ATTACK; if (!bit(FLOATING)){ if (bit(GROUND)){ animate(ANIM_STAND); } else { animate(ANIM_FALL); }; }; }; }; }; } else { if (bit(ATTACKING)){ if ((((bellyMode == MODE_DRAGON)) && (((_currentAnimation % ANIMATIONS_PER_MODE) == ANIM_FIRE)))){ if (_controller.down(Controller.BUTTON_LEFT)){ clip.scaleX = -1; } else { if (_controller.down(Controller.BUTTON_RIGHT)){ clip.scaleX = 1; }; }; shootFireBall(_arg1); }; if ((((bellyMode == MODE_DRAGON)) && (bit(FLYING)))){ shootFireBall(_arg1); }; } else { if (bit(FLOATING)){ animate(ANIM_FLOAT); } else { if (bit(FLYING)){ animate(ANIM_FLY); } else { if (!bit(GROUND)){ if ((((vY < 0)) || (bit(WATER)))){ if ((((_bellyMode == MODE_BELLY_DRAGON)) && ((Math.abs(vX) > WALK_SPEED)))){ animate(ANIM_RUN); _attackMode = SIDE_ATTACK; } else { animate(ANIM_JUMP, false); }; } else { if ((((_bellyMode == MODE_BELLY_DRAGON)) && ((Math.abs(vX) > WALK_SPEED)))){ animate(ANIM_RUN); _attackMode = SIDE_ATTACK; } else { animate(ANIM_FALL, false); }; }; } else { if (vX > 0){ clip.scaleX = 1; } else { if (vX < 0){ clip.scaleX = -1; }; }; if (Math.abs(vX) > WALK_SPEED){ animate(ANIM_RUN); if (!_currentSound){ playSound(RUN_SOUND); }; if (_bellyMode == MODE_BELLY_DRAGON){ _attackMode = SIDE_ATTACK; } else { _attackMode = NO_ATTACK; }; } else { if (Math.abs(vX) > Geometry.TOLERANCE){ animate(ANIM_WALK); _attackMode = NO_ATTACK; } else { animate(ANIM_STAND); _attackMode = NO_ATTACK; }; }; }; }; }; }; }; }; }; }; }; if (_glow > -1){ if (_glow >= MID_GLOW){ _local53 = (1 - (Number((MID_GLOW - _glow)) / Number((MID_GLOW - MAX_GLOW)))); } else { _local53 = (1 - (Number((MID_GLOW - _glow)) / Number(MID_GLOW))); }; _local54 = new ColorTransform(1, 1, 1, 1, (_local53 * 0xFF), (_local53 * 0xFF), (_local53 * 0xFF), 0); clip.transform.colorTransform = _local54; _glow = (_glow - _arg1.timeSpeed); if (_glow <= -1){ _glow = -1; clip.transform.colorTransform = new ColorTransform(); }; }; if (((bit(FLYING)) && ((_flyTimer > -1)))){ vY = Math.min(vY, -(FLY_SPEED)); _flyTimer = (_flyTimer - _arg1.timeSpeed); if (_flyTimer < 0){ bitReset(FLYING); animate(ANIM_FALL); bitReset(ATTACKING); _flyTimer = -1; }; }; if (_invincibleTimer >= 0){ _local54 = _clip.transform.colorTransform; _clip.transform.colorTransform.redOffset = (_clip.transform.colorTransform.greenOffset = (_local54.blueOffset = (Number(((Math.cos((_invincibleTimer * 2)) * 0.5) + 0.5)) * 68))); _clip.transform.colorTransform = _local54; _invincibleTimer = (_invincibleTimer - _arg1.timeSpeed); if (_invincibleTimer < 0){ _invincibleTimer = -1; bitReset(INVINCIBLE); _clip.transform.colorTransform = new ColorTransform(); }; }; if (_recoveryTimer >= 0){ _recoveryTimer = (_recoveryTimer - _arg1.timeSpeed); if (_recoveryTimer < 0){ _recoveryTimer = -1; bitReset(DISABLED); _clip.transform.colorTransform = new ColorTransform(); }; }; if (_appleTimer > 0){ _appleTimer = (_appleTimer - _arg1.timeSpeed); if (_appleTimer < 0){ _appleTimer = 0; }; }; if (y > (Number((_arg1.maxY + 2)) * Tile.TILE_SIZE)){ bitReset(INVINCIBLE); vY = -(DAMAGE_SPEED); damage(true); }; updateFrame(); _time = (_time + _arg1.timeSpeed); if (RECORD){ trace((((((((((RECORD_NAME + ".push({x:") + int((x + RECORD_X_OFFSET)).toString()) + ",y:") + int((y + RECORD_Y_OFFSET)).toString()) + ",frame:") + _clip.currentFrame) + ",scaleX:") + _clip.scaleX) + "});")); }; if (_soundQueue.length){ playSound((_soundQueue.shift() as int), false); }; super.behaviour(_arg1); } public function set health(_arg1:int){ _health = _arg1; } public function set maxHealth(_arg1:int){ _maxHealth = _arg1; } function stopSound(){ if (_currentSound){ _currentSoundID = -1; _currentSound.stop(); _currentSound.removeEventListener(Event.SOUND_COMPLETE, soundComplete); _currentSound = null; }; } override public function getPoints(_arg1:Number):Array{ return (Geometry.getOuterPoints(getStaticPoints().concat(getAttackPoints()))); } override public function animate(_arg1:int, _arg2:Boolean=true){ super.animate((_arg1 + (bellyMode * ANIMATIONS_PER_MODE))); if (_arg2){ bitReset(NO_REPEAT); } else { bitSet(NO_REPEAT); }; } function soundComplete(_arg1:Event){ stopSound(); } public function removeFireBall(){ _fireballCount--; } override public function destroy(){ super.destroy(); if (_currentSound){ _currentSound.stop(); _currentSound.removeEventListener(Event.SOUND_COMPLETE, soundComplete); _currentSound = null; }; if (_controller){ _controller.removeEventListener(ButtonEvent.BUTTON_DOWN, buttonDown); _controller.removeEventListener(ButtonEvent.BUTTON_UP, buttonUp); _controller.destroy(); _controller = null; }; } public function quickChange(_arg1:int):Boolean{ if (!(bit(GROUND) | bit(WATER))){ return (false); }; if ((((_arg1 >= modesUnlocked)) || ((_arg1 == _bellyMode)))){ return (false); }; _bellyMode = _arg1; bitReset(CHANGING); bitReset(ANIMATING); bitReset(DISABLED); animate(ANIM_STAND); _glow = MAX_GLOW; makeSparkles(); dispatchEvent(new Event(CHANGE_MODE)); return (true); } } }//package amber3Section 2//AmberSound (amber3.AmberSound) package amber3 { import flash.media.*; import flash.events.*; import flash.utils.*; public class AmberSound { private var _channel:SoundChannel; private var _repeat:Boolean; private var _sound:Sound; private var _pauseTime:int; private var _repeatTime:int; private var _transform:SoundTransform; public function AmberSound(){ _sound = null; _channel = null; _transform = new SoundTransform(); _pauseTime = 0; _repeat = true; _repeatTime = 0; } public function stop(){ if (_channel){ _pauseTime = 0; _channel.stop(); _channel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); _channel = null; }; } public function get repeatTime():int{ return (_repeatTime); } public function get soundTransform():SoundTransform{ var _local1:SoundTransform; _local1 = new SoundTransform(); _local1.leftToLeft = _transform.leftToLeft; _local1.leftToRight = _transform.leftToRight; _local1.pan = _transform.pan; _local1.rightToLeft = _transform.rightToLeft; _local1.rightToRight = _transform.rightToRight; _local1.volume = _transform.volume; return (_local1); } public function set repeatTime(_arg1:int){ _repeatTime = _arg1; } public function load(_arg1:String):Boolean{ var soundClass:Class; var str = _arg1; stop(); try { soundClass = (getDefinitionByName(str) as Class); if (!soundClass){ return (false); }; _sound = new (soundClass); } catch(E:Error) { unload(); return (false); }; return (true); } private function soundComplete(_arg1:Event){ _pauseTime = 0; _channel.stop(); _channel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); _channel = null; if (_repeat){ _channel = _sound.play(_repeatTime, 0, _transform); _channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true); }; } public function get playing():Boolean{ return (!((_channel == null))); } public function pause(){ if (_channel){ _pauseTime = _channel.position; _channel.stop(); _channel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); _channel = null; }; } public function set soundTransform(_arg1:SoundTransform){ _transform.leftToLeft = _arg1.leftToLeft; _transform.leftToRight = _arg1.leftToRight; _transform.pan = _arg1.pan; _transform.rightToLeft = _arg1.rightToLeft; _transform.rightToRight = _arg1.rightToRight; _transform.volume = _arg1.volume; _channel.soundTransform = _transform; } public function play(_arg1:Boolean=true, _arg2:Boolean=true):Boolean{ if (!_sound){ return (false); }; _repeat = _arg1; if (((!((_channel == null))) && (!(_arg2)))){ return (true); }; stop(); _channel = _sound.play(_pauseTime, 0, _transform); _channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true); return (true); } public function unload(){ stop(); _sound = null; _pauseTime = (_repeatTime = 0); } } }//package amber3Section 3//Block (amber3.Block) package amber3 { import flash.events.*; import flash.display.*; import flash.geom.*; public class Block extends Static { private var _subtype:int; private var _neighbors:Array; public static const PLANT_BLOCK:int = 2; public static const TOP:int = 0; public static const LEFT:int = 3; public static const THIN_BLOCK:int = 3; public static const CONTAINER_BLOCK:int = 7; public static const SPIKE_BLOCK:int = 6; public static const MESSAGE_BLOCK:int = 5; public static const BOSS_BLOCK:int = 8; public static const FIRE_BLOCK:int = 4; public static const DEFAULT_COLOR:Array = [8930321, 0x666666, 0x339900, 0xCCCCCC, 0xFF6600, 0xFF00FF, 14540287, 14527078]; public static const BOTTOM:int = 2; public static const GROUND_BLOCK:int = 0; public static const RIGHT:int = 1; public static const WALL_BLOCK:int = 1; public function Block(_arg1:int, _arg2:int, _arg3:int, _arg4:BitmapData=null, _arg5:int=-1){ var _local6:Bitmap; super(_arg1, _arg2, _arg4, _arg5); _neighbors = [null, null, null, null]; _type = "block"; _subtype = _arg3; if (_clip.numChildren){ _local6 = (_clip.getChildAt(0) as Bitmap); (_clip.getChildAt(0) as Bitmap).width = (_local6.height = Tile.TILE_HALF); } else { _clip.graphics.beginFill(DEFAULT_COLOR[subtype]); _clip.graphics.drawRect(0, 0, Tile.TILE_HALF, Tile.TILE_HALF); }; } public function get subtype():int{ return (_subtype); } override public function getPoints(_arg1:Number):Array{ return ([new Point(_p.x, _p.y), new Point((_p.x + Tile.TILE_HALF), _p.y), new Point((_p.x + Tile.TILE_HALF), (_p.y + Tile.TILE_HALF)), new Point(_p.x, (_p.y + Tile.TILE_HALF))]); } public function smash(_arg1:World){ var i:int; var bmpData:BitmapData; var mat:Matrix; var corner1:MovieClip; var corner2:MovieClip; var corner3:MovieClip; var corner4:MovieClip; var cen:Point; var fallTime:int; var fall:Function; var world = _arg1; i = 0; while (i < 4) { if (_neighbors[i]){ _neighbors[i].setNeighbor(((i + 2) % 4), null); _neighbors[i] = null; }; i = (i + 1); }; bmpData = world.getBitmapByID(_bitmapID); corner1 = new MovieClip(); corner2 = new MovieClip(); corner3 = new MovieClip(); corner4 = new MovieClip(); cen = new Point((_p.x + (Tile.TILE_SIZE * 0.125)), (_p.y + (Tile.TILE_SIZE * 0.125))); fallTime = 20; fall = function (_arg1:Event){ var _local2:MovieClip; _local2 = MovieClip(_arg1.currentTarget); _local2.x = (_local2.x + _local2.vX); _local2.y = (_local2.y + _local2.vY); _local2.vY = (_local2.vY + 2); _local2.timer--; if (_local2.timer <= 0){ _local2.removeEventListener("enterFrame", _local2.fun); if (_local2.parent){ _local2.parent.removeChild(_local2); }; }; }; if (((!(clip.parent)) || (!(bmpData)))){ world.removeSprite(this); return; }; mat = new Matrix(); mat.scale(((Tile.TILE_SIZE * 0.5) / bmpData.width), ((Tile.TILE_SIZE * 0.5) / bmpData.height)); corner1.graphics.beginBitmapFill(bmpData, mat, false, false); corner1.graphics.drawRect(0, 0, (Tile.TILE_SIZE * 0.25), (Tile.TILE_SIZE * 0.25)); corner1.graphics.endFill(); corner1.x = _p.x; corner1.y = _p.y; corner1.vX = (corner1.x - cen.x); corner1.vY = (corner1.y - cen.y); corner1.timer = fallTime; corner1.fun = fall; corner1.addEventListener("enterFrame", fall, false, 0, true); clip.parent.addChild(corner1); mat = new Matrix(); mat.scale(((Tile.TILE_SIZE * 0.5) / bmpData.width), ((Tile.TILE_SIZE * 0.5) / bmpData.height)); mat.translate((-(Tile.TILE_SIZE) * 0.25), 0); corner2.graphics.beginBitmapFill(bmpData, mat, false, false); corner2.graphics.drawRect(0, 0, (Tile.TILE_SIZE * 0.25), (Tile.TILE_SIZE * 0.25)); corner2.graphics.endFill(); corner2.x = (_p.x + (Tile.TILE_SIZE * 0.25)); corner2.y = _p.y; corner2.vX = (corner2.x - cen.x); corner2.vY = (corner2.y - cen.y); corner2.timer = fallTime; corner2.fun = fall; corner2.addEventListener("enterFrame", fall, false, 0, true); clip.parent.addChild(corner2); mat = new Matrix(); mat.scale(((Tile.TILE_SIZE * 0.5) / bmpData.width), ((Tile.TILE_SIZE * 0.5) / bmpData.height)); mat.translate((-(Tile.TILE_SIZE) * 0.25), (-(Tile.TILE_SIZE) * 0.25)); corner3.graphics.beginBitmapFill(bmpData, mat, false, false); corner3.graphics.drawRect(0, 0, (Tile.TILE_SIZE * 0.25), (Tile.TILE_SIZE * 0.25)); corner3.graphics.endFill(); corner3.x = (_p.x + (Tile.TILE_SIZE * 0.25)); corner3.y = (_p.y + (Tile.TILE_SIZE * 0.25)); corner3.vX = (corner3.x - cen.x); corner3.vY = (corner3.y - cen.y); corner3.timer = fallTime; corner3.fun = fall; corner3.addEventListener("enterFrame", fall, false, 0, true); clip.parent.addChild(corner3); mat = new Matrix(); mat.scale(((Tile.TILE_SIZE * 0.5) / bmpData.width), ((Tile.TILE_SIZE * 0.5) / bmpData.height)); mat.translate(0, (-(Tile.TILE_SIZE) * 0.25)); corner4.graphics.beginBitmapFill(bmpData, mat, false, false); corner4.graphics.drawRect(0, 0, (Tile.TILE_SIZE * 0.25), (Tile.TILE_SIZE * 0.25)); corner4.graphics.endFill(); corner4.x = _p.x; corner4.y = (_p.y + (Tile.TILE_SIZE * 0.25)); corner4.vX = (corner4.x - cen.x); corner4.vY = (corner4.y - cen.y); corner4.timer = fallTime; corner4.fun = fall; corner4.addEventListener("enterFrame", fall, false, 0, true); clip.parent.addChild(corner4); world.removeSprite(this); } public function getNeighbor(_arg1:int):Block{ if ((((_arg1 < 0)) || ((_arg1 >= 4)))){ return (null); }; return (_neighbors[_arg1]); } public function setNeighbor(_arg1:int, _arg2:Block){ if ((((_arg1 < 0)) || ((_arg1 >= 4)))){ return; }; _neighbors[_arg1] = _arg2; } override public function redraw(_arg1:World){ var _local2:Bitmap; super.redraw(_arg1); if (_clip.numChildren){ _clip.graphics.clear(); _local2 = (_clip.getChildAt(0) as Bitmap); _local2.width = (_local2.height = Tile.TILE_HALF); } else { _clip.graphics.clear(); _clip.graphics.beginFill(DEFAULT_COLOR[subtype]); _clip.graphics.drawRect(0, 0, Tile.TILE_HALF, Tile.TILE_HALF); }; } } }//package amber3Section 4//ButtonEvent (amber3.ButtonEvent) package amber3 { import flash.events.*; public class ButtonEvent extends Event { private var _button:int; public static const BUTTON_UP:String = "buttonUp"; public static const BUTTON_DOWN:String = "buttonDown"; public function ButtonEvent(_arg1:String, _arg2:int){ super(_arg1); _button = _arg2; } public function get button():int{ return (_button); } } }//package amber3Section 5//Character (amber3.Character) package amber3 { import flash.display.*; import flash.geom.*; public class Character extends GameSprite { protected var _animations:Array; protected var _state:int; protected var _time:Number; protected var _currentAnimation:int; protected var _record:Array; protected var _recording:Boolean; protected var _v:Point; public static const BLOCK_MARGIN:Number = 1; public static const TERMINAL_VELOCITY:int = 40; public static const LEFT_GROUND_POINT:int = 3; public static const LEFT_HEAD_POINT:int = 2; public static const SURFACE_DEPTH:Number = 0.99; public static const RIGHT_HEAD_POINT:int = 4; public static const HEAD_POINT:int = 0; public static const RIGHT_GROUND_POINT:int = 5; public static const GROUND_POINT:int = 1; public function Character(_arg1:int, _arg2:int, _arg3:Class){ super(_arg1, _arg2); _type = "character"; _clip = new (_arg3); _clip.stop(); _clip.x = x; _clip.y = y; _animations = [1, 1]; _currentAnimation = 0; _time = 0; _v = new Point(); if (clip.hitbox){ clip.hitbox.visible = false; }; _recording = false; _record = []; } public function get recording():Boolean{ return (_recording); } public function set recording(_arg1:Boolean){ _recording = _arg1; } public function set direction(_arg1:Number){ var _local2:Number; _local2 = speed; _v.x = (Math.cos(_arg1) * _local2); _v.y = (Math.sin(_arg1) * _local2); } public function get currentAnimation():int{ return (_currentAnimation); } public function get currentFrame():int{ return (_clip.currentFrame); } public function bit(_arg1:int):int{ return ((_state & int((1 << _arg1)))); } protected function correct(_arg1:World, _arg2:Point):Array{ var _local3:Point; var _local4:Boolean; var _local5:Array; var _local6:int; var _local7:Point; var _local8:int; var _local9:Point; var _local10:Point; var _local11:Number; var _local12:Number; var _local13:Point; var _local14:Point; var _local15:Array; var _local16:Array; var _local17:Array; _local3 = _p.clone(); _local4 = true; _local5 = []; _local6 = 32; _arg2.x = _p.x; _arg2.y = _p.y; _local15 = []; while (((_local4) && ((_local6 > 0)))) { _local16 = getStaticPoints(); _local17 = _arg1.hitSurfaces(_local16); _local4 = false; _local7 = _local16[LEFT_HEAD_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, 0) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - (SURFACE_DEPTH * 0))); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; if (_local4){ _local6--; } else { _local7 = _local16[LEFT_GROUND_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, 0) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - (SURFACE_DEPTH * 0))); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; if (_local4){ _local6--; } else { _local7 = _local16[RIGHT_HEAD_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, Math.PI) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - (SURFACE_DEPTH * 0))); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; if (_local4){ _local6--; } else { _local7 = _local16[RIGHT_GROUND_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, Math.PI) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - (SURFACE_DEPTH * 0))); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; if (_local4){ _local6--; } else { _local7 = _local16[HEAD_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, (Math.PI * 0.5)) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - (SURFACE_DEPTH * 0))); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; if (_local4){ _local6--; } else { _local7 = _local16[GROUND_POINT]; _local8 = 0; while (_local8 < _local17.length) { _local9 = _local17[_local8]; _local10 = _local17[(_local8 + 1)]; _local11 = Math.atan2((_local10.y - _local9.y), (_local10.x - _local9.x)); _local12 = (_local11 - (Math.PI * 0.5)); if (Geometry.angularDistance(_local12, (-(Math.PI) * 0.5)) >= 0.01){ _local14 = movePointUnder(_local7, _local9, _local10, _local15); if (_local14 != null){ _local13 = _local14.subtract(_local7); _local13.normalize((Point.distance(_local14, _local7) - SURFACE_DEPTH)); _p.x = (_p.x + _local13.x); _p.y = (_p.y + _local13.y); _local4 = true; insertSurface(_local15, _local9, _local10); break; }; }; _local8 = (_local8 + 2); }; _local6--; }; }; }; }; }; }; _arg2.x = _p.x; _arg2.y = _p.y; _p.x = _local3.x; _p.y = _local3.y; return (_local15); } public function set speed(_arg1:Number){ var _local2:Number; _local2 = direction; _v.x = (Math.cos(_local2) * _arg1); _v.y = (Math.sin(_local2) * _arg1); } public function get vX():Number{ return (_v.x); } public function get vY():Number{ return (_v.y); } protected function updateFrame(){ _clip.gotoAndStop((_animations[(_currentAnimation * 2)] + (Math.floor(_time) % ((_animations[((_currentAnimation * 2) + 1)] - _animations[(_currentAnimation * 2)]) + 1)))); } public function bitSet(_arg1:int){ _state = (_state | int((1 << _arg1))); } public function getBox():Array{ var _local1:MovieClip; var _local2:Rectangle; var _local3:Number; var _local4:Number; _local1 = _clip.hitbox; if (_local1 == null){ throw ("Error in Character::getStaticPoints(). Property 'hitbox' not found in Character::clip"); }; _local2 = _local1.getRect(clip); _local3 = ((_local2.x * clip.scaleX) + x); _local4 = (_local2.y + y); return ([new Point(_local3, _local4), new Point((_local3 + _local2.width), _local4), new Point((_local3 + _local2.width), (_local4 + _local2.height)), new Point(_local3, (_local4 + _local2.height))]); } public function behaviour(_arg1:World){ if (_recording){ _record[_record.length] = uint(x); _record[_record.length] = uint(y); _record[_record.length] = uint(_clip.currentFrame); }; } public function bitReset(_arg1:int){ _state = (_state & ~(int((1 << _arg1)))); } public function set vX(_arg1:Number){ _v.x = _arg1; } public function set vY(_arg1:Number){ _v.y = _arg1; if (_v.y > TERMINAL_VELOCITY){ _v.y = TERMINAL_VELOCITY; }; } public function hitBlock(_arg1:Block, _arg2:World, _arg3:Number=-1, _arg4:Number=-1):Array{ var _local5:Array; var _local6:Array; var _local7:Boolean; var _local8:Boolean; var _local9:Boolean; var _local10:Boolean; var _local11:Number; var _local12:Number; var _local13:Point; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:int; var _local25:Array; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; _local5 = _arg1.getPoints(_arg2.timeSpeed); _local6 = getStaticPoints(); if (_local6[HEAD_POINT].y > _local5[2].y){ return ([]); }; if (_local6[GROUND_POINT].y < _local5[0].y){ return ([]); }; if (_local6[LEFT_HEAD_POINT].x > _local5[2].x){ return ([]); }; if (_local6[RIGHT_GROUND_POINT].x < _local5[0].x){ return ([]); }; _local7 = !((_arg1.getNeighbor(Block.TOP) == null)); _local8 = !((_arg1.getNeighbor(Block.BOTTOM) == null)); _local9 = !((_arg1.getNeighbor(Block.LEFT) == null)); _local10 = !((_arg1.getNeighbor(Block.RIGHT) == null)); _local11 = (_p.x - _arg3); _local12 = (_p.y - _arg4); if (_arg3 == -1){ _local11 = (vX * _arg2.timeSpeed); _local12 = (vY * _arg2.timeSpeed); }; if (_local6[GROUND_POINT].y <= (_local5[0].y + BLOCK_MARGIN)){ if (_local7){ return ([]); }; _local26 = Math.min(((_local5[0].y + (BLOCK_MARGIN * 0.5)) - _local6[GROUND_POINT].y), 0); y = (y + _local26); return ([_local5[0], _local5[1]]); }; if (_local6[RIGHT_HEAD_POINT].x <= (_local5[0].x + BLOCK_MARGIN)){ if (_local9){ return ([]); }; _local27 = Math.min(((_local5[0].x + (BLOCK_MARGIN * 0.5)) - _local6[RIGHT_HEAD_POINT].x), 0); x = (x + _local27); return ([_local5[3], _local5[0]]); }; if (_local6[LEFT_HEAD_POINT].x >= (_local5[2].x - BLOCK_MARGIN)){ if (_local10){ return ([]); }; _local27 = Math.max(((_local5[2].x - (BLOCK_MARGIN * 0.5)) - _local6[LEFT_HEAD_POINT].x), 0); x = (x + _local27); return ([_local5[1], _local5[2]]); }; if (_local6[HEAD_POINT].y >= (_local5[2].y - BLOCK_MARGIN)){ if (_local8){ return ([]); }; _local26 = Math.max(((_local5[2].y - (BLOCK_MARGIN * 0.5)) - _local6[HEAD_POINT].y), 0); y = (y + _local26); return ([_local5[2], _local5[3]]); }; if (((((!(_local7)) && ((_local6[GROUND_POINT].y >= (_local5[0].y + BLOCK_MARGIN))))) && (((_local6[GROUND_POINT].y - _local12) <= (_local5[0].y + BLOCK_MARGIN))))){ _local26 = Math.min(((_local5[0].y + 0.5) - _local6[GROUND_POINT].y), 0); y = (y + _local26); return ([_local5[0], _local5[1]]); }; if (((((!(_local9)) && ((_local6[RIGHT_HEAD_POINT].x >= (_local5[0].x + BLOCK_MARGIN))))) && (((_local6[RIGHT_HEAD_POINT].x - _local11) <= (_local5[0].x + BLOCK_MARGIN))))){ _local27 = Math.min(((_local5[0].x + 0.5) - _local6[RIGHT_HEAD_POINT].x), 0); x = (x + _local27); return ([_local5[3], _local5[0]]); }; if (((((!(_local10)) && ((_local6[LEFT_HEAD_POINT].x <= (_local5[2].x - BLOCK_MARGIN))))) && (((_local6[LEFT_HEAD_POINT].x - _local11) >= (_local5[2].x - BLOCK_MARGIN))))){ _local27 = Math.max(((_local5[2].x - (BLOCK_MARGIN * 0.5)) - _local6[LEFT_HEAD_POINT].x), 0); x = (x + _local27); return ([_local5[1], _local5[2]]); }; if (((((!(_local8)) && ((_local6[HEAD_POINT].y <= (_local5[2].y - BLOCK_MARGIN))))) && (((_local6[HEAD_POINT].y - _local12) >= (_local5[2].y - BLOCK_MARGIN))))){ _local26 = Math.max(((_local5[2].y - (BLOCK_MARGIN * 0.5)) - _local6[HEAD_POINT].y), 0); y = (y + _local26); return ([_local5[2], _local5[3]]); }; _local13 = new Point(((_local6[RIGHT_HEAD_POINT].x * 0.5) + (_local6[LEFT_HEAD_POINT].x * 0.5)), ((_local6[GROUND_POINT].y * 0.5) + (_local6[HEAD_POINT].y * 0.5))); _local14 = Point.distance(_local13, new Point(_local5[0].x, ((_local5[0].y * 0.5) + (_local5[2].y * 0.5)))); _local15 = Point.distance(_local13, new Point(_local5[2].x, ((_local5[0].y * 0.5) + (_local5[2].y * 0.5)))); _local16 = Point.distance(_local13, new Point(((_local5[0].x * 0.5) + (_local5[2].x * 0.5)), _local5[0].y)); _local17 = Point.distance(_local13, new Point(((_local5[0].x * 0.5) + (_local5[2].x * 0.5)), _local5[2].y)); _local18 = Math.abs((_local6[RIGHT_HEAD_POINT].x - _local5[0].x)); _local19 = Math.abs((_local5[2].x - _local6[LEFT_HEAD_POINT].x)); _local20 = Math.abs((_local6[GROUND_POINT].y - _local5[0].y)); _local21 = Math.abs((_local5[2].y - _local6[HEAD_POINT].y)); _local22 = Infinity; _local23 = 0; _local24 = -1; if (((((!(_local7)) && ((_local16 >= 0)))) && ((_local22 > _local16)))){ _local22 = _local16; _local23 = _local20; _local24 = 0; }; if (((!(_local9)) && ((_local22 > _local15)))){ _local24 = 1; _local22 = _local15; _local23 = _local19; }; if (((!(_local8)) && ((_local22 > _local17)))){ _local22 = _local17; _local23 = _local21; _local24 = 2; }; if (((!(_local10)) && ((_local22 > _local14)))){ _local22 = _local14; _local23 = _local18; _local24 = 3; }; if (_local24 > -1){ _local25 = [_local5[_local24], _local5[(int((_local24 + 1)) % _local5.length)]]; _local28 = Math.max((_local23 - 0.5), 0); _local29 = ((_local25[0].x)==_local25[1].x) ? ((_local25[0].y)<_local25[1].y) ? 1 : -1 : 0; _local30 = ((_local25[0].y)==_local25[1].y) ? ((_local25[0].x)<_local25[1].x) ? -1 : 1 : 0; x = (x + (_local29 * _local28)); y = (y + (_local30 * _local28)); return (_local25); //unresolved jump }; return ([]); } public function getDynamicPoints(_arg1:Point):Array{ if (speed <= 0.01){ return (getStaticPoints()); }; return (Geometry.getOuterPoints(getStaticPoints().concat(Geometry.movePoints(getStaticPoints(), _arg1)))); } public function get speed():Number{ return (Math.sqrt(((_v.x * _v.x) + (_v.y * _v.y)))); } override public function getPoints(_arg1:Number):Array{ return (getStaticPoints()); } override public function getRect():Rectangle{ var _local1:MovieClip; var _local2:Rectangle; _local1 = _clip.hitbox; if (_local1 == null){ throw ("Error in Character::getRect(). Property 'hitbox' not found in Character::clip"); }; _local2 = _local1.getRect(clip); if (clip.scaleX == -1){ _local2.x = (-(_local2.x) - _local2.width); }; _local2.x = (_local2.x + x); _local2.y = (_local2.y + y); return (_local2); } public function animate(_arg1:int, _arg2:Boolean=true){ if (_currentAnimation == _arg1){ return; }; _currentAnimation = _arg1; _time = 0; _clip.gotoAndStop(_animations[(_currentAnimation * 2)]); } public function getStaticPoints():Array{ var _local1:MovieClip; var _local2:Rectangle; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = _clip.hitbox; if (_local1 == null){ throw ("Error in Character::getStaticPoints(). Property 'hitbox' not found in Character::clip"); }; _local2 = _local1.getRect(clip); _local3 = ((_local2.x * clip.scaleX) + x); _local4 = (_local2.y + y); _local5 = Math.min((_local3 + (_local2.width * clip.scaleX)), _local3); _local6 = Math.max((_local3 + (_local2.width * clip.scaleX)), _local3); _local7 = (_local2.height * 0.25); return ([new Point((_local5 + (Number((_local6 - _local5)) * 0.5)), _local4), new Point((_local5 + (Number((_local6 - _local5)) * 0.5)), (_local4 + _local2.height)), new Point(_local5, (_local4 + _local7)), new Point(_local5, ((_local4 + _local2.height) - _local7)), new Point(_local6, (_local4 + _local7)), new Point(_local6, ((_local4 + _local2.height) - _local7))]); } protected function movePointUnder(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Array):Point{ var _local5:Point; if (!Geometry.pointUnderLine(_arg1, _arg2, _arg3)){ return (null); }; _local5 = Geometry.closestPointOnLine(_arg1, _arg2, _arg3); if (!Geometry.point2line(_local5, _arg2, _arg3)){ return (null); }; if ((((((Point.distance(_local5, _arg2) < 0)) || ((Point.distance(_local5, _arg3) < 0)))) || ((Point.distance(_local5, _arg1) <= 0)))){ insertSurface(_arg4, _arg2, _arg3); return (null); }; return (_local5); } public function get base():Point{ var _local1:Point; var _local2:Array; _local2 = getStaticPoints(); _local1 = _local2[GROUND_POINT]; return (_local1); } public function set animations(_arg1:Array){ if (((!(_arg1.length)) || ((_arg1.length % 2)))){ throw ("Error in function set Character::animations(). The Array length must be a multiple of 2 greater than 0."); }; _animations = _arg1.concat(); } public function get animations():Array{ return (_animations); } public function get record():Array{ return (_record); } public function get direction():Number{ return (Math.atan2(_v.y, _v.x)); } private static function insertSurface(_arg1:Array, _arg2:Point, _arg3:Point){ var _local4:int; _local4 = 0; while (_local4 < _arg1.length) { if (((_arg2.equals(_arg1[_local4])) && (_arg3.equals(_arg1[(_local4 + 1)])))){ return; }; _local4 = (_local4 + 2); }; _arg1.push(_arg2); _arg1.push(_arg3); } } }//package amber3Section 6//CheckPointEvent (amber3.CheckPointEvent) package amber3 { import flash.events.*; public class CheckPointEvent extends Event { private var _x:int; private var _y:int; public function CheckPointEvent(_arg1:String, _arg2:int, _arg3:int){ super(_arg1); _x = _arg2; _y = _arg3; } public function get y():int{ return (_y); } public function get x():int{ return (_x); } } }//package amber3Section 7//Container (amber3.Container) package amber3 { import flash.display.*; public class Container extends Block { private var _numItems:int; public function Container(_arg1:int, _arg2:int, _arg3:uint, _arg4:BitmapData=null, _arg5:int=-1){ super(_arg1, _arg2, Block.CONTAINER_BLOCK, _arg4, _arg5); _numItems = _arg3; } public function get numItems():int{ return (_numItems); } } }//package amber3Section 8//Controller (amber3.Controller) package amber3 { import flash.events.*; import flash.display.*; import flash.ui.*; public class Controller extends EventDispatcher { private var _buttons:Array; protected var _state:Array; protected var _stage:Stage; public static const BUTTON_START:int = 6; public static const NUM_BUTTONS:int = 8; public static const BUTTON_UP:int = 0; public static const BUTTON_RIGHT:int = 3; public static const BUTTON_LEFT:int = 2; public static const BUTTON_DOWN:int = 1; public static const BUTTON_A:int = 4; public static const BUTTON_B:int = 5; public static const BUTTON_C:int = 7; public function Controller(_arg1:Stage){ _state = [false, false, false, false, false, false, false]; _buttons = ["W".charCodeAt(0), "S".charCodeAt(0), "A".charCodeAt(0), "D".charCodeAt(0), "J".charCodeAt(0), "K".charCodeAt(0), Keyboard.SPACE, "L".charCodeAt(0)]; _stage = _arg1; _arg1.addEventListener("keyDown", kDown, false, 0, true); _arg1.addEventListener("keyUp", kUp, false, 0, true); } public function set keyconfig(_arg1:Array){ var _local2:int; _local2 = 0; while (_local2 < NUM_BUTTONS) { _buttons[_local2] = _arg1[_local2]; _local2++; }; } public function get binaryState():int{ var _local1:int; var _local2:int; _local2 = 0; _local1 = 0; while (_local1 < NUM_BUTTONS) { if (_state[_local1]){ _local2 = (_local2 | (1 << _local1)); }; _local1++; }; return (_local2); } public function get state():Array{ return (_state.concat()); } public function down(_arg1:int):Boolean{ return (_state[_arg1]); } protected function kUp(_arg1:KeyboardEvent){ var _local2:int; _local2 = 0; while (_local2 < NUM_BUTTONS) { if (_arg1.keyCode == _buttons[_local2]){ if (_state[_local2]){ _state[_local2] = false; dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_UP, _local2)); }; }; _local2++; }; } protected function kDown(_arg1:KeyboardEvent){ var _local2:int; _local2 = 0; while (_local2 < NUM_BUTTONS) { if (_arg1.keyCode == _buttons[_local2]){ if (!_state[_local2]){ _state[_local2] = true; dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_DOWN, _local2)); }; }; _local2++; }; } public function destroy(){ _stage.removeEventListener("keyDown", kDown); _stage.removeEventListener("keyUp", kUp); } } }//package amber3Section 9//Enemy (amber3.Enemy) package amber3 { import flash.display.*; import flash.geom.*; public class Enemy extends Character { protected var _attackResistant:Boolean; protected var _noRepeat:Boolean; protected var _fireResistant:Boolean; protected var _jumpResistant:Boolean; protected var _boss:Boolean; protected var _maxHealth:int; protected var _name:String; protected var _health:int; protected var _mode:int; protected var _clipID:int; protected var _ignoreAttack:Boolean; protected var _solid:Boolean; protected var _attackClip2:MovieClip; protected var _invincible:Boolean; protected var _ignoreJump:Boolean; protected var _id:int; protected var _ignoreFire:Boolean; protected var _attackClip1:MovieClip; protected var _jumpClip2:MovieClip; protected var _jumpClip1:MovieClip; protected var _amber:Amber; public static const GROUND:int = 0; public static const ONEWAY:int = 2; public static const SPIKE_SCALE:Number = 0.8; public static const MAX_SPIKE_WIDTH:Number = 30; public static const SPIKE_THICKNESS:Number = 1.4; public static const RIGHT:int = 1; public function Enemy(_arg1:int, _arg2:int, _arg3:Class, _arg4:int, _arg5:int){ super(_arg1, _arg2, _arg3); _type = "enemy"; _name = "Enemy"; _mode = 0; _health = (_maxHealth = 1); _boss = false; _id = _arg4; _clipID = _arg5; _noRepeat = false; _amber = null; _solid = true; _fireResistant = (_attackResistant = (_jumpResistant = false)); _ignoreFire = (_ignoreJump = (_ignoreAttack = false)); _attackClip1 = new MovieClip(); _attackClip1.graphics.beginFill(0x888888); drawSpikeShield(_attackClip1.graphics, 1); _attackClip1.graphics.endFill(); _attackClip1.visible = false; clip.addChild(_attackClip1); _attackClip2 = new MovieClip(); _attackClip2.graphics.beginFill(0x888888); drawSpikeShield(_attackClip2.graphics, 1); _attackClip2.graphics.endFill(); _attackClip2.rotation = 180; _attackClip2.visible = false; clip.addChild(_attackClip2); _jumpClip1 = new MovieClip(); _jumpClip1.graphics.beginFill(0x888888); drawSpikeShield(_jumpClip1.graphics, 1); _jumpClip1.graphics.endFill(); _jumpClip1.rotation = -90; _jumpClip1.visible = false; clip.addChild(_jumpClip1); _jumpClip2 = new MovieClip(); _jumpClip2.graphics.beginFill(0x888888); drawSpikeShield(_jumpClip2.graphics, 1); _jumpClip2.graphics.endFill(); _jumpClip2.rotation = 90; _jumpClip2.visible = false; clip.addChild(_jumpClip2); _invincible = false; } public function hurt():Boolean{ return (false); } public function get invincible():Boolean{ return (_invincible); } public function updateColor(){ var _local1:int; var _local2:Number; var _local3:ColorTransform; _local1 = 0xFF; _local2 = (((_fireResistant) && (!(_ignoreFire)))) ? _local1 : 0; _local3 = new ColorTransform(); _local3.redOffset = _local2; if (_local2){ _local3.blueMultiplier = 0.75; _local3.greenMultiplier = 0.75; }; clip.transform.colorTransform = _local3; updateSpikes(); } public function get id():int{ return (_id); } public function get fireResistant():Boolean{ return (_fireResistant); } override protected function updateFrame(){ var _local1:int; var _local2:int; _local1 = Math.floor(_time); _local2 = ((_animations[((_currentAnimation * 2) + 1)] - _animations[(_currentAnimation * 2)]) + 1); if (_noRepeat){ _local1 = Math.min(_local1, (_local2 - 1)); } else { _local1 = (_local1 % _local2); }; _clip.gotoAndStop((_animations[(_currentAnimation * 2)] + _local1)); updateSpikes(); } public function get jumpResistant():Boolean{ return (_jumpResistant); } public function set fireResistant(_arg1:Boolean){ if (_ignoreFire){ return; }; _fireResistant = _arg1; updateColor(); } public function get attackResistant():Boolean{ return (_attackResistant); } function updateSpikes(){ var _local1:Rectangle; _local1 = clip.hitbox.getRect(clip); _attackClip1.y = (_attackClip2.y = (_local1.y + (_local1.height * 0.5))); _attackClip1.x = (_local1.x + _local1.width); _attackClip2.x = _local1.x; _attackClip1.scaleX = (_attackClip1.scaleY = (_local1.height * SPIKE_SCALE)); _attackClip2.scaleX = (_attackClip2.scaleY = _attackClip1.scaleY); _attackClip2.scaleX = (_attackClip1.scaleX = Math.min(_attackClip1.scaleX, MAX_SPIKE_WIDTH)); _jumpClip1.x = (_jumpClip2.x = (_local1.x + (_local1.width * 0.5))); _jumpClip1.y = _local1.y; _jumpClip2.y = (_local1.y + _local1.height); _jumpClip1.scaleX = (_jumpClip1.scaleY = (_local1.width * SPIKE_SCALE)); _jumpClip2.scaleX = (_jumpClip2.scaleY = _jumpClip1.scaleY); _jumpClip2.scaleX = (_jumpClip1.scaleX = Math.min(_jumpClip1.scaleX, MAX_SPIKE_WIDTH)); } public function get health():int{ return (_health); } public function get dangerous():Boolean{ return ((_health > 0)); } protected function physics(_arg1:World):Array{ var _local2:Point; var _local3:Array; var _local4:Array; var _local5:Array; var _local6:int; var _local7:Point; var _local8:Array; var _local9:GameSprite; var _local10:OneWayWall; var _local11:Array; var _local12:Array; var _local13:int; var _local14:Point; var _local15:Point; var _local16:Number; var _local17:Number; if (bit(ONEWAY)){ if (bit(RIGHT)){ vX = Math.max(vX, 0); } else { vX = Math.min(vX, 0); }; }; _local2 = _v.clone(); _local2.x = (_local2.x * _arg1.timeSpeed); _local2.y = (_local2.y * _arg1.timeSpeed); x = (x + _local2.x); y = (y + _local2.y); _local3 = _arg1.hitSprites(this); _local4 = []; bitReset(ONEWAY); _local6 = 0; while (_local6 < _local3.length) { _local9 = _local3[_local6]; _local5 = []; switch (_local9.type){ case "block": _local5 = hitBlock((_local9 as Block), _arg1); _local4 = _local4.concat(_local5); break; case "oneway": _local10 = (_local9 as OneWayWall); _local11 = getStaticPoints(); _local12 = _local10.getPoints(_arg1.timeSpeed); if (_local11[HEAD_POINT].y > _local12[2].y){ break; }; if (_local11[GROUND_POINT].y < _local12[0].y){ break; }; if (_local11[LEFT_HEAD_POINT].x > _local12[2].x){ break; }; if (_local11[RIGHT_GROUND_POINT].x < _local12[0].x){ break; }; if (_local10.direction > 0){ bitSet(RIGHT); if (_local11[HEAD_POINT].x >= (_local10.x + Tile.TILE_HALF)){ _local4.push(new Point((_local10.x + Tile.TILE_HALF), _local10.y)); _local4.push(new Point((_local10.x + Tile.TILE_HALF), (_local10.y + Tile.TILE_HALF))); }; } else { bitReset(RIGHT); if (_local11[HEAD_POINT].x <= _local10.x){ _local4.push(new Point(_local10.x, (_local10.y + Tile.TILE_HALF))); _local4.push(new Point(_local10.x, _local10.y)); }; }; bitSet(ONEWAY); break; }; _local6++; }; _local7 = _p.clone(); _local8 = correct(_arg1, _local7); x = _local7.x; y = _local7.y; _local8 = _local8.concat(_local4); if (_local8.length){ bitReset(GROUND); _local13 = 0; while (_local13 < _local8.length) { _local14 = _local8[_local13]; _local15 = _local8[(_local13 + 1)]; _local16 = Math.atan2((_local15.y - _local14.y), (_local15.x - _local14.x)); if ((((Math.cos(_local16) >= (Math.SQRT1_2 - Geometry.TOLERANCE))) && ((base.y <= (Math.max(_local14.y, _local15.y) + 2))))){ bitSet(GROUND); }; _local13 = (_local13 + 2); }; } else { if (bit(GROUND)){ _local2 = _v.clone(); _local2.x = (_local2.x * _arg1.timeSpeed); _local2.y = (_local2.y * _arg1.timeSpeed); _local17 = _arg1.highestSurfaceUnder(getStaticPoints(), _local2); if (!isNaN(_local17)){ y = (y + _local17); } else { bitReset(GROUND); }; } else { bitReset(GROUND); }; }; return (_local8); } public function get clipID():int{ return (_clipID); } public function get boss():Boolean{ return (_boss); } public function revive(){ _health = 1; } public function set jumpResistant(_arg1:Boolean){ if (_ignoreJump){ return; }; _jumpClip1.visible = (_jumpClip2.visible = _arg1); _jumpResistant = _arg1; updateColor(); } public function damage(_arg1:GameSprite, _arg2:World){ if (_health > 0){ _health--; }; } public function get name():String{ return (_name); } public function get solid():Boolean{ return (_solid); } public function set attackResistant(_arg1:Boolean){ if (_ignoreAttack){ return; }; _attackClip1.visible = (_attackClip2.visible = _arg1); _attackResistant = _arg1; updateColor(); } public function set amber(_arg1:Amber){ _amber = _arg1; } override public function animate(_arg1:int, _arg2:Boolean=true){ super.animate(_arg1); _noRepeat = !(_arg2); } public function get maxHealth():int{ return (_maxHealth); } public function get amber():Amber{ return (_amber); } public function activate(_arg1:World=null){ } public static function drawSpikeShield(_arg1:Graphics, _arg2:Number=1){ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Array; var _local16:Array; _local3 = Math.SQRT1_2; _local4 = Math.cos((Math.PI * 0.125)); _local5 = 1; _local6 = Math.SQRT1_2; _local7 = Math.sin((Math.PI * 0.125)); _local8 = 0; _local9 = SPIKE_THICKNESS; _local10 = Math.cos(((Math.PI * 0.25) - (Math.PI * 0.0625))); _local11 = Math.cos((Math.PI * 0.0625)); _local12 = Math.sin(((Math.PI * 0.25) - (Math.PI * 0.0625))); _local13 = Math.sin((Math.PI * 0.0625)); _local14 = (1 - _local4); _local15 = [[(_local6 - _local6), -(_local6)], [((_local4 + (_local4 * _local14)) - _local3), (-(_local7) - (_local7 * _local14))], [(_local5 - _local3), _local8], [((_local4 + (_local4 * _local14)) - _local3), (_local7 + (_local7 * _local14))], [(_local6 - _local6), _local6]]; _local16 = [[(_local6 - _local6), (_local6 * _local9)], [((_local10 + (_local10 * _local14)) - _local3), (_local12 + (_local12 * _local14))], [((_local4 * _local9) - _local3), (_local7 * _local9)], [((_local11 + (_local11 * _local14)) - _local3), (_local13 + (_local13 * _local14))], [((_local5 * _local9) - _local3), (_local8 * _local9)], [((_local11 + (_local11 * _local14)) - _local3), (-(_local13) - (_local13 * _local14))], [((_local4 * _local9) - _local3), (-(_local7) * _local9)], [((_local10 + (_local10 * _local14)) - _local3), (-(_local12) - (_local12 * _local14))], [(_local6 - _local6), (-(_local6) * _local9)]]; _arg1.moveTo((_local15[0][0] * _arg2), (_local15[0][1] * _arg2)); _arg1.curveTo(((_local15[1][0] * _arg2) + _local14), (_local15[1][1] * _arg2), (_local15[2][0] * _arg2), (_local15[2][1] * _arg2)); _arg1.curveTo((_local15[3][0] * _arg2), (_local15[3][1] * _arg2), (_local15[4][0] * _arg2), (_local15[4][1] * _arg2)); _arg1.lineTo((_local16[0][0] * _arg2), (_local16[0][1] * _arg2)); _arg1.curveTo((_local16[1][0] * _arg2), (_local16[1][1] * _arg2), (_local16[2][0] * _arg2), (_local16[2][1] * _arg2)); _arg1.curveTo((_local16[3][0] * _arg2), (_local16[3][1] * _arg2), (_local16[4][0] * _arg2), (_local16[4][1] * _arg2)); _arg1.curveTo((_local16[5][0] * _arg2), (_local16[5][1] * _arg2), (_local16[6][0] * _arg2), (_local16[6][1] * _arg2)); _arg1.curveTo((_local16[7][0] * _arg2), (_local16[7][1] * _arg2), (_local16[8][0] * _arg2), (_local16[8][1] * _arg2)); _arg1.lineTo((_local15[0][0] * _arg2), (_local15[0][1] * _arg2)); } } }//package amber3Section 10//EnemyEvent (amber3.EnemyEvent) package amber3 { import flash.events.*; public class EnemyEvent extends Event { private var _enemy:Enemy; public static const BOSS_VISIBLE:String = "bossVisible"; public static const BOSS_DAMAGED:String = "bossDamaged"; public static const BOSS_DEFEATED:String = "bossDefeated"; public static const ENEMY_KILLED:String = "enemyKilled"; public static const BOSS_ACTIVATED:String = "bossActivated"; public function EnemyEvent(_arg1:String, _arg2:Enemy){ super(_arg1); _enemy = _arg2; } public function get enemy():Enemy{ return (_enemy); } } }//package amber3Section 11//GameSprite (amber3.GameSprite) package amber3 { import flash.events.*; import flash.display.*; import flash.geom.*; public class GameSprite extends EventDispatcher { public var depth:int; public var enabled:Boolean; protected var _tile:Point; protected var _type:String; protected var _clip:MovieClip; protected var _p:Point; public function GameSprite(_arg1:int, _arg2:int){ depth = -1; _type = "gamesprite"; _clip = new MovieClip(); _tile = new Point(); _tile.x = _arg1; _tile.y = _arg2; _p = new Point(); x = (_tile.x * Tile.TILE_HALF); y = (_tile.y * Tile.TILE_HALF); enabled = true; } public function destroy(){ _clip.parent.removeChild(_clip); } public function get clip():MovieClip{ return (_clip); } public function set tX(_arg1:int){ _tile.x = _arg1; } public function set y(_arg1:Number){ _clip.y = (_p.y = _arg1); } public function getPoints(_arg1:Number):Array{ return (null); } public function getRect():Rectangle{ var _local1:MovieClip; var _local2:Rectangle; _local1 = _clip; if (_local1 == null){ throw ("Error in Character::getRect(). Property 'hitbox' not found in Character::clip"); }; _local2 = _local1.getRect(_clip); if (clip.scaleX == -1){ _local2.x = (-(_local2.x) - _local2.width); }; _local2.x = (_local2.x + x); _local2.y = (_local2.y + y); return (_local2); } public function get tX():int{ return (_tile.x); } public function set x(_arg1:Number){ _clip.x = (_p.x = _arg1); } public function set tY(_arg1:int){ _tile.y = _arg1; } public function get x():Number{ return (_p.x); } public function get y():Number{ return (_p.y); } public function get type():String{ return (_type); } public function get tY():int{ return (_tile.y); } public function hitSprite(_arg1:GameSprite, _arg2:Number):Boolean{ return (Geometry.collide(getPoints(_arg2), _arg1.getPoints(_arg2))); } } }//package amber3Section 12//Geometry (amber3.Geometry) package amber3 { import flash.geom.*; public class Geometry { public static const TOLERANCE:Number = 0.01; public static function intersectLines(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Boolean=true):Point{ var _local6:Point; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Boolean; var _local12:Boolean; var _local13:Boolean; var _local14:Boolean; _local6 = new Point(); _local11 = (Math.abs((_arg1.y - _arg2.y)) < TOLERANCE); _local12 = (Math.abs((_arg3.y - _arg4.y)) < TOLERANCE); _local13 = (Math.abs((_arg1.x - _arg2.x)) < TOLERANCE); _local14 = (Math.abs((_arg3.x - _arg4.x)) < TOLERANCE); _local7 = ((_arg2.y - _arg1.y) / (_arg2.x - _arg1.x)); _local9 = (_arg1.y - (_arg1.x * _local7)); _local8 = ((_arg4.y - _arg3.y) / (_arg4.x - _arg3.x)); _local10 = (_arg3.y - (_arg3.x * _local8)); switch (true){ case ((_local11) && (_local12)): if (Math.abs((_arg3.y - _arg1.y)) < TOLERANCE){ _local6 = _arg1.clone(); }; return (null); case ((_local11) && (_local14)): _local6.x = _arg3.x; _local6.y = _arg1.y; break; case ((_local13) && (_local12)): _local6.x = _arg1.x; _local6.y = _arg3.y; break; case ((_local13) && (_local14)): if (Math.abs((_arg3.x - _arg1.x)) < TOLERANCE){ _local6 = _arg1.clone(); }; return (null); case _local13: _local6.x = _arg1.x; _local6.y = ((_local8 * _local6.x) + _local10); break; case _local14: _local6.x = _arg3.x; _local6.y = ((_local7 * _local6.x) + _local9); break; case _local11: _local6.y = _arg1.y; _local6.x = (Number((_local6.y - _local10)) / _local8); break; case _local12: _local6.y = _arg3.y; _local6.x = (Number((_local6.y - _local9)) / _local7); break; default: if ((((Math.abs((_local9 - _local10)) < TOLERANCE)) && ((Math.abs((_local7 - _local8)) < TOLERANCE)))){ return (null); }; _local6.x = (Number((_local10 - _local9)) / Number((_local7 - _local8))); _local6.y = ((_local6.x * _local7) + _local9); }; if (_arg5){ if ((((_local6.x > Math.max(_arg1.x, _arg2.x))) || ((_local6.x < Math.min(_arg1.x, _arg2.x))))){ return (null); }; if ((((_local6.y > Math.max(_arg1.y, _arg2.y))) || ((_local6.y < Math.min(_arg1.y, _arg2.y))))){ return (null); }; if ((((_local6.x > Math.max(_arg3.x, _arg4.x))) || ((_local6.x < Math.min(_arg3.x, _arg4.x))))){ return (null); }; if ((((_local6.y > Math.max(_arg3.y, _arg4.y))) || ((_local6.y < Math.min(_arg3.y, _arg4.y))))){ return (null); }; }; return (_local6.clone()); } private static function getLowestPositiveAngle(_arg1:Number):Number{ var _local2:Number; _local2 = (_arg1 % (Math.PI * 2)); while (_local2 < 0) { _local2 = (_local2 + (Math.PI * 2)); }; while (_local2 >= (Math.PI * 2)) { _local2 = (_local2 - (Math.PI * 2)); }; return (_local2); } public static function pointUnderLine(_arg1:Point, _arg2:Point, _arg3:Point):Boolean{ var _local4:Number; var _local5:Number; _local4 = (Math.atan2((_arg3.y - _arg2.y), (_arg3.x - _arg2.x)) + (Math.PI * 0.5)); _local5 = Math.atan2((_arg1.y - _arg2.y), (_arg1.x - _arg2.x)); return ((angularDistance(_local5, _local4) >= TOLERANCE)); } public static function line2triangle(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Point):Boolean{ if (line2line(_arg1, _arg2, _arg3, _arg4)){ return (true); }; if (line2line(_arg1, _arg2, _arg4, _arg5)){ return (true); }; if (line2line(_arg1, _arg2, _arg5, _arg3)){ return (true); }; if (point2triangle(_arg1, _arg3, _arg4, _arg5)){ return (true); }; return (false); } public static function getOuterPoints(_arg1:Array):Array{ var _local2:Array; var _local3:Point; var _local4:int; var _local5:Array; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Point; var _local11:int; var _local12:Number; var _local13:Point; var _local14:int; var _local15:Number; var _local16:Number; _local2 = _arg1.concat(); _local3 = _local2[0]; _local4 = 1; while (_local4 < _local2.length) { if (_local2[_local4].y < _local3.y){ _local3 = _local2[_local4]; }; _local4++; }; _local5 = [_local3]; _local6 = Infinity; _local8 = 0; _local9 = 0; _local10 = _local5[0]; _local11 = _local2.length; while (1) { _local12 = (Math.PI * 2); _local13 = null; _local4 = 0; while (_local4 < _local2.length) { _local7 = Math.atan2((_local2[_local4].y - _local5[(_local5.length - 1)].y), (_local2[_local4].x - _local5[(_local5.length - 1)].x)); _local16 = getLowestPositiveAngle((_local7 - _local8)); if ((((_local16 <= _local12)) && (!((_local2[_local4] == _local5[(_local5.length - 1)]))))){ _local13 = _local2[_local4]; _local12 = _local16; }; _local4++; }; if ((((_local13 == null)) || ((((_local13 == _local5[0])) && ((_local5.length > 1)))))){ break; }; _local15 = _local8; _local8 = getLowestPositiveAngle(Math.atan2((_local13.y - _local5[(_local5.length - 1)].y), (_local13.x - _local5[(_local5.length - 1)].x))); _local9 = (_local9 + getLowestPositiveAngle((_local8 - _local15))); if (_local9 >= (Math.PI * 2)){ break; }; _local5.push(_local13); --_local11; if (!_local11){ trace(("FAILURE: " + (_local9 - (Math.PI * 2))), "\n"); break; }; }; if ((((_local5.length > 2)) && ((_local5[(_local5.length - 1)] == _local5[1])))){ _local5.pop(); }; return (_local5); } public static function polygon2polygon(_arg1:Array, _arg2:Array):Boolean{ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:Point; var _local8:Point; var _local9:int; var _local10:int; if ((((_arg1.length < 3)) || ((_arg2.length < 3)))){ return (false); }; _local3 = _arg1[0]; _local6 = _arg2[0]; _local9 = 1; while (_local9 < (_arg1.length - 1)) { _local4 = _arg1[_local9]; _local5 = _arg1[(_local9 + 1)]; _local10 = 1; while (_local10 < (_arg2.length - 1)) { _local7 = _arg2[_local10]; _local8 = _arg2[(_local10 + 1)]; if (triangle2triangle(_local3, _local4, _local5, _local6, _local7, _local8)){ return (true); }; _local10++; }; _local9++; }; return (false); } public static function point2triangle(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Boolean{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = (Number((_arg3.y - _arg2.y)) / Number((_arg3.x - _arg2.x))); _local6 = (Number((_arg4.y - _arg3.y)) / Number((_arg4.x - _arg3.x))); _local7 = (Number((_arg2.y - _arg4.y)) / Number((_arg2.x - _arg4.x))); _local8 = (_arg2.y - (_local5 * _arg2.x)); _local9 = (_arg3.y - (_local6 * _arg3.x)); _local10 = (_arg4.y - (_local7 * _arg4.x)); if (Math.abs((_arg3.x - _arg2.x)) < TOLERANCE){ if ((((Math.abs((_arg4.x - _arg2.x)) < TOLERANCE)) || (!((Boolean((_arg3.x < _arg1.x)) == Boolean((_arg3.x < _arg4.x))))))){ return (false); }; }; if ((((((_arg4.y <= ((_local5 * _arg4.x) + _local8))) && ((_arg1.y > ((_local5 * _arg1.x) + _local8))))) || ((((_arg4.y >= ((_local5 * _arg4.x) + _local8))) && ((_arg1.y < ((_local5 * _arg1.x) + _local8))))))){ return (false); }; if (Math.abs((_arg4.x - _arg3.x)) < TOLERANCE){ if ((((Math.abs((_arg2.x - _arg3.x)) < TOLERANCE)) || (!((Boolean((_arg4.x < _arg1.x)) == Boolean((_arg4.x < _arg2.x))))))){ return (false); }; }; if ((((((_arg2.y <= ((_local6 * _arg2.x) + _local9))) && ((_arg1.y > ((_local6 * _arg1.x) + _local9))))) || ((((_arg2.y >= ((_local6 * _arg2.x) + _local9))) && ((_arg1.y < ((_local6 * _arg1.x) + _local9))))))){ return (false); }; if (Math.abs((_arg2.x - _arg4.x)) < TOLERANCE){ if ((((Math.abs((_arg3.x - _arg4.x)) < TOLERANCE)) || (!((Boolean((_arg2.x < _arg1.x)) == Boolean((_arg2.x < _arg3.x))))))){ return (false); }; }; if ((((((_arg3.y <= ((_local7 * _arg3.x) + _local10))) && ((_arg1.y > ((_local7 * _arg1.x) + _local10))))) || ((((_arg3.y >= ((_local7 * _arg3.x) + _local10))) && ((_arg1.y < ((_local7 * _arg1.x) + _local10))))))){ return (false); }; return (true); } public static function closestPointOnLine(_arg1:Point, _arg2:Point, _arg3:Point):Point{ var _local4:Point; var _local5:Point; _local4 = _arg1.add(getNormal(_arg2, _arg3)); _local5 = intersectLines(_arg1, _local4, _arg2, _arg3, false); if (_local5 == null){ throw (((((((("Unexpected error in Geometry::closestPointToLine. Perpendicular lines aren't intersecting!\nA1:" + _arg1) + " A2:") + _local4) + " B1:") + _arg2) + " B2:") + _arg3)); }; return (_local5); } public static function triangle2triangle(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Point, _arg6:Point):Boolean{ if (line2triangle(_arg1, _arg2, _arg4, _arg5, _arg6)){ return (true); }; if (line2triangle(_arg2, _arg3, _arg4, _arg5, _arg6)){ return (true); }; if (line2triangle(_arg3, _arg1, _arg4, _arg5, _arg6)){ return (true); }; if (point2triangle(_arg1, _arg4, _arg5, _arg6)){ return (true); }; if (point2triangle(_arg4, _arg1, _arg2, _arg3)){ return (true); }; return (false); } public static function movePoints(_arg1:Array, _arg2:Point):Array{ var _local3:Array; var _local4:int; _local3 = []; _local4 = 0; while (_local4 < _arg1.length) { _local3[_local4] = _arg1[_local4].add(_arg2); _local4++; }; return (_local3); } public static function point2line(_arg1:Point, _arg2:Point, _arg3:Point):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; if ((((_arg1.x < (Math.min(_arg2.x, _arg3.x) - TOLERANCE))) || ((_arg1.x > (Math.max(_arg2.x, _arg3.x) + TOLERANCE))))){ return (false); }; if ((((_arg1.y < (Math.min(_arg2.y, _arg3.y) - TOLERANCE))) || ((_arg1.y > (Math.max(_arg2.y, _arg3.y) + TOLERANCE))))){ return (false); }; _local4 = (_arg1.x - _arg2.x); _local5 = (_arg1.y - _arg2.y); _local6 = (_arg3.x - _arg2.x); _local7 = (_arg3.y - _arg2.y); if (Math.abs(_local6) < TOLERANCE){ if (Math.abs(_local7) < TOLERANCE){ return ((((Math.abs(_local4) < TOLERANCE)) && ((Math.abs(_local5) < TOLERANCE)))); }; if (Math.abs(_local4) < TOLERANCE){ return (true); }; return (false); }; if (Math.abs(((_local5 / _local4) - (_local7 / _local6))) > TOLERANCE){ return (false); }; return (true); } public static function angularDistance(_arg1:Number, _arg2:Number):Number{ return (Math.cos((_arg1 - _arg2))); } public static function point2polygon(_arg1:Point, _arg2:Array):Boolean{ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:int; if (_arg2.length < 3){ return (false); }; _local3 = _arg2[0]; _local6 = 1; while (_local6 < (_arg2.length - 1)) { _local4 = _arg2[_local6]; _local5 = _arg2[(_local6 + 1)]; if (point2triangle(_arg1, _local3, _local4, _local5)){ return (true); }; _local6++; }; return (false); } public static function line2line(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Boolean{ return (!((intersectLines(_arg1, _arg2, _arg3, _arg4) == null))); } public static function rotate(_arg1:Point, _arg2:Number, _arg3:Point):Point{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = (_arg1.x - _arg3.x); _local5 = (_arg1.y - _arg3.y); _local6 = Math.cos(_arg2); _local7 = Math.sin(_arg2); return (new Point(((_arg3.x + (_local4 * _local6)) + (_local5 * _local7)), ((_arg3.y - (_local4 * _local7)) + (_local5 * _local6)))); } public static function line2polygon(_arg1:Point, _arg2:Point, _arg3:Array):Boolean{ var _local4:Point; var _local5:Point; var _local6:Point; var _local7:int; if (_arg3.length < 3){ return (false); }; _local4 = _arg3[0]; _local7 = 1; while (_local7 < (_arg3.length - 1)) { _local5 = _arg3[_local7]; _local6 = _arg3[(_local7 + 1)]; if (line2triangle(_arg1, _arg2, _local4, _local5, _local6)){ return (true); }; _local7++; }; return (false); } public static function getNormal(_arg1:Point, _arg2:Point):Point{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Point; _local3 = (_arg2.x - _arg1.x); _local4 = (_arg2.y - _arg1.y); _local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); _local6 = new Point((-(_local4) / _local5), (_local3 / _local5)); return (_local6); } public static function collide(_arg1:Array, _arg2:Array){ if ((((((((_arg1 == null)) || (!(_arg1.length)))) || ((_arg2 == null)))) || (!(_arg2.length)))){ return (false); }; if (_arg1.length > 2){ if (_arg2.length > 2){ return (polygon2polygon(_arg1, _arg2)); }; if (_arg2.length > 1){ return (line2polygon(_arg2[0], _arg2[1], _arg1)); }; return (point2polygon(_arg2[0], _arg1)); } else { if (_arg1.length > 1){ if (_arg2.length > 2){ return (line2polygon(_arg1[0], _arg1[1], _arg2)); }; if (_arg2.length > 1){ return (line2line(_arg1[0], _arg1[1], _arg2[0], _arg2[1])); }; } else { if (_arg2.length > 2){ return (point2polygon(_arg1[0], _arg2)); }; }; }; return (false); } public static function cutComponents(_arg1:Point, _arg2:Array):Point{ var _local3:Number; var _local4:Number; var _local5:int; var _local6:Number; if (!_arg2.length){ return (_arg1.clone()); }; _local3 = 0; _local4 = (Math.atan2(_arg1.y, _arg1.x) - Math.PI); _local5 = 0; while (_local5 < _arg2.length) { _local3 = (_local3 + Math.atan2((_arg2[(_local5 + 1)].y - _arg2[_local5].y), (_arg2[(_local5 + 1)].x - _arg2[_local5].x))); _local5 = (_local5 + 2); }; _local3 = (_local3 / (_arg2.length >> 1)); _local3 = (_local3 - (Math.PI * 0.5)); _local6 = (1 - Math.max(Math.cos((_local4 - _local3)), 0)); return (new Point((_arg1.x * _local6), (_arg1.y * _local6))); } } }//package amber3Section 13//Item (amber3.Item) package amber3 { import flash.display.*; public class Item extends Static { private var _subtype:String; public static const LIFE:String = "Life"; public static const CAMERA:String = "Camera"; public static const CHECKPOINT:String = "Checkpoint"; public static const START:String = "Start"; public static const COLLECTIBLE:String = "Collectible"; public static const BOSS_EVENT:String = "BossEvent"; public static const VICTORY:String = "Victory"; public static const RECOVERY:String = "Recovery"; public static const WATER:String = "Water"; public static const HEALTH:String = "Health"; public static const DECORATION:String = "Decoration"; public function Item(_arg1:int, _arg2:int, _arg3:String, _arg4:BitmapData, _arg5:int){ super(_arg1, _arg2, _arg4, _arg5); _type = "item"; _subtype = _arg3; } public function get subtype():String{ return (_subtype); } } }//package amber3Section 14//ItemEvent (amber3.ItemEvent) package amber3 { import flash.events.*; public class ItemEvent extends Event { var _subtype:String; public function ItemEvent(_arg1:String, _arg2:String){ super(_arg1); _subtype = _arg2; } public function get subtype():String{ return (_subtype); } } }//package amber3Section 15//MessageBlock (amber3.MessageBlock) package amber3 { import flash.display.*; public class MessageBlock extends Block { private var _message:String; public function MessageBlock(_arg1:int, _arg2:int, _arg3:String, _arg4:BitmapData=null, _arg5:int=-1){ super(_arg1, _arg2, Block.MESSAGE_BLOCK, _arg4, _arg5); _message = _arg3.replace(/}/g, "?"); _message = _arg3.replace(/{/g, "¿"); _message = _arg3.replace(/\r/g, ""); } public function get message():String{ return (_message); } } }//package amber3Section 16//MessageEvent (amber3.MessageEvent) package amber3 { import flash.events.*; public class MessageEvent extends Event { private var _message:String; public function MessageEvent(_arg1:String){ super(Amber.MESSAGE); _message = _arg1; } public function get message():String{ return (_message); } } }//package amber3Section 17//OneWayWall (amber3.OneWayWall) package amber3 { import flash.display.*; import flash.geom.*; public class OneWayWall extends Static { private var _direction:int; public function OneWayWall(_arg1:int, _arg2:int, _arg3:int, _arg4:BitmapData=null, _arg5:int=-1){ super(_arg1, _arg2, _arg4, _arg5); _type = "oneway"; if (_clip.numChildren){ _clip.getChildAt(0).width = Tile.TILE_HALF; _clip.getChildAt(0).height = Tile.TILE_HALF; }; _direction = (Boolean((_arg3 >= 0))) ? 1 : -1; } public function get direction():int{ return (_direction); } override public function getPoints(_arg1:Number):Array{ return ([new Point(_p.x, _p.y), new Point((_p.x + Tile.TILE_HALF), _p.y), new Point((_p.x + Tile.TILE_HALF), (_p.y + Tile.TILE_HALF)), new Point(_p.x, (_p.y + Tile.TILE_HALF))]); } override public function redraw(_arg1:World){ super.redraw(_arg1); if (_clip.numChildren){ _clip.getChildAt(0).width = Tile.TILE_HALF; _clip.getChildAt(0).height = Tile.TILE_HALF; }; } } }//package amber3Section 18//Platform (amber3.Platform) package amber3 { import flash.display.*; import flash.geom.*; public class Platform extends Static { private var _vScale:Number; private var _time:Number; private var _radius:Number; private var _angle:Number; private var _frequency:Number; private var _period:Number; private var _hScale:Number; private var _phase:Number; public static const MAX_RADIUS:int = 8; public function Platform(_arg1:int, _arg2:int, _arg3:BitmapData, _arg4:int, _arg5:Number=0, _arg6:Number=0, _arg7:uint=0, _arg8:int=0, _arg9:uint=1){ super(_arg1, _arg2, _arg3, _arg4); _type = "platform"; _hScale = _arg5; _vScale = _arg6; _radius = (Math.min(Math.max(_arg7, 0), MAX_RADIUS) * Tile.TILE_HALF); _phase = Number(((_arg8 * Math.PI) / 180)); _period = (_arg9 * 20); _frequency = (1 / _period); _angle = 0; _time = 0; } public function get vScale():Number{ return (_vScale); } public function get radius():Number{ return (_radius); } public function get phase():Number{ return (_phase); } public function position(_arg1:Number):Point{ var _local2:Point; _angle = (((_arg1 * _frequency) * Math.PI) * 2); _local2 = new Point(); _local2.x = (((Math.cos((_angle + _phase)) * _hScale) * _radius) + (_tile.x * Tile.TILE_HALF)); _local2.y = (((Math.sin((_angle + _phase)) * _vScale) * _radius) + (_tile.y * Tile.TILE_HALF)); return (_local2); } public function behaviour(_arg1:World){ _time = _arg1.time; _p = position(_arg1.time); } override public function getPoints(_arg1:Number):Array{ return ([new Point(_p.x, _p.y), new Point((_p.x + _clip.width), _p.y), new Point((_p.x + _clip.width), (_p.y + _clip.height)), new Point(_p.x, (_p.y + _clip.height))]); } public function get period():Number{ return (_period); } public function get hScale():Number{ return (_hScale); } } }//package amber3Section 19//ProgrammedInput (amber3.ProgrammedInput) package amber3 { import flash.events.*; import flash.display.*; public class ProgrammedInput extends Controller { private var _programLength:int; private var _complete:Boolean; private var _compressed:Boolean; public var loop:Boolean; private var _compressedCounter:int; private var _program:Array; private var _compressedPosition:int; private var _frame:int; private var _playing:Boolean; public function ProgrammedInput(_arg1:Stage, _arg2:Array, _arg3:Boolean=true, _arg4:Boolean=false){ var _local5:int; super(_arg1); _program = _arg2; _programLength = 0; loop = _arg3; _complete = false; _playing = false; if (_program){ _programLength = _program.length; }; _compressed = _arg4; if (_compressed){ _compressedPosition = 0; _compressedCounter = _program[1]; _programLength = 0; _local5 = 1; while (_local5 < _program.length) { _programLength = (_programLength + _program[_local5]); _local5 = (_local5 + 2); }; }; _arg1.removeEventListener("keyDown", kDown); _arg1.removeEventListener("keyUp", kUp); } public function stop():void{ if (_compressed){ _stage.removeEventListener(Event.ENTER_FRAME, compressedFrame); } else { _stage.removeEventListener(Event.ENTER_FRAME, eFrame); }; _playing = false; } private function eFrame(_arg1:Event){ var _local2:int; var _local3:int; var _local4:Boolean; _local3 = _program[_frame]; _local2 = 0; while (_local2 < NUM_BUTTONS) { _local4 = Boolean((_local3 & (1 << _local2))); if (((_state[_local2]) && (!(_local4)))){ dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_UP, _local2)); } else { if (((!(_state[_local2])) && (_local4))){ dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_DOWN, _local2)); }; }; _state[_local2] = _local4; _local2++; }; _frame = (_frame + 1); if (_frame >= _programLength){ _frame = 0; if (!loop){ _complete = true; stop(); }; }; } public function begin():void{ if (_playing){ return; }; _complete = false; if (_compressed){ _stage.addEventListener(Event.ENTER_FRAME, compressedFrame, false, 10, true); } else { _stage.addEventListener(Event.ENTER_FRAME, eFrame, false, 10, true); }; _playing = true; } public function get complete():Boolean{ return (_complete); } public function set frame(_arg1:uint){ if (!_program){ return; }; if (_arg1 >= _program.length){ _arg1 = (_program.length - 1); }; _frame = _arg1; } public function get frame():uint{ return (_frame); } private function compressedFrame(_arg1:Event){ var _local2:int; var _local3:int; var _local4:Boolean; _local2 = _program[_compressedPosition]; _local3 = 0; while (_local3 < NUM_BUTTONS) { _local4 = Boolean((_local2 & (1 << _local3))); if (((_state[_local3]) && (!(_local4)))){ dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_UP, _local3)); } else { if (((!(_state[_local3])) && (_local4))){ dispatchEvent(new ButtonEvent(ButtonEvent.BUTTON_DOWN, _local3)); }; }; _state[_local3] = _local4; _local3++; }; _compressedCounter--; _frame = (_frame + 1); if (!_compressedCounter){ _compressedPosition = (_compressedPosition + 2); _compressedCounter = _program[(_compressedPosition + 1)]; }; if (_frame >= _programLength){ _frame = 0; _compressedPosition = 0; _compressedCounter = _program[1]; if (!loop){ _complete = true; stop(); }; }; } public function get length():int{ return (_programLength); } override public function destroy(){ stop(); } public static function compress(_arg1:Array):Array{ var _local2:Array; var _local3:int; var _local4:uint; var _local5:uint; var _local6:int; _local2 = []; _local3 = _arg1.length; _local4 = 0; _local5 = 0; _local6 = 0; while (_local6 < _local3) { if (_arg1[_local6] != _local4){ if (_local5){ _local2[_local2.length] = _local4; _local2[_local2.length] = _local5; }; _local4 = _arg1[_local6]; _local5 = 1; } else { _local5++; }; _local6++; }; if (_local5){ _local2[_local2.length] = _local4; _local2[_local2.length] = _local5; }; return (_local2); } public static function decompress(_arg1:Array){ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:uint; var _local7:uint; _local2 = []; _local5 = _arg1.length; _local6 = 0; _local7 = 0; _local3 = 0; while (_local3 < _local5) { _local6 = _arg1[_local3]; _local7 = _arg1[(_local3 + 1)]; _local4 = 0; while (_local4 < _local7) { _local2[_local2.length] = _local6; _local4++; }; _local3 = (_local3 + 2); }; return (_local2); } } }//package amber3Section 20//Projectile (amber3.Projectile) package amber3 { import flash.display.*; import flash.geom.*; public class Projectile extends GameSprite { private var _localp:Point; private var _world:World; private var _gravity:Boolean; private var _fire:Boolean; private var _time:Number; private var _owner:Character; private var _offset:Point; private var _linked:Boolean; private var _life:Number; private var _start:Point; private var _v:Point; public function Projectile(_arg1:Class, _arg2:int, _arg3:Character, _arg4:Number, _arg5:Number){ super(0, 0); depth = -1; _v = new Point(); _type = "projectile"; _clip = new (_arg1); _clip.x = x; _clip.y = y; _life = _arg2; if (_arg3){ _start = new Point((_arg3.x + _arg4), (_arg3.y + _arg5)); }; _localp = new Point(); _owner = _arg3; _time = 0; _offset = new Point(_arg4, _arg5); _linked = true; _gravity = false; _fire = true; } public function get linked():Boolean{ return (_linked); } public function get vX():Number{ return (_v.x); } public function get vY():Number{ return (_v.y); } public function set gravity(_arg1:Boolean){ _gravity = _arg1; } public function get fire():Boolean{ return (_fire); } public function set vX(_arg1:Number){ _v.x = _arg1; } public function behaviour(_arg1:World){ var _local2:Array; var _local3:Array; var _local4:Boolean; var _local5:int; var _local6:int; var _local7:int; var _local8:Enemy; var _local9:Array; var _local10:int; var _local11:Amber; _world = _arg1; _local2 = _arg1.hitSurfaces([_p.add(_v), _p.subtract(_v)]); _local3 = null; if (((_owner) && ((_owner.type == "amber")))){ _local3 = _arg1.hitSprites(this); }; _local4 = false; if (_local2.length){ _local4 = true; }; _local6 = 0; if (_local3){ _local6 = _local3.length; }; _local5 = 0; while (_local5 < _local6) { if (_local3[_local5].type == "block"){ if (((_fire) && ((Block(_local3[_local5]).subtype == Block.PLANT_BLOCK)))){ Block(_local3[_local5]).smash(_arg1); }; if (Block(_local3[_local5]).subtype == Block.CONTAINER_BLOCK){ if (_owner){ (_owner as Amber).hitContainer(Container(_local3[_local5]), _arg1); }; }; _local4 = true; }; if (_local3[_local5].type == "enemy"){ _local8 = (_local3[_local5] as Enemy); if (((!(_local8.invincible)) && (!(_local8.fireResistant)))){ _local8.damage(this, _arg1); if (_owner){ if (_local8.boss){ if (!_local8.health){ (_owner as Amber).bossKilled(_local8); } else { (_owner as Amber).bossDamaged(_local8); }; } else { (_owner as Amber).enemyKilled(_local8); }; }; }; _local4 = true; }; _local5++; }; if (((_owner) && (!((_owner.type == "amber"))))){ _local9 = _arg1.players; _local10 = _arg1.players.length; _local5 = 0; while (_local5 < _local10) { _local11 = _local9[_local5]; if (getRect().intersects(_local11.getRect())){ _local11.damage(); _local4 = true; break; }; _local5++; }; }; if (_gravity){ vY = (vY + World.GRAVITY); }; _localp.x = (_localp.x + (vX * _arg1.timeSpeed)); _localp.y = (_localp.y + (vY * _arg1.timeSpeed)); if (((_owner) && (_linked))){ x = ((_owner.x + _offset.x) + _localp.x); y = ((_owner.y + _offset.y) + _localp.y); } else { x = (_start.x + _localp.x); y = (_start.y + _localp.y); }; _local7 = Math.floor(_time); _local7 = (_local7 % clip.totalFrames); clip.gotoAndStop((1 + _local7)); _time = (_time + _arg1.timeSpeed); _life = (_life - _arg1.timeSpeed); if ((((_life <= 0)) || (_local4))){ _arg1.removeProjectile(this); if (((_owner) && ((_owner.type == "amber")))){ (_owner as Amber).removeFireBall(); }; }; } public function get gravity():Boolean{ return (_gravity); } public function set vY(_arg1:Number){ _v.y = _arg1; } override public function getPoints(_arg1:Number):Array{ var _local2:MovieClip; var _local3:Rectangle; var _local4:Number; var _local5:Number; _local2 = _clip; if (_local2 == null){ throw ("Error in Character::getStaticPoints(). Property 'hitbox' not found in Character::clip"); }; _local3 = _local2.getRect(clip); _local4 = (_local3.x + x); _local5 = (_local3.y + y); return ([new Point(_local4, _local5), new Point((_local4 + _local3.width), _local5), new Point((_local4 + _local3.width), (_local5 + _local3.height)), new Point(_local4, (_local5 + _local3.height))]); } public function set linked(_arg1:Boolean){ _linked = _arg1; } public function set fire(_arg1:Boolean){ _fire = _arg1; } } }//package amber3Section 21//SpikeBlock (amber3.SpikeBlock) package amber3 { import flash.display.*; public class SpikeBlock extends Block { private var _orientation:int; public function SpikeBlock(_arg1:int, _arg2:int, _arg3:uint, _arg4:BitmapData=null, _arg5:int=-1){ super(_arg1, _arg2, Block.SPIKE_BLOCK, _arg4, _arg5); _orientation = (_arg3 % 4); _clip.rotation = (_orientation * 90); x = _p.x; y = _p.y; } public function get positive():int{ return ((Boolean((_orientation < 2))) ? 1 : -1); } public function get orientation():int{ return (_orientation); } override public function set x(_arg1:Number){ super.x = _arg1; _clip.x = (_p.x + (Tile.TILE_HALF * int((((_orientation == 1)) || ((_orientation == 2)))))); } override public function set y(_arg1:Number){ super.y = _arg1; _clip.y = (_p.y + (Tile.TILE_HALF * int((_orientation > 1)))); } public function get vertical():Boolean{ return (Boolean((_orientation % 2))); } } }//package amber3Section 22//Static (amber3.Static) package amber3 { import flash.display.*; import flash.geom.*; public class Static extends GameSprite { protected var _bitmapID:int; public function Static(_arg1:int, _arg2:int, _arg3:BitmapData=null, _arg4:int=-1){ var _local5:Bitmap; super(_arg1, _arg2); _type = "static"; _bitmapID = _arg4; if (_arg3 != null){ _local5 = new Bitmap(_arg3); _clip.addChild(_local5); }; } override public function getPoints(_arg1:Number):Array{ var _local2:DisplayObjectContainer; var _local3:Rectangle; var _local4:Number; var _local5:Number; _local2 = _clip; if (!_clip.width){ return ([]); }; _local3 = _local2.getRect(_clip); _local4 = (_local3.x + x); _local5 = (_local3.y + y); return ([new Point(_local4, _local5), new Point((_local4 + _local3.width), _local5), new Point((_local4 + _local3.width), (_local5 + _local3.height)), new Point(_local4, (_local5 + _local3.height))]); } public function get bitmapID():int{ return (_bitmapID); } public function redraw(_arg1:World){ var _local2:BitmapData; var _local3:Bitmap; _local2 = _arg1.getBitmapByID(_bitmapID); while (_clip.numChildren) { _clip.removeChildAt(0); }; if (_local2 == null){ return; }; _local3 = new Bitmap(_local2); _clip.addChild(_local3); } } }//package amber3Section 23//Tile (amber3.Tile) package amber3 { import flash.display.*; import flash.geom.*; public class Tile { private var _position:Point; private var _end:int; private var _start:int; private var _color:int; private var _bitmapID:int; private var _clip:MovieClip; private var _center:Boolean; public static const LOW_CENTER:int = 5; public static const LOW_LEFT:int = 6; public static const MID_RIGHT:int = 3; public static const TILE_HALF:int = 50; public static const MID_CENTER:int = 8; public static const MID_LEFT:int = 7; public static const TOP_LEFT:int = 0; public static const TILE_SIZE:int = 100; public static const LOW_RIGHT:int = 4; public static const TOP_RIGHT:int = 2; public static const TOP_CENTER:int = 1; public function Tile(_arg1:Point, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:BitmapData=null, _arg6=-1, _arg7:int=0){ _clip = new MovieClip(); _clip.x = (_arg1.x * TILE_SIZE); _clip.y = (_arg1.y * TILE_SIZE); _start = _arg2; _end = _arg3; _center = _arg4; _position = _arg1.clone(); _bitmapID = _arg6; _color = _arg7; draw(_start, _end, _center, _clip, _arg5, _color); } public function get bitmapID():int{ return (_bitmapID); } public function get center():Boolean{ return (_center); } public function get end():int{ return (_end); } public function get clip():MovieClip{ return (_clip); } public function get start():int{ return (_start); } public function get color():int{ return (_color); } public function getSurfaces():Array{ var _local1:Array; _local1 = []; _local1.push(getPoint(_start)); _local1[(_local1.length - 1)].x = (_local1[(_local1.length - 1)].x + (_position.x * TILE_SIZE)); _local1[(_local1.length - 1)].y = (_local1[(_local1.length - 1)].y + (_position.y * TILE_SIZE)); if (_center){ _local1.push(getPoint(Tile.MID_CENTER)); _local1[(_local1.length - 1)].x = (_local1[(_local1.length - 1)].x + (_position.x * TILE_SIZE)); _local1[(_local1.length - 1)].y = (_local1[(_local1.length - 1)].y + (_position.y * TILE_SIZE)); _local1.push(getPoint(Tile.MID_CENTER)); _local1[(_local1.length - 1)].x = (_local1[(_local1.length - 1)].x + (_position.x * TILE_SIZE)); _local1[(_local1.length - 1)].y = (_local1[(_local1.length - 1)].y + (_position.y * TILE_SIZE)); }; _local1.push(getPoint(_end)); _local1[(_local1.length - 1)].x = (_local1[(_local1.length - 1)].x + (_position.x * TILE_SIZE)); _local1[(_local1.length - 1)].y = (_local1[(_local1.length - 1)].y + (_position.y * TILE_SIZE)); return (_local1); } public function redraw(_arg1:World){ draw(_start, _end, _center, _clip, _arg1.getBitmapByID(_bitmapID), _color); } public function get y():int{ return (_position.y); } public function destroy(){ _clip.parent.removeChild(_clip); } public function get x():int{ return (_position.x); } public static function draw(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:MovieClip, _arg5:BitmapData, _arg6:int){ var _local7:Array; var _local8:int; var _local9:int; var _local10:Point; _arg4.graphics.clear(); if (((!(_arg5)) || (!(_arg5.width)))){ _arg4.graphics.beginFill(_arg6); } else { _arg4.graphics.beginBitmapFill(_arg5); }; if (_arg1 == _arg2){ _arg4.graphics.drawRect(0, 0, TILE_SIZE, TILE_SIZE); _arg4.graphics.endFill(); return; }; _local7 = []; _local7.push(getPoint(_arg1)); _arg4.graphics.moveTo(_local7[0].x, _local7[0].y); if (_arg3){ _local7.push(getPoint(Tile.MID_CENTER)); }; _local7.push(getPoint(_arg2)); _local8 = 1; while (_local8 < _local7.length) { _arg4.graphics.lineTo(_local7[_local8].x, _local7[_local8].y); _local8++; }; _local9 = ((_arg2 + 1) % 9); while (_local9 != _arg1) { if (_local9 == MID_CENTER){ if (_local9 == _arg1){ break; }; _local9++; _local9 = (_local9 % 9); if (_local9 == _arg1){ break; }; }; _local10 = getPoint(_local9); _arg4.graphics.lineTo(_local10.x, _local10.y); _local9++; _local9 = (_local9 % 9); }; _arg4.graphics.endFill(); } public static function getPoint(_arg1:int):Point{ var _local2:Point; _local2 = new Point(); switch ((_arg1 % 9)){ case TOP_LEFT: case MID_LEFT: case LOW_LEFT: _local2.x = 0; break; case TOP_CENTER: case MID_CENTER: case LOW_CENTER: _local2.x = TILE_HALF; break; case TOP_RIGHT: case MID_RIGHT: case LOW_RIGHT: _local2.x = TILE_SIZE; break; }; switch ((_arg1 % 9)){ case TOP_LEFT: case TOP_CENTER: case TOP_RIGHT: _local2.y = 0; break; case MID_LEFT: case MID_CENTER: case MID_RIGHT: _local2.y = TILE_HALF; break; case LOW_LEFT: case LOW_CENTER: case LOW_RIGHT: _local2.y = TILE_SIZE; break; }; return (_local2); } } }//package amber3Section 24//Wind (amber3.Wind) package amber3 { import flash.display.*; import flash.geom.*; public class Wind extends Static { private var _position:int; private var LEFT:int; private var _orientation:int; private var _speed:int; public function Wind(_arg1:Number, _arg2:Number, _arg3:uint, _arg4:uint, _arg5:BitmapData=null, _arg6:int=-1){ super(_arg1, _arg2, _arg5, _arg6); _type = "wind"; if (((_clip) && (_clip.parent))){ _clip.parent.removeChild(_clip); }; _clip = new MovieClip(); _orientation = (_arg3 % 4); _speed = _arg4; _position = 0; x = _p.x; y = _p.y; } public function get positive():int{ return ((Boolean((_orientation < 2))) ? 1 : -1); } public function behaviour(_arg1:World){ _position = (_speed * _arg1.time); redraw(_arg1); } private function draw(_arg1:BitmapData){ var _local2:Number; var _local3:Matrix; _clip.graphics.clear(); if (((!((_arg1 == null))) && ((_bitmapID > -1)))){ _position = (Math.floor(_position) % _arg1.width); _local2 = ((orientation * Math.PI) * 0.5); _local3 = new Matrix(); _local3.scale((Tile.TILE_SIZE / _arg1.width), (Tile.TILE_SIZE / _arg1.height)); _local3.rotate(_local2); if (vertical){ _local3.translate(0, (_position * positive)); } else { _local3.translate((_position * positive), 0); }; _clip.graphics.beginBitmapFill(_arg1, _local3, true, false); } else { _clip.graphics.beginFill(0xFF00FF); }; _clip.graphics.drawRect(0, 0, Tile.TILE_SIZE, Tile.TILE_SIZE); _clip.graphics.endFill(); } public function get speed():int{ return (_speed); } public function get orientation():int{ return (_orientation); } override public function getPoints(_arg1:Number):Array{ return ([new Point(x, y), new Point((x + Tile.TILE_SIZE), y), new Point((x + Tile.TILE_SIZE), (y + Tile.TILE_SIZE)), new Point(x, (y + Tile.TILE_SIZE))]); } override public function set x(_arg1:Number){ super.x = _arg1; _clip.x = _p.x; } override public function set y(_arg1:Number){ super.y = _arg1; _clip.y = _p.y; } public function get vertical():Boolean{ return (Boolean((_orientation % 2))); } override public function redraw(_arg1:World){ draw(_arg1.getBitmapByID(_bitmapID)); } } }//package amber3Section 25//World (amber3.World) package amber3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.ui.*; import flash.net.*; public class World extends EventDispatcher { private var _enemyClipLibrary:Array; private var _isPausable:Boolean; private var _projectileLibrary:Array; private var _sprites:Array; public var CAMERA_AMBER_FACTOR:Number;// = 15 private var _front:MovieClip; private var _soundID:String; private var _cameraOffsetX:Number; private var _tileYStart:int; private var _tileXEnd:int; private var _players:Array; private var _cameraItem:Object; private var _tileClip:MovieClip; private var _running:Boolean; private var _waterClip:MovieClip; private var _bitmapLibrary:Array; private var _cameraPosition:Point; private var _focusOn:Object; private var _bitmapNames:Array; private var _camShakeAngle:int; private var _tiles:Array; private var _ready:Boolean; private var _backgroundID:int; private var _time:Number; private var _middle:MovieClip; private var _tileXStart:int; private var _back:MovieClip; private var _parent:DisplayObjectContainer; private var _background:Bitmap; private var _tileYEnd:int; private var _victory:Boolean; private var _windClip:MovieClip; private var _platforms:Array; private var _bossActivated:Array; private var _enemies:Array; public var cameraCenter:Point; private var _projectiles:Array; private var _startPoint:Point; private var _wind:Array; private var _totalPieces:int; private var _enemyLibrary:Array; private var _camOffsetY:Number; private var _timeSpeed:Number; private var _camOffsetX:Number; private var _stage:Stage; public static const GAME_OVER:String = "gameOver"; public static const CAMERA_RANGE:Number = 0; public static const CAMERA_Y_AMBER_FACTOR:Number = 2; public static const CAMERA_SPEED:Number = 0.5; public static const MAX_SHAKE_AMPLITUDE:int = 3; public static const CAMERA_AMBER_SPEED:Number = 0.2; public static const ACTIVE_AREA_RADIUS:int = 4; public static const SHAKE_ANGLE:Number = 4.18879020478639; public static const MAX_SHAKE_TIME:int = 20; public static const GRAVITY:Number = 3; public static const DEFAULT_PLAYER_CONFIG:Array = [["W".charCodeAt(), "S".charCodeAt(), "A".charCodeAt(), "D".charCodeAt(), "J".charCodeAt(), "K".charCodeAt(), Keyboard.SPACE, "L".charCodeAt(0)], [Keyboard.UP, Keyboard.DOWN, Keyboard.LEFT, Keyboard.RIGHT, Keyboard.NUMPAD_4, Keyboard.NUMPAD_5, Keyboard.ENTER, Keyboard.NUMPAD_6]]; public static const VICTORY:String = "victory"; public function World(_arg1:DisplayObjectContainer, _arg2:Stage){ CAMERA_AMBER_FACTOR = 15; super(); if (_arg2 == null){ throw ("Error in World::World(). Parameter 2 cannot be null"); }; cameraCenter = new Point(400, 300); _stage = _arg2; _parent = _arg1; _soundID = ""; _background = new Bitmap(); _backgroundID = -1; _back = new MovieClip(); _waterClip = new MovieClip(); _windClip = new MovieClip(); _tileClip = new MovieClip(); _middle = new MovieClip(); _front = new MovieClip(); if (_parent.parent == null){ _stage.addChild(_parent); }; _bitmapLibrary = []; _bitmapNames = []; _tiles = []; _sprites = []; _players = []; _platforms = []; _enemies = []; _projectiles = []; _bossActivated = []; _wind = []; _ready = false; _time = 0; _timeSpeed = 1; _running = false; _startPoint = new Point(); _tileXStart = int.MAX_VALUE; _tileXEnd = int.MIN_VALUE; _tileYStart = int.MAX_VALUE; _tileYEnd = int.MIN_VALUE; _camOffsetX = 0; _camOffsetY = 0; _camShakeAngle = 0; _cameraOffsetX = 0; _focusOn = null; _cameraItem = null; _cameraPosition = new Point(NaN, NaN); _victory = false; _isPausable = true; _totalPieces = 0; _enemyLibrary = []; _enemyClipLibrary = []; _projectileLibrary = []; } public function destroy(){ var _local1:int; var _local2:Amber; if (_stage){ _stage.removeEventListener("enterFrame", frame); }; _local1 = 0; while (_local1 < _players.length) { _local2 = _players[_local1]; _local2.removeEventListener(Amber.VICTORY, victory); _local2.removeEventListener(Amber.DEAD, killPlayer); _local2.removeEventListener(Amber.CHECKPOINT, setPlayerStart); _local2.removeEventListener(Amber.STOMP, shakeCamera); _local2.removeEventListener(Amber.SEEK_PLAYER_1, gotoPlayer1); _local2.removeEventListener(Amber.PAUSE_GAME, pauseGame); _local2.removeEventListener(Amber.BOSS_ENCOUNTERED, findBosses); _local2.removeEventListener(EnemyEvent.BOSS_DEFEATED, removeBossBlocks); _local1++; }; } public function updateSprite(_arg1:GameSprite, _arg2:int){ var _local3:int; removeFromArray(_arg1, _sprites[_arg2]); _local3 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (!_sprites[_local3]){ _sprites[_local3] = []; }; addToArray(_arg1, _sprites[_local3]); } public function pauseGame(_arg1:Event){ if (!_isPausable){ return; }; start(); } public function get back():MovieClip{ return (_back); } public function getNextSurface(_arg1:Point, _arg2:Point, _arg3:Point):Array{ var _local4:Number; var _local5:Number; var _local6:Point; var _local7:int; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:int; var _local12:int; var _local13:int; _local4 = Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)); _local5 = Math.atan2(_arg3.y, _arg3.x); _local7 = 0; if (Geometry.angularDistance(_local5, _local4) >= 0){ _local6 = _arg2; } else { _local6 = _arg1; _local7 = 1; }; _local8 = Math.floor((_local6.x / Tile.TILE_SIZE)); _local9 = Math.floor((_local6.y / Tile.TILE_SIZE)); _local11 = (_local8 - 1); while (_local11 <= (_local8 + 1)) { if (!_tiles[_local11]){ } else { _local12 = (_local9 - 1); while (_local12 <= (_local9 + 1)) { if (!_tiles[_local11][_local12]){ } else { _local10 = _tiles[_local11][_local12].getSurfaces(); _local13 = 0; while (_local13 < _local10.length) { if (_local10[(_local13 + _local7)].equals(_local6)){ return ([_local10[_local13], _local10[(_local13 + 1)]]); }; _local13 = (_local13 + 2); }; }; _local12++; }; }; _local11++; }; return ([]); } public function unload(){ var _local1:int; _local1 = 0; while (_local1 < _players.length) { _players[_local1].destroy(); _local1++; }; destroy(); if (_back.parent){ _back.parent.removeChild(_back); }; if (_waterClip.parent){ _waterClip.parent.removeChild(_waterClip); }; if (_windClip.parent){ _windClip.parent.removeChild(_windClip); }; if (_tileClip.parent){ _tileClip.parent.removeChild(_tileClip); }; if (_middle.parent){ _middle.parent.removeChild(_middle); }; if (_front.parent){ _front.parent.removeChild(_front); }; if (_background.parent){ _background.parent.removeChild(_background); }; _background = new Bitmap(); _back = new MovieClip(); _waterClip = new MovieClip(); _windClip = new MovieClip(); _tileClip = new MovieClip(); _middle = new MovieClip(); _front = new MovieClip(); _backgroundID = -1; _local1 = 0; while (_local1 < _bitmapLibrary.length) { if (_bitmapLibrary[_local1] != null){ BitmapData(_bitmapLibrary[_local1]).dispose(); }; _local1++; }; _bitmapLibrary = []; _tiles = []; _bitmapNames = []; _sprites = []; _players = []; _platforms = []; _enemies = []; _wind = []; _ready = false; _time = 0; _timeSpeed = 1; _running = false; _startPoint = new Point(); _totalPieces = 0; _stage.removeEventListener("enterFrame", frame); } public function addTile(_arg1:Tile){ if (_tiles[_arg1.x] == undefined){ _tiles[_arg1.x] = []; }; if (_tiles[_arg1.x][_arg1.y] != undefined){ _tiles[_arg1.x][_arg1.y].destroy(); _tiles[_arg1.x][_arg1.y] = undefined; }; _tileClip.addChild(_arg1.clip); _tiles[_arg1.x][_arg1.y] = _arg1; _tileXStart = Math.min(_tileXStart, _arg1.x); _tileXEnd = Math.max(_tileXEnd, _arg1.x); _tileYStart = Math.min(_tileYStart, _arg1.y); _tileYEnd = Math.max(_tileYEnd, _arg1.y); } protected function bitmapLoaded(_arg1:Event){ var _local2:LoaderInfo; var _local3:Bitmap; var _local4:int; var _local5:String; var _local6:int; var _local7:int; var _local8:int; _local2 = (_arg1.currentTarget as LoaderInfo); _local3 = Bitmap(_local2.content); _local4 = (_local2.url.lastIndexOf("/") + 1); _local5 = _local2.url.slice(_local4, _local2.url.length); _local2.removeEventListener("complete", bitmapLoaded); _local2.removeEventListener("ioError", bitmapFailed); _local6 = 0; while (_local6 < _bitmapNames.length) { if (_bitmapNames[_local6] == _local5){ _bitmapLibrary[_local6] = _local3.bitmapData; if (_backgroundID == _local6){ backgroundID = _local6; }; _local7 = 0; while (_local7 < _tiles.length) { if (!_tiles[_local7]){ } else { _local8 = 0; while (_local8 < _tiles[_local7].length) { if (_tiles[_local7][_local8]){ _tiles[_local7][_local8].redraw(this); }; _local8++; }; }; _local7++; }; _local7 = 0; while (_local7 < _wind.length) { if (!_wind[_local7]){ } else { _local8 = 0; while (_local8 < _wind[_local7].length) { if (_wind[_local7][_local8]){ _wind[_local7][_local8].redraw(this); }; _local8++; }; }; _local7++; }; _local7 = 0; while (_local7 < _platforms.length) { if (!_platforms[_local7]){ } else { _local8 = 0; while (_local8 < _platforms[_local7].length) { if (_platforms[_local7][_local8]){ _platforms[_local7][_local8].redraw(this); }; _local8++; }; }; _local7++; }; _local7 = 0; while (_local7 < _sprites.length) { if (!_sprites[_local7]){ } else { _local8 = 0; while (_local8 < _sprites[_local7].length) { if (_sprites[_local7][_local8]){ _sprites[_local7][_local8].redraw(this); }; _local8++; }; }; _local7++; }; return; }; _local6++; }; throw (((("Error in World::bitmapLoaded(). Bitmap with URL " + _local2.url) + " is not in the library:\n") + _bitmapNames)); } public function hitSurfaces(_arg1:Array):Array{ var _local2:Array; var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = new Array(); _local3 = new Array(); _local4 = (_arg1[0].x / Tile.TILE_SIZE); _local5 = (_arg1[0].x / Tile.TILE_SIZE); _local6 = (_arg1[0].y / Tile.TILE_SIZE); _local7 = (_arg1[0].y / Tile.TILE_SIZE); _local8 = 1; while (_local8 < _arg1.length) { _local4 = Math.min(_local4, Math.floor((_arg1[_local8].x / Tile.TILE_SIZE))); _local6 = Math.min(_local6, Math.floor((_arg1[_local8].y / Tile.TILE_SIZE))); _local5 = Math.max(_local5, Math.floor((_arg1[_local8].x / Tile.TILE_SIZE))); _local7 = Math.max(_local7, Math.floor((_arg1[_local8].y / Tile.TILE_SIZE))); _local8++; }; _local9 = _local4; while (_local9 <= _local5) { if (!_tiles[_local9]){ } else { _local10 = _local6; while (_local10 <= _local7) { if (!_tiles[_local9][_local10]){ } else { _local3 = _tiles[_local9][_local10].getSurfaces(); _local11 = 0; while (_local11 < _local3.length) { if (Geometry.collide([_local3[_local11], _local3[(_local11 + 1)]], _arg1)){ _local2.push(_local3[_local11]); _local2.push(_local3[(_local11 + 1)]); }; _local11 = (_local11 + 2); }; }; _local10++; }; }; _local9++; }; return (_local2); } public function load(_arg1:String, _arg2:Boolean=true){ var _local3:String; var _local4:Boolean; var _local5:int; unload(); _parent.addChild(_background); _parent.addChild(_back); _parent.addChild(_waterClip); _parent.addChild(_windClip); _parent.addChild(_tileClip); _parent.addChild(_middle); _parent.addChild(_front); _local3 = ""; _local4 = false; _local5 = 0; while (_local5 < _arg1.length) { if (_arg1.charAt(_local5) == "{"){ _local4 = true; } else { if (_arg1.charAt(_local5) == "}"){ _local4 = false; readLine(_local3, _arg2); _local3 = ""; } else { if (_local4){ _local3 = (_local3 + _arg1.charAt(_local5)); }; }; }; _local5++; }; } public function get enemyLibrary():Array{ return (_enemyLibrary.concat()); } public function get front():MovieClip{ return (_front); } public function camera(_arg1:Point, _arg2:Point=null){ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:int; var _local8:int; var _local9:int; var _local10:Number; var _local11:int; var _local12:int; var _local13:int; var _local14:Number; var _local15:Number; var _local16:Number; if (_arg2 == null){ _arg2 = new Point(400, 300); }; if (_camShakeAngle > 0){ _local15 = ((MAX_SHAKE_AMPLITUDE * _camShakeAngle) / MAX_SHAKE_TIME); _local16 = (_camShakeAngle * SHAKE_ANGLE); _camOffsetX = ((Math.cos(_local16) * _local15) * 0.2); _camOffsetY = (Math.sin(_local16) * _local15); _camShakeAngle--; } else { _camOffsetX = 0; _camOffsetY = 0; _camShakeAngle = 0; }; _local3 = (_arg2.x - (_arg1.x * _parent.scaleX)); _local4 = (_arg2.y - (_arg1.y * _parent.scaleY)); if (_local3 > _parent.x){ _local5 = ((_local3 - (_arg2.x * CAMERA_RANGE)) - _parent.x); } else { _local5 = ((_local3 + (_arg2.x * CAMERA_RANGE)) - _parent.x); }; if (_local4 > _parent.y){ _local6 = ((_local4 - (_arg2.y * CAMERA_RANGE)) - _parent.y); } else { _local6 = ((_local4 + (_arg2.y * CAMERA_RANGE)) - _parent.y); }; if ((((((_local3 > _parent.x)) && ((_local5 > 0)))) || ((((_local3 < _parent.x)) && ((_local5 < 0)))))){ _parent.x = (_parent.x + _local5); _parent.x = Math.round(_parent.x); }; if ((((((_local4 > _parent.y)) && ((_local6 > 0)))) || ((((_local4 < _parent.y)) && ((_local6 < 0)))))){ _parent.y = (_parent.y + _local6); _parent.y = Math.round(_parent.y); }; _local7 = ((-(_tileXStart) * Tile.TILE_SIZE) * _parent.scaleX); _local8 = (((-(int((_tileXEnd + 1))) * Tile.TILE_SIZE) * _parent.scaleX) + (_arg2.x * 2)); if (_local8 > _local7){ _local7 = (_local7 + _local8); _local8 = (_local7 - _local8); _local7 = (_local7 - _local8); }; _parent.x = Math.max(_local8, _parent.x); _parent.x = Math.min(_local7, _parent.x); _local9 = (_background.width - (_arg2.x * 2)); _local10 = (Number((_parent.x - _local8)) / Number((_local7 - _local8))); _background.x = ((-(Number((1 - _local10))) * _local9) - (_parent.x / _parent.scaleX)); _local11 = ((-(_tileYStart) * Tile.TILE_SIZE) * _parent.scaleY); _local12 = (((-(int((_tileYEnd + 1))) * Tile.TILE_SIZE) * _parent.scaleY) + (_arg2.y * 2)); if (_local12 > _local11){ _local11 = (_local11 + _local12); _local12 = (_local11 - _local12); _local11 = (_local11 - _local12); }; _parent.y = Math.max(_local12, _parent.y); _parent.y = Math.min(_local11, _parent.y); _local13 = (_background.height - (_arg2.y * 2)); _local14 = (Number((_parent.y - _local12)) / Number((_local11 - _local12))); _background.y = ((-(Number((1 - _local14))) * _local13) - (_parent.y / _parent.scaleY)); _parent.x = (_parent.x + _camOffsetX); _parent.y = (_parent.y + _camOffsetY); _parent.x = Math.round(_parent.x); _parent.y = Math.round(_parent.y); } public function set timeSpeed(_arg1:Number){ _timeSpeed = Math.max(Math.min(_arg1, 2), 0.5); } public function set enemyLibrary(_arg1:Array){ if ((_arg1 is Array)){ _enemyLibrary = _arg1.concat(); }; } public function get pausable():Boolean{ return (_isPausable); } public function hitSprites(_arg1:GameSprite):Array{ var _local2:Array; var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:Array; var _local8:Rectangle; var _local9:Rectangle; var _local10:int; var _local11:int; _local2 = new Array(); _local3 = _arg1.getPoints(timeSpeed); _local4 = (_local3[0].x / Tile.TILE_SIZE); _local5 = (_local3[0].x / Tile.TILE_SIZE); _local6 = 1; while (_local6 < _local3.length) { _local4 = Math.min(_local4, Math.floor((_local3[_local6].x / Tile.TILE_SIZE))); _local5 = Math.max(_local5, Math.floor((_local3[_local6].x / Tile.TILE_SIZE))); _local6++; }; _local7 = []; _local8 = _arg1.getRect(); _local10 = (_local4 - 3); while (_local10 <= (_local5 + 3)) { if (_sprites[_local10]){ _local6 = 0; while (_local6 < _sprites[_local10].length) { if (_local8.intersects(_sprites[_local10][_local6].getRect())){ _local7.push(_sprites[_local10][_local6]); }; _local6++; }; }; if (_enemies[_local10]){ _local6 = 0; while (_local6 < _enemies[_local10].length) { if (_local8.intersects(_enemies[_local10][_local6].getRect())){ _local7.push(_enemies[_local10][_local6]); }; _local6++; }; }; if (_wind[_local10]){ _local6 = 0; while (_local6 < _wind[_local10].length) { if (_local8.intersects(_wind[_local10][_local6].getRect())){ _local7.push(_wind[_local10][_local6]); }; _local6++; }; }; _local10++; }; _local10 = ((_local4 - (Platform.MAX_RADIUS * 0.5)) - 2); while (_local10 <= ((_local5 + (Platform.MAX_RADIUS * 0.5)) + 2)) { if (_platforms[_local10]){ _local11 = 0; while (_local11 < _platforms[_local10].length) { if (_local8.intersects(_platforms[_local10][_local11].getRect())){ _local7.push(_platforms[_local10][_local11]); }; _local11++; }; }; _local10++; }; return (_local7); } public function set projectileLibrary(_arg1:Array){ if ((_arg1 is Array)){ _projectileLibrary = _arg1.concat(); }; } public function updateEnemy(_arg1:Enemy, _arg2:int){ var _local3:int; _local3 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local3 < 0){ _local3 = 0; }; if (((!(_enemies[_arg2])) || ((_arg2 == _local3)))){ return; }; removeFromArray(_arg1, _enemies[_arg2]); if (!_enemies[_local3]){ _enemies[_local3] = []; }; addToArray(_arg1, _enemies[_local3]); } public function addPlatform(_arg1:Platform){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (_platforms[_local2] == undefined){ _platforms[_local2] = []; }; if (_arg1.depth > 0){ _front.addChild(_arg1.clip); } else { _back.addChild(_arg1.clip); }; addToArray(_arg1, _platforms[_local2]); } public function get minX():int{ return (_tileXStart); } public function addWind(_arg1:Wind){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (_wind[_local2] == undefined){ _wind[_local2] = []; }; if (_arg1.depth > 0){ _windClip.addChild(_arg1.clip); } else { _windClip.addChild(_arg1.clip); }; addToArray(_arg1, _wind[_local2]); } public function victory(_arg1:Event){ _victory = true; } protected function bitmapFailed(_arg1:Event){ var _local2:LoaderInfo; _local2 = (_arg1.currentTarget as LoaderInfo); _local2.removeEventListener("complete", bitmapLoaded); _local2.removeEventListener("ioError", bitmapFailed); throw (("Error: Failed to load bitmap " + (_arg1.currentTarget as LoaderInfo).url)); } public function get startPoint():Point{ return (_startPoint); } public function set pausable(_arg1:Boolean):void{ _isPausable = _arg1; } public function set enemyClipLibrary(_arg1:Array){ if ((_arg1 is Array)){ _enemyClipLibrary = _arg1.concat(); }; } public function setPlayerStart(_arg1:CheckPointEvent){ var _local2:Amber; var _local3:int; var _local4:int; _local2 = (_arg1.currentTarget as Amber); _local3 = _local2.tX; _local4 = _local2.tY; _local2.tX = (_arg1.x / Tile.TILE_HALF); _local2.tY = (_arg1.y / Tile.TILE_HALF); if (((!((_local3 == _local2.tX))) || (!((_local4 == _local2.tY))))){ dispatchEvent(new CheckPointEvent(Amber.CHECKPOINT, _arg1.x, _arg1.y)); }; } public function get minY():int{ return (_tileYStart); } public function start(_arg1:Event=null){ if (_running){ _stage.removeEventListener("enterFrame", frame); } else { _stage.addEventListener("enterFrame", frame, false, 0, true); }; _running = !(_running); } public function removeEnemy(_arg1:Enemy){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (!_enemies[_local2]){ throw ((((("ERROR in World::removeEnemy(). _enemies[" + _local2) + "] does not exist. Character at position ") + _arg1.x) + " could not be removed.")); }; if (((_arg1.clip) && (_arg1.clip.parent))){ _arg1.clip.parent.removeChild(_arg1.clip); }; removeFromArray(_arg1, _enemies[_local2]); } public function addEnemy(_arg1:Enemy){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (_enemies[_local2] == undefined){ _enemies[_local2] = []; }; if (_arg1.depth > 0){ _front.addChild(_arg1.clip); } else { _back.addChild(_arg1.clip); }; addToArray(_arg1, _enemies[_local2]); } public function removeSprite(_arg1:GameSprite){ var _local2:int; var _local3:Block; var _local4:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (!_sprites[_local2]){ throw ((((("ERROR in World::removeSprite(). _sprites[" + _local2) + "] does not exist. Sprite at position ") + _arg1.x) + " could not be removed.")); }; if (((_arg1.clip) && (_arg1.clip.parent))){ _arg1.clip.parent.removeChild(_arg1.clip); }; removeFromArray(_arg1, _sprites[_local2]); if (_arg1.type == "block"){ _local3 = (_arg1 as Block); _local4 = 0; while (_local4 < 4) { if (_local3.getNeighbor(_local4)){ _local3.getNeighbor(_local4).setNeighbor(((_local4 + 2) % 4), null); _local3.setNeighbor(_local4, null); }; _local4++; }; }; if ((((_arg1.type == "block")) && ((Block(_arg1).subtype == Block.BOSS_BLOCK)))){ removeFromArray(_arg1, _bossActivated); }; } public function get soundID():String{ return (_soundID); } public function frame(_arg1:Event){ var _local2:int; var _local3:int; var _local4:Point; var _local5:Array; var _local6:Array; var _local7:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:int; var _local12:int; var _local13:Point; var _local14:Number; var _local15:int; _local4 = new Point(); _local5 = []; _local6 = []; _local12 = 0; while (_local12 < _projectiles.length) { if (_projectiles[_local12]){ _projectiles[_local12].behaviour(this); }; _local12++; }; _local7 = 0; while (_local7 < _players.length) { if (!_players[_local7]){ } else { _local2 = (Math.floor((_players[_local7].x / Tile.TILE_SIZE)) - 1); _local3 = (Math.ceil((_players[_local7].x / Tile.TILE_SIZE)) + 1); _local11 = ((_local2 - (Platform.MAX_RADIUS * 0.5)) - 3); while (_local11 <= ((_local3 + (Platform.MAX_RADIUS * 0.5)) + 3)) { if (((!(_platforms[_local11])) || ((_local6[_local11] == true)))){ } else { _local6[_local11] = true; _local12 = 0; while (_local12 < _platforms[_local11].length) { _local13 = _platforms[_local11][_local12].position(_time); _platforms[_local11][_local12].x = _local13.x; _platforms[_local11][_local12].y = _local13.y; _local12++; }; }; _local11++; }; _local11 = ((_local2 - ACTIVE_AREA_RADIUS) - 2); while (_local11 <= ((_local3 + ACTIVE_AREA_RADIUS) + 2)) { if (_local5[_local11] != true){ if (_enemies[_local11]){ _local12 = 0; while (_local12 < _enemies[_local11].length) { if (_enemies[_local11][_local12]){ _local14 = _enemies[_local11][_local12].x; _local15 = _enemies[_local11].length; _enemies[_local11][_local12].behaviour(this); if (_local15 == _enemies[_local11].length){ updateEnemy(_enemies[_local11][_local12], Math.floor((_local14 / Tile.TILE_SIZE))); }; }; _local12++; }; }; if (_wind[_local11]){ _local12 = 0; while (_local12 < _wind[_local11].length) { if (_wind[_local11][_local12]){ _wind[_local11][_local12].behaviour(this); }; _local12++; }; }; }; _local5[_local11] = true; _local11++; }; _players[_local7].behaviour(this); if (_players[_local7]){ _local4.offset(_players[_local7].x, _players[_local7].y); }; }; _local7++; }; if (!_players.length){ dispatchEvent(new Event(GAME_OVER)); return; }; _local8 = (1 / _players.length); _local4.x = (_local4.x * _local8); _local4.y = (_local4.y * _local8); _local4.y = (_local4.y - (_players[0].clip.hitbox.height * 0.5)); _local9 = _players[0].vX; _local10 = _players[0].vY; _cameraOffsetX = (_cameraOffsetX + (((_local9 * CAMERA_AMBER_FACTOR) - _cameraOffsetX) * CAMERA_AMBER_SPEED)); _local4.x = (_local4.x + _cameraOffsetX); if (((_focusOn) && (!(((isNaN(_focusOn.x)) || (isNaN(_focusOn.y))))))){ _local4.x = _focusOn.x; _local4.y = _focusOn.y; }; if (isNaN(_cameraPosition.x)){ _cameraPosition.x = _local4.x; _cameraPosition.y = _local4.y; } else { _cameraPosition.x = (_cameraPosition.x + ((_local4.x - _cameraPosition.x) * CAMERA_SPEED)); _cameraPosition.y = (_cameraPosition.y + ((_local4.y - _cameraPosition.y) * CAMERA_SPEED)); }; camera(_cameraPosition, cameraCenter); _time = (_time + _timeSpeed); if (_victory){ dispatchEvent(new Event(VICTORY)); }; } public function getBlockAt(_arg1:int, _arg2:int):Block{ var _local3:int; var _local4:int; _local3 = (_arg1 >> 1); if (_sprites[_local3]){ _local4 = 0; while (_local4 < _sprites[_local3].length) { if ((((((_sprites[_local3][_local4].tX == _arg1)) && ((_sprites[_local3][_local4].tY == _arg2)))) && ((_sprites[_local3][_local4].type == "block")))){ return (_sprites[_local3][_local4]); }; _local4++; }; }; return (null); } public function get maxX():int{ return (_tileXEnd); } public function get maxY():int{ return (_tileYEnd); } public function findBosses(_arg1:Event){ var _local2:int; var _local3:int; var _local4:int; var _local5:Array; var _local6:int; var _local7:Enemy; _local4 = _enemies.length; _local2 = 0; while (_local2 < _local4) { _local5 = _enemies[_local2]; if (_local5){ _local6 = _local5.length; _local3 = 0; while (_local3 < _local6) { _local7 = (_local5[_local3] as Enemy); if (((_local7) && (_local7.boss))){ _local7.activate(this); _local7.amber = (_arg1.currentTarget as Amber); dispatchEvent(new EnemyEvent(EnemyEvent.BOSS_ACTIVATED, _local7)); _focusOn = _cameraItem; return; }; _local3++; }; }; _local2++; }; } public function addProjectile(_arg1:Projectile){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (_arg1.depth > 0){ _front.addChild(_arg1.clip); } else { _back.addChild(_arg1.clip); }; addToArray(_arg1, _projectiles); } public function get timeSpeed():Number{ return (_timeSpeed); } public function getBitmapByID(_arg1:int):BitmapData{ if ((((_arg1 >= _bitmapLibrary.length)) || ((_arg1 < 0)))){ return (null); }; if (_bitmapLibrary[_arg1]){ return (_bitmapLibrary[_arg1]); }; return (null); } public function setup(_arg1:Array, _arg2:Array=null){ var _local3:int; var _local4:Controller; var _local5:Amber; if (_arg2 == null){ _arg2 = DEFAULT_PLAYER_CONFIG; }; _local3 = 0; while (_local3 < _arg1.length) { _local4 = new Controller(_stage); _local4.keyconfig = _arg2[_local3]; _local5 = new Amber(_startPoint.x, _startPoint.y, _arg1[_local3], _local4); _local5.fireImage = _projectileLibrary[0]; _local5.appleImage = _projectileLibrary[1]; _local5.addEventListener(Amber.VICTORY, victory, false, 0, true); _local5.addEventListener(Amber.DEAD, killPlayer, false, 100, true); _local5.addEventListener(Amber.CHECKPOINT, setPlayerStart, false, 0, true); _local5.addEventListener(Amber.STOMP, shakeCamera, false, 0, true); _local5.addEventListener(Amber.SEEK_PLAYER_1, gotoPlayer1, false, 0, true); _local5.addEventListener(Amber.PAUSE_GAME, pauseGame, false, 0, true); _local5.addEventListener(Amber.BOSS_ENCOUNTERED, findBosses, false, 0, true); _local5.addEventListener(EnemyEvent.BOSS_DEFEATED, removeBossBlocks, false, 0, true); _local5.playerID = _local3; addPlayer(_local5); _local3++; }; _parent.x = (400 - ((_startPoint.x * Tile.TILE_HALF) * _parent.scaleX)); _parent.y = (300 - ((_startPoint.y * Tile.TILE_HALF) * _parent.scaleY)); } public function removePlayer(_arg1:Amber){ var _local2:int; _local2 = 0; while (_local2 < _players.length) { if (_players[_local2] == _arg1){ _middle.removeChild(_arg1.clip); removeFromArray(_arg1, _players); return; }; _local2++; }; } public function get projectileLibrary():Array{ return (_projectileLibrary.concat()); } public function get middle():MovieClip{ return (_middle); } public function save():String{ var _local1:String; var _local2:int; var _local3:Wind; var _local4:int; var _local5:GameSprite; var _local6:String; var _local7:Platform; var _local8:Enemy; var _local9:int; var _local10:int; _local1 = ""; _local1 = (_local1 + "stages.push(String(<![CDATA[\n\n"); _local1 = (_local1 + "[BITMAPS]\n"); _local2 = 0; while (_local2 < _bitmapNames.length) { _local1 = (_local1 + (("{BITMAP," + _bitmapNames[_local2]) + "}\n")); _local2++; }; _local1 = (_local1 + "[BACKGROUND]\n"); _local1 = (_local1 + (("{BACKGROUND," + _backgroundID) + "}\n")); _local1 = (_local1 + "[START POINT]\n"); _local1 = (_local1 + (((("{START," + _startPoint.x) + ",") + _startPoint.y) + "}\n")); _local1 = (_local1 + "[TILES]\n"); _local2 = 0; while (_local2 < _tiles.length) { if (!_tiles[_local2]){ } else { _local4 = 0; while (_local4 < _tiles[_local2].length) { if (!_tiles[_local2][_local4]){ } else { _local1 = (_local1 + (((((((((("{TILE," + _local2) + ",") + _local4) + ",") + _tiles[_local2][_local4].start) + ",") + _tiles[_local2][_local4].end) + ",") + int(_tiles[_local2][_local4].center)) + ",")); _local1 = (_local1 + (((_tiles[_local2][_local4].bitmapID + ",") + _tiles[_local2][_local4].color) + "}\n")); }; _local4++; }; }; _local2++; }; _local1 = (_local1 + "[SPRITES]\n"); _local2 = 0; while (_local2 < _sprites.length) { if (!_sprites[_local2]){ } else { _local4 = 0; while (_local4 < _sprites[_local2].length) { _local5 = _sprites[_local2][_local4]; _local6 = (((((((("{SPRITE," + _local5.type) + ",") + _local5.tX) + ",") + _local5.tY) + ",") + _local5.depth) + ","); switch (_local5.type){ case "item": _local6 = (_local6 + ((Item(_local5).subtype + ",") + Item(_local5).bitmapID)); break; case "block": if (Block(_local5).subtype == Block.MESSAGE_BLOCK){ _local6 = (((((("{SPRITE,message," + _local5.tX) + ",") + _local5.tY) + ",") + _local5.depth) + ","); _local6 = (_local6 + ((MessageBlock(_local5).bitmapID + ",") + MessageBlock(_local5).message)); } else { if (Block(_local5).subtype == Block.SPIKE_BLOCK){ _local6 = (((((("{SPRITE,spike," + _local5.tX) + ",") + _local5.tY) + ",") + _local5.depth) + ","); _local6 = (_local6 + ((SpikeBlock(_local5).bitmapID + ",") + SpikeBlock(_local5).orientation)); } else { if (Block(_local5).subtype == Block.CONTAINER_BLOCK){ _local6 = (((((("{SPRITE,container," + _local5.tX) + ",") + _local5.tY) + ",") + _local5.depth) + ","); _local6 = (_local6 + ((Container(_local5).bitmapID + ",") + Container(_local5).numItems)); } else { _local6 = (_local6 + ((Block(_local5).subtype + ",") + Block(_local5).bitmapID)); }; }; }; break; case "oneway": _local6 = (_local6 + ((OneWayWall(_local5).bitmapID + ",") + OneWayWall(_local5).direction)); break; }; _local1 = (_local1 + _local6); _local1 = (_local1 + "}\n"); _local4++; }; }; _local2++; }; _local2 = 0; while (_local2 < _wind.length) { if (!_wind[_local2]){ } else { _local4 = 0; while (_local4 < _wind[_local2].length) { _local3 = _wind[_local2][_local4]; _local6 = (((((((("{SPRITE," + _local3.type) + ",") + _local3.tX) + ",") + _local3.tY) + ",") + _local3.depth) + ","); _local6 = (_local6 + ((((_local3.orientation + ",") + _local3.speed) + ",") + _local3.bitmapID)); _local1 = (_local1 + _local6); _local1 = (_local1 + "}\n"); _local4++; }; }; _local2++; }; _local1 = (_local1 + "\n[PLATFORMS]\n"); _local2 = 0; while (_local2 < _platforms.length) { if (!_platforms[_local2]){ } else { _local4 = 0; while (_local4 < _platforms[_local2].length) { _local7 = _platforms[_local2][_local4]; _local1 = (_local1 + (((((("{PLATFORM," + _local7.tX) + ",") + _local7.tY) + ",") + _local7.depth) + ",")); _local1 = (_local1 + (((((_local7.bitmapID + ",") + _local7.hScale) + ",") + _local7.vScale) + ",")); _local1 = (_local1 + ((((Math.floor(((_local7.radius * 2) / Tile.TILE_SIZE)).toString() + ",") + int(Math.floor(((_local7.phase * 180) / Math.PI))).toString()) + ",") + int((_local7.period / 20)).toString())); _local1 = (_local1 + "}\n"); _local4++; }; }; _local2++; }; _local1 = (_local1 + "[ENEMIES]\n"); _local2 = 0; while (_local2 < _enemies.length) { if (!_enemies[_local2]){ } else { _local4 = 0; while (_local4 < _enemies[_local2].length) { _local8 = _enemies[_local2][_local4]; _local9 = _local8.id; _local10 = _local8.clipID; _local1 = (_local1 + (((((((((((((((("{ENEMY," + _local8.tX) + ",") + _local8.tY) + ",") + _local8.depth) + ",") + _local8.id) + ",") + _local8.clipID) + ",") + int(_local8.fireResistant).toString()) + ",") + int(_local8.attackResistant).toString()) + ",") + int(_local8.jumpResistant).toString()) + "}\n")); _local4++; }; }; _local2++; }; _local1 = (_local1 + "\n]]>));"); return (_local1); } public function get enemyClipLibrary():Array{ return (_enemyClipLibrary.concat()); } public function get totalPieces():int{ return (_totalPieces); } public function set backgroundID(_arg1:int){ if (_arg1 > _bitmapLibrary.length){ trace("Error in function World::backgroundID(n:int). Input parameter out of range."); return; }; _backgroundID = _arg1; if (_background.parent){ _background.parent.removeChild(_background); }; if ((((_arg1 < 0)) || ((_bitmapLibrary[_arg1] == null)))){ _background = new Bitmap(); _parent.addChildAt(_background, 0); return; }; _background = new Bitmap(_bitmapLibrary[_arg1]); _parent.addChildAt(_background, 0); } public function removeProjectile(_arg1:Projectile){ var _local2:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_local2 < 0){ _local2 = 0; }; if (((_arg1.clip) && (_arg1.clip.parent))){ _arg1.clip.parent.removeChild(_arg1.clip); }; removeFromArray(_arg1, _projectiles); } private function readLine(_arg1:String, _arg2:Boolean=true){ var list:Array; var t:Tile; var plat:Platform; var eClass:Class; var eClip:Class; var enemy:Enemy; var item:Item; var blk:Block; var msgBlk:MessageBlock; var wind:Wind; var spkBlk:SpikeBlock; var oneBlk:OneWayWall; var contBlk:Container; var str = _arg1; var useLibrary = _arg2; list = str.split(","); switch (list[0]){ case "BITMAP": loadBitmap(list[1], useLibrary); break; case "BACKGROUND": backgroundID = int(list[1]); break; case "MUSIC": _soundID = list[1]; break; case "TILE": t = new Tile(new Point(int(list[1]), int(list[2])), int(list[3]), int(list[4]), Boolean(int(list[5])), getBitmapByID(list[6]), int(list[6]), int(list[7])); addTile(t); case "SPRITE": switch (list[1]){ case "item": item = new Item(int(list[2]), int(list[3]), list[5], getBitmapByID(int(list[6])), int(list[6])); item.depth = int(list[4]); addSprite(item); break; case "block": blk = new Block(int(list[2]), int(list[3]), int(list[5]), getBitmapByID(int(list[6])), int(list[6])); blk.depth = int(list[4]); addSprite(blk); break; case "message": msgBlk = new MessageBlock(int(list[2]), int(list[3]), list.slice(6, list.length).join(","), getBitmapByID(int(list[5])), int(list[5])); msgBlk.depth = int(list[4]); addSprite(msgBlk); break; case "wind": if (list.length < 8){ wind = new Wind(int(list[2]), int(list[3]), int(list[5]), int(list[6])); } else { wind = new Wind(int(list[2]), int(list[3]), int(list[5]), int(list[6]), getBitmapByID(int(list[7])), int(list[7])); }; wind.depth = int(list[4]); addWind(wind); break; case "spike": spkBlk = new SpikeBlock(int(list[2]), int(list[3]), int(list[6]), getBitmapByID(int(list[5])), int(list[5])); spkBlk.depth = int(list[4]); addSprite(spkBlk); break; case "oneway": oneBlk = new OneWayWall(int(list[2]), int(list[3]), int(list[6]), getBitmapByID(int(list[5])), int(list[5])); oneBlk.depth = int(list[4]); addSprite(oneBlk); break; case "container": contBlk = new Container(int(list[2]), int(list[3]), int(list[6]), getBitmapByID(int(list[5])), int(list[5])); contBlk.depth = int(list[4]); addSprite(contBlk); break; }; break; case "PLATFORM": plat = new Platform(int(list[1]), int(list[2]), getBitmapByID(int(list[4])), int(list[4]), Number(list[5]), Number(list[6]), Number(list[7]), Number(list[8]), Number(list[9])); plat.depth = int(list[4]); addPlatform(plat); break; case "ENEMY": if (list.length < 6){ trace("YOUR STAGE IS OUTDATED. DELETE THE OLD ENEMY ITEMS"); break; }; try { eClass = (_enemyLibrary[int(list[4])] as Class); eClip = (_enemyClipLibrary[int(list[5])] as Class); } catch(E) { trace(((("Error loading enemy ID:" + int(list[4])) + " Clip:") + int(list[5]))); trace(E.message); break; }; if (!eClass){ trace((("Error in World::readLine. Enemy[" + int(list[4])) + "] does not exist")); break; }; if (!eClip){ trace((("Error in World::readLine. EnemyClip[" + int(list[5])) + "] does not exist")); break; }; enemy = new eClass(int(list[1]), int(list[2]), eClip, int(list[4]), int(list[5])); enemy.depth = int(list[3]); addEnemy(enemy); break; case "START": _startPoint.x = int(list[1]); _startPoint.y = int(list[2]); break; }; } public function get players():Array{ return (_players); } public function set focusOn(_arg1:Object){ _focusOn = _arg1; } public function gotoPlayer1(_arg1:Event){ var _local2:Amber; var _local3:int; _local2 = (_arg1.currentTarget as Amber); _local3 = 0; while (_local3 < _players.length) { if (((_players[_local3]) && ((_players[_local3].playerID == 0)))){ _local2.x = _players[_local3].x; _local2.y = _players[_local3].y; }; _local3++; }; } public function loadBitmap(_arg1:String, _arg2:Boolean=true){ var i:int; var image:BitmapData; var ImageClass:Class; var req:URLRequest; var loader:Loader; var loadInfo:LoaderInfo; var bmp = _arg1; var useLibrary = _arg2; i = 0; while (i < _bitmapNames.length) { if (_bitmapNames[i] == bmp){ return; }; i = (i + 1); }; _bitmapNames.push(bmp); image = null; try { if (useLibrary){ ImageClass = Class(getDefinitionByName(bmp)); image = BitmapData(new ImageClass(0, 0)); } else { req = new URLRequest(bmp); loader = new Loader(); loadInfo = loader.contentLoaderInfo; loadInfo.addEventListener("complete", bitmapLoaded, false, 0, true); loadInfo.addEventListener("ioError", bitmapFailed, false, 0, true); loader.load(req); }; } catch(E:Error) { if (useLibrary){ trace((("Error in World::loadBitmap(). Class " + bmp) + " does not exist.")); image = new BitmapData(Tile.TILE_SIZE, Tile.TILE_SIZE); }; }; _bitmapLibrary.push(image); } public function get running():Boolean{ return (_running); } public function killSprite(_arg1:GameSprite){ removeSprite(_arg1); } public function shakeCamera(_arg1){ if (_camShakeAngle > 0){ return; }; _camShakeAngle = MAX_SHAKE_TIME; } public function get backgroundID():int{ return (_backgroundID); } public function set soundID(_arg1:String){ _soundID = _arg1; } public function get time():Number{ return (_time); } public function get focusOn():Object{ return (_focusOn); } public function killPlayer(_arg1:Event){ var _local2:Amber; _local2 = (_arg1.currentTarget as Amber); if (_local2.lives == 0){ removePlayer(_local2); return; }; _local2.reset(false); } public function addPlayer(_arg1:Amber){ _middle.addChild(_arg1.clip); addToArray(_arg1, _players); } public function addSprite(_arg1:GameSprite){ var _local2:int; var _local3:Block; var _local4:int; _local2 = Math.floor((_arg1.x / Tile.TILE_SIZE)); if (_sprites[_local2] == undefined){ _sprites[_local2] = []; }; if ((((_arg1.type == "item")) && ((Item(_arg1).subtype == Item.WATER)))){ _waterClip.addChild(_arg1.clip); } else { if (_arg1.depth > 0){ _front.addChild(_arg1.clip); } else { _back.addChild(_arg1.clip); }; }; if ((((_arg1.type == "item")) && ((Item(_arg1).subtype == Item.HEALTH)))){ _totalPieces++; }; if ((((_arg1.type == "item")) && ((Item(_arg1).subtype == Item.CAMERA)))){ _cameraItem = _arg1; }; addToArray(_arg1, _sprites[_local2]); if ((((_arg1.type == "block")) && ((Block(_arg1).subtype == Block.BOSS_BLOCK)))){ addToArray(_arg1, _bossActivated); }; if (_arg1.type == "block"){ _local3 = (_arg1 as Block); _local3.setNeighbor(Block.LEFT, getBlockAt((_local3.tX - 1), _local3.tY)); _local3.setNeighbor(Block.RIGHT, getBlockAt((_local3.tX + 1), _local3.tY)); _local3.setNeighbor(Block.TOP, getBlockAt(_local3.tX, (_local3.tY - 1))); _local3.setNeighbor(Block.BOTTOM, getBlockAt(_local3.tX, (_local3.tY + 1))); _local4 = 0; while (_local4 < 4) { if (_local3.getNeighbor(_local4)){ _local3.getNeighbor(_local4).setNeighbor(((_local4 + 2) % 4), _local3); }; _local4++; }; }; } public function highestSurfaceUnder(_arg1:Array, _arg2:Point):Number{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Number; var _local9:int; var _local10:int; var _local11:Tile; var _local12:Array; var _local13:Point; var _local14:Point; var _local15:int; var _local16:Point; var _local17:Point; var _local18:Point; var _local19:Number; if (_arg2.y < (-(Math.abs(_arg2.x)) - Geometry.TOLERANCE)){ return (NaN); }; _local3 = (_arg1[0].x / Tile.TILE_SIZE); _local4 = (_arg1[0].x / Tile.TILE_SIZE); _local5 = (_arg1[0].y / Tile.TILE_SIZE); _local6 = (_arg1[0].y / Tile.TILE_SIZE); _local7 = 1; while (_local7 < _arg1.length) { _local3 = Math.min(_local3, Math.floor((_arg1[_local7].x / Tile.TILE_SIZE))); _local5 = Math.min(_local5, Math.floor((_arg1[_local7].y / Tile.TILE_SIZE))); _local4 = Math.max(_local4, Math.floor((_arg1[_local7].x / Tile.TILE_SIZE))); _local6 = Math.max(_local6, Math.floor((_arg1[_local7].y / Tile.TILE_SIZE))); _local7++; }; _local8 = Infinity; _local9 = (_local3 - 1); while (_local9 <= (_local4 + 1)) { if (!_tiles[_local9]){ } else { _local10 = (_local5 - 1); while (_local10 <= (_local6 + 1)) { _local11 = _tiles[_local9][_local10]; if (_local11){ _local12 = _local11.getSurfaces(); _local7 = 0; while (_local7 < _arg1.length) { _local13 = _arg1[_local7]; _local13 = _local13.clone(); _local14 = _local13.clone(); _local13.clone().y = (_local14.y + Math.min(Tile.TILE_SIZE, (Math.abs(_arg2.x) * 1.1))); _local13.y--; _local15 = 0; while (_local15 < _local12.length) { _local16 = _local12[_local15]; _local17 = _local12[(_local15 + 1)]; _local18 = Geometry.intersectLines(_local13, _local14, _local16, _local17); if (_local18 != null){ _local19 = (_local18.y - _local13.y); if ((((_local19 > 0)) && ((_local19 < _local8)))){ _local8 = _local19; }; }; _local15 = (_local15 + 2); }; _local7++; }; }; _local10++; }; }; _local9++; }; if (_local8 < Infinity){ return ((_local8 + 1)); }; return (NaN); } public function addToParent(){ _parent.addChild(_background); _parent.addChild(_back); _parent.addChild(_waterClip); _parent.addChild(_windClip); _parent.addChild(_tileClip); _parent.addChild(_middle); _parent.addChild(_front); } public function removeBossBlocks(_arg1:Event){ while (_bossActivated.length) { _bossActivated[0].smash(this); }; _bossActivated = []; if (((_cameraItem) && ((_focusOn == _cameraItem)))){ _cameraItem = (_focusOn = null); }; } public static function removeFromArray(_arg1, _arg2:Array){ var _local3:int; _local3 = 0; while (_local3 < _arg2.length) { if (_arg2[_local3] == _arg1){ _arg2.splice(_local3, 1); return; }; _local3++; }; } public static function addToArray(_arg1, _arg2:Array){ var _local3:int; _local3 = 0; while (_local3 < _arg2.length) { if (_arg2[_local3] == _arg1){ return; }; _local3++; }; _arg2[_local3] = _arg1; } } }//package amber3Section 26//png (beach_medsand.png) package beach_medsand { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package beach_medsandSection 27//png (cave_b.png) package cave_b { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package cave_bSection 28//png (cave_bg.png) package cave_bg { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package cave_bgSection 29//png (cave_bigp.png) package cave_bigp { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package cave_bigpSection 30//png (cave_floor1.png) package cave_floor1 { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package cave_floor1Section 31//png (cave_medb.png) package cave_medb { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package cave_medbSection 32//wav (cave_short.wav) package cave_short { import flash.media.*; public dynamic class wav extends Sound { } }//package cave_shortSection 33//png (empty.png) package empty { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package emptySection 34//wav (field.wav) package field { import flash.media.*; public dynamic class wav extends Sound { } }//package fieldSection 35//wav (forest.wav) package forest { import flash.media.*; public dynamic class wav extends Sound { } }//package forestSection 36//png (plain_dirt.png) package plain_dirt { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plain_dirtSection 37//png (plain_dirt2.png) package plain_dirt2 { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plain_dirt2Section 38//png (plain_dirt3.png) package plain_dirt3 { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plain_dirt3Section 39//png (plain_music.png) package plain_music { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plain_musicSection 40//png (plain_switch.png) package plain_switch { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plain_switchSection 41//png (plains1bg.png) package plains1bg { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package plains1bgSection 42//MainTimeline (previewDX_fla.MainTimeline) package previewDX_fla { import flash.media.*; import flash.events.*; import flash.display.*; import flash.geom.*; import amber3.*; import flash.utils.*; import flash.ui.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.system.*; import flash.text.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public const STAGE_WIDTH:int = 400; public const AMBER_ENEMY_LIST:Array; public const PROJECTILE_LIBRARY:Array; public const STAGE_HEIGHT:int = 300; public const AMBER_ENEMY_CLIPS:Array; public var PLAYING:Boolean; public var amber:Amber; public var cover_mc:MovieClip; public var title_mc:MovieClip; public var backgrounds:Array; public var globalSound:AmberSound; public var stages:Array; public var sounds:Array; public var UNLOADING:Boolean; public var RECORD:Array; public var lcd_stolen_bg:MovieClip; public var fadeValue:int; public var world_mc:MovieClip; public var play_mc:MovieClip; public var world:World; public var globalSoundTransform:SoundTransform; public var MAX_FADE_VALUE:int; public var bounds:Rectangle; public var RECORDED:Array; public var currentItems:int; public var lcd_stolen_item:MovieClip; public var lcd_stolen:String; public var black_mc:Bitmap; public var sound_mc:MovieClip; public var RECORDING:Boolean; public function MainTimeline(){ AMBER_ENEMY_LIST = []; AMBER_ENEMY_CLIPS = []; PROJECTILE_LIBRARY = [FireBall, ThrowableApple]; super(); addFrameScript(0, frame1); } public function eFrame(_arg1:Event){ if (RECORDING){ RECORDED[RECORDED.length] = amber.controller.binaryState; }; if (UNLOADING){ if (fadeValue < MAX_FADE_VALUE){ fadeValue++; title_mc.alpha = (black_mc.alpha = (Number(fadeValue) / MAX_FADE_VALUE)); } else { unloadGame(null); }; } else { if (fadeValue > 0){ fadeValue--; black_mc.alpha = (Number(fadeValue) / MAX_FADE_VALUE); }; }; } public function loadGame(_arg1:Event=null){ var _local2:ProgrammedInput; if (title_mc.parent){ stage.removeChild(title_mc); }; play_mc.removeEventListener(MouseEvent.CLICK, loadGame, false); stage.removeChild(play_mc); globalSound.stop(); globalSoundTransform.volume = 0; currentItems = 0; world = new World(world_mc, stage); world.CAMERA_AMBER_FACTOR = 0; world.cameraCenter = new Point((STAGE_WIDTH * 0.5), (STAGE_HEIGHT * 0.5)); world.enemyLibrary = AMBER_ENEMY_LIST; world.enemyClipLibrary = AMBER_ENEMY_CLIPS; world.projectileLibrary = PROJECTILE_LIBRARY; world.load(stages[0], true); world.setup([AmberClip]); amber = world.players[0]; amber.modesUnlocked = 5; amber.animations = [10, 11, 10, 13, 14, 29, 35, 46, 50, 54, 55, 59, 60, 64, 66, 73, 11, 11, 10, 11, 10, 11, 85, 90, 92, 95, 97, 112, 118, 129, 133, 136, 138, 141, 143, 146, 148, 153, 154, 158, 167, 170, 171, 175, 185, 191, 192, 195, 197, 212, 218, 229, 233, 236, 238, 241, 243, 246, 248, 0x0100, 269, 272, 280, 291, 295, 300, 305, 318, 319, 323, 324, 339, 345, 356, 360, 364, 365, 368, 370, 373, 376, 378, 379, 381, 384, 393, 397, 410, 413, 429, 432, 436, 437, 452, 458, 469, 473, 477, 478, 482, 483, 487, 488, 498, 520, 527, 531, 538, 499, 515]; amber.lives = 1; amber.maxHealth = 2; amber.health = 2; amber.soundTransform = globalSoundTransform; world.backgroundID = backgrounds[0]; amber.addEventListener(Amber.COLLECT_ITEM, hitItem, false, 0, true); if (PLAYING){ _local2 = new ProgrammedInput(stage, RECORD, false, true); amber.controller = _local2; _local2.begin(); }; if (RECORDING){ RECORDED = []; }; world.start(); stage.addEventListener(Event.ENTER_FRAME, eFrame); UNLOADING = false; stage.addChild(sound_mc); stage.addChild(cover_mc); stage.addChild(black_mc); fadeValue = MAX_FADE_VALUE; black_mc.alpha = 0; } function frame1(){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; lcd_stolen = new LocalConnection().domain; if (lcd_stolen.indexOf("swfchan") != -1){ stop(); lcd_stolen_bg = new MovieClip(); while (numChildren) { removeChildAt(0); }; lcd_stolen_bg.graphics.beginFill(0xFFFFFF); lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); lcd_stolen_bg.graphics.endFill(); lcd_stolen_item = new MovieClip(); lcd_stolen_item.tF = new TextFormat(); lcd_stolen_item.tF.bold = true; lcd_stolen_item.tF.size = 64; lcd_stolen_item.tF.color = 0xFF2200; lcd_stolen_item.tF.font = "Trebuchet MS"; lcd_stolen_item.txt = new TextField(); lcd_stolen_item.txt.defaultTextFormat = lcd_stolen_item.tF; lcd_stolen_item.txt.text = "swfchan.com"; lcd_stolen_item.txt.width = (lcd_stolen_item.txt.textWidth + 5); lcd_stolen_item.txt.height = (lcd_stolen_item.txt.textHeight + 5); lcd_stolen_item.bmp = new Bitmap(new BitmapData((lcd_stolen_item.txt.textWidth + 5), (lcd_stolen_item.txt.textHeight + 5), true, 0)); lcd_stolen_item.bmp.bitmapData.draw(lcd_stolen_item.txt); lcd_stolen_item.bmp.x = (lcd_stolen_item.bmp.x - (lcd_stolen_item.bmp.width * 0.5)); lcd_stolen_item.bmp.y = (lcd_stolen_item.bmp.y - (lcd_stolen_item.bmp.height * 0.5)); lcd_stolen_item.addChild(lcd_stolen_item.bmp); delete lcd_stolen_item.txt; delete lcd_stolen_item.tF; lcd_stolen_item.x = (Math.random() * stage.stageWidth); lcd_stolen_item.y = (Math.random() * stage.stageWidth); lcd_stolen_item.vX = (5 + (Math.random() * 10)); lcd_stolen_item.vY = (5 + (Math.random() * 10)); lcd_stolen_item.vR = (1 + ((Math.random() * 5) * ((Math.random())<0.5) ? -1 : 1)); stage.addChild(lcd_stolen_bg); stage.addChild(lcd_stolen_item); stage.addEventListener(Event.RESIZE, function (_arg1:Event){ lcd_stolen_bg.graphics.clear(); lcd_stolen_bg.graphics.beginFill(0xFFFFFF); lcd_stolen_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); lcd_stolen_bg.graphics.endFill(); }); stage.addEventListener(Event.ENTER_FRAME, function (_arg1:Event){ lcd_stolen_item.x = (lcd_stolen_item.x + lcd_stolen_item.vX); lcd_stolen_item.y = (lcd_stolen_item.y + lcd_stolen_item.vY); lcd_stolen_item.rotation = (lcd_stolen_item.rotation + lcd_stolen_item.vR); bounds = lcd_stolen_item.getBounds(stage); if ((((((bounds.left < 0)) && ((lcd_stolen_item.vX < 0)))) || ((((bounds.right > stage.stageWidth)) && ((lcd_stolen_item.vX > 0)))))){ lcd_stolen_item.vX = -(lcd_stolen_item.vX); }; if ((((((bounds.top < 0)) && ((lcd_stolen_item.vY < 0)))) || ((((bounds.bottom > stage.stageHeight)) && ((lcd_stolen_item.vY > 0)))))){ lcd_stolen_item.vY = -(lcd_stolen_item.vY); }; }); return; }; RECORDING = false; PLAYING = true; UNLOADING = false; fadeValue = 0; MAX_FADE_VALUE = 40; RECORDED = []; RECORD = [0, 27, 16, 4, 8, 2, 0, 7, 4, 2, 0, 7, 16, 4, 0, 1, 8, 2, 0, 19, 32, 8, 40, 16, 8, 2, 0, 4, 8, 11, 0, 2, 8, 23, 0, 7, 2, 4, 34, 2, 2, 1, 0, 10, 8, 3, 16, 2, 0, 7, 4, 3, 0, 6, 8, 1, 0, 2, 16, 9, 20, 4, 16, 3, 20, 5, 16, 6, 24, 1, 16, 5, 0, 9, 8, 4, 0, 9, 8, 23, 40, 114, 8, 10, 0, 14, 2, 2, 34, 4, 2, 2, 0, 9, 32, 8, 40, 69, 0, 13, 8, 50, 2, 4, 34, 1, 32, 2, 0, 3, 8, 20, 40, 26, 56, 5, 40, 76, 8, 1, 0, 13, 2, 2, 34, 5, 32, 2, 0, 3, 8, 16, 0, 5, 8, 4, 24, 2, 16, 9, 0, 7, 4, 3, 0, 8, 8, 1, 0, 16, ((1 << Controller.BUTTON_B) | 8), 37]; stages = []; sounds = ["field.wav", "forest.wav", "cave_short.wav", "tundra.wav", "title_short.wav"]; backgrounds = [15, 16, 17, 18, 18]; stages.push(String(<![CDATA[ [BITMAPS] {BITMAP,plain_dirt.png} {BITMAP,plain_dirt3.png} {BITMAP,plain_dirt2.png} {BITMAP,plain_music.png} {BITMAP,plain_switch.png} {BITMAP,wood_bigbigtree2.png} {BITMAP,wood_grass.png} {BITMAP,wood_tree.png} {BITMAP,cave_b.png} {BITMAP,cave_medb.png} {BITMAP,cave_floor1.png} {BITMAP,cave_bigp.png} {BITMAP,tundra_snowrock.png} {BITMAP,tundra_medfrostyrock.png} {BITMAP,beach_medsand.png} {BITMAP,plains1bg.png} {BITMAP,wood_bg.png} {BITMAP,cave_bg.png} {BITMAP,tundrabg.png} [BACKGROUND] {BACKGROUND,-1} [START POINT] {START,2,10} [TILES] {TILE,0,0,1,5,0,2,0} {TILE,0,1,1,5,0,2,0} {TILE,0,2,1,5,0,2,0} {TILE,0,3,1,5,0,2,0} {TILE,0,4,1,5,0,2,0} {TILE,0,5,1,3,1,0,0} {TILE,1,5,7,3,1,0,0} {TILE,2,5,7,3,1,0,0} {TILE,3,5,7,3,1,0,0} {TILE,4,5,7,3,1,0,0} {TILE,5,5,7,3,1,0,0} {TILE,6,5,7,3,1,0,0} {TILE,7,5,7,3,1,0,0} {TILE,8,5,7,3,1,0,0} {TILE,9,5,7,3,1,0,0} {TILE,10,5,7,5,1,0,0} {TILE,10,6,1,5,0,2,0} {TILE,10,7,1,5,0,2,0} {TILE,10,8,1,5,0,2,0} {TILE,10,9,1,5,0,2,0} {TILE,10,10,1,5,0,2,0} {TILE,10,11,1,5,0,2,0} {TILE,10,12,1,5,0,2,0} {TILE,10,13,1,3,1,6,0} {TILE,11,13,7,3,1,6,0} {TILE,12,13,7,3,1,6,0} {TILE,13,13,7,3,1,6,0} {TILE,14,13,7,3,1,6,0} {TILE,15,13,7,3,1,6,0} {TILE,16,13,7,2,1,6,0} {TILE,17,12,6,2,1,6,0} {TILE,18,11,6,2,1,6,0} {TILE,19,10,6,2,1,6,0} {TILE,20,9,6,2,1,6,0} {TILE,21,8,6,3,1,6,0} {TILE,22,8,7,3,0,6,0} {TILE,23,8,7,3,0,6,0} {TILE,24,8,7,3,0,6,0} {TILE,25,8,7,3,0,10,0} {TILE,26,8,7,3,0,10,0} {TILE,27,8,7,4,1,9,0} {TILE,28,9,0,3,1,9,0} {TILE,29,9,7,3,1,10,0} {TILE,30,9,7,2,1,9,0} {TILE,31,8,6,2,1,9,0} {TILE,32,7,6,2,1,9,0} {TILE,33,6,6,3,1,9,0} {TILE,34,6,7,3,1,10,0} {TILE,35,6,7,3,1,10,0} {TILE,36,6,7,3,1,10,0} {TILE,37,6,7,3,1,10,0} {TILE,38,6,7,3,1,10,0} {TILE,39,6,7,3,1,10,0} {TILE,40,6,7,3,1,10,0} {TILE,41,6,7,3,1,10,0} {TILE,42,6,7,3,1,10,0} {TILE,43,6,7,3,1,10,0} {TILE,44,6,7,2,1,10,0} {TILE,45,5,6,3,1,10,0} {TILE,46,5,7,3,0,10,0} {TILE,46,6,0,2,0,10,0} {TILE,47,5,7,3,0,10,0} {TILE,47,6,0,2,0,10,0} {TILE,48,5,7,3,0,12,0} {TILE,49,5,7,3,0,12,0} {TILE,50,5,7,4,0,13,0} {TILE,51,6,0,4,0,13,0} {TILE,52,7,0,4,0,13,0} {TILE,53,8,0,4,0,13,0} {TILE,54,9,0,4,0,13,0} {TILE,55,10,0,4,0,13,0} {TILE,56,11,0,4,0,13,0} {TILE,57,12,0,3,0,13,0} {TILE,58,12,7,3,0,13,0} {TILE,59,12,7,2,1,13,0} {TILE,60,12,0,5,1,13,0} {TILE,60,13,1,5,1,13,0} {TILE,60,14,1,5,1,13,0} {TILE,60,15,1,5,1,13,0} {TILE,60,16,1,5,1,13,0} {TILE,60,17,1,5,1,13,0} {TILE,60,18,1,5,1,13,0} {TILE,60,19,1,5,1,13,0} {TILE,60,20,1,5,1,13,0} {TILE,60,21,1,5,1,13,0} {TILE,60,22,1,5,1,13,0} {TILE,60,23,1,3,1,13,0} {TILE,61,23,7,3,1,14,0} {TILE,62,23,7,3,1,14,0} {TILE,63,23,7,3,1,14,0} {TILE,64,23,7,3,1,14,0} {TILE,65,23,7,3,1,14,0} {TILE,66,23,7,3,1,14,0} {TILE,67,23,7,3,1,14,0} {TILE,68,23,7,3,1,14,0} {TILE,69,23,7,2,1,14,0} {TILE,70,14,5,1,1,13,0} {TILE,70,15,5,1,1,13,0} {TILE,70,16,5,1,1,13,0} {TILE,70,17,5,1,1,13,0} {TILE,70,18,5,1,1,13,0} {TILE,70,19,5,1,1,13,0} {TILE,70,20,5,1,1,13,0} {TILE,70,21,5,1,1,13,0} {TILE,70,22,6,1,1,13,0} [SPRITES] {SPRITE,item,0,10,1,Decoration,2} {SPRITE,item,0,11,1,Decoration,2} {SPRITE,item,0,12,-1,Decoration,1} {SPRITE,item,6,12,-1,Decoration,1} {SPRITE,container,7,10,1,3,1} {SPRITE,item,8,18,-1,Decoration,1} {SPRITE,item,8,24,-1,Decoration,1} {SPRITE,item,8,30,-1,Decoration,1} {SPRITE,item,12,12,-1,Decoration,1} {SPRITE,item,14,12,-1,Decoration,1} {SPRITE,item,14,18,-1,Decoration,1} {SPRITE,item,14,24,-1,Decoration,1} {SPRITE,item,14,30,-1,Decoration,1} {SPRITE,item,20,16,-1,Decoration,5} {SPRITE,item,20,20,-1,Decoration,5} {SPRITE,item,20,24,-1,Decoration,5} {SPRITE,item,20,26,1,Decoration,2} {SPRITE,item,20,28,-1,Decoration,1} {SPRITE,container,22,26,1,4,2} {SPRITE,item,24,16,-1,Decoration,5} {SPRITE,item,24,20,-1,Decoration,5} {SPRITE,item,24,24,-1,Decoration,5} {SPRITE,item,26,28,-1,Decoration,1} {SPRITE,item,28,16,-1,Decoration,5} {SPRITE,item,28,20,-1,Decoration,5} {SPRITE,item,28,24,-1,Decoration,5} {SPRITE,item,32,8,-1,Decoration,5} {SPRITE,item,32,12,-1,Decoration,5} {SPRITE,item,32,16,-1,Decoration,5} {SPRITE,item,32,20,-1,Decoration,5} {SPRITE,item,32,24,-1,Decoration,5} {SPRITE,item,32,28,1,Decoration,5} {SPRITE,item,32,30,1,Decoration,5} {SPRITE,item,34,26,-1,Decoration,6} {SPRITE,item,34,27,-1,Decoration,6} {SPRITE,item,34,28,-1,Decoration,5} {SPRITE,item,34,30,1,Decoration,5} {SPRITE,item,35,26,-1,Decoration,6} {SPRITE,item,35,27,-1,Decoration,6} {SPRITE,item,36,24,-1,Decoration,6} {SPRITE,item,36,25,-1,Decoration,6} {SPRITE,item,36,26,-1,Decoration,6} {SPRITE,item,36,27,-1,Decoration,5} {SPRITE,item,37,24,-1,Decoration,6} {SPRITE,item,37,25,-1,Decoration,6} {SPRITE,item,37,26,-1,Decoration,5} {SPRITE,item,38,22,-1,Decoration,6} {SPRITE,item,38,23,-1,Decoration,6} {SPRITE,item,38,24,-1,Decoration,6} {SPRITE,item,38,25,-1,Decoration,5} {SPRITE,item,38,26,1,Decoration,5} {SPRITE,item,38,30,1,Decoration,5} {SPRITE,item,39,22,-1,Decoration,6} {SPRITE,item,39,23,-1,Decoration,6} {SPRITE,item,39,24,-1,Decoration,5} {SPRITE,item,40,20,-1,Decoration,6} {SPRITE,item,40,21,-1,Decoration,6} {SPRITE,item,40,22,-1,Decoration,6} {SPRITE,item,40,23,-1,Decoration,5} {SPRITE,item,41,20,-1,Decoration,6} {SPRITE,item,41,21,-1,Decoration,6} {SPRITE,item,41,22,-1,Decoration,5} {SPRITE,item,42,18,-1,Decoration,6} {SPRITE,item,42,19,-1,Decoration,6} {SPRITE,item,42,20,-1,Decoration,6} {SPRITE,item,42,21,-1,Decoration,5} {SPRITE,item,42,22,1,Decoration,5} {SPRITE,item,42,26,1,Decoration,5} {SPRITE,item,43,18,-1,Decoration,6} {SPRITE,item,43,19,-1,Decoration,6} {SPRITE,item,43,20,-1,Decoration,5} {SPRITE,item,44,18,-1,Decoration,6} {SPRITE,item,44,19,-1,Decoration,5} {SPRITE,item,45,18,-1,Decoration,5} {SPRITE,item,46,18,1,Decoration,5} {SPRITE,item,46,22,1,Decoration,5} {SPRITE,item,46,26,1,Decoration,5} {SPRITE,item,50,4,-1,Decoration,9} {SPRITE,item,50,6,-1,Decoration,9} {SPRITE,item,50,8,-1,Decoration,9} {SPRITE,item,50,10,-1,Decoration,9} {SPRITE,item,50,12,-1,Decoration,9} {SPRITE,item,50,14,-1,Decoration,9} {SPRITE,item,50,16,-1,Decoration,9} {SPRITE,item,50,18,1,Decoration,9} {SPRITE,item,50,20,1,Decoration,9} {SPRITE,item,50,22,1,Decoration,9} {SPRITE,item,50,24,1,Decoration,9} {SPRITE,item,50,26,1,Decoration,9} {SPRITE,item,52,4,-1,Decoration,9} {SPRITE,item,52,6,-1,Decoration,9} {SPRITE,item,52,8,-1,Decoration,9} {SPRITE,item,52,10,-1,Decoration,9} {SPRITE,item,52,12,-1,Decoration,9} {SPRITE,item,52,14,-1,Decoration,9} {SPRITE,item,52,16,-1,Decoration,9} {SPRITE,item,52,18,1,Decoration,9} {SPRITE,item,52,20,1,Decoration,9} {SPRITE,item,52,22,1,Decoration,9} {SPRITE,item,52,24,1,Decoration,9} {SPRITE,item,52,26,1,Decoration,9} {SPRITE,item,54,6,-1,Decoration,11} {SPRITE,item,54,10,-1,Decoration,11} {SPRITE,item,54,14,-1,Decoration,11} {SPRITE,item,54,18,1,Decoration,9} {SPRITE,item,54,20,1,Decoration,9} {SPRITE,item,54,22,1,Decoration,9} {SPRITE,item,54,24,1,Decoration,9} {SPRITE,item,54,26,1,Decoration,9} {SPRITE,item,56,16,-1,Decoration,11} {SPRITE,item,56,20,1,Decoration,9} {SPRITE,item,56,22,1,Decoration,9} {SPRITE,item,56,24,1,Decoration,9} {SPRITE,item,56,26,1,Decoration,9} {SPRITE,item,58,2,-1,Decoration,11} {SPRITE,item,58,6,-1,Decoration,11} {SPRITE,item,58,10,-1,Decoration,11} {SPRITE,item,58,14,-1,Decoration,11} {SPRITE,item,58,16,-1,Decoration,11} {SPRITE,container,58,18,1,4,3} {SPRITE,item,58,20,1,Decoration,9} {SPRITE,item,58,22,1,Decoration,9} {SPRITE,item,58,24,1,Decoration,9} {SPRITE,item,58,26,1,Decoration,9} {SPRITE,item,60,14,-1,Decoration,11} {SPRITE,item,60,20,-1,Decoration,9} {SPRITE,item,60,22,1,Decoration,9} {SPRITE,item,60,24,1,Decoration,9} {SPRITE,item,60,26,1,Decoration,9} {SPRITE,item,62,2,-1,Decoration,11} {SPRITE,item,62,6,-1,Decoration,11} {SPRITE,item,62,10,-1,Decoration,11} {SPRITE,item,62,12,-1,Decoration,11} {SPRITE,item,62,18,-1,Decoration,9} {SPRITE,item,62,20,-1,Decoration,9} {SPRITE,item,62,22,1,Decoration,9} {SPRITE,item,62,24,1,Decoration,9} {SPRITE,item,62,26,1,Decoration,9} {SPRITE,item,64,16,-1,Decoration,9} {SPRITE,item,64,18,-1,Decoration,9} {SPRITE,item,64,20,1,Decoration,9} {SPRITE,item,64,22,1,Decoration,9} {SPRITE,item,64,24,1,Decoration,9} {SPRITE,item,64,26,1,Decoration,9} {SPRITE,item,66,2,-1,Decoration,11} {SPRITE,item,66,6,-1,Decoration,11} {SPRITE,item,66,10,-1,Decoration,11} {SPRITE,item,66,14,-1,Decoration,9} {SPRITE,item,66,16,-1,Decoration,9} {SPRITE,item,66,18,1,Decoration,9} {SPRITE,item,66,20,1,Decoration,9} {SPRITE,item,66,22,1,Decoration,9} {SPRITE,item,66,24,1,Decoration,9} {SPRITE,item,66,26,1,Decoration,9} {SPRITE,item,68,14,-1,Decoration,9} {SPRITE,item,68,16,1,Decoration,9} {SPRITE,item,68,18,1,Decoration,9} {SPRITE,item,68,20,1,Decoration,9} {SPRITE,item,68,22,1,Decoration,9} {SPRITE,item,68,24,1,Decoration,9} {SPRITE,item,70,14,1,Decoration,9} {SPRITE,item,70,16,1,Decoration,9} {SPRITE,item,70,18,1,Decoration,9} {SPRITE,item,70,20,1,Decoration,9} {SPRITE,item,70,22,1,Decoration,9} {SPRITE,item,72,14,1,Decoration,9} {SPRITE,item,72,16,1,Decoration,9} {SPRITE,item,72,18,1,Decoration,9} {SPRITE,item,74,14,1,Decoration,9} {SPRITE,item,74,16,1,Decoration,9} {SPRITE,item,74,18,1,Decoration,9} {SPRITE,item,76,14,-1,Decoration,11} {SPRITE,item,76,18,-1,Decoration,11} {SPRITE,item,76,22,-1,Decoration,11} {SPRITE,item,80,4,-1,Decoration,9} {SPRITE,item,80,6,-1,Decoration,9} {SPRITE,item,80,8,-1,Decoration,9} {SPRITE,item,80,10,-1,Decoration,9} {SPRITE,item,80,12,-1,Decoration,9} {SPRITE,item,80,14,-1,Decoration,11} {SPRITE,item,80,18,-1,Decoration,11} {SPRITE,item,80,22,-1,Decoration,11} {SPRITE,item,82,4,-1,Decoration,9} {SPRITE,item,82,6,-1,Decoration,9} {SPRITE,item,82,8,-1,Decoration,9} {SPRITE,item,82,10,-1,Decoration,9} {SPRITE,item,82,12,-1,Decoration,9} {SPRITE,item,84,4,-1,Decoration,9} {SPRITE,item,84,6,-1,Decoration,9} {SPRITE,item,84,8,-1,Decoration,9} {SPRITE,item,84,10,-1,Decoration,9} {SPRITE,item,84,12,-1,Decoration,9} {SPRITE,item,84,14,-1,Decoration,11} {SPRITE,item,84,18,-1,Decoration,11} {SPRITE,item,84,22,-1,Decoration,11} {SPRITE,item,86,4,-1,Decoration,9} {SPRITE,item,86,6,-1,Decoration,9} {SPRITE,item,86,8,-1,Decoration,9} {SPRITE,item,86,10,-1,Decoration,9} {SPRITE,item,86,12,-1,Decoration,9} {SPRITE,container,87,12,-1,4,4} {SPRITE,item,88,4,-1,Decoration,9} {SPRITE,item,88,6,-1,Decoration,9} {SPRITE,item,88,8,-1,Decoration,9} {SPRITE,item,88,10,-1,Decoration,9} {SPRITE,item,88,12,-1,Decoration,9} {SPRITE,item,88,14,-1,Decoration,11} {SPRITE,item,88,18,-1,Decoration,11} {SPRITE,item,90,4,-1,Decoration,9} {SPRITE,item,90,6,-1,Decoration,9} {SPRITE,item,90,8,-1,Decoration,9} {SPRITE,item,90,10,-1,Decoration,9} {SPRITE,item,90,12,-1,Decoration,10} {SPRITE,item,90,13,-1,Decoration,10} {SPRITE,item,91,12,-1,Decoration,10} {SPRITE,item,91,13,-1,Decoration,10} {SPRITE,item,92,4,-1,Decoration,9} {SPRITE,item,92,6,-1,Decoration,9} {SPRITE,item,92,8,-1,Decoration,9} {SPRITE,item,92,10,-1,Decoration,9} {SPRITE,item,92,14,-1,Decoration,11} {SPRITE,item,92,18,-1,Decoration,11} {SPRITE,item,94,4,-1,Decoration,9} {SPRITE,item,94,6,-1,Decoration,9} {SPRITE,item,94,8,-1,Decoration,9} {SPRITE,item,94,10,-1,Decoration,9} {SPRITE,item,96,12,-1,Decoration,13} {SPRITE,item,96,14,-1,Decoration,13} {SPRITE,item,96,16,-1,Decoration,13} {SPRITE,item,96,18,-1,Decoration,13} {SPRITE,item,98,12,-1,Decoration,13} {SPRITE,item,98,14,-1,Decoration,13} {SPRITE,item,98,16,-1,Decoration,13} {SPRITE,item,98,18,-1,Decoration,13} {SPRITE,item,100,12,-1,Decoration,13} {SPRITE,item,100,14,-1,Decoration,13} {SPRITE,item,100,16,-1,Decoration,13} {SPRITE,item,100,18,-1,Decoration,13} {SPRITE,item,102,14,-1,Decoration,13} {SPRITE,item,102,16,-1,Decoration,13} {SPRITE,item,102,18,-1,Decoration,13} {SPRITE,item,102,20,-1,Decoration,13} {SPRITE,item,104,16,-1,Decoration,13} {SPRITE,item,104,18,-1,Decoration,13} {SPRITE,item,104,20,-1,Decoration,13} {SPRITE,item,104,22,-1,Decoration,13} {SPRITE,item,106,18,-1,Decoration,13} {SPRITE,item,106,20,-1,Decoration,13} {SPRITE,item,106,22,-1,Decoration,13} {SPRITE,item,106,24,-1,Decoration,13} {SPRITE,item,108,20,-1,Decoration,13} {SPRITE,item,108,22,-1,Decoration,13} {SPRITE,item,108,24,-1,Decoration,13} {SPRITE,item,108,26,-1,Decoration,13} {SPRITE,item,110,22,-1,Decoration,13} {SPRITE,item,110,24,-1,Decoration,13} {SPRITE,item,110,26,-1,Decoration,13} {SPRITE,item,110,28,-1,Decoration,13} {SPRITE,item,112,24,-1,Decoration,13} {SPRITE,item,112,26,-1,Decoration,13} {SPRITE,item,112,28,-1,Decoration,13} {SPRITE,item,112,30,-1,Decoration,13} {SPRITE,item,112,32,-1,Decoration,13} {SPRITE,item,112,34,-1,Decoration,13} {SPRITE,item,112,36,-1,Decoration,13} {SPRITE,item,112,38,-1,Decoration,13} {SPRITE,item,112,40,-1,Decoration,13} {SPRITE,item,112,42,-1,Decoration,13} {SPRITE,item,112,44,-1,Decoration,13} {SPRITE,item,112,46,-1,Decoration,13} {SPRITE,item,112,48,-1,Decoration,13} {SPRITE,item,112,50,-1,Decoration,13} {SPRITE,item,112,52,-1,Decoration,13} {SPRITE,item,114,26,-1,Decoration,13} {SPRITE,item,114,28,-1,Decoration,13} {SPRITE,item,114,30,-1,Decoration,13} {SPRITE,item,114,32,-1,Decoration,13} {SPRITE,item,114,34,-1,Decoration,13} {SPRITE,item,114,36,-1,Decoration,13} {SPRITE,item,114,38,-1,Decoration,13} {SPRITE,item,114,40,-1,Decoration,13} {SPRITE,item,114,42,-1,Decoration,13} {SPRITE,item,114,44,-1,Decoration,13} {SPRITE,item,114,46,-1,Decoration,13} {SPRITE,item,114,48,-1,Decoration,13} {SPRITE,item,114,50,-1,Decoration,13} {SPRITE,item,114,52,-1,Decoration,13} {SPRITE,item,116,26,-1,Decoration,13} {SPRITE,item,116,28,-1,Decoration,13} {SPRITE,item,116,30,-1,Decoration,13} {SPRITE,item,116,32,-1,Decoration,13} {SPRITE,item,116,34,-1,Decoration,13} {SPRITE,item,116,36,-1,Decoration,13} {SPRITE,item,116,38,-1,Decoration,13} {SPRITE,item,116,40,-1,Decoration,13} {SPRITE,item,116,42,-1,Decoration,13} {SPRITE,item,116,44,-1,Decoration,13} {SPRITE,item,116,46,-1,Decoration,13} {SPRITE,item,116,48,-1,Decoration,13} {SPRITE,item,116,50,-1,Decoration,13} {SPRITE,item,116,52,-1,Decoration,13} {SPRITE,item,118,26,-1,Decoration,13} {SPRITE,item,118,28,-1,Decoration,13} {SPRITE,item,118,30,-1,Decoration,13} {SPRITE,item,118,32,-1,Decoration,13} {SPRITE,item,118,34,-1,Decoration,13} {SPRITE,item,118,36,-1,Decoration,13} {SPRITE,item,118,38,-1,Decoration,13} {SPRITE,item,118,40,-1,Decoration,13} {SPRITE,item,118,42,-1,Decoration,13} {SPRITE,item,118,44,-1,Decoration,13} {SPRITE,item,118,46,-1,Decoration,13} {SPRITE,item,118,48,-1,Decoration,13} {SPRITE,item,118,50,-1,Decoration,13} {SPRITE,item,118,52,-1,Decoration,13} {SPRITE,item,120,48,-1,Decoration,13} {SPRITE,item,120,50,-1,Decoration,13} {SPRITE,item,120,52,-1,Decoration,13} {SPRITE,container,122,46,-1,4,5} {SPRITE,item,122,48,-1,Decoration,14} {SPRITE,item,122,50,-1,Decoration,14} {SPRITE,item,122,52,-1,Decoration,14} {SPRITE,item,122,54,-1,Decoration,14} {SPRITE,item,124,48,-1,Decoration,14} {SPRITE,item,124,50,-1,Decoration,14} {SPRITE,item,124,52,-1,Decoration,14} {SPRITE,item,124,54,-1,Decoration,14} {SPRITE,item,126,48,-1,Decoration,14} {SPRITE,item,126,50,-1,Decoration,14} {SPRITE,item,126,52,-1,Decoration,14} {SPRITE,item,126,54,-1,Decoration,14} {SPRITE,item,128,48,-1,Decoration,14} {SPRITE,item,128,50,-1,Decoration,14} {SPRITE,item,128,52,-1,Decoration,14} {SPRITE,item,128,54,-1,Decoration,14} {SPRITE,item,130,48,-1,Decoration,14} {SPRITE,item,130,50,-1,Decoration,14} {SPRITE,item,130,52,-1,Decoration,14} {SPRITE,item,130,54,-1,Decoration,14} {SPRITE,item,132,48,-1,Decoration,14} {SPRITE,item,132,50,-1,Decoration,14} {SPRITE,item,132,52,-1,Decoration,14} {SPRITE,item,132,54,-1,Decoration,14} {SPRITE,item,134,48,-1,Decoration,14} {SPRITE,item,134,50,-1,Decoration,14} {SPRITE,item,134,52,-1,Decoration,14} {SPRITE,item,134,54,-1,Decoration,14} {SPRITE,item,136,48,-1,Decoration,14} {SPRITE,item,136,50,-1,Decoration,14} {SPRITE,item,136,52,-1,Decoration,14} {SPRITE,item,136,54,-1,Decoration,14} [PLATFORMS] [ENEMIES] ]]> )); currentItems = 0; world_mc = new MovieClip(); sound_mc = new SoundImage(); black_mc = new Bitmap(new BitmapData(STAGE_WIDTH, STAGE_HEIGHT, false, 0)); cover_mc = new MovieClip(); play_mc = new _btn(); title_mc = new _background(); globalSound = new AmberSound(); globalSoundTransform = new SoundTransform(0, 0); sound_mc.x = (STAGE_WIDTH * 0.5); sound_mc.y = (STAGE_HEIGHT * 0.5); sound_mc.alpha = 0.5; stage.addChild(play_mc); play_mc.x = ((STAGE_WIDTH - play_mc.width) - 20); play_mc.y = ((STAGE_HEIGHT - play_mc.height) - 20); play_mc.addEventListener(MouseEvent.CLICK, loadGame, false, 0, true); } public function coverResize(_arg1:Event=null){ var _local2:Graphics; _local2 = cover_mc.graphics; _local2.clear(); _local2.beginFill(0); _local2.drawRect(STAGE_WIDTH, 0, Math.max((stage.stageWidth - STAGE_WIDTH), 0), stage.stageHeight); _local2.endFill(); _local2.beginFill(0); _local2.drawRect(0, STAGE_HEIGHT, stage.stageWidth, Math.max((stage.stageHeight - STAGE_HEIGHT), 0)); _local2.endFill(); } public function unloadGame(_arg1:Event){ stage.removeEventListener(Event.ENTER_FRAME, eFrame); amber.removeEventListener(Amber.COLLECT_ITEM, hitItem); amber = null; world.unload(); world = null; if (RECORDING){ trace((("[\n" + ProgrammedInput.compress(RECORDED).toString()) + "\n]")); }; stage.removeChild(cover_mc); stage.removeChild(black_mc); stage.addChild(play_mc); play_mc.addEventListener(MouseEvent.CLICK, loadGame, false, 0, true); } public function hitItem(_arg1:ItemEvent){ var _local2:int; if (_arg1.subtype == Item.COLLECTIBLE){ _local2 = ((amber.collectibles - currentItems) - 1); if (_local2 == 0){ globalSoundTransform.volume = 1; amber.soundTransform = globalSoundTransform; stage.removeChild(sound_mc); }; if (_local2 >= 0){ globalSound.load(sounds[_local2]); globalSound.play(false); world.backgroundID = backgrounds[_local2]; }; if (_local2 == 4){ UNLOADING = true; stage.addChild(title_mc); }; currentItems = amber.collectibles; }; } } }//package previewDX_flaSection 43//wav (title_short.wav) package title_short { import flash.media.*; public dynamic class wav extends Sound { } }//package title_shortSection 44//wav (tundra.wav) package tundra { import flash.media.*; public dynamic class wav extends Sound { } }//package tundraSection 45//png (tundra_medfrostyrock.png) package tundra_medfrostyrock { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package tundra_medfrostyrockSection 46//png (tundra_snowrock.png) package tundra_snowrock { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package tundra_snowrockSection 47//png (tundrabg.png) package tundrabg { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package tundrabgSection 48//png (wood_bg.png) package wood_bg { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package wood_bgSection 49//png (wood_bigbigtree2.png) package wood_bigbigtree2 { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package wood_bigbigtree2Section 50//png (wood_grass.png) package wood_grass { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package wood_grassSection 51//png (wood_tree.png) package wood_tree { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package wood_treeSection 52//_background (_background) package { import flash.display.*; public dynamic class _background extends MovieClip { } }//packageSection 53//_btn (_btn) package { import flash.display.*; public dynamic class _btn extends MovieClip { } }//packageSection 54//AmberClip (AmberClip) package { import flash.display.*; public dynamic class AmberClip extends MovieClip { public var hitbox:TestClip; public var attackbox:TestClip; } }//packageSection 55//BellyAttackSound (BellyAttackSound) package { import flash.media.*; public dynamic class BellyAttackSound extends Sound { } }//packageSection 56//BounceSound (BounceSound) package { import flash.media.*; public dynamic class BounceSound extends Sound { } }//packageSection 57//BreakSound (BreakSound) package { import flash.media.*; public dynamic class BreakSound extends Sound { } }//packageSection 58//CrushSound (CrushSound) package { import flash.media.*; public dynamic class CrushSound extends Sound { } }//packageSection 59//DeflateSound (DeflateSound) package { import flash.media.*; public dynamic class DeflateSound extends Sound { } }//packageSection 60//DingSound (DingSound) package { import flash.media.*; public dynamic class DingSound extends Sound { } }//packageSection 61//DramaticImpact (DramaticImpact) package { import flash.media.*; public dynamic class DramaticImpact extends Sound { } }//packageSection 62//FireBall (FireBall) package { import flash.display.*; public dynamic class FireBall extends MovieClip { } }//packageSection 63//FireSound (FireSound) package { import flash.media.*; public dynamic class FireSound extends Sound { } }//packageSection 64//GoldSound (GoldSound) package { import flash.media.*; public dynamic class GoldSound extends Sound { } }//packageSection 65//HealSound (HealSound) package { import flash.media.*; public dynamic class HealSound extends Sound { } }//packageSection 66//InflateSound (InflateSound) package { import flash.media.*; public dynamic class InflateSound extends Sound { } }//packageSection 67//ItemSound (ItemSound) package { import flash.media.*; public dynamic class ItemSound extends Sound { } }//packageSection 68//RunSound (RunSound) package { import flash.media.*; public dynamic class RunSound extends Sound { } }//packageSection 69//SoundImage (SoundImage) package { import flash.display.*; public dynamic class SoundImage extends MovieClip { } }//packageSection 70//StompSound (StompSound) package { import flash.media.*; public dynamic class StompSound extends Sound { } }//packageSection 71//TailAttackSound (TailAttackSound) package { import flash.media.*; public dynamic class TailAttackSound extends Sound { } }//packageSection 72//TestClip (TestClip) package { import flash.display.*; public dynamic class TestClip extends MovieClip { } }//packageSection 73//ThrowableApple (ThrowableApple) package { import flash.display.*; public dynamic class ThrowableApple extends MovieClip { } }//packageSection 74//TransformSound (TransformSound) package { import flash.media.*; public dynamic class TransformSound extends Sound { } }//package
Library Items
Symbol 1 Sound {tundra.wav} | ||
Symbol 2 Sound {title_short.wav} | ||
Symbol 3 Sound {forest.wav} | ||
Symbol 4 Sound {field.wav} | ||
Symbol 5 Sound {DramaticImpact} | ||
Symbol 6 Sound {cave_short.wav} | ||
Symbol 7 Sound {TransformSound} | ||
Symbol 8 Sound {TailAttackSound} | ||
Symbol 9 Sound {StompSound} | ||
Symbol 10 Sound {RunSound} | ||
Symbol 11 Sound {ItemSound} | ||
Symbol 12 Sound {InflateSound} | ||
Symbol 13 Sound {HealSound} | ||
Symbol 14 Sound {GoldSound} | ||
Symbol 15 Sound {FireSound} | ||
Symbol 16 Sound {DingSound} | ||
Symbol 17 Sound {DeflateSound} | ||
Symbol 18 Sound {CrushSound} | ||
Symbol 19 Sound {BreakSound} | ||
Symbol 20 Sound {BounceSound} | ||
Symbol 21 Sound {BellyAttackSound} | ||
Symbol 22 Bitmap {wood_tree.png} | ||
Symbol 23 Bitmap {wood_grass.png} | ||
Symbol 24 Bitmap {wood_bigbigtree2.png} | ||
Symbol 25 Bitmap {wood_bg.png} | ||
Symbol 26 Bitmap {tundrabg.png} | ||
Symbol 27 Bitmap {tundra_snowrock.png} | ||
Symbol 28 Bitmap {tundra_medfrostyrock.png} | ||
Symbol 29 Bitmap {plains1bg.png} | ||
Symbol 30 Bitmap {plain_switch.png} | ||
Symbol 31 Bitmap {plain_music.png} | ||
Symbol 32 Bitmap {plain_dirt3.png} | ||
Symbol 33 Bitmap {plain_dirt2.png} | ||
Symbol 34 Bitmap {plain_dirt.png} | ||
Symbol 35 Bitmap {empty.png} | ||
Symbol 36 Bitmap {cave_medb.png} | ||
Symbol 37 Bitmap {cave_floor1.png} | ||
Symbol 38 Bitmap {cave_bigp.png} | ||
Symbol 39 Bitmap {cave_bg.png} | ||
Symbol 40 Bitmap {cave_b.png} | ||
Symbol 41 Bitmap {beach_medsand.png} | ||
Symbol 42 Graphic | Used by:43 | |
Symbol 43 MovieClip {TestClip} | Uses:42 | Used by:739 |
Symbol 44 Graphic | Used by:739 | |
Symbol 45 Graphic | Used by:739 | |
Symbol 46 ShapeTweening | Used by:739 | |
Symbol 47 ShapeTweening | Used by:739 | |
Symbol 48 ShapeTweening | Used by:739 | |
Symbol 49 ShapeTweening | Used by:739 | |
Symbol 50 ShapeTweening | Used by:739 | |
Symbol 51 Graphic | Used by:739 | |
Symbol 52 ShapeTweening | Used by:739 | |
Symbol 53 ShapeTweening | Used by:739 | |
Symbol 54 ShapeTweening | Used by:739 | |
Symbol 55 ShapeTweening | Used by:739 | |
Symbol 56 ShapeTweening | Used by:739 | |
Symbol 57 ShapeTweening | Used by:739 | |
Symbol 58 ShapeTweening | Used by:739 | |
Symbol 59 ShapeTweening | Used by:739 | |
Symbol 60 ShapeTweening | Used by:739 | |
Symbol 61 ShapeTweening | Used by:739 | |
Symbol 62 ShapeTweening | Used by:739 | |
Symbol 63 ShapeTweening | Used by:739 | |
Symbol 64 ShapeTweening | Used by:739 | |
Symbol 65 ShapeTweening | Used by:739 | |
Symbol 66 ShapeTweening | Used by:739 | |
Symbol 67 ShapeTweening | Used by:739 | |
Symbol 68 ShapeTweening | Used by:739 | |
Symbol 69 ShapeTweening | Used by:739 | |
Symbol 70 ShapeTweening | Used by:739 | |
Symbol 71 ShapeTweening | Used by:739 | |
Symbol 72 ShapeTweening | Used by:739 | |
Symbol 73 ShapeTweening | Used by:739 | |
Symbol 74 ShapeTweening | Used by:739 | |
Symbol 75 ShapeTweening | Used by:739 | |
Symbol 76 ShapeTweening | Used by:739 | |
Symbol 77 ShapeTweening | Used by:739 | |
Symbol 78 ShapeTweening | Used by:739 | |
Symbol 79 ShapeTweening | Used by:739 | |
Symbol 80 ShapeTweening | Used by:739 | |
Symbol 81 ShapeTweening | Used by:739 | |
Symbol 82 ShapeTweening | Used by:739 | |
Symbol 83 ShapeTweening | Used by:739 | |
Symbol 84 ShapeTweening | Used by:739 | |
Symbol 85 ShapeTweening | Used by:739 | |
Symbol 86 ShapeTweening | Used by:739 | |
Symbol 87 ShapeTweening | Used by:739 | |
Symbol 88 ShapeTweening | Used by:739 | |
Symbol 89 ShapeTweening | Used by:739 | |
Symbol 90 ShapeTweening | Used by:739 | |
Symbol 91 Graphic | Used by:739 | |
Symbol 92 ShapeTweening | Used by:739 | |
Symbol 93 ShapeTweening | Used by:739 | |
Symbol 94 ShapeTweening | Used by:739 | |
Symbol 95 ShapeTweening | Used by:739 | |
Symbol 96 ShapeTweening | Used by:739 | |
Symbol 97 Graphic | Used by:739 | |
Symbol 98 ShapeTweening | Used by:739 | |
Symbol 99 ShapeTweening | Used by:739 | |
Symbol 100 ShapeTweening | Used by:739 | |
Symbol 101 ShapeTweening | Used by:739 | |
Symbol 102 ShapeTweening | Used by:739 | |
Symbol 103 ShapeTweening | Used by:739 | |
Symbol 104 ShapeTweening | Used by:739 | |
Symbol 105 ShapeTweening | Used by:739 | |
Symbol 106 ShapeTweening | Used by:739 | |
Symbol 107 ShapeTweening | Used by:739 | |
Symbol 108 ShapeTweening | Used by:739 | |
Symbol 109 Graphic | Used by:739 | |
Symbol 110 ShapeTweening | Used by:739 | |
Symbol 111 ShapeTweening | Used by:739 | |
Symbol 112 ShapeTweening | Used by:739 | |
Symbol 113 ShapeTweening | Used by:739 | |
Symbol 114 ShapeTweening | Used by:739 | |
Symbol 115 ShapeTweening | Used by:739 | |
Symbol 116 ShapeTweening | Used by:739 | |
Symbol 117 ShapeTweening | Used by:739 | |
Symbol 118 ShapeTweening | Used by:739 | |
Symbol 119 ShapeTweening | Used by:739 | |
Symbol 120 ShapeTweening | Used by:739 | |
Symbol 121 Graphic | Used by:739 | |
Symbol 122 ShapeTweening | Used by:739 | |
Symbol 123 ShapeTweening | Used by:739 | |
Symbol 124 ShapeTweening | Used by:739 | |
Symbol 125 ShapeTweening | Used by:739 | |
Symbol 126 ShapeTweening | Used by:739 | |
Symbol 127 ShapeTweening | Used by:739 | |
Symbol 128 ShapeTweening | Used by:739 | |
Symbol 129 ShapeTweening | Used by:739 | |
Symbol 130 ShapeTweening | Used by:739 | |
Symbol 131 ShapeTweening | Used by:739 | |
Symbol 132 ShapeTweening | Used by:739 | |
Symbol 133 Graphic | Used by:739 | |
Symbol 134 ShapeTweening | Used by:739 | |
Symbol 135 ShapeTweening | Used by:739 | |
Symbol 136 ShapeTweening | Used by:739 | |
Symbol 137 ShapeTweening | Used by:739 | |
Symbol 138 ShapeTweening | Used by:739 | |
Symbol 139 ShapeTweening | Used by:739 | |
Symbol 140 Graphic | Used by:739 | |
Symbol 141 Graphic | Used by:739 | |
Symbol 142 Graphic | Used by:739 | |
Symbol 143 Graphic | Used by:739 | |
Symbol 144 Graphic | Used by:739 | |
Symbol 145 Graphic | Used by:739 | |
Symbol 146 Graphic | Used by:739 | |
Symbol 147 Graphic | Used by:739 | |
Symbol 148 Graphic | Used by:739 | |
Symbol 149 Graphic | Used by:739 | |
Symbol 150 Graphic | Used by:739 | |
Symbol 151 Graphic | Used by:739 | |
Symbol 152 Graphic | Used by:739 | |
Symbol 153 ShapeTweening | Used by:739 | |
Symbol 154 ShapeTweening | Used by:739 | |
Symbol 155 ShapeTweening | Used by:739 | |
Symbol 156 Graphic | Used by:739 | |
Symbol 157 ShapeTweening | Used by:739 | |
Symbol 158 ShapeTweening | Used by:739 | |
Symbol 159 ShapeTweening | Used by:739 | |
Symbol 160 Graphic | Used by:739 | |
Symbol 161 Graphic | Used by:739 | |
Symbol 162 Graphic | Used by:739 | |
Symbol 163 ShapeTweening | Used by:739 | |
Symbol 164 ShapeTweening | Used by:739 | |
Symbol 165 ShapeTweening | Used by:739 | |
Symbol 166 Graphic | Used by:739 | |
Symbol 167 ShapeTweening | Used by:739 | |
Symbol 168 ShapeTweening | Used by:739 | |
Symbol 169 ShapeTweening | Used by:739 | |
Symbol 170 Graphic | Used by:739 | |
Symbol 171 Graphic | Used by:739 | |
Symbol 172 Graphic | Used by:739 | |
Symbol 173 ShapeTweening | Used by:739 | |
Symbol 174 Graphic | Used by:739 | |
Symbol 175 ShapeTweening | Used by:739 | |
Symbol 176 Graphic | Used by:739 | |
Symbol 177 ShapeTweening | Used by:739 | |
Symbol 178 ShapeTweening | Used by:739 | |
Symbol 179 Graphic | Used by:739 | |
Symbol 180 Graphic | Used by:739 | |
Symbol 181 Graphic | Used by:739 | |
Symbol 182 Graphic | Used by:739 | |
Symbol 183 ShapeTweening | Used by:739 | |
Symbol 184 ShapeTweening | Used by:739 | |
Symbol 185 ShapeTweening | Used by:739 | |
Symbol 186 ShapeTweening | Used by:739 | |
Symbol 187 ShapeTweening | Used by:739 | |
Symbol 188 Graphic | Used by:739 | |
Symbol 189 ShapeTweening | Used by:739 | |
Symbol 190 ShapeTweening | Used by:739 | |
Symbol 191 ShapeTweening | Used by:739 | |
Symbol 192 ShapeTweening | Used by:739 | |
Symbol 193 ShapeTweening | Used by:739 | |
Symbol 194 ShapeTweening | Used by:739 | |
Symbol 195 ShapeTweening | Used by:739 | |
Symbol 196 ShapeTweening | Used by:739 | |
Symbol 197 ShapeTweening | Used by:739 | |
Symbol 198 ShapeTweening | Used by:739 | |
Symbol 199 ShapeTweening | Used by:739 | |
Symbol 200 ShapeTweening | Used by:739 | |
Symbol 201 ShapeTweening | Used by:739 | |
Symbol 202 ShapeTweening | Used by:739 | |
Symbol 203 ShapeTweening | Used by:739 | |
Symbol 204 ShapeTweening | Used by:739 | |
Symbol 205 ShapeTweening | Used by:739 | |
Symbol 206 ShapeTweening | Used by:739 | |
Symbol 207 ShapeTweening | Used by:739 | |
Symbol 208 ShapeTweening | Used by:739 | |
Symbol 209 ShapeTweening | Used by:739 | |
Symbol 210 ShapeTweening | Used by:739 | |
Symbol 211 ShapeTweening | Used by:739 | |
Symbol 212 ShapeTweening | Used by:739 | |
Symbol 213 ShapeTweening | Used by:739 | |
Symbol 214 ShapeTweening | Used by:739 | |
Symbol 215 ShapeTweening | Used by:739 | |
Symbol 216 ShapeTweening | Used by:739 | |
Symbol 217 ShapeTweening | Used by:739 | |
Symbol 218 ShapeTweening | Used by:739 | |
Symbol 219 ShapeTweening | Used by:739 | |
Symbol 220 ShapeTweening | Used by:739 | |
Symbol 221 ShapeTweening | Used by:739 | |
Symbol 222 ShapeTweening | Used by:739 | |
Symbol 223 ShapeTweening | Used by:739 | |
Symbol 224 ShapeTweening | Used by:739 | |
Symbol 225 ShapeTweening | Used by:739 | |
Symbol 226 ShapeTweening | Used by:739 | |
Symbol 227 ShapeTweening | Used by:739 | |
Symbol 228 Graphic | Used by:739 | |
Symbol 229 ShapeTweening | Used by:739 | |
Symbol 230 ShapeTweening | Used by:739 | |
Symbol 231 ShapeTweening | Used by:739 | |
Symbol 232 ShapeTweening | Used by:739 | |
Symbol 233 ShapeTweening | Used by:739 | |
Symbol 234 Graphic | Used by:739 | |
Symbol 235 ShapeTweening | Used by:739 | |
Symbol 236 ShapeTweening | Used by:739 | |
Symbol 237 ShapeTweening | Used by:739 | |
Symbol 238 ShapeTweening | Used by:739 | |
Symbol 239 ShapeTweening | Used by:739 | |
Symbol 240 ShapeTweening | Used by:739 | |
Symbol 241 ShapeTweening | Used by:739 | |
Symbol 242 ShapeTweening | Used by:739 | |
Symbol 243 ShapeTweening | Used by:739 | |
Symbol 244 ShapeTweening | Used by:739 | |
Symbol 245 ShapeTweening | Used by:739 | |
Symbol 246 Graphic | Used by:739 | |
Symbol 247 ShapeTweening | Used by:739 | |
Symbol 248 ShapeTweening | Used by:739 | |
Symbol 249 ShapeTweening | Used by:739 | |
Symbol 250 ShapeTweening | Used by:739 | |
Symbol 251 ShapeTweening | Used by:739 | |
Symbol 252 ShapeTweening | Used by:739 | |
Symbol 253 ShapeTweening | Used by:739 | |
Symbol 254 ShapeTweening | Used by:739 | |
Symbol 255 ShapeTweening | Used by:739 | |
Symbol 256 ShapeTweening | Used by:739 | |
Symbol 257 ShapeTweening | Used by:739 | |
Symbol 258 Graphic | Used by:739 | |
Symbol 259 ShapeTweening | Used by:739 | |
Symbol 260 ShapeTweening | Used by:739 | |
Symbol 261 ShapeTweening | Used by:739 | |
Symbol 262 ShapeTweening | Used by:739 | |
Symbol 263 ShapeTweening | Used by:739 | |
Symbol 264 ShapeTweening | Used by:739 | |
Symbol 265 ShapeTweening | Used by:739 | |
Symbol 266 ShapeTweening | Used by:739 | |
Symbol 267 ShapeTweening | Used by:739 | |
Symbol 268 ShapeTweening | Used by:739 | |
Symbol 269 ShapeTweening | Used by:739 | |
Symbol 270 Graphic | Used by:739 | |
Symbol 271 ShapeTweening | Used by:739 | |
Symbol 272 ShapeTweening | Used by:739 | |
Symbol 273 ShapeTweening | Used by:739 | |
Symbol 274 ShapeTweening | Used by:739 | |
Symbol 275 ShapeTweening | Used by:739 | |
Symbol 276 ShapeTweening | Used by:739 | |
Symbol 277 Graphic | Used by:739 | |
Symbol 278 Graphic | Used by:739 | |
Symbol 279 Graphic | Used by:739 | |
Symbol 280 Graphic | Used by:739 | |
Symbol 281 Graphic | Used by:739 | |
Symbol 282 ShapeTweening | Used by:739 | |
Symbol 283 ShapeTweening | Used by:739 | |
Symbol 284 Graphic | Used by:739 | |
Symbol 285 ShapeTweening | Used by:739 | |
Symbol 286 ShapeTweening | Used by:739 | |
Symbol 287 ShapeTweening | Used by:739 | |
Symbol 288 Graphic | Used by:739 | |
Symbol 289 ShapeTweening | Used by:739 | |
Symbol 290 ShapeTweening | Used by:739 | |
Symbol 291 ShapeTweening | Used by:739 | |
Symbol 292 Graphic | Used by:739 | |
Symbol 293 Graphic | Used by:739 | |
Symbol 294 Graphic | Used by:739 | |
Symbol 295 Graphic | Used by:739 | |
Symbol 296 Graphic | Used by:739 | |
Symbol 297 ShapeTweening | Used by:739 | |
Symbol 298 ShapeTweening | Used by:739 | |
Symbol 299 Graphic | Used by:739 | |
Symbol 300 Graphic | Used by:739 | |
Symbol 301 Graphic | Used by:739 | |
Symbol 302 ShapeTweening | Used by:739 | |
Symbol 303 ShapeTweening | Used by:739 | |
Symbol 304 Graphic | Used by:739 | |
Symbol 305 ShapeTweening | Used by:739 | |
Symbol 306 ShapeTweening | Used by:739 | |
Symbol 307 Graphic | Used by:739 | |
Symbol 308 Graphic | Used by:739 | |
Symbol 309 Graphic | Used by:739 | |
Symbol 310 Graphic | Used by:739 | |
Symbol 311 ShapeTweening | Used by:739 | |
Symbol 312 ShapeTweening | Used by:739 | |
Symbol 313 ShapeTweening | Used by:739 | |
Symbol 314 ShapeTweening | Used by:739 | |
Symbol 315 ShapeTweening | Used by:739 | |
Symbol 316 Graphic | Used by:739 | |
Symbol 317 ShapeTweening | Used by:739 | |
Symbol 318 ShapeTweening | Used by:739 | |
Symbol 319 ShapeTweening | Used by:739 | |
Symbol 320 ShapeTweening | Used by:739 | |
Symbol 321 ShapeTweening | Used by:739 | |
Symbol 322 ShapeTweening | Used by:739 | |
Symbol 323 ShapeTweening | Used by:739 | |
Symbol 324 ShapeTweening | Used by:739 | |
Symbol 325 ShapeTweening | Used by:739 | |
Symbol 326 ShapeTweening | Used by:739 | |
Symbol 327 ShapeTweening | Used by:739 | |
Symbol 328 Graphic | Used by:739 | |
Symbol 329 ShapeTweening | Used by:739 | |
Symbol 330 ShapeTweening | Used by:739 | |
Symbol 331 ShapeTweening | Used by:739 | |
Symbol 332 ShapeTweening | Used by:739 | |
Symbol 333 ShapeTweening | Used by:739 | |
Symbol 334 ShapeTweening | Used by:739 | |
Symbol 335 ShapeTweening | Used by:739 | |
Symbol 336 ShapeTweening | Used by:739 | |
Symbol 337 ShapeTweening | Used by:739 | |
Symbol 338 ShapeTweening | Used by:739 | |
Symbol 339 ShapeTweening | Used by:739 | |
Symbol 340 Graphic | Used by:739 | |
Symbol 341 ShapeTweening | Used by:739 | |
Symbol 342 ShapeTweening | Used by:739 | |
Symbol 343 ShapeTweening | Used by:739 | |
Symbol 344 ShapeTweening | Used by:739 | |
Symbol 345 ShapeTweening | Used by:739 | |
Symbol 346 ShapeTweening | Used by:739 | |
Symbol 347 ShapeTweening | Used by:739 | |
Symbol 348 ShapeTweening | Used by:739 | |
Symbol 349 ShapeTweening | Used by:739 | |
Symbol 350 ShapeTweening | Used by:739 | |
Symbol 351 ShapeTweening | Used by:739 | |
Symbol 352 Graphic | Used by:739 | |
Symbol 353 ShapeTweening | Used by:739 | |
Symbol 354 ShapeTweening | Used by:739 | |
Symbol 355 ShapeTweening | Used by:739 | |
Symbol 356 ShapeTweening | Used by:739 | |
Symbol 357 ShapeTweening | Used by:739 | |
Symbol 358 ShapeTweening | Used by:739 | |
Symbol 359 Graphic | Used by:739 | |
Symbol 360 ShapeTweening | Used by:739 | |
Symbol 361 ShapeTweening | Used by:739 | |
Symbol 362 ShapeTweening | Used by:739 | |
Symbol 363 ShapeTweening | Used by:739 | |
Symbol 364 ShapeTweening | Used by:739 | |
Symbol 365 Graphic | Used by:739 | |
Symbol 366 ShapeTweening | Used by:739 | |
Symbol 367 ShapeTweening | Used by:739 | |
Symbol 368 ShapeTweening | Used by:739 | |
Symbol 369 ShapeTweening | Used by:739 | |
Symbol 370 ShapeTweening | Used by:739 | |
Symbol 371 ShapeTweening | Used by:739 | |
Symbol 372 ShapeTweening | Used by:739 | |
Symbol 373 ShapeTweening | Used by:739 | |
Symbol 374 ShapeTweening | Used by:739 | |
Symbol 375 ShapeTweening | Used by:739 | |
Symbol 376 ShapeTweening | Used by:739 | |
Symbol 377 Graphic | Used by:739 | |
Symbol 378 ShapeTweening | Used by:739 | |
Symbol 379 ShapeTweening | Used by:739 | |
Symbol 380 ShapeTweening | Used by:739 | |
Symbol 381 ShapeTweening | Used by:739 | |
Symbol 382 ShapeTweening | Used by:739 | |
Symbol 383 ShapeTweening | Used by:739 | |
Symbol 384 ShapeTweening | Used by:739 | |
Symbol 385 ShapeTweening | Used by:739 | |
Symbol 386 ShapeTweening | Used by:739 | |
Symbol 387 ShapeTweening | Used by:739 | |
Symbol 388 ShapeTweening | Used by:739 | |
Symbol 389 Graphic | Used by:739 | |
Symbol 390 ShapeTweening | Used by:739 | |
Symbol 391 ShapeTweening | Used by:739 | |
Symbol 392 ShapeTweening | Used by:739 | |
Symbol 393 ShapeTweening | Used by:739 | |
Symbol 394 ShapeTweening | Used by:739 | |
Symbol 395 ShapeTweening | Used by:739 | |
Symbol 396 ShapeTweening | Used by:739 | |
Symbol 397 ShapeTweening | Used by:739 | |
Symbol 398 ShapeTweening | Used by:739 | |
Symbol 399 ShapeTweening | Used by:739 | |
Symbol 400 ShapeTweening | Used by:739 | |
Symbol 401 Graphic | Used by:739 | |
Symbol 402 ShapeTweening | Used by:739 | |
Symbol 403 ShapeTweening | Used by:739 | |
Symbol 404 ShapeTweening | Used by:739 | |
Symbol 405 ShapeTweening | Used by:739 | |
Symbol 406 ShapeTweening | Used by:739 | |
Symbol 407 ShapeTweening | Used by:739 | |
Symbol 408 Graphic | Used by:739 | |
Symbol 409 Graphic | Used by:739 | |
Symbol 410 Graphic | Used by:739 | |
Symbol 411 Graphic | Used by:739 | |
Symbol 412 Graphic | Used by:739 | |
Symbol 413 Graphic | Used by:739 | |
Symbol 414 Graphic | Used by:739 | |
Symbol 415 Graphic | Used by:739 | |
Symbol 416 Graphic | Used by:739 | |
Symbol 417 Graphic | Used by:739 | |
Symbol 418 Graphic | Used by:739 | |
Symbol 419 Graphic | Used by:739 | |
Symbol 420 Graphic | Used by:739 | |
Symbol 421 Graphic | Used by:739 | |
Symbol 422 Graphic | Used by:739 | |
Symbol 423 Graphic | Used by:739 | |
Symbol 424 Graphic | Used by:739 | |
Symbol 425 Graphic | Used by:739 | |
Symbol 426 ShapeTweening | Used by:739 | |
Symbol 427 Graphic | Used by:739 | |
Symbol 428 Graphic | Used by:739 | |
Symbol 429 Graphic | Used by:739 | |
Symbol 430 Graphic | Used by:739 | |
Symbol 431 Graphic | Used by:739 | |
Symbol 432 Graphic | Used by:739 | |
Symbol 433 Graphic | Used by:739 | |
Symbol 434 Graphic | Used by:739 | |
Symbol 435 Graphic | Used by:739 | |
Symbol 436 Graphic | Used by:739 | |
Symbol 437 Graphic | Used by:739 | |
Symbol 438 Graphic | Used by:739 | |
Symbol 439 Graphic | Used by:739 | |
Symbol 440 Graphic | Used by:739 | |
Symbol 441 ShapeTweening | Used by:739 | |
Symbol 442 ShapeTweening | Used by:739 | |
Symbol 443 Graphic | Used by:739 | |
Symbol 444 Graphic | Used by:739 | |
Symbol 445 Graphic | Used by:739 | |
Symbol 446 Graphic | Used by:739 | |
Symbol 447 Graphic | Used by:739 | |
Symbol 448 Graphic | Used by:739 | |
Symbol 449 Graphic | Used by:739 | |
Symbol 450 Graphic | Used by:739 | |
Symbol 451 Graphic | Used by:739 | |
Symbol 452 Graphic | Used by:739 | |
Symbol 453 Graphic | Used by:739 | |
Symbol 454 Graphic | Used by:739 | |
Symbol 455 Graphic | Used by:739 | |
Symbol 456 Graphic | Used by:739 | |
Symbol 457 Graphic | Used by:739 | |
Symbol 458 Graphic | Used by:739 | |
Symbol 459 Graphic | Used by:739 | |
Symbol 460 Graphic | Used by:739 | |
Symbol 461 Graphic | Used by:739 | |
Symbol 462 Graphic | Used by:739 | |
Symbol 463 Graphic | Used by:739 | |
Symbol 464 Graphic | Used by:739 | |
Symbol 465 Graphic | Used by:739 | |
Symbol 466 Graphic | Used by:739 | |
Symbol 467 Graphic | Used by:739 | |
Symbol 468 Graphic | Used by:739 | |
Symbol 469 Graphic | Used by:739 | |
Symbol 470 Graphic | Used by:739 | |
Symbol 471 Graphic | Used by:739 | |
Symbol 472 Graphic | Used by:739 | |
Symbol 473 Graphic | Used by:739 | |
Symbol 474 Graphic | Used by:739 | |
Symbol 475 ShapeTweening | Used by:739 | |
Symbol 476 ShapeTweening | Used by:739 | |
Symbol 477 ShapeTweening | Used by:739 | |
Symbol 478 ShapeTweening | Used by:739 | |
Symbol 479 Graphic | Used by:739 | |
Symbol 480 Graphic | Used by:739 | |
Symbol 481 ShapeTweening | Used by:739 | |
Symbol 482 ShapeTweening | Used by:739 | |
Symbol 483 ShapeTweening | Used by:739 | |
Symbol 484 ShapeTweening | Used by:739 | |
Symbol 485 ShapeTweening | Used by:739 | |
Symbol 486 ShapeTweening | Used by:739 | |
Symbol 487 ShapeTweening | Used by:739 | |
Symbol 488 ShapeTweening | Used by:739 | |
Symbol 489 ShapeTweening | Used by:739 | |
Symbol 490 ShapeTweening | Used by:739 | |
Symbol 491 Graphic | Used by:739 | |
Symbol 492 ShapeTweening | Used by:739 | |
Symbol 493 ShapeTweening | Used by:739 | |
Symbol 494 ShapeTweening | Used by:739 | |
Symbol 495 ShapeTweening | Used by:739 | |
Symbol 496 ShapeTweening | Used by:739 | |
Symbol 497 ShapeTweening | Used by:739 | |
Symbol 498 ShapeTweening | Used by:739 | |
Symbol 499 ShapeTweening | Used by:739 | |
Symbol 500 ShapeTweening | Used by:739 | |
Symbol 501 ShapeTweening | Used by:739 | |
Symbol 502 ShapeTweening | Used by:739 | |
Symbol 503 ShapeTweening | Used by:739 | |
Symbol 504 ShapeTweening | Used by:739 | |
Symbol 505 ShapeTweening | Used by:739 | |
Symbol 506 ShapeTweening | Used by:739 | |
Symbol 507 ShapeTweening | Used by:739 | |
Symbol 508 ShapeTweening | Used by:739 | |
Symbol 509 ShapeTweening | Used by:739 | |
Symbol 510 ShapeTweening | Used by:739 | |
Symbol 511 ShapeTweening | Used by:739 | |
Symbol 512 Graphic | Used by:739 | |
Symbol 513 ShapeTweening | Used by:739 | |
Symbol 514 ShapeTweening | Used by:739 | |
Symbol 515 ShapeTweening | Used by:739 | |
Symbol 516 ShapeTweening | Used by:739 | |
Symbol 517 ShapeTweening | Used by:739 | |
Symbol 518 ShapeTweening | Used by:739 | |
Symbol 519 Graphic | Used by:739 | |
Symbol 520 ShapeTweening | Used by:739 | |
Symbol 521 ShapeTweening | Used by:739 | |
Symbol 522 Graphic | Used by:739 | |
Symbol 523 ShapeTweening | Used by:739 | |
Symbol 524 ShapeTweening | Used by:739 | |
Symbol 525 ShapeTweening | Used by:739 | |
Symbol 526 Graphic | Used by:739 | |
Symbol 527 ShapeTweening | Used by:739 | |
Symbol 528 ShapeTweening | Used by:739 | |
Symbol 529 Graphic | Used by:739 | |
Symbol 530 Graphic | Used by:739 | |
Symbol 531 ShapeTweening | Used by:739 | |
Symbol 532 ShapeTweening | Used by:739 | |
Symbol 533 ShapeTweening | Used by:739 | |
Symbol 534 Graphic | Used by:739 | |
Symbol 535 ShapeTweening | Used by:739 | |
Symbol 536 ShapeTweening | Used by:739 | |
Symbol 537 Graphic | Used by:739 | |
Symbol 538 ShapeTweening | Used by:739 | |
Symbol 539 ShapeTweening | Used by:739 | |
Symbol 540 ShapeTweening | Used by:739 | |
Symbol 541 Graphic | Used by:739 | |
Symbol 542 ShapeTweening | Used by:739 | |
Symbol 543 ShapeTweening | Used by:739 | |
Symbol 544 Graphic | Used by:739 | |
Symbol 545 Graphic | Used by:739 | |
Symbol 546 ShapeTweening | Used by:739 | |
Symbol 547 ShapeTweening | Used by:739 | |
Symbol 548 ShapeTweening | Used by:739 | |
Symbol 549 Graphic | Used by:739 | |
Symbol 550 Graphic | Used by:739 | |
Symbol 551 Graphic | Used by:739 | |
Symbol 552 Graphic | Used by:739 | |
Symbol 553 Graphic | Used by:739 | |
Symbol 554 Graphic | Used by:739 | |
Symbol 555 ShapeTweening | Used by:739 | |
Symbol 556 ShapeTweening | Used by:739 | |
Symbol 557 ShapeTweening | Used by:739 | |
Symbol 558 Graphic | Used by:739 | |
Symbol 559 Graphic | Used by:739 | |
Symbol 560 Graphic | Used by:739 | |
Symbol 561 Graphic | Used by:739 | |
Symbol 562 Graphic | Used by:739 | |
Symbol 563 Graphic | Used by:739 | |
Symbol 564 Graphic | Used by:739 | |
Symbol 565 Graphic | Used by:739 | |
Symbol 566 Graphic | Used by:739 | |
Symbol 567 Graphic | Used by:739 | |
Symbol 568 Graphic | Used by:739 | |
Symbol 569 Graphic | Used by:739 | |
Symbol 570 Graphic | Used by:739 | |
Symbol 571 Graphic | Used by:739 | |
Symbol 572 Graphic | Used by:739 | |
Symbol 573 Graphic | Used by:739 | |
Symbol 574 Graphic | Used by:739 | |
Symbol 575 Graphic | Used by:739 | |
Symbol 576 Graphic | Used by:739 | |
Symbol 577 Graphic | Used by:739 | |
Symbol 578 Graphic | Used by:739 | |
Symbol 579 Graphic | Used by:739 | |
Symbol 580 Graphic | Used by:739 | |
Symbol 581 Graphic | Used by:739 | |
Symbol 582 Graphic | Used by:739 | |
Symbol 583 Graphic | Used by:739 | |
Symbol 584 Graphic | Used by:739 | |
Symbol 585 Graphic | Used by:739 | |
Symbol 586 Graphic | Used by:739 | |
Symbol 587 Graphic | Used by:739 | |
Symbol 588 Graphic | Used by:739 | |
Symbol 589 Graphic | Used by:739 | |
Symbol 590 Graphic | Used by:739 | |
Symbol 591 Graphic | Used by:739 | |
Symbol 592 Graphic | Used by:739 | |
Symbol 593 Graphic | Used by:739 | |
Symbol 594 Graphic | Used by:739 | |
Symbol 595 Graphic | Used by:739 | |
Symbol 596 Graphic | Used by:739 | |
Symbol 597 Graphic | Used by:739 | |
Symbol 598 Graphic | Used by:739 | |
Symbol 599 Graphic | Used by:739 | |
Symbol 600 Graphic | Used by:739 | |
Symbol 601 Graphic | Used by:739 | |
Symbol 602 Graphic | Used by:739 | |
Symbol 603 Graphic | Used by:739 | |
Symbol 604 Graphic | Used by:739 | |
Symbol 605 Graphic | Used by:739 | |
Symbol 606 Graphic | Used by:739 | |
Symbol 607 Graphic | Used by:739 | |
Symbol 608 Graphic | Used by:739 | |
Symbol 609 Graphic | Used by:739 | |
Symbol 610 Graphic | Used by:739 | |
Symbol 611 Graphic | Used by:739 | |
Symbol 612 Graphic | Used by:739 | |
Symbol 613 Graphic | Used by:739 | |
Symbol 614 Graphic | Used by:739 | |
Symbol 615 Graphic | Used by:739 | |
Symbol 616 Graphic | Used by:739 | |
Symbol 617 ShapeTweening | Used by:739 | |
Symbol 618 ShapeTweening | Used by:739 | |
Symbol 619 ShapeTweening | Used by:739 | |
Symbol 620 ShapeTweening | Used by:739 | |
Symbol 621 Graphic | Used by:739 | |
Symbol 622 ShapeTweening | Used by:739 | |
Symbol 623 ShapeTweening | Used by:739 | |
Symbol 624 ShapeTweening | Used by:739 | |
Symbol 625 ShapeTweening | Used by:739 | |
Symbol 626 ShapeTweening | Used by:739 | |
Symbol 627 ShapeTweening | Used by:739 | |
Symbol 628 ShapeTweening | Used by:739 | |
Symbol 629 ShapeTweening | Used by:739 | |
Symbol 630 ShapeTweening | Used by:739 | |
Symbol 631 ShapeTweening | Used by:739 | |
Symbol 632 Graphic | Used by:739 | |
Symbol 633 ShapeTweening | Used by:739 | |
Symbol 634 ShapeTweening | Used by:739 | |
Symbol 635 ShapeTweening | Used by:739 | |
Symbol 636 ShapeTweening | Used by:739 | |
Symbol 637 ShapeTweening | Used by:739 | |
Symbol 638 ShapeTweening | Used by:739 | |
Symbol 639 ShapeTweening | Used by:739 | |
Symbol 640 ShapeTweening | Used by:739 | |
Symbol 641 ShapeTweening | Used by:739 | |
Symbol 642 ShapeTweening | Used by:739 | |
Symbol 643 ShapeTweening | Used by:739 | |
Symbol 644 ShapeTweening | Used by:739 | |
Symbol 645 ShapeTweening | Used by:739 | |
Symbol 646 ShapeTweening | Used by:739 | |
Symbol 647 ShapeTweening | Used by:739 | |
Symbol 648 ShapeTweening | Used by:739 | |
Symbol 649 ShapeTweening | Used by:739 | |
Symbol 650 ShapeTweening | Used by:739 | |
Symbol 651 ShapeTweening | Used by:739 | |
Symbol 652 ShapeTweening | Used by:739 | |
Symbol 653 Graphic | Used by:739 | |
Symbol 654 ShapeTweening | Used by:739 | |
Symbol 655 ShapeTweening | Used by:739 | |
Symbol 656 ShapeTweening | Used by:739 | |
Symbol 657 ShapeTweening | Used by:739 | |
Symbol 658 ShapeTweening | Used by:739 | |
Symbol 659 ShapeTweening | Used by:739 | |
Symbol 660 Graphic | Used by:739 | |
Symbol 661 ShapeTweening | Used by:739 | |
Symbol 662 ShapeTweening | Used by:739 | |
Symbol 663 Graphic | Used by:739 | |
Symbol 664 ShapeTweening | Used by:739 | |
Symbol 665 ShapeTweening | Used by:739 | |
Symbol 666 ShapeTweening | Used by:739 | |
Symbol 667 Graphic | Used by:739 | |
Symbol 668 ShapeTweening | Used by:739 | |
Symbol 669 Graphic | Used by:739 | |
Symbol 670 Graphic | Used by:739 | |
Symbol 671 ShapeTweening | Used by:739 | |
Symbol 672 ShapeTweening | Used by:739 | |
Symbol 673 Graphic | Used by:739 | |
Symbol 674 Graphic | Used by:739 | |
Symbol 675 ShapeTweening | Used by:739 | |
Symbol 676 ShapeTweening | Used by:739 | |
Symbol 677 ShapeTweening | Used by:739 | |
Symbol 678 Graphic | Used by:739 | |
Symbol 679 ShapeTweening | Used by:739 | |
Symbol 680 Graphic | Used by:739 | |
Symbol 681 Graphic | Used by:739 | |
Symbol 682 Graphic | Used by:739 | |
Symbol 683 ShapeTweening | Used by:739 | |
Symbol 684 ShapeTweening | Used by:739 | |
Symbol 685 Graphic | Used by:739 | |
Symbol 686 ShapeTweening | Used by:739 | |
Symbol 687 ShapeTweening | Used by:739 | |
Symbol 688 ShapeTweening | Used by:739 | |
Symbol 689 Graphic | Used by:739 | |
Symbol 690 Graphic | Used by:739 | |
Symbol 691 ShapeTweening | Used by:739 | |
Symbol 692 ShapeTweening | Used by:739 | |
Symbol 693 ShapeTweening | Used by:739 | |
Symbol 694 Graphic | Used by:739 | |
Symbol 695 Graphic | Used by:739 | |
Symbol 696 ShapeTweening | Used by:739 | |
Symbol 697 ShapeTweening | Used by:739 | |
Symbol 698 ShapeTweening | Used by:739 | |
Symbol 699 Graphic | Used by:739 | |
Symbol 700 ShapeTweening | Used by:739 | |
Symbol 701 Graphic | Used by:739 | |
Symbol 702 Graphic | Used by:739 | |
Symbol 703 Graphic | Used by:739 | |
Symbol 704 Graphic | Used by:739 | |
Symbol 705 Graphic | Used by:739 | |
Symbol 706 Graphic | Used by:739 | |
Symbol 707 ShapeTweening | Used by:739 | |
Symbol 708 Graphic | Used by:739 | |
Symbol 709 Graphic | Used by:739 | |
Symbol 710 ShapeTweening | Used by:739 | |
Symbol 711 ShapeTweening | Used by:739 | |
Symbol 712 ShapeTweening | Used by:739 | |
Symbol 713 Graphic | Used by:739 | |
Symbol 714 ShapeTweening | Used by:739 | |
Symbol 715 Graphic | Used by:739 | |
Symbol 716 Graphic | Used by:739 | |
Symbol 717 Graphic | Used by:739 | |
Symbol 718 Graphic | Used by:739 | |
Symbol 719 Graphic | Used by:739 | |
Symbol 720 Graphic | Used by:739 | |
Symbol 721 Graphic | Used by:739 | |
Symbol 722 ShapeTweening | Used by:739 | |
Symbol 723 ShapeTweening | Used by:739 | |
Symbol 724 Graphic | Used by:739 | |
Symbol 725 Graphic | Used by:739 | |
Symbol 726 Graphic | Used by:739 | |
Symbol 727 Graphic | Used by:739 | |
Symbol 728 Graphic | Used by:739 | |
Symbol 729 Graphic | Used by:739 | |
Symbol 730 Graphic | Used by:739 | |
Symbol 731 Graphic | Used by:739 | |
Symbol 732 Graphic | Used by:739 | |
Symbol 733 ShapeTweening | Used by:739 | |
Symbol 734 ShapeTweening | Used by:739 | |
Symbol 735 Graphic | Used by:739 | |
Symbol 736 Graphic | Used by:739 | |
Symbol 737 Graphic | Used by:739 | |
Symbol 738 Graphic | Used by:739 | |
Symbol 739 MovieClip {AmberClip} | Uses:43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 | |
Symbol 740 Graphic | Used by:745 | |
Symbol 741 Font | Used by:742 757 | |
Symbol 742 Text | Uses:741 | Used by:745 |
Symbol 743 Font | Used by:744 | |
Symbol 744 Text | Uses:743 | Used by:745 |
Symbol 745 MovieClip {_background} | Uses:740 742 744 | |
Symbol 746 Graphic | Used by:747 | |
Symbol 747 MovieClip {ThrowableApple} | Uses:746 | |
Symbol 748 Graphic | Used by:755 | |
Symbol 749 Graphic | Used by:755 | |
Symbol 750 Graphic | Used by:755 | |
Symbol 751 Graphic | Used by:755 | |
Symbol 752 Graphic | Used by:755 | |
Symbol 753 Graphic | Used by:755 | |
Symbol 754 Graphic | Used by:755 | |
Symbol 755 MovieClip {FireBall} | Uses:748 749 750 751 752 753 754 | |
Symbol 756 Graphic | Used by:758 | |
Symbol 757 Text | Uses:741 | Used by:758 |
Symbol 758 MovieClip {_btn} | Uses:756 757 | |
Symbol 759 Graphic | Used by:760 | |
Symbol 760 MovieClip {SoundImage} | Uses:759 |
Instance Names
"hitbox" | Symbol 739 MovieClip {AmberClip} Frame 1 | Symbol 43 MovieClip {TestClip} |
"attackbox" | Symbol 739 MovieClip {AmberClip} Frame 1 | Symbol 43 MovieClip {TestClip} |
Special Tags
FileAttributes (69) | Timeline Frame 1 | Access local files only, Metadata not present, AS3. |
Protect (24) | Timeline Frame 1 | 0 bytes "" |
Labels
"template" | Symbol 739 MovieClip {AmberClip} Frame 1 |
"stand_normal" | Symbol 739 MovieClip {AmberClip} Frame 10 |
"walk_normal" | Symbol 739 MovieClip {AmberClip} Frame 14 |
"run_normal" | Symbol 739 MovieClip {AmberClip} Frame 35 |
"jump_normal" | Symbol 739 MovieClip {AmberClip} Frame 50 |
"fall_normal" | Symbol 739 MovieClip {AmberClip} Frame 55 |
"damage_normal" | Symbol 739 MovieClip {AmberClip} Frame 60 |
"attack_normal" | Symbol 739 MovieClip {AmberClip} Frame 66 |
"throw_normal" | Symbol 739 MovieClip {AmberClip} Frame 75 |
"start_light" | Symbol 739 MovieClip {AmberClip} Frame 85 |
"stand_light" | Symbol 739 MovieClip {AmberClip} Frame 92 |
"walk_light" | Symbol 739 MovieClip {AmberClip} Frame 97 |
"run_light" | Symbol 739 MovieClip {AmberClip} Frame 118 |
"jump_light" | Symbol 739 MovieClip {AmberClip} Frame 133 |
"fall_light" | Symbol 739 MovieClip {AmberClip} Frame 138 |
"damage_light" | Symbol 739 MovieClip {AmberClip} Frame 143 |
"fill_light" | Symbol 739 MovieClip {AmberClip} Frame 148 |
"float_light" | Symbol 739 MovieClip {AmberClip} Frame 154 |
"bounce_light" | Symbol 739 MovieClip {AmberClip} Frame 167 |
"end_light" | Symbol 739 MovieClip {AmberClip} Frame 171 |
"start_heavy" | Symbol 739 MovieClip {AmberClip} Frame 185 |
"stand_heavy" | Symbol 739 MovieClip {AmberClip} Frame 192 |
"walk_heavy" | Symbol 739 MovieClip {AmberClip} Frame 197 |
"run_heavy" | Symbol 739 MovieClip {AmberClip} Frame 218 |
"jump_heavy" | Symbol 739 MovieClip {AmberClip} Frame 233 |
"fall_heavy" | Symbol 739 MovieClip {AmberClip} Frame 238 |
"damage_heavy" | Symbol 739 MovieClip {AmberClip} Frame 243 |
"attack_heavy" | Symbol 739 MovieClip {AmberClip} Frame 248 |
"crush_heavy" | Symbol 739 MovieClip {AmberClip} Frame 269 |
"bounce_heavy" | Symbol 739 MovieClip {AmberClip} Frame 280 |
"end_heavy" | Symbol 739 MovieClip {AmberClip} Frame 295 |
"start_dragon" | Symbol 739 MovieClip {AmberClip} Frame 305 |
"stand_dragon" | Symbol 739 MovieClip {AmberClip} Frame 319 |
"walk_dragon" | Symbol 739 MovieClip {AmberClip} Frame 324 |
"run_dragon" | Symbol 739 MovieClip {AmberClip} Frame 345 |
"jump_dragon" | Symbol 739 MovieClip {AmberClip} Frame 360 |
"fall_dragon" | Symbol 739 MovieClip {AmberClip} Frame 365 |
"damage_dragon" | Symbol 739 MovieClip {AmberClip} Frame 370 |
"start_fire_dragon" | Symbol 739 MovieClip {AmberClip} Frame 376 |
"fire_dragon" | Symbol 739 MovieClip {AmberClip} Frame 379 |
"fly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 384 |
"end_dragon" | Symbol 739 MovieClip {AmberClip} Frame 397 |
"start_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 413 |
"stand_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 432 |
"walk_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 437 |
"run_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 458 |
"jump_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 473 |
"fall_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 478 |
"damage_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 483 |
"stomp_dragon_belly" | Symbol 739 MovieClip {AmberClip} Frame 488 |
"end_belly_dragon" | Symbol 739 MovieClip {AmberClip} Frame 496 |
"from_dragon" | Symbol 739 MovieClip {AmberClip} Frame 520 |
"to_dragon" | Symbol 739 MovieClip {AmberClip} Frame 531 |
|