STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
229428
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2574 · P5147

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/62474114?noj=FRM62474114-1DC" width="1" height="1"></div>

unoonline.swf

This is the info page for
Flash #255943

(Click the ID number above for more basic data on this flash file.)


Text
<p align="center"><font face="Arial" size="16" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>C</b></font></p>

<p align="center"><font face="Arial" size="24" color="#f5cd29" letterSpacing="0.000000" kerning="0">123456 </font></p>

<p align="left"><font face="Arial" size="60" color="#ffffff" letterSpacing="0.000000" kerning="0">DRAW 4</font></p>

<p align="left"><font face="Arial" size="60" color="#ffffff" letterSpacing="0.000000" kerning="0">DRAW 2</font></p>

<p align="left"><font face="Arial" size="60" color="#ffffff" letterSpacing="0.000000" kerning="0">SKIP </font></p>

<p align="left"><font face="Arial" size="60" color="#ffffff" letterSpacing="0.000000" kerning="0">REVERSE </font></p>

<p align="center"><font face="Arial" size="18" color="#4b4640" letterSpacing="0.000000" kerning="1"><b>Choose a color!</b></font></p>

<p align="center"></p>

<p align="center"><font face="Arial" size="38" color="#ffffff" letterSpacing="0.000000" kerning="1">UNO</font></p>

<p align="center"><font face="Arial" size="38" color="#ffffff" letterSpacing="0.000000" kerning="1">UNO</font></p>

Mr Brown will start the game!

0

0

0

<p align="center"><font face="Arial" size="14" color="#939393" letterSpacing="0.000000" kerning="1">NEXT ROUND STARTS IN {0} SECONDS</font></p>

<p align="center"><font face="Arial" size="34" color="#d8d7d2" letterSpacing="0.000000" kerning="1">1</font></p>

<p align="center"><font face="Arial" size="34" color="#d8d7d2" letterSpacing="0.000000" kerning="1">2</font></p>

<p align="center"><font face="Arial" size="34" color="#d8d7d2" letterSpacing="0.000000" kerning="1">3</font></p>

<p align="center"><font face="Arial" size="36" color="#ff8504" letterSpacing="0.000000" kerning="0">0</font></p>

<p align="right"><font face="Arial" size="25" color="#39b54a" letterSpacing="0.000000" kerning="1">POINTS..............</font></p>

<p align="center"><font face="Arial" size="44" color="#ff8720" letterSpacing="0.000000" kerning="1">TOTAL SCORE</font></p>

0

<p align="right"><font face="Arial" size="25" color="#39b54a" letterSpacing="0.000000" kerning="1">EXTRA..............</font></p>

<p align="left"><font face="Arial" size="25" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>0</b></font></p>

TIME BONUS..............

0

THE GAME ENDS IN {0} SECONDS

<p align="left"><font face="Arial" size="18" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>You forgot to press the UNO button!</b></font></p>

<p align="center"><font face="Arial" size="18" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>Register to continue playing and complete the game!</b></font></p>

70

70

PASS

1

70

THE GAME STARTS IN {0} SECONDS

<p align="center"><font face="Arial" size="10" color="#939393" letterSpacing="0.000000" kerning="1">UNO and associated trademarks and trade dress are owned by, and used under license from, Mattel, Inc. © 2009 Mattel, Inc. All Rights Reserved.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">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.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">The game is played in three rounds. Try to get rid of all the cards in your hand before your opponents.</font></p><p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">When its your turn try to match the card on the Discard pile, either by number, colour or symbol.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">When you have only one card left you must press ”UNO” button. Failure to do this results in having to pick up 2 cards from Draw pile.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">If you don&apos;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. </font></p>

<p align="left"><font face="Arial" size="12" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>DRAW CARD</b></font></p>

<p align="left"><font face="Arial" size="12" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>PASS BUTTON</b></font></p>

<p align="left"><font face="Arial" size="12" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>UNO BUTTON &nbsp;</b></font></p>

<p align="left"><font face="Arial" size="12" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>OBJECTIVES</b></font></p>

PASS

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">The person playing this card calls for any color to continue the play, including the one currently being played, if so desired. </font></p><p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">A Wild card can be played at any time even if the player has another playable card in the hand.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">The person who plays it calls the color that continues play.</font></p><p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">The next player has to pick up 4 cards from the Draw pile and miss his/her turn. </font></p><p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">The 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.</font></p><p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">If the player holds matching numbers or Action Cards, however, the Wild Draw Four card may be played.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">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.</font></p>

<p align="left"><font face="Arial" size="12" color="#4e4e4e" letterSpacing="0.000000" kerning="1">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.</font></p>

This simply reverses direction of play. Can only be played on a matching color or on another Reverse card.

DRAW TWO

<p align="left"><font face="Arial" size="12" color="#39b54a" letterSpacing="0.000000" kerning="1"><b>SKIP</b></font></p>

REVERSE

WILD

WILD DRAW 4

ActionScript [AS3]

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

Library Items

