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

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

Go To Hell.swf

This is the info page for
Flash #90906

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


Text
Kickass Free Online Games

<p align="left"><font face="_sans" size="28" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>000</b></font></p>

ActionScript [AS3]

Section 1
//Animation (go_to_hell.Animation) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Animation { private var sequence:Array; private var c_frame; private var speed:Number; private var flip_h:Boolean;// = false private var bitmaps:Array; private var loop:Number; public var origin:Point; private var on_reset:Function; private var on_finish:Function; private var flip_v:Boolean;// = false private static var zero_point:Point = new Point(0, 0); public function Animation(resource:String, frames:Number, sequence:Array, speed:Number=1, loop:Number=0, origin:Point=null, div_height:Number=0, on_reset:Function=null, on_finish:Function=null){ var i:*; var bmp:BitmapData; var ani:BitmapData; bitmaps = new Array(); flip_h = false; flip_v = false; super(); this.sequence = sequence; if (!origin){ this.origin = zero_point; } else { this.origin = origin; }; if (div_height > 0){ ani = Tools.getPicture(resource); frames = Math.floor((ani.height / div_height)); i = 0; while (i < frames) { bmp = new BitmapData(ani.width, div_height, true); bmp.copyPixels(ani, new Rectangle(0, (i * div_height), ani.width, div_height), zero_point); bitmaps.push(bmp); i++; }; } else { i = 0; while (i < frames) { bitmaps.push(Tools.getPicture(((resource + "_") + i))); i++; }; }; this.speed = speed; this.loop = loop; this.on_reset = on_reset; this.on_finish = on_finish; c_frame = -(speed); } public function getNextFrame():BitmapData{ c_frame = (c_frame + speed); if (c_frame >= sequence.length){ if (on_finish != null){ on_finish(); }; if (loop < 0){ c_frame = (sequence.length - 1); } else { c_frame = (c_frame % sequence.length); if (loop > 0){ c_frame = (c_frame + loop); }; }; }; return (bitmaps[sequence[Math.floor(c_frame)]]); } public function flipV(doit:Boolean){ var i:*; if (doit == flip_v){ return; }; flip_v = doit; i = 0; while (i < this.bitmaps.length) { this.bitmaps[i] = Tools.flipBitmap(this.bitmaps[i], false, true); i++; }; origin.y = (bitmaps[0].height - origin.y); } public function getCurrentFrame():BitmapData{ if (c_frame < 0){ return (bitmaps[sequence[0]]); }; return (bitmaps[sequence[Math.floor(c_frame)]]); } public function reset(){ c_frame = -(speed); if (on_reset != null){ on_reset(); }; } public function setFrame(frame:Number){ if (frame < sequence.length){ c_frame = frame; }; } public function firstFrameShown():Boolean{ return ((c_frame >= 1)); } public function flipH(doit:Boolean){ var i:*; if (doit == flip_h){ return; }; flip_h = doit; i = 0; while (i < this.bitmaps.length) { this.bitmaps[i] = Tools.flipBitmap(this.bitmaps[i], true, false); i++; }; origin.x = (bitmaps[0].width - origin.x); } } }//package go_to_hell
Section 2
//Bat (go_to_hell.Bat) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Bat extends Character { private var dir_v;// = 1 private var active:Boolean;// = true private var board:Board; private var died;// = 0 private var dir_h;// = -1 public function Bat(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; dir_v = 1; dir_h = -1; died = 0; anim = [new Animation("bat", 3, [0, 1, 2, 1], 0.25, 0, new Point(10, 12), 20), new Animation("bat_died", 3, [0, 1, 2], 0.25, 0, new Point(10, 12), 20)]; this.board = board; super(board, container, (mx * board.field_size), ((my * board.field_size) - 1), 10, 7, anim, true); board.characters_list.register(this); board.alive_list.register(this); blood = true; flipH((Math.random() < 0.5)); } override public function die(){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); } override public function update(visible:Boolean=true){ var mx:*; var my:*; var d:*; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); return; }; if (died){ d = true; died--; if (died == 4){ setAnim(1); flipV(true); }; move(0, -1); if (!inWater()){ if (died > 15){ d = false; dir_v = -1; died = 0; flipV(false); } else { move(0, 1); }; }; if (((!(died)) && (d))){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); }; } else { if (((inWater()) || (((touchingWater()) && (board.lava))))){ if (((touchingWater()) && (board.lava))){ died = 15; } else { died = 30; }; flipV(true); } else { if (!move(0, dir_v).y){ dir_v = (dir_v * -1); } else { if (!move(dir_h, 0).x){ dir_h = (dir_h * -1); }; }; if (((((!(board.demo)) && (active))) && (collides(board.player)))){ board.player.decHealth(0.5); }; }; }; if (board.isSolid(mx, my)){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 3
//Board (go_to_hell.Board) package go_to_hell { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.filters.*; public final class Board extends MovieClip { public const field_size:Number = 10; public const grain:Number = 2; public const size_h:Number = 24; public const size_w:Number = 18; private var coins:NumberInd; private var orig_y:Number; private var mo624:Boolean;// = false public var front_sprites_b:Bitmap; public var front_sprites:Bitmap; private var mo400:Boolean;// = false public var sprites:Bitmap; public var prev_map_offset:Number;// = 0 private var hint:Hint; private var energy_gauge:Gauge; private var hell_gate:Animation; public var sprites_a:Bitmap; public var sprites_b:Bitmap; private var lava_ref:Animation; private var depth:NumberInd; public var update:Boolean;// = true public var alive_list:CharactersList; private var bv_wall:BevelFilter; public var map_offset:Number;// = 6 public var pos_offset:Number;// = 0 public var lava:Boolean;// = false public var player:PlayerCharacter; public var prepare_to_lava;// = false public var shake:Number;// = 0 private var lives:NumberInd; public var water:Metaboard; private var mo624m:Boolean;// = false private var mo350:Boolean;// = false private var background:WallFiller; public var last_player_pos:Number;// = 0 private var mo16:Boolean;// = false private var mo10:Boolean;// = false public var characters_list:CharactersList; private var health_gauge:Gauge; private var map:Array; private var mo22:Boolean;// = false private var water_ref:Animation; private var bv_water:BevelFilter; private var wall_filler:WallFiller; private var water_filler:BitmapData; private var lava_filler:BitmapData; private var demo_back:Boolean;// = false public var wall:Metaboard; private var mo150:Boolean;// = false private var air_gauge:Gauge; private var mo4m:Boolean;// = false private var mo4p:Boolean;// = false public var demo:Boolean; public var game:Game; private var devil:Devil;// = null private var orig_x:Number; public function Board(container:Game, demo:Boolean){ demo_back = false; map_offset = 6; pos_offset = 0; prev_map_offset = 0; last_player_pos = 0; map = new Array(); characters_list = new CharactersList(); alive_list = new CharactersList(); devil = null; lava = false; prepare_to_lava = false; update = true; shake = 0; mo4m = false; mo4p = false; mo10 = false; mo16 = false; mo22 = false; mo150 = false; mo350 = false; mo400 = false; mo624m = false; mo624 = false; super(); game = container; container.addChild(this); this.demo = demo; init(); if (!demo){ gameInit(); } else { map_offset = 50; }; Tools.addEvent(this, Event.ENTER_FRAME, enterFrame); } private function gameInit(){ var tbg:*; background.insertPicture("cemetery", false); wall_filler.insertPicture("wall_light_start", false); player = new PlayerCharacter(this, sprites, 11, 16); tbg = addChild(new Bitmap(Tools.getPicture("frame_top"))); health_gauge = new Gauge(this, 0, "red_cross"); addChild(health_gauge); health_gauge.x = 16; health_gauge.y = 15; energy_gauge = new Gauge(this, 1, "meat_small"); addChild(energy_gauge); energy_gauge.x = 16; energy_gauge.y = 24; air_gauge = new Gauge(this, 2, "oxygen"); addChild(air_gauge); air_gauge.x = 16; air_gauge.y = 33; lives = new NumberInd("heart_small"); addChild(lives); lives.x = 138; lives.y = 15; coins = new NumberInd("coin_small"); addChild(coins); coins.x = 138; coins.y = 24; depth = new NumberInd("metr", "", " m"); addChild(depth); depth.x = 138; depth.y = 33; } private function processFrame(){ var y:*; var is_water:*; y = map_offset; while (y <= ((map_offset + size_h) + grain)) { if (!map[y]){ addNewLine(); }; y++; }; levelEffects(); wall.y = -(pos_offset); water.y = -(pos_offset); sprites_a.y = -(pos_offset); sprites.y = -(pos_offset); sprites_b.y = -(pos_offset); front_sprites.y = -(pos_offset); front_sprites_b.y = -(pos_offset); characters_list.process(); background.getNextFill(); if (update){ wall.render(wall_filler.getNextFill(), bv_wall); }; if (!lava){ water.alpha = 0.5; is_water = water.render(water_filler, bv_water, water_ref.getNextFrame()); if (((prepare_to_lava) && (!(is_water)))){ lava = true; prepare_to_lava = false; }; } else { water.alpha = 1; water.render(lava_filler, bv_water, lava_ref.getNextFrame(), false, true); }; update = false; prev_map_offset = map_offset; characters_list.processRemovals(); alive_list.processRemovals(); if (shake){ this.y = ((0 + (Math.random() * 6)) - 3); shake--; } else { this.x = (this.y = 0); }; } public function clean(){ removeEventListener(Event.ENTER_FRAME, enterFrame); if (player){ player.clean(); }; } public function isDestructable(mx:Number, my:Number):Boolean{ return (wall.balls.mass[getFID(mx, my)]); } private function prepareFrame(){ Tools.clearBitmap(sprites_a.bitmapData); Tools.clearBitmap(sprites.bitmapData); Tools.clearBitmap(sprites_b.bitmapData); Tools.clearBitmap(front_sprites.bitmapData); Tools.clearBitmap(front_sprites_b.bitmapData); } public function getFID(x:Number, y:Number):Number{ x = (x % size_w); if (x < 0){ x = (size_w + x); }; return (((y * size_w) + x)); } private function levelEffects(){ if ((((map_offset < 4)) && (!(mo4m)))){ mo4m = true; hint.showNextHint(true); }; if ((((map_offset > 4)) && (!(mo4p)))){ mo4p = true; hint.frame = 0; }; if ((((map_offset == 10)) && (!(mo10)))){ mo10 = true; hint.showNextHint(); }; if ((((map_offset == 16)) && (!(mo16)))){ mo16 = true; hint.showNextHint(); }; if ((((map_offset == 22)) && (!(mo22)))){ mo22 = true; hint.showNextHint(); }; if ((((map_offset == 150)) && (!(mo150)))){ mo150 = true; background.insertPicture("wall_dark_2_trans", true); background.switchPicture("wall_dark_2"); wall_filler.insertPicture("wall_light_2_trans", true); wall_filler.switchPicture("wall_light_2"); }; if ((((map_offset == 350)) && (!(mo350)))){ mo350 = true; background.insertPicture("wall_dark_3_trans", true); background.switchPicture("wall_dark_3"); wall_filler.insertPicture("wall_light_3_trans", true); wall_filler.switchPicture("wall_light_3"); }; if ((((map_offset == 400)) && (!(mo400)))){ mo400 = true; hint.showNextHint(); prepare_to_lava = true; }; if ((((map_offset > 597)) && ((map_offset < 607)))){ game.sound.setVolume(game.soundtrack, ((607 - map_offset) / 10)); }; if ((((map_offset == 607)) && (!(mo624m)))){ mo624m = true; if (game.soundtrack){ game.soundtrack.stop(); }; game.soundtrack = game.sound.playSound(new rave_far(), 1, true); background.insertPictureB(hell_gate.getNextFrame(), true); background.switchPicture("wall_dark_last_trans"); }; if ((((map_offset == 624)) && (!(mo624)))){ mo624 = true; background.switchPicture("wall_dark_last"); }; if (map_offset > (624 - 17)){ background.swapIPictureB(hell_gate.getNextFrame()); }; } private function init(){ background = new WallFiller(this, "wall_dark", 0.85, true); sprites_a = new Bitmap(new BitmapData(((size_w + grain) * field_size), (size_h * field_size), true)); addChild(sprites_a); sprites = new Bitmap(new BitmapData(((size_w + grain) * field_size), (size_h * field_size), true)); addChild(sprites); sprites_b = new Bitmap(new BitmapData(((size_w + grain) * field_size), (size_h * field_size), true)); addChild(sprites_b); water = new Metaboard(this, 6, true); water_filler = Tools.getPicture("water_anim_0"); water_ref = new Animation("water_ref", 5, [0, 1, 2, 3, 4, 3, 2, 1], 0.3); lava_filler = Tools.getPicture("lava"); lava_ref = new Animation("lava_ref", 5, [0, 1, 2, 3, 4, 3, 2, 1], 0.2); wall = new Metaboard(this, 10, false, null, 6); wall_filler = new WallFiller(this, "wall_light"); front_sprites = new Bitmap(new BitmapData(((size_w + grain) * field_size), (size_h * field_size), true)); addChild(front_sprites); front_sprites_b = new Bitmap(new BitmapData(((size_w + grain) * field_size), (size_h * field_size), true)); addChild(front_sprites_b); bv_wall = new BevelFilter(1, 45, 0xFFFFFF, 0.3, 0, 0.75, 0, 0); bv_water = new BevelFilter(2, 45, 0xFFFFFF, 0.3, 0, 0, 0, 0); hell_gate = new Animation("hell", 5, [0, 1, 0, 1, 0, 1, 2, 3, 4, 0], 0.15); hint = new Hint(); addChild(hint); } public function getField(x:Number, y:Number):Field{ x = (x % size_w); if (x < 0){ x = (size_w + x); }; if (!map[y]){ return (null); }; return (map[y][x]); } public function setSolid(x:Number, y:Number, iss:Character){ if (!map[y]){ return; }; x = (x % size_w); if (x < 0){ x = (size_w + x); }; map[y][x].setSolid(iss); } private function enterFrame(e:Event){ if (game.pause_scr){ return; }; prepareFrame(); if (!demo){ if (player.pos_y > last_player_pos){ pos_offset = (player.pos_y % field_size); map_offset = (Math.floor((player.pos_y / field_size)) - 12); if (map_offset != prev_map_offset){ update = true; }; last_player_pos = player.pos_y; }; health_gauge.update(player.getHealth(), player.getMaxInd()); energy_gauge.update(player.getEnergy(), player.getMaxInd()); air_gauge.update(player.getAir(), player.getMaxInd()); lives.update(player.getLives()); coins.update(player.getCoins()); depth.update(player.getDepth()); } else { pos_offset++; if (pos_offset >= field_size){ pos_offset = (pos_offset % field_size); map_offset++; }; if (map_offset != prev_map_offset){ update = true; }; if ((((map_offset > 120)) && (!(demo_back)))){ demo_back = true; new Curtain(this, goBack); }; }; processFrame(); hint.updateHint(); } public function isSolid(x:Number, y:Number, sofa:Boolean=false):Boolean{ if (!map[y]){ return (true); }; x = (x % size_w); if (x < 0){ x = (size_w + x); }; return (map[y][x].isSolid()); } public function isDestructablePos(pos_x:Number, pos_y:Number):Boolean{ var mx:*; var my:*; mx = Math.floor((pos_x / field_size)); my = Math.floor((pos_y / field_size)); return (((wall.balls.mass[getFID(mx, my)]) || (wall.balls.mass[getFID(mx, (my - 1))]))); } private function addNewLine(){ var line:Array; var prev_line:Array; var wall_i:Boolean; var water_i:Boolean; var wall:*; var water:*; var r:*; var x:*; var y:*; var c:*; var rwc:*; var limiter:Number; line = new Array(); wall = this.wall.balls.mass; water = this.water.balls.mass; limiter = (((lava) || (prepare_to_lava))) ? 2 : 1; r = 0; while (r < grain) { prev_line = line; line = new Array(); y = map.length; rwc = 0.3; x = 0; while (x < size_w) { if ((y + map_offset) < 19){ wall_i = false; water_i = false; } else { if (((((((y + map_offset) == 19)) || (!(map[(y - grain)])))) || (!(map[(y - (grain * 2))])))){ wall_i = true; } else { if (((((y + map_offset) > 1260)) && (((y + map_offset) < 1332)))){ wall_i = false; water_i = false; } else { if ((y + map_offset) >= 1334){ if (!devil){ devil = new Devil(this, sprites_a, 8, (y - 1)); new Devil(this, sprites_a, 13, (y - 1)); }; wall_i = true; } else { wall_i = (r) ? wall[prev_line[x].balls_id] : ((Math.random())<0.5) ? true : false; if (!r){ if (!wall_i){ if (!lava){ if (map[(y - grain)][x].depth > 3){ wall_i = true; } else { if (((((x) && (!(water[getFID((x - grain), y)])))) && (!(wall[getFID((x - grain), y)])))){ water_i = false; } else { if (((((x) && (water[getFID((x - grain), y)]))) && (!(wall[getFID((x - grain), y)])))){ water_i = true; } else { if (((water[getFID(x, (y - grain))]) && (!(wall[getFID(x, (y - grain))])))){ water_i = true; } else { if (map_offset > 6){ water_i = (((((x) && (!(prepare_to_lava)))) && ((Math.random() < 0.2)))) ? true : false; } else { water_i = false; }; }; }; }; }; } else { if (map[(y - grain)][x].depth > 1){ wall_i = true; } else { water_i = (((x) && ((Math.random() < 0.075)))) ? true : false; }; }; }; if (((((!(isSolid(x, (y - 1)))) && (!(isSolid(x, (y - 3)))))) && ((Math.random() < 0.4)))){ new Boulder(this, sprites_b, (x + 1), y); wall_i = true; } else { if ((((((((((map_offset > 10)) && (!(water_i)))) && (!(isSolid(x, (y - 1)))))) && (!(isSolid((x - 1), (y - 1)))))) && ((Math.random() < (0.4 / limiter))))){ new Worm(this, sprites_b, (x + 1), y); wall_i = true; }; if (((((((((!(water_i)) && (!(isSolid(x, (y - 1)))))) && (!(isSolid((x - 1), (y - 1)))))) && (!(isSolid(x, (y - 3)))))) && ((Math.random() < 0.3)))){ new Spikes(this, sprites_b, (x + 1), y); wall_i = true; }; if ((((((((((map_offset > 150)) && (!(water_i)))) && (!(isSolid(x, (y - 1)))))) && (!(isSolid(x, (y - 3)))))) && ((Math.random() < 0.3)))){ new Bat(this, sprites_b, (x + 1), y); }; }; if (((((!(wall_i)) && (!(water_i)))) && ((Math.random() < (0.1 / limiter))))){ new Flame(this, sprites_a, (x + 1), (y + 2)); } else { if (((((!(demo)) && (!(wall_i)))) && ((Math.random() < 0.075)))){ new Coin(this, front_sprites, (x + 1), (y + 2)); } else { if (((((((!(demo)) && (!(wall_i)))) && ((player.getEnergy() < 18)))) && ((Math.random() < (0.08 * limiter))))){ new Meat(this, front_sprites, (x + 1), (y + 2)); } else { if (((((((!(demo)) && (!(wall_i)))) && ((player.getHealth() < 18)))) && ((Math.random() < (0.07 * limiter))))){ new FirstAid(this, front_sprites, (x + 1), (y + 2)); } else { if (((((!(demo)) && (!(wall_i)))) && ((Math.random() < (0.002 * limiter))))){ new Heart(this, front_sprites, (x + 1), (y + 2)); }; }; }; }; }; }; }; }; }; }; if (wall_i){ rwc = (rwc - 0.2); } else { rwc = (rwc + 0.2); }; c = 0; while (c < grain) { line[(x + c)] = new Field(this, (x + c), y, wall_i, water_i); c++; }; x = (x + grain); }; map.push(line); x = size_w; while (x >= 0) { if (((water[getFID((x + 1), y)]) && (!(wall[getFID((x + 1), y)])))){ water[getFID(x, y)] = 1; }; x--; }; r++; }; } private function goBack(){ demo_back = false; map_offset = 50; map = new Array(); } } }//package go_to_hell
Section 4
//Boulder (go_to_hell.Boulder) package go_to_hell { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public final class Boulder extends Character { private var l_mov:Boolean;// = false private var board:Board; private var destr:Boolean;// = true private var push_dist:Number;// = 0 private var push_dir:Number; private var picture_id:Number; public function Boulder(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; l_mov = false; destr = true; push_dist = 0; anim = [new Animation("boulder", 6, [0, 1, 2, 3, 4, 5], 0, -1, new Point(10, 20), 20), new Animation("boulder_blood", 6, [0, 1, 2, 3, 4, 5], 0, -1, new Point(10, 20), 20), new Animation("boulder_slime", 6, [0, 1, 2, 3, 4, 5], 0, -1, new Point(10, 20), 20)]; this.board = board; super(board, container, (mx * board.field_size), ((my * board.field_size) - 1), 16, 20, anim, true); picture_id = Math.round((Math.random() * 5)); anim[0].setFrame(picture_id); board.setSolid(mx, my, this); board.setSolid(mx, (my - 1), this); board.setSolid((mx - 1), my, this); board.setSolid((mx - 1), (my - 1), this); board.characters_list.register(this); } private function destroyDown(){ var ground:*; var x:*; var y:*; ground = onGround(); if (!ground){ return; }; x = 0; while (x < 2) { y = 0; while (y < 2) { board.wall.balls.set(board.getFID((ground.x + x), (ground.y + y)), 0); board.water.balls.set(board.getFID((ground.x + x), (ground.y + y)), 0); y++; }; x++; }; board.update = true; new Dust(board, board.front_sprites, (ground.x + 1), (ground.y + 1)); if (!board.demo){ board.game.sound.playSound(new crush_sound()); }; } override public function update(visible:Boolean=true){ var mx:*; var my:*; var ground:Point; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; board.setSolid(mx, my, null); board.setSolid(mx, (my - 1), null); board.setSolid((mx - 1), my, null); board.setSolid((mx - 1), (my - 1), null); body_width = 16; if (!move(0, 4).y){ body_width = 18; if (((push_dist) && (move((4 * push_dir), 0).x))){ body_width = 16; push_dist = (push_dist - 2); board.alive_list.processOp(crush); } else { body_width = 16; push_dist = 0; board.setSolid(mx, my, this); board.setSolid(mx, (my - 1), this); board.setSolid((mx - 1), my, this); board.setSolid((mx - 1), (my - 1), this); if (l_mov){ if (!destr){ ground = onGround(); if (((ground) && (board.isDestructable(ground.x, ground.y)))){ destroyDown(); } else { if (!board.demo){ board.game.sound.playSound(new hit_sound()); board.shake = 5; }; }; } else { if (!board.demo){ board.game.sound.playSound(new hit_sound()); board.shake = 5; }; }; destr = true; } else { destr = false; }; l_mov = false; }; } else { l_mov = true; board.alive_list.processOp(crush); }; super.update(); } public function crush(character:Character){ if (collides(character)){ if (!board.demo){ board.game.sound.playSound(new smash_sound()); }; character.die(); setAnim((character.blood) ? 1 : 2); getAnim().setFrame(picture_id); }; } override public function pushIt(dir:Number){ if (!push_dist){ push_dist = board.field_size; push_dir = ((dir)<0) ? -1 : 1; }; } } }//package go_to_hell
Section 5
//Button (go_to_hell.Button) package go_to_hell { import flash.text.*; import flash.display.*; import flash.events.*; public class Button extends MovieClip { private var label:TextField; private var shadow:TextField; public var operation:String; private var fnt:pixel_font; public function Button(){ var format:TextFormat; fnt = new pixel_font(); super(); shadow = new TextField(); format = new TextFormat(); format.font = fnt.fontName; format.color = 0; format.size = 8; format.align = "center"; shadow.defaultTextFormat = format; addChild(shadow); shadow.width = 80; shadow.x = 1; shadow.y = 4; shadow.embedFonts = true; shadow.selectable = false; shadow.mouseEnabled = false; shadow.alpha = 0.75; label = new TextField(); format = new TextFormat(); format.font = fnt.fontName; format.color = 0xFFFFFF; format.size = 8; format.align = "center"; label.defaultTextFormat = format; addChild(label); label.width = 80; label.x = 0; label.y = 3; label.embedFonts = true; label.selectable = false; label.mouseEnabled = false; Tools.addEvent(this, MouseEvent.MOUSE_UP, release); } private function release(event:MouseEvent){ if (operation != ""){ Object(this.parent)[operation](); }; } public function set caption(value:String){ shadow.text = value; label.text = value; } } }//package go_to_hell
Section 6
//ButtonBig (go_to_hell.ButtonBig) package go_to_hell { public final class ButtonBig extends Button { public function ButtonBig(){ super(); } } }//package go_to_hell
Section 7
//Character (go_to_hell.Character) package go_to_hell { import flash.display.*; import flash.geom.*; public class Character { private const zero_point:Point; public var container:Bitmap; public var pos_x:Number; public var pos_y:Number; private var current_anim:Number;// = 0 public var separate; public var body_height:Number; private var board:Board; public var body_width:Number; private var animations:Array; public var blood:Boolean;// = false public function Character(board:Board, container:Bitmap, pos_x:Number, pos_y:Number, body_width:Number, body_height:Number, animations:Array, separate:Boolean=false){ blood = false; current_anim = 0; zero_point = new Point(0, 0); super(); this.board = board; this.animations = animations; this.container = container; this.pos_x = pos_x; this.pos_y = pos_y; this.body_width = body_width; this.body_height = body_height; this.separate = separate; } public function getRectangle():Rectangle{ return (new Rectangle((pos_x - (body_width / 2)), (pos_y - body_height), body_width, body_height)); } public function update(visible:Boolean=true){ var mx:*; var my:*; var x:*; var y:*; var wave:*; var cf:BitmapData; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (pos_x > (board.field_size * board.size_w)){ pos_x = (pos_x % (board.field_size * board.size_w)); }; if (pos_x < 0){ pos_x = ((board.field_size * board.size_w) + pos_x); }; wave = 0; if (((((inWater()) && (!(onGround())))) && (!(separate)))){ wave = board.water.wave; }; x = (pos_x - animations[current_anim].origin.x); y = (((pos_y - animations[current_anim].origin.y) - (board.map_offset * board.field_size)) + Math.round(Math.sin(((mx * 2) + (wave / 2))))); if (visible){ cf = animations[current_anim].getNextFrame(); container.bitmapData.copyPixels(cf, cf.rect, new Point(x, y), null, null, true); if ((pos_x - (body_width / 2)) < (board.field_size * 2)){ x = (x + (board.field_size * board.size_w)); container.bitmapData.copyPixels(cf, cf.rect, new Point(x, y), null, null, true); }; }; } public function inWater():Boolean{ var mx:*; var my:*; var dify:*; var level:*; if (!board.water){ return (false); }; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (board.isSolid(mx, my)){ return (false); }; if (board.water.balls.mass[board.getFID(mx, my)] < 0.9){ return (false); }; dify = ((my * board.field_size) - pos_y); level = (((1 + board.water.balls.mass[board.getFID(mx, (my - 1))]) + (board.isSolid(mx, (my - 2))) ? 0 : board.water.balls.mass[board.getFID(mx, (my - 2))]) * board.field_size); return ((level > (dify + (body_height * 1.2)))); } public function flipV(doit:Boolean){ animations[current_anim].flipV(doit); } public function move(ox:Number, oy:Number):Point{ var m:*; var mx:*; var mx1:*; var mx2:*; var my:*; var moved:Point; moved = new Point(0, 0); m = ox; while (m != 0) { if (ox < 0){ mx = Math.floor(((((pos_x - (body_width / 2)) - 2) + m) / board.field_size)); } else { mx = Math.floor((((pos_x + (body_width / 2)) + m) / board.field_size)); }; my = Math.floor((pos_y / board.field_size)); if (!((board.wall) && (((board.isSolid(mx, my)) || (board.isSolid(mx, (my - 1))))))){ pos_x = (pos_x + m); moved.x = 1; break; }; if (m < 0){ m++; } else { m--; }; }; m = oy; while (m != 0) { if (oy < 0){ my = Math.floor((((pos_y + m) - body_height) / board.field_size)); } else { my = Math.floor(((pos_y + m) / board.field_size)); }; mx1 = Math.floor(((pos_x + (body_width / 2)) / board.field_size)); mx2 = Math.floor(((pos_x - (body_width / 2)) / board.field_size)); if (!((board.wall) && (((board.isSolid(mx1, my)) || (board.isSolid(mx2, my)))))){ pos_y = (pos_y + m); moved.y = 1; break; }; if (m < 0){ m++; } else { m--; }; }; return (moved); } public function setAnim(anim:Number):Boolean{ if (anim != current_anim){ current_anim = anim; animations[current_anim].reset(); return (true); }; return (false); } public function touchingWater():Boolean{ var mx:*; var my:*; if (!board.water){ return (false); }; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (board.isSolid(mx, my)){ return (false); }; return ((board.water.balls.mass[board.getFID(mx, my)] > 0.2)); } public function onGround():Point{ var my:*; var mx1:*; var mx2:*; my = Math.floor(((pos_y + 1) / board.field_size)); mx1 = Math.floor(((pos_x - (body_width / 2)) / board.field_size)); mx2 = Math.floor(((pos_x + (body_width / 2)) / board.field_size)); if (!((board.wall) && (((board.isSolid(mx1, my)) || (board.isSolid(mx2, my)))))){ return (null); }; return (new Point(mx1, my)); } public function getAnim():Animation{ return (animations[current_anim]); } public function die(){ } public function underWater():Boolean{ var mx:*; var my:*; var dify:*; var level:*; if (!board.water){ return (false); }; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (board.isSolid(mx, my)){ return (false); }; if (board.water.balls.mass[board.getFID(mx, my)] < 0.9){ return (false); }; dify = ((my * board.field_size) - pos_y); level = (((1 + board.water.balls.mass[board.getFID(mx, (my - 1))]) + (board.isSolid(mx, (my - 2))) ? 0 : board.water.balls.mass[board.getFID(mx, (my - 2))]) * board.field_size); return ((level > (dify + (body_height * 1.55)))); } public function getAnimID():Number{ return (current_anim); } public function pushIt(dir:Number){ } public function collides(character:Character):Boolean{ var trect:Rectangle; var orect:Rectangle; trect = getRectangle(); orect = character.getRectangle(); return (trect.intersects(orect)); } public function flipH(doit:Boolean){ animations[current_anim].flipH(doit); } } }//package go_to_hell
Section 8
//CharactersList (go_to_hell.CharactersList) package go_to_hell { public final class CharactersList { private var rem_list:Array; private var ch_list:Array; public function CharactersList(){ ch_list = new Array(); rem_list = new Array(); super(); } public function registerToRemove(character:Character){ rem_list.push(character); } public function register(character:Character){ ch_list.push(character); } public function process(){ var i:*; i = (ch_list.length - 1); while (i >= 0) { ch_list[i].update(); i--; }; } public function processRemovals(){ var i:*; var j:*; i = 0; while (i < rem_list.length) { j = (ch_list.length - 1); while (j >= 0) { if (ch_list[j] == rem_list[i]){ ch_list.splice(j, 1); }; j--; }; i++; }; rem_list = new Array(); } public function processOp(op:Function){ var i:*; i = (ch_list.length - 1); while (i >= 0) { op(ch_list[i]); i--; }; } } }//package go_to_hell
Section 9
//Coin (go_to_hell.Coin) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Coin extends Character { private var active:Boolean;// = true private var board:Board; public function Coin(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("coin", 6, [0, 1, 2, 3, 4, 5], 0.25, 0, new Point(8, 17), 17)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 17, 17, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var my:*; my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((active) && (collides(board.player)))){ board.game.sound.playSound(new blip()); board.player.addCoin(); board.characters_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 10
//Curtain (go_to_hell.Curtain) package go_to_hell { import flash.display.*; public final class Curtain extends MovieClip { private var operation:Function; public function Curtain(container:MovieClip=null, operation:Function=null){ super(); addFrameScript(9, frame10, 44, frame45); if (((!(container)) || ((operation == null)))){ return; }; container.addChild(this); this.operation = operation; } function frame10(){ this.operation(); } function frame45(){ stop(); Tools.remove(this); } } }//package go_to_hell
Section 11
//Devil (go_to_hell.Devil) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Devil extends Character { private var board:Board; private var info:Info; public function Devil(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; anim = [new Animation("devil", 4, [0, 0, 0, 0, 0, 0, 0, 1, 2, 3], 0.2, 0, new Point(10, 20), 20)]; this.board = board; super(board, container, (mx * board.field_size), ((my * board.field_size) - 1), 16, 21, anim); board.characters_list.register(this); } override public function update(visible:Boolean=true){ move(0, 2); if (((!(board.demo)) && (collides(board.player)))){ if (!info){ if (board.player.getCoins() < 50){ info = new Info(board, board.front_sprites_b, this, 4, 40, noCoins); } else { info = new Info(board, board.front_sprites_b, this, 3, 40, board.game.initEndGame); }; }; }; super.update(); } private function noCoins(){ board.game.gameOver(board.player.resultArray()); } } }//package go_to_hell
Section 12
//Dust (go_to_hell.Dust) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Dust extends Character { private var board:Board; public function Dust(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; anim = [new Animation("dust", 5, [0, 1, 2, 3, 4], 0.3, -1, new Point(16, 16), 0, null, finish)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 12, 19, anim, true); board.characters_list.register(this); update(); } private function finish(){ board.characters_list.registerToRemove(this); } } }//package go_to_hell
Section 13
//Field (go_to_hell.Field) package go_to_hell { public final class Field { public var depth:Number;// = 0 public var balls_id:Number; private var solid:Character;// = null private var board:Board; public var pos_y:Number; public var pos_x:Number; public function Field(board:Board, pos_x:Number, pos_y:Number, wall:Boolean=false, water:Boolean=false){ solid = null; depth = 0; super(); this.board = board; this.pos_x = pos_x; this.pos_y = pos_y; this.balls_id = board.getFID(pos_x, pos_y); if (((!(wall)) && (board.getField(pos_x, (pos_y - 1))))){ depth = ((((board.getField((pos_x - 1), (pos_y - 1)).depth + board.getField(pos_x, (pos_y - 1)).depth) + board.getField((pos_x + 1), (pos_y - 1)).depth) / 3) + 1); }; board.wall.balls.set(balls_id, (wall) ? 1 : 0); board.water.balls.set(balls_id, (((((water) || (wall))) && (pos_y))) ? 1 : 0); } public function isSolid(){ return (((!((board.wall.balls.mass[board.getFID(pos_x, pos_y)] == 0))) || (solid))); } public function setSolid(character:Character){ solid = character; } public function getSolidCharacter():Character{ return (solid); } } }//package go_to_hell
Section 14
//FinalScene (go_to_hell.FinalScene) package go_to_hell { import flash.display.*; import flash.events.*; import flash.geom.*; public final class FinalScene extends MovieClip { private var output:BitmapData; private var anim:Animation; private var frame:Number;// = 0 private var board:Board; private static var zero_point:Point = new Point(0, 0); public function FinalScene(board:Board){ var disp:Bitmap; frame = 0; super(); this.board = board; anim = new Animation("hell_inside", 4, [0, 1, 2, 3], 0.2); output = anim.getCurrentFrame().clone(); disp = new Bitmap(output); addChild(disp); Tools.addEvent(this, Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event){ frame++; if (frame == 200){ board.game.gameOver(board.player.resultArray(), true); }; output.copyPixels(anim.getNextFrame(), output.rect, zero_point); } } }//package go_to_hell
Section 15
//FirstAid (go_to_hell.FirstAid) package go_to_hell { import flash.display.*; import flash.geom.*; public final class FirstAid extends Character { private var active:Boolean;// = true private var board:Board; public function FirstAid(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("first_aid", 6, [0, 1, 2, 3, 4, 5], 0.25, 0, new Point(8, 17), 17)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 17, 17, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var my:*; my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((active) && (collides(board.player)))){ board.game.sound.playSound(new blip()); board.player.addHealth(); board.characters_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 16
//Flame (go_to_hell.Flame) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Flame extends Character { private var active:Boolean;// = true private var board:Board; public function Flame(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("flame", 3, [0, 1, 2, 1], 0.25, 0, new Point(16, 32), 32), new Animation("flame_snuff", 5, [0, 1, 2, 3, 4], 0.25, -1, new Point(16, 32), 32)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 10, 16, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var mx:*; var my:*; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((!(board.lava)) && ((((board.water.balls.mass[board.getFID(mx, (my - 1))] > 0.3)) || ((board.water.balls.mass[board.getFID((mx - 1), (my - 1))] > 0.3)))))){ setAnim(1); active = false; }; if (((((!(board.demo)) && (active))) && (collides(board.player)))){ board.player.decHealth(0.5); }; super.update(); } private function finish(){ board.characters_list.registerToRemove(this); } } }//package go_to_hell
Section 17
//Game (go_to_hell.Game) package go_to_hell { import flash.media.*; import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.net.*; public class Game extends MovieClip { public var game_over:GameOver; public var sound:SoundSystem; public var initing_eg:Boolean;// = false public var initing_i:Boolean;// = false public var pause_scr:Pause;// = null public var final_scene:FinalScene; public var soundtrack:SoundChannel; public var initing_sg:Boolean;// = false public var board:Board; public function Game(){ pause_scr = null; initing_eg = false; initing_sg = false; initing_i = false; super(); init(); } public function init(){ } public function initGame(){ if (initing_sg){ return; }; initing_sg = true; new Curtain(this, startGame); } public function windowActive(e:Event){ if (pause_scr){ Tools.remove(pause_scr); pause_scr = null; }; } public function startIntro(){ } public function initIntro(){ if (initing_i){ return; }; initing_i = true; new Curtain(this, startIntro); } public function initEndGame(){ if (initing_eg){ return; }; initing_eg = true; new Curtain(this, endGame); } public function startGame(){ } public function endGame(){ if (soundtrack){ soundtrack.stop(); }; soundtrack = sound.playSound(new rave(), 1, true); final_scene = new FinalScene(board); addChild(final_scene); } public function visitSponsor(){ var request:*; request = new URLRequest((language.url1 + "&utm_content=menu")); navigateToURL(request, "_blank"); } public function windowNotActive(e:Event){ if (((((initing_sg) && (!(game_over)))) && (!(pause_scr)))){ pause_scr = new Pause(); addChild(pause_scr); }; } public function showHigscores(){ var o:Object; var boardID:String; o = {n:[2, 15, 12, 14, 15, 6, 15, 9, 11, 1, 14, 14, 1, 10, 9, 6], f:function (i:Number, s:String):String{ if (s.length == 16){ return (s); }; return (this.f((i + 1), (s + this.n[i].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, onDisplay:function (){ }, onClose:function (){ }}); } public function switchCredits(){ } public function gameOver(results:Array, won:Boolean=false){ } } }//package go_to_hell
Section 18
//GameLogo (go_to_hell.GameLogo) package go_to_hell { import flash.display.*; import flash.events.*; import flash.geom.*; public final class GameLogo extends MovieClip { private const zero_point:Point; private var anim:Animation; private var container:MovieClip; private var bmp:Bitmap; public function GameLogo(container:MovieClip){ zero_point = new Point(0, 0); super(); anim = new Animation("logo_anim", 5, [0, 1, 2, 3, 4], 0.25, 0, new Point(0, 0), 121); this.container = container; container.addChild(this); bmp = new Bitmap(anim.getCurrentFrame().clone()); addChild(bmp); bmp.x = 12; bmp.y = 15; mouseEnabled = false; mouseChildren = false; Tools.addEvent(this, Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event){ container.setChildIndex(this, (container.numChildren - 1)); bmp.bitmapData.copyPixels(anim.getNextFrame(), bmp.bitmapData.rect, zero_point); } } }//package go_to_hell
Section 19
//GameOver (go_to_hell.GameOver) package go_to_hell { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.net.*; public class GameOver extends MovieClip { public var coins:NumberInd; public var bonus:NumberInd; public var total_bonus:Number; public var frame:Number;// = 0 public var score:NumberInd; public var depth:NumberInd; public var total_score:Number; public var game:Game; public var results:Array; public function GameOver(game:GameSpilGames, results:Array, won:Boolean=false){ frame = 0; super(); } public function submit(){ var o:Object; var boardID:String; o = {n:[2, 15, 12, 14, 15, 6, 15, 9, 11, 1, 14, 14, 1, 10, 9, 6], f:function (i:Number, s:String):String{ if (s.length == 16){ return (s); }; return (this.f((i + 1), (s + this.n[i].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:total_score, onDisplay:function (){ }, onClose:function (){ }}); } public function cnt(){ game.initIntro(); } public function visitSponsor(){ var request:*; request = new URLRequest((language.url1 + "&utm_content=game_over")); navigateToURL(request, "_blank"); } public function enterFrame(e:Event){ } } }//package go_to_hell
Section 20
//GameOverSpilGames (go_to_hell.GameOverSpilGames) package go_to_hell { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.net.*; public final class GameOverSpilGames extends GameOver { public var s_logo:MovieClip; public var submit_button:Button; public var sp_link:ButtonBig; public var cnt_button:Button; public function GameOverSpilGames(game:GameSpilGames, results:Array, won:Boolean=false){ var head:Bitmap; addFrameScript(9, frame10); super(game, results, won); if (won){ head = new Bitmap(Tools.getPicture("congratulations")); addChild(head); head.y = 20; } else { head = new Bitmap(Tools.getPicture("game_over")); addChild(head); head.y = 20; }; coins = new NumberInd("coin_small", (("" + results[0]) + " x 10 = ")); addChild(coins); coins.x = 54; coins.y = 70; depth = new NumberInd("metr", (("" + results[1]) + " M x 1 = ")); addChild(depth); depth.x = 54; depth.y = 85; bonus = new NumberInd(null, "FINISH BONUS = "); addChild(bonus); bonus.x = 44; bonus.y = 110; score = new NumberInd(null, "TOTAL SCORE = "); addChild(score); score.x = 46; score.y = 125; this.results = results; this.game = game; total_bonus = (won) ? 1000 : 0; total_score = (((results[0] * 10) + results[1]) + (won) ? 1000 : 0); cnt_button.visible = false; submit_button.visible = false; s_logo.mouseEnabled = false; s_logo.visible = false; sp_link.visible = false; Tools.addEvent(this, Event.ENTER_FRAME, enterFrame); __setProp_cnt_button_game_over_Warstwa3_1(); __setProp_sp_link_game_over_Warstwa3_1(); __setProp_submit_button_game_over_Warstwa3_1(); } override public function submit(){ var o:Object; var boardID:String; if (comscore(root).Sub){ comscore(root).Sub._O01lOO10O(total_score); } else { if (comscore(root).hs_allowed){ o = {n:[2, 15, 12, 14, 15, 6, 15, 9, 11, 1, 14, 14, 1, 10, 9, 6], f:function (i:Number, s:String):String{ if (s.length == 16){ return (s); }; return (this.f((i + 1), (s + this.n[i].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:total_score, onDisplay:function (){ }, onClose:function (){ }}); }; }; } function frame10(){ stop(); } function __setProp_submit_button_game_over_Warstwa3_1(){ submit_button["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; submit_button.operation = "submit"; submit_button.caption = "SUBMIT SCORE"; submit_button["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } override public function enterFrame(e:Event){ if (frame < 60){ frame++; } else { cnt_button.visible = true; if (((comscore(root).Sub) || (comscore(root).hs_allowed))){ submit_button.visible = true; }; s_logo.visible = true; sp_link.visible = true; setChildIndex(submit_button, (this.numChildren - 1)); setChildIndex(cnt_button, (this.numChildren - 1)); setChildIndex(sp_link, (this.numChildren - 1)); setChildIndex(s_logo, (this.numChildren - 1)); }; coins.update(Math.floor((((results[0] * 10) / 60) * frame))); depth.update(Math.floor(((results[1] / 60) * frame))); bonus.update(Math.floor(((total_bonus / 60) * frame))); score.update(Math.floor(((total_score / 60) * frame))); } function __setProp_cnt_button_game_over_Warstwa3_1(){ cnt_button["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; cnt_button.operation = "cnt"; cnt_button.caption = "PLAY AGAIN"; cnt_button["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_sp_link_game_over_Warstwa3_1(){ sp_link["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sp_link.operation = "visitSponsor"; sp_link.caption = "MORE GAMES"; sp_link["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package go_to_hell
Section 21
//GameSpilGames (go_to_hell.GameSpilGames) package go_to_hell { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.net.*; public final class GameSpilGames extends Game { public var s_logo:MovieClip; public var intro_txt:MovieClip; public var c_switch:Button; public var credits:MovieClip; public var show_h:Button; public var d_logo:MovieClip; public var c_cnt:Button; public var sp_link:ButtonBig; public var start_button:Button; public function GameSpilGames(){ super(); init(); __setProp_c_switch_game_Warstwa1_1(); __setProp_sp_link_game_Warstwa1_1(); __setProp_show_h_game_Warstwa1_1(); __setProp_start_button_game_Warstwa1_1(); __setProp_c_cnt_game_Warstwa10_1(); } override public function init(){ scaleX = (scaleY = 2); new Curtain(this, startIntro); intro_txt.visible = false; start_button.visible = false; c_switch.visible = false; c_cnt.visible = false; show_h.visible = false; sp_link.visible = false; s_logo.visible = false; s_logo.mouseEnabled = false; d_logo.visible = false; credits.visible = false; sound = new SoundSystem(); stage.addEventListener(Event.DEACTIVATE, windowNotActive); stage.addEventListener(Event.ACTIVATE, windowActive); } override public function startIntro(){ if (soundtrack){ soundtrack.stop(); }; soundtrack = sound.playSound(new eternal(), 1, true); initing_eg = false; initing_sg = false; initing_i = false; Tools.remove(game_over); Tools.remove(final_scene); game_over = null; final_scene = null; if (board){ board.clean(); Tools.remove(board); board = null; }; board = new Board(this, true); setChildIndex(board, 0); new GameLogo(board); intro_txt.visible = true; start_button.visible = true; c_switch.visible = true; if (((comscore(root).Sub) || (comscore(root).hs_allowed))){ show_h.visible = true; } else { start_button.y = 147; }; sp_link.visible = true; s_logo.visible = true; d_logo.visible = false; } function __setProp_c_cnt_game_Warstwa10_1(){ c_cnt["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; c_cnt.operation = "switchCredits"; c_cnt.caption = "CONTINUE"; c_cnt["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } override public function startGame(){ if (soundtrack){ soundtrack.stop(); }; soundtrack = sound.playSound(new eternal(), 1, true); board.clean(); Tools.remove(board); board = null; intro_txt.visible = false; start_button.visible = false; c_switch.visible = false; show_h.visible = false; credits.visible = false; sp_link.visible = false; s_logo.visible = false; d_logo.visible = false; board = new Board(this, false); setChildIndex(board, 0); } function __setProp_show_h_game_Warstwa1_1(){ show_h["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; show_h.operation = "showHigscores"; show_h.caption = "HIGHSCORES"; show_h["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_sp_link_game_Warstwa1_1(){ sp_link["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sp_link.operation = "visitSponsor"; sp_link.caption = "MORE GAMES"; sp_link["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } override public function showHigscores(){ var o:Object; var boardID:String; if (comscore(root).Sub){ comscore(root).Sub._O110l10ll(); } else { if (comscore(root).hs_allowed){ o = {n:[2, 15, 12, 14, 15, 6, 15, 9, 11, 1, 14, 14, 1, 10, 9, 6], f:function (i:Number, s:String):String{ if (s.length == 16){ return (s); }; return (this.f((i + 1), (s + this.n[i].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, onDisplay:function (){ }, onClose:function (){ }}); }; }; } override public function switchCredits(){ credits.visible = !(credits.visible); c_cnt.visible = !(c_cnt.visible); } function __setProp_c_switch_game_Warstwa1_1(){ c_switch["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; c_switch.operation = "switchCredits"; c_switch.caption = "CREDITS"; c_switch["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } override public function gameOver(results:Array, won:Boolean=false){ if (game_over){ return; }; game_over = new GameOverSpilGames(this, results, won); addChild(game_over); } function __setProp_start_button_game_Warstwa1_1(){ start_button["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; start_button.operation = "initGame"; start_button.caption = "START"; start_button["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package go_to_hell
Section 22
//Gauge (go_to_hell.Gauge) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Gauge extends MovieClip { private const zero_point:Point; private var current_anim:Number;// = 0 private var image:BitmapData; private var value:Number;// = -1 private var animations:Array; private var board:Board; public function Gauge(board:Board, color:Number, icon:String){ var bg:Bitmap; var ibmp:*; value = -1; current_anim = 0; zero_point = new Point(0, 0); super(); color = (color % 3); animations = [new Animation(("bar_" + color), 1, [0], 0.25, -1, new Point(0, 0), 3), new Animation(("bar_" + color), 3, [0, 1, 2, 1], 0.25, -1, new Point(0, 0), 3, null, reset)]; bg = new Bitmap(animations[current_anim].getCurrentFrame().clone()); addChild(bg); bg.x = 11; bg.y = 3; bg.alpha = 0.25; image = animations[current_anim].getCurrentFrame().clone(); ibmp = new Bitmap(image); addChild(ibmp); ibmp.x = 11; ibmp.y = 3; addChild(new Bitmap(Tools.getPicture(icon))); this.board = board; } private function reset(){ setAnim(0); } public function setAnim(anim:Number):Boolean{ if (anim != current_anim){ current_anim = anim; animations[current_anim].reset(); return (true); }; return (false); } public function update(value:Number, max:Number){ if (this.value != value){ setAnim(1); this.value = value; }; Tools.clearBitmap(image); image.copyPixels(animations[current_anim].getNextFrame(), new Rectangle(0, 0, Math.floor(((value / max) * image.width)), 3), zero_point); } } }//package go_to_hell
Section 23
//Heart (go_to_hell.Heart) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Heart extends Character { private var active:Boolean;// = true private var board:Board; public function Heart(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("heart", 3, [0, 1, 2, 1], 0.25, 0, new Point(9, 17), 17)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 19, 17, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var my:*; my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((active) && (collides(board.player)))){ board.game.sound.playSound(new blip()); board.player.addLife(); board.characters_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 24
//Hint (go_to_hell.Hint) package go_to_hell { import flash.display.*; public final class Hint extends MovieClip { public var frame:Number;// = 0 private var hint:Number;// = 0 private var manual:Boolean; private var head:Bitmap; public function Hint(){ hint = 0; frame = 0; super(); } public function showNextHint(manual:Boolean=false){ if (head){ Tools.remove(head); head = null; }; hint++; head = new Bitmap(Tools.getPicture(("hint_" + hint))); addChild(head); head.y = 160; frame = 200; this.manual = manual; } public function updateHint(){ if (!head){ return; }; if (!manual){ frame--; }; if (frame == 0){ Tools.remove(head); head = null; }; } } }//package go_to_hell
Section 25
//HotSpotURL (go_to_hell.HotSpotURL) package go_to_hell { import flash.display.*; import flash.events.*; import flash.net.*; public final class HotSpotURL extends MovieClip { public var url:String; public function HotSpotURL(){ super(); Tools.addEvent(this, MouseEvent.MOUSE_UP, release); alpha = 0; } private function release(event:MouseEvent){ var request:URLRequest; request = new URLRequest(url); navigateToURL(request, "_blank"); } } }//package go_to_hell
Section 26
//Info (go_to_hell.Info) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Info extends Character { private var board:Board; private var operation:Function; private var character:Character; private var time_span:Number; public function Info(board:Board, container:Bitmap, attach:Character, type:Number, time_span:Number=60, operation:Function=null){ var anim:Array; anim = [new Animation("info_air", 1, [0], 0, -1, new Point(0, 30), 30), new Animation("info_hungry", 1, [0], 0, -1, new Point(0, 30), 30), new Animation("info_hurt", 1, [0], 0, -1, new Point(0, 30), 30), new Animation("info_coins", 1, [0], 0, -1, new Point(0, 46), 46), new Animation("info_more_coins", 1, [0], 0, -1, new Point(0, 46), 46)]; this.board = board; super(board, container, attach.pos_x, (attach.pos_y - attach.body_height), 42, 20, anim); setAnim(type); this.character = attach; this.time_span = time_span; this.operation = operation; board.characters_list.register(this); } override public function update(visible:Boolean=true){ pos_x = character.pos_x; pos_y = (character.pos_y - character.body_height); if (time_span >= 0){ time_span--; }; if ((((time_span == -1)) && (!((operation == null))))){ operation(); }; if (time_span > 0){ super.update(); }; } } }//package go_to_hell
Section 27
//Meat (go_to_hell.Meat) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Meat extends Character { private var active:Boolean;// = true private var board:Board; public function Meat(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("meat", 5, [0, 1, 2, 1, 3, 4, 3], 0.25, 0, new Point(9, 17), 17)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 19, 17, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var my:*; my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((active) && (collides(board.player)))){ board.game.sound.playSound(new blip()); board.player.addEnergy(); board.characters_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 28
//Metaballs (go_to_hell.Metaballs) package go_to_hell { public final class Metaballs { private var board:Board; public var new_mass:Array; public var mass:Array; public var h_disp:Array; public function Metaballs(board:Board){ mass = new Array(); new_mass = new Array(); h_disp = new Array(); super(); this.board = board; } public function set(id:Number, mass:Number){ this.mass[id] = mass; this.new_mass[id] = mass; h_disp[id] = ((Math.random() * 4) - 2); } } }//package go_to_hell
Section 29
//Metaboard (go_to_hell.Metaboard) package go_to_hell { import flash.display.*; import flash.geom.*; import flash.filters.*; public class Metaboard extends MovieClip { private const zero_point:Point; private var bf:BlurFilter; public var balls:Metaballs;// = null private var threshold:Number; private var buffer:BitmapData; private var bf2:BlurFilter; private var ref_help:BitmapData; private var min_flow;// = 0.01 private var max_speed;// = 1 private var min_mass;// = 0.0001 private var fluid:Boolean;// = false private var max_compress;// = 0.02 private var board:Board; private var max_mass;// = 1 public var wave;// = 0 public function Metaboard(board:Board, threshold:Number, fluid:Boolean=false, group:MovieClip=null, blur:Number=10){ var display:Bitmap; zero_point = new Point(0, 0); balls = null; fluid = false; max_mass = 1; max_compress = 0.02; min_mass = 0.0001; max_speed = 1; min_flow = 0.01; wave = 0; super(); this.board = board; if (group){ group.addChild(this); } else { board.addChild(this); }; this.threshold = ((threshold * 0x111111) + 4278190080); buffer = new BitmapData(((board.size_w + board.grain) * board.field_size), (board.size_h * board.field_size), true); ref_help = new BitmapData(((board.size_w + board.grain) * board.field_size), (board.size_h * board.field_size), true); display = new Bitmap(buffer); addChild(display); this.fluid = fluid; bf = new BlurFilter(blur, blur, 2); bf2 = new BlurFilter(20, 20, 2); balls = new Metaballs(board); } private function simulateFluid(wall:Array, lava:Boolean):Boolean{ var is_water:*; var x:*; var y:*; var mass:Array; var new_mass:Array; var flow:*; var remaining_mass:Number; var fid:Number; var fid_below:*; var fid_left:*; var fid_right:*; var fid_up:*; is_water = false; mass = balls.mass; new_mass = balls.new_mass; flow = 0; x = 0; while (x < board.size_w) { y = board.map_offset; while (y < (board.size_h + board.map_offset)) { fid = board.getFID(x, y); fid_below = board.getFID(x, (y + 1)); fid_left = board.getFID((x - 1), y); fid_right = board.getFID((x + 1), y); fid_up = board.getFID(x, (y - 1)); if (wall[fid]){ } else { if (mass[fid] > 0.1){ is_water = true; if (board.prepare_to_lava){ mass[fid] = (mass[fid] - 0.01); new_mass[fid] = (new_mass[fid] - 0.01); }; }; flow = 0; remaining_mass = mass[fid]; if (remaining_mass <= 0){ } else { if (!wall[fid_below]){ flow = (getStableState((remaining_mass + mass[fid_below])) - mass[fid_below]); if (flow > min_flow){ flow = (flow * 0.5); }; flow = Tools.constrain(flow, 0, ((max_speed)<remaining_mass) ? max_speed : remaining_mass); new_mass[fid] = (new_mass[fid] - flow); new_mass[fid_below] = (new_mass[fid_below] + flow); remaining_mass = (remaining_mass - flow); }; if (remaining_mass <= 0){ } else { if (!wall[fid_left]){ flow = ((mass[fid] - mass[fid_left]) / (lava) ? 10 : 4); flow = Tools.constrain(flow, 0, remaining_mass); new_mass[fid] = (new_mass[fid] - flow); new_mass[fid_left] = (new_mass[fid_left] + flow); remaining_mass = (remaining_mass - flow); }; if (remaining_mass <= 0){ } else { if (!wall[fid_right]){ flow = ((mass[fid] - mass[fid_right]) / (lava) ? 10 : 4); flow = Tools.constrain(flow, 0, remaining_mass); new_mass[fid] = (new_mass[fid] - flow); new_mass[fid_right] = (new_mass[fid_right] + flow); remaining_mass = (remaining_mass - flow); }; if (remaining_mass <= 0){ } else { if (!wall[fid_up]){ flow = (remaining_mass - getStableState((remaining_mass + mass[fid_up]))); flow = Tools.constrain(flow, 0, ((max_speed)<remaining_mass) ? max_speed : remaining_mass); new_mass[fid] = (new_mass[fid] - flow); new_mass[fid_up] = (new_mass[fid_up] + flow); remaining_mass = (remaining_mass - flow); }; }; }; }; }; }; y++; }; x++; }; balls.mass = new_mass.slice(); return (is_water); } public function render(filler:BitmapData=null, bevel:BevelFilter=null, ref:BitmapData=null, ref_first:Boolean=true, lava:Boolean=false):Boolean{ var is_water:Boolean; var off_x:Number; var off_y:Number; var fid:*; var mass:Array; var wall:Array; var h_disp:Array; var x:*; var y:*; var size_w:Number; var size_h:Number; is_water = false; buffer.fillRect(buffer.rect, 4294967295); if (ref){ ref_help.fillRect(ref_help.rect, 0); }; mass = balls.mass; wall = board.wall.balls.mass; h_disp = balls.h_disp; if (fluid){ if (!lava){ wave = (wave + 0.2); } else { wave = (wave + 0.05); }; is_water = simulateFluid(wall, lava); }; x = 0; while (x < (board.size_w + board.grain)) { y = board.map_offset; while (y < (board.map_offset + board.size_h)) { fid = board.getFID(x, y); if (balls.mass[fid] > 0.1){ size_w = (board.field_size - (((wall[fid]) && (fluid))) ? 2 : -2); size_h = (board.field_size - (((wall[fid]) && (fluid))) ? 2 : 0); off_x = Math.cos(((y * 2) + wave)); off_y = (((1 - mass[fid]) * board.field_size) + Math.sin(((x * 2) + wave))); buffer.fillRect(new Rectangle((((x * board.field_size) + ((board.field_size - size_w) / 2)) + off_x), ((((y - board.map_offset) * board.field_size) + ((board.field_size - size_h) / 2)) + off_y), size_w, size_h), 4278190080); if (((ref) && (!(wall[fid])))){ ref_help.fillRect(new Rectangle((((x * board.field_size) + ((board.field_size - size_w) / 2)) + off_x), ((((y - board.map_offset) * board.field_size) + ((board.field_size - size_h) / 2)) + off_y), size_w, size_h), 4278190080); }; }; y++; }; x++; }; buffer.applyFilter(buffer, buffer.rect, zero_point, bf); buffer.threshold(buffer, buffer.rect, zero_point, "<", threshold, 4278190080, 4294967295, true); buffer.threshold(buffer, buffer.rect, zero_point, ">=", threshold, 0xFFFFFF, 4294967295, true); if (filler){ if (((ref) && (ref_first))){ ref_help.applyFilter(ref_help, buffer.rect, zero_point, bf2); buffer.copyPixels(ref, buffer.rect, new Point(0, board.pos_offset), ref_help, new Point(0, board.pos_offset), true); }; buffer.copyPixels(filler, buffer.rect, new Point(0, board.pos_offset), buffer, new Point(0, board.pos_offset), true); if (((ref) && (!(ref_first)))){ ref_help.applyFilter(ref_help, buffer.rect, zero_point, bf2); buffer.copyPixels(ref, buffer.rect, new Point(0, board.pos_offset), ref_help, new Point(0, board.pos_offset), true); }; }; if (bevel){ buffer.applyFilter(buffer, buffer.rect, zero_point, bevel); }; return (is_water); } private function getStableState(total_mass:Number){ if (total_mass <= 1){ return (1); }; if (total_mass < ((2 * max_mass) + max_compress)){ return ((((max_mass * max_mass) + (total_mass * max_compress)) / (max_mass + max_compress))); }; return (((total_mass + max_compress) / 2)); } } }//package go_to_hell
Section 30
//NumberInd (go_to_hell.NumberInd) package go_to_hell { import flash.text.*; import flash.display.*; import flash.geom.*; public final class NumberInd extends MovieClip { private const zero_point:Point; private var label:TextField; private var shadow:TextField; private var suffix:String; private var value:Number;// = -1 private var prefix:String; private var fnt:pixel_font; public function NumberInd(icon:String, prefix:String="x ", suffix:String=""){ var format:TextFormat; value = -1; fnt = new pixel_font(); zero_point = new Point(0, 0); super(); if (icon){ addChild(new Bitmap(Tools.getPicture(icon))); }; shadow = new TextField(); format = new TextFormat(); format.font = fnt.fontName; format.color = 0; format.size = 8; shadow.defaultTextFormat = format; addChild(shadow); shadow.x = 9; shadow.y = 0; shadow.width = 150; shadow.embedFonts = true; shadow.selectable = false; label = new TextField(); format = new TextFormat(); format.font = fnt.fontName; format.color = 0xFFFFFF; format.size = 8; label.defaultTextFormat = format; addChild(label); label.x = 8; label.y = -1; label.width = 150; label.embedFonts = true; label.selectable = false; this.prefix = prefix; this.suffix = suffix; } public function update(value:Number){ if (this.value != value){ this.value = value; }; label.text = ((prefix + value) + suffix); shadow.text = ((prefix + value) + suffix); } } }//package go_to_hell
Section 31
//Pause (go_to_hell.Pause) package go_to_hell { import flash.display.*; public final class Pause extends MovieClip { public var cnt_button:Button; private var game:Game; private var results:Array; public function Pause(){ var head:Bitmap; super(); addFrameScript(9, frame10); head = new Bitmap(Tools.getPicture("pause")); addChild(head); head.y = 40; __setProp_cnt_button_pause_Warstwa3_1(); } function __setProp_cnt_button_pause_Warstwa3_1(){ cnt_button["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; cnt_button.operation = ""; cnt_button.caption = "CONTINUE"; cnt_button["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame10(){ stop(); } } }//package go_to_hell
Section 32
//PlayerCharacter (go_to_hell.PlayerCharacter) package go_to_hell { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.ui.*; public final class PlayerCharacter extends Character { private const angel = 9; private const floating = 6; private const ind_max = 20; private const jump_diagonal = 3; private const lives_max = 3; private const jump = 2; private const action_cost = 1; private const push_it = 8; private const walking = 1; private const pick_rev = 11; private const pick_front = 5; private const pick_side = 4; private const resurrection = 10; private const idle = 0; private const swimming = 7; private const waters_cost = 1; private const water_multiplier = 2; private var energy_info:Info;// = null private var coins:Number;// = 0 private var max_depth:Number;// = 0 private var lives:Number;// = 4 private var move_dir;// = 0 private var air:Number;// = 20 private var immunity:Number;// = 0 private var control:Boolean;// = true private var health:Number;// = 20 private var sx; private var sy; private var scontainer:Bitmap; private var air_info:Info;// = null private var energy:Number;// = 20 private var jump_h;// = 0 private var resurrecting:Number;// = 0 private var health_info:Info;// = null private var ouch_time:Number;// = 0 private var died:Number;// = 0 private var board:Board; private var dig_target:Target;// = null private var keys:Array; public function PlayerCharacter(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; died = 0; resurrecting = 0; control = true; keys = new Array(); move_dir = 0; jump_h = 0; dig_target = null; health = 20; energy = 20; air = 20; lives = 4; coins = 0; max_depth = 0; immunity = 0; energy_info = null; air_info = null; health_info = null; ouch_time = 0; anim = [new Animation("gal_idle", 6, [0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 0, 1, 0, 1, 2, 1, 6, 1, 6, 1, 6, 1, 0, 1, 2, 1, 0, 1, 3, 4, 5, 4, 5, 4, 3, 2, 1], 0.25, 0, new Point(8, 32), 32, startIdle), new Animation("gal_walking", 3, [0, 1, 2], 0.25, 0, new Point(8, 32), 32), new Animation("gal_jump", 3, [0, 1, 2], 0.25, 1, new Point(8, 32), 32), new Animation("gal_jump_diagonal", 4, [0, 1, 2, 3], 0.25, 1, new Point(8, 32), 32), new Animation("gal_pick_side", 5, [0, 1, 2, 3, 4], 0.25, -1, new Point(8, 32), 32, null, destroySide), new Animation("gal_pick_front", 6, [0, 1, 2, 3, 4, 5], 0.25, -1, new Point(8, 32), 32, null, destroyDown), new Animation("gal_float", 4, [0, 1, 2, 3, 2, 1], 0.25, 0, new Point(8, 32), 32), new Animation("gal_swimming", 3, [0, 1, 2, 1], 0.25, 0, new Point(8, 32), 32), new Animation("gal_push", 3, [0, 1, 2], 0.25, 0, new Point(8, 32), 32), new Animation("gal_angel", 4, [0, 1, 2, 3, 2, 1], 0.25, 0, new Point(8, 32), 32), new Animation("gal_resurrect", 10, [0, 1, 2, 3, 2, 1, 0, 4, 5, 6, 7, 8, 9, 6, 9, 8, 7, 8, 9, 6], 0.25, 14, new Point(8, 32), 32), new Animation("gal_pick_side", 2, [1, 0], 0.25, -1, new Point(8, 32), 32, null, resume)]; super(board, container, (mx * board.field_size), ((my * board.field_size) - 1), 5, 14, anim); scontainer = container; sx = mx; sy = my; this.board = board; Tools.addEvent(board.stage, KeyboardEvent.KEY_DOWN, keyPressed); Tools.addEvent(board.stage, KeyboardEvent.KEY_UP, keyReleased); board.characters_list.register(this); board.alive_list.register(this); blood = true; } public function getDepth():Number{ return (max_depth); } private function updateAir(){ if (immunity){ return; }; if (underWater()){ air = (air - 0.15); if (air < 0){ air = 0; }; } else { air = (air + 0.2); if (air > ind_max){ air = ind_max; }; }; } public function getAir():Number{ return (air); } private function decEnergy(amount:Number){ if (immunity){ return; }; energy = (energy - (amount * (underWater()) ? water_multiplier : 1)); if (energy < 0){ energy = 0; decHealth((amount * 2)); }; } private function resume(){ control = true; } public function resultArray():Array{ return (new Array(coins, max_depth)); } public function addLife(){ lives++; } public function clean(){ board.stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed); board.stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased); } public function getLives():Number{ return (lives); } public function getHealth():Number{ return (health); } private function startIdle(){ move_dir = 0; } public function getCoins():Number{ return (coins); } private function destroySide(){ var mx:*; var my:*; var x:*; var y:*; if (move_dir == 0){ return; }; if (move_dir < 0){ mx = Math.floor((((pos_x - (body_width / 2)) - 8) / board.field_size)); } else { mx = Math.floor((((pos_x + (body_width / 2)) + 8) / board.field_size)); }; my = Math.floor((pos_y / board.field_size)); x = 0; while (x < 2) { y = 0; while (y < 2) { board.wall.balls.set(board.getFID((mx + (x * move_dir)), (my - y)), 0); board.water.balls.set(board.getFID((mx + (x * move_dir)), (my - y)), 0); y++; }; x++; }; if (move_dir < 0){ new Dust(board, board.front_sprites, mx, my); } else { new Dust(board, board.front_sprites, (mx + 1), my); }; board.update = true; decEnergy(action_cost); board.game.sound.playSound(new crush_sound()); control = false; setAnim(pick_rev); if (move_dir == -1){ flipH(false); } else { flipH(true); }; } private function isIdling():Boolean{ return ((getAnimID() == idle)); } public function addHealth(){ health = (health + 5); if (health > ind_max){ health = ind_max; }; } public function getEnergy():Number{ return (energy); } override public function die(){ if (died){ return; }; if (immunity){ return; }; board.game.soundtrack.stop(); board.game.soundtrack = board.game.sound.playSound(new life_lost()); health = 0; died = 20; control = false; container = board.front_sprites; setAnim(angel); lives--; } public function addEnergy(){ energy = (energy + 5); if (energy > ind_max){ energy = ind_max; }; } public function getMaxLives():Number{ return (lives_max); } private function processInput(water:Boolean, ground:Point){ var sch:Character; var h_move:Boolean; var i:*; if (!keys.length){ if (ground){ setAnim(idle); } else { if (water){ setAnim(floating); } else { setAnim(jump); }; }; return; }; h_move = false; i = (keys.length - 1); while (i >= 0) { switch (keys[i]){ case Keyboard.UP: if (water){ if (move(0, -2).y){ if (move_dir == 0){ setAnim(floating); }; }; break; }; jump_h = (jump_h + 4); if ((jump_h < (board.field_size * 5))){ if (move(0, -4).y){ if (move_dir == 0){ setAnim(jump); }; } else { if (jump_h == 1){ jump_h = 0; }; }; }; break; case Keyboard.DOWN: if (((water) && (!(ground)))){ if (move(0, 2).y){ if (move_dir == 0){ setAnim(floating); }; }; break; }; if (((ground) && (((board.isDestructable(ground.x, ground.y)) || (((!(board.isSolid(ground.x, ground.y))) && (board.isDestructable((ground.x + 1), ground.y)))))))){ if (setAnim(pick_front)){ if (dig_target){ dig_target.finish(); }; dig_target = new Target(board, board.front_sprites, ground.x, (ground.y + 1), false); }; } else { if (!ground){ setAnim(jump); }; }; break; case Keyboard.LEFT: if (((h_move) || ((getAnimID() == pick_side)))){ break; }; if (move(-2, 0).x){ h_move = true; move_dir = -1; if (ground){ setAnim(walking); } else { if (water){ setAnim(swimming); } else { setAnim(jump_diagonal); }; }; flipH(false); } else { if (board.isDestructablePos(((pos_x - (body_width / 2)) - 8), pos_y)){ if (ground){ h_move = true; move_dir = -1; if (setAnim(pick_side)){ move(4, 0); if (dig_target){ dig_target.finish(); }; dig_target = new Target(board, board.front_sprites, (ground.x - 1), (ground.y - 1), true); }; flipH(false); } else { if (water){ move(0, 2); }; }; } else { if (ground){ setAnim(push_it); flipH(false); sch = board.getField((ground.x - 1), (ground.y - 1)).getSolidCharacter(); if (sch){ sch.pushIt(-1); }; } else { if (water){ move(0, 2); }; }; }; }; break; case Keyboard.RIGHT: if (((h_move) || ((getAnimID() == pick_side)))){ break; }; if (move(2, 0).x){ h_move = true; move_dir = 1; if (ground){ setAnim(walking); } else { if (water){ setAnim(swimming); } else { setAnim(jump_diagonal); }; }; flipH(true); } else { if (board.isDestructablePos(((pos_x + (body_width / 2)) + 8), pos_y)){ if (ground){ h_move = true; move_dir = 1; if (setAnim(pick_side)){ move(-4, 0); if (dig_target){ dig_target.finish(); }; dig_target = new Target(board, board.front_sprites, (ground.x + 2), (ground.y - 1), true); dig_target.flipH(true); }; flipH(true); } else { if (water){ move(0, 2); }; }; } else { if (ground){ setAnim(push_it); flipH(true); sch = board.getField((ground.x + 2), (ground.y - 1)).getSolidCharacter(); if (sch){ sch.pushIt(1); }; } else { if (water){ move(0, 2); }; }; }; }; break; default: if (ground){ setAnim(idle); } else { if (water){ setAnim(floating); } else { setAnim(jump); }; }; break; }; i--; }; } private function newLive(){ board.game.soundtrack.stop(); board.game.soundtrack = board.game.sound.playSound(new eternal()); resurrecting = 0; health = ind_max; energy = ind_max; air = ind_max; immunity = 90; control = true; container = scontainer; } private function resurrect(){ died = 20; resurrecting = 40; setAnim(resurrection); } private function keyReleased(event:KeyboardEvent){ var i:*; i = (keys.length - 1); while (i >= 0) { if (keys[i] == event.keyCode){ keys.splice(i, 1); }; i--; }; } private function keyPressed(event:KeyboardEvent){ var i:*; i = 0; while (i < keys.length) { if (keys[i] == event.keyCode){ return; }; i++; }; keys.push(event.keyCode); } override public function update(visible:Boolean=true){ var water:Boolean; var ground:Point; var dpt:*; if (((!(died)) && (!(resurrecting)))){ water = inWater(); ground = onGround(); if (((ground) && (jump_h))){ setAnim(idle); getAnim().reset(); jump_h = 0; }; if (!water){ move(0, 2); } else { if (!ground){ jump_h = 1; }; }; if (((!(ground)) && ((getAnimID() == pick_side)))){ setAnim(jump_diagonal); flipH(!((move_dir == -1))); }; if (control){ processInput(water, ground); }; updateAir(); if (((!(air)) || (((touchingWater()) && (board.lava))))){ decHealth(0.1); }; if (!health){ die(); }; if (immunity){ immunity--; }; if (energy < 4){ if (!energy_info){ energy_info = new Info(board, board.front_sprites_b, this, 1); }; } else { if (energy_info){ board.characters_list.registerToRemove(energy_info); energy_info = null; }; }; if (air < 10){ if (!air_info){ air_info = new Info(board, board.front_sprites_b, this, 0); }; } else { if (air_info){ board.characters_list.registerToRemove(air_info); air_info = null; }; }; if (health < 5){ if (!health_info){ health_info = new Info(board, board.front_sprites_b, this, 2); }; } else { if (health_info){ board.characters_list.registerToRemove(health_info); health_info = null; }; }; dpt = (Math.floor((pos_y / 10)) - 15); if (max_depth < dpt){ max_depth = dpt; }; } else { if (died){ if (energy_info){ board.characters_list.registerToRemove(energy_info); energy_info = null; }; if (air_info){ board.characters_list.registerToRemove(air_info); air_info = null; }; if (health_info){ board.characters_list.registerToRemove(health_info); health_info = null; }; died--; if (((!(died)) && (!(resurrecting)))){ if (lives){ resurrect(); } else { if (Math.floor((pos_y / board.field_size)) < board.map_offset){ board.game.gameOver(resultArray()); died = 20; } else { died = 20; }; }; }; pos_y--; } else { if (resurrecting){ resurrecting--; if (!resurrecting){ newLive(); }; if (resurrecting < 30){ pos_y++; }; }; }; }; super.update(((immunity % 6) < 4)); } private function destroyDown(){ var ground:*; var x:*; var y:*; ground = onGround(); if (!ground){ return; }; if ((ground.x % 2)){ ground.x--; }; if (!board.isDestructable(ground.x, ground.y)){ ground.x = (ground.x + 2); }; x = 0; while (x < 2) { y = 0; while (y < 2) { board.wall.balls.set(board.getFID((ground.x + x), (ground.y + y)), 0); board.water.balls.set(board.getFID((ground.x + x), (ground.y + y)), 0); y++; }; x++; }; board.update = true; new Dust(board, board.front_sprites, (ground.x + 1), (ground.y + 1)); setAnim(idle); decEnergy(action_cost); board.game.sound.playSound(new crush_sound()); } public function getMaxInd():Number{ return (ind_max); } public function addCoin(){ coins++; } public function decHealth(amount:Number){ if (((((immunity) || (died))) || (resurrecting))){ return; }; if (((!(ouch_time)) || (((getTimer() - ouch_time) > 3000)))){ board.game.sound.playSound(new ouch()); ouch_time = getTimer(); }; health = (health - amount); if (health < 0){ health = 0; }; } } }//package go_to_hell
Section 33
//SoundSystem (go_to_hell.SoundSystem) package go_to_hell { import flash.media.*; public final class SoundSystem { public function SoundSystem(){ super(); } public function getVolume(channel:SoundChannel):Number{ if (channel){ return (channel.soundTransform.volume); }; return (0); } public function mute(doit:Boolean){ var transform:SoundTransform; transform = new SoundTransform(); transform.volume = (doit) ? 0 : 1; SoundMixer.soundTransform = transform; } public function playSound(sound:Sound, volume:Number=1, loop:Boolean=false):SoundChannel{ var lcnt:*; var channel:*; var transform:SoundTransform; lcnt = (loop) ? 999999999 : 1; channel = sound.play(0, lcnt); transform = new SoundTransform(); transform.volume = volume; channel.soundTransform = transform; return (channel); } public function setVolume(channel:SoundChannel, volume:Number){ var transform:SoundTransform; if (!channel){ return; }; transform = new SoundTransform(); transform.volume = volume; channel.soundTransform = transform; } } }//package go_to_hell
Section 34
//Spikes (go_to_hell.Spikes) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Spikes extends Character { private var active:Boolean;// = true private var board:Board; public function Spikes(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; anim = [new Animation("spikes", 1, [0], 0, -1, new Point(10, 5), 7), new Animation("spikes_blood", 1, [0], 0, -1, new Point(10, 5), 7)]; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 20, 7, anim, true); board.characters_list.register(this); } override public function update(visible:Boolean=true){ var my:*; my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); return; }; if (((((!(board.demo)) && (active))) && (collides(board.player)))){ board.player.decHealth(0.5); setAnim(1); }; super.update(); } } }//package go_to_hell
Section 35
//Target (go_to_hell.Target) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Target extends Character { private var board:Board; public function Target(board:Board, container:Bitmap, mx:Number, my:Number, h:Boolean){ var anim:Array; anim = [new Animation((h) ? "target_h" : "target_v", 3, [0, 1, 2], 0.25, 0, new Point(8, 8), 18, null, finish)]; if ((mx % 2) == 0){ mx++; }; if (!board.isDestructable(mx, my)){ mx = (mx + 2); }; this.board = board; super(board, container, (mx * board.field_size), (my * board.field_size), 16, 16, anim, true); board.characters_list.register(this); } public function finish(){ board.characters_list.registerToRemove(this); } } }//package go_to_hell
Section 36
//WallFiller (go_to_hell.WallFiller) package go_to_hell { import flash.display.*; import flash.geom.*; public final class WallFiller { private var np:BitmapData;// = null private var bg:BitmapData; private var l_offset:Number;// = 0 private var output:BitmapData; private var speed:Number; private var ipb:Number; private var board:Board; private var ip:BitmapData;// = null private var wait_for_ip:Boolean;// = false private static var zero_point:Point = new Point(0, 0); public function WallFiller(board:Board, bg_name:String, speed:Number=1, display=false){ var disp:Bitmap; ip = null; np = null; wait_for_ip = false; l_offset = 0; super(); this.board = board; this.speed = speed; bg = Tools.getPicture(bg_name); output = new BitmapData(((board.size_w + board.grain) * board.field_size), (board.size_h * board.field_size), false); if (display){ disp = new Bitmap(output); board.addChild(disp); }; } public function insertPicture(picture:String, wait:Boolean){ ip = Tools.getPicture(picture); ipb = 0; wait_for_ip = wait; } public function getNextFill():BitmapData{ var offset:*; var ip_offset:*; offset = -((((board.map_offset * board.field_size) * speed) % Math.floor((bg.height / 2)))); if (((np) && ((offset > l_offset)))){ bg = np; np = null; }; if (wait_for_ip){ if (offset > l_offset){ wait_for_ip = false; }; ipb = (((board.map_offset * board.field_size) * speed) - board.field_size); }; output.copyPixels(bg, bg.rect, new Point(0, (offset - (board.pos_offset * speed)))); if (((ip) && (!(wait_for_ip)))){ ip_offset = -((((board.map_offset * board.field_size) * speed) - ipb)); output.copyPixels(ip, ip.rect, new Point(0, (ip_offset - (board.pos_offset * speed)))); if (ip_offset < -(ip.height)){ ip = null; }; }; l_offset = offset; return (output); } public function insertPictureB(picture:BitmapData, wait:Boolean){ ip = picture; ipb = 0; wait_for_ip = wait; } public function reset(){ l_offset = 0; } public function switchPicture(picture:String){ np = Tools.getPicture(picture); } public function swapIPictureB(picture:BitmapData){ if (ip){ ip = picture; }; } } }//package go_to_hell
Section 37
//Worm (go_to_hell.Worm) package go_to_hell { import flash.display.*; import flash.geom.*; public final class Worm extends Character { private var active:Boolean;// = true private var board:Board; private var died;// = 0 private var dir;// = 1 public function Worm(board:Board, container:Bitmap, mx:Number, my:Number){ var anim:Array; active = true; dir = 1; died = 0; anim = [new Animation("worm", 4, [0, 1, 2, 3], 0.25, 0, new Point(7, 5), 5), new Animation("worm_blood", 4, [0, 1, 2, 3], 0.25, 0, new Point(7, 5), 5), new Animation("worm_died", 4, [0, 1, 2, 3], 0.25, 0, new Point(7, 5), 5), new Animation("worm_blood_died", 4, [0, 1, 2, 3], 0.25, 0, new Point(7, 5), 5)]; this.board = board; super(board, container, (mx * board.field_size), ((my * board.field_size) - 1), 12, 5, anim, true); board.characters_list.register(this); board.alive_list.register(this); } override public function die(){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); } override public function update(visible:Boolean=true){ var mx:*; var my:*; mx = Math.floor((pos_x / board.field_size)); my = Math.floor((pos_y / board.field_size)); if (my < board.map_offset){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); return; }; if (died){ died--; if (died == 5){ setAnim((getAnimID() + 2)); flipV(true); }; move(0, -1); if (!inWater()){ move(0, 1); }; if (!died){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); }; } else { if (((inWater()) || (((touchingWater()) && (board.lava))))){ if (((touchingWater()) && (board.lava))){ died = 15; } else { died = 30; }; flipV(true); } else { move(0, 4); if (!move(dir, 0).x){ dir = (dir * -1); flipH((dir > 0)); }; if (((((!(board.demo)) && (active))) && (collides(board.player)))){ setAnim(1); board.player.decHealth(0.5); }; }; }; if (board.isSolid(mx, my)){ board.characters_list.registerToRemove(this); board.alive_list.registerToRemove(this); }; super.update(); } } }//package go_to_hell
Section 38
//branding_aligned_center_3 (go_to_hell_spilgames__fla.branding_aligned_center_3) package go_to_hell_spilgames__fla { import flash.display.*; public dynamic class branding_aligned_center_3 extends MovieClip { public function branding_aligned_center_3(){ super(); addFrameScript(0, frame1); } function frame1(){ gotoAndStop(language.branding_nr); } } }//package go_to_hell_spilgames__fla
Section 39
//credits_61 (go_to_hell_spilgames__fla.credits_61) package go_to_hell_spilgames__fla { import flash.display.*; import go_to_hell.*; public dynamic class credits_61 extends MovieClip { public var __id1_:HotSpotURL; public var __id2_:HotSpotURL; public var __id3_:HotSpotURL; public function credits_61(){ super(); __setProp___id3__credits_Warstwa3_1(); __setProp___id2__credits_Warstwa2_1(); __setProp___id1__credits_Warstwa2_1(); } function __setProp___id3__credits_Warstwa3_1(){ __id3_["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; __id3_.url = "http://www.metasauce.com"; __id3_["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp___id1__credits_Warstwa2_1(){ __id1_["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; __id1_.url = "http://www.mattmcfarland.com"; __id1_["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp___id2__credits_Warstwa2_1(){ __id2_["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; __id2_.url = "http://www.freesound.org"; __id2_["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package go_to_hell_spilgames__fla
Section 40
//d_logo_59 (go_to_hell_spilgames__fla.d_logo_59) package go_to_hell_spilgames__fla { import flash.display.*; import go_to_hell.*; public dynamic class d_logo_59 extends MovieClip { public var __id0_:HotSpotURL; public function d_logo_59(){ super(); __setProp___id0__d_logo_Warstwa1_1(); } function __setProp___id0__d_logo_Warstwa1_1(){ __id0_["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; __id0_.url = "http://www.metasauce.com"; __id0_["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package go_to_hell_spilgames__fla
Section 41
//intro_hitarea_42 (go_to_hell_spilgames__fla.intro_hitarea_42) package go_to_hell_spilgames__fla { import flash.display.*; public dynamic class intro_hitarea_42 extends MovieClip { public var button_intro:SimpleButton; public function intro_hitarea_42(){ super(); } } }//package go_to_hell_spilgames__fla
Section 42
//intro_logos_2 (go_to_hell_spilgames__fla.intro_logos_2) package go_to_hell_spilgames__fla { import flash.display.*; public dynamic class intro_logos_2 extends MovieClip { public var logo:MovieClip; public function intro_logos_2(){ super(); } } }//package go_to_hell_spilgames__fla
Section 43
//loader_1 (go_to_hell_spilgames__fla.loader_1) package go_to_hell_spilgames__fla { import flash.media.*; import flash.text.*; import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.ui.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.printing.*; import flash.xml.*; public dynamic class loader_1 extends MovieClip { public var lbar:MovieClip; public var lfr:MovieClip; public var lpc:TextField; public var intro:MovieClip; public var request:URLRequest; public var colorInfo:ColorTransform; public function loader_1(){ super(); addFrameScript(0, frame1); } public function onCLick(e:Event){ request = new URLRequest(((language.url1 + "&utm_content=") + e.currentTarget.name)); navigateToURL(request, "_blank"); } function frame1(){ this.stop(); if (!lbar.visible){ lbar.visible = false; lpc.visible = false; lfr.visible = false; intro.logo.y = (intro.logo.y + 20); }; this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, PL_LOADING); colorInfo = lbar.transform.colorTransform; if (language.portal == "family"){ colorInfo.color = 40669; intro.gotoAndStop(1); }; if (language.portal == "tweens"){ colorInfo.color = 16681752; intro.gotoAndStop(3); }; if (language.portal == "girl"){ colorInfo.color = 0xFFFFFF; intro.gotoAndStop(2); }; if (language.portal == "game_com_cn"){ colorInfo.color = 16681752; intro.gotoAndStop(4); }; if (language.portal == "teen"){ colorInfo.color = 15592168; intro.gotoAndStop(5); }; lbar.transform.colorTransform = colorInfo; intro.addEventListener(MouseEvent.CLICK, onCLick); } public function startGame(){ MovieClip(parent).gotoAndStop("game"); } public function PL_LOADING(event:ProgressEvent):void{ var pcent:Number; pcent = ((event.bytesLoaded / event.bytesTotal) * 100); lbar.scaleX = (pcent / 100); lpc.text = (int(pcent) + "%"); if (pcent >= 100){ if (lbar.visible){ startGame(); }; }; } } }//package go_to_hell_spilgames__fla
Section 44
//tv_frame_57 (go_to_hell_spilgames__fla.tv_frame_57) package go_to_hell_spilgames__fla { import flash.display.*; public dynamic class tv_frame_57 extends MovieClip { public function tv_frame_57(){ super(); addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package go_to_hell_spilgames__fla
Section 45
//vol_mute_62 (go_to_hell_spilgames__fla.vol_mute_62) package go_to_hell_spilgames__fla { import flash.display.*; import flash.events.*; public dynamic class vol_mute_62 extends MovieClip { public var button:SimpleButton; public function vol_mute_62(){ super(); addFrameScript(0, frame1, 4, frame5); } function frame5(){ button.addEventListener(MouseEvent.MOUSE_UP, frelease, false, 0, true); stop(); } function frame1(){ button.addEventListener(MouseEvent.MOUSE_UP, nrelease, false, 0, true); stop(); } public function nrelease(event:MouseEvent){ removeEventListener(MouseEvent.MOUSE_UP, nrelease); Tools.mute(true); gotoAndStop("off"); } public function frelease(event:MouseEvent){ removeEventListener(MouseEvent.MOUSE_UP, frelease); Tools.mute(false); gotoAndStop("on"); } } }//package go_to_hell_spilgames__fla
Section 46
//zzz_46 (go_to_hell_spilgames__fla.zzz_46) package go_to_hell_spilgames__fla { import flash.display.*; public dynamic class zzz_46 extends MovieClip { public function zzz_46(){ super(); addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_to_hell_spilgames__fla
Section 47
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public function MochiAd(){ super(); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showClickAwayAd(options:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_timeout:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var sendHostProgress:Boolean; var options = options; DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_timeout = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; sendHostProgress = false; mc.regContLC = function (lc_name:String):void{ mc._containerLCName = lc_name; }; chk["onEnterFrame"] = function ():void{ var ad_clip:Object; var elapsed:Number; var finished:Boolean; var total:Number; if (!this.parent){ delete this.onEnterFrame; return; }; ad_clip = this.parent._mochiad_ctr; elapsed = (getTimer() - this.started); finished = false; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; finished = true; chk.started = getTimer(); } else { if (elapsed > chk.ad_timeout){ options.ad_failed(); finished = true; }; }; }; if (this.root == null){ finished = true; }; if (finished){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(server:String):String{ var hostname:String; hostname = server.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (hostname); }; Security.allowDomain("*"); Security.allowDomain(hostname); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(hostname); return (hostname); } public static function unload(clip:Object):Boolean{ if (((clip.clip) && (clip.clip._mochiad))){ clip = clip.clip; }; if (clip.origFrameRate != undefined){ clip.stage.frameRate = clip.origFrameRate; }; if (!clip._mochiad){ return (false); }; if (clip._mochiad._containerLCName != undefined){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"}); }; if (clip._mochiad.onUnload){ clip._mochiad.onUnload(); }; delete clip._mochiad_loaded; delete clip._mochiad; return (true); } public static function showInterLevelAd(options:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = options; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var p:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (msec:Number):void{ var _chk:Object; _chk = mc._mochiad_wait; _chk.server_control = true; _chk.showing = true; _chk.started = getTimer(); _chk.ad_msec = (msec - 250); }; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; chk["onEnterFrame"] = function ():void{ var ad_clip:Object; var elapsed:Number; var finished:Boolean; var total:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; ad_clip = this.parent._mochiad_ctr; elapsed = (getTimer() - this.started); finished = false; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (elapsed > chk.ad_timeout){ options.ad_failed(); finished = true; }; }; }; if (elapsed > chk.ad_msec){ finished = true; }; if (finished){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(options:Object, defaults:Object):Object{ var optcopy:Object; var k:String; var pairs:Array; var i:Number; var kv:Array; optcopy = {}; for (k in defaults) { optcopy[k] = defaults[k]; }; if (options){ for (k in options) { optcopy[k] = options[k]; }; }; if (optcopy.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; options = optcopy.clip.loaderInfo.parameters.mochiad_options; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); optcopy[unescape(kv[0])] = unescape(kv[1]); i++; }; }; if (optcopy.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (optcopy); } public static function _cleanup(mc:Object):void{ var idx:Number; var k:String; var lc:LocalConnection; var f:Function; var mc = mc; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ lc.client = null; lc.close(); //unresolved jump var _slot1 = e; }; setTimeout(f, 0); }; idx = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(options:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = options; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip._mochiad_loaded){ return (null); }; //unresolved jump var _slot1 = e; throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (ev:Object):void{ ev.target.removeEventListener(ev.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (io:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); if (!options.skip){ loader.load(req); }; mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(base:Object, methodName:String, argsArray:Array):Object{ var nameArray:Array; var i:Number; nameArray = methodName.split("."); i = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return (undefined); }; base = base[nameArray[i]]; i++; }; if (typeof(base[nameArray[i]]) == "function"){ return (base[nameArray[i]].apply(base, argsArray)); }; return (undefined); } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number):MovieClip{ var mc:MovieClip; mc = new MovieClip(); if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; parent[name] = mc; mc["_name"] = name; return (mc); } public static function _getRes(options:Object, clip:Object):Array{ var b:Object; var w:Number; var h:Number; var xy:Array; b = clip.getBounds(clip.root); w = 0; h = 0; if (typeof(options.res) != "undefined"){ xy = options.res.split("x"); w = parseFloat(xy[0]); h = parseFloat(xy[1]); } else { w = (b.xMax - b.xMin); h = (b.yMax - b.yMin); }; if ((((w == 0)) || ((h == 0)))){ w = clip.stage.stageWidth; h = clip.stage.stageHeight; }; return ([w, h]); } public static function adShowing(mc:Object):void{ mc.origFrameRate = mc.stage.frameRate; mc.stage.frameRate = 30; } public static function getValue(base:Object, objectName:String):Object{ var nameArray:Array; var i:Number; nameArray = objectName.split("."); i = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return (undefined); }; base = base[nameArray[i]]; i++; }; return (base[nameArray[i]]); } public static function rpc(clip:Object, callbackID:Number, arg:Object):void{ var _local4:Object; var _local5:Object; switch (arg.id){ case "setValue": MochiAd.setValue(clip, arg.objectName, arg.value); break; case "getValue": _local4 = MochiAd.getValue(clip, arg.objectName); clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(clip, arg.method, arg.args); clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + arg.id)); }; } public static function setValue(base:Object, objectName:String, value:Object):void{ var nameArray:Array; var i:Number; nameArray = objectName.split("."); i = 0; while (i < (nameArray.length - 1)) { if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){ return; }; base = base[nameArray[i]]; i++; }; base[nameArray[i]] = value; } public static function showPreGameAd(options:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_w:Number; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var progress:Number; var f:Function; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = options; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (width:Number, height:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (percent:Number):void{ }, progress_override:function (_clip:Object):Number{ return (NaN); }, bar_offset:0}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; if (options.skip){ ad_timeout = 0; }; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; MochiAd._cleanup(mc); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; bar_w = ((w - bar.x) - 10); bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var p:Number; p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; progress = Math.min(1, options.progress_override(clip)); f = function (ev:Event):void{ ev.target.removeEventListener(ev.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (msec:Number):void{ var _chk:Object; _chk = mc._mochiad_wait; _chk.server_control = true; _chk.showing = true; _chk.started = getTimer(); _chk.ad_msec = msec; }; mc.rpc = function (callbackID:Number, arg:Object):void{ MochiAd.rpc(clip, callbackID, arg); }; mc.rpcTestFn = function (s:String):Object{ trace(("[MOCHIAD rpcTestFn] " + s)); return (s); }; mc.regContLC = function (lc_name:String):void{ mc._containerLCName = lc_name; }; sendHostProgress = false; mc.sendHostLoadProgress = function (lc_name:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _clip:Object; var ad_clip:Object; var elapsed:Number; var finished:Boolean; var clip_total:Number; var clip_loaded:Number; var clip_progress:Number; var clip_pcnt:Number; var ad_pcnt:Number; var _inside:Object; var pcnt:Number; var total:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; _clip = this.parent.parent.root; ad_clip = this.parent._mochiad_ctr; elapsed = (getTimer() - this.started); finished = false; clip_total = _clip.loaderInfo.bytesTotal; clip_loaded = _clip.loaderInfo.bytesLoaded; clip_progress = Math.min(1, options.progress_override(_clip)); if (clip_progress == 1){ complete = true; }; if (complete){ clip_loaded = Math.max(1, clip_loaded); clip_total = clip_loaded; }; clip_pcnt = ((100 * clip_loaded) / clip_total); if (!isNaN(clip_progress)){ clip_pcnt = (100 * clip_progress); }; ad_pcnt = ((100 * elapsed) / chk.ad_msec); _inside = this._mochiad_bar._inside; pcnt = Math.min(100, Math.min(((clip_pcnt) || (0)), ad_pcnt)); pcnt = Math.max(this.last_pcnt, pcnt); this.last_pcnt = pcnt; _inside.scaleX = (pcnt * 0.01); options.ad_progress(pcnt); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:clip_pcnt}); if (clip_pcnt >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (total > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((elapsed > chk.ad_timeout)) && ((clip_pcnt == 100)))){ options.ad_failed(); finished = true; }; }; }; if (elapsed > chk.ad_msec){ finished = true; }; if (((complete) && (finished))){ if (unloaded){ MochiAd.unload(_clip); } else { if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(options:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(options); } public static function showTimedAd(options:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(options); } public static function doOnEnterFrame(mc:MovieClip):void{ var f:Function; var mc = mc; f = function (ev:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { ev.target.removeEventListener(ev.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 48
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public function MochiCoins(){ super(); } public static function triggerEvent(eventType:String, args:Object):void{ MochiSocial.triggerEvent(eventType, args); } public static function removeEventListener(eventType:String, delegate:Function):void{ MochiSocial.removeEventListener(eventType, delegate); } public static function addEventListener(eventType:String, delegate:Function):void{ MochiSocial.addEventListener(eventType, delegate); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(options:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:options}, null, null); } public static function showItem(options:Object=null):void{ if (((!(options)) || (!((typeof(options.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:options}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(options:Object=null):void{ if (((!(options)) || (!((typeof(options.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:options}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 49
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(digit:Number=0, index:uint=0):void{ super(); Encoder = 0; setValue(digit, index); } public function set value(v:Number):void{ setValue(v); } public function reencode():void{ var newEncode:uint; newEncode = int((2147483647 * Math.random())); Fragment = (Fragment ^ (newEncode ^ Encoder)); Encoder = newEncode; } public function toString():String{ var s:String; s = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ s = (s + Sibling.toString()); }; return (s); } public function get value():Number{ return (Number(this.toString())); } public function setValue(digit:Number=0, index:uint=0):void{ var s:String; s = digit.toString(); var _temp1 = index; index = (index + 1); Fragment = (s.charCodeAt(_temp1) ^ Encoder); if (index < s.length){ Sibling = new MochiDigits(digit, index); } else { Sibling = null; }; reencode(); } public function addValue(inc:Number):void{ value = (value + inc); } } }//package mochi.as3
Section 50
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ super(); eventTable = {}; } public function triggerEvent(event:String, args:Object):void{ var i:Object; if (eventTable[event] == undefined){ return; }; for (i in eventTable[event]) { var _local6 = eventTable[event]; _local6[i](args); }; } public function removeEventListener(event:String, delegate:Function):void{ var s:Object; if (eventTable[event] == undefined){ eventTable[event] = []; return; }; for (s in eventTable[event]) { if (eventTable[event][s] != delegate){ } else { eventTable[event].splice(Number(s), 1); }; }; } public function addEventListener(event:String, delegate:Function):void{ removeEventListener(event, delegate); eventTable[event].push(delegate); } } }//package mochi.as3
Section 51
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public function MochiEvents(){ super(); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function startSession(achievementID:String):void{ MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null); } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function setNotifications(clip:MovieClip, style:Object):void{ var args:Object; var s:Object; args = {}; for (s in style) { args[s] = style[s]; }; args.clip = clip; MochiServices.send("events_setNotifications", args, null, null); } public static function endGame():void{ var delta:Number; delta = (new Date().time - gameStart); trigger("end_game", {time:delta}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(kind:String, obj:Object=null):void{ if (obj == null){ obj = {}; } else { if (obj["kind"] != undefined){ trace("WARNING: optional arguments package contains key 'id', it will be overwritten"); obj["kind"] = kind; }; }; MochiServices.send("events_triggerEvent", {eventObject:obj}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var delta:Number; delta = (new Date().time - levelStart); trigger("end_level", {time:delta}); } } }//package mochi.as3
Section 52
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _consumableProperties:Object; private var _syncID:Number; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ super(); MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(event:Object):void{ if (!this[(event.id + KEY_SALT)]){ this[(event.id + KEY_SALT)] = 0; }; if (!this[event.id]){ this[event.id] = 0; }; this[(event.id + KEY_SALT)] = (this[(event.id + KEY_SALT)] + event.count); this[event.id] = (this[event.id] + event.count); if (event.privateProperties.consumable){ if (!this[event.privateProperties.tag]){ this[event.privateProperties.tag] = 0; }; this[event.privateProperties.tag] = (this[event.privateProperties.tag] + (event.privateProperties.inc * event.count)); }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[name]){ return (MochiDigits(_consumableProperties[name]).value); }; return (undefined); } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[name] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{ return (((index)>=_names.length) ? 0 : (index + 1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ var d:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(value is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:value}); return; }; if (_consumableProperties[name]){ d = MochiDigits(_consumableProperties[name]); if (d.value == value){ return; }; d.value = value; } else { _names.push(name); _consumableProperties[name] = new MochiDigits(value); }; _syncID++; } private function sync(e:Event=null):void{ var output:Object; var key:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; output = {}; for (key in _consumableProperties) { output[key] = MochiDigits(_consumableProperties[key]).value; }; MochiUserData.put(CONSUMER_KEY, output, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{ return (_names[(index - 1)]); } private function loggedIn(args:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(name):Boolean{ if (!_consumableProperties[name]){ return (false); }; _names.splice(_names.indexOf(name), 1); delete _consumableProperties[name]; return (true); } private function itemOwned(event:Object):void{ _storeSync[event.id] = {properties:event.properties, count:event.count}; } private function putConsumableBag(userData:MochiUserData):void{ _syncPending = false; if (userData.error){ triggerEvent(ERROR, {type:IO_ERROR, error:userData.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } private function getConsumableBag(userData:MochiUserData):void{ var key:String; var unsynced:Number; if (userData.error){ triggerEvent(ERROR, {type:IO_ERROR, error:userData.error}); return; }; _consumableProperties = {}; _names = new Array(); if (userData.data){ for (key in userData.data) { _names.push(key); _consumableProperties[key] = new MochiDigits(userData.data[key]); }; }; for (key in _storeSync) { unsynced = _storeSync[key].count; if (_consumableProperties[(key + KEY_SALT)]){ unsynced = (unsynced - _consumableProperties[key]); }; if (unsynced == 0){ } else { newItems({id:key, count:unsynced, properties:_storeSync[key].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(args:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } } }//package mochi.as3
Section 53
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.text.*; import flash.display.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public function MochiScores(){ super(); } public static function showLeaderboard(options:Object=null):void{ var n:Number; var options = options; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod); } public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_requestList", null, callbackObj, callbackMethod); } public static function scoresArrayToObjects(scores:Object):Object{ var so:Object; var i:Number; var j:Number; var o:Object; var row_obj:Object; var item:String; var param:String; so = {}; for (item in scores) { if (typeof(scores[item]) == "object"){ if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){ so[item] = []; o = scores[item]; j = 0; while (j < o.rows.length) { row_obj = {}; i = 0; while (i < o.cols.length) { row_obj[o.cols[i]] = o.rows[j][i]; i++; }; so[item].push(row_obj); j++; }; } else { so[item] = {}; for (param in scores[item]) { so[item][param] = scores[item][param]; }; }; } else { so[item] = scores[item]; }; }; return (so); } public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{ score = Number(score); if (isNaN(score)){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((score == Number.NEGATIVE_INFINITY)) || ((score == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(score) != score){ trace((("WARNING: Submitted score '" + String(score)) + "' will be truncated")); }; score = Number(score); }; }; MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod); } public static function onClose(args:Object=null):void{ if (((((args) && ((args.error == true)))) && (onErrorHandler))){ if (args.errorCode == null){ args.errorCode = "IOError"; }; onErrorHandler(args.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(boardID:String):void{ MochiServices.warnID(boardID, true); MochiScores.boardID = boardID; MochiServices.send("scores_setBoardID", {boardID:boardID}); } } }//package mochi.as3
Section 54
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public function MochiServices(){ super(); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(pkg:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = pkg; cb = pkg.callbackID; cblst = _clip._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ method.apply(obj, pkg.args); //unresolved jump var _slot1 = error; trace(((("Error invoking callback method '" + methodName) + "': ") + _slot1.toString())); } else { if (obj != null){ obj(pkg.args); //unresolved jump var _slot1 = error; trace(("Error invoking method on object: " + _slot1.toString())); }; }; delete _clip._callbacks[cb]; } public static function get childClip():Object{ return (_clip); } public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName)); handleError(args, callbackObject, callbackMethod); flush(true); return; }; _clip._queue.push({methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod}; _clip._nextcallbackID++; }; }; } private static function init(id:String, clip:Object):void{ _id = id; if (clip != null){ _container = clip; loadCommunicator(id, _container); }; } private static function clickMovie(url:String, cb:Function):MovieClip{ var avm1_bytecode:Array; var b:int; var header:Array; var footer:Array; var mc:MovieClip; var lc:LocalConnection; var lc_name:String; var ba:ByteArray; var cpool:ByteArray; var actionLength:uint; var fileLength:uint; var loader:Loader; avm1_bytecode = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; header = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; footer = [0, 64, 0, 0, 0]; mc = new MovieClip(); lc = new LocalConnection(); lc_name = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); lc = new LocalConnection(); mc.lc = lc; mc.click = cb; lc.client = mc; lc.connect(lc_name); ba = new ByteArray(); cpool = new ByteArray(); cpool.endian = Endian.LITTLE_ENDIAN; cpool.writeShort(1); cpool.writeUTFBytes(((url + " ") + lc_name)); cpool.writeByte(0); actionLength = ((avm1_bytecode.length + cpool.length) + 4); fileLength = (actionLength + 35); ba.endian = Endian.LITTLE_ENDIAN; ba.writeUTFBytes("FWS"); ba.writeByte(8); ba.writeUnsignedInt(fileLength); for each (b in header) { ba.writeByte(b); }; ba.writeUnsignedInt(actionLength); ba.writeByte(136); ba.writeShort(cpool.length); ba.writeBytes(cpool); for each (b in avm1_bytecode) { ba.writeByte(b); }; for each (b in footer) { ba.writeByte(b); }; loader = new Loader(); loader.loadBytes(ba); mc.addChild(loader); return (mc); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(url:String, burl:String, btn:DisplayObjectContainer, onClick:Function=null):void{ var vars:Object; var avm1Click:DisplayObject; var s:String; var i:Number; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = url; var burl = burl; var btn = btn; var onClick = onClick; vars = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); s = "?"; i = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (url:String):void{ var rect:Rectangle; if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(url, onClick); rect = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = rect.x; avm1Click.y = rect.y; avm1Click.scaleX = (0.01 * rect.width); avm1Click.scaleY = (0.01 * rect.height); }; err = function (ev:Object):void{ netup = false; ev.target.removeEventListener(ev.type, arguments.callee); setURL(burl); }; complete = function (ev:Object):void{ ev.target.removeEventListener(ev.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function warnID(bid:String, leaderboard:Boolean):void{ var i:Number; bid = bid.toLowerCase(); if (bid.length != 16){ trace((("WARNING: " + (leaderboard) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (bid == "1e113c7239048b3f"){ if (leaderboard){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (bid == "84993a1de4031cd8"){ if (leaderboard){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; i = 0; while (i < bid.length) { switch (bid.charAt(i)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + bid)); return; }; i++; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); _mochiLocalConnection.close(); //unresolved jump var _slot1 = error; }; if (_timer != null){ _timer.stop(); //unresolved jump var _slot1 = error; }; } public static function allowDomains(server:String):String{ var hostname:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (server.indexOf("http://") != -1){ hostname = server.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(hostname); Security.allowInsecureDomain(hostname); }; }; return (hostname); } public static function getVersion():String{ return ("3.7 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function flush(error:Boolean):void{ var request:Object; var callback:Object; if (((_clip) && (_clip._queue))){ while (_clip._queue.length > 0) { request = _clip._queue.shift(); callback = null; if (request != null){ if (request.callbackID != null){ callback = _clip._callbacks[request.callbackID]; }; delete _clip._callbacks[request.callbackID]; if (((error) && (!((callback == null))))){ handleError(request.args, callback.callbackObject, callback.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(pkg:Object):void{ var target:String; var event:String; target = pkg.target; event = pkg.event; switch (target){ case "events": MochiEvents.triggerEvent(pkg.event, pkg.args); break; case "coins": MochiCoins.triggerEvent(pkg.event, pkg.args); break; case "sync": servicesSync.triggerEvent(pkg.event, pkg.args); break; }; } private static function urlOptions(clip:Object):Object{ var opts:Object; var options:String; var pairs:Array; var i:Number; var kv:Array; opts = {}; if (clip.stage){ options = clip.stage.loaderInfo.parameters.mochiad_options; } else { options = clip.loaderInfo.parameters.mochiad_options; }; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); opts[unescape(kv[0])] = unescape(kv[1]); i++; }; }; return (opts); } public static function setContainer(container:Object=null, doAdd:Boolean=true):void{ if (container != null){ if ((container is Sprite)){ _container = container; }; }; if (doAdd){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{ var args = args; var callbackObject = callbackObject; var callbackMethod = callbackMethod; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ var _local5 = callbackObject; _local5[callbackMethod](args); //unresolved jump var _slot1 = error; } else { if (callbackMethod != null){ callbackMethod.apply(args); //unresolved jump var _slot1 = error; }; }; }; } private static function loadError(ev:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_clip._queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function loadLCBridge(clip:Object):void{ var loader:Loader; var mochiLCURL:String; var req:URLRequest; var complete:Function; var clip = clip; loader = new Loader(); mochiLCURL = (_servURL + _mochiLC); req = new URLRequest(mochiLCURL); complete = function (ev:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (args:Object):void{ MochiServices.comChannelName = args.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(val:String):void{ if (val != null){ if (val.length > 3){ _sendChannelName = (val + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(id:String, clip:Object):MovieClip{ var clipname:String; var servicesURL:String; var req:URLRequest; var vars:URLVariables; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servURL){ _servURL = urlOptions(clip).servURL; }; servicesURL = (_servURL + _services); if (urlOptions(clip).servicesURL){ servicesURL = urlOptions(clip).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); req = new URLRequest(servicesURL); vars = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; vars.api_version = getVersion(); if (widget){ vars.widget = true; }; req.data = vars; _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(id:String, clip:Object, onError:Object=null):void{ var id = id; var clip = clip; var onError = onError; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (errorCode:String):void{ trace(errorCode); }; }; }; } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number, doAdd:Boolean=true):MovieClip{ var mc:MovieClip; var parent = parent; var name = name; var depth = depth; var doAdd = doAdd; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; parent[name] = mc; //unresolved jump var _slot1 = e; throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); mc["_name"] = name; return (mc); } public static function bringToTop(e:Event=null):void{ var e = e; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; //unresolved jump var _slot1 = errorObject; trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; } public static function connectWait(e:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 55
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public function MochiSocial(){ super(); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(properties:Object):void{ MochiServices.send("coins_saveUserProperties", properties); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(options:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:options}); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{ _user_info = args; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 56
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ super(); _syncContainer = {}; } public function triggerEvent(eventType:String, args:Object):void{ switch (eventType){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[args.name] = args.value; break; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ return (_syncContainer[name]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ var n:String; if (_syncContainer[name] == value){ return; }; n = name.toString(); _syncContainer[n] = value; MochiServices.send("sync_propUpdate", {name:n, value:value}); } } }//package mochi.as3
Section 57
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var error:Event;// = null public var key:String;// = null public var operation:String;// = null public var data;// = null public var _loader:URLLoader; public function MochiUserData(key:String="", callback:Function=null){ key = null; data = null; error = null; operation = null; callback = null; super(); this.key = key; this.callback = callback; } public function securityErrorHandler(event:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + event.toString()))); } public function putEvent(obj):void{ request("put", serialize(obj)); } public function request(_operation:String, _data:ByteArray):void{ var api_url:String; var api_token:String; var args:URLVariables; var req:URLRequest; var _operation = _operation; var _data = _data; operation = _operation; api_url = MochiSocial.getAPIURL(); api_token = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); args = new URLVariables(); args.op = _operation; args.key = key; req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.load(req); //unresolved jump var _slot1 = e; errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _slot1.toString()))); } public function performCallback():void{ callback(this); //unresolved jump var _slot1 = e; trace(("[MochiUserData] exception during callback: " + _slot1)); } public function serialize(obj):ByteArray{ var arr:ByteArray; arr = new ByteArray(); arr.objectEncoding = ObjectEncoding.AMF3; arr.writeObject(obj); arr.compress(); return (arr); } public function errorHandler(event:IOErrorEvent):void{ data = null; error = event; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function completeHandler(event:Event):void{ var event = event; if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; //unresolved jump var _slot1 = e; errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + _slot1.toString()))); return; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public function deserialize(arr:ByteArray){ arr.objectEncoding = ObjectEncoding.AMF3; arr.uncompress(); return (arr.readObject()); } public static function get(key:String, callback:Function):void{ var userData:MochiUserData; userData = new MochiUserData(key, callback); userData.getEvent(); } public static function put(key:String, obj, callback:Function):void{ var userData:MochiUserData; userData = new MochiUserData(key, callback); userData.putEvent(obj); } } }//package mochi.as3
Section 58
//Submitter (Spill.Components.Submitter) package Spill.Components { import flash.display.*; public dynamic class Submitter extends MovieClip { public var OO00OO1l1l:OOO000lll; public function Submitter(){ super(); } } }//package Spill.Components
Section 59
//O1OOO0O00 (Util.O1OOO0O00) package Util { import flash.net.*; import flash.external.*; public class O1OOO0O00 { private static const _O1lO0Oll1:Array = ["www.a10.com.gp.dev.spilgames.eu", "stg.pl.a10.com", "gamedev.dev.spilgames.com", "www.agame.com", "www.girlsgogames.com", "www.games.co.uk", "www.mygames.co.uk", "www.girlsgogames.co.uk", "www.spel.nl", "www.spelletjes.nl", "www.girlsgogames.nl", "www.jetztspielen.de", "www.spielen.com", "www.girlsgogames.de", "www.jeux.fr", "www.jeu.fr", "www.girlsgogames.fr", "www.juegos.com", "www.zapjuegos.com", "www.juegosdechicas.com", "www.gioco.it", "www.giocaregratis.it", "www.girlsgogames.it", "www.gry.pl", "www.minigry.pl", "www.girlsgogames.pl", "www.spela.se", "www.spel.eu", "www.girlsgogames.se", "www.ojogos.pt", "www.ourgames.ru", "www.flashgames.ru", "www.girlsgogames.ru", "www.oyunlar123.com", "www.asoyun.com", "www.girlsgogamestr.com", "www.gamesgames.com", "www.agame.com", "www.girlsgogames.com", "www.juegos.com", "www.zapjuegos.com", "www.juegosdechicas.com", "www.ojogos.com.br", "www.clickjogos.com", "www.girlsgogames.com.br", "www.game.com.cn", "www.xiaoyouxi.com", "www.egames.jp", "www.game.co.in", "www.game.co.in", "www.girlsgogames.in", "www.games.co.id", "www.laro.com.ph", "www.game.com.my", "www.onrpg.com", "www.zlonggames.com", "www.a10.com", "localhost"]; private static var _OOl10ll1l:URLRequest; private static var _O0Oll0l00; public function O1OOO0O00():void{ super(); try { _O0Oll0l00 = ExternalInterface.call("window.location.href.toString"); } catch(e) { _O0Oll0l00 = "error"; }; if ((((_O0Oll0l00 == null)) || ((_O0Oll0l00 == "")))){ _O0Oll0l00 = "error"; }; if (String(_O0Oll0l00).indexOf(".swf") != -1){ _O0Oll0l00 = "error"; }; } public function O0111l110():Boolean{ if (((!((_O001llOll(_O11ll1l00(_O0Oll0l00)) == -1))) && (!((_O0Oll0l00 == "error"))))){ return (true); }; return (false); } private static function _O11ll1l00(_arg1:String):String{ var _local2:String = new String(); var _local3:uint = 7; while (_local3 < _arg1.length) { if (_arg1.charAt(_local3) == "/"){ break; }; _local2 = (_local2 + _arg1.charAt(_local3)); _local3++; }; return (_local2); } private static function _O001llOll(_arg1:String):Number{ var _local2:uint; if (((_O1lO0Oll1) && (_arg1))){ _local2 = 0; while (_local2 < _O1lO0Oll1.length) { if (_arg1 == _O1lO0Oll1[_local2]){ return (_local2); }; _local2++; }; return (-1); } else { trace("cannot find site name"); }; return (-1); } } }//package Util
Section 60
//bar_0 (bar_0) package { import flash.display.*; public dynamic class bar_0 extends BitmapData { public function bar_0(w:Number, h:Number){ super(w, h); } } }//package
Section 61
//bar_1 (bar_1) package { import flash.display.*; public dynamic class bar_1 extends BitmapData { public function bar_1(w:Number, h:Number){ super(w, h); } } }//package
Section 62
//bar_2 (bar_2) package { import flash.display.*; public dynamic class bar_2 extends BitmapData { public function bar_2(w:Number, h:Number){ super(w, h); } } }//package
Section 63
//bat (bat) package { import flash.display.*; public dynamic class bat extends BitmapData { public function bat(w:Number, h:Number){ super(w, h); } } }//package
Section 64
//bat_died (bat_died) package { import flash.display.*; public dynamic class bat_died extends BitmapData { public function bat_died(w:Number, h:Number){ super(w, h); } } }//package
Section 65
//blip (blip) package { import flash.media.*; public dynamic class blip extends Sound { public function blip(){ super(); } } }//package
Section 66
//boulder (boulder) package { import flash.display.*; public dynamic class boulder extends BitmapData { public function boulder(w:Number, h:Number){ super(w, h); } } }//package
Section 67
//boulder_blood (boulder_blood) package { import flash.display.*; public dynamic class boulder_blood extends BitmapData { public function boulder_blood(w:Number, h:Number){ super(w, h); } } }//package
Section 68
//boulder_slime (boulder_slime) package { import flash.display.*; public dynamic class boulder_slime extends BitmapData { public function boulder_slime(w:Number, h:Number){ super(w, h); } } }//package
Section 69
//cemetery (cemetery) package { import flash.display.*; public dynamic class cemetery extends BitmapData { public function cemetery(w:Number, h:Number){ super(w, h); } } }//package
Section 70
//coin (coin) package { import flash.display.*; public dynamic class coin extends BitmapData { public function coin(w:Number, h:Number){ super(w, h); } } }//package
Section 71
//coin_small (coin_small) package { import flash.display.*; public dynamic class coin_small extends BitmapData { public function coin_small(w:Number, h:Number){ super(w, h); } } }//package
Section 72
//comscore (comscore) package { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.net.*; import Spill.Components.*; import flash.external.*; public dynamic class comscore extends MovieClip { public var loader:MovieClip; private var check_loader:URLLoader; public var Sub:Submitter; private var check_request:URLRequest; public var tv_frame:MovieClip; public var hs_allowed;// = false public function comscore():void{ var c1:String; var c2:String; var c3:String; var c4:String; var c5:String; var c6:String; var cs_params:String; var variables:URLVariables; check_request = new URLRequest("http://www.metasauce.com/spilhs_check.php"); check_loader = new URLLoader(); hs_allowed = false; super(); addFrameScript(0, frame1, 1, frame2, 3, frame4); c1 = "7"; c2 = "6035689"; c3 = "111111111111111113"; c4 = ""; c5 = ""; c6 = ""; cs_params = new Array("c1=", c1, "&c2=", c2, "&c3=", c3, "&c4=", c4, "&c5=", c5, "&c6=", c6).join(""); ExternalInterface.call((("function() { var script = document.createElement('script'); script.src =(document.location.protocol == 'https:' ? 'https://sb' : 'http://b') + '.scorecardresearch.com/beacon.js?" + cs_params) + "';document.body.appendChild(script); }"), null); Sub = new Submitter(); Sub.addEventListener(Event.COMPLETE, SubmiterComponentInitialized); Sub.addEventListener(IOErrorEvent.IO_ERROR, FailedToLoadSubmitter); Sub.addEventListener("LoadingFailed", FailedToLoadSubmitter); Sub._O0000Ol01(this, "go_to_hell", "go_to_hell.html", 0, "normal", "", 0, 0, 1, false); check_loader.addEventListener(Event.COMPLETE, checkSuccessful); check_loader.addEventListener(IOErrorEvent.IO_ERROR, checkError); check_loader.dataFormat = URLLoaderDataFormat.TEXT; check_request.method = URLRequestMethod.POST; variables = new URLVariables(); variables.site = Tools.getDomainName(this.root.loaderInfo.url); check_request.data = variables; check_loader.load(check_request); } public function destroy():void{ if (Sub){ if (Sub.hasEventListener("ScoreLoadError")){ Sub.removeEventListener("ScoreLoadError", eventHandlerScore); }; if (Sub.hasEventListener("ScoreLoadTimeComplete")){ Sub.removeEventListener("ScoreLoadTimeComplete", eventHandlerScore); }; if (Sub.hasEventListener("ScoreLoadSubmitComplete")){ Sub.removeEventListener("ScoreLoadSubmitComplete", eventHandlerScore); }; if (Sub.hasEventListener("ScoreLoadListComplete")){ Sub.removeEventListener("ScoreLoadListComplete", eventHandlerScore); }; if (Sub.hasEventListener("ScoreLoadUserListComplete")){ Sub.removeEventListener("ScoreLoadUserListComplete", eventHandlerScore); }; if (Sub.hasEventListener("AchievLoadError")){ Sub.removeEventListener("AchievLoadError", eventHandlerAchiev); }; if (Sub.hasEventListener("AchievLoadTimeComplete")){ Sub.removeEventListener("AchievLoadTimeComplete", eventHandlerAchiev); }; if (Sub.hasEventListener("AchievLoadListComplete")){ Sub.removeEventListener("AchievLoadListComplete", eventHandlerAchiev); }; if (Sub.hasEventListener("AchievLoadInfoComplete")){ Sub.removeEventListener("AchievLoadInfoComplete", eventHandlerAchiev); }; if (Sub.hasEventListener("AchievLoadGrantComplete")){ Sub.removeEventListener("AchievLoadGrantComplete", eventHandlerAchiev); }; Sub._O010ll111(); }; Sub = null; } public function eventHandlerAchiev(e:Event):void{ if (e.currentTarget.OO00OO1l1l.O1OlOO00O != null){ trace(e.currentTarget.OO00OO1l1l.O1OlOO00O.toString()); } else { trace(e.type); }; } private function FailedToLoadSubmitter(e:Event):void{ Sub.removeEventListener(Event.COMPLETE, SubmiterComponentInitialized); Sub.removeEventListener("LoadingFailed", FailedToLoadSubmitter); Sub = null; } private function SubmiterComponentInitialized(e:Event):void{ Sub.removeEventListener(Event.COMPLETE, SubmiterComponentInitialized); Sub.removeEventListener(IOErrorEvent.IO_ERROR, FailedToLoadSubmitter); Sub.removeEventListener("LoadingFailed", FailedToLoadSubmitter); Sub.addEventListener("ScoreLoadError", eventHandlerScore); Sub.addEventListener("ScoreLoadTimeComplete", eventHandlerScore); Sub.addEventListener("ScoreLoadSubmitComplete", eventHandlerScore); Sub.addEventListener("ScoreLoadListComplete", eventHandlerScore); Sub.addEventListener("ScoreLoadUserListComplete", eventHandlerScore); Sub.addEventListener("AchievLoadError", eventHandlerAchiev); Sub.addEventListener("AchievLoadTimeComplete", eventHandlerAchiev); Sub.addEventListener("AchievLoadListComplete", eventHandlerAchiev); Sub.addEventListener("AchievLoadInfoComplete", eventHandlerAchiev); Sub.addEventListener("AchievLoadGrantComplete", eventHandlerAchiev); } public function eventHandlerScore(e:Event):void{ if (e.currentTarget.OO00OO1l1l.O0l00l0O0 != null){ trace(e.currentTarget.OO00OO1l1l.O0l00l0O0.toString()); } else { trace(e.type); }; } function frame1(){ if (canShowAds()){ MochiAd.showPreGameAd({clip:root, id:"9da3436693bce7b2", res:"400x440", background:16777161, color:0xFF8A00, outline:13994812, no_bg:true}); loader.lbar.visible = false; }; stop(); } function frame4(){ tv_frame.mouseEnabled = false; stop(); } public function canShowAds():Boolean{ var sites:*; var can:Boolean; var i:*; sites = new Array(); sites.push("ungrounded.net"); sites.push("flashgamelicense.com"); sites.push("localhost"); sites.push("agame.com"); sites.push("xiaoyouxi.cn"); sites.push("game.com.cn"); sites.push("game.asia"); can = true; i = 0; while (i < sites.length) { if (this.root.loaderInfo.url.indexOf(sites[i]) != -1){ can = false; }; i++; }; return (can); } function frame2(){ gotoAndStop("game"); } private function checkSuccessful(e:Event):void{ var loader:URLLoader; loader = URLLoader(e.target); if (loader.data == "allowed"){ hs_allowed = true; MochiServices.connect("9da3436693bce7b2", this.root); }; } private function checkError(e:IOErrorEvent):void{ } } }//package
Section 73
//congratulations (congratulations) package { import flash.display.*; public dynamic class congratulations extends BitmapData { public function congratulations(w:Number, h:Number){ super(w, h); } } }//package
Section 74
//crush_sound (crush_sound) package { import flash.media.*; public dynamic class crush_sound extends Sound { public function crush_sound(){ super(); } } }//package
Section 75
//devil (devil) package { import flash.display.*; public dynamic class devil extends BitmapData { public function devil(w:Number, h:Number){ super(w, h); } } }//package
Section 76
//dust_0 (dust_0) package { import flash.display.*; public dynamic class dust_0 extends BitmapData { public function dust_0(w:Number, h:Number){ super(w, h); } } }//package
Section 77
//dust_1 (dust_1) package { import flash.display.*; public dynamic class dust_1 extends BitmapData { public function dust_1(w:Number, h:Number){ super(w, h); } } }//package
Section 78
//dust_2 (dust_2) package { import flash.display.*; public dynamic class dust_2 extends BitmapData { public function dust_2(w:Number, h:Number){ super(w, h); } } }//package
Section 79
//dust_3 (dust_3) package { import flash.display.*; public dynamic class dust_3 extends BitmapData { public function dust_3(w:Number, h:Number){ super(w, h); } } }//package
Section 80
//dust_4 (dust_4) package { import flash.display.*; public dynamic class dust_4 extends BitmapData { public function dust_4(w:Number, h:Number){ super(w, h); } } }//package
Section 81
//eternal (eternal) package { import flash.media.*; public dynamic class eternal extends Sound { public function eternal(){ super(); } } }//package
Section 82
//first_aid (first_aid) package { import flash.display.*; public dynamic class first_aid extends BitmapData { public function first_aid(w:Number, h:Number){ super(w, h); } } }//package
Section 83
//flame (flame) package { import flash.display.*; public dynamic class flame extends BitmapData { public function flame(w:Number, h:Number){ super(w, h); } } }//package
Section 84
//flame_snuff (flame_snuff) package { import flash.display.*; public dynamic class flame_snuff extends BitmapData { public function flame_snuff(w:Number, h:Number){ super(w, h); } } }//package
Section 85
//frame_top (frame_top) package { import flash.display.*; public dynamic class frame_top extends BitmapData { public function frame_top(w:Number, h:Number){ super(w, h); } } }//package
Section 86
//gal_angel (gal_angel) package { import flash.display.*; public dynamic class gal_angel extends BitmapData { public function gal_angel(w:Number, h:Number){ super(w, h); } } }//package
Section 87
//gal_float (gal_float) package { import flash.display.*; public dynamic class gal_float extends BitmapData { public function gal_float(w:Number, h:Number){ super(w, h); } } }//package
Section 88
//gal_idle (gal_idle) package { import flash.display.*; public dynamic class gal_idle extends BitmapData { public function gal_idle(w:Number, h:Number){ super(w, h); } } }//package
Section 89
//gal_jump (gal_jump) package { import flash.display.*; public dynamic class gal_jump extends BitmapData { public function gal_jump(w:Number, h:Number){ super(w, h); } } }//package
Section 90
//gal_jump_diagonal (gal_jump_diagonal) package { import flash.display.*; public dynamic class gal_jump_diagonal extends BitmapData { public function gal_jump_diagonal(w:Number, h:Number){ super(w, h); } } }//package
Section 91
//gal_pick_front (gal_pick_front) package { import flash.display.*; public dynamic class gal_pick_front extends BitmapData { public function gal_pick_front(w:Number, h:Number){ super(w, h); } } }//package
Section 92
//gal_pick_side (gal_pick_side) package { import flash.display.*; public dynamic class gal_pick_side extends BitmapData { public function gal_pick_side(w:Number, h:Number){ super(w, h); } } }//package
Section 93
//gal_push (gal_push) package { import flash.display.*; public dynamic class gal_push extends BitmapData { public function gal_push(w:Number, h:Number){ super(w, h); } } }//package
Section 94
//gal_resurrect (gal_resurrect) package { import flash.display.*; public dynamic class gal_resurrect extends BitmapData { public function gal_resurrect(w:Number, h:Number){ super(w, h); } } }//package
Section 95
//gal_swimming (gal_swimming) package { import flash.display.*; public dynamic class gal_swimming extends BitmapData { public function gal_swimming(w:Number, h:Number){ super(w, h); } } }//package
Section 96
//gal_walking (gal_walking) package { import flash.display.*; public dynamic class gal_walking extends BitmapData { public function gal_walking(w:Number, h:Number){ super(w, h); } } }//package
Section 97
//game_over (game_over) package { import flash.display.*; public dynamic class game_over extends BitmapData { public function game_over(w:Number, h:Number){ super(w, h); } } }//package
Section 98
//heart (heart) package { import flash.display.*; public dynamic class heart extends BitmapData { public function heart(w:Number, h:Number){ super(w, h); } } }//package
Section 99
//heart_small (heart_small) package { import flash.display.*; public dynamic class heart_small extends BitmapData { public function heart_small(w:Number, h:Number){ super(w, h); } } }//package
Section 100
//hell_0 (hell_0) package { import flash.display.*; public dynamic class hell_0 extends BitmapData { public function hell_0(w:Number, h:Number){ super(w, h); } } }//package
Section 101
//hell_1 (hell_1) package { import flash.display.*; public dynamic class hell_1 extends BitmapData { public function hell_1(w:Number, h:Number){ super(w, h); } } }//package
Section 102
//hell_2 (hell_2) package { import flash.display.*; public dynamic class hell_2 extends BitmapData { public function hell_2(w:Number, h:Number){ super(w, h); } } }//package
Section 103
//hell_3 (hell_3) package { import flash.display.*; public dynamic class hell_3 extends BitmapData { public function hell_3(w:Number, h:Number){ super(w, h); } } }//package
Section 104
//hell_4 (hell_4) package { import flash.display.*; public dynamic class hell_4 extends BitmapData { public function hell_4(w:Number, h:Number){ super(w, h); } } }//package
Section 105
//hell_inside_0 (hell_inside_0) package { import flash.display.*; public dynamic class hell_inside_0 extends BitmapData { public function hell_inside_0(w:Number, h:Number){ super(w, h); } } }//package
Section 106
//hell_inside_1 (hell_inside_1) package { import flash.display.*; public dynamic class hell_inside_1 extends BitmapData { public function hell_inside_1(w:Number, h:Number){ super(w, h); } } }//package
Section 107
//hell_inside_2 (hell_inside_2) package { import flash.display.*; public dynamic class hell_inside_2 extends BitmapData { public function hell_inside_2(w:Number, h:Number){ super(w, h); } } }//package
Section 108
//hell_inside_3 (hell_inside_3) package { import flash.display.*; public dynamic class hell_inside_3 extends BitmapData { public function hell_inside_3(w:Number, h:Number){ super(w, h); } } }//package
Section 109
//hint_1 (hint_1) package { import flash.display.*; public dynamic class hint_1 extends BitmapData { public function hint_1(w:Number, h:Number){ super(w, h); } } }//package
Section 110
//hint_2 (hint_2) package { import flash.display.*; public dynamic class hint_2 extends BitmapData { public function hint_2(w:Number, h:Number){ super(w, h); } } }//package
Section 111
//hint_3 (hint_3) package { import flash.display.*; public dynamic class hint_3 extends BitmapData { public function hint_3(w:Number, h:Number){ super(w, h); } } }//package
Section 112
//hint_4 (hint_4) package { import flash.display.*; public dynamic class hint_4 extends BitmapData { public function hint_4(w:Number, h:Number){ super(w, h); } } }//package
Section 113
//hint_5 (hint_5) package { import flash.display.*; public dynamic class hint_5 extends BitmapData { public function hint_5(w:Number, h:Number){ super(w, h); } } }//package
Section 114
//hit_sound (hit_sound) package { import flash.media.*; public dynamic class hit_sound extends Sound { public function hit_sound(){ super(); } } }//package
Section 115
//info_air (info_air) package { import flash.display.*; public dynamic class info_air extends BitmapData { public function info_air(w:Number, h:Number){ super(w, h); } } }//package
Section 116
//info_coins (info_coins) package { import flash.display.*; public dynamic class info_coins extends BitmapData { public function info_coins(w:Number, h:Number){ super(w, h); } } }//package
Section 117
//info_hungry (info_hungry) package { import flash.display.*; public dynamic class info_hungry extends BitmapData { public function info_hungry(w:Number, h:Number){ super(w, h); } } }//package
Section 118
//info_hurt (info_hurt) package { import flash.display.*; public dynamic class info_hurt extends BitmapData { public function info_hurt(w:Number, h:Number){ super(w, h); } } }//package
Section 119
//info_more_coins (info_more_coins) package { import flash.display.*; public dynamic class info_more_coins extends BitmapData { public function info_more_coins(w:Number, h:Number){ super(w, h); } } }//package
Section 120
//language (language) package { import flash.net.*; public class language { public static var localConnection = new LocalConnection(); public static var _languageNum:uint = 0; public static var _languageBox:Array = new Array(); public static var SpillGroupUrl:Array = new Array(); public static var gamename = "go_to_hell"; public function language(){ super(); } public static function get url2():String{ var i:int; i = 0; while (i < SpillGroupUrl.length) { if (localConnection.domain == SpillGroupUrl[i]){ return (_languageBox[_languageNum].url2); }; i++; }; return (_languageBox[_languageNum].url2); } public static function get language_nr():String{ return (_languageBox[_languageNum].language_nr); } public static function get portal():String{ return (_languageBox[_languageNum].portal); } public static function set Language(languageVersion:Object):void{ var returnDomain:Function; var hostingdomain:String; var myList:String; var myArray:Array; var language1:*; var domainextention:int; var domainname:int; var languageVersion = languageVersion; returnDomain = function (w:String):String{ var domain:String; var j:uint; domain = new String(); j = 7; while (j < w.length) { if (w.charAt(j) == "/"){ break; }; domain = (domain + w.charAt(j)); j++; }; return (domain); }; hostingdomain = ""; myList = localConnection.domain; myArray = myList.split("."); if (myArray.length <= 3){ domainextention = (myArray.length - 1); domainname = (myArray.length - 2); hostingdomain = ((myArray[domainname] + ".") + myArray[domainextention]); } else { hostingdomain = localConnection.domain; }; if (hostingdomain == "undefined.localhost"){ hostingdomain = "offline_play"; }; language1 = new languageItem(); language1.url1 = ((("http://www.a10.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain); language1.url2 = ((("http://www.a10.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain); language1.language_nr = 1; language1.branding_nr = 45; language1.portal = "teen"; _languageBox.push(language1); SpillGroupUrl.push("localhost"); SpillGroupUrl.push("www8.agame.com"); SpillGroupUrl.push("gamedev.dev.spilgames.com"); if ((((((languageVersion is Number)) || ((languageVersion is uint)))) || ((languageVersion is int)))){ _languageNum = (Number(languageVersion) - 1); }; } public static function get url1():String{ var i:int; i = 0; while (i < SpillGroupUrl.length) { if (localConnection.domain == SpillGroupUrl[i]){ return (_languageBox[_languageNum].url2); }; i++; }; return (_languageBox[_languageNum].url1); } public static function get branding_nr():String{ return (_languageBox[_languageNum].branding_nr); } } var _local1:* = (language.Language = 1); return (_local1); }//package class languageItem { public var url1:String; public var url2:String; public var branding_nr:int; public var language_nr:int; public var portal:String; private function languageItem(){ super(); } }
Section 121
//lava (lava) package { import flash.display.*; public dynamic class lava extends BitmapData { public function lava(w:Number, h:Number){ super(w, h); } } }//package
Section 122
//lava_ref_0 (lava_ref_0) package { import flash.display.*; public dynamic class lava_ref_0 extends BitmapData { public function lava_ref_0(w:Number, h:Number){ super(w, h); } } }//package
Section 123
//lava_ref_1 (lava_ref_1) package { import flash.display.*; public dynamic class lava_ref_1 extends BitmapData { public function lava_ref_1(w:Number, h:Number){ super(w, h); } } }//package
Section 124
//lava_ref_2 (lava_ref_2) package { import flash.display.*; public dynamic class lava_ref_2 extends BitmapData { public function lava_ref_2(w:Number, h:Number){ super(w, h); } } }//package
Section 125
//lava_ref_3 (lava_ref_3) package { import flash.display.*; public dynamic class lava_ref_3 extends BitmapData { public function lava_ref_3(w:Number, h:Number){ super(w, h); } } }//package
Section 126
//lava_ref_4 (lava_ref_4) package { import flash.display.*; public dynamic class lava_ref_4 extends BitmapData { public function lava_ref_4(w:Number, h:Number){ super(w, h); } } }//package
Section 127
//life_lost (life_lost) package { import flash.media.*; public dynamic class life_lost extends Sound { public function life_lost(){ super(); } } }//package
Section 128
//logo_anim (logo_anim) package { import flash.display.*; public dynamic class logo_anim extends BitmapData { public function logo_anim(w:Number, h:Number){ super(w, h); } } }//package
Section 129
//meat (meat) package { import flash.display.*; public dynamic class meat extends BitmapData { public function meat(w:Number, h:Number){ super(w, h); } } }//package
Section 130
//meat_small (meat_small) package { import flash.display.*; public dynamic class meat_small extends BitmapData { public function meat_small(w:Number, h:Number){ super(w, h); } } }//package
Section 131
//metr (metr) package { import flash.display.*; public dynamic class metr extends BitmapData { public function metr(w:Number, h:Number){ super(w, h); } } }//package
Section 132
//OOO000lll (OOO000lll) package { import flash.display.*; import flash.events.*; import Util.*; import flash.net.*; import flash.system.*; public class OOO000lll extends MovieClip { public var O1OlOO00O:XML; private var _O10OOO1O0:Loader; private var _O1l10l101:Object; private var _OO0l101l1:Object; public var OOO10O100:String; public var O0l00l0O0:XML; private var _OOl10010l:String; private var _O001OO010:Object; private var _O01OO1O00; private var _O01O0lOl0:int; private var _O1Ol011l1:String; private var _O11OO0110:String; private var _OOO00l00l:int; private var _O0lO0100O:String; private var _OOOOll01l:Array; private var _O111O01OO:Object; private var _OO10001Ol:Boolean; private var _OO1l1OO10:String; public var O1lll0ll0:XML; private var _O1OO1OllO:Object; private var _O0l0OO01O; private var _OO0l1lOO1:int; public var OOOll0OO0:int; public function OOO000lll():void{ var _O1OlO10O0:*; super(); Security.allowDomain("*"); _OO10001Ol = false; _O01OO1O00 = this.parent; _O01OO1O00.stop(); var _OOll00l11:int; while (true) { try { _O1OlO10O0 = _O01OO1O00.getChildAt(_OOll00l11); if ((_O1OlO10O0 is MovieClip)){ _O1OlO10O0.visible = false; } else { _O01OO1O00.removeChild(_O1OlO10O0); }; _OOll00l11 = (_OOll00l11 + 1); } catch(e:Error) { break; }; }; try { _O01OO1O00["_O0000Ol01"] = _O0000Ol01; _O01OO1O00["_O0Olll0lO"] = _O0Olll0lO; } catch(e:Error) { }; } private function _O11lll1OO0(_arg1:String):void{ if (_O0l0OO01O){ _O0l0OO01O.OO0011ll1O(_arg1); }; } private function _OO0OO1OO0(_arg1:Event):void{ if ((((((_arg1.type == "ScoreLoadSubmitComplete")) || ((_arg1.type == "ScoreLoadListComplete")))) || ((_arg1.type == "ScoreLoadUserListComplete")))){ O0l00l0O0 = _O0l0OO01O.O011Oll0O(); } else { if (_arg1.type == "ScoreLoadTimeComplete"){ O1lll0ll0 = _O0l0OO01O.OO011OOl1(); } else { O0l00l0O0 = _O0l0OO01O.O0001O0Ol(); }; }; _O01OO1O00.dispatchEvent(_arg1); } private function _O10Ol0l10(_arg1:IOErrorEvent):void{ removeEventListener(Event.ENTER_FRAME, _O0OlOOO1O); _O01OO1O00.dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR)); } private function _O01Ol1O1O():void{ if (_O0l0OO01O){ _O0l0OO01O.OO011OOl1(); }; } private function _O110l10ll():void{ if (_O0l0OO01O){ _O0l0OO01O.O01l01OlO(); }; } private function _O01O1101l():void{ stop(); _O10OOO1O0 = new Loader(); _O10OOO1O0.load(new URLRequest(_O1Ol011l1)); _O01OO1O00.addChildAt(_O10OOO1O0, 0); this.addEventListener(Event.ENTER_FRAME, _O0OlOOO1O); _O10OOO1O0.contentLoaderInfo.addEventListener(Event.COMPLETE, _O100O0Oll); _O10OOO1O0.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _O10Ol0l10); } private function _O0000Ol01(_arg1=null, _arg2:String="default", _arg3="", _arg4:int=0, _arg5:String="normal", _arg6:String="", _arg7:int=0, _arg8:int=0, _arg9:int=1, _arg10:Boolean=false):void{ OOO10O100 = _arg5; OOOll0OO0 = _arg4; _O11OO0110 = _arg2; if (_arg3 == ""){ _OO1l1OO10 = _O11OO0110; } else { _OO1l1OO10 = _arg3; }; if (((!((_arg1 == null))) && (!((_arg1.loaderInfo == null))))){ _O1l10l101 = _arg1.loaderInfo.parameters["username"]; _O001OO010 = _arg1.loaderInfo.parameters["hash"]; _OO0l101l1 = _arg1.loaderInfo.parameters["id"]; _O1OO1OllO = _arg1.loaderInfo.parameters["s"]; _O111O01OO = _arg1.loaderInfo.parameters["c"]; _O1Ol011l1 = "http://www8.agame.com/games/flash/highscore/SubmitterV2.swf"; if (_O00O00010(_arg10)){ _O01O1101l(); } else { _O01OO1O00.dispatchEvent(new Event("LoadingFailed")); }; }; _OOl10010l = _arg6; _OO0l1lOO1 = _arg7; _O01O0lOl0 = _arg8; _OOO00l00l = _arg9; } private function _O0O1l0OO0():Boolean{ return (!((_O0l0OO01O == null))); } private function _O100O0Oll(_arg1:Event):void{ _O0l0OO01O = _arg1.currentTarget.content; _O0l0OO01O.O0011ll110O0(_O1OO1OllO, 1, _OO0l101l1, _O111O01OO, OOOll0OO0, _OOl10010l, _OO0l1lOO1, _O01O0lOl0, _OOO00l00l, _O1l10l101, _O001OO010); _O0l0OO01O.addEventListener("HyScorSubmitterLoaded", _OOl11lOOl); _O0l0OO01O.addEventListener("ScoreLoadError", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadTimeComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadSubmitComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadListComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadUserListComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("AchievLoadError", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadTimeComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadListComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadInfoComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadGrantComplete", _O0l0O1Oll); _O01OO1O00["_O0Olll0lO"] = _O0Olll0lO; _O01OO1O00["_O0O1l0OO0"] = _O0O1l0OO0; _O01OO1O00["_O01Ol1O1O"] = _O01Ol1O1O; _O01OO1O00["_O01lOO10O"] = _O01lOO10O; _O01OO1O00["_O110l10ll"] = _O110l10ll; _O01OO1O00["_O11lll1OO0"] = _O11lll1OO0; _O01OO1O00["_O00OOl1Ol"] = _O00OOl1Ol; _O01OO1O00["_O1OlO10OO"] = _O1OlO10OO; _O01OO1O00["_OOlOOOll1"] = _OOlOOOll1; _O01OO1O00["_O010ll111"] = _O010ll111; } private function _O00O00010(_arg1:Boolean=false):Boolean{ var _local4:String; var _local5:O1OOO0O00; var _local2:Boolean = _arg1; if (!_local2){ _OOOOll01l = ["www8.agame.com"]; } else { _OOOOll01l = ["localhost", "www8.agame.com", "www.zlonggames.com", "gamedev.dev.spilgames.com", "stg.pl.a10.com", "www.a10.com.gp.dev.spilgames.eu"]; }; var _local3:LocalConnection = new LocalConnection(); if (((isNaN((_OO0l101l1 as int))) || (isNaN((_O1OO1OllO as int))))){ return (false); }; for each (_local4 in _OOOOll01l) { if (_local3.domain == _local4){ _local5 = new O1OOO0O00(); if (_local5.O0111l110()){ _OO10001Ol = true; return (true); }; }; }; return (false); } private function _O00OOl1Ol(_arg1:String):void{ if (_O0l0OO01O){ _O0l0OO01O.OO00lO1l0(_arg1, _O1l10l101, _O001OO010); }; } private function _O0OlOOO1O(_arg1:Event):void{ var _local2 = (((_O10OOO1O0.contentLoaderInfo.bytesLoaded / _O10OOO1O0.contentLoaderInfo.bytesTotal) * 100) >> 0); if (_local2 >= 100){ removeEventListener(Event.ENTER_FRAME, _O0OlOOO1O); }; } private function _OOl11lOOl(_arg1:Event):void{ if (_O0l0OO01O){ _O0l0OO01O.removeEventListener("HyScorSubmitterLoaded", _OOl11lOOl); }; _O01OO1O00.dispatchEvent(new Event(Event.COMPLETE)); } private function _O01lOO10O(_arg1:int):void{ if (_O0l0OO01O){ _O0l0OO01O.O0l01llOl(_arg1, _O1l10l101, _O001OO010); }; } private function _O0Olll0lO():Boolean{ return (_O00O00010(false)); } private function _O1OlO10OO():void{ if (_O0l0OO01O){ _O0l0OO01O.O1l0OOl1l(_O1l10l101, _O001OO010); }; } private function _O10O00lO0():String{ if (_O0l0OO01O){ return (_O0l0OO01O.OOOO00ll0()); }; return (("FAILED " + _O0l0OO01O)); } private function _O0l0O1Oll(_arg1:Event):void{ if ((((((_arg1.type == "AchievLoadListComplete")) || ((_arg1.type == "AchievLoadInfoComplete")))) || ((_arg1.type == "AchievLoadGrantComplete")))){ O1OlOO00O = _O0l0OO01O.O11OO0l0l(); } else { O1OlOO00O = _O0l0OO01O.O0O100l0l(); }; _O01OO1O00.dispatchEvent(_arg1); } private function _O010ll111():void{ _O0l0OO01O.removeEventListener("ScoreLoadError", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadTimeComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadSubmitComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadListComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadUserListComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("AchievLoadError", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadTimeComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadListComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadInfoComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadGrantComplete", _O0l0O1Oll); _O01OO1O00 = null; _OOOOll01l = null; _O0l0OO01O = null; _O1l10l101 = null; _O001OO010 = null; _O10OOO1O0 = null; O1lll0ll0 = null; O0l00l0O0 = null; O1OlOO00O = null; } private function _OOlOOOll1(_arg1:int):void{ if (_O0l0OO01O){ _O0l0OO01O.O1OlOO111(_arg1); }; } } }//package
Section 133
//ouch (ouch) package { import flash.media.*; public dynamic class ouch extends Sound { public function ouch(){ super(); } } }//package
Section 134
//oxygen (oxygen) package { import flash.display.*; public dynamic class oxygen extends BitmapData { public function oxygen(w:Number, h:Number){ super(w, h); } } }//package
Section 135
//pause (pause) package { import flash.display.*; public dynamic class pause extends BitmapData { public function pause(w:Number, h:Number){ super(w, h); } } }//package
Section 136
//pixel_font (pixel_font) package { import flash.text.*; public dynamic class pixel_font extends Font { public function pixel_font(){ super(); } } }//package
Section 137
//rave (rave) package { import flash.media.*; public dynamic class rave extends Sound { public function rave(){ super(); } } }//package
Section 138
//rave_far (rave_far) package { import flash.media.*; public dynamic class rave_far extends Sound { public function rave_far(){ super(); } } }//package
Section 139
//red_cross (red_cross) package { import flash.display.*; public dynamic class red_cross extends BitmapData { public function red_cross(w:Number, h:Number){ super(w, h); } } }//package
Section 140
//smash_sound (smash_sound) package { import flash.media.*; public dynamic class smash_sound extends Sound { public function smash_sound(){ super(); } } }//package
Section 141
//spikes (spikes) package { import flash.display.*; public dynamic class spikes extends BitmapData { public function spikes(w:Number, h:Number){ super(w, h); } } }//package
Section 142
//spikes_blood (spikes_blood) package { import flash.display.*; public dynamic class spikes_blood extends BitmapData { public function spikes_blood(w:Number, h:Number){ super(w, h); } } }//package
Section 143
//target_h (target_h) package { import flash.display.*; public dynamic class target_h extends BitmapData { public function target_h(w:Number, h:Number){ super(w, h); } } }//package
Section 144
//target_v (target_v) package { import flash.display.*; public dynamic class target_v extends BitmapData { public function target_v(w:Number, h:Number){ super(w, h); } } }//package
Section 145
//Tools (Tools) package { import flash.media.*; import flash.text.*; import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public final class Tools { private static var rnd_seed = Math.floor((Math.random() * 10000)); public function Tools(){ super(); } public static function addEvent(object:DisplayObject, type:String, listener:Function){ object.addEventListener(type, listener, false, 0, true); } public static function flipBitmap(bmp:BitmapData, h:Boolean, v:Boolean):BitmapData{ var vm:*; var hm:*; var bm:*; var m:Matrix; var tmp:*; if (((!(h)) && (!(v)))){ return (bmp); }; vm = new Matrix(); vm.scale(1, -1); vm.translate(0, bmp.height); hm = new Matrix(); hm.scale(-1, 1); hm.translate(bmp.width, 0); bm = new Matrix(); bm.scale(-1, -1); bm.translate(bmp.width, bmp.height); if (((h) && (v))){ m = bm; } else { if (h){ m = hm; } else { if (v){ m = vm; } else { return (bmp); }; }; }; tmp = new BitmapData(bmp.width, bmp.height, true, 0); tmp.draw(bmp, m); return (tmp); } public static function getResource(pic_name:String){ var ClassReference:Class; ClassReference = (getDefinitionByName(pic_name) as Class); return (new (ClassReference)); } public static function rand(n:Number){ rnd_seed = (((rnd_seed * 9301) + 49297) % 233280); return (Math.floor(((rnd_seed / 233280) * n))); } public static function getKey(a:Array, value):Number{ var i:*; i = 0; while (i < a.length) { if (a[i] == value){ return (i); }; i++; }; return (-1); } public static function rotateBitmap(bmp:BitmapData, deg:Number){ var rm:*; var tmp:*; rm = new Matrix(); rm.translate((-(bmp.width) / 2), (-(bmp.height) / 2)); rm.rotate(degToRad(deg)); rm.translate((bmp.width / 2), (bmp.height / 2)); tmp = new BitmapData(bmp.width, bmp.height, true, 0); tmp.draw(bmp, rm); return (tmp); } public static function remove(object:DisplayObject){ if (object){ if (object.parent){ DisplayObjectContainer(object.parent).removeChild(object); }; }; } public static function getDomainName(url:String):String{ var tmp:*; var dn:*; tmp = url.split("://"); dn = tmp[(tmp.length - 1)]; dn = dn.split("/")[0]; tmp = dn.split("."); dn = ((tmp[(tmp.length - 2)] + ".") + tmp[(tmp.length - 1)]); return (dn); } public static function getPicture(pic_name:String){ var ClassReference:Class; ClassReference = (getDefinitionByName(pic_name) as Class); return (new ClassReference(0, 0)); } public static function pasteBitmap(px, py, bmp:BitmapData, target:BitmapData, merge_alpha:Boolean){ target.copyPixels(bmp, bmp.rect, new Point(px, py), null, null, merge_alpha); } public static function numOnly(input:TextField){ var i:*; var code:*; i = 0; while (i < input.text.length) { code = input.text.charCodeAt(i); if ((((code < 48)) || ((code > 57)))){ input.text = remChar(input.text, i); }; i++; }; } public static function setSeed(sd:Number){ rnd_seed = sd; } public static function degToRad(deg:Number){ return (((Math.PI * 2) * (deg / 360))); } public static function constrain(val:Number, min:Number, max:Number):Number{ if (val > max){ return (max); }; if (val < min){ return (min); }; return (val); } public static function shuffle(a:Array){ var i:*; var tmp:*; var rn:*; i = 0; while (i < a.length) { tmp = a[i]; rn = rand(a.length); a[i] = a[rn]; a[rn] = tmp; i++; }; } public static function swap(a:Object, b:Object){ var c:*; c = a; a = b; } public static function mute(doit:Boolean){ var transform:SoundTransform; transform = new SoundTransform(); transform.volume = (doit) ? 0 : 1; SoundMixer.soundTransform = transform; } public static function clearBitmap(bmp:BitmapData){ bmp.fillRect(bmp.rect, 0); } public static function setTint(color:Number, clip:MovieClip){ var t:Transform; var ct:ColorTransform; t = new Transform(clip); ct = new ColorTransform(); ct.color = color; t.colorTransform = ct; } public static function remChar(string:String, index:Number){ return ((string.slice(0, index) + string.slice((index + 1), string.length))); } } }//package
Section 146
//wall_dark (wall_dark) package { import flash.display.*; public dynamic class wall_dark extends BitmapData { public function wall_dark(w:Number, h:Number){ super(w, h); } } }//package
Section 147
//wall_dark_2 (wall_dark_2) package { import flash.display.*; public dynamic class wall_dark_2 extends BitmapData { public function wall_dark_2(w:Number, h:Number){ super(w, h); } } }//package
Section 148
//wall_dark_2_trans (wall_dark_2_trans) package { import flash.display.*; public dynamic class wall_dark_2_trans extends BitmapData { public function wall_dark_2_trans(w:Number, h:Number){ super(w, h); } } }//package
Section 149
//wall_dark_3 (wall_dark_3) package { import flash.display.*; public dynamic class wall_dark_3 extends BitmapData { public function wall_dark_3(w:Number, h:Number){ super(w, h); } } }//package
Section 150
//wall_dark_3_trans (wall_dark_3_trans) package { import flash.display.*; public dynamic class wall_dark_3_trans extends BitmapData { public function wall_dark_3_trans(w:Number, h:Number){ super(w, h); } } }//package
Section 151
//wall_dark_last (wall_dark_last) package { import flash.display.*; public dynamic class wall_dark_last extends BitmapData { public function wall_dark_last(w:Number, h:Number){ super(w, h); } } }//package
Section 152
//wall_dark_last_trans (wall_dark_last_trans) package { import flash.display.*; public dynamic class wall_dark_last_trans extends BitmapData { public function wall_dark_last_trans(w:Number, h:Number){ super(w, h); } } }//package
Section 153
//wall_light (wall_light) package { import flash.display.*; public dynamic class wall_light extends BitmapData { public function wall_light(w:Number, h:Number){ super(w, h); } } }//package
Section 154
//wall_light_2 (wall_light_2) package { import flash.display.*; public dynamic class wall_light_2 extends BitmapData { public function wall_light_2(w:Number, h:Number){ super(w, h); } } }//package
Section 155
//wall_light_2_trans (wall_light_2_trans) package { import flash.display.*; public dynamic class wall_light_2_trans extends BitmapData { public function wall_light_2_trans(w:Number, h:Number){ super(w, h); } } }//package
Section 156
//wall_light_3 (wall_light_3) package { import flash.display.*; public dynamic class wall_light_3 extends BitmapData { public function wall_light_3(w:Number, h:Number){ super(w, h); } } }//package
Section 157
//wall_light_3_trans (wall_light_3_trans) package { import flash.display.*; public dynamic class wall_light_3_trans extends BitmapData { public function wall_light_3_trans(w:Number, h:Number){ super(w, h); } } }//package
Section 158
//wall_light_start (wall_light_start) package { import flash.display.*; public dynamic class wall_light_start extends BitmapData { public function wall_light_start(w:Number, h:Number){ super(w, h); } } }//package
Section 159
//water_anim_0 (water_anim_0) package { import flash.display.*; public dynamic class water_anim_0 extends BitmapData { public function water_anim_0(w:Number, h:Number){ super(w, h); } } }//package
Section 160
//water_ref_0 (water_ref_0) package { import flash.display.*; public dynamic class water_ref_0 extends BitmapData { public function water_ref_0(w:Number, h:Number){ super(w, h); } } }//package
Section 161
//water_ref_1 (water_ref_1) package { import flash.display.*; public dynamic class water_ref_1 extends BitmapData { public function water_ref_1(w:Number, h:Number){ super(w, h); } } }//package
Section 162
//water_ref_2 (water_ref_2) package { import flash.display.*; public dynamic class water_ref_2 extends BitmapData { public function water_ref_2(w:Number, h:Number){ super(w, h); } } }//package
Section 163
//water_ref_3 (water_ref_3) package { import flash.display.*; public dynamic class water_ref_3 extends BitmapData { public function water_ref_3(w:Number, h:Number){ super(w, h); } } }//package
Section 164
//water_ref_4 (water_ref_4) package { import flash.display.*; public dynamic class water_ref_4 extends BitmapData { public function water_ref_4(w:Number, h:Number){ super(w, h); } } }//package
Section 165
//worm (worm) package { import flash.display.*; public dynamic class worm extends BitmapData { public function worm(w:Number, h:Number){ super(w, h); } } }//package
Section 166
//worm_blood (worm_blood) package { import flash.display.*; public dynamic class worm_blood extends BitmapData { public function worm_blood(w:Number, h:Number){ super(w, h); } } }//package
Section 167
//worm_blood_died (worm_blood_died) package { import flash.display.*; public dynamic class worm_blood_died extends BitmapData { public function worm_blood_died(w:Number, h:Number){ super(w, h); } } }//package
Section 168
//worm_died (worm_died) package { import flash.display.*; public dynamic class worm_died extends BitmapData { public function worm_died(w:Number, h:Number){ super(w, h); } } }//package

Library Items

Symbol 1 Font {pixel_font}
Symbol 2 GraphicUsed by:4 126
Symbol 3 MovieClip {OOO000lll}Used by:4
Symbol 4 MovieClip {Spill.Components.Submitter}Uses:2 3
Symbol 5 BitmapUsed by:6 198
Symbol 6 GraphicUses:5Used by:9
Symbol 7 BitmapUsed by:8 198
Symbol 8 GraphicUses:7Used by:9
Symbol 9 ButtonUses:6 8Used by:10
Symbol 10 MovieClip {go_to_hell.Button}Uses:9Used by:115 223 227 243
Symbol 11 BitmapUsed by:12
Symbol 12 GraphicUses:11Used by:15
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 ButtonUses:12 14Used by:16
Symbol 16 MovieClip {go_to_hell.ButtonBig}Uses:15Used by:115 223
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:101
Symbol 19 GraphicUsed by:30
Symbol 20 GraphicUsed by:30
Symbol 21 GraphicUsed by:30
Symbol 22 GraphicUsed by:30
Symbol 23 GraphicUsed by:30
Symbol 24 GraphicUsed by:30
Symbol 25 GraphicUsed by:30
Symbol 26 GraphicUsed by:30
Symbol 27 GraphicUsed by:30
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:30
Symbol 30 MovieClipUses:19 20 21 22 23 24 25 26 27 29Used by:101
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:101
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:101
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:101
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:101
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:101
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClipUses:41Used by:101
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:101
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:101
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:101
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:49Used by:101
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:101
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:101
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:101
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:101
Symbol 59 GraphicUsed by:62
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:62 76
Symbol 62 MovieClipUses:59 61Used by:101
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:63Used by:101
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:101
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:101
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:101
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:101
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:101
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75 61Used by:101
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:101
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:101
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:101
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:101
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:101
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:101
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:101
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91Used by:101
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:101
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:101
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:101
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:101
Symbol 101 MovieClip {go_to_hell_spilgames__fla.branding_aligned_center_3}Uses:18 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100Used by:115 125 223
Symbol 102 BitmapUsed by:103 113
Symbol 103 GraphicUses:102Used by:107
Symbol 104 GraphicUsed by:105
Symbol 105 ButtonUses:104Used by:106
Symbol 106 MovieClip {go_to_hell.HotSpotURL}Uses:105Used by:107 114 243
Symbol 107 MovieClip {go_to_hell_spilgames__fla.d_logo_59}Uses:103 106Used by:115
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClipUses:109Used by:115
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:114
Symbol 113 GraphicUses:102Used by:114
Symbol 114 MovieClip {go_to_hell_spilgames__fla.credits_61}Uses:112 106 113Used by:115
Symbol 115 MovieClip {go_to_hell.GameSpilGames}Uses:10 16 101 107 110 114Used by:Timeline
Symbol 116 GraphicUsed by:117 125 248
Symbol 117 ButtonUses:116Used by:118
Symbol 118 MovieClip {go_to_hell_spilgames__fla.intro_hitarea_42}Uses:117Used by:125
Symbol 119 GraphicUsed by:125
Symbol 120 GraphicUsed by:125
Symbol 121 GraphicUsed by:125
Symbol 122 GraphicUsed by:125
Symbol 123 FontUsed by:124
Symbol 124 TextUses:123Used by:125
Symbol 125 MovieClip {go_to_hell_spilgames__fla.intro_logos_2}Uses:116 101 118 119 120 121 122 124Used by:131
Symbol 126 MovieClipUses:2Used by:131
Symbol 127 FontUsed by:128
Symbol 128 EditableTextUses:127Used by:131
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:131
Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1}Uses:125 126 128 130Used by:Timeline
Symbol 132 Bitmap {dust_0}Used by:243
Symbol 133 Bitmap {dust_1}Used by:243
Symbol 134 Bitmap {dust_2}Used by:243
Symbol 135 Bitmap {dust_3}Used by:243
Symbol 136 Bitmap {dust_4}Used by:243
Symbol 137 Bitmap {gal_float}Used by:243
Symbol 138 Bitmap {gal_idle}Used by:243
Symbol 139 Bitmap {gal_jump}Used by:243
Symbol 140 Bitmap {gal_jump_diagonal}Used by:243
Symbol 141 Bitmap {gal_pick_front}Used by:243
Symbol 142 Bitmap {gal_pick_side}Used by:243
Symbol 143 Bitmap {gal_push}Used by:243
Symbol 144 Bitmap {gal_swimming}Used by:243
Symbol 145 Bitmap {gal_walking}Used by:243
Symbol 146 Bitmap {boulder}Used by:243
Symbol 147 Bitmap {flame}Used by:243
Symbol 148 Bitmap {flame_snuff}Used by:243
Symbol 149 Bitmap {target_h}Used by:243
Symbol 150 Bitmap {target_v}Used by:243
Symbol 151 Bitmap {wall_dark}Used by:243
Symbol 152 Bitmap {wall_light}Used by:243
Symbol 153 Bitmap {water_anim_0}Used by:243
Symbol 154 Bitmap {water_ref_0}Used by:243
Symbol 155 Bitmap {water_ref_1}Used by:243
Symbol 156 Bitmap {water_ref_2}Used by:243
Symbol 157 Bitmap {water_ref_3}Used by:243
Symbol 158 Bitmap {water_ref_4}Used by:243
Symbol 159 Bitmap {bar_2}Used by:243
Symbol 160 Bitmap {bar_1}Used by:243
Symbol 161 Bitmap {bar_0}Used by:243
Symbol 162 Bitmap {heart_small}Used by:243
Symbol 163 Bitmap {meat_small}Used by:243
Symbol 164 Bitmap {oxygen}Used by:243
Symbol 165 Bitmap {frame_top}Used by:243
Symbol 166 Bitmap {gal_angel}Used by:243
Symbol 167 Bitmap {gal_resurrect}Used by:243
Symbol 168 Bitmap {boulder_blood}Used by:243
Symbol 169 Bitmap {red_cross}Used by:243
Symbol 170 Bitmap {coin_small}Used by:243
Symbol 171 Bitmap {metr}Used by:243
Symbol 172 Bitmap {coin}Used by:243
Symbol 173 Bitmap {first_aid}Used by:243
Symbol 174 Bitmap {heart}Used by:243
Symbol 175 Bitmap {meat}Used by:243
Symbol 176 Bitmap {worm}Used by:243
Symbol 177 Bitmap {boulder_slime}Used by:243
Symbol 178 Bitmap {worm_blood}Used by:243
Symbol 179 Bitmap {worm_blood_died}Used by:243
Symbol 180 Bitmap {worm_died}Used by:243
Symbol 181 Bitmap {spikes}Used by:243
Symbol 182 Bitmap {spikes_blood}Used by:243
Symbol 183 Bitmap {bat}Used by:243
Symbol 184 Bitmap {bat_died}Used by:243
Symbol 185 Bitmap {lava}Used by:243
Symbol 186 Bitmap {lava_ref_0}Used by:243
Symbol 187 Bitmap {lava_ref_1}Used by:243
Symbol 188 Bitmap {lava_ref_2}Used by:243
Symbol 189 Bitmap {lava_ref_3}Used by:243
Symbol 190 Bitmap {lava_ref_4}Used by:243
Symbol 191 Bitmap {cemetery}Used by:243
Symbol 192 Bitmap {wall_light_start}Used by:243
Symbol 193 Bitmap {wall_dark_2}Used by:243
Symbol 194 Bitmap {wall_dark_2_trans}Used by:243
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClip {go_to_hell.Curtain}Uses:195Used by:243
Symbol 197 Bitmap {logo_anim}Used by:243
Symbol 198 GraphicUses:7 5Used by:243
Symbol 199 Bitmap {wall_dark_3}Used by:243
Symbol 200 Bitmap {wall_dark_3_trans}Used by:243
Symbol 201 Bitmap {wall_light_2}Used by:243
Symbol 202 Bitmap {wall_light_2_trans}Used by:243
Symbol 203 Bitmap {wall_light_3}Used by:243
Symbol 204 Bitmap {wall_light_3_trans}Used by:243
Symbol 205 Bitmap {wall_dark_last}Used by:243
Symbol 206 Bitmap {wall_dark_last_trans}Used by:243
Symbol 207 Bitmap {hell_0}Used by:243
Symbol 208 Bitmap {hell_1}Used by:243
Symbol 209 Bitmap {hell_2}Used by:243
Symbol 210 Bitmap {hell_3}Used by:243
Symbol 211 Bitmap {hell_4}Used by:243
Symbol 212 Bitmap {devil}Used by:243
Symbol 213 Bitmap {info_air}Used by:243
Symbol 214 Bitmap {info_coins}Used by:243
Symbol 215 Bitmap {info_hungry}Used by:243
Symbol 216 Bitmap {info_hurt}Used by:243
Symbol 217 Bitmap {info_more_coins}Used by:243
Symbol 218 Bitmap {hell_inside_0}Used by:243
Symbol 219 Bitmap {hell_inside_1}Used by:243
Symbol 220 Bitmap {hell_inside_2}Used by:243
Symbol 221 Bitmap {hell_inside_3}Used by:243
Symbol 222 GraphicUsed by:223 227
Symbol 223 MovieClip {go_to_hell.GameOverSpilGames}Uses:222 10 16 101Used by:243
Symbol 224 Bitmap {game_over}Used by:243
Symbol 225 Bitmap {congratulations}Used by:243
Symbol 226 Bitmap {pause}Used by:243
Symbol 227 MovieClip {go_to_hell.Pause}Uses:222 10Used by:243
Symbol 228 Bitmap {hint_1}Used by:243
Symbol 229 Bitmap {hint_2}Used by:243
Symbol 230 Bitmap {hint_3}Used by:243
Symbol 231 Bitmap {hint_4}Used by:243
Symbol 232 Bitmap {hint_5}Used by:243
Symbol 233 Sound {rave_far}Used by:242
Symbol 234 Sound {blip}Used by:242
Symbol 235 Sound {life_lost}Used by:242
Symbol 236 Sound {smash_sound}Used by:242
Symbol 237 Sound {hit_sound}Used by:242
Symbol 238 Sound {crush_sound}Used by:242
Symbol 239 Sound {rave}Used by:242
Symbol 240 Sound {ouch}Used by:242
Symbol 241 Sound {eternal}Used by:242
Symbol 242 MovieClipUses:233 234 235 236 237 238 239 240 241Used by:243
Symbol 243 MovieClip {go_to_hell_spilgames__fla.zzz_46}Uses: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 196 197 106 10 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 223 224 225 226 227 228 229 230 231 232 242Used by:Timeline
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:246
Symbol 246 MovieClip {go_to_hell_spilgames__fla.tv_frame_57}Uses:245Used by:Timeline
Symbol 247 GraphicUsed by:248
Symbol 248 ButtonUses:247 116Used by:250
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClip {go_to_hell_spilgames__fla.vol_mute_62}Uses:248 249Used by:Timeline

Instance Names

"loader"Frame 1Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1}
"tv_frame"Frame 3Symbol 246 MovieClip {go_to_hell_spilgames__fla.tv_frame_57}
"OO00OO1l1l"Symbol 4 MovieClip {Spill.Components.Submitter} Frame 1Symbol 3 MovieClip {OOO000lll}
"__id0_"Symbol 107 MovieClip {go_to_hell_spilgames__fla.d_logo_59} Frame 1Symbol 106 MovieClip {go_to_hell.HotSpotURL}
"__id1_"Symbol 114 MovieClip {go_to_hell_spilgames__fla.credits_61} Frame 1Symbol 106 MovieClip {go_to_hell.HotSpotURL}
"__id2_"Symbol 114 MovieClip {go_to_hell_spilgames__fla.credits_61} Frame 1Symbol 106 MovieClip {go_to_hell.HotSpotURL}
"__id3_"Symbol 114 MovieClip {go_to_hell_spilgames__fla.credits_61} Frame 1Symbol 106 MovieClip {go_to_hell.HotSpotURL}
"start_button"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"show_h"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"c_switch"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"sp_link"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 16 MovieClip {go_to_hell.ButtonBig}
"s_logo"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 101 MovieClip {go_to_hell_spilgames__fla.branding_aligned_center_3}
"d_logo"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 107 MovieClip {go_to_hell_spilgames__fla.d_logo_59}
"intro_txt"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 110 MovieClip
"credits"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 114 MovieClip {go_to_hell_spilgames__fla.credits_61}
"c_cnt"Symbol 115 MovieClip {go_to_hell.GameSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"button_intro"Symbol 118 MovieClip {go_to_hell_spilgames__fla.intro_hitarea_42} Frame 1Symbol 117 Button
"logo"Symbol 125 MovieClip {go_to_hell_spilgames__fla.intro_logos_2} Frame 1Symbol 101 MovieClip {go_to_hell_spilgames__fla.branding_aligned_center_3}
"intro"Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1} Frame 1Symbol 125 MovieClip {go_to_hell_spilgames__fla.intro_logos_2}
"lbar"Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1} Frame 1Symbol 126 MovieClip
"lpc"Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1} Frame 1Symbol 128 EditableText
"lfr"Symbol 131 MovieClip {go_to_hell_spilgames__fla.loader_1} Frame 1Symbol 130 MovieClip
"cnt_button"Symbol 223 MovieClip {go_to_hell.GameOverSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"submit_button"Symbol 223 MovieClip {go_to_hell.GameOverSpilGames} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"sp_link"Symbol 223 MovieClip {go_to_hell.GameOverSpilGames} Frame 1Symbol 16 MovieClip {go_to_hell.ButtonBig}
"s_logo"Symbol 223 MovieClip {go_to_hell.GameOverSpilGames} Frame 1Symbol 101 MovieClip {go_to_hell_spilgames__fla.branding_aligned_center_3}
"cnt_button"Symbol 227 MovieClip {go_to_hell.Pause} Frame 1Symbol 10 MovieClip {go_to_hell.Button}
"button"Symbol 250 MovieClip {go_to_hell_spilgames__fla.vol_mute_62} Frame 1Symbol 248 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 131 bytes "..$1$Iz$zjqmAxudRB3HK7Rmwkn8k/."
EnableDebugger2 (64)Timeline Frame 131 bytes "..$1$br$MDInXxESW6PFOzIntqy9H1."

Labels

"game"Frame 4
"on"Symbol 250 MovieClip {go_to_hell_spilgames__fla.vol_mute_62} Frame 1
"off"Symbol 250 MovieClip {go_to_hell_spilgames__fla.vol_mute_62} Frame 5




http://swfchan.com/19/90906/info.shtml
Created: 4/11 -2022 11:13:38 Last modified: 4/11 -2022 11:13:38 Server time: 26/04 -2024 17:30:07