Section 1
//Avatar (com.midasplayer.avatar.Avatar)
package com.midasplayer.avatar {
public interface Avatar {
function getWidth():int;
function setMood(*:String);
function getHeight():int;
function executeCommand(*:String);
}
}//package com.midasplayer.avatar
Section 2
//AvatarLoader (com.midasplayer.avatar.AvatarLoader)
package com.midasplayer.avatar {
import flash.events.*;
import flash.display.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
public class AvatarLoader {
private var path:String;
private var isMoneyGame:Boolean;
private var loaderId:int;
private var progressCallback:Function;
private var completeCallback:Function;
public function AvatarLoader(p__1:String=null){
super();
if ((((p__1 == null)) || ((p__1.length == 0)))){
path = "AvatarManager.swf";
} else {
path = p__1;
};
progressCallback = null;
completeCallback = null;
isMoneyGame = false;
var l__2:Object = ExternalInterface.call("isMoneyGame");
if (l__2 != null){
isMoneyGame = (l__2.message == 1);
};
}
public function load(p__1:Function, p__2:Function=null){
this.completeCallback = p__1;
this.progressCallback = p__2;
if (isMoneyGame){
moneyLoad();
} else {
simpleLoad();
};
}
private function moneyLoad(){
path = "AvatarManager.swf";
ExternalInterface.addCallback("onSwfProgress", onSwfProgress);
var l__1:Object = ExternalInterface.call("preloadSwf", path);
if (l__1 != null){
loaderId = l__1.message;
};
}
public function onSwfProgress(p__1:int, p__2:int, p__3:String){
if (p__2 < 100){
};
if (p__2 == 100){
path = p__3;
simpleLoad();
} else {
if (p__2 < 0){
};
};
}
private function simpleLoad(){
var l__1:LoaderContext = new LoaderContext();
l__1.applicationDomain = ApplicationDomain.currentDomain;
l__1.securityDomain = (isMoneyGame) ? null : SecurityDomain.currentDomain;
var l__2:URLRequest = new URLRequest(path);
var l__3:Loader = new Loader();
if (((!(isMoneyGame)) && (!((progressCallback == null))))){
l__3.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressCallback);
};
if (completeCallback != null){
l__3.contentLoaderInfo.addEventListener(Event.COMPLETE, completeCallback);
};
l__3.load(l__2, l__1);
}
}
}//package com.midasplayer.avatar
Section 3
//Debug (com.midasplayer.debug.Debug)
package com.midasplayer.debug {
import sandy.view.*;
public class Debug {
private static var s_assertHandler:IAssertHandler = null;
public function Debug(){
super();
}
public static function setAssertHandler(p__1:IAssertHandler):void{
s_assertHandler = p__1;
}
public static function assert(condition:Boolean, message:String):void{
var condition = condition;
var message = message;
if (condition){
return;
};
if (s_assertHandler != null){
s_assertHandler.assert(message);
return;
};
throw (new Error("StackTrace"));
//unresolved jump
var _slot1 = e;
trace(((("Assertion failed: " + message) + "\n") + _slot1.getStackTrace()));
}
}
}//package com.midasplayer.debug
Section 4
//IAssertHandler (com.midasplayer.debug.IAssertHandler)
package com.midasplayer.debug {
public interface IAssertHandler {
function assert(:String):void;
}
}//package com.midasplayer.debug
Section 5
//DebugGameComm (com.midasplayer.gamecomm.DebugGameComm)
package com.midasplayer.gamecomm {
import king.game.uno.view.*;
import com.midasplayer.debug.*;
public class DebugGameComm implements IGameComm {
private var _playDatas:Array;
private var _state:int;// = 0
private var _gameData:String;
private static const _Started:int = 1;
private static const _Ended:int = 2;
private static const _Quited:int = 3;
private static const _NotStarted:int = 0;
public function DebugGameComm(p__1:String){
_playDatas = new Array();
super();
_gameData = p__1;
}
public function getGameData():String{
return (_gameData);
}
public function addPlayData(p__1:String):void{
Debug.assert(!((_state == _NotStarted)), "Trying to add playdata before the game has been started.");
_playDatas.push(p__1);
}
public function gameQuit():void{
Debug.assert((_state == _Ended), "Trying to quit the game before it has been ended.");
}
public function gameEnd(p__1:uint):void{
Debug.assert((_state == _Started), "Trying to end a game that is not in the started state.");
_state = _Ended;
}
public function toString(){
var l__1:* = "";
var l__2:* = 0;
while (l__2 < _playDatas.length) {
l__1 = (l__1 + (("<entry><![CDATA[" + _playDatas[l__2]) + "]]></entry>\n"));
l__2++;
};
return (l__1);
}
public function gameStart():void{
Debug.assert((_state == _NotStarted), "Trying to start the game when it's already started.");
_state = _Started;
}
public function get playDatas():Array{
return (_playDatas);
}
}
}//package com.midasplayer.gamecomm
Section 6
//GameComm (com.midasplayer.gamecomm.GameComm)
package com.midasplayer.gamecomm {
import com.midasplayer.debug.*;
import king.util.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
public class GameComm implements IGameComm {
private var _state:int;// = 0
private static const _Quitted:int = 3;
private static const _Started:int = 1;
private static const _Ended:int = 2;
private static const _NotStarted:int = 0;
public function GameComm(){
super();
}
public function addPlayData(p__1:String):void{
Debug.assert(!((_state == _NotStarted)), "Trying to add playdata before the game has been started.");
ExternalInterface.call("playData", p__1);
}
public function gameQuit():void{
Debug.assert((_state == _Ended), "Quitting the game before it has been ended.");
setTimeout(_quit, 2000);
_state = _Quitted;
}
public function gameEnd(p__1:uint):void{
Debug.assert((_state == _Started), "Trying to end a game that is not in the started state.");
fscommand("gameEnd", ("" + p__1));
_state = _Ended;
}
private function _quit():void{
fscommand("gameQuit", "");
}
public function gameStart():void{
Debug.assert((_state == _NotStarted), "Trying to start the game when it's already started.");
fscommand("gameStart", "");
_state = _Started;
}
public function getGameData():String{
var l__1:Object = ExternalInterface.call("getGameData");
if (l__1 == null){
throw (new Error("The getGameData external interface call returned null."));
};
if (l__1.success == false){
throw (new Error("The getGameData returned object is not success."));
};
if (l__1.message == null){
throw (new Error("The GameData returned object has a null message."));
};
return (l__1.message);
}
public static function isAvailable():Boolean{
return (false);
}
}
}//package com.midasplayer.gamecomm
Section 7
//GameData (com.midasplayer.gamecomm.GameData)
package com.midasplayer.gamecomm {
import com.midasplayer.debug.*;
public class GameData {
private var _seed:int;// = 0
private var _textElements:XMLList;
private var _gameData:XML;
public function GameData(p__1:String){
super();
Debug.assert(!((p__1 == null)), "Could not parse the game data, the xml parameter is null.");
_gameData = new XML(p__1);
Debug.assert((_gameData.length() == 1), "The game data XML should only have 1 root child.");
_seed = parseInt(_gameData.attribute("randomseed"));
Debug.assert(!((_seed == 0)), "The game data randomseed attribute is 0, this may result in complete randomness.");
_textElements = _gameData.child("text");
}
public function getText(id:String, ... _args):String{
var texts:XMLList;
var os:String;
var i:int;
var r:RegExp;
var id = id;
var args = _args;
texts = _textElements.(@id == id);
Debug.assert((texts.length() == 1), (("Could not find the text element (or found more than 1) with attribute id '" + id) + "' in the game data."));
os = texts.text();
if (args.length > 0){
i = 0;
while (i < args.length) {
r = new RegExp((("\\{" + i) + "\\}"), "gi");
os = os.replace(r, args[i]);
i = (i + 1);
};
};
return (os);
}
public function getElementTextAsInt(p__1:String):int{
var l__2:XMLList;
l__2 = _getOneElement(p__1);
var l__3:Number = parseInt(l__2.text());
Debug.assert(!(isNaN(l__3)), ((("Could not parse a game data property as int '" + p__1) + "' value: ") + l__2.text()));
return (int(l__3));
}
private function _getOneElement(p__1:String):XMLList{
var l__2:XMLList = _gameData.child(p__1);
Debug.assert((l__2.length() == 1), (("Could not find the element (or found more than 1) with the name '" + p__1) + "' in the game data."));
return (l__2);
}
public function getElementTextAsBool(p__1:String):Boolean{
var l__2:String = getElementTextAsString(p__1).toLowerCase();
Debug.assert((((((((l__2 == "0")) || ((l__2 == "1")))) || ((l__2 == "false")))) || ((l__2 == "true"))), ((("Could not parse a boolean, the value should be 'true', 'false', '0' or '1'. Element: " + p__1) + ", value: ") + l__2));
return ((((l__2 == "true")) || ((l__2 == "1"))));
}
public function get randomSeed():int{
return (_seed);
}
public function getElementTextAsString(p__1:String):String{
return (_getOneElement(p__1).text());
}
public function getTexts():Object{
var l__1:Object = new Object();
var l__2:* = 0;
while (l__2 < _textElements.length()) {
l__1[_textElements[l__2].@id] = _textElements[l__2];
l__2++;
};
return (l__1);
}
}
}//package com.midasplayer.gamecomm
Section 8
//IGameComm (com.midasplayer.gamecomm.IGameComm)
package com.midasplayer.gamecomm {
public interface IGameComm {
function gameStart():void;
function gameQuit():void;
function getGameData():String;
function gameEnd(D:\convert\uno;com\midasplayer\gamecomm;IGameComm.as:uint):void;
function addPlayData(D:\convert\uno;com\midasplayer\gamecomm;IGameComm.as:String):void;
}
}//package com.midasplayer.gamecomm
Section 9
//I18n (com.midasplayer.text.I18n)
package com.midasplayer.text {
import king.game.uno.*;
public class I18n {
private static var m_strings:Object;
public function I18n(){
super();
}
public static function init(p__1:Object):void{
var l__2:String;
m_strings = new Object();
for (l__2 in p__1) {
m_strings[l__2] = p__1[l__2];
};
}
public static function getString(p__1:String, ... _args):String{
var l__3:String;
var l__4:int;
var l__5:RegExp;
if (m_strings[p__1] != undefined){
l__3 = m_strings[p__1];
if (_args.length > 0){
l__4 = 0;
while (l__4 < _args.length) {
l__5 = new RegExp((("\\{" + l__4) + "\\}"), "gi");
l__3 = l__3.replace(l__5, _args[l__4]);
l__4++;
};
};
return (l__3);
};
return ((("{" + p__1) + "}"));
}
}
}//package com.midasplayer.text
Section 10
//ActionCardAnim (king.game.uno.anim.ActionCardAnim)
package king.game.uno.anim {
import flash.display.*;
import king.util.*;
public class ActionCardAnim extends Anim {
private var parentClip_:MovieClip;
private var clip_:MovieClip;
private var ox;
private var nx:Number;
private var ny:Number;
private var numTicks_:int;
private var oy;
public function ActionCardAnim(p__1:MovieClip, p__2:MovieClip, p__3:int){
super();
clip_ = p__1;
parentClip_ = p__2;
numTicks_ = p__3;
ox = (nx = (p__1.x = 800));
oy = (ny = (p__1.y = 224));
parentClip_.addChild(p__1);
}
override public function end():void{
parentClip_.removeChild(clip_);
}
override public function render(p__1:Number):void{
clip_.x = (ox + ((nx - ox) * p__1));
}
override public function tick(p__1:Number):Boolean{
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, numTicks_);
var l__3:* = AnimPlayer.tickToPercent(l__2, 0, 0.3);
var l__4:* = AnimPlayer.tickToPercent(l__2, 0.3, 0.4);
var l__5:* = AnimPlayer.tickToPercent(l__2, 0.7, 0.3);
ox = nx;
if (l__3 < 1){
nx = (240 + ((800 - 240) * AnimPlayer.easeInBack((1 - l__3), 0, 1, 1, 1.1)));
} else {
if (l__4 < 1){
nx = 240;
} else {
nx = (240 - ((200 + 1000) * AnimPlayer.easeOutQuad(l__5, 0, 1, 1)));
};
};
return ((p__1 == numTicks_));
}
}
}//package king.game.uno.anim
Section 11
//DealAnim (king.game.uno.anim.DealAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.events.*;
import king.util.*;
public class DealAnim extends Anim {
private var dealerView_:DealerView;
private var rule_:Rule;
private var gameView_:GameView;
private var numCards_:int;
private var card_:CardView;
private var cardNum_:int;
private var delay_:int;
public function DealAnim(p__1:CardView, p__2:int, p__3:Rule, p__4:DealerView, p__5:GameView, p__6:int=0, p__7:int=1){
super();
card_ = p__1;
delay_ = p__2;
rule_ = p__3;
dealerView_ = p__4;
gameView_ = p__5;
cardNum_ = p__6;
numCards_ = p__7;
var l__8:Number = -700;
var l__9:Number = 50;
var l__10:Number = -100;
var l__11:Number = -90;
var l__12:Number = 10;
var l__13:Number = 360;
card_.ox = (card_.nx = l__8);
card_.ny = (card_.ny = l__9);
card_.nz = (card_.nz = l__10);
card_.oTilt = (card_.nTilt = l__11);
card_.oPan = (card_.nPan = l__12);
card_.oRoll = (card_.nRoll = l__13);
card_.dealTime = 0;
card_.throwTime = 0;
card_.showTime = 0;
card_.setIsThrowing(false);
card_.resetCoords();
p__1.mouseOver = false;
p__1.mouseOverTime = 0;
p__1.throwTime = 0;
p__1.forcedDepth = -(card_.getCard().getId());
p__1.enableForcedDepth = true;
}
override public function render(p__1:Number):void{
}
override public function end():void{
if (rule_ != null){
rule_.reply();
};
dealerView_.dealAnimDone();
}
override public function tick(p__1:Number):Boolean{
if (p__1 < delay_){
return (false);
};
if (p__1 == delay_){
if (cardNum_ == 0){
gameView_.dealingCards(card_, numCards_);
};
};
if (card_.dealTime < 1){
card_.dealTime = (card_.dealTime + 0.025);
};
if (card_.dealTime >= 1){
return (true);
};
return (false);
}
}
}//package king.game.uno.anim
Section 12
//DealerAnim (king.game.uno.anim.DealerAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import flash.geom.*;
import king.util.*;
public class DealerAnim extends Anim {
private var dealerView_:DealerView;
private var showLeftInPileTicks_:int;// = -1
private var dealAnims_:Array;
private var animPlayer_:AnimPlayer;
private var gameView_:GameView;
private var deck_:Deck;// = null
private var dealDelay:int;// = 0
public function DealerAnim(p__1:GameView, p__2:DealerView){
super();
gameView_ = p__1;
dealerView_ = p__2;
animPlayer_ = gameView_.getAnimPlayer();
dealAnims_ = new Array();
}
public function takeCardsFromTable(p__1:Rule){
gameView_.clearStackBimap(p__1.getNum());
animPlayer_.addAnim(new TakeCardsFromTableAnim(gameView_, p__1));
}
public function setDeck(p__1:Deck){
deck_ = p__1;
}
public function showLeftInPile(){
showLeftInPileTicks_ = 10;
}
public function takeCards(p__1:Player, p__2:Array, p__3:Rule){
var l__5:Card;
var l__6:int;
var l__7:CardView;
var l__8:Boolean;
var l__9:Anim;
var l__4:int;
while (l__4 < p__2.length) {
l__5 = p__2[l__4];
l__6 = l__5.getId();
l__7 = gameView_.getCardById(l__6);
l__7.enableEvents = false;
l__8 = (l__4 == (p__2.length - 1));
if (p__1 != null){
l__9 = new TakeAnim(l__7, dealDelay, (l__8) ? p__3 : null, dealerView_);
} else {
l__9 = new DealToTableAnim(gameView_, l__7, (l__8) ? p__3 : null, dealerView_);
};
animPlayer_.addAnim(l__9);
dealAnims_.push(l__9);
dealDelay = (dealDelay + 2);
l__4++;
};
if ((((p__2.length == 0)) && (!((p__3 == null))))){
p__3.reply();
};
dealDelay = (dealDelay + 5);
}
override public function tick(p__1:Number):Boolean{
if (dealDelay > 0){
dealDelay--;
};
if (showLeftInPileTicks_ > 0){
showLeftInPileTicks_--;
};
if (showLeftInPileTicks_ == 0){
dealerView_.showLeftInPile(true);
showLeftInPileTicks_ = -1;
};
return (false);
}
public function dealCards(p__1:Player, p__2:Array, p__3:Rule){
var l__5:Card;
var l__6:int;
var l__7:CardView;
var l__8:Boolean;
var l__9:Anim;
var l__4:int;
while (l__4 < p__2.length) {
l__5 = p__2[l__4];
l__6 = l__5.getId();
l__7 = gameView_.getCardById(l__6);
l__8 = (l__4 == (p__2.length - 1));
if (p__1 != null){
l__9 = new DealAnim(l__7, dealDelay, (l__8) ? p__3 : null, dealerView_, gameView_, l__4, p__2.length);
} else {
l__9 = new DealToTableAnim(gameView_, l__7, (l__8) ? p__3 : null, dealerView_);
};
animPlayer_.addAnim(l__9);
dealAnims_.push(l__9);
dealDelay = (dealDelay + 5);
l__4++;
};
dealDelay = (dealDelay + 10);
}
}
}//package king.game.uno.anim
Section 13
//DealToTableAnim (king.game.uno.anim.DealToTableAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
import king.math.*;
public class DealToTableAnim extends Anim {
private var x1;
private var dealerView_:DealerView;
private var pan1;
private var gameView_:GameView;
private var x2;
private var random_:MtRandom;
private var card_:CardView;
private var tilt1;
private var roll2:Number;
private var y1;
private var y2;
private var roll1:Number;
private var dy:Number;
private var rule_:Rule;
private var tilt2;
private var hasChangedDepth:Boolean;// = false
private var pan2;
private var z1;
private var animDuration_:Number;
private var newDepth_:int;
private var z2;
public function DealToTableAnim(p__1:GameView, p__2:CardView, p__3:Rule, p__4:DealerView){
var l__5:Number;
var l__6:Number;
var l__7:Number;
super();
gameView_ = p__1;
card_ = p__2;
rule_ = p__3;
dealerView_ = p__4;
p__2.visible = true;
card_.showTime = 0;
card_.setIsThrowing(true);
random_ = new MtRandom(gameView_.getGame().getSeed());
l__5 = -700;
l__6 = 50;
l__7 = -100;
var l__8:Number = -90;
var l__9:Number = 10;
var l__10:Number = 360;
p__2.ox = (p__2.nx = l__5);
p__2.oy = (p__2.ny = l__6);
p__2.oz = (p__2.nz = l__7);
p__2.oTilt = (p__2.nTilt = l__8);
p__2.oPan = (p__2.nPan = l__9);
p__2.oRoll = (p__2.nRoll = l__10);
x1 = l__5;
y1 = l__6;
z1 = l__7;
tilt1 = l__8;
pan1 = l__9;
roll1 = l__10;
x2 = ((0 + (random_.nextDouble() * 20)) - 10);
y2 = (0 + (gameView_.getGame().getDiscardPile().size() * 0.1));
z2 = ((20 + (random_.nextDouble() * 20)) - 5);
tilt2 = -90;
pan2 = 180;
roll2 = (((random_.nextDouble() * 60) - 30) - 180);
dy = 20;
animDuration_ = (40 + random_.nextInt(10));
newDepth_ = (10000 - gameView_.getGame().getDiscardPile().size());
}
override public function render(p__1:Number):void{
}
override public function end():void{
gameView_.cardPlayed(null, card_);
dealerView_.dealAnimDone();
if (rule_ != null){
rule_.reply();
};
}
override public function tick(p__1:Number):Boolean{
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, animDuration_);
var l__3:Number = AnimPlayer.tickToPercent(p__1, (animDuration_ - 12), 12);
var l__4:Number = AnimPlayer.easeOutQuad(l__2, 0, 1, 1);
var l__5:Number = ((l__4 - 0.5) * 2);
l__5 = (1 - (l__5 * l__5));
card_.throwTime = l__2;
card_.resetCoords();
card_.nx = (x1 + (l__4 * (x2 - x1)));
card_.ny = ((y1 + (l__4 * (y2 - y1))) + (dy * l__5));
card_.nz = (z1 + (l__4 * (z2 - z1)));
card_.nTilt = (tilt1 + (l__4 * (tilt2 - tilt1)));
card_.nPan = (pan1 + (l__3 * (pan2 - pan1)));
card_.nRoll = (roll1 + (l__4 * (roll2 - roll1)));
if (l__2 > 0.6){
hasChangedDepth = true;
card_.forcedDepth = newDepth_;
card_.enableForcedDepth = true;
card_.changed = true;
};
return ((p__1 == (animDuration_ + 1)));
}
}
}//package king.game.uno.anim
Section 14
//DelayAnim (king.game.uno.anim.DelayAnim)
package king.game.uno.anim {
import sandy.core.scenegraph.*;
import king.util.*;
public class DelayAnim extends Anim {
private var callBackFunction_:Function;
private var numTicks_:int;
public function DelayAnim(p__1:int, p__2:Function){
super();
numTicks_ = p__1;
callBackFunction_ = p__2;
}
override public function end():void{
callBackFunction_.apply();
}
override public function tick(p__1:Number):Boolean{
return ((p__1 == numTicks_));
}
}
}//package king.game.uno.anim
Section 15
//HandAnim (king.game.uno.anim.HandAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import flash.display.*;
import king.util.*;
public class HandAnim extends Anim {
protected var numCards_:int;
protected var gameView_:GameView;
public var changeDepth:Boolean;// = false
public var sortByIndex:Boolean;// = false
protected var player_:Player;
public function HandAnim(p__1:GameView, p__2:Player){
super();
gameView_ = p__1;
player_ = p__2;
numCards_ = 0;
}
public function getRoll(p__1:CardView, p__2:Number):Number{
return ((30 - (60 * p__2)));
}
public function getY(p__1:CardView, p__2:Number):Number{
var l__3:Number = (p__2 - 0.5);
return ((-100 - ((l__3 * l__3) * 400)));
}
public function getPan(p__1:CardView, p__2:Number):Number{
return (0);
}
public function getX(p__1:CardView, p__2:Number):Number{
return ((-190 + (380 * p__2)));
}
public function playCard(p__1:int):void{
}
override public function tick(p__1:Number):Boolean{
var l__13:Number;
var l__14:Number;
var l__22:Number;
var l__23:Number;
var l__24:Number;
var l__25:Number;
var l__26:Number;
var l__27:Number;
var l__3:CardView;
var l__4:CardView;
var l__11:int;
var l__15:* = undefined;
var l__16:* = undefined;
var l__17:* = undefined;
var l__18:* = undefined;
var l__19:* = undefined;
var l__20:* = undefined;
var l__21:* = undefined;
var l__28:* = undefined;
var l__29:* = undefined;
var l__30:* = undefined;
var l__31:* = undefined;
var l__2:Hand = player_.getHand();
var l__5:Array = l__2.getCards();
var l__6:int = l__2.size();
var l__7:Number = 0;
var l__8:Number = 0;
var l__9:Number = 1;
var l__10:Number = 0;
l__11 = 0;
while (l__11 < l__6) {
l__3 = gameView_.getCardById(l__5[l__11].getId());
if (((l__3.mouseOver) && ((l__3.mouseOverTime < 10)))){
l__3.mouseOverTime = (l__3.mouseOverTime + 2);
if (l__3.mouseOverTime > 10){
l__3.mouseOverTime = 10;
};
} else {
if (((!(l__3.mouseOver)) && ((l__3.mouseOverTime > 0)))){
l__3.mouseOverTime = (l__3.mouseOverTime - 0.8);
if (l__3.mouseOverTime < 0){
l__3.mouseOverTime = 0;
};
};
};
l__11++;
};
var l__12:Number = 0;
l__11 = 0;
while (l__11 < l__6) {
l__3 = gameView_.getCardById(l__5[l__11].getId());
l__10 = (l__12 * l__3.getPercentInHand());
l__8 = (l__8 + l__10);
l__12 = (l__12 - l__10);
l__12 = (l__12 + l__3.getWantedSpace());
l__11++;
};
l__9 = 1;
if (l__8 > 1){
l__9 = (1 / l__8);
};
numCards_ = 0;
l__4 = null;
l__8 = 0;
l__12 = 0;
l__11 = (l__6 - 1);
while (l__11 >= 0) {
l__3 = gameView_.getCardById(l__5[l__11].getId());
l__10 = (l__12 * l__3.getPercentInHand());
l__8 = (l__8 + l__10);
l__12 = (l__12 - l__10);
l__13 = (l__3.getWantedSpace() * l__9);
l__3.dt = l__10;
l__14 = l__3.mouseOverTime;
l__14 = (((0.15 - l__13) * l__14) / 10);
l__13 = (l__13 + l__14);
l__12 = (l__12 + l__13);
l__11--;
};
l__9 = 1;
if (l__8 > 1){
l__9 = (1 / l__8);
};
l__7 = (0.5 - ((l__8 * l__9) * 0.5));
l__11 = 0;
while (l__11 < l__6) {
l__3 = gameView_.getCardById(l__5[l__11].getId());
l__15 = getX(l__3, l__7);
l__16 = getY(l__3, l__7);
l__17 = getZ(l__3, l__7);
l__18 = getTilt(l__3, l__7);
l__19 = getPan(l__3, l__7);
l__20 = getRoll(l__3, l__7);
if (l__3.dealTime <= 1){
l__3.resetCoords();
l__21 = l__3.dealTime;
l__22 = -700;
l__23 = 50;
l__24 = -100;
l__25 = -90;
l__26 = 10;
l__27 = 360;
l__28 = AnimPlayer.easeInOutQuad(l__3.dealTime, 0, 1, 1);
l__3.nx = (l__22 + (l__28 * (l__15 - l__22)));
l__3.ny = (l__23 + (l__28 * (l__16 - l__23)));
l__3.nz = (l__24 + (l__28 * (l__17 - l__24)));
l__3.nTilt = (l__25 + (l__21 * (l__18 - l__25)));
l__3.nPan = (l__26 + (l__21 * (l__19 - l__26)));
l__3.nRoll = (l__27 + ((1 - ((1 - l__21) * (1 - l__21))) * (l__20 - l__27)));
};
if ((((l__3.dealTime >= 1)) && ((l__3.throwTime < 1)))){
numCards_++;
};
if (l__3.isInHand()){
l__3.resetCoords();
l__29 = l__15;
l__30 = (l__16 + 600);
l__31 = Math.sqrt(((l__29 * l__29) + (l__30 * l__30)));
l__16 = (l__16 + (((l__30 / l__31) * 30) * (l__3.mouseOverTime / 10)));
l__15 = (l__15 + (((l__29 / l__31) * 10) * (l__3.mouseOverTime / 10)));
l__3.nx = l__15;
l__3.ny = l__16;
l__3.nz = l__17;
l__3.nTilt = l__18;
l__3.nPan = l__19;
l__3.nRoll = l__20;
};
if (((sortByIndex) && ((l__3.throwTime == 0)))){
l__3.enableForcedDepth = true;
l__3.forcedDepth = l__11;
l__3.changed = true;
};
if (((changeDepth) && ((l__3.throwTime == 0)))){
l__3.enableForcedDepth = true;
l__3.forcedDepth = l__3.z;
l__3.changed = true;
};
l__7 = (l__7 + (l__3.dt * l__9));
l__11++;
};
return (false);
}
public function getZ(p__1:CardView, p__2:Number):Number{
return (-80);
}
public function getTilt(p__1:CardView, p__2:Number):Number{
return (50);
}
}
}//package king.game.uno.anim
Section 16
//HandAnimBotLeft (king.game.uno.anim.HandAnimBotLeft)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
import king.math.*;
public class HandAnimBotLeft extends HandAnim {
private var mouseOverCards:Array;
private var mouseOverTimes:Array;
private var mouseOverClick:Array;
private var random_:MtRandom;
public function HandAnimBotLeft(p__1:GameView, p__2:Player){
super(p__1, p__2);
sortByIndex = true;
mouseOverCards = new Array();
mouseOverTimes = new Array();
mouseOverClick = new Array();
random_ = new MtRandom((gameView_.getGame().getSeed() + player_.getId()));
}
override public function getX(p__1:CardView, p__2:Number):Number{
var l__3:* = (-332 + (155 * p__2));
var l__4:* = (-350 + (200 * p__2));
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getY(p__1:CardView, p__2:Number):Number{
var l__3:* = ((-210 - 7) - ((p__2 - 0.1) * 65));
var l__4:* = -30;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getZ(p__1:CardView, p__2:Number):Number{
var l__3:Number = ((p__2 - 0.5) * 2);
var l__4:* = ((500 + (50 * (l__3 * l__3))) + ((p__2 - 0.3) * 150));
var l__5:* = 400;
var l__6:* = (l__4 + ((l__5 - l__4) * p__1.showTime));
return (l__6);
}
override public function playCard(p__1:int):void{
var l__3:CardView;
var l__6:int;
var l__2:Hand = player_.getHand();
var l__4:Array = l__2.getCards();
var l__5:int = l__2.size();
var l__7:* = Math.min(random_.nextInt(4), l__5);
l__6 = 0;
while (l__6 < l__7) {
mouseOverCards.push(gameView_.getCardById(l__4[random_.nextInt(l__5)].getId()));
mouseOverTimes.push((random_.nextInt(7) + 1));
mouseOverClick.push(0);
l__6++;
};
mouseOverCards.push(gameView_.getCardById(p__1));
mouseOverTimes.push((random_.nextInt(7) + 1));
mouseOverClick.push(1);
}
override public function getPan(p__1:CardView, p__2:Number):Number{
var l__3:* = (180 - (110 * (p__2 - 0.25)));
var l__4:* = 0;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getTilt(p__1:CardView, p__2:Number):Number{
var l__3:* = (-11 - (5 * (p__2 - 0.25)));
var l__4:* = 50;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getRoll(p__1:CardView, p__2:Number):Number{
var l__3:* = (5 + (10 * (p__2 - 0.3)));
var l__4:* = 0;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function render(p__1:Number):void{
super.render(p__1);
var l__2:* = numCards_;
if (l__2 == 0){
l__2 = "";
};
if (gameView_.getPlayClip().station_left.numcards.text != l__2){
gameView_.getPlayClip().station_left.numcards.text = l__2;
};
}
override public function tick(p__1:Number):Boolean{
var l__6:Number;
var l__7:Boolean;
var l__3:CardView;
var l__8:int;
var l__2:Hand = player_.getHand();
var l__4:Array = l__2.getCards();
var l__5:int = l__2.size();
if (mouseOverCards.length > 0){
l__3 = mouseOverCards[0];
l__6 = mouseOverTimes[0];
l__7 = (mouseOverClick[0] == 1);
if (l__6 == 0){
l__3.mouseOver = false;
if (l__7){
gameView_.cardClicked(l__3);
};
mouseOverCards.shift();
mouseOverTimes.shift();
mouseOverClick.shift();
} else {
l__6--;
l__3.mouseOver = true;
mouseOverTimes[0] = l__6;
};
};
return (super.tick(p__1));
}
}
}//package king.game.uno.anim
Section 17
//HandAnimBotRight (king.game.uno.anim.HandAnimBotRight)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
import king.math.*;
public class HandAnimBotRight extends HandAnim {
private var mouseOverCards:Array;
private var mouseOverTimes:Array;
private var mouseOverClick:Array;
private var random_:MtRandom;
public function HandAnimBotRight(p__1:GameView, p__2:Player){
super(p__1, p__2);
sortByIndex = true;
mouseOverCards = new Array();
mouseOverTimes = new Array();
mouseOverClick = new Array();
random_ = new MtRandom((gameView_.getGame().getSeed() + player_.getId()));
}
override public function getX(p__1:CardView, p__2:Number):Number{
var l__3:* = (347 - (155 * p__2));
var l__4:* = (350 - (200 * p__2));
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getY(p__1:CardView, p__2:Number):Number{
var l__3:* = ((-210 - 10) - ((p__2 - 0.1) * 69));
var l__4:* = -30;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getZ(p__1:CardView, p__2:Number):Number{
var l__3:Number = ((p__2 - 0.5) * 2);
var l__4:* = ((500 + (50 * (l__3 * l__3))) + ((p__2 - 0.3) * 150));
var l__5:* = 400;
var l__6:* = (l__4 + ((l__5 - l__4) * p__1.showTime));
return (l__6);
}
override public function playCard(p__1:int):void{
var l__3:CardView;
var l__6:int;
var l__2:Hand = player_.getHand();
var l__4:Array = l__2.getCards();
var l__5:int = l__2.size();
var l__7:* = Math.min(random_.nextInt(4), l__5);
l__6 = 0;
while (l__6 < l__7) {
mouseOverCards.push(gameView_.getCardById(l__4[random_.nextInt(l__5)].getId()));
mouseOverTimes.push((random_.nextInt(7) + 1));
mouseOverClick.push(0);
l__6++;
};
mouseOverCards.push(gameView_.getCardById(p__1));
mouseOverTimes.push((random_.nextInt(7) + 1));
mouseOverClick.push(1);
}
override public function getPan(p__1:CardView, p__2:Number):Number{
var l__3:* = (180 + (110 * (p__2 - 0.25)));
var l__4:* = 0;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getTilt(p__1:CardView, p__2:Number):Number{
var l__3:* = (-11 - (5 * (p__2 - 0.25)));
var l__4:* = 50;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function getRoll(p__1:CardView, p__2:Number):Number{
var l__3:* = (-5 - (10 * (p__2 - 0.3)));
var l__4:* = 0;
var l__5:* = (l__3 + ((l__4 - l__3) * p__1.showTime));
return (l__5);
}
override public function render(p__1:Number):void{
super.render(p__1);
var l__2:* = numCards_;
if (l__2 == 0){
l__2 = "";
};
if (gameView_.getPlayClip().station_right.numcards.text != l__2){
gameView_.getPlayClip().station_right.numcards.text = l__2;
};
}
override public function tick(p__1:Number):Boolean{
var l__3:Number;
var l__4:Boolean;
var l__2:CardView;
if (mouseOverCards.length > 0){
l__2 = mouseOverCards[0];
l__3 = mouseOverTimes[0];
l__4 = (mouseOverClick[0] == 1);
if (l__3 == 0){
l__2.mouseOver = false;
if (l__4){
gameView_.cardClicked(l__2);
};
mouseOverCards.shift();
mouseOverTimes.shift();
mouseOverClick.shift();
} else {
l__3--;
l__2.mouseOver = true;
mouseOverTimes[0] = l__3;
};
};
return (super.tick(p__1));
}
}
}//package king.game.uno.anim
Section 18
//HandAnimLocal (king.game.uno.anim.HandAnimLocal)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
public class HandAnimLocal extends HandAnim {
public function HandAnimLocal(p__1:GameView, p__2:Player){
super(p__1, p__2);
}
override public function playCard(p__1:int):void{
gameView_.cardClicked(gameView_.getCardById(p__1));
}
override public function render(p__1:Number):void{
super.render(p__1);
var l__2:* = numCards_;
if (l__2 == 0){
l__2 = "";
};
if (gameView_.getPlayClip().numcards.text != l__2){
gameView_.getPlayClip().numcards.text = l__2;
};
}
}
}//package king.game.uno.anim
Section 19
//HandToTableAnim (king.game.uno.anim.HandToTableAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.events.*;
import king.util.*;
import king.math.*;
public class HandToTableAnim extends Anim {
private var x1;
private var x2;
private var newDepth_:int;
private var z2;
private var gameView_:GameView;
private var card_:CardView;
private var tilt1;
private var roll2:Number;
private var pan1;
private var y1;
private var y2;
private var roll1:Number;
private var dy:Number;
private var tilt2;
private var player_:Player;
private var hasChangedDepth:Boolean;// = false
private var pan2;
private var animDuration_:Number;
private var random_:MtRandom;
private var z1;
public function HandToTableAnim(p__1:GameView, p__2:Player, p__3:CardView){
super();
gameView_ = p__1;
player_ = p__2;
card_ = p__3;
card_.setIsThrowing(true);
random_ = new MtRandom((gameView_.getGame().getSeed() + p__3.getId()));
x1 = card_.nx;
y1 = card_.ny;
z1 = card_.nz;
tilt1 = p__3.nTilt;
pan1 = p__3.nPan;
roll1 = p__3.nRoll;
x2 = ((0 + (random_.nextDouble() * 20)) - 10);
y2 = (0 + (gameView_.getGame().getDiscardPile().size() * 0.1));
z2 = ((20 + (random_.nextDouble() * 20)) - 5);
if (p__2.isLocalPlayer()){
x2 = ((0 + (random_.nextDouble() * 50)) - 25);
tilt2 = 90;
pan2 = 0;
roll2 = ((random_.nextDouble() * 60) - 30);
dy = (130 + random_.nextInt(40));
animDuration_ = (16 + random_.nextInt(2));
} else {
tilt2 = -90;
pan2 = 180;
dy = (180 + random_.nextInt(30));
animDuration_ = (18 + random_.nextInt(2));
if (p__2.getName() == "bot1"){
roll2 = ((90 - 10) - (random_.nextDouble() * 80));
} else {
roll2 = ((-90 + 10) + (random_.nextDouble() * 80));
};
};
newDepth_ = (10000 - gameView_.getGame().getDiscardPile().size());
}
override public function render(p__1:Number):void{
}
override public function tick(p__1:Number):Boolean{
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, animDuration_);
var l__3:Number = AnimPlayer.easeInOutQuart(l__2, 0, 1, 1);
var l__4:Number = AnimPlayer.easeInQuad(l__2, 0, 1, 1);
var l__5:Number = AnimPlayer.easeInQuart(l__2, 0, 1, 1);
var l__6:Number = AnimPlayer.easeInOutQuint(l__2, 0, 1, 1);
var l__7:Number = ((l__4 - 0.5) * 2);
l__7 = (1 - (l__7 * l__7));
card_.throwTime = l__2;
card_.resetCoords();
card_.nx = (x1 + (l__6 * (x2 - x1)));
card_.ny = ((y1 + (l__3 * (y2 - y1))) + (dy * l__7));
card_.nz = (z1 + (l__3 * (z2 - z1)));
card_.nTilt = (tilt1 + (l__3 * (tilt2 - tilt1)));
card_.nPan = (pan1 + (l__3 * (pan2 - pan1)));
card_.nRoll = (roll1 + (l__5 * (roll2 - roll1)));
if (l__2 > 0.6){
hasChangedDepth = true;
card_.forcedDepth = newDepth_;
card_.enableForcedDepth = true;
card_.changed = true;
};
return ((p__1 == animDuration_));
}
override public function end():void{
gameView_.cardPlayed(player_, card_);
}
}
}//package king.game.uno.anim
Section 20
//NextPlayerAnim (king.game.uno.anim.NextPlayerAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import flash.display.*;
import king.util.*;
import sandy.core.interaction.*;
public class NextPlayerAnim extends Anim {
private var numClips_:int;
private var ndy_:Array;
private var gameView_:GameView;
private var oldY_:Array;
private var ody_:Array;
private var clips_:Array;
private var player_:Player;
private var rule_:Rule;
private var maxDy_:Array;
private var animTicks_:Number;
private var t_:Array;
private var animDelay_:Number;
private var playerView_:PlayerView;
public function NextPlayerAnim(p__1:GameView, p__2:Rule, p__3:PlayerView){
var l__10:int;
var l__8:* = undefined;
var l__9:* = undefined;
super();
player_ = p__2.getPlayer();
gameView_ = p__1;
rule_ = p__2;
playerView_ = p__3;
var l__4:* = player_.getId();
var l__5:* = p__2.getNum();
var l__6:* = 0;
if ((l__5 + l__4) == 1){
l__6 = 1;
} else {
if ((l__5 + l__4) == 3){
l__6 = 2;
} else {
if ((l__5 + l__4) == 2){
l__6 = 3;
};
};
};
var l__7:* = (l__4 - l__5);
if (l__7 == -2){
l__7 = 1;
};
if (l__7 == 2){
l__7 = -1;
};
l__8 = gameView_.getPlayClip().getChildByName(("stones" + l__6));
clips_ = new Array();
oldY_ = new Array();
maxDy_ = new Array();
ody_ = new Array();
ndy_ = new Array();
t_ = new Array();
if (l__7 > 0){
l__10 = 0;
while (l__10 < 11) {
l__9 = l__8.getChildByName(("stone" + (l__10 + 1)));
if (l__9 != null){
clips_.push(l__9);
oldY_.push(l__9.y);
maxDy_.push(((0.5 * 2) + 5));
ody_.push(0);
ndy_.push(0);
t_.push(0);
};
l__10++;
};
} else {
if (l__7 < 0){
l__10 = 10;
while (l__10 >= 0) {
l__9 = l__8.getChildByName(("stone" + (l__10 + 1)));
if (l__9 != null){
clips_.push(l__9);
oldY_.push(l__9.y);
maxDy_.push(((0.5 * 2) + 5));
ody_.push(0);
ndy_.push(0);
t_.push(0);
};
l__10--;
};
};
};
numClips_ = clips_.length;
animTicks_ = (8 - (numClips_ * 0.08));
animDelay_ = (2.2 - (numClips_ * 0.03));
}
override public function tick(p__1:Number):Boolean{
var l__4:* = undefined;
var l__5:* = undefined;
var l__6:* = undefined;
var l__7:* = undefined;
var l__8:* = undefined;
var l__2:* = true;
var l__3:* = 0;
while (l__3 < numClips_) {
l__4 = maxDy_[l__3];
l__5 = AnimPlayer.tickToPercent(p__1, (animDelay_ * l__3), animTicks_);
l__6 = AnimPlayer.tickToPercent(l__5, 0, 0.4);
l__7 = AnimPlayer.tickToPercent(l__5, 0.4, 0.6);
l__8 = (l__4 * (AnimPlayer.easeOutCubic(l__6, 0, 1, 1) - AnimPlayer.easeInOutQuad(l__7, 0, 1, 1)));
ody_[l__3] = ndy_[l__3];
ndy_[l__3] = l__8;
t_[l__3] = l__5;
if ((((((l__5 == 1)) && ((l__3 >= 2)))) && (!((rule_ == null))))){
rule_ = null;
playerView_.turnToActDone();
};
if (l__5 < 1){
l__2 = false;
};
l__3++;
};
return (l__2);
}
override public function end():void{
if (rule_ != null){
playerView_.turnToActDone();
};
}
override public function render(p__1:Number):void{
var l__3:MovieClip;
var l__4:* = undefined;
var l__5:* = undefined;
var l__2:* = 0;
while (l__2 < numClips_) {
l__3 = clips_[l__2];
l__4 = t_[l__2];
l__5 = (ody_[l__2] + ((ndy_[l__2] - ody_[l__2]) * p__1));
l__3.y = (oldY_[l__2] + l__5);
if ((((l__4 > 0)) && ((l__4 < 1)))){
l__3.gotoAndStop(2);
} else {
l__3.gotoAndStop(1);
};
l__2++;
};
}
}
}//package king.game.uno.anim
Section 21
//PlayFramesAnim (king.game.uno.anim.PlayFramesAnim)
package king.game.uno.anim {
import king.game.uno.*;
import sandy.core.scenegraph.*;
import flash.display.*;
import king.util.*;
public class PlayFramesAnim extends Anim {
private var nt_:Number;
private var rule_:Rule;// = null
private var doLog_:Boolean;// = false
private var clip_:MovieClip;
private var stopped_:Boolean;// = false
private var ot_:Number;
private var loop_:Boolean;
private var segments_:Segments;
public function PlayFramesAnim(p__1:MovieClip, p__2:Segments, p__3:Boolean=false, p__4=false){
super();
clip_ = p__1;
loop_ = p__3;
segments_ = p__2;
ot_ = (nt_ = 0);
doLog_ = p__4;
}
public function stop():void{
stopped_ = true;
}
override public function end():void{
clip_.gotoAndStop(Math.floor(segments_.getPointAt(1)));
if (rule_ != null){
rule_.reply();
};
}
override public function render(p__1:Number):void{
var l__2:* = (ot_ + ((nt_ - ot_) * p__1));
var l__3:* = Math.floor(segments_.getPointAt(l__2));
clip_.gotoAndStop(l__3);
}
override public function tick(p__1:Number):Boolean{
if (loop_){
p__1 = (p__1 % segments_.getMaxTime());
};
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, segments_.getMaxTime());
ot_ = nt_;
nt_ = l__2;
if (loop_){
if (nt_ < ot_){
ot_ = nt_;
};
return (stopped_);
};
return (((stopped_) || ((p__1 >= segments_.getMaxTime()))));
}
public function addRule(p__1:Rule):void{
rule_ = p__1;
}
}
}//package king.game.uno.anim
Section 22
//ScorePopAnim (king.game.uno.anim.ScorePopAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import flash.display.*;
import king.util.*;
public class ScorePopAnim extends Anim {
private var scorePop_:ScorePop;
private var parentClip_:MovieClip;
private var sy;
private var oy:Number;
private var ny;
public function ScorePopAnim(p__1:MovieClip, p__2:ScorePop, p__3:Number, p__4:Number){
super();
parentClip_ = p__1;
scorePop_ = p__2;
sy = (oy = (ny = (scorePop_.y = p__4)));
scorePop_.x = p__3;
parentClip_.addChild(scorePop_);
}
override public function render(p__1:Number):void{
scorePop_.y = (oy + ((ny - oy) * p__1));
}
override public function end():void{
parentClip_.removeChild(scorePop_);
}
override public function tick(p__1:Number):Boolean{
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, 70);
var l__3:* = AnimPlayer.easeOutCubic(l__2, 0, 1, 1);
var l__4:* = AnimPlayer.tickToPercent(p__1, 60, 10);
oy = ny;
ny = (sy - (56 * l__3));
if (l__4 > 0){
scorePop_.alpha = (1 - l__4);
};
return ((l__2 == 1));
}
}
}//package king.game.uno.anim
Section 23
//ShowBubbleAnim (king.game.uno.anim.ShowBubbleAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import flash.display.*;
import king.util.*;
public class ShowBubbleAnim extends Anim {
private var stopTick_:Number;// = -1
private var tick_:Number;// = 0
private var parentClip_:MovieClip;
private var nys;
private var oys;
private var oxs;
private var bubble_:Bubble;
private var nxs;
private var stopped_:Boolean;// = false
public function ShowBubbleAnim(p__1:MovieClip, p__2:Bubble, p__3:int=-1){
super();
parentClip_ = p__1;
bubble_ = p__2;
bubble_.scaleX = 0;
bubble_.scaleY = 0;
oxs = (oys = 0);
nxs = (nys = 0);
parentClip_.addChild(bubble_);
stopTick_ = p__3;
}
public function isStopped():Boolean{
return (stopped_);
}
public function stop():void{
stopTick_ = tick_;
stopped_ = true;
}
override public function render(p__1:Number):void{
bubble_.scaleX = (oxs + ((nxs - oxs) * p__1));
bubble_.scaleY = (oys + ((nys - oys) * p__1));
}
override public function end():void{
stopped_ = true;
parentClip_.removeChild(bubble_);
}
override public function tick(p__1:Number):Boolean{
var l__3:Boolean;
var l__4:* = undefined;
tick_ = p__1;
var l__2:* = AnimPlayer.tickToPercent(p__1, 0, 15);
l__2 = AnimPlayer.easeOutBack(l__2, 0, 1, 1);
if (stopTick_ != -1){
l__4 = AnimPlayer.tickToPercent(p__1, stopTick_, 10);
if (l__4 > 0){
stopped_ = true;
l__2 = (1 - AnimPlayer.easeInCubic(l__4, 0, 1, 1));
};
};
oxs = nxs;
oys = nys;
nxs = l__2;
nys = l__2;
if (stopTick_ != -1){
l__3 = (tick_ == (stopTick_ + 10));
};
return (l__3);
}
}
}//package king.game.uno.anim
Section 24
//ShowHandAnim (king.game.uno.anim.ShowHandAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
import sandy.core.light.*;
public class ShowHandAnim extends Anim {
var rule_:Rule;
var gameView_:GameView;
var player_:Player;
public function ShowHandAnim(p__1:GameView, p__2:Rule){
super();
gameView_ = p__1;
rule_ = p__2;
player_ = rule_.getPlayer();
}
override public function end():void{
rule_.reply();
}
override public function tick(p__1:Number):Boolean{
var l__5:CardView;
var l__9:ScorePop;
var l__6:* = undefined;
var l__7:* = undefined;
var l__8:* = undefined;
var l__2:* = AnimPlayer.tickToPercent(p__1, 0, 20);
var l__3:Array = player_.getHand().getCards();
var l__4:* = 0;
while (l__4 < l__3.length) {
l__5 = gameView_.getCardById(l__3[l__4].getId());
l__5.showTime = l__2;
l__4++;
};
if (rule_.getNum() != 0){
l__6 = AnimPlayer.tickToPercent(p__1, 20, 70);
if (p__1 == 20){
l__7 = 375;
l__8 = 490;
if (player_.getName() == "bot1"){
l__7 = 125;
l__8 = 98;
} else {
if (player_.getName() == "bot2"){
l__7 = 625;
l__8 = 105;
};
};
l__9 = ScorePop(new handscore());
l__9.score.text = ("" + rule_.getNum());
gameView_.getAnimPlayer().addAnim(new ScorePopAnim(gameView_.getPlayClip().signs, l__9, l__7, l__8));
};
return ((l__6 == 1));
};
return ((l__2 == 1));
}
}
}//package king.game.uno.anim
Section 25
//ShowSignAnim (king.game.uno.anim.ShowSignAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import king.util.*;
public class ShowSignAnim extends Anim {
private var sign_:Sign;
private var rule_:Rule;// = null
private var parentClip_:MovieClip;
private var numTicks_:int;
public function ShowSignAnim(p__1:MovieClip, p__2:Sign, p__3:Rule, p__4:int=-1){
super();
parentClip_ = p__1;
rule_ = p__3;
numTicks_ = p__4;
sign_ = p__2;
sign_.x = ((parentClip_.stage.stageWidth - sign_.getWidth()) / 2);
sign_.y = (((parentClip_.stage.stageHeight - sign_.getHeight()) / 2) - 4);
sign_.x = Math.round(sign_.x);
sign_.y = Math.round(sign_.y);
parentClip_.addChild(sign_);
}
override public function render(p__1:Number):void{
sign_.render(p__1);
}
override public function tick(p__1:Number):Boolean{
var l__2:Boolean;
sign_.tick(p__1);
if (numTicks_ != -1){
l__2 = (p__1 == numTicks_);
};
if (sign_.isStopped()){
l__2 = true;
};
if (((l__2) && (!((rule_ == null))))){
sign_.done();
rule_.reply();
};
return (l__2);
}
override public function end():void{
sign_.end();
parentClip_.removeChild(sign_);
}
}
}//package king.game.uno.anim
Section 26
//TakeAnim (king.game.uno.anim.TakeAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import king.util.*;
import com.midasplayer.avatar.*;
public class TakeAnim extends Anim {
private var dealerView_:DealerView;
private var rule_:Rule;
private var card_:CardView;
private var numTicks_:Number;
private var delay_:int;
public function TakeAnim(p__1:CardView, p__2:int, p__3:Rule, p__4:DealerView){
super();
card_ = p__1;
delay_ = p__2;
rule_ = p__3;
dealerView_ = p__4;
numTicks_ = 30;
}
override public function render(p__1:Number):void{
}
override public function end():void{
card_.getHand().removeCardById(card_.getId());
dealerView_.takeAnimDone();
card_.visible = false;
card_.changed = true;
card_.setFade(1);
card_.resetCoords();
var l__1:Number = -700;
var l__2:Number = 50;
var l__3:Number = -100;
var l__4:Number = -90;
var l__5:Number = 10;
var l__6:Number = 360;
card_.ox = (card_.nx = l__1);
card_.oy = (card_.ny = l__2);
card_.oz = (card_.nz = l__3);
card_.oTilt = (card_.nTilt = l__4);
card_.oPan = (card_.nPan = l__5);
card_.oRoll = (card_.nRoll = l__6);
card_.dealTime = 0;
card_.throwTime = 0;
if (rule_ != null){
rule_.reply();
};
}
override public function tick(p__1:Number):Boolean{
var l__2:* = AnimPlayer.tickToPercent(p__1, 0, numTicks_);
card_.dealTime = (1 - l__2);
return ((p__1 >= numTicks_));
}
}
}//package king.game.uno.anim
Section 27
//TakeCardsFromTableAnim (king.game.uno.anim.TakeCardsFromTableAnim)
package king.game.uno.anim {
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.core.scenegraph.*;
import flash.display.*;
import flash.geom.*;
import king.util.*;
import flash.filters.*;
public class TakeCardsFromTableAnim extends Anim {
private var tick_:Number;// = 0
private var rule_:Rule;
private var x_:Number;
private var gameView_:GameView;
private var ox;
private var nx:Number;
private var numTicks_:Number;
private var stack_:Bitmap;
public function TakeCardsFromTableAnim(p__1:GameView, p__2:Rule){
super();
gameView_ = p__1;
stack_ = gameView_.getStackBitmapCopy();
rule_ = p__2;
stack_.visible = true;
ox = (nx = (x_ = stack_.x));
numTicks_ = 18;
}
override public function render(p__1:Number):void{
var l__2:Number = (ox + ((nx - ox) * p__1));
stack_.x = l__2;
if (tick_ == numTicks_){
stack_.visible = false;
stack_.x = x_;
};
}
override public function end():void{
stack_.bitmapData.fillRect(new Rectangle(0, 0, stack_.width, stack_.height), 0);
stack_.visible = false;
stack_.x = x_;
stack_.filters.pop();
if (rule_ != null){
rule_.reply();
};
}
override public function tick(p__1:Number):Boolean{
tick_ = p__1;
var l__2:Number = AnimPlayer.tickToPercent(p__1, 0, numTicks_);
stack_.filters = [new BlurFilter((l__2 * 20), 0, 1)];
l__2 = AnimPlayer.easeInCubic(l__2, 0, 1, 1);
ox = nx;
nx = (x_ - (600 * l__2));
return ((p__1 == numTicks_));
}
}
}//package king.game.uno.anim
Section 28
//Bubble (king.game.uno.view.Bubble)
package king.game.uno.view {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class Bubble extends MovieClip {
public var txt:TextField;
public var color:int;
public var card:MovieClip;
public function Bubble(){
super();
x = 266;
y = 74;
txt.text = "";
card.visible = false;
}
public function setColor(p__1:int){
color = p__1;
}
public function setCardColor(p__1:int):void{
if (p__1 >= 0){
card.gotoAndStop((p__1 + 1));
card.visible = true;
this.gotoAndStop(1);
} else {
card.visible = false;
};
}
public function setText(p__1:String):void{
txt.text = p__1;
if (p__1.length > 0){
this.gotoAndStop((2 + (color % 2)));
};
}
}
}//package king.game.uno.view
Section 29
//CardView (king.game.uno.view.CardView)
package king.game.uno.view {
import king.game.uno.*;
import sandy.core.scenegraph.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import sandy.primitive.*;
public class CardView extends Plane3D {
public var mouseOverTime:Number;// = 0
private var gameView_:GameView;
public var nRoll:Number;// = 0
public var oRoll:Number;// = 0
public var dt:Number;// = 0
public var isThrowing_:Boolean;// = false
public var id_:int;
public var mouseOver:Boolean;// = false
public var oPan:Number;// = 0
public var nx;
public var nTilt:Number;// = 0
public var oTilt:Number;// = 0
public var nPan:Number;// = 0
public var ny;
public var nz:Number;// = 0
public var throwTime:Number;// = 0
public var dealTime:Number;// = 0
public var fadeMaterialAttribute_:MaterialAttributes;
private var card_:Card;
public var ox;
public var oy;
public var oz:Number;// = 0
private var frontMaterial_:BitmapMaterial;
private var backMaterial_:BitmapMaterial;
public var showTime:Number;// = 0
public function CardView(p__1:GameView, p__2:Card){
gameView_ = p__1;
card_ = p__2;
id_ = p__2.getId();
super(("card" + card_.getId()), 114, 74, 1, 1, Plane3D.XY_ALIGNED, "tri");
enableBackFaceCulling = false;
useSingleContainer = false;
fadeMaterialAttribute_ = new MaterialAttributes(new LightAttributes(false, 0.5));
var l__3:Bitmap = Library.getCardBitmap(card_.getType(), card_.getColor(), card_.getRank());
var l__4:Bitmap = Library.getCardBackBitmap();
frontMaterial_ = new BitmapMaterial(l__3.bitmapData, fadeMaterialAttribute_, 7);
backMaterial_ = new BitmapMaterial(l__4.bitmapData, null, 7);
frontMaterial_.lightingEnable = false;
backMaterial_.lightingEnable = false;
frontMaterial_.smooth = true;
backMaterial_.smooth = true;
var l__5:Appearance = new Appearance(frontMaterial_, backMaterial_);
appearance = l__5;
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
this.addEventListener(MouseEvent.ROLL_OVER, onMouseOver);
this.addEventListener(MouseEvent.ROLL_OUT, onMouseOut);
this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
enableEvents = false;
}
public function isInHand():Boolean{
if (dealTime < 1){
return (false);
};
if (isThrowing_){
return (false);
};
return (true);
}
public function getCard():Card{
return (card_);
}
public function setIsThrowing(p__1:Boolean):void{
mouseOver = false;
isThrowing_ = p__1;
}
public function getId():int{
return (id_);
}
public function isThrowing():Boolean{
return (isThrowing_);
}
public function getPercentInHand():Number{
if (isThrowing()){
return ((1 - throwTime));
};
if (dealTime < 1){
return (dealTime);
};
return (1);
}
public function render(p__1:Number):void{
this.x = (ox + ((nx - ox) * p__1));
if (this.visible == false){
this.x = -100000;
};
this.y = (oy + ((ny - oy) * p__1));
this.z = (oz + ((nz - oz) * p__1));
this.tilt = (oTilt + ((nTilt - oTilt) * p__1));
this.pan = (oPan + ((nPan - oPan) * p__1));
this.roll = (oRoll + ((nRoll - oRoll) * p__1));
}
public function onMouseDown(p__1:Shape3DEvent){
if (!isInHand()){
return;
};
getHand().getPlayer().clickCard(card_);
}
public function getWantedSpace():Number{
return ((0.12 * getPercentInHand()));
}
public function getHand():Hand{
return (card_.getHand());
}
public function onMouseOut(p__1:Shape3DEvent){
mouseOver = false;
}
public function onMouseOver(p__1:Shape3DEvent){
if (isInHand()){
mouseOver = true;
};
}
public function setFade(p__1:Number){
if (p__1 == 1){
frontMaterial_.lightingEnable = false;
} else {
frontMaterial_.lightingEnable = true;
};
}
}
}//package king.game.uno.view
Section 30
//ChooseColorSign (king.game.uno.view.ChooseColorSign)
package king.game.uno.view {
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import king.util.*;
import com.midasplayer.text.*;
public class ChooseColorSign extends Sign {
public var green:MovieClip;
private var clickColor_:int;
private var clickTime_:int;
public var yellow:MovieClip;
public var header:TextField;
private var gameView_:GameView;
public var red:MovieClip;
private var clicked_:Array;
public var green_back:MovieClip;
public var blue_back:MovieClip;
private var ns_:Array;
private var timeOver_:Array;
private var bgClips_:Array;
public var yellow_back:MovieClip;
public var red_back:MovieClip;
public var blue:MovieClip;
private var rule_:Rule;
private var mouseOver_:Array;
private var buttonClips_:Array;
public var txt:TextField;
private var os_:Array;
public function ChooseColorSign(){
var l__1:int;
var l__2:MovieClip;
super(310, 170);
buttonClips_ = new Array(4);
bgClips_ = new Array(4);
timeOver_ = new Array(4);
mouseOver_ = new Array(4);
os_ = new Array(4);
ns_ = new Array(4);
clicked_ = new Array(4);
clickTime_ = -1;
buttonClips_[Card.COLOR_BLUE] = blue;
buttonClips_[Card.COLOR_GREEN] = green;
buttonClips_[Card.COLOR_RED] = red;
buttonClips_[Card.COLOR_YELLOW] = yellow;
bgClips_[Card.COLOR_BLUE] = blue_back;
bgClips_[Card.COLOR_GREEN] = green_back;
bgClips_[Card.COLOR_RED] = red_back;
bgClips_[Card.COLOR_YELLOW] = yellow_back;
l__1 = 0;
while (l__1 < 4) {
l__2 = buttonClips_[l__1];
os_[l__1] = (ns_[l__1] = (l__2.scaleX = (l__2.scaleY = 0.8)));
l__2.alpha = 0.7;
l__2.addEventListener(MouseEvent.ROLL_OVER, overButton);
l__2.addEventListener(MouseEvent.ROLL_OUT, outButton);
l__2.addEventListener(MouseEvent.CLICK, clickButton);
l__2.buttonMode = true;
timeOver_[l__1] = 0;
mouseOver_[l__1] = false;
clicked_[l__1] = false;
l__1++;
};
txt.text = I18n.getString("choose_color");
}
override public function render(p__1:Number):void{
var l__2:int;
var l__3:MovieClip;
var l__4:Number;
l__2 = 0;
while (l__2 < 4) {
l__3 = buttonClips_[l__2];
l__4 = (os_[l__2] + ((ns_[l__2] - os_[l__2]) * p__1));
l__3.scaleX = (l__3.scaleY = l__4);
l__3 = bgClips_[l__2];
l__3.width = (l__3.height = (20 + (200 * ((l__4 - 0.8) / 0.2))));
l__2++;
};
}
override public function tick(p__1:Number):void{
var l__2:int;
var l__3:MovieClip;
var l__4:* = undefined;
var l__5:* = undefined;
var l__6:* = undefined;
var l__7:* = undefined;
l__2 = 0;
while (l__2 < 4) {
l__3 = buttonClips_[l__2];
if (((((clicked_[l__2]) || (mouseOver_[l__2]))) && ((timeOver_[l__2] < 10)))){
timeOver_[l__2] = (timeOver_[l__2] + 2);
};
if (((((!(clicked_[l__2])) && (!(mouseOver_[l__2])))) && ((timeOver_[l__2] > 0)))){
timeOver_[l__2] = (timeOver_[l__2] - 2);
};
l__4 = (timeOver_[l__2] / 10);
os_[l__2] = ns_[l__2];
ns_[l__2] = (0.8 + (l__4 * 0.1));
l__3.alpha = (0.7 + (l__4 * 0.3));
if (clickTime_ > 0){
l__5 = AnimPlayer.tickToPercent(clickTime_, 0, 15);
l__6 = AnimPlayer.tickToPercent(clickTime_, 0, 4);
l__7 = AnimPlayer.tickToPercent(clickTime_, 4, 11);
if (l__2 == clickColor_){
l__3.alpha = 1;
if (l__6 < 1){
ns_[l__2] = (0.9 - (0.4 * AnimPlayer.easeOutQuad(l__6, 0, 1, 1)));
} else {
ns_[l__2] = (0.5 + (0.5 * AnimPlayer.easeInOutQuad(l__7, 0, 1, 1)));
};
} else {
l__3.alpha = (0.7 - (l__5 * 0.3));
};
};
l__2++;
};
if ((((clickTime_ >= 0)) && ((timeOver_[clickColor_] == 10)))){
clickTime_++;
};
if (clickTime_ == 15){
this.remove();
};
}
public function outButton(p__1:Event){
var l__2:* = clipToColor(MovieClip(p__1.target));
mouseOver_[l__2] = false;
}
public function overButton(p__1:Event){
var l__2:* = clipToColor(MovieClip(p__1.target));
mouseOver_[l__2] = true;
}
public function clicked(p__1:int){
clicked_[p__1] = true;
clickTime_ = 0;
clickColor_ = p__1;
gameView_.playSoundButton();
}
public function clipToColor(p__1:MovieClip):int{
if (p__1 == blue){
return (Card.COLOR_BLUE);
};
if (p__1 == green){
return (Card.COLOR_GREEN);
};
if (p__1 == red){
return (Card.COLOR_RED);
};
if (p__1 == yellow){
return (Card.COLOR_YELLOW);
};
trace("no color found");
return (-1);
}
public function setGameView(p__1:GameView){
gameView_ = p__1;
}
public function addRule(p__1:Rule){
rule_ = p__1;
}
public function clickButton(p__1:Event){
var l__2:MovieClip;
var l__3:int;
l__3 = 0;
while (l__3 < 4) {
l__2 = buttonClips_[l__3];
l__2.removeEventListener(MouseEvent.ROLL_OVER, overButton);
l__2.removeEventListener(MouseEvent.ROLL_OUT, outButton);
l__2.removeEventListener(MouseEvent.CLICK, clickButton);
l__2.buttonMode = false;
l__3++;
};
var l__4:* = clipToColor(MovieClip(p__1.target));
gameView_.getGame().colorChosen(l__4);
}
}
}//package king.game.uno.view
Section 31
//ClockView (king.game.uno.view.ClockView)
package king.game.uno.view {
import com.midasplayer.gamecomm.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
public class ClockView extends MovieClip implements ClockViewer {
public var bg:MovieClip;
private var gameView_:GameView;
public var arrow:MovieClip;
private var shakeTime_:Number;
private var maskClip:MovieClip;
private var arrowRotation:Number;
private var maxTime_:Number;
private var lastArrowRotation:Number;
private var time_:Number;
private var shakeRotation_:Number;
public function ClockView(){
super();
addFrameScript(0, frame1);
maskClip = new MovieClip();
maskClip.x = arrow.x;
maskClip.y = arrow.y;
this.addChild(maskClip);
bg.mask = maskClip;
arrowRotation = arrow.rotation;
lastArrowRotation = arrowRotation;
shakeTime_ = 0;
shakeRotation_ = 0;
}
public function setTime(p__1:Number):void{
var l__2:* = undefined;
var l__3:* = undefined;
time_ = p__1;
if (p__1 == (maxTime_ - (30 * 3))){
gameView_.playSoundTimeWarning();
};
if (p__1 == maxTime_){
if (!gameView_.getGame().hasEndGameBeenPressed()){
gameView_.playSoundBells();
};
};
if (time_ < maxTime_){
l__2 = (arrowRotation + ((time_ / maxTime_) * 360));
if (Math.abs((l__2 - lastArrowRotation)) > 2){
arrow.rotation = l__2;
};
if (Math.abs((arrow.rotation - lastArrowRotation)) > 4){
drawCircle(maskClip, 0, 0, 30, (arrow.rotation - lastArrowRotation), lastArrowRotation, 0, 0, 1, 1);
lastArrowRotation = arrow.rotation;
maskClip.cacheAsBitmap = true;
};
} else {
if (gameView_.getGame().hasEndGameBeenPressed()){
return;
};
shakeTime_++;
if (shakeTime_ < 5){
gotoAndStop(2);
arrow.x = 65;
arrow.y = 58;
arrow.rotation = 0;
} else {
if (shakeTime_ > (30 * 2)){
gotoAndStop(1);
arrow.rotation = (arrowRotation + shakeRotation_);
shakeRotation_ = (shakeRotation_ * 0.85);
arrow.x = 58.5;
arrow.y = 58;
} else {
l__3 = ((shakeTime_ - 5) % 8);
l__3 = (l__3 / 8);
l__3 = (Math.floor((2 * l__3)) + 2);
gotoAndStop(l__3);
if (l__3 == 3){
arrow.x = 51;
arrow.y = 58;
} else {
arrow.x = 64;
arrow.y = 57;
};
arrow.rotation = shakeRotation_;
shakeRotation_ = (shakeRotation_ - (4 + shakeTime_));
};
};
};
}
public function setMaxTime(p__1:Number):void{
maxTime_ = p__1;
}
function frame1(){
stop();
mouseEnabled = false;
mouseChildren = false;
}
function drawCircle(p__1:MovieClip, p__2:Number, p__3:Number, p__4:Number, p__5:Number, p__6:Number, p__7:int, p__8:int, p__9:Number, p__10:Number=1){
var l__12:Number;
var l__14:Number;
var l__11:* = undefined;
var l__13:* = undefined;
p__1.graphics.beginFill(p__8, p__9);
p__1.graphics.moveTo(p__2, p__3);
l__11 = ((Math.cos((Math.PI * ((p__6 - 90) / 180))) * p__4) + p__2);
l__13 = ((Math.sin((Math.PI * ((p__6 - 90) / 180))) * p__4) + p__3);
p__1.graphics.lineTo(l__11, l__13);
if (p__7 == 1){
p__5 = (0 - p__5);
p__6 = (p__6 - p__5);
};
var l__15:Number = ((Math.PI / (360 / p__5)) / p__10);
var l__16:Number = (p__4 / Math.cos(l__15));
var l__17:Number = (Math.PI * ((p__6 - 90) / 180));
var l__18:* = (Math.PI * ((p__6 - 90) / 180));
var l__19:* = 0;
while (l__19 < p__10) {
l__18 = (l__17 + l__15);
l__17 = (l__18 + l__15);
l__11 = (p__2 + (Math.cos(l__18) * l__16));
l__13 = (p__3 + (Math.sin(l__18) * l__16));
l__12 = (p__2 + (Math.cos(l__17) * p__4));
l__14 = (p__3 + (Math.sin(l__17) * p__4));
p__1.graphics.curveTo(l__11, l__13, l__12, l__14);
l__19++;
};
p__1.graphics.lineTo(p__2, p__3);
p__1.graphics.endFill();
}
public function setGameView(p__1:GameView):void{
gameView_ = p__1;
}
}
}//package king.game.uno.view
Section 32
//ClockViewer (king.game.uno.view.ClockViewer)
package king.game.uno.view {
public interface ClockViewer {
function setTime(:Number):void;
function setMaxTime(:Number):void;
}
}//package king.game.uno.view
Section 33
//DealerView (king.game.uno.view.DealerView)
package king.game.uno.view {
import king.game.uno.*;
import flash.display.*;
import king.util.*;
import king.game.uno.anim.*;
public class DealerView implements DealerViewer {
private var showLeftInPile_:Boolean;// = false
private var animPlayer_:AnimPlayer;
private var dealerAnim_:DealerAnim;
private var numShuffles_:int;// = 0
private var gameView_:GameView;
private var dealer_:Dealer;
private var numCardsLeft_:int;
public function DealerView(p__1:Dealer, p__2:GameView){
super();
dealer_ = p__1;
gameView_ = p__2;
animPlayer_ = gameView_.getAnimPlayer();
dealerAnim_ = new DealerAnim(gameView_, this);
animPlayer_.addAnim(dealerAnim_);
var l__3:MovieClip = gameView_.getPlayClip().table;
l__3.numbers0.visible = false;
l__3.numbers1.visible = false;
l__3.numbers2.visible = false;
numCardsLeft_ = dealer_.cardsLeft();
}
public function shuffle(p__1:Rule):void{
gameView_.playSoundShuffle();
if (numShuffles_ == 1){
dealerAnim_.showLeftInPile();
};
var l__2:Segments = new Segments();
l__2.addSegment(1, 15.99, 15);
l__2.addSegment(15.99, 14, 4);
l__2.addSegment(14, 15.99, 4);
l__2.addSegment(15.99, 14, 4);
l__2.addSegment(14, 15.99, 4);
l__2.addSegment(15.99, 14, 4);
l__2.addSegment(14, 15.99, 4);
l__2.addSegment(15.99, 1, 15);
var l__3:PlayFramesAnim = new PlayFramesAnim(gameView_.getPlayClip().table.shuffle, l__2);
l__3.addRule(p__1);
animPlayer_.addAnim(l__3);
numShuffles_++;
}
public function showLeftInPile(p__1:Boolean){
var l__2:MovieClip;
showLeftInPile_ = p__1;
if (showLeftInPile_){
updateCardsLeftCount();
} else {
l__2 = gameView_.getPlayClip().table;
l__2.numbers0.visible = false;
l__2.numbers1.visible = false;
l__2.numbers2.visible = false;
};
}
public function takeCardsFromTable(p__1:Rule):void{
dealerAnim_.takeCardsFromTable(p__1);
numCardsLeft_ = (numCardsLeft_ + gameView_.getGame().getDiscardPile().getCards().length);
numCardsLeft_ = (numCardsLeft_ - p__1.getNum());
updateCardsLeftCount();
}
public function updateCardsLeftCount():void{
if (!showLeftInPile_){
return;
};
var l__1:MovieClip = gameView_.getPlayClip().table;
if (numCardsLeft_ >= 100){
l__1.numbers0.x = -64;
l__1.numbers1.x = -90;
l__1.numbers2.x = -111;
l__1.numbers0.gotoAndStop(((numCardsLeft_ % 10) + 1));
l__1.numbers1.gotoAndStop((((numCardsLeft_ / 10) % 10) + 1));
l__1.numbers2.gotoAndStop(2);
} else {
l__1.numbers0.x = -72;
l__1.numbers1.x = -98;
l__1.numbers0.gotoAndStop(((numCardsLeft_ % 10) + 1));
l__1.numbers1.gotoAndStop(((Math.floor((numCardsLeft_ / 10)) % 10) + 1));
if ((Math.floor((numCardsLeft_ / 10)) % 10) == 0){
l__1.numbers0.x = -85;
l__1.numbers1.visible = false;
};
};
}
public function takeAnimDone():void{
numCardsLeft_++;
updateCardsLeftCount();
}
public function dealCards(p__1:Player, p__2:Array, p__3:Rule):void{
dealerAnim_.dealCards(p__1, p__2, p__3);
}
public function takeCards(p__1:Player, p__2:Array, p__3:Rule):void{
dealerAnim_.takeCards(p__1, p__2, p__3);
}
public function dealAnimDone():void{
numCardsLeft_--;
updateCardsLeftCount();
}
}
}//package king.game.uno.view
Section 34
//DealerViewer (king.game.uno.view.DealerViewer)
package king.game.uno.view {
import king.game.uno.*;
public interface DealerViewer {
function takeCardsFromTable(:Rule):void;
function shuffle(:Rule):void;
function takeCards(_arg1:Player, _arg2:Array, _arg3:Rule):void;
function dealCards(_arg1:Player, _arg2:Array, _arg3:Rule):void;
}
}//package king.game.uno.view
Section 35
//DrawWinnerSign (king.game.uno.view.DrawWinnerSign)
package king.game.uno.view {
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.avatar.*;
import com.midasplayer.text.*;
public class DrawWinnerSign extends Sign {
private var or;
private var nr:Number;
public var bot:MovieClip;
private var gameView_:GameView;
public var txt:TextField;
public var star:MovieClip;
private var avatarClip_:MovieClip;// = null
private var sr;
public function DrawWinnerSign(){
super(300, 150);
sr = (or = (nr = star.rotation));
buttonMode = true;
mouseChildren = false;
this.addEventListener(MouseEvent.CLICK, onClick);
}
override public function done(){
gameView_.getGame().drawWinnerDone();
}
override public function render(p__1:Number):void{
star.rotation = (or + ((nr - or) * p__1));
}
public function onClick(p__1:Event){
this.removeEventListener(MouseEvent.CLICK, onClick);
remove();
}
public function setPlayer(p__1:Player, p__2:Avatar){
var l__3:MovieClip;
var l__4:* = undefined;
txt.text = I18n.getString("will_start", p__1.getViewer().getDisplayName());
if (p__1.isLocalPlayer()){
bot.visible = false;
if (p__2 != null){
p__2.setMood("happy");
l__3 = MovieClip(p__2);
l__3.x = (bot.x - (p__2.getWidth() / 2));
l__3.y = (bot.y - (p__2.getHeight() / 2));
addChild(l__3);
avatarClip_ = l__3;
};
} else {
l__4 = BotPlayer(p__1);
bot.visible = true;
bot.gotoAndStop((l__4.getBotId() + 1));
};
}
public function setGameView(p__1:GameView){
gameView_ = p__1;
}
override public function end(){
super.end();
if (avatarClip_ != null){
removeChild(avatarClip_);
};
}
override public function tick(p__1:Number):void{
or = nr;
nr = (nr + 0.6);
}
}
}//package king.game.uno.view
Section 36
//GameView (king.game.uno.view.GameView)
package king.game.uno.view {
import king.game.uno.*;
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import com.midasplayer.avatar.*;
import king.math.*;
import sandy.primitive.*;
import flash.utils.*;
import com.midasplayer.text.*;
import flash.system.*;
import flash.ui.*;
public class GameView implements GameViewer {
private var avatarLoader_:AvatarLoader;
private var timeOverRule_:Rule;
private var lastDir_:int;// = 1
private var avatar_:Avatar;// = null
private var refreshCard_:CardView;// = null
private var introSign_:IntroSign;
private var avatarLoader2_:AvatarLoader;
private var playClip_:PlayClip;
private var cardInAir_:Boolean;// = false
private var animPlayer_:AnimPlayer;
private var stackBitmapData2_:BitmapData;
private var passRule_:Rule;// = null
private var scene_:Scene3D;
private var rootClip_:Sprite;
private var lastCard_:CardView;// = null
private var cards_:Array;
private var stackBitmapData_:BitmapData;
private var registerSign_:RegisterSign;
private var dealer_:DealerView;
private var clickedCard_:CardView;// = null
private var drawWinnerSign_:DrawWinnerSign;
private var stackBitmap_:Bitmap;
private var soundManager_:SoundManager;
private var tmpArray:Array;
private var stackBitmap2_:Bitmap;
private var unoRule_:Rule;// = null
private var endGame_:Boolean;// = false
private var keepStackBitmapCopy_:Boolean;// = false
private var cardnum_;
private var signAvatar_:Avatar;// = null
private var group_:Group;
private var game_:Game;
private var soundOn_:Boolean;// = true
private var roundWinnerSign_:RoundWinnerSign;
private var drawCardRule_:Rule;// = null
private var camera_:Camera3D;
private var avatarString_:String;
private var colorBubbleAnim_:ShowBubbleAnim;// = null
private var refreshStackBitmap_:Boolean;// = false
private var passSize_:int;// = 24
private var musicOn_:Boolean;// = true
private var random_:MtRandom;
public function GameView(p__1:Sprite){
tmpArray = new Array();
super();
Security.allowDomain("*");
rootClip_ = p__1;
playClip_ = new PlayClip();
rootClip_.addChild(playClip_);
animPlayer_ = new AnimPlayer();
soundManager_ = new SoundManager();
}
public function cardPlayed(p__1:Player, p__2:CardView){
var l__3:MovieClip;
game_.throwCard(p__2.getId(), p__1);
cardInAir_ = false;
refreshStackBitmap_ = true;
refreshCard_ = p__2;
lastCard_ = p__2;
keepStackBitmapCopy_ = false;
if (p__1 != null){
if ((((((p__2.getCard().getType() == Card.TYPE_DRAW_TWO)) || ((p__2.getCard().getType() == Card.TYPE_WILD_DRAW_FOUR)))) || ((p__2.getCard().getType() == Card.TYPE_SKIP)))){
p__1.getViewer().setMood("happy");
};
};
if (p__1 != null){
p__1.cardPlayed(p__2.getCard());
};
if (colorBubbleAnim_ != null){
colorBubbleAnim_.stop();
colorBubbleAnim_ = null;
};
if (p__2.getCard().getType() == Card.TYPE_DRAW_TWO){
l__3 = new action_draw2();
l__3.txt.text = I18n.getString("action_draw2");
} else {
if (p__2.getCard().getType() == Card.TYPE_WILD_DRAW_FOUR){
l__3 = new action_draw4();
l__3.txt.text = I18n.getString("action_draw4");
} else {
if (p__2.getCard().getType() == Card.TYPE_REVERSE){
l__3 = new action_reverse();
l__3.txt.text = I18n.getString("action_reverse");
playSoundReverse();
} else {
if (p__2.getCard().getType() == Card.TYPE_SKIP){
l__3 = new action_skip();
l__3.txt.text = I18n.getString("action_skip");
};
};
};
};
if (l__3 != null){
animPlayer_.addAnim(new ActionCardAnim(l__3, getPlayClip().signs, 50));
};
}
public function activatePassButton(p__1:Rule){
var l__2:MovieClip;
var l__5:Segments;
var l__6:PlayFramesAnim;
passRule_ = p__1;
l__2 = getPlayClip().pass;
l__2.mouseEnabled = true;
l__2.buttonMode = true;
l__2.mouseChildren = false;
l__2.gotoAndStop(2);
l__2.addEventListener(MouseEvent.ROLL_OVER, passOver);
l__2.addEventListener(MouseEvent.ROLL_OUT, passOut);
l__2.addEventListener(MouseEvent.CLICK, passClick);
var l__3:TextField = getPlayClip().pass.pass_active;
var l__4:TextFormat = l__3.getTextFormat();
l__4 = new TextFormat(l__4.font, passSize_, 0xFFEF00);
l__3.setTextFormat(l__4);
l__5 = new Segments();
l__5.addSegment(1, 9.99, 10);
l__5.addSegment(1, 1, 1);
l__6 = new PlayFramesAnim(getPlayClip().pass_lights.light1, l__5);
animPlayer_.addAnim(l__6);
l__5 = new Segments();
l__5.addSegment(1, 1, 2);
l__5.addSegment(1, 9.99, 10);
l__5.addSegment(1, 1, 1);
l__6 = new PlayFramesAnim(getPlayClip().pass_lights.light2, l__5);
animPlayer_.addAnim(l__6);
}
public function cardClicked(p__1:CardView):void{
if ((((((clickedCard_ == null)) && ((cardInAir_ == false)))) && ((refreshStackBitmap_ == false)))){
clickedCard_ = p__1;
inactivateDrawCardButton();
animPlayer_.addAnim(new DelayAnim(14, playSoundThrow));
};
}
public function drawWinnerSignClicked(){
drawWinnerSign_.onClick(null);
}
public function musicOff(){
musicOn_ = false;
soundManager_.get("uno_loop").setVolume(0);
soundManager_.get("music").setVolume(0);
soundManager_.get("outro").setVolume(0);
getPlayClip().btn_music.gotoAndStop(2);
}
public function hasUno(p__1:Player){
soundManager_.get("uno").play((soundOn_) ? 1 : 0);
}
public function dealingCards(p__1:CardView, p__2:int){
if (p__2 == 7){
animPlayer_.addAnim(new DelayAnim(4, playSoundDeal));
} else {
if (p__2 == 1){
animPlayer_.addAnim(new DelayAnim(10, playSoundDealOne));
} else {
if (p__2 == 2){
animPlayer_.addAnim(new DelayAnim(10, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(15, playSoundDealOne));
} else {
if (p__2 == 3){
animPlayer_.addAnim(new DelayAnim(10, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(15, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(20, playSoundDealOne));
} else {
if (p__2 == 4){
animPlayer_.addAnim(new DelayAnim(10, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(15, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(20, playSoundDealOne));
animPlayer_.addAnim(new DelayAnim(25, playSoundDealOne));
};
};
};
};
};
}
public function init(p__1:Game):void{
var l__6:CardView;
game_ = p__1;
random_ = new MtRandom(game_.getSeed());
camera_ = new Camera3D(755, 600);
camera_.z = -400;
camera_.y = 460;
camera_.lookAt(0, 0, 0);
group_ = new Group();
cards_ = new Array();
var l__2:Array = game_.getDeck().getCards();
var l__3:* = 0;
while (l__3 < l__2.length) {
l__6 = new CardView(this, l__2[l__3]);
l__6.forcedDepth = -(l__3);
l__6.enableForcedDepth = true;
l__6.visible = false;
cards_.push(l__6);
group_.addChild(l__6);
l__3++;
};
scene_ = new Scene3D("scene", playClip_.cards, camera_, group_);
stackBitmapData_ = new BitmapData(200, 145, true, 0);
stackBitmap_ = new Bitmap(stackBitmapData_);
stackBitmap_.x = 275;
stackBitmap_.y = 210;
stackBitmapData2_ = new BitmapData(200, 145, true, 0);
stackBitmap2_ = new Bitmap(stackBitmapData2_);
stackBitmap2_.x = 275;
stackBitmap2_.y = 210;
stackBitmap2_.visible = false;
playClip_.stack.addChild(stackBitmap2_);
playClip_.stack.addChild(stackBitmap_);
getPlayClip().table.dir.visible = false;
getPlayClip().table.numbers0.visible = false;
getPlayClip().table.numbers1.visible = false;
getPlayClip().table.numbers2.visible = false;
getPlayClip().station_left.numcards.textColor = 9949650;
getPlayClip().station_right.numcards.textColor = 373931;
getPlayClip().numcards.textColor = 9867928;
getPlayClip().station_left.numcards.visible = false;
getPlayClip().station_right.numcards.visible = false;
getPlayClip().numcards.visible = false;
ClockView(getPlayClip().clock).setGameView(this);
game_.getClock().addViewer(ClockViewer(getPlayClip().clock));
getPlayClip().btn_music.buttonMode = true;
getPlayClip().btn_sound.buttonMode = true;
getPlayClip().btn_endgame.buttonMode = true;
getPlayClip().btn_music.addEventListener(MouseEvent.CLICK, musicOnOffClicked);
getPlayClip().btn_sound.addEventListener(MouseEvent.CLICK, soundOnOffClicked);
getPlayClip().btn_endgame.addEventListener(MouseEvent.CLICK, endGameClicked);
if (game_.getGameData().getElementTextAsInt("music") == 0){
musicOff();
};
if (game_.getGameData().getElementTextAsInt("sound") == 0){
soundOff();
};
getPlayClip().pass.pass_active.text = I18n.getString("pass");
var l__4:TextField = getPlayClip().pass.pass_active;
var l__5:TextFormat = l__4.getTextFormat();
while (l__4.textWidth > 48) {
passSize_--;
l__5 = new TextFormat(l__5.font, passSize_, 0x808080);
l__4.setTextFormat(l__5);
};
soundManager_.get("music").play((musicOn_) ? 0.5 : 0);
}
public function activateUnoButton(p__1:Rule, p__2:Boolean=false){
var l__3:MovieClip;
var l__4:Segments;
var l__5:PlayFramesAnim;
unoRule_ = p__1;
l__3 = getPlayClip().uno;
l__3.gotoAndStop(2);
l__3.mouseEnabled = true;
l__3.buttonMode = true;
l__3.mouseChildren = false;
l__3.addEventListener(MouseEvent.ROLL_OVER, unoOver);
l__3.addEventListener(MouseEvent.ROLL_OUT, unoOut);
if (p__2){
l__3.addEventListener(MouseEvent.CLICK, unoMissClick);
getPlayClip().uno_lights.light1.gotoAndStop(1);
getPlayClip().uno_lights.light2.gotoAndStop(1);
} else {
l__3.addEventListener(MouseEvent.CLICK, unoClick);
l__4 = new Segments();
l__4.addSegment(1, 9.99, 10);
l__4.addSegment(1, 1, 1);
l__5 = new PlayFramesAnim(getPlayClip().uno_lights.light1, l__4);
animPlayer_.addAnim(l__5);
l__4 = new Segments();
l__4.addSegment(1, 1, 2);
l__4.addSegment(1, 9.99, 10);
l__4.addSegment(1, 1, 1);
l__5 = new PlayFramesAnim(getPlayClip().uno_lights.light2, l__4);
animPlayer_.addAnim(l__5);
};
}
public function playSoundStabbPositive(){
soundManager_.get("stabb_positive").play((soundOn_) ? 1 : 0);
}
public function getSoundOn():Boolean{
return (soundOn_);
}
public function throwCard(p__1:CardView, p__2:Player):void{
animPlayer_.addAnim(new HandToTableAnim(this, p__2, p__1));
cardInAir_ = true;
clickedCard_ = null;
}
public function getPlayClip():MovieClip{
return (playClip_);
}
public function playSoundReverse(){
soundManager_.get("reverse").play((soundOn_) ? 1 : 0);
}
public function addDealer(p__1:Dealer):void{
dealer_ = new DealerView(p__1, this);
p__1.addViewer(dealer_);
}
public function timeOverReply(){
timeOverRule_.reply();
}
public function playSoundStabbNegative(){
soundManager_.get("stabb_negative").play((soundOn_) ? 1 : 0);
}
private function onAvatarLoaded(p__1:Event):void{
var l__2:MovieClip = MovieClip(p__1.target.content.getAvatar(avatarString_));
var l__3:MovieClip = MovieClip(p__1.target.content.getAvatar(avatarString_));
if ((((l__2 == null)) || ((p__1.target.content == undefined)))){
avatarLoader_.load(onAvatarLoaded);
} else {
avatar_ = Avatar(l__2);
l__2.x = (-(avatar_.getWidth()) / 2);
l__2.y = ((-(avatar_.getHeight()) / 2) - 5);
getPlayClip().avatarHolder.addChild(avatar_);
if (avatarString_ == ""){
l__2.y = (l__2.y + 10);
};
signAvatar_ = Avatar(l__3);
};
}
public function playSoundShuffle(){
animPlayer_.addAnim(new DelayAnim(0, playSoundShuffle2));
animPlayer_.addAnim(new DelayAnim(23, playSoundShuffle3));
}
public function unoClick(p__1:Event){
var l__2:MovieClip;
playSoundButton();
hasUno(unoRule_.getPlayer());
inactivateUnoButton();
inactivateDrawCardButton(true);
l__2 = getPlayClip().uno;
var l__3:Segments = new Segments();
l__3.addSegment(3, 4.99, 5);
l__3.addSegment(4.99, 4.99, 10);
l__3.addSegment(2.99, 1, 5);
var l__4:PlayFramesAnim = new PlayFramesAnim(l__2, l__3);
animPlayer_.addAnim(l__4);
game_.saidUno();
inactivatePassButton(false);
}
public function playSoundDeal(){
soundManager_.get("deal").play((soundOn_) ? 1 : 0);
}
public function getAnimPlayer():AnimPlayer{
return (animPlayer_);
}
public function clearStackBimap(p__1:int):void{
if (p__1 == 0){
stackBitmapData2_.copyPixels(stackBitmapData_, new Rectangle(0, 0, 200, 145), new Point(0, 0));
stackBitmapData_.fillRect(new Rectangle(0, 0, stackBitmap_.width, stackBitmap_.height), 0);
} else {
keepStackBitmapCopy_ = true;
stackBitmapData_.fillRect(new Rectangle(0, 0, stackBitmap_.width, stackBitmap_.height), 0);
refreshCard_ = lastCard_;
refreshStackBitmap_ = true;
lastCard_.visible = true;
lastCard_.changed = true;
};
}
public function soundOn(){
soundOn_ = true;
getPlayClip().btn_sound.gotoAndStop(1);
}
public function playSoundUnoMiss(){
soundManager_.get("uno_miss").play((soundOn_) ? 0.5 : 0);
}
public function playSoundBells(){
soundManager_.get("bells").play((soundOn_) ? 1 : 0);
}
private function onAvatarProgress(p__1:Event):void{
}
public function playSoundThrow(){
soundManager_.get(("add_card_" + (random_.nextInt(3) + 1))).play((soundOn_) ? 1 : 0);
}
private function loadAvatars(){
var l__1:String = game_.getGameData().getElementTextAsString("avatarpath");
avatarLoader_ = new AvatarLoader(l__1);
avatarLoader2_ = new AvatarLoader(l__1);
avatarString_ = game_.getGameData().getElementTextAsString("avatar");
avatarLoader2_.load(onAvatarLoaded2, onAvatarProgress);
avatarLoader_.load(onAvatarLoaded, onAvatarProgress);
}
public function getCardById(p__1:int):CardView{
return (cards_[p__1]);
}
public function playSoundButton(){
soundManager_.get("button").play((soundOn_) ? 1 : 0);
}
public function passOut(p__1:Event){
var l__2:MovieClip;
l__2 = getPlayClip().pass;
l__2.gotoAndStop(2);
}
public function unoOut(p__1:Event){
var l__2:MovieClip;
l__2 = getPlayClip().uno;
l__2.gotoAndStop(2);
}
public function passOver(p__1:Event){
var l__2:MovieClip;
l__2 = getPlayClip().pass;
l__2.gotoAndStop(3);
}
public function playSoundWrong(){
soundManager_.get("wrong").play((soundOn_) ? 1 : 0);
}
public function getGame():Game{
return (game_);
}
public function inactivateUnoButton(p__1:Boolean=true){
var l__2:MovieClip;
l__2 = getPlayClip().uno;
l__2.mouseEnabled = false;
l__2.buttonMode = false;
if (p__1){
l__2.gotoAndStop(1);
};
l__2.removeEventListener(MouseEvent.ROLL_OVER, unoOver);
l__2.removeEventListener(MouseEvent.ROLL_OUT, unoOut);
l__2.removeEventListener(MouseEvent.CLICK, unoClick);
l__2.removeEventListener(MouseEvent.CLICK, unoMissClick);
}
public function drawButtonOver(p__1:Event){
var l__2:MovieClip;
l__2 = MovieClip(p__1.target);
}
private function onAvatarLoaded2(p__1:Event):void{
var l__2:MovieClip = MovieClip(p__1.target.content.getAvatar(avatarString_));
if ((((l__2 == null)) || ((p__1.target.content == undefined)))){
avatarLoader2_.load(onAvatarLoaded2);
};
}
public function unoMissClick(p__1:Event){
game_.reportUnoMissClicked(unoRule_.getPlayer().getId());
inactivateUnoButton(true);
}
public function activateDrawCardButton(p__1:Rule){
var l__2:MovieClip;
var l__3:Segments;
var l__4:PlayFramesAnim;
drawCardRule_ = p__1;
l__2 = getPlayClip().table.drawbtn;
l__2.buttonMode = true;
l__2.mouseChildren = false;
l__3 = new Segments();
l__3.addSegment(3.99, 2, 1);
l__3.addSegment(2, 2, 4);
l__3.addSegment(2, 3.99, 1);
l__4 = new PlayFramesAnim(l__2, l__3);
animPlayer_.addAnim(l__4);
l__3 = new Segments();
l__3.addSegment(1, 9.99, 10);
l__3.addSegment(1, 1, 1);
l__4 = new PlayFramesAnim(getPlayClip().table.drawbtn_lights.light1, l__3);
animPlayer_.addAnim(l__4);
l__3 = new Segments();
l__3.addSegment(1, 1, 2);
l__3.addSegment(1, 9.99, 10);
l__3.addSegment(1, 1, 1);
l__4 = new PlayFramesAnim(getPlayClip().table.drawbtn_lights.light2, l__3);
animPlayer_.addAnim(l__4);
getPlayClip().table.drawbtn_lights.scaleY = 0.8;
l__2.addEventListener(MouseEvent.ROLL_OVER, drawButtonOver);
l__2.addEventListener(MouseEvent.ROLL_OUT, drawButtonOut);
l__2.addEventListener(MouseEvent.CLICK, drawButtonClick);
}
public function tick(p__1:Number){
var l__2:CardView;
var l__4:Array;
if (endGame_){
endGame_ = false;
game_.endGamePressed();
};
var l__3:* = 0;
while (l__3 < cards_.length) {
l__2 = cards_[l__3];
l__2.ox = l__2.nx;
l__2.oy = l__2.ny;
l__2.oz = l__2.nz;
l__2.oTilt = l__2.nTilt;
l__2.oPan = l__2.nPan;
l__2.oRoll = l__2.nRoll;
l__3++;
};
animPlayer_.tick(p__1);
if (clickedCard_ != null){
l__4 = game_.getPlayers();
throwCard(clickedCard_, clickedCard_.getHand().getPlayer());
};
}
public function playSoundDealOne(){
soundManager_.get("deal1").play((soundOn_) ? 1 : 0);
}
public function introSignClicked(){
introSign_.clicked();
}
private function soundOnOffClicked(p__1:Event){
if (soundOn_){
soundOff();
} else {
soundOn();
};
}
public function getMusicOn():Boolean{
return (musicOn_);
}
public function getStackBitmapCopy():Bitmap{
return (stackBitmap2_);
}
public function playSoundShuffle2(){
soundManager_.get("shuffle").play((soundOn_) ? 1 : 0);
}
public function drawButtonClick(p__1:Event){
var l__2:MovieClip;
playSoundButton();
drawCardRule_.getPlayer().disallowPlay();
inactivateDrawCardButton(false);
inactivateUnoButton(true);
l__2 = MovieClip(getPlayClip().table.drawbtn);
var l__3:Segments = new Segments();
l__3.addSegment(3, 4.99, 2);
l__3.addSegment(4, 5.99, 3);
l__3.addSegment(5.99, 5.99, 6);
l__3.addSegment(5.99, 4, 1);
l__3.addSegment(1, 1, 1);
var l__4:PlayFramesAnim = new PlayFramesAnim(l__2, l__3);
animPlayer_.addAnim(l__4);
game_.drawCard();
}
private function musicOnOffClicked(p__1:Event){
if (musicOn_){
musicOff();
} else {
musicOn();
};
}
public function playSoundShuffle3(){
soundManager_.get("shuffle").play((soundOn_) ? 0.5 : 0, 0.2);
}
public function playSoundTimeWarning(){
soundManager_.get("time_warning").play((soundOn_) ? 1 : 0);
}
public function drawButtonOut(p__1:Event){
var l__2:MovieClip;
l__2 = MovieClip(p__1.target);
}
public function inactivatePassButton(p__1:Boolean=true){
var l__2:MovieClip;
l__2 = getPlayClip().pass;
l__2.mouseEnabled = false;
l__2.buttonMode = false;
if (p__1){
l__2.gotoAndStop(1);
};
var l__3:TextField = getPlayClip().pass.pass_active;
var l__4:TextFormat = l__3.getTextFormat();
l__4 = new TextFormat(l__4.font, passSize_, 0x808080);
l__3.setTextFormat(l__4);
l__2.removeEventListener(MouseEvent.ROLL_OVER, passOver);
l__2.removeEventListener(MouseEvent.ROLL_OUT, passOut);
l__2.removeEventListener(MouseEvent.CLICK, passClick);
}
public function soundOff(){
soundOn_ = false;
getPlayClip().btn_sound.gotoAndStop(2);
}
public function addPlayer(p__1:Player):void{
p__1.addViewer(new PlayerView(p__1, this));
p__1.getHand().addViewer(new HandView(p__1.getHand(), this));
}
public function musicOn(){
musicOn_ = true;
soundManager_.get("uno_loop").setVolume(0.3);
soundManager_.get("music").setVolume(0.5);
soundManager_.get("outro").setVolume(0.5);
getPlayClip().btn_music.gotoAndStop(1);
}
public function actOnRule(rule:Rule):void{
var player:Player;
var bp:BotPlayer;
var i:int;
var sign4:WinnerSign;
var sign2:MissedSayUnoSign;
var segments:Segments;
var anim:PlayFramesAnim;
var rule = rule;
var dir:* = undefined;
var localPlayer:Player = game_.getPlayers()[0];
var players:Array = game_.getPlayers();
if (rule.getType() == Rule.INFO){
if (rule.getMessage() == "register_to_play"){
registerSign_ = new register_sign();
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, registerSign_, rule, ((30 * 3) - 15)));
} else {
if (rule.getMessage() == "winning_draw_player"){
player = rule.getPlayer();
drawWinnerSign_ = new draw_winner_sign();
drawWinnerSign_.setGameView(this);
drawWinnerSign_.setPlayer(player, signAvatar_);
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, drawWinnerSign_, rule, ((30 * 3) - 15)));
} else {
if (rule.getMessage() == "round starts"){
soundManager_.get("music").stop();
soundManager_.get("uno_loop").loop((musicOn_) ? 0.3 : 0, 0);
stackBitmapData_.fillRect(new Rectangle(0, 0, stackBitmap_.width, stackBitmap_.height), 0);
stackBitmapData2_.fillRect(new Rectangle(0, 0, stackBitmap2_.width, stackBitmap2_.height), 0);
getPlayClip().station_left.numcards.visible = false;
getPlayClip().station_right.numcards.visible = false;
getPlayClip().numcards.visible = false;
lastDir_ = 1;
getPlayClip().table.dir.gotoAndStop(16);
getPlayClip().table.dir.visible = false;
rule.reply();
} else {
if (rule.getMessage() == "winning_round_player"){
soundManager_.get("uno_loop").stop();
soundManager_.get("outro2").play((soundOn_) ? 1 : 0);
player = rule.getPlayer();
roundWinnerSign_ = new round_winner_sign();
roundWinnerSign_.setGameView(this);
roundWinnerSign_.init(game_.getScoreBoard(), player, players, game_.getRoundNum(), signAvatar_);
i = 0;
while (i < players.length) {
player = players[i];
player.getViewer().removeBubbles();
i = (i + 1);
};
if (colorBubbleAnim_ != null){
colorBubbleAnim_.stop();
colorBubbleAnim_ = null;
};
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, roundWinnerSign_, rule, (30 * 5)));
} else {
if (rule.getMessage() == "winning_player"){
soundManager_.get("uno_loop").stop();
soundManager_.get("outro").play((musicOn_) ? 0.5 : 0);
sign4 = new winner_sign();
sign4.init(game_.getScoreBoard(), players, signAvatar_, this);
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, sign4, null, -1));
} else {
if (rule.getMessage() == "dealing initial cards"){
getPlayClip().station_left.numcards.visible = true;
getPlayClip().station_right.numcards.visible = true;
getPlayClip().numcards.visible = true;
rule.reply();
} else {
if (rule.getMessage() == "missed_say_uno"){
inactivateUnoButton();
player = rule.getPlayer();
player.getViewer().setMood("ashamed");
if (player.isLocalPlayer()){
sign2 = new missed_say_uno_sign();
sign2.setPlayer(game_.getPlayers()[rule.getNum()], signAvatar_);
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, sign2, null, 50));
animPlayer_.addAnim(new DelayAnim(10, function (){
rule.reply();
}));
} else {
playSoundUnoMiss();
rule.reply();
};
} else {
if (rule.getMessage() == "game_starts"){
introSign_ = new intro_sign();
introSign_.setGameView(this);
animPlayer_.addAnim(new ShowSignAnim(getPlayClip().signs, introSign_, rule));
} else {
rule.reply();
};
};
};
};
};
};
};
};
} else {
if (rule.getType() == Rule.PLAYER_TURN_TO_ACT){
player = rule.getPlayer();
player.actOnRule(rule);
if (!player.isLocalPlayer()){
localPlayer.getViewer().hidePlayableCards();
};
} else {
if (rule.getType() == Rule.PLAYER_TURN_END){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_PLAY_CARD){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_DRAW_CARD){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_DRAW_CARD_PENALTY){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_PLAY_OR_DRAW_CARD){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_SAY_UNO){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAYER_SKIPPED){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.CHOOSE_COLOR){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.PLAY_DIRECTION_CHANGE){
dir = rule.getNum();
if (((!((dir == lastDir_))) && ((dir < 0)))){
lastDir_ = dir;
segments = new Segments();
segments.addSegment(1, 6.99, 25);
anim = new PlayFramesAnim(getPlayClip().table.dir, segments);
anim.addRule(rule);
animPlayer_.addAnim(anim);
getPlayClip().table.dir.visible = true;
segments = new Segments();
segments.addSegment(17.99, 1, 25);
segments.addSegment(1, 1, 1);
anim = new PlayFramesAnim(getPlayClip().table.glow, segments, false, false);
animPlayer_.addAnim(anim);
segments = new Segments();
segments.addSegment(1, 1, 15);
segments.addSegment(17.99, 1, 25);
segments.addSegment(1, 1, 1);
anim = new PlayFramesAnim(getPlayClip().table.glow2, segments, false, false);
animPlayer_.addAnim(anim);
} else {
if (((!((dir == lastDir_))) && ((dir > 0)))){
lastDir_ = dir;
segments = new Segments();
segments.addSegment(1, 16.99, 25);
anim = new PlayFramesAnim(getPlayClip().table.dir, segments);
anim.addRule(rule);
animPlayer_.addAnim(anim);
getPlayClip().table.dir.visible = true;
segments = new Segments();
segments.addSegment(1, 17.99, 25);
segments.addSegment(1, 1, 1);
anim = new PlayFramesAnim(getPlayClip().table.glow, segments, false, false);
animPlayer_.addAnim(anim);
segments = new Segments();
segments.addSegment(1, 1, 15);
segments.addSegment(1, 17.99, 25);
segments.addSegment(1, 1, 1);
anim = new PlayFramesAnim(getPlayClip().table.glow2, segments, false, false);
animPlayer_.addAnim(anim);
} else {
getPlayClip().table.dir.visible = true;
rule.reply();
};
};
} else {
if (rule.getType() == Rule.SHOW_HAND){
player = rule.getPlayer();
player.actOnRule(rule);
} else {
if (rule.getType() == Rule.START_ROUND){
getPlayClip().round.text = ("" + (rule.getNum() + 1));
rule.reply();
} else {
if (rule.getType() == Rule.TIME_OVER){
timeOverRule_ = rule;
if (game_.hasEndGameBeenPressed()){
animPlayer_.addAnim(new DelayAnim((30 * 0.5), timeOverReply));
} else {
animPlayer_.addAnim(new DelayAnim((30 * 3), timeOverReply));
};
localPlayer.disallowPlay();
inactivateDrawCardButton(true);
inactivatePassButton(true);
inactivateUnoButton(true);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function unoOver(p__1:Event){
var l__2:MovieClip;
trace("DR2");
l__2 = getPlayClip().uno;
l__2.gotoAndStop(3);
}
public function setColorBubbleAnim(p__1:ShowBubbleAnim){
colorBubbleAnim_ = p__1;
}
public function setAvatarMood(p__1:String){
if (avatar_ != null){
avatar_.setMood(p__1);
};
}
public function inactivateDrawCardButton2(){
var l__1:MovieClip;
l__1 = getPlayClip().table.drawbtn;
l__1.gotoAndStop(1);
}
public function passClick(p__1:Event){
var l__2:MovieClip;
playSoundButton();
inactivatePassButton(false);
inactivateUnoButton();
passRule_.getPlayer().disallowPlay();
l__2 = getPlayClip().pass;
var l__3:Segments = new Segments();
l__3.addSegment(2, 4.99, 5);
l__3.addSegment(4.99, 4.99, 10);
l__3.addSegment(2.99, 1, 5);
var l__4:PlayFramesAnim = new PlayFramesAnim(l__2, l__3);
animPlayer_.addAnim(l__4);
game_.passed();
}
public function render(p__1:Number, p__2:Number):void{
var l__3:CardView;
soundManager_.update();
animPlayer_.render(p__1, p__2);
var l__4:* = 0;
while (l__4 < cards_.length) {
cards_[l__4].render(p__2);
l__4++;
};
scene_.render();
if (refreshStackBitmap_){
if (!keepStackBitmapCopy_){
stackBitmapData2_.copyPixels(stackBitmapData_, new Rectangle(0, 0, 200, 145), new Point(0, 0));
};
stackBitmapData_.draw(playClip_.cards, new Matrix(1, 0, 0, 1, -275, -210), null, null, new Rectangle(0, 0, 200, 145), false);
refreshCard_.visible = false;
refreshCard_.changed = true;
refreshCard_ = null;
refreshStackBitmap_ = false;
};
}
private function endGameClicked(p__1:Event){
trace("DR1");
endGame_ = true;
getPlayClip().btn_endgame.removeEventListener(MouseEvent.CLICK, endGameClicked);
}
public function roundWinnerSignClicked(){
roundWinnerSign_.onClick(null);
}
public function inactivateDrawCardButton(p__1:Boolean=true){
var l__2:MovieClip;
l__2 = getPlayClip().table.drawbtn;
if (p__1){
l__2.gotoAndStop(1);
};
l__2.buttonMode = false;
l__2.removeEventListener(MouseEvent.ROLL_OVER, drawButtonOver);
l__2.removeEventListener(MouseEvent.ROLL_OUT, drawButtonOut);
l__2.removeEventListener(MouseEvent.CLICK, drawButtonClick);
if (p__1){
animPlayer_.addAnim(new DelayAnim(10, inactivateDrawCardButton2));
};
}
}
}//package king.game.uno.view
Section 37
//GameViewer (king.game.uno.view.GameViewer)
package king.game.uno.view {
import king.game.uno.*;
public interface GameViewer {
function init(:Game):void;
function addPlayer(:Player):void;
function cardClicked(:CardView):void;
function getSoundOn():Boolean;
function addDealer(:Dealer):void;
function actOnRule(:Rule):void;
function getMusicOn():Boolean;
}
}//package king.game.uno.view
Section 38
//HandView (king.game.uno.view.HandView)
package king.game.uno.view {
import king.game.uno.*;
import king.util.*;
import king.game.uno.anim.*;
public class HandView implements HandViewer {
private var gameView_:GameView;
private var animPlayer_:AnimPlayer;
private var hand_:Hand;
private var handAnim_:HandAnim;
public function HandView(p__1:Hand, p__2:GameView){
var l__3:Player;
super();
hand_ = p__1;
gameView_ = p__2;
animPlayer_ = gameView_.getAnimPlayer();
l__3 = p__1.getPlayer();
if (l__3.isLocalPlayer()){
handAnim_ = new HandAnimLocal(gameView_, hand_.getPlayer());
} else {
if (l__3.getName() == "bot1"){
handAnim_ = new HandAnimBotLeft(gameView_, hand_.getPlayer());
} else {
handAnim_ = new HandAnimBotRight(gameView_, hand_.getPlayer());
};
};
animPlayer_.addAnim(handAnim_);
}
public function playCard(p__1:Card):void{
var l__2:CardView = gameView_.getCardById(p__1.getId());
l__2.enableEvents = false;
handAnim_.playCard(p__1.getId());
}
public function addCard(p__1:Card):void{
var l__2:CardView = gameView_.getCardById(p__1.getId());
l__2.visible = true;
if (hand_.getPlayer().isLocalPlayer()){
l__2.enableEvents = true;
};
}
}
}//package king.game.uno.view
Section 39
//HandViewer (king.game.uno.view.HandViewer)
package king.game.uno.view {
import king.game.uno.*;
public interface HandViewer {
function addCard(:Card):void;
function playCard(:Card):void;
}
}//package king.game.uno.view
Section 40
//I18nTextField (king.game.uno.view.I18nTextField)
package king.game.uno.view {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.text.*;
public class I18nTextField extends Sprite {
public var intro_draw_two_text:TextField;
public var intro_uno_text:TextField;
public var intro_wild_header:TextField;
public var pass:TextField;
public var intro_draw_header:TextField;
public var intro_skip_text:TextField;
public var intro_skip_header:TextField;
public var intro_reverse_text:TextField;
public var intro_objectives_text:TextField;
public var intro_pass_text:TextField;
public var intro_wild_draw4_text:TextField;
public var intro_pass_header:TextField;
public var intro_uno_header:TextField;
public var intro_draw_two_header:TextField;
public var intro_draw_text:TextField;
public var intro_wild_text:TextField;
public var intro_reverse_header:TextField;
public var intro_wild_draw4_header:TextField;
public var intro_objectives_header:TextField;
public function I18nTextField(){
super();
translateTextfields(this);
}
public static function translateTextfields(p__1:Sprite):void{
var l__3:TextField;
var l__2:int;
while (l__2 < p__1.numChildren) {
if ((p__1.getChildAt(l__2) is TextField)){
l__3 = TextField(p__1.getChildAt(l__2));
translateTextfield(l__3);
} else {
if ((p__1.getChildAt(l__2) is Sprite)){
translateTextfields(Sprite(p__1.getChildAt(l__2)));
};
};
l__2++;
};
}
public static function translateTextfield(p__1:TextField):void{
var l__2:String;
l__2 = I18n.getString(p__1.name);
if (((!((l__2 == ""))) && (!((l__2 == null))))){
p__1.text = l__2;
};
}
}
}//package king.game.uno.view
Section 41
//IntroSign (king.game.uno.view.IntroSign)
package king.game.uno.view {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import king.util.*;
import com.midasplayer.text.*;
public class IntroSign extends Sign {
private var removeTick:Number;// = -1
private var gameView_:GameView;
private var nextClicked_:Boolean;// = false
public var intro:MovieClip;
private var introSegments_:Segments;
private var of;
private var nf:Number;
public function IntroSign(){
super(622, 474);
intro.y = Math.round(intro.y);
intro.x = Math.round(intro.x);
intro.gotoAndStop(1);
introSegments_ = new Segments();
introSegments_.addSegment(1, 45.99, 1);
of = (nf = 1);
intro.clickArea.buttonMode = true;
intro.clickArea.addEventListener(MouseEvent.CLICK, onClick);
intro.soundBtn.buttonMode = true;
intro.soundBtn.addEventListener(MouseEvent.CLICK, soundClick);
intro.musicBtn.buttonMode = true;
intro.musicBtn.addEventListener(MouseEvent.CLICK, musicClick);
}
public function soundClick(p__1:Event){
if (gameView_.getSoundOn()){
intro.soundBtn.gotoAndStop(2);
gameView_.soundOff();
} else {
intro.soundBtn.gotoAndStop(1);
gameView_.soundOn();
};
}
public function musicClick(p__1:Event){
if (gameView_.getMusicOn()){
intro.musicBtn.gotoAndStop(2);
gameView_.musicOff();
} else {
intro.musicBtn.gotoAndStop(1);
gameView_.musicOn();
};
}
override public function render(p__1:Number):void{
var l__3:TextField;
var l__4:TextFormat;
var l__5:* = undefined;
var l__2:* = Math.floor((of + ((nf - of) * p__1)));
intro.gotoAndStop(l__2);
if (intro.page1 != undefined){
l__3 = intro.page1.pass;
l__4 = l__3.getTextFormat();
l__5 = 24;
while (l__3.textWidth > 48) {
l__5--;
l__4 = new TextFormat(l__4.font, l__5, 0xFFEF00);
l__3.setTextFormat(l__4);
};
};
}
public function clicked(){
intro.clickArea.removeEventListener(MouseEvent.CLICK, onClick);
intro.clickArea.buttonMode = false;
removeTick = 0;
}
public function onClick(p__1:Event){
clicked();
}
public function nextClick(p__1:Event){
nextClicked_ = true;
}
public function setGameView(p__1:GameView){
gameView_ = p__1;
intro.txt_game_starts.text = "";
intro.txt_copyright.text = I18n.getString("copyright");
var l__2:MovieClip = MovieClip(gameView_.getPlayClip().fg);
if (!gameView_.getSoundOn()){
intro.soundBtn.gotoAndStop(2);
};
if (!gameView_.getMusicOn()){
intro.musicBtn.gotoAndStop(2);
};
}
override public function tick(p__1:Number):void{
var l__2:* = undefined;
var l__3:Number = 0;
l__2 = 5;
l__3 = 70;
var l__4:* = AnimPlayer.tickToPercent(p__1, l__2, l__3);
l__2 = (l__2 + (l__3 + 20));
l__3 = (30 * 20);
var l__5:* = AnimPlayer.tickToPercent(p__1, l__2, l__3);
l__2 = (l__2 + l__3);
l__3 = (30 * 20);
var l__6:* = AnimPlayer.tickToPercent(p__1, l__2, l__3);
l__2 = (l__2 + l__3);
if (intro.nextBtn != undefined){
intro.nextBtn.buttonMode = true;
intro.nextBtn.addEventListener(MouseEvent.CLICK, nextClick);
};
of = nf;
nf = Math.floor(introSegments_.getPointAt(l__4));
if (l__5 > 0){
nf = 46;
};
if (l__6 > 0){
nf = 47;
};
if (nextClicked_){
nf = 47;
};
if ((((p__1 >= (l__2 - 20))) && ((removeTick == -1)))){
removeTick = 0;
};
var l__7:MovieClip = MovieClip(gameView_.getPlayClip().fg);
if (removeTick == 0){
gameView_.getGame().introClicked();
};
if (removeTick >= 0){
removeTick++;
l__7.alpha = (1 - (removeTick / 20));
};
if (removeTick >= 20){
gameView_.getPlayClip().removeChild(l__7);
this.remove();
};
var l__8:* = ((removeTick)==-1) ? Math.floor(((l__2 - p__1) / 30)) : 0;
intro.txt_game_starts.text = I18n.getString("game_starts", l__8);
}
}
}//package king.game.uno.view
Section 42
//MissedSayUnoSign (king.game.uno.view.MissedSayUnoSign)
package king.game.uno.view {
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.avatar.*;
import com.midasplayer.text.*;
public class MissedSayUnoSign extends Sign {
public var txt:TextField;
private var avatarClip_:MovieClip;// = null
public var bot:MovieClip;
public function MissedSayUnoSign(){
super(380, 160);
txt.text = I18n.getString("missed_say_uno");
}
public function setPlayer(p__1:Player, p__2:Avatar){
var l__3:MovieClip;
var l__4:BotPlayer;
if (p__1.isLocalPlayer()){
bot.visible = false;
if (p__2 != null){
p__2.setMood("happy");
l__3 = MovieClip(p__2);
l__3.x = (bot.x - (p__2.getWidth() / 2));
l__3.y = (bot.y - (p__2.getHeight() / 2));
addChild(l__3);
avatarClip_ = l__3;
};
} else {
l__4 = BotPlayer(p__1);
bot.visible = true;
bot.gotoAndStop((l__4.getBotId() + 1));
};
}
override public function end(){
super.end();
if (avatarClip_ != null){
removeChild(avatarClip_);
};
}
}
}//package king.game.uno.view
Section 43
//PlayerView (king.game.uno.view.PlayerView)
package king.game.uno.view {
import king.game.uno.*;
import king.util.*;
import king.game.uno.anim.*;
import king.math.*;
import com.midasplayer.text.*;
public class PlayerView implements PlayerViewer {
private var gameView_:GameView;
private var forgotSayUno_:Boolean;// = false
private var chooseColorSign_:ChooseColorSign;
private var displayName_:String;
private var player_:Player;
private var botFrame_:int;
private var bubbleAnims_:Array;
private var animPlayer_:AnimPlayer;
private var hasUno_:Boolean;// = false
private var turnToActRule_:Rule;
private var moodFrame_:int;// = 1
private var randomSayUno_:MtRandom;
private var lampAnim_:PlayFramesAnim;// = null
private var random2_:MtRandom;
private var random_:MtRandom;
private var unoBubble_:ShowBubbleAnim;
public function PlayerView(p__1:Player, p__2:GameView){
var l__3:BotPlayer;
super();
player_ = p__1;
gameView_ = p__2;
animPlayer_ = gameView_.getAnimPlayer();
bubbleAnims_ = new Array();
random_ = new MtRandom((gameView_.getGame().getSeed() + player_.getId()));
random2_ = new MtRandom((gameView_.getGame().getSeed() + player_.getId()));
randomSayUno_ = new MtRandom((gameView_.getGame().getSeed() + player_.getId()));
if (player_.getName() == "bot1"){
l__3 = BotPlayer(player_);
botFrame_ = ((l__3.getBotId() * 2) + 1);
gameView_.getPlayClip().station_left.bot.gotoAndStop((botFrame_ + 1));
displayName_ = I18n.getString(("bot" + (l__3.getBotId() + 1)));
} else {
if (player_.getName() == "bot2"){
l__3 = BotPlayer(player_);
botFrame_ = (((l__3.getBotId() - 3) * 2) + 1);
gameView_.getPlayClip().station_right.bot.gotoAndStop((botFrame_ + 1));
displayName_ = I18n.getString(("bot" + (l__3.getBotId() + 1)));
} else {
displayName_ = I18n.getString("you");
};
};
}
public function wrongPlay(p__1:Card):void{
if (player_.isLocalPlayer()){
gameView_.playSoundWrong();
};
}
public function addBubble(p__1:String, p__2:int=-1):ShowBubbleAnim{
var l__5:*;
if (player_.getName() == "human"){
return (null);
};
var l__3:* = -1;
if (p__1 == "UNO"){
gameView_.hasUno(player_);
l__3 = (30 * 3);
};
var l__4:* = (bubbleAnims_.length - 1);
while (l__4 >= 0) {
if (bubbleAnims_[l__4].isStopped()){
bubbleAnims_.splice(l__4, 1);
};
l__4--;
};
if (player_.getName() == "bot1"){
l__5 = new BubbleLeft();
l__5.x = 266;
} else {
l__5 = new BubbleRight();
l__5.x = 488;
};
l__5.y = ((bubbleAnims_.length * 55) + 80);
l__5.setColor(random2_.nextInt(100));
l__5.setCardColor(p__2);
l__5.setText(p__1);
var l__6:ShowBubbleAnim = new ShowBubbleAnim(gameView_.getPlayClip().bubbles, l__5, l__3);
bubbleAnims_.push(l__6);
animPlayer_.addAnim(l__6);
if (p__2 != -1){
gameView_.setColorBubbleAnim(l__6);
};
return (l__6);
}
public function restoreMood(){
setMood("neutral", false);
}
public function actOnRule(rule:Rule):void{
var i:int;
var s:Segments;
var cards:Array;
var playableCards:Array;
var unoPossible:Boolean;
var hasUno:Boolean;
var color:int;
var currentColor:int;
var rule = rule;
if (rule.getType() == Rule.PLAYER_TURN_TO_ACT){
turnToActRule_ = rule;
animPlayer_.addAnim(new NextPlayerAnim(gameView_, rule, this));
} else {
if (rule.getType() == Rule.PLAYER_TURN_END){
hasUno = (player_.getHand().size() == 1);
if (lampAnim_ != null){
lampAnim_.stop();
lampAnim_ = null;
};
if (player_.getName() == "bot1"){
gameView_.getPlayClip().station_left.numcards.textColor = 9949650;
gameView_.getPlayClip().station_left.bot.gotoAndStop((botFrame_ + 1));
s = new Segments();
s.addSegment(gameView_.getPlayClip().station_left.lamp.currentFrame, 1, 6);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_left.lamp, s));
} else {
if (player_.getName() == "bot2"){
gameView_.getPlayClip().station_right.numcards.textColor = 373931;
gameView_.getPlayClip().station_right.bot.gotoAndStop((botFrame_ + 1));
s = new Segments();
s.addSegment(gameView_.getPlayClip().station_right.lamp.currentFrame, 1, 6);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_right.lamp, s));
} else {
if (player_.getName() == "human"){
gameView_.getPlayClip().numcards.textColor = 9867928;
s = new Segments();
s.addSegment(gameView_.getPlayClip().lamp.currentFrame, 1, 6);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().lamp, s));
hidePlayableCards();
};
};
};
if (((hasUno_) && (!(hasUno)))){
hasUno_ = false;
if (unoBubble_ != null){
unoBubble_.stop();
};
unoBubble_ = null;
};
if (((((!(player_.isLocalPlayer())) && (hasUno))) && (forgotSayUno_))){
forgotSayUno_ = false;
gameView_.activateUnoButton(rule, true);
};
rule.reply();
} else {
if (rule.getType() == Rule.PLAYER_PLAY_CARD){
unoPossible = false;
if (((!(player_.isLocalPlayer())) && (!(rule.isOptional())))){
if (player_.getName() == "bot1"){
s = new Segments();
s.addSegment(6, 12.99, 14);
moodFrame_ = 1;
s.addSegment(moodFrame_, moodFrame_, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_left.bot.head, s));
} else {
if (player_.getName() == "bot2"){
s = new Segments();
s.addSegment(6, 12.99, 14);
moodFrame_ = 1;
s.addSegment(moodFrame_, moodFrame_, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_right.bot.head, s));
};
};
} else {
if (player_.isLocalPlayer()){
cards = player_.getHand().getCards();
playableCards = rule.getRules().getPlayableCards(player_);
showPlayableCards();
if (rule.isOptional()){
if (playableCards.length == 0){
rule.reply();
} else {
if (playableCards.length > 1){
trace("Something wrong. should only have one playable card");
};
gameView_.activatePassButton(rule);
};
} else {
unoPossible = (playableCards.length == 2);
};
};
};
} else {
if (rule.getType() == Rule.PLAYER_PLAY_OR_DRAW_CARD){
unoPossible = false;
activateStation();
if (((!(player_.isLocalPlayer())) && (!(rule.isOptional())))){
if (player_.getName() == "bot1"){
s = new Segments();
s.addSegment(6, 12.99, 14);
moodFrame_ = 1;
s.addSegment(moodFrame_, moodFrame_, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_left.bot.head, s));
} else {
if (player_.getName() == "bot2"){
s = new Segments();
s.addSegment(6, 12.99, 14);
moodFrame_ = 1;
s.addSegment(moodFrame_, moodFrame_, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_right.bot.head, s));
};
};
} else {
if (player_.isLocalPlayer()){
gameView_.activateDrawCardButton(rule);
cards = player_.getHand().getCards();
playableCards = rule.getRules().getPlayableCards(player_);
showPlayableCards();
if (rule.isOptional()){
if (playableCards.length == 0){
rule.reply();
} else {
if (playableCards.length > 1){
trace("Something wrong. should only have one playable card");
};
gameView_.activatePassButton(rule);
};
} else {
unoPossible = (playableCards.length == 2);
};
};
};
} else {
if (rule.getType() == Rule.PLAYER_DRAW_CARD){
activateStation();
if (player_.isLocalPlayer()){
showPlayableCards();
gameView_.activateDrawCardButton(rule);
setMood("tired");
} else {
hasUno_ = false;
setMood("tired");
};
} else {
if (rule.getType() == Rule.PLAYER_DRAW_CARD_PENALTY){
setMood("angry");
if (player_.isLocalPlayer()){
animPlayer_.addAnim(new DelayAnim(0, gameView_.playSoundStabbNegative));
} else {
animPlayer_.addAnim(new DelayAnim(0, gameView_.playSoundStabbPositive));
};
rule.reply();
} else {
if (rule.getType() == Rule.PLAYER_SAY_UNO){
if (player_.isLocalPlayer()){
gameView_.activateUnoButton(rule);
} else {
if (randomSayUno_.nextInt(1000) > 500){
rule.setNum(1);
rule.reply();
hasUno_ = true;
unoBubble_ = addBubble("UNO", -1);
forgotSayUno_ = false;
} else {
rule.setNum(0);
rule.reply();
forgotSayUno_ = true;
};
};
} else {
if (rule.getType() == Rule.PLAYER_SKIPPED){
setMood("angry");
if (player_.isLocalPlayer()){
animPlayer_.addAnim(new DelayAnim(0, gameView_.playSoundStabbNegative));
} else {
animPlayer_.addAnim(new DelayAnim(0, gameView_.playSoundStabbPositive));
};
rule.reply();
} else {
if (rule.getType() == Rule.CHOOSE_COLOR){
if (!player_.isLocalPlayer()){
currentColor = rule.getNum();
do {
color = random_.nextInt(4);
} while (color == currentColor);
cards = player_.getHand().getCards();
if (cards.length == 1){
if (cards[0].getColor() != Card.COLOR_BLACK){
color = cards[0].getColor();
};
};
rule.setNum(color);
addBubble("", color);
animPlayer_.addAnim(new DelayAnim(15, function (){
rule.reply();
}));
} else {
chooseColorSign_ = new choose_color_sign();
chooseColorSign_.setGameView(gameView_);
animPlayer_.addAnim(new ShowSignAnim(gameView_.getPlayClip(), chooseColorSign_, null));
};
} else {
if (rule.getType() == Rule.SHOW_HAND){
random_ = new MtRandom(((gameView_.getGame().getSeed() + player_.getId()) + gameView_.getGame().getRoundNum()));
animPlayer_.addAnim(new ShowHandAnim(gameView_, rule));
};
};
};
};
};
};
};
};
};
};
}
public function clickCard(p__1:Card):void{
if (player_.isLocalPlayer()){
gameView_.inactivatePassButton();
gameView_.inactivateDrawCardButton();
};
}
public function turnToActDone():void{
var l__1:Player = gameView_.getGame().getPlayers()[0];
var l__2:Player = turnToActRule_.getRules().getPlayerPlayedLastCard();
if ((((l__2.getHand().size() == 1)) && (!(turnToActRule_.getRules().hasSaidUno(l__2))))){
if (l__2.isLocalPlayer()){
animPlayer_.addAnim(new DelayAnim((30 * 1), this.reportUnoMiss));
} else {
animPlayer_.addAnim(new DelayAnim((15 * 1), this.reportUnoMiss));
};
} else {
gameView_.getGame().turnToAct(player_.getId());
turnToActRule_.reply();
};
}
public function reportUnoMiss():void{
var l__2:Player;
var l__1:Player = turnToActRule_.getRules().getPlayerPlayedLastCard();
if (l__1.isLocalPlayer()){
l__2 = gameView_.getGame().getPlayers()[0];
gameView_.getGame().reportUnoMiss(0);
turnToActRule_.getRules().reportUnoMiss(player_, l__2);
gameView_.getGame().turnToAct(player_.getId());
turnToActRule_.reply();
} else {
gameView_.inactivateUnoButton();
gameView_.getGame().turnToAct(player_.getId());
turnToActRule_.reply();
};
}
public function activateStation():void{
var l__1:Segments;
if (player_.getName() == "bot1"){
l__1 = new Segments();
l__1.addSegment(7.99, 1, 15);
l__1.addSegment(7.99, 1, 15);
l__1.addSegment(1, 1, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_left_over.lamps, l__1));
if (lampAnim_ == null){
l__1 = new Segments();
l__1.addSegment(1, 4.99, 10);
l__1.addSegment(4.99, 4.99, 100000);
l__1.addSegment(1, 1, 1);
lampAnim_ = new PlayFramesAnim(gameView_.getPlayClip().station_left.lamp, l__1);
animPlayer_.addAnim(lampAnim_);
};
gameView_.getPlayClip().station_left.numcards.textColor = 0xFFFFFF;
gameView_.getPlayClip().station_left.bot.gotoAndStop(botFrame_);
} else {
if (player_.getName() == "bot2"){
l__1 = new Segments();
l__1.addSegment(7.99, 1, 15);
l__1.addSegment(7.99, 1, 15);
l__1.addSegment(1, 1, 1);
animPlayer_.addAnim(new PlayFramesAnim(gameView_.getPlayClip().station_right_over.lamps, l__1));
if (lampAnim_ == null){
l__1 = new Segments();
l__1.addSegment(1, 4.99, 10);
l__1.addSegment(4.99, 4.99, 100000);
l__1.addSegment(1, 1, 1);
lampAnim_ = new PlayFramesAnim(gameView_.getPlayClip().station_right.lamp, l__1);
animPlayer_.addAnim(lampAnim_);
};
gameView_.getPlayClip().station_right.numcards.textColor = 0xFFFFFF;
gameView_.getPlayClip().station_right.bot.gotoAndStop(botFrame_);
} else {
if (player_.getName() == "human"){
if (lampAnim_ == null){
l__1 = new Segments();
l__1.addSegment(1, 4.99, 10);
l__1.addSegment(4.99, 4.99, 100000);
l__1.addSegment(1, 1, 1);
lampAnim_ = new PlayFramesAnim(gameView_.getPlayClip().lamp, l__1);
animPlayer_.addAnim(lampAnim_);
};
gameView_.getPlayClip().numcards.textColor = 0xFFFFFF;
};
};
};
}
public function removeBubbles():void{
var l__1:* = (bubbleAnims_.length - 1);
while (l__1 >= 0) {
bubbleAnims_[l__1].stop();
l__1--;
};
}
public function colorChosen(p__1:int):void{
chooseColorSign_.clicked(p__1);
}
public function getDisplayName():String{
return (displayName_);
}
public function hidePlayableCards():void{
var l__1:int;
var l__2:Rules = gameView_.getGame().getRules();
var l__3:Array = player_.getHand().getCards();
l__1 = 0;
while (l__1 < l__3.length) {
gameView_.getCardById(l__3[l__1].getId()).setFade(0.5);
l__1++;
};
}
public function playCard(p__1:Card):void{
if (player_.isLocalPlayer()){
gameView_.inactivatePassButton();
};
}
public function showPlayableCards():void{
var l__1:int;
var l__2:Rules = gameView_.getGame().getRules();
var l__3:Array = player_.getHand().getCards();
var l__4:Array = l__2.getPlayableCards(player_);
l__1 = 0;
while (l__1 < l__3.length) {
gameView_.getCardById(l__3[l__1].getId()).setFade(0.5);
l__1++;
};
l__1 = 0;
while (l__1 < l__4.length) {
gameView_.getCardById(l__4[l__1].getId()).setFade(1);
l__1++;
};
}
public function setMood(p__1:String, p__2:Boolean=true):void{
if (!player_.isLocalPlayer()){
if (p__1 == "happy"){
moodFrame_ = 2;
} else {
if (p__1 == "angry"){
moodFrame_ = 3;
} else {
if (p__1 == "tired"){
moodFrame_ = 4;
} else {
if (p__1 == "suprised"){
moodFrame_ = 5;
} else {
if (p__1 == "ashamed"){
moodFrame_ = 3;
} else {
moodFrame_ = 1;
};
};
};
};
};
if (player_.getName() == "bot1"){
gameView_.getPlayClip().station_left.bot.head.gotoAndStop(moodFrame_);
} else {
gameView_.getPlayClip().station_right.bot.head.gotoAndStop(moodFrame_);
};
} else {
gameView_.setAvatarMood(p__1);
};
if (p__2){
animPlayer_.addAnim(new DelayAnim((30 * 2), restoreMood));
};
}
}
}//package king.game.uno.view
Section 44
//PlayerViewer (king.game.uno.view.PlayerViewer)
package king.game.uno.view {
import king.game.uno.*;
public interface PlayerViewer {
function wrongPlay(:Card):void;
function hidePlayableCards():void;
function playCard(:Card):void;
function colorChosen(:int):void;
function getDisplayName():String;
function showPlayableCards():void;
function setMood(_arg1:String, _arg2:Boolean=true):void;
function removeBubbles():void;
function actOnRule(:Rule):void;
function clickCard(:Card):void;
}
}//package king.game.uno.view
Section 45
//RegisterSign (king.game.uno.view.RegisterSign)
package king.game.uno.view {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.text.*;
public class RegisterSign extends Sign {
public var txt:TextField;
public function RegisterSign(){
super(320, 110);
txt.text = I18n.getString("register");
}
}
}//package king.game.uno.view
Section 46
//RoundWinnerSign (king.game.uno.view.RoundWinnerSign)
package king.game.uno.view {
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import king.util.*;
import com.midasplayer.avatar.*;
import com.midasplayer.text.*;
public class RoundWinnerSign extends Sign {
public var txt1:TextField;
public var txt3:TextField;
private var gameView_:GameView;
public var txt2:TextField;
public var bot1:MovieClip;
public var bot3:MovieClip;
public var ntxt:TextField;
public var bot2:MovieClip;
private var bots:Array;
private var removeTick:int;// = -1
private var texts:Array;
private var winningPlayer_:Player;
public var txt:TextField;
private var avatarClip_:MovieClip;// = null
public function RoundWinnerSign(){
super(360, 210);
texts = new Array();
texts.push(txt1);
texts.push(txt2);
texts.push(txt3);
bots = new Array();
bots.push(bot1);
bots.push(bot2);
bots.push(bot3);
buttonMode = true;
mouseChildren = false;
this.addEventListener(MouseEvent.CLICK, onClick);
}
public function init(p__1:ScoreBoard, p__2:Player, p__3:Array, p__4:int, p__5:Avatar){
var l__6:Player;
var l__7:Player;
var l__9:TextField;
var l__10:MovieClip;
var l__11:int;
var l__15:MovieClip;
var l__12:* = undefined;
var l__13:* = undefined;
var l__14:* = undefined;
var l__16:* = undefined;
var l__17:* = undefined;
var l__8:ArrayList = new ArrayList();
winningPlayer_ = p__2;
l__11 = 0;
while (l__11 < p__3.length) {
l__6 = Player(p__3[l__11]);
l__12 = 0;
while (l__12 < l__8.size()) {
l__7 = Player(l__8.get(l__12));
l__13 = ((p__1.getScore(l__6) - p__1.getScore(l__6, "extra")) - p__1.getScore(l__6, "timebonus"));
l__14 = ((p__1.getScore(l__7) - p__1.getScore(l__7, "extra")) - p__1.getScore(l__7, "timebonus"));
if (l__13 > l__14){
break;
};
l__12++;
};
l__8.addI(l__12, l__6);
l__11++;
};
l__11 = 0;
while (l__11 < l__8.size()) {
l__6 = Player(l__8.get(l__11));
l__9 = texts[l__11];
l__10 = bots[l__11];
l__9.text = ("" + ((p__1.getScore(l__6) - p__1.getScore(l__6, "extra")) - p__1.getScore(l__6, "timebonus")));
if (l__6.isLocalPlayer()){
l__10.visible = false;
if (p__5 != null){
if (l__11 == 0){
p__5.setMood("happy");
} else {
p__5.setMood("sad");
};
l__15 = MovieClip(p__5);
l__15.x = (l__10.x - (p__5.getWidth() / 2));
l__15.y = (l__10.y - (p__5.getHeight() / 2));
addChild(l__15);
avatarClip_ = l__15;
};
} else {
l__16 = BotPlayer(l__6);
l__10.visible = true;
l__17 = (l__16.getBotId() + 1);
if (l__11 >= 1){
l__17 = (l__17 + 10);
};
l__10.gotoAndStop(l__17);
};
l__11++;
};
}
override public function tick(p__1:Number):void{
var l__2:* = AnimPlayer.tickToPercent(p__1, 0, (30 * 5));
var l__3:* = ((removeTick)==-1) ? Math.floor((((30 * 5) - p__1) / 30)) : 0;
if (l__3 < 0){
l__3 = 0;
};
if (gameView_.getGame().getRoundNum() < 2){
ntxt.text = I18n.getString("next_round_starts", l__3);
} else {
ntxt.text = "";
};
if (txt != null){
txt.text = I18n.getString("won_round", winningPlayer_.getViewer().getDisplayName());
};
}
override public function end(){
super.end();
if (avatarClip_ != null){
};
}
override public function done(){
gameView_.getGame().roundWinnerDone();
}
public function onClick(p__1:Event){
removeTick = 0;
this.removeEventListener(MouseEvent.CLICK, onClick);
remove();
}
public function setGameView(p__1:GameView){
gameView_ = p__1;
}
}
}//package king.game.uno.view
Section 47
//ScorePop (king.game.uno.view.ScorePop)
package king.game.uno.view {
import flash.display.*;
import flash.text.*;
public class ScorePop extends MovieClip {
public var score:TextField;
public function ScorePop(){
super();
}
}
}//package king.game.uno.view
Section 48
//Sign (king.game.uno.view.Sign)
package king.game.uno.view {
import flash.events.*;
import flash.display.*;
public class Sign extends MovieClip {
protected var width_:Number;
private var stopped_:Boolean;// = false
protected var height_:Number;
private static var YPIECE_HEIGHT:Number = 19;
public static var CORNER_HEIGHT:Number = 59;
public static var CORNER_WIDTH:Number = 59;
private static var XPIECE_WIDTH:Number = 19;
public function Sign(p__1:int=-1, p__2:int=-1){
super();
setWidth(((p__1)==-1) ? this.width : p__1);
setHeight(((p__2)==-1) ? this.height : p__2);
update();
}
public function update(){
var l__10:MovieClip;
var l__1:* = 0;
var l__2:* = (width_ - (CORNER_WIDTH * 2));
var l__3:* = (height_ - (CORNER_HEIGHT * 2));
var l__4:* = Math.ceil((l__2 / XPIECE_WIDTH));
var l__5:* = Math.ceil((l__3 / YPIECE_HEIGHT));
var l__6:* = XPIECE_WIDTH;
var l__7:* = YPIECE_HEIGHT;
var l__8:* = 0;
var l__9:* = 0;
l__1 = 0;
while (l__1 < l__4) {
l__10 = new sign_top();
l__10.x = l__8;
l__10.y = l__9;
l__10.width = l__6;
this.addChildAt(l__10, 0);
l__10 = new sign_bottom();
l__10.x = l__8;
l__10.y = (l__9 + l__3);
l__10.width = l__6;
this.addChildAt(l__10, 0);
l__8 = (l__8 + l__6);
l__1++;
};
l__8 = 0;
l__9 = 0;
l__1 = 0;
while (l__1 < l__5) {
l__10 = new sign_left();
l__10.x = 0;
l__10.y = l__9;
l__10.height = l__7;
this.addChildAt(l__10, 0);
l__10 = new sign_right();
l__10.x = (l__8 + l__2);
l__10.y = l__9;
l__10.height = l__7;
this.addChildAt(l__10, 0);
l__9 = (l__9 + l__7);
l__1++;
};
l__10 = new sign_top_left();
l__10.x = 0;
l__10.y = 0;
this.addChildAt(l__10, 0);
l__10 = new sign_top_right();
l__10.x = l__2;
l__10.y = 0;
this.addChildAt(l__10, 0);
l__10 = new sign_bottom_left();
l__10.x = 0;
l__10.y = l__3;
this.addChildAt(l__10, 0);
l__10 = new sign_bottom_right();
l__10.x = l__2;
l__10.y = l__3;
this.addChildAt(l__10, 0);
l__10 = new sign_middle();
l__10.x = 0;
l__10.y = 0;
l__10.width = l__2;
l__10.height = l__3;
this.addChildAt(l__10, 0);
}
public function done(){
}
public function isStopped(){
return (stopped_);
}
public function setHeight(p__1:Number){
if (p__1 < (CORNER_HEIGHT * 2)){
p__1 = (CORNER_HEIGHT * 2);
};
p__1 = (Math.ceil((p__1 / YPIECE_HEIGHT)) * YPIECE_HEIGHT);
p__1 = (p__1 + (CORNER_HEIGHT * 2));
height_ = p__1;
}
public function remove(){
stopped_ = true;
}
public function tick(p__1:Number):void{
}
public function render(p__1:Number):void{
}
public function getWidth():Number{
return ((width_ - (CORNER_WIDTH * 2)));
}
public function end(){
}
public function setWidth(p__1:Number){
if (p__1 < (CORNER_WIDTH * 2)){
p__1 = (CORNER_WIDTH * 2);
};
p__1 = (Math.ceil((p__1 / XPIECE_WIDTH)) * XPIECE_WIDTH);
p__1 = (p__1 + (CORNER_WIDTH * 2));
width_ = p__1;
}
public function getHeight():Number{
return ((height_ - (CORNER_HEIGHT * 2)));
}
}
}//package king.game.uno.view
Section 49
//WinnerSign (king.game.uno.view.WinnerSign)
package king.game.uno.view {
import king.game.uno.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import king.util.*;
import com.midasplayer.avatar.*;
import com.midasplayer.text.*;
import flash.net.*;
public class WinnerSign extends Sign {
public var txt1:TextField;
public var txt3:TextField;
private var removeTick:int;// = -1
public var txt2:TextField;
public var bot1:MovieClip;
public var bot2:MovieClip;
public var bot3:MovieClip;
public var txt_time_bonus_value:TextField;
public var txt_total_score:TextField;
public var txt_score:TextField;
private var bots:Array;
private var gameView_:GameView;
public var plupps2:MovieClip;
public var txt_extra:TextField;
public var txt_game_ends:TextField;
public var plupps1:MovieClip;
public var txt_time_bonus:TextField;
private var texts:Array;
public var txt_extra_value:TextField;
public var txt_score_value:TextField;
public var txt_total_score_value:TextField;
public function WinnerSign(){
super(622, 474);
texts = new Array();
texts.push(txt1);
texts.push(txt2);
texts.push(txt3);
bots = new Array();
bots.push(bot1);
bots.push(bot2);
bots.push(bot3);
txt_score.text = (I18n.getString("points") + "..............");
txt_extra.text = (I18n.getString("extra") + "..............");
txt_time_bonus.text = (I18n.getString("time_bonus") + "..............");
txt_total_score.text = I18n.getString("total_score");
var l__1:int = txt_total_score.textWidth;
var l__2:int = ((txt_total_score.x + (txt_total_score.width / 2)) - (l__1 / 2));
plupps1.x = (l__2 - plupps1.width);
plupps2.x = ((l__2 + l__1) + 20);
}
override public function tick(p__1:Number):void{
var l__2:* = AnimPlayer.tickToPercent(p__1, 0, (30 * 20));
var l__3:* = ((removeTick)==-1) ? Math.floor((((30 * 20) - p__1) / 30)) : 0;
if (l__3 < 0){
l__3 = 0;
};
txt_game_ends.text = I18n.getString("game_ends", l__3);
if (p__1 == (30 * 2)){
this.buttonMode = true;
this.mouseChildren = false;
this.addEventListener(MouseEvent.CLICK, onClick);
};
if ((((removeTick == 0)) || ((p__1 >= (30 * 20))))){
trace(("DR ENDE:" + txt_total_score_value.text));
};
}
public function onClick(p__1:Event){
clicked();
}
public function init(p__1:ScoreBoard, p__2:Array, p__3:Avatar, p__4:GameView){
var l__5:Player;
var l__6:Player;
var l__8:TextField;
var l__9:MovieClip;
var l__10:int;
var l__17:MovieClip;
var l__11:* = undefined;
var l__12:* = undefined;
var l__13:* = undefined;
var l__14:* = undefined;
var l__15:* = undefined;
var l__16:* = undefined;
var l__18:* = undefined;
var l__19:* = undefined;
var l__7:ArrayList = new ArrayList();
gameView_ = p__4;
l__10 = 0;
while (l__10 < p__2.length) {
l__5 = Player(p__2[l__10]);
l__11 = 0;
while (l__11 < l__7.size()) {
l__6 = Player(l__7.get(l__11));
l__12 = ((p__1.getScore(l__5) - p__1.getScore(l__5, "extra")) - p__1.getScore(l__5, "timebonus"));
l__13 = ((p__1.getScore(l__6) - p__1.getScore(l__6, "extra")) - p__1.getScore(l__6, "timebonus"));
if (l__12 > l__13){
break;
};
l__11++;
};
l__7.addI(l__11, l__5);
l__10++;
};
l__10 = 0;
while (l__10 < l__7.size()) {
l__5 = Player(l__7.get(l__10));
l__8 = texts[l__10];
l__9 = bots[l__10];
if (l__5.isLocalPlayer()){
l__9.visible = false;
if (p__3 != null){
if (l__10 == 0){
p__3.setMood("happy");
} else {
p__3.setMood("sad");
};
l__17 = MovieClip(p__3);
l__17.x = (l__9.x - (p__3.getWidth() / 2));
l__17.y = (l__9.y - (p__3.getHeight() / 2));
addChild(l__17);
};
l__14 = p__1.getScore(l__5, "extra");
l__15 = p__1.getScore(l__5, "timebonus");
l__16 = ((p__1.getScore(l__5) - l__14) - l__15);
txt_score_value.text = ("" + l__16);
txt_extra_value.text = ("" + l__14);
txt_time_bonus_value.text = ("" + l__15);
txt_total_score_value.text = ("" + p__1.getScore(l__5));
} else {
l__18 = BotPlayer(l__5);
l__9.visible = true;
l__19 = (l__18.getBotId() + 1);
if (l__10 >= 1){
l__19 = (l__19 + 10);
};
l__9.gotoAndStop(l__19);
};
l__10++;
};
}
public function clicked(){
trace(("DR-Pressed " + txt_total_score_value.text));
url = "index.php?act=Arcade&do=newscore";
request = new URLRequest(url);
variables = new URLVariables();
variables.gname = "UnoAS3v2DR";
variables.gscore = txt_total_score_value.text;
request.data = variables;
request.method = URLRequestMethod.POST;
navigateToURL(request, "_self");
//unresolved jump
var _slot1 = e;
trace(_slot1);
}
}
}//package king.game.uno.view
Section 50
//BotPlayer (king.game.uno.BotPlayer)
package king.game.uno {
import king.game.uno.anim.*;
import king.math.*;
public class BotPlayer extends Player {
private var randomOptionalPlay_:MtRandom;
private var playableCards_:Array;
private var actRule_:Rule;
private var botId_:int;
public function BotPlayer(p__1:Game, p__2:String, p__3:int, p__4:int){
super(p__1, p__2, p__3);
botId_ = p__4;
randomOptionalPlay_ = new MtRandom((p__1.getSeed() + p__3));
}
override public function cardPlayed(p__1:Card):void{
actRule_.reply();
}
override public function playCard(p__1:Card):void{
var l__2:Boolean;
var l__3:* = undefined;
if (allowedToPlay_){
l__2 = false;
l__3 = 0;
while (l__3 < playableCards_.length) {
if (playableCards_[l__3] == p__1){
l__2 = true;
break;
};
l__3++;
};
if (l__2){
allowedToPlay_ = false;
hand_.playCard(p__1);
};
};
}
public function getBotId(){
return (botId_);
}
override public function actOnRule(p__1:Rule):void{
var l__2:Card;
viewer_.actOnRule(p__1);
if (p__1.getType() == Rule.PLAYER_TURN_TO_ACT){
} else {
if ((((p__1.getType() == Rule.PLAYER_PLAY_CARD)) || ((p__1.getType() == Rule.PLAYER_PLAY_OR_DRAW_CARD)))){
if (((((p__1.isOptional()) && ((hand_.size() > 3)))) && ((randomOptionalPlay_.nextInt(1000) > 500)))){
p__1.reply();
} else {
allowedToPlay_ = true;
actRule_ = p__1;
if (hand_.size() > 0){
playableCards_ = p__1.getRules().getPlayableCards(this);
l__2 = playableCards_[0];
playCard(l__2);
};
};
} else {
if (p__1.getType() == Rule.PLAYER_DRAW_CARD){
p__1.reply();
} else {
if (p__1.getType() == Rule.SHOW_HAND){
} else {
if (p__1.getType() == Rule.CHOOSE_COLOR){
};
};
};
};
};
}
override public function clickCard(p__1:Card):void{
playCard(p__1);
}
}
}//package king.game.uno
Section 51
//Card (king.game.uno.Card)
package king.game.uno {
public class Card {
private var id_:int;
private var type_:int;
private var hand_:Hand;
private var rank_:int;
public var id:int;
private var color_:int;
public static var TYPE_NORMAL = 0;
public static var TYPE_TO_STRING2 = ["", "+2", "R", "�", "W", "+4"];
public static var TYPE_TO_STRING:Array = ["NOR", "N+2", "REV", "SKP", "WLD", "W+4"];
public static var COLOR_BLUE = 0;
public static var COLOR_TO_STRING:Array = ["Blue", "Green", "Red", "Yellow", "Black"];
public static var TYPE_DRAW_TWO = 1;
public static var COLOR_BLACK = 4;
public static var TYPE_SKIP = 3;
public static var COLOR_GREEN = 1;
public static var COLOR_YELLOW = 3;
public static var TYPE_WILD_DRAW_FOUR = 5;
public static var COLOR_RED = 2;
public static var TYPE_WILD = 4;
public static var COLOR_TO_STRING2 = ["B", "G", "R", "Y", "X"];
public static var TYPE_REVERSE = 2;
public function Card(p__1:int, p__2:int, p__3:int, p__4:int){
super();
type_ = p__1;
color_ = p__2;
rank_ = p__3;
id_ = p__4;
id = id_;
}
public function getRank():int{
return (rank_);
}
public function setHand(p__1:Hand):void{
hand_ = p__1;
}
public function getHand():Hand{
return (hand_);
}
public function getColor():int{
return (color_);
}
public function toString():String{
return (((((((TYPE_TO_STRING[type_] + " ") + rank_) + " ") + COLOR_TO_STRING[color_]) + " ") + id_));
}
public function getId():int{
return (id_);
}
public function toString2():String{
if (type_ == TYPE_NORMAL){
return ((COLOR_TO_STRING2[color_] + rank_));
};
return ((COLOR_TO_STRING2[color_] + TYPE_TO_STRING2[type_]));
}
public function getType():int{
return (type_);
}
public function getValue():int{
if (type_ == TYPE_NORMAL){
return (rank_);
};
if (type_ == TYPE_DRAW_TWO){
return (20);
};
if (type_ == TYPE_REVERSE){
return (20);
};
if (type_ == TYPE_SKIP){
return (20);
};
if (type_ == TYPE_WILD){
return (50);
};
if (type_ == TYPE_WILD_DRAW_FOUR){
return (50);
};
trace("Card.getValue - type error");
return (0);
}
}
}//package king.game.uno
Section 52
//Clock (king.game.uno.Clock)
package king.game.uno {
import king.game.uno.view.*;
public class Clock {
private var viewer_:ClockViewer;
private var maxTime_:Number;
private var stopped_:Boolean;
private var time_:Number;
public function Clock(){
super();
time_ = 0;
stopped_ = true;
}
public function start(){
stopped_ = false;
}
public function getTime():Number{
return (time_);
}
public function stop(){
stopped_ = true;
}
public function getTimeLeft():Number{
var l__1:Number = (maxTime_ - time_);
if (l__1 < 0){
l__1 = 0;
};
return (l__1);
}
public function setMaxTime(p__1:Number){
maxTime_ = p__1;
if (viewer_ != null){
viewer_.setMaxTime(maxTime_);
};
}
public function setTime(p__1:Number){
time_ = p__1;
if (viewer_ != null){
viewer_.setTime(time_);
};
}
public function addViewer(p__1:ClockViewer){
viewer_ = p__1;
}
public function getMaxTime():Number{
return (maxTime_);
}
public function tick(){
if (!stopped_){
setTime((time_ + 1));
};
}
}
}//package king.game.uno
Section 53
//Dealer (king.game.uno.Dealer)
package king.game.uno {
import king.game.uno.view.*;
import king.math.*;
public class Dealer {
private var randomShuffle_:MtRandom;
private var viewer_:DealerViewer;// = null
private var drawPile_:Pile;
private var game_:Game;
private var deck_:Deck;
private var random_:MtRandom;
public function Dealer(p__1:Deck, p__2:uint, p__3:Game){
super();
deck_ = p__1;
game_ = p__3;
drawPile_ = new Pile();
random_ = new MtRandom(p__2);
}
public function shuffle(p__1=null){
var l__5:Card;
var l__2:Array = new Array();
var l__3:int = drawPile_.size();
var l__4:* = 0;
while (l__4 < l__3) {
l__5 = drawPile_.removeCard();
l__2.splice(randomShuffle_.nextInt((l__4 + 1)), 0, l__5);
l__4++;
};
drawPile_.addCards(l__2);
if (viewer_ != null){
viewer_.shuffle(p__1);
};
}
public function addViewer(p__1:DealerViewer){
viewer_ = p__1;
}
public function actOnRule(p__1:Rule):void{
if (p__1.getType() == Rule.DEAL_CARDS_TO_PLAYER){
dealCards(p__1.getPlayer(), p__1.getNum(), p__1);
} else {
if (p__1.getType() == Rule.DEAL_CARDS_TO_TABLE){
dealCards(null, p__1.getNum(), p__1);
} else {
if (p__1.getType() == Rule.TAKE_CARDS_FROM_PLAYER){
takeCardsFromPlayer(p__1.getPlayer(), p__1);
} else {
if (p__1.getType() == Rule.TAKE_CARDS_FROM_TABLE){
takeCardsFromTable(p__1);
} else {
if (p__1.getType() == Rule.SHUFFLE){
shuffle(p__1);
};
};
};
};
};
}
public function takeCardsFromPlayer(p__1:Player, p__2:Rule){
var l__3:*;
var l__5:int;
var l__4:Array = p__1.getHand().getCards();
while (l__5 < l__4.length) {
l__3 = l__4[l__5];
drawPile_.addCard(l__3);
cardsLeft();
l__5++;
};
viewer_.takeCards(p__1, l__4, p__2);
}
public function getPile():Pile{
return (drawPile_);
}
public function cardsLeft():int{
return (drawPile_.size());
}
public function takeCardsFromTable(p__1:Rule){
var l__3:* = undefined;
viewer_.takeCardsFromTable(p__1);
var l__2:Array = game_.getDiscardPile().getCards();
if (p__1.getNum() == 0){
drawPile_.addCards(l__2);
game_.getDiscardPile().clear();
} else {
l__3 = l__2.pop();
drawPile_.addCards(l__2);
game_.getDiscardPile().clear();
game_.getDiscardPile().addCard(l__3);
};
}
public function dealCards(p__1:Player, p__2:int, p__3:Rule){
var l__4:*;
var l__6:int;
var l__5:Array = new Array();
while (l__6 < p__2) {
l__4 = drawPile_.removeCard();
if (l__4 != null){
l__5.push(l__4);
};
l__6++;
};
viewer_.dealCards(p__1, l__5, p__3);
if (p__1 != null){
p__1.getHand().addCards(l__5);
};
}
public function startRound(){
drawPile_.clear();
drawPile_.addCards(deck_.getCards());
trace("DR:Random");
var DrRand:int = (Math.random() * 1000);
trace(("DR-RandomNr.:" + DrRand));
randomShuffle_ = new MtRandom(random_.nextInt(DrRand));
}
}
}//package king.game.uno
Section 54
//Deck (king.game.uno.Deck)
package king.game.uno {
public class Deck {
private var cards_:Array;
public function Deck(){
super();
init();
}
public function init(){
var l__3:int;
var l__1:int;
var l__2:int;
cards_ = new Array();
while (l__2 <= 3) {
var _temp1 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 0, _temp1));
l__3 = 1;
while (l__3 <= 9) {
var _temp2 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, l__3, _temp2));
var _temp3 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, l__3, _temp3));
l__3++;
};
var _temp4 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, l__2, 0, _temp4));
var _temp5 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, l__2, 0, _temp5));
var _temp6 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_REVERSE, l__2, 0, _temp6));
var _temp7 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_REVERSE, l__2, 0, _temp7));
var _temp8 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_SKIP, l__2, 0, _temp8));
var _temp9 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_SKIP, l__2, 0, _temp9));
l__2++;
};
var _temp10 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD, Card.COLOR_BLACK, 0, _temp10));
var _temp11 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD, Card.COLOR_BLACK, 0, _temp11));
var _temp12 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD, Card.COLOR_BLACK, 0, _temp12));
var _temp13 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD, Card.COLOR_BLACK, 0, _temp13));
var _temp14 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp14));
var _temp15 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp15));
var _temp16 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp16));
var _temp17 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp17));
}
public function init2(){
var l__1:int;
var l__2:int;
cards_ = new Array();
var _temp1 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 0, _temp1));
var _temp2 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 1, _temp2));
var _temp3 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 2, _temp3));
var _temp4 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 3, _temp4));
var _temp5 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 4, _temp5));
var _temp6 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 5, _temp6));
var _temp7 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 6, _temp7));
var _temp8 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 7, _temp8));
var _temp9 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 8, _temp9));
var _temp10 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, l__2, 9, _temp10));
var _temp11 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 0, _temp11));
var _temp12 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 1, _temp12));
var _temp13 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 2, _temp13));
var _temp14 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 3, _temp14));
var _temp15 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 4, _temp15));
var _temp16 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 5, _temp16));
var _temp17 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 6, _temp17));
var _temp18 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 7, _temp18));
var _temp19 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 8, _temp19));
var _temp20 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_NORMAL, (l__2 + 1), 9, _temp20));
var _temp21 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 0), 0, _temp21));
var _temp22 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 0), 0, _temp22));
var _temp23 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 1), 0, _temp23));
var _temp24 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 1), 0, _temp24));
var _temp25 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 2), 0, _temp25));
var _temp26 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 2), 0, _temp26));
var _temp27 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 3), 0, _temp27));
var _temp28 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_DRAW_TWO, (l__2 + 3), 0, _temp28));
var _temp29 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp29));
var _temp30 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp30));
var _temp31 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp31));
var _temp32 = l__1;
l__1 = (l__1 + 1);
cards_.push(new Card(Card.TYPE_WILD_DRAW_FOUR, Card.COLOR_BLACK, 0, _temp32));
}
public function getCard(p__1:int){
return (cards_[p__1]);
}
public function getCards():Array{
return (cards_);
}
}
}//package king.game.uno
Section 55
//Game (king.game.uno.Game)
package king.game.uno {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.math.*;
import flash.utils.*;
import com.midasplayer.text.*;
public class Game {
protected var endGamePressed_:Boolean;// = false
protected var viewer_:GameViewer;
protected var seed_:uint;
protected var clock_:Clock;
protected var gameData_:GameData;
protected var introClicked_:Boolean;// = false
protected var saidUno_:Boolean;// = false
protected var unoMissPlayer_:Player;// = null
protected var roundNum_:int;
protected var colorChosen_:Boolean;// = false
protected var drawCardClicked_:Boolean;// = false
protected var rules_:Rules;
protected var endGameHasBeenPressed_:Boolean;// = false
protected var deck_:Deck;
protected var tick_:Number;// = 0
protected var dealer_:Dealer;
protected var gameCommunicator_:IGameComm;
protected var clickedCard_:Card;// = null
protected var scoreBoard_:ScoreBoard;
protected var players_:Array;
protected var discardPile_:Pile;
protected var chosenColor_:int;
protected var passed_:Boolean;// = false
protected var quitted_:Boolean;// = false
protected var random_:MtRandom;
public function Game(){
var l__1:String;
super();
deck_ = new Deck();
l__1 = ((((((((((((((((((((((((((((((((((((((((((((((((((("<gamedata randomseed=\"1070051391\">" + "<music>0</music>") + "<sound>0</sound>") + "<gameMode>0</gameMode>") + "<avatarpath></avatarpath>") + "<avatar2>head3:blush1:mouth1:beard3,dda976:sweat1:eyes2:wrinkles1:eyebrows1:nose2:hair20B,dda976:glasses3:ear1:hair20A,dda976:hats8A:</avatar2>") + "<avatar>head1,955a38:blush1,955a38:mouth1,955a38:lips2,513618:sweat1,955a38:makeup7:eyes1:eyebrows1:nose4,955a38:hair14B,513618:ear1,955a38:earring6:hair14A,513618:</avatar>") + "<text id=\"game_starts\">THE GAME STARTS IN {0} SECONDS</text>") + "<text id=\"copyright\">UNO and associated trademarks and trade dress are owned by, and used under license from, Mattel, Inc. © 2009 Mattel, Inc. All Rights Reserved.</text>") + "<text id=\"intro_objectives_header\">OBJECTIVES</text>") + "<text id=\"intro_objectives_text\">The game is played in three rounds. Try to get rid of all the cards in your hand before your opponents.\nWhen its your turn try to match the card on the Discard pile, either by number, colour or symbol.</text>") + "<text id=\"intro_pass_header\">PASS BUTTON</text>") + "<text id=\"intro_pass_text\">If you don't want to play the card picked up using the draw card button you can press the pass button to end your turn without playing any card. </text>") + "<text id=\"intro_draw_header\">DRAW CARD</text>") + "<text id=\"intro_draw_text\">If you don’t have a matching card you must draw a card from the Draw pile. If the card picked up can be played, you are free to do this in the same round. Otherwise, play move to the next person in turn.</text>") + "<text id=\"intro_uno_header\">UNO™ BUTTON</text>") + "<text id=\"intro_uno_text\">When you have only one card left you must press the UNO™ button. Failure to do this results in having to pick up 2 cards from Draw pile.</text>") + "<text id=\"intro_skip_header\">SKIP</text>") + "<text id=\"intro_skip_text\">The next player to play after this card has been laid loses his/her turn and is “skipped”. Can only be played on a matching color or on another Skip card.</text>") + "<text id=\"intro_draw_two_header\">DRAW TWO</text>") + "<text id=\"intro_draw_two_text\">The next person to play must draw 2 cards and miss his/her turn. Can only be played on matching colors and other Draw Two cards.</text>") + "<text id=\"intro_reverse_header\">REVERSE</text>") + "<text id=\"intro_reverse_text\">This simply reverses direction of play. Can only be played on a matching color or on another Reverse card. </text>") + "<text id=\"intro_wild_header\">WILD</text>") + "<text id=\"intro_wild_text\">The person playing this card calls for any color to continue the play, including the one currently being played, if so desired. \nA Wild card can be played at any time even if the player has another playable card in the hand.</text>") + "<text id=\"intro_wild_draw4_header\">WILD DRAW 4</text>") + "<text id=\"intro_wild_draw4_text\">The person who plays it calls the color that continues play.\nThe next player has to pick up 4 cards from the Draw pile and miss his/her turn. \nThe card can only be played when the player holding it does not have a card in his/her hand to match the color on the Discard pile.\nIf the player holds matching numbers or Action Cards, however, the Wild Draw Four card may be played.</text>") + "<text id=\"action_skip\">SKIP</text>") + "<text id=\"action_reverse\">REVERSE</text>") + "<text id=\"action_draw2\">DRAW 2</text>") + "<text id=\"action_draw4\">DRAW 4</text>") + "<text id=\"pass\">PASS</text>") + "<text id=\"points\">POINTS</text>") + "<text id=\"extra\">EXTRA</text>") + "<text id=\"time_bonus\">TIME BONUS</text>") + "<text id=\"total_score\">TOTAL SCORE</text>") + "<text id=\"game_ends\">THE GAME ENDS IN {0} SECONDS. Click Mouse to Submit Score</text>") + "<text id=\"won_round\">{0} won this round!</text>") + "<text id=\"next_round_starts\">THE NEXT ROUND STARTS IN {0} SECONDS</text>") + "<text id=\"will_start\">{0} will start the game!</text>") + "<text id=\"missed_say_uno\">You forgot to press the UNO™ button!</text>") + "<text id=\"choose_color\">Choose a color!</text>") + "<text id=\"cards_left\">CARDS LEFT</text>") + "<text id=\"bot1\">Señor Ordóñez</text>") + "<text id=\"bot2\">Monsieur Tournesol</text>") + "<text id=\"bot3\">Miss Purpleby</text>") + "<text id=\"bot4\">Signorina Carota</text>") + "<text id=\"bot5\">Mevrouw Oranje</text>") + "<text id=\"bot6\">Herr Altmann</text>") + "<text id=\"you\">You</text>") + "<text id=\"register\">Register to continue playing and complete the game!</text>") + "</gamedata>");
gameCommunicator_ = new DebugGameComm(l__1);
gameData_ = new GameData(gameCommunicator_.getGameData());
I18n.init(gameData_.getTexts());
seed_ = gameData_.randomSeed;
roundNum_ = 0;
random_ = new MtRandom(seed_);
discardPile_ = new Pile();
players_ = new Array();
scoreBoard_ = new ScoreBoard(players_);
rules_ = new Rules(this);
clock_ = new Clock();
}
public function getPlayers():Array{
return (players_);
}
public function endGamePressed(){
endGamePressed_ = true;
endGameHasBeenPressed_ = true;
}
public function reportUnoMissClicked(p__1:int){
unoMissPlayer_ = players_[p__1];
}
public function roundWinnerDone(){
gameCommunicator_.addPlayData((("37," + tick_) + "=0"));
}
public function addViewer(p__1:GameViewer){
viewer_ = p__1;
viewer_.init(this);
}
public function throwCard(p__1:int, p__2:Player){
var l__3:* = ((p__2)!=null) ? p__2.getId() : -1;
if (p__2 != null){
p__2.getHand().removeCardById(p__1);
};
discardPile_.addCard(deck_.getCard(p__1));
}
public function init(){
addDealer();
addPlayers();
clock_.setMaxTime((160 * 30));
rules_.readyToPlay();
}
public function getRoundNum():int{
return (roundNum_);
}
public function turnEnd(p__1:int){
gameCommunicator_.addPlayData((((("40," + tick_) + " ") + p__1) + "=0"));
}
public function getDeck():Deck{
return (deck_);
}
public function addDealer():void{
dealer_ = new Dealer(deck_, seed_, this);
viewer_.addDealer(dealer_);
}
public function getDealer():Dealer{
return (dealer_);
}
public function turnToAct(p__1:int){
var l__2:Player = players_[p__1];
if (l__2.isLocalPlayer()){
clock_.start();
};
gameCommunicator_.addPlayData((((("38," + tick_) + " ") + p__1) + "=0"));
}
public function introClicked(){
if (!introClicked_){
introClicked_ = true;
gameCommunicator_.gameStart();
gameCommunicator_.addPlayData((("19,0 " + 3) + "=0"));
gameCommunicator_.addPlayData((("30," + tick_) + "=0"));
};
}
public function getTick():Number{
return (tick_);
}
public function actOnRule(p__1:Rule):void{
var l__2:int;
var l__3:Array;
var l__4:Number;
var l__5:Player;
var l__6:Number;
if (p__1 != null){
};
if (p__1 == null){
} else {
if (p__1.getType() == Rule.INFO){
if (p__1.getMessage() == "winning_player"){
l__6 = Math.round(((200 * clock_.getTimeLeft()) / clock_.getMaxTime()));
scoreBoard_.addScore(players_[0], l__6, "timebonus");
gameCommunicator_.gameEnd(scoreBoard_.getScore(players_[0]));
gameCommunicator_.addPlayData((((("101," + tick_) + " ") + (viewer_.getMusicOn()) ? "1" : "0") + "=0"));
gameCommunicator_.addPlayData((((("102," + tick_) + " ") + (viewer_.getSoundOn()) ? "1" : "0") + "=0"));
};
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.LIST_OF_RULES){
l__3 = p__1.getList();
l__2 = 0;
while (l__2 < l__3.length) {
actOnRule(l__3[l__2]);
l__2++;
};
} else {
if (p__1.getType() == Rule.DEAL_CARDS_TO_PLAYER){
dealer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.DEAL_CARDS_TO_TABLE){
dealer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_TURN_TO_ACT){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_TURN_END){
turnEnd(p__1.getPlayer().getId());
viewer_.actOnRule(p__1);
if (p__1.getPlayer().isLocalPlayer()){
clock_.stop();
};
} else {
if (p__1.getType() == Rule.PLAYER_PLAY_CARD){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_DRAW_CARD){
if (((!(p__1.getPlayer().isLocalPlayer())) && ((rules_.getPlayerPlayedLastCard() == players_[0])))){
scoreBoard_.addScore(players_[0], 1, "extra");
};
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_PLAY_OR_DRAW_CARD){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_SAY_UNO){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_SKIPPED){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.CHOOSE_COLOR){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAY_DIRECTION_CHANGE){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.SHOW_HAND){
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.TAKE_CARDS_FROM_PLAYER){
dealer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.TAKE_CARDS_FROM_TABLE){
dealer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.SHUFFLE){
dealer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.PLAYER_ADD_SCORE){
scoreBoard_.addScore(p__1.getPlayer(), p__1.getNum(), ("round" + roundNum_));
p__1.reply();
} else {
if (p__1.getType() == Rule.PLAYER_DRAW_CARD_PENALTY){
if (((!(p__1.getPlayer().isLocalPlayer())) && ((rules_.getPlayerPlayedLastCard() == players_[0])))){
scoreBoard_.addScore(players_[0], p__1.getNum(), "extra");
};
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.START_ROUND){
roundNum_ = p__1.getNum();
dealer_.startRound();
viewer_.actOnRule(p__1);
} else {
if (p__1.getType() == Rule.TIME_OVER){
viewer_.actOnRule(p__1);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function colorChosen(p__1:int){
colorChosen_ = true;
chosenColor_ = p__1;
}
public function clickCard(p__1:int){
clickedCard_ = deck_.getCard(p__1);
}
public function getGameData():GameData{
return (gameData_);
}
public function getDiscardPile():Pile{
return (discardPile_);
}
public function reportUnoMiss(p__1:int){
gameCommunicator_.addPlayData((((("39," + tick_) + " ") + p__1) + "=0"));
}
public function tick(p__1:Number):void{
tick_ = p__1;
if (clickedCard_ != null){
gameCommunicator_.addPlayData((((("31," + tick_) + " ") + clickedCard_.getId()) + "=0"));
players_[0].playCard(clickedCard_);
clickedCard_ = null;
};
if (drawCardClicked_){
gameCommunicator_.addPlayData((("35," + tick_) + "=0"));
drawCardClicked_ = false;
players_[0].drawCard();
};
if (saidUno_){
gameCommunicator_.addPlayData((("33," + tick_) + "=0"));
saidUno_ = false;
players_[0].saidUno();
};
if (passed_){
gameCommunicator_.addPlayData((("34," + tick_) + "=0"));
passed_ = false;
players_[0].passed();
};
if (colorChosen_){
gameCommunicator_.addPlayData((((("32," + tick_) + " ") + chosenColor_) + "=0"));
colorChosen_ = false;
players_[0].colorChosen(chosenColor_);
};
if (unoMissPlayer_ != null){
gameCommunicator_.addPlayData((((("41," + tick_) + " ") + unoMissPlayer_.getId()) + "=0"));
rules_.reportUnoMiss(players_[0], unoMissPlayer_);
unoMissPlayer_ = null;
};
if (endGamePressed_){
endGamePressed_ = false;
gameCommunicator_.addPlayData(((("50," + tick_) + " ") + "=0"));
if (clock_.getTime() < clock_.getMaxTime()){
clock_.setTime(clock_.getMaxTime());
};
};
var l__2:Rule = rules_.getNextRule();
actOnRule(l__2);
clock_.tick();
if (clock_.getTimeLeft() == 0){
rules_.timeOver();
};
}
public function getRules():Rules{
return (rules_);
}
public function drawWinnerDone(){
gameCommunicator_.addPlayData((("36," + tick_) + "=0"));
}
public function saidUno(){
saidUno_ = true;
}
public function addPlayers():void{
var l__1:HumanPlayer = new HumanPlayer(this, "human", 0);
l__1.setIsLocalPlayer(true);
addPlayer(l__1);
var l__2:BotPlayer = new BotPlayer(this, "bot1", 1, random_.nextInt(3));
addPlayer(l__2);
var l__3:BotPlayer = new BotPlayer(this, "bot2", 2, (3 + random_.nextInt(3)));
addPlayer(l__3);
}
public function quitGame():void{
if (!quitted_){
quitted_ = true;
setTimeout(gameCommunicator_.gameQuit, 100);
};
}
public function hasEndGameBeenPressed(){
return (endGameHasBeenPressed_);
}
public function addPlayer(p__1:Player):void{
players_.push(p__1);
viewer_.addPlayer(p__1);
}
public function getScoreBoard():ScoreBoard{
return (scoreBoard_);
}
public function getGameCommunicator():IGameComm{
return (gameCommunicator_);
}
public function getClock():Clock{
return (clock_);
}
public function playCard(p__1:int){
}
public function drawCard(){
drawCardClicked_ = true;
}
public function passed(){
passed_ = true;
}
public function getSeed():uint{
return (seed_);
}
}
}//package king.game.uno
Section 56
//Hand (king.game.uno.Hand)
package king.game.uno {
import king.game.uno.view.*;
public class Hand extends Pile {
private var sort_:int;
private var lastAddedCard_:Card;// = null
private var viewer_:HandViewer;
private var player_:Player;
public static var SORT_NONE:int = 0;
public static var SORT_COLOR:int = 1;
public function Hand(p__1:Player){
sort_ = SORT_NONE;
super();
player_ = p__1;
}
public function setSort(p__1:int){
sort_ = p__1;
}
public function playCard(p__1:Card){
var l__2:* = 0;
while (l__2 < cards_.length) {
if (cards_[l__2] == p__1){
viewer_.playCard(p__1);
return;
};
l__2++;
};
}
public function getLastAddedCard():Card{
return (lastAddedCard_);
}
public function getViewer():HandViewer{
return (viewer_);
}
public function addViewer(p__1:HandViewer){
viewer_ = p__1;
}
override public function addCard(p__1:Card){
super.addCard(p__1);
lastAddedCard_ = p__1;
p__1.setHand(this);
viewer_.addCard(p__1);
sort();
}
public function sort(){
if (sort_ == SORT_COLOR){
cards_ = cards_.sortOn("id", (Array.DESCENDING | Array.NUMERIC));
};
}
public function getPlayer():Player{
return (player_);
}
}
}//package king.game.uno
Section 57
//HumanPlayer (king.game.uno.HumanPlayer)
package king.game.uno {
import king.game.uno.view.*;
public class HumanPlayer extends Player {
private var playableCards_:Array;
private var actRule_:Rule;
private var chooseColorRule_:Rule;
private var unoRule_:Rule;
public function HumanPlayer(p__1:Game, p__2:String, p__3:int){
super(p__1, p__2, p__3);
this.getHand().setSort(Hand.SORT_COLOR);
}
override public function cardPlayed(p__1:Card):void{
actRule_.reply();
}
override public function playCard(p__1:Card):void{
viewer_.playCard(p__1);
hand_.playCard(p__1);
}
override public function saidUno():void{
unoRule_.setNum(1);
unoRule_.reply();
}
override public function actOnRule(p__1:Rule):void{
viewer_.actOnRule(p__1);
if (p__1.getType() == Rule.PLAYER_TURN_TO_ACT){
} else {
if (p__1.getType() == Rule.PLAYER_PLAY_CARD){
playableCards_ = p__1.getRules().getPlayableCards(this);
allowedToPlay_ = true;
actRule_ = p__1;
} else {
if (p__1.getType() == Rule.PLAYER_PLAY_OR_DRAW_CARD){
playableCards_ = p__1.getRules().getPlayableCards(this);
allowedToPlay_ = true;
actRule_ = p__1;
} else {
if (p__1.getType() == Rule.PLAYER_DRAW_CARD){
actRule_ = p__1;
} else {
if (p__1.getType() == Rule.SHOW_HAND){
} else {
if (p__1.getType() == Rule.CHOOSE_COLOR){
chooseColorRule_ = p__1;
} else {
if (p__1.getType() == Rule.PLAYER_SAY_UNO){
unoRule_ = p__1;
p__1.setNum(0);
p__1.reply();
};
};
};
};
};
};
};
}
override public function passed():void{
actRule_.reply();
}
override public function colorChosen(p__1:int):void{
chooseColorRule_.setNum(p__1);
chooseColorRule_.reply();
viewer_.colorChosen(p__1);
}
override public function clickCard(p__1:Card):void{
var l__2:Boolean;
var l__3:* = undefined;
if (allowedToPlay_){
l__2 = false;
l__3 = 0;
while (l__3 < playableCards_.length) {
if (playableCards_[l__3] == p__1){
l__2 = true;
break;
};
l__3++;
};
if (l__2){
game_.clickCard(p__1.getId());
allowedToPlay_ = false;
viewer_.clickCard(p__1);
} else {
viewer_.wrongPlay(p__1);
};
};
}
override public function drawCard():void{
actRule_.reply();
}
}
}//package king.game.uno
Section 58
//Library (king.game.uno.Library)
package king.game.uno {
import sandy.materials.*;
import flash.display.*;
public class Library {
private static var cardBitmaps_:Array = new Array(new Array(13), new Array(13), new Array(13), new Array(13), new Array(3));
public function Library(){
super();
}
public static function getCardFadeBitmap():Bitmap{
return (cardBitmaps_[Card.COLOR_BLACK][3]);
}
public static function getCardBackBitmap():Bitmap{
return (cardBitmaps_[Card.COLOR_BLACK][2]);
}
public static function getCardBitmap(p__1:int, p__2:int, p__3:int):Bitmap{
var l__4:int = p__3;
if (p__1 != Card.TYPE_NORMAL){
if (p__1 == Card.TYPE_DRAW_TWO){
l__4 = 10;
} else {
if (p__1 == Card.TYPE_REVERSE){
l__4 = 11;
} else {
if (p__1 == Card.TYPE_SKIP){
l__4 = 12;
} else {
if (p__1 == Card.TYPE_WILD){
l__4 = 0;
p__2 = Card.COLOR_BLACK;
} else {
if (p__1 == Card.TYPE_WILD_DRAW_FOUR){
l__4 = 1;
p__2 = Card.COLOR_BLACK;
};
};
};
};
};
};
return (cardBitmaps_[p__2][l__4]);
}
cardBitmaps_[Card.COLOR_BLUE][0] = new Bitmap(new blue_0(0, 0));
cardBitmaps_[Card.COLOR_BLUE][1] = new Bitmap(new blue_1(0, 0));
cardBitmaps_[Card.COLOR_BLUE][2] = new Bitmap(new blue_2(0, 0));
cardBitmaps_[Card.COLOR_BLUE][3] = new Bitmap(new blue_3(0, 0));
cardBitmaps_[Card.COLOR_BLUE][4] = new Bitmap(new blue_4(0, 0));
cardBitmaps_[Card.COLOR_BLUE][5] = new Bitmap(new blue_5(0, 0));
cardBitmaps_[Card.COLOR_BLUE][6] = new Bitmap(new blue_6(0, 0));
cardBitmaps_[Card.COLOR_BLUE][7] = new Bitmap(new blue_7(0, 0));
cardBitmaps_[Card.COLOR_BLUE][8] = new Bitmap(new blue_8(0, 0));
cardBitmaps_[Card.COLOR_BLUE][9] = new Bitmap(new blue_9(0, 0));
cardBitmaps_[Card.COLOR_BLUE][10] = new Bitmap(new blue_draw_two_card(0, 0));
cardBitmaps_[Card.COLOR_BLUE][11] = new Bitmap(new blue_reverse_card(0, 0));
cardBitmaps_[Card.COLOR_BLUE][12] = new Bitmap(new blue_skip_card(0, 0));
cardBitmaps_[Card.COLOR_GREEN][0] = new Bitmap(new green_0(0, 0));
cardBitmaps_[Card.COLOR_GREEN][1] = new Bitmap(new green_1(0, 0));
cardBitmaps_[Card.COLOR_GREEN][2] = new Bitmap(new green_2(0, 0));
cardBitmaps_[Card.COLOR_GREEN][3] = new Bitmap(new green_3(0, 0));
cardBitmaps_[Card.COLOR_GREEN][4] = new Bitmap(new green_4(0, 0));
cardBitmaps_[Card.COLOR_GREEN][5] = new Bitmap(new green_5(0, 0));
cardBitmaps_[Card.COLOR_GREEN][6] = new Bitmap(new green_6(0, 0));
cardBitmaps_[Card.COLOR_GREEN][7] = new Bitmap(new green_7(0, 0));
cardBitmaps_[Card.COLOR_GREEN][8] = new Bitmap(new green_8(0, 0));
cardBitmaps_[Card.COLOR_GREEN][9] = new Bitmap(new green_9(0, 0));
cardBitmaps_[Card.COLOR_GREEN][10] = new Bitmap(new green_draw_two_card(0, 0));
cardBitmaps_[Card.COLOR_GREEN][11] = new Bitmap(new green_reverse_card(0, 0));
cardBitmaps_[Card.COLOR_GREEN][12] = new Bitmap(new green_skip_card(0, 0));
cardBitmaps_[Card.COLOR_RED][0] = new Bitmap(new red_0(0, 0));
cardBitmaps_[Card.COLOR_RED][1] = new Bitmap(new red_1(0, 0));
cardBitmaps_[Card.COLOR_RED][2] = new Bitmap(new red_2(0, 0));
cardBitmaps_[Card.COLOR_RED][3] = new Bitmap(new red_3(0, 0));
cardBitmaps_[Card.COLOR_RED][4] = new Bitmap(new red_4(0, 0));
cardBitmaps_[Card.COLOR_RED][5] = new Bitmap(new red_5(0, 0));
cardBitmaps_[Card.COLOR_RED][6] = new Bitmap(new red_6(0, 0));
cardBitmaps_[Card.COLOR_RED][7] = new Bitmap(new red_7(0, 0));
cardBitmaps_[Card.COLOR_RED][8] = new Bitmap(new red_8(0, 0));
cardBitmaps_[Card.COLOR_RED][9] = new Bitmap(new red_9(0, 0));
cardBitmaps_[Card.COLOR_RED][10] = new Bitmap(new red_draw_two_card(0, 0));
cardBitmaps_[Card.COLOR_RED][11] = new Bitmap(new red_reverse_card(0, 0));
cardBitmaps_[Card.COLOR_RED][12] = new Bitmap(new red_skip_card(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][0] = new Bitmap(new yellow_0(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][1] = new Bitmap(new yellow_1(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][2] = new Bitmap(new yellow_2(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][3] = new Bitmap(new yellow_3(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][4] = new Bitmap(new yellow_4(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][5] = new Bitmap(new yellow_5(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][6] = new Bitmap(new yellow_6(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][7] = new Bitmap(new yellow_7(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][8] = new Bitmap(new yellow_8(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][9] = new Bitmap(new yellow_9(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][10] = new Bitmap(new yellow_draw_two_card(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][11] = new Bitmap(new yellow_reverse_card(0, 0));
cardBitmaps_[Card.COLOR_YELLOW][12] = new Bitmap(new yellow_skip_card(0, 0));
cardBitmaps_[Card.COLOR_BLACK][0] = new Bitmap(new wild_draw_four_card(0, 0));
cardBitmaps_[Card.COLOR_BLACK][1] = new Bitmap(new wild_card(0, 0));
cardBitmaps_[Card.COLOR_BLACK][2] = new Bitmap(new back(0, 0));
cardBitmaps_[Card.COLOR_BLACK][3] = new Bitmap(new fade(0, 0));
}
}//package king.game.uno
Section 59
//Main (king.game.uno.Main)
package king.game.uno {
import king.game.uno.view.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class Main extends Sprite {
public var fpsMeter:TextField;
private var tick_;
private var lastTime:Number;// = -1
private var gameView_:GameView;
private var fps:int;
private var game_:Game;
private var frames:int;
private var tickCount:int;// = 0
private static var MAX_TICKS_PER_FRAME:int = 10;
private static var TICKS_PER_SECOND:int = 30;
public function Main(){
super();
stage.quality = "medium";
stage.scaleMode = "noScale";
mouseEnabled = false;
tick_ = 0;
start();
}
public function advanceTime(p__1:Event):void{
var l__4:int;
var l__2:Number = getTimer();
if (lastTime < 0){
lastTime = l__2;
};
var l__3:Number = (1000 / TICKS_PER_SECOND);
while ((l__2 - lastTime) > l__3) {
var _temp1 = l__4;
l__4 = (l__4 + 1);
if (_temp1 < MAX_TICKS_PER_FRAME){
if (game_ != null){
game_.tick(tick_);
};
if (gameView_ != null){
gameView_.tick(tick_);
};
tick_++;
};
lastTime = (lastTime + l__3);
tickCount++;
if ((tickCount % TICKS_PER_SECOND) == 0){
fps = frames;
frames = 0;
};
};
var l__5:Number = ((l__2 - lastTime) / l__3);
if (gameView_ != null){
gameView_.render(tick_, l__5);
};
frames++;
}
public function start(){
game_ = new Game();
gameView_ = new GameView(this);
game_.addViewer(gameView_);
game_.init();
addEventListener(Event.ENTER_FRAME, advanceTime);
}
}
}//package king.game.uno
Section 60
//Pile (king.game.uno.Pile)
package king.game.uno {
public class Pile {
protected var cards_:Array;
public function Pile(){
super();
cards_ = new Array();
}
public function size():int{
return (cards_.length);
}
public function addCard(p__1:Card){
cards_.push(p__1);
}
public function addCards(p__1:Array){
var l__2:int;
while (l__2 < p__1.length) {
addCard(p__1[l__2]);
l__2++;
};
}
public function removeCard():Card{
var l__1:*;
if (size() > 0){
l__1 = cards_.shift();
} else {
trace("Pile.removeCard: Pile is empty.");
};
return (l__1);
}
public function clear():void{
cards_.splice(0, cards_.length);
}
public function removeCardById(p__1:int):void{
var l__2:Card;
var l__3:* = 0;
while (l__3 < cards_.length) {
l__2 = cards_[l__3];
if (l__2.getId() == p__1){
cards_.splice(l__3, 1);
return;
};
l__3++;
};
trace("Pile.removeCardById: Id not found.");
}
public function toString():String{
var l__3:Card;
var l__1:* = "";
var l__2:* = 0;
while (l__2 < cards_.length) {
l__3 = cards_[l__2];
l__1 = (l__1 + (l__3.toString2() + ", "));
l__2++;
};
return (l__1);
}
public function getCards():Array{
return (cards_);
}
}
}//package king.game.uno
Section 61
//Player (king.game.uno.Player)
package king.game.uno {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
public class Player {
protected var viewer_:PlayerViewer;
protected var hand_:Hand;
protected var id_:int;
protected var allowedToPlay_:Boolean;// = false
protected var game_:Game;
protected var name_:String;
protected var isLocalPlayer_:Boolean;
public function Player(p__1:Game, p__2:String, p__3:int){
super();
game_ = p__1;
name_ = p__2;
id_ = p__3;
hand_ = new Hand(this);
isLocalPlayer_ = false;
}
public function getName():String{
return (name_);
}
public function drawCard():void{
}
public function cardPlayed(p__1:Card):void{
}
public function getViewer():PlayerViewer{
return (viewer_);
}
public function getId():int{
return (id_);
}
public function addViewer(p__1:PlayerViewer){
viewer_ = p__1;
}
public function saidUno():void{
}
public function disallowPlay():void{
allowedToPlay_ = false;
}
public function isLocalPlayer():Boolean{
return (isLocalPlayer_);
}
public function getHand():Hand{
return (hand_);
}
public function setIsLocalPlayer(p__1:Boolean){
isLocalPlayer_ = p__1;
}
public function playCard(p__1:Card):void{
}
public function toString():String{
return (name_);
}
public function actOnRule(p__1:Rule):void{
}
public function passed():void{
}
public function colorChosen(p__1:int):void{
}
public function clickCard(p__1:Card):void{
}
}
}//package king.game.uno
Section 62
//Rule (king.game.uno.Rule)
package king.game.uno {
public class Rule {
private var list_:Array;// = null
private var replied_:Boolean;// = false
private var rules_:Rules;
private var num_:Number;// = 0
private var player_:Player;// = null
private var type_:int;
private var message_:String;// = ""
private var optional_:Boolean;// = false
public static var START_ROUND = 20;
public static var PLAYER_SKIPPED = 13;
public static var PLAYER_WON_ROUND = 16;
public static var PLAYER_SAY_UNO = 15;
public static var PLAYER_DRAW_CARD = 14;
public static var PLAYER_TURN_TO_ACT = 3;
public static var TAKE_CARDS_FROM_TABLE = 17;
public static var TIME_OVER = 22;
public static var DEAL_CARDS_TO_PLAYER = 5;
public static var PLAYER_TURN_END = 4;
public static var SHUFFLE = 11;
public static var CHOOSE_COLOR = 12;
public static var PLAYER_PLAY_CARD = 7;
public static var PLAYER_PLAY_OR_DRAW_CARD = 18;
public static var PLAYER_ADD_SCORE = 19;
public static var DEAL_CARDS_TO_TABLE = 6;
public static var LIST_OF_RULES = 2;
public static var TAKE_CARDS_FROM_PLAYER = 10;
public static var INFO = 1;
public static var PLAYER_DRAW_CARD_PENALTY = 21;
public static var SHOW_HAND = 9;
public static var PLAY_DIRECTION_CHANGE = 8;
public function Rule(p__1:Rules, p__2:int){
super();
rules_ = p__1;
type_ = p__2;
}
public function setNum(p__1:Number):void{
num_ = p__1;
}
public function setMessage(p__1:String):void{
message_ = p__1;
}
public function getRules():Rules{
return (rules_);
}
public function addToList(p__1){
if (list_ == null){
list_ = new Array();
};
list_.push(p__1);
}
public function getMessage():String{
return (message_);
}
public function getList():Array{
return (list_);
}
public function getPlayer():Player{
return (player_);
}
public function getNum():Number{
return (num_);
}
public function setPlayer(p__1:Player){
player_ = p__1;
}
public function reply(){
if (replied_){
};
replied_ = true;
rules_.replyOnRule(this);
}
public function setIsOptional(p__1:Boolean):void{
optional_ = p__1;
}
public function isOptional():Boolean{
return (optional_);
}
public function getType():int{
return (type_);
}
public function hasBeenReplied():Boolean{
var l__1:* = undefined;
if (type_ == LIST_OF_RULES){
l__1 = 0;
while (l__1 < list_.length) {
if (!list_[l__1].hasBeenReplied()){
return (false);
};
l__1++;
};
return (true);
};
return (replied_);
}
public function toString():String{
var l__1:* = "";
l__1 = (l__1 + (type_ + " "));
if (message_.length > 0){
l__1 = (l__1 + (message_ + " "));
};
if (player_ != null){
l__1 = (l__1 + (player_.getName() + " "));
};
l__1 = (l__1 + (num_ + " "));
return (l__1);
}
}
}//package king.game.uno
Section 63
//Rules (king.game.uno.Rules)
package king.game.uno {
import king.util.*;
public class Rules {
private var failingPlayer_:Player;// = null
private var STATE_PLAY_ON_CARD;// = 7
private var hasSaidUno_:Array;
private var drawPile_:Pile;
private var STATE_SHOW_HANDS;// = 14
private var STATE_PLAYER_WON_ROUND;// = 10
private var reportingPlayer_:Player;// = null
private var STATE_HAS_DRAWN_CARD;// = 8
private var turnDirection_:int;
private var playerPlayedLastCard_:Player;// = null
private var game_:Game;
private var hasDrawn_:Boolean;// = false
private var STATE_GAME_OVER;// = 12
private var declaredColor_:int;
private var STATE_TIME_OVER;// = 13
private var STATE_PLAYER_HAS_ACTED;// = 9
private var previousColor_:int;// = -1
private var awaitingReplies_:ArrayList;
private var roundNum_:int;
private var STATE_START_NEXT_ROUND;// = 11
private var discardCard_:Card;// = null
private var outgoingRules_:Array;// = null
private var STATE_ACT_ON_CARD;// = 6
private var maxRounds_:int;
private var outgoingRule_:Rule;// = null
private var STATE_INIT_DISCARD_PILE;// = 4
private var STATE_START_GAME;// = 0
private var STATE_PLAYER_TURN_TO_ACT;// = 5
private var STATE_DEAL_INITIAL_CARDS;// = 3
private var STATE_START_ROUND;// = 1
private var currentPlayerNum_:int;
private var STATE_DECIDE_STARTING_PLAYER;// = 2
private var unoMissReported_:Boolean;// = false
private var lastDrawnCard_:Card;// = null
private var players_:Array;
private var state_:int;
public function Rules(p__1:Game){
super();
game_ = p__1;
currentPlayerNum_ = 0;
turnDirection_ = 0;
outgoingRule_ = null;
outgoingRules_ = new Array();
awaitingReplies_ = new ArrayList();
hasSaidUno_ = new Array();
roundNum_ = 0;
maxRounds_ = 6;
state_ = STATE_START_GAME;
}
public function actOnState(){
var l__7:int;
var l__8:Player;
var l__10:int;
var l__11:Player;
var l__12:int;
var l__1:Array;
var l__2:Rule;
var l__3:Rule;
var l__4:Player;
var l__5:Card;
var l__6:int;
var l__9:* = undefined;
if (state_ == STATE_START_GAME){
state_ = STATE_START_ROUND;
players_ = game_.getPlayers();
l__2 = new Rule(this, Rule.START_ROUND);
l__2.setNum(roundNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("round starts");
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.SHUFFLE);
outgoingRules_.push(l__2);
} else {
if (state_ == STATE_START_ROUND){
state_ = STATE_DECIDE_STARTING_PLAYER;
l__9 = 0;
while (l__9 < players_.length) {
hasSaidUno_.push(0);
l__9++;
};
hasDrawn_ = false;
lastDrawnCard_ = null;
previousColor_ = -1;
playerPlayedLastCard_ = null;
discardCard_ = null;
prepareDrawPileForDecidingCards();
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__1 = dealCardsRules(players_[l__9], 1);
l__10 = 0;
while (l__10 < l__1.length) {
l__2.addToList(l__1[l__10]);
l__10++;
};
l__9++;
};
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__3 = new Rule(this, Rule.SHOW_HAND);
l__3.setPlayer(players_[l__9]);
l__3.setNum(0);
l__2.addToList(l__3);
l__9++;
};
outgoingRules_.push(l__2);
if ((((roundNum_ > 0)) && ((game_.getGameData().getElementTextAsInt("gameMode") == 1)))){
state_ = STATE_GAME_OVER;
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("register_to_play");
outgoingRules_.push(l__2);
};
} else {
if (state_ == STATE_DECIDE_STARTING_PLAYER){
state_ = STATE_DEAL_INITIAL_CARDS;
l__11 = getWinningDrawPlayer();
currentPlayerNum_ = l__11.getId();
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("winning_draw_player");
l__2.setPlayer(l__11);
outgoingRules_.push(l__2);
turnDirection_ = 1;
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__3 = new Rule(this, Rule.TAKE_CARDS_FROM_PLAYER);
l__3.setPlayer(players_[getNextPlayerNum((currentPlayerNum_ + l__9))]);
l__2.addToList(l__3);
l__9++;
};
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.SHUFFLE);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("dealing initial cards");
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__1 = dealCardsRules(players_[getNextPlayerNum(((currentPlayerNum_ + l__9) - 1))], 7);
l__10 = 0;
while (l__10 < l__1.length) {
l__2.addToList(l__1[l__10]);
l__10++;
};
l__9++;
};
outgoingRules_.push(l__2);
turnDirection_ = 0;
} else {
if (state_ == STATE_DEAL_INITIAL_CARDS){
state_ = STATE_ACT_ON_CARD;
prepareDrawPileForStartingCard();
l__2 = new Rule(this, Rule.DEAL_CARDS_TO_TABLE);
l__2.setNum(1);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAY_DIRECTION_CHANGE);
l__2.setPlayer(players_[l__7]);
l__2.setNum(1);
outgoingRules_.push(l__2);
} else {
if (state_ == STATE_ACT_ON_CARD){
lastDrawnCard_ = null;
l__7 = getNextPlayerNum(currentPlayerNum_);
l__8 = players_[l__7];
if (turnDirection_ == 0){
turnDirection_ = 1;
};
l__4 = players_[currentPlayerNum_];
if (l__4.getHand().size() == 0){
state_ = STATE_PLAYER_WON_ROUND;
actOnState();
return;
};
l__5 = getDiscardCard();
if (l__5 != discardCard_){
discardCard_ = l__5;
hasDrawn_ = false;
playerPlayedLastCard_ = l__4;
if (l__5.getType() == Card.TYPE_DRAW_TWO){
previousColor_ = l__5.getColor();
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_DRAW_CARD_PENALTY);
l__2.setPlayer(players_[l__7]);
l__2.setNum(2);
outgoingRules_.push(l__2);
l__1 = dealCardsRules(l__8, 2);
l__10 = 0;
while (l__10 < l__1.length) {
outgoingRules_.push(l__1[l__10]);
l__10++;
};
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(l__8);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[getNextPlayerNum(l__7)]);
l__2.setNum(l__7);
outgoingRules_.push(l__2);
currentPlayerNum_ = getNextPlayerNum(l__7);
return;
};
if (l__5.getType() == Card.TYPE_WILD){
l__2 = new Rule(this, Rule.CHOOSE_COLOR);
l__2.setPlayer(players_[currentPlayerNum_]);
l__2.setNum(previousColor_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
currentPlayerNum_ = l__7;
return;
};
if (l__5.getType() == Card.TYPE_WILD_DRAW_FOUR){
l__2 = new Rule(this, Rule.PLAYER_DRAW_CARD_PENALTY);
l__2.setPlayer(players_[l__7]);
l__2.setNum(4);
outgoingRules_.push(l__2);
l__1 = dealCardsRules(l__8, 4);
l__10 = 0;
while (l__10 < l__1.length) {
outgoingRules_.push(l__1[l__10]);
l__10++;
};
l__2 = new Rule(this, Rule.CHOOSE_COLOR);
l__2.setPlayer(players_[currentPlayerNum_]);
l__2.setNum(previousColor_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(l__8);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[getNextPlayerNum(l__7)]);
l__2.setNum(l__7);
outgoingRules_.push(l__2);
currentPlayerNum_ = getNextPlayerNum(l__7);
return;
};
if (l__5.getType() == Card.TYPE_SKIP){
previousColor_ = l__5.getColor();
l__2 = new Rule(this, Rule.PLAYER_SKIPPED);
l__2.setPlayer(players_[l__7]);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(players_[l__7]);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[getNextPlayerNum(l__7)]);
l__2.setNum(l__7);
outgoingRules_.push(l__2);
currentPlayerNum_ = getNextPlayerNum(l__7);
return;
};
if (l__5.getType() == Card.TYPE_REVERSE){
previousColor_ = l__5.getColor();
turnDirection_ = (turnDirection_ * -1);
l__2 = new Rule(this, Rule.PLAY_DIRECTION_CHANGE);
l__2.setPlayer(players_[l__7]);
l__2.setNum(turnDirection_);
outgoingRules_.push(l__2);
l__7 = getNextPlayerNum(currentPlayerNum_);
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
currentPlayerNum_ = getNextPlayerNum(currentPlayerNum_);
return;
};
previousColor_ = l__5.getColor();
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
currentPlayerNum_ = l__7;
return;
};
if (hasDrawn_){
hasDrawn_ = false;
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
currentPlayerNum_ = l__7;
return;
};
l__4 = players_[currentPlayerNum_];
if (hasPlayableCards(l__4)){
if (l__4.getHand().size() == 2){
l__2 = new Rule(this, Rule.PLAYER_SAY_UNO);
l__2.setPlayer(l__4);
l__2.setIsOptional(true);
outgoingRules_.push(l__2);
};
state_ = STATE_PLAYER_HAS_ACTED;
l__2 = new Rule(this, Rule.PLAYER_PLAY_OR_DRAW_CARD);
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
} else {
state_ = STATE_PLAYER_HAS_ACTED;
l__2 = new Rule(this, Rule.PLAYER_DRAW_CARD);
l__2.setPlayer(l__4);
l__2.setNum(1);
outgoingRules_.push(l__2);
};
} else {
if (state_ == STATE_PLAYER_HAS_ACTED){
l__4 = players_[currentPlayerNum_];
l__5 = getDiscardCard();
if (l__5 != discardCard_){
state_ = STATE_ACT_ON_CARD;
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
return;
};
state_ = STATE_HAS_DRAWN_CARD;
l__1 = dealCardsRules(l__4, 1);
l__10 = 0;
while (l__10 < l__1.length) {
outgoingRules_.push(l__1[l__10]);
l__10++;
};
} else {
if (state_ == STATE_HAS_DRAWN_CARD){
hasDrawn_ = true;
state_ = STATE_ACT_ON_CARD;
l__4 = players_[currentPlayerNum_];
lastDrawnCard_ = l__4.getHand().getLastAddedCard();
if (hasPlayableCards(l__4)){
if (l__4.getHand().size() == 2){
l__2 = new Rule(this, Rule.PLAYER_SAY_UNO);
l__2.setPlayer(l__4);
l__2.setIsOptional(true);
outgoingRules_.push(l__2);
};
l__2 = new Rule(this, Rule.PLAYER_PLAY_CARD);
l__2.setPlayer(l__4);
l__2.setIsOptional(true);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
} else {
l__2 = new Rule(this, Rule.PLAYER_TURN_END);
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
};
} else {
if (state_ == STATE_PLAYER_WON_ROUND){
state_ = STATE_SHOW_HANDS;
l__7 = getNextPlayerNum(currentPlayerNum_);
l__8 = players_[l__7];
l__5 = getDiscardCard();
if (l__5.getType() == Card.TYPE_DRAW_TWO){
l__2 = new Rule(this, Rule.PLAYER_TURN_TO_ACT);
l__2.setPlayer(players_[l__7]);
l__2.setNum(currentPlayerNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.PLAYER_DRAW_CARD_PENALTY);
l__2.setPlayer(players_[l__7]);
l__2.setNum(2);
outgoingRules_.push(l__2);
l__1 = dealCardsRules(l__8, 2);
l__10 = 0;
while (l__10 < l__1.length) {
outgoingRules_.push(l__1[l__10]);
l__10++;
};
} else {
if (l__5.getType() == Card.TYPE_WILD_DRAW_FOUR){
l__2 = new Rule(this, Rule.PLAYER_DRAW_CARD_PENALTY);
l__2.setPlayer(players_[l__7]);
l__2.setNum(4);
outgoingRules_.push(l__2);
l__1 = dealCardsRules(l__8, 4);
l__10 = 0;
while (l__10 < l__1.length) {
outgoingRules_.push(l__1[l__10]);
l__10++;
};
} else {
actOnState();
};
};
} else {
if (state_ == STATE_SHOW_HANDS){
state_ = STATE_START_NEXT_ROUND;
l__4 = players_[currentPlayerNum_];
l__6 = 0;
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__12 = getHandValue(players_[l__9]);
l__6 = (l__6 + l__12);
l__3 = new Rule(this, Rule.SHOW_HAND);
l__3.setPlayer(players_[l__9]);
l__3.setNum(l__12);
l__2.addToList(l__3);
l__9++;
};
outgoingRules_.push(l__2);
roundNum_++;
l__2 = new Rule(this, Rule.PLAYER_ADD_SCORE);
l__2.setPlayer(l__4);
l__2.setNum(l__6);
outgoingRules_.push(l__2);
if (roundNum_ < maxRounds_){
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("winning_round_player");
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
} else {
state_ = STATE_GAME_OVER;
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("winning_round_player");
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
};
} else {
if (state_ == STATE_START_NEXT_ROUND){
state_ = STATE_START_ROUND;
l__2 = new Rule(this, Rule.LIST_OF_RULES);
l__9 = 0;
while (l__9 < players_.length) {
l__3 = new Rule(this, Rule.TAKE_CARDS_FROM_PLAYER);
l__3.setPlayer(players_[getNextPlayerNum((currentPlayerNum_ + l__9))]);
l__2.addToList(l__3);
l__9++;
};
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.TAKE_CARDS_FROM_TABLE);
l__2.setNum(0);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.START_ROUND);
l__2.setNum(roundNum_);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("round starts");
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.SHUFFLE);
outgoingRules_.push(l__2);
} else {
if (state_ == STATE_TIME_OVER){
state_ = -1;
l__4 = players_[0];
l__2 = new Rule(this, Rule.TIME_OVER);
outgoingRules_.push(l__2);
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("winning_player");
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
} else {
if (state_ == STATE_GAME_OVER){
state_ = -1;
l__4 = players_[currentPlayerNum_];
l__2 = new Rule(this, Rule.INFO);
l__2.setMessage("winning_player");
l__2.setPlayer(l__4);
outgoingRules_.push(l__2);
};
};
};
};
};
};
};
};
};
};
};
};
}
public function replyOnRule(p__1:Rule){
var l__2:Player = p__1.getPlayer();
var l__3:* = ((l__2)!=null) ? l__2.getId() : 0;
game_.getGameCommunicator().addPlayData((("45," + game_.getTick()) + "=0"));
if (p__1.getType() == Rule.CHOOSE_COLOR){
declaredColor_ = p__1.getNum();
previousColor_ = declaredColor_;
};
if (p__1.getType() == Rule.PLAYER_SAY_UNO){
hasSaidUno_[l__2.getId()] = p__1.getNum();
};
if (((!((outgoingRule_ == null))) && (outgoingRule_.hasBeenReplied()))){
outgoingRules_.shift();
outgoingRule_ = null;
} else {
return;
};
if (outgoingRules_.length > 0){
return;
};
actOnState();
}
public function hasPlayableCards(p__1:Player):Boolean{
var l__2:Array = getPlayableCards(p__1);
return ((l__2.length > 0));
}
public function prepareDrawPileForDecidingCards(p__1:int=0):void{
var l__6:Card;
var l__4:Boolean;
var l__5:* = undefined;
var l__2:Array = drawPile_.getCards();
var l__3:Card = l__2[p__1];
if (l__3.getType() == Card.TYPE_NORMAL){
l__4 = true;
l__5 = 0;
while (l__5 < p__1) {
l__6 = l__2[l__5];
if (l__3.getRank() == l__6.getRank()){
l__4 = false;
break;
};
l__5++;
};
};
if (!l__4){
l__2.splice(p__1, 1);
l__2.push(l__3);
prepareDrawPileForDecidingCards(p__1);
} else {
if (p__1 < 2){
prepareDrawPileForDecidingCards((p__1 + 1));
};
};
}
public function getNextRule():Rule{
if ((((outgoingRules_.length == 0)) || (!((outgoingRule_ == null))))){
return (null);
};
if (outgoingRule_ == null){
outgoingRule_ = outgoingRules_[0];
};
return (outgoingRule_);
}
public function getHandValue(p__1:Player):int{
var l__2:Card;
var l__4:int;
var l__5:int;
var l__3:Array = p__1.getHand().getCards();
l__4 = 0;
while (l__4 < l__3.length) {
l__2 = l__3[l__4];
l__5 = (l__5 + l__2.getValue());
l__4++;
};
return (l__5);
}
public function getNextPlayerNum(p__1:int){
return ((((p__1 + turnDirection_) + players_.length) % players_.length));
}
private function canCardBePlayed(p__1:Card){
var l__2:Card = getDiscardCard();
if (l__2 == null){
return (true);
};
var l__3:int = p__1.getColor();
var l__4:int = p__1.getType();
var l__5:int = p__1.getRank();
var l__6:int = l__2.getColor();
var l__7:int = l__2.getType();
var l__8:int = l__2.getRank();
if ((((((l__4 == l__7)) && ((l__4 == Card.TYPE_NORMAL)))) && ((l__5 == l__8)))){
return (true);
};
if (l__3 == Card.COLOR_BLACK){
return (true);
};
if ((((l__6 == Card.COLOR_BLACK)) && ((l__3 == declaredColor_)))){
return (true);
};
if (((!((l__6 == Card.COLOR_BLACK))) && ((l__3 == l__6)))){
return (true);
};
if ((((l__4 == l__7)) && (!((l__4 == Card.TYPE_NORMAL))))){
return (true);
};
return (false);
}
public function getDiscardCard():Card{
var l__1:Card;
var l__2:Array = game_.getDiscardPile().getCards();
if (l__2.length > 0){
l__1 = l__2[(l__2.length - 1)];
};
return (l__1);
}
public function getPlayableCards(p__1:Player):Array{
var l__2:Card;
var l__7:int;
var l__5:Boolean;
var l__6:Boolean;
var l__3:Array = p__1.getHand().getCards();
var l__4:Array = new Array();
var l__8:Card = getDiscardCard();
l__7 = 0;
while (l__7 < l__3.length) {
l__2 = l__3[l__7];
if (canCardBePlayed(l__2)){
l__4.push(l__2);
if (l__2.getType() != Card.TYPE_WILD_DRAW_FOUR){
if (((!((l__8 == null))) && ((l__8.getColor() == l__2.getColor())))){
l__5 = true;
if (l__2.getType() != Card.TYPE_WILD){
l__6 = true;
};
};
};
};
l__7++;
};
if (((!(p__1.isLocalPlayer())) && (l__5))){
l__7 = (l__4.length - 1);
while (l__7 >= 0) {
l__2 = l__4[l__7];
if (l__2.getType() == Card.TYPE_WILD_DRAW_FOUR){
l__4.splice(l__7, 1);
};
l__7--;
};
};
if (((!(p__1.isLocalPlayer())) && (l__6))){
l__7 = (l__4.length - 1);
while (l__7 >= 0) {
l__2 = l__4[l__7];
if (l__2.getType() == Card.TYPE_WILD){
l__4.splice(l__7, 1);
};
l__7--;
};
};
if (lastDrawnCard_ != null){
l__7 = (l__4.length - 1);
while (l__7 >= 0) {
l__2 = l__4[l__7];
if (l__2 != lastDrawnCard_){
l__4.splice(l__7, 1);
};
l__7--;
};
};
return (l__4);
}
public function reportUnoMiss(p__1:Player, p__2:Player){
unoMissReported_ = true;
reportingPlayer_ = p__1;
failingPlayer_ = p__2;
handleUnoMiss(p__1, p__2);
}
public function getWinningDrawPlayer():Player{
var l__1:Player;
var l__2:int;
var l__4:Player;
var l__3:* = -1;
var l__5:* = 0;
while (l__5 < players_.length) {
l__1 = players_[l__5];
l__2 = l__1.getHand().getCards()[0].getRank();
if ((((l__4 == null)) || ((l__2 > l__3)))){
l__3 = l__2;
l__4 = l__1;
};
l__5++;
};
return (l__4);
}
public function timeOver():void{
if ((((state_ >= 0)) && (!((state_ == STATE_TIME_OVER))))){
outgoingRule_ = null;
outgoingRules_.splice(0, outgoingRules_.length);
state_ = STATE_TIME_OVER;
actOnState();
};
}
public function initRules():void{
var l__1:Rule;
l__1 = new Rule(this, Rule.INFO);
l__1.setMessage("game_starts");
outgoingRules_.push(l__1);
}
public function readyToPlay():void{
drawPile_ = game_.getDealer().getPile();
initRules();
}
public function hasSaidUno(p__1:Player){
return ((hasSaidUno_[p__1.getId()] == 1));
}
public function handleUnoMiss(p__1:Player, p__2:Player){
var l__6:int;
var l__3:Array;
var l__4:Rule;
var l__5:* = undefined;
if (hasSaidUno_[p__2.getId()] == 0){
if (outgoingRules_.length == 1){
};
hasSaidUno_[p__2.getId()] = 1;
l__4 = new Rule(this, Rule.INFO);
l__4.setMessage("missed_say_uno");
l__4.setPlayer(p__2);
l__4.setNum(p__1.getId());
outgoingRules_.push(l__4);
l__4 = new Rule(this, Rule.PLAYER_DRAW_CARD_PENALTY);
l__4.setPlayer(p__2);
l__4.setNum(2);
outgoingRules_.push(l__4);
l__3 = dealCardsRules(p__2, 2);
l__6 = 0;
while (l__6 < l__3.length) {
outgoingRules_.push(l__3[l__6]);
l__6++;
};
};
}
public function dealCardsRules(p__1:Player, p__2:int):Array{
var l__4:Rule;
var l__5:* = undefined;
var l__3:Array = new Array();
if (drawPile_.size() >= p__2){
l__4 = new Rule(this, Rule.DEAL_CARDS_TO_PLAYER);
l__4.setPlayer(p__1);
l__4.setNum(p__2);
l__3.push(l__4);
} else {
l__5 = drawPile_.size();
if (l__5 > 0){
l__4 = new Rule(this, Rule.DEAL_CARDS_TO_PLAYER);
l__4.setPlayer(p__1);
l__4.setNum(l__5);
l__3.push(l__4);
};
l__4 = new Rule(this, Rule.TAKE_CARDS_FROM_TABLE);
l__4.setNum(1);
l__3.push(l__4);
l__4 = new Rule(this, Rule.SHUFFLE);
l__3.push(l__4);
l__5 = (p__2 - l__5);
l__4 = new Rule(this, Rule.DEAL_CARDS_TO_PLAYER);
l__4.setPlayer(p__1);
l__4.setNum(l__5);
l__3.push(l__4);
};
return (l__3);
}
public function prepareDrawPileForStartingCard():void{
var l__3:Card;
var l__1:Array = drawPile_.getCards();
var l__2:* = 0;
while (l__2 < l__1.length) {
l__3 = l__1[l__2];
if (l__3.getColor() != Card.COLOR_BLACK){
l__1[l__2] = l__1[0];
l__1[0] = l__3;
return;
};
l__2++;
};
}
public function getPlayerPlayedLastCard():Player{
return (playerPlayedLastCard_);
}
}
}//package king.game.uno
Section 64
//ScoreBoard (king.game.uno.ScoreBoard)
package king.game.uno {
import com.midasplayer.gamecomm.*;
import king.util.*;
public class ScoreBoard {
private var scores_:Map;
public function ScoreBoard(p__1:Array){
var l__3:Player;
var l__2:int;
super();
scores_ = new Map([]);
while (l__2 < p__1.length) {
l__3 = (p__1[l__2] as Player);
scores_.put(l__3.getName(), 0);
l__2++;
};
}
public function addScore(p__1:Player, p__2:int, p__3:String=""){
var l__4:String;
l__4 = p__1.getName();
if (scores_.get(l__4) == null){
scores_.put(l__4, p__2);
} else {
scores_.put(l__4, (scores_.get(l__4) + p__2));
};
if (((!((p__3 == null))) && ((p__3.length > 0)))){
l__4 = ((p__3 + "_") + p__1.getName());
if (scores_.get(l__4) == null){
scores_.put(l__4, p__2);
} else {
scores_.put(l__4, (scores_.get(l__4) + p__2));
};
};
}
public function getScore(p__1:Player, p__2:String=""):int{
var l__3:String;
var l__4:* = undefined;
if (((!((p__2 == null))) && ((p__2.length > 0)))){
l__3 = ((p__2 + "_") + p__1.getName());
l__4 = scores_.get(l__3);
} else {
l__3 = p__1.getName();
l__4 = scores_.get(l__3);
};
if (l__4 == null){
return (0);
};
return (l__4);
}
public function toString():String{
var l__3:int;
var l__1:* = "";
var l__2:Array = scores_.keySet();
while (l__3 < l__2.length) {
l__1 = (l__1 + (l__2[l__3] + " : "));
l__1 = (l__1 + scores_.get(l__2[l__3]));
l__1 = (l__1 + "\n");
l__3++;
};
return (l__1);
}
}
}//package king.game.uno
Section 65
//MtRandom (king.math.MtRandom)
package king.math {
import king.game.uno.*;
import flash.utils.*;
public class MtRandom {
private var mti:uint;
private var mt:Array;
public static var MATRIX_A:uint = 2567483615;
public static var UPPER_MASK:uint = 2147483648;
public static var LOWER_MASK:uint = 2147483647;
public static var M:int = 397;
public static var N:int = 624;
private static var mag01:Array = [uint(0), uint(MATRIX_A)];
public function MtRandom(p__1:uint=0){
mti = (N + 1);
super();
if (p__1 == 0){
p__1 = getTimer();
};
mt = new Array(N);
init_genrand(p__1);
}
private function genrand_int32():uint{
var l__1:Number;
var l__2:uint;
if (mti >= N){
if (mti == (N + 1)){
init_genrand(5489);
};
l__2 = 0;
while (l__2 < (N - M)) {
l__1 = ((mt[l__2] & UPPER_MASK) | (mt[(l__2 + 1)] & LOWER_MASK));
mt[l__2] = ((mt[(l__2 + M)] ^ (l__1 >>> 1)) ^ mag01[uint((l__1 & 1))]);
l__2++;
};
while (l__2 < (N - 1)) {
l__1 = ((mt[l__2] & UPPER_MASK) | (mt[(l__2 + 1)] & LOWER_MASK));
mt[l__2] = ((mt[(l__2 + (M - N))] ^ (l__1 >>> 1)) ^ mag01[uint((l__1 & 1))]);
l__2++;
};
l__1 = ((mt[(N - 1)] & UPPER_MASK) | (mt[0] & LOWER_MASK));
mt[(N - 1)] = ((mt[(M - 1)] ^ (l__1 >>> 1)) ^ mag01[uint((l__1 & 1))]);
mti = 0;
};
l__1 = mt[mti++];
l__1 = (l__1 ^ (l__1 >>> 11));
l__1 = (l__1 ^ ((l__1 << 7) & 2636928640));
l__1 = (l__1 ^ ((l__1 << 15) & 4022730752));
l__1 = (l__1 ^ (l__1 >>> 18));
return (uint(l__1));
}
private function next(p__1:uint):uint{
return ((genrand_int32() & ((uint(1) << p__1) - uint(1))));
}
private function init_genrand(p__1:uint):void{
var l__2:uint;
var l__3:uint;
mt[0] = uint(p__1);
mti = 1;
while (mti < N) {
l__2 = (mt[(mti - 1)] ^ (mt[(mti - 1)] >>> 30));
l__3 = uint((l__2 * 1289));
l__3 = uint((l__3 * 1406077));
l__3 = uint((l__3 + mti));
mt[mti] = l__3;
mti++;
};
}
public function nextFloat():Number{
return ((next(24) / 16777216));
}
public function setSeed(p__1:uint):void{
init_genrand(p__1);
}
public function nextDouble():Number{
return ((next(24) / 16777216));
}
public function nextInt(p__1:uint):uint{
return (((genrand_int32() & 2147483647) % p__1));
}
}
}//package king.math
Section 66
//ManagedSound (king.sound.ManagedSound)
package king.sound {
import sandy.events.*;
import flash.media.*;
public class ManagedSound {
private var ClassReference:Class;
public var activeSounds:Array;
private var manager:SoundManager;
public function ManagedSound(p__1:SoundManager, p__2:Class){
activeSounds = new Array();
super();
manager = p__1;
ClassReference = p__2;
}
public function play(p__1:Number=1, p__2:Number=0):ManagedSoundChannel{
var l__3:SoundChannel = new ClassReference().play(0, 0, new SoundTransform(p__1, p__2));
return (new ManagedSoundChannel(manager, this, l__3));
}
public function loop(p__1:Number=1, p__2:Number=0):ManagedSoundChannel{
var l__3:SoundChannel = new ClassReference().play(0, 999999999, new SoundTransform(p__1, p__2));
return (new ManagedSoundChannel(manager, this, l__3));
}
public function stop():void{
var l__1:int;
while (l__1 < activeSounds.length) {
activeSounds[l__1].stop();
l__1++;
};
}
public function isPlaying():Boolean{
return ((activeSounds.length > 0));
}
public function update():void{
var l__1:int;
while (l__1 < activeSounds.length) {
activeSounds[l__1].update();
l__1++;
};
}
public function fadeToAndStop(p__1:Number, p__2:Number):void{
var l__3:int;
while (l__3 < activeSounds.length) {
activeSounds[l__3].fadeToAndStop(p__1, p__2);
l__3++;
};
}
public function fadeTo(p__1:Number, p__2:Number):void{
var l__3:int;
while (l__3 < activeSounds.length) {
activeSounds[l__3].fadeTo(p__1, p__2);
l__3++;
};
}
public function panTo(p__1:Number, p__2:Number):void{
var l__3:int;
while (l__3 < activeSounds.length) {
activeSounds[l__3].panTo(p__1, p__2);
l__3++;
};
}
public function setPan(p__1:Number):void{
var l__2:int;
while (l__2 < activeSounds.length) {
activeSounds[l__2].setPan(p__1);
l__2++;
};
}
public function setVolume(p__1:Number):void{
var l__2:int;
while (l__2 < activeSounds.length) {
activeSounds[l__2].setVolume(p__1);
l__2++;
};
}
}
}//package king.sound
Section 67
//ManagedSoundChannel (king.sound.ManagedSoundChannel)
package king.sound {
import sandy.core.data.*;
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class ManagedSoundChannel {
private var fadeStartVolume:Number;// = -1
private var channel:SoundChannel;
private var fadeEndVolume:Number;// = -1
private var targetVolume:Number;
private var targetPan:Number;
private var sound:ManagedSound;
private var stopAfterFade:Boolean;// = false
private var panEndTime:Number;// = -1
private var manager:SoundManager;
private var playing:Boolean;// = true
private var panStartTime:Number;// = -1
private var fadeStartTime:Number;// = -1
private var panEndVolume:Number;// = -1
private var fadeEndTime:Number;// = -1
private var panStartVolume:Number;// = -1
public function ManagedSoundChannel(p__1:SoundManager, p__2:ManagedSound, p__3:SoundChannel){
super();
manager = p__1;
sound = p__2;
channel = p__3;
p__2.activeSounds.push(this);
if (p__3 == null){
soundComplete(null);
return;
};
p__3.addEventListener(Event.SOUND_COMPLETE, soundComplete);
targetVolume = p__3.soundTransform.volume;
targetPan = p__3.soundTransform.pan;
update();
}
public function stop():void{
if (!playing){
return;
};
if (channel == null){
return;
};
channel.stop();
soundComplete(null);
}
public function update():void{
var l__1:Number;
if (!playing){
return;
};
if (fadeStartTime >= 0){
l__1 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime));
if (l__1 < 0){
l__1 = 0;
};
if (l__1 > 1){
l__1 = 1;
};
targetVolume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * l__1));
targetVolume = (targetVolume * targetVolume);
if (l__1 == 1){
fadeStartTime = -1;
};
if ((((l__1 == 1)) && (stopAfterFade))){
stop();
};
};
if (panStartTime >= 0){
l__1 = ((getTimer() - panStartTime) / (panEndTime - panStartTime));
if (l__1 < 0){
l__1 = 0;
};
if (l__1 > 1){
l__1 = 1;
};
targetPan = (panStartVolume + ((panEndVolume - panStartVolume) * l__1));
if (l__1 == 1){
panStartTime = -1;
};
};
var l__2:Number = (targetVolume * manager.volume);
var l__3:Number = targetPan;
if (channel == null){
return;
};
if (((!((l__2 == channel.soundTransform.volume))) || (!((l__3 == channel.soundTransform.pan))))){
channel.soundTransform = new SoundTransform(l__2, l__3);
};
}
public function panTo(p__1:Number, p__2:Number):void{
if (!playing){
return;
};
panStartVolume = targetPan;
panEndVolume = p__1;
panStartTime = getTimer();
panEndTime = (getTimer() + p__2);
}
public function fadeTo(p__1:Number, p__2:Number):void{
if (!playing){
return;
};
fadeStartVolume = Math.sqrt(targetVolume);
fadeEndVolume = Math.sqrt(p__1);
fadeStartTime = getTimer();
fadeEndTime = (getTimer() + p__2);
stopAfterFade = false;
}
public function setPan(p__1:Number):void{
if (!playing){
return;
};
if (channel == null){
return;
};
channel.soundTransform.pan = p__1;
panStartTime = -1;
update();
}
public function fadeToAndStop(p__1:Number, p__2:Number):void{
if (!playing){
return;
};
fadeTo(p__1, p__2);
stopAfterFade = true;
}
public function setVolume(p__1:Number):void{
if (!playing){
return;
};
stopAfterFade = false;
this.targetVolume = p__1;
fadeStartTime = -1;
update();
}
public function soundComplete(p__1:Event):void{
if (!playing){
return;
};
sound.activeSounds.splice(sound.activeSounds.indexOf(this), 1);
playing = false;
}
public function isPlaying():Boolean{
return (playing);
}
}
}//package king.sound
Section 68
//SoundManager (king.sound.SoundManager)
package king.sound {
import king.game.uno.*;
import flash.utils.*;
public class SoundManager {
private var fadeStartVolume:Number;// = -1
private var lastTime:Number;// = -1
private var managedSounds:Array;
private var fadeEndTime:Number;// = -1
private var fadeStartTime:Number;// = -1
private var fadeEndVolume:Number;// = -1
public var volume:Number;// = 1
private var managedSoundMap:Object;
public function SoundManager(){
managedSoundMap = new Object();
managedSounds = new Array();
super();
}
public function update():void{
var l__3:Number;
var l__2:int;
var l__1:Number = getTimer();
if (lastTime < 0){
lastTime = l__1;
};
if (fadeStartTime >= 0){
l__3 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime));
if (l__3 < 0){
l__3 = 0;
};
if (l__3 > 1){
l__3 = 1;
};
volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * l__3));
volume = (volume * volume);
if (l__3 == 1){
fadeStartTime = -1;
};
};
while (l__2 < managedSounds.length) {
managedSounds[l__2].update();
l__2++;
};
}
public function stopAll():void{
var l__1:int;
while (l__1 < managedSounds.length) {
managedSounds[l__1].stop();
l__1++;
};
}
public function get(p__1:String):ManagedSound{
var l__2:Class;
if (managedSoundMap[p__1] == null){
l__2 = (getDefinitionByName(("sound." + p__1)) as Class);
if (l__2 == null){
throw (new Error(("Failed to find sound " + p__1)));
};
managedSoundMap[p__1] = new ManagedSound(this, l__2);
managedSounds.push(managedSoundMap[p__1]);
};
return (managedSoundMap[p__1]);
}
public function fadeTo(p__1:Number, p__2:Number):void{
fadeStartVolume = Math.sqrt(volume);
fadeEndVolume = Math.sqrt(p__1);
fadeStartTime = getTimer();
fadeEndTime = (getTimer() + p__2);
}
public function setVolume(p__1:Number):void{
this.volume = p__1;
fadeStartTime = -1;
}
}
}//package king.sound
Section 69
//Anim (king.util.Anim)
package king.util {
public class Anim {
public var lastTick:Boolean;
public var startTick:Number;
public function Anim(){
super();
}
public function render(p__1:Number):void{
}
public function end():void{
}
public function tick(p__1:Number):Boolean{
return (true);
}
}
}//package king.util
Section 70
//AnimPlayer (king.util.AnimPlayer)
package king.util {
public class AnimPlayer {
private var anims_:ArrayList;
public function AnimPlayer(){
super();
anims_ = new ArrayList();
}
public function addAnim(p__1:Object){
p__1.lastTick = false;
p__1.startTick = -1;
anims_.add(p__1);
}
public function tick(p__1:Number){
var l__4:* = undefined;
var l__2:int = anims_.size();
var l__3:int = (l__2 - 1);
while (l__3 >= 0) {
l__4 = anims_.get(l__3);
if (l__4.startTick == -1){
l__4.startTick = p__1;
};
if (l__4.lastTick){
l__4.render(1);
l__4.end();
anims_.removeI(l__3);
} else {
l__4.lastTick = l__4.tick((p__1 - l__4.startTick));
};
l__3--;
};
}
public function render(p__1:Number, p__2:Number){
var l__5:* = undefined;
var l__3:int = anims_.size();
var l__4:int = (l__3 - 1);
while (l__4 >= 0) {
l__5 = anims_.get(l__4);
l__5.render(p__2);
l__4--;
};
}
public function getNumAnims():int{
return (anims_.size());
}
public static function easeInOutElastic(p__1, p__2, p__3, p__4, p__5, p__6){
var l__7:* = undefined;
if (p__1 == 0){
return (p__2);
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 == 2){
return ((p__2 + p__3));
};
if (!p__6){
p__6 = (p__4 * (0.3 * 1.5));
};
if (p__5 < Math.abs(p__3)){
p__5 = p__3;
l__7 = (p__6 / 4);
} else {
l__7 = ((p__6 / (2 * Math.PI)) * Math.asin((p__3 / p__5)));
};
if (p__1 < 1){
--p__1;
return (((-0.5 * ((p__5 * Math.pow(2, (10 * p__1))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6)))) + p__2));
};
--p__1;
return ((((((p__5 * Math.pow(2, (-10 * p__1))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6))) * 0.5) + p__3) + p__2));
}
public static function easeInOutQuad(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return (((((p__3 / 2) * p__1) * p__1) + p__2));
};
--p__1;
return ((((-(p__3) / 2) * ((p__1 * (p__1 - 2)) - 1)) + p__2));
}
public static function easeOutInCirc(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
--p__1;
return ((((p__3 / 2) * Math.sqrt((1 - (p__1 * p__1)))) + p__2));
};
--p__1;
return ((((p__3 / 2) * (2 - Math.sqrt((1 - (p__1 * p__1))))) + p__2));
}
public static function easeInOutBack(p__1, p__2, p__3, p__4, p__5=1.70158){
if (p__5 == undefined){
p__5 = 1.70158;
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
p__5 = (p__5 * 1.525);
return ((((p__3 / 2) * ((p__1 * p__1) * (((p__5 + 1) * p__1) - p__5))) + p__2));
};
p__1 = (p__1 - 2);
p__5 = (p__5 * 1.525);
return ((((p__3 / 2) * (((p__1 * p__1) * (((p__5 + 1) * p__1) + p__5)) + 2)) + p__2));
}
public static function easeOutInCubic(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
--p__1;
return ((((p__3 / 2) * (((p__1 * p__1) * p__1) + 1)) + p__2));
}
public static function easeOutInQuint(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
--p__1;
return ((((p__3 / 2) * (((((p__1 * p__1) * p__1) * p__1) * p__1) + 1)) + p__2));
}
public static function easeOutBack(p__1, p__2, p__3, p__4, p__5=1.70158){
if (p__5 == undefined){
p__5 = 1.70158;
};
p__1 = ((p__1 / p__4) - 1);
return (((p__3 * (((p__1 * p__1) * (((p__5 + 1) * p__1) + p__5)) + 1)) + p__2));
}
public static function easeInOutSine(p__1, p__2, p__3, p__4){
return ((((-(p__3) / 2) * (Math.cos(((Math.PI * p__1) / p__4)) - 1)) + p__2));
}
public static function easeInBack(p__1, p__2, p__3, p__4, p__5=1.70158){
if (p__5 == undefined){
p__5 = 1.70158;
};
p__1 = (p__1 / p__4);
return (((((p__3 * p__1) * p__1) * (((p__5 + 1) * p__1) - p__5)) + p__2));
}
public static function easeInOutBounce(p__1, p__2, p__3, p__4){
if (p__1 < (p__4 / 2)){
return (((easeInBounce((p__1 * 2), 0, p__3, p__4) * 0.5) + p__2));
};
return ((((easeOutBounce(((p__1 * 2) - p__4), 0, p__3, p__4) * 0.5) + (p__3 * 0.5)) + p__2));
}
public static function easeInQuart(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return ((((((p__3 * p__1) * p__1) * p__1) * p__1) + p__2));
}
public static function easeOutInBounce(p__1, p__2, p__3, p__4){
if (p__1 < (p__4 / 2)){
return (((easeOutBounce((p__1 * 2), 0, p__3, p__4) * 0.5) + p__2));
};
return ((((easeInBounce(((p__1 * 2) - p__4), 0, p__3, p__4) * 0.5) + (p__3 * 0.5)) + p__2));
}
public static function easeOutInElastic(p__1, p__2, p__3, p__4, p__5, p__6){
var l__7:* = undefined;
if (p__1 == 0){
return (p__2);
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 == 2){
return ((p__2 + p__3));
};
if (!p__6){
p__6 = (p__4 * (0.3 * 1.5));
};
if (p__5 < Math.abs(p__3)){
p__5 = p__3;
l__7 = (p__6 / 4);
} else {
l__7 = ((p__6 / (2 * Math.PI)) * Math.asin((p__3 / p__5)));
};
if (p__1 < 1){
return ((((0.5 * ((p__5 * Math.pow(2, (-10 * p__1))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6)))) + (p__3 / 2)) + p__2));
};
return ((((p__3 / 2) + (0.5 * ((p__5 * Math.pow(2, (10 * (p__1 - 2)))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6))))) + p__2));
}
public static function easeOutExpo(p__1, p__2, p__3, p__4){
return (((p__1)==p__4) ? (p__2 + p__3) : ((p__3 * (-(Math.pow(2, ((-10 * p__1) / p__4))) + 1)) + p__2));
}
public static function easeOutInBack(p__1, p__2, p__3, p__4, p__5){
if (p__5 == undefined){
p__5 = 1.70158;
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
--p__1;
p__5 = (p__5 * 1.525);
return ((((p__3 / 2) * (((p__1 * p__1) * (((p__5 + 1) * p__1) + p__5)) + 1)) + p__2));
};
--p__1;
p__5 = (p__5 * 1.525);
return ((((p__3 / 2) * (((p__1 * p__1) * (((p__5 + 1) * p__1) - p__5)) + 1)) + p__2));
}
public static function easeInExpo(p__1, p__2, p__3, p__4){
return (((p__1)==0) ? p__2 : ((p__3 * Math.pow(2, (10 * ((p__1 / p__4) - 1)))) + p__2));
}
public static function easeInCubic(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return (((((p__3 * p__1) * p__1) * p__1) + p__2));
}
public static function easeInQuint(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return (((((((p__3 * p__1) * p__1) * p__1) * p__1) * p__1) + p__2));
}
public static function easeInOutCirc(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((-(p__3) / 2) * (Math.sqrt((1 - (p__1 * p__1))) - 1)) + p__2));
};
p__1 = (p__1 - 2);
return ((((p__3 / 2) * (Math.sqrt((1 - (p__1 * p__1))) + 1)) + p__2));
}
public static function easeInQuad(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return ((((p__3 * p__1) * p__1) + p__2));
}
public static function easeInBounce(p__1, p__2, p__3, p__4){
return (((p__3 - easeOutBounce((p__4 - p__1), 0, p__3, p__4)) + p__2));
}
public static function easeOutInExpo(p__1, p__2, p__3, p__4){
if (p__1 == 0){
return (p__2);
};
if (p__1 == p__4){
return ((p__2 + p__3));
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((p__3 / 2) * (-(Math.pow(2, (-10 * p__1))) + 1)) + p__2));
};
return ((((p__3 / 2) * (Math.pow(2, (10 * (p__1 - 2))) + 1)) + p__2));
}
public static function easeOutQuart(p__1, p__2, p__3, p__4){
p__1 = ((p__1 / p__4) - 1);
return (((-(p__3) * ((((p__1 * p__1) * p__1) * p__1) - 1)) + p__2));
}
public static function easeInSine(p__1, p__2, p__3, p__4){
return ((((-(p__3) * Math.cos(((p__1 / p__4) * (Math.PI / 2)))) + p__3) + p__2));
}
public static function easeInOutQuart(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return (((((((p__3 / 2) * p__1) * p__1) * p__1) * p__1) + p__2));
};
p__1 = (p__1 - 2);
return ((((-(p__3) / 2) * ((((p__1 * p__1) * p__1) * p__1) - 2)) + p__2));
}
public static function easeOutQuad(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return ((((-(p__3) * p__1) * (p__1 - 2)) + p__2));
}
public static function easeOutBounce(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
if (p__1 < (1 / 2.75)){
return (((p__3 * ((7.5625 * p__1) * p__1)) + p__2));
};
if (p__1 < (2 / 2.75)){
p__1 = (p__1 - (1.5 / 2.75));
return (((p__3 * (((7.5625 * p__1) * p__1) + 0.75)) + p__2));
};
if (p__1 < (2.5 / 2.75)){
p__1 = (p__1 - (2.25 / 2.75));
return (((p__3 * (((7.5625 * p__1) * p__1) + 0.9375)) + p__2));
};
p__1 = (p__1 - (2.625 / 2.75));
return (((p__3 * (((7.5625 * p__1) * p__1) + 0.984375)) + p__2));
}
public static function easeInElastic(p__1, p__2, p__3, p__4, p__5, p__6){
var l__7:* = undefined;
if (p__1 == 0){
return (p__2);
};
p__1 = (p__1 / p__4);
if (p__1 == 1){
return ((p__2 + p__3));
};
if (!p__6){
p__6 = (p__4 * 0.3);
};
if (p__5 < Math.abs(p__3)){
p__5 = p__3;
l__7 = (p__6 / 4);
} else {
l__7 = ((p__6 / (2 * Math.PI)) * Math.asin((p__3 / p__5)));
};
var _temp1 = p__1;
p__1 = (p__1 - 1);
return ((-(((p__5 * Math.pow(2, (10 * _temp1))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6)))) + p__2));
}
public static function easeOutCubic(p__1, p__2, p__3, p__4){
p__1 = ((p__1 / p__4) - 1);
return (((p__3 * (((p__1 * p__1) * p__1) + 1)) + p__2));
}
public static function easeOutQuint(p__1, p__2, p__3, p__4){
p__1 = ((p__1 / p__4) - 1);
return (((p__3 * (((((p__1 * p__1) * p__1) * p__1) * p__1) + 1)) + p__2));
}
public static function easeOutInQuad(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
--p__1;
return ((((-(p__3) / 2) * ((p__1 * p__1) - 1)) + p__2));
};
--p__1;
return ((((p__3 / 2) * ((p__1 * p__1) + 1)) + p__2));
}
public static function tickToPercent(p__1, p__2, p__3){
var l__4:* = ((p__1 - p__2) / p__3);
l__4 = ((l__4)<0) ? 0 : l__4;
l__4 = ((l__4)>1) ? 1 : l__4;
return (l__4);
}
public static function easeInOutCubic(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((((p__3 / 2) * p__1) * p__1) * p__1) + p__2));
};
p__1 = (p__1 - 2);
return ((((p__3 / 2) * (((p__1 * p__1) * p__1) + 2)) + p__2));
}
public static function easeInOutQuint(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((((((p__3 / 2) * p__1) * p__1) * p__1) * p__1) * p__1) + p__2));
};
p__1 = (p__1 - 2);
return ((((p__3 / 2) * (((((p__1 * p__1) * p__1) * p__1) * p__1) + 2)) + p__2));
}
public static function easeInCirc(p__1, p__2, p__3, p__4){
p__1 = (p__1 / p__4);
return (((-(p__3) * (Math.sqrt((1 - (p__1 * p__1))) - 1)) + p__2));
}
public static function easeOutInSine(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((p__3 / 2) * Math.sin(((Math.PI * p__1) / 2))) + p__2));
};
--p__1;
return ((((-(p__3) / 2) * (Math.cos(((Math.PI * p__1) / 2)) - 2)) + p__2));
}
public static function easeOutSine(p__1, p__2, p__3, p__4){
return (((p__3 * Math.sin(((p__1 / p__4) * (Math.PI / 2)))) + p__2));
}
public static function easeOutElastic(p__1, p__2, p__3, p__4, p__5=0, p__6=0){
var l__7:* = undefined;
if (p__1 == 0){
return (p__2);
};
p__1 = (p__1 / p__4);
if (p__1 == 1){
return ((p__2 + p__3));
};
if (!p__6){
p__6 = (p__4 * 0.3);
};
if (p__5 < Math.abs(p__3)){
p__5 = p__3;
l__7 = (p__6 / 4);
} else {
l__7 = ((p__6 / (2 * Math.PI)) * Math.asin((p__3 / p__5)));
};
return (((((p__5 * Math.pow(2, (-10 * p__1))) * Math.sin(((((p__1 * p__4) - l__7) * (2 * Math.PI)) / p__6))) + p__3) + p__2));
}
public static function easeOutCirc(p__1, p__2, p__3, p__4){
p__1 = ((p__1 / p__4) - 1);
return (((p__3 * Math.sqrt((1 - (p__1 * p__1)))) + p__2));
}
public static function easeOutInQuart(p__1, p__2, p__3, p__4){
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
--p__1;
return ((((-(p__3) / 2) * ((((p__1 * p__1) * p__1) * p__1) - 1)) + p__2));
};
--p__1;
return ((((p__3 / 2) * ((((p__1 * p__1) * p__1) * p__1) + 1)) + p__2));
}
public static function easeInOutExpo(p__1, p__2, p__3, p__4){
if (p__1 == 0){
return (p__2);
};
if (p__1 == p__4){
return ((p__2 + p__3));
};
p__1 = (p__1 / (p__4 / 2));
if (p__1 < 1){
return ((((p__3 / 2) * Math.pow(2, (10 * (p__1 - 1)))) + p__2));
};
--p__1;
return ((((p__3 / 2) * (-(Math.pow(2, (-10 * p__1))) + 2)) + p__2));
}
}
}//package king.util
Section 71
//ArrayList (king.util.ArrayList)
package king.util {
import king.game.uno.*;
public class ArrayList {
private var arr:Array;
public function ArrayList(p__1:int=0){
super();
arr = new Array(p__1);
}
public function size():int{
return (arr.length);
}
public function add(p__1:Object):void{
arr.push(p__1);
}
public function removeI(p__1:int):Object{
return (arr.splice(p__1, 1)[0]);
}
public function get(p__1:int):Object{
return (arr[p__1]);
}
public function set(p__1:int, p__2:Object):void{
arr[p__1] = p__2;
}
public function isEmpty():Boolean{
return ((arr.length == 0));
}
public function removeO(p__1:Object):Boolean{
var l__2:int = (arr.length - 1);
do {
if (p__1 == arr[l__2]){
arr.splice(l__2, 1);
return (true);
};
var _temp1 = l__2;
l__2 = (l__2 - 1);
} while (_temp1 > 0);
return (false);
}
public function clear():void{
arr = new Array();
}
public function addI(p__1:int, p__2:Object):void{
arr.splice(p__1, 0, p__2);
}
}
}//package king.util
Section 72
//Map (king.util.Map)
package king.util {
import king.game.uno.*;
public class Map {
private var lastSize;
private var map:Object;
public function Map(p__1:Object){
var l__2:* = undefined;
super();
map = new Object();
for (l__2 in p__1) {
map[("@" + l__2)] = p__1[l__2];
};
lastSize = -1;
}
public function size():int{
return (count());
}
public function keySet():Array{
var l__2:* = undefined;
var l__1:* = [];
for (l__2 in map) {
l__1[l__1.length] = l__2.substring(1);
};
return (l__1);
}
public function remove(p__1:Object):Object{
var l__2:* = map[("@" + p__1)];
delete map[("@" + p__1)];
lastSize = -1;
return (l__2);
}
public function toArray():Array{
var l__2:* = undefined;
var l__1:* = [];
for (l__2 in map) {
l__1[l__1.length] = map[l__2];
};
return (l__1);
}
public function foreach(p__1:Function):void{
var l__2:* = undefined;
for (l__2 in map) {
if (p__1(l__2.substring(1), map[l__2]) == false){
break;
};
};
lastSize = -1;
}
public function clear():void{
map = {};
lastSize = 0;
}
public function count():int{
var l__1:* = undefined;
if (lastSize < 0){
lastSize = 0;
for (l__1 in map) {
lastSize++;
};
};
return (lastSize);
}
public function dump():void{
var l__2:* = undefined;
var l__1:* = "";
for (l__2 in map) {
l__1 = (l__1 + "x");
l__1 = (l__1 + (((l__2 + "=>") + map[l__2]) + "\n"));
};
trace(l__1);
}
public function get(p__1:Object):Object{
return (map[("@" + p__1)]);
}
public function put(p__1:Object, p__2:Object):void{
map[("@" + p__1)] = p__2;
lastSize = -1;
}
}
}//package king.util
Section 73
//Segments (king.util.Segments)
package king.util {
public class Segments {
private var lastT_:Number;
private var dts_:Array;
private var lastSegmentIndex_:uint;
private var maxT_:Number;
private var points_:Array;
public function Segments(){
super();
points_ = new Array();
dts_ = new Array();
maxT_ = 0;
lastT_ = 0;
lastSegmentIndex_ = 0;
}
public function getPointAt(p__1:Number):Number{
p__1 = (p__1 * maxT_);
if (p__1 > maxT_){
p__1 = maxT_;
};
var l__2:* = lastSegmentIndex_;
while (p__1 > (dts_[l__2] + dts_[(l__2 + 1)])) {
l__2 = (l__2 + 2);
};
var l__3:Number = ((p__1 - dts_[l__2]) / dts_[(l__2 + 1)]);
var l__4:* = (points_[l__2] + ((points_[(l__2 + 1)] - points_[l__2]) * l__3));
return (l__4);
}
public function addSegment(p__1:Number, p__2:Number, p__3:Number):void{
points_.push(p__1);
points_.push(p__2);
dts_.push(maxT_);
dts_.push(p__3);
maxT_ = (maxT_ + p__3);
}
public function getMaxTime():Number{
return (maxT_);
}
}
}//package king.util
Section 74
//BBox (sandy.bounds.BBox)
package sandy.bounds {
import sandy.core.data.*;
import sandy.materials.*;
public class BBox {
public var maxEdge:Point3D;
public var uptodate:Boolean;// = false
public var minEdge:Point3D;
public function BBox(p__1:Point3D=null, p__2:Point3D=null){
super();
minEdge = ((p__1)!=null) ? p__1 : new Point3D(-0.5, -0.5, -0.5);
maxEdge = ((p__2)!=null) ? p__2 : new Point3D(0.5, 0.5, 0.5);
}
public function getEdges(p__1:Array):void{
var l__2:Number;
var l__3:Number;
var l__4:Number;
var l__5:Number;
var l__6:Number;
var l__7:Number;
var l__8:Point3D;
if (p__1 == null){
return;
};
l__2 = ((this.maxEdge.x + this.minEdge.x) / 2);
l__3 = ((this.maxEdge.y + this.minEdge.y) / 2);
l__4 = ((this.maxEdge.z + this.minEdge.z) / 2);
l__5 = (l__2 - this.maxEdge.x);
l__6 = (l__3 - this.maxEdge.y);
l__7 = (l__4 - this.maxEdge.z);
l__8 = p__1[0];
l__8.x = (l__2 + l__5);
l__8.y = (l__3 + l__6);
l__8.z = (l__4 + l__7);
l__8 = p__1[1];
l__8.x = (l__2 + l__5);
l__8.y = (l__3 - l__6);
l__8.z = (l__4 + l__7);
l__8 = p__1[2];
l__8.x = (l__2 + l__5);
l__8.y = (l__3 + l__6);
l__8.z = (l__4 - l__7);
l__8 = p__1[3];
l__8.x = (l__2 + l__5);
l__8.y = (l__3 - l__6);
l__8.z = (l__4 - l__7);
l__8 = p__1[4];
l__8.x = (l__2 - l__5);
l__8.y = (l__3 + l__6);
l__8.z = (l__4 + l__7);
l__8 = p__1[5];
l__8.x = (l__2 - l__5);
l__8.y = (l__3 - l__6);
l__8.z = (l__4 + l__7);
l__8 = p__1[6];
l__8.x = (l__2 - l__5);
l__8.y = (l__3 + l__6);
l__8.z = (l__4 - l__7);
l__8 = p__1[7];
l__8.x = (l__2 - l__5);
l__8.y = (l__3 - l__6);
l__8.z = (l__4 - l__7);
}
public function intersectsBox(p__1:BBox):Boolean{
return ((((((((((((this.minEdge.x <= p__1.maxEdge.x)) && ((this.minEdge.y <= p__1.maxEdge.y)))) && ((this.minEdge.z <= p__1.maxEdge.z)))) && ((this.maxEdge.x >= p__1.minEdge.x)))) && ((this.maxEdge.y >= p__1.minEdge.y)))) && ((this.maxEdge.z >= p__1.minEdge.z))));
}
public function addInternalPointXYZ(p__1:Number, p__2:Number, p__3:Number):void{
if (p__1 > this.maxEdge.x){
this.maxEdge.x = p__1;
};
if (p__2 > this.maxEdge.y){
this.maxEdge.y = p__2;
};
if (p__3 > this.maxEdge.z){
this.maxEdge.z = p__3;
};
if (p__1 < this.minEdge.x){
this.minEdge.x = p__1;
};
if (p__2 < this.minEdge.y){
this.minEdge.y = p__2;
};
if (p__3 < this.minEdge.z){
this.minEdge.z = p__3;
};
}
public function getCenter():Point3D{
return (new Point3D(((this.maxEdge.x + this.minEdge.x) / 2), ((this.maxEdge.y + this.minEdge.y) / 2), ((this.maxEdge.z + this.minEdge.z) / 2)));
}
public function transform(p__1:Matrix4):BBox{
var l__4:Point3D;
var l__2:BBox = new BBox();
var l__3:Array = [Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D, Pool.getInstance().nextPoint3D];
getEdges(l__3);
for each (l__4 in l__3) {
p__1.transform(l__4);
l__2.addInternalPoint(l__4);
};
return (l__2);
}
public function reset():void{
minEdge.reset();
maxEdge.reset();
uptodate = false;
}
public function addInternalPoint(p__1:Point3D):void{
if (p__1.x > this.maxEdge.x){
this.maxEdge.x = p__1.x;
};
if (p__1.y > this.maxEdge.y){
this.maxEdge.y = p__1.y;
};
if (p__1.z > this.maxEdge.z){
this.maxEdge.z = p__1.z;
};
if (p__1.x < this.minEdge.x){
this.minEdge.x = p__1.x;
};
if (p__1.y < this.minEdge.y){
this.minEdge.y = p__1.y;
};
if (p__1.z < this.minEdge.z){
this.minEdge.z = p__1.z;
};
}
public function isPointInsideXYZ(p__1:Number, p__2:Number, p__3:Number):Boolean{
return ((((((((((((p__1 >= this.minEdge.x)) && ((p__1 <= this.maxEdge.x)))) && ((p__2 >= this.minEdge.y)))) && ((p__2 <= this.maxEdge.y)))) && ((p__3 >= this.minEdge.z)))) && ((p__3 <= this.maxEdge.z))));
}
public function merge(p__1:BBox):void{
this.addInternalPointXYZ(p__1.maxEdge.x, p__1.maxEdge.y, p__1.maxEdge.z);
this.addInternalPointXYZ(p__1.minEdge.x, p__1.minEdge.y, p__1.minEdge.z);
uptodate = false;
}
public function getSize():Point3D{
return (new Point3D(Math.abs((maxEdge.x - minEdge.x)), Math.abs((maxEdge.y - minEdge.y)), Math.abs((maxEdge.z - minEdge.z))));
}
public function isPointTotalInside(p__1:Point3D):Boolean{
return ((((((((((((p__1.x > this.minEdge.x)) && ((p__1.x < this.maxEdge.x)))) && ((p__1.y > this.minEdge.y)))) && ((p__1.y < this.maxEdge.y)))) && ((p__1.z > this.minEdge.z)))) && ((p__1.z < this.maxEdge.z))));
}
public function toString():String{
return (((("sandy.bounds.BBox " + minEdge) + " ") + maxEdge));
}
public function clone():BBox{
var l__1:BBox = new BBox();
l__1.maxEdge = maxEdge.clone();
l__1.minEdge = minEdge.clone();
return (l__1);
}
public static function create(p__1:Array):BBox{
var l__3:Vertex;
if (p__1.length == 0){
return (null);
};
var l__2:BBox = new (BBox);
for each (l__3 in p__1) {
l__2.addInternalPointXYZ(l__3.x, l__3.y, l__3.z);
};
return (l__2);
}
}
}//package sandy.bounds
Section 75
//BSphere (sandy.bounds.BSphere)
package sandy.bounds {
import sandy.core.data.*;
import flash.events.*;
public final class BSphere {
public var position:Point3D;
public var uptodate:Boolean;// = false
public var center:Point3D;
public var radius:Number;// = 1
public function BSphere(){
center = new Point3D();
position = new Point3D();
super();
}
public function resetFromBox(p__1:BBox):void{
this.center.copy(p__1.getCenter());
this.radius = Math.sqrt(((((p__1.maxEdge.x - this.center.x) * (p__1.maxEdge.x - this.center.x)) + ((p__1.maxEdge.y - this.center.y) * (p__1.maxEdge.y - this.center.y))) + ((p__1.maxEdge.z - this.center.z) * (p__1.maxEdge.z - this.center.z))));
}
public function transform(p__1:Matrix4):void{
position.copy(center);
p__1.transform(position);
uptodate = true;
}
public function reset():void{
center.reset();
radius = 0;
position.reset();
uptodate = false;
}
private function computeRadius(p__1:Array):Number{
var l__2:Number;
var l__3:Number;
var l__4:Number;
var l__5:Number;
var l__7:int;
var l__6:Number = 0;
var l__8:int = p__1.length;
while (l__7 < l__8) {
l__2 = (p__1[int(l__7)].x - center.x);
l__3 = (p__1[int(l__7)].x - center.x);
l__4 = (p__1[int(l__7)].x - center.x);
l__5 = (((l__2 * l__2) + (l__3 * l__3)) + (l__4 * l__4));
if (l__5 > l__6){
l__6 = l__5;
};
l__7++;
};
return (Math.sqrt(l__6));
}
private function pointsOutofSphere(p__1:Array):Array{
var l__3:int;
var l__2:Array = new Array();
var l__4:int = p__1.length;
while (l__3 < l__4) {
if (distance(p__1[int(l__3)]) > 0){
l__2.push(p__1[int(l__3)]);
};
l__3++;
};
return (l__2);
}
public function compute(p__1:Array):void{
var l__2:Number;
var l__3:Number;
var l__4:Number;
var l__5:Number;
var l__12:Vertex;
var l__13:Vertex;
var l__6:int;
var l__7:int;
if (p__1.length == 0){
return;
};
var l__8:int = p__1.length;
var l__9:Vertex = p__1[0].clone();
var l__10:Vertex = p__1[0].clone();
var l__11:Number = 0;
while (l__6 < l__8) {
l__7 = (l__6 + 1);
while (l__7 < l__8) {
l__12 = p__1[int(l__6)];
l__13 = p__1[int(l__7)];
l__2 = (l__13.x - l__12.x);
l__3 = (l__13.y - l__12.y);
l__4 = (l__13.z - l__12.z);
l__5 = (((l__2 * l__2) + (l__3 * l__3)) + (l__4 * l__4));
if (l__5 > l__11){
l__11 = l__5;
l__9.copy(l__12);
l__10.copy(l__13);
};
l__7 = (l__7 + 1);
};
l__6 = (l__6 + 1);
};
center = new Point3D(((l__9.x + l__10.x) / 2), ((l__9.y + l__10.y) / 2), ((l__9.z + l__10.z) / 2));
radius = (Math.sqrt(l__11) / 2);
}
public function toString():String{
return ((((("sandy.bounds.BSphere (center : " + center) + ", radius : ") + radius) + ")"));
}
public function distance(p__1:Point3D):Number{
var l__2:Number = (p__1.x - center.x);
var l__3:Number = (p__1.y - center.y);
var l__4:Number = (p__1.z - center.z);
return ((Math.sqrt((((l__2 * l__2) + (l__3 * l__3)) + (l__4 * l__4))) - radius));
}
public static function create(p__1:Array):BSphere{
var l__2:BSphere = new (BSphere);
l__2.compute(p__1);
return (l__2);
}
}
}//package sandy.bounds
Section 76
//Edge3D (sandy.core.data.Edge3D)
package sandy.core.data {
public final class Edge3D {
public var vertexId1:uint;
public var vertexId2:uint;
public var vertex1:Vertex;
public var vertex2:Vertex;
public function Edge3D(p__1:uint, p__2:uint){
super();
vertexId1 = p__1;
vertexId2 = p__2;
}
public function clone():Edge3D{
var l__1:Edge3D = new Edge3D(vertexId1, vertexId2);
return (l__1);
}
}
}//package sandy.core.data
Section 77
//Matrix4 (sandy.core.data.Matrix4)
package sandy.core.data {
import sandy.core.scenegraph.*;
import sandy.math.*;
import sandy.util.*;
public final class Matrix4 {
private const _fastMathInitialized:Boolean;
public var n11:Number;
public var n12:Number;
public var n13:Number;
public var n14:Number;
public var n21:Number;
public var n22:Number;
public var n23:Number;
public var n24:Number;
public var n31:Number;
public var n32:Number;
public var n33:Number;
public var n34:Number;
public var n41:Number;
public var n42:Number;
public var n43:Number;
public var n44:Number;
public static const USE_FAST_MATH:Boolean = false;
public function Matrix4(p__1:Number=1, p__2:Number=0, p__3:Number=0, p__4:Number=0, p__5:Number=0, p__6:Number=1, p__7:Number=0, p__8:Number=0, p__9:Number=0, p__10:Number=0, p__11:Number=1, p__12:Number=0, p__13:Number=0, p__14:Number=0, p__15:Number=0, p__16:Number=1){
_fastMathInitialized = FastMath.initialized;
super();
n11 = p__1;
n12 = p__2;
n13 = p__3;
n14 = p__4;
n21 = p__5;
n22 = p__6;
n23 = p__7;
n24 = p__8;
n31 = p__9;
n32 = p__10;
n33 = p__11;
n34 = p__12;
n41 = p__13;
n42 = p__14;
n43 = p__15;
n44 = p__16;
}
public function getTranslation():Point3D{
return (new Point3D(n14, n24, n34));
}
public function eulerRotation(p__1:Number, p__2:Number, p__3:Number):void{
identity();
p__1 = -(NumberUtil.toRadian(p__1));
p__2 = NumberUtil.toRadian(p__2);
p__3 = -(NumberUtil.toRadian(p__3));
var l__4:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__1) : FastMath.cos(p__1);
var l__5:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__1) : FastMath.sin(p__1);
var l__6:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__2) : FastMath.cos(p__2);
var l__7:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__2) : FastMath.sin(p__2);
var l__8:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__3) : FastMath.cos(p__3);
var l__9:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__3) : FastMath.sin(p__3);
var l__10:Number = (l__4 * l__7);
var l__11:Number = (l__5 * l__7);
n11 = (l__6 * l__8);
n12 = (l__6 * l__9);
n13 = -(l__7);
n21 = ((l__11 * l__8) - (l__4 * l__9));
n22 = ((l__11 * l__9) + (l__4 * l__8));
n23 = (l__5 * l__6);
n31 = ((l__10 * l__8) + (l__5 * l__9));
n32 = ((l__10 * l__9) - (l__5 * l__8));
n33 = (l__4 * l__6);
}
public function multiply3x3(p__1:Matrix4):void{
var l__2:Number = n11;
var l__3:Number = p__1.n11;
var l__4:Number = n21;
var l__5:Number = p__1.n21;
var l__6:Number = n31;
var l__7:Number = p__1.n31;
var l__8:Number = n12;
var l__9:Number = p__1.n12;
var l__10:Number = n22;
var l__11:Number = p__1.n22;
var l__12:Number = n32;
var l__13:Number = p__1.n32;
var l__14:Number = n13;
var l__15:Number = p__1.n13;
var l__16:Number = n23;
var l__17:Number = p__1.n23;
var l__18:Number = n33;
var l__19:Number = p__1.n33;
n11 = (((l__2 * l__3) + (l__8 * l__5)) + (l__14 * l__7));
n12 = (((l__2 * l__9) + (l__8 * l__11)) + (l__14 * l__13));
n13 = (((l__2 * l__15) + (l__8 * l__17)) + (l__14 * l__19));
n21 = (((l__4 * l__3) + (l__10 * l__5)) + (l__16 * l__7));
n22 = (((l__4 * l__9) + (l__10 * l__11)) + (l__16 * l__13));
n23 = (((l__4 * l__15) + (l__10 * l__17)) + (l__16 * l__19));
n31 = (((l__6 * l__3) + (l__12 * l__5)) + (l__18 * l__7));
n32 = (((l__6 * l__9) + (l__12 * l__11)) + (l__18 * l__13));
n33 = (((l__6 * l__15) + (l__12 * l__17)) + (l__18 * l__19));
n14 = (n24 = (n34 = (n41 = (n42 = (n43 = 0)))));
n44 = 1;
}
public function det():Number{
return (((((((((n11 * n22) - (n21 * n12)) * ((n33 * n44) - (n43 * n34))) - (((n11 * n32) - (n31 * n12)) * ((n23 * n44) - (n43 * n24)))) + (((n11 * n42) - (n41 * n12)) * ((n23 * n34) - (n33 * n24)))) + (((n21 * n32) - (n31 * n22)) * ((n13 * n44) - (n43 * n14)))) - (((n21 * n42) - (n41 * n22)) * ((n13 * n34) - (n33 * n14)))) + (((n31 * n42) - (n41 * n32)) * ((n13 * n24) - (n23 * n14)))));
}
public function getTrace():Number{
return ((((n11 + n22) + n33) + n44));
}
public function translationPoint3D(p__1:Point3D):void{
identity();
n14 = p__1.x;
n24 = p__1.y;
n34 = p__1.z;
}
public function rotationY(p__1:Number):void{
identity();
p__1 = NumberUtil.toRadian(p__1);
var l__2:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__1) : FastMath.cos(p__1);
var l__3:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__1) : FastMath.sin(p__1);
n11 = l__2;
n13 = -(l__3);
n31 = l__3;
n33 = l__2;
}
public function rotationX(p__1:Number):void{
identity();
p__1 = NumberUtil.toRadian(p__1);
var l__2:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__1) : FastMath.cos(p__1);
var l__3:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__1) : FastMath.sin(p__1);
n22 = l__2;
n23 = -(l__3);
n32 = l__3;
n33 = l__2;
}
public function multiply(p__1:Matrix4):void{
var l__2:Number = n11;
var l__3:Number = n21;
var l__4:Number = n31;
var l__5:Number = n41;
var l__6:Number = n12;
var l__7:Number = n22;
var l__8:Number = n32;
var l__9:Number = n42;
var l__10:Number = n13;
var l__11:Number = n23;
var l__12:Number = n33;
var l__13:Number = n43;
var l__14:Number = n14;
var l__15:Number = n24;
var l__16:Number = n34;
var l__17:Number = n44;
var l__18:Number = p__1.n11;
var l__19:Number = p__1.n21;
var l__20:Number = p__1.n31;
var l__21:Number = p__1.n41;
var l__22:Number = p__1.n12;
var l__23:Number = p__1.n22;
var l__24:Number = p__1.n32;
var l__25:Number = p__1.n42;
var l__26:Number = p__1.n13;
var l__27:Number = p__1.n23;
var l__28:Number = p__1.n33;
var l__29:Number = p__1.n43;
var l__30:Number = p__1.n14;
var l__31:Number = p__1.n24;
var l__32:Number = p__1.n34;
var l__33:Number = p__1.n44;
n11 = ((((l__2 * l__18) + (l__6 * l__19)) + (l__10 * l__20)) + (l__14 * l__21));
n12 = ((((l__2 * l__22) + (l__6 * l__23)) + (l__10 * l__24)) + (l__14 * l__25));
n13 = ((((l__2 * l__26) + (l__6 * l__27)) + (l__10 * l__28)) + (l__14 * l__29));
n14 = ((((l__2 * l__30) + (l__6 * l__31)) + (l__10 * l__32)) + (l__14 * l__33));
n21 = ((((l__3 * l__18) + (l__7 * l__19)) + (l__11 * l__20)) + (l__15 * l__21));
n22 = ((((l__3 * l__22) + (l__7 * l__23)) + (l__11 * l__24)) + (l__15 * l__25));
n23 = ((((l__3 * l__26) + (l__7 * l__27)) + (l__11 * l__28)) + (l__15 * l__29));
n24 = ((((l__3 * l__30) + (l__7 * l__31)) + (l__11 * l__32)) + (l__15 * l__33));
n31 = ((((l__4 * l__18) + (l__8 * l__19)) + (l__12 * l__20)) + (l__16 * l__21));
n32 = ((((l__4 * l__22) + (l__8 * l__23)) + (l__12 * l__24)) + (l__16 * l__25));
n33 = ((((l__4 * l__26) + (l__8 * l__27)) + (l__12 * l__28)) + (l__16 * l__29));
n34 = ((((l__4 * l__30) + (l__8 * l__31)) + (l__12 * l__32)) + (l__16 * l__33));
n41 = ((((l__5 * l__18) + (l__9 * l__19)) + (l__13 * l__20)) + (l__17 * l__21));
n42 = ((((l__5 * l__22) + (l__9 * l__23)) + (l__13 * l__24)) + (l__17 * l__25));
n43 = ((((l__5 * l__26) + (l__9 * l__27)) + (l__13 * l__28)) + (l__17 * l__29));
n44 = ((((l__5 * l__30) + (l__9 * l__31)) + (l__13 * l__32)) + (l__17 * l__33));
}
public function axisRotationWithReference(p__1:Point3D, p__2:Point3D, p__3:Number):void{
var l__4:Matrix4 = new Matrix4();
var l__5:Number = ((p__3 + 360) % 360);
translation(p__2.x, p__2.y, p__2.z);
l__4.axisRotation(p__1.x, p__1.y, p__1.z, l__5);
multiply(l__4);
l__4.translation(-(p__2.x), -(p__2.y), -(p__2.z));
multiply(l__4);
l__4 = null;
}
public function zero():void{
n11 = 0;
n12 = 0;
n13 = 0;
n14 = 0;
n21 = 0;
n22 = 0;
n23 = 0;
n24 = 0;
n31 = 0;
n32 = 0;
n33 = 0;
n34 = 0;
n41 = 0;
n42 = 0;
n43 = 0;
n44 = 0;
}
public function rotationZ(p__1:Number):void{
identity();
p__1 = NumberUtil.toRadian(p__1);
var l__2:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__1) : FastMath.cos(p__1);
var l__3:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__1) : FastMath.sin(p__1);
n11 = l__2;
n12 = -(l__3);
n21 = l__3;
n22 = l__2;
}
public function translation(p__1:Number, p__2:Number, p__3:Number):void{
identity();
n14 = p__1;
n24 = p__2;
n34 = p__3;
}
public function getEulerAngles():Point3D{
var l__3:Number;
var l__4:Number;
var l__1:Number = 57.295779513;
var l__2:Number = (Math.asin(-(this.n13)) * l__1);
if (!NumberUtil.isZero((Math.abs(this.n13) - 1))){
l__3 = (-(Math.atan2(this.n23, this.n33)) * l__1);
l__4 = (-(Math.atan2(this.n12, this.n11)) * l__1);
} else {
l__3 = 0;
l__4 = Math.atan2(-(this.n21), this.n22);
};
if (l__3 < 0){
l__3 = (l__3 + 360);
};
if (l__2 < 0){
l__2 = (l__2 + 360);
};
if (l__4 < 0){
l__4 = (l__4 + 360);
};
return (new Point3D(l__3, l__2, l__4));
}
public function inverse():void{
var l__1:Number = det();
if (Math.abs(l__1) < 0.001){
throw (new Error("cannot invert a matrix with a null determinant"));
};
l__1 = (1 / l__1);
var l__2:Number = n11;
var l__3:Number = n21;
var l__4:Number = n31;
var l__5:Number = n41;
var l__6:Number = n12;
var l__7:Number = n22;
var l__8:Number = n32;
var l__9:Number = n42;
var l__10:Number = n13;
var l__11:Number = n23;
var l__12:Number = n33;
var l__13:Number = n43;
var l__14:Number = n14;
var l__15:Number = n24;
var l__16:Number = n34;
var l__17:Number = n44;
n11 = (l__1 * (((l__7 * ((l__12 * l__17) - (l__13 * l__16))) - (l__8 * ((l__11 * l__17) - (l__13 * l__15)))) + (l__9 * ((l__11 * l__16) - (l__12 * l__15)))));
n12 = (-(l__1) * (((l__6 * ((l__12 * l__17) - (l__13 * l__16))) - (l__8 * ((l__10 * l__17) - (l__13 * l__14)))) + (l__9 * ((l__10 * l__16) - (l__12 * l__14)))));
n13 = (l__1 * (((l__6 * ((l__11 * l__17) - (l__13 * l__15))) - (l__7 * ((l__10 * l__17) - (l__13 * l__14)))) + (l__9 * ((l__10 * l__15) - (l__11 * l__14)))));
n14 = (-(l__1) * (((l__6 * ((l__11 * l__16) - (l__12 * l__15))) - (l__7 * ((l__10 * l__16) - (l__12 * l__14)))) + (l__8 * ((l__10 * l__15) - (l__11 * l__14)))));
n21 = (-(l__1) * (((l__3 * ((l__12 * l__17) - (l__13 * l__16))) - (l__4 * ((l__11 * l__17) - (l__13 * l__15)))) + (l__5 * ((l__11 * l__16) - (l__12 * l__15)))));
n22 = (l__1 * (((l__2 * ((l__12 * l__17) - (l__13 * l__16))) - (l__4 * ((l__10 * l__17) - (l__13 * l__14)))) + (l__5 * ((l__10 * l__16) - (l__12 * l__14)))));
n23 = (-(l__1) * (((l__2 * ((l__11 * l__17) - (l__13 * l__15))) - (l__3 * ((l__10 * l__17) - (l__13 * l__14)))) + (l__5 * ((l__10 * l__15) - (l__11 * l__14)))));
n24 = (l__1 * (((l__2 * ((l__11 * l__16) - (l__12 * l__15))) - (l__3 * ((l__10 * l__16) - (l__12 * l__14)))) + (l__4 * ((l__10 * l__15) - (l__11 * l__14)))));
n31 = (l__1 * (((l__3 * ((l__8 * l__17) - (l__9 * l__16))) - (l__4 * ((l__7 * l__17) - (l__9 * l__15)))) + (l__5 * ((l__7 * l__16) - (l__8 * l__15)))));
n32 = (-(l__1) * (((l__2 * ((l__8 * l__17) - (l__9 * l__16))) - (l__4 * ((l__6 * l__17) - (l__9 * l__14)))) + (l__5 * ((l__6 * l__16) - (l__8 * l__14)))));
n33 = (l__1 * (((l__2 * ((l__7 * l__17) - (l__9 * l__15))) - (l__3 * ((l__6 * l__17) - (l__9 * l__14)))) + (l__5 * ((l__6 * l__15) - (l__7 * l__14)))));
n34 = (-(l__1) * (((l__2 * ((l__7 * l__16) - (l__8 * l__15))) - (l__3 * ((l__6 * l__16) - (l__8 * l__14)))) + (l__4 * ((l__6 * l__15) - (l__7 * l__14)))));
n41 = (-(l__1) * (((l__3 * ((l__8 * l__13) - (l__9 * l__12))) - (l__4 * ((l__7 * l__13) - (l__9 * l__11)))) + (l__5 * ((l__7 * l__12) - (l__8 * l__11)))));
n42 = (l__1 * (((l__2 * ((l__8 * l__13) - (l__9 * l__12))) - (l__4 * ((l__6 * l__13) - (l__9 * l__10)))) + (l__5 * ((l__6 * l__12) - (l__8 * l__10)))));
n43 = (-(l__1) * (((l__2 * ((l__7 * l__13) - (l__9 * l__11))) - (l__3 * ((l__6 * l__13) - (l__9 * l__10)))) + (l__5 * ((l__6 * l__11) - (l__7 * l__10)))));
n44 = (l__1 * (((l__2 * ((l__7 * l__12) - (l__8 * l__11))) - (l__3 * ((l__6 * l__12) - (l__8 * l__10)))) + (l__4 * ((l__6 * l__11) - (l__7 * l__10)))));
}
public function det3x3():Number{
return ((((n11 * ((n22 * n33) - (n23 * n32))) + (n21 * ((n32 * n13) - (n12 * n33)))) + (n31 * ((n12 * n23) - (n22 * n13)))));
}
public function identity():void{
n11 = 1;
n12 = 0;
n13 = 0;
n14 = 0;
n21 = 0;
n22 = 1;
n23 = 0;
n24 = 0;
n31 = 0;
n32 = 0;
n33 = 1;
n34 = 0;
n41 = 0;
n42 = 0;
n43 = 0;
n44 = 1;
}
public function axisRotation(p__1:Number, p__2:Number, p__3:Number, p__4:Number):void{
identity();
p__4 = NumberUtil.toRadian(p__4);
var l__5:Number = ((USE_FAST_MATH)==false) ? Math.cos(p__4) : FastMath.cos(p__4);
var l__6:Number = ((USE_FAST_MATH)==false) ? Math.sin(p__4) : FastMath.sin(p__4);
var l__7:Number = (1 - l__5);
var l__8:Number = ((p__1 * p__2) * l__7);
var l__9:Number = ((p__2 * p__3) * l__7);
var l__10:Number = ((p__1 * p__3) * l__7);
var l__11:Number = (l__6 * p__3);
var l__12:Number = (l__6 * p__2);
var l__13:Number = (l__6 * p__1);
n11 = (l__5 + ((p__1 * p__1) * l__7));
n12 = (-(l__11) + l__8);
n13 = (l__12 + l__10);
n21 = (l__11 + l__8);
n22 = (l__5 + ((p__2 * p__2) * l__7));
n23 = (-(l__13) + l__9);
n31 = (-(l__12) + l__10);
n32 = (l__13 + l__9);
n33 = (l__5 + ((p__3 * p__3) * l__7));
}
public function addMatrix(p__1:Matrix4):void{
n11 = (n11 + p__1.n11);
n12 = (n12 + p__1.n12);
n13 = (n13 + p__1.n13);
n14 = (n14 + p__1.n14);
n21 = (n21 + p__1.n21);
n22 = (n22 + p__1.n22);
n23 = (n23 + p__1.n23);
n24 = (n24 + p__1.n24);
n31 = (n31 + p__1.n31);
n32 = (n32 + p__1.n32);
n33 = (n33 + p__1.n33);
n34 = (n34 + p__1.n34);
n41 = (n41 + p__1.n41);
n42 = (n42 + p__1.n42);
n43 = (n43 + p__1.n43);
n44 = (n44 + p__1.n44);
}
public function transform3x3(p__1:Point3D):void{
var l__2:Number = p__1.x;
var l__3:Number = p__1.y;
var l__4:Number = p__1.z;
p__1.x = (((l__2 * n11) + (l__3 * n12)) + (l__4 * n13));
p__1.y = (((l__2 * n21) + (l__3 * n22)) + (l__4 * n23));
p__1.z = (((l__2 * n31) + (l__3 * n32)) + (l__4 * n33));
}
public function scale(p__1:Number, p__2:Number, p__3:Number):void{
identity();
n11 = p__1;
n22 = p__2;
n33 = p__3;
}
public function multiply4x3(p__1:Matrix4):void{
var l__2:Number = n11;
var l__3:Number = p__1.n11;
var l__4:Number = n21;
var l__5:Number = p__1.n21;
var l__6:Number = n31;
var l__7:Number = p__1.n31;
var l__8:Number = n12;
var l__9:Number = p__1.n12;
var l__10:Number = n22;
var l__11:Number = p__1.n22;
var l__12:Number = n32;
var l__13:Number = p__1.n32;
var l__14:Number = n13;
var l__15:Number = p__1.n13;
var l__16:Number = n23;
var l__17:Number = p__1.n23;
var l__18:Number = n33;
var l__19:Number = p__1.n33;
var l__20:Number = p__1.n14;
var l__21:Number = p__1.n24;
var l__22:Number = p__1.n34;
n11 = (((l__2 * l__3) + (l__8 * l__5)) + (l__14 * l__7));
n12 = (((l__2 * l__9) + (l__8 * l__11)) + (l__14 * l__13));
n13 = (((l__2 * l__15) + (l__8 * l__17)) + (l__14 * l__19));
n14 = ((((l__20 * l__2) + (l__21 * l__8)) + (l__22 * l__14)) + n14);
n21 = (((l__4 * l__3) + (l__10 * l__5)) + (l__16 * l__7));
n22 = (((l__4 * l__9) + (l__10 * l__11)) + (l__16 * l__13));
n23 = (((l__4 * l__15) + (l__10 * l__17)) + (l__16 * l__19));
n24 = ((((l__20 * l__4) + (l__21 * l__10)) + (l__22 * l__16)) + n24);
n31 = (((l__6 * l__3) + (l__12 * l__5)) + (l__18 * l__7));
n32 = (((l__6 * l__9) + (l__12 * l__11)) + (l__18 * l__13));
n33 = (((l__6 * l__15) + (l__12 * l__17)) + (l__18 * l__19));
n34 = ((((l__20 * l__6) + (l__21 * l__12)) + (l__22 * l__18)) + n34);
n41 = (n42 = (n43 = 0));
n44 = 1;
}
public function axisRotationPoint3D(p__1:Point3D, p__2:Number):void{
axisRotation(p__1.x, p__1.y, p__1.z, p__2);
}
public function scalePoint3D(p__1:Point3D):void{
identity();
n11 = p__1.x;
n22 = p__1.y;
n33 = p__1.z;
}
public function fromPoint3Ds(p__1:Point3D, p__2:Point3D, p__3:Point3D, p__4:Point3D):void{
zero();
n11 = p__1.x;
n21 = p__1.y;
n31 = p__1.z;
n12 = p__2.x;
n22 = p__2.y;
n32 = p__2.z;
n13 = p__3.x;
n23 = p__3.y;
n33 = p__3.z;
n14 = p__4.x;
n24 = p__4.y;
n34 = p__4.z;
}
public function clone():Matrix4{
return (new Matrix4(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44));
}
public function serialize(p__1:Number=1E-6):String{
var l__2:Function = NumberUtil.roundTo;
var l__3:String = new String("");
l__3 = (l__3 + (((((((l__2(n11, p__1) + ",") + l__2(n12, p__1)) + ",") + l__2(n13, p__1)) + ",") + l__2(n14, p__1)) + ","));
l__3 = (l__3 + (((((((l__2(n21, p__1) + ",") + l__2(n22, p__1)) + ",") + l__2(n23, p__1)) + ",") + l__2(n24, p__1)) + ","));
l__3 = (l__3 + (((((((l__2(n31, p__1) + ",") + l__2(n32, p__1)) + ",") + l__2(n33, p__1)) + ",") + l__2(n34, p__1)) + ","));
l__3 = (l__3 + ((((((l__2(n41, p__1) + ",") + l__2(n42, p__1)) + ",") + l__2(n43, p__1)) + ",") + l__2(n44, p__1)));
return (l__3);
}
public function transform(p__1:Point3D):void{
var l__2:Number = p__1.x;
var l__3:Number = p__1.y;
var l__4:Number = p__1.z;
p__1.x = ((((l__2 * n11) + (l__3 * n12)) + (l__4 * n13)) + n14);
p__1.y = ((((l__2 * n21) + (l__3 * n22)) + (l__4 * n23)) + n24);
p__1.z = ((((l__2 * n31) + (l__3 * n32)) + (l__4 * n33)) + n34);
}
public function copy(p__1:Matrix4):void{
n11 = p__1.n11;
n12 = p__1.n12;
n13 = p__1.n13;
n14 = p__1.n14;
n21 = p__1.n21;
n22 = p__1.n22;
n23 = p__1.n23;
n24 = p__1.n24;
n31 = p__1.n31;
n32 = p__1.n32;
n33 = p__1.n33;
n34 = p__1.n34;
n41 = p__1.n41;
n42 = p__1.n42;
n43 = p__1.n43;
n44 = p__1.n44;
}
public function toString():String{
var l__1:* = ("sandy.core.data.Matrix4" + "\n (");
l__1 = (l__1 + (((((((n11 + "\t") + n12) + "\t") + n13) + "\t") + n14) + "\n"));
l__1 = (l__1 + (((((((n21 + "\t") + n22) + "\t") + n23) + "\t") + n24) + "\n"));
l__1 = (l__1 + (((((((n31 + "\t") + n32) + "\t") + n33) + "\t") + n34) + "\n"));
l__1 = (l__1 + (((((((n41 + "\t") + n42) + "\t") + n43) + "\t") + n44) + "\n)"));
return (l__1);
}
public static function deserialize(p__1:String):Matrix4{
var l__2:Array = p__1.split(",");
if (l__2.length != 16){
trace(("Unexpected length of string to deserialize into a matrix4 " + p__1));
};
var l__3:Number = 0;
while (l__3 < l__2.length) {
l__2[l__3] = Number(l__2[l__3]);
l__3++;
};
var l__4:Matrix4 = new Matrix4(l__2[0], l__2[1], l__2[2], l__2[3], l__2[4], l__2[5], l__2[6], l__2[7], l__2[8], l__2[9], l__2[10], l__2[11], l__2[12], l__2[13], l__2[14], l__2[15]);
return (l__4);
}
}
}//package sandy.core.data
Section 78
//Plane (sandy.core.data.Plane)
package sandy.core.data {
import com.midasplayer.debug.*;
public final class Plane {
public var a:Number;
public var c:Number;
public var b:Number;
public var d:Number;
public function Plane(p__1:Number=0, p__2:Number=0, p__3:Number=0, p__4:Number=0){
super();
a = p__1;
b = p__2;
c = p__3;
d = p__4;
}
public function toString():String{
return (((((((((("sandy.core.data.Plane" + "(a:") + a) + ", b:") + b) + ", c:") + c) + ", d:") + d) + ")"));
}
}
}//package sandy.core.data
Section 79
//Point3D (sandy.core.data.Point3D)
package sandy.core.data {
import sandy.materials.*;
import sandy.util.*;
public final class Point3D {
public var y:Number;
public var x:Number;
public var z:Number;
public function Point3D(p__1:Number=0, p__2:Number=0, p__3:Number=0){
super();
x = p__1;
y = p__2;
z = p__3;
}
public function sub(p__1:Point3D):void{
x = (x - p__1.x);
y = (y - p__1.y);
z = (z - p__1.z);
}
public function getMinComponent():Number{
return (Math.min(x, Math.min(y, z)));
}
public function negate():Point3D{
return (new Point3D(-(x), -(y), -(z)));
}
public function resetToNegativeInfinity():void{
x = (y = (z = Number.NEGATIVE_INFINITY));
}
public function dot(p__1:Point3D):Number{
return ((((x * p__1.x) + (y * p__1.y)) + (z * p__1.z)));
}
public function scale(p__1:Number):void{
x = (x * p__1);
y = (y * p__1);
z = (z * p__1);
}
public function resetToPositiveInfinity():void{
x = (y = (z = Number.POSITIVE_INFINITY));
}
public function normalize():void{
var l__1:Number = getNorm();
if ((((l__1 == 0)) || ((l__1 == 1)))){
return;
};
x = (x / l__1);
y = (y / l__1);
z = (z / l__1);
}
public function cross(p__1:Point3D):Point3D{
return (new Point3D(((y * p__1.z) - (z * p__1.y)), ((z * p__1.x) - (x * p__1.z)), ((x * p__1.y) - (y * p__1.x))));
}
public function reset(p__1:Number=0, p__2:Number=0, p__3:Number=0):void{
x = p__1;
y = p__2;
z = p__3;
}
public function pow(p__1:Number):void{
x = Math.pow(x, p__1);
y = Math.pow(y, p__1);
z = Math.pow(z, p__1);
}
public function getAngle(p__1:Point3D):Number{
var l__5:Number;
var l__6:Number;
var l__2:Number = getNorm();
var l__3:Number = p__1.getNorm();
var l__4:Number = (l__2 * l__3);
if (l__4 == 0){
return (0);
};
l__5 = (dot(p__1) / l__4);
l__6 = (1 - (l__5 * l__5));
if (l__6 < 0){
trace((" wrong " + l__5));
l__6 = 0;
};
return (Math.atan2(Math.sqrt(l__6), l__5));
}
public function serialize(p__1:Number=0.1):String{
return (((((NumberUtil.roundTo(x, p__1) + ",") + NumberUtil.roundTo(y, p__1)) + ",") + NumberUtil.roundTo(z, p__1)));
}
public function add(p__1:Point3D):void{
x = (x + p__1.x);
y = (y + p__1.y);
z = (z + p__1.z);
}
public function clone():Point3D{
var l__1:Point3D = new Point3D(x, y, z);
return (l__1);
}
public function crossWith(p__1:Point3D):void{
var l__2:Number = ((y * p__1.z) - (z * p__1.y));
var l__3:Number = ((z * p__1.x) - (x * p__1.z));
var l__4:Number = ((x * p__1.y) - (y * p__1.x));
x = l__2;
y = l__3;
z = l__4;
}
public function toString(p__1:Number=0):String{
return ((("{" + serialize(Math.pow(10, -(p__1)))) + "}"));
}
public function getMaxComponent():Number{
return (Math.max(x, Math.max(y, z)));
}
public function getNorm():Number{
return (Math.sqrt((((x * x) + (y * y)) + (z * z))));
}
public function copy(p__1:Point3D):void{
x = p__1.x;
y = p__1.y;
z = p__1.z;
}
public function equals(p__1:Point3D):Boolean{
return ((((((p__1.x == x)) && ((p__1.y == y)))) && ((p__1.z == z))));
}
public static function deserialize(p__1:String):Point3D{
var l__2:Array = p__1.split(",");
if (l__2.length != 3){
trace(("Unexpected length of string to deserialize into a Point3D " + p__1));
};
var l__3:Number = 0;
while (l__3 < l__2.length) {
l__2[l__3] = Number(l__2[l__3]);
l__3++;
};
return (new Point3D(l__2[0], l__2[1], l__2[2]));
}
}
}//package sandy.core.data
Section 80
//Polygon (sandy.core.data.Polygon)
package sandy.core.data {
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sandy.core.interaction.*;
import sandy.math.*;
import flash.utils.*;
public final class Polygon implements IDisplayable {
public const id:uint;
public var visible:Boolean;
private var m_nDepth:Number;
private var mouseEvents:Boolean;// = false
public var shape:Shape3D;
private var m_nNormalId:uint;
public var vertexNormals:Array;
private var m_bWasOver:Boolean;// = false
private var m_oGeometry:Geometry3D;
public var aNeighboors:Array;
public var isClipped:Boolean;// = false
public var caUVCoord:Array;
public var uvBounds:Rectangle;
private var mouseInteractivity:Boolean;// = false
public var aUVCoord:Array;
public var minZ:Number;
public var cvertices:Array;
public var a:Vertex;
public var b:Vertex;
public var c:Vertex;
private var m_oAppearance:Appearance;
public var d:Vertex;
private var m_oScene:Scene3D;// = null
protected var m_oContainer:Sprite;
public var aEdges:Array;
public var vertices:Array;
protected var m_oEB:BubbleEventBroadcaster;
private static var _ID_:uint = 0;
public static var POLYGON_MAP:Dictionary = new Dictionary(true);
public function Polygon(p__1:Shape3D, p__2:Geometry3D, p__3:Array, p__4:Array=null, p__5:Number=0, p__6:uint=0){
id = _ID_++;
aNeighboors = new Array();
super();
shape = p__1;
m_oGeometry = p__2;
__update(p__3, p__4, p__5, p__6);
m_oContainer = new Sprite();
POLYGON_MAP[id] = this;
m_oEB = new BubbleEventBroadcaster(this);
}
public function getUVFrom2D(p__1:Point):UVCoord{
var l__2:Point = new Point(vertices[0].sx, vertices[0].sy);
var l__3:Point = new Point(vertices[1].sx, vertices[1].sy);
var l__4:Point = new Point(vertices[2].sx, vertices[2].sy);
var l__5:UVCoord = aUVCoord[0];
var l__6:UVCoord = aUVCoord[1];
var l__7:UVCoord = aUVCoord[2];
var l__8:Point = new Point((l__3.x - l__2.x), (l__3.y - l__2.y));
var l__9:Point = l__8.clone();
l__9.normalize(1);
var l__10:Point = new Point((l__4.x - l__2.x), (l__4.y - l__2.y));
var l__11:Point = l__10.clone();
l__11.normalize(1);
var l__12:Point = new Point((p__1.x - l__8.x), (p__1.y - l__8.y));
var l__13:Point = IntersectionMath.intersectionLine2D(l__2, l__4, p__1, l__12);
var l__14:Point = new Point((l__13.x - l__2.x), (l__13.y - l__2.y));
var l__15:Point = new Point((p__1.x - l__13.x), (p__1.y - l__13.y));
var l__16:Number = (l__15.length / l__8.length);
var l__17:Number = (l__14.length / l__10.length);
return (new UVCoord(((l__5.u + (l__16 * (l__6.u - l__5.u))) + (l__17 * (l__7.u - l__5.u))), ((l__5.v + (l__16 * (l__6.v - l__5.v))) + (l__17 * (l__7.v - l__5.v)))));
}
public function createNormal():Point3D{
var l__1:Point3D;
var l__2:Point3D;
var l__3:Vertex;
var l__4:Vertex;
var l__5:Vertex;
var l__6:Point3D;
if (vertices.length > 2){
l__3 = vertices[0];
l__4 = vertices[1];
l__5 = vertices[2];
l__1 = new Point3D((l__4.x - l__3.x), (l__4.y - l__3.y), (l__4.z - l__3.z));
l__2 = new Point3D((l__4.x - l__5.x), (l__4.y - l__5.y), (l__4.z - l__5.z));
l__6 = Point3DMath.cross(l__1, l__2);
Point3DMath.normalize(l__6);
return (l__6);
};
return (new Point3D());
}
public function toString():String{
return ((((("sandy.core.data.Polygon::id=" + id) + " [Points: ") + vertices.length) + "]"));
}
public function set depth(p__1:Number):void{
m_nDepth = p__1;
}
public function display(p__1:Sprite=null):void{
var l__2:Sprite = (p__1) ? p__1 : m_oContainer;
if (material){
material.renderPolygon(scene, this, l__2);
};
}
private function _beginMaterial(p__1:SandyEvent):void{
if (!m_oAppearance){
return;
};
if (m_oAppearance.frontMaterial){
m_oAppearance.frontMaterial.begin(m_oScene);
if (m_oAppearance.backMaterial != m_oAppearance.frontMaterial){
m_oAppearance.backMaterial.begin(m_oScene);
};
};
}
public function get appearance():Appearance{
return (m_oAppearance);
}
public function destroy():void{
clear();
scene.removeEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
scene.removeEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
enableEvents = false;
enableInteractivity = false;
if (appearance){
if (appearance.backMaterial){
appearance.backMaterial.unlink(this);
};
if (appearance.frontMaterial){
appearance.frontMaterial.unlink(this);
};
appearance = null;
};
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
if (m_oContainer){
m_oContainer = null;
};
cvertices = null;
vertices = null;
m_oEB = null;
m_oGeometry = null;
shape = null;
scene = null;
delete POLYGON_MAP[id];
}
public function get scene():Scene3D{
return (m_oScene);
}
public function _onTextureInteraction(p__1:Event=null):void{
if ((((p__1 == null)) || (!((p__1 is MouseEvent))))){
p__1 = new MouseEvent(MouseEvent.MOUSE_MOVE, true, false, 0, 0, null, false, false, false, false, 0);
};
var l__2:Point = new Point(scene.container.mouseX, scene.container.mouseY);
var l__3:UVCoord = getUVFrom2D(l__2);
VirtualMouse.getInstance().interactWithTexture(this, l__3, (p__1 as MouseEvent));
_onInteraction(p__1);
}
public function updateNormal():void{
var l__1:Number = (((a.y - b.y) * (c.z - b.z)) - ((a.z - b.z) * (c.y - b.y)));
var l__2:Number = (((a.z - b.z) * (c.x - b.x)) - ((a.x - b.x) * (c.z - b.z)));
var l__3:Number = (((a.x - b.x) * (c.y - b.y)) - ((a.y - b.y) * (c.x - b.x)));
normal.reset(l__1, l__2, l__3);
}
public function set scene(p__1:Scene3D):void{
if (p__1 == null){
return;
};
if (m_oScene != null){
m_oScene.removeEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
m_oScene.removeEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
};
m_oScene = p__1;
m_oScene.addEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
m_oScene.addEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
}
public function get container():Sprite{
return (m_oContainer);
}
public function swapCulling():void{
normal.negate();
}
public function get3DFrom2D(p__1:Point):Point3D{
var l__2:Matrix = new Matrix((vertices[1].sx - vertices[0].sx), (vertices[2].sx - vertices[0].sx), (vertices[1].sy - vertices[0].sy), (vertices[2].sy - vertices[0].sy), 0, 0);
l__2.invert();
var l__3:Number = ((l__2.a * (p__1.x - vertices[0].sx)) + (l__2.b * (p__1.y - vertices[0].sy)));
var l__4:Number = ((l__2.c * (p__1.x - vertices[0].sx)) + (l__2.d * (p__1.y - vertices[0].sy)));
var l__5:Point3D = new Point3D(((vertices[0].x + (l__3 * (vertices[1].x - vertices[0].x))) + (l__4 * (vertices[2].x - vertices[0].x))), ((vertices[0].y + (l__3 * (vertices[1].y - vertices[0].y))) + (l__4 * (vertices[2].y - vertices[0].y))), ((vertices[0].z + (l__3 * (vertices[1].z - vertices[0].z))) + (l__4 * (vertices[2].z - vertices[0].z))));
this.shape.matrix.transform(l__5);
return (l__5);
}
public function get material():Material{
if (m_oAppearance == null){
return (null);
};
return ((visible) ? m_oAppearance.frontMaterial : m_oAppearance.backMaterial);
}
private function __update(p__1:Array, p__2:Array, p__3:uint, p__4:uint):void{
var l__8:Number;
var l__9:Number;
var l__10:Number;
var l__11:Number;
var l__13:UVCoord;
var l__14:Point3D;
var l__15:Edge3D;
var l__5:int;
var l__6:* = undefined;
var l__7:uint;
var l__12:* = undefined;
vertexNormals = new Array();
vertices = new Array();
for each (l__6 in p__1) {
vertices[l__5] = Vertex(m_oGeometry.aVertex[p__1[l__5]]);
vertexNormals[l__5] = m_oGeometry.aVertexNormals[p__1[l__5]];
l__5++;
};
a = vertices[0];
b = vertices[1];
c = vertices[2];
d = vertices[3];
if (p__2){
l__8 = Number.POSITIVE_INFINITY;
l__9 = Number.POSITIVE_INFINITY;
l__10 = Number.NEGATIVE_INFINITY;
l__11 = Number.NEGATIVE_INFINITY;
aUVCoord = new Array();
l__5 = 0;
if (p__2){
for each (l__12 in p__2) {
l__13 = (m_oGeometry.aUVCoords[p__2[l__5]] as UVCoord);
if (l__13 == null){
l__13 = new UVCoord(0, 0);
};
aUVCoord[l__5] = l__13;
if (l__13.u < l__8){
l__8 = l__13.u;
} else {
if (l__13.u > l__10){
l__10 = l__13.u;
};
};
if (l__13.v < l__9){
l__9 = l__13.v;
} else {
if (l__13.v > l__11){
l__11 = l__13.v;
};
};
l__5++;
};
uvBounds = new Rectangle(l__8, l__9, (l__10 - l__8), (l__11 - l__9));
} else {
aUVCoord = [new UVCoord(), new UVCoord(), new UVCoord()];
uvBounds = new Rectangle(0, 0, 0, 0);
};
};
m_nNormalId = p__3;
normal = Vertex(m_oGeometry.aFacesNormals[p__3]);
if (normal == null){
l__14 = createNormal();
m_nNormalId = m_oGeometry.setFaceNormal(m_oGeometry.getNextFaceNormalID(), l__14.x, l__14.y, l__14.z);
};
aEdges = new Array();
for each (l__7 in m_oGeometry.aFaceEdges[p__4]) {
l__15 = m_oGeometry.aEdges[l__7];
l__15.vertex1 = m_oGeometry.aVertex[l__15.vertexId1];
l__15.vertex2 = m_oGeometry.aVertex[l__15.vertexId2];
aEdges.push(l__15);
};
}
public function clipFrontPlane(p__1:Frustum):Array{
cvertices = vertices.concat();
if (vertices.length < 3){
isClipped = p__1.clipLineFrontPlane(cvertices);
} else {
caUVCoord = aUVCoord.concat();
isClipped = p__1.clipFrontPlane(cvertices, caUVCoord);
};
return (cvertices);
}
public function get broadcaster():BubbleEventBroadcaster{
return (m_oEB);
}
public function clear():void{
if (m_oContainer != null){
m_oContainer.graphics.clear();
};
}
private function _finishMaterial(p__1:SandyEvent):void{
if (!m_oAppearance){
return;
};
if (m_oAppearance.frontMaterial){
m_oAppearance.frontMaterial.finish(m_oScene);
if (m_oAppearance.backMaterial != m_oAppearance.frontMaterial){
m_oAppearance.backMaterial.finish(m_oScene);
};
};
}
public function get changed():Boolean{
return (shape.changed);
}
public function _startMouseInteraction(p__1:MouseEvent=null):void{
container.addEventListener(MouseEvent.CLICK, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_UP, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_DOWN, _onTextureInteraction);
container.addEventListener(MouseEvent.DOUBLE_CLICK, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_MOVE, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_OVER, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_OUT, _onTextureInteraction);
container.addEventListener(MouseEvent.MOUSE_WHEEL, _onTextureInteraction);
container.addEventListener(KeyboardEvent.KEY_DOWN, _onTextureInteraction);
container.addEventListener(KeyboardEvent.KEY_UP, _onTextureInteraction);
m_oContainer.addEventListener(Event.ENTER_FRAME, _onTextureInteraction);
}
public function get depth():Number{
return (m_nDepth);
}
public function precompute():void{
isClipped = false;
minZ = a.wz;
if (b.wz < minZ){
minZ = b.wz;
};
m_nDepth = (a.wz + b.wz);
if (c != null){
if (c.wz < minZ){
minZ = c.wz;
};
m_nDepth = (m_nDepth + c.wz);
};
if (d != null){
if (d.wz < minZ){
minZ = d.wz;
};
m_nDepth = (m_nDepth + d.wz);
};
m_nDepth = (m_nDepth / vertices.length);
}
public function set normal(p__1:Vertex):void{
if (p__1 != null){
m_oGeometry.aFacesNormals[m_nNormalId].copy(p__1);
};
}
public function addEventListener(p__1:String, p__2):void{
m_oEB.addEventListener.apply(m_oEB, arguments);
}
public function get enableInteractivity():Boolean{
return (mouseInteractivity);
}
protected function _onInteraction(p__1:Event):void{
var l__2:Point = new Point(m_oContainer.mouseX, m_oContainer.mouseY);
var l__3:UVCoord = getUVFrom2D(l__2);
var l__4:Point3D = get3DFrom2D(l__2);
shape.m_oLastContainer = this.m_oContainer;
shape.m_oLastEvent = new Shape3DEvent(p__1.type, shape, this, l__3, l__4, p__1);
m_oEB.dispatchEvent(shape.m_oLastEvent);
if (p__1.type == MouseEvent.MOUSE_OVER){
shape.m_bWasOver = true;
};
}
public function createTransformedNormal():Point3D{
var l__1:Point3D;
var l__2:Point3D;
var l__3:Vertex;
var l__4:Vertex;
var l__5:Vertex;
var l__6:Point3D;
if (vertices.length > 2){
l__3 = vertices[0];
l__4 = vertices[1];
l__5 = vertices[2];
l__1 = new Point3D((l__4.wx - l__3.wx), (l__4.wy - l__3.wy), (l__4.wz - l__3.wz));
l__2 = new Point3D((l__4.wx - l__5.wx), (l__4.wy - l__5.wy), (l__4.wz - l__5.wz));
l__6 = Point3DMath.cross(l__1, l__2);
Point3DMath.normalize(l__6);
return (l__6);
};
return (new Point3D());
}
public function removeEventListener(p__1:String, p__2):void{
m_oEB.removeEventListener(p__1, p__2);
}
public function _stopMouseInteraction(p__1:MouseEvent=null):void{
m_oContainer.removeEventListener(MouseEvent.CLICK, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_UP, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_DOWN, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.DOUBLE_CLICK, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_MOVE, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OVER, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OUT, _onTextureInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, _onTextureInteraction);
m_oContainer.removeEventListener(Event.ENTER_FRAME, _onTextureInteraction);
m_oContainer.removeEventListener(KeyboardEvent.KEY_DOWN, _onTextureInteraction);
m_oContainer.removeEventListener(KeyboardEvent.KEY_UP, _onTextureInteraction);
}
public function clip(p__1:Frustum):Array{
cvertices = null;
caUVCoord = null;
var l__2:CullingState = p__1.polygonInFrustum(this);
if (l__2 == CullingState.INSIDE){
return (vertices);
};
if (l__2 == CullingState.OUTSIDE){
return (null);
};
if (vertices.length < 3){
clipFrontPlane(p__1);
} else {
cvertices = vertices.concat();
caUVCoord = aUVCoord.concat();
isClipped = p__1.clipFrustum(cvertices, caUVCoord);
};
return (cvertices);
}
public function set appearance(p__1:Appearance):void{
if (p__1 == m_oAppearance){
return;
};
if (((!((m_oAppearance == null))) && (!((p__1 == null))))){
if (p__1.frontMaterial != m_oAppearance.frontMaterial){
m_oAppearance.frontMaterial.unlink(this);
p__1.frontMaterial.init(this);
};
if (((!((m_oAppearance.frontMaterial == m_oAppearance.backMaterial))) && (!((p__1.backMaterial == m_oAppearance.backMaterial))))){
m_oAppearance.backMaterial.unlink(this);
};
if (((!((p__1.frontMaterial == p__1.backMaterial))) && (!((p__1.backMaterial == m_oAppearance.backMaterial))))){
p__1.backMaterial.init(this);
};
m_oAppearance = p__1;
} else {
if (p__1){
m_oAppearance = p__1;
m_oAppearance.frontMaterial.init(this);
if (m_oAppearance.backMaterial != m_oAppearance.frontMaterial){
m_oAppearance.backMaterial.init(this);
};
} else {
if (m_oAppearance){
m_oAppearance.frontMaterial.unlink(this);
if (m_oAppearance.backMaterial != m_oAppearance.frontMaterial){
m_oAppearance.backMaterial.unlink(this);
};
m_oAppearance = null;
};
};
};
}
public function get normal():Vertex{
return (m_oGeometry.aFacesNormals[m_nNormalId]);
}
public function set enableEvents(p__1:Boolean):void{
if (((p__1) && (!(mouseEvents)))){
container.addEventListener(MouseEvent.CLICK, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
container.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
container.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
container.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
container.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
} else {
if (((!(p__1)) && (mouseEvents))){
container.removeEventListener(MouseEvent.CLICK, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
container.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
container.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
container.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
container.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
mouseEvents = p__1;
}
public function get enableEvents():Boolean{
return (mouseEvents);
}
public function set enableInteractivity(p__1:Boolean):void{
if (p__1 != mouseInteractivity){
if (p__1){
container.addEventListener(MouseEvent.ROLL_OVER, _startMouseInteraction, false);
container.addEventListener(MouseEvent.ROLL_OUT, _stopMouseInteraction, false);
} else {
_stopMouseInteraction();
};
mouseInteractivity = p__1;
};
}
}
}//package sandy.core.data
Section 81
//Pool (sandy.core.data.Pool)
package sandy.core.data {
public class Pool {
private const m_aPoint3Ds:Array;
private const m_aVertices:Array;
private const m_aUV:Array;
private var m_nIdVertice:int;// = 0
private var m_nIdPoint3D:int;// = 0
private var m_nIdUV:int;// = 0
private var m_nSize:int;// = 300
private static var INSTANCE:Pool = null;
public function Pool(){
var l__1:int;
m_aVertices = new Array();
m_aUV = new Array();
m_aPoint3Ds = new Array();
super();
if (INSTANCE != null){
throw (new Error("There *MUST* be single Pool instance."));
};
while (l__1 < m_nSize) {
m_aVertices[int(l__1)] = new Vertex();
m_aUV[int(l__1)] = new UVCoord();
m_aPoint3Ds[int(l__1)] = new Point3D();
l__1++;
};
}
public function get nextPoint3D():Point3D{
if (m_nIdPoint3D >= m_aPoint3Ds.length){
m_aPoint3Ds[m_aPoint3Ds.length] = new Point3D();
};
return (m_aPoint3Ds[int(m_nIdPoint3D++)]);
}
public function init():void{
m_nIdVertice = (m_nIdUV = (m_nIdPoint3D = 0));
}
public function get nextUV():UVCoord{
if (m_nIdUV >= m_aUV.length){
m_aUV[m_aUV.length] = new UVCoord();
};
return (m_aUV[int(m_nIdUV++)]);
}
public function get nextVertex():Vertex{
if (m_nIdVertice >= m_aVertices.length){
m_aVertices[m_aVertices.length] = new Vertex();
};
var l__1:Vertex = m_aVertices[int(m_nIdVertice++)];
l__1.projected = false;
l__1.transformed = false;
return (l__1);
}
public static function getInstance():Pool{
if (INSTANCE == null){
INSTANCE = new (Pool);
};
return (INSTANCE);
}
}
}//package sandy.core.data
Section 82
//UVCoord (sandy.core.data.UVCoord)
package sandy.core.data {
import sandy.bounds.*;
public final class UVCoord {
public var u:Number;
public var v:Number;
public function UVCoord(p__1:Number=0, p__2:Number=0){
super();
u = p__1;
v = p__2;
}
public function sub(p__1:UVCoord):void{
u = (u - p__1.u);
v = (v - p__1.v);
}
public function add(p__1:UVCoord):void{
u = (u + p__1.u);
v = (v + p__1.v);
}
public function length():Number{
return (Math.sqrt(((u * u) + (v * v))));
}
public function scale(p__1:Number):void{
u = (u * p__1);
v = (v * p__1);
}
public function toString():String{
return (((((("sandy.core.data.UVCoord" + "(u:") + u) + ", v:") + v) + ")"));
}
public function normalize():void{
var l__1:Number = length();
u = (u / l__1);
v = (v / l__1);
}
public function copy(p__1:UVCoord):void{
u = p__1.u;
v = p__1.v;
}
public function clone():UVCoord{
return (new UVCoord(u, v));
}
}
}//package sandy.core.data
Section 83
//Vertex (sandy.core.data.Vertex)
package sandy.core.data {
import sandy.util.*;
public final class Vertex {
public const id:uint;
private const m_oCamera:Point3D;
private const m_oLocal:Point3D;
public var flags:int;// = 0
public var transformed:Boolean;// = false
public var aFaces:Array;
public var wx:Number;
public var wy:Number;
public var wz:Number;
public var sx:Number;
public var sy:Number;
public var nbFaces:uint;// = 0
public var x:Number;
public var y:Number;
public var z:Number;
public var projected:Boolean;// = false
private static var ID:uint = 0;
public function Vertex(p__1:Number=0, p__2:Number=0, p__3:Number=0, ... _args){
id = ID++;
aFaces = new Array();
m_oCamera = new Point3D();
m_oLocal = new Point3D();
super();
x = p__1;
y = p__2;
z = p__3;
wx = (_args[0]) ? _args[0] : x;
wy = (_args[1]) ? _args[1] : y;
wz = (_args[2]) ? _args[2] : z;
sy = (sx = 0);
}
public function negate():void{
x = -(x);
y = -(y);
z = -(z);
wx = -(wx);
wy = -(wy);
wz = -(wz);
}
public function deserialize(p__1:String):void{
var l__2:Array = p__1.split(",");
if (l__2.length != 9){
trace(("Unexpected length of string to deserialize into a Point3D " + p__1));
};
x = l__2[0];
y = l__2[1];
z = l__2[2];
wx = l__2[3];
wy = l__2[4];
wz = l__2[5];
sx = l__2[6];
sy = l__2[7];
}
public function normalize():void{
var l__1:Number = getNorm();
if ((((l__1 == 0)) || ((l__1 == 1)))){
return;
};
x = (x / l__1);
y = (y / l__1);
z = (z / l__1);
wx = (wx / l__1);
wy = (wy / l__1);
wz = (wz / l__1);
}
public function getAngle(p__1:Vertex):Number{
var l__2:Number = (dot(p__1) / (getNorm() * p__1.getNorm()));
var l__3:Number = (1 - (l__2 * l__2));
if (l__3 < 0){
trace((" wrong " + l__2));
l__3 = 0;
};
return (Math.atan2(Math.sqrt(l__3), l__2));
}
public function add(p__1:Vertex):void{
x = (x + p__1.x);
y = (y + p__1.y);
z = (z + p__1.z);
wx = (wx + p__1.wx);
wy = (wy + p__1.wy);
wz = (wz + p__1.wz);
}
public function getNorm():Number{
return (Math.sqrt((((x * x) + (y * y)) + (z * z))));
}
public function equals(p__1:Vertex):Boolean{
return (Boolean((((((((((((((((p__1.x == x)) && ((p__1.y == y)))) && ((p__1.z == z)))) && ((p__1.wx == wx)))) && ((p__1.wy == wy)))) && ((p__1.wz == wz)))) && ((p__1.sx == wx)))) && ((p__1.sy == sy)))));
}
public function sub(p__1:Vertex):void{
x = (x - p__1.x);
y = (y - p__1.y);
z = (z - p__1.z);
wx = (wx - p__1.wx);
wy = (wy - p__1.wy);
wz = (wz - p__1.wz);
}
public function cross(p__1:Vertex):Vertex{
return (new Vertex(((y * p__1.z) - (z * p__1.y)), ((z * p__1.x) - (x * p__1.z)), ((x * p__1.y) - (y * p__1.x))));
}
public function dot(p__1:Vertex):Number{
return ((((x * p__1.x) + (y * p__1.y)) + (z * p__1.z)));
}
public function getPoint3D():Point3D{
m_oLocal.x = x;
m_oLocal.y = y;
m_oLocal.z = z;
return (m_oLocal);
}
public function reset(p__1:Number, p__2:Number, p__3:Number):void{
x = p__1;
y = p__2;
z = p__3;
wx = x;
wy = y;
wz = z;
}
public function scale(p__1:Number):void{
x = (x * p__1);
y = (y * p__1);
z = (z * p__1);
wx = (wx * p__1);
wy = (wy * p__1);
wz = (wz * p__1);
}
public function pow(p__1:Number):void{
x = Math.pow(x, p__1);
y = Math.pow(y, p__1);
z = Math.pow(z, p__1);
wx = Math.pow(wx, p__1);
wy = Math.pow(wy, p__1);
wz = Math.pow(wz, p__1);
}
public function clone():Vertex{
var l__1:Vertex = new Vertex(x, y, z);
l__1.wx = wx;
l__1.sx = sx;
l__1.wy = wy;
l__1.sy = sy;
l__1.wz = wz;
l__1.nbFaces = nbFaces;
l__1.aFaces = aFaces.concat();
return (l__1);
}
public function serialize(p__1:Number=0):String{
if (p__1 == 0){
p__1 = 0.01;
};
return (((((((((((((((NumberUtil.roundTo(x, p__1) + ",") + NumberUtil.roundTo(y, p__1)) + ",") + NumberUtil.roundTo(z, p__1)) + ",") + NumberUtil.roundTo(wx, p__1)) + ",") + NumberUtil.roundTo(wy, p__1)) + ",") + NumberUtil.roundTo(wz, p__1)) + ",") + NumberUtil.roundTo(sx, p__1)) + ",") + NumberUtil.roundTo(sy, p__1)));
}
public function toString(p__1:Number=0):String{
if (p__1 == 0){
p__1 = 0.01;
};
return ((((((((((((((((("{" + NumberUtil.roundTo(x, p__1)) + ", ") + NumberUtil.roundTo(y, p__1)) + ", ") + NumberUtil.roundTo(z, p__1)) + ", ") + NumberUtil.roundTo(wx, p__1)) + ", ") + NumberUtil.roundTo(wy, p__1)) + ", ") + NumberUtil.roundTo(wz, p__1)) + ", ") + NumberUtil.roundTo(sx, p__1)) + ", ") + NumberUtil.roundTo(sy, p__1)) + "}"));
}
public function getCameraPoint3D():Point3D{
m_oCamera.x = wx;
m_oCamera.y = wy;
m_oCamera.z = wz;
return (m_oCamera);
}
public function clone2():Vertex{
return (new Vertex(wx, wy, wz));
}
public function getScreenPoint():Point3D{
return (new Point3D(sx, sy, wz));
}
public function copy(p__1:Vertex):void{
x = p__1.x;
y = p__1.y;
z = p__1.z;
wx = p__1.wx;
wy = p__1.wy;
wz = p__1.wz;
sx = p__1.sx;
sy = p__1.sy;
}
public static function createFromPoint3D(p__1:Point3D):Vertex{
return (new Vertex(p__1.x, p__1.y, p__1.z));
}
}
}//package sandy.core.data
Section 84
//TextLink (sandy.core.interaction.TextLink)
package sandy.core.interaction {
import flash.text.*;
import flash.geom.*;
import flash.utils.*;
public class TextLink {
private var __tfOwner:TextField;
private var __sTarget:String;
private var __sHRef:String;
public var width:Number;
private var __iOpenIndex:int;
private var __iCloseIndex:int;
public var height:Number;
private var __rBounds:Rectangle;
public var x:Number;
public var y:Number;
public static var textLinks:Dictionary;
public function TextLink(){
super();
x = 0;
y = 0;
height = 0;
width = 0;
}
public function get href():String{
return (__sHRef);
}
public function get closeIndex():int{
return (__iCloseIndex);
}
public function set openIndex(p__1:int):void{
__iOpenIndex = p__1;
}
public function get target():String{
return (__sTarget);
}
public function set href(p__1:String):void{
__sHRef = p__1;
}
public function set target(p__1:String):void{
__sTarget = p__1;
}
public function set owner(p__1:TextField):void{
__tfOwner = p__1;
}
public function get openIndex():int{
return (__iOpenIndex);
}
public function getBounds():Rectangle{
return (__rBounds);
}
protected function _init():void{
var l__2:Rectangle;
var l__1:Number = 0;
while (l__1 < (__iCloseIndex - __iOpenIndex)) {
l__2 = __tfOwner.getCharBoundaries((openIndex + l__1));
if (l__1 == 0){
x = l__2.x;
y = l__2.y;
};
width = (width + l__2.width);
height = ((height)<l__2.height) ? l__2.height : height;
l__1++;
};
__rBounds = new Rectangle();
__rBounds.x = x;
__rBounds.y = y;
__rBounds.height = height;
__rBounds.width = width;
}
public function set closeIndex(p__1:int):void{
__iCloseIndex = p__1;
}
public function get owner():TextField{
return (__tfOwner);
}
public static function getTextLinks(p__1:TextField, p__2:Boolean=false):Array{
var l__11:TextLink;
var l__12:String;
var l__13:String;
if (!p__1.htmlText){
return (null);
};
if (!textLinks){
textLinks = new Dictionary();
};
if (((textLinks[p__1]) && (!(p__2)))){
return (textLinks[p__1]);
};
textLinks[p__1] = new Array();
var l__3:String = p__1.htmlText;
var l__4:RegExp = /href=['"].*?['"]/i;
var l__5:RegExp = /target=['"].*?['"]/i;
var l__6:RegExp = /<A.*?A>/i;
var l__7:RegExp = /<A.*?\>/i;
var l__8:RegExp = /<\/A>/i;
var l__9:RegExp = /<[^A][^\/A].*?>/gi;
l__3 = l__3.replace(l__9, "");
var l__10:Object = l__6.exec(l__3);
while (l__10 != null) {
l__11 = new (TextLink);
l__11.owner = p__1;
textLinks[p__1].push(l__11);
l__12 = l__10[0].match(l__4);
l__11.href = l__12.substring(6, (l__12.length - 1));
l__13 = l__10[0].match(l__5);
l__11.target = l__13.substring(8, (l__13.length - 1));
l__11.openIndex = l__3.search(l__7);
l__3 = l__3.replace(l__7, "");
l__11.closeIndex = l__3.search(l__8);
l__3 = l__3.replace(l__8, "");
l__11._init();
l__10 = l__6.exec(l__3);
};
return (textLinks[p__1]);
}
}
}//package sandy.core.interaction
Section 85
//VirtualMouse (sandy.core.interaction.VirtualMouse)
package sandy.core.interaction {
import sandy.core.data.*;
import sandy.materials.*;
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
public class VirtualMouse extends EventDispatcher {
private var m_ioOldTarget:Sprite;
private var _lastEvent:Event;
private var m_oCurrentTargets:Array;
private var lastDownTarget:InteractiveObject;
private var lastLocation:Point;
private var m_oPreviousTargets:Array;
private var m_ioTarget:Sprite;
private var location:Point;
private var lastWithinStage:Boolean;// = true
private static var _oI:VirtualMouse;
public function VirtualMouse(p__1:PrivateConstructorAccess){
m_oPreviousTargets = [];
m_oCurrentTargets = [];
super();
location = new Point(0, 0);
lastLocation = location.clone();
}
private function _checkLinks(p__1:TextField):void{
var l__2:Point = p__1.globalToLocal(location);
var l__3:Array = TextLink.getTextLinks(p__1);
var l__4:Number = l__3.length;
var l__5:Number = 0;
while (l__5 < l__4) {
if (((l__3[l__5] as TextLink).getBounds() as Rectangle).containsPoint(l__2)){
};
l__5++;
};
}
public function interactWithTexture(p__1:Polygon, p__2:UVCoord, p__3:MouseEvent):void{
var l__6:Sprite;
var l__10:Point;
var l__11:Point;
var l__12:Boolean;
var l__7:DisplayObject;
var l__4:MovieMaterial = ((p__1.visible) ? p__1.appearance.frontMaterial : p__1.appearance.backMaterial as MovieMaterial);
if (l__4 == null){
return;
};
m_ioTarget = l__4.movie;
location = new Point((p__2.u * l__4.texture.width), (p__2.v * l__4.texture.height));
if (p__3.type == MouseEvent.MOUSE_OUT){
l__10 = p__1.container.globalToLocal(location);
if (m_ioOldTarget){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_OUT, true, false, l__10.x, l__10.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
m_ioOldTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.ROLL_OUT, false, false, l__10.x, l__10.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
m_ioOldTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
m_ioOldTarget = null;
};
return;
};
var l__5:Array = m_ioTarget.getObjectsUnderPoint(m_ioTarget.localToGlobal(location));
l__6 = null;
var l__8:int = l__5.length;
while (--l__8 > -1) {
l__7 = l__5[l__8];
while (l__7) {
if (((l__6) && ((l__7 is SimpleButton)))){
l__6 = null;
l__7 = l__7.parent;
continue;
} else {
if (((((l__6) && ((l__7 is DisplayObjectContainer)))) && (!(DisplayObjectContainer(l__7).mouseChildren)))){
l__6 = null;
l__7 = l__7.parent;
continue;
};
};
if (((((!(l__6)) && ((l__7 is DisplayObjectContainer)))) && (DisplayObjectContainer(l__7).mouseEnabled))){
l__6 = (l__7 as Sprite);
};
if (!l__6){
l__7 = l__7.parent;
} else {
m_oCurrentTargets.push(l__6);
l__10 = p__1.container.globalToLocal(location);
l__11 = l__6.globalToLocal(location);
if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){
l__12 = Boolean((((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= p__1.container.stage.stageWidth)))) && ((location.y <= p__1.container.stage.stageHeight))));
if (((!(l__12)) && (lastWithinStage))){
_lastEvent = new MouseEvent(Event.MOUSE_LEAVE, false, false);
p__1.container.stage.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
if (l__12){
_lastEvent = new MouseEvent(Event.MOUSE_LEAVE, false, false);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
lastWithinStage = l__12;
};
if (m_oPreviousTargets.indexOf(l__6) == -1){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_OVER, true, false, l__11.x, l__11.y, m_ioOldTarget, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.ROLL_OVER, false, false, l__11.x, l__11.y, m_ioOldTarget, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
if (p__3.type == MouseEvent.MOUSE_DOWN){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, l__11.x, l__11.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
lastDownTarget = l__6;
} else {
if (p__3.type == MouseEvent.MOUSE_UP){
_lastEvent = new MouseEvent(MouseEvent.MOUSE_UP, true, false, l__11.x, l__11.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
} else {
if (p__3.type == MouseEvent.CLICK){
_lastEvent = new MouseEvent(MouseEvent.CLICK, true, false, l__11.x, l__11.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
lastDownTarget = null;
} else {
if ((((p__3.type == MouseEvent.DOUBLE_CLICK)) && (l__6.doubleClickEnabled))){
_lastEvent = new MouseEvent(MouseEvent.DOUBLE_CLICK, true, false, l__11.x, l__11.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
l__6.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
};
};
};
l__7 = l__7.parent;
};
};
};
var l__9:int = m_oPreviousTargets.length;
l__8 = 0;
while (l__8 < l__9) {
if (m_oCurrentTargets.indexOf(m_oPreviousTargets[l__8]) == -1){
m_ioOldTarget = m_oPreviousTargets[l__8];
_lastEvent = new MouseEvent(MouseEvent.MOUSE_OUT, true, false, l__10.x, l__10.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
m_ioOldTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
_lastEvent = new MouseEvent(MouseEvent.ROLL_OUT, false, false, l__10.x, l__10.y, l__6, p__3.ctrlKey, p__3.altKey, p__3.shiftKey, p__3.buttonDown, p__3.delta);
m_ioOldTarget.dispatchEvent(_lastEvent);
dispatchEvent(_lastEvent);
};
l__8++;
};
lastLocation = location.clone();
m_oPreviousTargets = m_oCurrentTargets.concat();
m_oCurrentTargets = [];
}
public static function getInstance():VirtualMouse{
if (!_oI){
_oI = new VirtualMouse(new PrivateConstructorAccess());
};
return (_oI);
}
}
}//package sandy.core.interaction
class PrivateConstructorAccess {
private function PrivateConstructorAccess(){
super();
}
}
Section 86
//Light3D (sandy.core.light.Light3D)
package sandy.core.light {
import sandy.core.data.*;
import sandy.events.*;
import flash.events.*;
import sandy.util.*;
public class Light3D extends EventDispatcher {
private var _color:uint;
private var _power:Number;
private var _dir:Point3D;
public var changed:Boolean;
private var _nPower:Number;
public static const MAX_POWER:Number = 150;
public function Light3D(p__1:Point3D, p__2:Number){
super();
_dir = p__1;
_dir.normalize();
setPower(p__2);
}
public function destroy():void{
}
public function setPower(p__1:Number):void{
_power = NumberUtil.constrain(p__1, 0, Light3D.MAX_POWER);
_nPower = (_power / Light3D.MAX_POWER);
changed = true;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
public function get color():uint{
return (_color);
}
public function setDirectionPoint3D(p__1:Point3D):void{
_dir = p__1;
_dir.normalize();
changed = true;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
public function calculate(p__1:Point3D):Number{
var l__2:Number = _dir.dot(p__1);
l__2 = -(l__2);
if (l__2 < 0){
l__2 = 0;
};
return ((_nPower * l__2));
}
public function set color(p__1:uint):void{
_color = p__1;
changed = true;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_COLOR_CHANGED));
}
public function getNormalizedPower():Number{
return (_nPower);
}
public function setDirection(p__1:Number, p__2:Number, p__3:Number):void{
_dir.x = p__1;
_dir.y = p__2;
_dir.z = p__3;
_dir.normalize();
changed = true;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_UPDATED));
}
public function getPower():Number{
return (_power);
}
public function getDirectionPoint3D():Point3D{
return (_dir);
}
}
}//package sandy.core.light
Section 87
//ATransformable (sandy.core.scenegraph.ATransformable)
package sandy.core.scenegraph {
import sandy.core.data.*;
public class ATransformable extends Node {
private var _nYaw:Number;
protected var _vUp:Point3D;
protected var m_oPreviousOffsetRotation:Point3D;
private var _vLookAt:Point3D;
private var _nRoll:Number;
private var _vRotation:Point3D;
public var invModelMatrix:Matrix4;
private var _vLookatDown:Point3D;
protected var _oScale:Point3D;
private var m_oMatrix:Matrix4;
private var _nTilt:Number;
protected var m_tmpMt:Matrix4;
protected var _vOut:Point3D;
public var disable:Boolean;// = false
protected var _vSide:Point3D;
protected var _p:Point3D;
public function ATransformable(p__1:String=""){
invModelMatrix = new Matrix4();
m_oPreviousOffsetRotation = new Point3D();
super(p__1);
resetCoords();
}
public function set matrix(p__1:Matrix4):void{
m_oMatrix = p__1;
m_oMatrix.transform3x3(_vSide);
m_oMatrix.transform3x3(_vUp);
m_oMatrix.transform3x3(_vOut);
_vSide.normalize();
_vUp.normalize();
_vOut.normalize();
_p.x = p__1.n14;
_p.y = p__1.n24;
_p.z = p__1.n34;
changed = true;
}
public function moveLateraly(p__1:Number):void{
changed = true;
_p.x = (_p.x + p__1);
}
public function get up():Point3D{
return (_vUp);
}
public function set scaleX(p__1:Number):void{
if (_oScale.x == p__1){
return;
};
_oScale.x = p__1;
changed = true;
}
public function get pan():Number{
return (_nYaw);
}
public function set scaleY(p__1:Number):void{
if (_oScale.y == p__1){
return;
};
_oScale.y = p__1;
changed = true;
}
public function set scaleZ(p__1:Number):void{
if (_oScale.z == p__1){
return;
};
_oScale.z = p__1;
changed = true;
}
public function moveHorizontally(p__1:Number):void{
changed = true;
_p.x = (_p.x + (_vOut.x * p__1));
_p.z = (_p.z + (_vOut.z * p__1));
}
public function rotateAxis(p__1:Number, p__2:Number, p__3:Number, p__4:Number):void{
changed = true;
p__4 = ((p__4 + 360) % 360);
var l__5:Number = Math.sqrt((((p__1 * p__1) + (p__2 * p__2)) + (p__3 * p__3)));
m_tmpMt.axisRotation((p__1 / l__5), (p__2 / l__5), (p__3 / l__5), p__4);
m_tmpMt.transform3x3(_vSide);
m_tmpMt.transform3x3(_vUp);
m_tmpMt.transform3x3(_vOut);
}
public function getPosition(p__1:String="local"):Point3D{
var l__2:Point3D;
switch (p__1){
case "local":
l__2 = new Point3D(_p.x, _p.y, _p.z);
break;
case "camera":
l__2 = new Point3D(viewMatrix.n14, viewMatrix.n24, viewMatrix.n34);
break;
case "absolute":
l__2 = new Point3D(modelMatrix.n14, modelMatrix.n24, modelMatrix.n34);
break;
default:
l__2 = new Point3D(_p.x, _p.y, _p.z);
break;
};
return (l__2);
}
public function getLookAt():Point3D{
return (_vLookAt);
}
public function set target(p__1:Point3D):void{
lookAt(p__1.x, p__1.y, p__1.z);
}
public function moveSideways(p__1:Number):void{
changed = true;
_p.x = (_p.x + (_vSide.x * p__1));
_p.y = (_p.y + (_vSide.y * p__1));
_p.z = (_p.z + (_vSide.z * p__1));
}
public function moveForward(p__1:Number):void{
changed = true;
_p.x = (_p.x + (_vOut.x * p__1));
_p.y = (_p.y + (_vOut.y * p__1));
_p.z = (_p.z + (_vOut.z * p__1));
}
public function lookAt(p__1:Number, p__2:Number, p__3:Number):void{
changed = true;
_vLookAt = new Point3D(p__1, p__2, p__3);
_vOut.x = p__1;
_vOut.y = p__2;
_vOut.z = p__3;
_vOut.sub(_p);
_vOut.normalize();
_vSide = null;
_vSide = _vOut.cross(_vLookatDown);
_vSide.normalize();
_vUp = null;
_vUp = _vOut.cross(_vSide);
_vUp.normalize();
}
public function moveVertically(p__1:Number):void{
changed = true;
_p.y = (_p.y + p__1);
}
public function set rotateY(p__1:Number):void{
var l__2:Number = (p__1 - _vRotation.y);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.rotationY(l__2);
m_tmpMt.transform3x3(_vSide);
m_tmpMt.transform3x3(_vUp);
m_tmpMt.transform3x3(_vOut);
_vRotation.y = p__1;
}
public function initFrame():void{
_vSide = new Point3D(1, 0, 0);
_vUp = new Point3D(0, 1, 0);
_vOut = new Point3D(0, 0, 1);
_vRotation = new Point3D(0, 0, 0);
changed = true;
}
public function set roll(p__1:Number):void{
var l__2:Number = (p__1 - _nRoll);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vOut.x, _vOut.y, _vOut.z, l__2);
m_tmpMt.transform3x3(_vSide);
m_tmpMt.transform3x3(_vUp);
_nRoll = p__1;
}
public function get matrix():Matrix4{
return (m_oMatrix);
}
public function moveUpwards(p__1:Number):void{
changed = true;
_p.x = (_p.x + (_vUp.x * p__1));
_p.y = (_p.y + (_vUp.y * p__1));
_p.z = (_p.z + (_vUp.z * p__1));
}
public function get tilt():Number{
return (_nTilt);
}
public function set rotateZ(p__1:Number):void{
var l__2:Number = (p__1 - _vRotation.z);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.rotationZ(l__2);
m_tmpMt.transform3x3(_vSide);
m_tmpMt.transform3x3(_vUp);
m_tmpMt.transform3x3(_vOut);
_vRotation.z = p__1;
}
public function set rotateX(p__1:Number):void{
var l__2:Number;
l__2 = (p__1 - _vRotation.x);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.rotationX(l__2);
m_tmpMt.transform3x3(_vSide);
m_tmpMt.transform3x3(_vUp);
m_tmpMt.transform3x3(_vOut);
_vRotation.x = p__1;
}
public function resetCoords():void{
initFrame();
_p = new Point3D();
_oScale = new Point3D(1, 1, 1);
_vRotation = new Point3D(0, 0, 0);
_vLookatDown = new Point3D(1E-11, -1, 0);
_nRoll = 0;
_nTilt = 0;
_nYaw = 0;
m_tmpMt = new Matrix4();
m_oMatrix = new Matrix4();
changed = true;
}
public function get out():Point3D{
return (_vOut);
}
public function get scaleY():Number{
return (_oScale.y);
}
public function set pan(p__1:Number):void{
var l__2:Number = (p__1 - _nYaw);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vUp.x, _vUp.y, _vUp.z, l__2);
m_tmpMt.transform3x3(_vOut);
m_tmpMt.transform3x3(_vSide);
_nYaw = p__1;
}
public function get scaleX():Number{
return (_oScale.x);
}
public function setPosition(p__1:Number, p__2:Number, p__3:Number):void{
changed = true;
_p.x = p__1;
_p.y = p__2;
_p.z = p__3;
}
public function translate(p__1:Number, p__2:Number, p__3:Number):void{
changed = true;
_p.x = (_p.x + p__1);
_p.y = (_p.y + p__2);
_p.z = (_p.z + p__3);
}
public function get side():Point3D{
return (_vSide);
}
public function get scaleZ():Number{
return (_oScale.z);
}
override public function update(p__1:Matrix4, p__2:Boolean):void{
updateTransform();
if (((p__2) || (changed))){
if (((p__1) && (!(disable)))){
modelMatrix.copy(p__1);
modelMatrix.multiply4x3(m_oMatrix);
} else {
modelMatrix.copy(m_oMatrix);
};
invModelMatrix.n11 = modelMatrix.n11;
invModelMatrix.n12 = modelMatrix.n21;
invModelMatrix.n13 = modelMatrix.n31;
invModelMatrix.n21 = modelMatrix.n12;
invModelMatrix.n22 = modelMatrix.n22;
invModelMatrix.n23 = modelMatrix.n32;
invModelMatrix.n31 = modelMatrix.n13;
invModelMatrix.n32 = modelMatrix.n23;
invModelMatrix.n33 = modelMatrix.n33;
invModelMatrix.n14 = -((((modelMatrix.n11 * modelMatrix.n14) + (modelMatrix.n21 * modelMatrix.n24)) + (modelMatrix.n31 * modelMatrix.n34)));
invModelMatrix.n24 = -((((modelMatrix.n12 * modelMatrix.n14) + (modelMatrix.n22 * modelMatrix.n24)) + (modelMatrix.n32 * modelMatrix.n34)));
invModelMatrix.n34 = -((((modelMatrix.n13 * modelMatrix.n14) + (modelMatrix.n23 * modelMatrix.n24)) + (modelMatrix.n33 * modelMatrix.n34)));
};
super.update(modelMatrix, p__2);
}
public function get rotateY():Number{
return (_vRotation.y);
}
public function get rotateZ():Number{
return (_vRotation.z);
}
public function updateTransform():void{
if (changed){
m_oMatrix.n11 = (_vSide.x * _oScale.x);
m_oMatrix.n12 = (_vUp.x * _oScale.y);
m_oMatrix.n13 = (_vOut.x * _oScale.z);
m_oMatrix.n14 = _p.x;
m_oMatrix.n21 = (_vSide.y * _oScale.x);
m_oMatrix.n22 = (_vUp.y * _oScale.y);
m_oMatrix.n23 = (_vOut.y * _oScale.z);
m_oMatrix.n24 = _p.y;
m_oMatrix.n31 = (_vSide.z * _oScale.x);
m_oMatrix.n32 = (_vUp.z * _oScale.y);
m_oMatrix.n33 = (_vOut.z * _oScale.z);
m_oMatrix.n34 = _p.z;
_vOut.normalize();
_vSide.normalize();
_vUp.normalize();
};
}
public function get rotateX():Number{
return (_vRotation.x);
}
public function set tilt(p__1:Number):void{
var l__2:Number = (p__1 - _nTilt);
if (l__2 == 0){
return;
};
changed = true;
m_tmpMt.axisRotation(_vSide.x, _vSide.y, _vSide.z, l__2);
m_tmpMt.transform3x3(_vOut);
m_tmpMt.transform3x3(_vUp);
_nTilt = p__1;
}
public function set x(p__1:Number):void{
if (p__1 == _p.x){
return;
};
_p.x = p__1;
changed = true;
}
public function set y(p__1:Number):void{
if (p__1 == _p.y){
return;
};
_p.y = p__1;
changed = true;
}
override public function toString():String{
return ("sandy.core.scenegraph.ATransformable");
}
public function get x():Number{
return (_p.x);
}
public function get y():Number{
return (_p.y);
}
public function get z():Number{
return (_p.z);
}
public function set z(p__1:Number):void{
if (p__1 == _p.z){
return;
};
_p.z = p__1;
changed = true;
}
public function get roll():Number{
return (_nRoll);
}
}
}//package sandy.core.scenegraph
Section 88
//Camera3D (sandy.core.scenegraph.Camera3D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.view.*;
import flash.geom.*;
import sandy.util.*;
public class Camera3D extends ATransformable {
public var frustrum:Frustum;
private var mp11:Number;
private var mp12:Number;
private var mp13:Number;
private var mp14:Number;
private var mp21:Number;
private var mp22:Number;
private var mp23:Number;
private var mp24:Number;
public var viewport:ViewPort;
private var _nFar:Number;
private var m_nOffx:int;
private var m_nOffy:int;
private var _nNear:Number;
private var mp31:Number;
private var mp32:Number;
private var mp33:Number;
private var mp34:Number;
private var _mpInv:Matrix4;
private var _mp:Matrix4;
private var _nFov:Number;
private var mp41:Number;
private var mp42:Number;
private var mp43:Number;
private var mp44:Number;
private var _perspectiveChanged:Boolean;// = false
public function Camera3D(p__1:Number=550, p__2:Number=400, p__3:Number=45, p__4:Number=50, p__5:Number=10000){
viewport = new ViewPort(640, 480);
frustrum = new Frustum();
_mp = new Matrix4();
_mpInv = new Matrix4();
super(null);
viewport.width = p__1;
viewport.height = p__2;
_nFov = p__3;
_nFar = p__5;
_nNear = p__4;
setPerspectiveProjection(_nFov, viewport.ratio, _nNear, _nFar);
m_nOffx = viewport.width2;
m_nOffy = viewport.height2;
visible = false;
z = -300;
lookAt(0, 0, 0);
}
public function get invProjectionMatrix():Matrix4{
_mpInv.copy(_mp);
_mpInv.inverse();
return (_mpInv);
}
public function get far():Number{
return (_nFar);
}
public function set fov(p__1:Number):void{
_nFov = p__1;
_perspectiveChanged = true;
changed = true;
}
public function projectVertex(p__1:Vertex):void{
var l__2:Number = (viewport.offset.x + m_nOffx);
var l__3:Number = (viewport.offset.y + m_nOffy);
var l__4:Number = (1 / p__1.wz);
p__1.sx = ((((l__4 * p__1.wx) * mp11) * m_nOffx) + l__2);
p__1.sy = ((((-(l__4) * p__1.wy) * mp22) * m_nOffy) + l__3);
}
public function get focalLength():Number{
return ((viewport.height2 / Math.tan((_nFov * 0.00872664626))));
}
public function set far(p__1:Number):void{
_nFar = p__1;
_perspectiveChanged = true;
changed = true;
}
public function get near():Number{
return (_nNear);
}
protected function updatePerspective():void{
setPerspectiveProjection(_nFov, viewport.ratio, _nNear, _nFar);
_perspectiveChanged = false;
}
public function projectArray(p__1:Array):void{
var l__4:Number;
var l__7:Vertex;
var l__2:Number = (viewport.offset.x + m_nOffx);
var l__3:Number = (viewport.offset.y + m_nOffy);
var l__5:Number = (mp11 * m_nOffx);
var l__6:Number = (mp22 * m_nOffy);
for each (l__7 in p__1) {
if (l__7.projected == false){
l__4 = (1 / l__7.wz);
l__7.sx = (((l__4 * l__7.wx) * l__5) + l__2);
l__7.sy = (((-(l__4) * l__7.wy) * l__6) + l__3);
l__7.projected = true;
};
};
}
public function get fov():Number{
return (_nFov);
}
public function set focalLength(p__1:Number):void{
_nFov = (Math.atan2(viewport.height2, p__1) * 114.591559);
_perspectiveChanged = true;
changed = true;
}
public function set near(p__1:Number):void{
_nNear = p__1;
_perspectiveChanged = true;
changed = true;
}
override public function update(p__1:Matrix4, p__2:Boolean):void{
if (viewport.hasChanged){
_perspectiveChanged = true;
m_nOffx = viewport.width2;
m_nOffy = viewport.height2;
if (scene.rectClipping){
scene.container.scrollRect = new Rectangle(0, 0, viewport.width, viewport.height);
} else {
scene.container.scrollRect = null;
};
viewport.hasChanged = false;
};
if (_perspectiveChanged){
updatePerspective();
};
super.update(p__1, p__2);
}
protected function setPerspectiveProjection(p__1:Number, p__2:Number, p__3:Number, p__4:Number):void{
var l__5:Number;
var l__6:Number;
frustrum.computePlanes(p__2, p__3, p__4, p__1);
p__1 = NumberUtil.toRadian(p__1);
l__5 = (1 / Math.tan((p__1 / 2)));
l__6 = (p__4 / (p__4 - p__3));
_mp.zero();
_mp.n11 = (l__5 / p__2);
_mp.n22 = l__5;
_mp.n33 = l__6;
_mp.n34 = (-(l__6) * p__3);
_mp.n43 = 1;
mp11 = _mp.n11;
mp21 = _mp.n21;
mp31 = _mp.n31;
mp41 = _mp.n41;
mp12 = _mp.n12;
mp22 = _mp.n22;
mp32 = _mp.n32;
mp42 = _mp.n42;
mp13 = _mp.n13;
mp23 = _mp.n23;
mp33 = _mp.n33;
mp43 = _mp.n43;
mp14 = _mp.n14;
mp24 = _mp.n24;
mp34 = _mp.n34;
mp44 = _mp.n44;
changed = true;
}
override public function toString():String{
return ("sandy.core.scenegraph.Camera3D");
}
public function get projectionMatrix():Matrix4{
return (_mp);
}
override public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
}
override public function destroy():void{
viewport = null;
frustrum = null;
_mp = null;
_mpInv = null;
super.destroy();
}
}
}//package sandy.core.scenegraph
Section 89
//Geometry3D (sandy.core.scenegraph.Geometry3D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import flash.utils.*;
public final class Geometry3D {
public var aUVCoords:Array;
public var aFacesUVCoordsID:Array;
private var m_nLastVertexNormalId:int;// = 0
private var EDGES_DICO:Dictionary;
public var aFaceEdges:Array;
public var aFacesVertexID:Array;
public var aVertexNormals:Array;
private var m_nLastFaceId:int;// = 0
private var m_nLastVertexId:int;// = 0
private var m_nLastNormalId:int;// = 0
public var aFacesNormals:Array;
private var m_aVertexFaces:Array;
public var aVertex:Array;
private var m_nLastFaceUVId:int;// = 0
private var m_nLastUVId:int;// = 0
public var aEdges:Array;
public function Geometry3D(p__1:Array=null){
EDGES_DICO = new Dictionary(true);
aVertex = new Array();
aFacesVertexID = new Array();
aFacesUVCoordsID = new Array();
aFacesNormals = new Array();
aVertexNormals = new Array();
aEdges = new Array();
aFaceEdges = new Array();
aUVCoords = new Array();
m_aVertexFaces = new Array();
super();
init();
}
public function getNextFaceID():int{
return (m_nLastFaceId);
}
public function setUVCoords(p__1:int, p__2:Number, p__3:Number):int{
if (aUVCoords[p__1]){
return (-1);
};
aUVCoords[p__1] = new UVCoord(p__2, p__3);
return ((++m_nLastUVId - 1));
}
public function init():void{
}
public function generateFaceNormals():void{
var l__1:Array;
var l__2:Vertex;
var l__3:Vertex;
var l__4:Vertex;
var l__5:Point3D;
var l__6:Point3D;
var l__7:Point3D;
if (aFacesNormals.length > 0){
return;
};
for each (l__1 in aFacesVertexID) {
if (l__1.length < 3){
} else {
l__2 = aVertex[l__1[0]];
l__3 = aVertex[l__1[1]];
l__4 = aVertex[l__1[2]];
l__5 = new Point3D((l__3.wx - l__2.wx), (l__3.wy - l__2.wy), (l__3.wz - l__2.wz));
l__6 = new Point3D((l__3.wx - l__4.wx), (l__3.wy - l__4.wy), (l__3.wz - l__4.wz));
l__7 = l__5.cross(l__6);
l__7.normalize();
setFaceNormal(getNextFaceNormalID(), l__7.x, l__7.y, l__7.z);
};
};
}
public function getNextUVCoordID():int{
return (m_nLastUVId);
}
public function setVertex(p__1:int, p__2:Number, p__3:Number, p__4:Number):int{
if (aVertex[p__1]){
return (-1);
};
aVertex[p__1] = new Vertex(p__2, p__3, p__4);
return ((++m_nLastVertexId - 1));
}
public function generateVertexNormals():void{
var l__2:Array;
var l__3:Vertex;
var l__4:Vertex;
var l__1:uint;
if (aVertexNormals.length > 0){
return;
};
l__1 = 0;
l__1 = 0;
while (l__1 < aFacesVertexID.length) {
l__2 = aFacesVertexID[l__1];
l__3 = aFacesNormals[l__1];
if (l__3 == null){
} else {
if (null == aVertexNormals[l__2[0]]){
m_nLastVertexNormalId++;
aVertexNormals[l__2[0]] = new Vertex();
};
Vertex(aVertexNormals[l__2[0]]).add(l__3);
if (null == aVertexNormals[l__2[1]]){
m_nLastVertexNormalId++;
aVertexNormals[l__2[1]] = new Vertex();
};
Vertex(aVertexNormals[l__2[1]]).add(l__3);
if (null == aVertexNormals[l__2[2]]){
m_nLastVertexNormalId++;
aVertexNormals[l__2[2]] = new Vertex();
};
Vertex(aVertexNormals[l__2[2]]).add(l__3);
if ((aVertex[l__2[0]] as Vertex).aFaces.indexOf(l__1) == 0){
(aVertex[l__2[0]] as Vertex).aFaces.push(l__1);
};
if ((aVertex[l__2[1]] as Vertex).aFaces.indexOf(l__1) == 0){
(aVertex[l__2[1]] as Vertex).aFaces.push(l__1);
};
if ((aVertex[l__2[2]] as Vertex).aFaces.indexOf(l__1) == 0){
(aVertex[l__2[2]] as Vertex).aFaces.push(l__1);
};
aVertex[l__2[0]].nbFaces++;
aVertex[l__2[1]].nbFaces++;
aVertex[l__2[2]].nbFaces++;
};
l__1++;
};
l__1 = 0;
while (l__1 < aVertexNormals.length) {
l__4 = aVertex[l__1];
if (l__4.nbFaces){
Vertex(aVertexNormals[l__1]).scale((1 / l__4.nbFaces));
};
l__1++;
};
}
public function setFaceNormal(p__1:int, p__2:Number, p__3:Number, p__4:Number):int{
if (aFacesNormals[p__1]){
return (-1);
};
aFacesNormals[p__1] = new Vertex(p__2, p__3, p__4);
return ((++m_nLastNormalId - 1));
}
public function setVertexNormal(p__1:int, p__2:Number, p__3:Number, p__4:Number):int{
if (aVertexNormals[p__1]){
return (-1);
};
aVertexNormals[p__1] = new Vertex(p__2, p__3, p__4);
return ((++m_nLastVertexNormalId - 1));
}
private function isEdgeExist(p__1:uint, p__2:uint):Boolean{
var l__3:String;
if (p__1 < p__2){
l__3 = ((p__1 + "_") + p__2);
} else {
l__3 = ((p__2 + "_") + p__1);
};
if (EDGES_DICO[l__3] == null){
return (false);
};
return (true);
}
public function dispose():void{
var l__1:Array;
var l__2:Vertex;
var l__3:Array;
var l__4:UVCoord;
for each (l__2 in aVertex) {
l__2 = null;
};
aVertex = null;
for each (l__1 in aFacesVertexID) {
l__1 = null;
};
aFacesVertexID = null;
for each (l__2 in aFacesNormals) {
l__2 = null;
};
aFacesNormals = null;
for each (l__2 in aVertexNormals) {
l__2 = null;
};
aVertexNormals = null;
for each (l__3 in aFacesUVCoordsID) {
l__3 = null;
};
aFacesUVCoordsID = null;
for each (l__4 in aUVCoords) {
l__4 = null;
};
aUVCoords = null;
}
public function getNextVertexID():int{
return (m_nLastVertexId);
}
public function getNextFaceUVCoordID():int{
return (m_nLastFaceUVId);
}
public function getNextFaceNormalID():int{
return (m_nLastNormalId);
}
public function setFaceVertexIds(p__1:int, ... _args):int{
var l__3:Array;
var l__8:String;
var l__4:uint;
var l__5:uint;
var l__6:uint;
var l__7:uint;
if (aFacesVertexID[p__1]){
return (-1);
};
l__3 = ((_args[0] is Array)) ? _args[0] : _args.splice(0);
aFacesVertexID[p__1] = l__3;
l__4 = 0;
while (l__4 < l__3.length) {
l__5 = l__3[l__4];
l__6 = l__3[((l__4 + 1) % l__3.length)];
if (isEdgeExist(l__5, l__6) == false){
l__7 = (aEdges.push(new Edge3D(l__5, l__6)) - 1);
if (l__5 < l__6){
l__8 = ((l__5 + "_") + l__6);
} else {
l__8 = ((l__6 + "_") + l__5);
};
EDGES_DICO[l__8] = l__7;
} else {
if (l__5 < l__6){
l__8 = ((l__5 + "_") + l__6);
} else {
l__8 = ((l__6 + "_") + l__5);
};
l__7 = EDGES_DICO[l__8];
};
if (null == aFaceEdges[p__1]){
aFaceEdges[p__1] = new Array();
};
(aFaceEdges[p__1] as Array).push(l__7);
l__4++;
};
return ((++m_nLastFaceId - 1));
}
public function setFaceUVCoordsIds(p__1:int, ... _args):int{
var l__3:Array;
if (aFacesUVCoordsID[p__1]){
return (-1);
};
l__3 = ((_args[0] is Array)) ? _args[0] : _args.splice(0);
aFacesUVCoordsID[p__1] = l__3;
return ((++m_nLastFaceUVId - 1));
}
public function clone():Geometry3D{
var l__3:Vertex;
var l__4:Array;
var l__5:Array;
var l__6:UVCoord;
var l__7:Edge3D;
var l__8:Array;
var l__1:Geometry3D = new Geometry3D();
var l__2:uint;
for each (l__3 in aVertex) {
l__1.aVertex[l__2] = l__3.clone();
l__2++;
};
l__2 = 0;
for each (l__4 in aFacesVertexID) {
l__1.aFacesVertexID[l__2] = l__4.concat();
l__2++;
};
l__2 = 0;
for each (l__3 in aFacesNormals) {
l__1.aFacesNormals[l__2] = l__3.clone();
l__2++;
};
l__2 = 0;
for each (l__3 in aVertexNormals) {
l__1.aVertexNormals[l__2] = l__3.clone();
l__2++;
};
l__2 = 0;
for each (l__5 in aFacesUVCoordsID) {
l__1.aFacesUVCoordsID[l__2] = l__5.concat();
l__2++;
};
l__2 = 0;
for each (l__6 in aUVCoords) {
l__1.aUVCoords[l__2] = l__6.clone();
l__2++;
};
l__2 = 0;
for each (l__7 in aEdges) {
l__1.aEdges[l__2] = l__7.clone();
l__2++;
};
l__2 = 0;
for each (l__8 in aFaceEdges) {
l__1.aFaceEdges[l__2] = l__8.concat();
l__2++;
};
return (l__1);
}
public function getNextVertexNormalID():int{
return (m_nLastVertexNormalId);
}
public function getVertexId(p__1:Vertex):int{
return (aVertex.indexOf(p__1));
}
public function toString():String{
return ((((((((("[Geometry: " + aFacesVertexID.length) + " faces, ") + aVertex.length) + " points, ") + aFacesNormals.length) + " normals, ") + aUVCoords.length) + " uv coords]"));
}
}
}//package sandy.core.scenegraph
Section 90
//Group (sandy.core.scenegraph.Group)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.view.*;
public class Group extends Node {
public function Group(p__1:String=""){
super(p__1);
}
override public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
var l__4:Boolean;
var l__5:Node;
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
l__4 = ((p__3) || (changed));
for each (l__5 in children) {
l__5.cull(p__1, p__2, l__4);
};
};
}
override public function toString():String{
return ((("sandy.core.scenegraph.Group :[" + name) + "]"));
}
public function clone(p__1:String):Group{
var l__3:* = undefined;
var l__2:Group = new Group(p__1);
for each (l__3 in children) {
if ((((((l__3 is Shape3D)) || ((l__3 is Group)))) || ((l__3 is TransformGroup)))){
l__2.addChild(l__3.clone(((p__1 + "_") + l__3.name)));
};
};
return (l__2);
}
}
}//package sandy.core.scenegraph
Section 91
//IDisplayable (sandy.core.scenegraph.IDisplayable)
package sandy.core.scenegraph {
import sandy.materials.*;
import flash.display.*;
public interface IDisplayable {
function get container():Sprite;
function display(:Sprite=null):void;
function get depth():Number;
function get changed():Boolean;
function get material():Material;
function clear():void;
}
}//package sandy.core.scenegraph
Section 92
//INodeOperation (sandy.core.scenegraph.INodeOperation)
package sandy.core.scenegraph {
public interface INodeOperation {
function performOnEntry(:Node):void;
function performOnExit(:Node):void;
}
}//package sandy.core.scenegraph
Section 93
//Node (sandy.core.scenegraph.Node)
package sandy.core.scenegraph {
import king.game.uno.view.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
public class Node {
public const id:uint;
public const viewMatrix:Matrix4;
public const modelMatrix:Matrix4;
public const children:Array;
protected var m_oEB:BubbleEventBroadcaster;
protected var m_bChanged:Boolean;
public var boundingBox:BBox;
public var name:String;
public var culled:CullingState;
public var boundingSphere:BSphere;
protected var m_bVisible:Boolean;// = true
private var _parent:Node;
protected var m_oScene:Scene3D;// = null
private static var _ID_:uint = 0;
public function Node(p__1:String=""){
culled = CullingState.OUTSIDE;
children = new Array();
modelMatrix = new Matrix4();
viewMatrix = new Matrix4();
boundingBox = new BBox();
boundingSphere = new BSphere();
id = _ID_++;
super();
parent = null;
if (((p__1) && (!((p__1 == ""))))){
name = p__1;
} else {
name = id.toString();
};
changed = true;
m_oEB = new BubbleEventBroadcaster(this);
culled = CullingState.INSIDE;
scene = null;
boundingBox.reset();
boundingSphere.reset();
}
public function isParent(p__1:Node):Boolean{
return ((((_parent == p__1)) && (!((p__1 == null)))));
}
private function _updateFlags(p__1:Event=null):void{
changed = false;
}
public function getChildByName(p__1:String, p__2:Boolean=false):Node{
var l__3:Node;
var l__4:Node;
for each (l__3 in children) {
if (l__3.name == p__1){
return (l__3);
};
};
if (p__2){
l__4 = null;
for each (l__3 in children) {
l__4 = l__3.getChildByName(p__1, p__2);
if (l__4 != null){
return (l__4);
};
};
};
return (null);
}
public function removeChildByName(p__1:String):Boolean{
var l__3:int;
var l__2:Boolean;
var l__4:int = children.length;
while ((((l__3 < l__4)) && (!(l__2)))) {
if (children[int(l__3)].name == p__1){
broadcaster.removeChild(children[int(l__3)].broadcaster);
children.splice(l__3, 1);
changed = true;
l__2 = true;
};
l__3++;
};
return (l__2);
}
public function remove():void{
var l__2:Node;
if (hasParent() == true){
parent.removeChildByName(name);
};
var l__1:Array = children.concat();
for each (l__2 in l__1) {
parent.addChild(l__2);
};
children.splice(0);
m_oEB = null;
changed = true;
}
public function swapParent(p__1:Node):void{
if (parent.removeChildByName(this.name)){
};
p__1.addChild(this);
changed = true;
}
public function set scene(p__1:Scene3D):void{
var l__2:Node;
if (p__1 == null){
return;
};
if (m_oScene){
m_oScene.removeEventListener(SandyEvent.SCENE_RENDER_FINISH, _updateFlags);
};
m_oScene = p__1;
m_oScene.addEventListener(SandyEvent.SCENE_RENDER_FINISH, _updateFlags);
for each (l__2 in children) {
l__2.scene = m_oScene;
};
}
public function set useSingleContainer(p__1:Boolean):void{
var l__2:Node;
for each (l__2 in children) {
l__2.useSingleContainer = p__1;
};
changed = true;
}
public function get parent():Node{
return (_parent);
}
public function get broadcaster():BubbleEventBroadcaster{
return (m_oEB);
}
public function get changed():Boolean{
return (m_bChanged);
}
public function get scene():Scene3D{
return (m_oScene);
}
public function set appearance(p__1:Appearance):void{
var l__2:Node;
for each (l__2 in children) {
l__2.appearance = p__1;
};
changed = true;
}
public function updateBoundingVolumes():void{
}
public function addEventListener(p__1:String, p__2):Boolean{
return (m_oEB.addEventListener.apply(p__1, arguments));
}
public function set enableInteractivity(p__1:Boolean):void{
var l__2:Node;
for each (l__2 in children) {
l__2.enableInteractivity = p__1;
};
}
public function removeEventListener(p__1:String, p__2):void{
m_oEB.removeEventListener(p__1, p__2);
}
public function set enableBackFaceCulling(p__1:Boolean):void{
var l__2:Node;
for each (l__2 in children) {
l__2.enableBackFaceCulling = p__1;
};
changed = true;
}
public function set parent(p__1:Node):void{
if (p__1){
_parent = p__1;
changed = true;
};
}
public function update(p__1:Matrix4, p__2:Boolean):void{
var l__3:Node;
culled = CullingState.INSIDE;
if (boundingBox){
boundingBox.uptodate = false;
};
if (boundingSphere){
boundingSphere.uptodate = false;
};
changed = ((changed) || (p__2));
for each (l__3 in children) {
l__3.update(p__1, changed);
};
}
public function set enableClipping(p__1:Boolean):void{
var l__2:Node;
for each (l__2 in children) {
l__2.enableClipping = p__1;
};
changed = true;
}
public function perform(p__1:INodeOperation):void{
var l__2:Node;
p__1.performOnEntry(this);
for each (l__2 in children) {
l__2.perform(p__1);
};
p__1.performOnExit(this);
}
public function set visible(p__1:Boolean):void{
var l__2:Node;
m_bVisible = p__1;
changed = true;
for each (l__2 in children) {
l__2.changed = true;
};
}
public function set changed(p__1:Boolean):void{
m_bChanged = p__1;
}
public function hasParent():Boolean{
return (!((_parent == null)));
}
public function toString():String{
return ("sandy.core.scenegraph.Node");
}
public function get visible():Boolean{
return (m_bVisible);
}
public function set enableEvents(p__1:Boolean):void{
var l__2:Node;
for each (l__2 in children) {
l__2.enableEvents = p__1;
};
}
public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
if (((p__3) || (changed))){
viewMatrix.copy(p__2);
viewMatrix.multiply4x3(modelMatrix);
};
};
}
public function destroy():void{
var l__2:Node;
if (hasParent() == true){
parent.removeChildByName(name);
};
var l__1:Array = children.concat();
for each (l__2 in l__1) {
l__2.destroy();
};
children.splice(0);
m_oEB = null;
scene = null;
}
public function addChild(p__1:Node):void{
if (p__1.hasParent()){
p__1.parent.removeChildByName(p__1.name);
};
p__1.parent = this;
changed = true;
children.push(p__1);
if (p__1.broadcaster){
m_oEB.addChild(p__1.broadcaster);
};
if (scene){
p__1.scene = scene;
};
}
}
}//package sandy.core.scenegraph
Section 94
//Renderable (sandy.core.scenegraph.Renderable)
package sandy.core.scenegraph {
public interface Renderable {
function render(:Camera3D):void;
}
}//package sandy.core.scenegraph
Section 95
//Shape3D (sandy.core.scenegraph.Shape3D)
package sandy.core.scenegraph {
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sandy.math.*;
public class Shape3D extends ATransformable implements IDisplayable {
public const aVisiblePolygons:Array;
public var m_oLastEvent:Shape3DEvent;
protected var m_nDepth:Number;// = 0
public var animated:Boolean;// = false
public var m_bWasOver:Boolean;// = false
protected var m_oGeomCenter:Point3D;
private var m_oGeometry:Geometry3D;
public var enableNearClipping:Boolean;// = false
private var m_bForcedSingleContainer:Boolean;// = false
protected var m_bUseSingleContainer:Boolean;// = true
private var m_oAppearance:Appearance;
public var enableForcedDepth:Boolean;// = false
private var m_bEv:Boolean;// = false
private var m_bNotConvex:Boolean;// = true
protected var m_oContainer:Sprite;
public var m_oLastContainer:Sprite;
public var forcedDepth:Number;// = 0
private var m_bMouseInteractivity:Boolean;// = false
private var m_bClipping:Boolean;
public var aPolygons:Array;
private var m_bBackFaceCulling:Boolean;// = true
public static var DEFAULT_APPEARANCE:Appearance = new Appearance(DEFAULT_MATERIAL);
public static var DEFAULT_MATERIAL:Material = new WireFrameMaterial();
public function Shape3D(p__1:String="", p__2:Geometry3D=null, p__3:Appearance=null, p__4:Boolean=true){
aPolygons = new Array();
aVisiblePolygons = new Array();
m_oGeomCenter = new Point3D();
super(p__1);
m_oContainer = new Sprite();
m_oContainer.name = name;
geometry = p__2;
m_bUseSingleContainer = !(p__4);
useSingleContainer = p__4;
appearance = (p__3) ? p__3 : Shape3D.DEFAULT_APPEARANCE;
updateBoundingVolumes();
}
public function get container():Sprite{
return (m_oContainer);
}
public function set depth(p__1:Number):void{
m_nDepth = p__1;
changed = true;
}
override public function destroy():void{
m_oGeometry.dispose();
clear();
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
if (m_oContainer){
m_oContainer = null;
};
__destroyPolygons();
super.destroy();
}
public function get geometry():Geometry3D{
return (m_oGeometry);
}
public function set geometry(p__1:Geometry3D):void{
if (p__1 == null){
return;
};
m_oGeometry = p__1;
updateBoundingVolumes();
m_oGeometry.generateFaceNormals();
m_oGeometry.generateVertexNormals();
__destroyPolygons();
__generatePolygons(m_oGeometry);
changed = true;
}
public function get useSingleContainer():Boolean{
return (m_bUseSingleContainer);
}
override public function set scene(p__1:Scene3D):void{
var l__2:Polygon;
super.scene = p__1;
for each (l__2 in aPolygons) {
l__2.scene = null;
l__2.scene = p__1;
};
}
override public function toString():String{
return ((("sandy.core.scenegraph.Shape3D" + " ") + m_oGeometry.toString()));
}
override public function set enableEvents(p__1:Boolean):void{
var l__2:Polygon;
if (p__1){
if (!m_bEv){
if (m_bUseSingleContainer == false){
for each (l__2 in aPolygons) {
l__2.enableEvents = true;
};
} else {
m_oContainer.addEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
} else {
if (((!(p__1)) && (m_bEv))){
if (m_bUseSingleContainer == false){
for each (l__2 in aPolygons) {
l__2.enableEvents = false;
};
} else {
m_oContainer.removeEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
};
m_bEv = p__1;
}
public function swapCulling():void{
var l__1:Polygon;
for each (l__1 in aPolygons) {
l__1.swapCulling();
};
changed = true;
}
override public function set useSingleContainer(p__1:Boolean):void{
var l__2:Polygon;
if (p__1 == m_bUseSingleContainer){
return;
};
if (p__1){
for each (l__2 in aPolygons) {
if (l__2.container.parent){
l__2.container.graphics.clear();
l__2.container.parent.removeChild(l__2.container);
this.broadcaster.removeChild(l__2.broadcaster);
};
};
} else {
if (m_oContainer.parent){
m_oContainer.graphics.clear();
m_oContainer.parent.removeChild(m_oContainer);
};
for each (l__2 in aPolygons) {
this.broadcaster.addChild(l__2.broadcaster);
l__2.container.graphics.clear();
};
};
m_bUseSingleContainer = p__1;
changed = true;
}
public function get material():Material{
return ((aPolygons[0].visible) ? m_oAppearance.frontMaterial : m_oAppearance.backMaterial);
}
public function get enableInteractivity():Boolean{
return (m_bMouseInteractivity);
}
public function get enableBackFaceCulling():Boolean{
return (m_bBackFaceCulling);
}
private function __destroyPolygons():void{
var l__1:int;
var l__2:int;
if (((!((aPolygons == null))) && ((aPolygons.length > 0)))){
l__2 = aPolygons.length;
while (l__1 < l__2) {
if (broadcaster != null){
broadcaster.removeChild(aPolygons[l__1].broadcaster);
};
if (aPolygons[l__1]){
Polygon(aPolygons[int(l__1)]).destroy();
};
aPolygons[int(l__1)] = null;
l__1++;
};
};
aPolygons.splice(0);
aPolygons = null;
}
public function get depth():Number{
return (m_nDepth);
}
override public function set enableClipping(p__1:Boolean):void{
m_bClipping = p__1;
}
override public function updateBoundingVolumes():void{
if (m_oGeometry){
boundingBox = BBox.create(m_oGeometry.aVertex);
boundingSphere.resetFromBox(boundingBox);
};
if (parent){
parent.updateBoundingVolumes();
};
}
public function clear():void{
if (m_oContainer){
m_oContainer.graphics.clear();
};
changed = true;
}
override public function set appearance(p__1:Appearance):void{
var l__2:Polygon;
m_oAppearance = p__1;
if (m_oGeometry){
for each (l__2 in aPolygons) {
l__2.appearance = m_oAppearance;
};
};
changed = true;
}
public function set geometryCenter(p__1:Point3D):void{
var l__3:Vertex;
var l__2:Point3D = p__1.clone();
l__2.sub(m_oGeomCenter);
if (m_oGeometry){
for each (l__3 in m_oGeometry.aVertex) {
l__3.x = (l__3.x + l__2.x);
l__3.y = (l__3.y + l__2.y);
l__3.z = (l__3.z + l__2.z);
};
};
m_oGeomCenter.copy(p__1);
updateBoundingVolumes();
changed = true;
}
protected function _onInteraction(p__1:Event):void{
var l__6:Polygon;
var l__9:int;
var l__10:int;
var l__11:int;
var l__12:int;
var l__13:UVCoord;
var l__14:Point3D;
var l__2:Point = new Point(m_oContainer.mouseX, m_oContainer.mouseY);
var l__3:Point = new Point();
var l__4:Point = new Point();
var l__5:Point = new Point();
var l__7:Array = aPolygons.sortOn("depth", (Array.NUMERIC | Array.RETURNINDEXEDARRAY));
var l__8:int = aPolygons.length;
l__9 = 0;
while (l__9 < l__8) {
l__6 = aPolygons[l__7[int(l__9)]];
if (((!(l__6.visible)) && (m_bBackFaceCulling))){
} else {
l__10 = l__6.vertices.length;
l__11 = (l__10 - 2);
l__12 = 0;
while (l__12 < l__11) {
l__3.x = l__6.vertices[l__12].sx;
l__3.y = l__6.vertices[l__12].sy;
l__4.x = l__6.vertices[(l__12 + 1)].sx;
l__4.y = l__6.vertices[(l__12 + 1)].sy;
l__5.x = l__6.vertices[((l__12 + 2) % l__10)].sx;
l__5.y = l__6.vertices[((l__12 + 2) % l__10)].sy;
if (IntersectionMath.isPointInTriangle2D(l__2, l__3, l__4, l__5)){
l__13 = l__6.getUVFrom2D(l__2);
l__14 = l__6.get3DFrom2D(l__2);
m_oLastContainer = m_oContainer;
m_oLastEvent = new Shape3DEvent(p__1.type, this, l__6, l__13, l__14, p__1);
m_oEB.dispatchEvent(m_oLastEvent);
if (p__1.type == MouseEvent.MOUSE_OVER){
m_bWasOver = true;
};
return;
};
l__12++;
};
};
l__9 = (l__9 + 1);
};
}
override public function set enableInteractivity(p__1:Boolean):void{
var l__2:Polygon;
if (p__1 != m_bMouseInteractivity){
changed = true;
if (p__1){
if (m_bUseSingleContainer == true){
m_bUseSingleContainer = false;
m_bForcedSingleContainer = true;
};
} else {
if (m_bForcedSingleContainer == true){
useSingleContainer = true;
m_bForcedSingleContainer = false;
};
};
for each (l__2 in aPolygons) {
l__2.enableInteractivity = p__1;
};
m_bMouseInteractivity = p__1;
};
}
override public function set enableBackFaceCulling(p__1:Boolean):void{
if (p__1 != m_bBackFaceCulling){
m_bBackFaceCulling = p__1;
changed = true;
};
}
public function clone(p__1:String="", p__2:Boolean=false):Shape3D{
var l__3:Shape3D = new Shape3D(p__1, geometry.clone(), appearance, m_bUseSingleContainer);
if (p__2 == true){
l__3.matrix.copy(this.matrix);
};
return (l__3);
}
public function get enableClipping():Boolean{
return (m_bClipping);
}
override public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
super.cull(p__1, p__2, p__3);
if (culled == Frustum.OUTSIDE){
return;
};
boundingSphere.transform(viewMatrix);
culled = p__1.sphereInFrustum(boundingSphere);
if (culled == Frustum.INTERSECT){
culled = p__1.boxInFrustum(boundingBox.transform(viewMatrix));
};
if (((!((culled == CullingState.OUTSIDE))) && (!((m_oAppearance == null))))){
scene.renderer.addToDisplayList(this);
};
if (((m_bEv) || (m_bMouseInteractivity))){
if ((((m_bWasOver == true)) && ((m_oLastContainer.hitTestPoint(m_oLastContainer.mouseX, m_oLastContainer.mouseY) == false)))){
m_oEB.dispatchEvent(new Shape3DEvent(MouseEvent.MOUSE_OUT, this, m_oLastEvent.polygon, m_oLastEvent.uv, m_oLastEvent.point, m_oLastEvent.event));
m_bWasOver = false;
if (m_oLastContainer != m_oContainer){
m_oLastEvent.polygon._onTextureInteraction(m_oLastEvent.event);
m_oLastEvent.polygon._stopMouseInteraction();
};
};
};
}
public function get appearance():Appearance{
return (m_oAppearance);
}
public function setConvexFlag(p__1:Boolean):void{
m_bNotConvex = !(p__1);
}
public function display(p__1:Sprite=null):void{
var l__2:Polygon;
if (((m_bNotConvex) || ((m_bBackFaceCulling == false)))){
aVisiblePolygons.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
};
for each (l__2 in aVisiblePolygons) {
l__2.display(m_oContainer);
};
}
private function __generatePolygons(p__1:Geometry3D):void{
var l__2:int;
var l__3:int = p__1.aFacesVertexID.length;
aPolygons = new Array(l__3);
l__2 = 0;
while (l__2 < l__3) {
aPolygons[l__2] = new Polygon(this, p__1, p__1.aFacesVertexID[l__2], p__1.aFacesUVCoordsID[l__2], l__2, l__2);
if (m_oAppearance){
aPolygons[int(l__2)].appearance = m_oAppearance;
};
this.broadcaster.addChild(aPolygons[int(l__2)].broadcaster);
l__2 = (l__2 + 1);
};
}
public function get geometryCenter():Point3D{
return (m_oGeomCenter);
}
}
}//package sandy.core.scenegraph
Section 96
//Sprite2D (sandy.core.scenegraph.Sprite2D)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import flash.display.*;
public class Sprite2D extends ATransformable implements IDisplayable {
public var floorCenter:Boolean;// = false
private var m_nH2:Number;// = 0
protected var m_nDepth:Number;
protected var _nScale:Number;
protected var m_oContent:DisplayObject;
protected var m_nRotation:Number;// = 0
public var fixedAngle:Boolean;// = false
public var vx:Vertex;
public var vy:Vertex;
private var m_nW2:Number;// = 0
private var m_bEv:Boolean;// = false
protected var m_oMaterial:Material;
public var enableForcedDepth:Boolean;// = false
public var forcedDepth:Number;// = 0
public var autoCenter:Boolean;// = true
protected var m_nPerspScaleX:Number;// = 0
protected var m_nPerspScaleY:Number;// = 0
public var v:Vertex;
private var m_oContainer:Sprite;
public function Sprite2D(p__1:String="", p__2:DisplayObject=null, p__3:Number=1){
super(p__1);
m_oContainer = new Sprite();
v = new Vertex();
vx = new Vertex();
vy = new Vertex();
_nScale = p__3;
if (p__2){
content = p__2;
};
setBoundingSphereRadius(Math.max(30, (Math.abs(_nScale) * Math.max(content.width, content.height))));
}
public function get content():DisplayObject{
return (m_oContent);
}
public function get enableEvents():Boolean{
return (m_bEv);
}
public function setBoundingSphereRadius(p__1:Number):void{
boundingSphere.radius = p__1;
}
public function get container():Sprite{
return (m_oContainer);
}
override public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
super.cull(p__1, p__2, p__3);
if (visible == false){
container.visible = visible;
return;
};
if (viewMatrix){
boundingSphere.transform(viewMatrix);
culled = p__1.sphereInFrustum(boundingSphere);
};
if (culled == CullingState.OUTSIDE){
container.visible = false;
} else {
if (culled == CullingState.INTERSECT){
if (boundingSphere.position.z <= scene.camera.near){
container.visible = false;
} else {
container.visible = true;
scene.renderer.addToDisplayList(this);
};
} else {
container.visible = true;
scene.renderer.addToDisplayList(this);
};
};
}
override public function remove():void{
if (m_oContainer.parent){
m_oContainer.parent.removeChild(m_oContainer);
};
m_oContainer.graphics.clear();
enableEvents = false;
if (scene){
scene.removeEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
scene.removeEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
};
super.remove();
}
public function set scale(p__1:Number):void{
if (p__1){
_nScale = p__1;
};
changed = true;
}
public function set depth(p__1:Number):void{
m_nDepth = p__1;
changed = true;
}
override public function set scene(p__1:Scene3D):void{
if (p__1 == null){
return;
};
if (scene){
scene.removeEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
scene.removeEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
};
super.scene = p__1;
scene.addEventListener(SandyEvent.SCENE_RENDER_FINISH, _finishMaterial);
scene.addEventListener(SandyEvent.SCENE_RENDER_DISPLAYLIST, _beginMaterial);
}
override public function toString():String{
return (("sandy.core.scenegraph.Sprite2D, container:" + m_oContainer));
}
public function get material():Material{
return (m_oMaterial);
}
protected function _onInteraction(p__1:Event):void{
m_oEB.dispatchEvent(new BubbleEvent(p__1.type, this));
}
public function get scale():Number{
return (_nScale);
}
public function clear():void{
}
public function display(p__1:Sprite=null):void{
m_nPerspScaleX = ((_nScale)==0) ? 1 : (_nScale * (vx.sx - v.sx));
m_nPerspScaleY = ((_nScale)==0) ? 1 : (_nScale * (v.sy - vy.sy));
m_nRotation = Math.atan2(viewMatrix.n12, viewMatrix.n22);
m_oContainer.scaleX = m_nPerspScaleX;
m_oContainer.scaleY = m_nPerspScaleY;
m_oContainer.x = (v.sx - (autoCenter) ? (m_oContainer.width / 2) : 0);
m_oContainer.y = (v.sy - (autoCenter) ? (m_oContainer.height / 2) : (floorCenter) ? m_oContainer.height : 0);
if (fixedAngle){
m_oContainer.rotation = ((m_nRotation * 180) / Math.PI);
};
if (m_oMaterial){
m_oMaterial.renderSprite(this, m_oMaterial, scene);
};
}
public function get depth():Number{
return (m_nDepth);
}
public function set material(p__1:Material):void{
m_oMaterial = p__1;
changed = true;
}
private function _beginMaterial(p__1:SandyEvent):void{
if (!m_oMaterial){
return;
};
if (!visible){
return;
};
m_oMaterial.begin(scene);
}
public function set content(p__1:DisplayObject):void{
p__1.transform.matrix.identity();
if (m_oContent){
m_oContainer.removeChild(m_oContent);
};
m_oContent = p__1;
m_oContainer.addChildAt(m_oContent, 0);
m_oContent.x = 0;
m_oContent.y = 0;
m_nW2 = (m_oContainer.width / 2);
m_nH2 = (m_oContainer.height / 2);
changed = true;
}
override public function set enableEvents(p__1:Boolean):void{
if (((p__1) && (!(m_bEv)))){
m_oContainer.addEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.addEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
} else {
if (((!(p__1)) && (m_bEv))){
m_oContainer.removeEventListener(MouseEvent.CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_UP, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_DOWN, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.ROLL_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.DOUBLE_CLICK, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_MOVE, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OVER, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_OUT, _onInteraction);
m_oContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, _onInteraction);
};
};
}
private function _finishMaterial(p__1:SandyEvent):void{
if (!m_oMaterial){
return;
};
if (!visible){
return;
};
m_oMaterial.finish(scene);
}
override public function destroy():void{
remove();
super.destroy();
}
}
}//package sandy.core.scenegraph
Section 97
//TransformGroup (sandy.core.scenegraph.TransformGroup)
package sandy.core.scenegraph {
import sandy.core.data.*;
import sandy.view.*;
public class TransformGroup extends ATransformable {
public function TransformGroup(p__1:String=""){
super(p__1);
}
override public function cull(p__1:Frustum, p__2:Matrix4, p__3:Boolean):void{
var l__4:Boolean;
var l__5:Node;
if (visible == false){
culled = CullingState.OUTSIDE;
} else {
l__4 = ((p__3) || (changed));
for each (l__5 in children) {
l__5.cull(p__1, p__2, l__4);
};
};
}
override public function toString():String{
return ((("sandy.core.scenegraph.TransformGroup :[" + name) + "]"));
}
public function clone(p__1:String):TransformGroup{
var l__3:* = undefined;
var l__2:TransformGroup = new TransformGroup(p__1);
for each (l__3 in children) {
if ((((((l__3 is Shape3D)) || ((l__3 is Group)))) || ((l__3 is TransformGroup)))){
l__2.addChild(l__3.clone(((p__1 + "_") + l__3.name)));
};
};
return (l__2);
}
}
}//package sandy.core.scenegraph
Section 98
//Renderer (sandy.core.Renderer)
package sandy.core {
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import flash.display.*;
public class Renderer {
protected const m_aDisplayList:Array;
protected const m_aRenderingList:Array;
protected var m_nRenderingListCount:int;
private var m_bGlobalRedraw:Boolean;
protected var m_nDisplayListCount:int;
protected var m_aCamera:Camera3D;
private var pool:Pool;
public function Renderer(){
m_aDisplayList = new Array();
m_aRenderingList = new Array();
pool = Pool.getInstance();
super();
m_nRenderingListCount = 0;
m_nDisplayListCount = 0;
}
public function addToDisplayList(p__1:IDisplayable):void{
var l__2:* = m_nDisplayListCount++;
m_aDisplayList[l__2] = p__1;
m_bGlobalRedraw = ((((m_bGlobalRedraw) || (p__1.changed))) || (((p__1.material)!=null) ? p__1.material.modified : false));
}
public function render(p__1:Scene3D, p__2:Boolean=true):Boolean{
var l__3:Number;
var l__4:Number;
var l__5:Number;
var l__6:Number;
var l__7:Number;
var l__8:Number;
var l__9:Number;
var l__10:Number;
var l__11:Number;
var l__12:Number;
var l__13:Number;
var l__14:Number;
var l__15:Number;
var l__16:Number;
var l__17:Number;
var l__22:Matrix4;
var l__24:Vertex;
var l__25:Array;
var l__26:Polygon;
var l__27:Number;
var l__28:int;
var l__30:int;
var l__32:IDisplayable;
var l__33:Shape3D;
var l__34:Boolean;
var l__35:Sprite2D;
var l__29:int;
var l__18:Camera3D = p__1.camera;
var l__19:Number = l__18.near;
var l__20:Point3D = pool.nextPoint3D;
var l__21:uint;
var l__23:Frustum = l__18.frustrum;
var l__31:Boolean = ((p__1.camera.changed) || (!(p__2)));
m_bGlobalRedraw = ((m_bGlobalRedraw) || ((m_aRenderingList.length == m_aDisplayList.length)));
if ((((m_bGlobalRedraw == false)) && ((l__31 == false)))){
return (false);
};
for each (l__32 in m_aRenderingList) {
if (l__32){
if ((((((l__31 == true)) || (((l__32.material)!=null) ? l__32.material.modified : false))) || ((l__32.changed == true)))){
l__32.clear();
};
};
};
m_nRenderingListCount = 0;
m_aRenderingList.length = 0;
l__30 = 0;
for (;l__30 < m_nDisplayListCount;l__30++) {
if ((m_aDisplayList[int(l__30)] is Shape3D)){
l__33 = (m_aDisplayList[int(l__30)] as Shape3D);
if ((((l__33.changed == false)) && ((l__31 == false)))){
if (l__33.useSingleContainer){
m_aRenderingList[int(m_nRenderingListCount++)] = l__33;
} else {
for each (l__26 in l__33.aVisiblePolygons) {
m_aRenderingList[int(m_nRenderingListCount++)] = l__26;
};
};
continue;
};
l__28 = l__33.appearance.flags;
l__33.depth = 0;
l__33.aVisiblePolygons.length = 0;
l__20.reset(l__18.modelMatrix.n14, l__18.modelMatrix.n24, l__18.modelMatrix.n34);
l__33.invModelMatrix.transform(l__20);
l__22 = l__33.viewMatrix;
l__3 = l__22.n11;
l__4 = l__22.n21;
l__5 = l__22.n31;
l__6 = l__22.n12;
l__7 = l__22.n22;
l__8 = l__22.n32;
l__9 = l__22.n13;
l__10 = l__22.n23;
l__11 = l__22.n33;
l__12 = l__22.n14;
l__13 = l__22.n24;
l__14 = l__22.n34;
l__34 = (((l__33.culled == CullingState.INTERSECT)) && (((l__33.enableClipping) || (l__33.enableNearClipping))));
for each (l__24 in l__33.geometry.aVertex) {
l__24.projected = (l__24.transformed = false);
};
for each (l__26 in l__33.aPolygons) {
if (l__33.animated){
l__26.updateNormal();
};
l__24 = l__26.normal;
l__15 = l__26.a.x;
l__16 = l__26.a.y;
l__17 = l__26.a.z;
l__26.visible = ((((l__24.x * (l__20.x - l__15)) + (l__24.y * (l__20.y - l__16))) + (l__24.z * (l__20.z - l__17))) > 0);
if (l__33.enableBackFaceCulling){
//unresolved if
} else {
l__24 = l__26.a;
if (l__24.transformed == false){
l__24.wx = ((((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9)) + l__12);
l__24.wy = ((((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10)) + l__13);
l__24.wz = ((((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11)) + l__14);
l__24.transformed = true;
};
l__24 = l__26.b;
if (l__24.transformed == false){
l__15 = l__24.x;
l__16 = l__24.y;
l__17 = l__24.z;
l__24.wx = ((((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9)) + l__12);
l__24.wy = ((((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10)) + l__13);
l__24.wz = ((((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11)) + l__14);
l__24.transformed = true;
};
l__24 = l__26.c;
if (l__24){
if (l__24.transformed == false){
l__15 = l__24.x;
l__16 = l__24.y;
l__17 = l__24.z;
l__24.wx = ((((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9)) + l__12);
l__24.wy = ((((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10)) + l__13);
l__24.wz = ((((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11)) + l__14);
l__24.transformed = true;
};
};
l__24 = l__26.d;
if (l__24){
if (l__24.transformed == false){
l__15 = l__24.x;
l__16 = l__24.y;
l__17 = l__24.z;
l__24.wx = ((((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9)) + l__12);
l__24.wy = ((((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10)) + l__13);
l__24.wz = ((((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11)) + l__14);
l__24.transformed = true;
};
};
l__26.precompute();
l__27 = l__26.minZ;
if (l__34){
if (l__33.enableClipping){
l__26.clip(l__23);
} else {
if (((l__33.enableNearClipping) && ((l__27 < l__19)))){
l__26.clipFrontPlane(l__23);
} else {
if (l__27 < l__19){
//unresolved jump
};
};
};
} else {
if (l__27 < l__19){
//unresolved jump
};
};
l__25 = (l__26.isClipped) ? l__26.cvertices : l__26.vertices;
if (l__25.length > 1){
l__18.projectArray(l__25);
if (l__33.enableForcedDepth){
l__26.depth = l__33.forcedDepth;
} else {
l__33.depth = (l__33.depth + l__26.depth);
};
l__29++;
l__33.aVisiblePolygons[int(l__33.aVisiblePolygons.length)] = l__26;
l__21 = (l__21 | l__28);
if (l__33.useSingleContainer == false){
m_aRenderingList[int(m_nRenderingListCount++)] = l__26;
};
};
};
};
if (l__33.aVisiblePolygons.length > 0){
if (l__33.useSingleContainer == true){
if (l__33.enableForcedDepth){
l__33.depth = l__33.forcedDepth;
} else {
l__33.depth = (l__33.depth / l__33.aVisiblePolygons.length);
};
m_aRenderingList[int(m_nRenderingListCount++)] = l__33;
};
if (((!((l__28 == 0))) || (!((l__21 == 0))))){
if (((l__28 | l__21) & SandyFlags.POLYGON_NORMAL_WORLD)){
l__22 = l__33.modelMatrix;
l__3 = l__22.n11;
l__4 = l__22.n21;
l__5 = l__22.n31;
l__6 = l__22.n12;
l__7 = l__22.n22;
l__8 = l__22.n32;
l__9 = l__22.n13;
l__10 = l__22.n23;
l__11 = l__22.n33;
for each (l__26 in l__33.aVisiblePolygons) {
l__24 = l__26.normal;
l__15 = l__24.x;
l__16 = l__24.y;
l__17 = l__24.z;
l__24.wx = (((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9));
l__24.wy = (((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10));
l__24.wz = (((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11));
};
};
if (((l__28 | l__21) & SandyFlags.VERTEX_NORMAL_WORLD)){
l__22 = l__33.modelMatrix;
l__3 = l__22.n11;
l__4 = l__22.n21;
l__5 = l__22.n31;
l__6 = l__22.n12;
l__7 = l__22.n22;
l__8 = l__22.n32;
l__9 = l__22.n13;
l__10 = l__22.n23;
l__11 = l__22.n33;
for each (l__24 in l__33.geometry.aVertexNormals) {
l__15 = l__24.x;
l__16 = l__24.y;
l__17 = l__24.z;
l__24.wx = (((l__15 * l__3) + (l__16 * l__6)) + (l__17 * l__9));
l__24.wy = (((l__15 * l__4) + (l__16 * l__7)) + (l__17 * l__10));
l__24.wz = (((l__15 * l__5) + (l__16 * l__8)) + (l__17 * l__11));
};
};
};
};
} else {
if ((m_aDisplayList[int(l__30)] is Sprite2D)){
l__35 = (m_aDisplayList[int(l__30)] as Sprite2D);
l__35.v.projected = false;
l__35.vx.projected = false;
l__35.vy.projected = false;
l__24 = l__35.v;
l__22 = l__35.viewMatrix;
l__24.wx = ((((l__24.x * l__22.n11) + (l__24.y * l__22.n12)) + (l__24.z * l__22.n13)) + l__22.n14);
l__24.wy = ((((l__24.x * l__22.n21) + (l__24.y * l__22.n22)) + (l__24.z * l__22.n23)) + l__22.n24);
l__24.wz = ((((l__24.x * l__22.n31) + (l__24.y * l__22.n32)) + (l__24.z * l__22.n33)) + l__22.n34);
l__35.depth = (l__35.enableForcedDepth) ? l__35.forcedDepth : l__24.wz;
l__18.projectVertex(l__24);
m_aRenderingList[int(m_nRenderingListCount++)] = l__35;
l__35.vx.copy(l__24);
l__35.vx.wx++;
l__18.projectVertex(l__35.vx);
l__35.vy.copy(l__24);
l__35.vy.wy++;
l__18.projectVertex(l__35.vy);
} else {
if ((m_aDisplayList[int(l__30)] is Renderable)){
(m_aDisplayList[int(l__30)] as Renderable).render(l__18);
m_aRenderingList[int(m_nRenderingListCount++)] = (m_aDisplayList[int(l__30)] as Renderable);
};
};
};
};
return (true);
}
public function init():void{
m_nDisplayListCount = 0;
m_bGlobalRedraw = false;
}
public function removeFromDisplayList(p__1:IDisplayable):void{
p__1.clear();
if (m_aDisplayList.indexOf(p__1) > -1){
m_aDisplayList.splice(m_aDisplayList.indexOf(p__1), 1);
};
}
public function renderDisplayList(p__1:Scene3D):void{
var l__3:IDisplayable;
var l__4:int;
var l__2:Sprite = p__1.container;
m_aRenderingList.sortOn("depth", (Array.NUMERIC | Array.DESCENDING));
while (l__4 < m_nRenderingListCount) {
l__3 = m_aRenderingList[int(l__4)];
if (((((l__3.changed) || (((l__3.material)!=null) ? l__3.material.modified : false))) || (p__1.camera.changed))){
l__3.display();
};
if (l__4 < l__2.numChildren){
if (l__2.getChildAt(l__4) != l__3.container){
l__2.addChildAt(l__3.container, l__4);
};
} else {
l__2.addChildAt(l__3.container, l__4);
};
l__4++;
};
}
}
}//package sandy.core
Section 99
//SandyFlags (sandy.core.SandyFlags)
package sandy.core {
public final class SandyFlags {
public static const VERTEX_NORMAL_WORLD:uint = 2;
public static const POLYGON_NORMAL_WORLD:uint = 1;
public function SandyFlags(){
super();
}
}
}//package sandy.core
Section 100
//Scene3D (sandy.core.Scene3D)
package sandy.core {
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.events.*;
import flash.events.*;
import flash.display.*;
import sandy.core.light.*;
public class Scene3D extends EventDispatcher {
public var container:Sprite;
public var renderer:Renderer;
private var m_bRectClipped:Boolean;// = false
protected var m_sName:String;
private var _light:Light3D;
public var camera:Camera3D;
protected var m_oRoot:Group;
private static var _version:String = "3.1";
public function Scene3D(p__1:String, p__2:Sprite, p__3:Camera3D=null, p__4:Group=null){
renderer = new Renderer();
super();
if (p__1 != null){
if (SceneLocator.getInstance().registerScene(p__1, this)){
container = p__2;
camera = p__3;
root = p__4;
if (((!((root == null))) && (!((camera == null))))){
if (!camera.hasParent()){
root.addChild(camera);
};
};
};
m_sName = p__1;
};
_light = new Light3D(new Point3D(0, 0, 1), 100);
}
public function set root(p__1:Group):void{
if (m_oRoot){
m_oRoot.scene = null;
m_oRoot = null;
};
if (p__1){
m_oRoot = p__1;
m_oRoot.scene = this;
if (!camera.hasParent()){
root.addChild(camera);
};
};
}
public function get rectClipping():Boolean{
return (m_bRectClipped);
}
public function get name():String{
return (m_sName);
}
public function set rectClipping(p__1:Boolean):void{
m_bRectClipped = p__1;
if (camera){
camera.viewport.hasChanged = true;
};
}
public function get light():Light3D{
return (_light);
}
public function dispose():Boolean{
SceneLocator.getInstance().unregisterScene(m_sName);
if (root){
root.destroy();
root = null;
};
if (camera){
camera = null;
};
if (_light){
_light = null;
};
return (true);
}
private function _onLightUpdate(p__1:SandyEvent):void{
}
public function get root():Group{
return (m_oRoot);
}
public function set light(p__1:Light3D):void{
if (_light){
_light.destroy();
};
_light = p__1;
dispatchEvent(new SandyEvent(SandyEvent.LIGHT_ADDED));
}
public function render(p__1:Boolean=true):void{
var l__2:Boolean;
if (((((root) && (camera))) && (container))){
Pool.getInstance().init();
renderer.init();
dispatchEvent(new SandyEvent(SandyEvent.SCENE_UPDATE));
root.update(null, false);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_CULL));
root.cull(camera.frustrum, camera.invModelMatrix, camera.changed);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_RENDER));
l__2 = renderer.render(this, p__1);
dispatchEvent(new SandyEvent(SandyEvent.SCENE_RENDER_DISPLAYLIST));
if (((l__2) || (_light.changed))){
renderer.renderDisplayList(this);
_light.changed = false;
};
dispatchEvent(new SandyEvent(SandyEvent.SCENE_RENDER_FINISH));
};
}
public static function getVersion():String{
return (_version);
}
}
}//package sandy.core
Section 101
//SceneLocator (sandy.core.SceneLocator)
package sandy.core {
import sandy.bounds.*;
import sandy.core.data.*;
import flash.utils.*;
public class SceneLocator {
private var _m:Dictionary;
private static var _oI:SceneLocator;
public function SceneLocator(p__1:PrivateConstructorAccess){
super();
_m = new Dictionary(true);
}
public function unregisterScene(p__1:String):void{
_m[p__1] = null;
}
public function getScene(p__1:String):Scene3D{
if (!isRegistered(p__1)){
trace(((("Can't locate scene instance with '" + p__1) + "' name in ") + this));
};
return ((_m[p__1] as Scene3D));
}
public function registerScene(p__1:String, p__2:Scene3D):Boolean{
if (isRegistered(p__1)){
trace(((("scene instance is already registered with '" + p__1) + "' name in ") + this));
return (false);
};
_m[p__1] = p__2;
return (true);
}
public function isRegistered(p__1:String):Boolean{
return (!((_m[p__1] == null)));
}
public static function getInstance():SceneLocator{
if (!_oI){
_oI = new SceneLocator(new PrivateConstructorAccess());
};
return (_oI);
}
}
}//package sandy.core
final class PrivateConstructorAccess {
private function PrivateConstructorAccess(){
super();
}
}
Section 102
//BubbleEvent (sandy.events.BubbleEvent)
package sandy.events {
import flash.events.*;
import king.util.*;
public class BubbleEvent extends Event {
private var m_oTarget:Object;
public function BubbleEvent(p__1:String, p__2:Object){
super(p__1, true, true);
m_oTarget = p__2;
}
override public function toString():String{
return ("BubbleEvent");
}
public function get object():Object{
return (m_oTarget);
}
}
}//package sandy.events
Section 103
//BubbleEventBroadcaster (sandy.events.BubbleEventBroadcaster)
package sandy.events {
import flash.events.*;
public final class BubbleEventBroadcaster extends EventBroadcaster {
private var m_oParent:BubbleEventBroadcaster;// = null
private var m_oTarget:Object;
public function BubbleEventBroadcaster(p__1:Object){
super();
m_oTarget = p__1;
}
override public function dispatchEvent(p__1:Event):Boolean{
if ((p__1 is BubbleEvent)){
super.dispatchEvent(p__1);
if (parent){
parent.dispatchEvent(p__1);
};
} else {
super.dispatchEvent(p__1);
};
return (true);
}
public function get target():Object{
return (m_oTarget);
}
public function set parent(p__1:BubbleEventBroadcaster):void{
m_oParent = p__1;
}
public function removeChild(p__1:BubbleEventBroadcaster):void{
}
public function get parent():BubbleEventBroadcaster{
return (m_oParent);
}
public function addChild(p__1:BubbleEventBroadcaster):void{
p__1.parent = this;
}
}
}//package sandy.events
Section 104
//EventBroadcaster (sandy.events.EventBroadcaster)
package sandy.events {
import flash.events.*;
public class EventBroadcaster extends EventDispatcher {
public function EventBroadcaster(){
super();
}
override public function dispatchEvent(p__1:Event):Boolean{
if (((hasEventListener(p__1.type)) || (p__1.bubbles))){
return (super.dispatchEvent(p__1));
};
return (true);
}
}
}//package sandy.events
Section 105
//SandyEvent (sandy.events.SandyEvent)
package sandy.events {
import flash.events.*;
import flash.display.*;
public class SandyEvent extends Event {
public static const QUEUE_LOADER_ERROR:String = "queueLoaderError";
public static const SCENE_CULL:String = "scene_cull";
public static const QUEUE_COMPLETE:String = "queueComplete";
public static const SCENE_RENDER:String = "scene_render";
public static const CONTAINER_CREATED:String = "containerCreated";
public static const LIGHT_COLOR_CHANGED:String = "lightColorChanged";
public static const SCENE_RENDER_FINISH:String = "scene_render_finish";
public static const SCENE_RENDER_DISPLAYLIST:String = "scene_render_display_list";
public static const LIGHT_ADDED:String = "lightAdded";
public static const LIGHT_UPDATED:String = "lightUpdated";
public static const SCENE_UPDATE:String = "scene_update";
public function SandyEvent(p__1:String, p__2:Boolean=false, p__3:Boolean=false){
super(p__1, p__2, p__3);
}
override public function clone():Event{
return (new SandyEvent(type, bubbles, cancelable));
}
}
}//package sandy.events
Section 106
//Shape3DEvent (sandy.events.Shape3DEvent)
package sandy.events {
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import flash.events.*;
public class Shape3DEvent extends BubbleEvent {
public var point:Point3D;
public var shape:Shape3D;
public var uv:UVCoord;
public var polygon:Polygon;
public var event:Event;
public function Shape3DEvent(p__1:String, p__2:Shape3D, p__3:Polygon, p__4:UVCoord, p__5:Point3D, p__6:Event){
super(p__1, p__2);
shape = p__2;
polygon = p__3;
uv = p__4;
point = p__5;
event = p__6;
}
}
}//package sandy.events
Section 107
//AAttributes (sandy.materials.attributes.AAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import flash.display.*;
public class AAttributes implements IAttributes {
protected var m_nFlags:uint;// = 0
public function AAttributes(){
super();
}
public function finish(p__1:Scene3D):void{
}
public function get flags():uint{
return (m_nFlags);
}
public function drawOnSprite(p__1:Sprite2D, p__2:Material, p__3:Scene3D):void{
}
public function init(p__1:Polygon):void{
}
public function unlink(p__1:Polygon):void{
}
public function begin(p__1:Scene3D):void{
}
public function draw(p__1:Graphics, p__2:Polygon, p__3:Material, p__4:Scene3D):void{
}
}
}//package sandy.materials.attributes
Section 108
//ALightAttributes (sandy.materials.attributes.ALightAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
public class ALightAttributes implements IAttributes {
protected const m_oH:Point3D;
private var _scenes:Dictionary;
private var _gloss:Number;// = 5
private var _specular:Number;// = 0
private var _diffuse:Number;// = 1
protected var m_oCurrentH:Point3D;
protected var m_nI:Number;
protected var m_oCurrentL:Point3D;
protected var m_oCurrentV:Point3D;
protected var m_nFlags:uint;// = 0
protected var m_oL:Point3D;
private var _ambient:Number;// = 0.3
protected var m_oCurrentShape:Shape3D;
protected var m_oV:Point3D;
public function ALightAttributes(){
m_oH = new Point3D();
m_oCurrentL = new Point3D();
m_oCurrentV = new Point3D();
m_oCurrentH = new Point3D();
_scenes = new Dictionary(true);
super();
}
public function get flags():uint{
return (m_nFlags);
}
public function get gloss():Number{
return (_gloss);
}
public function set specular(p__1:Number):void{
_specular = p__1;
onPropertyChange();
}
public function init(p__1:Polygon):void{
}
private function applyColorToDisplayObject(p__1:DisplayObject, p__2:uint, p__3:Number):void{
var l__4:Number;
var l__5:Number;
var l__6:Number;
if ((((p__2 < 1)) || ((p__2 > 0xFFFFFF)))){
p__2 = 0xFFFFFF;
};
l__4 = ((0xFF0000 & p__2) >> 16);
l__5 = ((0xFF00 & p__2) >> 8);
l__6 = (0xFF & p__2);
var l__7:Number = ((p__3 * 1.7321) / Math.sqrt((((l__4 * l__4) + (l__5 * l__5)) + (l__6 * l__6))));
l__4 = (l__4 * l__7);
l__5 = (l__5 * l__7);
l__6 = (l__6 * l__7);
var l__8:ColorTransform = p__1.transform.colorTransform;
if (((((!((l__8.redMultiplier == l__4))) || (!((l__8.greenMultiplier == l__5))))) || (!((l__8.blueMultiplier == l__6))))){
l__8.redMultiplier = l__4;
l__8.greenMultiplier = l__5;
l__8.blueMultiplier = l__6;
p__1.transform.colorTransform = l__8;
};
}
public function unlink(p__1:Polygon):void{
if (m_oCurrentShape == p__1.shape){
m_oCurrentShape = null;
};
}
public function set gloss(p__1:Number):void{
_gloss = p__1;
onPropertyChange();
}
public function get ambient():Number{
return (_ambient);
}
public function finish(p__1:Scene3D):void{
}
protected function onPropertyChange():void{
}
public function set ambient(p__1:Number):void{
_ambient = p__1;
onPropertyChange();
}
public function begin(p__1:Scene3D):void{
m_nI = p__1.light.getNormalizedPower();
m_oL = p__1.light.getDirectionPoint3D();
m_oV = p__1.camera.getPosition("absolute");
m_oV.scale(-1);
m_oV.normalize();
m_oH.copy(m_oL);
m_oH.add(m_oV);
m_oH.normalize();
m_oCurrentShape = null;
m_oCurrentL.copy(m_oL);
m_oCurrentV.copy(m_oV);
m_oCurrentH.copy(m_oH);
}
public function get specular():Number{
return (_specular);
}
public function set diffuse(p__1:Number):void{
_diffuse = p__1;
onPropertyChange();
}
public function draw(p__1:Graphics, p__2:Polygon, p__3:Material, p__4:Scene3D):void{
var l__5:Matrix4;
if (p__3.lightingEnable){
applyColorToDisplayObject((p__2.shape.useSingleContainer) ? p__2.shape.container : p__2.container, p__4.light.color, 1);
if (m_oCurrentShape != p__2.shape){
m_oCurrentShape = p__2.shape;
l__5 = m_oCurrentShape.invModelMatrix;
if (m_oL){
m_oCurrentL.copy(m_oL);
l__5.transform3x3(m_oCurrentL);
};
if (m_oV){
m_oCurrentV.copy(m_oV);
l__5.transform3x3(m_oCurrentV);
};
if (m_oH){
m_oCurrentH.copy(m_oH);
l__5.transform3x3(m_oCurrentH);
};
};
};
}
public function get diffuse():Number{
return (_diffuse);
}
protected function calculate(p__1:Point3D, p__2:Boolean, p__3:Boolean=false):Number{
var l__6:Number;
var l__4:Number = (p__2) ? -1 : 1;
var l__5:Number = (l__4 * m_oCurrentL.dot(p__1));
if (l__5 < 0){
l__5 = 0;
};
l__5 = (_ambient + (_diffuse * l__5));
if (((!(p__3)) && ((specular > 0)))){
l__6 = (l__4 * m_oCurrentH.dot(p__1));
if (l__6 < 0){
l__6 = 0;
};
l__5 = (l__5 + (_specular * Math.pow(l__6, _gloss)));
};
return ((l__5 * m_nI));
}
public function drawOnSprite(p__1:Sprite2D, p__2:Material, p__3:Scene3D):void{
if (p__2.lightingEnable){
applyColorToDisplayObject(p__1.container, p__3.light.color, (ambient * p__3.light.getNormalizedPower()));
};
}
}
}//package sandy.materials.attributes
Section 109
//IAttributes (sandy.materials.attributes.IAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import flash.display.*;
public interface IAttributes {
function init(:Polygon):void;
function finish(:Scene3D):void;
function draw(_arg1:Graphics, _arg2:Polygon, _arg3:Material, _arg4:Scene3D):void;
function get flags():uint;
function drawOnSprite(_arg1:Sprite2D, _arg2:Material, _arg3:Scene3D):void;
function begin(:Scene3D):void;
function unlink(:Polygon):void;
}
}//package sandy.materials.attributes
Section 110
//LightAttributes (sandy.materials.attributes.LightAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.materials.*;
import flash.display.*;
public final class LightAttributes extends ALightAttributes {
public var useBright:Boolean;// = false
public function LightAttributes(p__1:Boolean=false, p__2:Number=0.3){
super();
useBright = p__1;
ambient = Math.min(Math.max(p__2, 0), 1);
}
override public function draw(p__1:Graphics, p__2:Polygon, p__3:Material, p__4:Scene3D):void{
var l__5:Array;
var l__6:Point3D;
var l__7:Number;
var l__8:Vertex;
super.draw(p__1, p__2, p__3, p__4);
if (p__3.lightingEnable){
l__5 = (p__2.isClipped) ? p__2.cvertices : p__2.vertices;
l__6 = p__2.normal.getPoint3D();
l__7 = calculate(l__6, p__2.visible);
if (l__7 > 1){
l__7 = 1;
} else {
if (l__7 < ambient){
l__7 = ambient;
};
};
p__1.lineStyle();
if (useBright){
p__1.beginFill(((l__7)<0.5) ? 0 : 0xFFFFFF, ((l__7)<0.5) ? (1 - (2 * l__7)) : ((2 * l__7) - 1));
} else {
p__1.beginFill(0, (1 - l__7));
};
p__1.moveTo(Vertex(l__5[0]).sx, Vertex(l__5[0]).sy);
for each (l__8 in l__5) {
p__1.lineTo(l__8.sx, l__8.sy);
};
p__1.endFill();
l__6 = null;
l__8 = null;
};
}
}
}//package sandy.materials.attributes
Section 111
//LineAttributes (sandy.materials.attributes.LineAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.materials.*;
import flash.display.*;
public class LineAttributes extends AAttributes {
private var m_nAlpha:Number;
private var m_nColor:Number;
public var modified:Boolean;
private var m_nThickness:Number;
public function LineAttributes(p__1:uint=1, p__2:uint=0, p__3:Number=1){
super();
m_nThickness = p__1;
m_nAlpha = p__3;
m_nColor = p__2;
modified = true;
}
public function get color():Number{
return (m_nColor);
}
public function set color(p__1:Number):void{
m_nColor = p__1;
modified = true;
}
public function set thickness(p__1:Number):void{
m_nThickness = p__1;
modified = true;
}
override public function draw(p__1:Graphics, p__2:Polygon, p__3:Material, p__4:Scene3D):void{
var l__6:Vertex;
var l__5:Array = (p__2.isClipped) ? p__2.cvertices : p__2.vertices;
p__1.lineStyle(m_nThickness, m_nColor, m_nAlpha);
p__1.moveTo(l__5[0].sx, l__5[0].sy);
var l__7:int = l__5.length;
while ((l__6 = l__5[--l__7])) {
p__1.lineTo(l__6.sx, l__6.sy);
};
}
public function get thickness():Number{
return (m_nThickness);
}
public function set alpha(p__1:Number):void{
m_nAlpha = p__1;
modified = true;
}
public function get alpha():Number{
return (m_nAlpha);
}
}
}//package sandy.materials.attributes
Section 112
//MaterialAttributes (sandy.materials.attributes.MaterialAttributes)
package sandy.materials.attributes {
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import flash.display.*;
public class MaterialAttributes {
public var attributes:Array;
public function MaterialAttributes(... _args){
var l__2:int;
attributes = new Array();
super();
while (l__2 < _args.length) {
if ((_args[l__2] is IAttributes)){
attributes.push(_args[l__2]);
};
l__2++;
};
}
public function init(p__1:Polygon):void{
var l__2:IAttributes;
for each (l__2 in attributes) {
l__2.init(p__1);
};
}
public function finish(p__1:Scene3D):void{
var l__2:IAttributes;
for each (l__2 in attributes) {
l__2.finish(p__1);
};
}
public function unlink(p__1:Polygon):void{
var l__2:IAttributes;
for each (l__2 in attributes) {
l__2.unlink(p__1);
};
}
public function draw(p__1:Graphics, p__2:Polygon, p__3:Material, p__4:Scene3D):void{
var l__5:IAttributes;
for each (l__5 in attributes) {
l__5.draw(p__1, p__2, p__3, p__4);
};
}
public function get flags():uint{
var l__2:IAttributes;
var l__1:uint;
for each (l__2 in attributes) {
l__1 = (l__1 | l__2.flags);
};
return (l__1);
}
public function drawOnSprite(p__1:Sprite2D, p__2:Material, p__3:Scene3D):void{
var l__4:IAttributes;
for each (l__4 in attributes) {
l__4.drawOnSprite(p__1, p__2, p__3);
};
}
public function begin(p__1:Scene3D):void{
var l__2:IAttributes;
for each (l__2 in attributes) {
l__2.begin(p__1);
};
}
}
}//package sandy.materials.attributes
Section 113
//Appearance (sandy.materials.Appearance)
package sandy.materials {
import sandy.core.data.*;
public class Appearance {
private var m_oBackMaterial:Material;
private var m_oFrontMaterial:Material;
public function Appearance(p__1:Material=null, p__2:Material=null){
super();
m_oFrontMaterial = ((p__1)!=null) ? p__1 : new ColorMaterial();
m_oBackMaterial = ((p__2)!=null) ? p__2 : m_oFrontMaterial;
}
public function set frontMaterial(p__1:Material):void{
var l__2:Array;
var l__3:Polygon;
if (m_oFrontMaterial == p__1){
return;
};
if (m_oFrontMaterial){
l__2 = m_oFrontMaterial.unlinkAll();
};
m_oFrontMaterial = p__1;
if (m_oFrontMaterial == null){
return;
};
for each (l__3 in l__2) {
m_oFrontMaterial.init(l__3);
};
if (m_oBackMaterial == null){
m_oBackMaterial = p__1;
};
}
public function get flags():uint{
var l__1:uint = m_oFrontMaterial.flags;
if (m_oFrontMaterial != m_oBackMaterial){
l__1 = (l__1 | m_oBackMaterial.flags);
};
return (l__1);
}
public function get modified():Boolean{
return (((m_oFrontMaterial.modified) || (m_oBackMaterial.modified)));
}
public function toString():String{
return ("sandy.materials.Appearance");
}
public function get backMaterial():Material{
return (m_oBackMaterial);
}
public function get lightingEnable():Boolean{
return (((m_oFrontMaterial.lightingEnable) || (m_oBackMaterial.lightingEnable)));
}
public function get frontMaterial():Material{
return (m_oFrontMaterial);
}
public function get useVertexNormal():Boolean{
return (Boolean(((m_oBackMaterial.useVertexNormal) && (m_oFrontMaterial.useVertexNormal))));
}
public function set backMaterial(p__1:Material):void{
var l__2:Array;
var l__3:Polygon;
if (m_oBackMaterial == p__1){
return;
};
if (m_oBackMaterial){
l__2 = m_oBackMaterial.unlinkAll();
};
m_oBackMaterial = p__1;
if (m_oBackMaterial == null){
return;
};
for each (l__3 in l__2) {
m_oBackMaterial.init(l__3);
};
if (m_oFrontMaterial == null){
m_oFrontMaterial = p__1;
};
}
public function set lightingEnable(p__1:Boolean):void{
m_oFrontMaterial.lightingEnable = p__1;
if (m_oFrontMaterial != m_oBackMaterial){
m_oBackMaterial.lightingEnable = p__1;
};
}
public function dispose():void{
m_oFrontMaterial.dispose();
if (m_oFrontMaterial != m_oBackMaterial){
m_oBackMaterial.dispose();
};
m_oFrontMaterial = (m_oBackMaterial = null);
}
}
}//package sandy.materials
Section 114
//BitmapMaterial (sandy.materials.BitmapMaterial)
package sandy.materials {
import sandy.core.data.*;
import sandy.core.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import sandy.util.*;
public class BitmapMaterial extends Material implements IAlphaMaterial {
protected const m_oOffset:Point;
protected const m_oTiling:Point;
public var precision:uint;// = 0
private var m_nWidth:Number;
var graphics:Graphics;
private var m_nRecLevel:int;// = 0
private var m_nInvWidth:Number;
public var forceUpdate:Boolean;// = false
private var m_nAlpha:Number;// = 1
public var smooth:Boolean;// = false
private var m_oDrawMatrix:Matrix;
var polygon:Polygon;
private var m_nInvHeight:Number;
protected var m_oTexture:BitmapData;
private var m_oTextureClone:BitmapData;
protected var matrix:Matrix;
private var m_oColorTransform:ColorTransform;
var map:Matrix;
public var maxRecurssionDepth:uint;// = 5
private var m_nHeight:Number;
protected var m_oPoint:Point;
protected var m_oPolygonMatrixMap:Dictionary;
public function BitmapMaterial(p__1:BitmapData=null, p__2:MaterialAttributes=null, p__3:uint=0){
m_oDrawMatrix = new Matrix();
m_oColorTransform = new ColorTransform();
map = new Matrix();
m_oPoint = new Point();
matrix = new Matrix();
m_oTiling = new Point(1, 1);
m_oOffset = new Point(0, 0);
super(p__2);
m_oType = MaterialType.BITMAP;
texture = p__1;
m_oPolygonMatrixMap = new Dictionary(true);
precision = p__3;
}
override public function unlink(p__1:Polygon):void{
if (m_oPolygonMatrixMap){
if (m_oPolygonMatrixMap[p__1.id]){
delete m_oPolygonMatrixMap[p__1.id];
};
};
super.unlink(p__1);
}
protected function renderRec(p__1:Number, p__2:Number, p__3:Number, p__4:Number, p__5:Number, p__6:Number, p__7:Number, p__8:Number, p__9:Number, p__10:Number, p__11:Number, p__12:Number, p__13:Number, p__14:Number, p__15:Number):void{
m_nRecLevel++;
var l__16:Number = (p__1 + p__1);
var l__17:Number = (p__2 + p__2);
var l__18:Number = (p__3 + p__3);
var l__19:Number = (p__4 + p__4);
var l__20:Number = (p__5 + p__5);
var l__21:Number = (p__6 + p__6);
var l__22:Number = (2 / (p__9 + p__12));
var l__23:Number = (2 / (p__12 + p__15));
var l__24:Number = (2 / (p__15 + p__9));
var l__25:Number = (((p__7 * p__9) + (p__10 * p__12)) * l__22);
var l__26:Number = (((p__8 * p__9) + (p__11 * p__12)) * l__22);
var l__27:Number = (((p__10 * p__12) + (p__13 * p__15)) * l__23);
var l__28:Number = (((p__11 * p__12) + (p__14 * p__15)) * l__23);
var l__29:Number = (((p__13 * p__15) + (p__7 * p__9)) * l__24);
var l__30:Number = (((p__14 * p__15) + (p__8 * p__9)) * l__24);
var l__31:Number = ((p__7 + p__10) - l__25);
var l__32:Number = ((p__8 + p__11) - l__26);
var l__33:Number = ((p__10 + p__13) - l__27);
var l__34:Number = ((p__11 + p__14) - l__28);
var l__35:Number = ((p__13 + p__7) - l__29);
var l__36:Number = ((p__14 + p__8) - l__30);
var l__37:Number = ((l__31 * l__31) + (l__32 * l__32));
var l__38:Number = ((l__33 * l__33) + (l__34 * l__34));
var l__39:Number = ((l__35 * l__35) + (l__36 * l__36));
var l__40:Number = (l__25 * 0.5);
var l__41:Number = (l__26 * 0.5);
var l__42:Number = ((p__9 + p__12) * 0.5);
var l__43:Number = (l__29 * 0.5);
var l__44:Number = (l__30 * 0.5);
var l__45:Number = ((p__15 + p__9) * 0.5);
var l__46:Number = (l__27 * 0.5);
var l__47:Number = (l__28 * 0.5);
var l__48:Number = ((p__12 + p__15) * 0.5);
if ((((m_nRecLevel > maxRecurssionDepth)) || ((((((l__37 <= precision)) && ((l__39 <= precision)))) && ((l__38 <= precision)))))){
renderTriangle(p__1, p__2, p__3, p__4, p__5, p__6, p__7, p__8, p__10, p__11, p__13, p__14);
m_nRecLevel--;
return;
};
if ((((((l__37 > precision)) && ((l__39 > precision)))) && ((l__38 > precision)))){
renderRec(l__16, l__17, l__18, l__19, l__20, l__21, p__7, p__8, p__9, l__40, l__41, l__42, l__43, l__44, l__45);
renderRec(l__16, l__17, l__18, l__19, (l__20 - 1), l__21, l__40, l__41, l__42, p__10, p__11, p__12, l__46, l__47, l__48);
renderRec(l__16, l__17, l__18, l__19, l__20, (l__21 - 1), l__43, l__44, l__45, l__46, l__47, l__48, p__13, p__14, p__15);
renderRec(-(l__16), -(l__17), -(l__18), -(l__19), (-(l__20) + 1), (-(l__21) + 1), l__46, l__47, l__48, l__43, l__44, l__45, l__40, l__41, l__42);
m_nRecLevel--;
return;
};
var l__49:Number = Math.max(l__37, Math.max(l__39, l__38));
if (l__37 == l__49){
renderRec(l__16, p__2, l__18, p__4, l__20, p__6, p__7, p__8, p__9, l__40, l__41, l__42, p__13, p__14, p__15);
renderRec((l__16 + p__2), p__2, (l__18 + p__4), p__4, ((l__20 + p__6) - 1), p__6, l__40, l__41, l__42, p__10, p__11, p__12, p__13, p__14, p__15);
m_nRecLevel--;
return;
};
if (l__39 == l__49){
renderRec(p__1, l__17, p__3, l__19, p__5, l__21, p__7, p__8, p__9, p__10, p__11, p__12, l__43, l__44, l__45);
renderRec(p__1, (l__17 + p__1), p__3, (l__19 + p__3), p__5, ((l__21 + p__5) - 1), l__43, l__44, l__45, p__10, p__11, p__12, p__13, p__14, p__15);
m_nRecLevel--;
return;
};
renderRec((p__1 - p__2), l__17, (p__3 - p__4), l__19, (p__5 - p__6), l__21, p__7, p__8, p__9, p__10, p__11, p__12, l__46, l__47, l__48);
renderRec(l__16, (p__2 - p__1), l__18, (p__4 - p__3), l__20, (p__6 - p__5), p__7, p__8, p__9, l__46, l__47, l__48, p__13, p__14, p__15);
m_nRecLevel--;
}
override public function dispose():void{
super.dispose();
if (m_oTexture){
m_oTexture.dispose();
};
m_oTexture = null;
if (m_oTextureClone){
m_oTextureClone.dispose();
};
m_oTextureClone = null;
m_oPolygonMatrixMap = null;
}
public function get texture():BitmapData{
return (m_oTexture);
}
override public function init(p__1:Polygon):void{
var l__2:Matrix;
var l__3:Array;
if (p__1.vertices.length >= 3){
l__2 = null;
if ((((m_nWidth > 0)) && ((m_nHeight > 0)))){
l__3 = p__1.aUVCoord;
if (l__3){
l__2 = _createTextureMatrix(l__3[0].u, l__3[0].v, l__3[int(1)].u, l__3[int(1)].v, l__3[int(2)].u, l__3[int(2)].v);
};
};
m_oPolygonMatrixMap[p__1.id] = l__2;
};
super.init(p__1);
}
public function set texture(p__1:BitmapData):void{
var l__3:String;
var l__4:Dictionary;
var l__5:Polygon;
var l__2:Boolean;
if (p__1 == m_oTexture){
return;
};
if (m_oTexture){
m_oTexture.dispose();
};
if (m_nHeight != p__1.height){
l__2 = true;
} else {
if (m_nWidth != p__1.width){
l__2 = true;
};
};
m_oTexture = p__1;
m_nHeight = m_oTexture.height;
m_nWidth = m_oTexture.width;
m_nInvHeight = (1 / m_nHeight);
m_nInvWidth = (1 / m_nWidth);
if (l__2){
l__4 = new Dictionary(true);
for (l__3 in m_oPolygonMatrixMap) {
l__4[l__3] = m_oPolygonMatrixMap[l__3];
};
for (l__3 in l__4) {
l__5 = Polygon.POLYGON_MAP[l__3];
unlink(l__5);
init(l__5);
};
l__4 = null;
};
}
public function set alpha(p__1:Number):void{
setTransparency(p__1);
m_bModified = true;
}
protected function renderTriangle(p__1:Number, p__2:Number, p__3:Number, p__4:Number, p__5:Number, p__6:Number, p__7:Number, p__8:Number, p__9:Number, p__10:Number, p__11:Number, p__12:Number):void{
var l__13:Number = (p__9 - p__7);
var l__14:Number = (p__10 - p__8);
var l__15:Number = (p__11 - p__7);
var l__16:Number = (p__12 - p__8);
matrix.a = ((p__1 * l__13) + (p__2 * l__15));
matrix.b = ((p__1 * l__14) + (p__2 * l__16));
matrix.c = ((p__3 * l__13) + (p__4 * l__15));
matrix.d = ((p__3 * l__14) + (p__4 * l__16));
matrix.tx = (((p__5 * l__13) + (p__6 * l__15)) + p__7);
matrix.ty = (((p__5 * l__14) + (p__6 * l__16)) + p__8);
var l__17:Number = (((p__7 * (l__16 - l__14)) - (p__9 * l__16)) + (p__11 * l__14));
if (l__17 < 0){
l__17 = -(l__17);
};
graphics.lineStyle();
graphics.beginBitmapFill(((m_nAlpha)==1) ? m_oTexture : m_oTextureClone, matrix, repeat, ((smooth) && ((l__17 > 100))));
graphics.moveTo(p__7, p__8);
graphics.lineTo(p__9, p__10);
graphics.lineTo(p__11, p__12);
graphics.endFill();
}
override public function renderPolygon(p__1:Scene3D, p__2:Polygon, p__3:Sprite):void{
var l__4:Array;
var l__5:Array;
var l__6:Vertex;
var l__7:Vertex;
var l__8:Vertex;
var l__9:int;
var l__10:int;
if (m_oTexture == null){
return;
};
polygon = p__2;
graphics = p__3.graphics;
m_nRecLevel = 0;
if (((polygon.isClipped) || ((polygon.vertices.length > 3)))){
l__4 = (polygon.isClipped) ? p__2.cvertices : p__2.vertices;
l__5 = (polygon.isClipped) ? p__2.caUVCoord : p__2.aUVCoord;
l__10 = (l__4.length - 1);
l__9 = 1;
while (l__9 < l__10) {
map = _createTextureMatrix(l__5[0].u, l__5[0].v, l__5[int(l__9)].u, l__5[int(l__9)].v, l__5[int((l__9 + 1))].u, l__5[int((l__9 + 1))].v);
l__6 = l__4[0];
l__7 = l__4[int(l__9)];
l__8 = l__4[int((l__9 + 1))];
if (precision == 0){
renderTriangle(map.a, map.b, map.c, map.d, map.tx, map.ty, l__6.sx, l__6.sy, l__7.sx, l__7.sy, l__8.sx, l__8.sy);
} else {
renderRec(map.a, map.b, map.c, map.d, map.tx, map.ty, l__6.sx, l__6.sy, l__6.wz, l__7.sx, l__7.sy, l__7.wz, l__8.sx, l__8.sy, l__8.wz);
};
l__9++;
};
} else {
l__4 = p__2.vertices;
l__5 = p__2.aUVCoord;
map = (m_oPolygonMatrixMap[polygon.id] as Matrix);
l__6 = l__4[0];
l__7 = l__4[1];
l__8 = l__4[2];
if (precision == 0){
renderTriangle(map.a, map.b, map.c, map.d, map.tx, map.ty, l__6.sx, l__6.sy, l__7.sx, l__7.sy, l__8.sx, l__8.sy);
} else {
renderRec(map.a, map.b, map.c, map.d, map.tx, map.ty, l__6.sx, l__6.sy, l__6.wz, l__7.sx, l__7.sy, l__7.wz, l__8.sx, l__8.sy, l__8.wz);
};
};
super.renderPolygon(p__1, p__2, p__3);
l__4 = null;
l__5 = null;
}
public function setTransparency(p__1:Number):void{
if (m_oTexture == null){
throw (new Error("Setting transparency requires setting texture first."));
};
p__1 = NumberUtil.constrain(p__1, 0, 1);
m_nAlpha = p__1;
if (p__1 == 1){
return;
};
if (m_oTextureClone != null){
if (((!((m_oTextureClone.height == m_oTexture.height))) || (!((m_oTextureClone.width == m_oTexture.width))))){
m_oTextureClone.dispose();
m_oTextureClone = null;
};
};
if (m_oTextureClone == null){
m_oTextureClone = new BitmapData(m_oTexture.width, m_oTexture.height, true, 0);
};
m_oColorTransform.alphaMultiplier = p__1;
m_oTextureClone.lock();
m_oTextureClone.fillRect(m_oTextureClone.rect, 0);
m_oTextureClone.draw(m_oTexture, m_oDrawMatrix, m_oColorTransform);
m_oTextureClone.unlock();
}
public function get alpha():Number{
return (m_nAlpha);
}
protected function _createTextureMatrix(p__1:Number, p__2:Number, p__3:Number, p__4:Number, p__5:Number, p__6:Number):Matrix{
var l__7:Number = (((p__1 * m_oTiling.x) + m_oOffset.x) * m_nWidth);
var l__8:Number = (((p__2 * m_oTiling.y) + m_oOffset.y) * m_nHeight);
var l__9:Number = (((p__3 * m_oTiling.x) + m_oOffset.x) * m_nWidth);
var l__10:Number = (((p__4 * m_oTiling.y) + m_oOffset.y) * m_nHeight);
var l__11:Number = (((p__5 * m_oTiling.x) + m_oOffset.x) * m_nWidth);
var l__12:Number = (((p__6 * m_oTiling.y) + m_oOffset.y) * m_nHeight);
if ((((((l__7 == l__9)) && ((l__8 == l__10)))) || ((((l__7 == l__11)) && ((l__8 == l__12)))))){
l__7 = (l__7 - ((l__7)>0.05) ? 0.05 : -0.05);
l__8 = (l__8 - ((l__8)>0.07) ? 0.07 : -0.07);
};
if ((((l__11 == l__9)) && ((l__12 == l__10)))){
l__11 = (l__11 - ((l__11)>0.05) ? 0.04 : -0.04);
l__12 = (l__12 - ((l__12)>0.06) ? 0.06 : -0.06);
};
var l__13:Matrix = new Matrix((l__9 - l__7), (l__10 - l__8), (l__11 - l__7), (l__12 - l__8), l__7, l__8);
l__13.invert();
return (l__13);
}
public function toString():String{
return ((this.id + "::sandy.materials.BitmapMaterial"));
}
public function setTiling(p__1:Number, p__2:Number, p__3:Number=0, p__4:Number=0):void{
var l__5:String;
var l__7:Polygon;
m_oTiling.x = p__1;
m_oTiling.y = p__2;
m_oOffset.x = (p__3 - Math.floor(p__3));
m_oOffset.y = (p__4 - Math.floor(p__4));
m_bModified = true;
var l__6:Dictionary = new Dictionary(true);
for (l__5 in m_oPolygonMatrixMap) {
l__6[l__5] = m_oPolygonMatrixMap[l__5];
};
for (l__5 in l__6) {
l__7 = Polygon.POLYGON_MAP[l__5];
unlink(l__7);
init(l__7);
};
l__6 = null;
}
}
}//package sandy.materials
Section 115
//ColorMaterial (sandy.materials.ColorMaterial)
package sandy.materials {
import sandy.core.data.*;
import sandy.core.*;
import sandy.materials.attributes.*;
import flash.display.*;
public final class ColorMaterial extends Material implements IAlphaMaterial {
private var m_nAlpha:Number;
private var m_nColor:Number;
public function ColorMaterial(p__1:uint=0, p__2:Number=1, p__3:MaterialAttributes=null){
super(p__3);
m_oType = MaterialType.COLOR;
m_nColor = p__1;
m_nAlpha = p__2;
}
public function get color():Number{
return (m_nColor);
}
override public function renderPolygon(p__1:Scene3D, p__2:Polygon, p__3:Sprite):void{
var l__5:Vertex;
var l__4:Array = (p__2.isClipped) ? p__2.cvertices : p__2.vertices;
if (!l__4.length){
return;
};
var l__6:int = l__4.length;
var l__7:Graphics = p__3.graphics;
l__7.lineStyle();
l__7.beginFill(m_nColor, m_nAlpha);
l__7.moveTo(l__4[0].sx, l__4[0].sy);
while ((l__5 = l__4[--l__6])) {
l__7.lineTo(l__5.sx, l__5.sy);
};
l__7.endFill();
super.renderPolygon(p__1, p__2, p__3);
}
public function set color(p__1:Number):void{
m_nColor = p__1;
m_bModified = true;
}
public function set alpha(p__1:Number):void{
m_nAlpha = p__1;
m_bModified = true;
}
public function get alpha():Number{
return (m_nAlpha);
}
}
}//package sandy.materials
Section 116
//IAlphaMaterial (sandy.materials.IAlphaMaterial)
package sandy.materials {
public interface IAlphaMaterial {
function set alpha(:Number):void;
function get alpha():Number;
}
}//package sandy.materials
Section 117
//Material (sandy.materials.Material)
package sandy.materials {
import sandy.core.data.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.utils.*;
public class Material {
protected var m_nFlags:uint;// = 0
public var useVertexNormal:Boolean;// = false
public var attributes:MaterialAttributes;
public var repeat:Boolean;// = true
public var autoDipose:Boolean;// = true
protected var m_nRefCounting:int;
public var lightingEnable:Boolean;// = false
protected var m_oType:MaterialType;
protected var m_bModified:Boolean;
private var _id:Number;
private var _filters:Array;
protected var _useLight:Boolean;// = false
protected var m_oPolygonMap:Dictionary;
private static var _ID_:Number = 0;
public function Material(p__1:MaterialAttributes=null){
super();
_filters = [];
_useLight = false;
_id = _ID_++;
attributes = ((p__1)==null) ? new MaterialAttributes() : p__1;
m_bModified = true;
m_oType = MaterialType.NONE;
m_nRefCounting = 0;
m_oPolygonMap = new Dictionary(true);
}
public function get type():MaterialType{
return (m_oType);
}
public function get filters():Array{
return (_filters);
}
public function renderPolygon(p__1:Scene3D, p__2:Polygon, p__3:Sprite):void{
if (attributes){
attributes.draw(p__3.graphics, p__2, this, p__1);
};
if (_filters.length > 0){
p__3.filters = _filters;
};
}
public function set filters(p__1:Array):void{
if (p__1 != _filters){
_filters = p__1;
m_bModified = true;
};
}
public function get flags():uint{
var l__1:uint = m_nFlags;
if (attributes){
l__1 = (l__1 | attributes.flags);
};
return (l__1);
}
public function get modified():Boolean{
return (m_bModified);
}
public function unlinkAll():Array{
var l__2:Appearance;
var l__3:Polygon;
var l__4:String;
var l__1:Array = [];
for (l__4 in m_oPolygonMap) {
l__3 = Polygon(Polygon.POLYGON_MAP[l__4]);
l__2 = l__3.appearance;
if ((((l__2.frontMaterial == this)) || ((l__2.backMaterial == this)))){
unlink(l__3);
l__1.push(l__3);
};
};
return (l__1);
}
public function init(p__1:Polygon):void{
if (!m_oPolygonMap[p__1.id]){
m_oPolygonMap[p__1.id] = 1;
m_nRefCounting++;
if (attributes){
attributes.init(p__1);
};
} else {
var _local2 = m_oPolygonMap;
var _local3 = p__1.id;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
};
}
public function finish(p__1:Scene3D):void{
if (attributes){
attributes.finish(p__1);
};
m_bModified = false;
}
public function unlink(p__1:Polygon):void{
if (m_oPolygonMap[p__1.id]){
var _local2 = m_oPolygonMap;
var _local3 = p__1.id;
var _local4 = (_local2[_local3] - 1);
_local2[_local3] = _local4;
if (m_oPolygonMap[p__1.id] == 0){
delete m_oPolygonMap[p__1.id];
m_nRefCounting--;
if (attributes){
attributes.unlink(p__1);
};
};
};
if (((autoDipose) && ((m_nRefCounting <= 0)))){
dispose();
};
}
public function dispose():void{
var l__1:Appearance;
var l__2:Polygon;
var l__3:String;
for (l__3 in m_oPolygonMap) {
l__2 = Polygon(Polygon.POLYGON_MAP[l__3]);
unlink(l__2);
l__1 = l__2.appearance;
if (l__1.frontMaterial == this){
l__1.frontMaterial = null;
} else {
if (l__1.backMaterial == this){
l__1.backMaterial = null;
};
};
delete m_oPolygonMap[l__3];
};
attributes = null;
_filters = null;
}
public function get id():Number{
return (_id);
}
public function begin(p__1:Scene3D):void{
if (attributes){
attributes.begin(p__1);
};
}
public function renderSprite(p__1:Sprite2D, p__2:Material, p__3:Scene3D):void{
if (attributes){
attributes.drawOnSprite(p__1, p__2, p__3);
};
if (_filters.length > 0){
p__1.content.filters = _filters;
};
}
}
}//package sandy.materials
Section 118
//MaterialType (sandy.materials.MaterialType)
package sandy.materials {
import sandy.core.*;
public class MaterialType {
private var m_sType:String;
public static const COLOR:MaterialType = new MaterialType("color");
;
public static const WIREFRAME:MaterialType = new MaterialType("wireframe");
;
public static const OUTLINE:MaterialType = new MaterialType("outline");
;
public static const BITMAP:MaterialType = new MaterialType("bitmap");
;
public static const NONE:MaterialType = new MaterialType("default");
;
public static const VIDEO:MaterialType = new MaterialType("video");
;
public static const MOVIE:MaterialType = new MaterialType("movie");
;
public function MaterialType(p__1:String){
super();
m_sType = p__1;
}
public function typeString():String{
return (m_sType);
}
}
}//package sandy.materials
Section 119
//MovieMaterial (sandy.materials.MovieMaterial)
package sandy.materials {
import sandy.core.data.*;
import sandy.core.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.geom.*;
import sandy.math.*;
import flash.utils.*;
import sandy.util.*;
public class MovieMaterial extends BitmapMaterial {
private var m_oAlpha:ColorTransform;
private var m_oTimer:Timer;
private var m_oMovie:Sprite;
private var m_bUpdate:Boolean;
public static const DEFAULT_FILL_COLOR:uint = 0;
public function MovieMaterial(p__1:Sprite, p__2:uint=40, p__3:MaterialAttributes=null, p__4:Boolean=false, p__5:Number=0, p__6:Number=0){
var l__7:Number;
var l__8:Number;
var l__9:BitmapData;
var l__10:Rectangle;
m_oAlpha = new ColorTransform();
if (p__4){
l__9 = new BitmapData(p__1.width, p__1.height, true, 0);
l__9.draw(p__1);
l__10 = l__9.getColorBoundsRect(4278190080, 0, false);
l__7 = l__10.width;
l__8 = l__10.height;
} else {
l__7 = (p__6) ? p__6 : p__1.width;
l__8 = (p__5) ? p__5 : p__1.height;
};
super(new BitmapData(l__7, l__8, true, DEFAULT_FILL_COLOR), p__3);
m_oMovie = p__1;
m_oType = MaterialType.MOVIE;
m_bUpdate = true;
m_oTimer = new Timer(p__2);
m_oTimer.addEventListener(TimerEvent.TIMER, update);
m_oTimer.start();
if (l__9){
l__9.dispose();
l__9 = null;
};
l__10 = null;
l__7 = undefined;
l__8 = undefined;
}
override public function renderPolygon(p__1:Scene3D, p__2:Polygon, p__3:Sprite):void{
m_bUpdate = true;
super.renderPolygon(p__1, p__2, p__3);
}
override public function setTransparency(p__1:Number):void{
m_oAlpha.alphaMultiplier = NumberUtil.constrain(p__1, 0, 1);
}
public function stop():void{
m_oTimer.stop();
}
public function start():void{
m_oTimer.start();
}
public function get movie():Sprite{
return (m_oMovie);
}
public function update(p__1:Event=null):void{
if (((m_bUpdate) || (forceUpdate))){
m_oTexture.fillRect(m_oTexture.rect, ColorMath.applyAlpha(DEFAULT_FILL_COLOR, m_oAlpha.alphaMultiplier));
m_oTexture.draw(m_oMovie, null, m_oAlpha, null, null, smooth);
m_bModified = true;
};
m_bUpdate = false;
}
override public function dispose():void{
super.dispose();
stop();
m_oTimer = null;
m_oMovie = null;
}
}
}//package sandy.materials
Section 120
//WireFrameMaterial (sandy.materials.WireFrameMaterial)
package sandy.materials {
import sandy.core.data.*;
import sandy.core.*;
import sandy.materials.attributes.*;
import flash.display.*;
public final class WireFrameMaterial extends Material {
public function WireFrameMaterial(p__1:uint=1, p__2:uint=0, p__3:Number=1, p__4:MaterialAttributes=null){
super(p__4);
m_oType = MaterialType.WIREFRAME;
attributes.attributes.push(new LineAttributes(p__1, p__2, p__3));
}
override public function renderPolygon(p__1:Scene3D, p__2:Polygon, p__3:Sprite):void{
attributes.draw(p__3.graphics, p__2, this, p__1);
}
}
}//package sandy.materials
Section 121
//ColorMath (sandy.math.ColorMath)
package sandy.math {
import flash.geom.*;
public class ColorMath {
public function ColorMath(){
super();
}
public static function applyAlpha(p__1:uint, p__2:Number):uint{
var l__3:uint = (p__1 / 16777216);
return (((p__1 & 0xFFFFFF) + (Math.floor((p__2 * l__3)) * 16777216)));
}
public static function calculateLitColour(p__1:Number, p__2:Number):Number{
var l__6:Number;
var l__7:Number;
var l__8:Number;
var l__9:Number;
var l__10:Number;
var l__11:Number;
var l__12:Number;
var l__13:Number;
var l__3:Number = ((p__1 >> 16) & 0xFF);
var l__4:Number = ((p__1 >> 8) & 0xFF);
var l__5:Number = (p__1 & 0xFF);
l__3 = (l__3 * 0.00390625);
l__4 = (l__4 * 0.00390625);
l__5 = (l__5 * 0.00390625);
var l__14:Number = 0;
var l__15:Array = [l__3, l__4, l__5];
l__15.sort();
l__6 = l__15[0];
l__7 = l__15[1];
l__8 = l__15[2];
var l__16:Number = (l__8 - l__6);
l__10 = ((l__6 + l__8) * 0.5);
if (l__10 == 0){
l__11 = 1;
} else {
l__9 = (l__16 * 0.5);
if (l__10 < 0.5){
l__11 = (l__9 / l__10);
} else {
l__11 = (l__9 / (1 - l__10));
};
if (l__16 != 0){
while (true) {
if (l__3 == l__8){
if (l__5 == l__6){
l__14 = 0;
} else {
l__14 = 5;
};
break;
};
if (l__4 == l__8){
if (l__5 == l__6){
l__14 = 1;
} else {
l__14 = 2;
};
break;
};
if (l__3 == l__6){
l__14 = 3;
} else {
l__14 = 4;
};
break;
};
if ((l__14 % 2) == 0){
l__13 = (l__7 - l__6);
} else {
l__13 = (l__8 - l__7);
};
l__13 = (l__13 / l__16);
l__12 = (60 * (l__14 + l__13));
};
};
if (p__2 < 0.5){
l__9 = (l__11 * p__2);
} else {
l__9 = (l__11 * (1 - p__2));
};
l__6 = (p__2 - l__9);
l__8 = (p__2 + l__9);
l__14 = Math.floor((l__12 / 60));
l__13 = (((l__12 - (l__14 * 60)) * l__9) / 30);
l__14 = (l__14 % 6);
var l__17:Number = (l__6 + l__13);
var l__18:Number = (l__8 - l__13);
switch (l__14){
case 0:
l__3 = l__8;
l__4 = l__17;
l__5 = l__6;
break;
case 1:
l__3 = l__18;
l__4 = l__8;
l__5 = l__6;
break;
case 2:
l__3 = l__6;
l__4 = l__8;
l__5 = l__17;
break;
case 3:
l__3 = l__6;
l__4 = l__18;
l__5 = l__8;
break;
case 4:
l__3 = l__17;
l__4 = l__6;
l__5 = l__8;
break;
case 5:
l__3 = l__8;
l__4 = l__6;
l__5 = l__18;
break;
};
return (((((l__3 * 0x0100) << 16) | ((l__4 * 0x0100) << 8)) | (l__5 * 0x0100)));
}
public static function hex2rgb(p__1:Number):Object{
var l__2:Number;
var l__3:Number;
var l__4:Number;
l__2 = ((0xFF0000 & p__1) >> 16);
l__3 = ((0xFF00 & p__1) >> 8);
l__4 = (0xFF & p__1);
return ({r:l__2, g:l__3, b:l__4});
}
public static function rgb2hex(p__1:Number, p__2:Number, p__3:Number):Number{
return ((((p__1 << 16) | (p__2 << 8)) | p__3));
}
public static function hex2rgbn(p__1:Number):Object{
var l__2:Number;
var l__3:Number;
var l__4:Number;
l__2 = ((0xFF0000 & p__1) >> 16);
l__3 = ((0xFF00 & p__1) >> 8);
l__4 = (0xFF & p__1);
return ({r:(l__2 / 0xFF), g:(l__3 / 0xFF), b:(l__4 / 0xFF)});
}
}
}//package sandy.math
Section 122
//FastMath (sandy.math.FastMath)
package sandy.math {
import flash.geom.*;
public class FastMath {
public static const PRECISION_DIV_2PI:Number = 20860.7567009409;
public static const HALF_PI:Number = 1.5707963267949;
public static const TWO_PI:Number = 6.28318530717959;
public static const PRECISION_S:int = 131071;
public static const initialized:Boolean = initialize();
public static const PRECISION:int = 131072;
private static var RAD_SLICE:Number = 4.79368996214263E-5;
private static var tanTable:Array = new Array(PRECISION);
private static var sinTable:Array = new Array(PRECISION);
public function FastMath(){
super();
}
public static function tan(p__1:Number):Number{
return (tanTable[int(radToIndex(p__1))]);
}
public static function sin(p__1:Number):Number{
return (sinTable[int(radToIndex(p__1))]);
}
private static function radToIndex(p__1:Number):int{
return (int(((p__1 * PRECISION_DIV_2PI) & PRECISION_S)));
}
public static function cos(p__1:Number):Number{
return (sinTable[int(radToIndex((HALF_PI - p__1)))]);
}
private static function initialize():Boolean{
var l__2:int;
var l__1:Number = 0;
while (l__2 < PRECISION) {
l__1 = Number((l__2 * RAD_SLICE));
sinTable[l__2] = Number(Math.sin(l__1));
tanTable[l__2] = Number(Math.tan(l__1));
l__2++;
};
return (true);
}
}
}//package sandy.math
Section 123
//IntersectionMath (sandy.math.IntersectionMath)
package sandy.math {
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.materials.attributes.*;
import flash.geom.*;
import sandy.util.*;
public final class IntersectionMath {
public function IntersectionMath(){
super();
}
public static function isPointInTriangle2D(p__1:Point, p__2:Point, p__3:Point, p__4:Point):Boolean{
var l__5:Number = (1 / (((p__2.y - p__4.y) * (p__3.x - p__4.x)) + ((p__3.y - p__4.y) * (p__4.x - p__2.x))));
var l__6:Number = (l__5 * (((p__1.y - p__4.y) * (p__3.x - p__4.x)) + ((p__3.y - p__4.y) * (p__4.x - p__1.x))));
var l__7:Number = (l__5 * (((p__1.y - p__2.y) * (p__4.x - p__2.x)) + ((p__4.y - p__2.y) * (p__2.x - p__1.x))));
var l__8:Number = (l__5 * (((p__1.y - p__3.y) * (p__2.x - p__3.x)) + ((p__2.y - p__3.y) * (p__3.x - p__1.x))));
return ((((((l__6 > 0)) && ((l__7 > 0)))) && ((l__8 > 0))));
}
public static function intersectionLine3D(p__1:Point3D, p__2:Point3D, p__3:Point3D, p__4:Point3D):Array{
var l__5:Array = [new Point3D((0.5 * (p__1.x + p__2.x)), (0.5 * (p__1.y + p__2.y)), (0.5 * (p__1.z + p__2.z))), new Point3D((0.5 * (p__3.x + p__4.x)), (0.5 * (p__3.y + p__4.y)), (0.5 * (p__3.z + p__4.z)))];
var l__6:Number = (p__1.x - p__3.x);
var l__7:Number = (p__1.y - p__3.y);
var l__8:Number = (p__1.z - p__3.z);
var l__9:Number = (p__4.x - p__3.x);
var l__10:Number = (p__4.y - p__3.y);
var l__11:Number = (p__4.z - p__3.z);
if (((((NumberUtil.isZero(l__9)) && (NumberUtil.isZero(l__10)))) && (NumberUtil.isZero(l__11)))){
return (l__5);
};
var l__12:Number = (p__2.x - p__1.x);
var l__13:Number = (p__2.y - p__1.y);
var l__14:Number = (p__2.z - p__1.z);
if (((((NumberUtil.isZero(l__12)) && (NumberUtil.isZero(l__13)))) && (NumberUtil.isZero(l__14)))){
return (l__5);
};
var l__15:Number = (((l__6 * l__9) + (l__7 * l__10)) + (l__8 * l__11));
var l__16:Number = (((l__9 * l__12) + (l__10 * l__13)) + (l__11 * l__14));
var l__17:Number = (((l__6 * l__12) + (l__7 * l__13)) + (l__8 * l__14));
var l__18:Number = (((l__9 * l__9) + (l__10 * l__10)) + (l__11 * l__11));
var l__19:Number = (((l__12 * l__12) + (l__13 * l__13)) + (l__14 * l__14));
var l__20:Number = ((l__19 * l__18) - (l__16 * l__16));
if (NumberUtil.isZero(l__20)){
return (l__5);
};
var l__21:Number = (((l__15 * l__16) - (l__17 * l__18)) / l__20);
var l__22:Number = ((l__15 + (l__16 * l__21)) / l__18);
return ([new Point3D((p__1.x + (l__21 * l__12)), (p__1.y + (l__21 * l__13)), (p__1.z + (l__21 * l__14))), new Point3D((p__3.x + (l__22 * l__9)), (p__3.y + (l__22 * l__10)), (p__3.z + (l__22 * l__11)))]);
}
public static function intersectionBSphere(p__1:BSphere, p__2:BSphere):Boolean{
var l__3:Point3D = p__1.position.clone();
l__3.sub(p__2.position);
var l__4:Number = (p__1.radius + p__2.radius);
var l__5:Number = l__3.getNorm();
return ((l__5 <= l__4));
}
public static function intersectionLine2D(p__1:Point, p__2:Point, p__3:Point, p__4:Point):Point{
var l__5:Number = p__1.x;
var l__6:Number = p__1.y;
var l__7:Number = p__2.x;
var l__8:Number = p__2.y;
var l__9:Number = p__3.x;
var l__10:Number = p__3.y;
var l__11:Number = p__4.x;
var l__12:Number = p__4.y;
var l__13:Number = (((l__12 - l__10) * (l__7 - l__5)) - ((l__11 - l__9) * (l__8 - l__6)));
if (l__13 == 0){
return (null);
};
var l__14:Number = (((l__11 - l__9) * (l__6 - l__10)) - ((l__12 - l__10) * (l__5 - l__9)));
l__14 = (l__14 / l__13);
return (new Point((l__5 + (l__14 * (l__7 - l__5))), (l__6 + (l__14 * (l__8 - l__6)))));
}
}
}//package sandy.math
Section 124
//PlaneMath (sandy.math.PlaneMath)
package sandy.math {
import sandy.core.data.*;
import flash.display.*;
public class PlaneMath {
public static const NEGATIVE:int = -1;
public static const POSITIVE:int = 1;
public static const ON_PLANE:int = 0;
public function PlaneMath(){
super();
}
public static function distanceToPoint(p__1:Plane, p__2:Point3D):Number{
return (((((p__1.a * p__2.x) + (p__1.b * p__2.y)) + (p__1.c * p__2.z)) + p__1.d));
}
public static function classifyPoint(p__1:Plane, p__2:Point3D):Number{
var l__3:Number;
l__3 = PlaneMath.distanceToPoint(p__1, p__2);
if (l__3 < 0){
return (PlaneMath.NEGATIVE);
};
if (l__3 > 0){
return (PlaneMath.POSITIVE);
};
return (PlaneMath.ON_PLANE);
}
public static function computePlaneFromPoints(p__1:Point3D, p__2:Point3D, p__3:Point3D):Plane{
var l__4:Point3D = Point3DMath.cross(Point3DMath.sub(p__1, p__2), Point3DMath.sub(p__1, p__3));
Point3DMath.normalize(l__4);
var l__5:Number = Point3DMath.dot(p__1, l__4);
return (new Plane(l__4.x, l__4.y, l__4.z, l__5));
}
public static function createFromNormalAndPoint(p__1:Point3D, p__2:Number):Plane{
var l__3:Plane = new Plane();
Point3DMath.normalize(p__1);
l__3.a = p__1.x;
l__3.b = p__1.y;
l__3.c = p__1.z;
l__3.d = p__2;
PlaneMath.normalizePlane(l__3);
return (l__3);
}
public static function normalizePlane(p__1:Plane):void{
var l__2:Number;
l__2 = Math.sqrt((((p__1.a * p__1.a) + (p__1.b * p__1.b)) + (p__1.c * p__1.c)));
p__1.a = (p__1.a / l__2);
p__1.b = (p__1.b / l__2);
p__1.c = (p__1.c / l__2);
p__1.d = (p__1.d / l__2);
}
}
}//package sandy.math
Section 125
//Point3DMath (sandy.math.Point3DMath)
package sandy.math {
import sandy.core.data.*;
import sandy.core.scenegraph.*;
public class Point3DMath {
public function Point3DMath(){
super();
}
public static function addPoint3D(p__1:Point3D, p__2:Point3D):Point3D{
return (new Point3D((p__1.x + p__2.x), (p__1.y + p__2.y), (p__1.z + p__2.z)));
}
public static function dot(p__1:Point3D, p__2:Point3D):Number{
return ((((p__1.x * p__2.x) + (p__1.y * p__2.y)) + (p__2.z * p__1.z)));
}
public static function negate(p__1:Point3D):Point3D{
return (new Point3D(-(p__1.x), -(p__1.y), -(p__1.z)));
}
public static function clone(p__1:Point3D):Point3D{
return (new Point3D(p__1.x, p__1.y, p__1.z));
}
public static function sub(p__1:Point3D, p__2:Point3D):Point3D{
return (new Point3D((p__1.x - p__2.x), (p__1.y - p__2.y), (p__1.z - p__2.z)));
}
public static function scale(p__1:Point3D, p__2:Number):Point3D{
return (new Point3D((p__1.x * p__2), (p__1.y * p__2), (p__1.z * p__2)));
}
public static function normalize(p__1:Point3D):Boolean{
var l__2:Number = Point3DMath.getNorm(p__1);
if ((((l__2 == 0)) || ((l__2 == 1)))){
return (false);
};
p__1.x = (p__1.x / l__2);
p__1.y = (p__1.y / l__2);
p__1.z = (p__1.z / l__2);
return (true);
}
public static function cross(p__1:Point3D, p__2:Point3D):Point3D{
return (new Point3D(((p__1.y * p__2.z) - (p__1.z * p__2.y)), ((p__1.z * p__2.x) - (p__1.x * p__2.z)), ((p__1.x * p__2.y) - (p__1.y * p__2.x))));
}
public static function sphrand(p__1:Number, p__2:Number):Point3D{
var l__3:Point3D = new Point3D((Math.random() - 0.5), (Math.random() - 0.5), (Math.random() - 0.5));
l__3.normalize();
var l__4:Number = Math.random();
l__4 = (((p__2 - p__1) * l__4) + p__1);
l__3.scale(l__4);
return (l__3);
}
public static function getNorm(p__1:Point3D):Number{
return (Math.sqrt((((p__1.x * p__1.x) + (p__1.y * p__1.y)) + (p__1.z * p__1.z))));
}
public static function pow(p__1:Point3D, p__2:Number):Point3D{
return (new Point3D(Math.pow(p__1.x, p__2), Math.pow(p__1.y, p__2), Math.pow(p__1.z, p__2)));
}
public static function getAngle(p__1:Point3D, p__2:Point3D):Number{
var l__3:Number = (Point3DMath.dot(p__1, p__2) / (Point3DMath.getNorm(p__1) * Point3DMath.getNorm(p__2)));
var l__4:Number = (1 - (l__3 * l__3));
if (l__4 < 0){
trace((" wrong " + l__3));
l__4 = 0;
};
return (Math.atan2(Math.sqrt(l__4), l__3));
}
}
}//package sandy.math
Section 126
//Plane3D (sandy.primitive.Plane3D)
package sandy.primitive {
import sandy.core.scenegraph.*;
public class Plane3D extends Shape3D implements Primitive3D {
private var _mode:String;
private var _qV:uint;
private var _h:Number;
private var _lg:Number;
private var m_sType:String;
private var _qH:uint;
public static const ZX_ALIGNED:String = "zx_aligned";
public static const YZ_ALIGNED:String = "yz_aligned";
public static const XY_ALIGNED:String = "xy_aligned";
public function Plane3D(p__1:String=null, p__2:Number=100, p__3:Number=100, p__4:uint=1, p__5:uint=1, p__6:String="xy_aligned", p__7:String=null){
super(p__1);
setConvexFlag(true);
_h = p__2;
_lg = p__3;
_qV = p__5;
_qH = p__4;
_mode = (((!((p__7 == PrimitiveMode.TRI))) && (!((p__7 == PrimitiveMode.QUAD))))) ? PrimitiveMode.TRI : p__7;
m_sType = p__6;
geometry = generate();
}
override public function toString():String{
return ("sandy.primitive.Plane3D");
}
public function generate(... _args):Geometry3D{
var l__9:Number;
var l__10:Number;
var l__11:Number;
var l__12:Number;
var l__3:uint;
var l__4:uint;
var l__2:Geometry3D = new Geometry3D();
var l__5:Number = (_h / 2);
var l__6:Number = (_lg / 2);
var l__7:Number = (_h / _qV);
var l__8:Number = (_lg / _qH);
l__3 = 0;
l__9 = -(l__5);
l__11 = 0;
while (l__3 <= _qV) {
l__4 = 0;
l__10 = -(l__6);
l__12 = 0;
while (l__4 <= _qH) {
if (m_sType == Plane3D.ZX_ALIGNED){
l__2.setVertex(l__2.getNextVertexID(), l__10, 0, l__9);
} else {
if (m_sType == Plane3D.YZ_ALIGNED){
l__2.setVertex(l__2.getNextVertexID(), 0, l__10, l__9);
} else {
l__2.setVertex(l__2.getNextVertexID(), l__10, l__9, 0);
};
};
l__2.setUVCoords(l__2.getNextUVCoordID(), (l__12 / _lg), (1 - (l__11 / _h)));
l__10 = (l__10 + l__8);
l__12 = (l__12 + l__8);
l__4++;
};
l__9 = (l__9 + l__7);
l__11 = (l__11 + l__7);
l__3++;
};
l__3 = 0;
while (l__3 < _qV) {
l__4 = 0;
while (l__4 < _qH) {
if (_mode == PrimitiveMode.TRI){
l__2.setFaceVertexIds(l__2.getNextFaceID(), ((l__3 * (_qH + 1)) + l__4), (((l__3 * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
l__2.setFaceUVCoordsIds(l__2.getNextFaceUVCoordID(), ((l__3 * (_qH + 1)) + l__4), (((l__3 * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
l__2.setFaceVertexIds(l__2.getNextFaceID(), (((l__3 * (_qH + 1)) + l__4) + 1), ((((l__3 + 1) * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
l__2.setFaceUVCoordsIds(l__2.getNextFaceUVCoordID(), (((l__3 * (_qH + 1)) + l__4) + 1), ((((l__3 + 1) * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
} else {
if (_mode == PrimitiveMode.QUAD){
l__2.setFaceVertexIds(l__2.getNextFaceID(), ((l__3 * (_qH + 1)) + l__4), (((l__3 * (_qH + 1)) + l__4) + 1), ((((l__3 + 1) * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
l__2.setFaceUVCoordsIds(l__2.getNextFaceUVCoordID(), ((l__3 * (_qH + 1)) + l__4), (((l__3 * (_qH + 1)) + l__4) + 1), ((((l__3 + 1) * (_qH + 1)) + l__4) + 1), (((l__3 + 1) * (_qH + 1)) + l__4));
};
};
l__4++;
};
l__3++;
};
return (l__2);
}
}
}//package sandy.primitive
Section 127
//Primitive3D (sandy.primitive.Primitive3D)
package sandy.primitive {
import sandy.core.scenegraph.*;
public interface Primitive3D {
function generate(... _args):Geometry3D;
}
}//package sandy.primitive
Section 128
//PrimitiveMode (sandy.primitive.PrimitiveMode)
package sandy.primitive {
public final class PrimitiveMode {
public static const TRI:String = "tri";
public static const QUAD:String = "quad";
public function PrimitiveMode(){
super();
}
}
}//package sandy.primitive
Section 129
//NumberUtil (sandy.util.NumberUtil)
package sandy.util {
import sandy.core.data.*;
public class NumberUtil {
private static var __TO_RADIAN:Number = 0.0174532925199433;
private static var _fABS:Function = Math.abs;
private static var __TWO_PI:Number = 6.28318530717959;
private static var __PI:Number = 3.14159265358979;
private static var __TO_DREGREE:Number = 57.2957795130823;
private static var __HALF_PI:Number = 1.5707963267949;
public static var TOL:Number = 1E-5;
public function NumberUtil(){
super();
}
public static function areEqual(p__1:Number, p__2:Number):Boolean{
return ((_fABS((p__1 - p__2)) < TOL));
}
public static function get TO_DEGREE():Number{
return (__TO_DREGREE);
}
public static function get HALF_PI():Number{
return (__HALF_PI);
}
public static function toDegree(p__1:Number):Number{
return ((p__1 * TO_DEGREE));
}
public static function get TWO_PI():Number{
return (__TWO_PI);
}
public static function roundTo(p__1:Number, p__2:Number=0):Number{
if (p__2 == 0){
p__2 = 1;
};
return ((Math.round((p__1 / p__2)) * p__2));
}
public static function isZero(p__1:Number):Boolean{
return ((_fABS(p__1) < TOL));
}
public static function get TO_RADIAN():Number{
return (__TO_RADIAN);
}
public static function constrain(p__1:Number, p__2:Number, p__3:Number):Number{
return (Math.max(Math.min(p__1, p__3), p__2));
}
public static function get PI():Number{
return (__PI);
}
public static function toRadian(p__1:Number):Number{
return ((p__1 * TO_RADIAN));
}
}
}//package sandy.util
Section 130
//CullingState (sandy.view.CullingState)
package sandy.view {
import sandy.core.scenegraph.*;
public class CullingState {
private var m_sState:String;
public static const OUTSIDE:CullingState = new CullingState("outside");
;
public static const INSIDE:CullingState = new CullingState("inside");
;
public static const INTERSECT:CullingState = new CullingState("intersect");
;
public function CullingState(p__1:String){
super();
m_sState = p__1;
}
public function toString():String{
return (("[sandy.view.CullingState] :: state : " + m_sState));
}
}
}//package sandy.view
Section 131
//Frustum (sandy.view.Frustum)
package sandy.view {
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.math.*;
import sandy.util.*;
public class Frustum {
private const aDist:Array;
private const m_aBoxEdges:Array;
public var aPoints:Array;
public var aNormals:Array;
public var aConstants:Array;
private var pool:Pool;
public var aPlanes:Array;
public static const INSIDE:CullingState = CullingState.INSIDE;
public static const OUTSIDE:CullingState = CullingState.OUTSIDE;
public static const INTERSECT:CullingState = CullingState.INTERSECT;
public static const LEFT:uint = 3;
public static const NEAR:uint = 1;
public static const BOTTOM:uint = 5;
public static const TOP:uint = 4;
public static const FAR:uint = 0;
public static const EPSILON:Number = 0.005;
public static const RIGHT:uint = 2;
public function Frustum(){
var l__1:int;
m_aBoxEdges = new Array(8);
pool = Pool.getInstance();
aDist = [];
super();
aPlanes = new Array(6);
aPoints = new Array(8);
aNormals = new Array(6);
aConstants = new Array(6);
while (l__1 < 8) {
m_aBoxEdges[int(l__1)] = new Point3D();
l__1++;
};
}
public function polygonInFrustum(p__1:Polygon):CullingState{
var l__4:Number;
var l__6:Plane;
var l__7:Vertex;
var l__2:int;
var l__3:int;
var l__5:Array = p__1.vertices;
for each (l__6 in aPlanes) {
for each (l__7 in l__5) {
l__4 = ((((l__6.a * l__7.wx) + (l__6.b * l__7.wy)) + (l__6.c * l__7.wz)) + l__6.d);
if (l__4 < 0){
if (l__2 > 0){
return (Frustum.INTERSECT);
};
l__3++;
} else {
if (l__3 > 0){
return (Frustum.INTERSECT);
};
l__2++;
};
};
};
if (l__2 == 0){
return (Frustum.OUTSIDE);
};
return (Frustum.INSIDE);
}
public function pointInFrustum(p__1:Point3D):CullingState{
var l__2:Plane;
for each (l__2 in aPlanes) {
if (PlaneMath.classifyPoint(l__2, p__1) == PlaneMath.NEGATIVE){
return (Frustum.OUTSIDE);
};
};
return (Frustum.INSIDE);
}
public function clipPolygon(p__1:Plane, p__2:Array, p__3:Array):Boolean{
var l__6:Vertex;
var l__7:Number;
var l__9:Number;
var l__22:Number;
var l__17:UVCoord;
var l__18:UVCoord;
var l__20:Vertex;
var l__21:Vertex;
var l__24:Boolean;
var l__4:* = true;
var l__5:* = true;
var l__8:Number = p__2.length;
var l__10:Number = p__1.a;
var l__11:Number = p__1.b;
var l__12:Number = p__1.c;
var l__13:Number = p__1.d;
aDist.length = 0;
for each (l__6 in p__2) {
l__9 = ((((l__10 * l__6.wx) + (l__11 * l__6.wy)) + (l__12 * l__6.wz)) + l__13);
if (l__9 < 0){
l__4 = false;
};
if (l__9 >= 0){
l__5 = false;
};
aDist[int(aDist.length)] = l__9;
};
if (l__4){
return (false);
};
if (l__5){
p__2.splice(0);
p__3.splice(0);
return (true);
};
var l__14:Array = p__2.splice(0);
var l__15:Array = p__3.splice(0);
var l__16:UVCoord = l__15[0];
var l__19:Vertex = l__14[0];
var l__23:Number = aDist[0];
var l__25:* = (l__23 >= 0);
l__7 = 1;
while (l__7 <= l__8) {
l__20 = l__14[int((l__7 % l__8))];
l__17 = l__15[int((l__7 % l__8))];
l__22 = aDist[int((l__7 % l__8))];
if (((l__25) && ((l__22 >= 0)))){
p__2[p__2.length] = l__20;
p__3[p__3.length] = l__17;
} else {
if (((!(l__25)) && ((l__22 >= 0)))){
l__25 = true;
l__24 = l__25;
l__21 = pool.nextVertex;
l__13 = (l__23 / (l__23 - l__22));
l__21.wx = (l__19.wx + ((l__20.wx - l__19.wx) * l__13));
l__21.wy = (l__19.wy + ((l__20.wy - l__19.wy) * l__13));
l__21.wz = (l__19.wz + ((l__20.wz - l__19.wz) * l__13));
p__2[int(p__2.length)] = l__21;
p__2[int(p__2.length)] = l__20;
l__18 = pool.nextUV;
l__18.u = (l__16.u + ((l__17.u - l__16.u) * l__13));
l__18.v = (l__16.v + ((l__17.v - l__16.v) * l__13));
p__3[int(p__3.length)] = l__18;
p__3[int(p__3.length)] = l__17;
} else {
if (((l__25) && ((l__22 < 0)))){
l__24 = true;
l__25 = false;
l__21 = pool.nextVertex;
l__13 = (l__23 / (l__23 - l__22));
l__21.wx = (l__19.wx + ((l__20.wx - l__19.wx) * l__13));
l__21.wy = (l__19.wy + ((l__20.wy - l__19.wy) * l__13));
l__21.wz = (l__19.wz + ((l__20.wz - l__19.wz) * l__13));
l__18 = pool.nextUV;
l__18.u = (l__16.u + ((l__17.u - l__16.u) * l__13));
l__18.v = (l__16.v + ((l__17.v - l__16.v) * l__13));
p__3[int(p__3.length)] = l__18;
p__2[int(p__2.length)] = l__21;
} else {
l__24 = true;
};
};
};
l__19 = l__20;
l__23 = l__22;
l__16 = l__17;
l__7++;
};
return (true);
}
public function boxInFrustum(p__1:BBox):CullingState{
var l__3:Number;
var l__4:Number;
var l__5:Number;
var l__6:Plane;
var l__7:Point3D;
var l__2:CullingState = Frustum.INSIDE;
p__1.getEdges(m_aBoxEdges);
for each (l__6 in aPlanes) {
l__3 = 0;
l__4 = 0;
for each (l__7 in m_aBoxEdges) {
l__5 = ((((l__6.a * l__7.x) + (l__6.b * l__7.y)) + (l__6.c * l__7.z)) + l__6.d);
if (l__5 < 0){
l__3++;
} else {
l__4++;
};
if ((((l__4 > 0)) && ((l__3 > 0)))){
break;
};
};
if (l__4 == 0){
return (Frustum.OUTSIDE);
};
if (l__3 > 0){
return (Frustum.INTERSECT);
};
};
return (l__2);
}
public function sphereInFrustum(p__1:BSphere):CullingState{
var l__8:Plane;
var l__3:int;
var l__2:Number = 0;
var l__4:Number = p__1.position.x;
var l__5:Number = p__1.position.y;
var l__6:Number = p__1.position.z;
var l__7:Number = p__1.radius;
for each (l__8 in aPlanes) {
l__2 = ((((l__8.a * l__4) + (l__8.b * l__5)) + (l__8.c * l__6)) + l__8.d);
if (l__2 <= -(l__7)){
return (Frustum.OUTSIDE);
};
if (l__2 > l__7){
l__3++;
};
};
return (((l__3)==6) ? Frustum.INSIDE : Frustum.INTERSECT);
}
public function clipFrustum(p__1:Array, p__2:Array):Boolean{
var l__3:Boolean;
var l__4:Boolean;
if (p__1.length <= 2){
return (true);
};
l__3 = clipPolygon(aPlanes[NEAR], p__1, p__2);
if (p__1.length <= 2){
return (true);
};
l__4 = clipPolygon(aPlanes[LEFT], p__1, p__2);
if (p__1.length <= 2){
return (true);
};
l__3 = ((l__3) || (l__4));
l__4 = clipPolygon(aPlanes[RIGHT], p__1, p__2);
if (p__1.length <= 2){
return (true);
};
l__3 = ((l__3) || (l__4));
l__4 = clipPolygon(aPlanes[BOTTOM], p__1, p__2);
if (p__1.length <= 2){
return (true);
};
l__3 = ((l__3) || (l__4));
l__4 = clipPolygon(aPlanes[TOP], p__1, p__2);
if (p__1.length <= 2){
return (true);
};
l__3 = ((l__3) || (l__4));
return (l__3);
}
public function clipFrontPlane(p__1:Array, p__2:Array):Boolean{
if (p__1.length <= 2){
return (true);
};
return (clipPolygon(aPlanes[NEAR], p__1, p__2));
}
public function computePlanes(p__1:Number, p__2:Number, p__3:Number, p__4:Number):void{
var l__12:int;
var l__5:Number = NumberUtil.toRadian(p__4);
var l__6:Number = Math.tan((l__5 * 0.5));
var l__7:Number = (-(l__6) * p__2);
var l__8:Number = (l__7 * p__1);
var l__9:Number = ((l__7 * p__3) / p__2);
var l__10:Number = ((l__8 * p__3) / p__2);
p__2 = -(p__2);
p__3 = -(p__3);
var l__11:Array = aPoints;
l__11[0] = new Point3D(l__8, l__7, p__2);
l__11[1] = new Point3D(l__8, -(l__7), p__2);
l__11[2] = new Point3D(-(l__8), -(l__7), p__2);
l__11[3] = new Point3D(-(l__8), l__7, p__2);
l__11[4] = new Point3D(l__10, l__9, p__3);
l__11[5] = new Point3D(l__10, -(l__9), p__3);
l__11[6] = new Point3D(-(l__10), -(l__9), p__3);
l__11[7] = new Point3D(-(l__10), l__9, p__3);
aPlanes[LEFT] = PlaneMath.computePlaneFromPoints(l__11[2], l__11[3], l__11[6]);
aPlanes[RIGHT] = PlaneMath.computePlaneFromPoints(l__11[0], l__11[1], l__11[4]);
aPlanes[TOP] = PlaneMath.computePlaneFromPoints(l__11[0], l__11[7], l__11[3]);
aPlanes[BOTTOM] = PlaneMath.computePlaneFromPoints(l__11[1], l__11[2], l__11[5]);
aPlanes[NEAR] = PlaneMath.computePlaneFromPoints(l__11[0], l__11[2], l__11[1]);
aPlanes[FAR] = PlaneMath.computePlaneFromPoints(l__11[4], l__11[5], l__11[6]);
while (l__12 < 6) {
PlaneMath.normalizePlane(aPlanes[int(l__12)]);
l__12++;
};
}
public function clipLineFrontPlane(p__1:Array):Boolean{
var l__4:Vertex;
var l__5:Vertex;
var l__8:Number;
var l__9:Vertex;
var l__2:Plane = aPlanes[NEAR];
var l__3:Array = p__1.splice(0);
l__4 = l__3[0];
l__5 = l__3[1];
var l__6:Number = ((((l__2.a * l__4.wx) + (l__2.b * l__4.wy)) + (l__2.c * l__4.wz)) + l__2.d);
var l__7:Number = ((((l__2.a * l__5.wx) + (l__2.b * l__5.wy)) + (l__2.c * l__5.wz)) + l__2.d);
l__8 = 0;
l__9 = pool.nextVertex;
if ((((l__6 < 0)) && ((l__7 >= 0)))){
l__8 = (l__6 / (l__6 - l__7));
l__9.wx = (l__4.wx + ((l__5.wx - l__4.wx) * l__8));
l__9.wy = (l__4.wy + ((l__5.wy - l__4.wy) * l__8));
l__9.wz = (l__4.wz + ((l__5.wz - l__4.wz) * l__8));
p__1[p__1.length] = l__9;
p__1[p__1.length] = l__5;
return (true);
};
if ((((l__7 < 0)) && ((l__6 >= 0)))){
l__8 = (l__6 / (l__6 - l__7));
l__9.wx = (l__4.wx + ((l__5.wx - l__4.wx) * l__8));
l__9.wy = (l__4.wy + ((l__5.wy - l__4.wy) * l__8));
l__9.wz = (l__4.wz + ((l__5.wz - l__4.wz) * l__8));
p__1[p__1.length] = l__4;
p__1[p__1.length] = l__9;
return (true);
};
if ((((l__7 < 0)) && ((l__6 < 0)))){
p__1 = null;
return (true);
};
if ((((l__7 > 0)) && ((l__6 > 0)))){
p__1[p__1.length] = l__4;
p__1[p__1.length] = l__5;
return (false);
};
return (true);
}
}
}//package sandy.view
Section 132
//ViewPort (sandy.view.ViewPort)
package sandy.view {
import king.sound.*;
import flash.geom.*;
public final class ViewPort {
public const offset:Point;
private var m_nH2:int;// = 0
private var m_nRatio:Number;// = 0
private var m_nH:int;// = 0
private var m_nW2:int;// = 0
public var hasChanged:Boolean;// = false
private var m_nW:int;// = 0
public function ViewPort(p__1:Number, p__2:Number){
offset = new Point();
super();
width = p__1;
height = p__2;
}
public function get ratio():Number{
return (m_nRatio);
}
public function get width2():int{
return (m_nW2);
}
public function get height():int{
return (m_nH);
}
public function update():void{
m_nW2 = (m_nW >> 1);
m_nH2 = (m_nH >> 1);
m_nRatio = (m_nH) ? (m_nW / m_nH) : 0;
hasChanged = true;
}
public function get height2():int{
return (m_nH2);
}
public function get width():int{
return (m_nW);
}
public function set width(p__1:int):void{
m_nW = p__1;
update();
}
public function set height(p__1:int):void{
m_nH = p__1;
update();
}
}
}//package sandy.view
Section 133
//add_card_1 (sound.add_card_1)
package sound {
import flash.media.*;
public dynamic class add_card_1 extends Sound {
}
}//package sound
Section 134
//add_card_2 (sound.add_card_2)
package sound {
import flash.media.*;
public dynamic class add_card_2 extends Sound {
}
}//package sound
Section 135
//add_card_3 (sound.add_card_3)
package sound {
import flash.media.*;
public dynamic class add_card_3 extends Sound {
}
}//package sound
Section 136
//bells (sound.bells)
package sound {
import flash.media.*;
public dynamic class bells extends Sound {
}
}//package sound
Section 137
//button (sound.button)
package sound {
import flash.media.*;
public dynamic class button extends Sound {
}
}//package sound
Section 138
//deal (sound.deal)
package sound {
import flash.media.*;
public dynamic class deal extends Sound {
}
}//package sound
Section 139
//deal1 (sound.deal1)
package sound {
import flash.media.*;
public dynamic class deal1 extends Sound {
}
}//package sound
Section 140
//music (sound.music)
package sound {
import flash.media.*;
public dynamic class music extends Sound {
}
}//package sound
Section 141
//outro (sound.outro)
package sound {
import flash.media.*;
public dynamic class outro extends Sound {
}
}//package sound
Section 142
//outro2 (sound.outro2)
package sound {
import flash.media.*;
public dynamic class outro2 extends Sound {
}
}//package sound
Section 143
//reverse (sound.reverse)
package sound {
import flash.media.*;
public dynamic class reverse extends Sound {
}
}//package sound
Section 144
//shuffle (sound.shuffle)
package sound {
import flash.media.*;
public dynamic class shuffle extends Sound {
}
}//package sound
Section 145
//stabb_negative (sound.stabb_negative)
package sound {
import flash.media.*;
public dynamic class stabb_negative extends Sound {
}
}//package sound
Section 146
//stabb_positive (sound.stabb_positive)
package sound {
import flash.media.*;
public dynamic class stabb_positive extends Sound {
}
}//package sound
Section 147
//time_warning (sound.time_warning)
package sound {
import flash.media.*;
public dynamic class time_warning extends Sound {
}
}//package sound
Section 148
//uno (sound.uno)
package sound {
import flash.media.*;
public dynamic class uno extends Sound {
}
}//package sound
Section 149
//uno_loop (sound.uno_loop)
package sound {
import flash.media.*;
public dynamic class uno_loop extends Sound {
}
}//package sound
Section 150
//uno_miss (sound.uno_miss)
package sound {
import flash.media.*;
public dynamic class uno_miss extends Sound {
}
}//package sound
Section 151
//wrong (sound.wrong)
package sound {
import flash.media.*;
public dynamic class wrong extends Sound {
}
}//package sound
Section 152
//bot_blue_73 (uno_fla.bot_blue_73)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_blue_73 extends MovieClip {
public function bot_blue_73(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 153
//bot_brown_74 (uno_fla.bot_brown_74)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_brown_74 extends MovieClip {
public function bot_brown_74(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 154
//bot_green_81 (uno_fla.bot_green_81)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_green_81 extends MovieClip {
public function bot_green_81(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 155
//bot_left_72 (uno_fla.bot_left_72)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_left_72 extends MovieClip {
public var head:bot_blue_73;
public function bot_left_72(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 156
//bot_plain_37 (uno_fla.bot_plain_37)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_plain_37 extends MovieClip {
public function bot_plain_37(){
addFrameScript(0, frame1, 10, frame11);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
function frame11(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package uno_fla
Section 157
//bot_purple_75 (uno_fla.bot_purple_75)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_purple_75 extends MovieClip {
public function bot_purple_75(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 158
//bot_red_79 (uno_fla.bot_red_79)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_red_79 extends MovieClip {
public function bot_red_79(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 159
//bot_right_78 (uno_fla.bot_right_78)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_right_78 extends MovieClip {
public var head:bot_red_79;
public function bot_right_78(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 160
//bot_yellow_80 (uno_fla.bot_yellow_80)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bot_yellow_80 extends MovieClip {
public function bot_yellow_80(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 161
//brickor_h_1_100 (uno_fla.brickor_h_1_100)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_1_100 extends MovieClip {
public function brickor_h_1_100(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 162
//brickor_h_2_101 (uno_fla.brickor_h_2_101)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_2_101 extends MovieClip {
public function brickor_h_2_101(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 163
//brickor_h_3_102 (uno_fla.brickor_h_3_102)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_3_102 extends MovieClip {
public function brickor_h_3_102(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 164
//brickor_h_4_103 (uno_fla.brickor_h_4_103)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_4_103 extends MovieClip {
public function brickor_h_4_103(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 165
//brickor_h_5_104 (uno_fla.brickor_h_5_104)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_5_104 extends MovieClip {
public function brickor_h_5_104(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 166
//brickor_h_6_105 (uno_fla.brickor_h_6_105)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_6_105 extends MovieClip {
public function brickor_h_6_105(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 167
//brickor_h_7_106 (uno_fla.brickor_h_7_106)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_7_106 extends MovieClip {
public function brickor_h_7_106(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 168
//brickor_h_8_107 (uno_fla.brickor_h_8_107)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_8_107 extends MovieClip {
public function brickor_h_8_107(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 169
//brickor_h_9_108 (uno_fla.brickor_h_9_108)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_h_9_108 extends MovieClip {
public function brickor_h_9_108(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 170
//brickor_t_1_96 (uno_fla.brickor_t_1_96)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_1_96 extends MovieClip {
public function brickor_t_1_96(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 171
//brickor_t_2_93 (uno_fla.brickor_t_2_93)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_2_93 extends MovieClip {
public function brickor_t_2_93(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 172
//brickor_t_3_94 (uno_fla.brickor_t_3_94)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_3_94 extends MovieClip {
public function brickor_t_3_94(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 173
//brickor_t_4_97 (uno_fla.brickor_t_4_97)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_4_97 extends MovieClip {
public function brickor_t_4_97(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 174
//brickor_t_5_95 (uno_fla.brickor_t_5_95)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_5_95 extends MovieClip {
public function brickor_t_5_95(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 175
//brickor_t_6_98 (uno_fla.brickor_t_6_98)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_t_6_98 extends MovieClip {
public function brickor_t_6_98(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 176
//brickor_v_1_89 (uno_fla.brickor_v_1_89)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_1_89 extends MovieClip {
public function brickor_v_1_89(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 177
//brickor_v_10_109 (uno_fla.brickor_v_10_109)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_10_109 extends MovieClip {
public function brickor_v_10_109(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 178
//brickor_v_2_88 (uno_fla.brickor_v_2_88)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_2_88 extends MovieClip {
public function brickor_v_2_88(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 179
//brickor_v_3_87 (uno_fla.brickor_v_3_87)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_3_87 extends MovieClip {
public function brickor_v_3_87(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 180
//brickor_v_4_86 (uno_fla.brickor_v_4_86)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_4_86 extends MovieClip {
public function brickor_v_4_86(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 181
//brickor_v_5_85 (uno_fla.brickor_v_5_85)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_5_85 extends MovieClip {
public function brickor_v_5_85(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 182
//brickor_v_6_84 (uno_fla.brickor_v_6_84)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_6_84 extends MovieClip {
public function brickor_v_6_84(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 183
//brickor_v_7_83 (uno_fla.brickor_v_7_83)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_7_83 extends MovieClip {
public function brickor_v_7_83(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 184
//brickor_v_8_90 (uno_fla.brickor_v_8_90)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_8_90 extends MovieClip {
public function brickor_v_8_90(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 185
//brickor_v_9_91 (uno_fla.brickor_v_9_91)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class brickor_v_9_91 extends MovieClip {
public function brickor_v_9_91(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 186
//btn_blue_29 (uno_fla.btn_blue_29)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_blue_29 extends MovieClip {
public function btn_blue_29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 187
//btn_endgame_118 (uno_fla.btn_endgame_118)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_endgame_118 extends MovieClip {
public function btn_endgame_118(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 188
//btn_green_28 (uno_fla.btn_green_28)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_green_28 extends MovieClip {
public function btn_green_28(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 189
//btn_music_116 (uno_fla.btn_music_116)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_music_116 extends MovieClip {
public function btn_music_116(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 190
//btn_red_27 (uno_fla.btn_red_27)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_red_27 extends MovieClip {
public function btn_red_27(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 191
//btn_sound_117 (uno_fla.btn_sound_117)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_sound_117 extends MovieClip {
public function btn_sound_117(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 192
//btn_yellow_30 (uno_fla.btn_yellow_30)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class btn_yellow_30 extends MovieClip {
public function btn_yellow_30(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 193
//button_light_62 (uno_fla.button_light_62)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class button_light_62 extends MovieClip {
public function button_light_62(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
mouseEnabled = false;
mouseChildren = false;
}
}
}//package uno_fla
Section 194
//button_lights_61 (uno_fla.button_lights_61)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class button_lights_61 extends MovieClip {
public var light1:button_light_62;
public var light2:button_light_62;
public function button_lights_61(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
mouseEnabled = false;
mouseChildren = false;
}
}
}//package uno_fla
Section 195
//dir_66 (uno_fla.dir_66)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class dir_66 extends MovieClip {
public function dir_66(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
gotoAndStop(11);
}
}
}//package uno_fla
Section 196
//draw_button_60 (uno_fla.draw_button_60)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class draw_button_60 extends MovieClip {
public function draw_button_60(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 197
//draw_button_anim_59 (uno_fla.draw_button_anim_59)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class draw_button_anim_59 extends MovieClip {
public function draw_button_anim_59(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 198
//glowc_65 (uno_fla.glowc_65)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class glowc_65 extends MovieClip {
public function glowc_65(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 199
//intro_music_button_129 (uno_fla.intro_music_button_129)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class intro_music_button_129 extends MovieClip {
public function intro_music_button_129(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 200
//intro_sound_button_128 (uno_fla.intro_sound_button_128)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class intro_sound_button_128 extends MovieClip {
public function intro_sound_button_128(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 201
//lamp_119 (uno_fla.lamp_119)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class lamp_119 extends MovieClip {
public function lamp_119(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 202
//left_in_pile_anim_63 (uno_fla.left_in_pile_anim_63)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class left_in_pile_anim_63 extends MovieClip {
public function left_in_pile_anim_63(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 203
//next_player_1_82 (uno_fla.next_player_1_82)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class next_player_1_82 extends MovieClip {
public var stone1:brickor_v_9_91;
public var stone2:brickor_v_8_90;
public var stone3:brickor_v_1_89;
public var stone4:brickor_v_2_88;
public var stone5:brickor_v_3_87;
public var stone6:brickor_v_4_86;
public var stone7:brickor_v_5_85;
public var stone8:brickor_v_6_84;
public var stone9:brickor_v_7_83;
public function next_player_1_82(){
addFrameScript(0, frame1);
}
function frame1(){
mouseChildren = false;
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 204
//next_player_2_92 (uno_fla.next_player_2_92)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class next_player_2_92 extends MovieClip {
public var stone1:brickor_t_1_96;
public var stone2:brickor_t_2_93;
public var stone3:brickor_t_3_94;
public var stone4:brickor_t_4_97;
public var stone5:brickor_t_5_95;
public var stone6:brickor_t_6_98;
public function next_player_2_92(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package uno_fla
Section 205
//next_player_3_99 (uno_fla.next_player_3_99)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class next_player_3_99 extends MovieClip {
public var stone10:brickor_v_10_109;
public var stone1:brickor_h_1_100;
public var stone2:brickor_h_2_101;
public var stone3:brickor_h_3_102;
public var stone4:brickor_h_4_103;
public var stone5:brickor_h_5_104;
public var stone6:brickor_h_6_105;
public var stone7:brickor_h_7_106;
public var stone8:brickor_h_8_107;
public var stone9:brickor_h_9_108;
public function next_player_3_99(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package uno_fla
Section 206
//nextBtn_133 (uno_fla.nextBtn_133)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class nextBtn_133 extends MovieClip {
public function nextBtn_133(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 207
//numbers1_67 (uno_fla.numbers1_67)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class numbers1_67 extends MovieClip {
public function numbers1_67(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 208
//numbers2_68 (uno_fla.numbers2_68)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class numbers2_68 extends MovieClip {
public function numbers2_68(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 209
//pass_114 (uno_fla.pass_114)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class pass_114 extends MovieClip {
public var pass_active:TextField;
public function pass_114(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 210
//pile_anim_64 (uno_fla.pile_anim_64)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class pile_anim_64 extends MovieClip {
public function pile_anim_64(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 211
//shuffle_69 (uno_fla.shuffle_69)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class shuffle_69 extends MovieClip {
public function shuffle_69(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 212
//small_card_32 (uno_fla.small_card_32)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class small_card_32 extends MovieClip {
public function small_card_32(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package uno_fla
Section 213
//station_left_70 (uno_fla.station_left_70)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_left_70 extends MovieClip {
public var bot:bot_left_72;
public var lamp:station_left_lamp_71;
public var numcards:TextField;
public function station_left_70(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 214
//station_left_lamp_71 (uno_fla.station_left_lamp_71)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_left_lamp_71 extends MovieClip {
public function station_left_lamp_71(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 215
//station_left_lamps_123 (uno_fla.station_left_lamps_123)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_left_lamps_123 extends MovieClip {
public function station_left_lamps_123(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 216
//station_left_over_122 (uno_fla.station_left_over_122)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_left_over_122 extends MovieClip {
public var lamps:station_left_lamps_123;
public function station_left_over_122(){
addFrameScript(0, frame1);
}
function frame1(){
this.mouseEnabled = false;
}
}
}//package uno_fla
Section 217
//station_right_76 (uno_fla.station_right_76)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_right_76 extends MovieClip {
public var bot:bot_right_78;
public var lamp:station_right_lamp_77;
public var numcards:TextField;
public function station_right_76(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 218
//station_right_lamp_77 (uno_fla.station_right_lamp_77)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_right_lamp_77 extends MovieClip {
public function station_right_lamp_77(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 219
//station_right_lamps_121 (uno_fla.station_right_lamps_121)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_right_lamps_121 extends MovieClip {
public function station_right_lamps_121(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 220
//station_right_over_120 (uno_fla.station_right_over_120)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class station_right_over_120 extends MovieClip {
public var lamps:station_right_lamps_121;
public function station_right_over_120(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
stop();
}
}
}//package uno_fla
Section 221
//uno_115 (uno_fla.uno_115)
package uno_fla {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
import flash.net.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class uno_115 extends MovieClip {
public function uno_115(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package uno_fla
Section 222
//action_draw2 (action_draw2)
package {
import flash.display.*;
import flash.text.*;
public dynamic class action_draw2 extends MovieClip {
public var txt:TextField;
}
}//package
Section 223
//action_draw4 (action_draw4)
package {
import flash.display.*;
import flash.text.*;
public dynamic class action_draw4 extends MovieClip {
public var txt:TextField;
}
}//package
Section 224
//action_reverse (action_reverse)
package {
import flash.display.*;
import flash.text.*;
public dynamic class action_reverse extends MovieClip {
public var txt:TextField;
}
}//package
Section 225
//action_skip (action_skip)
package {
import flash.display.*;
import flash.text.*;
public dynamic class action_skip extends MovieClip {
public var txt:TextField;
}
}//package
Section 226
//back (back)
package {
import flash.display.*;
public dynamic class back extends BitmapData {
public function back(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 227
//blue_0 (blue_0)
package {
import flash.display.*;
public dynamic class blue_0 extends BitmapData {
public function blue_0(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 228
//blue_1 (blue_1)
package {
import flash.display.*;
public dynamic class blue_1 extends BitmapData {
public function blue_1(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 229
//blue_2 (blue_2)
package {
import flash.display.*;
public dynamic class blue_2 extends BitmapData {
public function blue_2(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 230
//blue_3 (blue_3)
package {
import flash.display.*;
public dynamic class blue_3 extends BitmapData {
public function blue_3(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 231
//blue_4 (blue_4)
package {
import flash.display.*;
public dynamic class blue_4 extends BitmapData {
public function blue_4(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 232
//blue_5 (blue_5)
package {
import flash.display.*;
public dynamic class blue_5 extends BitmapData {
public function blue_5(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 233
//blue_6 (blue_6)
package {
import flash.display.*;
public dynamic class blue_6 extends BitmapData {
public function blue_6(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 234
//blue_7 (blue_7)
package {
import flash.display.*;
public dynamic class blue_7 extends BitmapData {
public function blue_7(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 235
//blue_8 (blue_8)
package {
import flash.display.*;
public dynamic class blue_8 extends BitmapData {
public function blue_8(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 236
//blue_9 (blue_9)
package {
import flash.display.*;
public dynamic class blue_9 extends BitmapData {
public function blue_9(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 237
//blue_draw_two_card (blue_draw_two_card)
package {
import flash.display.*;
public dynamic class blue_draw_two_card extends BitmapData {
public function blue_draw_two_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 238
//blue_reverse_card (blue_reverse_card)
package {
import flash.display.*;
public dynamic class blue_reverse_card extends BitmapData {
public function blue_reverse_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 239
//blue_skip_card (blue_skip_card)
package {
import flash.display.*;
public dynamic class blue_skip_card extends BitmapData {
public function blue_skip_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 240
//BubbleLeft (BubbleLeft)
package {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
public dynamic class BubbleLeft extends Bubble {
public function BubbleLeft(){
super();
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package
Section 241
//BubbleRight (BubbleRight)
package {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
public dynamic class BubbleRight extends Bubble {
public function BubbleRight(){
super();
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
mouseChildren = false;
stop();
}
}
}//package
Section 242
//char (char)
package {
import flash.display.*;
public dynamic class char extends MovieClip {
}
}//package
Section 243
//choose_color_sign (choose_color_sign)
package {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import flash.events.*;
import sandy.materials.attributes.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.geom.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
public dynamic class choose_color_sign extends ChooseColorSign {
public function choose_color_sign(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 244
//draw_winner_sign (draw_winner_sign)
package {
import king.game.uno.view.*;
public dynamic class draw_winner_sign extends DrawWinnerSign {
public function draw_winner_sign(){
super();
}
}
}//package
Section 245
//fade (fade)
package {
import flash.display.*;
public dynamic class fade extends BitmapData {
public function fade(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 246
//green_0 (green_0)
package {
import flash.display.*;
public dynamic class green_0 extends BitmapData {
public function green_0(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 247
//green_1 (green_1)
package {
import flash.display.*;
public dynamic class green_1 extends BitmapData {
public function green_1(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 248
//green_2 (green_2)
package {
import flash.display.*;
public dynamic class green_2 extends BitmapData {
public function green_2(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 249
//green_3 (green_3)
package {
import flash.display.*;
public dynamic class green_3 extends BitmapData {
public function green_3(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 250
//green_4 (green_4)
package {
import flash.display.*;
public dynamic class green_4 extends BitmapData {
public function green_4(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 251
//green_5 (green_5)
package {
import flash.display.*;
public dynamic class green_5 extends BitmapData {
public function green_5(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 252
//green_6 (green_6)
package {
import flash.display.*;
public dynamic class green_6 extends BitmapData {
public function green_6(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 253
//green_7 (green_7)
package {
import flash.display.*;
public dynamic class green_7 extends BitmapData {
public function green_7(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 254
//green_8 (green_8)
package {
import flash.display.*;
public dynamic class green_8 extends BitmapData {
public function green_8(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 255
//green_9 (green_9)
package {
import flash.display.*;
public dynamic class green_9 extends BitmapData {
public function green_9(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 256
//green_draw_two_card (green_draw_two_card)
package {
import flash.display.*;
public dynamic class green_draw_two_card extends BitmapData {
public function green_draw_two_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 257
//green_reverse_card (green_reverse_card)
package {
import flash.display.*;
public dynamic class green_reverse_card extends BitmapData {
public function green_reverse_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 258
//green_skip_card (green_skip_card)
package {
import flash.display.*;
public dynamic class green_skip_card extends BitmapData {
public function green_skip_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 259
//handscore (handscore)
package {
import king.game.uno.view.*;
public dynamic class handscore extends ScorePop {
public function handscore(){
super();
}
}
}//package
Section 260
//intro_page1 (intro_page1)
package {
import king.game.uno.view.*;
public dynamic class intro_page1 extends I18nTextField {
public function intro_page1(){
super();
}
}
}//package
Section 261
//intro_page2 (intro_page2)
package {
import king.game.uno.view.*;
public dynamic class intro_page2 extends I18nTextField {
public function intro_page2(){
super();
}
}
}//package
Section 262
//intro_sign (intro_sign)
package {
import king.game.uno.view.*;
public dynamic class intro_sign extends IntroSign {
public function intro_sign(){
super();
}
}
}//package
Section 263
//missed_say_uno_sign (missed_say_uno_sign)
package {
import king.game.uno.view.*;
public dynamic class missed_say_uno_sign extends MissedSayUnoSign {
public function missed_say_uno_sign(){
super();
}
}
}//package
Section 264
//MultiFileBlock1_1516460078 (MultiFileBlock1_1516460078)
package {
import com.midasplayer.gamecomm.*;
import king.game.uno.view.*;
import king.game.uno.*;
import sandy.bounds.*;
import sandy.core.data.*;
import sandy.view.*;
import sandy.core.*;
import sandy.core.scenegraph.*;
import king.sound.*;
import com.midasplayer.debug.*;
import sandy.events.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import flash.display.*;
import king.util.*;
import king.game.uno.anim.*;
import sandy.core.interaction.*;
import sandy.core.light.*;
import com.midasplayer.avatar.*;
import king.math.*;
import sandy.math.*;
import sandy.primitive.*;
import com.midasplayer.text.*;
import sandy.util.*;
public class MultiFileBlock1_1516460078 extends MovieClip {
public function MultiFileBlock1_1516460078(){
var Dummy1:Game;
var Dummy2:Rule;
var Dummy3:Player;
var Dummy4:Segments;
var Dummy5:ScoreBoard;
var Dummy6:ArrayList;
var Dummy7:I18n;
var Dummy8:Card;
var Dummy9:AnimPlayer;
var Dummy10:MtRandom;
var Dummy11:Dealer;
var Dummy12:Deck;
var Dummy13:Rules;
var Dummy14:Clock;
var Dummy15:GameData;
var Dummy16:Pile;
var Dummy17:Map;
var Dummy18:SoundManager;
var Dummy19:AvatarLoader;
var Dummy20:Anim;
var Dummy21:Node;
var Dummy22:ManagedSound;
var Dummy23:Matrix4;
var Dummy24:BBox;
var Dummy25:Appearance;
var Dummy26:Frustum;
var Dummy27:BSphere;
var Dummy28:CullingState;
var Dummy29:Geometry3D;
var Dummy30:Material;
var Dummy31:Point3D;
var Dummy32:Renderer;
var Dummy33:Vertex;
var Dummy34:ViewPort;
var Dummy35:MaterialAttributes;
var Dummy36:UVCoord;
var Dummy37:Debug;
var Dummy38:SceneLocator;
var Dummy39:Pool;
var Dummy40:NumberUtil;
var Dummy41:IntersectionMath;
var Dummy42:PrimitiveMode;
var Dummy43:Library;
var Dummy44:ManagedSoundChannel;
var Dummy45:Plane;
var Dummy46:MaterialType;
var Dummy47:Edge3D;
var Dummy48:FastMath;
var Dummy49:PlaneMath;
var Dummy50:SandyFlags;
var Dummy51:Point3DMath;
var Dummy52:TextLink;
var Dummy53:ColorMath;
var Dummy54:SandyEvent;
var Dummy55:BubbleEvent;
var Dummy56:BotPlayer;
var Dummy57:HumanPlayer;
var Dummy58:GameView;
var Dummy59:DebugGameComm;
var Dummy60:GameComm;
var Dummy61:Hand;
var Dummy62:PlayerView;
var Dummy63:DealerView;
var Dummy64:ShowBubbleAnim;
var Dummy65:PlayFramesAnim;
var Dummy66:DelayAnim;
var Dummy67:ShowSignAnim;
var Dummy68:HandToTableAnim;
var Dummy69:ActionCardAnim;
var Dummy70:DealerAnim;
var Dummy71:HandAnim;
var Dummy72:ShowHandAnim;
var Dummy73:NextPlayerAnim;
var Dummy74:DealToTableAnim;
var Dummy75:TakeCardsFromTableAnim;
var Dummy76:DealAnim;
var Dummy77:TakeAnim;
var Dummy78:ScorePopAnim;
var Dummy79:Group;
var Dummy80:ATransformable;
var Dummy81:HandView;
var Dummy82:Polygon;
var Dummy83:WireFrameMaterial;
var Dummy84:BitmapMaterial;
var Dummy85:ColorMaterial;
var Dummy86:ALightAttributes;
var Dummy87:AAttributes;
var Dummy88:Scene3D;
var Dummy89:Light3D;
var Dummy90:EventBroadcaster;
var Dummy91:VirtualMouse;
var Dummy92:Shape3DEvent;
var Dummy93:HandAnimBotRight;
var Dummy94:HandAnimLocal;
var Dummy95:HandAnimBotLeft;
var Dummy96:Camera3D;
var Dummy97:Shape3D;
var Dummy98:TransformGroup;
var Dummy99:Sprite2D;
var Dummy100:MovieMaterial;
var Dummy101:LightAttributes;
var Dummy102:LineAttributes;
var Dummy103:BubbleEventBroadcaster;
var Dummy104:Plane3D;
var Dummy105:CardView;
var Dummy106:Main;
var Dummy107:I18nTextField;
var Dummy108:ClockView;
var Dummy109:Sign;
var Dummy110:Bubble;
var Dummy111:ScorePop;
var Dummy112:intro_page1;
var Dummy113:intro_page2;
var Dummy114:ChooseColorSign;
var Dummy115:DrawWinnerSign;
var Dummy116:IntroSign;
var Dummy117:MissedSayUnoSign;
var Dummy118:RegisterSign;
var Dummy119:RoundWinnerSign;
var Dummy120:WinnerSign;
var Dummy121:BubbleLeft;
var Dummy122:BubbleRight;
var Dummy123:handscore;
var Dummy124:choose_color_sign;
var Dummy125:draw_winner_sign;
var Dummy126:intro_sign;
var Dummy127:missed_say_uno_sign;
var Dummy128:register_sign;
var Dummy129:round_winner_sign;
var Dummy130:winner_sign;
super();
}
}
}//package
Section 265
//PlayClip (PlayClip)
package {
import king.game.uno.view.*;
import flash.display.*;
import flash.text.*;
import uno_fla.*;
public dynamic class PlayClip extends MovieClip {
public var btn_music:btn_music_116;
public var uno_lights:button_lights_61;
public var pass_lights:button_lights_61;
public var clock:ClockView;
public var stack:MovieClip;
public var pass:pass_114;
public var round:TextField;
public var numcards:TextField;
public var station_right_over:station_right_over_120;
public var station_left:station_left_70;
public var station_left_over:station_left_over_122;
public var stones1:next_player_1_82;
public var stones2:next_player_2_92;
public var stones3:next_player_3_99;
public var fg:MovieClip;
public var table:MovieClip;
public var station_right:station_right_76;
public var signs:MovieClip;
public var lamp:lamp_119;
public var cards:MovieClip;
public var avatarHolder:MovieClip;
public var bubbles:MovieClip;
public var btn_endgame:btn_endgame_118;
public var btn_sound:btn_sound_117;
public var uno:uno_115;
}
}//package
Section 266
//red_0 (red_0)
package {
import flash.display.*;
public dynamic class red_0 extends BitmapData {
public function red_0(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 267
//red_1 (red_1)
package {
import flash.display.*;
public dynamic class red_1 extends BitmapData {
public function red_1(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 268
//red_2 (red_2)
package {
import flash.display.*;
public dynamic class red_2 extends BitmapData {
public function red_2(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 269
//red_3 (red_3)
package {
import flash.display.*;
public dynamic class red_3 extends BitmapData {
public function red_3(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 270
//red_4 (red_4)
package {
import flash.display.*;
public dynamic class red_4 extends BitmapData {
public function red_4(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 271
//red_5 (red_5)
package {
import flash.display.*;
public dynamic class red_5 extends BitmapData {
public function red_5(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 272
//red_6 (red_6)
package {
import flash.display.*;
public dynamic class red_6 extends BitmapData {
public function red_6(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 273
//red_7 (red_7)
package {
import flash.display.*;
public dynamic class red_7 extends BitmapData {
public function red_7(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 274
//red_8 (red_8)
package {
import flash.display.*;
public dynamic class red_8 extends BitmapData {
public function red_8(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 275
//red_9 (red_9)
package {
import flash.display.*;
public dynamic class red_9 extends BitmapData {
public function red_9(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 276
//red_draw_two_card (red_draw_two_card)
package {
import flash.display.*;
public dynamic class red_draw_two_card extends BitmapData {
public function red_draw_two_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 277
//red_reverse_card (red_reverse_card)
package {
import flash.display.*;
public dynamic class red_reverse_card extends BitmapData {
public function red_reverse_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 278
//red_skip_card (red_skip_card)
package {
import flash.display.*;
public dynamic class red_skip_card extends BitmapData {
public function red_skip_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 279
//register_sign (register_sign)
package {
import king.game.uno.view.*;
public dynamic class register_sign extends RegisterSign {
public function register_sign(){
super();
}
}
}//package
Section 280
//round_winner_sign (round_winner_sign)
package {
import king.game.uno.view.*;
public dynamic class round_winner_sign extends RoundWinnerSign {
public function round_winner_sign(){
super();
}
}
}//package
Section 281
//sign_bottom (sign_bottom)
package {
import flash.display.*;
public dynamic class sign_bottom extends MovieClip {
}
}//package
Section 282
//sign_bottom_left (sign_bottom_left)
package {
import flash.display.*;
public dynamic class sign_bottom_left extends MovieClip {
}
}//package
Section 283
//sign_bottom_right (sign_bottom_right)
package {
import flash.display.*;
public dynamic class sign_bottom_right extends MovieClip {
}
}//package
Section 284
//sign_left (sign_left)
package {
import flash.display.*;
public dynamic class sign_left extends MovieClip {
}
}//package
Section 285
//sign_middle (sign_middle)
package {
import flash.display.*;
public dynamic class sign_middle extends MovieClip {
}
}//package
Section 286
//sign_right (sign_right)
package {
import flash.display.*;
public dynamic class sign_right extends MovieClip {
}
}//package
Section 287
//sign_top (sign_top)
package {
import flash.display.*;
public dynamic class sign_top extends MovieClip {
}
}//package
Section 288
//sign_top_left (sign_top_left)
package {
import flash.display.*;
public dynamic class sign_top_left extends MovieClip {
}
}//package
Section 289
//sign_top_right (sign_top_right)
package {
import flash.display.*;
public dynamic class sign_top_right extends MovieClip {
}
}//package
Section 290
//wild_card (wild_card)
package {
import flash.display.*;
public dynamic class wild_card extends BitmapData {
public function wild_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 291
//wild_draw_four_card (wild_draw_four_card)
package {
import flash.display.*;
public dynamic class wild_draw_four_card extends BitmapData {
public function wild_draw_four_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 292
//winner_sign (winner_sign)
package {
import king.game.uno.view.*;
public dynamic class winner_sign extends WinnerSign {
public function winner_sign(){
super();
}
}
}//package
Section 293
//yellow_0 (yellow_0)
package {
import flash.display.*;
public dynamic class yellow_0 extends BitmapData {
public function yellow_0(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 294
//yellow_1 (yellow_1)
package {
import flash.display.*;
public dynamic class yellow_1 extends BitmapData {
public function yellow_1(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 295
//yellow_2 (yellow_2)
package {
import flash.display.*;
public dynamic class yellow_2 extends BitmapData {
public function yellow_2(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 296
//yellow_3 (yellow_3)
package {
import flash.display.*;
public dynamic class yellow_3 extends BitmapData {
public function yellow_3(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 297
//yellow_4 (yellow_4)
package {
import flash.display.*;
public dynamic class yellow_4 extends BitmapData {
public function yellow_4(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 298
//yellow_5 (yellow_5)
package {
import flash.display.*;
public dynamic class yellow_5 extends BitmapData {
public function yellow_5(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 299
//yellow_6 (yellow_6)
package {
import flash.display.*;
public dynamic class yellow_6 extends BitmapData {
public function yellow_6(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 300
//yellow_7 (yellow_7)
package {
import flash.display.*;
public dynamic class yellow_7 extends BitmapData {
public function yellow_7(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 301
//yellow_8 (yellow_8)
package {
import flash.display.*;
public dynamic class yellow_8 extends BitmapData {
public function yellow_8(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 302
//yellow_9 (yellow_9)
package {
import flash.display.*;
public dynamic class yellow_9 extends BitmapData {
public function yellow_9(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 303
//yellow_draw_two_card (yellow_draw_two_card)
package {
import flash.display.*;
public dynamic class yellow_draw_two_card extends BitmapData {
public function yellow_draw_two_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 304
//yellow_reverse_card (yellow_reverse_card)
package {
import flash.display.*;
public dynamic class yellow_reverse_card extends BitmapData {
public function yellow_reverse_card(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 305
//yellow_skip_card (yellow_skip_card)
package {
import flash.display.*;
public dynamic class yellow_skip_card extends BitmapData {
public function yellow_skip_card(w:Number, h:Number){
super(w, h);
}
}
}//package