Symbol 1 Sound {sound.add_card_1}
Symbol 2 Sound {sound.add_card_2}
Symbol 3 Sound {sound.add_card_3}
Symbol 4 Sound {sound.bells}
Symbol 5 Sound {sound.button}
Symbol 6 Sound {sound.shuffle}
Symbol 7 Sound {sound.deal}
Symbol 8 Sound {sound.deal1}
Symbol 9 Sound {sound.music}
Symbol 10 Sound {sound.outro}
Symbol 11 Sound {sound.reverse}
Symbol 12 Sound {sound.stabb_negative}
Symbol 13 Sound {sound.stabb_positive}
Symbol 14 Sound {sound.time_warning}
Symbol 15 Sound {sound.uno_loop}
Symbol 16 Sound {sound.outro2}
Symbol 17 Sound {sound.uno}
Symbol 18 Sound {sound.uno_miss}
Symbol 19 Sound {sound.wrong}
Symbol 20 Bitmap {back}
Symbol 21 Bitmap {blue_0}
Symbol 22 Bitmap {blue_1}
Symbol 23 Bitmap {blue_2}
Symbol 24 Bitmap {blue_3}
Symbol 25 Bitmap {blue_4}
Symbol 26 Bitmap {blue_5}
Symbol 27 Bitmap {blue_6}
Symbol 28 Bitmap {blue_7}
Symbol 29 Bitmap {blue_8}
Symbol 30 Bitmap {blue_9}
Symbol 31 Bitmap {blue_draw_two_card}
Symbol 32 Bitmap {blue_reverse_card}
Symbol 33 Bitmap {blue_skip_card}
Symbol 34 Bitmap {green_0}
Symbol 35 Bitmap {green_1}
Symbol 36 Bitmap {green_2}
Symbol 37 Bitmap {green_3}
Symbol 38 Bitmap {green_4}
Symbol 39 Bitmap {green_5}
Symbol 40 Bitmap {green_6}
Symbol 41 Bitmap {green_7}
Symbol 42 Bitmap {green_8}
Symbol 43 Bitmap {green_9}
Symbol 44 Bitmap {green_draw_two_card}
Symbol 45 Bitmap {green_reverse_card}
Symbol 46 Bitmap {green_skip_card}
Symbol 47 Bitmap {fade}
Symbol 48 Bitmap {red_0}
Symbol 49 Bitmap {red_1}
Symbol 50 Bitmap {red_2}
Symbol 51 Bitmap {red_3}
Symbol 52 Bitmap {red_4}
Symbol 53 Bitmap {red_5}
Symbol 54 Bitmap {red_6}
Symbol 55 Bitmap {red_7}
Symbol 56 Bitmap {red_8}
Symbol 57 Bitmap {red_9}
Symbol 58 Bitmap {red_draw_two_card}
Symbol 59 Bitmap {red_reverse_card}
Symbol 60 Bitmap {red_skip_card}
Symbol 61 Bitmap {wild_card}
Symbol 62 Bitmap {wild_draw_four_card}
Symbol 63 Bitmap {yellow_0}
Symbol 64 Bitmap {yellow_1}
Symbol 65 Bitmap {yellow_2}
Symbol 66 Bitmap {yellow_3}
Symbol 67 Bitmap {yellow_4}
Symbol 68 Bitmap {yellow_5}
Symbol 69 Bitmap {yellow_6}
Symbol 70 Bitmap {yellow_7}
Symbol 71 Bitmap {yellow_8}
Symbol 72 Bitmap {yellow_9}
Symbol 73 Bitmap {yellow_draw_two_card}
Symbol 74 Bitmap {yellow_reverse_card}
Symbol 75 Bitmap {yellow_skip_card}
Symbol 76 FontUsed by:77 79 84 89 94 99 111 112 127 134 167 176 177 178 179 180 185 186 187 188 189 191 192 193 194 195 196 202 204 206 423 500 700 717 757 799 800 826 827 828 829 836 837 838 842 845 852 853 854 855 856 857 858 859 860 861
Symbol 77 EditableTextUses:76Used by:78
Symbol 78 MovieClip {char}Uses:77
Symbol 79 EditableTextUses:76Used by:80
Symbol 80 MovieClip {handscore}Uses:79
Symbol 81 BitmapUsed by:82
Symbol 82 GraphicUses:81Used by:83
Symbol 83 MovieClipUses:82Used by:85
Symbol 84 EditableTextUses:76Used by:85
Symbol 85 MovieClip {action_draw4}Uses:83 84
Symbol 86 BitmapUsed by:87
Symbol 87 GraphicUses:86Used by:88
Symbol 88 MovieClipUses:87Used by:90
Symbol 89 EditableTextUses:76Used by:90
Symbol 90 MovieClip {action_draw2}Uses:88 89
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:93
Symbol 93 MovieClipUses:92Used by:95
Symbol 94 EditableTextUses:76Used by:95
Symbol 95 MovieClip {action_skip}Uses:93 94
Symbol 96 BitmapUsed by:97
Symbol 97 GraphicUses:96Used by:98
Symbol 98 MovieClipUses:97Used by:100
Symbol 99 EditableTextUses:76Used by:100
Symbol 100 MovieClip {action_reverse}Uses:98 99
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:101Used by:104
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClipUses:102 103Used by:115
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClip {uno_fla.btn_red_27}Uses:105Used by:115
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClip {uno_fla.btn_green_28}Uses:107Used by:115
Symbol 109 GraphicUsed by:110
Symbol 110 MovieClip {uno_fla.btn_blue_29}Uses:109Used by:115
Symbol 111 EditableTextUses:76Used by:115
Symbol 112 EditableTextUses:76Used by:115
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClip {uno_fla.btn_yellow_30}Uses:113Used by:115
Symbol 115 MovieClip {choose_color_sign}Uses:104 106 108 110 111 112 114
Symbol 116 BitmapUsed by:117 133
Symbol 117 GraphicUses:116Used by:132
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:126
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:126
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:126
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:126
Symbol 126 MovieClip {uno_fla.small_card_32}Uses:119 121 123 125Used by:132 137
Symbol 127 EditableTextUses:76Used by:132
Symbol 128 BitmapUsed by:129 135
Symbol 129 GraphicUses:128Used by:132
Symbol 130 BitmapUsed by:131 136
Symbol 131 GraphicUses:130Used by:132
Symbol 132 MovieClip {BubbleLeft}Uses:117 126 127 129 131
Symbol 133 GraphicUses:116Used by:137
Symbol 134 EditableTextUses:76Used by:137
Symbol 135 GraphicUses:128Used by:137
Symbol 136 GraphicUses:130Used by:137
Symbol 137 MovieClip {BubbleRight}Uses:133 126 134 135 136
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:141 878
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:139 140Used by:168 205
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:166
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:166
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:166
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:166
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:166
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:166
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:166
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:166
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:166
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:166
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:166
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:166
Symbol 166 MovieClip {uno_fla.bot_plain_37}Uses:143 145 147 149 151 153 155 157 159 161 163 165Used by:168 181 203 205
Symbol 167 EditableTextUses:76Used by:168
Symbol 168 MovieClip {draw_winner_sign}Uses:141 166 167
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:173
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClipUses:171Used by:173
Symbol 173 MovieClipUses:170 172Used by:181 203
Symbol 174 BitmapUsed by:175 184
Symbol 175 GraphicUses:174Used by:181
Symbol 176 EditableTextUses:76Used by:181
Symbol 177 EditableTextUses:76Used by:181
Symbol 178 EditableTextUses:76Used by:181
Symbol 179 EditableTextUses:76Used by:181
Symbol 180 EditableTextUses:76Used by:181
Symbol 181 MovieClip {round_winner_sign}Uses:173 166 175 176 177 178 179 180
Symbol 182 BitmapUsed by:184
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:174 182 183Used by:203
Symbol 185 EditableTextUses:76Used by:203
Symbol 186 EditableTextUses:76Used by:203
Symbol 187 EditableTextUses:76Used by:203
Symbol 188 EditableTextUses:76Used by:203
Symbol 189 EditableTextUses:76Used by:203
Symbol 190 GraphicUsed by:203
Symbol 191 EditableTextUses:76Used by:203
Symbol 192 EditableTextUses:76Used by:203
Symbol 193 EditableTextUses:76Used by:203
Symbol 194 EditableTextUses:76Used by:203
Symbol 195 EditableTextUses:76Used by:203
Symbol 196 EditableTextUses:76Used by:203
Symbol 197 GraphicUsed by:198 200
Symbol 198 MovieClipUses:197Used by:199
Symbol 199 MovieClipUses:198Used by:203
Symbol 200 MovieClipUses:197Used by:201
Symbol 201 MovieClipUses:200Used by:203
Symbol 202 EditableTextUses:76Used by:203
Symbol 203 MovieClip {winner_sign}Uses:173 166 184 185 186 187 188 189 190 191 192 193 194 195 196 199 201 202
Symbol 204 EditableTextUses:76Used by:205
Symbol 205 MovieClip {missed_say_uno_sign}Uses:141 204 166
Symbol 206 EditableTextUses:76Used by:207
Symbol 207 MovieClip {register_sign}Uses:206
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClip {sign_middle}Uses:208
Symbol 210 BitmapUsed by:211 213 215 217
Symbol 211 GraphicUses:210Used by:212
Symbol 212 MovieClip {sign_bottom_right}Uses:211
Symbol 213 GraphicUses:210Used by:214
Symbol 214 MovieClip {sign_bottom_left}Uses:213
Symbol 215 GraphicUses:210Used by:216
Symbol 216 MovieClip {sign_top_left}Uses:215
Symbol 217 GraphicUses:210Used by:218
Symbol 218 MovieClip {sign_top_right}Uses:217
Symbol 219 BitmapUsed by:220 222 224 226
Symbol 220 GraphicUses:219Used by:221
Symbol 221 MovieClip {sign_right}Uses:220
Symbol 222 GraphicUses:219Used by:223
Symbol 223 MovieClip {sign_left}Uses:222
Symbol 224 GraphicUses:219Used by:225
Symbol 225 MovieClip {sign_bottom}Uses:224
Symbol 226 GraphicUses:219Used by:227
Symbol 227 MovieClip {sign_top}Uses:226
Symbol 228 MovieClip {king.game.uno.view.Sign}
Symbol 229 BitmapUsed by:231
Symbol 230 BitmapUsed by:231 794
Symbol 231 GraphicUses:229 230Used by:797
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:411
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234Used by:238
Symbol 236 BitmapUsed by:237
Symbol 237 GraphicUses:236Used by:238
Symbol 238 MovieClip {uno_fla.draw_button_anim_59}Uses:235 237Used by:411
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:249
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:249
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:249
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:249
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:249
Symbol 249 MovieClip {uno_fla.draw_button_60}Uses:240 242 244 246 248Used by:411
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:264
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:264
Symbol 254 BitmapUsed by:255
Symbol 255 GraphicUses:254Used by:264
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:264
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:264
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:264
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:264
Symbol 264 MovieClip {uno_fla.button_light_62}Uses:251 253 255 257 259 261 263Used by:265
Symbol 265 MovieClip {uno_fla.button_lights_61}Uses:264Used by:411 797
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:270
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:270
Symbol 270 MovieClip {uno_fla.left_in_pile_anim_63}Uses:267 269Used by:411
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:275
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:275
Symbol 275 MovieClip {uno_fla.pile_anim_64}Uses:272 274Used by:411
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:308
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:308
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:308
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:308
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:308
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:308
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:308
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:308
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:308
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:308
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:308
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:308
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:308
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:308
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:308
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:308
Symbol 308 MovieClip {uno_fla.glowc_65}Uses:277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307Used by:411
Symbol 309 BitmapUsed by:313 315 319 321 323 326 340
Symbol 310 BitmapUsed by:313 315 317 321 323
Symbol 311 BitmapUsed by:313 315 317 319
Symbol 312 BitmapUsed by:313 317 319 321 323 326 329 339 340
Symbol 313 GraphicUses:309 310 311 312Used by:341
Symbol 314 BitmapUsed by:315 338
Symbol 315 GraphicUses:309 310 311 314Used by:341
Symbol 316 BitmapUsed by:317 339
Symbol 317 GraphicUses:316 310 311 312Used by:341
Symbol 318 BitmapUsed by:319 340
Symbol 319 GraphicUses:309 318 311 312Used by:341
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:309 310 320 312Used by:341
Symbol 322 BitmapUsed by:323 335
Symbol 323 GraphicUses:309 310 322 312Used by:341
Symbol 324 BitmapUsed by:326 336
Symbol 325 BitmapUsed by:326 329 332 334 336 337 338 339 340
Symbol 326 GraphicUses:309 324 325 312Used by:341
Symbol 327 BitmapUsed by:329 337
Symbol 328 BitmapUsed by:329 332 334 335 337 338 339
Symbol 329 GraphicUses:327 328 325 312Used by:341
Symbol 330 BitmapUsed by:332 334 335 336 338
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:330 328 325 331Used by:341
Symbol 333 BitmapUsed by:334 335 336 337
Symbol 334 GraphicUses:330 328 325 333Used by:341
Symbol 335 GraphicUses:330 328 322 333Used by:341
Symbol 336 GraphicUses:330 324 325 333Used by:341
Symbol 337 GraphicUses:327 328 325 333Used by:341
Symbol 338 GraphicUses:330 328 325 314Used by:341
Symbol 339 GraphicUses:316 328 325 312Used by:341
Symbol 340 GraphicUses:309 318 325 312Used by:341
Symbol 341 MovieClip {uno_fla.dir_66}Uses:313 315 317 319 321 323 326 329 332 334 335 336 337 338 339 340Used by:411
Symbol 342 BitmapUsed by:343
Symbol 343 GraphicUses:342Used by:362
Symbol 344 BitmapUsed by:345
Symbol 345 GraphicUses:344Used by:362
Symbol 346 BitmapUsed by:347
Symbol 347 GraphicUses:346Used by:362
Symbol 348 BitmapUsed by:349
Symbol 349 GraphicUses:348Used by:362
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:362
Symbol 352 BitmapUsed by:353
Symbol 353 GraphicUses:352Used by:362
Symbol 354 BitmapUsed by:355
Symbol 355 GraphicUses:354Used by:362
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:362
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:362 379
Symbol 360 BitmapUsed by:361
Symbol 361 GraphicUses:360Used by:362 379
Symbol 362 MovieClip {uno_fla.numbers1_67}Uses:343 345 347 349 351 353 355 357 359 361Used by:411
Symbol 363 BitmapUsed by:364
Symbol 364 GraphicUses:363Used by:379
Symbol 365 BitmapUsed by:366
Symbol 366 GraphicUses:365Used by:379
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:379
Symbol 369 BitmapUsed by:370
Symbol 370 GraphicUses:369Used by:379
Symbol 371 BitmapUsed by:372
Symbol 372 GraphicUses:371Used by:379
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:379
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:379
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:379
Symbol 379 MovieClip {uno_fla.numbers2_68}Uses:364 366 368 370 372 374 376 378 359 361Used by:411
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:380Used by:410
Symbol 382 BitmapUsed by:383
Symbol 383 GraphicUses:382Used by:410
Symbol 384 BitmapUsed by:385
Symbol 385 GraphicUses:384Used by:410
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:410
Symbol 388 BitmapUsed by:389
Symbol 389 GraphicUses:388Used by:410
Symbol 390 BitmapUsed by:391
Symbol 391 GraphicUses:390Used by:410
Symbol 392 BitmapUsed by:393
Symbol 393 GraphicUses:392Used by:410
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:410
Symbol 396 BitmapUsed by:397
Symbol 397 GraphicUses:396Used by:410
Symbol 398 BitmapUsed by:399
Symbol 399 GraphicUses:398Used by:410
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:410
Symbol 402 BitmapUsed by:403
Symbol 403 GraphicUses:402Used by:410
Symbol 404 BitmapUsed by:405
Symbol 405 GraphicUses:404Used by:410
Symbol 406 BitmapUsed by:407
Symbol 407 GraphicUses:406Used by:410
Symbol 408 BitmapUsed by:409
Symbol 409 GraphicUses:408Used by:410
Symbol 410 MovieClip {uno_fla.shuffle_69}Uses:381 383 385 387 389 391 393 395 397 399 401 403 405 407 409Used by:411
Symbol 411 MovieClipUses:233 238 249 265 270 275 308 341 362 379 410Used by:797
Symbol 412 BitmapUsed by:413
Symbol 413 GraphicUses:412Used by:488
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:422
Symbol 416 BitmapUsed by:417
Symbol 417 GraphicUses:416Used by:422
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:422
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:422
Symbol 422 MovieClip {uno_fla.station_left_lamp_71}Uses:415 417 419 421Used by:488
Symbol 423 EditableTextUses:76Used by:488
Symbol 424 BitmapUsed by:425
Symbol 425 GraphicUses:424Used by:444
Symbol 426 BitmapUsed by:427
Symbol 427 GraphicUses:426Used by:444
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:428Used by:444
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:444
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:444
Symbol 434 BitmapUsed by:435
Symbol 435 GraphicUses:434Used by:444
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:444
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:444
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:444
Symbol 442 BitmapUsed by:443
Symbol 443 GraphicUses:442Used by:444
Symbol 444 MovieClip {uno_fla.bot_blue_73}Uses:425 427 429 431 433 435 437 439 441 443Used by:487
Symbol 445 BitmapUsed by:446
Symbol 446 GraphicUses:445Used by:465
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:465
Symbol 449 BitmapUsed by:450
Symbol 450 GraphicUses:449Used by:465
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:465
Symbol 453 BitmapUsed by:454
Symbol 454 GraphicUses:453Used by:465
Symbol 455 BitmapUsed by:456
Symbol 456 GraphicUses:455Used by:465
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:465
Symbol 459 BitmapUsed by:460
Symbol 460 GraphicUses:459Used by:465
Symbol 461 BitmapUsed by:462
Symbol 462 GraphicUses:461Used by:465
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:465
Symbol 465 MovieClip {uno_fla.bot_brown_74}Uses:446 448 450 452 454 456 458 460 462 464Used by:487
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:486
Symbol 468 BitmapUsed by:469
Symbol 469 GraphicUses:468Used by:486
Symbol 470 BitmapUsed by:471
Symbol 471 GraphicUses:470Used by:486
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:486
Symbol 474 BitmapUsed by:475
Symbol 475 GraphicUses:474Used by:486
Symbol 476 BitmapUsed by:477
Symbol 477 GraphicUses:476Used by:486
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:486
Symbol 480 BitmapUsed by:481
Symbol 481 GraphicUses:480Used by:486
Symbol 482 BitmapUsed by:483
Symbol 483 GraphicUses:482Used by:486
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClip {uno_fla.bot_purple_75}Uses:467 469 471 473 475 477 479 481 483 485Used by:487
Symbol 487 MovieClip {uno_fla.bot_left_72}Uses:444 465 486Used by:488
Symbol 488 MovieClip {uno_fla.station_left_70}Uses:413 422 423 487Used by:797
Symbol 489 BitmapUsed by:490
Symbol 490 GraphicUses:489Used by:565
Symbol 491 BitmapUsed by:492
Symbol 492 GraphicUses:491Used by:499
Symbol 493 BitmapUsed by:494
Symbol 494 GraphicUses:493Used by:499
Symbol 495 BitmapUsed by:496
Symbol 496 GraphicUses:495Used by:499
Symbol 497 BitmapUsed by:498
Symbol 498 GraphicUses:497Used by:499
Symbol 499 MovieClip {uno_fla.station_right_lamp_77}Uses:492 494 496 498Used by:565
Symbol 500 EditableTextUses:76Used by:565
Symbol 501 BitmapUsed by:502
Symbol 502 GraphicUses:501Used by:521
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:521
Symbol 505 BitmapUsed by:506
Symbol 506 GraphicUses:505Used by:521
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:521
Symbol 509 BitmapUsed by:510
Symbol 510 GraphicUses:509Used by:521
Symbol 511 BitmapUsed by:512
Symbol 512 GraphicUses:511Used by:521
Symbol 513 BitmapUsed by:514
Symbol 514 GraphicUses:513Used by:521
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:521
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:521
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:521
Symbol 521 MovieClip {uno_fla.bot_red_79}Uses:502 504 506 508 510 512 514 516 518 520Used by:564
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:542
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:542
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:542
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:542
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:542
Symbol 532 BitmapUsed by:533
Symbol 533 GraphicUses:532Used by:542
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:542
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:542
Symbol 538 BitmapUsed by:539
Symbol 539 GraphicUses:538Used by:542
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:542
Symbol 542 MovieClip {uno_fla.bot_yellow_80}Uses:523 525 527 529 531 533 535 537 539 541Used by:564
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:563
Symbol 545 BitmapUsed by:546
Symbol 546 GraphicUses:545Used by:563
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:563
Symbol 549 BitmapUsed by:550
Symbol 550 GraphicUses:549Used by:563
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:563
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:563
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:563
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:563
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:563
Symbol 561 BitmapUsed by:562
Symbol 562 GraphicUses:561Used by:563
Symbol 563 MovieClip {uno_fla.bot_green_81}Uses:544 546 548 550 552 554 556 558 560 562Used by:564
Symbol 564 MovieClip {uno_fla.bot_right_78}Uses:521 542 563Used by:565
Symbol 565 MovieClip {uno_fla.station_right_76}Uses:490 499 500 564Used by:797
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:570
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:570
Symbol 570 MovieClip {uno_fla.brickor_v_7_83}Uses:567 569Used by:611
Symbol 571 BitmapUsed by:572
Symbol 572 GraphicUses:571Used by:575
Symbol 573 BitmapUsed by:574
Symbol 574 GraphicUses:573Used by:575
Symbol 575 MovieClip {uno_fla.brickor_v_6_84}Uses:572 574Used by:611
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:580
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:580
Symbol 580 MovieClip {uno_fla.brickor_v_5_85}Uses:577 579Used by:611
Symbol 581 BitmapUsed by:582
Symbol 582 GraphicUses:581Used by:585
Symbol 583 BitmapUsed by:584
Symbol 584 GraphicUses:583Used by:585
Symbol 585 MovieClip {uno_fla.brickor_v_4_86}Uses:582 584Used by:611
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:590
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:590
Symbol 590 MovieClip {uno_fla.brickor_v_3_87}Uses:587 589Used by:611
Symbol 591 BitmapUsed by:592
Symbol 592 GraphicUses:591Used by:595
Symbol 593 BitmapUsed by:594
Symbol 594 GraphicUses:593Used by:595
Symbol 595 MovieClip {uno_fla.brickor_v_2_88}Uses:592 594Used by:611
Symbol 596 BitmapUsed by:597
Symbol 597 GraphicUses:596Used by:600
Symbol 598 BitmapUsed by:599
Symbol 599 GraphicUses:598Used by:600
Symbol 600 MovieClip {uno_fla.brickor_v_1_89}Uses:597 599Used by:611
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:605
Symbol 603 BitmapUsed by:604
Symbol 604 GraphicUses:603Used by:605
Symbol 605 MovieClip {uno_fla.brickor_v_8_90}Uses:602 604Used by:611
Symbol 606 BitmapUsed by:607
Symbol 607 GraphicUses:606Used by:610
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:610
Symbol 610 MovieClip {uno_fla.brickor_v_9_91}Uses:607 609Used by:611
Symbol 611 MovieClip {uno_fla.next_player_1_82}Uses:570 575 580 585 590 595 600 605 610Used by:797
Symbol 612 BitmapUsed by:613
Symbol 613 GraphicUses:612Used by:616
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:616
Symbol 616 MovieClip {uno_fla.brickor_t_2_93}Uses:613 615Used by:638
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:621
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:621
Symbol 621 MovieClip {uno_fla.brickor_t_3_94}Uses:618 620Used by:638
Symbol 622 BitmapUsed by:623
Symbol 623 GraphicUses:622Used by:626
Symbol 624 BitmapUsed by:625
Symbol 625 GraphicUses:624Used by:626
Symbol 626 MovieClip {uno_fla.brickor_t_5_95}Uses:623 625Used by:638
Symbol 627 BitmapUsed by:628
Symbol 628 GraphicUses:627Used by:631 637
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:631 637
Symbol 631 MovieClip {uno_fla.brickor_t_1_96}Uses:628 630Used by:638
Symbol 632 BitmapUsed by:633
Symbol 633 GraphicUses:632Used by:636
Symbol 634 BitmapUsed by:635
Symbol 635 GraphicUses:634Used by:636
Symbol 636 MovieClip {uno_fla.brickor_t_4_97}Uses:633 635Used by:638
Symbol 637 MovieClip {uno_fla.brickor_t_6_98}Uses:628 630Used by:638
Symbol 638 MovieClip {uno_fla.next_player_2_92}Uses:616 621 626 631 636 637Used by:797
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:643
Symbol 641 BitmapUsed by:642
Symbol 642 GraphicUses:641Used by:643
Symbol 643 MovieClip {uno_fla.brickor_h_1_100}Uses:640 642Used by:689
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:648
Symbol 646 BitmapUsed by:647
Symbol 647 GraphicUses:646Used by:648
Symbol 648 MovieClip {uno_fla.brickor_h_2_101}Uses:645 647Used by:689
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:653
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:653
Symbol 653 MovieClip {uno_fla.brickor_h_3_102}Uses:650 652Used by:689
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:658
Symbol 656 BitmapUsed by:657
Symbol 657 GraphicUses:656Used by:658
Symbol 658 MovieClip {uno_fla.brickor_h_4_103}Uses:655 657Used by:689
Symbol 659 BitmapUsed by:660
Symbol 660 GraphicUses:659Used by:663
Symbol 661 BitmapUsed by:662
Symbol 662 GraphicUses:661Used by:663
Symbol 663 MovieClip {uno_fla.brickor_h_5_104}Uses:660 662Used by:689
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:668
Symbol 666 BitmapUsed by:667
Symbol 667 GraphicUses:666Used by:668
Symbol 668 MovieClip {uno_fla.brickor_h_6_105}Uses:665 667Used by:689
Symbol 669 BitmapUsed by:670
Symbol 670 GraphicUses:669Used by:673
Symbol 671 BitmapUsed by:672
Symbol 672 GraphicUses:671Used by:673
Symbol 673 MovieClip {uno_fla.brickor_h_7_106}Uses:670 672Used by:689
Symbol 674 BitmapUsed by:675
Symbol 675 GraphicUses:674Used by:678
Symbol 676 BitmapUsed by:677
Symbol 677 GraphicUses:676Used by:678
Symbol 678 MovieClip {uno_fla.brickor_h_8_107}Uses:675 677Used by:689
Symbol 679 BitmapUsed by:680
Symbol 680 GraphicUses:679Used by:683
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:681Used by:683
Symbol 683 MovieClip {uno_fla.brickor_h_9_108}Uses:680 682Used by:689
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:688
Symbol 686 BitmapUsed by:687
Symbol 687 GraphicUses:686Used by:688
Symbol 688 MovieClip {uno_fla.brickor_v_10_109}Uses:685 687Used by:689
Symbol 689 MovieClip {uno_fla.next_player_3_99}Uses:643 648 653 658 663 668 673 678 683 688Used by:797
Symbol 690 MovieClipUsed by:797
Symbol 691 MovieClipUsed by:797
Symbol 692 MovieClipUsed by:797
Symbol 693 BitmapUsed by:694
Symbol 694 GraphicUses:693Used by:695
Symbol 695 MovieClipUses:694Used by:797
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:797
Symbol 698 BitmapUsed by:699
Symbol 699 GraphicUses:698Used by:707
Symbol 700 EditableTextUses:76Used by:707
Symbol 701 BitmapUsed by:702
Symbol 702 GraphicUses:701Used by:707
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:703Used by:707
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:707
Symbol 707 MovieClip {uno_fla.pass_114}Uses:699 700 702 704 706Used by:797
Symbol 708 BitmapUsed by:709
Symbol 709 GraphicUses:708Used by:716
Symbol 710 BitmapUsed by:711
Symbol 711 GraphicUses:710Used by:716
Symbol 712 BitmapUsed by:713
Symbol 713 GraphicUses:712Used by:716
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:716
Symbol 716 MovieClip {uno_fla.uno_115}Uses:709 711 713 715Used by:797
Symbol 717 EditableTextUses:76Used by:797
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:722
Symbol 720 BitmapUsed by:721
Symbol 721 GraphicUses:720Used by:722
Symbol 722 MovieClip {uno_fla.btn_music_116}Uses:719 721Used by:797
Symbol 723 BitmapUsed by:724
Symbol 724 GraphicUses:723Used by:727
Symbol 725 BitmapUsed by:726
Symbol 726 GraphicUses:725Used by:727
Symbol 727 MovieClip {uno_fla.btn_sound_117}Uses:724 726Used by:797
Symbol 728 BitmapUsed by:729
Symbol 729 GraphicUses:728Used by:732
Symbol 730 BitmapUsed by:731
Symbol 731 GraphicUses:730Used by:732
Symbol 732 MovieClip {uno_fla.btn_endgame_118}Uses:729 731Used by:797
Symbol 733 BitmapUsed by:734
Symbol 734 GraphicUses:733Used by:747
Symbol 735 BitmapUsed by:736
Symbol 736 GraphicUses:735Used by:737
Symbol 737 MovieClipUses:736Used by:747
Symbol 738 BitmapUsed by:739
Symbol 739 GraphicUses:738Used by:740
Symbol 740 MovieClipUses:739Used by:747
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:741Used by:747
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:747
Symbol 745 BitmapUsed by:746
Symbol 746 GraphicUses:745Used by:747
Symbol 747 MovieClip {king.game.uno.view.ClockView}Uses:734 737 740 742 744 746Used by:797
Symbol 748 BitmapUsed by:749
Symbol 749 GraphicUses:748Used by:756
Symbol 750 BitmapUsed by:751
Symbol 751 GraphicUses:750Used by:756
Symbol 752 BitmapUsed by:753
Symbol 753 GraphicUses:752Used by:756
Symbol 754 BitmapUsed by:755
Symbol 755 GraphicUses:754Used by:756
Symbol 756 MovieClip {uno_fla.lamp_119}Uses:749 751 753 755Used by:797
Symbol 757 EditableTextUses:76Used by:797
Symbol 758 BitmapUsed by:759
Symbol 759 GraphicUses:758Used by:775
Symbol 760 BitmapUsed by:761
Symbol 761 GraphicUses:760Used by:774
Symbol 762 BitmapUsed by:763
Symbol 763 GraphicUses:762Used by:774
Symbol 764 BitmapUsed by:765
Symbol 765 GraphicUses:764Used by:774
Symbol 766 BitmapUsed by:767
Symbol 767 GraphicUses:766Used by:774
Symbol 768 BitmapUsed by:769
Symbol 769 GraphicUses:768Used by:774
Symbol 770 BitmapUsed by:771
Symbol 771 GraphicUses:770Used by:774
Symbol 772 BitmapUsed by:773
Symbol 773 GraphicUses:772Used by:774
Symbol 774 MovieClip {uno_fla.station_right_lamps_121}Uses:761 763 765 767 769 771 773Used by:775
Symbol 775 MovieClip {uno_fla.station_right_over_120}Uses:759 774Used by:797
Symbol 776 BitmapUsed by:777
Symbol 777 GraphicUses:776Used by:793
Symbol 778 BitmapUsed by:779
Symbol 779 GraphicUses:778Used by:792
Symbol 780 BitmapUsed by:781
Symbol 781 GraphicUses:780Used by:792
Symbol 782 BitmapUsed by:783
Symbol 783 GraphicUses:782Used by:792
Symbol 784 BitmapUsed by:785
Symbol 785 GraphicUses:784Used by:792
Symbol 786 BitmapUsed by:787
Symbol 787 GraphicUses:786Used by:792
Symbol 788 BitmapUsed by:789
Symbol 789 GraphicUses:788Used by:792
Symbol 790 BitmapUsed by:791
Symbol 791 GraphicUses:790Used by:792
Symbol 792 MovieClip {uno_fla.station_left_lamps_123}Uses:779 781 783 785 787 789 791Used by:793
Symbol 793 MovieClip {uno_fla.station_left_over_122}Uses:777 792Used by:797
Symbol 794 GraphicUses:230Used by:795
Symbol 795 MovieClipUses:794Used by:797
Symbol 796 MovieClipUsed by:797
Symbol 797 MovieClip {PlayClip}Uses:231 411 488 565 611 638 689 690 691 692 695 697 707 716 717 722 727 732 265 747 756 757 775 793 795 796
Symbol 798 GraphicUsed by:878
Symbol 799 EditableTextUses:76Used by:878
Symbol 800 EditableTextUses:76Used by:878
Symbol 801 BitmapUsed by:802
Symbol 802 GraphicUses:801Used by:805
Symbol 803 BitmapUsed by:804
Symbol 804 GraphicUses:803Used by:805
Symbol 805 MovieClip {uno_fla.intro_sound_button_128}Uses:802 804Used by:878
Symbol 806 BitmapUsed by:807
Symbol 807 GraphicUses:806Used by:810
Symbol 808 BitmapUsed by:809
Symbol 809 GraphicUses:808Used by:810
Symbol 810 MovieClip {uno_fla.intro_music_button_129}Uses:807 809Used by:878
Symbol 811 GraphicUsed by:812
Symbol 812 MovieClipUses:811Used by:878
Symbol 813 GraphicUsed by:814
Symbol 814 MovieClipUses:813Used by:815
Symbol 815 MovieClipUses:814Used by:878
Symbol 816 GraphicUsed by:878
Symbol 817 GraphicUsed by:878
Symbol 818 GraphicUsed by:878
Symbol 819 GraphicUsed by:878
Symbol 820 GraphicUsed by:878
Symbol 821 GraphicUsed by:878
Symbol 822 GraphicUsed by:878
Symbol 823 GraphicUsed by:878
Symbol 824 GraphicUsed by:825
Symbol 825 MovieClipUses:824Used by:878
Symbol 826 EditableTextUses:76Used by:846
Symbol 827 EditableTextUses:76Used by:846
Symbol 828 EditableTextUses:76Used by:846
Symbol 829 EditableTextUses:76Used by:846
Symbol 830 BitmapUsed by:831
Symbol 831 GraphicUses:830Used by:832
Symbol 832 MovieClipUses:831Used by:846
Symbol 833 BitmapUsed by:834
Symbol 834 GraphicUses:833Used by:835
Symbol 835 MovieClipUses:834Used by:846
Symbol 836 EditableTextUses:76Used by:846
Symbol 837 EditableTextUses:76Used by:846
Symbol 838 EditableTextUses:76Used by:846
Symbol 839 BitmapUsed by:840
Symbol 840 GraphicUses:839Used by:841
Symbol 841 MovieClipUses:840Used by:846
Symbol 842 EditableTextUses:76Used by:846
Symbol 843 BitmapUsed by:844
Symbol 844 GraphicUses:843Used by:846
Symbol 845 EditableTextUses:76Used by:846
Symbol 846 MovieClip {intro_page1}Uses:826 827 828 829 832 835 836 837 838 841 842 844 845Used by:878
Symbol 847 BitmapUsed by:848
Symbol 848 GraphicUses:847Used by:851
Symbol 849 BitmapUsed by:850
Symbol 850 GraphicUses:849Used by:851
Symbol 851 MovieClip {uno_fla.nextBtn_133}Uses:848 850Used by:878
Symbol 852 EditableTextUses:76Used by:877
Symbol 853 EditableTextUses:76Used by:877
Symbol 854 EditableTextUses:76Used by:877
Symbol 855 EditableTextUses:76Used by:877
Symbol 856 EditableTextUses:76Used by:877
Symbol 857 EditableTextUses:76Used by:877
Symbol 858 EditableTextUses:76Used by:877
Symbol 859 EditableTextUses:76Used by:877
Symbol 860 EditableTextUses:76Used by:877
Symbol 861 EditableTextUses:76Used by:877
Symbol 862 BitmapUsed by:863
Symbol 863 GraphicUses:862Used by:864
Symbol 864 MovieClipUses:863Used by:877
Symbol 865 BitmapUsed by:866
Symbol 866 GraphicUses:865Used by:867
Symbol 867 MovieClipUses:866Used by:877
Symbol 868 BitmapUsed by:869
Symbol 869 GraphicUses:868Used by:870
Symbol 870 MovieClipUses:869Used by:877
Symbol 871 BitmapUsed by:872
Symbol 872 GraphicUses:871Used by:873
Symbol 873 MovieClipUses:872Used by:877
Symbol 874 BitmapUsed by:875
Symbol 875 GraphicUses:874Used by:876
Symbol 876 MovieClipUses:875Used by:877
Symbol 877 MovieClip {intro_page2}Uses:852 853 854 855 856 857 858 859 860 861 864 867 870 873 876Used by:878
Symbol 878 MovieClipUses:798 799 800 805 810 139 812 815 816 817 818 819 820 821 822 823 825 846 851 877Used by:879
Symbol 879 MovieClip {intro_sign}Uses:878
Symbol 880 MovieClip {MultiFileBlock1_1516460078}

