Section 1
//SWFBridgeAS3 (com.gskinner.utils.SWFBridgeAS3)
package com.gskinner.utils {
import flash.events.*;
import flash.net.*;
public class SWFBridgeAS3 extends EventDispatcher {
private var myID:String;
private var host:Boolean;// = true
private var _connected:Boolean;// = false
private var baseID:String;
private var clientObj:Object;
private var lc:LocalConnection;
private var extID:String;
public function SWFBridgeAS3(_arg1:String, _arg2:Object){
var p_id = _arg1;
var p_clientObj = _arg2;
super();
baseID = p_id.split(":").join("");
lc = new LocalConnection();
lc.client = this;
clientObj = p_clientObj;
try {
lc.connect((baseID + "_host"));
} catch(e:ArgumentError) {
host = false;
};
myID = (baseID + (host) ? "_host" : "_guest");
extID = (baseID + (host) ? "_guest" : "_host");
if (!host){
lc.connect(myID);
lc.send(extID, "com_gskinner_utils_SWFBridge_init");
};
}
public function com_gskinner_utils_SWFBridge_init():void{
trace(("SWFBridge (AS3) connected: " + (host) ? "host" : "client"));
if (host){
lc.send(extID, "com_gskinner_utils_SWFBridge_init");
};
_connected = true;
dispatchEvent(new Event(Event.CONNECT));
}
public function close():void{
try {
lc.close();
} catch(e) {
};
lc = null;
clientObj = null;
if (!_connected){
throw (new ArgumentError("Close failed because the object is not connected."));
};
_connected = false;
}
public function get connected():Boolean{
return (_connected);
}
public function send(_arg1:String, ... _args):void{
if (!_connected){
throw (new ArgumentError("Send failed because the object is not connected."));
};
_args.unshift(_arg1);
_args.unshift("com_gskinner_utils_SWFBridge_receive");
_args.unshift(extID);
lc.send.apply(lc, _args);
}
public function get id():String{
return (baseID);
}
public function com_gskinner_utils_SWFBridge_receive(_arg1:String, ... _args):void{
var p_method = _arg1;
var p_args = _args;
try {
clientObj[p_method].apply(clientObj, p_args);
} catch(e) {
trace(("SWFBridge ERROR: " + e));
};
}
}
}//package com.gskinner.utils
Section 2
//Animation (com.HazmiWeb.BitmapAnimation.Animation)
package com.HazmiWeb.BitmapAnimation {
import flash.display.*;
public class Animation {
public var centerX:Number;// = 0
public var centerY:Number;// = 0
public var height:int;
public var name:String;
public var width:int;
public var state:Array;
public var bitmapData:BitmapData;
public function Animation(_arg1:BitmapData, _arg2:String, _arg3:int, _arg4:int, _arg5:Number=0, _arg6:Number=0){
state = new Array();
super();
bitmapData = _arg1;
name = _arg2;
width = _arg3;
height = _arg4;
centerX = _arg5;
centerY = _arg6;
}
public function addState(_arg1:String, _arg2:String="none", _arg3:int=1):AnimationState{
state[_arg1] = new AnimationState(_arg1, _arg2, _arg3);
return (state[_arg1]);
}
public function getState(_arg1:String):AnimationState{
return (state[_arg1]);
}
}
}//package com.HazmiWeb.BitmapAnimation
Section 3
//AnimationController (com.HazmiWeb.BitmapAnimation.AnimationController)
package com.HazmiWeb.BitmapAnimation {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class AnimationController extends Bitmap {
public var collisions:Array;
private var _animation:Animation;
private var _oldRotation:Number;// = 800
private var _doublePi:Number;// = 6.28318530717959
private var _state:AnimationState;
private var _zeroAngle:Number;// = 0
private var _yOffset:Number;// = 0
public var collisionType:String;// = ""
private var _radius:Number;// = 0
public var location:Point;
private var _rotationDegreeFactor:Number;// = 0.01745329
public var rotation_in_radians:Number;// = 0
public var trackCollisions:Boolean;// = false
private var _timer:int;
public var defaultState:String;// = ""
public var collisionTargetTypes:Array;
private var _nextState:String;// = ""
private var _xOffset:Number;// = 0
public var _frame:AnimationFrame;
private var _scrollRect:Rectangle;
public var isCollisionTracker:Boolean;// = false
public function AnimationController(){
_scrollRect = new Rectangle();
location = new Point();
collisionTargetTypes = new Array();
collisions = new Array();
super();
}
override public function set x(_arg1:Number):void{
location.x = _arg1;
super.x = (location.x + _xOffset);
}
private function getRadius(_arg1:Number, _arg2:Number):Number{
return (Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2))));
}
public function get state():String{
return (_state.name);
}
override public function set y(_arg1:Number):void{
location.y = _arg1;
super.y = (location.y + _yOffset);
}
private function getAngleRadians(_arg1:Number, _arg2:Number):Number{
return (Math.atan2(_arg2, _arg1));
}
override public function set scaleX(_arg1:Number):void{
super.scaleX = _arg1;
calculateOffset();
}
override public function set scaleY(_arg1:Number):void{
super.scaleY = _arg1;
calculateOffset();
}
public function set state(_arg1:String):void{
if (_arg1 == "4"){
return;
};
_state = _animation.getState(_arg1);
_frame = (_state.getFrame(1) as AnimationFrame);
_timer = 0;
drawLocation();
}
public function getParentPos(_arg1:Point):Point{
var _local3:Number;
var _local4:Number;
var _local2:Point = _arg1.clone();
if (rotation_in_radians == 0){
_local2.x = (_local2.x + super.x);
_local2.y = (_local2.y + super.y);
} else {
_local3 = getRadius(_local2.x, _local2.y);
_local4 = getAngleRadians(_local2.x, _local2.y);
_local4 = (_local4 + rotation_in_radians);
_local2.x = (super.x + (Math.cos(_local4) * (_local3 * scaleX)));
_local2.y = (super.y + (Math.sin(_local4) * (_local3 * scaleY)));
};
return (_local2);
}
override public function get height():Number{
return (_scrollRect.height);
}
private function calculateOffset():void{
_xOffset = (-(Math.sin((rotation_in_radians + _zeroAngle))) * (_radius * scaleX));
_yOffset = (Math.cos((rotation_in_radians + _zeroAngle)) * (_radius * scaleY));
super.x = (location.x + _xOffset);
super.y = (location.y + _yOffset);
}
public function resetCollisions():void{
collisions.splice(0);
_frame.collisionCircles.resetLocations();
}
public function set scale(_arg1:Number):void{
super.scaleX = _arg1;
super.scaleY = _arg1;
calculateOffset();
}
public function updateAnimation(_arg1:int):void{
_timer = (_timer + _arg1);
while (_timer >= _frame.durationMs) {
_timer = (_timer - _frame.durationMs);
_frame = _state.getNextFrame(_frame.index);
if (_frame == null){
if (defaultState == ""){
dispatchEvent(new Event("ANIMATIONEND", false, false));
} else {
state = defaultState;
};
return;
};
drawLocation();
};
}
public function get scale():Number{
return (super.scaleX);
}
override public function get width():Number{
return (_scrollRect.width);
}
private function drawLocation():void{
_scrollRect.x = _frame.location.x;
_scrollRect.y = _frame.location.y;
this.scrollRect = _scrollRect;
}
public function initAnimation(_arg1:Animation, _arg2:String, _arg3:String=""):void{
_animation = _arg1;
defaultState = _arg3;
this.bitmapData = _animation.bitmapData;
_scrollRect.width = _arg1.width;
_scrollRect.height = _arg1.height;
setBaseOffset(_animation.centerX, _animation.centerY);
state = _arg2;
}
public function setBaseOffset(_arg1:Number, _arg2:Number):void{
_radius = getRadius(_arg1, _arg2);
_zeroAngle = getAngleRadians(-(_arg2), _arg1);
calculateOffset();
}
public function isColliding(_arg1:AnimationController):Boolean{
return (CircleCollider.areCirclesColliding(this, _arg1));
}
override public function get x():Number{
return (location.x);
}
override public function get y():Number{
return (location.y);
}
override public function set rotation(_arg1:Number):void{
if (_oldRotation != _arg1){
_oldRotation = _arg1;
super.rotation = _arg1;
rotation_in_radians = (_rotationDegreeFactor * rotation);
calculateOffset();
};
}
override public function get rotation():Number{
return (super.rotation);
}
}
}//package com.HazmiWeb.BitmapAnimation
Section 4
//AnimationData (com.HazmiWeb.BitmapAnimation.AnimationData)
package com.HazmiWeb.BitmapAnimation {
import flash.display.*;
import flash.geom.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class AnimationData {
private var _bitmapDatas:Array;
private var _animations:Array;
public function AnimationData(){
_animations = new Array();
_bitmapDatas = new Array();
super();
}
public function setBitmapToFrame(_arg1:Bitmap, _arg2:String, _arg3:String, _arg4:int=1):void{
var _local5:Animation = getAnimation(_arg2);
var _local6:Point = _local5.getState(_arg3).getFrame(_arg4).location;
var _local7:Rectangle = new Rectangle(_local6.x, _local6.y, _local5.width, _local5.height);
_arg1.bitmapData = _local5.bitmapData;
_arg1.scrollRect = _local7;
}
public function addAnimation(_arg1:XML):void{
var _local2:XML;
var _local3:BitmapData;
var _local4:XML;
var _local5:Animation;
var _local6:Point;
var _local7:Point;
var _local8:XMLList;
var _local9:XML;
var _local10:AnimationState;
var _local11:Point;
var _local12:int;
var _local13:XML;
var _local14:CollisionCircles;
var _local15:XML;
for each (_local2 in _arg1.asset) {
_local3 = addBitmapData(_local2.@bitmap);
for each (_local4 in _local2.animation) {
_local5 = new Animation(_local3, _local4.@name, _local4.@width, _local4.@height, _local4.@centerx, _local4.@centery);
_local6 = new Point(_local5.width, _local5.height);
_local7 = new Point(_local5.centerX, _local5.centerY);
_local8 = new XMLList();
_animations[_local4.@name] = _local5;
for each (_local9 in _local4.state) {
_local10 = _local5.addState(_local9.@name, _local9.@loop, _local9.@loopframe);
_local11 = new Point();
_local12 = 80;
for each (_local13 in _local9.frame) {
_local11.x = filterEmpty(_local13.@x, _local11.x);
_local11.y = filterEmpty(_local13.@y, _local11.y);
_local12 = filterEmpty(_local13.@delay, _local12);
if (_local13.collisionCircles.length() > 0){
_local8 = _local13.collisionCircles;
};
_local14 = new CollisionCircles(_local7);
for each (_local15 in _local8.circle) {
_local14.addCircle(new Circle(new Point(_local15.@x, _local15.@y), _local15.@radius, _local15.@name));
};
_local10.addFrame(_local11, _local12, _local14);
};
};
};
};
}
private function filterEmpty(_arg1:String, _arg2:int):int{
if (_arg1 == ""){
return (_arg2);
};
return (int(_arg1));
}
public function getAnimation(_arg1:String):Animation{
return ((_animations[_arg1] as Animation));
}
private function addBitmapData(_arg1:String):BitmapData{
if (_bitmapDatas[_arg1] == null){
_bitmapDatas[_arg1] = (Assets.getBitmapDataAsset(_arg1) as BitmapData);
} else {
trace(("bitmap already exists: " + _arg1));
};
return (_bitmapDatas[_arg1]);
}
public function dispose():void{
_animations = null;
_bitmapDatas = null;
delete ??getglobalscope
[this];
}
}
}//package com.HazmiWeb.BitmapAnimation
Section 5
//AnimationFrame (com.HazmiWeb.BitmapAnimation.AnimationFrame)
package com.HazmiWeb.BitmapAnimation {
import flash.geom.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class AnimationFrame {
public var index:int;
public var location:Point;
public var collisionCircles:CollisionCircles;
public var durationMs:int;// = 0
public function AnimationFrame(_arg1:Point, _arg2:int, _arg3:int, _arg4:CollisionCircles=null){
location = new Point();
super();
location = _arg1;
durationMs = _arg2;
index = _arg3;
collisionCircles = _arg4;
}
}
}//package com.HazmiWeb.BitmapAnimation
Section 6
//AnimationState (com.HazmiWeb.BitmapAnimation.AnimationState)
package com.HazmiWeb.BitmapAnimation {
import flash.geom.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class AnimationState {
public var frames:Array;
public var loopFrame:int;// = 1
public var name:String;// = ""
public var frameCounter:int;// = 0
public var loopType:String;// = ""
public function AnimationState(_arg1:String, _arg2:String, _arg3:int){
frames = new Array();
super();
name = _arg1;
loopType = _arg2;
loopFrame = _arg3;
}
public function getNextFrame(_arg1:int):AnimationFrame{
if (loopType == "static"){
return (frames[_arg1]);
};
if (_arg1 < frameCounter){
return (frames[(_arg1 + 1)]);
};
if (loopType == "none"){
return (null);
};
if (loopType == "normal"){
return (frames[loopFrame]);
};
return (null);
}
public function getLocationForFrame(_arg1:int):Point{
return (frames[_arg1].location);
}
public function addFrame(_arg1:Point, _arg2:int, _arg3:CollisionCircles=null):void{
frameCounter = (frameCounter + 1);
var _local4:AnimationFrame = new AnimationFrame(_arg1.clone(), _arg2, frameCounter, _arg3);
frames[frameCounter] = _local4;
}
public function getTimeForFrame(_arg1:int):int{
return (frames[_arg1].durationMs);
}
public function getFrame(_arg1:int):AnimationFrame{
return (frames[_arg1]);
}
}
}//package com.HazmiWeb.BitmapAnimation
Section 7
//Circle (com.HazmiWeb.Collision.CircleCollision.Circle)
package com.HazmiWeb.Collision.CircleCollision {
import flash.geom.*;
public class Circle {
public var name:String;// = ""
public var radius:Number;// = 0
public var locationBuffered:Boolean;// = false
public var locationBuffer:Point;
public var id:String;// = ""
public var location:Point;
public function Circle(_arg1:Point=null, _arg2:Number=0, _arg3:String=""){
location = new Point();
locationBuffer = new Point();
super();
if (_arg1 != null){
location = _arg1;
};
radius = _arg2;
name = _arg3;
id = CircleId.calculateNextID();
}
public function clone():Circle{
var _local1:Circle = new Circle(location.clone(), radius, name);
return (_local1);
}
}
}//package com.HazmiWeb.Collision.CircleCollision
Section 8
//CircleCollider (com.HazmiWeb.Collision.CircleCollision.CircleCollider)
package com.HazmiWeb.Collision.CircleCollision {
import flash.geom.*;
import com.HazmiWeb.BitmapAnimation.*;
public class CircleCollider {
public static function testCollision(_arg1:AnimationController, _arg2:AnimationController):void{
var _local5:Circle;
var _local6:Circle;
var _local3:Number = (_arg1._frame.collisionCircles.enclosingCircleRotationPoint.radius + _arg2._frame.collisionCircles.enclosingCircleRotationPoint.radius);
var _local4:Number = Point.distance(_arg1.location, _arg2.location);
if (_local4 <= _local3){
for each (_local5 in _arg1._frame.collisionCircles.circles) {
for each (_local6 in _arg2._frame.collisionCircles.circles) {
_local4 = Point.distance(_arg1.getParentPos(_local5.location), _arg2.getParentPos(_local6.location));
if (_local4 < (_local5.radius + _local6.radius)){
_arg1.collisions.push(new Collision(_arg2, _local6.name, _local5.name));
_arg2.collisions.push(new Collision(_arg1, _local5.name, _local6.name));
return;
};
};
};
};
}
public static function areCirclesColliding(_arg1:AnimationController, _arg2:AnimationController):Boolean{
var _local5:Circle;
var _local6:Circle;
var _local3:Number = (_arg1._frame.collisionCircles.enclosingCircleRotationPoint.radius + _arg2._frame.collisionCircles.enclosingCircleRotationPoint.radius);
var _local4:Number = Point.distance(_arg1.location, _arg2.location);
if (_local4 > _local3){
return (false);
};
for each (_local5 in _arg1._frame.collisionCircles.circles) {
for each (_local6 in _arg2._frame.collisionCircles.circles) {
_local4 = Point.distance(_arg1.getParentPos(_local5.location), _arg2.getParentPos(_local6.location));
if (_local4 < (_local5.radius + _local6.radius)){
trace(("hit: " + _local6.name));
return (true);
};
};
};
return (false);
}
}
}//package com.HazmiWeb.Collision.CircleCollision
Section 9
//CircleId (com.HazmiWeb.Collision.CircleCollision.CircleId)
package com.HazmiWeb.Collision.CircleCollision {
public class CircleId {
private static var m_id:int = 1;
public static function calculateNextID():String{
return (String(m_id++));
}
}
}//package com.HazmiWeb.Collision.CircleCollision
Section 10
//Collision (com.HazmiWeb.Collision.CircleCollision.Collision)
package com.HazmiWeb.Collision.CircleCollision {
import com.HazmiWeb.BitmapAnimation.*;
public class Collision {
public var myCircle:String;
public var collideWithCircle:String;
public var collidedWith:AnimationController;
public function Collision(_arg1:AnimationController, _arg2:String, _arg3:String){
collidedWith = _arg1;
collideWithCircle = _arg2;
myCircle = _arg3;
}
}
}//package com.HazmiWeb.Collision.CircleCollision
Section 11
//CollisionCircles (com.HazmiWeb.Collision.CircleCollision.CollisionCircles)
package com.HazmiWeb.Collision.CircleCollision {
import flash.geom.*;
public class CollisionCircles {
public var enclosingCircleRotationPoint:Circle;
public var circles:Array;
public function CollisionCircles(_arg1:Point):void{
circles = new Array();
enclosingCircleRotationPoint = new Circle();
super();
enclosingCircleRotationPoint.location = _arg1;
}
public function addCircle(_arg1:Circle):void{
var _local2:Circle = _arg1.clone();
circles.push(_local2);
calculateEnclosingCircleRotationPoint();
}
private function calculateEnclosingCircleRotationPoint():void{
var _local2:Circle;
var _local3:Number;
var _local1:Number = 0;
for each (_local2 in circles) {
_local3 = Point.distance(enclosingCircleRotationPoint.location, _local2.location);
_local3 = (_local3 + _local2.radius);
if (_local3 > _local1){
_local1 = _local3;
};
};
enclosingCircleRotationPoint.radius = _local1;
}
public function resetLocations():void{
var _local1:Circle;
for each (_local1 in circles) {
_local1.locationBuffered = false;
};
}
}
}//package com.HazmiWeb.Collision.CircleCollision
Section 12
//CollisionLogic (com.HazmiWeb.Collision.CollisionLogic)
package com.HazmiWeb.Collision {
import com.HazmiWeb.BitmapAnimation.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class CollisionLogic {
private var _targetsToRemove:Array;
private var _targetsToAdd:Array;
public var _targets:Array;
private var _trackersToAdd:Array;
private var _trackersToRemove:Array;
public var _trackers:Array;
public function CollisionLogic(){
_trackers = new Array();
_targets = new Array();
_trackersToAdd = new Array();
_targetsToAdd = new Array();
_trackersToRemove = new Array();
_targetsToRemove = new Array();
super();
}
public function addTarget(_arg1:AnimationController):void{
_targetsToAdd.push(_arg1);
}
private function processToAddAndRemove():void{
var _local1:AnimationController;
var _local2:int;
for each (_local1 in _trackersToAdd) {
_trackers.push(_local1);
};
_trackersToAdd.splice(0);
for each (_local1 in _targetsToAdd) {
_targets.push(_local1);
};
_targetsToAdd.splice(0);
for each (_local1 in _targetsToRemove) {
_local2 = _targets.indexOf(_local1);
if (_local2 >= 0){
_targets.splice(_local2, 1);
};
};
_targetsToRemove.splice(0);
for each (_local1 in _trackersToRemove) {
_local2 = _trackers.indexOf(_local1);
if (_local2 >= 0){
_trackers.splice(_local2, 1);
};
};
_trackersToRemove.splice(0);
}
public function removeTarget(_arg1:AnimationController):void{
_targetsToRemove.push(_arg1);
}
public function runTests():void{
var _local1:AnimationController;
var _local2:AnimationController;
processToAddAndRemove();
for each (_local1 in _trackers) {
if (_local1.trackCollisions){
_local1.resetCollisions();
};
};
for each (_local1 in _targets) {
if (_local1.trackCollisions){
_local1.resetCollisions();
};
};
for each (_local1 in _trackers) {
if (((_local1.trackCollisions) && (_local1.isCollisionTracker))){
for each (_local2 in _targets) {
if (((_local2.trackCollisions) && (!((_local2 == _local1))))){
if (_local1.collisionTargetTypes.indexOf(_local2.collisionType) != -1){
CircleCollider.testCollision(_local1, _local2);
};
};
};
};
};
}
public function addTracker(_arg1:AnimationController):void{
_trackersToAdd.push(_arg1);
}
public function removeTracker(_arg1:AnimationController):void{
_trackersToRemove.push(_arg1);
}
public function dispose():void{
processToAddAndRemove();
_trackers = null;
_targets = null;
_trackersToAdd = null;
_targetsToAdd = null;
_trackersToRemove = null;
_targetsToRemove = null;
}
}
}//package com.HazmiWeb.Collision
Section 13
//TopScoresDevilish (com.HazmiWeb.TopScores.TopScoresDevilish)
package com.HazmiWeb.TopScores {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class TopScoresDevilish extends EventDispatcher {
public var lastestTop:XML;
private var _demonio:String;// = "http://juegos.navidad.es/pasarela/v1.php"
private var _codigo:String;// = "1"
private function onIOError(_arg1:IOErrorEvent):void{
dispatchEvent(new Event("ERROR"));
}
private function encrypt(_arg1:String, _arg2:String):String{
var _local4:Boolean;
var _local5:int;
var _local6:Number;
var _local3 = "";
if (_odd(_arg1.charCodeAt(0))){
_local4 = true;
_local5 = 0;
} else {
_local4 = false;
_local5 = (_arg1.length - 1);
};
var _local7:int;
while (_local7 < _arg2.length) {
_local6 = _arg1.charCodeAt(_local5);
_local3 = (_local3 + String.fromCharCode((_arg2.charCodeAt(_local7) + _local6)));
if (_local4){
_local5++;
if (_local5 == _arg1.length){
_local5 = 0;
};
} else {
--_local5;
if (_local5 == -1){
_local5 = (_arg1.length - 1);
};
};
_local7++;
};
return (escapeMultiByte(_local3));
}
private function decrypt(_arg1:String, _arg2:String):String{
var _local4:Boolean;
var _local5:int;
var _local6:Number;
var _local3 = "";
_arg2 = unescapeMultiByte(_arg2);
if (_odd(_arg1.charCodeAt(0))){
_local4 = true;
_local5 = 0;
} else {
_local4 = false;
_local5 = (_arg1.length - 1);
};
var _local7:int;
while (_local7 < _arg2.length) {
_local6 = _arg1.charCodeAt(_local5);
_local3 = (_local3 + String.fromCharCode((_arg2.charCodeAt(_local7) - _local6)));
if (_local4){
_local5++;
if (_local5 == _arg1.length){
_local5 = 0;
};
} else {
--_local5;
if (_local5 == -1){
_local5 = (_arg1.length - 1);
};
};
_local7++;
};
return (_local3);
}
private function onSendTop(_arg1:Event):void{
dispatchEvent(new Event("TOPSENT"));
}
public function addScore(_arg1:String, _arg2:int):void{
var _local3 = (((((("<settop codigo =\"" + _codigo) + "\" nick=\"") + _arg1) + "\" puntos=\"") + String(_arg2)) + "\"/>");
_local3 = encrypt("65406a870d68da406f84f06f3f3f2", _local3);
_local3 = (("<devilish v=\"" + _local3) + "\" />");
sendData(_demonio, _local3, onSendTop);
}
private function _odd(_arg1:int):Boolean{
if ((_arg1 % 2) == 0){
return (false);
};
return (true);
}
private function sendData(_arg1:String, _arg2:String, _arg3:Function):void{
var _local4:URLRequest = new URLRequest(_arg1);
var _local5:URLLoader = new URLLoader();
_local5.dataFormat = URLLoaderDataFormat.TEXT;
_local4.data = _arg2;
_local4.method = URLRequestMethod.POST;
_local5.addEventListener(Event.COMPLETE, _arg3, false, 0, true);
_local5.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
_local5.load(_local4);
}
private function onGetTop(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
lastestTop = new XML(_local2.data);
dispatchEvent(new Event("TOPLOADED"));
}
public function getTop():void{
var _local1 = (("<gettop codigo =\"" + _codigo) + "\" order=\"5\" dirorder =\"1\" maxreg =\"10\" />");
_local1 = encrypt("65406a870d68da406f84f06f3f3f2", _local1);
_local1 = (("<devilish v=\"" + _local1) + "\" />");
sendData(_demonio, _local1, onGetTop);
}
}
}//package com.HazmiWeb.TopScores
Section 14
//SoundManager (com.reintroducing.sound.SoundManager)
package com.reintroducing.sound {
import flash.utils.*;
import flash.media.*;
import flash.net.*;
public class SoundManager {
private var _sounds:Array;
private var _soundsDict:Dictionary;
private static var _instance:SoundManager;
private static var _allowInstance:Boolean;
public function SoundManager(){
this._soundsDict = new Dictionary(true);
this._sounds = new Array();
if (!SoundManager._allowInstance){
throw (new Error("Error: Use SoundManager.getInstance() instead of the new keyword."));
};
}
public function pauseSound(_arg1:String):void{
var _local2:Object = this._soundsDict[_arg1];
_local2.paused = true;
_local2.position = _local2.channel.position;
_local2.channel.stop();
}
public function get sounds():Array{
return (this._sounds);
}
public function setSoundVolume(_arg1:String, _arg2:Number):void{
var _local3:Object = this._soundsDict[_arg1];
var _local4:SoundTransform = _local3.channel.soundTransform;
_local4.volume = _arg2;
_local3.channel.soundTransform = _local4;
}
public function getSoundDuration(_arg1:String):Number{
return (this._soundsDict[_arg1].sound.length);
}
public function toString():String{
return (getQualifiedClassName(this));
}
public function getSoundVolume(_arg1:String):Number{
return (this._soundsDict[_arg1].channel.soundTransform.volume);
}
public function addLibrarySound(_arg1, _arg2:String):Boolean{
var _local3:int;
while (_local3 < this._sounds.length) {
if (this._sounds[_local3].name == _arg2){
return (false);
};
_local3++;
};
var _local4:Object = new Object();
var _local5:Sound = new (_arg1);
_local4.name = _arg2;
_local4.sound = _local5;
_local4.channel = new SoundChannel();
_local4.position = 0;
_local4.paused = true;
_local4.volume = 1;
_local4.startTime = 0;
_local4.loops = 0;
_local4.pausedByAll = false;
this._soundsDict[_arg2] = _local4;
this._sounds.push(_local4);
return (true);
}
public function isSoundPaused(_arg1:String):Boolean{
return (this._soundsDict[_arg1].paused);
}
public function removeAllSounds():void{
var _local1:int;
while (_local1 < this._sounds.length) {
this._sounds[_local1] = null;
_local1++;
};
this._sounds = new Array();
this._soundsDict = new Dictionary(true);
}
public function getSoundPosition(_arg1:String):Number{
return (this._soundsDict[_arg1].channel.position);
}
public function stopAllSounds(_arg1:Boolean=true):void{
var _local3:String;
var _local2:int;
while (_local2 < this._sounds.length) {
_local3 = this._sounds[_local2].name;
if (_arg1){
if (!this._soundsDict[_local3].paused){
this._soundsDict[_local3].pausedByAll = true;
this.stopSound(_local3);
};
} else {
this.stopSound(_local3);
};
_local2++;
};
}
public function removeSound(_arg1:String):void{
var _local2:int;
while (_local2 < this._sounds.length) {
if (this._sounds[_local2].name == _arg1){
this._sounds[_local2] = null;
this._sounds.splice(_local2, 1);
};
_local2++;
};
delete this._soundsDict[_arg1];
}
public function muteAllSounds():void{
var _local2:String;
var _local1:int;
while (_local1 < this._sounds.length) {
_local2 = this._sounds[_local1].name;
this.setSoundVolume(_local2, 0);
_local1++;
};
}
public function stopSound(_arg1:String):void{
var _local2:Object = this._soundsDict[_arg1];
_local2.paused = true;
_local2.channel.stop();
_local2.position = _local2.channel.position;
}
public function pauseAllSounds(_arg1:Boolean=true):void{
var _local3:String;
var _local2:int;
while (_local2 < this._sounds.length) {
_local3 = this._sounds[_local2].name;
if (_arg1){
if (!this._soundsDict[_local3].paused){
this._soundsDict[_local3].pausedByAll = true;
this.pauseSound(_local3);
};
} else {
this.pauseSound(_local3);
};
_local2++;
};
}
public function playAllSounds(_arg1:Boolean=false):void{
var _local3:String;
var _local2:int;
while (_local2 < this._sounds.length) {
_local3 = this._sounds[_local2].name;
if (_arg1){
if (this._soundsDict[_local3].pausedByAll){
this._soundsDict[_local3].pausedByAll = false;
this.playSound(_local3);
};
} else {
this.playSound(_local3);
};
_local2++;
};
}
public function addExternalSound(_arg1:String, _arg2:String, _arg3:Number=1000, _arg4:Boolean=false):Boolean{
var _local5:int;
while (_local5 < this._sounds.length) {
if (this._sounds[_local5].name == _arg2){
return (false);
};
_local5++;
};
var _local6:Object = new Object();
var _local7:Sound = new Sound(new URLRequest(_arg1), new SoundLoaderContext(_arg3, _arg4));
_local6.name = _arg2;
_local6.sound = _local7;
_local6.channel = new SoundChannel();
_local6.position = 0;
_local6.paused = true;
_local6.volume = 1;
_local6.startTime = 0;
_local6.loops = 0;
_local6.pausedByAll = false;
this._soundsDict[_arg2] = _local6;
this._sounds.push(_local6);
return (true);
}
public function isSoundPausedByAll(_arg1:String):Boolean{
return (this._soundsDict[_arg1].pausedByAll);
}
public function getSoundObject(_arg1:String):Sound{
return (this._soundsDict[_arg1].sound);
}
public function unmuteAllSounds():void{
var _local2:String;
var _local3:Object;
var _local4:SoundTransform;
var _local1:int;
while (_local1 < this._sounds.length) {
_local2 = this._sounds[_local1].name;
_local3 = this._soundsDict[_local2];
_local4 = _local3.channel.soundTransform;
_local4.volume = _local3.volume;
_local3.channel.soundTransform = _local4;
_local1++;
};
}
public function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0):void{
var _local5:Object = this._soundsDict[_arg1];
_local5.volume = _arg2;
_local5.startTime = _arg3;
_local5.loops = _arg4;
if (_local5.paused){
_local5.channel = _local5.sound.play(_local5.position, _local5.loops, new SoundTransform(_local5.volume));
} else {
_local5.channel = _local5.sound.play(_arg3, _local5.loops, new SoundTransform(_local5.volume));
};
_local5.paused = false;
}
public static function getInstance():SoundManager{
if (SoundManager._instance == null){
SoundManager._allowInstance = true;
SoundManager._instance = new (SoundManager);
SoundManager._allowInstance = false;
};
return (SoundManager._instance);
}
}
}//package com.reintroducing.sound
Section 15
//KeyObject (com.senocular.utils.KeyObject)
package com.senocular.utils {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.ui.*;
public dynamic class KeyObject extends Proxy {
private static var keysDown:Object;
private static var stage:Stage;
public function KeyObject(_arg1:Stage){
construct(_arg1);
}
private function keyReleased(_arg1:KeyboardEvent):void{
delete keysDown[_arg1.keyCode];
}
public function deconstruct():void{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
keysDown = new Object();
KeyObject.stage = null;
}
public function construct(_arg1:Stage):void{
KeyObject.stage = _arg1;
keysDown = new Object();
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
private function keyPressed(_arg1:KeyboardEvent):void{
keysDown[_arg1.keyCode] = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (((_arg1 in Keyboard)) ? Keyboard[_arg1] : -1);
}
public function isDown(_arg1:uint):Boolean{
return (Boolean((_arg1 in keysDown)));
}
}
}//package com.senocular.utils
Section 16
//Ticker (com.urbansquall.metronome.Ticker)
package com.urbansquall.metronome {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Ticker extends EventDispatcher {
private var m_accruedTime:Number;
private var m_running:Boolean;
private var m_shape:Shape;
private var m_delay:Number;
private var m_timeOfLastUpdate:Number;
public function Ticker(_arg1:Number=33){
m_running = false;
m_delay = _arg1;
m_shape = new Shape();
}
public function get delay():int{
return (m_delay);
}
public function stop():void{
m_shape.removeEventListener(Event.ENTER_FRAME, tick);
m_running = false;
}
private function calculateDeltaTime():Number{
var _local1:Number = getTimer();
var _local2:Number = (_local1 - m_timeOfLastUpdate);
m_timeOfLastUpdate = _local1;
return (_local2);
}
public function start():void{
m_running = true;
m_timeOfLastUpdate = getTimer();
m_accruedTime = 0;
m_shape.addEventListener(Event.ENTER_FRAME, tick, false, 0, true);
}
private function tick(_arg1:Event):void{
var _local2:Number = calculateDeltaTime();
if (!m_running){
return;
};
m_accruedTime = (m_accruedTime + _local2);
while (m_accruedTime >= m_delay) {
m_accruedTime = (m_accruedTime - m_delay);
dispatchEvent(new TickerEvent(m_delay));
};
}
public function get running():Boolean{
return (m_running);
}
}
}//package com.urbansquall.metronome
Section 17
//TickerEvent (com.urbansquall.metronome.TickerEvent)
package com.urbansquall.metronome {
import flash.events.*;
public class TickerEvent extends Event {
private var m_interval:Number;
public static const TICK:String = "tick";
public function TickerEvent(_arg1:Number){
super(TICK, false, false);
m_interval = _arg1;
}
public function get interval():Number{
return (m_interval);
}
}
}//package com.urbansquall.metronome
Section 18
//Preloader (com.urbansquall.preloader.Preloader)
package com.urbansquall.preloader {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Preloader extends MovieClip {
private var m_firstFrame:Boolean;// = true
public function Preloader(){
addEventListener(Event.ENTER_FRAME, checkFrame);
}
protected function endLoading():void{
}
protected function updateLoading(_arg1:Number):void{
}
private function checkFrame(_arg1:Event):void{
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, checkFrame);
startup();
return;
};
if (m_firstFrame){
beginLoading();
m_firstFrame = false;
return;
};
var _local2:Number = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal);
updateLoading(_local2);
}
protected function get mainClassName():String{
return ("Main");
}
protected function beginLoading():void{
}
private function startup():void{
stop();
if (!m_firstFrame){
endLoading();
};
var _local1:Class = (getDefinitionByName(mainClassName) as Class);
if (_local1 == null){
throw (new Error((("Preloader:startup. There was no class matching [" + mainClassName) + "]. You may need to override Preloader::mainClassName")));
};
var _local2:DisplayObject = (new (_local1) as DisplayObject);
if (_local2 == null){
throw (new Error((("Preloader::startup. [" + mainClassName) + "] needs to inherit from Sprite or MovieClip.")));
};
addChildAt(_local2, 0);
}
}
}//package com.urbansquall.preloader
Section 19
//EntityContainer (com.urbansquall.serenity.EntityContainer)
package com.urbansquall.serenity {
import flash.utils.*;
public class EntityContainer {
private var m_entitiesToBeAdded:Array;
private var m_entitiesToBeRemoved:Array;
private var m_entities:Array;
private var m_idMap:Dictionary;
public function EntityContainer(){
m_entities = new Array();
m_idMap = new Dictionary();
m_entitiesToBeAdded = new Array();
m_entitiesToBeRemoved = new Array();
}
private function addNewEntities():void{
var _local3:IEntity;
var _local1:int = m_entitiesToBeAdded.length;
var _local2:int = (_local1 - 1);
while (_local2 >= 0) {
_local3 = m_entitiesToBeAdded[_local2];
m_idMap[_local3.id] = _local3;
m_entities.push(_local3);
_local2--;
};
m_entitiesToBeAdded.splice(0);
}
public function addEntity(_arg1:IEntity):void{
var _local4:IEntity;
if (m_entitiesToBeAdded.indexOf(_arg1) != -1){
throw (new Error("EntityContainer:addEntity. This entity is already queued for addition."));
};
if (m_idMap[_arg1.id] != null){
throw (new Error("EntityContainer:addEntity. There is an entity with this id already. Ensure ids are unique."));
};
var _local2:int = m_entitiesToBeAdded.length;
var _local3:int = (_local2 - 1);
while (_local3 >= 0) {
_local4 = m_entitiesToBeAdded[_local3];
if (_local4.id == _arg1.id){
throw (new Error("EntityContainer:addEntity. There is an entity with this id already. Ensure ids are unique."));
};
_local3--;
};
m_entitiesToBeAdded.push(_arg1);
}
public function removeEntity(_arg1:IEntity):void{
if (m_entitiesToBeRemoved.indexOf(_arg1) != -1){
throw (new Error("EntityContainer:removeEntity. This entity is already queued for removal."));
};
if (m_idMap[_arg1.id] == null){
throw (new Error("EntityContainer:removeEntity. There was no entity with a matching id."));
};
m_entitiesToBeRemoved.push(_arg1);
}
private function processAddAndRemoves():void{
addNewEntities();
removeOldEntities();
}
private function removeOldEntities():void{
var _local3:IEntity;
var _local4:int;
var _local1:int = m_entitiesToBeRemoved.length;
var _local2:int = (_local1 - 1);
while (_local2 >= 0) {
_local3 = m_entitiesToBeRemoved[_local2];
_local4 = m_entities.indexOf(_local3);
if (_local4 >= 0){
m_entities.splice(_local4, 1);
delete m_idMap[_local3.id];
};
_local2--;
};
m_entitiesToBeRemoved.splice(0);
}
public function getEntityAt(_arg1:int):IEntity{
return (m_entities[_arg1]);
}
public function get numEntities():int{
return (m_entities.length);
}
public function tick(_arg1:Number):void{
var _local4:IEntity;
var _local2:int = m_entities.length;
var _local3:int = (_local2 - 1);
while (_local3 >= 0) {
_local4 = m_entities[_local3];
_local4.tick(_arg1);
_local3--;
};
processAddAndRemoves();
}
public function lookupEntity(_arg1:String):IEntity{
return (m_idMap[_arg1]);
}
public function dispose():void{
var _local3:IEntity;
if (m_entities == null){
return;
};
processAddAndRemoves();
var _local1:int = m_entities.length;
var _local2:int = (_local1 - 1);
while (_local2 >= 0) {
_local3 = m_entities[_local2];
delete m_idMap[_local3.id];
_local3.dispose();
_local2--;
};
m_entities.splice(0);
m_entities = null;
m_entitiesToBeAdded = null;
m_entitiesToBeRemoved = null;
m_idMap = null;
}
}
}//package com.urbansquall.serenity
Section 20
//IEntity (com.urbansquall.serenity.IEntity)
package com.urbansquall.serenity {
public interface IEntity {
function get id():String;
function tick(_arg1:Number):void;
function dispose():void;
}
}//package com.urbansquall.serenity
Section 21
//SimpleIDCounter (com.urbansquall.serenity.SimpleIDCounter)
package com.urbansquall.serenity {
public class SimpleIDCounter {
private static var m_id:int = 1;
public static function calculateNextID():String{
return (String(m_id++));
}
}
}//package com.urbansquall.serenity
Section 22
//FPS (com.urbansquall.utils.FPS)
package com.urbansquall.utils {
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public class FPS extends TextField {
protected var timeOfLastUpdate:Number;
protected var timer:Timer;
protected var frames:int;
public function FPS(){
defaultTextFormat = new TextFormat("Verdana", 9, 0);
timer = new Timer(1000);
this.autoSize = TextFieldAutoSize.CENTER;
this.text = "FPS";
this.backgroundColor = 0xFFFFFF;
this.background = true;
timer.addEventListener(TimerEvent.TIMER, timerHandler);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
timer.start();
timeOfLastUpdate = getTimer();
}
private function timerHandler(_arg1:TimerEvent):void{
var _local2:Number = calculateDeltaTime();
text = String(Math.round((frames / (_local2 / 1000))));
frames = 0;
}
private function enterFrameHandler(_arg1:Event):void{
frames++;
}
private function calculateDeltaTime():Number{
var _local1:Number = getTimer();
var _local2:Number = (_local1 - timeOfLastUpdate);
timeOfLastUpdate = _local1;
return (_local2);
}
public function reset():void{
frames = 0;
text = "FPS";
timeOfLastUpdate = getTimer();
}
}
}//package com.urbansquall.utils
Section 23
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.0.0.0";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 24
//ByteArrayAsset (mx.core.ByteArrayAsset)
package mx.core {
import flash.utils.*;
public class ByteArrayAsset extends ByteArray implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 25
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.left = _arg1;
this.top = _arg2;
this.right = _arg3;
this.bottom = _arg4;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 26
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 27
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexMovieClip(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 28
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 29
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 30
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 31
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 32
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 33
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 34
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject {
protected var initialHeight:Number;// = 0
private var loader:Loader;// = null
private var initialized:Boolean;// = false
protected var initialWidth:Number;// = 0
private var requestedHeight:Number;
private var requestedWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipLoaderAsset(){
var _local1:LoaderContext = new LoaderContext();
_local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
if (("allowLoadBytesCodeExecution" in _local1)){
_local1["allowLoadBytesCodeExecution"] = true;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.loadBytes(movieClipData, _local1);
addChild(loader);
}
override public function get width():Number{
if (!initialized){
return (initialWidth);
};
return (super.width);
}
override public function set width(_arg1:Number):void{
if (!initialized){
requestedWidth = _arg1;
} else {
loader.width = _arg1;
};
}
override public function get measuredHeight():Number{
return (initialHeight);
}
private function completeHandler(_arg1:Event):void{
initialized = true;
initialWidth = loader.width;
initialHeight = loader.height;
if (!isNaN(requestedWidth)){
loader.width = requestedWidth;
};
if (!isNaN(requestedHeight)){
loader.height = requestedHeight;
};
dispatchEvent(_arg1);
}
override public function set height(_arg1:Number):void{
if (!initialized){
requestedHeight = _arg1;
} else {
loader.height = _arg1;
};
}
override public function get measuredWidth():Number{
return (initialWidth);
}
override public function get height():Number{
if (!initialized){
return (initialHeight);
};
return (super.height);
}
public function get movieClipData():ByteArray{
return (null);
}
}
}//package mx.core
Section 35
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 36
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
}
}//package mx.core
Section 37
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.0.0.0";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local4:String;
var _local5:Array;
var _local3:DisplayObject = _arg1;
while (_local3 != null) {
if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){
break;
};
_local4 = _local3.name;
if ((_local3 is IRepeaterClient)){
_local5 = IRepeaterClient(_local3).instanceIndices;
if (_local5){
_local4 = (_local4 + (("[" + _local5.join("][")) + "]"));
};
};
_local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2);
_local3 = _local3.parent;
};
return (_local2);
}
public static function createUniqueName(_arg1:Object):String{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 38
//Assets (Assets)
package {
import flash.display.*;
import flash.utils.*;
public class Assets {
protected static const santa_XML:Class = Assets_santa_XML;
protected static const translation_XML:Class = Assets_translation_XML;
public static const GAME_FONT:String = "Assets_GAME_FONT";
public static var rey3_Bitmap:Class = Assets_rey3_Bitmap;
public static var paquete3_Bitmap:Class = Assets_paquete3_Bitmap;
public static var exhaust_Bitmap:Class = Assets_exhaust_Bitmap;
public static var casa3_Bitmap:Class = Assets_casa3_Bitmap;
public static var interface_Bitmap:Class = Assets_interface_Bitmap;
public static var booom_Sound:Class = Assets_booom_Sound;
public static var paquete2_Bitmap:Class = Assets_paquete2_Bitmap;
public static var pling2_Sound:Class = Assets_pling2_Sound;
public static var rey2_Bitmap:Class = Assets_rey2_Bitmap;
public static var casa2_Bitmap:Class = Assets_casa2_Bitmap;
public static var estrella_fondo_Bitmap:Class = Assets_estrella_fondo_Bitmap;
public static var suelo_Bitmap:Class = Assets_suelo_Bitmap;
public static var pling1_Sound:Class = Assets_pling1_Sound;
public static var gamePlay_Sound:Class = Assets_gamePlay_Sound;
public static var paquete1_Bitmap:Class = Assets_paquete1_Bitmap;
public static var arbol_Bitmap:Class = Assets_arbol_Bitmap;
public static var barra_energia_Bitmap:Class = Assets_barra_energia_Bitmap;
public static var rey1_Bitmap:Class = Assets_rey1_Bitmap;
public static var gradient_Bitmap:Class = Assets_gradient_Bitmap;
public static var intro_swf:Class = Assets_intro_swf;
public static var montanas_scroll_Bitmap:Class = Assets_montanas_scroll_Bitmap;
public static var montanas2_scroll_Bitmap:Class = Assets_montanas2_scroll_Bitmap;
public static var casa1_Bitmap:Class = Assets_casa1_Bitmap;
public static var camellos_Bitmap:Class = Assets_camellos_Bitmap;
public static var paquete4_Bitmap:Class = Assets_paquete4_Bitmap;
public static var star_Bitmap:Class = Assets_star_Bitmap;
public static var rey0_Bitmap:Class = Assets_rey0_Bitmap;
public static var estrella_Bitmap:Class = Assets_estrella_Bitmap;
public static var casa4_Bitmap:Class = Assets_casa4_Bitmap;
public static var flecha_Bitmap:Class = Assets_flecha_Bitmap;
public static var needle_Bitmap:Class = Assets_needle_Bitmap;
public static function getXMLAsset(_arg1:String, _arg2:Boolean=true):XML{
var xml:XML;
var name = _arg1;
var ignoreWhiteSpace = _arg2;
var assetClass:Class = Class(getDefinitionByName((("Assets_" + name) + "_XML")));
var ba:ByteArray = ByteArray(new (assetClass));
var s:String = ba.readUTFBytes(ba.length);
try {
xml = new XML(s.slice(s.indexOf("<")));
} catch(e:Error) {
trace(("Error: " + e.message));
return (new XML());
};
xml.ignoreWhitespace = true;
return (xml);
}
public static function getSoundAsset(_arg1:String):Class{
var _local2:Class = Class(getDefinitionByName((("Assets_" + _arg1) + "_Sound")));
return (_local2);
}
public static function getBitmapDataAsset(_arg1:String):BitmapData{
var _local2:Class = Class(getDefinitionByName((("Assets_" + _arg1) + "_Bitmap")));
return (Bitmap(new (_local2)).bitmapData);
}
}
}//package
Section 39
//Assets_arbol_Bitmap (Assets_arbol_Bitmap)
package {
import mx.core.*;
public class Assets_arbol_Bitmap extends BitmapAsset {
}
}//package
Section 40
//Assets_barra_energia_Bitmap (Assets_barra_energia_Bitmap)
package {
import mx.core.*;
public class Assets_barra_energia_Bitmap extends BitmapAsset {
}
}//package
Section 41
//Assets_booom_Sound (Assets_booom_Sound)
package {
import mx.core.*;
public class Assets_booom_Sound extends SoundAsset {
}
}//package
Section 42
//Assets_camellos_Bitmap (Assets_camellos_Bitmap)
package {
import mx.core.*;
public class Assets_camellos_Bitmap extends BitmapAsset {
}
}//package
Section 43
//Assets_casa1_Bitmap (Assets_casa1_Bitmap)
package {
import mx.core.*;
public class Assets_casa1_Bitmap extends BitmapAsset {
}
}//package
Section 44
//Assets_casa2_Bitmap (Assets_casa2_Bitmap)
package {
import mx.core.*;
public class Assets_casa2_Bitmap extends BitmapAsset {
}
}//package
Section 45
//Assets_casa3_Bitmap (Assets_casa3_Bitmap)
package {
import mx.core.*;
public class Assets_casa3_Bitmap extends BitmapAsset {
}
}//package
Section 46
//Assets_casa4_Bitmap (Assets_casa4_Bitmap)
package {
import mx.core.*;
public class Assets_casa4_Bitmap extends BitmapAsset {
}
}//package
Section 47
//Assets_estrella_Bitmap (Assets_estrella_Bitmap)
package {
import mx.core.*;
public class Assets_estrella_Bitmap extends BitmapAsset {
}
}//package
Section 48
//Assets_estrella_fondo_Bitmap (Assets_estrella_fondo_Bitmap)
package {
import mx.core.*;
public class Assets_estrella_fondo_Bitmap extends BitmapAsset {
}
}//package
Section 49
//Assets_exhaust_Bitmap (Assets_exhaust_Bitmap)
package {
import mx.core.*;
public class Assets_exhaust_Bitmap extends BitmapAsset {
}
}//package
Section 50
//Assets_flecha_Bitmap (Assets_flecha_Bitmap)
package {
import mx.core.*;
public class Assets_flecha_Bitmap extends BitmapAsset {
}
}//package
Section 51
//Assets_GAME_FONT (Assets_GAME_FONT)
package {
import mx.core.*;
public class Assets_GAME_FONT extends FontAsset {
}
}//package
Section 52
//Assets_gamePlay_Sound (Assets_gamePlay_Sound)
package {
import mx.core.*;
public class Assets_gamePlay_Sound extends SoundAsset {
}
}//package
Section 53
//Assets_gradient_Bitmap (Assets_gradient_Bitmap)
package {
import mx.core.*;
public class Assets_gradient_Bitmap extends BitmapAsset {
}
}//package
Section 54
//Assets_interface_Bitmap (Assets_interface_Bitmap)
package {
import mx.core.*;
public class Assets_interface_Bitmap extends BitmapAsset {
}
}//package
Section 55
//Assets_intro_swf (Assets_intro_swf)
package {
import mx.core.*;
import flash.utils.*;
public class Assets_intro_swf extends MovieClipLoaderAsset {
public var dataClass:Class;
private static var bytes:ByteArray = null;
public function Assets_intro_swf(){
dataClass = Assets_intro_swf_dataClass;
super();
initialWidth = (0x3200 / 20);
initialHeight = (9600 / 20);
}
override public function get movieClipData():ByteArray{
if (bytes == null){
bytes = ByteArray(new dataClass());
};
return (bytes);
}
}
}//package
Section 56
//Assets_intro_swf_dataClass (Assets_intro_swf_dataClass)
package {
import mx.core.*;
public class Assets_intro_swf_dataClass extends ByteArrayAsset {
}
}//package
Section 57
//Assets_montanas_scroll_Bitmap (Assets_montanas_scroll_Bitmap)
package {
import mx.core.*;
public class Assets_montanas_scroll_Bitmap extends BitmapAsset {
}
}//package
Section 58
//Assets_montanas2_scroll_Bitmap (Assets_montanas2_scroll_Bitmap)
package {
import mx.core.*;
public class Assets_montanas2_scroll_Bitmap extends BitmapAsset {
}
}//package
Section 59
//Assets_needle_Bitmap (Assets_needle_Bitmap)
package {
import mx.core.*;
public class Assets_needle_Bitmap extends BitmapAsset {
}
}//package
Section 60
//Assets_paquete1_Bitmap (Assets_paquete1_Bitmap)
package {
import mx.core.*;
public class Assets_paquete1_Bitmap extends BitmapAsset {
}
}//package
Section 61
//Assets_paquete2_Bitmap (Assets_paquete2_Bitmap)
package {
import mx.core.*;
public class Assets_paquete2_Bitmap extends BitmapAsset {
}
}//package
Section 62
//Assets_paquete3_Bitmap (Assets_paquete3_Bitmap)
package {
import mx.core.*;
public class Assets_paquete3_Bitmap extends BitmapAsset {
}
}//package
Section 63
//Assets_paquete4_Bitmap (Assets_paquete4_Bitmap)
package {
import mx.core.*;
public class Assets_paquete4_Bitmap extends BitmapAsset {
}
}//package
Section 64
//Assets_pling1_Sound (Assets_pling1_Sound)
package {
import mx.core.*;
public class Assets_pling1_Sound extends SoundAsset {
}
}//package
Section 65
//Assets_pling2_Sound (Assets_pling2_Sound)
package {
import mx.core.*;
public class Assets_pling2_Sound extends SoundAsset {
}
}//package
Section 66
//Assets_rey0_Bitmap (Assets_rey0_Bitmap)
package {
import mx.core.*;
public class Assets_rey0_Bitmap extends BitmapAsset {
}
}//package
Section 67
//Assets_rey1_Bitmap (Assets_rey1_Bitmap)
package {
import mx.core.*;
public class Assets_rey1_Bitmap extends BitmapAsset {
}
}//package
Section 68
//Assets_rey2_Bitmap (Assets_rey2_Bitmap)
package {
import mx.core.*;
public class Assets_rey2_Bitmap extends BitmapAsset {
}
}//package
Section 69
//Assets_rey3_Bitmap (Assets_rey3_Bitmap)
package {
import mx.core.*;
public class Assets_rey3_Bitmap extends BitmapAsset {
}
}//package
Section 70
//Assets_santa_XML (Assets_santa_XML)
package {
import mx.core.*;
public class Assets_santa_XML extends ByteArrayAsset {
}
}//package
Section 71
//Assets_star_Bitmap (Assets_star_Bitmap)
package {
import mx.core.*;
public class Assets_star_Bitmap extends BitmapAsset {
}
}//package
Section 72
//Assets_suelo_Bitmap (Assets_suelo_Bitmap)
package {
import mx.core.*;
public class Assets_suelo_Bitmap extends BitmapAsset {
}
}//package
Section 73
//Assets_translation_XML (Assets_translation_XML)
package {
import mx.core.*;
public class Assets_translation_XML extends ByteArrayAsset {
}
}//package
Section 74
//BackgroundStar (BackgroundStar)
package {
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class BackgroundStar extends AnimationController implements IEntity {
private var m_id:String;
private var _game:Game;
public var startX:Number;// = 0
public function BackgroundStar(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:String=""){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
initAnimation(_arg2, _arg3, _arg4);
smoothing = false;
}
public function dispose():void{
}
public function get id():String{
return (m_id);
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function tick(_arg1:Number):void{
x = (x + (_game.scrollSpeed * 0.01));
if (x < -(width)){
x = (x + startX);
y = (Math.random() * 250);
};
updateAnimation(_arg1);
}
}
}//package
Section 75
//BitmapText (BitmapText)
package {
import flash.display.*;
import flash.geom.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class BitmapText extends Bitmap implements IEntity {
private var _letterWidth:Number;// = 0
private var _previousText:String;// = ""
private var _animation:Animation;
private var m_id:String;
private var _rectangle:Rectangle;
private var _game:Game;
public var spacing:Number;// = 1
public var text:String;// = ""
public function BitmapText(_arg1:Game, _arg2:Animation, _arg3:Number, _arg4:Number){
_rectangle = new Rectangle();
super();
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
_animation = _arg2;
_rectangle.width = _arg3;
_rectangle.height = _arg4;
_letterWidth = _animation.width;
bitmapData = new BitmapData(_rectangle.width, _rectangle.height, true, 0);
smoothing = false;
}
public function tick(_arg1:Number):void{
var _local2:int;
var _local3:Point;
var _local4:Rectangle;
var _local5:int;
if (_previousText != text){
this.bitmapData.fillRect(_rectangle, 0);
_local2 = (text.length - 1);
_local3 = new Point();
_local4 = new Rectangle(0, 0, _animation.width, _animation.height);
_local5 = _local2;
while (_local5 >= 0) {
_local3.x = ((_local5 * _letterWidth) * spacing);
_local4.x = _animation.getState(text.charAt(_local5)).getFrame(1).location.x;
_local4.y = _animation.getState(text.charAt(_local5)).getFrame(1).location.y;
bitmapData.copyPixels(_animation.bitmapData, _local4, _local3, null, null, true);
_local5--;
};
_previousText = text;
};
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function get id():String{
return (m_id);
}
public function dispose():void{
}
}
}//package
Section 76
//Boom (Boom)
package {
import flash.display.*;
import flash.geom.*;
import com.urbansquall.serenity.*;
public class Boom extends Sprite implements IEntity {
private var _a:Number;
private var m_id:String;
private var _game:Game;
private var _booming:Boolean;// = false
public function Boom(_arg1:Game){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
var _local2:Number = 250;
var _local3:Number = 0;
var _local4:Number = 0;
var _local5:Array = [0xF7DD00, 0xFF0000, 0, 0];
var _local6:Array = [1, 1, 1, 0];
var _local7:Array = [0, 120, 210, 0xFF];
var _local8:Matrix = new Matrix();
_local8.createGradientBox((_local2 * 2), (_local2 * 2), 0, (_local3 - _local2), (_local4 - _local2));
graphics.beginGradientFill(GradientType.RADIAL, _local5, _local6, _local7, _local8);
graphics.drawCircle(_local3, _local4, _local2);
graphics.endFill();
x = 320;
y = 480;
cacheAsBitmap = true;
visible = false;
}
public function dispose():void{
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function doBoom():void{
var _local2:Particle;
scaleX = (scaleY = 0);
visible = true;
_booming = true;
_a = 0;
var _local1:int;
while (_local1 < 40) {
_local2 = new Particle(_game, _game.animationData.getAnimation("star"), "on", new Point(x, y), ((Math.random() * 50) - 25), (Math.random() * -25), ((Math.random() * 0.16) + 0.92), 1.1, 1.1, 0, -0.01);
_game.addToPlayfield(_local2, 0);
_local1++;
};
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
var _local2:Number;
var _local3:Particle;
if (_booming){
_local2 = (Math.sin(_a) * 2);
scaleX = (scaleY = _local2);
_a = (_a + 0.03);
_local3 = new Particle(_game, _game.animationData.getAnimation("star"), "on", new Point(x, y), ((Math.random() * 50) - 25), (Math.random() * -25), ((Math.random() * 0.16) + 0.92), 1.1, 1.1, 0, -0.01);
_game.addToPlayfield(_local3, 0);
if ((((_a >= (Math.PI * 0.6))) && ((_a <= (Math.PI * 0.65))))){
_game.soundmanager.playSound("booom");
};
if (_a >= Math.PI){
_booming = false;
visible = false;
};
};
}
}
}//package
Section 77
//FuelMeter (FuelMeter)
package {
import flash.display.*;
import com.urbansquall.serenity.*;
public class FuelMeter extends Bitmap implements IEntity {
private var m_id:String;
private var _factor:Number;
private var _game:Game;
private var _fuel:Number;
public function FuelMeter(_arg1:Game, _arg2:Number){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
_fuel = _game.fuel;
_factor = (_arg2 / 100);
smoothing = false;
}
public function tick(_arg1:Number):void{
_fuel = (_fuel + ((_game.fuel - _fuel) * 0.2));
width = (_fuel * _factor);
}
public function dispose():void{
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function get id():String{
return (m_id);
}
}
}//package
Section 78
//FuelStar (FuelStar)
package {
import flash.display.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class FuelStar extends AnimationController implements IEntity {
private var m_id:String;
public var speedX:Number;// = -5
public var speedY:Number;// = 0
private var _game:Game;
public function FuelStar(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:String=""){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
initAnimation(_arg2, _arg3, _arg4);
smoothing = false;
collisionType = "FuelStar";
trackCollisions = true;
}
public function dispose():void{
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
private function onCollision():void{
var _local2:Particle;
_game.soundmanager.playSound("pling1", 0.6);
var _local1:int;
while (_local1 < 10) {
_local2 = new Particle(_game, _game.animationData.getAnimation("star"), "on", location, ((Math.random() * 50) - 25), ((Math.random() * 50) - 25), ((Math.random() * 0.16) + 0.92), 0.8, 0.8, 0, -0.04);
_game.addToPlayfield(_local2, 0);
_local1++;
};
_game.fuel = Math.min(100, (_game.fuel + 20));
_game.score.addScore(10);
_game.RemoveFromPlayfield((this as DisplayObject));
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
if (collisions.length > 0){
onCollision();
};
x = (x + (speedX + _game.scrollSpeed));
y = (y + speedY);
updateAnimation(_arg1);
if ((((x < -20)) || ((y < 0)))){
_game.RemoveFromPlayfield(this);
};
}
}
}//package
Section 79
//Game (Game)
package {
import flash.events.*;
import flash.display.*;
import com.urbansquall.metronome.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
import com.reintroducing.sound.*;
import flash.text.*;
import com.HazmiWeb.Collision.*;
import com.senocular.utils.*;
import com.urbansquall.utils.*;
public class Game extends Sprite {
public var snow:Snow;
public var ground:Ground;
public var mountain:Mountain;
public var score:Score;
private var _gameLogic:GameLogic;
private var _ticker:Ticker;
public var fuel:Number;// = 100
public var main:Main;
public var infoBox:InfoBox;
public var mountain2:Mountain;
private var _playfield:Sprite;
public var collisionLogic:CollisionLogic;
private var _background:Sprite;
public var animationData:AnimationData;
public var levelText:TextField;
public var entityContainer:EntityContainer;
public var key:KeyObject;
private var _scoreText:BitmapText;
public var player:Player;
private var _foreground:Sprite;
public var fps:FPS;
public var boom:Boom;
public var playerMaxY:Number;// = 0
public var soundmanager:SoundManager;
public var scrollSpeed:Number;// = -2
public function Game(_arg1:Main, _arg2:String="es"){
animationData = new AnimationData();
soundmanager = SoundManager.getInstance();
super();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
Translations.language = _arg2;
main = _arg1;
}
private function disposeAssets():void{
soundmanager.stopAllSounds();
soundmanager.removeAllSounds();
disposeGameLogic();
disposeLayers();
}
private function initInterface():void{
var _local1:Number = Assets.getBitmapDataAsset("barra_energia").width;
var _local2:FuelMeter = (_foreground.addChild(new FuelMeter(this, _local1)) as FuelMeter);
_local2.bitmapData = Assets.getBitmapDataAsset("barra_energia");
_local2.x = 146;
_local2.y = 12;
entityContainer.addEntity(_local2);
var _local3:Bitmap = (_foreground.addChild(new Bitmap(Assets.getBitmapDataAsset("interface"))) as Bitmap);
var _local4:TextField = (_foreground.addChild(new TextField()) as TextField);
GameFont.setTextFieldStyle(_local4);
_local4.text = Translations.translate("interfazScore");
_local4.x = 449;
_local4.y = 7;
_local4.width = (_local4.textWidth + 10);
var _local5:TextField = (_foreground.addChild(new TextField()) as TextField);
GameFont.setTextFieldStyle(_local5);
_local5.text = Translations.translate("interfazJetPower");
_local5.x = 30;
_local5.y = 7;
_local5.width = (_local5.textWidth + 10);
score = (_foreground.addChild(new Score()) as Score);
score.x = ((_local4.x + _local4.textWidth) + 5);
score.y = 7;
levelText = (_foreground.addChild(new TextField()) as TextField);
levelText.visible = false;
GameFont.setTextFieldStyle(levelText, 40, TextFormatAlign.CENTER);
levelText.text = Translations.translate("interfazScore");
levelText.width = 400;
levelText.x = (320 - (levelText.width * 0.5));
levelText.y = 150;
infoBox = (_foreground.addChild(new InfoBox()) as InfoBox);
infoBox.width = 400;
infoBox.height = 480;
infoBox.x = ((640 / 2) - (infoBox.width / 2));
infoBox.y = 50;
infoBox.visible = true;
var _local6:Snow = (_foreground.addChild(new Snow(this, 640, 437, 250)) as Snow);
_local6.y = 43;
_local6.scrollSpeed = -2;
entityContainer.addEntity(_local6);
}
public function createNewHouse():House{
var _local1:House = new House(this);
addToPlayfield(_local1);
return (_local1);
}
private function initPlayer():void{
mountain.y = 273;
mountain2.y = 273;
ground.y = 323;
}
public function tick(_arg1:TickerEvent):void{
_gameLogic.tick(_arg1.interval);
}
public function getFromPlayfield(_arg1:String):DisplayObject{
return ((_playfield.getChildByName(_arg1) as DisplayObject));
}
public function dispose():void{
disposeAssets();
}
private function initScenery():void{
var _local4:BackgroundStar;
var _local1:Bitmap = (_background.addChild(new Bitmap(Assets.getBitmapDataAsset("gradient"))) as Bitmap);
_local1.width = 640;
_local1.y = -43;
var _local2 = 8;
var _local3:int;
while (_local3 < _local2) {
_local4 = new BackgroundStar(this, animationData.getAnimation("background_star"), "on");
_local4.y = (Math.random() * 250);
_local4.x = (Math.random() * 640);
_local4.startX = 640;
_background.addChild(_local4);
entityContainer.addEntity(_local4);
_local3++;
};
mountain = new Mountain(this, animationData.getAnimation("mountain"), "on");
mountain.speedX = 0.2;
_background.addChild(mountain);
entityContainer.addEntity(mountain);
snow = (_background.addChild(new Snow(this, 640, 437, 750)) as Snow);
snow.scrollSpeed = scrollSpeed;
entityContainer.addEntity(snow);
boom = (_background.addChild(new Boom(this)) as Boom);
entityContainer.addEntity(boom);
mountain2 = new Mountain(this, animationData.getAnimation("mountain2"), "on");
mountain2.speedX = 0.5;
mountain2.x = -75;
_background.addChild(mountain2);
entityContainer.addEntity(mountain2);
ground = new Ground(this);
addToPlayfield(ground);
}
public function addToPlayfield(_arg1:DisplayObject, _arg2:int=-1):void{
if (_arg2 == -1){
_playfield.addChild(_arg1);
} else {
_playfield.addChildAt(_arg1, _arg2);
};
var _local3:IEntity = (_arg1 as IEntity);
if (_local3){
entityContainer.addEntity(_local3);
};
var _local4:AnimationController = (_arg1 as AnimationController);
if (_local4){
if (_local4.trackCollisions){
if (_local4.isCollisionTracker){
collisionLogic.addTracker(_local4);
} else {
collisionLogic.addTarget(_local4);
};
};
};
}
private function disposeGameLogic():void{
_ticker.stop();
_ticker = null;
collisionLogic.dispose();
entityContainer.dispose();
animationData.dispose();
_gameLogic.dispose();
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
initKeyBoard();
initAssets();
initGameLogic();
initLayers();
initFPS();
initInterface();
initScenery();
initPlayer();
_gameLogic.gameState = "waitingForPlayerSelect";
}
private function initAssets():void{
animationData.addAnimation(Assets.getXMLAsset("santa", true));
soundmanager.addLibrarySound(Assets.getSoundAsset("pling1"), "pling1");
soundmanager.addLibrarySound(Assets.getSoundAsset("pling2"), "pling2");
soundmanager.addLibrarySound(Assets.getSoundAsset("gamePlay"), "gamePlay");
soundmanager.addLibrarySound(Assets.getSoundAsset("booom"), "booom");
}
private function disposeLayers():void{
removeChild(_background);
removeChild(_playfield);
removeChild(_foreground);
}
private function initFPS():void{
fps = new FPS();
fps.x = 0;
fps.y = 43;
_foreground.addChild(fps);
fps.visible = false;
}
public function createNewTree():Tree{
var _local1:Tree = new Tree(this);
addToPlayfield(_local1);
return (_local1);
}
public function createFuelStar():FuelStar{
var _local1:FuelStar = new FuelStar(this, animationData.getAnimation("fuelstar"), "on");
_local1.y = ((Math.random() * 300) - 50);
_local1.x = 650;
_local1.speedX = -8;
_local1.speedY = 0.5;
addToPlayfield(_local1);
return (_local1);
}
private function initGameLogic():void{
entityContainer = new EntityContainer();
collisionLogic = new CollisionLogic();
_gameLogic = new GameLogic(this);
_ticker = new Ticker(40);
_ticker.addEventListener(TickerEvent.TICK, tick, false, 0, true);
_ticker.start();
}
public function RemoveFromPlayfield(_arg1:DisplayObject):void{
_playfield.removeChild(_arg1);
var _local2:IEntity = (_arg1 as IEntity);
if (_local2){
entityContainer.removeEntity(_local2);
};
var _local3:AnimationController = (_arg1 as AnimationController);
if (_local3){
if (_local3.trackCollisions){
if (_local3.isCollisionTracker){
collisionLogic.removeTracker(_local3);
} else {
collisionLogic.removeTarget(_local3);
};
};
};
}
private function initLayers():void{
_background = (addChild(new Sprite()) as Sprite);
_playfield = (addChild(new Sprite()) as Sprite);
_foreground = (addChild(new Sprite()) as Sprite);
_background.y = 43;
_playfield.y = 43;
_foreground.y = 0;
}
public function createPlayer(_arg1:int):void{
player = new Player(this, animationData.getAnimation(("king" + String(_arg1))), "flying");
player.x = (ground.kings[_arg1].x + 25);
player.y = ((323 + ground.kings[_arg1].y) + 37);
playerMaxY = player.y;
addToPlayfield(player);
}
private function initKeyBoard():void{
key = new KeyObject(this.stage);
}
}
}//package
Section 80
//GameFont (GameFont)
package {
import flash.text.*;
import flash.filters.*;
public class GameFont {
public static function setTextFieldStyle(_arg1:TextField, _arg2:int=24, _arg3:String="left"):void{
var _local4:TextFormat = new TextFormat("gameFont", _arg2, 16756517, true);
_local4.align = _arg3;
_local4.kerning = true;
_arg1.antiAliasType = AntiAliasType.ADVANCED;
_arg1.embedFonts = true;
_arg1.defaultTextFormat = _local4;
_arg1.selectable = false;
var _local5:BevelFilter = new BevelFilter(5, 90, 0xFFFFFF, 1, 0xFF0000, 1, 10, 10, 1.2, 1, "inner", false);
var _local6:DropShadowFilter = new DropShadowFilter(2, 45, 0, 1, 5, 5, 9.9, 1, false, false, false);
_arg1.filters = [_local5, _local6];
}
}
}//package
Section 81
//GameLogic (GameLogic)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.HazmiWeb.TopScores.*;
import flash.ui.*;
public class GameLogic {
private var _level:int;// = 1
private var _nameInput:NameInput;
private var _stateStarted:int;
private var _zPressed:Boolean;// = false
private var _pausePressed:Boolean;// = false
private var _lastHouse:DisplayObject;
private var _gameOverTimeOut:int;
private var _gameState:String;
private var _paused:Boolean;// = false
private var _game:Game;
private var _networkError:Boolean;// = false
private var _keyPressed:Boolean;// = false
private var _housesUntilLevelEnd:int;// = 3
private var _selectedPlayer:int;// = 0
public function GameLogic(_arg1:Game){
_game = _arg1;
}
private function showNameInput():void{
var _local1:String = Translations.translate("enterName");
_nameInput = (_game.stage.addChild(new NameInput(_local1)) as NameInput);
_nameInput.y = 260;
gameState = "waitingforplayername";
_game.infoBox.visible = false;
}
private function showGameOver():void{
_game.levelText.text = Translations.translate("gameOver");
_game.levelText.visible = true;
}
private function doHouseLogic():void{
var _local1:FuelStar;
if ((((_lastHouse == null)) || ((((_lastHouse.x < 610)) && ((_housesUntilLevelEnd > 0)))))){
if (Math.random() < 0.7){
_lastHouse = (_game.createNewHouse() as DisplayObject);
_game.score.addHouse();
_housesUntilLevelEnd--;
} else {
_lastHouse = (_game.createNewTree() as DisplayObject);
if (Math.random() < 0.2){
_local1 = _game.createFuelStar();
_local1.y = ((_lastHouse.y - _lastHouse.height) - (_local1.height * 0.3));
_local1.x = (_lastHouse.x - (_lastHouse.width * 0.5));
_local1.speedY = (_local1.speedX = 0);
};
};
};
}
private function doKeyBoardLogic():void{
if (_game.key.isDown(90)){
if (!_zPressed){
_game.player.throwPackage();
_zPressed = true;
};
} else {
_zPressed = false;
};
if (_game.key.isDown(Keyboard.LEFT)){
_game.player.goLeft();
};
if (_game.key.isDown(Keyboard.RIGHT)){
_game.player.goRight();
};
if (_game.key.isDown(Keyboard.UP)){
_game.player.thrust();
};
if (_game.key.isDown(70)){
_game.fps.visible = true;
};
}
private function onTopLoaded(_arg1:Event):void{
var _local5:XML;
var _local2:TopScoresDevilish = (_arg1.target as TopScoresDevilish);
var _local3:XML = _local2.lastestTop;
_game.levelText.visible = false;
_game.infoBox.clear();
_game.infoBox.titleText.text = (Translations.translate("top") + "\n\n\n");
_game.infoBox.addLineToBothLowerFields(2);
var _local4 = 1;
for each (_local5 in _local3..top) {
_game.infoBox.contentLeftText.appendText((((String(_local4) + ". ") + _local5.@nick) + "\n"));
_game.infoBox.contentRightText.appendText((_local5.@puntos + "\n"));
_game.infoBox.titleText.appendText("\n");
_local4++;
};
_game.infoBox.titleText.appendText(Translations.translate("pressToContinue"));
_game.infoBox.visible = true;
_game.stage.focus = _game;
}
public function tick(_arg1:Number):void{
if (!(((_gameState == "playing")) && (isPaused()))){
_game.entityContainer.tick(_arg1);
updateGameState();
switch (_gameState){
case "playing":
_game.collisionLogic.runTests();
doFuelStarLogic();
doKeyBoardLogic();
doHouseLogic();
break;
case "start":
doStartAnimation();
break;
case "levelStart":
_game.scrollSpeed = 0;
_game.snow.tick(_arg1);
_game.player.thrust();
_game.fuel = 100;
_game.player._speedX = 2;
_game.scrollSpeed = Math.max(-10, ((_level * -0.3) - 2));
break;
case "waitingForPlayerSelect":
_game.ground.choosePlayer.x = _game.ground.kings[_selectedPlayer].x;
_game.ground.choosePlayer.y = (_game.ground.kings[_selectedPlayer].y - 40);
break;
case "waitingForLaunch":
_game.player.y = _game.playerMaxY;
break;
case "gameOver":
_gameOverTimeOut = (_gameOverTimeOut - _arg1);
break;
case "showHighScores":
if (((_game.key.isDown(90)) || (_networkError))){
_game.main.applicationState = "introFlaxGames";
};
break;
};
};
}
public function dispose():void{
delete ??getglobalscope
[this];
}
private function onHighScoreSent(_arg1:Event=null):void{
gameState = "showHighScores";
}
private function doStartAnimation():void{
_game.player.x = (_game.player.x + 2.5);
_game.player.exhaust();
_game.player.y = (_game.player.y - 5);
}
private function showResults():void{
var _local1:Number = (int((1000 / (_game.score.packagesThrown / _game.score.packagesHit))) / 10);
var _local2:Number = (int((1000 / (_game.score.houses / _game.score.housesHit))) / 10);
var _local3:int = (_level * 100);
_game.infoBox.clear();
_game.infoBox.titleText.text = Translations.translate("results");
_game.infoBox.addLineToBothLowerFields(2);
_game.infoBox.titleText.appendText("\n\n");
_game.infoBox.contentLeftText.appendText((Translations.translate("packages") + "\n"));
_game.infoBox.contentRightText.appendText((((String(_game.score.packagesHit) + " / ") + String(_game.score.packagesThrown)) + "\n"));
_game.infoBox.titleText.appendText("\n");
_game.infoBox.contentLeftText.appendText((Translations.translate("packagesRatio") + "\n"));
_game.infoBox.contentRightText.appendText((String(_local1) + "%\n"));
_game.infoBox.titleText.appendText("\n");
if ((((_local1 == 100)) && ((_game.score.packagesHit > 0)))){
_game.infoBox.contentLeftText.appendText((Translations.translate("bonus100") + "\n"));
_game.infoBox.contentRightText.appendText((String((_game.score.packagesHit * 100)) + "\n"));
_game.infoBox.titleText.appendText("\n");
_game.score.addScore((_game.score.packagesHit * 100));
};
_game.infoBox.addLineToBothLowerFields(1);
_game.infoBox.titleText.appendText("\n");
_game.infoBox.contentLeftText.appendText((Translations.translate("houses") + "\n"));
_game.infoBox.contentRightText.appendText((((String(_game.score.housesHit) + " / ") + String(_game.score.houses)) + "\n"));
_game.infoBox.titleText.appendText("\n");
_game.infoBox.contentLeftText.appendText((Translations.translate("housesRatio") + "\n"));
_game.infoBox.contentRightText.appendText((String(_local2) + "%\n"));
_game.infoBox.titleText.appendText("\n");
if (_local2 == 100){
_game.infoBox.contentLeftText.appendText((Translations.translate("bonus100") + "\n"));
_game.infoBox.contentRightText.appendText((String(_local3) + "\n"));
_game.infoBox.titleText.appendText("\n");
_game.score.addScore(_local3);
};
if ((((_local1 == 100)) && ((_local2 == 100)))){
_game.infoBox.addLineToBothLowerFields(1);
_game.infoBox.contentLeftText.appendText((Translations.translate("perfectBonus") + "\n"));
_game.infoBox.contentRightText.appendText((String((_local3 * _local3)) + "\n"));
_game.infoBox.titleText.appendText("\n");
_game.score.addScore((_local3 * _local3));
};
_game.infoBox.titleText.appendText("\n");
_game.infoBox.titleText.appendText(Translations.translate("pressToContinue"));
_game.infoBox.visible = true;
}
public function get gameState():String{
return (_gameState);
}
private function showInstructions(_arg1:Boolean=true):void{
if (_arg1){
_game.infoBox.clear();
_game.infoBox.titleText.text = Translations.translate("controls");
_game.infoBox.addLineToBothLowerFields(2);
_game.infoBox.contentLeftText.appendText(Translations.translate("controlsAction"));
_game.infoBox.contentRightText.appendText(Translations.translate("controlsKey"));
_game.infoBox.titleText.appendText(("\n\n\n\n\n\n\n\n" + Translations.translate("choose")));
};
_game.infoBox.visible = _arg1;
}
private function showHighScores():void{
loadHighScores();
}
private function doFuelStarLogic():void{
if (Math.random() < 0.003){
_game.createFuelStar();
};
}
private function hideResults():void{
_game.infoBox.visible = false;
}
private function removeNameInput():String{
var _local1:String = _nameInput.inputName;
_game.stage.removeChild(_nameInput);
_nameInput.dispose();
return (_local1);
}
private function doPlayerSelectLogic():Boolean{
if (_keyPressed){
if (((_game.key.isDown(Keyboard.RIGHT)) || (_game.key.isDown(Keyboard.LEFT)))){
return (false);
};
_keyPressed = false;
};
if (_game.key.isDown(90)){
return (true);
};
if (_game.key.isDown(Keyboard.RIGHT)){
_keyPressed = true;
_selectedPlayer = (_selectedPlayer + 1);
if (_selectedPlayer >= 4){
_selectedPlayer = 0;
};
};
if (_game.key.isDown(Keyboard.LEFT)){
_keyPressed = true;
_selectedPlayer = (_selectedPlayer - 1);
if (_selectedPlayer <= -1){
_selectedPlayer = 3;
};
};
return (false);
}
private function sendHighScore(_arg1:String, _arg2:int):void{
var _local3:TopScoresDevilish;
if (_arg1 == ""){
onHighScoreSent();
} else {
_local3 = new TopScoresDevilish();
_local3.addEventListener("TOPSENT", onHighScoreSent, false, 0, true);
_local3.addEventListener("ERROR", onNetworkError, false, 0, true);
_local3.addScore(_arg1, _game.score.score);
};
}
private function loadHighScores():void{
var _local1:TopScoresDevilish = new TopScoresDevilish();
_local1.getTop();
_local1.addEventListener("TOPLOADED", onTopLoaded, false, 0, true);
_local1.addEventListener("ERROR", onNetworkError, false, 0, true);
}
private function isPaused():Boolean{
if (_game.key.isDown(80)){
_pausePressed = true;
} else {
if (_pausePressed){
_paused = !(_paused);
_pausePressed = false;
};
};
return (_paused);
}
private function onNetworkError(_arg1:Event):void{
_networkError = true;
}
private function updateGameState():void{
var _local1:String;
switch (_gameState){
case "waitingForPlayerSelect":
if (doPlayerSelectLogic()){
_game.ground.kings[_selectedPlayer].visible = false;
_game.createPlayer(_selectedPlayer);
gameState = "levelStart";
};
_game.ground.selectedKing = _selectedPlayer;
break;
case "waitingForLaunch":
if (_game.key.isDown(90)){
_game.player._speedY = 0;
gameState = "levelStart";
};
break;
case "playing":
if (_game.player.y >= 450){
gameState = "gameOver";
return;
};
if (_housesUntilLevelEnd <= 0){
if (_lastHouse.x < 0){
gameState = "levelEnd";
} else {
if ((((_game.player.x > _lastHouse.x)) && ((_game.player.y > 250)))){
_game.player.y = (_game.player.y - 8);
if (_game.player.y < 250){
_game.player.y = 250;
};
};
if ((((_game.player.x > _lastHouse.x)) && ((_game.player.y < 100)))){
_game.player.y = (_game.player.y + 4);
};
if (_game.player.x > (_lastHouse.x + 200)){
_game.player.x = (_lastHouse.x + 200);
};
};
};
break;
case "levelStart":
if (_game.player.y < 150){
_housesUntilLevelEnd = ((_level * 2) + 5);
gameState = "playing";
_game.soundmanager.playSound("gamePlay", 1, 0, 100);
};
break;
case "levelEnd":
if (_game.player.y >= _game.playerMaxY){
_game.player.y = _game.playerMaxY;
_game.scrollSpeed = 0;
_level++;
gameState = "waitingForLaunch";
};
break;
case "gameOver":
if (_gameOverTimeOut < 0){
if (_game.score.score == 0){
gameState = "showHighScores";
} else {
showNameInput();
};
};
break;
case "waitingforplayername":
if (_game.key.isDown(13)){
gameState = "showHighScores";
_local1 = removeNameInput();
sendHighScore(_local1, _game.score.score);
};
if (_game.key.isDown(27)){
removeNameInput();
gameState = "showHighScores";
};
break;
};
}
public function set gameState(_arg1:String):void{
switch (_gameState){
case "waitingForPlayerSelect":
_game.ground.removeChild(_game.ground.choosePlayer);
break;
case "playing":
_game.soundmanager.stopSound("gamePlay");
break;
};
_gameState = _arg1;
_stateStarted = getTimer();
switch (_arg1){
case "levelStart":
showInstructions(false);
hideResults();
_game.score.levelReset();
_game.player.animate = true;
_game.levelText.text = ((Translations.translate("interfazLevel") + " ") + String(_level));
_game.levelText.visible = true;
break;
case "playing":
_game.levelText.visible = false;
_game.ground.removeKingsAndAnimals();
_game.ground.visible = false;
break;
case "waitingForLaunch":
_game.player.animate = false;
_game.scrollSpeed = 0;
break;
case "waitingForPlayerSelect":
showInstructions();
_game.scrollSpeed = 0;
break;
case "levelEnd":
showResults();
_game.ground.x = _lastHouse.x;
_game.ground.visible = true;
break;
case "gameOver":
_gameOverTimeOut = 3000;
showGameOver();
_game.boom.doBoom();
break;
case "showHighScores":
showHighScores();
break;
};
}
}
}//package
Section 82
//GamePreloader (GamePreloader)
package {
import com.urbansquall.metronome.*;
import com.urbansquall.preloader.*;
import flash.text.*;
import flash.filters.*;
public class GamePreloader extends Preloader {
private var _snow:Snow;
private var _ticker:Ticker;
private var m_textfield:TextField;
public function GamePreloader(){
_ticker = new Ticker(40);
super();
}
override protected function updateLoading(_arg1:Number):void{
m_textfield.text = String(Math.min(Math.round((_arg1 * 100)), 99));
}
override protected function endLoading():void{
removeChild(m_textfield);
m_textfield = null;
_ticker.stop();
_ticker = null;
removeChild(_snow);
_snow = null;
}
override protected function beginLoading():void{
graphics.beginFill(17544);
graphics.drawRect(0, 0, 640, 480);
graphics.endFill();
_snow = (addChild(new Snow(this, 640, 480, 4000)) as Snow);
var _local1:GlowFilter = new GlowFilter(0xFFFFFF);
_snow.filters = [_local1];
m_textfield = new TextField();
addChild(m_textfield);
m_textfield.text = "99";
m_textfield.antiAliasType = AntiAliasType.NORMAL;
m_textfield.textColor = 17283;
m_textfield.scaleX = (m_textfield.scaleY = 50);
m_textfield.cacheAsBitmap = true;
m_textfield.selectable = false;
m_textfield.x = -75;
m_textfield.y = -200;
_ticker.addEventListener(TickerEvent.TICK, tick, false, 0, true);
_ticker.start();
}
private function tick(_arg1:TickerEvent):void{
_snow.tick(_arg1.interval);
}
}
}//package
Section 83
//Ground (Ground)
package {
import flash.display.*;
import com.urbansquall.serenity.*;
public class Ground extends Sprite implements IEntity {
public var speedX:Number;// = 0
private var _decoration:Bitmap;
private var _game:Game;
private var _ground2:Bitmap;
private var _jumpA:Number;// = 0
public var choosePlayer:Bitmap;
private var _ground:Bitmap;
private var m_id:String;
private var _selectedKing:int;// = 0
public var startX:Number;// = 0
public var kings:Array;
public function Ground(_arg1:Game){
var _local2:int;
var _local3:String;
var _local4:Bitmap;
kings = new Array();
super();
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
_ground = (addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(_ground, "ground", "on");
_ground2 = (addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(_ground2, "ground", "on");
_ground2.x = _ground.width;
_decoration = (addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(_decoration, "camels", "on");
_decoration.x = 230;
_decoration.y = -20;
x = 0;
_local2 = 0;
while (_local2 < 4) {
_local3 = ("king" + String(_local2));
_local4 = (this.addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(_local4, _local3, "flying");
_local4.x = (30 + (_local2 * 50));
_local4.y = 0;
kings[_local2] = _local4;
_local2++;
};
choosePlayer = (this.addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(choosePlayer, "arrow", "on");
}
public function removeKingsAndAnimals():void{
var _local2:Bitmap;
var _local1:int;
while (_local1 < 4) {
_local2 = kings[_local1];
_local2.visible = false;
_local1++;
};
_decoration.visible = false;
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
x = (x + _game.scrollSpeed);
_jumpA = (_jumpA + 0.3);
var _local2:int;
while (_local2 < 4) {
if (_local2 == _selectedKing){
kings[_local2].y = 0;
} else {
kings[_local2].y = ((Math.sin((_jumpA + _local2)) * -10) - 10);
};
_local2++;
};
}
public function dispose():void{
}
public function set selectedKing(_arg1:int):void{
_selectedKing = _arg1;
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
}
}//package
Section 84
//House (House)
package {
import flash.geom.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class House extends AnimationController implements IEntity {
private var _houseType:String;
private var _bouncedScale:Number;// = 1.3
private var _chimneaRight:Number;
private var _chimneaLeft:Number;
private var _game:Game;
private var _isStarOut:Boolean;// = false
private var _chimneaHeight:Number;
private var _chimneaSideWidth:Number;// = 5
private var _roofHeight:Number;
private var m_id:String;
public function House(_arg1:Game){
var _local2:Animation;
_houseType = ("house" + String((int((Math.random() * 3)) + 1)));
super();
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
_local2 = _game.animationData.getAnimation(_houseType);
initAnimation(_local2, "1");
x = (_local2.width + 640);
y = (437 + (Math.random() * 30));
_chimneaHeight = (y - _local2.height);
switch (_houseType){
case "house1":
_roofHeight = 50;
_chimneaLeft = 180;
_chimneaRight = 217;
break;
case "house2":
_roofHeight = 50;
_chimneaLeft = 36;
_chimneaRight = 77;
break;
case "house3":
_roofHeight = 52;
_chimneaLeft = 178;
_chimneaRight = 220;
break;
case "house4":
_roofHeight = 42;
_chimneaLeft = 37;
_chimneaRight = 86;
break;
};
_roofHeight = (_roofHeight + _chimneaHeight);
collisionType = "House";
trackCollisions = true;
smoothing = false;
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
x = (x + _game.scrollSpeed);
if (x < 0){
_game.RemoveFromPlayfield(this);
};
checkPackageCrash();
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function dispose():void{
}
private function checkPackageCrash():void{
var _local1:AnimationController;
var _local2:Package;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:Particle;
var _local8:FuelStar;
for each (_local1 in _game.collisionLogic._targets) {
if (_local1.collisionType == "Package"){
_local2 = (_local1 as Package);
_local3 = ((x - width) + _chimneaLeft);
_local4 = ((x - width) + _chimneaRight);
if (((((((!(_local2.hasBounced)) && ((_local2.y > (_chimneaHeight - 10))))) && ((_local2.x > ((x - width) + 5))))) && ((_local2.x < (x - 5))))){
if (_local2.y < (_chimneaHeight + 10)){
if ((((_local2.x > (_local3 - _chimneaSideWidth))) && ((_local2.x < (_local3 + _chimneaSideWidth))))){
_local2.bounce(((Math.random() * -3) - 3));
} else {
if ((((_local2.x > (_local4 - _chimneaSideWidth))) && ((_local2.x < (_local4 + _chimneaSideWidth))))){
_local2.bounce(((Math.random() * 3) + 3));
} else {
if ((((_local2.x >= (_local3 + _chimneaSideWidth))) && ((_local2.x <= (_local4 - _chimneaSideWidth))))){
_local2.dispose();
_game.score.addPackageHit();
_local5 = ((_local3 + _local4) * 0.5);
_game.soundmanager.playSound("pling2", 0.3);
_local6 = 0;
while (_local6 < 10) {
_local7 = new Particle(_game, _game.animationData.getAnimation("star"), "on", new Point(_local5, (_chimneaHeight + 10)), (((Math.random() * 16) - 8) + _game.scrollSpeed), (Math.random() * (int(state) * -15)), ((Math.random() * 0.12) + 0.92), 0.7, 0.9, 0, -0.02);
_game.addToPlayfield(_local7, 0);
_local6++;
};
switch (state){
case "1":
state = "2";
_game.score.addScore(50);
break;
case "2":
state = "3";
_game.score.addScore(100);
_game.score.addHousesHit();
break;
case "3":
_game.score.addScore(200);
if (!_isStarOut){
_isStarOut = true;
_local8 = _game.createFuelStar();
_local8.x = _local5;
_local8.y = (_chimneaHeight + 10);
_local8.speedX = 0;
_local8.speedY = -10;
};
break;
};
};
};
};
} else {
if (_local2.y >= _roofHeight){
_local2.bounce(((Math.random() * 12) - 6));
};
};
};
};
};
}
}
}//package
Section 85
//InfoBox (InfoBox)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class InfoBox extends Sprite {
public var titleText:TextField;
public var contentRightText:TextField;
public var contentLeftText:TextField;
public function InfoBox(){
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
titleText = (addChild(new TextField()) as TextField);
titleText.multiline = true;
titleText.wordWrap = true;
GameFont.setTextFieldStyle(titleText, 26, TextFormatAlign.CENTER);
contentLeftText = (addChild(new TextField()) as TextField);
GameFont.setTextFieldStyle(contentLeftText, 26, TextFormatAlign.LEFT);
contentLeftText.multiline = true;
contentLeftText.wordWrap = true;
contentRightText = (addChild(new TextField()) as TextField);
GameFont.setTextFieldStyle(contentRightText, 26, TextFormatAlign.RIGHT);
contentRightText.multiline = true;
contentRightText.wordWrap = true;
this.visible = false;
height = 100;
width = 100;
}
override public function get width():Number{
return (super.width);
}
override public function get height():Number{
return (super.height);
}
public function addLineToBothLowerFields(_arg1:int=1):void{
while (_arg1 > 0) {
contentLeftText.appendText("\n");
contentRightText.appendText("\n");
_arg1--;
};
}
override public function set width(_arg1:Number):void{
titleText.width = _arg1;
contentLeftText.width = _arg1;
contentRightText.width = _arg1;
}
public function clear():void{
titleText.text = "";
contentLeftText.text = "";
contentRightText.text = "";
}
override public function set height(_arg1:Number):void{
titleText.height = _arg1;
contentLeftText.height = _arg1;
contentRightText.height = _arg1;
}
}
}//package
Section 86
//Main (Main)
package {
import flash.events.*;
import flash.display.*;
import com.gskinner.utils.*;
public class Main extends Sprite {
private var _applicationState:String;// = ""
private var oldMovie;
private var _game:Game;
private var _language:String;
private var asBridge:SWFBridgeAS3;
private var _sponsorShown:Boolean;// = false
public function Main(){
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
public function get applicationState():String{
return (_applicationState);
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
asBridge = new SWFBridgeAS3("menu", this);
asBridge.addEventListener(Event.CONNECT, onConnected, false, 0, true);
applicationState = "introFlaxGames";
}
private function onConnected(_arg1:Event):void{
if (!_sponsorShown){
_sponsorShown = true;
asBridge.send("gotoSponsor", _language);
} else {
asBridge.send("gotoMenu", _language);
};
}
public function ApplicationLogic():void{
}
public function set applicationState(_arg1:String):void{
switch (_applicationState){
case "introFlaxGames":
removeChild(oldMovie);
oldMovie = null;
break;
case "game":
_game.dispose();
_game = null;
};
_applicationState = _arg1;
switch (_applicationState){
case "introFlaxGames":
oldMovie = this.addChild(new Assets.intro_swf());
stage.focus = oldMovie;
break;
case "game":
_game = new Game(this, _language);
(this.addChild(_game) as Game);
stage.focus = _game;
break;
};
}
public function onSwfBridgeGame(_arg1:String):void{
_language = _arg1;
applicationState = "game";
}
}
}//package
Section 87
//Mountain (Mountain)
package {
import flash.display.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class Mountain extends Sprite implements IEntity {
private var _flipPoint:Number;
private var m_id:String;
public var speedX:Number;// = 0
public var startX:Number;// = 0
private var _game:Game;
public function Mountain(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:String=""){
var _local11:Bitmap;
super();
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
var _local5:Number = (_arg2.width - 1);
var _local6:Number = _arg2.height;
var _local7:Number = _arg2.getState(_arg3).getFrame(1).location.x;
var _local8:Number = _arg2.getState(_arg3).getFrame(1).location.y;
var _local9:int = (Math.ceil((640 / _local5)) + 1);
trace(("count: " + _local9));
_flipPoint = _local5;
var _local10:int;
while (_local10 < _local9) {
_local11 = (this.addChild(new Bitmap()) as Bitmap);
_game.animationData.setBitmapToFrame(_local11, _arg2.name, _arg3);
_local11.x = (_local10 * _local5);
_local11.y = 0;
_local10++;
};
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
x = (x + (speedX * _game.scrollSpeed));
if (x < (0 - _flipPoint)){
x = (x + _flipPoint);
};
}
public function dispose():void{
}
}
}//package
Section 88
//NameInput (NameInput)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class NameInput extends Sprite {
private var _nameInput:Sprite;
private var _lblscoreInputWidth:Number;
private var _lblscoreInput:TextField;
private var _scoreInput:TextField;
private var _inputWidth:Number;
private var _lblscoreInputText:String;
private var _maxChars:int;
public function NameInput(_arg1:String, _arg2:Number=200, _arg3:Number=400, _arg4:int=15){
_lblscoreInputText = _arg1;
_inputWidth = _arg2;
_lblscoreInputWidth = _arg3;
_maxChars = _arg4;
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
public function dispose():void{
while (numChildren > 0) {
removeChildAt(0);
};
delete ??getglobalscope
[this];
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
_nameInput = (addChild(new Sprite()) as Sprite);
_lblscoreInput = (addChild(new TextField()) as TextField);
_scoreInput = (addChild(new TextField()) as TextField);
GameFont.setTextFieldStyle(_lblscoreInput, 24, TextFormatAlign.CENTER);
GameFont.setTextFieldStyle(_scoreInput, 24, TextFormatAlign.CENTER);
_lblscoreInput.width = _lblscoreInputWidth;
_lblscoreInput.x = 25;
_lblscoreInput.y = 25;
_lblscoreInput.multiline = true;
_lblscoreInput.text = _lblscoreInputText;
_scoreInput.type = TextFieldType.INPUT;
_scoreInput.width = _inputWidth;
_scoreInput.height = 30;
_scoreInput.x = ((25 + (_lblscoreInputWidth / 2)) - (_scoreInput.width / 2));
_scoreInput.y = (_lblscoreInput.height + 25);
_scoreInput.maxChars = _maxChars;
_scoreInput.border = true;
_scoreInput.borderColor = 16724787;
_nameInput.graphics.beginFill(0xFFFFFF, 0.3);
_nameInput.graphics.drawRect(0, 0, (_lblscoreInputWidth + 50), ((_scoreInput.y + _scoreInput.height) + 25));
_nameInput.graphics.endFill();
x = ((640 / 2) - (width / 2));
y = ((480 / 2) - (height / 2));
stage.focus = _scoreInput;
}
public function get inputName():String{
return (_scoreInput.text);
}
}
}//package
Section 89
//Package (Package)
package {
import flash.display.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class Package extends AnimationController implements IEntity {
public var hasBounced:Boolean;// = false
private var m_id:String;
private var _game:Game;
public var speedY:Number;// = 2
public var speedX:Number;// = 0
public function Package(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:String=""){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
initAnimation(_arg2, _arg3, _arg4);
smoothing = false;
collisionType = "Package";
trackCollisions = true;
}
public function bounce(_arg1:Number):void{
speedY = (speedY * -0.2);
speedX = (speedX + _arg1);
hasBounced = true;
scale = 1.3;
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
private function onCollision():void{
if ((collisions[0] as Collision).collidedWith.collisionType == "FuelStar"){
_game.RemoveFromPlayfield((this as DisplayObject));
};
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
if (collisions.length > 0){
onCollision();
};
speedY = (speedY + 0.2);
y = (y + speedY);
speedX = (speedX * 0.95);
x = (x + (speedX + _game.scrollSpeed));
if (y > 480){
_game.RemoveFromPlayfield(this);
};
updateAnimation(_arg1);
}
public function dispose():void{
_game.RemoveFromPlayfield(this);
}
}
}//package
Section 90
//Particle (Particle)
package {
import flash.events.*;
import flash.geom.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class Particle extends AnimationController implements IEntity {
private var _speedYFactor:Number;
private var _rotationFactor:Number;
private var _alphaFactor:Number;
private var _speedX:Number;// = 0
private var _game:Game;
private var _scalefactor:Number;
private var m_id:String;
private var _speedY:Number;// = 0
private var _speedXFactor:Number;
public function Particle(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:Point, _arg5:Number, _arg6:Number, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1, _arg10:Number=0, _arg11:Number=0, _arg12:Boolean=false){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
_speedX = _arg5;
_speedY = _arg6;
_scalefactor = _arg7;
_speedXFactor = _arg8;
_speedYFactor = _arg9;
_rotationFactor = _arg10;
_alphaFactor = _arg11;
smoothing = _arg12;
initAnimation(_arg2, _arg3);
this.x = (_arg4.x - (this.width / 2));
this.y = (_arg4.y - (this.height / 2));
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
private function onAnimationEnded(_arg1:Event):void{
removeEventListener("ANIMATIONEND", onAnimationEnded);
_game.RemoveFromPlayfield(this);
}
public function tick(_arg1:Number):void{
this.x = (this.x + _speedX);
this.y = (this.y + _speedY);
rotation = (rotation + _rotationFactor);
alpha = (alpha + _alphaFactor);
_speedX = (_speedX * _speedXFactor);
_speedY = (_speedY * _speedYFactor);
scaleX = (scaleY = (scaleY * _scalefactor));
updateAnimation(_arg1);
}
public function dispose():void{
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
addEventListener("ANIMATIONEND", onAnimationEnded, false, 0, true);
}
public function get id():String{
return (m_id);
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
}
}//package
Section 91
//Player (Player)
package {
import flash.events.*;
import flash.geom.*;
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
import com.HazmiWeb.Collision.CircleCollision.*;
public class Player extends AnimationController implements IEntity {
private var _previousX:Number;
private var _previousY:Number;
public var _speedX:Number;// = 0
private var _game:Game;
public var _speedY:Number;// = 0
private var _packageTimeout:int;// = 0
public var animate:Boolean;// = true
private var m_id:String;
private var _maxSpeedX:Number;// = 4
private var _maxSpeedY:Number;// = 5
private var starExhaust:int;// = 0
public function Player(_arg1:Game, _arg2:Animation, _arg3:String, _arg4:String=""){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
initAnimation(_arg2, _arg3, _arg4);
this.x = 0;
this.y = 0;
smoothing = true;
collisionType = "Player";
collisionTargetTypes.push("Tree", "House", "FuelStar");
isCollisionTracker = true;
trackCollisions = true;
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
public function throwPackage():void{
var _local1:String;
var _local2:Package;
if (_packageTimeout < 0){
_packageTimeout = 5;
_local1 = ("package" + String((int((Math.random() * 3)) + 1)));
_local2 = new Package(_game, _game.animationData.getAnimation(_local1), "on");
_local2.x = _game.player.x;
_local2.y = (_game.player.y + 45);
_local2.speedY = 5;
_game.addToPlayfield(_local2);
_game.score.addPackageThrown();
};
}
public function goLeft():void{
_speedX = (_speedX - 0.5);
if (_speedX < -(_maxSpeedX)){
_speedX = -(_maxSpeedX);
};
}
public function goRight():void{
_speedX = (_speedX + 0.5);
if (_speedX > _maxSpeedX){
_speedX = _maxSpeedX;
};
}
public function get id():String{
return (m_id);
}
public function tick(_arg1:Number):void{
var _local2:Collision;
_packageTimeout = (_packageTimeout - 1);
_speedX = (_speedX / 1.05);
_speedY = (_speedY + 0.5);
if (_speedY > _maxSpeedY){
_speedY = _maxSpeedY;
};
this.x = (this.x + _speedX);
this.y = (this.y + _speedY);
if (this.y < 20){
this.y = 20;
_speedY = 0;
};
if (y > 450){
this.y = 450;
_speedY = 0;
visible = false;
};
if (this.x < 0){
this.x = 0;
};
if (this.x > 580){
this.x = 580;
};
this.rotation = (_speedX * 4);
if (collisions.length > 0){
_local2 = collisions[0];
if (_local2.collidedWith.collisionType != "FuelStar"){
crash(_local2);
};
};
_previousX = x;
_previousY = y;
if (animate){
updateAnimation(_arg1);
};
_game.mountain.y = (((_game.playerMaxY - y) * 0.1) + 305);
_game.mountain2.y = (((_game.playerMaxY - y) * 0.15) + 305);
_game.ground.y = (((_game.playerMaxY - y) * 2) + 333);
}
public function dispose():void{
}
public function crash(_arg1:Collision):void{
var _local2:Boolean;
var _local3:Particle;
var _local4:int;
_game.fuel = Math.max(0, (_game.fuel - 33));
if (_game.fuel > 0){
x = (x - (((x - _previousX) - _game.scrollSpeed) * 3));
y = (y - ((y - _previousY) * 3));
_speedX = (_speedX * -1.5);
_speedY = (_speedY * -1.5);
_local2 = (_arg1.collidedWith.collisionType == "Tree");
_local4 = 0;
while (_local4 < 10) {
if (_local2){
_local3 = new Particle(_game, _game.animationData.getAnimation("needle"), "on", location, ((Math.random() * 50) - 25), ((Math.random() * 50) - 25), 1, 0.8, 0.8, 0, -0.04);
} else {
_local3 = new Particle(_game, _game.animationData.getAnimation("exhaust"), "smoke", location, ((Math.random() * 50) - 25), ((Math.random() * 50) - 25), 1.1, 0.8, 0.8, 0, -0.04);
};
_game.addToPlayfield(_local3, 0);
_local4++;
};
};
}
private function onAddedToStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
public function exhaust():void{
var _local1:Number;
var _local5:Particle;
var _local2:Number = (Math.cos((((rotation_in_radians + 1.6) + Math.random()) - 0.5)) * _local1);
var _local3:Number = (Math.sin((((rotation_in_radians + 1.6) + Math.random()) - 0.5)) * _local1);
starExhaust++;
if ((((starExhaust > 5)) && ((_game.fuel > 10)))){
starExhaust = 0;
_local1 = ((Math.random() * 13) + 3);
_local2 = (Math.cos((rotation_in_radians + 1.6)) * _local1);
_local3 = (Math.sin((rotation_in_radians + 1.6)) * _local1);
} else {
_local1 = ((Math.random() * 7) + 3);
_local2 = (Math.cos((((rotation_in_radians + 1.6) + Math.random()) - 0.5)) * _local1);
_local3 = (Math.sin((((rotation_in_radians + 1.6) + Math.random()) - 0.5)) * _local1);
};
var _local4:Point = getParentPos(new Point(23, 78));
if (_game.fuel < 15){
_local5 = new Particle(_game, _game.animationData.getAnimation("exhaust"), "smoke", _local4, _local2, _local3, 1.05, 0.9, 0.9, 0);
} else {
if (starExhaust == 0){
_local5 = new Particle(_game, _game.animationData.getAnimation("star"), "on", _local4, _local2, _local3, 1, 0.9, 0.9, 0, -0.02);
_local5.rotation = (Math.random() * 360);
} else {
_local5 = new Particle(_game, _game.animationData.getAnimation("exhaust"), "on", _local4, _local2, _local3, 0.95, 0.9, 0.9, 0);
};
};
_game.addToPlayfield(_local5, 0);
}
public function thrust():void{
if ((((_game.fuel > 2)) || ((Math.random() < 0.4)))){
_speedY = (_speedY - 1);
_game.fuel = (_game.fuel - 0.2);
if (_speedY < -(_maxSpeedY)){
_speedY = -(_maxSpeedY);
};
exhaust();
};
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
}
}//package
Section 92
//Score (Score)
package {
import flash.text.*;
public class Score extends TextField {
private var _housesHit:int;
private var _score1:Number;// = 0
private var _score2:int;// = 0
private var _packagesHit:int;
private var _houses:int;
private var _packagesThrown:int;
public function Score(){
GameFont.setTextFieldStyle(this);
this.text = "0";
}
public function get housesHit():int{
return (_housesHit);
}
public function addPackageThrown():void{
_packagesThrown++;
}
public function get score():int{
return ((_score1 + _score2));
}
public function get houses():int{
return (_houses);
}
public function get packagesThrown():int{
return (_packagesThrown);
}
public function addHousesHit():void{
_housesHit++;
}
public function get packagesHit():int{
return (_packagesHit);
}
public function set score(_arg1:int):void{
_score1 = int((Math.random() * _arg1));
_score2 = (_arg1 - _score1);
this.text = String(_arg1);
}
public function addPackageHit():void{
_packagesHit++;
}
public function addScore(_arg1:int):void{
if (Math.random() > 0.5){
_score1 = (_score1 + _arg1);
} else {
_score2 = (_score2 + _arg1);
};
this.text = String(score);
}
public function levelReset():void{
_packagesHit = 0;
_packagesThrown = 0;
_housesHit = 0;
_houses = 0;
}
public function addHouse():void{
_houses++;
}
}
}//package
Section 93
//Snow (Snow)
package {
import flash.geom.*;
import flash.display.*;
import com.urbansquall.serenity.*;
public class Snow extends Bitmap implements IEntity {
private var _fillRect:Rectangle;
public var scrollSpeed:Number;// = 0
private var m_id:String;
private var _count:int;// = 0
private var _game:DisplayObject;
private var _flakes:Array;
public var windSpeed:Number;// = 3
public function Snow(_arg1:DisplayObject, _arg2:int, _arg3:int, _arg4:int){
m_id = SimpleIDCounter.calculateNextID();
_game = _arg1;
_count = _arg4;
bitmapData = new BitmapData(_arg2, _arg3, true, 0);
_fillRect = new Rectangle(0, 0, _arg2, _arg3);
createFlakes();
}
public function tick(_arg1:Number):void{
var _local2:Point;
var _local6:flake;
bitmapData.lock();
bitmapData.fillRect(_fillRect, 0xFFFFFF);
var _local3:Number = 0;
var _local4:Number = 1;
var _local5:Number = (0xFF / _flakes.length);
for each (_local6 in _flakes) {
_local2 = _local6.update(windSpeed, scrollSpeed);
bitmapData.setPixel32(_local2.x, _local2.y, (_local3 + 0xFFFFFF));
_local4 = (_local4 + _local5);
_local3 = (16777216 * int(_local4));
};
bitmapData.unlock();
}
public function dispose():void{
}
private function createFlakes():void{
_flakes = new Array();
var _local1:Number = (0.8 / _count);
var _local2:int;
while (_local2 < _count) {
_flakes.push(new flake(_fillRect.width, _fillRect.height, (0.2 + (_local1 * _local2))));
_local2++;
};
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function get id():String{
return (m_id);
}
}
}//package
import flash.geom.*;
class flake {
private var _pos:Point;
private var _downSpeed:Number;
private var _speed:Number;
private var _max_x:Number;
private var _max_y:Number;
private function flake(_arg1:Number, _arg2:Number, _arg3:Number){
_max_x = _arg1;
_max_y = _arg2;
_speed = _arg3;
_downSpeed = _speed;
_pos = new Point((Math.random() * _max_x), (Math.random() * _max_y));
}
public function update(_arg1:Number, _arg2:Number):Point{
_pos.x = (_pos.x + ((_arg1 * _speed) + _arg2));
_pos.y = (_pos.y + _downSpeed);
if (_pos.x < 0){
_pos.x = (_pos.x + _max_x);
};
if (_pos.x > _max_x){
_pos.x = (_pos.x - _max_x);
};
if (_pos.y < 0){
_pos.y = (_pos.y + _max_y);
};
if (_pos.y > _max_y){
_pos.y = (_pos.y - _max_y);
};
return (_pos);
}
}
Section 94
//Translations (Translations)
package {
public class Translations {
public static var language:String = "EN";
public static function translate(_arg1:String):String{
var x:XML;
var translation:String;
var myPattern:RegExp;
var a_word = _arg1;
x = Assets.getXMLAsset("translation");
translation = x.word.(@handle == a_word).@[language];
myPattern = /!br!/g;
translation = translation.replace(myPattern, "\n");
return (translation);
}
}
}//package
Section 95
//Tree (Tree)
package {
import com.urbansquall.serenity.*;
import com.HazmiWeb.BitmapAnimation.*;
public class Tree extends AnimationController implements IEntity {
private var _game:Game;
private var m_id:String;
public function Tree(_arg1:Game){
_game = _arg1;
m_id = SimpleIDCounter.calculateNextID();
var _local2:Animation = _game.animationData.getAnimation("tree");
initAnimation(_local2, "on");
x = (_local2.width + 640);
y = (437 + (Math.random() * 60));
smoothing = false;
collisionType = "Tree";
trackCollisions = true;
}
public function tick(_arg1:Number):void{
x = (x + _game.scrollSpeed);
if (x < 0){
_game.RemoveFromPlayfield(this);
};
updateAnimation(_arg1);
}
public function get id():String{
return (m_id);
}
override public function toString():String{
return ((("<Entity:" + id) + ">"));
}
public function dispose():void{
}
}
}//package