Section 1
//UAEvent (com.handjoys.event.UAEvent)
package com.handjoys.event {
import flash.events.*;
public class UAEvent extends Event {
private var _dishes:String;// = ""
public static const ORDER_DISHES:String = "ORDER_DISHES";
public function UAEvent(){
_dishes = "";
super(ORDER_DISHES);
}
public function set dishes(_arg1:String):void{
_dishes = _arg1;
}
public function get dishes():String{
return (_dishes);
}
}
}//package com.handjoys.event
Section 2
//AStar (com.handjoys.util.AStar)
package com.handjoys.util {
public class AStar {
private const NOTE_ID:int = 0;
private const NOTE_CLOSED:int = 2;
private const COST_DIAGONAL:int = 14;
private const COST_STRAIGHT:int = 10;
private const NOTE_OPEN:int = 1;
private var m_maxTry:int;
private var m_openCount:int;
private var m_openId:int;
private var m_openList:Array;
private var m_pathScoreList:Array;
private var m_xList:Array;
private var m_yList:Array;
private var m_mapTileModel:IMapTileModel;
private var m_movementCostList:Array;
private var m_noteMap:Array;
private var m_fatherList:Array;
public function AStar(_arg1:IMapTileModel, _arg2:int=500){
this.m_mapTileModel = _arg1;
this.m_maxTry = _arg2;
}
public function find(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Array{
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:Array;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:Array;
this.initLists();
this.m_openCount = 0;
this.m_openId = -1;
this.openNote(_arg1, _arg2, 0, 0, 0);
_local5 = 0;
while (this.m_openCount > 0) {
++_local5;
if (_local5 > this.m_maxTry){
trace("达到最大限制步数");
this.destroyLists();
return (null);
};
_local6 = this.m_openList[0];
this.closeNote(_local6);
_local7 = this.m_xList[_local6];
_local8 = this.m_yList[_local6];
if ((((_local7 == _arg3)) && ((_local8 == _arg4)))){
return (this.getPath(_arg1, _arg2, _local6));
};
_local9 = this.getArounds(_local7, _local8);
for each (_local13 in _local9) {
_local11 = (this.m_movementCostList[_local6] + ((((_local13[0] == _local7)) || ((_local13[1] == _local8)))) ? COST_STRAIGHT : COST_DIAGONAL);
_local12 = (_local11 + ((Math.abs((_arg3 - _local13[0])) + Math.abs((_arg4 - _local13[1]))) * COST_STRAIGHT));
if (this.isOpen(_local13[0], _local13[1])){
_local10 = this.m_noteMap[_local13[1]][_local13[0]][NOTE_ID];
if (_local11 < this.m_movementCostList[_local10]){
this.m_movementCostList[_local10] = _local11;
this.m_pathScoreList[_local10] = _local12;
this.m_fatherList[_local10] = _local6;
this.aheadNote(this.getIndex(_local10));
};
} else {
this.openNote(_local13[0], _local13[1], _local12, _local11, _local6);
};
};
};
this.destroyLists();
return (null);
}
private function destroyLists():void{
this.m_openList = null;
this.m_xList = null;
this.m_yList = null;
this.m_pathScoreList = null;
this.m_movementCostList = null;
this.m_fatherList = null;
this.m_noteMap = null;
}
private function closeNote(_arg1:int):void{
var _local2:int;
var _local3:int;
this.m_openCount--;
_local2 = this.m_xList[_arg1];
_local3 = this.m_yList[_arg1];
this.m_noteMap[_local3][_local2][NOTE_OPEN] = false;
this.m_noteMap[_local3][_local2][NOTE_CLOSED] = true;
if (this.m_openCount <= 0){
this.m_openCount = 0;
this.m_openList = [];
return;
};
this.m_openList[0] = this.m_openList.pop();
this.backNote();
}
private function isOpen(_arg1:int, _arg2:int):Boolean{
if (this.m_noteMap[_arg2] == null){
return (false);
};
if (this.m_noteMap[_arg2][_arg1] == null){
return (false);
};
return (this.m_noteMap[_arg2][_arg1][NOTE_OPEN]);
}
private function getScore(_arg1:int):int{
return (this.m_pathScoreList[this.m_openList[(_arg1 - 1)]]);
}
private function backNote():void{
var _local1:int;
var _local2:int;
var _local3:int;
_local1 = 1;
while (true) {
_local2 = _local1;
if ((2 * _local2) <= this.m_openCount){
if (this.getScore(_local1) > this.getScore((2 * _local2))){
_local1 = (2 * _local2);
};
if (((2 * _local2) + 1) <= this.m_openCount){
if (this.getScore(_local1) > this.getScore(((2 * _local2) + 1))){
_local1 = ((2 * _local2) + 1);
};
};
};
if (_local2 == _local1){
break;
} else {
_local3 = this.m_openList[(_local2 - 1)];
this.m_openList[(_local2 - 1)] = this.m_openList[(_local1 - 1)];
this.m_openList[(_local1 - 1)] = _local3;
};
};
}
private function openNote(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{
this.m_openCount++;
this.m_openId++;
if (this.m_noteMap[_arg2] == null){
this.m_noteMap[_arg2] = [];
};
this.m_noteMap[_arg2][_arg1] = [];
this.m_noteMap[_arg2][_arg1][NOTE_OPEN] = true;
this.m_noteMap[_arg2][_arg1][NOTE_ID] = this.m_openId;
this.m_xList.push(_arg1);
this.m_yList.push(_arg2);
this.m_pathScoreList.push(_arg3);
this.m_movementCostList.push(_arg4);
this.m_fatherList.push(_arg5);
this.m_openList.push(this.m_openId);
this.aheadNote(this.m_openCount);
}
private function initLists():void{
this.m_openList = [];
this.m_xList = [];
this.m_yList = [];
this.m_pathScoreList = [];
this.m_movementCostList = [];
this.m_fatherList = [];
this.m_noteMap = [];
}
private function getIndex(_arg1:int):int{
var _local2:int;
var _local3:int;
_local2 = 1;
for each (_local3 in this.m_openList) {
if (_local3 == _arg1){
return (_local2);
};
_local2++;
};
return (-1);
}
private function getArounds(_arg1:int, _arg2:int):Array{
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
var _local9:Boolean;
var _local10:Boolean;
_local3 = [];
_local4 = (_arg1 + 1);
_local5 = _arg2;
_local7 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((_local7) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = _arg1;
_local5 = (_arg2 + 1);
_local8 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((_local8) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = (_arg1 - 1);
_local5 = _arg2;
_local9 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((_local9) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = _arg1;
_local5 = (_arg2 - 1);
_local10 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((_local10) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = (_arg1 + 1);
_local5 = (_arg2 + 1);
_local6 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((((((_local6) && (_local7))) && (_local8))) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = (_arg1 - 1);
_local5 = (_arg2 + 1);
_local6 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((((((_local6) && (_local9))) && (_local8))) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = (_arg1 - 1);
_local5 = (_arg2 - 1);
_local6 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((((((_local6) && (_local9))) && (_local10))) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
_local4 = (_arg1 + 1);
_local5 = (_arg2 - 1);
_local6 = (this.m_mapTileModel.isBlock(_arg1, _arg2, _local4, _local5) == 1);
if (((((((_local6) && (_local7))) && (_local10))) && (!(this.isClosed(_local4, _local5))))){
_local3.push([_local4, _local5]);
};
return (_local3);
}
private function getPath(_arg1:int, _arg2:int, _arg3:int):Array{
var _local4:Array;
var _local5:int;
var _local6:int;
_local4 = [];
_local5 = this.m_xList[_arg3];
_local6 = this.m_yList[_arg3];
while (((!((_local5 == _arg1))) || (!((_local6 == _arg2))))) {
_local4.unshift([_local5, _local6]);
_arg3 = this.m_fatherList[_arg3];
_local5 = this.m_xList[_arg3];
_local6 = this.m_yList[_arg3];
};
_local4.unshift([_arg1, _arg2]);
this.destroyLists();
return (_local4);
}
private function aheadNote(_arg1:int):void{
var _local2:int;
var _local3:int;
while (_arg1 > 1) {
_local2 = Math.floor((_arg1 / 2));
if (this.getScore(_arg1) < this.getScore(_local2)){
_local3 = this.m_openList[(_arg1 - 1)];
this.m_openList[(_arg1 - 1)] = this.m_openList[(_local2 - 1)];
this.m_openList[(_local2 - 1)] = _local3;
_arg1 = _local2;
} else {
break;
};
};
}
private function isClosed(_arg1:int, _arg2:int):Boolean{
if (this.m_noteMap[_arg2] == null){
return (false);
};
if (this.m_noteMap[_arg2][_arg1] == null){
return (false);
};
return (this.m_noteMap[_arg2][_arg1][NOTE_CLOSED]);
}
public function set maxTry(_arg1:int):void{
this.m_maxTry = _arg1;
}
public function get maxTry():int{
return (this.m_maxTry);
}
}
}//package com.handjoys.util
Section 3
//HitTest (com.handjoys.util.HitTest)
package com.handjoys.util {
import flash.display.*;
import flash.geom.*;
public class HitTest {
protected static function getDrawMatrix(_arg1:DisplayObject, _arg2:Rectangle, _arg3:Number):Matrix{
var _local4:Point;
var _local5:Matrix;
var _local6:Matrix;
_local6 = _arg1.root.transform.concatenatedMatrix;
_local4 = _arg1.localToGlobal(new Point());
_local5 = _arg1.transform.concatenatedMatrix;
_local5.tx = (_local4.x - _arg2.x);
_local5.ty = (_local4.y - _arg2.y);
_local5.a = (_local5.a / _local6.a);
_local5.d = (_local5.d / _local6.d);
if (_arg3 != 1){
_local5.scale(_arg3, _arg3);
};
return (_local5);
}
public static function complexHitTestObject(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Boolean{
return (!((complexIntersectionRectangle(_arg1, _arg2, _arg3).width == 0)));
}
public static function complexIntersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Rectangle{
var _local4:Rectangle;
var _local5:BitmapData;
var _local6:Rectangle;
if (_arg3 <= 0){
throw (new Error("ArgumentError: Error #5001: Invalid value for accurracy", 5001));
};
if (!_arg1.hitTestObject(_arg2)){
return (new Rectangle());
};
_local4 = intersectionRectangle(_arg1, _arg2);
if (((((_local4.width * _arg3) < 1)) || (((_local4.height * _arg3) < 1)))){
return (new Rectangle());
};
_local5 = new BitmapData((_local4.width * _arg3), (_local4.height * _arg3), false, 0);
_local5.draw(_arg1, HitTest.getDrawMatrix(_arg1, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, 0xFF));
_local5.draw(_arg2, HitTest.getDrawMatrix(_arg2, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, 0xFF, 0xFF, 0xFF), BlendMode.DIFFERENCE);
_local6 = _local5.getColorBoundsRect(4294967295, 4278255615);
_local5.dispose();
if (_arg3 != 1){
_local6.x = (_local6.x / _arg3);
_local6.y = (_local6.y / _arg3);
_local6.width = (_local6.width / _arg3);
_local6.height = (_local6.height / _arg3);
};
_local6.x = (_local6.x + _local4.x);
_local6.y = (_local6.y + _local4.y);
return (_local6);
}
public static function intersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject):Rectangle{
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:Rectangle;
if (((((!(_arg1.root)) || (!(_arg2.root)))) || (!(_arg1.hitTestObject(_arg2))))){
return (new Rectangle());
};
_local3 = _arg1.getBounds(_arg1.root);
_local4 = _arg2.getBounds(_arg2.root);
_local5 = new Rectangle();
_local5.x = Math.max(_local3.x, _local4.x);
_local5.y = Math.max(_local3.y, _local4.y);
_local5.width = Math.min(((_local3.x + _local3.width) - _local5.x), ((_local4.x + _local4.width) - _local5.x));
_local5.height = Math.min(((_local3.y + _local3.height) - _local5.y), ((_local4.y + _local4.height) - _local5.y));
return (_local5);
}
}
}//package com.handjoys.util
Section 4
//IMapTileModel (com.handjoys.util.IMapTileModel)
package com.handjoys.util {
public interface IMapTileModel {
function isBlock(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int;
}
}//package com.handjoys.util
Section 5
//MapTileModel (com.handjoys.util.MapTileModel)
package com.handjoys.util {
public class MapTileModel implements IMapTileModel {
private var m_map:Array;
public function isBlock(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{
var _local5:int;
var _local6:int;
_local5 = this.m_map.length;
_local6 = this.m_map[0].length;
if ((((((((_arg3 < 0)) || ((_arg3 == _local5)))) || ((_arg4 < 0)))) || ((_arg4 == _local6)))){
return (0);
};
return (this.m_map[_arg3][_arg4]);
}
public function set map(_arg1:Array):void{
this.m_map = _arg1;
}
public function get map():Array{
return (this.m_map);
}
}
}//package com.handjoys.util
Section 6
//WayPoint (com.handjoys.util.WayPoint)
package com.handjoys.util {
import flash.display.*;
public class WayPoint {
public static function ini(_arg1:Sprite):Array{
var _local2:Array;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:int;
var _local8:*;
_local2 = new Array();
_local3 = 728;
_local4 = 450;
_local5 = 10;
_local6 = 10;
if (_arg1 != null){
_local7 = 0;
while (_local7 < (_local3 / _local5)) {
_local2[_local7] = new Array();
_local8 = 0;
while (_local8 < (_local4 / _local6)) {
if (((((((((((((((((_arg1.hitTestPoint((_local7 * _local5), (_local8 * _local6), true)) || (_arg1.hitTestPoint(((_local7 * _local5) + (_local5 / 2)), ((_local8 * _local6) + _local6), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + _local5), (_local8 * _local6), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + (_local5 / 2)), ((_local8 * _local6) + _local6), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + (_local5 / 2)), ((_local8 * _local6) + (_local6 / 2)), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + (_local5 / 2)), ((_local8 * _local6) + _local6), true)))) || (_arg1.hitTestPoint((_local7 * _local5), ((_local8 * _local6) + _local6), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + (_local5 / 2)), ((_local8 * _local6) + _local6), true)))) || (_arg1.hitTestPoint(((_local7 * _local5) + _local5), ((_local8 * _local6) + _local6), true))) == false){
_local2[_local7][_local8] = 1;
} else {
_local2[_local7][_local8] = 0;
};
_local8++;
};
_local7++;
};
};
return (_local2);
}
}
}//package com.handjoys.util
Section 7
//Cache (com.handjoys.Cache)
package com.handjoys {
import flash.display.*;
public class Cache {
public static var scene:MovieClip;
public static var ua:UA;
}
}//package com.handjoys
Section 8
//Customer (com.handjoys.Customer)
package com.handjoys {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Customer extends EventDispatcher {
private var bPhoneEnabled:Boolean;// = false
private var bReadEnabled:Boolean;
private var bDrinkEnabled:Boolean;
private var intWaitCleanTime:int;// = 5000
private var activateTimer:Timer;
private var _currentRequestName:String;// = ""
private var _avator:MovieClip;
private var tipBox:MovieClip;
private var bPlayEnabled:Boolean;// = false
private var _bRequesting:Boolean;// = false
private var _activateInterval:int;// = 5000
private var bSatisfy:Boolean;// = false
private var _intPatience:int;// = 15000
private var bEatEnabled:Boolean;
private var _activateRate:Number;// = 0.2
private var intEatTime:int;// = 5000
private var bBlanketEnabled:Boolean;
private var eatingTimer:Timer;
private var bSmokeEnabled:Boolean;
private var eatOverWaitTimer:Timer;
private var _currentRequest:Dishes;
private var waitingTimer:Timer;
private var backToNormalTimer:Timer;
public function Customer(_arg1:MovieClip){
_activateInterval = 5000;
_activateRate = 0.2;
_bRequesting = false;
_intPatience = 15000;
intEatTime = 5000;
intWaitCleanTime = 5000;
_currentRequestName = "";
bSatisfy = false;
bPhoneEnabled = false;
bPlayEnabled = false;
super();
this.avator = _arg1;
tipBox = (new mcTipBox() as MovieClip);
avator.buttonMode = true;
activateTimer = new Timer((_activateInterval + int((Math.random() * 2000))), 0);
activateTimer.addEventListener(TimerEvent.TIMER, customerAction);
waitingTimer = new Timer(int((_intPatience / 100)), 100);
waitingTimer.addEventListener(TimerEvent.TIMER, customerWaiting);
waitingTimer.addEventListener(TimerEvent.TIMER_COMPLETE, customerWaitingOver);
avator.addEventListener(MouseEvent.MOUSE_OVER, customerMouseOverHandler);
avator.addEventListener(MouseEvent.MOUSE_OUT, customerMouseOutHandler);
eatingTimer = new Timer(intEatTime, 1);
eatingTimer.addEventListener(TimerEvent.TIMER_COMPLETE, eatOverHandler);
eatOverWaitTimer = new Timer(intWaitCleanTime, 1);
eatOverWaitTimer.addEventListener(TimerEvent.TIMER_COMPLETE, eatOverWaitHandler);
backToNormalTimer = new Timer(3000, 1);
backToNormalTimer.addEventListener(TimerEvent.TIMER_COMPLETE, backToNormal);
}
private function customerWaitingOver(_arg1:TimerEvent):void{
var e = _arg1;
trace("waiting done", waitingTimer.running);
waitingTimer.reset();
hibernate();
try {
avator.removeChild(tipBox);
} catch(e:Error) {
};
avator.gotoAndStop("seat");
tipBox.bg.gotoAndStop("normal");
cancelOrder();
if (bSatisfy){
bSatisfy = false;
} else {
this.avator.gotoAndStop("angery");
backToNormalTimer.reset();
backToNormalTimer.start();
Cache.ua.addScore(-10);
};
}
public function get currentRequestName():String{
return (_currentRequestName);
}
public function cancelOrder():void{
_currentRequestName = "";
}
public function distory():void{
activateTimer.stop();
activateTimer = null;
waitingTimer.stop();
waitingTimer = null;
eatingTimer.stop();
eatingTimer = null;
eatOverWaitTimer.stop();
eatOverWaitTimer = null;
backToNormalTimer.stop();
backToNormalTimer = null;
tipBox = null;
_currentRequest = null;
_currentRequestName = "";
try {
this.avator.parent.removeChild(this.avator);
this.avator = null;
} catch(e:Error) {
};
}
public function get activateRate():Number{
return (_activateRate);
}
public function get bRequesting():Boolean{
return (_bRequesting);
}
public function get intPatience():int{
return (_intPatience);
}
private function startWaiting(_arg1:Boolean=true):void{
if (_arg1){
waitingTimer.reset();
waitingTimer.start();
} else {
waitingTimer.stop();
avator.removeChild(tipBox);
};
}
private function hibOverHandler(_arg1:TimerEvent):void{
var e = _arg1;
try {
activateTimer.reset();
activateTimer.start();
} catch(e:Error) {
};
}
private function customerWaiting(_arg1:TimerEvent):void{
}
public function set intPatience(_arg1:int):void{
_intPatience = _arg1;
}
public function get avator():MovieClip{
return (_avator);
}
public function startEat(_arg1:Boolean=true):void{
if (_arg1){
trace("start eating");
bSatisfy = true;
Cache.ua.addScore(20);
startWaiting(false);
eatingTimer.reset();
eatingTimer.start();
switch (currentRequest.dishType){
case "eat":
this.avator.gotoAndStop("eat");
break;
case "drink":
this.avator.gotoAndStop("drink");
break;
case "blanket":
this.avator.gotoAndStop("blanket");
break;
case "read":
this.avator.gotoAndStop("read");
break;
case "smoke":
this.avator.gotoAndStop("seat");
break;
case "phone":
this.avator.gotoAndStop("phone");
break;
case "toy":
this.avator.gotoAndStop("toy");
break;
};
} else {
trace("stop eating");
if (bSatisfy){
this._avator.gotoAndStop("happy");
backToNormalTimer.reset();
backToNormalTimer.start();
} else {
this._avator.gotoAndStop("seat");
};
eatingTimer.stop();
eatOverWaitTimer.start();
};
}
private function eatOverWaitHandler(_arg1:TimerEvent):void{
hibernate();
if (bSatisfy){
bSatisfy = false;
} else {
Cache.ua.addScore(-10);
};
_currentRequestName = "";
}
public function set avator(_arg1:MovieClip):void{
_avator = _arg1;
}
private function customerAction(_arg1:TimerEvent):void{
if (Math.random() < _activateRate){
if (_currentRequestName == ""){
order();
};
};
}
public function set currentRequest(_arg1:Dishes):void{
_currentRequest = _arg1;
}
public function set activateInterval(_arg1:int):void{
_activateInterval = _arg1;
activateTimer.delay = (_arg1 + int((Math.random() * 2000)));
}
private function backToNormal(_arg1:TimerEvent):void{
var e = _arg1;
this.avator.gotoAndStop("seat");
try {
avator.removeChild(tipBox);
} catch(e:Error) {
};
}
public function order(_arg1:String=""):void{
var _local2:Array;
var _local3:uint;
var _local4:FrameLabel;
if (_arg1 == ""){
currentRequest = Dishes.getRandFood();
_arg1 = currentRequest.dishName;
bEatEnabled = false;
bBlanketEnabled = false;
bReadEnabled = false;
bDrinkEnabled = false;
bSmokeEnabled = false;
bPhoneEnabled = false;
bPlayEnabled = false;
_local2 = this.avator.currentLabels;
_local3 = 0;
while (_local3 < _local2.length) {
_local4 = _local2[_local3];
if (_local4.name == "eat"){
bEatEnabled = true;
};
if (_local4.name == "blanket"){
bBlanketEnabled = true;
};
if (_local4.name == "read"){
bReadEnabled = true;
};
if (_local4.name == "drink"){
bDrinkEnabled = true;
};
if (_local4.name == "smoke"){
bSmokeEnabled = true;
};
if (_local4.name == "phone"){
bPhoneEnabled = true;
};
if (_local4.name == "toy"){
bPlayEnabled = true;
};
_local3++;
};
switch (currentRequest.dishType){
case "eat":
if (bEatEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("wave");
tipBox.gotoAndStop(_arg1);
avator._dishName = _arg1;
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "drink":
if (bDrinkEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("wave");
avator._dishName = _arg1;
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "read":
if (bReadEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("wave");
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "blanket":
if (bBlanketEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("wave");
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "smoke":
if (bSmokeEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("smoke");
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "phone":
if (bPhoneEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("phone");
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
case "toy":
if (bPlayEnabled){
_currentRequestName = _arg1;
startWaiting(true);
this.avator.gotoAndStop("wave");
avator._dishName = _arg1;
tipBox.gotoAndStop(_arg1);
tipBox.y = -90;
tipBox.alpha = 0.8;
tipBox.bg.gotoAndPlay("tick");
avator.addChild(tipBox);
};
break;
};
};
}
public function stopAllAction():void{
activateTimer.stop();
waitingTimer.stop();
eatingTimer.stop();
eatOverWaitTimer.stop();
}
private function hibernate():void{
var _local1:Timer;
_currentRequest = null;
activateTimer.stop();
_local1 = new Timer(5000, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, hibOverHandler);
_local1.start();
}
private function eatOverHandler(_arg1:TimerEvent):void{
startEat(false);
}
public function get activateInterval():int{
return (_activateInterval);
}
public function get currentRequest():Dishes{
return (_currentRequest);
}
public function set activateRate(_arg1:Number):void{
_activateRate = _arg1;
}
private function customerMouseOverHandler(_arg1:MouseEvent):void{
UA.setDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
private function customerMouseOutHandler(_arg1:MouseEvent):void{
UA.clearDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
public function pause(_arg1:Boolean=false):void{
if (_arg1){
activateTimer.stop();
waitingTimer.stop();
eatingTimer.stop();
eatOverWaitTimer.stop();
backToNormalTimer.stop();
} else {
activateTimer.start();
waitingTimer.reset();
waitingTimer.start();
eatingTimer.reset();
eatingTimer.start();
eatOverWaitTimer.reset();
eatOverWaitTimer.start();
backToNormalTimer.reset();
backToNormalTimer.start();
};
}
public function set bRequesting(_arg1:Boolean):void{
_bRequesting = _arg1;
}
public function activate(_arg1:Boolean=true):void{
if (_arg1){
activateTimer.start();
} else {
activateTimer.stop();
};
}
}
}//package com.handjoys
Section 9
//Dishes (com.handjoys.Dishes)
package com.handjoys {
public class Dishes {
private var _dishName:String;
private var _dishType:String;
public function get dishName():String{
return (_dishName);
}
public function set dishType(_arg1:String):void{
_dishType = _arg1;
}
public function set dishName(_arg1:String):void{
_dishName = _arg1;
}
public function get dishType():String{
return (_dishType);
}
public static function getRandFood():Dishes{
var _local1:Array;
var _local2:Array;
var _local3:Array;
var _local4:int;
var _local5:Dishes;
_local1 = new Array("Bread", "Sandwich", "Strawberry", "Cookie", "Beef", "Watermelon", "Egg", "Pizza", "Salad", "Soup", "Coca", "Water", "Juice", "Newspaper", "Blanket", "Smoke", "Phone", "Bear", "Ball", "Fish");
_local2 = new Array("eat", "drink", "read", "blanket", "smoke", "phone", "toy");
_local3 = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 6, 6, 6);
_local4 = int((Math.random() * _local1.length));
_local5 = new (Dishes);
_local5.dishName = _local1[_local4];
_local5.dishType = _local2[_local3[_local4]];
return (_local5);
}
}
}//package com.handjoys
Section 10
//Food (com.handjoys.Food)
package com.handjoys {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
public class Food extends MovieClip {
private var _checkPoint:Point;
public function Food(){
this.buttonMode = true;
this.addEventListener(MouseEvent.MOUSE_OVER, foodMouseOverHandler);
this.addEventListener(MouseEvent.MOUSE_OUT, foodMouseOutHandler);
}
private function foodMouseOutHandler(_arg1:MouseEvent):void{
UA.clearDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
private function foodMouseOverHandler(_arg1:MouseEvent):void{
UA.setDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
public function get checkPoint():Point{
return (_checkPoint);
}
public function set checkPoint(_arg1:Point):void{
_checkPoint = _arg1;
}
}
}//package com.handjoys
Section 11
//Seat (com.handjoys.Seat)
package com.handjoys {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
public class Seat extends MovieClip {
private var _checkPoint:Point;
private var _holder:Customer;
public function Seat(){
this.addEventListener(MouseEvent.CLICK, seatClickHandler);
}
private function seatClickHandler(_arg1:MouseEvent):void{
trace("Seat is clicked");
}
public function set holder(_arg1:Customer):void{
_holder = _arg1;
}
public function get checkPoint():Point{
return (_checkPoint);
}
public function get holder():Customer{
return (_holder);
}
public function set checkPoint(_arg1:Point):void{
_checkPoint = _arg1;
}
}
}//package com.handjoys
Section 12
//Waiter (com.handjoys.Waiter)
package com.handjoys {
import com.handjoys.util.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import com.handjoys.event.*;
public class Waiter extends MovieClip {
private var _avator:MovieClip;
private var length_x:Number;// = 0
private var _carts:Array;
private var init_speed:Number;// = 7
private var speed_x:Number;// = 1
private var speed_y:Number;// = 1
private var length_y:Number;// = 0
private var squareWidth:int;// = 10
private var dir:String;// = ""
private var squareHeight:int;// = 10
private var to_y:int;
private var m_path:Array;
private var to_x:int;
private var distence:Number;// = 0
private var _maxDishes:int;// = 6
private var _target:Object;
private var moveFlag:Boolean;// = false
public function Waiter(_arg1:MovieClip){
squareWidth = 10;
squareHeight = 10;
length_x = 0;
length_y = 0;
distence = 0;
init_speed = 7;
moveFlag = false;
speed_x = 1;
speed_y = 1;
dir = "";
_carts = new Array();
_maxDishes = 6;
super();
this.avator = _arg1;
}
public function get avator():MovieClip{
return (_avator);
}
public function onMoveTo(_arg1:Number, _arg2:Number):void{
var ro:Number;
var to_x = _arg1;
var to_y = _arg2;
this.to_x = to_x;
this.to_y = to_y;
this.length_x = (this.to_x - this.avator.x);
this.length_y = (this.to_y - this.avator.y);
this.distence = Math.sqrt(((this.length_x * this.length_x) + (this.length_y * this.length_y)));
if (this.distence != 0){
this.speed_x = ((this.init_speed * this.length_x) / this.distence);
this.speed_y = ((this.init_speed * this.length_y) / this.distence);
try {
this.addEventListener(Event.ENTER_FRAME, Moving);
} catch(e:Error) {
};
};
ro = ((Math.atan2(this.length_y, this.length_x) * 180) / Math.PI);
if ((((ro > -135)) && ((ro <= -45)))){
dir = "up";
} else {
if ((((ro > -45)) && ((ro <= 45)))){
dir = "right";
} else {
if ((((ro > 45)) && ((ro <= 135)))){
dir = "down";
} else {
dir = "left";
};
};
};
turnFace(dir);
}
public function CallSendMoveFunction(_arg1:Number, _arg2:Number):void{
var tx:Number;
var ty:Number;
var tPath:*;
var to_x = _arg1;
var to_y = _arg2;
try {
tx = (int((to_x / squareWidth)) * squareWidth);
ty = (int((to_y / squareHeight)) * squareHeight);
if (Cache.ua.arrHomePath[(tx / squareWidth)][(ty / squareHeight)] == 1){
tPath = this.findPath(tx, ty);
if (tPath != null){
this.m_path = tPath;
};
this.to_x = tx;
this.to_y = ty;
if (this.m_path != null){
if (this.m_path.length > 0){
petPathMove();
};
};
};
} catch(e:Error) {
trace(e);
};
}
public function set target(_arg1:Object):void{
_target = _arg1;
}
public function set avator(_arg1:MovieClip):void{
_avator = _arg1;
}
private function stopMove():void{
var dis:Number;
try {
try {
dis = Math.sqrt((Math.pow((this.avator.x - this.target.x), 2) + Math.pow((this.avator.y - this.target.y), 2)));
} catch(e:Error) {
dis = Math.sqrt((Math.pow((this.avator.x - this.target.avator.x), 2) + Math.pow((this.avator.y - this.target.avator.y), 2)));
};
if (dis <= 150){
if ((target is Food)){
addDishes(target.name);
} else {
if (clearDishes(Customer(target).currentRequestName)){
Customer(target).startEat();
trace("delievered");
} else {
trace("not in carts");
};
};
};
} catch(e:Error) {
};
if (this.hasEventListener(Event.ENTER_FRAME)){
this.removeEventListener(Event.ENTER_FRAME, Moving);
};
if (_carts.length > 0){
this.avator.gotoAndStop("cartdown");
} else {
this.avator.gotoAndStop("blink");
};
if ((target is mcWaiterSeat)){
this.avator.gotoAndStop("seatdown");
};
target = null;
}
public function get maxDishes():int{
return (_maxDishes);
}
public function get carts():Array{
return (_carts);
}
public function clearDishes(_arg1:String):Boolean{
var _local2:int;
if (_arg1 != ""){
if (_arg1 != "blank"){
_local2 = _carts.indexOf(_arg1);
if (_local2 != -1){
_carts.splice(_local2, 1);
UA.freshItem();
} else {
return (false);
};
};
};
return (true);
}
public function get target():Object{
return (_target);
}
public function set maxDishes(_arg1:int):void{
_maxDishes = _arg1;
}
private function turnFace(_arg1:String="down"):void{
var _local2:String;
var _local3:Boolean;
_local2 = "";
_local3 = false;
switch (_arg1){
case "up":
_local2 = "walkup";
if (_carts.length > 0){
_local2 = "cartwalkup";
};
break;
case "down":
_local2 = "walkdown";
if (_carts.length > 0){
_local2 = "cartwalkdown";
};
break;
case "left":
_local2 = "walkleft";
if (_carts.length > 0){
_local2 = "cartwalkleft";
};
break;
case "right":
_local2 = "walkleft";
if (_carts.length > 0){
_local2 = "cartwalkleft";
};
_local3 = true;
break;
};
this.avator.gotoAndStop(_local2);
if (_local3){
this.avator.scaleX = (-1 * Math.abs(this.avator.scaleX));
} else {
this.avator.scaleX = Math.abs(this.avator.scaleX);
};
}
public function set carts(_arg1:Array):void{
_carts = _arg1;
}
public function Moving(_arg1:Event):void{
var x_x:Number;
var y_y:Number;
var event = _arg1;
try {
x_x = (this.to_x - this.avator.x);
y_y = (this.to_y - this.avator.y);
this.distence = (this.distence - Math.sqrt(((this.speed_x * this.speed_x) + (this.speed_y * this.speed_y))));
if (this.distence < 3){
if (this.m_path != null){
if (this.m_path.length == 0){
stopMove();
} else {
petPathMove();
return;
};
};
};
this.avator.x = (this.avator.x + this.speed_x);
this.avator.y = (this.avator.y + this.speed_y);
} catch(e:Error) {
trace("moving error", e);
};
}
public function ManageOrder(_arg1:UAEvent):void{
}
public function addDishes(_arg1:String):Boolean{
if (_carts.length >= _maxDishes){
trace(" _carts full");
return (false);
};
_carts.push(_arg1);
UA.freshItem();
return (true);
}
private function petPathMove():void{
var _local1:Array;
if (this.m_path != null){
if (this.m_path.length > 0){
_local1 = this.m_path.shift();
onMoveTo((_local1[0] * squareWidth), (_local1[1] * squareHeight));
};
};
}
private function getPoint(_arg1:Number, _arg2:Number):Point{
_arg1 = Math.ceil((Math.ceil(_arg1) / squareWidth));
_arg2 = Math.ceil((Math.ceil(_arg2) / squareHeight));
return (new Point(_arg1, _arg2));
}
public function findPath(_arg1:Number, _arg2:Number):Array{
var _local3:Point;
var _local4:Point;
var _local5:*;
_local3 = getPoint(_arg1, _arg2);
_local4 = getPoint(this.avator.x, this.avator.y);
_local5 = Cache.ua.aStarResult.find(_local4.x, _local4.y, _local3.x, _local3.y);
if (((!((_local5 == null))) && ((_local5.length > 0)))){
_local5 = pathFilter(_local5);
} else {
trace("can't find the path");
};
return (_local5);
}
private function pathFilter(_arg1:Array):Array{
var arrPath:Array;
var note:Array;
var dist:Array;
var retArr:Array;
var thisX:Number;
var thisY:Number;
var background:Sprite;
var blocked:Boolean;
var line:Shape;
var linePointToDist:Shape;
var i:*;
var path = _arg1;
arrPath = path.slice();
if ((((arrPath == null)) || ((arrPath.length == 0)))){
return (null);
};
retArr = [];
thisX = this.avator.x;
thisY = this.avator.y;
background = (Cache.scene.getChildByName("shadow") as Sprite);
blocked = true;
line = new Shape();
linePointToDist = new Shape();
try {
background.parent.addChild(line);
background.parent.addChild(linePointToDist);
i = 0;
while (i < arrPath.length) {
note = (arrPath[i] as Array);
line.graphics.clear();
line.graphics.moveTo(thisX, thisY);
line.graphics.lineStyle(2, 0xFF, 1);
line.graphics.lineTo((note[0] * squareWidth), (note[1] * squareHeight));
dist = (path.slice(-1) as Array);
linePointToDist.graphics.clear();
linePointToDist.graphics.moveTo((note[0] * squareWidth), (note[1] * squareHeight));
linePointToDist.graphics.lineStyle(2, 0xFF0000, 1);
linePointToDist.graphics.lineTo((dist[0][0] * squareWidth), (dist[0][1] * squareHeight));
if (blocked == true){
if (HitTest.complexHitTestObject(linePointToDist, background) == false){
retArr.push(dist[0]);
blocked = false;
} else {
if (HitTest.complexHitTestObject(line, background)){
thisX = (note[0] * squareWidth);
thisY = (note[1] * squareHeight);
retArr.push(note);
} else {
if (retArr.length > 0){
retArr.pop();
retArr.push(note);
} else {
retArr.push(note);
};
};
if (arrPath.length == 0){
retArr.push(note);
};
};
};
i = (i + 1);
};
line.parent.removeChild(line);
linePointToDist.parent.removeChild(linePointToDist);
} catch(e:Error) {
retArr = null;
};
return (retArr);
}
}
}//package com.handjoys
Section 13
//mcAvatorTips_17 (UA_fla.mcAvatorTips_17)
package UA_fla {
import flash.display.*;
public dynamic class mcAvatorTips_17 extends MovieClip {
public function mcAvatorTips_17(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 14
//mcLocation_21 (UA_fla.mcLocation_21)
package UA_fla {
import flash.display.*;
public dynamic class mcLocation_21 extends MovieClip {
public function mcLocation_21(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 15
//mcStatus_43 (UA_fla.mcStatus_43)
package UA_fla {
import flash.display.*;
public dynamic class mcStatus_43 extends MovieClip {
public var bar:MovieClip;
public var head:MovieClip;
public function mcStatus_43(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 16
//mcWaiter_50 (UA_fla.mcWaiter_50)
package UA_fla {
import flash.display.*;
public dynamic class mcWaiter_50 extends MovieClip {
public function mcWaiter_50(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 17
//statusBar_44 (UA_fla.statusBar_44)
package UA_fla {
import flash.display.*;
public dynamic class statusBar_44 extends MovieClip {
public function statusBar_44(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 18
//Timeline_123 (UA_fla.Timeline_123)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_123 extends MovieClip {
public function Timeline_123(){
addFrameScript(95, frame96);
}
function frame96(){
stop();
}
}
}//package UA_fla
Section 19
//Timeline_136 (UA_fla.Timeline_136)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_136 extends MovieClip {
public function Timeline_136(){
addFrameScript(84, frame85);
}
function frame85(){
stop();
}
}
}//package UA_fla
Section 20
//Timeline_150 (UA_fla.Timeline_150)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_150 extends MovieClip {
public function Timeline_150(){
addFrameScript(0, frame1);
}
function frame1(){
if (parent.parent["_dishName"]){
this.gotoAndStop(parent.parent["_dishName"]);
} else {
stop();
};
trace(parent.parent["_dishName"]);
}
}
}//package UA_fla
Section 21
//Timeline_46 (UA_fla.Timeline_46)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_46 extends MovieClip {
public function Timeline_46(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 22
//Timeline_53 (UA_fla.Timeline_53)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_53 extends MovieClip {
public function Timeline_53(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 23
//Timeline_6 (UA_fla.Timeline_6)
package UA_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Timeline_6 extends MovieClip {
public function Timeline_6(){
addFrameScript(0, frame1);
}
public function mouseClick(_arg1:MouseEvent):void{
if (this.name == "next"){
MovieClip(this.parent).nextFrame();
} else {
MovieClip(this.parent).prevFrame();
};
}
function frame1(){
this.buttonMode = true;
stop();
this.addEventListener(MouseEvent.CLICK, mouseClick);
}
}
}//package UA_fla
Section 24
//Timeline_7 (UA_fla.Timeline_7)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_7 extends MovieClip {
public function Timeline_7(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package UA_fla
Section 25
//Timeline_81 (UA_fla.Timeline_81)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_81 extends MovieClip {
public function Timeline_81(){
addFrameScript(364, frame365);
}
function frame365(){
stop();
}
}
}//package UA_fla
Section 26
//Timeline_86 (UA_fla.Timeline_86)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_86 extends MovieClip {
public function Timeline_86(){
addFrameScript(175, frame176);
}
function frame176(){
stop();
}
}
}//package UA_fla
Section 27
//Timeline_97 (UA_fla.Timeline_97)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_97 extends MovieClip {
public var Bread:fBread;
public var Soup:fSoup;
public var Watermelon:fWatermelon;
public var Beef:fBeef;
public var Sandwich:fSandwich;
public var Salad:fSalad;
public var Strawberry:fStrawberry;
public var Pizza:fPizza;
public var Cookie:fCookie;
public var Egg:fEgg;
public function Timeline_97(){
addFrameScript(0, frame1);
}
function frame1(){
if (parent.parent["_dishName"] != ""){
this.gotoAndStop(parent.parent["_dishName"]);
} else {
stop();
};
stop();
}
}
}//package UA_fla
Section 28
//Timeline_99 (UA_fla.Timeline_99)
package UA_fla {
import flash.display.*;
public dynamic class Timeline_99 extends MovieClip {
public function Timeline_99(){
addFrameScript(0, frame1);
}
function frame1(){
if (parent.parent["_dishName"]){
this.gotoAndStop(parent.parent["_dishName"]);
} else {
stop();
};
}
}
}//package UA_fla
Section 29
//c0 (c0)
package {
import flash.display.*;
public dynamic class c0 extends MovieClip {
public function c0(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 30
//c1 (c1)
package {
import flash.display.*;
public dynamic class c1 extends MovieClip {
public function c1(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 31
//c2 (c2)
package {
import flash.display.*;
public dynamic class c2 extends MovieClip {
public function c2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 32
//c3 (c3)
package {
import flash.display.*;
public dynamic class c3 extends MovieClip {
public function c3(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 33
//c4 (c4)
package {
import flash.display.*;
public dynamic class c4 extends MovieClip {
public function c4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 34
//c5 (c5)
package {
import flash.display.*;
public dynamic class c5 extends MovieClip {
public function c5(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 35
//c6 (c6)
package {
import flash.display.*;
public dynamic class c6 extends MovieClip {
public function c6(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 36
//c7 (c7)
package {
import flash.display.*;
public dynamic class c7 extends MovieClip {
public function c7(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 37
//c8 (c8)
package {
import flash.display.*;
public dynamic class c8 extends MovieClip {
public function c8(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 38
//c9 (c9)
package {
import flash.display.*;
public dynamic class c9 extends MovieClip {
public function c9(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 39
//FBall (FBall)
package {
import com.handjoys.*;
public dynamic class FBall extends Food {
}
}//package
Section 40
//fBear (fBear)
package {
import com.handjoys.*;
public dynamic class fBear extends Food {
}
}//package
Section 41
//fBeef (fBeef)
package {
import com.handjoys.*;
public dynamic class fBeef extends Food {
}
}//package
Section 42
//fBlanket (fBlanket)
package {
import com.handjoys.*;
public dynamic class fBlanket extends Food {
}
}//package
Section 43
//fBread (fBread)
package {
import com.handjoys.*;
public dynamic class fBread extends Food {
}
}//package
Section 44
//fCoca (fCoca)
package {
import com.handjoys.*;
public dynamic class fCoca extends Food {
}
}//package
Section 45
//fCookie (fCookie)
package {
import com.handjoys.*;
public dynamic class fCookie extends Food {
}
}//package
Section 46
//fEgg (fEgg)
package {
import com.handjoys.*;
public dynamic class fEgg extends Food {
}
}//package
Section 47
//Ffish (Ffish)
package {
import com.handjoys.*;
public dynamic class Ffish extends Food {
}
}//package
Section 48
//fJuice (fJuice)
package {
import com.handjoys.*;
public dynamic class fJuice extends Food {
}
}//package
Section 49
//fNewspaper (fNewspaper)
package {
import com.handjoys.*;
public dynamic class fNewspaper extends Food {
}
}//package
Section 50
//FPhone (FPhone)
package {
import com.handjoys.*;
public dynamic class FPhone extends Food {
}
}//package
Section 51
//fPizza (fPizza)
package {
import com.handjoys.*;
public dynamic class fPizza extends Food {
}
}//package
Section 52
//fSalad (fSalad)
package {
import com.handjoys.*;
public dynamic class fSalad extends Food {
}
}//package
Section 53
//fSandwich (fSandwich)
package {
import com.handjoys.*;
public dynamic class fSandwich extends Food {
}
}//package
Section 54
//fSmoke (fSmoke)
package {
import com.handjoys.*;
public dynamic class fSmoke extends Food {
}
}//package
Section 55
//fSoup (fSoup)
package {
import com.handjoys.*;
public dynamic class fSoup extends Food {
}
}//package
Section 56
//fStrawberry (fStrawberry)
package {
import com.handjoys.*;
public dynamic class fStrawberry extends Food {
}
}//package
Section 57
//fWater (fWater)
package {
import com.handjoys.*;
public dynamic class fWater extends Food {
}
}//package
Section 58
//fWatermelon (fWatermelon)
package {
import com.handjoys.*;
public dynamic class fWatermelon extends Food {
}
}//package
Section 59
//mcCheckResume (mcCheckResume)
package {
import flash.display.*;
public dynamic class mcCheckResume extends MovieClip {
public var newGame:MovieClip;
public var resumeGame:MovieClip;
}
}//package
Section 60
//mcFailedGame (mcFailedGame)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcFailedGame extends MovieClip {
public var avatorTips:MovieClip;
public var txtScore:TextField;
public var txtLevel:TextField;
public var txtTotal:TextField;
public var back:MovieClip;
}
}//package
Section 61
//mcHelp (mcHelp)
package {
import flash.display.*;
public dynamic class mcHelp extends MovieClip {
public var next:MovieClip;
public var prev:MovieClip;
public function mcHelp(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 62
//mcItemList (mcItemList)
package {
import flash.display.*;
public dynamic class mcItemList extends MovieClip {
public function mcItemList(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 63
//mcNextLevel (mcNextLevel)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcNextLevel extends MovieClip {
public var txtScore:TextField;
public var txtLevel:TextField;
public var btnCtn:MovieClip;
public var txtTotal:TextField;
public var txtFlightInfo:TextField;
}
}//package
Section 64
//mcPauseGame (mcPauseGame)
package {
import flash.display.*;
public dynamic class mcPauseGame extends MovieClip {
public var quit:MovieClip;
public var Resume:MovieClip;
}
}//package
Section 65
//mcPreGame (mcPreGame)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcPreGame extends MovieClip {
public var txtScore:TextField;
public var Istanbul:MovieClip;
public var txtLevel:TextField;
public var txtToLoc:TextField;
public var London:MovieClip;
public var StartGame:MovieClip;
public var plane:MovieClip;
public var Paris:MovieClip;
public var txtFromLoc:TextField;
public var Rome:MovieClip;
public var txtTotal:TextField;
public var Instructions:MovieClip;
public var Madrid:MovieClip;
}
}//package
Section 66
//mcScene (mcScene)
package {
import flash.display.*;
public dynamic class mcScene extends MovieClip {
public var Blanket:fBlanket;
public var Water:fWater;
public var Soup:fSoup;
public var Watermelon:fWatermelon;
public var Bread:fBread;
public var Beef:fBeef;
public var Ball:FBall;
public var Sandwich:fSandwich;
public var Phone:FPhone;
public var shadow:MovieClip;
public var Juice:fJuice;
public var Salad:fSalad;
public var Smoke:fSmoke;
public var Strawberry:fStrawberry;
public var Pizza:fPizza;
public var Fish:Ffish;
public var Cookie:fCookie;
public var Newspaper:fNewspaper;
public var Bear:fBear;
public var Egg:fEgg;
public var waiter:MovieClip;
public var Coca:fCoca;
}
}//package
Section 67
//mcTipBox (mcTipBox)
package {
import flash.display.*;
public dynamic class mcTipBox extends MovieClip {
public var bg:MovieClip;
}
}//package
Section 68
//mcUI (mcUI)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcUI extends MovieClip {
public var showMenu:MovieClip;
public var txtGameTimer:TextField;
public var txtGameLevel:TextField;
public var txtGameScore:TextField;
public var item2:mcItemList;
public var item0:mcItemList;
public var item3:mcItemList;
public var item4:mcItemList;
public var item5:mcItemList;
public var soundCtr:MovieClip;
public var item1:mcItemList;
public var status:MovieClip;
}
}//package
Section 69
//mcWaiterSeat (mcWaiterSeat)
package {
import flash.display.*;
public dynamic class mcWaiterSeat extends MovieClip {
}
}//package
Section 70
//sndBgm (sndBgm)
package {
import flash.media.*;
public dynamic class sndBgm extends Sound {
}
}//package
Section 71
//UA (UA)
package {
import com.handjoys.util.*;
import flash.display.*;
import com.handjoys.*;
import flash.geom.*;
import flash.events.*;
import flash.filters.*;
import com.handjoys.event.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.net.*;
import flash.text.*;
public class UA extends Sprite {
private const GAME_TIME_TOTOL:int = 150;
private const LEVEL_SCORE:int = 100;
private var size:uint;// = 80
private var bgColor:uint;// = 0xFFCC00
private var bPaused:Boolean;// = false
private var nextLvl:MovieClip;
private var gameHelp:MovieClip;
private var gainScore:int;// = 0
private var scene:MovieClip;
private var _aStarResult:AStar;
private var offset:uint;// = 50
private var ui:MovieClip;
private var score:int;// = 100
private var bSoundOn:Boolean;// = true
private var _m_AStar:AStar;
private var gameCheckTimer:Timer;
private var domain:ApplicationDomain;
private var bgm:Sound;
private var attendance:Number;// = 0.6
private var waiter:Waiter;
private var locArr:Array;
private var successedGame:MovieClip;
private var pauseGame:MovieClip;
private var song:SoundChannel;
private var arrSeats:Array;
private var preGame:MovieClip;
private var mySo:SharedObject;
private var arrCustomers:Array;
private var _arrHomePath:Array;
private var level:int;// = 0
private var intMinCustomerNumber:int;// = 5
private var _m_map:Array;
private var intMaxLevel:int;// = 5
private var totalScore:int;// = 0
private var resumeGame:MovieClip;
private var failedGame:MovieClip;
private var _m_mapTileModel:MapTileModel;
private var lostScore:int;// = 0
private var _m_path:Array;
private var gameTime:int;// = 150
private var bCheckHistory:Boolean;// = false
private var arrFoods:Array;
public function UA(){
_arrHomePath = [];
attendance = 0.6;
intMinCustomerNumber = 5;
bgColor = 0xFFCC00;
size = 80;
offset = 50;
intMaxLevel = 5;
level = 0;
score = 100;
totalScore = 0;
gainScore = 0;
lostScore = 0;
gameTime = 150;
bPaused = false;
bSoundOn = true;
bCheckHistory = false;
super();
Cache.ua = this;
this.bgm = new sndBgm();
mySo = SharedObject.getLocal("cookieUA");
domain = ApplicationDomain.currentDomain;
readHistory();
preLoadGame();
}
private function readHistory():void{
trace("From", bCheckHistory);
trace(mySo.data.level);
if (((!((mySo.data.level == 0))) && (!((mySo.data.level == undefined))))){
bCheckHistory = true;
level = mySo.data.level;
score = mySo.data.score;
totalScore = mySo.data.totalScore;
};
trace("then", bCheckHistory);
}
private function gameCheckHandler(_arg1:TimerEvent):void{
refreshGameTimer();
}
private function iniResumeMenu():void{
var _local1:MovieClip;
var _local2:MovieClip;
if (bCheckHistory){
_local1 = (resumeGame.getChildByName("resumeGame") as MovieClip);
_local2 = (resumeGame.getChildByName("newGame") as MovieClip);
addMouseEffect(_local1);
addMouseEffect(_local2);
_local1.addEventListener(MouseEvent.CLICK, btnYesClickHandler);
_local2.addEventListener(MouseEvent.CLICK, clearGameHandler);
addChild(resumeGame);
} else {
if (resumeGame.parent){
resumeGame.parent.removeChild(resumeGame);
};
};
}
private function initEventListener():void{
if (!this.hasEventListener(MouseEvent.CLICK)){
this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
};
if (!this.hasEventListener(Event.ENTER_FRAME)){
this.addEventListener(Event.ENTER_FRAME, adjustDisplay);
};
}
public function set arrHomePath(_arg1:Array):void{
_arrHomePath = _arg1;
}
private function adjustDisplay(_arg1:Event):void{
var objUp:DisplayObject;
var objDown:DisplayObject;
var i:*;
var e = _arg1;
try {
i = 0;
while (i < (scene.numChildren - 1)) {
objUp = (scene.getChildAt((i + 1)) as DisplayObject);
objDown = (scene.getChildAt(i) as DisplayObject);
if (objUp.y < objDown.y){
scene.swapChildren(objUp, objDown);
};
i = (i + 1);
};
} catch(e:Error) {
};
}
private function nextLevel(_arg1:MouseEvent):void{
this.removeChild(nextLvl);
preLoadGame();
}
public function get aStarResult():AStar{
return (_aStarResult);
}
private function saveHistory():void{
mySo.data.level = level;
mySo.data.score = score;
mySo.data.totalScore = totalScore;
mySo.flush();
}
public function addScore(_arg1:int):void{
score = (score + _arg1);
if (_arg1 > 0){
gainScore = (gainScore + _arg1);
} else {
lostScore = (lostScore - _arg1);
};
}
private function clearDishes(_arg1:MouseEvent):void{
trace("clearDishes:", MovieClip(_arg1.currentTarget).currentLabel);
waiter.clearDishes(MovieClip(_arg1.currentTarget).currentLabel);
}
private function clearGameHandler(_arg1:MouseEvent):void{
bCheckHistory = false;
clearHistory();
_arg1.stopPropagation();
startGame();
}
public function get m_map():Array{
return (_m_map);
}
private function resumeGameHandler(_arg1:MouseEvent):void{
bPaused = !(bPaused);
gamePause(bPaused);
}
private function getRandomLocation():Array{
var _local1:Array;
var _local2:int;
var _local3:Array;
_local1 = new Array();
_local3 = new Array("London", "Paris", "Madrid", "Rome", "Istanbul");
if (locArr){
_local2 = _local3.indexOf(String(locArr[1]));
} else {
_local2 = int((Math.random() * _local3.length));
};
_local1.push(_local3.splice(_local2, 1));
_local2 = int((Math.random() * _local3.length));
_local1.push(_local3.splice(_local2, 1));
return (_local1);
}
public function set aStarResult(_arg1:AStar):void{
_aStarResult = _arg1;
}
private function backToMain(_arg1:MouseEvent):void{
var e = _arg1;
try {
removeChild(failedGame);
} catch(e:Error) {
};
try {
removeChild(pauseGame);
} catch(e:Error) {
};
readHistory();
preLoadGame();
}
public function get m_path():Array{
return (_m_path);
}
private function setSountHandler(_arg1:MouseEvent):void{
var _local2:MovieClip;
bSoundOn = !(bSoundOn);
_local2 = (_arg1.currentTarget as MovieClip);
if (bSoundOn){
_local2.gotoAndStop("on");
} else {
_local2.gotoAndStop("off");
};
setSound();
}
private function iniNextLevel():void{
var _local1:TextField;
var _local2:TextField;
var _local3:TextField;
var _local4:TextField;
var _local5:MovieClip;
trace("iniNextLevel");
level++;
gainScore = 0;
lostScore = 0;
if (score > 0){
totalScore = (totalScore + score);
};
nextLvl = (new mcNextLevel() as MovieClip);
_local1 = (nextLvl.getChildByName("txtFlightInfo") as TextField);
_local2 = (nextLvl.getChildByName("txtLevel") as TextField);
_local3 = (nextLvl.getChildByName("txtScore") as TextField);
_local4 = (nextLvl.getChildByName("txtTotal") as TextField);
_local5 = (nextLvl.getChildByName("btnCtn") as MovieClip);
_local1.text = ((locArr[0] + "----") + locArr[1]);
_local3.text = ("" + score);
_local4.text = ("" + totalScore);
_local2.text = ("" + level);
addMouseEffect(_local5);
_local5.addEventListener(MouseEvent.CLICK, nextLevel);
addChild(nextLvl);
}
private function iniFailedGame():void{
var _local1:TextField;
var _local2:TextField;
var _local3:TextField;
var _local4:MovieClip;
var _local5:MovieClip;
if (failedGame == null){
failedGame = (new mcFailedGame() as MovieClip);
};
_local1 = (failedGame.getChildByName("txtLevel") as TextField);
_local2 = (failedGame.getChildByName("txtScore") as TextField);
_local3 = (failedGame.getChildByName("txtTotal") as TextField);
_local4 = (failedGame.getChildByName("back") as MovieClip);
_local5 = (failedGame.getChildByName("avatorTips") as MovieClip);
_local2.text = ("" + score);
_local3.text = ("" + totalScore);
_local1.text = ("" + level);
if (level >= intMaxLevel){
_local5.gotoAndStop("successed");
} else {
_local5.gotoAndStop("failed");
};
addMouseEffect(_local4);
_local4.addEventListener(MouseEvent.CLICK, backToMain);
addChild(failedGame);
}
private function targetClickHandler(_arg1:MouseEvent):void{
var _local2:Point;
var _local3:Seat;
waiter.target = DisplayObject(_arg1.currentTarget);
for each (_local3 in arrSeats) {
if (_local3.holder != null){
if (_local3.holder.avator == _arg1.currentTarget){
_local2 = _local3.checkPoint;
waiter.target = _local3.holder;
waiter.CallSendMoveFunction(_local2.x, _local2.y);
};
};
};
if ((_arg1.currentTarget is Food)){
_local2 = Food(_arg1.currentTarget).checkPoint;
waiter.CallSendMoveFunction(_local2.x, _local2.y);
};
if ((_arg1.currentTarget is mcWaiterSeat)){
waiter.CallSendMoveFunction((MovieClip(_arg1.currentTarget).x + 30), (MovieClip(_arg1.currentTarget).y + 40));
};
_arg1.stopPropagation();
}
private function iniPauseMenu():void{
var _local1:MovieClip;
var _local2:MovieClip;
_local1 = (pauseGame.getChildByName("Resume") as MovieClip);
_local2 = (pauseGame.getChildByName("quit") as MovieClip);
addMouseEffect(_local1);
addMouseEffect(_local2);
_local1.addEventListener(MouseEvent.CLICK, resumeGameHandler);
_local2.addEventListener(MouseEvent.CLICK, backToMain);
}
public function set m_map(_arg1:Array):void{
_m_map = _arg1;
}
private function pauseGameHandler(_arg1:MouseEvent):void{
bPaused = !(bPaused);
gamePause(bPaused);
}
private function refreshGameScore():void{
var _local1:TextField;
_local1 = (ui.getChildByName("txtGameScore") as TextField);
_local1.text = ("" + score);
}
private function gamePause(_arg1:Boolean=false):void{
var c:Customer;
var flg = _arg1;
if (flg){
gameCheckTimer.stop();
for each (c in arrCustomers) {
c.pause(true);
};
addChild(pauseGame);
} else {
gameCheckTimer.start();
for each (c in arrCustomers) {
c.pause(false);
};
try {
removeChild(pauseGame);
} catch(e:Error) {
};
};
}
private function btnYesClickHandler(_arg1:MouseEvent):void{
_arg1.stopPropagation();
startGame();
}
private function startGameHandler(_arg1:MouseEvent):void{
_arg1.stopPropagation();
if (bCheckHistory){
iniResumeMenu();
} else {
startGame();
};
}
public function get arrHomePath():Array{
return (_arrHomePath);
}
public function isReachable(_arg1:Number, _arg2:Number):Boolean{
var squareWidth:int;
var squareHeight:int;
var x = _arg1;
var y = _arg2;
try {
squareWidth = 10;
squareHeight = 10;
if (arrHomePath.length > 0){
return ((arrHomePath[int((x / squareWidth))][int((y / squareHeight))] == 1));
} else {
return (false);
};
} catch(e) {
};
return (false);
}
private function stopAllCustomer():void{
var _local1:Customer;
for each (_local1 in arrCustomers) {
_local1.stopAllAction();
_local1 = null;
};
}
public function set m_mapTileModel(_arg1:MapTileModel):void{
_m_mapTileModel = _arg1;
}
public function set m_path(_arg1:Array):void{
_m_path = _arg1;
}
private function startGame():void{
var waiterMc:MovieClip;
if (scene == null){
scene = (new mcScene() as MovieClip);
};
try {
removeChild(gameHelp);
} catch(e:Error) {
};
Cache.scene = scene;
gameTime = GAME_TIME_TOTOL;
score = LEVEL_SCORE;
addChild(scene);
iniWayPoint(scene.getChildByName("shadow"));
waiterMc = (scene.getChildByName("waiter") as MovieClip);
waiterMc.gotoAndStop("stand");
waiter = new Waiter(waiterMc);
iniCustomer();
iniUI();
initEventListener();
}
private function iniUI():void{
var btnPause:MovieClip;
var mcStatus:MovieClip;
var mcSound:MovieClip;
var itemContainer:MovieClip;
var i:*;
if (ui == null){
ui = (new mcUI() as MovieClip);
};
btnPause = (ui.getChildByName("showMenu") as MovieClip);
addMouseEffect(btnPause);
mcStatus = (ui.getChildByName("status") as MovieClip);
mcSound = (ui.getChildByName("soundCtr") as MovieClip);
mcSound.addEventListener(MouseEvent.CLICK, setSountHandler);
if (bSoundOn){
mcSound.gotoAndStop("on");
} else {
mcSound.gotoAndStop("off");
};
setSound();
addMouseEffect(mcStatus);
btnPause.addEventListener(MouseEvent.CLICK, pauseGameHandler);
gameCheckTimer = new Timer(1000, 0);
gameCheckTimer.addEventListener(TimerEvent.TIMER, gameCheckHandler);
gameCheckTimer.reset();
gameCheckTimer.start();
addChild(ui);
i = 0;
while (i < Cache.ua.waiter.maxDishes) {
try {
itemContainer = (Cache.ua.ui.getChildByName(("item" + i)) as MovieClip);
itemContainer.gotoAndStop("blank");
itemContainer.addEventListener(MouseEvent.CLICK, clearDishes);
} catch(e:Error) {
itemContainer.gotoAndStop("blank");
};
i = (i + 1);
};
}
private function clearHistory():void{
level = 0;
score = 0;
totalScore = 0;
mySo.clear();
mySo.flush();
}
private function showHelpHandler(_arg1:MouseEvent):void{
if (gameHelp == null){
gameHelp = (new mcHelp() as MovieClip);
};
if (gameHelp.parent){
gameHelp.parent.removeChild(gameHelp);
} else {
addChild(gameHelp);
};
}
public function get m_mapTileModel():MapTileModel{
return (_m_mapTileModel);
}
private function getRandom(_arg1:int):int{
return (int((Math.random() * _arg1)));
}
private function preLoadGame():void{
var _local1:Shape;
var _local2:MovieClip;
var _local3:MovieClip;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:TextField;
var _local7:TextField;
var _local8:TextField;
var _local9:TextField;
var _local10:TextField;
var _local11:MovieClip;
var _local12:Object;
var _local13:*;
if (preGame == null){
preGame = (new mcPreGame() as MovieClip);
};
gainScore = 0;
lostScore = 0;
bPaused = false;
addChild(preGame);
if (pauseGame == null){
pauseGame = (new mcPauseGame() as MovieClip);
iniPauseMenu();
};
if (resumeGame == null){
resumeGame = (new mcCheckResume() as MovieClip);
};
_local1 = new Shape();
_local1.name = (("line_" + level) + (Math.random() * 10000));
preGame.addChild(_local1);
if (level == 0){
_local13 = 0;
while (_local13 < preGame.numChildren) {
_local12 = preGame.getChildAt(_local13);
if ((_local12 is Shape)){
if (Shape(_local12).name.indexOf("line_") == 0){
Shape(_local12).graphics.clear();
};
};
_local13++;
};
};
_local2 = (preGame.getChildByName("StartGame") as MovieClip);
_local3 = (preGame.getChildByName("Instructions") as MovieClip);
_local2.addEventListener(MouseEvent.CLICK, startGameHandler);
_local3.addEventListener(MouseEvent.CLICK, showHelpHandler);
addMouseEffect(_local2);
addMouseEffect(_local3);
locArr = getRandomLocation();
_local4 = (preGame.getChildByName(locArr[0]) as MovieClip);
_local5 = (preGame.getChildByName(locArr[1]) as MovieClip);
_local6 = (preGame.getChildByName("txtFromLoc") as TextField);
_local7 = (preGame.getChildByName("txtToLoc") as TextField);
_local8 = (preGame.getChildByName("txtLevel") as TextField);
_local9 = (preGame.getChildByName("txtScore") as TextField);
_local10 = (preGame.getChildByName("txtTotal") as TextField);
_local11 = (preGame.getChildByName("plane") as MovieClip);
_local6.text = locArr[0];
_local7.text = locArr[1];
_local8.text = String(level);
_local9.text = String(LEVEL_SCORE);
_local10.text = String(totalScore);
_local4.gotoAndStop("toLocation");
_local5.gotoAndStop("toLocation");
_local1.graphics.clear();
_local1.graphics.moveTo(_local4.x, _local4.y);
_local1.graphics.lineStyle(3, 0xFF0000, 1, false, "normal", "CapsStyle.ROUND");
_local1.graphics.curveTo((((_local4.x + _local5.x) + 30) / 2), (((_local4.y + _local5.y) - 20) / 2), _local5.x, _local5.y);
_local11.x = (_local4.x + ((_local5.x - _local4.x) / 2));
_local11.y = (_local4.y + ((_local5.y - _local4.y) / 2));
preGame.addChild(_local11);
_local11.rotation = ((Math.atan2((_local5.y - _local4.y), (_local5.x - _local4.x)) * 180) / Math.PI);
}
public function set m_AStar(_arg1:AStar):void{
_m_AStar = _arg1;
}
private function setSound():void{
try {
song.stop();
} catch(e:Error) {
trace("no song yet");
};
if (bSoundOn){
song = bgm.play(0, 9999999);
} else {
song.stop();
};
}
public function get m_AStar():AStar{
return (_m_AStar);
}
private function iniCustomer():void{
var _local1:Array;
var _local2:Array;
var _local3:MovieClip;
var _local4:Object;
var _local5:Class;
var _local6:MovieClip;
var _local7:int;
var _local8:*;
var _local9:Seat;
var _local10:Food;
var _local11:Customer;
var _local12:int;
var _local13:*;
var _local14:int;
var _local15:Customer;
_local1 = new Array(8, 8, 9, 10, 10, 10, 10);
_local2 = new Array();
arrSeats = new Array();
arrFoods = new Array();
_local7 = 35;
_local8 = (scene.numChildren - 1);
while (_local8 > -1) {
_local4 = scene.getChildAt(_local8);
if ((_local4 is Seat)){
arrSeats.push(_local4);
};
if ((_local4 is Food)){
arrFoods.push(_local4);
};
if ((_local4 is mcWaiterSeat)){
_local3 = mcWaiterSeat(_local4);
_local3.addEventListener(MouseEvent.CLICK, targetClickHandler);
};
_local8--;
};
if (arrCustomers != null){
for each (_local11 in arrCustomers) {
_local11.distory();
_local11 = null;
};
};
arrCustomers = new Array();
for each (_local9 in arrSeats) {
_local8 = scene.getChildIndex(_local9);
if (Math.random() < (attendance + (level / 15))){
if (arrCustomers.length >= _local1[level]){
continue;
};
_local14 = getRandom(10);
while (_local2.indexOf(_local14) == -1) {
_local2.push(_local14);
_local5 = (domain.getDefinition(("c" + _local14)) as Class);
_local6 = (new (_local5) as MovieClip);
_local6.x = _local9.x;
_local6.y = (_local9.y + _local7);
scene.addChildAt(MovieClip(_local6), (_local8 + 1));
_local15 = new Customer(_local6);
_local9.holder = _local15;
_local15.activate();
arrCustomers.push(_local15);
_local15.addEventListener(UAEvent.ORDER_DISHES, waiter.ManageOrder);
_local15.avator.addEventListener(MouseEvent.CLICK, targetClickHandler);
};
};
_local12 = 30;
_local13 = 0;
for (;_local13 < 200;(_local13 = (_local13 + 2))) {
if (_local9.checkPoint != null){
} else {
if ((((_local9.checkPoint == null)) && (isReachable((_local9.x - _local13), (_local9.y + _local12))))){
_local9.checkPoint = new Point((_local9.x - _local13), (_local9.y + _local12));
} else {
if ((((_local9.checkPoint == null)) && (isReachable((_local9.x + _local13), (_local9.y + _local12))))){
_local9.checkPoint = new Point((_local9.x + _local13), (_local9.y + _local12));
continue;
};
};
};
};
};
for each (_local10 in arrFoods) {
_local12 = 30;
_local13 = 0;
for (;_local13 < 200;(_local13 = (_local13 + 2))) {
if (_local10.checkPoint != null){
} else {
if ((((_local10.checkPoint == null)) && (isReachable((_local10.x - _local13), (_local10.y + _local12))))){
_local10.checkPoint = new Point((_local10.x - _local13), (_local10.y + _local12));
} else {
if ((((_local10.checkPoint == null)) && (isReachable((_local10.x + _local13), (_local10.y + _local12))))){
_local10.checkPoint = new Point((_local10.x + _local13), (_local10.y + _local12));
} else {
if ((((_local10.checkPoint == null)) && (isReachable(_local10.x, ((_local10.y + _local12) - _local13))))){
_local10.checkPoint = new Point(_local10.x, ((_local10.y + _local12) - _local13));
} else {
if ((((_local10.checkPoint == null)) && (isReachable(_local10.x, ((_local10.y + _local12) + _local13))))){
_local10.checkPoint = new Point(_local10.x, ((_local10.y + _local12) + _local13));
continue;
};
};
};
};
};
};
_local10.addEventListener(MouseEvent.CLICK, targetClickHandler);
};
if (arrCustomers.length != _local1[level]){
iniCustomer();
};
}
public function iniWayPoint(_arg1):void{
var _local2:Array;
_local2 = WayPoint.ini(_arg1);
this.m_mapTileModel = new MapTileModel();
m_mapTileModel.map = _local2;
this.m_AStar = new AStar(this.m_mapTileModel, 1500);
aStarResult = this.m_AStar;
arrHomePath = _local2.slice();
}
private function refreshGameTimer():void{
var _local1:TextField;
var _local2:TextField;
var _local3:MovieClip;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:Number;
var _local7:int;
var _local8:int;
_local1 = (ui.getChildByName("txtGameTimer") as TextField);
_local2 = (ui.getChildByName("txtGameLevel") as TextField);
_local3 = (ui.getChildByName("status") as MovieClip);
_local4 = (_local3.getChildByName("head") as MovieClip);
_local5 = (_local3.getChildByName("bar") as MovieClip);
_local6 = 0;
if ((gainScore + lostScore) != 0){
_local6 = (gainScore / (gainScore + lostScore));
};
_local4.x = (_local6 * _local5.width);
if (_local6 > 0.65){
_local5.gotoAndStop("green");
} else {
_local5.gotoAndStop("red");
};
_local7 = int((gameTime / 60));
_local8 = (gameTime - (60 * _local7));
_local2.text = ("" + level);
_local1.text = ((_local8 >= 10)) ? ((("0" + _local7) + ":") + _local8) : (((("0" + _local7) + ":") + "0") + _local8);
if (gameTime > 0){
gameTime--;
};
if (gameTime <= 0){
stopAllCustomer();
if ((gainScore + lostScore) == 0){
iniFailedGame();
} else {
if (((gainScore / gainScore) + lostScore) >= 0.65){
if (level >= intMaxLevel){
iniFailedGame();
clearHistory();
} else {
iniNextLevel();
};
} else {
iniFailedGame();
};
};
gameCheckTimer.stop();
saveHistory();
} else {
refreshGameScore();
};
}
private function getBitmapFilter():BitmapFilter{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Boolean;
var _local9:Boolean;
var _local10:Number;
_local1 = 0;
_local2 = 45;
_local3 = 0.8;
_local4 = 8;
_local5 = 8;
_local6 = 15;
_local7 = 0.65;
_local8 = false;
_local9 = false;
_local10 = BitmapFilterQuality.HIGH;
return (new DropShadowFilter(_local6, _local2, _local1, _local3, _local4, _local5, _local7, _local10, _local8, _local9));
}
private function mouseClickHandler(_arg1:MouseEvent):void{
waiter.CallSendMoveFunction(_arg1.stageX, _arg1.stageY);
}
public static function setDropShadowFilter(_arg1:DisplayObject):void{
var _local2:GlowFilter;
var _local3:Array;
_local2 = new GlowFilter();
_local2.color = 0xFFFFFF;
_local2.alpha = 0.8;
_local2.blurX = 25;
_local2.blurY = 25;
_local2.quality = BitmapFilterQuality.MEDIUM;
_local3 = new Array();
_local3.push(_local2);
_arg1.filters = _local3;
}
public static function freshItem():void{
var itemContainer:MovieClip;
var i:*;
i = 0;
while (i < Cache.ua.waiter.maxDishes) {
try {
itemContainer = (Cache.ua.ui.getChildByName(("item" + i)) as MovieClip);
itemContainer.gotoAndStop(Cache.ua.waiter.carts[i]);
} catch(e:Error) {
trace(e);
itemContainer.gotoAndStop("blank");
};
i = (i + 1);
};
}
public static function freshUI():void{
freshItem();
}
public static function clearDropShadowFilter(_arg1:DisplayObject):void{
_arg1.filters = null;
}
public static function addMouseEffect(_arg1:DisplayObject):void{
_arg1.addEventListener(MouseEvent.MOUSE_OVER, addMouseOverEffect);
_arg1.addEventListener(MouseEvent.MOUSE_OUT, addMouseOutEffect);
}
private static function addMouseOverEffect(_arg1:MouseEvent):void{
setDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
private static function addMouseOutEffect(_arg1:MouseEvent):void{
clearDropShadowFilter(DisplayObject(_arg1.currentTarget));
}
}
}//package