Instance Names

"score"Symbol 80 MovieClip {handscore} Frame 1Symbol 79 EditableText
"txt"Symbol 85 MovieClip {action_draw4} Frame 1Symbol 84 EditableText
"txt"Symbol 90 MovieClip {action_draw2} Frame 1Symbol 89 EditableText
"txt"Symbol 95 MovieClip {action_skip} Frame 1Symbol 94 EditableText
"txt"Symbol 100 MovieClip {action_reverse} Frame 1Symbol 99 EditableText
"green_back"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 104 MovieClip
"blue_back"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 104 MovieClip
"yellow_back"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 104 MovieClip
"red_back"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 104 MovieClip
"red"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 106 MovieClip {uno_fla.btn_red_27}
"green"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 108 MovieClip {uno_fla.btn_green_28}
"blue"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 110 MovieClip {uno_fla.btn_blue_29}
"txt"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 111 EditableText
"header"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 112 EditableText
"yellow"Symbol 115 MovieClip {choose_color_sign} Frame 1Symbol 114 MovieClip {uno_fla.btn_yellow_30}
"card"Symbol 132 MovieClip {BubbleLeft} Frame 1Symbol 126 MovieClip {uno_fla.small_card_32}
"txt"Symbol 132 MovieClip {BubbleLeft} Frame 1Symbol 127 EditableText
"card"Symbol 137 MovieClip {BubbleRight} Frame 1Symbol 126 MovieClip {uno_fla.small_card_32}
"txt"Symbol 137 MovieClip {BubbleRight} Frame 1Symbol 134 EditableText
"star"Symbol 168 MovieClip {draw_winner_sign} Frame 1Symbol 141 MovieClip
"bot"Symbol 168 MovieClip {draw_winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"txt"Symbol 168 MovieClip {draw_winner_sign} Frame 1Symbol 167 EditableText
"grontsken_halv"Symbol 173 MovieClip Frame 1Symbol 170 MovieClip
"bot1"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"bot2"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"bot3"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"txt1"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 176 EditableText
"txt2"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 177 EditableText
"txt3"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 178 EditableText
"ntxt"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 179 EditableText
"txt"Symbol 181 MovieClip {round_winner_sign} Frame 1Symbol 180 EditableText
"bot1"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"bot2"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"bot3"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"txt1"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 185 EditableText
"txt2"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 186 EditableText
"txt3"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 187 EditableText
"txt_total_score_value"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 188 EditableText
"txt_score"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 189 EditableText
"txt_total_score"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 191 EditableText
"txt_score_value"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 192 EditableText
"txt_extra"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 193 EditableText
"txt_extra_value"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 194 EditableText
"txt_time_bonus"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 195 EditableText
"txt_time_bonus_value"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 196 EditableText
"plupps1"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 199 MovieClip
"plupps2"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 201 MovieClip
"txt_game_ends"Symbol 203 MovieClip {winner_sign} Frame 1Symbol 202 EditableText
"txt"Symbol 205 MovieClip {missed_say_uno_sign} Frame 1Symbol 204 EditableText
"bot"Symbol 205 MovieClip {missed_say_uno_sign} Frame 1Symbol 166 MovieClip {uno_fla.bot_plain_37}
"txt"Symbol 207 MovieClip {register_sign} Frame 1Symbol 206 EditableText
"light2"Symbol 265 MovieClip {uno_fla.button_lights_61} Frame 1Symbol 264 MovieClip {uno_fla.button_light_62}
"light1"Symbol 265 MovieClip {uno_fla.button_lights_61} Frame 1Symbol 264 MovieClip {uno_fla.button_light_62}
"drawbtn_back"Symbol 411 MovieClip Frame 1Symbol 238 MovieClip {uno_fla.draw_button_anim_59}
"drawbtn"Symbol 411 MovieClip Frame 1Symbol 249 MovieClip {uno_fla.draw_button_60}
"drawbtn_lights"Symbol 411 MovieClip Frame 1Symbol 265 MovieClip {uno_fla.button_lights_61}
"glow"Symbol 411 MovieClip Frame 1Symbol 308 MovieClip {uno_fla.glowc_65}
"glow2"Symbol 411 MovieClip Frame 1Symbol 308 MovieClip {uno_fla.glowc_65}
"dir"Symbol 411 MovieClip Frame 1Symbol 341 MovieClip {uno_fla.dir_66}
"numbers1"Symbol 411 MovieClip Frame 1Symbol 362 MovieClip {uno_fla.numbers1_67}
"numbers0"Symbol 411 MovieClip Frame 1Symbol 379 MovieClip {uno_fla.numbers2_68}
"numbers2"Symbol 411 MovieClip Frame 1Symbol 362 MovieClip {uno_fla.numbers1_67}
"shuffle"Symbol 411 MovieClip Frame 1Symbol 410 MovieClip {uno_fla.shuffle_69}
"head"Symbol 487 MovieClip {uno_fla.bot_left_72} Frame 1Symbol 444 MovieClip {uno_fla.bot_blue_73}
"head"Symbol 487 MovieClip {uno_fla.bot_left_72} Frame 3Symbol 465 MovieClip {uno_fla.bot_brown_74}
"head"Symbol 487 MovieClip {uno_fla.bot_left_72} Frame 5Symbol 486 MovieClip {uno_fla.bot_purple_75}
"lamp"Symbol 488 MovieClip {uno_fla.station_left_70} Frame 1Symbol 422 MovieClip {uno_fla.station_left_lamp_71}
"numcards"Symbol 488 MovieClip {uno_fla.station_left_70} Frame 1Symbol 423 EditableText
"bot"Symbol 488 MovieClip {uno_fla.station_left_70} Frame 1Symbol 487 MovieClip {uno_fla.bot_left_72}
"head"Symbol 564 MovieClip {uno_fla.bot_right_78} Frame 1Symbol 521 MovieClip {uno_fla.bot_red_79}
"head"Symbol 564 MovieClip {uno_fla.bot_right_78} Frame 3Symbol 542 MovieClip {uno_fla.bot_yellow_80}
"head"Symbol 564 MovieClip {uno_fla.bot_right_78} Frame 5Symbol 563 MovieClip {uno_fla.bot_green_81}
"lamp"Symbol 565 MovieClip {uno_fla.station_right_76} Frame 1Symbol 499 MovieClip {uno_fla.station_right_lamp_77}
"numcards"Symbol 565 MovieClip {uno_fla.station_right_76} Frame 1Symbol 500 EditableText
"bot"Symbol 565 MovieClip {uno_fla.station_right_76} Frame 1Symbol 564 MovieClip {uno_fla.bot_right_78}
"stone9"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 570 MovieClip {uno_fla.brickor_v_7_83}
"stone8"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 575 MovieClip {uno_fla.brickor_v_6_84}
"stone7"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 580 MovieClip {uno_fla.brickor_v_5_85}
"stone6"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 585 MovieClip {uno_fla.brickor_v_4_86}
"stone5"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 590 MovieClip {uno_fla.brickor_v_3_87}
"stone4"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 595 MovieClip {uno_fla.brickor_v_2_88}
"stone3"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 600 MovieClip {uno_fla.brickor_v_1_89}
"stone2"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 605 MovieClip {uno_fla.brickor_v_8_90}
"stone1"Symbol 611 MovieClip {uno_fla.next_player_1_82} Frame 1Symbol 610 MovieClip {uno_fla.brickor_v_9_91}
"stone2"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 616 MovieClip {uno_fla.brickor_t_2_93}
"stone3"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 621 MovieClip {uno_fla.brickor_t_3_94}
"stone5"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 626 MovieClip {uno_fla.brickor_t_5_95}
"stone1"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 631 MovieClip {uno_fla.brickor_t_1_96}
"stone4"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 636 MovieClip {uno_fla.brickor_t_4_97}
"stone6"Symbol 638 MovieClip {uno_fla.next_player_2_92} Frame 1Symbol 637 MovieClip {uno_fla.brickor_t_6_98}
"stone1"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 643 MovieClip {uno_fla.brickor_h_1_100}
"stone2"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 648 MovieClip {uno_fla.brickor_h_2_101}
"stone3"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 653 MovieClip {uno_fla.brickor_h_3_102}
"stone4"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 658 MovieClip {uno_fla.brickor_h_4_103}
"stone5"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 663 MovieClip {uno_fla.brickor_h_5_104}
"stone6"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 668 MovieClip {uno_fla.brickor_h_6_105}
"stone7"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 673 MovieClip {uno_fla.brickor_h_7_106}
"stone8"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 678 MovieClip {uno_fla.brickor_h_8_107}
"stone9"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 683 MovieClip {uno_fla.brickor_h_9_108}
"stone10"Symbol 689 MovieClip {uno_fla.next_player_3_99} Frame 1Symbol 688 MovieClip {uno_fla.brickor_v_10_109}
"pass_active"Symbol 707 MovieClip {uno_fla.pass_114} Frame 1Symbol 700 EditableText
"bg"Symbol 747 MovieClip {king.game.uno.view.ClockView} Frame 1Symbol 737 MovieClip
"arrow"Symbol 747 MovieClip {king.game.uno.view.ClockView} Frame 1Symbol 740 MovieClip
"lamps"Symbol 775 MovieClip {uno_fla.station_right_over_120} Frame 1Symbol 774 MovieClip {uno_fla.station_right_lamps_121}
"lamps"Symbol 793 MovieClip {uno_fla.station_left_over_122} Frame 1Symbol 792 MovieClip {uno_fla.station_left_lamps_123}
"table"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 411 MovieClip
"station_left"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 488 MovieClip {uno_fla.station_left_70}
"station_right"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 565 MovieClip {uno_fla.station_right_76}
"stones1"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 611 MovieClip {uno_fla.next_player_1_82}
"stones2"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 638 MovieClip {uno_fla.next_player_2_92}
"stones3"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 689 MovieClip {uno_fla.next_player_3_99}
"stack"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 690 MovieClip
"bubbles"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 691 MovieClip
"cards"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 692 MovieClip
"avatarHolder"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 695 MovieClip
"pass"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 707 MovieClip {uno_fla.pass_114}
"uno"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 716 MovieClip {uno_fla.uno_115}
"round"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 717 EditableText
"btn_music"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 722 MovieClip {uno_fla.btn_music_116}
"btn_sound"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 727 MovieClip {uno_fla.btn_sound_117}
"btn_endgame"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 732 MovieClip {uno_fla.btn_endgame_118}
"uno_lights"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 265 MovieClip {uno_fla.button_lights_61}
"pass_lights"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 265 MovieClip {uno_fla.button_lights_61}
"clock"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 747 MovieClip {king.game.uno.view.ClockView}
"lamp"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 756 MovieClip {uno_fla.lamp_119}
"numcards"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 757 EditableText
"station_right_over"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 775 MovieClip {uno_fla.station_right_over_120}
"station_left_over"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 793 MovieClip {uno_fla.station_left_over_122}
"fg"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 795 MovieClip
"signs"Symbol 797 MovieClip {PlayClip} Frame 1Symbol 796 MovieClip
"intro_draw_text"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 826 EditableText
"intro_objectives_text"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 827 EditableText
"intro_uno_text"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 828 EditableText
"intro_pass_text"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 829 EditableText
"intro_draw_header"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 836 EditableText
"intro_pass_header"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 837 EditableText
"intro_uno_header"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 838 EditableText
"intro_objectives_header"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 842 EditableText
"pass"Symbol 846 MovieClip {intro_page1} Frame 1Symbol 845 EditableText
"intro_wild_text"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 852 EditableText
"intro_wild_draw4_text"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 853 EditableText
"intro_draw_two_text"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 854 EditableText
"intro_skip_text"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 855 EditableText
"intro_reverse_text"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 856 EditableText
"intro_draw_two_header"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 857 EditableText
"intro_skip_header"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 858 EditableText
"intro_reverse_header"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 859 EditableText
"intro_wild_header"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 860 EditableText
"intro_wild_draw4_header"Symbol 877 MovieClip {intro_page2} Frame 1Symbol 861 EditableText
"txt_game_starts"Symbol 878 MovieClip Frame 1Symbol 799 EditableText
"txt_copyright"Symbol 878 MovieClip Frame 1Symbol 800 EditableText
"soundBtn"Symbol 878 MovieClip Frame 1Symbol 805 MovieClip {uno_fla.intro_sound_button_128}
"musicBtn"Symbol 878 MovieClip Frame 1Symbol 810 MovieClip {uno_fla.intro_music_button_129}
"clickArea"Symbol 878 MovieClip Frame 1Symbol 825 MovieClip
"page1"Symbol 878 MovieClip Frame 46Symbol 846 MovieClip {intro_page1}
"nextBtn"Symbol 878 MovieClip Frame 46Symbol 851 MovieClip {uno_fla.nextBtn_133}
"intro"Symbol 879 MovieClip {intro_sign} Frame 1Symbol 878 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1953 bytes "<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmln ..."
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$.Z$A.OYQ.MW6XO6yIOASuXKL0."




http://swfchan.com/52/255943/info.shtml
Created: 8/6 -2024 07:49:35 Last modified: 8/6 -2024 07:49:35 Server time: 01/11 -2024 00:14:10