home *** CD-ROM | disk | FTP | other *** search
- class Game
- {
- static var snapNums;
- static var playStartTime;
- static var timeDisp;
- static var is_paused;
- static var pan;
- static var msgPan;
- static var timeLeft;
- static var txtScore;
- static var btnReturn;
- static var pause_clip;
- static var btnUndo;
- static var playFinished;
- static var toppest2Num;
- static var playStarted;
- static var playTime;
- static var rndPlayTime;
- static var toppest;
- static var toppest2;
- static var timeSetNum;
- static var deletedAll;
- static var noMoreMove;
- static var bar;
- static var strPlayTime;
- static var txtTime;
- static var currentDepth;
- static var prvToppest;
- static var undosLeft = 0;
- static var tmpPoint = new Object();
- static var state = 0;
- static var score = 0;
- static var lastMove = -1;
- static var lastScore = 0;
- function Game()
- {
- }
- static function startIt()
- {
- Game.undosLeft = 3;
- _root.undosLeftString = "x" + String(Game.undosLeft);
- var _loc1_ = undefined;
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- Game.snapNums[_loc1_] = -1;
- _loc1_ = _loc1_ + 1;
- }
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- while(Game.snapNums[index] < 0)
- {
- var index = Math.floor(Math.random() * 52);
- if(Game.snapNums[index] < 0)
- {
- Game.snapNums[index] = _loc1_;
- }
- }
- _loc1_ = _loc1_ + 1;
- }
- if(SharedVals.playLevel == -1)
- {
- SharedVals.playLevel = Math.min(Settings.lastLevel + 1,Settings.levels.length);
- }
- if(true || SharedVals.playLevel <= Settings.lastLevel + 1)
- {
- Game.setLevel(Settings.levels[SharedVals.playLevel - 1]);
- }
- else
- {
- Game.delPrvLevel();
- _root.gotoAndPlay("preLevelsFrame");
- }
- }
- static function PauseOff()
- {
- Game.playStartTime = getTimer() - Game.timeDisp;
- Game.is_paused = false;
- }
- static function activate()
- {
- SharedVals.snapShot = false;
- SharedVals.panel = Game.pan;
- Game.msgPan._visible = false;
- Game.timeLeft = 300;
- Game.txtScore.text = "0";
- Game.is_paused = true;
- Game.btnReturn.onPress = function()
- {
- if(!Game.is_paused)
- {
- Game.is_paused = true;
- Game.pause_clip = _root.attachMovie("pause_clip","pc",100000);
- Game.pause_clip._x = 275;
- Game.pause_clip._y = 200;
- }
- };
- Game.btnUndo.onPress = function()
- {
- if(Game.playFinished)
- {
- return undefined;
- }
- Game.undo();
- };
- }
- static function TipsControl()
- {
- if(_root.show_tips)
- {
- Game.is_paused = true;
- _root.attachMovie("window_tip","window_tip",100000);
- }
- else
- {
- Game.is_paused = false;
- }
- }
- static function enableAll(e)
- {
- var _loc3_ = e;
- var _loc2_ = undefined;
- var _loc1_ = undefined;
- _loc2_ = 0;
- while(_loc2_ < 52)
- {
- _loc1_ = SharedVals.panel["rect" + String(_loc2_)];
- if(_loc1_.exist && _loc1_.isShowing || Game.toppest2Num == _loc2_)
- {
- _loc1_.useHandCursor = _loc3_;
- }
- else
- {
- _loc1_.useHandCursor = false;
- }
- _loc2_ = _loc2_ + 1;
- }
- Game.btnUndo.useHandCursor = _loc3_ && Game.lastMove != -1;
- Game.btnReturn.useHandCursor = _loc3_;
- }
- static function loadFromStr(s12)
- {
- var s1;
- var s2;
- var _loc3_ = new String("");
- var _loc2_ = undefined;
- var _loc1_ = undefined;
- _loc3_ = s12;
- _loc2_ = _loc3_.indexOf(">",0);
- s1 = _loc3_.slice(0,_loc2_);
- s2 = _loc3_.slice(_loc2_ + 1,_loc3_.length);
- _loc2_ = -1;
- _loc3_ = s2;
- _loc1_ = _loc3_.indexOf(";",0);
- if(_loc1_ >= 0)
- {
- do
- {
- Game.loadOneFromStr(_loc3_.substring(_loc2_ + 1,_loc1_));
- _loc2_ = _loc1_;
- _loc1_ = _loc3_.indexOf(";",_loc2_ + 1);
- }
- while(_loc1_ >= 0);
-
- }
- }
- static function loadOneFromStr(t)
- {
- var _loc2_ = new String(t);
- var _loc3_ = undefined;
- var k2;
- var k3;
- var k4;
- var k5;
- var s1;
- var s2;
- var s3;
- var s4;
- var s5;
- var _loc1_ = undefined;
- _loc3_ = _loc2_.indexOf(",",0);
- if(_loc3_ >= 0)
- {
- k2 = _loc2_.indexOf(",",_loc3_ + 1);
- if(k2 >= 0)
- {
- k3 = _loc2_.indexOf(",",k2 + 1);
- if(k3 >= 0)
- {
- k4 = _loc2_.indexOf(",",k3 + 1);
- if(k4 >= 0)
- {
- k5 = _loc2_.indexOf(",",k4 + 1);
- if(k5 >= 0)
- {
- s1 = _loc2_.substring(0,_loc3_);
- s2 = _loc2_.substring(_loc3_ + 1,k2);
- s3 = _loc2_.substring(k2 + 1,k3);
- s4 = _loc2_.substring(k3 + 1,k4);
- s5 = _loc2_.substring(k4 + 1,k5);
- if(!isNaN(s1))
- {
- if(!isNaN(s2))
- {
- if(!isNaN(s3))
- {
- if(!isNaN(s4))
- {
- if(!isNaN(s5))
- {
- SharedVals.panel.readyNum = SharedVals.panel.readyNum + 1;
- _loc1_ = SharedVals.panel["rect" + String(SharedVals.panel.readyNum)];
- _loc1_._x = Number(s1);
- _loc1_._y = Number(s2);
- _loc1_._rotation = Number(s3);
- _loc1_.rVal = Number(s4);
- _loc1_.depth = _loc1_.rVal;
- _loc1_.swapDepths(_loc1_.depth);
- if(SharedVals.snapShot)
- {
- _loc1_.makeIt = Number(s5) == 1;
- }
- else
- {
- _loc1_.makeIt = true;
- }
- _loc1_._visible = true;
- _loc1_.exist = true;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- static function delPrvLevel()
- {
- var k;
- var b;
- var mc;
- Game.playStarted = false;
- Game.playFinished = false;
- Game.playTime = 0;
- Game.rndPlayTime = 0;
- Game.playStartTime = 0;
- }
- static function setLevel(s)
- {
- var k;
- var mc;
- Game.delPrvLevel();
- Game.reSet();
- Game.loadFromStr(s);
- Game.giveNumbers();
- Game.toppest = SharedVals.panel["rect" + String(SharedVals.panel.readyNum + 1)];
- if(SharedVals.panel.readyNum + 2 < 52)
- {
- Game.toppest2Num = SharedVals.panel.readyNum + 2;
- Game.toppest2 = SharedVals.panel["rect" + String(Game.toppest2Num)];
- _root.readyTxt = String(52 - Game.toppest2Num);
- }
- else
- {
- Game.toppest2Num = -1;
- _root.readyTxt = "";
- }
- if(SharedVals.snapShot)
- {
- Game.toppest.makeNumber();
- }
- Game.toppest.showMe(true);
- Game.toppest._x = SharedVals.panel.place2._x;
- Game.toppest._y = SharedVals.panel.place2._y;
- Game.playStarted = true;
- Game.playStartTime = getTimer();
- }
- static function setOvers()
- {
- var k;
- var k2;
- var _loc3_ = undefined;
- var _loc2_ = undefined;
- var mc2;
- var pmc;
- var _loc1_ = new Object();
- var fnd;
- k = 0;
- while(k < 52)
- {
- _loc2_ = SharedVals.panel["rect" + String(k)];
- _loc2_.overs.splice(0);
- if(_loc2_.exist)
- {
- k2 = 0;
- while(k2 < 52)
- {
- mc2 = SharedVals.panel["rect" + String(k2)];
- if(mc2.exist && mc2.depth > _loc2_.depth)
- {
- fnd = false;
- _loc3_ = 0;
- while(_loc3_ <= 11)
- {
- pmc = _root.rect["pin" + String(_loc3_)];
- _loc1_.x = pmc._x;
- _loc1_.y = pmc._y;
- _loc2_.localToGlobal(_loc1_);
- if(mc2.hitTest(_loc1_.x,_loc1_.y,true))
- {
- fnd = true;
- }
- _loc3_ = _loc3_ + 1;
- }
- if(fnd)
- {
- _loc2_.overs.push(k2);
- }
- }
- k2++;
- }
- }
- else
- {
- _loc2_.depth = 1000 - k;
- _loc2_.swapDepths(_loc2_.depth);
- }
- k++;
- }
- }
- static function reSet()
- {
- var k;
- Game.state = 0;
- Game.timeSetNum = 0;
- SharedVals.frameNum = 0;
- Game.playStarted = false;
- Game.playFinished = false;
- Game.playTime = 0;
- Game.rndPlayTime = 0;
- Game.playStartTime = 0;
- Game.score = 0;
- Game.deletedAll = false;
- Game.noMoreMove = false;
- Game.toppest2Num = -1;
- Game.msgPan._visible = false;
- SharedVals.panel.reset();
- Game.lastMove = -1;
- Game.btnUndo._alpha = 20;
- Game.btnUndo.useHandCursor = false;
- Game.bar.setVal(0);
- }
- static function setTime()
- {
- var tc;
- var t0;
- var _loc3_ = undefined;
- var t2;
- var ts0;
- var _loc2_ = undefined;
- var _loc1_ = undefined;
- Game.playTime = Game.timeLeft - (getTimer() - Game.playStartTime) / 1000;
- if(Math.floor(Game.playTime) == -1)
- {
- Game.playerLoosed(true);
- }
- if(Math.round(Game.playTime) != Game.rndPlayTime)
- {
- Game.rndPlayTime = int(Game.playTime);
- t0 = int(Game.rndPlayTime / 3600);
- ts0 = String(t0);
- if(t0 < 10)
- {
- ts0 = "0" + ts0;
- }
- _loc3_ = int((Game.rndPlayTime - t0 * 60) / 60);
- if(_loc3_ == 60)
- {
- _loc3_ = 0;
- }
- _loc2_ = String(_loc3_);
- if(_loc3_ < 10)
- {
- _loc2_ = "0" + _loc2_;
- }
- t2 = Game.rndPlayTime % 60;
- _loc1_ = String(t2);
- if(t2 < 10)
- {
- _loc1_ = "0" + _loc1_;
- }
- if(t0 == 0)
- {
- Game.strPlayTime = _loc2_ + ":" + _loc1_;
- }
- else
- {
- Game.strPlayTime = ts0 + ":" + _loc2_ + ":" + _loc1_;
- }
- _root.playTimeText = String(Game.strPlayTime);
- Game.txtTime.text = String(Game.strPlayTime);
- }
- }
- static function doFrame()
- {
- if(!Game.is_paused)
- {
- Game.timeDisp = getTimer() - Game.playStartTime;
- if(Game.playFinished)
- {
- return undefined;
- }
- if(Game.playStarted)
- {
- SharedVals.frameNum = SharedVals.frameNum + 1;
- Game.setTime();
- }
- if(Game.state == 1)
- {
- Game.toppest.frames--;
- if(Game.toppest.frames == 0)
- {
- Game.toppest.swapDepths(Game.currentDepth);
- Game.state = 0;
- Game.toppest.frames = -1;
- Game.toppest.exist = false;
- Game.toppest.showMe(true);
- Game.toppest._x = Game.pan.place2._x;
- Game.toppest._y = Game.pan.place2._y;
- Game.toppest._rotation = 0;
- if(Game.deletedAll)
- {
- Game.playerWinned();
- return undefined;
- }
- if(Game.noMoreMove)
- {
- Game.playerLoosed(false);
- return undefined;
- }
- }
- else
- {
- Game.toppest._x += Game.toppest.dX;
- Game.toppest._y += Game.toppest.dY;
- Game.toppest._rotation += Game.toppest.dR;
- }
- }
- Game.bar.addVal(-0.2);
- Game.bar.refreshMe();
- }
- }
- static function testAfterDelete()
- {
- var _loc2_ = undefined;
- var _loc3_ = undefined;
- var k3;
- var v;
- var _loc1_ = undefined;
- var mc2;
- var pmc;
- var p = new Object();
- var fnd;
- var fnd2;
- fnd = false;
- _loc2_ = 0;
- while(_loc2_ < 52)
- {
- _loc1_ = SharedVals.panel["rect" + String(_loc2_)];
- if(_loc1_.exist)
- {
- fnd = true;
- fnd2 = false;
- _loc3_ = 0;
- while(_loc3_ < _loc1_.overs.length)
- {
- mc2 = SharedVals.panel["rect" + String(_loc1_.overs[_loc3_])];
- if(mc2.exist)
- {
- fnd2 = true;
- }
- _loc3_ = _loc3_ + 1;
- }
- _loc1_.showMe(!fnd2);
- }
- _loc2_ = _loc2_ + 1;
- }
- Game.deletedAll = !fnd;
- if(!Game.deletedAll)
- {
- if(Game.toppest2Num == -1)
- {
- fnd = false;
- _loc2_ = 0;
- while(_loc2_ < 52)
- {
- _loc1_ = SharedVals.panel["rect" + String(_loc2_)];
- if(_loc1_.exist && _loc1_.isShowing)
- {
- v = Math.abs(_loc1_.card_number - Game.toppest.card_number);
- if(v == 1 || v == 12)
- {
- fnd = true;
- }
- }
- _loc2_ = _loc2_ + 1;
- }
- if(!fnd)
- {
- Game.noMoreMove = true;
- }
- }
- }
- }
- static function setScore(s)
- {
- _root.points_sfx.start(0,1);
- Game.score += s;
- _root.scoreText = String(Game.score);
- Game.txtScore.text = String(Game.score);
- }
- static function playerLoosed(is_time_out)
- {
- Game.pan._x = Game.pan.x0;
- Game.pan._y = Game.pan.y0;
- Game.msgPan.showForLoose(is_time_out);
- Game.enableAll(false);
- Game.playFinished = true;
- }
- static function playerWinned()
- {
- Game.pan._x = Game.pan.x0;
- Game.pan._y = Game.pan.y0;
- Settings.setLastLevel(SharedVals.playLevel,Game.score);
- Game.msgPan.showForWin(Game.score,SharedVals.playLevel != Settings.levels.length);
- Game.enableAll(false);
- Game.playFinished = true;
- }
- static function giveNumbers()
- {
- if(_root._currentframe > 21)
- {
- var _loc1_ = undefined;
- var mc;
- var _loc2_ = new Array();
- var tempArray_2 = new Array();
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- _loc2_.push(-1);
- tempArray_2.push(0);
- _loc1_ = _loc1_ + 1;
- }
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- var _loc3_ = Math.floor(Math.random() * 52);
- if(_loc2_[_loc3_] < 0)
- {
- _loc2_[_loc3_] = _loc1_;
- }
- else
- {
- _loc1_ -= 1;
- }
- _loc1_ = _loc1_ + 1;
- }
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- var flag = false;
- do
- {
- _loc3_ = Math.floor(Math.random() * _loc2_.length);
- var card_num = _loc2_[_loc3_];
- var current_card = card_num % 13;
- var previous_card = tempArray_2[_loc1_ - 1] % 13;
- if(_loc1_ < 50)
- {
- if(current_card != previous_card)
- {
- tempArray_2[_loc1_] = card_num;
- _loc2_.splice(_loc3_,1);
- flag = true;
- }
- }
- else
- {
- tempArray_2[_loc1_] = card_num;
- _loc2_.splice(_loc3_,1);
- flag = true;
- }
- }
- while(!flag);
-
- _loc1_ = _loc1_ + 1;
- }
- _loc1_ = 0;
- while(_loc1_ < 52)
- {
- mc = SharedVals.panel["rect" + String(_loc1_)];
- mc.setNumber(tempArray_2[_loc1_]);
- mc.makeNumber();
- _loc1_ = _loc1_ + 1;
- }
- }
- }
- static function undo()
- {
- var _loc1_ = _root;
- if(!Game.playFinished)
- {
- if(Game.lastMove != -1)
- {
- if(Game.lastMove == 1)
- {
- Game.toppest._x = Game.toppest.prvX;
- Game.toppest._y = Game.toppest.prvY;
- Game.toppest._rotation = Game.toppest.prvRotation;
- Game.toppest.depth = Game.toppest.prvDepth;
- Game.toppest.swapDepths(Game.toppest.depth);
- Game.toppest.exist = true;
- Game.toppest = Game.prvToppest;
- Game.bar.addVal(-20);
- Game.setScore(- Game.lastScore);
- Game.enableAll(true);
- }
- if(Game.lastMove == 2)
- {
- SharedVals.panel.readyNum--;
- Game.toppest2Num = SharedVals.panel.readyNum + 2;
- Game.toppest2 = SharedVals.panel["rect" + String(Game.toppest2Num)];
- _loc1_.readyTxt = String(52 - Game.toppest2Num);
- Game.toppest._x = Game.toppest.prvX;
- Game.toppest._y = Game.toppest.prvY;
- Game.toppest._rotation = Game.toppest.prvRotation;
- Game.toppest.depth = Game.toppest.prvDepth;
- Game.toppest.swapDepths(Game.toppest.depth);
- Game.toppest.showMe(false);
- Game.toppest = Game.prvToppest;
- Game.enableAll(true);
- }
- _loc1_.undo_sfx.start(0,1);
- Game.testAfterDelete();
- Game.lastMove = -1;
- Game.undosLeft -= 1;
- _loc1_.undosLeftString = "x" + String(Game.undosLeft);
- if(Game.undosLeft == 0)
- {
- Game.btnUndo._visible = false;
- Game.btnUndo._x = -100;
- }
- else
- {
- Game.btnUndo._alpha = 20;
- Game.btnUndo.useHandCursor = false;
- Game.bar.setVal(0);
- }
- }
- }
- }
- static function pressed(mc)
- {
- var _loc1_ = mc;
- var _loc3_ = _root;
- if(!Game.is_paused)
- {
- if(!Game.playFinished)
- {
- if(Game.state == 0)
- {
- if(_loc1_.exist && _loc1_.isShowing)
- {
- var _loc2_ = Math.abs(Game.toppest.card_number - _loc1_.card_number);
- if(_loc2_ == 1 || _loc2_ == 12)
- {
- Game.state = 1;
- _loc1_.frames = 6;
- _loc1_.prvX = _loc1_._x;
- _loc1_.prvY = _loc1_._y;
- _loc1_.prvRotation = _loc1_._rotation;
- _loc1_.prvDepth = _loc1_.depth;
- _loc1_.dX = (Game.pan.place2._x - _loc1_._x) / _loc1_.frames;
- _loc1_.dY = (Game.pan.place2._y - _loc1_._y) / _loc1_.frames;
- _loc1_.dR = (- _loc1_._rotation) / _loc1_.frames;
- _loc1_.exist = false;
- _loc1_.depth = Game.toppest.depth + 10060;
- _loc1_.swapDepths(_loc1_.depth);
- Game.prvToppest = Game.toppest;
- Game.toppest = _loc1_;
- Game.lastMove = 1;
- Game.btnUndo._alpha = 100;
- Game.btnUndo.useHandCursor = true;
- Game.testAfterDelete();
- Game.bar.addVal(20);
- Game.lastScore = 20 + Game.bar.rndVal;
- Game.setScore(Game.lastScore);
- Game.enableAll(true);
- }
- else
- {
- _loc3_.wrong_card_sfx.start(0,1);
- }
- }
- else if(Game.toppest2Num != -1)
- {
- if(_loc1_.bigNumber == Game.toppest2.bigNumber)
- {
- _loc3_.set_sfx.start(0,1);
- _loc1_.depth = Game.toppest.depth + 1;
- _loc1_.swapDepths(_loc1_.depth);
- _loc1_.prvX = _loc1_._x;
- _loc1_.prvY = _loc1_._y;
- _loc1_.prvRotation = _loc1_._rotation;
- _loc1_.prvDepth = _loc1_.depth;
- Game.prvToppest = Game.toppest;
- Game.toppest = _loc1_;
- Game.lastMove = 2;
- Game.btnUndo._alpha = 100;
- Game.btnUndo.useHandCursor = true;
- SharedVals.panel.readyNum = SharedVals.panel.readyNum + 1;
- if(SharedVals.panel.readyNum + 2 < 52)
- {
- Game.toppest2Num = SharedVals.panel.readyNum + 2;
- Game.toppest2 = SharedVals.panel["rect" + String(Game.toppest2Num)];
- _loc3_.readyTxt = String(52 - Game.toppest2Num);
- }
- else
- {
- Game.toppest2Num = -1;
- _loc3_.readyTxt = "";
- }
- Game.state = 1;
- _loc1_.frames = 2;
- _loc1_.dX = (Game.pan.place2._x - _loc1_._x) / _loc1_.frames;
- _loc1_.dY = (Game.pan.place2._y - _loc1_._y) / _loc1_.frames;
- _loc1_.dR = (- _loc1_._rotation) / _loc1_.frames;
- Game.testAfterDelete();
- Game.enableAll(true);
- }
- }
- }
- }
- }
- }
- }
-