Section 1
//RC4 (com.meychi.ascrypt3.RC4)
package com.meychi.ascrypt3 {
public class RC4 {
private static var mykey:Array = new Array(0xFF);
private static var sbox:Array = new Array(0xFF);
public function encrypt(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Array;
_local3 = strToChars(_arg1);
_local4 = strToChars(_arg2);
_local5 = calculate(_local3, _local4);
return (charsToHex(_local5));
}
public function decrypt(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Array;
_local3 = hexToChars(_arg1);
_local4 = strToChars(_arg2);
_local5 = calculate(_local3, _local4);
return (charsToStr(_local5));
}
private static function initialize(_arg1:Array):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = 0;
_local4 = _arg1.length;
_local5 = 0;
_local5 = 0;
while (_local5 <= 0xFF) {
mykey[_local5] = _arg1[(_local5 % _local4)];
sbox[_local5] = _local5;
_local5++;
};
_local5 = 0;
while (_local5 <= 0xFF) {
_local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100);
_local3 = sbox[_local5];
sbox[_local5] = sbox[_local2];
sbox[_local2] = _local3;
_local5++;
};
}
private static function strToChars(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.length) {
_local2.push(_arg1.charCodeAt(_local3));
_local3++;
};
return (_local2);
}
private static function charsToStr(_arg1:Array):String{
var _local2:String;
var _local3:Number;
_local2 = new String("");
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
private static function charsToHex(_arg1:Array):String{
var _local2:String;
var _local3:Array;
var _local4:Number;
_local2 = new String("");
_local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
_local4 = 0;
while (_local4 < _arg1.length) {
_local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)]));
_local4++;
};
return (_local2);
}
private static function calculate(_arg1:Array, _arg2:Array):Array{
var _local3:Number;
var _local4:Number;
var _local5:Array;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
initialize(_arg2);
_local3 = 0;
_local4 = 0;
_local5 = new Array();
_local9 = 0;
while (_local9 < _arg1.length) {
_local3 = ((_local3 + 1) % 0x0100);
_local4 = ((_local4 + sbox[_local3]) % 0x0100);
_local7 = sbox[_local3];
sbox[_local3] = sbox[_local4];
sbox[_local4] = _local7;
_local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100);
_local6 = sbox[_local10];
_local8 = (_arg1[_local9] ^ _local6);
_local5.push(_local8);
_local9++;
};
return (_local5);
}
private static function hexToChars(_arg1:String):Array{
var _local2:Array;
var _local3:Number;
_local2 = new Array();
_local3 = ((_arg1.substr(0, 2))=="0x") ? 2 : 0;
while (_local3 < _arg1.length) {
_local2.push(parseInt(_arg1.substr(_local3, 2), 16));
_local3 = (_local3 + 2);
};
return (_local2);
}
}
}//package com.meychi.ascrypt3
Section 2
//MindJoltAPI (com.mindjolt.api.as3.MindJoltAPI)
package com.mindjolt.api.as3 {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class MindJoltAPI extends MovieClip {
private var dispatcher:CustomDispatcher;
public static var service:Object;
public function MindJoltAPI(){
dispatcher = new CustomDispatcher();
dispatcher.doAction(1, 100);
dispatcher.addEventListener(_slot2.ACTION, createRoot);
}
private function createRoot(_arg1:Event):void{
if (root != null){
_arg1.currentTarget.removeEventListener(_slot2.ACTION, createRoot);
init();
};
}
private function init():void{
var _local1:Object;
var _local2:String;
var _local3:Loader;
_local1 = Object(parent.root).loaderInfo.parameters;
_local2 = "";
if (((!((_local1.mjPath == null))) && (isDomainAllowed()))){
_local2 = _local1.mjPath;
} else {
_local2 = "http://static.mindjolt.com/api/as3/scoreapi_as3_local.swf";
};
_local3 = new Loader();
_local3.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFinished);
_local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
_local3.load(new URLRequest(_local2));
addChild(_local3);
}
private function loadFinished(_arg1:Event):void{
service = _arg1.currentTarget.content.service;
service.connect();
trace("[MindJoltAPI] service loaded");
}
private function isDomainAllowed():Boolean{
var _local1:String;
var _local2:LocalConnection;
var _local3:String;
_local1 = ".mindjolt.com";
_local2 = new LocalConnection();
_local3 = _local2.domain;
if (_local3.indexOf(_local1) == (_local3.length - _local1.length)){
return (true);
};
return (false);
}
private function loadFailed(_arg1:IOErrorEvent):void{
trace("[MindJoltAPI] unable to load service");
}
}
}//package com.mindjolt.api.as3
import flash.events.*;
import flash.utils.*;
class CustomDispatcher extends EventDispatcher {
public static var ACTION:String = "action";
private function CustomDispatcher(){
}
public function doAction(_arg1:Number, _arg2:Number):void{
var myTimer:Timer;
var propAction:Function;
var delay = _arg1;
var repeat = _arg2;
propAction = function (_arg1:TimerEvent):void{
dispatchEvent(new Event(_slot2.ACTION));
};
myTimer = new Timer(delay, repeat);
myTimer.addEventListener(TimerEvent.TIMER, propAction);
myTimer.start();
}
}
Section 3
//MindJoltSponsoredAPI (com.mindjolt.api.as3.MindJoltSponsoredAPI)
package com.mindjolt.api.as3 {
import flash.events.*;
import flash.display.*;
import com.meychi.ascrypt3.*;
import flash.net.*;
import flash.external.*;
public class MindJoltSponsoredAPI {
private static var displayObject:Object;
private static var connected:Boolean = false;
private static var gameId:String;
private static var flashCookie:SharedObject;
private static var key:String;
public static function openLink(_arg1:uint, _arg2:String=null):void{
var url:String;
var browserAgent:String;
var linkId = _arg1;
var mode = _arg2;
url = (((((("http://game.mindjolt.com/servlet/GameLink?key=" + gameId) + "&link=") + linkId) + ((mode)!=null) ? ("&mode=" + escape(mode)) : "") + "&httpref=") + escape(displayObject.loaderInfo.loaderURL));
browserAgent = null;
try {
if (ExternalInterface.available){
browserAgent = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");
};
} catch(e:Error) {
browserAgent = null;
};
if (((((!((browserAgent == null))) && (ExternalInterface.available))) && ((((browserAgent.indexOf("Firefox") >= 0)) || ((browserAgent.indexOf("MSIE") >= 0)))))){
trace("window.open");
ExternalInterface.call("window.open", url);
} else {
trace("navigatetourl");
navigateToURL(new URLRequest(url), "_blank");
};
}
public static function connect(_arg1:String, _arg2:String, _arg3:Object){
if ((_arg3 is DisplayObject)){
if (!connected){
flashCookie = SharedObject.getLocal("com.mindjolt", "/");
flashCookie.objectEncoding = ObjectEncoding.AMF0;
gameId = _arg1.toUpperCase();
key = _arg2.toUpperCase();
displayObject = _arg3;
trace(displayObject.loaderInfo.loaderURL);
connected = true;
} else {
trace("already connected!");
};
} else {
trace("Error: MindJoltSponsoredAPI requires a displayobject. Try passing in root.");
};
}
private static function finishedSubmitScore(_arg1:Event):void{
var _local2:String;
var _local3:RC4;
var _local4:URLVariables;
var _local5:String;
_local2 = _arg1.target.data.session;
if (_local2 != null){
trace("got back session");
_local3 = new RC4();
_local4 = new URLVariables();
_local4.decode(_local3.decrypt(_local2, key));
_local5 = _local4.userToken;
trace((("result [" + _local4.result) + "]"));
if (_local5 != null){
trace((("we are being told to set userToken [" + _local5) + "]"));
flashCookie.data.userToken = _local5;
flashCookie.flush();
};
};
}
public static function submitScore(_arg1:String, _arg2:Number, _arg3:String=null){
var userToken:String;
var rc4:RC4;
var session:String;
var send_lv:URLVariables;
var request:URLRequest;
var loader:URLLoader;
var name = _arg1;
var score = _arg2;
var mode = _arg3;
userToken = null;
trace("testing if we have a userToken in shared object yet");
if (flashCookie.data.userToken != null){
userToken = flashCookie.data.userToken;
trace((("FOUND [" + userToken) + "]"));
} else {
userToken = null;
trace("no userToken set");
};
rc4 = new RC4();
session = rc4.encrypt(((((("score=" + score) + "&name=") + escape(name)) + ((mode)!=null) ? ("&mode=" + escape(mode)) : "") + ((userToken)!=null) ? ("&userToken=" + escape(userToken)) : ""), key);
send_lv = new URLVariables();
send_lv.gameId = gameId;
send_lv.session = session;
request = new URLRequest();
request.url = "http://game.mindjolt.com/servlet/GameScore";
request.method = URLRequestMethod.POST;
request.data = send_lv;
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, finishedSubmitScore);
loader.addEventListener(IOErrorEvent.IO_ERROR, failedSubmitScore);
try {
loader.load(request);
} catch(e:Error) {
trace(("SubmitScore send data Error: " + e));
};
}
private static function failedSubmitScore(_arg1:Event):void{
trace("IOError in SubmitScore");
}
}
}//package com.mindjolt.api.as3
Section 4
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader {
private static var cpmstarLoader:Loader;
public static function LoadAd(_arg1:int, _arg2:int):DisplayObject{
var _local3:String;
Security.allowDomain("server.cpmstar.com");
_local3 = "http://server.cpmstar.com/adviewas3.swf";
cpmstarLoader = new Loader();
cpmstarLoader.load(new URLRequest(((((_local3 + "?poolid=") + _arg1) + "&subpoolid=") + _arg2)));
return (cpmstarLoader);
}
}
}//package CPMStar
Section 5
//None (fl.transitions.easing.None)
package fl.transitions.easing {
public class None {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
}
}//package fl.transitions.easing
Section 6
//Regular (fl.transitions.easing.Regular)
package fl.transitions.easing {
public class Regular {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package fl.transitions.easing
Section 7
//Strong (fl.transitions.easing.Strong)
package fl.transitions.easing {
public class Strong {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
}
}//package fl.transitions.easing
Section 8
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
public class TweenLite {
public var delay:Number;
protected var _initted:Boolean;
protected var _subTweens:Array;
public var startTime:int;
public var target:Object;
public var duration:Number;
protected var _hst:Boolean;
protected var _isDisplayObject:Boolean;
protected var _active:Boolean;
public var vars:Object;
public var tweens:Array;
public var initTime:int;
private static var _timer:Timer = new Timer(2000);
private static var _classInitted:Boolean;
public static var defaultEase:Function = TweenLite.easeOut;
public static var version:Number = 7.03;
private static var _sprite:Sprite = new Sprite();
protected static var _all:Dictionary = new Dictionary();
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
protected static var _curTime:uint;
private static var _listening:Boolean;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local4:*;
super();
if (_arg1 == null){
return;
};
if (((((!((_arg3.overwrite == false))) && (!((_arg1 == null))))) || ((_all[_arg1] == undefined)))){
delete _all[_arg1];
_all[_arg1] = new Dictionary();
};
_all[_arg1][this] = this;
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
_active = (((_arg2 == 0)) && ((this.delay == 0)));
this.target = _arg1;
_isDisplayObject = (_arg1 is DisplayObject);
if (!(this.vars.ease is Function)){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
if (!isNaN(Number(this.vars.autoAlpha))){
this.vars.alpha = Number(this.vars.autoAlpha);
this.vars.visible = (this.vars.alpha > 0);
};
this.tweens = [];
_subTweens = [];
_hst = (_initted = false);
if (!_classInitted){
_curTime = getTimer();
_sprite.addEventListener(Event.ENTER_FRAME, executeAll);
_classInitted = true;
};
this.initTime = _curTime;
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (_active))){
initTweenVals();
this.startTime = _curTime;
if (_active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
_local4 = this.vars.visible;
if (this.vars.isTV == true){
_local4 = this.vars.exposedProps.visible;
};
if (((((!((_local4 == null))) && ((this.vars.runBackwards == true)))) && (_isDisplayObject))){
this.target.visible = Boolean(_local4);
};
};
if (((!(_listening)) && (!(_active)))){
_timer.addEventListener("timer", killGarbage);
_timer.start();
_listening = true;
};
}
protected function addSubTween(_arg1:Function, _arg2:Object, _arg3:Object, _arg4:Object=null):void{
var _local5:Object;
var _local6:String;
_local5 = {proxy:_arg1, target:_arg2, info:_arg4};
_subTweens.push(_local5);
for (_local6 in _arg3) {
if (typeof(_arg3[_local6]) == "number"){
this.tweens.push({o:_arg2, p:_local6, s:_arg2[_local6], c:(_arg3[_local6] - _arg2[_local6]), sub:_local5});
} else {
this.tweens.push({o:_arg2, p:_local6, s:_arg2[_local6], c:Number(_arg3[_local6]), sub:_local5});
};
};
_hst = true;
}
public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:String;
var _local4:int;
var _local5:Object;
var _local6:Array;
var _local7:ColorTransform;
var _local8:ColorTransform;
var _local9:Object;
_local5 = this.vars;
if (_local5.isTV == true){
_local5 = _local5.exposedProps;
};
if ((this.target is Array)){
_local6 = ((this.vars.endArray) || ([]));
_local4 = 0;
while (_local4 < _local6.length) {
if (((!((this.target[_local4] == _local6[_local4]))) && (!((this.target[_local4] == undefined))))){
this.tweens.push({o:this.target, p:_local4.toString(), s:this.target[_local4], c:(_local6[_local4] - this.target[_local4])});
};
_local4++;
};
} else {
if (((((!((typeof(_local5.tint) == "undefined"))) || ((this.vars.removeTint == true)))) && (_isDisplayObject))){
_local7 = this.target.transform.colorTransform;
_local8 = new ColorTransform();
if (_local5.alpha != undefined){
_local8.alphaMultiplier = _local5.alpha;
delete _local5.alpha;
} else {
_local8.alphaMultiplier = this.target.alpha;
};
if (((!((this.vars.removeTint == true))) && (((((!((_local5.tint == null))) && (!((_local5.tint == ""))))) || ((_local5.tint == 0)))))){
_local8.color = _local5.tint;
};
addSubTween(tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local7, endColor:_local8});
};
if (((!((_local5.frame == null))) && (_isDisplayObject))){
addSubTween(frameProxy, {frame:this.target.currentFrame}, {frame:_local5.frame}, {target:this.target});
};
if (((!(isNaN(this.vars.volume))) && (this.target.hasOwnProperty("soundTransform")))){
addSubTween(volumeProxy, this.target.soundTransform, {volume:this.vars.volume}, {target:this.target});
};
for (_local3 in _local5) {
if ((((((((((((((((((((((((((((((((((_local3 == "ease")) || ((_local3 == "delay")))) || ((_local3 == "overwrite")))) || ((_local3 == "onComplete")))) || ((_local3 == "onCompleteParams")))) || ((_local3 == "runBackwards")))) || ((_local3 == "visible")))) || ((_local3 == "persist")))) || ((_local3 == "onUpdate")))) || ((_local3 == "onUpdateParams")))) || ((_local3 == "autoAlpha")))) || ((_local3 == "onStart")))) || ((_local3 == "onStartParams")))) || ((_local3 == "renderOnStart")))) || ((_local3 == "proxiedEase")))) || ((_local3 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local3) + " ")) == -1))))))){
} else {
if (((!(((_isDisplayObject) && ((((((_local3 == "tint")) || ((_local3 == "removeTint")))) || ((_local3 == "frame"))))))) && (!((((_local3 == "volume")) && (this.target.hasOwnProperty("soundTransform"))))))){
if (typeof(_local5[_local3]) == "number"){
this.tweens.push({o:this.target, p:_local3, s:this.target[_local3], c:(_local5[_local3] - this.target[_local3])});
} else {
this.tweens.push({o:this.target, p:_local3, s:this.target[_local3], c:Number(_local5[_local3])});
};
};
};
};
};
if (this.vars.runBackwards == true){
_local4 = (this.tweens.length - 1);
while (_local4 > -1) {
_local9 = this.tweens[_local4];
this.tweens[_local4].s = (_local9.s + _local9.c);
_local9.c = (_local9.c * -1);
_local4--;
};
};
if ((((_local5.visible == true)) && (_isDisplayObject))){
this.target.visible = true;
};
_initted = true;
}
public function get active():Boolean{
if (_active){
return (true);
};
if (((_curTime - this.initTime) / 1000) > this.delay){
_active = true;
this.startTime = (this.initTime + (this.delay * 1000));
if (!_initted){
initTweenVals();
} else {
if (((!((this.vars.visible == undefined))) && (_isDisplayObject))){
this.target.visible = true;
};
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
return (true);
//unresolved jump
};
return (false);
}
public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:int;
_local2 = ((_arg1 - this.startTime) / 1000);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = 1;
} else {
_local3 = this.vars.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.o[_local4.p] = (_local4.s + (_local3 * _local4.c));
_local5--;
};
if (_hst){
_local5 = (_subTweens.length - 1);
while (_local5 > -1) {
_subTweens[_local5].proxy(_subTweens[_local5]);
_local5--;
};
};
if (this.vars.onUpdate != null){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function complete(_arg1:Boolean=false):void{
if (!_arg1){
if (!_initted){
initTweenVals();
};
this.startTime = (_curTime - (this.duration * 1000));
render(_curTime);
return;
};
if (((!((this.vars.visible == undefined))) && (_isDisplayObject))){
if (((!(isNaN(this.vars.autoAlpha))) && ((this.target.alpha == 0)))){
this.target.visible = false;
} else {
if (this.vars.runBackwards != true){
this.target.visible = this.vars.visible;
};
};
};
if (this.vars.persist != true){
removeTween(this);
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function frameProxy(_arg1:Object):void{
_arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame));
}
public static function removeTween(_arg1:TweenLite=null):void{
if (((!((_arg1 == null))) && (!((_all[_arg1.target] == undefined))))){
delete _all[_arg1.target][_arg1];
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Object;
var _local4:*;
if (((!((_arg1 == null))) && (!((_all[_arg1] == undefined))))){
if (_arg2){
_local3 = _all[_arg1];
for (_local4 in _local3) {
_local3[_local4].complete(false);
};
};
delete _all[_arg1];
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:false}));
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function executeAll(_arg1:Event=null):void{
var _local2:uint;
var _local3:Dictionary;
var _local4:Object;
var _local5:Object;
_local2 = (_curTime = getTimer());
if (_listening){
_local3 = _all;
for each (_local4 in _local3) {
for (_local5 in _local4) {
if (((!((_local4[_local5] == undefined))) && (_local4[_local5].active))){
_local4[_local5].render(_local2);
};
};
};
};
}
public static function volumeProxy(_arg1:Object):void{
_arg1.info.target.soundTransform = _arg1.target;
}
public static function killGarbage(_arg1:TimerEvent):void{
var _local2:uint;
var _local3:Boolean;
var _local4:Object;
var _local5:Object;
var _local6:Object;
_local2 = 0;
for (_local4 in _all) {
_local3 = false;
for (_local5 in _all[_local4]) {
_local3 = true;
break;
};
if (!_local3){
delete _all[_local4];
} else {
_local2++;
};
};
if (_local2 == 0){
_timer.removeEventListener("timer", killGarbage);
_timer.stop();
_listening = false;
};
}
public static function tintProxy(_arg1:Object):void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:Object;
_local2 = _arg1.target.progress;
_local3 = (1 - _local2);
_local4 = _arg1.info.color;
_local5 = _arg1.info.endColor;
_arg1.info.target.transform.colorTransform = new ColorTransform(((_local4.redMultiplier * _local3) + (_local5.redMultiplier * _local2)), ((_local4.greenMultiplier * _local3) + (_local5.greenMultiplier * _local2)), ((_local4.blueMultiplier * _local3) + (_local5.blueMultiplier * _local2)), ((_local4.alphaMultiplier * _local3) + (_local5.alphaMultiplier * _local2)), ((_local4.redOffset * _local3) + (_local5.redOffset * _local2)), ((_local4.greenOffset * _local3) + (_local5.greenOffset * _local2)), ((_local4.blueOffset * _local3) + (_local5.blueOffset * _local2)), ((_local4.alphaOffset * _local3) + (_local5.alphaOffset * _local2)));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 9
//assetsContainer_1 (Kablammo_fla.assetsContainer_1)
package Kablammo_fla {
import flash.display.*;
public dynamic class assetsContainer_1 extends MovieClip {
public function assetsContainer_1(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Kablammo_fla
Section 10
//mindjolt_ident_6 (Kablammo_fla.mindjolt_ident_6)
package Kablammo_fla {
import flash.events.*;
import flash.display.*;
import com.mindjolt.api.as3.*;
public dynamic class mindjolt_ident_6 extends MovieClip {
public var eyes:MovieClip;
public var logo_btn:SimpleButton;
public var mindlogo:MovieClip;
public function mindjolt_ident_6(){
addFrameScript(0, frame1, 53, frame54, 59, frame60, 176, frame177);
}
function frame177(){
stop();
}
function frame1(){
logo_btn.addEventListener(MouseEvent.CLICK, mouseClickHandler);
}
function frame54(){
mindlogo.stop();
}
public function mouseClickHandler(_arg1:MouseEvent):void{
MindJoltSponsoredAPI.openLink(1);
}
function frame60(){
mindlogo.play();
}
}
}//package Kablammo_fla
Section 11
//mj_logo_18 (Kablammo_fla.mj_logo_18)
package Kablammo_fla {
import flash.display.*;
public dynamic class mj_logo_18 extends MovieClip {
public function mj_logo_18(){
addFrameScript(37, frame38);
}
function frame38(){
stop();
}
}
}//package Kablammo_fla
Section 12
//mj_marker_9 (Kablammo_fla.mj_marker_9)
package Kablammo_fla {
import flash.display.*;
public dynamic class mj_marker_9 extends MovieClip {
public function mj_marker_9(){
addFrameScript(0, frame1);
}
function frame1(){
this.visible = false;
}
}
}//package Kablammo_fla
Section 13
//pointerResetPanel_54 (Kablammo_fla.pointerResetPanel_54)
package Kablammo_fla {
import flash.display.*;
public dynamic class pointerResetPanel_54 extends MovieClip {
public var core:MovieClip;
public var tip:MovieClip;
}
}//package Kablammo_fla
Section 14
//titleScreen_39 (Kablammo_fla.titleScreen_39)
package Kablammo_fla {
import flash.display.*;
import flash.text.*;
public dynamic class titleScreen_39 extends MovieClip {
public var logo:SponsorLogo;
public var txtMore:TextField;
}
}//package Kablammo_fla
Section 15
//MochiScores (mochi.MochiScores)
package mochi {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public static function showLeaderboard(_arg1:Object=null):void{
var options = _arg1;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
_local2 = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function onClose(_arg1:Object=null):void{
if (_arg1 != null){
if (_arg1.error != null){
if (_arg1.error == true){
if (onErrorHandler != null){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
}
}//package mochi
Section 16
//MochiServices (mochi.MochiServices)
package mochi {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
private static var _sendChannel:LocalConnection;
private static var _rcvChannelName:String;
private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _listenChannel:LocalConnection;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _startTime:Number;
private static var _connecting:Boolean = false;
public static var onError:Object;
private static var _listenChannelName:String = "__mochiservices";
private static var _rcvChannel:LocalConnection;
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
public static function get connected():Boolean{
return (_connected);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
public static function get id():String{
return (_id);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function getVersion():String{
return ("1.31");
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_listenChannel.close();
_rcvChannel.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
Security.allowDomain("*");
Security.allowInsecureDomain("*");
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
return (_local2);
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function onStatus(_arg1:StatusEvent):void{
switch (_arg1.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()});
_rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = this.client._callbacks[cb];
if (!cblst){
return;
};
method = cblst.callbackMethod;
methodName = "";
obj = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
_rcvChannel.connect(_rcvChannelName);
trace("connected!");
_connecting = false;
_connected = true;
_listenChannel.close();
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
public static function get clip():Object{
return (_container);
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
_rcvChannelName = _arg1;
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var clipname:String;
var f:Function;
var req:URLRequest;
var id = _arg1;
var clip = _arg2;
clipname = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
MochiServices.allowDomains(_gatewayURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
_timer = new Timer(1000, 0);
_startTime = getTimer();
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
f = function (_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
req = new URLRequest(_gatewayURL);
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain("*", "localhost");
_rcvChannel.allowInsecureDomain("*", "localhost");
_rcvChannel.client = _clip;
_clip._nextcallbackID = 0;
_clip._callbacks = {};
listen();
return (_clip);
}
public static function bringToTop(_arg1:Event):void{
var e = _arg1;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
};
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var mc:MovieClip;
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
mc = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function connectWait(_arg1:TimerEvent):void{
if ((getTimer() - _startTime) > 10000){
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_timer.stop();
};
}
}
}//package mochi
Section 17
//AchievementAwardedSound (AchievementAwardedSound)
package {
import flash.media.*;
public dynamic class AchievementAwardedSound extends Sound {
}
}//package
Section 18
//AdContainer (AdContainer)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import CPMStar.*;
import flash.text.*;
public dynamic class AdContainer extends MovieClip {
public var selectionIndicator:MovieClip;
public var txt:TextField;
public var goBg:MovieClip;
public var adBox:MovieClip;
public function AdContainer(){
var _local1:int;
var _local2:int;
var _local3:DisplayObject;
super();
_local1 = 1437;
_local2 = 15110;
selectionIndicator.alpha = 0;
_local3 = AdLoader.LoadAd(_local1, _local2);
adBox.addChild(_local3);
goBg.visible = true;
goBg.buttonMode = true;
goBg.addEventListener(MouseEvent.MOUSE_OVER, elGoOver, false, 0, true);
goBg.addEventListener(MouseEvent.MOUSE_OUT, elGoOut, false, 0, true);
goBg.addEventListener(MouseEvent.CLICK, elGoClick, false, 0, true);
}
private function elGoOver(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.2, {alpha:0.5, ease:Strong.easeOut});
}
public function showLoading(_arg1:uint){
txt.text = (_arg1 + "% LOADED");
}
public function showGo(){
txt.text = "GO!";
goBg.visible = true;
}
private function elGoClick(_arg1:MouseEvent){
removeChild(adBox);
goBack();
}
private function elGoOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function goBack(){
goBg.removeEventListener(MouseEvent.MOUSE_OVER, elGoOver);
goBg.removeEventListener(MouseEvent.MOUSE_OUT, elGoOut);
goBg.removeEventListener(MouseEvent.CLICK, elGoClick);
dispatchEvent(new Event("AdViewed"));
}
}
}//package
Section 19
//Bomb (Bomb)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import flash.geom.*;
import flash.filters.*;
public class Bomb extends Sprite {
private var gravity:Number;// = 0.4
private var debris:Array;
private var gfx:Sprite;
public var core:MovieClip;
public var tip:MovieClip;
public var isAlive:Boolean;
public var index:uint;
private var speedY:Number;
public function Bomb(_arg1:Number=0){
gravity = 0.4;
super();
speedY = _arg1;
isAlive = true;
cacheAsBitmap = true;
tip.rotation = ((Math.random() * (290 - 250)) + 340);
gfx = new Sprite();
gfx.addChild(tip);
gfx.addChild(core);
addChild(gfx);
}
public function stop(){
removeEventListener(Event.ENTER_FRAME, elEnterFrame);
}
public function detonate(){
var _local1:uint;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:BitmapData;
var _local6:*;
var _local7:GlowFilter;
var _local8:*;
var _local9:BitmapData;
var _local10:Bitmap;
isAlive = false;
removeEventListener(Event.ENTER_FRAME, elEnterFrame);
_local1 = 10;
_local2 = 12;
_local3 = (width / _local1);
_local4 = (height / _local2);
_local5 = new BitmapData((width + 20), (height + 20), true, 0xFFFFFF);
_local5.draw(this, new Matrix(1, 0, 0, 1, ((core.width / 2) - 2), ((core.height / 2) + 5)));
debris = new Array();
_local6 = 0;
while (_local6 < _local2) {
_local8 = 0;
while (_local8 < _local1) {
_local9 = new BitmapData(_local3, _local4, true, 0xFFFFFF);
_local9.copyPixels(_local5, new Rectangle((_local8 * _local3), (_local6 * _local4), (_local8 + (1 * _local3)), (_local6 + (1 * _local4))), new Point(0));
_local10 = new Bitmap(_local9);
_local10.x = ((_local8 * _local3) - (core.width / 2));
_local10.y = ((_local6 * _local4) - (core.height / 2));
addChild(_local10);
debris.push({bmp:_local10, speedY:((Math.random() * 5) - 5), speedX:((Math.random() * 8) - 4)});
_local8++;
};
_local6++;
};
addEventListener(Event.ENTER_FRAME, renderDebris, false, 0, true);
gfx.alpha = 0;
scaleX = (scaleY = 2);
_local7 = new GlowFilter(0xFFFFFF, 1, 10, 10, 1, 2);
filters = [_local7];
TweenLite.to(this, 2, {alpha:0, ease:None.easeNone, onComplete:destroy});
SoundManager.playSound("bombExplode");
}
private function elEnterFrame(_arg1:Event){
y = (y + speedY);
speedY = (speedY + gravity);
if (y > stage.stageHeight){
y = stage.stageHeight;
dispatchEvent(new Event("BombAtBottom"));
};
}
public function fall(){
addEventListener(Event.ENTER_FRAME, elEnterFrame, false, 0, true);
}
public function die(){
var _local1:uint;
SoundManager.playSound("bombBounce3");
removeEventListener(Event.ENTER_FRAME, elEnterFrame);
isAlive = false;
_local1 = ((Math.random() * 40) - 20);
TweenLite.to(this, 0.7, {y:"-20", alpha:0, ease:Strong.easeOut, onComplete:destroy});
}
private function renderDebris(_arg1:Event){
var _local2:uint;
var _local3:*;
_local2 = 0;
while (_local2 < debris.length) {
_local3 = debris[_local2];
_local3.bmp.x = (_local3.bmp.x + _local3.speedX);
_local3.bmp.y = (_local3.bmp.y + _local3.speedY);
_local3.speedX = (_local3.speedX * 0.98);
_local3.speedY = (_local3.speedY + 0.2);
_local2++;
};
}
public function destroy(){
removeEventListener(Event.ENTER_FRAME, renderDebris);
removeEventListener(Event.ENTER_FRAME, elEnterFrame);
if (parent){
parent.removeChild(this);
};
}
}
}//package
Section 20
//BombBounce2Sound (BombBounce2Sound)
package {
import flash.media.*;
public dynamic class BombBounce2Sound extends Sound {
}
}//package
Section 21
//BombBounce3Sound (BombBounce3Sound)
package {
import flash.media.*;
public dynamic class BombBounce3Sound extends Sound {
}
}//package
Section 22
//BombBounceSound (BombBounceSound)
package {
import flash.media.*;
public dynamic class BombBounceSound extends Sound {
}
}//package
Section 23
//Bomber (Bomber)
package {
import gs.*;
import flash.display.*;
import fl.transitions.easing.*;
public class Bomber extends Sprite {
public var speed:Number;
private var dummyBomb:Bomb;
public var gfx:MovieClip;
public function Bomber(){
dummyBomb = new Bomb(0);
dummyBomb.y = 20;
addChild(dummyBomb);
}
public function stop(){
TweenLite.killTweensOf(this);
}
public function move(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:Number;
if (x < (stage.stageWidth / 2)){
_local1 = (((Math.random() * (stage.stageWidth / 2)) + (stage.stageWidth / 2)) - (width / 2));
} else {
_local1 = ((Math.random() * (stage.stageWidth / 2)) + (width / 2));
};
_local2 = Math.abs((x - _local1));
_local3 = (1 / stage.frameRate);
TweenLite.to(this, ((_local2 / speed) * _local3), {x:_local1, ease:None.easeNone, onComplete:move});
_local4 = ((x / (stage.stageWidth / 2)) - 1);
SoundManager.playSound("bomberMove", {pan:_local4});
}
public function resetDummyBomb(){
dummyBomb.y = 20;
TweenLite.from(dummyBomb, 0.4, {y:-10, ease:Regular.easeOut});
}
private function destroy(){
}
}
}//package
Section 24
//BomberMoveSound (BomberMoveSound)
package {
import flash.media.*;
public dynamic class BomberMoveSound extends Sound {
}
}//package
Section 25
//BombExplodeSound (BombExplodeSound)
package {
import flash.media.*;
public dynamic class BombExplodeSound extends Sound {
}
}//package
Section 26
//ButtonBg (ButtonBg)
package {
import flash.events.*;
import flash.display.*;
public class ButtonBg extends Sprite {
public var soundsEnabled:Boolean;// = true
public var gfx:MovieClip;
public var isSelected:Boolean;// = false
public function ButtonBg(){
soundsEnabled = true;
isSelected = false;
super();
gfx.stop();
activate();
}
public function select(){
isSelected = true;
gfx.gotoAndStop("Selected");
}
private function elMouseOver(_arg1:MouseEvent){
if (!isSelected){
gfx.gotoAndStop("Over");
};
if (soundsEnabled){
};
}
private function elMouseOut(_arg1:MouseEvent){
if (!isSelected){
gfx.gotoAndStop("Out");
};
}
public function setAsGroupSelection(_arg1:Array){
var _local2:Array;
var _local3:uint;
_local2 = _arg1;
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3].deselect();
_local3++;
};
select();
}
private function elClick(_arg1:MouseEvent){
if (soundsEnabled){
SoundManager.playSound("buttonClick");
};
}
public function deactivate(){
buttonMode = false;
removeEventListener(MouseEvent.CLICK, elClick);
removeEventListener(MouseEvent.MOUSE_OVER, elMouseOver);
removeEventListener(MouseEvent.MOUSE_OUT, elMouseOut);
}
public function setSize(_arg1:Number, _arg2:Number){
gfx.width = _arg1;
gfx.height = _arg2;
}
public function deselect(){
isSelected = false;
gfx.gotoAndStop("Out");
}
public function activate(){
buttonMode = true;
addEventListener(MouseEvent.CLICK, elClick, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, elMouseOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, elMouseOut, false, 0, true);
}
}
}//package
Section 27
//ButtonClickSound (ButtonClickSound)
package {
import flash.media.*;
public dynamic class ButtonClickSound extends Sound {
}
}//package
Section 28
//CheckMark (CheckMark)
package {
import flash.display.*;
public class CheckMark extends MovieClip {
public var isChecked:Boolean;
public function CheckMark(){
stop();
check();
}
public function check(){
isChecked = true;
gotoAndStop("Checked");
}
public function uncheck(){
isChecked = false;
gotoAndStop("Unchecked");
}
public function toggle(){
if (isChecked){
uncheck();
} else {
check();
};
}
}
}//package
Section 29
//DropBomb2Sound (DropBomb2Sound)
package {
import flash.media.*;
public dynamic class DropBomb2Sound extends Sound {
}
}//package
Section 30
//DropBombSound (DropBombSound)
package {
import flash.media.*;
public dynamic class DropBombSound extends Sound {
}
}//package
Section 31
//ExtraLifeSound (ExtraLifeSound)
package {
import flash.media.*;
public dynamic class ExtraLifeSound extends Sound {
}
}//package
Section 32
//GameOverScreen (GameOverScreen)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import com.mindjolt.api.as3.*;
import mochi.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public class GameOverScreen extends KablammoScreen {
public var selectionIndicator:MovieClip;
private var txtNameFlashes:uint;
public var txtName:TextField;
public var item2Bg:MovieClip;
public var txtNameBorder:MovieClip;
public var item1Bg:MovieClip;
public var score:uint;
private var items:Array;
public var sponsorLogo:SponsorLogo;
public function GameOverScreen(){
var _local1:uint;
super();
items = [{obj:item1Bg, title:"SubmitScore"}, {obj:item2Bg, title:"PlayAgain"}];
_local1 = 0;
while (_local1 < items.length) {
items[_local1].obj.buttonMode = true;
_local1++;
};
show();
sponsorLogo.buttonMode = true;
sponsorLogo.addEventListener(MouseEvent.CLICK, elSponsorLogoClick, false, 0, true);
txtName.borderColor = 0xAAAAAA;
txtName.addEventListener(FocusEvent.FOCUS_IN, elTxtNameFocusIn, false, 0, true);
txtName.addEventListener(FocusEvent.FOCUS_OUT, elTxtNameFocusOut, false, 0, true);
}
private function elMouseDown(_arg1:MouseEvent){
switch (_arg1.target){
case item1Bg:
if (((!((txtName.text == ""))) && (!((txtName.text == "Enter name here..."))))){
SoundManager.playSound("menuItemClick");
deactivate();
SOManager.objs[Kablammo.SO_NAME].data.playerName = txtName.text;
SOManager.flushSO(Kablammo.SO_NAME);
MindJoltSponsoredAPI.submitScore(txtName.text, Kablammo.currentGame.score);
dispatchEvent(new Event("PlayAgain"));
} else {
SoundManager.playSound("menuItemError");
txtNameFlashes = 5;
flashTxtName();
};
break;
case item2Bg:
SoundManager.playSound("menuItemClick");
deactivate();
dispatchEvent(new Event("PlayAgain"));
break;
};
}
private function elTxtNameFocusIn(_arg1:FocusEvent){
if (txtName.text == "Enter name here..."){
txtName.text = "";
};
txtName.textColor = 0;
}
private function flashTxtName(){
if (txtNameFlashes > 0){
if (txtName.alpha < 0.8){
TweenLite.to(txtName, 0.1, {alpha:1, onComplete:flashTxtName});
} else {
TweenLite.to(txtName, 0.1, {alpha:0.2, onComplete:flashTxtName});
};
txtNameFlashes--;
} else {
TweenLite.to(txtName, 0.1, {alpha:1});
};
}
private function elSponsorLogoClick(_arg1:MouseEvent){
MindJoltSponsoredAPI.openLink(5);
}
private function deactivate(){
item1Bg.removeEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem);
item1Bg.removeEventListener(MouseEvent.CLICK, elMouseDown);
item1Bg.removeEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut);
item2Bg.removeEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem);
item2Bg.removeEventListener(MouseEvent.CLICK, elMouseDown);
item2Bg.removeEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut);
}
private function elMenuItemOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function highlightMenuItem(_arg1:Event){
var _local2:*;
SoundManager.playSound("menuItemOver");
_local2 = _arg1.target;
selectionIndicator.x = _local2.x;
selectionIndicator.y = ((_local2.y + (_local2.height / 2)) - 7);
selectionIndicator.width = _local2.width;
TweenLite.to(selectionIndicator, 0.4, {alpha:0.5, ease:Strong.easeOut});
}
private function elTxtNameFocusOut(_arg1:FocusEvent){
if (txtName.text == ""){
txtName.text = "Enter name here...";
};
if (txtName.text == "Enter name here..."){
txtName.textColor = 0x666666;
};
}
private function activate(){
selectionIndicator.alpha = 0;
item1Bg.addEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem, false, 0, true);
item1Bg.addEventListener(MouseEvent.CLICK, elMouseDown, false, 0, true);
item1Bg.addEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut, false, 0, true);
item2Bg.addEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem, false, 0, true);
item2Bg.addEventListener(MouseEvent.CLICK, elMouseDown, false, 0, true);
item2Bg.addEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut, false, 0, true);
}
override public function show(){
if (((SOManager.objs[Kablammo.SO_NAME].data.playerName) && (!((SOManager.objs[Kablammo.SO_NAME].data.playerName == ""))))){
txtName.text = SOManager.objs[Kablammo.SO_NAME].data.playerName;
};
activate();
}
}
}//package
Section 33
//Graph (Graph)
package {
import flash.display.*;
import flash.filters.*;
public class Graph extends Sprite {
private var _showValues:String;
public var line:Sprite;
public var dots:Sprite;
public var h:uint;
public var w:uint;
public var grid:Sprite;
public var gridHoriLineCount:uint;// = 5
public function Graph(_arg1:uint, _arg2:uint){
gridHoriLineCount = 5;
super();
w = _arg1;
h = _arg2;
}
public function set showValues(_arg1:String){
var _local2:uint;
var _local3:GraphDot;
_local2 = 0;
while (_local2 < dots.numChildren) {
_local3 = GraphDot(dots.getChildAt(_local2));
_local3.showValue = _arg1;
_local2++;
};
_showValues = _arg1;
}
public function build(_arg1:Array, _arg2:String=""){
var _local3:Array;
var _local4:*;
var _local5:uint;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:String;
var _local10:int;
var _local11:Tooltip;
var _local12:uint;
var _local13:int;
var _local14:DropShadowFilter;
var _local15:GraphDot;
var _local16:GraphDot;
while (numChildren > 0) {
removeChildAt(0);
};
_local3 = _arg1;
_local4 = _arg2;
_local6 = (_local4) ? _local3[_local5][_local4] : _local3[_local5];
_local7 = _local6;
_local8 = _local6;
_local5 = 0;
while (_local5 < _local3.length) {
_local6 = (_local4) ? _local3[_local5][_local4] : _local3[_local5];
_local7 = Math.max(_local7, _local6);
_local8 = Math.min(_local8, _local6);
_local5++;
};
_local9 = _local7.toString();
_local10 = (int(_local9.charAt(0)) + 1);
_local10 = (_local10 * Math.pow(10, (Math.floor(_local7).toString().length - 1)));
if (!grid){
grid = new Sprite();
};
while (grid.numChildren > 0) {
_local11 = Tooltip(grid.getChildAt(0));
grid.removeChild(_local11);
_local11 = null;
};
grid.graphics.clear();
grid.graphics.lineStyle(1, 0, 0.6);
grid.graphics.beginFill(0, 0.1);
grid.graphics.drawRect(0, 0, w, h);
addChild(grid);
_local5 = 0;
while (_local5 < gridHoriLineCount) {
_local12 = (_local5 * (h / (gridHoriLineCount - 1)));
grid.graphics.moveTo(0, _local12);
grid.graphics.lineTo(w, _local12);
_local11 = new Tooltip();
grid.addChild(_local11);
_local13 = (_local10 - Math.ceil((_local5 * (_local10 / (gridHoriLineCount - 1)))));
_local11.show(0, _local12, _local13.toString(), {destAlpha:0.5});
_local5++;
};
if (!line){
line = new Sprite();
_local14 = new DropShadowFilter(3, 45, 0, 1, 3, 3, 0.4);
line.filters = [_local14];
};
line.graphics.clear();
line.graphics.lineStyle(1, 0xFFFFFF, 0.6);
addChild(line);
if (!dots){
dots = new Sprite();
};
while (dots.numChildren > 0) {
_local15 = GraphDot(dots.getChildAt(0));
dots.removeChild(_local15);
_local15 = null;
};
addChild(dots);
_local5 = 0;
while (_local5 < _local3.length) {
_local6 = (_local4) ? _local3[_local5][_local4] : _local3[_local5];
_local16 = new GraphDot(_local6);
_local16.mouseOverPadding = ((w / (_local3.length - 1)) / 2);
_local16.x = int((_local5 * (w / (_local3.length - 1))));
_local16.y = int((h - (_local6 / (_local10 / h))));
if (_local5 == 0){
line.graphics.moveTo(_local16.x, _local16.y);
} else {
line.graphics.lineTo(_local16.x, _local16.y);
};
dots.addChild(_local16);
_local5++;
};
showValues = "Always";
}
public function get showValues():String{
return (_showValues);
}
private function destroy(){
}
}
}//package
Section 34
//GraphDot (GraphDot)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
import flash.filters.*;
public class GraphDot extends Sprite {
private var _showValue:String;
private var tooltip:Tooltip;
private var pointObj:Object;
private var value:Number;
private var gfx:Sprite;
private var defaultTextFormat:TextFormat;
public var mouseOverPadding:Number;
public function GraphDot(_arg1:Number){
value = _arg1;
gfx = new Sprite();
gfx.graphics.lineStyle(6, 0xFFFFFF, 0);
gfx.graphics.beginFill(0xFFFFFF);
gfx.graphics.drawCircle(0, 0, 4);
gfx.graphics.endFill();
addChild(gfx);
addEventListener(Event.ADDED_TO_STAGE, elAddedToStage, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, elRemovedFromStage, false, 0, true);
}
private function elMouseOver(_arg1:MouseEvent){
if (showValue == "MouseOver"){
tooltip.visible = true;
};
}
private function elMouseMove(_arg1:MouseEvent){
var _local2:Point;
var _local3:Point;
_local2 = new Point(0, 0);
_local3 = localToGlobal(_local2);
if ((((((((stage.mouseX >= (_local3.x - mouseOverPadding))) && ((stage.mouseX <= (_local3.x + mouseOverPadding))))) && ((tooltip.isShowing == false)))) && ((showValue == "MouseOver")))){
tooltip.show(0, 0, value.toString(), {arrowAngle:90});
} else {
if ((((((stage.mouseX < (_local3.x - mouseOverPadding))) || ((stage.mouseX > (_local3.x + mouseOverPadding))))) && ((showValue == "MouseOver")))){
tooltip.hide();
} else {
if (showValue == "Always"){
tooltip.show(0, 0, value.toString(), {arrowAngle:90});
};
};
};
}
private function elMouseOut(_arg1:MouseEvent){
if (showValue == "MouseOver"){
tooltip.visible = false;
};
}
private function elAddedToStage(_arg1:Event){
var _local2:GlowFilter;
var _local3:DropShadowFilter;
tooltip = new Tooltip();
addChild(tooltip);
_local2 = new GlowFilter(0, 0.9, 3, 3, 1);
_local3 = new DropShadowFilter(3, 45, 0, 0.1, 4, 4, 1);
tooltip.filters = [_local2, _local3];
tooltip.show(0, 0, value.toString(), {arrowAngle:90});
stage.addEventListener(MouseEvent.MOUSE_MOVE, elMouseMove, false, 0, true);
}
public function get showValue():String{
return (_showValue);
}
private function elRemovedFromStage(_arg1:Event){
destroy();
}
public function set showValue(_arg1:String){
_showValue = _arg1;
switch (_arg1){
case "Always":
tooltip.show(0, 0, value.toString(), {arrowAngle:90});
break;
case "MouseOver":
tooltip.hide();
break;
case "Never":
break;
};
}
public function destroy(){
if (stage){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, elMouseMove);
};
removeEventListener(Event.ADDED_TO_STAGE, elAddedToStage);
}
}
}//package
Section 35
//HighscoresScreen (HighscoresScreen)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import mochi.*;
import flash.ui.*;
public class HighscoresScreen extends KablammoScreen {
private const CONTAINER:LeaderboardContainer;
public var selectionIndicator:MovieClip;
public var returnBg:MovieClip;
public function HighscoresScreen(){
CONTAINER = Kablammo.leaderboardContainer;
super();
returnBg.buttonMode = true;
}
private function elReturnOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function elReturnClick(_arg1:MouseEvent){
SoundManager.playSound("menuItemClick");
goBack();
}
private function elReturnOver(_arg1:MouseEvent){
SoundManager.playSound("menuItemOver");
TweenLite.to(selectionIndicator, 0.2, {alpha:0.5, ease:Strong.easeOut});
}
private function goBack(){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
returnBg.removeEventListener(MouseEvent.MOUSE_OVER, elReturnOver);
returnBg.removeEventListener(MouseEvent.MOUSE_OUT, elReturnOut);
returnBg.removeEventListener(MouseEvent.CLICK, elReturnClick);
dispatchEvent(new Event("HighscoresViewed"));
TweenLite.delayedCall(0.3, MochiScores.closeLeaderboard);
}
private function elKeyDown(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case Keyboard.ESCAPE:
goBack();
break;
};
}
override public function show(){
stage.addEventListener(KeyboardEvent.KEY_DOWN, elKeyDown, false, 0, true);
returnBg.addEventListener(MouseEvent.MOUSE_OVER, elReturnOver, false, 0, true);
returnBg.addEventListener(MouseEvent.MOUSE_OUT, elReturnOut, false, 0, true);
returnBg.addEventListener(MouseEvent.CLICK, elReturnClick, false, 0, true);
selectionIndicator.alpha = 0;
addChild(CONTAINER);
CONTAINER.x = 0;
CONTAINER.y = 20;
MochiScores.showLeaderboard({boardID:"f699311284d2a56f", res:"600x430", hideDoneButton:true, numScores:10, width:430});
}
}
}//package
Section 36
//InstructionsScreen (InstructionsScreen)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import flash.ui.*;
public class InstructionsScreen extends KablammoScreen {
public var selectionIndicator:MovieClip;
public var goBg:MovieClip;
public function InstructionsScreen(){
goBg.buttonMode = true;
}
private function elGoOver(_arg1:MouseEvent){
SoundManager.playSound("menuItemOver");
TweenLite.to(selectionIndicator, 0.2, {alpha:0.5, ease:Strong.easeOut});
}
private function elGoClick(_arg1:MouseEvent){
SoundManager.playSound("menuItemClick");
goBack();
}
private function elGoOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function goBack(){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
goBg.removeEventListener(MouseEvent.MOUSE_OVER, elGoOver);
goBg.removeEventListener(MouseEvent.MOUSE_OUT, elGoOut);
goBg.removeEventListener(MouseEvent.CLICK, elGoClick);
dispatchEvent(new Event("InstructionsRead"));
}
private function elKeyDown(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case Keyboard.ESCAPE:
goBack();
break;
};
}
override public function show(){
stage.addEventListener(KeyboardEvent.KEY_DOWN, elKeyDown, false, 0, true);
goBg.addEventListener(MouseEvent.MOUSE_OVER, elGoOver, false, 0, true);
goBg.addEventListener(MouseEvent.MOUSE_OUT, elGoOut, false, 0, true);
goBg.addEventListener(MouseEvent.CLICK, elGoClick, false, 0, true);
selectionIndicator.alpha = 0;
}
}
}//package
Section 37
//Kablammo (Kablammo)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import com.mindjolt.api.as3.*;
import mochi.*;
import flash.text.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public dynamic class Kablammo extends MovieClip {
private var titleScreen;
private var bg:Sprite;
private var instructionsScreen:InstructionsScreen;
private var standardGame:StandardGame;
private var _currentScreen;
public var txtSitelock:TextField;
private var highscoresScreen:HighscoresScreen;
private var scoreHistoryScreen:ScoreHistoryScreen;
private var sponsorIntroScreen:SponsorIntroScreen;
public var txtDOM:TextField;
private var adContainer:AdContainer;
private var gameOverScreen:GameOverScreen;
public static const DEVELOPER_SITE_URL:String = "http://games.jesshansen.com";
public static const SO_NAME:String = "KablammoSO";
public static var leaderboardContainer:LeaderboardContainer;
public static var currentGame;
public static var domainIsMindjolt:Boolean;
public function Kablammo(){
var _local1:DropShadowFilter;
super();
addFrameScript(0, frame1, 2, frame3);
MindJoltSponsoredAPI.connect("ZF19F890", "9DE8545FEA82DDA1", this);
MochiBot.track(this, "07ebe96f");
leaderboardContainer = new LeaderboardContainer();
_local1 = new DropShadowFilter(3, 45, 0, 1, 3, 3, 0.3, 2);
leaderboardContainer.filters = [_local1];
txtSitelock.borderColor = 0xAAAAAA;
removeChild(txtSitelock);
loaderInfo.addEventListener(Event.INIT, checkDomain);
}
private function elKeyDown(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case 83:
SoundManager.toggleGroup("fx");
if ((((currentScreen == titleScreen)) && (SoundManager.categories.fx.enabled))){
playTitleMusic();
};
SOManager.objs[SO_NAME].data.enableSoundFX = (SettingsManager.enableSoundFX = SoundManager.categories.fx.enabled);
SOManager.flushSO(SO_NAME);
if (titleScreen){
titleScreen.updateFXText();
};
break;
};
}
private function elHighscoresSelected(_arg1:Event){
MindJoltSponsoredAPI.openLink(3);
}
private function playTitleMusic(){
SoundManager.playSound("titleMusic", {volume:0.3});
}
public function domainIsTrusted(_arg1:Array):Boolean{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:uint;
_local2 = _arg1;
_local3 = (this.loaderInfo.url.indexOf("://") + 3);
_local4 = this.loaderInfo.url.indexOf("/", _local3);
_local5 = this.loaderInfo.url.substring(_local3, _local4);
_local6 = (_local5.lastIndexOf(".") - 1);
_local7 = (_local5.lastIndexOf(".", _local6) + 1);
_local8 = _local5.substring(_local7, _local5.length);
_local9 = 0;
while (_local9 < _local2.length) {
if ((((_local8 == _local2[_local9])) || ((_local5 == _local2[_local9])))){
return (true);
};
_local9++;
};
return (false);
}
private function checkDomain(_arg1:Event=null){
var _local2:Boolean;
addEventListener(Event.ENTER_FRAME, outputDom, false, 0, true);
_local2 = domainIsTrusted(["kongregate.com"]);
if (_local2){
play();
} else {
showPreGameAd();
};
}
private function init(_arg1:Event=null){
var _local2:Array;
stage.quality = StageQuality.BEST;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
SoundManager.addSound("bombBounce", new BombBounceSound(), "fx");
SoundManager.addSound("bombBounce2", new BombBounce2Sound(), "fx");
SoundManager.addSound("bombBounce3", new BombBounce3Sound(), "fx");
SoundManager.addSound("dropBomb", new DropBombSound(), "fx");
SoundManager.addSound("dropBomb2", new DropBomb2Sound(), "fx");
SoundManager.addSound("bombExplode", new BombExplodeSound(), "fx");
SoundManager.addSound("extraLife", new ExtraLifeSound(), "fx");
SoundManager.addSound("bomberMove", new BomberMoveSound(), "fx");
SoundManager.addSound("menuItemOver", new MenuItemOverSound(), "fx");
SoundManager.addSound("menuItemClick", new MenuItemClickSound(), "fx");
SoundManager.addSound("titleMusic", new TitleMusicSound(), "fx");
SoundManager.addSound("buttonClick", new ButtonClickSound(), "fx");
SoundManager.addSound("menuItemError", new MenuItemErrorSound(), "fx");
stage.addEventListener(Event.RESIZE, elResize);
stage.addEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
elResize();
_local2 = ["mindjolt.com"];
domainIsMindjolt = domainIsTrusted(_local2);
showIntro();
}
private function elProgress(_arg1:ProgressEvent){
var _local2:uint;
_local2 = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100);
if (_local2 < 100){
adContainer.showLoading(_local2);
} else {
adContainer.showGo();
};
}
private function elResize(_arg1:Event=null){
var _local2:Matrix;
var _local3:Array;
var _local4:*;
var _local5:Array;
var _local6:Array;
if (!bg){
bg = new Sprite();
addChildAt(bg, 0);
bg.alpha = 1;
};
bg.graphics.clear();
_local2 = new Matrix();
_local2.createGradientBox(stage.stageWidth, stage.stageHeight, 0.5, 0, 0);
_local3 = [[12648962, 7143681], [13548299, 8484372], [0xAA00, 0x5500], [239288, 158069]];
_local4 = _local3[Math.floor((Math.random() * _local3.length))];
_local5 = [1, 1];
_local6 = [0, 0xFF];
bg.graphics.beginGradientFill(GradientType.LINEAR, _local4, _local5, _local6, _local2);
bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
}
private function get currentScreen(){
return (_currentScreen);
}
private function showSponsorIntroScreen(){
if (!sponsorIntroScreen){
sponsorIntroScreen = new SponsorIntroScreen();
};
addChild(sponsorIntroScreen);
Proto.center(sponsorIntroScreen);
currentScreen = sponsorIntroScreen;
}
private function showInstructionsScreen(){
if (!instructionsScreen){
instructionsScreen = new InstructionsScreen();
instructionsScreen.addEventListener("InstructionsRead", elInstructionsRead, false, 0, true);
};
addChild(instructionsScreen);
Proto.center(instructionsScreen);
currentScreen = instructionsScreen;
}
function frame3(){
init();
stop();
}
private function start(_arg1:Event=null){
play();
}
private function showIntro(_arg1:Event=null){
if (((adContainer) && (contains(adContainer)))){
removeChild(adContainer);
};
showSponsorIntroScreen();
TweenLite.delayedCall(6, go);
}
private function elGameAborted(_arg1:Event){
showTitleScreen();
}
private function submitScore(_arg1:Event=null){
}
private function outputDom(_arg1:Event){
txtDOM.text = this.loaderInfo.url;
addChild(txtDOM);
}
private function showGameOverScreen(){
if (!gameOverScreen){
gameOverScreen = new GameOverScreen();
gameOverScreen.addEventListener("SubmitScore", submitScore, false, 0, true);
gameOverScreen.addEventListener("PlayAgain", showTitleScreen, false, 0, true);
};
addChild(gameOverScreen);
currentScreen = gameOverScreen;
}
private function elStandardGameSelected(_arg1:Event){
startStandardGame();
}
private function set currentScreen(_arg1){
var _local2:*;
if (_currentScreen){
_local2 = DisplayObject(_currentScreen);
TweenLite.to(_local2, 0.3, {autoAlpha:0, ease:Regular.easeIn, overwrite:false});
_currentScreen = _arg1;
_local2 = DisplayObject(_currentScreen);
_local2.alpha = 0;
TweenLite.to(_local2, 0.3, {autoAlpha:1, overwrite:false, delay:0.4});
TweenLite.delayedCall(0.3, _local2.show);
} else {
_currentScreen = _arg1;
_local2 = DisplayObject(_currentScreen);
_local2.alpha = 0;
_local2.show();
TweenLite.to(_local2, 0.3, {autoAlpha:1, overwrite:false});
};
}
private function showScoreHistoryScreen(){
if (!scoreHistoryScreen){
scoreHistoryScreen = new ScoreHistoryScreen();
scoreHistoryScreen.addEventListener("ScoreHistoryViewed", elScoreHistoryViewed, false, 0, true);
};
addChild(scoreHistoryScreen);
currentScreen = scoreHistoryScreen;
}
function frame1(){
stop();
}
private function elScoreHistoryViewed(_arg1:Event){
showTitleScreen();
}
private function elInstructionsRead(_arg1:Event){
showTitleScreen();
}
private function showHighscoresScreen(){
if (!highscoresScreen){
highscoresScreen = new HighscoresScreen();
highscoresScreen.addEventListener("HighscoresViewed", elHighscoresViewed, false, 0, true);
};
addChild(highscoresScreen);
currentScreen = highscoresScreen;
}
private function elScoreHistorySelected(_arg1:Event){
showScoreHistoryScreen();
}
private function showPreGameAd(_arg1:Event=null){
adContainer = new AdContainer();
adContainer.addEventListener("AdViewed", elAdViewed, false, 0, true);
addChild(adContainer);
Proto.center(adContainer);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, elProgress);
}
private function showTitleScreen(_arg1:Event=null){
if (((!(currentScreen)) || (((((!((currentScreen is ScoreHistoryScreen))) && (!((currentScreen is InstructionsScreen))))) && (!((currentScreen is HighscoresScreen))))))){
playTitleMusic();
};
if (!titleScreen){
if (domainIsMindjolt){
titleScreen = new TitleScreenMindjolt();
} else {
titleScreen = new TitleScreen();
};
titleScreen.addEventListener("StandardGameSelected", elStandardGameSelected, false, 0, true);
titleScreen.addEventListener("HighscoresSelected", elHighscoresSelected, false, 0, true);
titleScreen.addEventListener("InstructionsSelected", elInstructionsSelected, false, 0, true);
titleScreen.addEventListener("ScoreHistorySelected", elScoreHistorySelected, false, 0, true);
};
addChild(titleScreen);
Proto.center(titleScreen);
currentScreen = titleScreen;
}
private function elAdViewed(_arg1:Event){
play();
}
private function startStandardGame(){
SoundManager.changeVolume("titleMusic", 0, 0.5, None.easeNone, true);
if (!standardGame){
standardGame = new StandardGame();
standardGame.addEventListener("GameOver", elGameOver, false, 0, true);
standardGame.addEventListener("GameAborted", elGameAborted, false, 0, true);
};
addChild(standardGame);
currentScreen = standardGame;
standardGame.start();
currentGame = standardGame;
}
private function elInstructionsSelected(_arg1:Event){
showInstructionsScreen();
}
private function elGameOver(_arg1:Event){
if (domainIsMindjolt){
MindJoltAPI.service.submitScore(Kablammo.currentGame.score);
} else {
showGameOverScreen();
};
}
private function go(){
SOManager.loadSO(SO_NAME);
ProgressManager.bestScore = uint(SOManager.objs[SO_NAME].data.bestScore);
ProgressManager.bestCombo = uint(SOManager.objs[SO_NAME].data.bestCombo);
ProgressManager.scoreHistory = SOManager.objs[SO_NAME].data.scoreHistory;
SettingsManager.enableSoundFX = Boolean(SOManager.objs[SO_NAME].data.enableSoundFX);
if (SettingsManager.enableSoundFX == true){
SoundManager.enableGroup("fx");
} else {
SoundManager.disableGroup("fx");
};
trace((SettingsManager.enableSoundFX + "<--"));
SettingsManager.showScoreHistoryValues = Boolean(SOManager.objs[SO_NAME].data.showScoreHistoryValues);
showTitleScreen();
}
private function elHighscoresViewed(_arg1:Event){
showTitleScreen();
}
}
}//package
Section 38
//KablammoScreen (KablammoScreen)
package {
import flash.display.*;
public class KablammoScreen extends Sprite {
private function destroy(){
}
public function show(){
}
}
}//package
Section 39
//LeaderboardContainer (LeaderboardContainer)
package {
import flash.display.*;
public dynamic class LeaderboardContainer extends MovieClip {
}
}//package
Section 40
//MenuItemClickSound (MenuItemClickSound)
package {
import flash.media.*;
public dynamic class MenuItemClickSound extends Sound {
}
}//package
Section 41
//MenuItemErrorSound (MenuItemErrorSound)
package {
import flash.media.*;
public dynamic class MenuItemErrorSound extends Sound {
}
}//package
Section 42
//MenuItemOverSound (MenuItemOverSound)
package {
import flash.media.*;
public dynamic class MenuItemOverSound extends Sound {
}
}//package
Section 43
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 44
//Pillow (Pillow)
package {
import flash.display.*;
public dynamic class Pillow extends MovieClip {
public function Pillow(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 45
//PointerResetPanel (PointerResetPanel)
package {
import gs.*;
import flash.display.*;
import fl.transitions.easing.*;
public dynamic class PointerResetPanel extends MovieClip {
public var message:MovieClip;
public var button:MovieClip;
public var tip:MovieClip;
public function PointerResetPanel(){
visible = false;
button.buttonMode = true;
}
public function hide(){
TweenLite.to(this, 0.2, {autoAlpha:0, ease:Strong.easeOut});
}
public function show(_arg1:uint){
var _local2:uint;
Proto.center(this);
_local2 = _arg1;
button.x = (-(x) + _arg1);
tip.x = (-(x) + _local2);
TweenLite.to(this, 0.3, {autoAlpha:1, ease:Strong.easeOut});
}
}
}//package
Section 46
//ProgressManager (ProgressManager)
package {
public class ProgressManager {
public static const STANDARD_LEVELS:Array = [{count:10, score:1, speedY:4, interval:0.7, bomberSpeed:9}, {count:15, score:2, speedY:6, interval:0.6, bomberSpeed:10}, {count:20, score:3, speedY:7, interval:0.5, bomberSpeed:12}, {count:25, score:4, speedY:9, interval:0.4, bomberSpeed:14}, {count:30, score:5, speedY:11, interval:0.4, bomberSpeed:16}, {count:40, score:6, speedY:13, interval:0.3, bomberSpeed:18}, {count:50, score:7, speedY:15, interval:0.3, bomberSpeed:22}, {count:75, score:8, speedY:17, interval:0.3, bomberSpeed:25}, {count:100, score:9, speedY:20, interval:0.2, bomberSpeed:30}, {count:150, score:10, speedY:22, interval:0.3, bomberSpeed:33}];
public static const CATCH_TOTALS:Array = ["Absolute beginner", "Beginner", "Veteran"];
public static const CATCH_TOTALS_BASE:uint = 1000;
private static const SCORE_HISTORY_LENGTH:uint = 20;
private static var _scoreHistory:Array;
private static var _bestCombo:uint;
private static var _bestScore:uint;
public static function set bestScore(_arg1:uint){
if (_arg1 > _bestScore){
_bestScore = Math.max(_arg1, _bestScore);
SOManager.objs[Kablammo.SO_NAME].data.bestScore = _bestScore;
};
}
public static function addScoreToHistory(_arg1:uint){
if (!_scoreHistory){
_scoreHistory = new Array();
};
_scoreHistory.push(_arg1);
_scoreHistory.splice(0, Math.max(0, (_scoreHistory.length - SCORE_HISTORY_LENGTH)));
SOManager.objs[Kablammo.SO_NAME].data.scoreHistory = _scoreHistory;
}
public static function set scoreHistory(_arg1:Array){
_scoreHistory = _arg1;
}
public static function get bestScore():uint{
return (_bestScore);
}
public static function set bestCombo(_arg1:uint){
if (_arg1 > _bestCombo){
_bestCombo = _arg1;
SOManager.objs[Kablammo.SO_NAME].data.bestCombo = _bestCombo;
};
}
public static function get bestCombo():uint{
return (_bestCombo);
}
public static function get scoreHistory():Array{
return (_scoreHistory);
}
}
}//package
Section 47
//Proto (Proto)
package {
import flash.display.*;
public class Proto {
public static var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
public static function padString(_arg1:String, _arg2:uint, _arg3:String="0", _arg4:Boolean=true):String{
var _local5:String;
var _local6:uint;
var _local7:String;
var _local8:Boolean;
var _local9:uint;
var _local10:uint;
_local5 = _arg1;
_local6 = _arg2;
_local7 = _arg3;
_local8 = _arg4;
_local9 = _local5.length;
_local10 = _local9;
while (_local10 < _local6) {
if (_local8 == true){
_local5 = (_local7 + _local5);
} else {
_local5 = (_local5 + _local7);
};
_local10++;
};
return (_local5);
}
public static function center(_arg1:DisplayObject, _arg2:DisplayObject=null){
var _local3:*;
var _local4:*;
_local3 = _arg1;
_local4 = _arg2;
if (_local4 == null){
_local3.x = (_local3.stage.stageWidth / 2);
_local3.y = (_local3.stage.stageHeight / 2);
} else {
_local3.x = (_local4.x + (_local4.width / 2));
_local3.y = (_local4.y + (_local4.height / 2));
};
}
public static function removeDupesFromArray(_arg1:Array):Array{
return (_arg1);
}
public static function domainIsTrusted(_arg1:String, _arg2:Array):Boolean{
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:uint;
_local3 = _arg2;
_local4 = (_arg1.indexOf("://") + 3);
_local5 = _arg1.indexOf("/", _local4);
_local6 = _arg1.substring(_local4, _local5);
_local7 = (_local6.lastIndexOf(".") - 1);
_local8 = (_local6.lastIndexOf(".", _local7) + 1);
_local9 = _local6.substring(_local8, _local6.length);
_local10 = 0;
while (_local10 < _local3.length) {
if ((((_local9 == _local3[_local10])) || ((_local6 == _local3[_local10])))){
return (true);
};
_local10++;
};
return (false);
}
}
}//package
Section 48
//ScoreDisplay (ScoreDisplay)
package {
import gs.*;
import flash.display.*;
import flash.text.*;
public class ScoreDisplay extends Sprite {
public var txtScore:TextField;
public var catchCombos:MovieClip;
public function ScoreDisplay(){
alpha = 0.5;
}
public function hide(){
TweenLite.to(this, 0.3, {alpha:0});
}
public function blur(){
TweenLite.to(this, 0.3, {alpha:0.3});
}
public function focus(){
TweenLite.to(this, 0.5, {alpha:0.8});
}
}
}//package
Section 49
//ScoreDisplayCatchCombo (ScoreDisplayCatchCombo)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ScoreDisplayCatchCombo extends MovieClip {
public var txtCatchCombo:TextField;
}
}//package
Section 50
//ScoreHistoryScreen (ScoreHistoryScreen)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import mochi.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public class ScoreHistoryScreen extends KablammoScreen {
public var selectionIndicator:MovieClip;
public var txtLatest:TextField;
private var graph:Graph;
public var txtNo:TextField;
public var btnAlwaysShowValues:ButtonBg;
public var goBg:MovieClip;
public var txtHeading:TextField;
public var txtAlwaysShowValues:TextField;
public var txtOldest:TextField;
public var chkAlwaysShowValues:CheckMark;
public function ScoreHistoryScreen(){
goBg.buttonMode = true;
chkAlwaysShowValues.mouseEnabled = false;
btnAlwaysShowValues.setSize(19, 19);
}
private function elGoOver(_arg1:MouseEvent){
SoundManager.playSound("menuItemOver");
TweenLite.to(selectionIndicator, 0.2, {alpha:0.5, ease:Strong.easeOut});
}
private function setAlwaysShowValues(_arg1:Event){
if (graph.showValues == "Always"){
graph.showValues = "MouseOver";
chkAlwaysShowValues.uncheck();
} else {
graph.showValues = "Always";
chkAlwaysShowValues.check();
};
SettingsManager.showScoreHistoryValues = chkAlwaysShowValues.isChecked;
}
private function elGoClick(_arg1:MouseEvent){
SoundManager.playSound("menuItemClick");
goBack();
}
private function elGoOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function goBack(){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
goBg.removeEventListener(MouseEvent.MOUSE_OVER, elGoOver);
goBg.removeEventListener(MouseEvent.MOUSE_OUT, elGoOut);
goBg.removeEventListener(MouseEvent.CLICK, elGoClick);
btnAlwaysShowValues.removeEventListener(MouseEvent.CLICK, setAlwaysShowValues);
SOManager.objs[Kablammo.SO_NAME].data.showScoreHistoryValues = SettingsManager.showScoreHistoryValues;
SOManager.flushSO(Kablammo.SO_NAME);
dispatchEvent(new Event("ScoreHistoryViewed"));
}
private function elKeyDown(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case Keyboard.ESCAPE:
goBack();
break;
};
}
override public function show(){
var _local1:GlowFilter;
if (((SOManager.objs[Kablammo.SO_NAME].data.scoreHistory) && ((SOManager.objs[Kablammo.SO_NAME].data.scoreHistory.length > 0)))){
if (!graph){
graph = new Graph(450, 185);
graph.x = 100;
graph.y = 150;
};
addChild(graph);
graph.build(SOManager.objs[Kablammo.SO_NAME].data.scoreHistory);
_local1 = new GlowFilter(0xFFFFFF, 1, 3, 3, 1);
graph.grid.filters = [_local1];
txtAlwaysShowValues.visible = (btnAlwaysShowValues.visible = (chkAlwaysShowValues.visible = (txtHeading.visible = (txtOldest.visible = (txtLatest.visible = true)))));
txtNo.visible = false;
} else {
txtAlwaysShowValues.visible = (btnAlwaysShowValues.visible = (chkAlwaysShowValues.visible = (txtHeading.visible = (txtOldest.visible = (txtLatest.visible = false)))));
txtNo.visible = true;
};
stage.addEventListener(KeyboardEvent.KEY_DOWN, elKeyDown, false, 0, true);
btnAlwaysShowValues.addEventListener(MouseEvent.CLICK, setAlwaysShowValues, false, 0, true);
goBg.addEventListener(MouseEvent.MOUSE_OVER, elGoOver, false, 0, true);
goBg.addEventListener(MouseEvent.MOUSE_OUT, elGoOut, false, 0, true);
goBg.addEventListener(MouseEvent.CLICK, elGoClick, false, 0, true);
selectionIndicator.alpha = 0;
if (SettingsManager.showScoreHistoryValues){
chkAlwaysShowValues.check();
graph.showValues = "Always";
} else {
chkAlwaysShowValues.uncheck();
graph.showValues = "MouseOver";
};
}
}
}//package
Section 51
//SettingsManager (SettingsManager)
package {
public class SettingsManager {
public static const DEFAULTS:Object = {showScoreHistoryValues:true, enabledSoundFX:true};
public static var showScoreHistoryValues:Boolean = DEFAULTS.showScoreHistoryValues;
public static var enableSoundFX:Boolean = DEFAULTS.enableSoundFX;
}
}//package
Section 52
//Sky (Sky)
package {
import flash.display.*;
public dynamic class Sky extends MovieClip {
}
}//package
Section 53
//SOManager (SOManager)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class SOManager {
public static var objs:Object = new Object();
public static function loadSO(_arg1:String){
SOManager.objs[_arg1] = SharedObject.getLocal(_arg1);
}
public static function flushSO(_arg1:String){
SOManager.objs[_arg1].flush();
}
}
}//package
Section 54
//SoundManager (SoundManager)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.filters.*;
import fl.transitions.*;
public class SoundManager extends MovieClip {
private static var _categories:Object = new Object();
private static var sounds:Object = new Object();
public static function get categories():Object{
return (_categories);
}
public static function isPlaying(_arg1:String):Boolean{
var _local2:*;
_local2 = sounds[_arg1];
return (_local2.isPlaying);
}
public static function changeGroupVolume(_arg1:String, _arg2:Number, _arg3:Number, _arg4=null, _arg5:Boolean=false){
var _local6:String;
var _local7:*;
var _local8:*;
_local6 = _arg1;
for (_local7 in sounds) {
_local8 = sounds[_local7];
if (sounds[_local7].group == _local6){
changeVolume(_local7, _arg2, _arg3, _arg4, _arg5);
};
};
}
public static function stopSound(_arg1:String){
var _local2:*;
_local2 = sounds[_arg1];
_local2.isPlaying = false;
_local2.chan.stop();
}
public static function addSound(_arg1:String, _arg2:Sound, _arg3:String=""){
var _local4:Object;
var _local5:Object;
_local4 = new Object();
_local4.sound = _arg2;
_local4.chan = new SoundChannel();
_local4.group = _arg3;
_local4.transform = new SoundTransform();
sounds[_arg1] = _local4;
if (((!((_arg3 == ""))) && (!(categories[_arg3])))){
_local5 = new Object();
_local5.enabled = true;
categories[_arg3] = _local5;
};
}
public static function init(){
}
public static function changeVolume(_arg1:String, _arg2:Number, _arg3:Number, _arg4=null, _arg5:Boolean=false){
var _local6:*;
var _local7:*;
var _local8:*;
_local6 = _arg1;
_local7 = (_arg4) ? _arg4 : None.easeNone;
if (sounds[_local6].isPlaying){
_local8 = sounds[_local6];
if (_arg5 == true){
TweenLite.to(_local8.transform, _arg3, {volume:_arg2, ease:_local7, onUpdate:applyTransform, onUpdateParams:[_local8], onComplete:stopSound, onCompleteParams:[_local6]});
} else {
TweenLite.to(_local8.transform, _arg3, {volume:_arg2, ease:_local7, onUpdate:applyTransform, onUpdateParams:[_local8]});
};
};
}
public static function toggleGroup(_arg1:String){
if (categories[_arg1].enabled == true){
disableGroup(_arg1);
} else {
enableGroup(_arg1);
};
}
public static function disableGroup(_arg1:String){
var _local2:*;
for (_local2 in sounds) {
if ((((sounds[_local2].group == _arg1)) && (sounds[_local2].isPlaying))){
stopSound(_local2);
};
};
categories[_arg1].enabled = false;
}
public static function playSound(_arg1:String, _arg2:Object=null){
var _local3:*;
var _local4:Object;
_local3 = sounds[_arg1];
if (categories[_local3.group].enabled == true){
_local4 = (_arg2) ? _arg2 : new Object();
_local3.startTime = (_local4.startTime) ? _local4.startTime : 0;
_local3.loops = (_local4.loops) ? _local4.loops : 0;
_local3.playCount = 0;
_local3.fadeInDuration = (_local4.fadeInDuration) ? _local4.fadeInDuration : 0;
_local3.fadeInEasing = (_local4.fadeInEasing) ? _local4.fadeInEasing : None.easeNone;
_local3.targetVolume = (_local4.volume) ? _local4.volume : 1;
_local3.transform.pan = (_local4.pan) ? _local4.pan : 0;
if (_local3.fadeInDuration > 0){
_local3.transform.volume = 0;
changeVolume(_arg1, _local3.targetVolume, _local3.fadeInDuration, _local3.fadeInEasing);
} else {
_local3.transform.volume = _local3.targetVolume;
};
_local3.chan = _local3.sound.play(_local3.startTime, _local3.loops, _local3.transform);
_local3.isPlaying = true;
};
}
public static function enableGroup(_arg1:String){
categories[_arg1].enabled = true;
}
private static function applyTransform(_arg1:Object){
var _local2:*;
_local2 = _arg1;
_local2.chan.soundTransform = _local2.transform;
}
}
}//package
Section 55
//SponsorIntroScreen (SponsorIntroScreen)
package {
import flash.events.*;
import flash.display.*;
public class SponsorIntroScreen extends KablammoScreen {
private var graph:Graph;
public var mindjoltIdent:MovieClip;
private var items:Array;
public function SponsorIntroScreen(){
addEventListener(Event.ADDED_TO_STAGE, elAddedToStage);
}
private function elAddedToStage(_arg1:Event){
}
}
}//package
Section 56
//SponsorLogo (SponsorLogo)
package {
import flash.display.*;
public dynamic class SponsorLogo extends MovieClip {
}
}//package
Section 57
//StandardGame (StandardGame)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import mochi.*;
import flash.filters.*;
import flash.ui.*;
public class StandardGame extends KablammoScreen {
private var maxLives:uint;// = 3
private var pointerResetPanel:PointerResetPanel;
private var bombs:Sprite;
private var paused:Boolean;
private var horizontalLine:Sprite;
private var bg:Sprite;
private var level:Object;
private var _score:uint;
private var bombsToDetonate:Array;
private var levelIndex:int;
private var pillows:Sprite;
private var _catchComboLength:uint;
private var bomber:Bomber;
private var scoreDisplay:ScoreDisplay;
private var bombIter:uint;
private var sponsorLogo:SponsorLogo;
private var bombsToDetonateIter:uint;
private var _pillowCount:uint;
public function StandardGame(){
maxLives = 3;
super();
}
private function pause(){
var _local1:uint;
var _local2:Bomb;
Mouse.show();
horizontalLine.visible = false;
bomber.stop();
TweenLite.killDelayedCallsTo(dropBomb);
_local1 = 0;
while (_local1 < bombs.numChildren) {
_local2 = Bomb(bombs.getChildAt(_local1));
if (_local2.isAlive){
_local2.stop();
};
_local1++;
};
paused = true;
}
private function stop(_arg1:Boolean=true){
var _local2:uint;
var _local3:Bomb;
if (_arg1 == true){
ProgressManager.bestScore = score;
ProgressManager.bestCombo = catchComboLength;
ProgressManager.addScoreToHistory(score);
SOManager.flushSO(Kablammo.SO_NAME);
};
stage.removeEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, elMouseMove);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playPreviousLevel);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playNextLevel);
bomber.stop();
_local2 = 0;
while (_local2 < bombs.numChildren) {
_local3 = Bomb(bombs.getChildAt(_local2));
if (_local3.isAlive){
_local3.stop();
};
_local2++;
};
TweenLite.killDelayedCallsTo(dropBomb);
Mouse.show();
}
public function set score(_arg1:uint){
_score = _arg1;
scoreDisplay.txtScore.text = _score.toString();
}
private function dropBomb(){
var _local1:Number;
var _local2:Bomb;
var _local3:*;
_local1 = ((bomber.x / (stage.stageWidth / 2)) - 1);
SoundManager.playSound("dropBomb2", {pan:_local1});
_local2 = new Bomb(level.speedY);
_local2.addEventListener("BombAtBottom", elBombAtBottom, false, 0, true);
_local2.x = bomber.x;
_local2.y = (bomber.y + 20);
_local2.index = bombIter;
bombs.addChild(_local2);
_local2.fall();
bombIter++;
bomber.resetDummyBomb();
if (bombIter < level.count){
_local3 = (level.interval) ? level.interval : ((Math.random() * (level.maxInterval - level.minInterval)) + level.minInterval);
TweenLite.delayedCall(_local3, dropBomb);
} else {
bomber.stop();
SoundManager.stopSound("bomberMove");
};
}
private function resume(_arg1:MouseEvent=null){
var _local2:uint;
var _local3:*;
var _local4:Bomb;
Mouse.hide();
pointerResetPanel.hide();
pointerResetPanel.button.removeEventListener(MouseEvent.MOUSE_DOWN, resume);
horizontalLine.visible = true;
bomber.move();
_local3 = (level.interval) ? level.interval : ((Math.random() * (level.maxInterval - level.minInterval)) + level.minInterval);
TweenLite.delayedCall(_local3, dropBomb);
_local2 = 0;
while (_local2 < bombs.numChildren) {
_local4 = Bomb(bombs.getChildAt(_local2));
if (_local4.isAlive){
_local4.fall();
};
_local2++;
};
paused = false;
}
private function elMouseMove(_arg1:MouseEvent){
var _local2:*;
pillows.x = stage.mouseX;
horizontalLine.y = stage.mouseY;
_local2 = Math.max(1, Math.abs((stage.mouseY - (stage.stageHeight / 2))));
horizontalLine.alpha = (((_local2 / (stage.stageHeight / 2)) / 2.5) + 0.1);
}
private function elMouseLeave(_arg1:Event){
var _local2:uint;
if (!paused){
pause();
if (!pointerResetPanel){
pointerResetPanel = new PointerResetPanel();
};
pointerResetPanel.button.addEventListener(MouseEvent.MOUSE_DOWN, resume, false, 0, true);
addChild(pointerResetPanel);
_local2 = Math.min((stage.stageWidth - 25), stage.mouseX);
_local2 = Math.max(25, _local2);
pointerResetPanel.show(_local2);
};
}
public function start(){
var _local1:uint;
var _local2:uint;
var _local3:Sprite;
var _local4:Pillow;
Mouse.hide();
if (!bg){
bg = new Sprite();
bg.cacheAsBitmap = true;
_local1 = 0;
while (_local1 < (stage.stageHeight / 10)) {
_local2 = 0;
while (_local2 < (stage.stageWidth / 10)) {
_local3 = new Sprite();
_local3.graphics.beginFill(0xFFFFFF, 0.1);
_local3.graphics.drawCircle(0, 0, 4);
_local3.graphics.endFill();
_local3.x = (_local2 * 10);
_local3.y = (_local1 * 10);
bg.addChild(_local3);
_local2++;
};
_local1++;
};
};
if (!horizontalLine){
horizontalLine = new Sprite();
horizontalLine.graphics.beginFill(0xFFFFFF);
horizontalLine.graphics.drawRect(0, 0, stage.stageWidth, 2);
horizontalLine.graphics.endFill();
horizontalLine.alpha = 0.2;
};
horizontalLine.visible = true;
addChild(horizontalLine);
if (!scoreDisplay){
scoreDisplay = new ScoreDisplay();
};
addChild(scoreDisplay);
Proto.center(scoreDisplay);
scoreDisplay.focus();
if (!sponsorLogo){
sponsorLogo = new SponsorLogo();
sponsorLogo.scaleX = (sponsorLogo.scaleY = 0.8);
sponsorLogo.y = ((-(sponsorLogo.height) / 2) - 80);
sponsorLogo.alpha = 1;
scoreDisplay.addChild(sponsorLogo);
};
if (!bombs){
bombs = new Sprite();
};
addChild(bombs);
while (bombs.numChildren > 0) {
Bomb(bombs.getChildAt(0)).destroy();
};
if (!bomber){
bomber = new Bomber();
};
bomber.x = (stage.stageWidth / 2);
addChild(bomber);
if (!pillows){
pillows = new Sprite();
pillows.x = stage.mouseX;
pillows.y = (stage.stageHeight - 30);
_local1 = 0;
while (_local1 < maxLives) {
_local4 = new Pillow();
_local4.y = (-(((maxLives - 1) * 35)) + (_local1 * 35));
_local4.name = ("pillow_" + _local1);
pillows.addChild(_local4);
_local1++;
};
};
addChild(pillows);
pillowCount = 3;
score = 0;
levelIndex = -1;
while (scoreDisplay.catchCombos.numChildren > 0) {
scoreDisplay.catchCombos.removeChildAt(0);
};
catchComboLength = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, elKeyDown, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_MOVE, elMouseMove, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_DOWN, playNextLevel, false, 0, true);
}
private function elBombAtBottom(_arg1:Event){
loseLife();
}
private function get catchComboLength():uint{
return (_catchComboLength);
}
private function detonateNextBomb(){
var _local1:Bomb;
_local1 = Bomb(bombsToDetonate[bombsToDetonateIter]);
_local1.detonate();
bombsToDetonateIter++;
if (bombsToDetonateIter < bombsToDetonate.length){
TweenLite.delayedCall(0.2, detonateNextBomb);
} else {
pillowCount--;
if (pillowCount == 0){
endGame();
} else {
stage.addEventListener(MouseEvent.MOUSE_DOWN, playPreviousLevel);
};
};
}
private function elEnterFrame(_arg1:Event){
var _local2:uint;
var _local3:uint;
var _local4:Bomb;
var _local5:Pillow;
var _local6:*;
var _local7:*;
var _local8:*;
_local2 = 0;
while (_local2 < bombs.numChildren) {
_local4 = Bomb(bombs.getChildAt(_local2));
_local3 = 0;
while (_local3 < pillowCount) {
_local5 = Pillow(pillows.getChildAt(_local3));
if (((_local4.isAlive) && (_local4.hitTestObject(_local5)))){
_local4.die();
_local5.play();
_local6 = score;
score = (score + level.score);
_local7 = Math.floor((_local6 / 1000));
_local8 = Math.floor((score / 1000));
if ((((_local8 > _local7)) && ((pillowCount < maxLives)))){
pillowCount++;
SoundManager.playSound("extraLife");
};
catchComboLength++;
if (_local4.index == (level.count - 1)){
ProgressManager.bestScore = score;
scoreDisplay.focus();
stage.addEventListener(MouseEvent.MOUSE_DOWN, playNextLevel, false, 0, true);
stage.removeEventListener(Event.MOUSE_LEAVE, elMouseLeave);
};
};
_local3++;
};
_local2++;
};
}
private function submitScore(){
Mouse.show();
scoreDisplay.hide();
Kablammo.leaderboardContainer.y = 0;
addChild(Kablammo.leaderboardContainer);
horizontalLine.visible = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, elMouseMove);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playPreviousLevel);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playNextLevel);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, elKeyDown);
}
private function set pillowCount(_arg1:uint){
var _local2:uint;
var _local3:*;
var _local4:Pillow;
_local3 = Math.min(maxLives, _arg1);
_local2 = 0;
while (_local2 < maxLives) {
_local4 = Pillow(pillows.getChildByName(("pillow_" + _local2)));
if (_local2 < _local3){
_local4.visible = true;
} else {
_local4.visible = false;
};
_local2++;
};
_pillowCount = _local3;
}
public function get score():uint{
return (_score);
}
private function playNextLevel(_arg1:MouseEvent){
var _local2:*;
_local2 = Math.min((ProgressManager.STANDARD_LEVELS.length - 1), (levelIndex + 1));
playLevel(_local2);
}
private function endGame(){
stop();
dispatchEvent(new Event("GameOver"));
}
private function playLevel(_arg1:uint){
var _local2:*;
Mouse.hide();
stage.addEventListener(Event.ENTER_FRAME, elEnterFrame, false, 0, true);
stage.addEventListener(Event.MOUSE_LEAVE, elMouseLeave, false, 0, true);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playNextLevel);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, playPreviousLevel);
levelIndex = _arg1;
level = ProgressManager.STANDARD_LEVELS[levelIndex];
bombIter = 0;
bomber.speed = level.bomberSpeed;
bomber.move();
_local2 = (level.interval) ? level.interval : ((Math.random() * (level.maxInterval - level.minInterval)) + level.minInterval);
TweenLite.delayedCall(_local2, dropBomb);
scoreDisplay.blur();
}
private function loseLife(){
var _local1:uint;
var _local2:Bomb;
stage.removeEventListener(Event.MOUSE_LEAVE, elMouseLeave);
scoreDisplay.focus();
bomber.stop();
TweenLite.killDelayedCallsTo(dropBomb);
if (!bombsToDetonate){
bombsToDetonate = new Array();
};
bombsToDetonate = [];
ProgressManager.bestCombo = catchComboLength;
SOManager.flushSO(Kablammo.SO_NAME);
catchComboLength = 0;
_local1 = 0;
while (_local1 < bombs.numChildren) {
_local2 = Bomb(bombs.getChildAt(_local1));
if (_local2.isAlive){
_local2.stop();
bombsToDetonate.push(_local2);
};
_local1++;
};
bombsToDetonateIter = 0;
detonateNextBomb();
}
private function get pillowCount():uint{
return (_pillowCount);
}
private function set catchComboLength(_arg1:uint){
var _local2:ScoreDisplayCatchCombo;
var _local3:uint;
var _local4:ScoreDisplayCatchCombo;
_catchComboLength = _arg1;
_local2 = new ScoreDisplayCatchCombo();
_local2.txtCatchCombo.text = (_catchComboLength + "x");
if (_catchComboLength == 0){
TweenLite.from(_local2, 0.3, {alpha:0, y:"-23", ease:Strong.easeOut});
_local3 = 0;
while (_local3 < scoreDisplay.catchCombos.numChildren) {
_local4 = ScoreDisplayCatchCombo(scoreDisplay.catchCombos.getChildAt(_local3));
TweenLite.to(_local4, 0.5, {y:"23", ease:Strong.easeOut});
TweenLite.to(_local4, 2, {alpha:0, ease:None.easeNone, overwrite:false, onComplete:scoreDisplay.catchCombos.removeChild, onCompleteParams:[_local4]});
_local3++;
};
} else {
while (scoreDisplay.catchCombos.numChildren > 0) {
TweenLite.killTweensOf(scoreDisplay.catchCombos.getChildAt(0));
scoreDisplay.catchCombos.removeChildAt(0);
};
};
scoreDisplay.catchCombos.addChild(_local2);
}
private function playPreviousLevel(_arg1:MouseEvent){
var _local2:*;
_local2 = Math.max(0, (levelIndex - 1));
playLevel(_local2);
}
private function elKeyDown(_arg1:KeyboardEvent){
switch (_arg1.keyCode){
case Keyboard.ESCAPE:
stop();
dispatchEvent(new Event("GameAborted"));
break;
};
}
}
}//package
Section 58
//Title (Title)
package {
import flash.display.*;
public dynamic class Title extends MovieClip {
}
}//package
Section 59
//TitleMusicSound (TitleMusicSound)
package {
import flash.media.*;
public dynamic class TitleMusicSound extends Sound {
}
}//package
Section 60
//TitleScreen (TitleScreen)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import com.mindjolt.api.as3.*;
import flash.text.*;
import flash.net.*;
import flash.filters.*;
public class TitleScreen extends KablammoScreen {
public var selectionIndicator:MovieClip;
public var standardGameBg:MovieClip;
public var txtScoreHistory:TextField;
public var sponsorLink:MovieClip;
public var txtFX:TextField;
public var txtPBCombo:TextField;
public var txtPBScore:TextField;
public var evenMoreGamesBg:MovieClip;
private var graph:Graph;
public var scoreHistoryBg:MovieClip;
private var items:Array;
public var instructionsBg:MovieClip;
public var moreGamesBg:MovieClip;
public var txtStandardGame:TextField;
public var highscoresBg:MovieClip;
public function TitleScreen(){
var _local1:uint;
var _local2:*;
super();
items = [{obj:standardGameBg}, {obj:highscoresBg}, {obj:instructionsBg}, {obj:moreGamesBg}, {obj:scoreHistoryBg}, {obj:evenMoreGamesBg}];
_local1 = 0;
while (_local1 < items.length) {
_local2 = items[_local1].obj;
_local2.buttonMode = true;
_local2.addEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem, false, 0, true);
_local2.addEventListener(MouseEvent.CLICK, elMouseDown, false, 0, true);
_local2.addEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut, false, 0, true);
_local1++;
};
addEventListener(Event.ADDED_TO_STAGE, elAddedToStage);
sponsorLink.logo.buttonMode = true;
sponsorLink.txtMore.mouseEnabled = false;
sponsorLink.logo.addEventListener(MouseEvent.CLICK, elSponsorLogoClick, false, 0, true);
}
private function elMouseDown(_arg1:MouseEvent){
SoundManager.playSound("menuItemClick");
stage.removeEventListener(MouseEvent.MOUSE_DOWN, elMouseDown);
switch (_arg1.target){
case standardGameBg:
dispatchEvent(new Event("StandardGameSelected"));
break;
case highscoresBg:
dispatchEvent(new Event("HighscoresSelected"));
break;
case instructionsBg:
dispatchEvent(new Event("InstructionsSelected"));
break;
case moreGamesBg:
navigateToURL(new URLRequest(Kablammo.DEVELOPER_SITE_URL), "_blank");
break;
case scoreHistoryBg:
dispatchEvent(new Event("ScoreHistorySelected"));
break;
case evenMoreGamesBg:
MindJoltSponsoredAPI.openLink(2);
};
}
public function updateFXText(){
txtFX.text = (SettingsManager.enableSoundFX) ? "Sound is ON. Press S to turn it off" : "Sound is OFF. Press S to turn it on";
}
private function elSponsorLogoClick(_arg1:MouseEvent){
MindJoltSponsoredAPI.openLink(6);
}
private function elAddedToStage(_arg1:Event){
}
private function elMenuItemOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function highlightMenuItem(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = _arg1.target;
selectionIndicator.x = _local2.x;
_local3 = -13;
if (_local2 == evenMoreGamesBg){
_local3 = (_local3 - 12);
};
selectionIndicator.y = (_local2.getBounds(this).bottom + _local3);
selectionIndicator.width = _local2.width;
TweenLite.to(selectionIndicator, 0.4, {alpha:0.5, ease:Strong.easeOut});
SoundManager.playSound("menuItemOver");
}
override public function show(){
selectionIndicator.alpha = 0;
txtPBScore.text = ("Highest score: " + uint(SOManager.objs[Kablammo.SO_NAME].data.bestScore));
txtPBCombo.text = (("Longest combo: " + uint(SOManager.objs[Kablammo.SO_NAME].data.bestCombo)) + "x");
updateFXText();
}
}
}//package
Section 61
//TitleScreenMindjolt (TitleScreenMindjolt)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import com.mindjolt.api.as3.*;
import flash.text.*;
import flash.net.*;
import flash.filters.*;
public class TitleScreenMindjolt extends KablammoScreen {
public var selectionIndicator:MovieClip;
public var standardGameBg:MovieClip;
public var sponsorLink:MovieClip;
public var txtFX:TextField;
public var txtPBCombo:TextField;
public var txtPBScore:TextField;
public var evenMoreGamesBg:MovieClip;
private var graph:Graph;
public var scoreHistoryBg:MovieClip;
private var items:Array;
public var instructionsBg:MovieClip;
public var moreGamesBg:MovieClip;
public var txtStandardGame:TextField;
public var highscoresBg:MovieClip;
public function TitleScreenMindjolt(){
var _local1:uint;
var _local2:*;
super();
items = [{obj:standardGameBg}, {obj:highscoresBg}, {obj:instructionsBg}, {obj:moreGamesBg}, {obj:scoreHistoryBg}, {obj:evenMoreGamesBg}];
_local1 = 0;
while (_local1 < items.length) {
_local2 = items[_local1].obj;
_local2.buttonMode = true;
_local2.addEventListener(MouseEvent.MOUSE_OVER, highlightMenuItem, false, 0, true);
_local2.addEventListener(MouseEvent.CLICK, elMouseDown, false, 0, true);
_local2.addEventListener(MouseEvent.MOUSE_OUT, elMenuItemOut, false, 0, true);
_local1++;
};
addEventListener(Event.ADDED_TO_STAGE, elAddedToStage);
sponsorLink.buttonMode = true;
sponsorLink.txtMore.mouseEnabled = false;
sponsorLink.logo.addEventListener(MouseEvent.CLICK, elSponsorLogoClick, false, 0, true);
}
private function elMouseDown(_arg1:MouseEvent){
SoundManager.playSound("menuItemClick");
stage.removeEventListener(MouseEvent.MOUSE_DOWN, elMouseDown);
switch (_arg1.target){
case standardGameBg:
dispatchEvent(new Event("StandardGameSelected"));
break;
case highscoresBg:
dispatchEvent(new Event("HighscoresSelected"));
break;
case instructionsBg:
dispatchEvent(new Event("InstructionsSelected"));
break;
case moreGamesBg:
navigateToURL(new URLRequest(Kablammo.DEVELOPER_SITE_URL), "_blank");
break;
case scoreHistoryBg:
dispatchEvent(new Event("ScoreHistorySelected"));
break;
case evenMoreGamesBg:
MindJoltSponsoredAPI.openLink(2);
};
}
public function updateFXText(){
txtFX.text = (SettingsManager.enableSoundFX) ? "Sound effects are ON. Press S to turn them off" : "Sound effects are OFF. Press S to turn them on";
}
private function elSponsorLogoClick(_arg1:MouseEvent){
MindJoltSponsoredAPI.openLink(6);
}
private function elAddedToStage(_arg1:Event){
}
private function elMenuItemOut(_arg1:MouseEvent){
TweenLite.to(selectionIndicator, 0.4, {alpha:0, ease:Strong.easeOut});
}
private function highlightMenuItem(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = _arg1.target;
selectionIndicator.x = _local2.x;
_local3 = -13;
if (_local2 == evenMoreGamesBg){
_local3 = (_local3 - 12);
};
selectionIndicator.y = (_local2.getBounds(this).bottom + _local3);
selectionIndicator.width = _local2.width;
TweenLite.to(selectionIndicator, 0.4, {alpha:0.5, ease:Strong.easeOut});
SoundManager.playSound("menuItemOver");
}
override public function show(){
selectionIndicator.alpha = 0;
txtPBScore.text = ("Highest score: " + uint(SOManager.objs[Kablammo.SO_NAME].data.bestScore));
txtPBCombo.text = (("Longest combo: " + uint(SOManager.objs[Kablammo.SO_NAME].data.bestCombo)) + "x");
updateFXText();
}
}
}//package
Section 62
//Tooltip (Tooltip)
package {
import gs.*;
import flash.events.*;
import flash.display.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public class Tooltip extends Sprite {
var arrow:Sprite;
var bgInitX:Number;
var textInitX:Number;
var text:Sprite;
var isShowing:Boolean;
var bg:Sprite;
public var defaultTextFormat:TextFormat;
var otherParams:Object;
public function Tooltip(){
alpha = 0;
mouseEnabled = false;
mouseChildren = false;
defaultTextFormat = new TextFormat();
defaultTextFormat.font = "ProggyCleanTT";
defaultTextFormat.size = 15;
addEventListener(Event.REMOVED_FROM_STAGE, elRemovedFromStage, false, 0, true);
}
public function hide(){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, adjustPosition);
stage.removeEventListener(Event.ENTER_FRAME, elEnterFrame);
isShowing = false;
TweenLite.to(this, 0.5, {autoAlpha:0, ease:Strong.easeOut});
}
private function elEnterFrame(_arg1:Event){
parent.addChild(this);
}
private function elRemovedFromStage(_arg1:Event){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, adjustPosition);
stage.removeEventListener(Event.ENTER_FRAME, elEnterFrame);
}
private function adjustPosition(_arg1:MouseEvent=null){
if (x < ((bgInitX * -1) + 5)){
bg.x = (-(x) + 5);
text.x = (bg.x + 3);
} else {
if (x > ((stage.stageWidth - (bgInitX * -1)) - 5)){
bg.x = (-((bg.width - (stage.stageWidth - x))) - 5);
text.x = (bg.x + 3);
} else {
bg.x = bgInitX;
text.x = textInitX;
};
};
}
public function show(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Object=null){
var _local5:TextField;
otherParams = (_arg4) ? _arg4 : new Object();
otherParams.arrowAngle = (otherParams.arrowAngle) ? otherParams.arrowAngle : 0;
otherParams.followMouse = (otherParams.followMouse) ? otherParams.followMouse : false;
otherParams.textFormat = (otherParams.textFormat) ? otherParams.textFormat : defaultTextFormat;
otherParams.stayOnTop = (otherParams.stayOnTop) ? otherParams.stayOnTop : true;
otherParams.destAlpha = (otherParams.destAlpha) ? otherParams.destAlpha : 1;
otherParams.textOnly = (otherParams.textOnly) ? otherParams.textOnly : false;
if (((text) && (contains(text)))){
removeChild(text);
};
if (((bg) && (contains(bg)))){
removeChild(bg);
};
if (((arrow) && (contains(arrow)))){
removeChild(arrow);
};
bg = new Sprite();
if (otherParams.textOnly == true){
bg.visible = false;
};
text = new Sprite();
arrow = new Sprite();
if (otherParams.textOnly == true){
arrow.visible = false;
};
addChild(bg);
addChild(arrow);
addChild(text);
arrow.graphics.beginFill(0xFFFFFF);
arrow.graphics.moveTo(-10, -5);
arrow.graphics.lineTo(0, 0);
arrow.graphics.lineTo(-10, 5);
arrow.graphics.lineTo(-10, -5);
arrow.graphics.endFill();
arrow.rotation = otherParams.arrowAngle;
_local5 = new TextField();
_local5.autoSize = TextFieldAutoSize.LEFT;
_local5.htmlText = _arg3;
_local5.setTextFormat(otherParams.textFormat);
text.addChild(_local5);
bg.graphics.beginFill(0xFFFFFF);
bg.graphics.drawRect(0, 0, (_local5.width + 10), _local5.height);
bg.graphics.endFill();
bg.width = (_local5.width + 10);
x = Math.floor(_arg1);
y = Math.floor(_arg2);
switch (otherParams.arrowAngle){
case 0:
bg.x = -(((_local5.width + 10) + arrow.width));
bg.y = (-(bg.height) / 2);
break;
case 90:
bg.x = (-(bg.width) / 2);
bg.y = -25.5;
break;
case 180:
bg.y = (-(bg.height) / 2);
bg.x = arrow.width;
break;
default:
break;
};
bgInitX = bg.x;
textInitX = text.x;
_local5.x = int((bg.x + 5));
_local5.y = int(bg.y);
if (otherParams.followMouse == true){
stage.addEventListener(MouseEvent.MOUSE_MOVE, adjustPosition, false, 0, true);
};
if (otherParams.stayOnTop == true){
stage.addEventListener(Event.ENTER_FRAME, elEnterFrame, false, 0, true);
};
TweenLite.to(this, 0.5, {autoAlpha:otherParams.destAlpha, ease:Strong.easeOut});
isShowing = true;
parent.addChild(this);
}
}
}//package