Section 1
//png (clock1.png)
package clock1 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock1
Section 2
//png (clock10.png)
package clock10 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock10
Section 3
//png (clock11.png)
package clock11 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock11
Section 4
//png (clock12.png)
package clock12 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock12
Section 5
//png (clock13.png)
package clock13 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock13
Section 6
//png (clock14.png)
package clock14 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock14
Section 7
//png (clock15.png)
package clock15 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock15
Section 8
//png (clock16.png)
package clock16 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock16
Section 9
//png (clock17.png)
package clock17 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock17
Section 10
//png (clock18.png)
package clock18 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock18
Section 11
//png (clock19.png)
package clock19 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock19
Section 12
//png (clock2.png)
package clock2 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock2
Section 13
//png (clock20.png)
package clock20 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock20
Section 14
//png (clock21.png)
package clock21 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock21
Section 15
//png (clock22.png)
package clock22 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock22
Section 16
//png (clock23.png)
package clock23 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock23
Section 17
//png (clock24.png)
package clock24 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock24
Section 18
//png (clock25.png)
package clock25 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock25
Section 19
//png (clock26.png)
package clock26 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock26
Section 20
//png (clock27.png)
package clock27 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock27
Section 21
//png (clock28.png)
package clock28 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock28
Section 22
//png (clock29.png)
package clock29 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock29
Section 23
//png (clock3.png)
package clock3 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock3
Section 24
//png (clock30.png)
package clock30 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock30
Section 25
//png (clock31.png)
package clock31 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock31
Section 26
//png (clock32.png)
package clock32 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock32
Section 27
//png (clock33.png)
package clock33 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock33
Section 28
//png (clock34.png)
package clock34 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock34
Section 29
//png (clock35.png)
package clock35 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock35
Section 30
//png (clock36.png)
package clock36 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock36
Section 31
//png (clock37.png)
package clock37 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock37
Section 32
//png (clock38.png)
package clock38 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock38
Section 33
//png (clock39.png)
package clock39 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock39
Section 34
//png (clock4.png)
package clock4 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock4
Section 35
//png (clock40.png)
package clock40 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock40
Section 36
//png (clock41.png)
package clock41 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock41
Section 37
//png (clock42.png)
package clock42 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock42
Section 38
//png (clock43.png)
package clock43 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock43
Section 39
//png (clock44.png)
package clock44 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock44
Section 40
//png (clock45.png)
package clock45 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock45
Section 41
//png (clock46.png)
package clock46 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock46
Section 42
//png (clock47.png)
package clock47 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock47
Section 43
//png (clock48.png)
package clock48 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock48
Section 44
//png (clock49.png)
package clock49 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock49
Section 45
//png (clock5.png)
package clock5 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock5
Section 46
//png (clock50.png)
package clock50 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock50
Section 47
//png (clock51.png)
package clock51 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock51
Section 48
//png (clock52.png)
package clock52 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock52
Section 49
//png (clock53.png)
package clock53 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock53
Section 50
//png (clock54.png)
package clock54 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock54
Section 51
//png (clock55.png)
package clock55 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock55
Section 52
//png (clock56.png)
package clock56 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock56
Section 53
//png (clock57.png)
package clock57 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock57
Section 54
//png (clock58.png)
package clock58 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock58
Section 55
//png (clock59.png)
package clock59 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock59
Section 56
//png (clock6.png)
package clock6 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock6
Section 57
//png (clock60.png)
package clock60 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock60
Section 58
//png (clock7.png)
package clock7 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock7
Section 59
//png (clock8.png)
package clock8 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock8
Section 60
//png (clock9.png)
package clock9 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package clock9
Section 61
//IGameController (controller.IGameController)
package controller {
import flash.events.*;
public interface IGameController {
function togglePause():void;
function startGame(_arg1:MouseEvent):void;
function gameCompleted(_arg1:String, _arg2:String):void;
function instructionBtnClick():void;
}
}//package controller
Section 62
//ScarabGameController (controller.ScarabGameController)
package controller {
import flash.events.*;
import model.*;
import view.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.net.*;
public class ScarabGameController extends EventDispatcher {
private const INTROCOMPLETE:int = 5;
private const MOVECARDS:int = 0;
private const PLAYSCARAB:int = 2;
private const COMPLETE:int = 6;
private const SHOWFIRSTCARD:int = 4;
private const CHANGETOPCARDS:int = 3;
private const FLIP10CARDS:int = 1;
private var _view:ScarabGameView;
private var _scoreTween:Tween;
private var _main:ScarabSolitaireGame;
private var _musicManager:MusicManager;
private var _model:ScarabGameModel;
private var _acceptingInput:Boolean;// = false
private var _gameOver:Boolean;// = false
private var _paused:Boolean;// = false
private var _introSequence:int;// = 0
private var _flipTimer:Timer;
private var _scoreScreen:AbstractScoreScreen;
private var _cardsLeftTimer:Timer;
public function ScarabGameController(_arg1:ScarabGameModel){
_acceptingInput = false;
_gameOver = false;
_paused = false;
_introSequence = MOVECARDS;
super();
_model = _arg1;
_model.addEventListener("deckEmpty", checkIfGameOver, false, 0, true);
_model.addEventListener("levelCompleted", levelCompleted, false, 0, true);
_main = ScarabSolitaireGame.MainGame;
_musicManager = MusicManager.getInstance();
_musicManager.controller = this;
_main.addChild(_musicManager);
init();
}
private function playLevelCompleteAnimation():void{
var _local1:int;
_local1 = ((_model.getNumberOfCardsLeftInDeck() + 1) + 10);
if (_local1 != 0){
_cardsLeftTimer = new Timer(200, _local1);
_cardsLeftTimer.addEventListener(TimerEvent.TIMER, onCardsLeftTimer, false, 0, true);
_cardsLeftTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onCardsLeftTimerComplete, false, 0, true);
_cardsLeftTimer.start();
} else {
levelAnimationComplete();
};
}
private function playAgain(_arg1:Event=null):void{
_view.removeEventListener(Consts.HOWTOPLAYCLICK, onHowToPlayClick);
_view.removeEventListener(Consts.PLAYCLICK, onPlayClick);
_view.removeEventListener(Consts.BACKCLICK, onHowToPlayBackClick);
_view.removeEventListener(Consts.DECKDRAG, onDeckDrag);
_view.removeEventListener(Consts.GAMARENACLICK, gotoGamarena);
_view.removeEventListener(Consts.PLAYAGAINCLICK, playAgain);
_model.removeEventListener("deckEmpty", checkIfGameOver);
_model.removeEventListener("levelCompleted", levelCompleted);
if (_view != null){
if (_view.parent == _main){
_main.removeChild(_view);
};
};
ImageManager.getInstance().init();
Score.getInstance().init();
ScarabSolitaireGame.MainGame.playAgain();
}
private function init():void{
_view = new ScarabGameView(this, _model);
_view.addEventListener(Consts.HOWTOPLAYCLICK, onHowToPlayClick, false, 0, true);
_view.addEventListener(Consts.PLAYCLICK, onPlayClick, false, 0, true);
_view.addEventListener(Consts.BACKCLICK, onHowToPlayBackClick, false, 0, true);
_view.addEventListener(Consts.DECKDRAG, onDeckDrag, false, 0, true);
_view.addEventListener(Consts.GAMARENACLICK, gotoGamarena, false, 0, true);
_view.addEventListener(Consts.PLAYAGAINCLICK, playAgain, false, 0, true);
_main.addChild(_view);
_view.createCards();
_view.displaySplash();
}
private function gotoGamarena(_arg1:Event=null):void{
var _local2:URLRequest;
_local2 = new URLRequest("https://www.gamarena.com/w/v/client/info?action=partner&id=pdp126");
navigateToURL(_local2, "_blank");
}
private function onFlipTimerComplete(_arg1:TimerEvent):void{
playIntro();
}
public function pauseGame():void{
_paused = true;
_acceptingInput = false;
_model.stopClock();
}
public function startGame():void{
_view.displayBackground();
_view.displayScoreFadeText();
_view.displayScarab();
_view.displayClockView();
_view.displayBoard();
_view.displayCards();
_view.displayTopBar();
playIntro();
playMusic();
}
private function onHowToPlayBackClick(_arg1:Event=null):void{
_view.removeHowToPlay();
}
private function onCardsLeftTimer(_arg1:TimerEvent):void{
if (_model.getNumberOfCardsLeftInDeck() > -1){
_model.revealTopDeckCard();
Score.getInstance().cardLeftAddToScore();
};
}
private function onPlayClick(_arg1:Event=null):void{
startGame();
}
private function levelCompleted(_arg1:Event):void{
Clock.getInstance().stop();
_acceptingInput = false;
playLevelCompleteAnimation();
}
public function playIntro():void{
switch (_introSequence){
case MOVECARDS:
_introSequence = FLIP10CARDS;
_view.moveCards();
break;
case FLIP10CARDS:
_introSequence = PLAYSCARAB;
flip10Cards();
break;
case PLAYSCARAB:
_introSequence = CHANGETOPCARDS;
_view.playScarab();
break;
case CHANGETOPCARDS:
_introSequence = SHOWFIRSTCARD;
_view.changeTopCards();
break;
case SHOWFIRSTCARD:
_introSequence = INTROCOMPLETE;
showFirstCard();
break;
case INTROCOMPLETE:
_introSequence = COMPLETE;
introComplete();
break;
};
}
public function cardClicked(_arg1:CardModel):void{
if (_acceptingInput){
if (_model.isLegal(_arg1)){
if (!_model.isDeckCard(_arg1)){
if (_arg1.cardScore == 1000){
_view.addScarabPiece();
};
_model.cardScore(_arg1);
_model.newCheckCard(_arg1);
};
} else {
if (_model.isDeckCard(_arg1)){
_model.revealTopDeckCard();
} else {
if (_arg1.removed){
_model.revealTopDeckCard();
};
};
};
};
}
public function resumeGame():void{
_paused = false;
_acceptingInput = true;
_model.resumeClock();
}
private function onWaitCompleted(_arg1:Event=null):void{
var score:int;
var level:int;
var event = _arg1;
try {
score = Score.getInstance().getGameOverTotalScore();
level = _model.currentLevel;
if (_gameOver){
level = 6;
};
if (_scoreScreen != null){
if (_scoreScreen.parent == _view){
_view.removeChild(_scoreScreen);
};
};
_view.displayProfile();
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function onHowToPlayClick(_arg1:Event=null):void{
_view.displayHowToPlay();
}
private function checkIfGameOver(_arg1:Event):void{
var noMoreMovesTween:NoMoreMovesTween;
var event = _arg1;
try {
if (_acceptingInput){
if (_model.isGameOver()){
dispatchEvent(new Event("GameOver"));
_acceptingInput = false;
_gameOver = true;
_musicManager.stopMusic();
noMoreMovesTween = new NoMoreMovesTween();
noMoreMovesTween.addEventListener("playFadeComplete", showGameOverScreen);
_view.displayNoMoreMovesTween(noMoreMovesTween);
noMoreMovesTween.playFade();
};
};
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function introComplete():void{
if (!_paused){
Clock.getInstance().start();
_acceptingInput = true;
};
}
private function showGameOverScreen(_arg1:Event):void{
var noMoreMovesTween:NoMoreMovesTween;
var event = _arg1;
try {
noMoreMovesTween = NoMoreMovesTween(event.target);
noMoreMovesTween.removeEventListener("playFadeComplete", showGameOverScreen);
_view.removeNoMoreMovesTween();
onWaitCompleted();
} catch(e:Error) {
};
}
public function levelScoreTimerComplete():void{
_model.resetLevel();
_model.incrementLevel();
_view.removeChild(_scoreScreen);
_view.resetCards();
_view.setCardImages();
_view.moveCardsToDefault();
_view.resetScarab();
resetIntro();
playIntro();
}
private function playMusic():void{
_musicManager.startMusic();
}
private function resetIntro():void{
_introSequence = MOVECARDS;
}
private function showScoreScreen(_arg1:AbstractScoreScreen):void{
_view.addChild(_arg1);
_arg1.displayHeader();
_arg1.y = 200;
_scoreTween = new Tween(_arg1, "x", Strong.easeOut, -300, 170, 1, true);
_scoreTween.addEventListener(TweenEvent.MOTION_FINISH, onTweenFinished);
}
private function showFirstCard():void{
_model.revealTopDeckCard();
playIntro();
}
private function onFlipTimer(_arg1:TimerEvent):void{
var _local2:Timer;
var _local3:int;
_local2 = (_arg1.target as Timer);
_local3 = (_local2.currentCount + 23);
_model.setCardActive(_local3);
}
private function onTweenFinished(_arg1:TweenEvent):void{
_scoreScreen.display();
}
private function onCardsLeftTimerComplete(_arg1:TimerEvent):void{
levelAnimationComplete();
}
public function get gameOver():Boolean{
return (_gameOver);
}
private function onDeckDrag(_arg1:Event=null):void{
_model.playSound(SoundConsts.DECKDRAG);
}
public function flip10Cards():void{
_flipTimer = new Timer(40, 10);
_flipTimer.addEventListener(TimerEvent.TIMER, onFlipTimer, false, 0, true);
_flipTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onFlipTimerComplete, false, 0, true);
_flipTimer.start();
}
public function levelAnimationComplete():void{
try {
if (_model.currentLevel == 5){
_gameOver = true;
_musicManager.stopMusic();
_scoreScreen = new GameOverScoreScreen(this, _model);
_scoreScreen.addEventListener("waitComplete", onWaitCompleted, false, 0, true);
showScoreScreen(_scoreScreen);
} else {
_scoreScreen = new ScoreScreen(this, _model);
showScoreScreen(_scoreScreen);
};
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
}
}//package controller
Section 63
//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 64
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
public var begin:Number;// = NAN
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var change:Number;// = NAN
private var _finish:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
isPlaying = false;
obj = null;
prop = "";
func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
begin = NaN;
change = NaN;
useSeconds = false;
prevTime = NaN;
prevPos = NaN;
looping = false;
_duration = NaN;
_time = NaN;
_fps = NaN;
_position = NaN;
_startTime = NaN;
_intervalID = 0;
_finish = NaN;
_timer = null;
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean;
_local2 = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 65
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var time:Number;// = NAN
public var position:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
time = NaN;
position = NaN;
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 66
//IGame (loadedSwf.IGame)
package loadedSwf {
import controller.*;
public interface IGame {
function start():void;
function pause():void;
function resume():void;
function set externalController(_arg1:IGameController):void;
}
}//package loadedSwf
Section 67
//CardModel (model.CardModel)
package model {
import flash.events.*;
import org.osflash.thunderbolt.*;
import flash.media.*;
public class CardModel extends EventDispatcher {
private const _checkCardPosX:int = 340;
private const _checkCardPosY:int = 330;
private var _endDepth:int;
private var _pos:int;
private var _cardsAbove:Array;
private var _removed:Boolean;// = false
private var _active:Boolean;// = false
private var _cardsBelow:Array;
private var _deckCard:Boolean;
private var _endPosY:int;
private var _endPosX:int;
private var _cardScore:int;// = 10
private var _value:int;
private var _flipSoundType:int;
public function CardModel(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
_active = false;
_removed = false;
_cardScore = 10;
super();
_pos = _arg1;
_endPosX = _arg2;
_endPosY = _arg3;
_endDepth = _arg4;
_cardsAbove = new Array();
_cardsBelow = new Array();
_flipSoundType = Math.round(((Math.random() * (2 - 1)) + 1));
}
public function set value(_arg1:int):void{
_value = _arg1;
dispatchEvent(new Event("value"));
}
public function playDrum():void{
var sound:Sound;
try {
if (ScarabSolitaireGame.MainGame.playingSound){
sound = new DrumDrum();
sound.play();
};
} catch(e:Error) {
Logger.error(e.message);
};
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
dispatchEvent(new Event("active"));
}
public function get endPosY():int{
return (_endPosY);
}
public function get active():Boolean{
return (_active);
}
public function get endDepth():int{
return (_endDepth);
}
public function playMove():void{
if (ScarabSolitaireGame.MainGame.playingSound){
if (!_deckCard){
playFlip();
};
};
}
public function set deckCard(_arg1:Boolean):void{
_deckCard = _arg1;
}
public function set cardScore(_arg1:int):void{
_cardScore = _arg1;
}
public function playFlip():void{
var sound:Sound;
try {
if (ScarabSolitaireGame.MainGame.playingSound){
if (_flipSoundType == 1){
sound = new Swosh1();
} else {
sound = new Swosh2();
};
sound.play();
};
} catch(e:Error) {
Logger.error(e.message);
};
}
public function reset():void{
_value = 0;
_active = false;
_removed = false;
}
public function playScarabCardReveal():void{
var sound:Sound;
try {
if (ScarabSolitaireGame.MainGame.playingSound){
sound = new ScarabCardReveal();
sound.play();
};
} catch(e:Error) {
Logger.error(e.message);
};
}
public function addCardToCardsAbove(_arg1:CardModel):void{
_cardsAbove.push(_arg1);
}
public function checkIfFree():void{
var _local1:Boolean;
var _local2:CardModel;
var _local3:int;
_local1 = true;
_local3 = 0;
while (_local3 < _cardsBelow.length) {
_local2 = _cardsBelow[_local3];
if (!_local2.removed){
_local1 = false;
};
_local3++;
};
if (_local1){
active = true;
};
}
public function get pos():int{
return (_pos);
}
public function get checkCardPosX():int{
return (_checkCardPosX);
}
public function get removed():Boolean{
return (_removed);
}
public function addCardToCardsBelow(_arg1:CardModel):void{
_cardsBelow.push(_arg1);
}
public function checkIfCardsAboveShouldBeFreed():void{
var _local1:int;
var _local2:CardModel;
if (_cardsAbove.length != 0){
_local1 = 0;
while (_local1 < _cardsAbove.length) {
_local2 = _cardsAbove[_local1];
_local2.checkIfFree();
_local1++;
};
};
}
public function get deckCard():Boolean{
return (_deckCard);
}
public function get cardScore():int{
return (_cardScore);
}
private function playDeal():void{
var _local1:Sound;
_local1 = new EnkelGiv1();
_local1.play();
}
public function get value():int{
return (_value);
}
public function get checkCardPosY():int{
return (_checkCardPosY);
}
public function set removed(_arg1:Boolean):void{
_removed = _arg1;
_active = false;
dispatchEvent(new Event("removed"));
}
public function get endPosX():int{
return (_endPosX);
}
}
}//package model
Section 68
//CardPositionData (model.CardPositionData)
package model {
public class CardPositionData {
private var _positionData:Array;
public function CardPositionData(){
_positionData = new Array();
createCardPositionData();
}
private function createCardPositionData():void{
var _local1:Array;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:int;
var _local13:int;
_local2 = 90;
_local3 = 34;
_local4 = (136 + 2);
_local5 = (286 + 2);
_local6 = (436 + 2);
_local7 = 25;
_local8 = 50;
_local9 = 75;
_local10 = 267;
_local11 = 330;
_local12 = 0;
_local1 = [_local4, _local2, _local12];
_positionData.push(_local1);
_local1 = [_local5, _local2, _local12];
_positionData.push(_local1);
_local1 = [_local6, _local2, _local12];
_positionData.push(_local1);
_local2 = (_local2 + _local3);
_local12 = 3;
_local1 = [(_local4 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local4 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local2 = (_local2 + _local3);
_local1 = [(_local4 - _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [_local4, _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local4 + _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 - _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [_local5, _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 + _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 - _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [_local6, _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 + _local8), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local2 = (_local2 + _local3);
_local1 = [(_local4 - _local9), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local4 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local4 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local4 + _local9), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local5 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 - _local9), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 - _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 + _local7), _local2, _local12];
_positionData.push(_local1);
_local12++;
_local1 = [(_local6 + _local9), _local2, _local12];
_positionData.push(_local1);
_local12++;
while (_local13 < 24) {
_local1 = [_local10, _local11, -1];
_positionData.push(_local1);
_local10 = (_local10 - 4);
_local13++;
};
_positionData.reverse();
}
public function getCardPositionData(_arg1:int):Array{
return (_positionData[_arg1]);
}
}
}//package model
Section 69
//CardValuesData (model.CardValuesData)
package model {
public class CardValuesData {
private var _cardValues:Array;
public function CardValuesData(){
_cardValues = new Array();
createValues();
}
private function randomSort(_arg1:Object, _arg2:Object):int{
var _local3:Number;
_local3 = Math.round((Math.random() - 1));
return (_local3);
}
public function getCardValue(_arg1:int):int{
var value:int;
var pos = _arg1;
value = _cardValues[pos];
try {
} catch(e:Error) {
};
return (value);
}
public function shuffleCardValues():void{
_cardValues.sort(randomSort);
}
private function createValues():void{
var _local1:int;
var _local2:int;
_local1 = 0;
while (_local1 < 4) {
_local2 = 1;
while (_local2 < 14) {
_cardValues.push(_local2);
_local2++;
};
_local1++;
};
shuffleCardValues();
}
}
}//package model
Section 70
//Clock (model.Clock)
package model {
import flash.events.*;
import org.osflash.thunderbolt.*;
import flash.utils.*;
import flash.media.*;
public class Clock extends EventDispatcher {
private const LEVEL4SPEED:int = 730;
private const LEVEL2SPEED:int = 900;
private const LEVEL5SPEED:int = 660;
private const LEVEL3SPEED:int = 810;
private const LEVEL1SPEED:int = 1000;
private var _timer:Timer;
private var _timerSpeed:int;// = 1000
private var _ticks:int;// = 12
private static var _instance:Clock;
public function Clock(){
_ticks = 12;
_timerSpeed = LEVEL1SPEED;
super();
_timer = new Timer(_timerSpeed);
}
public function stop():void{
_timer.stop();
}
public function reset():void{
_ticks = 12;
dispatchEvent(new Event("reset"));
}
public function start():void{
_timer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);
_timer.start();
}
public function speedUpTimer():void{
try {
switch (_timer.delay){
case LEVEL1SPEED:
_timer.delay = LEVEL2SPEED;
break;
case LEVEL2SPEED:
_timer.delay = LEVEL3SPEED;
break;
case LEVEL3SPEED:
_timer.delay = LEVEL4SPEED;
break;
case LEVEL4SPEED:
_timer.delay = LEVEL5SPEED;
break;
};
} catch(e:ReferenceError) {
};
}
private function playTickSound():void{
var randNum:Number;
var sound:Sound;
try {
if (ScarabSolitaireGame.MainGame.playingSound){
randNum = Math.random();
if (randNum > 0.5){
sound = new Tick();
} else {
sound = new Tack();
};
sound.play();
};
} catch(e:Error) {
Logger.error(e.message);
};
}
private function onTimer(_arg1:TimerEvent):void{
if (_ticks != 0){
_ticks--;
dispatchEvent(new Event("tick"));
if (_ticks < 4){
playTickSound();
};
} else {
_ticks = 12;
dispatchEvent(new Event("rewind"));
};
}
public function getReverseTicks():int{
var _local1:int;
_local1 = Math.abs((ticks - 12));
return (_local1);
}
public function resume():void{
_timer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);
_timer.start();
}
public function get ticks():int{
return (_ticks);
}
public static function getInstance():Clock{
if (_instance == null){
_instance = new (Clock);
};
return (_instance);
}
}
}//package model
Section 71
//ErrorHandler (model.ErrorHandler)
package model {
import flash.events.*;
import org.osflash.thunderbolt.*;
public class ErrorHandler {
private static var _instance:ErrorHandler;
public function printError(_arg1:Error):void{
Logger.error(_arg1.getStackTrace());
Logger.error(_arg1.message);
}
public function printErrorEvent(_arg1:ErrorEvent):void{
Logger.error(_arg1.text);
}
public static function getInstance():ErrorHandler{
if (_instance == null){
_instance = new (ErrorHandler);
};
return (_instance);
}
}
}//package model
Section 72
//ImageManager (model.ImageManager)
package model {
import flash.display.*;
import flash.utils.*;
public class ImageManager {
private const HEARTS:int = 0;
private const SPADES:int = 1;
private const CLOVES:int = 3;
private const DIAMONDS:int = 2;
private var _loaders:Array;
private static var instance:ImageManager;
public function ImageManager(){
init();
}
public function getBitmap(_arg1:int):Bitmap{
var _local2:Boolean;
var _local3:int;
var _local4:Array;
var _local5:Array;
var _local6:Bitmap;
_arg1--;
_local5 = new Array();
while (!(_local2)) {
_local3 = ((Math.random() * 100) % 4);
if (_local5.length == 4){
throw (new Error("No image found"));
};
if (_local5.indexOf(_local3) == -1){
_local5.push(_local3);
if (_local3 == HEARTS){
_local4 = _loaders[HEARTS];
} else {
if (_local3 == SPADES){
_local4 = _loaders[SPADES];
} else {
if (_local3 == DIAMONDS){
_local4 = _loaders[DIAMONDS];
} else {
_local4 = _loaders[CLOVES];
};
};
};
_local6 = _local4[_arg1];
if (_local6.parent == null){
_local2 = true;
};
};
};
return (_local6);
}
public function init():void{
_loaders = new Array();
loadCardImages();
}
private function loadCardImages():void{
var _local1:int;
var _local2:Class;
var _local3:BitmapData;
var _local4:Bitmap;
var _local5:Array;
var _local6:Array;
var _local7:Array;
var _local8:Array;
_local5 = new Array();
_local6 = new Array();
_local7 = new Array();
_local8 = new Array();
_loaders.push(_local5);
_loaders.push(_local6);
_loaders.push(_local7);
_loaders.push(_local8);
_local1 = 1;
while (_local1 < 14) {
_local2 = (getDefinitionByName(("H" + _local1)) as Class);
_local3 = new _local2(0, 0);
_local4 = new Bitmap(_local3);
_local5.push(_local4);
_local1++;
};
_local1 = 1;
while (_local1 < 14) {
_local2 = (getDefinitionByName(("S" + _local1)) as Class);
_local3 = new _local2(0, 0);
_local4 = new Bitmap(_local3);
_local6.push(_local4);
_local1++;
};
_local1 = 1;
while (_local1 < 14) {
_local2 = (getDefinitionByName(("D" + _local1)) as Class);
_local3 = new _local2(0, 0);
_local4 = new Bitmap(_local3);
_local7.push(_local4);
_local1++;
};
_local1 = 1;
while (_local1 < 14) {
_local2 = (getDefinitionByName(("C" + _local1)) as Class);
_local3 = new _local2(0, 0);
_local4 = new Bitmap(_local3);
_local8.push(_local4);
_local1++;
};
}
public static function getInstance():ImageManager{
if (instance == null){
instance = new (ImageManager);
};
return (instance);
}
}
}//package model
Section 73
//MusicManager (model.MusicManager)
package model {
import controller.*;
import flash.events.*;
import flash.display.*;
import org.osflash.thunderbolt.*;
import flash.media.*;
public class MusicManager extends Sprite {
private var _controller:ScarabGameController;
private var _playingSound:Sound;
private var _soundChannel:SoundChannel;
private static var instance:MusicManager;
public function startMusic():void{
try {
if (((ScarabSolitaireGame.MainGame.playingMusic) && (!(_controller.gameOver)))){
if (_playingSound == null){
_playingSound = new MusicLoop();
};
_soundChannel = _playingSound.play();
_soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete, false, 0, true);
};
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
public function set controller(_arg1:ScarabGameController):void{
_controller = _arg1;
}
public function stopMusic():void{
try {
if (_soundChannel != null){
_soundChannel.stop();
};
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function onSoundComplete(_arg1:Event):void{
var event = _arg1;
try {
_soundChannel.removeEventListener(Event.SOUND_COMPLETE, onSoundComplete);
_soundChannel = _playingSound.play();
_soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete, false, 0, true);
} catch(e:Error) {
Logger.error(e.message);
};
}
public static function getInstance():MusicManager{
if (instance == null){
instance = new (MusicManager);
};
return (instance);
}
}
}//package model
Section 74
//ScarabGameModel (model.ScarabGameModel)
package model {
import flash.events.*;
import flash.utils.*;
import flash.media.*;
public class ScarabGameModel extends EventDispatcher {
private const _deckSize:int = 52;
private const LEVELCOMPLETED:int = 28;
private var _cardPositionData:CardPositionData;
private var _cardsInARow:int;// = 0
private var _score:Score;
private var _clock:Clock;
private var _topDeckCard:int;// = 23
private var _checkCard:CardModel;
private var _cardValuesData:CardValuesData;
private var _cardsRemovedFromBoard:int;
private var _cards:Array;
private var _currentLevel:int;// = 1
public function ScarabGameModel(){
_currentLevel = 1;
_topDeckCard = 23;
_cardsInARow = 0;
super();
_cards = new Array();
_cardPositionData = new CardPositionData();
_cardValuesData = new CardValuesData();
_score = Score.getInstance();
_clock = Clock.getInstance();
init();
}
private function onClockRewind(_arg1:Event):void{
revealTopDeckCard();
}
private function init():void{
_clock.addEventListener("rewind", onClockRewind, false, 0, true);
createDeck();
}
public function get currentLevel():int{
return (_currentLevel);
}
private function resetDeck():void{
var _local1:CardModel;
for each (_local1 in _cards) {
_local1.reset();
};
}
private function resetGameVariables():void{
_cardsRemovedFromBoard = 0;
_topDeckCard = 23;
_cardsInARow = 0;
_checkCard = _cards[_topDeckCard];
}
public function isDeckCard(_arg1:CardModel):Boolean{
if ((_arg1.pos <= _topDeckCard)){
return (true);
};
return (false);
}
public function stopClock():void{
_clock.stop();
}
public function isLegal(_arg1:CardModel):Boolean{
var _local2:int;
var _local3:int;
if (_arg1.active){
_local2 = _arg1.value;
_local3 = _checkCard.value;
if (((((((((_local2 - _local3) == 1)) || (((_local2 - _local3) == -1)))) || (((_local2 - _local3) == 12)))) || (((_local2 - _local3) == -12)))){
return (true);
};
return (false);
//unresolved jump
};
return (false);
}
public function isGameOver():Boolean{
var _local1:Array;
var _local2:int;
var _local3:int;
if (_topDeckCard <= 0){
_local2 = _checkCard.value;
_local1 = getActiveCardsValues();
for each (_local3 in _local1) {
if (((((((((_local3 - _local2) == 1)) || (((_local3 - _local2) == -1)))) || (((_local3 - _local2) == 12)))) || (((_local3 - _local2) == -12)))){
return (false);
};
};
return (true);
//unresolved jump
};
return (false);
}
public function setCardActive(_arg1:int):void{
var _local2:CardModel;
_local2 = (_cards[_arg1] as CardModel);
_local2.active = true;
}
private function setCardReferences():void{
var _local1:CardModel;
var _local2:int;
_local2 = 24;
while (_local2 < 34) {
_local1 = _cards[_local2];
if ((((_local2 == 24)) || ((_local2 == 34)))){
if (_local2 == 24){
_local1.addCardToCardsAbove(_cards[34]);
} else {
_local1.addCardToCardsAbove(_cards[42]);
};
} else {
_local1.addCardToCardsAbove(_cards[(_local2 + 9)]);
_local1.addCardToCardsAbove(_cards[(_local2 + 10)]);
};
_local2++;
};
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[43]);
_local1.addCardToCardsBelow(_cards[24]);
_local1.addCardToCardsBelow(_cards[25]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[43]);
_local1.addCardToCardsAbove(_cards[44]);
_local1.addCardToCardsBelow(_cards[25]);
_local1.addCardToCardsBelow(_cards[26]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[44]);
_local1.addCardToCardsBelow(_cards[26]);
_local1.addCardToCardsBelow(_cards[27]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[45]);
_local1.addCardToCardsBelow(_cards[27]);
_local1.addCardToCardsBelow(_cards[28]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[45]);
_local1.addCardToCardsAbove(_cards[46]);
_local1.addCardToCardsBelow(_cards[28]);
_local1.addCardToCardsBelow(_cards[29]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[46]);
_local1.addCardToCardsBelow(_cards[29]);
_local1.addCardToCardsBelow(_cards[30]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[47]);
_local1.addCardToCardsBelow(_cards[30]);
_local1.addCardToCardsBelow(_cards[31]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[47]);
_local1.addCardToCardsAbove(_cards[48]);
_local1.addCardToCardsBelow(_cards[31]);
_local1.addCardToCardsBelow(_cards[32]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[48]);
_local1.addCardToCardsBelow(_cards[32]);
_local1.addCardToCardsBelow(_cards[33]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[49]);
_local1.addCardToCardsBelow(_cards[34]);
_local1.addCardToCardsBelow(_cards[35]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[49]);
_local1.addCardToCardsBelow(_cards[35]);
_local1.addCardToCardsBelow(_cards[36]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[50]);
_local1.addCardToCardsBelow(_cards[37]);
_local1.addCardToCardsBelow(_cards[38]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[50]);
_local1.addCardToCardsBelow(_cards[38]);
_local1.addCardToCardsBelow(_cards[39]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[51]);
_local1.addCardToCardsBelow(_cards[40]);
_local1.addCardToCardsBelow(_cards[41]);
_local2++;
_local1 = _cards[_local2];
_local1.addCardToCardsAbove(_cards[51]);
_local1.addCardToCardsBelow(_cards[41]);
_local1.addCardToCardsBelow(_cards[42]);
_local2++;
_local1 = _cards[_local2];
_local1.cardScore = 1000;
_local1.addCardToCardsBelow(_cards[43]);
_local1.addCardToCardsBelow(_cards[44]);
_local2++;
_local1 = _cards[_local2];
_local1.cardScore = 1000;
_local1.addCardToCardsBelow(_cards[45]);
_local1.addCardToCardsBelow(_cards[46]);
_local2++;
_local1 = _cards[_local2];
_local1.cardScore = 1000;
_local1.addCardToCardsBelow(_cards[47]);
_local1.addCardToCardsBelow(_cards[48]);
}
public function revealTopDeckCard():void{
var _local1:CardModel;
if (_topDeckCard >= 0){
_cardsInARow = 0;
_local1 = _cards[_topDeckCard];
_local1.active = true;
_topDeckCard--;
newCheckCard(_local1);
};
}
public function getNumberOfCardsLeftInDeck():int{
return (_topDeckCard);
}
public function getCardModel(_arg1:int):CardModel{
var cardModel:CardModel;
var pos = _arg1;
try {
cardModel = _cards[pos];
if (cardModel == null){
throw (new Error("Position not found in CardModel array!"));
};
} catch(e:Error) {
};
return (cardModel);
}
private function createDeck():void{
var _local1:CardModel;
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
_cardValuesData.shuffleCardValues();
_local7 = 0;
while (_local7 < _deckSize) {
_local2 = _cardPositionData.getCardPositionData(_local7);
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
_local1 = new CardModel(_local7, _local3, _local4, _local5);
_local6 = _cardValuesData.getCardValue(_local7);
_local1.value = _local6;
if (_local7 < 24){
_local1.deckCard = true;
};
_cards.push(_local1);
_local7++;
};
setCardReferences();
}
public function getActiveCardsValues():Array{
var _local1:Array;
var _local2:CardModel;
_local1 = new Array();
for each (_local2 in _cards) {
if (_local2.active){
_local1.push(_local2.value);
};
};
return (_local1);
}
public function playSound(_arg1:String):void{
var _local2:Class;
var _local3:Sound;
if (ScarabSolitaireGame.MainGame.playingSound){
_local2 = (getDefinitionByName(_arg1) as Class);
_local3 = (new (_local2) as Sound);
_local3.play();
};
}
public function incrementLevel():void{
_currentLevel++;
_score.currentLevel = _currentLevel;
dispatchEvent(new TextEvent("newLevel", false, false, _currentLevel.toString()));
}
public function resumeClock():void{
if (_topDeckCard != -1){
_clock.resume();
};
}
public function cardScore(_arg1:CardModel):void{
var _local2:int;
var _local3:int;
_local2 = _arg1.cardScore;
_local3 = _clock.ticks;
_local3 = (_local3 - 2);
_score.addToScore(_local2, _local3, _cardsInARow);
_cardsInARow++;
_cardsRemovedFromBoard++;
if (_cardsRemovedFromBoard == LEVELCOMPLETED){
dispatchEvent(new Event("levelCompleted"));
};
}
public function getPosData(_arg1:int):Array{
return (_cards[_arg1]);
}
public function getCardsLeftInDeck():Array{
var _local1:Array;
var _local2:int;
var _local3:CardModel;
_local1 = new Array();
_local2 = _topDeckCard;
while (_local2 > -1) {
_local3 = _cards[_local2];
_local1.push(_local3);
_local2--;
};
return (_local1);
}
public function resetLevel():void{
var _local1:CardModel;
var _local2:int;
var _local3:int;
_clock.stop();
_clock.reset();
_clock.speedUpTimer();
resetGameVariables();
resetDeck();
_cardValuesData.shuffleCardValues();
_local3 = 0;
while (_local3 < _deckSize) {
_local1 = (_cards[_local3] as CardModel);
_local2 = _cardValuesData.getCardValue(_local3);
_local1.value = _local2;
_local3++;
};
}
public function newCheckCard(_arg1:CardModel):void{
_checkCard = _arg1;
_checkCard.removed = true;
_checkCard.checkIfCardsAboveShouldBeFreed();
_clock.reset();
if (_topDeckCard < 0){
_clock.stop();
dispatchEvent(new Event("deckEmpty"));
};
}
}
}//package model
Section 75
//Score (model.Score)
package model {
import flash.events.*;
public class Score extends EventDispatcher {
public const INAROWSCORE:int = 2;
public const SCARABCARDSCORE:int = 0;
public const TOTALSCORE:int = 4;
public const LEVEL3:int = 2;
public const LEVEL4:int = 3;
public const TIMEBONUS:int = 3;
public const LEVEL1:int = 0;
public const LEVEL2:int = 1;
public const CARDSCORE:int = 1;
public const LEVEL5:int = 4;
private var _cardsLeft:int;// = 0
private var scoreLists:Array;
private var level1:Array;
private var level2:Array;
private var level3:Array;
private var level4:Array;
private var level5:Array;
private var _currentLevel:int;// = 0
private var _totalGameScore:int;// = 0
private static var _instance:Score;
public function Score(){
_currentLevel = LEVEL1;
_cardsLeft = 0;
_totalGameScore = 0;
super();
init();
}
public function init():void{
_currentLevel = LEVEL1;
_cardsLeft = 0;
_totalGameScore = 0;
level1 = getEmptyScoreList();
level2 = getEmptyScoreList();
level3 = getEmptyScoreList();
level4 = getEmptyScoreList();
level5 = getEmptyScoreList();
scoreLists = new Array();
scoreLists.push(level1);
scoreLists.push(level2);
scoreLists.push(level3);
scoreLists.push(level4);
scoreLists.push(level5);
}
public function cardLeftAddToScore():void{
var _local1:int;
var _local2:Array;
var _local3:int;
_local2 = scoreLists[_currentLevel];
_cardsLeft++;
_local1 = _local2[TOTALSCORE];
_local3 = (_cardsLeft * 10);
_totalGameScore = (_totalGameScore + _local3);
_local1 = (_local1 + _local3);
_local2[TOTALSCORE] = _local1;
dispatchEvent(new TextEvent("cardScore", false, false, _local3.toString()));
dispatchEvent(new TextEvent("score", false, false, _totalGameScore.toString()));
}
public function set currentLevel(_arg1:int):void{
_cardsLeft = 0;
_currentLevel = (_arg1 - 1);
}
public function getCurrentLevelTotalScore():int{
var _local1:Array;
var _local2:int;
_local1 = scoreLists[_currentLevel];
_local2 = _local1[TOTALSCORE];
return (_local2);
}
public function getGameOverTotalScore():int{
var _local1:int;
_local1 = 0;
_local1 = (_local1 + level1[TOTALSCORE]);
_local1 = (_local1 + level2[TOTALSCORE]);
_local1 = (_local1 + level3[TOTALSCORE]);
_local1 = (_local1 + level4[TOTALSCORE]);
_local1 = (_local1 + level5[TOTALSCORE]);
return (_local1);
}
public function getGameOverInARowScore():int{
var _local1:int;
_local1 = 0;
_local1 = (_local1 + level1[INAROWSCORE]);
_local1 = (_local1 + level2[INAROWSCORE]);
_local1 = (_local1 + level3[INAROWSCORE]);
_local1 = (_local1 + level4[INAROWSCORE]);
_local1 = (_local1 + level5[INAROWSCORE]);
return (_local1);
}
public function getTotalScore(_arg1:int):int{
var _local2:Array;
var _local3:int;
_local2 = scoreLists[_arg1];
_local3 = _local2[TOTALSCORE];
return (_local3);
}
public function getGameOverScarabCardScore():int{
var _local1:int;
_local1 = 0;
_local1 = (_local1 + level1[SCARABCARDSCORE]);
_local1 = (_local1 + level2[SCARABCARDSCORE]);
_local1 = (_local1 + level3[SCARABCARDSCORE]);
_local1 = (_local1 + level4[SCARABCARDSCORE]);
_local1 = (_local1 + level5[SCARABCARDSCORE]);
return (_local1);
}
public function getLevelScore(_arg1:int, _arg2:int):int{
var _local3:Array;
var _local4:int;
_local3 = scoreLists[_arg1];
_local4 = _local3[_arg2];
return (_local4);
}
public function getGameOverCardScore():int{
var _local1:int;
_local1 = 0;
_local1 = (_local1 + level1[CARDSCORE]);
_local1 = (_local1 + level2[CARDSCORE]);
_local1 = (_local1 + level3[CARDSCORE]);
_local1 = (_local1 + level4[CARDSCORE]);
_local1 = (_local1 + level5[CARDSCORE]);
return (_local1);
}
public function getGameOverTimeBonusScore():int{
var _local1:int;
_local1 = 0;
_local1 = (_local1 + level1[TIMEBONUS]);
_local1 = (_local1 + level2[TIMEBONUS]);
_local1 = (_local1 + level3[TIMEBONUS]);
_local1 = (_local1 + level4[TIMEBONUS]);
_local1 = (_local1 + level5[TIMEBONUS]);
return (_local1);
}
private function getEmptyScoreList():Array{
var _local1:Array;
_local1 = new Array();
_local1.push(0);
_local1.push(0);
_local1.push(0);
_local1.push(0);
_local1.push(0);
_local1.push(0);
return (_local1);
}
public function addToScore(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:Array;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
_local4 = scoreLists[_currentLevel];
_local7 = (_arg3 * 10);
_local6 = _local4[TOTALSCORE];
_local8 = ((_arg1 + _arg2) + _local7);
_totalGameScore = (_totalGameScore + _local8);
_local6 = (_local6 + _local8);
_local4[TOTALSCORE] = _local6;
dispatchEvent(new TextEvent("cardScore", false, false, _local8.toString()));
dispatchEvent(new TextEvent("score", false, false, _totalGameScore.toString()));
if (_arg1 == 1000){
_local5 = _local4[SCARABCARDSCORE];
_local5 = (_local5 + _arg1);
_local4[SCARABCARDSCORE] = _local5;
} else {
_local5 = _local4[CARDSCORE];
_local5 = (_local5 + _arg1);
_local4[CARDSCORE] = _local5;
};
_local5 = _local4[INAROWSCORE];
_local5 = (_local5 + _local7);
_local4[INAROWSCORE] = _local5;
_local5 = _local4[TIMEBONUS];
_local5 = (_local5 + _arg2);
_local4[TIMEBONUS] = _local5;
}
public static function getInstance():Score{
if (_instance == null){
_instance = new (Score);
};
return (_instance);
}
}
}//package model
Section 76
//SoundConsts (model.SoundConsts)
package model {
public class SoundConsts {
public static const DECKDRAG:String = "DeckDrag";
}
}//package model
Section 77
//Logger (org.osflash.thunderbolt.Logger)
package org.osflash.thunderbolt {
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public class Logger {
public static const WARN:String = "warn";
private static const AUTHOR:String = "Jens Krause [www.websector.de]";
private static const FIELD_SEPERATOR:String = " :: ";
public static const LOG:String = "log";
public static const ERROR:String = "error";
public static const INFO:String = "info";
private static const MAX_DEPTH:int = 0xFF;
private static const VERSION:String = "1.0";
private static var _depth:int;
public static var includeTime:Boolean = true;
private static var _hide:Boolean = false;
private static var _stopLog:Boolean = false;
private static var _logLevel:String;
private static function primitiveType(_arg1:String):Boolean{
var _local2:Boolean;
switch (_arg1){
case "Boolean":
case "void":
case "int":
case "uint":
case "Number":
case "String":
case "undefined":
case "null":
_local2 = true;
break;
default:
_local2 = false;
};
return (_local2);
}
public static function trace(_arg1:String, _arg2:String="", ... _args):void{
var _local4:String;
var _local5:int;
var _local6:int;
if (!_hide){
_depth = 0;
_logLevel = _arg1;
_local4 = (("[" + _logLevel.toUpperCase()) + "] ");
if (includeTime){
_local4 = (_local4 + getCurrentTime());
};
_local4 = (_local4 + _arg2);
ExternalInterface.call(("console." + _logLevel), _local4);
_local6 = _args.length;
_local5 = 0;
while (_local5 < _local6) {
_slot1.logObject(_args[_local5]);
_local5++;
};
};
}
public static function debug(_arg1:String=null, ... _args):void{
_slot1.trace(_slot1.LOG, _arg1, _args);
}
public static function about():void{
var _local1:String;
_local1 = (((("+++ Welcome to ThunderBolt AS3 | VERSION: " + _slot1.VERSION) + " | AUTHOR: ") + _slot1.AUTHOR) + " | Happy logging ;-) +++");
_slot1.trace(_slot1.INFO, _local1);
}
public static function warn(_arg1:String=null, ... _args):void{
_slot1.trace(_slot1.WARN, _arg1, _args);
}
public static function error(_arg1:String=null, ... _args):void{
_slot1.trace(_slot1.ERROR, _arg1, _args);
}
public static function memorySnapshot():String{
var _local1:uint;
var _local2:String;
_local1 = System.totalMemory;
_local2 = (((("Memory Snapshot: " + (Math.round((((_local1 / 0x0400) / 0x0400) * 100)) / 100)) + " MB (") + Math.round((_local1 / 0x0400))) + " kb)");
return (_local2);
}
public static function set hide(_arg1:Boolean):void{
_hide = _arg1;
}
private static function timeToValidString(_arg1:Number):String{
return (((_arg1 > 9)) ? _arg1.toString() : ("0" + _arg1.toString()));
}
private static function logObject(_arg1, _arg2:String=null):void{
var _local3:String;
var _local4:XML;
var _local5:String;
var _local6:String;
var _local7:String;
var _local8:int;
var _local9:int;
var _local10:XMLList;
var _local11:XML;
var _local12:String;
var _local13:String;
var _local14:String;
var _local15:*;
if (_depth < _slot1.MAX_DEPTH){
_depth++;
_local3 = ((_arg2) || (""));
_local4 = describeType(_arg1);
_local5 = _local4.@name;
if (primitiveType(_local5)){
_local6 = (_local3.length) ? ((((("[" + _local5) + "] ") + _local3) + " = ") + _arg1) : ((("[" + _local5) + "] ") + _arg1);
ExternalInterface.call(("console." + _slot1.LOG), _local6);
} else {
if (_local5 == "Object"){
ExternalInterface.call("console.group", ("[Object] " + _local3));
for (_local7 in _arg1) {
logObject(_arg1[_local7], _local7);
};
ExternalInterface.call("console.groupEnd");
} else {
if (_local5 == "Array"){
if (_depth > 1){
ExternalInterface.call("console.group", ("[Array] " + _local3));
};
_local9 = _arg1.length;
_local8 = 0;
while (_local8 < _local9) {
logObject(_arg1[_local8]);
_local8++;
};
ExternalInterface.call("console.groupEnd");
} else {
_local10 = _local4..accessor;
if (_local10.length()){
for each (_local11 in _local10) {
_local12 = _local11.@name;
_local13 = _local11.@type;
_local14 = _local11.@access;
if (((_local14) && (!((_local14 == "writeonly"))))){
_local15 = _arg1[_local12];
logObject(_local15, _local12);
};
};
} else {
logObject(_arg1, _local5);
};
};
};
};
} else {
if (!_stopLog){
ExternalInterface.call(("console." + _slot1.WARN), (("STOP LOGGING: More than " + _depth) + " nested objects or properties."));
_stopLog = true;
};
};
}
public static function info(_arg1:String=null, ... _args):void{
_slot1.trace(_slot1.INFO, _arg1, _args);
}
private static function getCurrentTime():String{
var _local1:Date;
var _local2:String;
_local1 = new Date();
_local2 = (((((((("time " + timeToValidString(_local1.getHours())) + ":") + timeToValidString(_local1.getMinutes())) + ":") + timeToValidString(_local1.getSeconds())) + ".") + timeToValidString(_local1.getMilliseconds())) + FIELD_SEPERATOR);
return (_local2);
}
}
}//package org.osflash.thunderbolt
Section 78
//FlipTween (view.tween.FlipTween)
package view.tween {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
public class FlipTween extends Sprite {
private var _tri:Array;
private var _vseg:Number;
private var _yMin:Number;
private var _hsLen:Number;
private var _yMax:Number;
private var _vsLen:Number;
private var xEndPos:int;
private var _tMat:Matrix;
private var y1:int;
private var _front:BitmapData;
private var yPos:int;// = 80
private var _mc:Sprite;
private var flipped:Boolean;
private var _xMin:Number;
private var xInc:int;// = 7
private var _timer:Timer;
private var yInc:int;// = 1
private var x1:int;
private var _xMax:Number;
private var x3:int;
private var x2:int;
private var xPos:int;// = 53
private var _sMat:Matrix;
private var _hseg:Number;
private var x4:int;
private var y2:int;
private var y3:int;
private var y4:int;
private var _h:Number;
private var _texture:BitmapData;
private var _p:Array;
private var _w:Number;
public function FlipTween(_arg1:BitmapData, _arg2:BitmapData, _arg3:Number, _arg4:Number){
xPos = 53;
xEndPos = (xPos * 2);
yPos = 80;
x2 = xPos;
x3 = xPos;
y3 = yPos;
y4 = yPos;
xInc = 7;
yInc = 1;
super();
_mc = this;
_texture = _arg2;
_front = _arg1;
_vseg = _arg3;
_hseg = _arg4;
_w = _texture.width;
_h = _texture.height;
__init();
}
private function onTimerComplete():void{
dispatchEvent(new Event("flipComplete"));
}
private function __init():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_p = new Array();
_tri = new Array();
_xMin = (_yMin = 0);
_xMax = _w;
_yMax = _h;
_hsLen = (_w / (_hseg + 1));
_vsLen = (_h / (_vseg + 1));
_local1 = 0;
while (_local1 < (_vseg + 2)) {
_local2 = 0;
while (_local2 < (_hseg + 2)) {
_local3 = (_local1 * _hsLen);
_local4 = (_local2 * _vsLen);
_p.push({x:_local3, y:_local4, sx:_local3, sy:_local4});
_local2++;
};
_local1++;
};
_local1 = 0;
while (_local1 < (_vseg + 1)) {
_local2 = 0;
while (_local2 < (_hseg + 1)) {
_tri.push([_p[(_local2 + (_local1 * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))]]);
_tri.push([_p[((_local2 + ((_local1 + 1) * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)]]);
_local2++;
};
_local1++;
};
_timer = new Timer(10);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
}
public function setTransform(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Object;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
_local9 = _w;
_local10 = _h;
_local11 = (_arg7 - _arg1);
_local12 = (_arg8 - _arg2);
_local13 = (_arg5 - _arg3);
_local14 = (_arg6 - _arg4);
_local15 = _p.length;
while (--_local15 > -1) {
_local16 = _p[_local15];
_local17 = ((_local16.x - _xMin) / _local9);
_local18 = ((_local16.y - _yMin) / _local10);
_local19 = (_arg1 + (_local18 * _local11));
_local20 = (_arg2 + (_local18 * _local12));
_local16.sx = (_local19 + (_local17 * ((_arg3 + (_local18 * _local13)) - _local19)));
_local16.sy = (_local20 + (_local17 * ((_arg4 + (_local18 * _local14)) - _local20)));
};
__render();
}
public function start():void{
_timer.start();
}
private function onTimer(_arg1:TimerEvent):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
this.x = (this.x - (xInc / 2));
if ((((x1 > xEndPos)) || ((x2 > xEndPos)))){
x2 = xEndPos;
x3 = xEndPos;
y1 = 0;
y2 = 0;
y3 = yPos;
y4 = yPos;
_timer.stop();
onTimerComplete();
} else {
if ((((x1 > xPos)) && (!(flipped)))){
flipped = true;
_texture = _front;
x1 = xPos;
x4 = xPos;
_local2 = x1;
_local3 = x3;
_local4 = y1;
_local5 = y3;
x1 = x2;
x3 = x4;
x2 = _local2;
x4 = _local3;
y1 = y2;
y3 = y4;
y2 = _local4;
y4 = _local5;
x1 = (x1 + xInc);
x4 = (x4 + xInc);
y1 = (y1 + yInc);
y2 = (y2 - yInc);
y3 = (y3 + yInc);
y4 = (y4 - yInc);
} else {
if (x1 > xPos){
x2 = (x2 + xInc);
x3 = (x3 + xInc);
y1 = (y1 - yInc);
y2 = (y2 + yInc);
y3 = (y3 - yInc);
y4 = (y4 + yInc);
} else {
x1 = (x1 + xInc);
x4 = (x4 + xInc);
y1 = (y1 - yInc);
y2 = (y2 + yInc);
y3 = (y3 - yInc);
y4 = (y4 + yInc);
};
};
};
setTransform(x1, y1, x2, y2, x3, y3, x4, y4);
}
private function __render():void{
var _local1:Object;
var _local2:Object;
var _local3:Object;
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_mc.graphics.clear();
_sMat = new Matrix();
_tMat = new Matrix();
_local5 = _tri.length;
while (--_local5 > -1) {
_local4 = _tri[_local5];
_local1 = _local4[0];
_local2 = _local4[1];
_local3 = _local4[2];
_local6 = _local1.sx;
_local7 = _local1.sy;
_local8 = _local2.sx;
_local9 = _local2.sy;
_local10 = _local3.sx;
_local11 = _local3.sy;
_local12 = _local1.x;
_local13 = _local1.y;
_local14 = _local2.x;
_local15 = _local2.y;
_local16 = _local3.x;
_local17 = _local3.y;
_tMat.tx = _local12;
_tMat.ty = _local13;
_tMat.a = ((_local14 - _local12) / _w);
_tMat.b = ((_local15 - _local13) / _w);
_tMat.c = ((_local16 - _local12) / _h);
_tMat.d = ((_local17 - _local13) / _h);
_sMat.a = ((_local8 - _local6) / _w);
_sMat.b = ((_local9 - _local7) / _w);
_sMat.c = ((_local10 - _local6) / _h);
_sMat.d = ((_local11 - _local7) / _h);
_sMat.tx = _local6;
_sMat.ty = _local7;
_tMat.invert();
_tMat.concat(_sMat);
_mc.graphics.beginBitmapFill(_texture, _tMat, false, false);
_mc.graphics.moveTo(_local6, _local7);
_mc.graphics.lineTo(_local8, _local9);
_mc.graphics.lineTo(_local10, _local11);
_mc.graphics.endFill();
};
}
}
}//package view.tween
Section 79
//MoveTween (view.tween.MoveTween)
package view.tween {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class MoveTween extends EventDispatcher {
private var _display:DisplayObject;
private var _finishXPos:Number;
private var _tweenTimerCount:int;// = 6
private var _moveIncrementX:Number;
private var _moveIncrementY:Number;
private var _newDepth:int;
private var _startYPos:Number;
private var _finishYPos:Number;
private var _tweenTimer:Timer;
private var _startXPos:Number;
public function MoveTween(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:int){
_tweenTimerCount = 6;
super();
_display = _arg1;
_startXPos = _display.x;
_startYPos = _display.y;
_finishXPos = _arg2;
_finishYPos = _arg3;
_newDepth = _arg4;
_moveIncrementX = (_finishXPos - _startXPos);
_moveIncrementY = (_finishYPos - _startYPos);
init();
}
private function init():void{
_tweenTimer = new Timer(10, _tweenTimerCount);
_tweenTimer.addEventListener(TimerEvent.TIMER, onTweenTimer, false, 0, true);
_tweenTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
startTween();
}
private function onTimerComplete(_arg1:TimerEvent):void{
dispatchEvent(_arg1);
}
private function onTweenTimer(_arg1:TimerEvent):void{
_display.x = (_display.x + (_moveIncrementX / _tweenTimerCount));
_display.y = (_display.y + (_moveIncrementY / _tweenTimerCount));
}
private function startTween():void{
try {
if (((!((_newDepth == -1))) && (!((_display.parent == null))))){
_display.parent.setChildIndex(_display, _newDepth);
};
_tweenTimer.start();
} catch(e:RangeError) {
e.message;
};
}
}
}//package view.tween
Section 80
//AbstractScoreScreen (view.AbstractScoreScreen)
package view {
import flash.display.*;
public class AbstractScoreScreen extends MovieClip {
public function display():void{
}
public function displayHeader():void{
}
}
}//package view
Section 81
//ButtonArrowAnimation (view.ButtonArrowAnimation)
package view {
import flash.display.*;
public class ButtonArrowAnimation extends MovieClip {
public function ButtonArrowAnimation(){
stop();
}
public function playAnimation():void{
this.play();
}
}
}//package view
Section 82
//Card (view.Card)
package view {
import controller.*;
import flash.events.*;
import model.*;
import flash.display.*;
import org.osflash.thunderbolt.*;
import view.tween.*;
public class Card extends Sprite {
private var _front:Bitmap;
private var _controller:ScarabGameController;
private var _flipped:Boolean;
private var _flipTween:FlipTween;
private var _display:DisplayObject;
private var _data:CardModel;
private var _glowGenerator:GlowParticleGenerator;
private var _back:Bitmap;
public function Card(_arg1:CardModel, _arg2:ScarabGameController){
_data = _arg1;
_controller = _arg2;
_controller.addEventListener("GameOver", onGameOver, false, 0, true);
init();
}
private function dropFrontImage():void{
if (_front != null){
if (_front.parent == this){
this.removeChild(_front);
_front = null;
};
};
}
private function init():void{
addEventListener(MouseEvent.MOUSE_DOWN, onClickHandler, false, 0, true);
_data.addEventListener("active", onActive, false, 0, true);
_data.addEventListener("removed", moveToCheckCardPos, false, 0, true);
loadCardImages();
}
private function startGlow():void{
var board:Sprite;
try {
board = Sprite(this.parent);
_glowGenerator = new GlowParticleGenerator(board, this);
this.addChild(_glowGenerator);
_glowGenerator.x = (this.width * 0.5);
_glowGenerator.y = (this.height * 0.5);
_glowGenerator.start();
} catch(e:Error) {
};
}
private function setNewImage(_arg1:DisplayObject):void{
if (_display == null){
_display = _arg1;
_display.visible = true;
this.addChild(_display);
} else {
if (_display.parent == this){
this.removeChild(_display);
_display = _arg1;
_display.visible = true;
this.addChild(_display);
};
};
}
public function loadCardImages():void{
loadBackImage();
loadFrontImage();
}
private function loadFrontImage():void{
if (_front == null){
_front = ImageManager.getInstance().getBitmap(_data.value);
_front.visible = false;
this.addChild(_front);
};
}
public function changeToTopCardImage(_arg1:int):void{
switch (_arg1){
case 1:
_back = new Bitmap(new Bonus1(0, 0));
break;
case 2:
_back = new Bitmap(new Bonus2(0, 0));
break;
case 3:
_back = new Bitmap(new Bonus3(0, 0));
break;
};
setNewImage(_back);
}
private function onFlipComplete(_arg1:Event):void{
var flipTween:FlipTween;
var event = _arg1;
try {
if (_flipTween != null){
if (_flipTween.parent == this){
this.removeChild(_flipTween);
};
};
flipTween = (event.target as FlipTween);
if (flipTween != null){
flipTween.removeEventListener("flipComplete", onFlipComplete);
};
if (((!((_display == _front))) && (!((_front == null))))){
setNewImage(_front);
};
_flipped = true;
this.graphics.clear();
} catch(e:Error) {
Logger.error(e.message);
};
}
private function moveToCheckCardPos(_arg1:Event):void{
var _local2:MoveTween;
_data.playMove();
_local2 = new MoveTween(this, _data.checkCardPosX, _data.checkCardPosY, 51);
_local2.addEventListener(TimerEvent.TIMER_COMPLETE, onMoveToCheckCardPosComplete, false, 0, true);
}
private function onClickHandler(_arg1:MouseEvent):void{
_controller.cardClicked(_data);
}
private function loadBackImage():void{
var _local1:int;
_local1 = (Math.random() * 10);
switch (_local1){
case 0:
_back = new Bitmap(new Back0(62, 94));
break;
case 1:
_back = new Bitmap(new Back1(62, 94));
break;
case 2:
_back = new Bitmap(new Back2(62, 94));
break;
case 3:
_back = new Bitmap(new Back3(62, 94));
break;
case 4:
_back = new Bitmap(new Back4(62, 94));
break;
case 5:
_back = new Bitmap(new Back5(62, 94));
break;
case 6:
_back = new Bitmap(new Back6(62, 94));
break;
case 7:
_back = new Bitmap(new Back7(62, 94));
break;
case 8:
_back = new Bitmap(new Back8(62, 94));
break;
case 9:
_back = new Bitmap(new Back9(62, 94));
break;
};
setNewImage(_back);
}
public function reset():void{
dropFrontImage();
_flipped = false;
_display = null;
}
private function flip():void{
if (_data.cardScore == 1000){
_data.playScarabCardReveal();
};
_data.playFlip();
_back.visible = false;
_flipTween = new FlipTween(_front.bitmapData, _back.bitmapData, 6, 6);
this.addChild(_flipTween);
_flipTween.addEventListener("flipComplete", onFlipComplete, false, 0, true);
_flipTween.start();
}
private function stopGlow():void{
try {
this.removeChild(_glowGenerator);
_glowGenerator.stop();
_glowGenerator = null;
} catch(e:ArgumentError) {
};
}
private function onActive(_arg1:Event):void{
if (_data.cardScore == 1000){
startGlow();
};
flip();
}
public function moveToStartPos():void{
var _local1:int;
var _local2:int;
var _local3:int;
_data.playMove();
_local1 = _data.endPosX;
_local2 = _data.endPosY;
_local3 = _data.endDepth;
new MoveTween(this, _local1, _local2, _local3);
}
private function onMoveToCheckCardPosComplete(_arg1:TimerEvent):void{
if (_data.cardScore == 1000){
stopGlow();
_data.playDrum();
};
}
private function onGameOver(_arg1:Event):void{
if (_glowGenerator != null){
_glowGenerator.stop();
};
}
}
}//package view
Section 83
//ClockView (view.ClockView)
package view {
import flash.events.*;
import model.*;
import flash.display.*;
import flash.utils.*;
public class ClockView extends Sprite {
private var _currentBitmap:Bitmap;
private var _model:Clock;
private var _pointers:Array;
private var _rewindTimer:Timer;
private var _glowBitmap:Bitmap;
private var _rewindCounter:int;// = 59
public function ClockView(){
_rewindCounter = 59;
super();
_model = Clock.getInstance();
_pointers = new Array();
_rewindTimer = new Timer(10, 29);
init();
}
private function init():void{
_model.addEventListener("tick", tick, false, 0, true);
_model.addEventListener("rewind", rewind, false, 0, true);
_model.addEventListener("reset", rewind, false, 0, true);
_rewindTimer.addEventListener(TimerEvent.TIMER, onRewindTimer);
_rewindTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onRewindTimerComplete);
loadGlow();
loadPointerImage("clock1.png");
}
private function loadPointerImage(_arg1:String):void{
var _local2:Class;
var _local3:BitmapData;
var _local4:Bitmap;
_local2 = (getDefinitionByName(_arg1) as Class);
_local3 = new _local2(0, 0);
_local4 = new Bitmap(_local3);
if (_currentBitmap == null){
_currentBitmap = _local4;
_currentBitmap.y = (_currentBitmap.y - 11);
_currentBitmap.x = (_currentBitmap.x + 15);
this.addChildAt(_currentBitmap, 0);
} else {
if (_currentBitmap.parent == this){
this.removeChild(_currentBitmap);
_currentBitmap = _local4;
_currentBitmap.y = (_currentBitmap.y - 11);
_currentBitmap.x = (_currentBitmap.x + 15);
this.addChildAt(_currentBitmap, 0);
};
};
}
private function onRewindTimerComplete(_arg1:TimerEvent):void{
_rewindTimer.reset();
loadPointerImage("clock1.png");
_rewindCounter = 59;
}
private function tick(_arg1:Event):void{
var _local2:int;
_local2 = _model.getReverseTicks();
switch (_local2){
case 0:
_glowBitmap.alpha = 0;
break;
case 1:
_glowBitmap.alpha = 0;
break;
case 8:
_glowBitmap.alpha = 0.2;
break;
case 9:
_glowBitmap.alpha = 0.4;
break;
case 10:
_glowBitmap.alpha = 0.6;
break;
case 11:
_glowBitmap.alpha = 0.9;
break;
case 12:
_glowBitmap.alpha = 1;
break;
};
if (_local2 != 0){
loadPointerImage((("clock" + (_local2 * 5)) + ".png"));
};
}
private function loadGlow():void{
_glowBitmap = new Bitmap(new Glow(0, 0));
_glowBitmap.x = 15;
_glowBitmap.y = -12;
_glowBitmap.alpha = 0;
this.addChild(_glowBitmap);
}
private function rewind(_arg1:Event):void{
loadPointerImage("clock1.png");
}
private function onRewindTimer(_arg1:TimerEvent):void{
if (_rewindCounter > 0){
loadPointerImage((("clock" + _rewindCounter) + ".png"));
_rewindCounter = (_rewindCounter - 2);
};
}
}
}//package view
Section 84
//Consts (view.Consts)
package view {
public class Consts {
public static const BACKCLICK:String = "BACKCLICK";
public static const HOWTOPLAYCLICK:String = "HOWTOPLAYCLICK";
public static const PLAYCLICK:String = "PLAYCLICK";
public static const GAMARENACLICK:String = "GAMARENACLICK";
public static const PLAYAGAINCLICK:String = "PLAYAGAINCLICK";
public static const DECKDRAG:String = "DECKDRAG";
}
}//package view
Section 85
//GameOverScoreScreen (view.GameOverScoreScreen)
package view {
import controller.*;
import flash.events.*;
import model.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class GameOverScoreScreen extends AbstractScoreScreen {
private var _level4TF:TextField;
private var _waitAfterGameOverTimer:Timer;
private var _timeBonusTextTF:TextField;
private var _scarabCardScoreTF:TextField;
private var _level2TextTF:TextField;
private var _headerTF:TextField;
private var _cardScoreTextTF:TextField;
private var _totalScoreTextTF:TextField;
private var _model:ScarabGameModel;
private var _inARowScoreTF:TextField;
private var _controller:ScarabGameController;
private var _scoreBackground:Sprite;
private var _cardsLeftTF:TextField;
private var _level3TF:TextField;
private var _level2TF:TextField;
private var _scoreYSeparation:int;// = 20
private var _level4TextTF:TextField;
private var _totalScoreTF:TextField;
private var _level3TextTF:TextField;
private var _timeBonusTF:TextField;
private var _scoreStartY:int;// = 10
private var _cardScoreTF:TextField;
private var _inARowScoreTextTF:TextField;
private var _level1TF:TextField;
private var _level5TF:TextField;
private var _cardsLeftTextTF:TextField;
private var _scoreAnimationTimer:Timer;
private var _level5TextTF:TextField;
private var _level1TextTF:TextField;
private var _scarabCardTextTF:TextField;
public function GameOverScoreScreen(_arg1:ScarabGameController, _arg2:ScarabGameModel){
var _local3:Font;
var _local4:Font;
var _local5:TextFormat;
var _local6:TextFormat;
var _local7:TextFormat;
var _local8:TextFormat;
var _local9:int;
var _local10:int;
_scoreStartY = 10;
_scoreYSeparation = 20;
super();
_controller = _arg1;
_controller.addEventListener("gameOverScore", display, false, 0, true);
_model = _arg2;
_local3 = new MyriadPro();
_local4 = new NimbusSans();
_local5 = new TextFormat();
_local5.color = 0xFFFFFF;
_local5.font = _local3.fontName;
_local5.size = 12;
_local6 = new TextFormat();
_local6.color = 0xFFFFFF;
_local6.font = _local4.fontName;
_local6.size = 16;
_local6.bold = true;
_local7 = new TextFormat();
_local7.color = 0xFFFFFF;
_local7.font = _local3.fontName;
_local7.size = 12;
_local7.align = TextFormatAlign.RIGHT;
_local8 = _local7;
_local9 = 10;
_local10 = 210;
_headerTF = createAndPlaceTextField(10, 7, "GAME COMPLETED", _local6);
_headerTF.width = 200;
_scarabCardTextTF = createAndPlaceTextField(_local9, (_scoreStartY + _scoreYSeparation), "Scarab Cards", _local5);
_cardScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 2)), "Card Score", _local5);
_inARowScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 3)), "In-a-row Score", _local5);
_timeBonusTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 4)), "Time Bonus", _local5);
_cardsLeftTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 5)), "Cards Left", _local5);
_level1TextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 7)), "Level 1 score", _local5);
_level2TextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 8)), "Level 2 score", _local5);
_level3TextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 9)), "Level 3 score", _local5);
_level4TextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 10)), "Level 4 score", _local5);
_level5TextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 11)), "Level 5 score", _local5);
_totalScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 8)), "Total Score", _local5);
_scarabCardScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + _scoreYSeparation), "", _local8);
_cardScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 2)), "", _local8);
_inARowScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 3)), "", _local8);
_timeBonusTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 4)), "", _local8);
_cardsLeftTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 5)), "", _local8);
_level1TF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 7)), "", _local8);
_level2TF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 8)), "", _local8);
_level3TF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 9)), "", _local8);
_level4TF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 10)), "", _local8);
_level5TF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 11)), "", _local8);
_totalScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 8)), "", _local8);
setBackground();
}
private function setBackground():void{
try {
switch (_model.currentLevel){
case 1:
_scoreBackground = new GameOverWindowLevel1();
this.addChildAt(_scoreBackground, 0);
break;
case 2:
_scoreBackground = new GameOverWindowLevel2();
_scoreBackground.y = (_scoreBackground.y - 30);
this.addChildAt(_scoreBackground, 0);
break;
case 3:
_scoreBackground = new GameOverWindowLevel3();
_scoreBackground.y = (_scoreBackground.y - 60);
this.addChildAt(_scoreBackground, 0);
break;
case 4:
_scoreBackground = new GameOverWindowLevel4();
_scoreBackground.y = (_scoreBackground.y - 80);
this.addChildAt(_scoreBackground, 0);
break;
case 5:
_scoreBackground = new GameOverWindowLevel5();
_scoreBackground.y = (_scoreBackground.y - 100);
this.addChildAt(_scoreBackground, 0);
break;
};
_scoreBackground.addChild(_headerTF);
} catch(e:Error) {
};
}
private function onGameOverTimer(_arg1:TimerEvent):void{
var _local2:Timer;
_local2 = (_arg1.target as Timer);
switch (_local2.currentCount){
case 1:
_scoreBackground.addChild(_scarabCardTextTF);
_scoreBackground.addChild(_scarabCardScoreTF);
break;
case 2:
_scoreBackground.addChild(_cardScoreTextTF);
_scoreBackground.addChild(_cardScoreTF);
break;
case 3:
_scoreBackground.addChild(_inARowScoreTextTF);
_scoreBackground.addChild(_inARowScoreTF);
break;
case 4:
_scoreBackground.addChild(_timeBonusTextTF);
_scoreBackground.addChild(_timeBonusTF);
break;
case 5:
_scoreBackground.addChild(_level1TextTF);
_scoreBackground.addChild(_level1TF);
break;
case 6:
_scoreBackground.addChild(_level2TextTF);
_scoreBackground.addChild(_level2TF);
break;
case 7:
_scoreBackground.addChild(_level3TextTF);
_scoreBackground.addChild(_level3TF);
break;
case 8:
_scoreBackground.addChild(_level4TextTF);
_scoreBackground.addChild(_level4TF);
break;
case 9:
_scoreBackground.addChild(_level5TextTF);
_scoreBackground.addChild(_level5TF);
break;
};
}
private function createAndPlaceTextField(_arg1:int, _arg2:int, _arg3:String, _arg4:TextFormat):TextField{
var _local5:TextField;
_local5 = new TextField();
_local5.x = _arg1;
_local5.y = _arg2;
_local5.defaultTextFormat = _arg4;
_local5.embedFonts = true;
_local5.antiAliasType = AntiAliasType.ADVANCED;
_local5.text = _arg3;
_local5.embedFonts = true;
_local5.selectable = false;
return (_local5);
}
private function onWaitComplete(_arg1:TimerEvent):void{
dispatchEvent(new TextEvent("waitComplete", false, false, Score.getInstance().getGameOverTotalScore().toString()));
}
private function onGameOverTimerComplete(_arg1:TimerEvent):void{
_scoreBackground.addChild(_totalScoreTextTF);
_scoreBackground.addChild(_totalScoreTF);
_waitAfterGameOverTimer = new Timer(4000, 1);
_waitAfterGameOverTimer.addEventListener(TimerEvent.TIMER, onWaitComplete);
_waitAfterGameOverTimer.start();
}
override public function display():void{
var _local1:Score;
var _local2:int;
_local1 = Score.getInstance();
_local2 = 4;
_local2 = (_local2 + _model.currentLevel);
_totalScoreTextTF.y = (_totalScoreTextTF.y + (_scoreYSeparation * _model.currentLevel));
_totalScoreTF.y = (_totalScoreTF.y + (_scoreYSeparation * _model.currentLevel));
_scoreAnimationTimer = new Timer(250, _local2);
_scoreAnimationTimer.addEventListener(TimerEvent.TIMER, onGameOverTimer, false, 0, true);
_scoreAnimationTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onGameOverTimerComplete, false, 0, true);
_scarabCardScoreTF.text = _local1.getGameOverScarabCardScore().toString();
_cardScoreTF.text = _local1.getGameOverCardScore().toString();
_inARowScoreTF.text = _local1.getGameOverInARowScore().toString();
_timeBonusTF.text = _local1.getGameOverTimeBonusScore().toString();
_level1TF.text = _local1.getTotalScore(_local1.LEVEL1).toString();
_level2TF.text = _local1.getTotalScore(_local1.LEVEL2).toString();
_level3TF.text = _local1.getTotalScore(_local1.LEVEL3).toString();
_level4TF.text = _local1.getTotalScore(_local1.LEVEL4).toString();
_level5TF.text = _local1.getTotalScore(_local1.LEVEL5).toString();
_totalScoreTF.text = _local1.getGameOverTotalScore().toString();
_scoreAnimationTimer.start();
}
}
}//package view
Section 86
//GlowLight (view.GlowLight)
package view {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class GlowLight extends Sprite {
private var _changeDirChance:int;// = 10
private var _yDir:int;
private var _speed:int;// = 4
private var _glowAnimation:MovieClip;
private var _xDir:int;
private var _movingTimer:Timer;
public function GlowLight(){
_speed = 4;
_changeDirChance = 10;
super();
this.mouseEnabled = false;
this.mouseChildren = false;
_xDir = (_xDir + (Math.random() * _speed));
_yDir = (_yDir + (Math.random() * _speed));
addRandomBitmap();
startMovingTimer();
}
private function addRandomBitmap():void{
var number:Number;
number = Math.random();
try {
if (number > 0.5){
_glowAnimation = new Spark1();
this.addChild(_glowAnimation);
} else {
_glowAnimation = new Spark2();
this.addChild(_glowAnimation);
};
} catch(e:ArgumentError) {
};
}
private function onMovingTimer(_arg1:TimerEvent):void{
var _local2:int;
_local2 = (Math.random() * _changeDirChance);
if (_local2 == 0){
_xDir = (((Math.random() * 2) - 1) * _speed);
_yDir = (((Math.random() * 2) - 1) * _speed);
};
this.x = (this.x + (Math.random() * _xDir));
this.y = (this.y + (Math.random() * _yDir));
}
private function onMovingTimerComplete(_arg1:TimerEvent):void{
var event = _arg1;
try {
_movingTimer.stop();
_movingTimer.removeEventListener(TimerEvent.TIMER, onMovingTimer);
_movingTimer.removeEventListener(TimerEvent.TIMER, onMovingTimerComplete);
_movingTimer = null;
this.parent.removeChild(this);
} catch(e:ArgumentError) {
};
}
private function startMovingTimer():void{
var _local1:int;
_local1 = ((Math.random() * 100) + 20);
_movingTimer = new Timer(20, _local1);
_movingTimer.addEventListener(TimerEvent.TIMER, onMovingTimer, false, 0, true);
_movingTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onMovingTimerComplete, false, 0, true);
_movingTimer.start();
}
}
}//package view
Section 87
//GlowParticleGenerator (view.GlowParticleGenerator)
package view {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class GlowParticleGenerator extends Sprite {
private var _generateGlowTimer:Timer;
private var _board:Sprite;
private var _card:Card;
public function GlowParticleGenerator(_arg1:Sprite, _arg2:Card){
_board = _arg1;
_card = _arg2;
init();
}
public function stop():void{
_generateGlowTimer.stop();
_generateGlowTimer.removeEventListener(TimerEvent.TIMER, onGenerateGlowTimer);
}
private function init():void{
_generateGlowTimer = new Timer(75, 0);
_generateGlowTimer.addEventListener(TimerEvent.TIMER, onGenerateGlowTimer, false, 0, true);
}
public function start():void{
_generateGlowTimer.start();
}
private function onGenerateGlowTimer(_arg1:TimerEvent):void{
var glowLight:GlowLight;
var randX:int;
var randY:int;
var event = _arg1;
try {
glowLight = new GlowLight();
randX = ((Math.random() * 100) - 50);
randY = ((Math.random() * 100) - 50);
glowLight.x = (_card.x + randX);
glowLight.y = (_card.y + randY);
_board.addChild(glowLight);
} catch(e:Error) {
};
}
}
}//package view
Section 88
//HowToPlayWindow (view.HowToPlayWindow)
package view {
import flash.events.*;
import flash.display.*;
public class HowToPlayWindow extends MovieClip {
public var backBtn:SmallButton;
public var scoringBtn:ToggleButton;
public var basicsBtn:ToggleButton;
public function HowToPlayWindow(){
stop();
showBasic();
basicsBtn.addEventListener(MouseEvent.CLICK, onBasicsBtnClick);
scoringBtn.addEventListener(MouseEvent.CLICK, onScoringBtnClick);
backBtn.addEventListener(MouseEvent.CLICK, onBackBtnClick);
}
private function onBackBtnClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.BACKCLICK));
}
private function showBasic(_arg1:Event=null):void{
gotoAndStop(1);
basicsBtn.selected = true;
scoringBtn.selected = false;
basicsBtn.showOverMode();
scoringBtn.showOutMode();
}
private function showScoring(_arg1:Event=null):void{
gotoAndStop(2);
scoringBtn.selected = true;
basicsBtn.selected = false;
basicsBtn.showOutMode();
scoringBtn.showOverMode();
}
private function onBasicsBtnClick(_arg1:MouseEvent):void{
showBasic();
}
private function onScoringBtnClick(_arg1:MouseEvent):void{
showScoring();
}
}
}//package view
Section 89
//InstructionsButtonReverse (view.InstructionsButtonReverse)
package view {
import flash.events.*;
public class InstructionsButtonReverse extends SmallButton {
public function InstructionsButtonReverse(){
text.textColor = 0xFFFFFF;
}
override protected function onMouseOut(_arg1:MouseEvent):void{
text.textColor = 0xFFFFFF;
}
override protected function onMouseOver(_arg1:MouseEvent):void{
text.textColor = 0xFFFFFF;
}
}
}//package view
Section 90
//LoadingButton (view.LoadingButton)
package view {
import flash.events.*;
import model.*;
import flash.display.*;
import flash.text.*;
public class LoadingButton extends MovieClip {
public var text:TextField;
public var animation:ButtonArrowAnimation;
public function LoadingButton(){
super();
try {
stop();
text.mouseEnabled = false;
text.selectable = false;
this.mouseChildren = true;
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function onMouseOver(_arg1:MouseEvent):void{
text.textColor = 0xFFFFFF;
}
private function onMouseOut(_arg1:MouseEvent):void{
text.textColor = 9817089;
}
public function enable():void{
animation.playAnimation();
this.gotoAndStop("enabled");
text.textColor = 9817089;
this.buttonMode = true;
this.addEventListener(MouseEvent.ROLL_OVER, onMouseOver, false, 0, true);
this.addEventListener(MouseEvent.ROLL_OUT, onMouseOut, false, 0, true);
}
public function disable():void{
animation.gotoAndStop(1);
this.gotoAndStop("disabled");
text.textColor = 0x999999;
this.buttonMode = false;
this.removeEventListener(MouseEvent.ROLL_OVER, onMouseOver);
this.removeEventListener(MouseEvent.ROLL_OUT, onMouseOut);
}
}
}//package view
Section 91
//NoMoreMovesTween (view.NoMoreMovesTween)
package view {
import flash.events.*;
import flash.display.*;
public class NoMoreMovesTween extends MovieClip {
public function NoMoreMovesTween(){
stop();
}
private function onEnterFrame(_arg1:Event):void{
if (this.currentFrame == 49){
stop();
this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
dispatchEvent(new Event("playFadeComplete"));
};
}
public function playFade():void{
this.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
play();
}
}
}//package view
Section 92
//Profile (view.Profile)
package view {
import flash.events.*;
import model.*;
import flash.display.*;
import fl.transitions.*;
import flash.text.*;
import fl.transitions.easing.*;
public class Profile extends MovieClip {
public var bestScoreTF:TextField;
public var buddyRankTF:TextField;
public var bestScore:TextField;
public var buddyRank:TextField;
public var globalRankTF:TextField;
private var _slideInTween:Tween;
public var playAgainBtn:SmallButton;
public var globalRank:TextField;
public var tryMoreGamesButton:SmallButton;
public var scoreTF:TextField;
public var motivationTF:TextField;
public var scoreHeader:TextField;
public function Profile(){
init();
}
private function onGamararenaBtnClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.GAMARENACLICK));
}
private function onPlayAgainBtnClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.PLAYAGAINCLICK));
}
private function init():void{
try {
playAgainBtn.addEventListener(MouseEvent.CLICK, onPlayAgainBtnClick);
tryMoreGamesButton.addEventListener(MouseEvent.CLICK, onGamararenaBtnClick);
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function onSlideInTweenFinished(_arg1:TweenEvent=null):void{
_slideInTween.removeEventListener(TweenEvent.MOTION_FINISH, onSlideInTweenFinished);
_slideInTween = null;
}
public function display():void{
var yPos:int;
var xPos:int;
try {
yPos = ((this.stage.stageHeight * 0.5) - (this.height * 0.5));
xPos = ((this.stage.stageWidth * 0.5) - (this.width * 0.5));
this.y = yPos;
_slideInTween = new Tween(this, "x", Strong.easeOut, -300, xPos, 1, true);
_slideInTween.addEventListener(TweenEvent.MOTION_FINISH, onSlideInTweenFinished, false, 0, true);
if (ScarabSolitaireGame.MainGame.bestScore < Score.getInstance().getGameOverTotalScore()){
ScarabSolitaireGame.MainGame.bestScore = Score.getInstance().getGameOverTotalScore();
motivationTF.text = "Congratulations! \nNew Personal Best Score!";
} else {
motivationTF.text = "You can do better, try again!";
};
scoreTF.text = Score.getInstance().getGameOverTotalScore().toString();
bestScoreTF.text = ScarabSolitaireGame.MainGame.bestScore.toString();
} catch(e:TypeError) {
ErrorHandler.getInstance().printError(e);
};
}
public function update(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String):void{
var globalRankText:String;
var buddyRankText:String;
var bestScore = _arg1;
var globalRank = _arg2;
var globalCount = _arg3;
var buddyRank = _arg4;
var buddyCount = _arg5;
var motivation = _arg6;
try {
globalRankText = ((globalRank + " of ") + globalCount);
buddyRankText = ((buddyRank + " of ") + buddyCount);
globalRankTF.text = globalRankText;
buddyRankTF.text = buddyRankText;
bestScoreTF.text = bestScore;
motivationTF.text = motivation;
scoreHeader.visible = true;
scoreTF.visible = true;
bestScoreTF.visible = true;
buddyRankTF.visible = true;
globalRankTF.visible = true;
motivationTF.visible = true;
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
}
}//package view
Section 93
//ScarabGameView (view.ScarabGameView)
package view {
import controller.*;
import flash.events.*;
import model.*;
import flash.display.*;
import flash.utils.*;
public class ScarabGameView extends Sprite {
private var _cardCounter:int;// = 51
private var _model:ScarabGameModel;
private var _controller:ScarabGameController;
private var _howToPlay:HowToPlayWindow;
private var _clockView:ClockView;
private var _profile:Profile;
private var _cards:Array;
private var _scoreFadeText:ScoreTextFade;
private var _scarab:ScarabGraphic;
private var _splash:Splash;
private var _noMoreMovesTween:DisplayObject;
private var _topBar:TopBar;
private var _cardPositioningTimer:Timer;
private var _board:Sprite;
public function ScarabGameView(_arg1:ScarabGameController, _arg2:ScarabGameModel){
_cardCounter = 51;
super();
_cards = new Array();
_controller = _arg1;
_model = _arg2;
_clockView = new ClockView();
}
public function displayNoMoreMovesTween(_arg1:DisplayObject):void{
var _local2:int;
_noMoreMovesTween = _arg1;
_local2 = ((stage.stageWidth / 2) - (_noMoreMovesTween.width / 2));
_noMoreMovesTween.x = _local2;
_noMoreMovesTween.y = 290;
this.addChild(_noMoreMovesTween);
}
public function moveCards():void{
_cardCounter = 51;
_cardPositioningTimer = new Timer(65, 52);
_cardPositioningTimer.addEventListener(TimerEvent.TIMER, moveCard);
_cardPositioningTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onMoveCardsTimerComplete);
_cardPositioningTimer.start();
}
public function displayHowToPlay():void{
_howToPlay = new HowToPlayWindow();
_howToPlay.addEventListener(Consts.BACKCLICK, howToPlayBackClick);
this.addChild(_howToPlay);
}
public function displayClockView():void{
_clockView.x = -15;
_clockView.y = 337;
this.addChild(_clockView);
}
public function displayBoard():void{
_board = new Sprite();
this.addChild(_board);
}
public function addScarabPiece():void{
_scarab.addScarabPiece();
}
private function onMoveCardsTimerComplete(_arg1:TimerEvent):void{
_cardPositioningTimer.removeEventListener(TimerEvent.TIMER, moveCard);
_cardPositioningTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onMoveCardsTimerComplete);
_cardPositioningTimer = null;
_controller.playIntro();
}
public function resetScarab():void{
_scarab.display();
}
public function displayBackground():void{
var _local1:Bitmap;
_local1 = new Bitmap(new Background(0, 0));
_local1.y = 42;
this.addChild(_local1);
}
private function moveCard(_arg1:TimerEvent):void{
var _local2:Card;
if (_cardPositioningTimer.currentCount == 27){
dispatchEvent(new Event(Consts.DECKDRAG));
};
_local2 = (_cards[_cardCounter] as Card);
_local2.moveToStartPos();
_cardCounter--;
}
public function moveCardsToDefault():void{
var _local1:Card;
var _local2:int;
var _local3:int;
_local2 = _cards.length;
while (_local3 < _local2) {
_local1 = _cards[_local3];
_local1.x = 179;
_local1.y = 330;
_board.setChildIndex(_local1, _local3);
_local3++;
};
}
public function displayProfile():void{
_profile = new Profile();
_profile.addEventListener(Consts.PLAYAGAINCLICK, dispatchCustomEvent, false, 0, true);
_profile.addEventListener(Consts.GAMARENACLICK, dispatchCustomEvent, false, 0, true);
this.addChild(_profile);
_profile.display();
}
public function setCardImages():void{
var _local1:Card;
for each (_local1 in _cards) {
_local1.loadCardImages();
};
}
public function removeHowToPlay():void{
if (_howToPlay != null){
if (_howToPlay.parent == this){
this.removeChild(_howToPlay);
};
_howToPlay = null;
};
}
public function resetCards():void{
var _local1:Card;
for each (_local1 in _cards) {
_local1.reset();
};
}
public function playScarab():void{
_scarab.playRemoveScarabPieces();
}
public function displayCards():void{
var _local1:int;
_local1 = 0;
while (_local1 < _cards.length) {
_board.addChild(_cards[_local1]);
_local1++;
};
}
public function removeNoMoreMovesTween():void{
this.removeChild(_noMoreMovesTween);
_noMoreMovesTween = null;
}
public function createCards():void{
var _local1:int;
var _local2:CardModel;
var _local3:Card;
while (_local1 < 52) {
_local2 = _model.getCardModel(_local1);
_local3 = new Card(_local2, _controller);
_local3.x = 179;
_local3.y = 330;
_cards.push(_local3);
_local1++;
};
}
public function displaySplash():void{
_splash = new Splash();
_splash.addEventListener(Consts.HOWTOPLAYCLICK, dispatchCustomEvent, false, 0, true);
_splash.addEventListener(Consts.PLAYCLICK, dispatchCustomEvent, false, 0, true);
_splash.addEventListener(Consts.GAMARENACLICK, dispatchCustomEvent, false, 0, true);
this.addChild(_splash);
}
private function dispatchCustomEvent(_arg1:Event):void{
dispatchEvent(_arg1);
}
public function displayScarab():void{
_scarab = new ScarabGraphic(this, _controller);
_scarab.x = 459;
_scarab.y = 280;
this.addChild(_scarab);
_scarab.display();
}
public function displayScoreFadeText():void{
_scoreFadeText = new ScoreTextFade();
this.addChild(_scoreFadeText);
}
public function scarabAnimationFinished():void{
_controller.playIntro();
}
public function changeTopCards():void{
var _local1:Card;
var _local2:Card;
var _local3:Card;
_local1 = _cards[49];
_local2 = _cards[50];
_local3 = _cards[51];
_local1.changeToTopCardImage(1);
_local2.changeToTopCardImage(2);
_local3.changeToTopCardImage(3);
_controller.playIntro();
}
public function displayTopBar():void{
_topBar = new TopBar(_model);
this.addChild(_topBar);
_topBar.addEventListener(Consts.HOWTOPLAYCLICK, dispatchCustomEvent, false, 0, true);
_topBar.addEventListener(Consts.GAMARENACLICK, dispatchCustomEvent, false, 0, true);
_topBar.display();
}
private function howToPlayBackClick(_arg1:Event=null):void{
dispatchEvent(_arg1);
}
}
}//package view
Section 94
//ScarabGraphic (view.ScarabGraphic)
package view {
import controller.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class ScarabGraphic extends Sprite {
private var _scarabBack:Bitmap;
private var _scarabTimer:Timer;
private var _scarabPearl:Bitmap;
private var _view:ScarabGameView;
private var _piecesLeft:int;// = 3
private var _scarabBody:Bitmap;
private var _scarabWings:Bitmap;
public function ScarabGraphic(_arg1:ScarabGameView, _arg2:ScarabGameController){
_piecesLeft = 3;
super();
_view = _arg1;
init();
}
private function init():void{
}
public function playRemoveScarabPieces():void{
_scarabTimer = new Timer(100, 3);
_scarabTimer.addEventListener(TimerEvent.TIMER, removeScarabPiece);
_scarabTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onScarabTimerComplete);
_scarabTimer.start();
}
public function addScarabPiece():void{
switch (_piecesLeft){
case 1:
this.addChild(_scarabBody);
_piecesLeft++;
break;
case 2:
this.addChild(_scarabWings);
_piecesLeft++;
break;
case 3:
this.addChild(_scarabPearl);
break;
};
}
private function removeScarabPiece(_arg1:TimerEvent):void{
var event = _arg1;
try {
switch (_piecesLeft){
case 3:
this.removeChild(_scarabBody);
_piecesLeft--;
break;
case 2:
this.removeChild(_scarabWings);
_piecesLeft--;
break;
case 1:
this.removeChild(_scarabPearl);
break;
};
} catch(error:ArgumentError) {
};
}
public function display():void{
_scarabBack = new Bitmap(new ScarabBack(290, 186));
_scarabBody = new Bitmap(new ScarabBody(290, 186));
_scarabPearl = new Bitmap(new ScarabPearl(290, 186));
_scarabWings = new Bitmap(new ScarabWings(290, 186));
this.addChild(_scarabBack);
this.addChild(_scarabBody);
this.addChild(_scarabPearl);
this.addChild(_scarabWings);
}
private function onScarabTimerComplete(_arg1:TimerEvent):void{
_scarabTimer.removeEventListener(TimerEvent.TIMER, removeScarabPiece);
_scarabTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onScarabTimerComplete);
_scarabTimer = null;
_view.scarabAnimationFinished();
}
}
}//package view
Section 95
//ScoreScreen (view.ScoreScreen)
package view {
import controller.*;
import flash.events.*;
import model.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class ScoreScreen extends AbstractScoreScreen {
private var _timeBonusTextTF:TextField;
private var _scarabCardScoreTF:TextField;
private var _totalScoreTextTF:TextField;
private var _headerTF:TextField;
private var _cardScoreTextTF:TextField;
private var _inARowScoreTF:TextField;
private var _model:ScarabGameModel;
private var _controller:ScarabGameController;
private var _scoreBackground:Sprite;
private var _cardsLeftTF:TextField;
private var _totalScoreTF:TextField;
private var _scoreYSeparation:int;// = 20
private var _cardScoreTF:TextField;
private var _score:Score;
private var _timeBonusTF:TextField;
private var _scoreStartY:int;// = 30
private var _inARowScoreTextTF:TextField;
private var _scoreAnimationTimer:Timer;
private var _cardsLeftTextTF:TextField;
private var _scarabCardTextTF:TextField;
public function ScoreScreen(_arg1:ScarabGameController, _arg2:ScarabGameModel){
var _local3:Font;
var _local4:Font;
var _local5:TextFormat;
var _local6:TextFormat;
var _local7:TextFormat;
var _local8:TextFormat;
var _local9:int;
var _local10:int;
_scoreStartY = 30;
_scoreYSeparation = 20;
super();
_controller = _arg1;
_model = _arg2;
_score = Score.getInstance();
_local3 = new MyriadPro();
_local4 = new NimbusSans();
_local5 = new TextFormat();
_local5.color = 0xFFFFFF;
_local5.font = _local3.fontName;
_local5.size = 12;
_local6 = new TextFormat();
_local6.color = 0xFFFFFF;
_local6.font = _local4.fontName;
_local6.size = 16;
_local6.bold = true;
_local7 = new TextFormat();
_local7.color = 0xFFFFFF;
_local7.font = _local3.fontName;
_local7.size = 12;
_local7.align = TextFormatAlign.RIGHT;
_local8 = _local7;
_scoreBackground = new ScoreBackground();
this.addChild(_scoreBackground);
_local9 = 10;
_local10 = (this.width - 130);
_headerTF = createAndPlaceTextField(_local9, 5, "Header", _local6);
_headerTF.width = 200;
_headerTF.defaultTextFormat = _local6;
_scarabCardTextTF = createAndPlaceTextField(_local9, (_scoreStartY + _scoreYSeparation), "Scarab Cards", _local5);
_cardScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 2)), "Card Score", _local5);
_inARowScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 3)), "In-a-row Score", _local5);
_timeBonusTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 4)), "Time Bonus", _local5);
_cardsLeftTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 5)), "Cards Left", _local5);
_totalScoreTextTF = createAndPlaceTextField(_local9, (_scoreStartY + (_scoreYSeparation * 7)), "Total Score", _local5);
_scarabCardScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + _scoreYSeparation), "", _local8);
_cardScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 2)), "", _local8);
_inARowScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 3)), "", _local8);
_timeBonusTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 4)), "", _local8);
_cardsLeftTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 5)), "", _local8);
_totalScoreTF = createAndPlaceTextField(_local10, (_scoreStartY + (_scoreYSeparation * 7)), "", _local8);
displayHeader();
}
private function onLevelScoreTimer(_arg1:TimerEvent):void{
var _local2:Timer;
_local2 = (_arg1.target as Timer);
switch (_local2.currentCount){
case 1:
this.addChild(_scarabCardTextTF);
this.addChild(_scarabCardScoreTF);
break;
case 2:
this.addChild(_cardScoreTextTF);
this.addChild(_cardScoreTF);
break;
case 3:
this.addChild(_inARowScoreTextTF);
this.addChild(_inARowScoreTF);
break;
case 4:
this.addChild(_timeBonusTextTF);
this.addChild(_timeBonusTF);
break;
case 6:
this.addChild(_totalScoreTextTF);
this.addChild(_totalScoreTF);
break;
};
}
private function createAndPlaceTextField(_arg1:int, _arg2:int, _arg3:String, _arg4:TextFormat):TextField{
var _local5:TextField;
_local5 = new TextField();
_local5.x = _arg1;
_local5.y = _arg2;
_local5.defaultTextFormat = _arg4;
_local5.embedFonts = true;
_local5.antiAliasType = AntiAliasType.ADVANCED;
_local5.selectable = false;
_local5.mouseEnabled = false;
_local5.text = _arg3;
return (_local5);
}
override public function display():void{
var _local1:int;
var _local2:int;
_local1 = _model.currentLevel;
_local2 = (_local1 - 1);
_scoreAnimationTimer = new Timer(250, 20);
_scoreAnimationTimer.addEventListener(TimerEvent.TIMER, onLevelScoreTimer, false, 0, true);
_scoreAnimationTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onLevelScoreTimerComplete, false, 0, true);
_scarabCardScoreTF.text = _score.getLevelScore(_local2, _score.SCARABCARDSCORE).toString();
_cardScoreTF.text = _score.getLevelScore(_local2, _score.CARDSCORE).toString();
_inARowScoreTF.text = _score.getLevelScore(_local2, _score.INAROWSCORE).toString();
_timeBonusTF.text = _score.getLevelScore(_local2, _score.TIMEBONUS).toString();
_totalScoreTF.text = _score.getLevelScore(_local2, _score.TOTALSCORE).toString();
_scoreAnimationTimer.start();
}
override public function displayHeader():void{
var currentLevel:int;
currentLevel = _model.currentLevel;
try {
_headerTF.text = (("LEVEL " + currentLevel.toString()) + " COMPLETED");
this.addChild(_headerTF);
} catch(e:Error) {
ErrorHandler.getInstance().printError(e);
};
}
private function onLevelScoreTimerComplete(_arg1:TimerEvent):void{
_controller.levelScoreTimerComplete();
}
}
}//package view
Section 96
//ScoreTextFade (view.ScoreTextFade)
package view {
import flash.events.*;
import model.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class ScoreTextFade extends Sprite {
private var _fadeTF:TextField;
private var _fadeFont:Font;
private var _fadeStartX:int;// = 360
private var _fadeStartY:int;// = 280
private var _fadeTimer:Timer;
public function ScoreTextFade(){
var _local1:TextFormat;
_fadeStartX = 360;
_fadeStartY = 280;
super();
_fadeTimer = new Timer(20, 20);
_fadeTimer.addEventListener(TimerEvent.TIMER, onFadeTimer);
_fadeTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onFadeTimerComplete);
Score.getInstance().addEventListener("cardScore", onNewScore, false, 0, true);
this.mouseChildren = false;
_fadeTF = new TextField();
_fadeTF.embedFonts = true;
_fadeTF.antiAliasType = AntiAliasType.ADVANCED;
this.addChild(_fadeTF);
_fadeFont = new KaraBenNemsi();
_local1 = new TextFormat();
_local1.color = 15977257;
_local1.font = _fadeFont.fontName;
_local1.align = TextFormatAlign.LEFT;
_fadeTF.defaultTextFormat = _local1;
this.x = _fadeStartX;
this.y = _fadeStartY;
}
private function onFadeTimer(_arg1:TimerEvent):void{
_fadeTF.alpha = (_fadeTF.alpha - 0.05);
this.y = (this.y - 1);
this.x = (this.x - 1);
this.width = (this.width + 15);
this.height = (this.height + 15);
}
private function onFadeTimerComplete(_arg1:TimerEvent):void{
resetFadeTimer();
}
private function resetFadeTimer():void{
_fadeTF.alpha = 1;
_fadeTF.text = "";
this.y = _fadeStartY;
this.x = _fadeStartX;
this.width = 100;
this.height = 100;
_fadeTimer.reset();
}
private function onNewScore(_arg1:TextEvent):void{
if (_fadeTimer.running){
resetFadeTimer();
};
_fadeTF.text = _arg1.text;
_fadeTimer.start();
}
}
}//package view
Section 97
//SmallButton (view.SmallButton)
package view {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class SmallButton extends MovieClip {
public var text:TextField;
public var icon:TextField;
public function SmallButton(){
text.mouseEnabled = false;
text.selectable = false;
text.antiAliasType = AntiAliasType.ADVANCED;
this.mouseChildren = true;
init();
}
protected function onMouseOver(_arg1:MouseEvent):void{
text.textColor = 0xFFFFFF;
}
protected function init():void{
this.buttonMode = true;
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
protected function onMouseOut(_arg1:MouseEvent):void{
text.textColor = 9817089;
}
}
}//package view
Section 98
//Splash (view.Splash)
package view {
import flash.events.*;
import flash.display.*;
public class Splash extends Sprite {
public var howToPlayBtn:SmallButton;
public var logoMC:MovieClip;
public var playBtn:LoadingButton;
public function Splash(){
playBtn.enable();
playBtn.addEventListener(MouseEvent.CLICK, playClick);
howToPlayBtn.icon.mouseEnabled = false;
howToPlayBtn.addEventListener(MouseEvent.CLICK, howToPlayClick);
logoMC.buttonMode = true;
logoMC.addEventListener(MouseEvent.CLICK, logoClick);
}
private function howToPlayClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.HOWTOPLAYCLICK));
}
private function logoClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.GAMARENACLICK));
}
private function playClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.PLAYCLICK));
}
}
}//package view
Section 99
//ToggleButton (view.ToggleButton)
package view {
import flash.events.*;
import flash.display.*;
public class ToggleButton extends MovieClip {
private var _selected:Boolean;
public function ToggleButton(){
this.mouseChildren = false;
this.buttonMode = true;
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
private function onMouseOver(_arg1:MouseEvent):void{
showOverMode();
}
public function set selected(_arg1:Boolean):void{
_selected = _arg1;
}
public function showOutMode():void{
if (!_selected){
this.gotoAndStop("up");
};
}
private function onMouseOut(_arg1:MouseEvent):void{
if (!_selected){
showOutMode();
};
}
public function showOverMode():void{
this.gotoAndStop("over");
}
}
}//package view
Section 100
//TopBar (view.TopBar)
package view {
import flash.events.*;
import model.*;
import flash.display.*;
import flash.text.*;
public class TopBar extends Sprite {
private var _instructionBtn:InstructionsButtonReverse;
public var gamarenaLink:SimpleButton;
private var _model:ScarabGameModel;
private var _soundButton:MovieClip;
public var scoreTF:TextField;
private var _score:Score;
public var levelTF:TextField;
private var _musicButton:MovieClip;
public function TopBar(_arg1:ScarabGameModel){
_model = _arg1;
_score = Score.getInstance();
_score.addEventListener("score", updateScore, false, 0, true);
_model.addEventListener("newLevel", updateLevel, false, 0, true);
}
private function onMusicButtonClick(_arg1:MouseEvent):void{
if (_musicButton.currentFrame == 1){
ScarabSolitaireGame.MainGame.playingMusic = false;
_musicButton.gotoAndStop("off");
MusicManager.getInstance().stopMusic();
} else {
ScarabSolitaireGame.MainGame.playingMusic = true;
_musicButton.gotoAndStop("on");
MusicManager.getInstance().startMusic();
};
}
private function onGamarenaClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.GAMARENACLICK));
}
private function updateLevel(_arg1:TextEvent):void{
levelTF.text = _arg1.text;
}
private function updateScore(_arg1:TextEvent):void{
scoreTF.text = _arg1.text;
}
public function display():void{
var _local1:TopBarBackground;
var _local2:TextFormat;
var _local3:Font;
_local1 = new TopBarBackground();
_local2 = new TextFormat();
_local3 = new MyriadPro();
_local2.color = 0xFFFFFF;
_local2.font = _local3.fontName;
_local2.size = 12;
_local2.align = TextFormatAlign.RIGHT;
_soundButton = new SoundButton();
_soundButton.x = 220;
_soundButton.y = 18;
_musicButton = new MusicButton();
_musicButton.x = 220;
_musicButton.y = 1;
_instructionBtn = new InstructionsButtonReverse();
_instructionBtn.buttonMode = true;
_instructionBtn.text.mouseEnabled = false;
_instructionBtn.text.selectable = false;
_instructionBtn.icon.mouseEnabled = false;
_instructionBtn.icon.selectable = false;
_instructionBtn.x = 437;
_instructionBtn.y = 5;
scoreTF = _local1.scoreTF;
gamarenaLink = _local1.gamarenaLink;
levelTF = _local1.levelTF;
this.addChild(_local1);
this.addChild(_musicButton);
this.addChild(_soundButton);
this.addChild(_instructionBtn);
_musicButton.addEventListener(MouseEvent.CLICK, onMusicButtonClick);
_soundButton.addEventListener(MouseEvent.CLICK, onSoundButtonClick);
_instructionBtn.addEventListener(MouseEvent.CLICK, onInstructionBtnClick);
gamarenaLink.addEventListener(MouseEvent.CLICK, onGamarenaClick);
checkSound();
}
private function onInstructionBtnClick(_arg1:MouseEvent):void{
dispatchEvent(new Event(Consts.HOWTOPLAYCLICK));
}
private function onSoundButtonClick(_arg1:MouseEvent):void{
if (_soundButton.currentFrame == 1){
ScarabSolitaireGame.MainGame.playingSound = false;
_soundButton.gotoAndStop(2);
} else {
ScarabSolitaireGame.MainGame.playingSound = true;
_soundButton.gotoAndStop(1);
};
}
private function checkSound():void{
if (ScarabSolitaireGame.MainGame.playingSound == false){
_soundButton.gotoAndStop("off");
};
if (ScarabSolitaireGame.MainGame.playingMusic == false){
_musicButton.gotoAndStop("off");
};
}
}
}//package view
Section 101
//Back0 (Back0)
package {
import flash.display.*;
public dynamic class Back0 extends BitmapData {
public function Back0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 102
//Back1 (Back1)
package {
import flash.display.*;
public dynamic class Back1 extends BitmapData {
public function Back1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 103
//Back2 (Back2)
package {
import flash.display.*;
public dynamic class Back2 extends BitmapData {
public function Back2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 104
//Back3 (Back3)
package {
import flash.display.*;
public dynamic class Back3 extends BitmapData {
public function Back3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 105
//Back4 (Back4)
package {
import flash.display.*;
public dynamic class Back4 extends BitmapData {
public function Back4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 106
//Back5 (Back5)
package {
import flash.display.*;
public dynamic class Back5 extends BitmapData {
public function Back5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 107
//Back6 (Back6)
package {
import flash.display.*;
public dynamic class Back6 extends BitmapData {
public function Back6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 108
//Back7 (Back7)
package {
import flash.display.*;
public dynamic class Back7 extends BitmapData {
public function Back7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 109
//Back8 (Back8)
package {
import flash.display.*;
public dynamic class Back8 extends BitmapData {
public function Back8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 110
//Back9 (Back9)
package {
import flash.display.*;
public dynamic class Back9 extends BitmapData {
public function Back9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 111
//Background (Background)
package {
import flash.display.*;
public dynamic class Background extends BitmapData {
public function Background(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 112
//BasicsBtn (BasicsBtn)
package {
import view.*;
public dynamic class BasicsBtn extends ToggleButton {
public function BasicsBtn(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 113
//Bonus1 (Bonus1)
package {
import flash.display.*;
public dynamic class Bonus1 extends BitmapData {
public function Bonus1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 114
//Bonus2 (Bonus2)
package {
import flash.display.*;
public dynamic class Bonus2 extends BitmapData {
public function Bonus2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 115
//Bonus3 (Bonus3)
package {
import flash.display.*;
public dynamic class Bonus3 extends BitmapData {
public function Bonus3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 116
//C1 (C1)
package {
import flash.display.*;
public dynamic class C1 extends BitmapData {
public function C1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 117
//C10 (C10)
package {
import flash.display.*;
public dynamic class C10 extends BitmapData {
public function C10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 118
//C11 (C11)
package {
import flash.display.*;
public dynamic class C11 extends BitmapData {
public function C11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 119
//C12 (C12)
package {
import flash.display.*;
public dynamic class C12 extends BitmapData {
public function C12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 120
//C13 (C13)
package {
import flash.display.*;
public dynamic class C13 extends BitmapData {
public function C13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 121
//C2 (C2)
package {
import flash.display.*;
public dynamic class C2 extends BitmapData {
public function C2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 122
//C3 (C3)
package {
import flash.display.*;
public dynamic class C3 extends BitmapData {
public function C3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 123
//C4 (C4)
package {
import flash.display.*;
public dynamic class C4 extends BitmapData {
public function C4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 124
//C5 (C5)
package {
import flash.display.*;
public dynamic class C5 extends BitmapData {
public function C5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 125
//C6 (C6)
package {
import flash.display.*;
public dynamic class C6 extends BitmapData {
public function C6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 126
//C7 (C7)
package {
import flash.display.*;
public dynamic class C7 extends BitmapData {
public function C7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 127
//C8 (C8)
package {
import flash.display.*;
public dynamic class C8 extends BitmapData {
public function C8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 128
//C9 (C9)
package {
import flash.display.*;
public dynamic class C9 extends BitmapData {
public function C9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 129
//CloseBtn (CloseBtn)
package {
import view.*;
public dynamic class CloseBtn extends SmallButton {
}
}//package
Section 130
//D1 (D1)
package {
import flash.display.*;
public dynamic class D1 extends BitmapData {
public function D1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 131
//D10 (D10)
package {
import flash.display.*;
public dynamic class D10 extends BitmapData {
public function D10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 132
//D11 (D11)
package {
import flash.display.*;
public dynamic class D11 extends BitmapData {
public function D11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 133
//D12 (D12)
package {
import flash.display.*;
public dynamic class D12 extends BitmapData {
public function D12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 134
//D13 (D13)
package {
import flash.display.*;
public dynamic class D13 extends BitmapData {
public function D13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 135
//D2 (D2)
package {
import flash.display.*;
public dynamic class D2 extends BitmapData {
public function D2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 136
//D3 (D3)
package {
import flash.display.*;
public dynamic class D3 extends BitmapData {
public function D3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 137
//D4 (D4)
package {
import flash.display.*;
public dynamic class D4 extends BitmapData {
public function D4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 138
//D5 (D5)
package {
import flash.display.*;
public dynamic class D5 extends BitmapData {
public function D5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 139
//D6 (D6)
package {
import flash.display.*;
public dynamic class D6 extends BitmapData {
public function D6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 140
//D7 (D7)
package {
import flash.display.*;
public dynamic class D7 extends BitmapData {
public function D7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 141
//D8 (D8)
package {
import flash.display.*;
public dynamic class D8 extends BitmapData {
public function D8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 142
//D9 (D9)
package {
import flash.display.*;
public dynamic class D9 extends BitmapData {
public function D9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 143
//DeckDrag (DeckDrag)
package {
import flash.media.*;
public dynamic class DeckDrag extends Sound {
}
}//package
Section 144
//DrumDrum (DrumDrum)
package {
import flash.media.*;
public dynamic class DrumDrum extends Sound {
}
}//package
Section 145
//EnkelGiv1 (EnkelGiv1)
package {
import flash.media.*;
public dynamic class EnkelGiv1 extends Sound {
}
}//package
Section 146
//EnkelGiv2 (EnkelGiv2)
package {
import flash.media.*;
public dynamic class EnkelGiv2 extends Sound {
}
}//package
Section 147
//GameOverWindowLevel1 (GameOverWindowLevel1)
package {
import flash.display.*;
public dynamic class GameOverWindowLevel1 extends MovieClip {
}
}//package
Section 148
//GameOverWindowLevel2 (GameOverWindowLevel2)
package {
import flash.display.*;
public dynamic class GameOverWindowLevel2 extends MovieClip {
}
}//package
Section 149
//GameOverWindowLevel3 (GameOverWindowLevel3)
package {
import flash.display.*;
public dynamic class GameOverWindowLevel3 extends MovieClip {
}
}//package
Section 150
//GameOverWindowLevel4 (GameOverWindowLevel4)
package {
import flash.display.*;
public dynamic class GameOverWindowLevel4 extends MovieClip {
}
}//package
Section 151
//GameOverWindowLevel5 (GameOverWindowLevel5)
package {
import flash.display.*;
public dynamic class GameOverWindowLevel5 extends MovieClip {
}
}//package
Section 152
//Glow (Glow)
package {
import flash.display.*;
public dynamic class Glow extends BitmapData {
public function Glow(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 153
//GreenBackground (GreenBackground)
package {
import flash.display.*;
public dynamic class GreenBackground extends Sprite {
}
}//package
Section 154
//H1 (H1)
package {
import flash.display.*;
public dynamic class H1 extends BitmapData {
public function H1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 155
//H10 (H10)
package {
import flash.display.*;
public dynamic class H10 extends BitmapData {
public function H10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 156
//H11 (H11)
package {
import flash.display.*;
public dynamic class H11 extends BitmapData {
public function H11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 157
//H12 (H12)
package {
import flash.display.*;
public dynamic class H12 extends BitmapData {
public function H12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 158
//H13 (H13)
package {
import flash.display.*;
public dynamic class H13 extends BitmapData {
public function H13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 159
//H2 (H2)
package {
import flash.display.*;
public dynamic class H2 extends BitmapData {
public function H2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 160
//H3 (H3)
package {
import flash.display.*;
public dynamic class H3 extends BitmapData {
public function H3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 161
//H4 (H4)
package {
import flash.display.*;
public dynamic class H4 extends BitmapData {
public function H4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 162
//H5 (H5)
package {
import flash.display.*;
public dynamic class H5 extends BitmapData {
public function H5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 163
//H6 (H6)
package {
import flash.display.*;
public dynamic class H6 extends BitmapData {
public function H6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 164
//H7 (H7)
package {
import flash.display.*;
public dynamic class H7 extends BitmapData {
public function H7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 165
//H8 (H8)
package {
import flash.display.*;
public dynamic class H8 extends BitmapData {
public function H8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 166
//H9 (H9)
package {
import flash.display.*;
public dynamic class H9 extends BitmapData {
public function H9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 167
//InstructionBtn (InstructionBtn)
package {
import view.*;
public dynamic class InstructionBtn extends SmallButton {
}
}//package
Section 168
//KaraBenNemsi (KaraBenNemsi)
package {
import flash.text.*;
public dynamic class KaraBenNemsi extends Font {
}
}//package
Section 169
//LoadingText (LoadingText)
package {
import flash.display.*;
public dynamic class LoadingText extends MovieClip {
}
}//package
Section 170
//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 171
//MouseBitmap (MouseBitmap)
package {
import flash.display.*;
public dynamic class MouseBitmap extends BitmapData {
public function MouseBitmap(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 172
//MusicButton (MusicButton)
package {
import flash.display.*;
public dynamic class MusicButton extends MovieClip {
public function MusicButton(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 173
//MusicLoop (MusicLoop)
package {
import flash.media.*;
public dynamic class MusicLoop extends Sound {
}
}//package
Section 174
//MyriadPro (MyriadPro)
package {
import flash.text.*;
public dynamic class MyriadPro extends Font {
}
}//package
Section 175
//NimbusSans (NimbusSans)
package {
import flash.text.*;
public dynamic class NimbusSans extends Font {
}
}//package
Section 176
//PlayAgainBtn (PlayAgainBtn)
package {
import view.*;
public dynamic class PlayAgainBtn extends SmallButton {
}
}//package
Section 177
//PlayButton (PlayButton)
package {
import view.*;
public dynamic class PlayButton extends LoadingButton {
}
}//package
Section 178
//S1 (S1)
package {
import flash.display.*;
public dynamic class S1 extends BitmapData {
public function S1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 179
//S10 (S10)
package {
import flash.display.*;
public dynamic class S10 extends BitmapData {
public function S10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 180
//S11 (S11)
package {
import flash.display.*;
public dynamic class S11 extends BitmapData {
public function S11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 181
//S12 (S12)
package {
import flash.display.*;
public dynamic class S12 extends BitmapData {
public function S12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 182
//S13 (S13)
package {
import flash.display.*;
public dynamic class S13 extends BitmapData {
public function S13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 183
//S2 (S2)
package {
import flash.display.*;
public dynamic class S2 extends BitmapData {
public function S2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 184
//S3 (S3)
package {
import flash.display.*;
public dynamic class S3 extends BitmapData {
public function S3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 185
//S4 (S4)
package {
import flash.display.*;
public dynamic class S4 extends BitmapData {
public function S4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 186
//S5 (S5)
package {
import flash.display.*;
public dynamic class S5 extends BitmapData {
public function S5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 187
//S6 (S6)
package {
import flash.display.*;
public dynamic class S6 extends BitmapData {
public function S6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 188
//S7 (S7)
package {
import flash.display.*;
public dynamic class S7 extends BitmapData {
public function S7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 189
//S8 (S8)
package {
import flash.display.*;
public dynamic class S8 extends BitmapData {
public function S8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 190
//S9 (S9)
package {
import flash.display.*;
public dynamic class S9 extends BitmapData {
public function S9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 191
//ScarabBack (ScarabBack)
package {
import flash.display.*;
public dynamic class ScarabBack extends BitmapData {
public function ScarabBack(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 192
//ScarabBody (ScarabBody)
package {
import flash.display.*;
public dynamic class ScarabBody extends BitmapData {
public function ScarabBody(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 193
//ScarabCardReveal (ScarabCardReveal)
package {
import flash.media.*;
public dynamic class ScarabCardReveal extends Sound {
}
}//package
Section 194
//ScarabPearl (ScarabPearl)
package {
import flash.display.*;
public dynamic class ScarabPearl extends BitmapData {
public function ScarabPearl(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 195
//ScarabSolitaireGame (ScarabSolitaireGame)
package {
import controller.*;
import model.*;
import flash.display.*;
import loadedSwf.*;
import flash.net.*;
public class ScarabSolitaireGame extends MovieClip implements IGame {
private var _scarabGameController:ScarabGameController;
private var _playingMusic:Boolean;// = true
private var _so:SharedObject;
private var _playingSound:Boolean;// = true
private var _bestScore:int;// = 0
private var _scarabGameModel:ScarabGameModel;
public static var MainGame:ScarabSolitaireGame;
public function ScarabSolitaireGame(){
var _local1:Object;
_playingSound = true;
_playingMusic = true;
_bestScore = 0;
super();
addFrameScript(0, frame1);
stage.scaleMode = StageScaleMode.NO_SCALE;
_local1 = LoaderInfo(this.root.loaderInfo).parameters;
MainGame = this;
_so = SharedObject.getLocal("SSSO");
if (_so.data.playingSound == undefined){
_so.data.playingSound = _playingSound;
_so.flush();
} else {
_playingSound = _so.data.playingSound;
};
if (_so.data.playingMusic == undefined){
_so.data.playingMusic = _playingMusic;
_so.flush();
} else {
_playingMusic = _so.data.playingMusic;
};
if (_so.data.bestScore == undefined){
_so.data.bestScore = _bestScore;
_so.flush();
} else {
_bestScore = _so.data.bestScore;
};
init();
}
public function pause():void{
_scarabGameController.pauseGame();
}
public function set playingSound(_arg1:Boolean):void{
_playingSound = _arg1;
_so.data.playingSound = _playingSound;
_so.flush();
}
private function init():void{
_scarabGameModel = new ScarabGameModel();
_scarabGameController = new ScarabGameController(_scarabGameModel);
}
public function set bestScore(_arg1:int):void{
_bestScore = _arg1;
_so.data.playingMusic = _bestScore;
_so.flush();
}
public function set playingMusic(_arg1:Boolean):void{
_playingMusic = _arg1;
_so.data.playingMusic = _playingMusic;
_so.flush();
}
public function get bestScore():int{
return (_bestScore);
}
public function resume():void{
_scarabGameController.resumeGame();
}
public function start():void{
_scarabGameController.startGame();
}
function frame1(){
MochiBot.track(this, "c30cf280");
}
public function get playingSound():Boolean{
return (_playingSound);
}
public function gameCompleted(_arg1:int, _arg2:int):void{
}
public function set externalController(_arg1:IGameController):void{
}
public function get playingMusic():Boolean{
return (_playingMusic);
}
public function instructionBtnClick():void{
}
public function playAgain():void{
_scarabGameModel = new ScarabGameModel();
_scarabGameController = new ScarabGameController(_scarabGameModel);
}
}
}//package
Section 196
//ScarabWings (ScarabWings)
package {
import flash.display.*;
public dynamic class ScarabWings extends BitmapData {
public function ScarabWings(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 197
//ScoreBackground (ScoreBackground)
package {
import flash.display.*;
public dynamic class ScoreBackground extends MovieClip {
}
}//package
Section 198
//ScoringBtn (ScoringBtn)
package {
import view.*;
public dynamic class ScoringBtn extends ToggleButton {
public function ScoringBtn(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 199
//SoundButton (SoundButton)
package {
import flash.display.*;
public dynamic class SoundButton extends MovieClip {
public function SoundButton(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 200
//Spark1 (Spark1)
package {
import flash.display.*;
public dynamic class Spark1 extends MovieClip {
}
}//package
Section 201
//Spark2 (Spark2)
package {
import flash.display.*;
public dynamic class Spark2 extends MovieClip {
}
}//package
Section 202
//SplashBackground (SplashBackground)
package {
import flash.display.*;
public dynamic class SplashBackground extends BitmapData {
public function SplashBackground(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 203
//SplashDropShadow (SplashDropShadow)
package {
import flash.display.*;
public dynamic class SplashDropShadow extends Sprite {
}
}//package
Section 204
//Swosh1 (Swosh1)
package {
import flash.media.*;
public dynamic class Swosh1 extends Sound {
}
}//package
Section 205
//Swosh2 (Swosh2)
package {
import flash.media.*;
public dynamic class Swosh2 extends Sound {
}
}//package
Section 206
//Swosh3 (Swosh3)
package {
import flash.media.*;
public dynamic class Swosh3 extends Sound {
}
}//package
Section 207
//Tack (Tack)
package {
import flash.media.*;
public dynamic class Tack extends Sound {
}
}//package
Section 208
//Tick (Tick)
package {
import flash.media.*;
public dynamic class Tick extends Sound {
}
}//package
Section 209
//TopBarBackground (TopBarBackground)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TopBarBackground extends Sprite {
public var gamarenaLink:SimpleButton;
public var scoreTF:TextField;
public var levelTF:TextField;
}
}//package
Section 210
//TryMoreGamesButton (TryMoreGamesButton)
package {
import view.*;
public dynamic class TryMoreGamesButton extends SmallButton {
}
}//package