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

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

Colony - an awesome Real-Time-Strategy game online.swf

This is the info page for
Flash #89313

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


Text
Note: You may only
gain statistics from
games that contain
no empty slots, and
no Easy CPU's.

No restrictions on
units or buildings.

Normal

Missiles are
restricted.

Cold War

Missiles and Black
Queens are
restricted.

Safe Skies

Air units only.

Dogfight

Ground units only.

Earthquake

Mechanics Terminal,
Arsenal, and Missiles
are restricted.

Low Tech

Game Settings

Current Players

Chat Box

Advertisment

game room

None

TEAM 2

TEAM 1

Not Loaded

Note: Game settings will
only work on human
players, and not CPU
players.

Click to change.

Enter Game Name:

create game

Fascists

Communist

Capitalist

Profile

Players Online

0

Rank:

Chat Room

Game List

0

-

0

0

Consecutive Wins:

Win Ratio:

Games Won:

Games Played:

Government

multiplayer lobby

<p align="left"><font face="HelveticaNeue Light" size="20" color="#525544" letterSpacing="0.000000" kerning="0">Data<font color="#7e8165">Tracer</font></font></p>

Message Blah Blah Blah Blah

<p align="left"><font face="Helvetica Neue_14pt_st" size="14" color="#f3b7fb" letterSpacing="2.000000" kerning="0">100</font></p>

999

999

999

2265

2252

2207

2185

2141

2132

2115

2009

2273

2009

play

play

<p align="left"><font face="standard 09_56" size="11" color="#ff6666" letterSpacing="1.000000" kerning="0"><b>Moston,</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#ff6666" letterSpacing="1.000000" kerning="0"><b>Do you trust this &apos;P&apos; guy? I don&apos;t. Yes he freed us, but I think he is going to use us, just like the USC did. You&apos;re one of the few people I can depend on, Moston, and I your need your help. We&apos;re going to break away from Beatrix and Jetzul tonight, and wage our own war against the USC.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#ff6666" letterSpacing="1.000000" kerning="0"><b>From Killjoy</b></font></p>

1. You are playing as Communists
this mission. Communists have a
higher rate of manpower income, but
get less energy. You also gain money
and influence from killing enemy units.

Mission Tips

MISSION6
DIVISION

<p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>Captain Baylet,</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>I heard about the attack, and I&apos;m glad you made it out alive. General Glastondale&apos;s been critically injured and is currently in hospital. We are very low on reinforcements. Meet me at Sierra Eden, I need you to operate our missile base there.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>General L. Mortfang</b></font></p>

2. Hover Tanks, Black Queens, and
Gladiators have missile resistant armor.

1. Missiles will strike at the units
closest to your base. When there are
no units, it will target the base instead.

Mission Tips

MISSION5
HELLFIRE

<p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>Jetzul,</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>Good job so far, but I&apos;m going to need you back in South Athenia. General Glastondale himself is there right now, and the security around him is mediocre at best. We can&apos;t miss this chance to strike down one of our deadliest enemies.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>From P</b></font></p>

1. Light weapon types, such as the
Roman's pulse rifle, deals little
damage to Chronite armor, but is the
most effective weapon type against
the enemy base.

Mission Tips

MISSION4
ASSASSINATION

<p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>Captain Baylet, </b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>Our systems are back online and we&apos;ve just received your SOS message. Enemy forces seem to consist of the freed labour workers, with rogue Captains from our own ranks leading them. Stay alive for a while longer. General Glastondale himself is on his way to South Athenia.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>General L. Mortfang</b></font></p>

2. One of the best defences against
massed air units is auto-building
Marines.

1. Meditecs can be deployed from the
hospital, and can heal any ground
units.

Mission Tips

MISSION3
RESCUE

<p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>Jetzul,</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>Do you like the smell of freedom? Our strike at the communication satellite was a direct hit, and the settlements still cannot contact each other. I&apos;m sending you to work with Captain Beatrix. You need to take over Alexigrad and obtain the Sakata research data. Hurry.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#91f4ff" letterSpacing="1.000000" kerning="0"><b>From P</b></font></p>

2. As Fascists, you will build
structures and units much faster.

1. Having units in the field gives you
more influence (    ). The more of the
field your units control, the more
influence you get.

Mission Tips

MISSION2
ELIMINATION

<p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>Dear Captain Baylet,</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>Please report in to the town&apos;s central base as soon as you receive this. There&apos;s been a problem with our communication lines, we can&apos;t seem to contact anyone outside of our own settlement. Captain Jameson is ill so I need you to take over his post. I&apos;ll explain everything once you get here.</b></font></p><p align="left"></p><p align="left"><font face="standard 09_56" size="11" color="#b3ff9f" letterSpacing="1.000000" kerning="0"><b>- Captain Jorin</b></font></p>

3. You are playing as Capitalists this
mission. Capitalists get resources
from buildings 20% faster.

2. Use 'Shift' to toggle auto-build.

1. Press Enter to chat to your ally.

Mission Tips

MISSION1
BLACKOUT

NO
ICON

Rendering Graphics.
Please Wait.

6

v3.1

Created by Jakrin (Krin) Juangbhanich
Music and Sound by David Orr
Blossom Server by Jiggmin
Victory and Defeat screens by Joan Casaramona.
Developed and published by Armor Games.
Copyright 2009 Armor Games Inc.

5

4

3

2

1

Government:

Name:

Player

Choose a server:

next

password:

user name:

email (optional):

*re-type password:

*password:

*user name:

This is an anonymous
server. Stats and user data
cannot be saved on this
server.

Name

vs

Name

Name

Name

CONTINUTE

Are you sure that you want to quit?

<p align="left"><font face="Helvetica Neue" size="16" color="#88fdfc" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#ffeca2" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#bef25f" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#f3b7fb" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#88fdfc" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#ffeca2" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#bef25f" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#f3b7fb" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#88fdfc" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#ffeca2" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#bef25f" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#f3b7fb" letterSpacing="2.000000" kerning="0">0</font></p>

To Ally:

Blah Blah Blah Blah Blah

Special Operations

<p align="left"><font face="Helvetica Neue" size="16" color="#88fdfc" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#ffeca2" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="left"><font face="Helvetica Neue" size="16" color="#bef25f" letterSpacing="2.000000" kerning="0">0</font></p>

Chat Example Lol!

<p align="left"><font face="Helvetica Neue" size="16" color="#f3b7fb" letterSpacing="2.000000" kerning="0">0</font></p>

<p align="center"><font face="Times New Roman" size="43" color="#ffffff" letterSpacing="8.000000" kerning="0">DEFEAT</font></p>

ActionScript [AS3]

Section 1
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public function JSON(){ super(); } public static function decode(s:String){ var decoder:JSONDecoder; decoder = new JSONDecoder(s); return (decoder.getValue()); } public static function encode(o:Object):String{ var encoder:JSONEncoder; encoder = new JSONEncoder(o); return (encoder.getString()); } } }//package com.adobe.serialization.json
Section 2
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(s:String){ super(); tokenizer = new JSONTokenizer(s); nextToken(); value = parseValue(); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } private function parseObject():Object{ var o:Object; var key:String; o = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (o); }; while (true) { if (token.type == JSONTokenType.STRING){ key = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); o[key] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (o); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } private function parseArray():Array{ var a:Array; a = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (a); }; while (true) { a.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (a); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } public function getValue(){ return (value); } private function parseValue():Object{ switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } } }//package com.adobe.serialization.json
Section 3
//JSONEncoder (com.adobe.serialization.json.JSONEncoder) package com.adobe.serialization.json { import flash.utils.*; public class JSONEncoder { private var jsonString:String; public function JSONEncoder(value){ super(); jsonString = convertToString(value); } private function arrayToString(a:Array):String{ var s:String; var i:int; s = ""; i = 0; while (i < a.length) { if (s.length > 0){ s = (s + ","); }; s = (s + convertToString(a[i])); i++; }; return ((("[" + s) + "]")); } private function convertToString(value):String{ if ((value is String)){ return (escapeString((value as String))); }; if ((value is Number)){ return ((isFinite((value as Number))) ? value.toString() : "null"); } else { if ((value is Boolean)){ return ((value) ? "true" : "false"); } else { if ((value is Array)){ return (arrayToString((value as Array))); }; if ((((value is Object)) && (!((value == null))))){ return (objectToString(value)); }; }; }; return ("null"); } private function escapeString(str:String):String{ var s:String; var ch:String; var len:Number; var i:int; var hexCode:String; var zeroPad:String; s = ""; len = str.length; i = 0; while (i < len) { ch = str.charAt(i); switch (ch){ case "\"": s = (s + "\\\""); break; case "\\": s = (s + "\\\\"); break; case "\b": s = (s + "\\b"); break; case "\f": s = (s + "\\f"); break; case "\n": s = (s + "\\n"); break; case "\r": s = (s + "\\r"); break; case "\t": s = (s + "\\t"); break; default: if (ch < " "){ hexCode = ch.charCodeAt(0).toString(16); zeroPad = ((hexCode.length == 2)) ? "00" : "000"; s = (s + (("\\u" + zeroPad) + hexCode)); } else { s = (s + ch); }; }; i++; }; return ((("\"" + s) + "\"")); } private function objectToString(o:Object):String{ var s:String; var classInfo:XML; var value:Object; var key:String; var v:XML; var o = o; s = ""; classInfo = describeType(o); if (classInfo.@name.toString() == "Object"){ for (key in o) { value = o[key]; if ((value is Function)){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(key) + ":") + convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name]))); }; }; return ((("{" + s) + "}")); } public function getString():String{ return (jsonString); } } }//package com.adobe.serialization.json
Section 4
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _text:String; private var _location:int; public function JSONParseError(message:String="", location:int=0, text:String=""){ super(message); _location = location; _text = text; } public function get text():String{ return (_text); } public function get location():int{ return (_location); } } }//package com.adobe.serialization.json
Section 5
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(type:int=-1, value:Object=null){ super(); _type = type; _value = value; } public function set value(v:Object):void{ _value = v; } public function get value():Object{ return (_value); } public function set type(value:int):void{ _type = value; } public function get type():int{ return (_type); } } }//package com.adobe.serialization.json
Section 6
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var ch:String; private var obj:Object; private var jsonString:String; public function JSONTokenizer(s:String){ super(); jsonString = s; loc = 0; nextChar(); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } private function isDigit(ch:String):Boolean{ return ((((ch >= "0")) && ((ch <= "9")))); } private function readNumber():JSONToken{ var token:JSONToken; var input:String; var num:Number; token = new JSONToken(); token.type = JSONTokenType.NUMBER; input = ""; if (ch == "-"){ input = (input + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ input = (input + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); }; } else { while (isDigit(ch)) { input = (input + ch); nextChar(); }; }; if (ch == "."){ input = (input + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { input = (input + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ input = (input + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ input = (input + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { input = (input + ch); nextChar(); }; }; num = Number(input); if (((isFinite(num)) && (!(isNaN(num))))){ token.value = num; return (token); }; parseError((("Number " + num) + " is not valid!")); return (null); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var token:JSONToken; var _local2:String; var _local3:String; var _local4:String; token = new JSONToken(); skipIgnored(); switch (ch){ case "{": token.type = JSONTokenType.LEFT_BRACE; token.value = "{"; nextChar(); break; case "}": token.type = JSONTokenType.RIGHT_BRACE; token.value = "}"; nextChar(); break; case "[": token.type = JSONTokenType.LEFT_BRACKET; token.value = "["; nextChar(); break; case "]": token.type = JSONTokenType.RIGHT_BRACKET; token.value = "]"; nextChar(); break; case ",": token.type = JSONTokenType.COMMA; token.value = ","; nextChar(); break; case ":": token.type = JSONTokenType.COLON; token.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ token.type = JSONTokenType.TRUE; token.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ token.type = JSONTokenType.FALSE; token.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ token.type = JSONTokenType.NULL; token.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": token = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ token = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (token); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } private function isWhiteSpace(ch:String):Boolean{ return ((((((ch == " ")) || ((ch == "\t")))) || ((ch == "\n")))); } public function parseError(message:String):void{ throw (new JSONParseError(message, loc, jsonString)); } private function skipIgnored():void{ skipWhite(); skipComments(); skipWhite(); } private function isHexDigit(ch:String):Boolean{ var uc:String; uc = ch.toUpperCase(); return (((isDigit(ch)) || ((((uc >= "A")) && ((uc <= "F")))))); } private function readString():JSONToken{ var token:JSONToken; var string:String; var _local5:String; var i:int; token = new JSONToken(); token.type = JSONTokenType.STRING; string = ""; nextChar(); while (((!((ch == "\""))) && (!((ch == ""))))) { if (ch == "\\"){ nextChar(); switch (ch){ case "\"": string = (string + "\""); break; case "/": string = (string + "/"); break; case "\\": string = (string + "\\"); break; case "b": string = (string + "\b"); break; case "f": string = (string + "\f"); break; case "n": string = (string + "\n"); break; case "r": string = (string + "\r"); break; case "t": string = (string + "\t"); break; case "u": _local5 = ""; i = 0; while (i < 4) { if (!isHexDigit(nextChar())){ parseError((" Excepted a hex digit, but found: " + ch)); }; _local5 = (_local5 + ch); i++; }; string = (string + String.fromCharCode(parseInt(_local5, 16))); break; default: string = (string + ("\\" + ch)); }; } else { string = (string + ch); }; nextChar(); }; if (ch == ""){ parseError("Unterminated string literal"); }; nextChar(); token.value = string; return (token); } } }//package com.adobe.serialization.json
Section 7
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const NUMBER:int = 11; public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACKET:int = 3; public static const STRING:int = 10; public static const LEFT_BRACE:int = 1; public static const COLON:int = 6; public function JSONTokenType(){ super(); } } }//package com.adobe.serialization.json
Section 8
//ARC4 (com.hurlant.crypto.prng.ARC4) package com.hurlant.crypto.prng { import flash.utils.*; import com.hurlant.crypto.symmetric.*; import com.hurlant.util.*; public class ARC4 implements IPRNG, IStreamCipher { private const psize:uint = 0x0100; private var S:ByteArray; private var i:int;// = 0 private var j:int;// = 0 public function ARC4(key:ByteArray=null){ i = 0; j = 0; super(); S = new ByteArray(); if (key){ init(key); }; } public function decrypt(block:ByteArray):void{ encrypt(block); } public function init(key:ByteArray):void{ var i:int; var j:int; var t:int; i = 0; while (i < 0x0100) { S[i] = i; i++; }; j = 0; i = 0; while (i < 0x0100) { j = (((j + S[i]) + key[(i % key.length)]) & 0xFF); t = S[i]; S[i] = S[j]; S[j] = t; i++; }; this.i = 0; this.j = 0; } public function dispose():void{ var i:uint; i = 0; if (S != null){ i = 0; while (i < S.length) { S[i] = (Math.random() * 0x0100); i++; }; S.length = 0; S = null; }; this.i = 0; this.j = 0; Memory.gc(); } public function encrypt(block:ByteArray):void{ var i:uint; i = 0; while (i < block.length) { var _temp1 = i; i = (i + 1); var _local3 = _temp1; block[_local3] = (block[_local3] ^ next()); }; } public function next():uint{ var t:int; i = ((i + 1) & 0xFF); j = ((j + S[i]) & 0xFF); t = S[i]; S[i] = S[j]; S[j] = t; return (S[((t + S[i]) & 0xFF)]); } public function getBlockSize():uint{ return (1); } public function getPoolSize():uint{ return (psize); } public function toString():String{ return ("rc4"); } } }//package com.hurlant.crypto.prng
Section 9
//IPRNG (com.hurlant.crypto.prng.IPRNG) package com.hurlant.crypto.prng { import flash.utils.*; public interface IPRNG { function init(/Users/Krin/Flash/Multiplayer/giraffe;com/hurlant/crypto/prng;IPRNG.as:ByteArray):void; function next():uint; function dispose():void; function getPoolSize():uint; function toString():String; } }//package com.hurlant.crypto.prng
Section 10
//Random (com.hurlant.crypto.prng.Random) package com.hurlant.crypto.prng { import flash.utils.*; import flash.text.*; import com.hurlant.util.*; import flash.system.*; public class Random { private var psize:int; private var ready:Boolean;// = false private var seeded:Boolean;// = false private var state:IPRNG; private var pool:ByteArray; private var pptr:int; public function Random(prng:Class=null){ var t:uint; ready = false; seeded = false; super(); if (prng == null){ prng = ARC4; }; state = (new (prng) as IPRNG); psize = state.getPoolSize(); pool = new ByteArray(); pptr = 0; while (pptr < psize) { t = (65536 * Math.random()); var _local3 = pptr++; pool[_local3] = (t >>> 8); var _local4 = pptr++; pool[_local4] = (t & 0xFF); }; pptr = 0; seed(); } public function seed(x:int=0):void{ if (x == 0){ x = new Date().getTime(); }; var _local2 = pptr++; pool[_local2] = (pool[_local2] ^ (x & 0xFF)); var _local3 = pptr++; pool[_local3] = (pool[_local3] ^ ((x >> 8) & 0xFF)); var _local4 = pptr++; pool[_local4] = (pool[_local4] ^ ((x >> 16) & 0xFF)); var _local5 = pptr++; pool[_local5] = (pool[_local5] ^ ((x >> 24) & 0xFF)); pptr = (pptr % psize); seeded = true; } public function toString():String{ return (("random-" + state.toString())); } public function dispose():void{ var i:uint; i = 0; while (i < pool.length) { pool[i] = (Math.random() * 0x0100); i++; }; pool.length = 0; pool = null; state.dispose(); state = null; psize = 0; pptr = 0; Memory.gc(); } public function autoSeed():void{ var b:ByteArray; var a:Array; var f:Font; b = new ByteArray(); b.writeUnsignedInt(System.totalMemory); b.writeUTF(Capabilities.serverString); b.writeUnsignedInt(getTimer()); b.writeUnsignedInt(new Date().getTime()); a = Font.enumerateFonts(true); for each (f in a) { b.writeUTF(f.fontName); b.writeUTF(f.fontStyle); b.writeUTF(f.fontType); }; b.position = 0; while (b.bytesAvailable >= 4) { seed(b.readUnsignedInt()); }; } public function nextByte():int{ if (!ready){ if (!seeded){ autoSeed(); }; state.init(pool); pool.length = 0; pptr = 0; ready = true; }; return (state.next()); } public function nextBytes(buffer:ByteArray, length:int):void{ while (length--) { buffer.writeByte(nextByte()); }; } } }//package com.hurlant.crypto.prng
Section 11
//AESKey (com.hurlant.crypto.symmetric.AESKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; import com.hurlant.crypto.prng.*; public class AESKey implements ISymmetricKey { private var state:ByteArray; private var tmp:ByteArray; private var Nr:uint; private var keyLength:uint; private var key:ByteArray; private static const _Xtime2:Array = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 27, 25, 31, 29, 19, 17, 23, 21, 11, 9, 15, 13, 3, 1, 7, 5, 59, 57, 63, 61, 51, 49, 55, 53, 43, 41, 47, 45, 35, 33, 39, 37, 91, 89, 95, 93, 83, 81, 87, 85, 75, 73, 79, 77, 67, 65, 71, 69, 123, 121, 127, 125, 115, 113, 119, 117, 107, 105, 111, 109, 99, 97, 103, 101, 155, 153, 159, 157, 147, 145, 151, 149, 139, 137, 143, 141, 131, 129, 135, 133, 187, 185, 191, 189, 179, 177, 183, 181, 171, 169, 175, 173, 163, 161, 167, 165, 219, 217, 223, 221, 211, 209, 215, 213, 203, 201, 207, 205, 195, 193, 199, 197, 251, 249, 0xFF, 253, 243, 241, 247, 245, 235, 233, 239, 237, 227, 225, 231, 229]; private static const _Xtime9:Array = [0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 0xFF, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70]; private static const Nb:uint = 4; private static const _XtimeB:Array = [0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 0xFF, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163]; private static const _XtimeE:Array = [0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 0xFF, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141]; private static const _Xtime2Sbox:Array = [198, 248, 238, 246, 0xFF, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44]; private static const _Xtime3Sbox:Array = [165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 0xFF, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58]; private static const _InvSbox:Array = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 0xFF, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]; private static const _XtimeD:Array = [0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 0xFF, 180, 185, 174, 163, 128, 141, 154, 151]; private static const _Sbox:Array = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 0xFF, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]; private static var XtimeE:ByteArray = new ByteArray(); private static var i:uint = 0; private static var Xtime2Sbox:ByteArray = new ByteArray(); private static var Xtime3Sbox:ByteArray = new ByteArray(); private static var _Rcon:Array = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; private static var Sbox:ByteArray = new ByteArray(); private static var Rcon:ByteArray = new ByteArray(); private static var InvSbox:ByteArray = new ByteArray(); private static var Xtime2:ByteArray = new ByteArray(); private static var Xtime9:ByteArray = new ByteArray(); private static var XtimeB:ByteArray = new ByteArray(); private static var XtimeD:ByteArray = new ByteArray(); public function AESKey(key:ByteArray){ super(); tmp = new ByteArray(); state = new ByteArray(); keyLength = key.length; this.key = new ByteArray(); this.key.writeBytes(key); expandKey(); } public function toString():String{ return (("aes" + (8 * keyLength))); } public function decrypt(block:ByteArray, index:uint=0):void{ var round:uint; state.position = 0; state.writeBytes(block, index, (Nb * 4)); addRoundKey(key, ((Nr * Nb) * 4)); invShiftRows(); round = Nr; while (round--) { addRoundKey(key, ((round * Nb) * 4)); if (round){ invMixSubColumns(); }; }; block.position = index; block.writeBytes(state); } protected function invShiftRows():void{ var tmp:uint; state[0] = InvSbox[state[0]]; state[4] = InvSbox[state[4]]; state[8] = InvSbox[state[8]]; state[12] = InvSbox[state[12]]; tmp = InvSbox[state[13]]; state[13] = InvSbox[state[9]]; state[9] = InvSbox[state[5]]; state[5] = InvSbox[state[1]]; state[1] = tmp; tmp = InvSbox[state[2]]; state[2] = InvSbox[state[10]]; state[10] = tmp; tmp = InvSbox[state[6]]; state[6] = InvSbox[state[14]]; state[14] = tmp; tmp = InvSbox[state[3]]; state[3] = InvSbox[state[7]]; state[7] = InvSbox[state[11]]; state[11] = InvSbox[state[15]]; state[15] = tmp; } public function dispose():void{ var i:uint; var r:Random; r = new Random(); i = 0; while (i < key.length) { key[i] = r.nextByte(); i++; }; Nr = r.nextByte(); i = 0; while (i < state.length) { state[i] = r.nextByte(); i++; }; i = 0; while (i < tmp.length) { tmp[i] = r.nextByte(); i++; }; key.length = 0; keyLength = 0; state.length = 0; tmp.length = 0; key = null; state = null; tmp = null; Nr = 0; Memory.gc(); } protected function invMixSubColumns():void{ var i:uint; tmp.length = 0; tmp[0] = (((XtimeE[state[0]] ^ XtimeB[state[1]]) ^ XtimeD[state[2]]) ^ Xtime9[state[3]]); tmp[5] = (((Xtime9[state[0]] ^ XtimeE[state[1]]) ^ XtimeB[state[2]]) ^ XtimeD[state[3]]); tmp[10] = (((XtimeD[state[0]] ^ Xtime9[state[1]]) ^ XtimeE[state[2]]) ^ XtimeB[state[3]]); tmp[15] = (((XtimeB[state[0]] ^ XtimeD[state[1]]) ^ Xtime9[state[2]]) ^ XtimeE[state[3]]); tmp[4] = (((XtimeE[state[4]] ^ XtimeB[state[5]]) ^ XtimeD[state[6]]) ^ Xtime9[state[7]]); tmp[9] = (((Xtime9[state[4]] ^ XtimeE[state[5]]) ^ XtimeB[state[6]]) ^ XtimeD[state[7]]); tmp[14] = (((XtimeD[state[4]] ^ Xtime9[state[5]]) ^ XtimeE[state[6]]) ^ XtimeB[state[7]]); tmp[3] = (((XtimeB[state[4]] ^ XtimeD[state[5]]) ^ Xtime9[state[6]]) ^ XtimeE[state[7]]); tmp[8] = (((XtimeE[state[8]] ^ XtimeB[state[9]]) ^ XtimeD[state[10]]) ^ Xtime9[state[11]]); tmp[13] = (((Xtime9[state[8]] ^ XtimeE[state[9]]) ^ XtimeB[state[10]]) ^ XtimeD[state[11]]); tmp[2] = (((XtimeD[state[8]] ^ Xtime9[state[9]]) ^ XtimeE[state[10]]) ^ XtimeB[state[11]]); tmp[7] = (((XtimeB[state[8]] ^ XtimeD[state[9]]) ^ Xtime9[state[10]]) ^ XtimeE[state[11]]); tmp[12] = (((XtimeE[state[12]] ^ XtimeB[state[13]]) ^ XtimeD[state[14]]) ^ Xtime9[state[15]]); tmp[1] = (((Xtime9[state[12]] ^ XtimeE[state[13]]) ^ XtimeB[state[14]]) ^ XtimeD[state[15]]); tmp[6] = (((XtimeD[state[12]] ^ Xtime9[state[13]]) ^ XtimeE[state[14]]) ^ XtimeB[state[15]]); tmp[11] = (((XtimeB[state[12]] ^ XtimeD[state[13]]) ^ Xtime9[state[14]]) ^ XtimeE[state[15]]); i = 0; while (i < (4 * Nb)) { state[i] = InvSbox[tmp[i]]; i++; }; } private function expandKey():void{ var tmp0:uint; var tmp1:uint; var tmp2:uint; var tmp3:uint; var tmp4:uint; var idx:uint; var Nk:uint; Nk = (key.length / 4); Nr = (Nk + 6); idx = Nk; while (idx < (Nb * (Nr + 1))) { tmp0 = key[((4 * idx) - 4)]; tmp1 = key[((4 * idx) - 3)]; tmp2 = key[((4 * idx) - 2)]; tmp3 = key[((4 * idx) - 1)]; if (!(idx % Nk)){ tmp4 = tmp3; tmp3 = Sbox[tmp0]; tmp0 = (Sbox[tmp1] ^ Rcon[(idx / Nk)]); tmp1 = Sbox[tmp2]; tmp2 = Sbox[tmp4]; } else { if ((((Nk > 6)) && (((idx % Nk) == 4)))){ tmp0 = Sbox[tmp0]; tmp1 = Sbox[tmp1]; tmp2 = Sbox[tmp2]; tmp3 = Sbox[tmp3]; }; }; key[((4 * idx) + 0)] = (key[(((4 * idx) - (4 * Nk)) + 0)] ^ tmp0); key[((4 * idx) + 1)] = (key[(((4 * idx) - (4 * Nk)) + 1)] ^ tmp1); key[((4 * idx) + 2)] = (key[(((4 * idx) - (4 * Nk)) + 2)] ^ tmp2); key[((4 * idx) + 3)] = (key[(((4 * idx) - (4 * Nk)) + 3)] ^ tmp3); idx++; }; } protected function addRoundKey(key:ByteArray, offset:uint):void{ var idx:uint; idx = 0; while (idx < 16) { state[idx] = (state[idx] ^ key[(idx + offset)]); idx++; }; } public function encrypt(block:ByteArray, index:uint=0):void{ var round:uint; state.position = 0; state.writeBytes(block, index, (Nb * 4)); addRoundKey(key, 0); round = 1; while (round < (Nr + 1)) { if (round < Nr){ mixSubColumns(); } else { shiftRows(); }; addRoundKey(key, ((round * Nb) * 4)); round++; }; block.position = index; block.writeBytes(state); } protected function mixSubColumns():void{ tmp.length = 0; tmp[0] = (((Xtime2Sbox[state[0]] ^ Xtime3Sbox[state[5]]) ^ Sbox[state[10]]) ^ Sbox[state[15]]); tmp[1] = (((Sbox[state[0]] ^ Xtime2Sbox[state[5]]) ^ Xtime3Sbox[state[10]]) ^ Sbox[state[15]]); tmp[2] = (((Sbox[state[0]] ^ Sbox[state[5]]) ^ Xtime2Sbox[state[10]]) ^ Xtime3Sbox[state[15]]); tmp[3] = (((Xtime3Sbox[state[0]] ^ Sbox[state[5]]) ^ Sbox[state[10]]) ^ Xtime2Sbox[state[15]]); tmp[4] = (((Xtime2Sbox[state[4]] ^ Xtime3Sbox[state[9]]) ^ Sbox[state[14]]) ^ Sbox[state[3]]); tmp[5] = (((Sbox[state[4]] ^ Xtime2Sbox[state[9]]) ^ Xtime3Sbox[state[14]]) ^ Sbox[state[3]]); tmp[6] = (((Sbox[state[4]] ^ Sbox[state[9]]) ^ Xtime2Sbox[state[14]]) ^ Xtime3Sbox[state[3]]); tmp[7] = (((Xtime3Sbox[state[4]] ^ Sbox[state[9]]) ^ Sbox[state[14]]) ^ Xtime2Sbox[state[3]]); tmp[8] = (((Xtime2Sbox[state[8]] ^ Xtime3Sbox[state[13]]) ^ Sbox[state[2]]) ^ Sbox[state[7]]); tmp[9] = (((Sbox[state[8]] ^ Xtime2Sbox[state[13]]) ^ Xtime3Sbox[state[2]]) ^ Sbox[state[7]]); tmp[10] = (((Sbox[state[8]] ^ Sbox[state[13]]) ^ Xtime2Sbox[state[2]]) ^ Xtime3Sbox[state[7]]); tmp[11] = (((Xtime3Sbox[state[8]] ^ Sbox[state[13]]) ^ Sbox[state[2]]) ^ Xtime2Sbox[state[7]]); tmp[12] = (((Xtime2Sbox[state[12]] ^ Xtime3Sbox[state[1]]) ^ Sbox[state[6]]) ^ Sbox[state[11]]); tmp[13] = (((Sbox[state[12]] ^ Xtime2Sbox[state[1]]) ^ Xtime3Sbox[state[6]]) ^ Sbox[state[11]]); tmp[14] = (((Sbox[state[12]] ^ Sbox[state[1]]) ^ Xtime2Sbox[state[6]]) ^ Xtime3Sbox[state[11]]); tmp[15] = (((Xtime3Sbox[state[12]] ^ Sbox[state[1]]) ^ Sbox[state[6]]) ^ Xtime2Sbox[state[11]]); state.position = 0; state.writeBytes(tmp, 0, (Nb * 4)); } protected function shiftRows():void{ var tmp:uint; state[0] = Sbox[state[0]]; state[4] = Sbox[state[4]]; state[8] = Sbox[state[8]]; state[12] = Sbox[state[12]]; tmp = Sbox[state[1]]; state[1] = Sbox[state[5]]; state[5] = Sbox[state[9]]; state[9] = Sbox[state[13]]; state[13] = tmp; tmp = Sbox[state[2]]; state[2] = Sbox[state[10]]; state[10] = tmp; tmp = Sbox[state[6]]; state[6] = Sbox[state[14]]; state[14] = tmp; tmp = Sbox[state[15]]; state[15] = Sbox[state[11]]; state[11] = Sbox[state[7]]; state[7] = Sbox[state[3]]; state[3] = tmp; } public function getBlockSize():uint{ return (16); } while (i < 0x0100) { Sbox[i] = _Sbox[i]; InvSbox[i] = _InvSbox[i]; Xtime2Sbox[i] = _Xtime2Sbox[i]; Xtime3Sbox[i] = _Xtime3Sbox[i]; Xtime2[i] = _Xtime2[i]; Xtime9[i] = _Xtime9[i]; XtimeB[i] = _XtimeB[i]; XtimeD[i] = _XtimeD[i]; XtimeE[i] = _XtimeE[i]; i++; }; i = 0; while (i < _Rcon.length) { Rcon[i] = _Rcon[i]; i++; }; } }//package com.hurlant.crypto.symmetric
Section 12
//CBCMode (com.hurlant.crypto.symmetric.CBCMode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class CBCMode extends IVMode implements IMode { public function CBCMode(key:ISymmetricKey, padding:IPad=null){ super(key, padding); } public function toString():String{ return ((key.toString() + "-cbc")); } public function decrypt(src:ByteArray):void{ var vector:ByteArray; var tmp:ByteArray; var i:uint; var j:uint; vector = getIV4d(); tmp = new ByteArray(); i = 0; while (i < src.length) { tmp.position = 0; tmp.writeBytes(src, i, blockSize); key.decrypt(src, i); j = 0; while (j < blockSize) { src[(i + j)] = (src[(i + j)] ^ vector[j]); j++; }; vector.position = 0; vector.writeBytes(tmp, 0, blockSize); i = (i + blockSize); }; padding.unpad(src); } public function encrypt(src:ByteArray):void{ var vector:ByteArray; var i:uint; var j:uint; padding.pad(src); vector = getIV4e(); i = 0; while (i < src.length) { j = 0; while (j < blockSize) { src[(i + j)] = (src[(i + j)] ^ vector[j]); j++; }; key.encrypt(src, i); vector.position = 0; vector.writeBytes(src, i, blockSize); i = (i + blockSize); }; } } }//package com.hurlant.crypto.symmetric
Section 13
//ICipher (com.hurlant.crypto.symmetric.ICipher) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface ICipher { function encrypt(/Users/Krin/Flash/Multiplayer/giraffe;com/hurlant/crypto/symmetric;ICipher.as:ByteArray):void; function dispose():void; function getBlockSize():uint; function toString():String; function decrypt(/Users/Krin/Flash/Multiplayer/giraffe;com/hurlant/crypto/symmetric;ICipher.as:ByteArray):void; } }//package com.hurlant.crypto.symmetric
Section 14
//IMode (com.hurlant.crypto.symmetric.IMode) package com.hurlant.crypto.symmetric { public interface IMode extends ICipher { } }//package com.hurlant.crypto.symmetric
Section 15
//IPad (com.hurlant.crypto.symmetric.IPad) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface IPad { function pad(:ByteArray):void; function unpad(:ByteArray):void; function setBlockSize(:uint):void; } }//package com.hurlant.crypto.symmetric
Section 16
//IStreamCipher (com.hurlant.crypto.symmetric.IStreamCipher) package com.hurlant.crypto.symmetric { public interface IStreamCipher extends ICipher { } }//package com.hurlant.crypto.symmetric
Section 17
//ISymmetricKey (com.hurlant.crypto.symmetric.ISymmetricKey) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface ISymmetricKey { function encrypt(_arg1:ByteArray, _arg2:uint=0):void; function dispose():void; function getBlockSize():uint; function toString():String; function decrypt(_arg1:ByteArray, _arg2:uint=0):void; } }//package com.hurlant.crypto.symmetric
Section 18
//IVMode (com.hurlant.crypto.symmetric.IVMode) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; import com.hurlant.crypto.prng.*; public class IVMode { protected var lastIV:ByteArray; protected var iv:ByteArray; protected var blockSize:uint; protected var padding:IPad; protected var prng:Random; protected var key:ISymmetricKey; public function IVMode(key:ISymmetricKey, padding:IPad=null){ super(); this.key = key; blockSize = key.getBlockSize(); if (padding == null){ padding = new PKCS5(blockSize); } else { padding.setBlockSize(blockSize); }; this.padding = padding; prng = new Random(); iv = null; lastIV = new ByteArray(); } public function set IV(value:ByteArray):void{ iv = value; lastIV.length = 0; lastIV.writeBytes(iv); } protected function getIV4d():ByteArray{ var vec:ByteArray; vec = new ByteArray(); if (iv){ vec.writeBytes(iv); } else { throw (new Error("an IV must be set before calling decrypt()")); }; return (vec); } protected function getIV4e():ByteArray{ var vec:ByteArray; vec = new ByteArray(); if (iv){ vec.writeBytes(iv); } else { prng.nextBytes(vec, blockSize); }; lastIV.length = 0; lastIV.writeBytes(vec); return (vec); } public function get IV():ByteArray{ return (lastIV); } public function dispose():void{ var i:uint; if (iv != null){ i = 0; while (i < iv.length) { iv[i] = prng.nextByte(); i++; }; iv.length = 0; iv = null; }; if (lastIV != null){ i = 0; while (i < iv.length) { lastIV[i] = prng.nextByte(); i++; }; lastIV.length = 0; lastIV = null; }; key.dispose(); key = null; padding = null; prng.dispose(); prng = null; Memory.gc(); } public function getBlockSize():uint{ return (key.getBlockSize()); } } }//package com.hurlant.crypto.symmetric
Section 19
//PKCS5 (com.hurlant.crypto.symmetric.PKCS5) package com.hurlant.crypto.symmetric { import flash.utils.*; public class PKCS5 implements IPad { private var blockSize:uint; public function PKCS5(blockSize:uint=0){ super(); this.blockSize = blockSize; } public function unpad(a:ByteArray):void{ var c:uint; var i:uint; var v:uint; c = (a.length % blockSize); if (c != 0){ throw (new Error("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize")); }; c = a[(a.length - 1)]; i = c; while (i > 0) { v = a[(a.length - 1)]; a.length--; if (c != v){ throw (new Error((((("PKCS#5:unpad: Invalid padding value. expected [" + c) + "], found [") + v) + "]"))); }; i--; }; } public function pad(a:ByteArray):void{ var c:uint; var i:uint; c = (blockSize - (a.length % blockSize)); i = 0; while (i < c) { a[a.length] = c; i++; }; } public function setBlockSize(bs:uint):void{ blockSize = bs; } } }//package com.hurlant.crypto.symmetric
Section 20
//Base64 (com.hurlant.util.Base64) package com.hurlant.util { import flash.utils.*; public class Base64 { public static const version:String = "1.0.0"; private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public function Base64(){ super(); throw (new Error("Base64 class is static container only")); } public static function encode(data:String):String{ var bytes:ByteArray; bytes = new ByteArray(); bytes.writeUTFBytes(data); return (encodeByteArray(bytes)); } public static function encodeByteArray(data:ByteArray):String{ var output:String; var dataBuffer:Array; var outputBuffer:Array; var i:uint; var j:uint; var k:uint; output = ""; outputBuffer = new Array(4); data.position = 0; while (data.bytesAvailable > 0) { dataBuffer = new Array(); i = 0; while ((((i < 3)) && ((data.bytesAvailable > 0)))) { dataBuffer[i] = data.readUnsignedByte(); i++; }; outputBuffer[0] = ((dataBuffer[0] & 252) >> 2); outputBuffer[1] = (((dataBuffer[0] & 3) << 4) | (dataBuffer[1] >> 4)); outputBuffer[2] = (((dataBuffer[1] & 15) << 2) | (dataBuffer[2] >> 6)); outputBuffer[3] = (dataBuffer[2] & 63); j = dataBuffer.length; while (j < 3) { outputBuffer[(j + 1)] = 64; j++; }; k = 0; while (k < outputBuffer.length) { output = (output + BASE64_CHARS.charAt(outputBuffer[k])); k++; }; }; return (output); } public static function decode(data:String):String{ var bytes:ByteArray; bytes = decodeToByteArray(data); return (bytes.readUTFBytes(bytes.length)); } public static function decodeToByteArray(data:String):ByteArray{ var output:ByteArray; var dataBuffer:Array; var outputBuffer:Array; var i:uint; var j:uint; var k:uint; output = new ByteArray(); dataBuffer = new Array(4); outputBuffer = new Array(3); i = 0; while (i < data.length) { j = 0; while ((((j < 4)) && (((i + j) < data.length)))) { dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt((i + j))); j++; }; outputBuffer[0] = ((dataBuffer[0] << 2) + ((dataBuffer[1] & 48) >> 4)); outputBuffer[1] = (((dataBuffer[1] & 15) << 4) + ((dataBuffer[2] & 60) >> 2)); outputBuffer[2] = (((dataBuffer[2] & 3) << 6) + dataBuffer[3]); k = 0; while (k < outputBuffer.length) { if (dataBuffer[(k + 1)] == 64){ break; }; output.writeByte(outputBuffer[k]); k++; }; i = (i + 4); }; output.position = 0; return (output); } } }//package com.hurlant.util
Section 21
//Memory (com.hurlant.util.Memory) package com.hurlant.util { import flash.net.*; import flash.system.*; public class Memory { public function Memory(){ super(); } public static function gc():void{ new LocalConnection().connect("foo"); new LocalConnection().connect("foo"); //unresolved jump var _slot1 = e; } public static function get used():uint{ return (System.totalMemory); } } }//package com.hurlant.util
Section 22
//BasicSocket (com.jiggmin.blossomSocket.BasicSocket) package com.jiggmin.blossomSocket { import flash.events.*; import flash.net.*; public class BasicSocket extends Socket { public function BasicSocket(){ super(); } protected function securityErrorHandler(e:SecurityErrorEvent):void{ dataTracer.noMoreProgress(); dataTracer.update("Security Error: Couldn't get permission to connect to server."); trace("Couldn't get permission to connect to server."); } public function remove():void{ removeListeners(); if (connected){ super.close(); }; } protected function closeHandler(e:Event):void{ trace("Disconnected."); dataTracer.DC(); remove(); } protected function connectHandler(e:Event):void{ trace("Connected."); dataTracer.update("Connected!"); } private function removeListeners():void{ removeEventListener(Event.CLOSE, closeHandler); removeEventListener(Event.CONNECT, connectHandler); removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); removeEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); } private function addListeners():void{ removeListeners(); addEventListener(Event.CLOSE, closeHandler, false, 0, true); addEventListener(Event.CONNECT, connectHandler, false, 0, true); addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true); addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true); addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler, false, 0, true); } protected function socketDataHandler(e:ProgressEvent):void{ } protected function ioErrorHandler(e:IOErrorEvent):void{ dataTracer.noMoreProgress(); dataTracer.update("IO Error: Could not connect. This could be because: A: The server is broken. B: The internet is broken. C: Evil aliens."); trace("Could not connect. This could be because: A: The server is broken. B: The internet is broken. C: Evil aliens."); } override public function connect(url:String, port:int):void{ trace(((("connect: " + url) + " ") + port)); dataTracer.update("Connecting to Server..."); addListeners(); super.connect(url, port); } protected function write(string:String):void{ var string = string; writeUTFBytes(string); flush(); //unresolved jump var _slot1 = e; dataTracer.update("Error writing to socket!"); trace(("Error writing to socket: " + _slot1)); } } }//package com.jiggmin.blossomSocket
Section 23
//BlossomEvent (com.jiggmin.blossomSocket.BlossomEvent) package com.jiggmin.blossomSocket { import flash.events.*; public class BlossomEvent extends Event { private var _moderator:Boolean; private var _data; private var _vars:Object; private var _error:String; private var _version:Number; private var _time:int; private var _socketID:int; private var _userID:int; private var _iv:String; private var _userName:String; private var _roomName:String; private var _raw:Object; private var _userList:Array; private var _fromUser:BlossomUser; private var _roomList:Array; public static var PING:String = "ping"; public static var READY:String = "ready"; public static var RECEIVE_STATS:String = "receiveStats"; public static var RECEIVE_GLOBAL_VARS:String = "receiveGdlobalVars"; public static var REGISTER_SUCCESS:String = "registerSuccess"; public static var REGISTER_ERROR:String = "registerError"; public static var RECEIVE_ROOM_VARS:String = "receiveRoomVars"; public static var RECEIVE_ROOMS:String = "receiveRooms"; public static var USER_JOIN_ROOM:String = "userJoinRoom"; public static var RECEIVE_USER_VARS:String = "receiveUserVars"; public static var ERROR:String = "error"; public static var RECEIVE_IV:String = "receiveIV"; public static var RECEIVE_SOCKET_ID:String = "receiveSocketID"; public static var RECEIVE_USERS:String = "receiveUsers"; public static var LOGIN_SUCCESS:String = "loginSuccess"; public static var RECEIVE_MESSAGE:String = "receiveMessage"; public static var USER_LEAVE_ROOM:String = "userLeaveRoom"; public static var LOGIN_ERROR:String = "loginError"; public static var RECEIVE_VERSION:String = "receiveVersion"; public function BlossomEvent(type:String, raw:Object, fromUser:BlossomUser=null, bubbles:Boolean=false, cancelable:Boolean=false):void{ _raw = raw; _fromUser = fromUser; _socketID = raw.socketID; _roomName = raw.roomName; _data = raw.data; _vars = raw.vars; _error = raw.error; _roomList = raw.roomList; _userList = raw.userList; _userName = raw.userName; _userID = raw.userID; _moderator = raw.moderator; _iv = raw.iv; _version = raw.version; _time = raw.time; super(type, bubbles, cancelable); } public function get moderator():Boolean{ return (_moderator); } public function get roomName():String{ return (_roomName); } public function get fromUser():BlossomUser{ return (_fromUser); } public function get error():String{ return (_error); } public function get roomList():Array{ return (_roomList); } public function get userID():int{ return (_userID); } public function get raw():Object{ return (_raw); } public function get userList():Array{ return (_userList); } public function get data(){ return (_data); } public function get iv():String{ return (_iv); } public function get vars():Object{ return (_vars); } public function get time():int{ return (_time); } public function get socketID():int{ return (_socketID); } public function get version():Number{ return (_version); } public function get userName():String{ return (_userName); } } }//package com.jiggmin.blossomSocket
Section 24
//BlossomRoom (com.jiggmin.blossomSocket.BlossomRoom) package com.jiggmin.blossomSocket { import flash.display.*; public class BlossomRoom extends Sprite { private var _vars:Object; private var _roomName:String; private var socket:BlossomSocket; private var _userArray:Array; public function BlossomRoom(socket:BlossomSocket, roomName:String, pass:String=""):void{ _userArray = new Array(); super(); this.socket = socket; _roomName = roomName; socket.addEventListener((BlossomEvent.ERROR + _roomName), errorHandler, false, 0, true); socket.addEventListener((BlossomEvent.RECEIVE_ROOM_VARS + _roomName), receiveRoomVarsHandler, false, 0, true); socket.addEventListener((BlossomEvent.USER_JOIN_ROOM + _roomName), userJoinRoomHandler, false, 0, true); socket.addEventListener((BlossomEvent.USER_LEAVE_ROOM + _roomName), userLeaveRoomHandler, false, 0, true); socket.addEventListener((BlossomEvent.RECEIVE_MESSAGE + _roomName), receiveMessageHandler, false, 0, true); socket.joinRoom(_roomName, pass); } public function get roomName():String{ return (_roomName); } private function receiveMessageHandler(be:BlossomEvent):void{ var raw:Object; var socketID:int; var user:BlossomUser; var type:String; raw = be.data; socketID = be.socketID; user = _userArray[socketID]; raw.socketID = socketID; if ((((raw.type == null)) || ((raw.type == "")))){ type = BlossomEvent.RECEIVE_MESSAGE; } else { type = raw.type; }; dispatchEvent(new BlossomEvent(type, raw, user)); } private function userJoinRoomHandler(be:BlossomEvent):void{ var user:BlossomUser; user = new BlossomUser(socket, be.socketID, be.userID, be.userName, be.moderator, be.vars); _userArray[be.socketID] = user; dispatchEvent(new BlossomEvent(BlossomEvent.USER_JOIN_ROOM, be.raw, user)); } private function errorHandler(be:BlossomEvent):void{ var error:String; error = be.error; dispatchEvent(new BlossomEvent(BlossomEvent.ERROR, be.raw)); } public function get vars():Object{ return (_vars); } public function leaveRoom():void{ remove(); } public function socketIDToUser(socketID:int):BlossomUser{ var user:BlossomUser; user = _userArray[socketID]; return (user); } public function get userArray():Object{ var array:Array; var user:BlossomUser; array = new Array(); for each (user in _userArray) { if (user != null){ array.push(user); }; }; return (array); } private function receiveRoomVarsHandler(be:BlossomEvent):void{ _vars = be.vars; dispatchEvent(new BlossomEvent(BlossomEvent.RECEIVE_ROOM_VARS, be.raw)); } public function deleteVars(varList):void{ socket.deleteRoomVars(varList, _roomName); } public function remove():void{ socket.leaveRoom(_roomName); socket.removeEventListener((BlossomEvent.ERROR + _roomName), errorHandler); socket.removeEventListener((BlossomEvent.RECEIVE_ROOM_VARS + _roomName), receiveRoomVarsHandler); socket.removeEventListener((BlossomEvent.USER_JOIN_ROOM + _roomName), userJoinRoomHandler); socket.removeEventListener((BlossomEvent.USER_LEAVE_ROOM + _roomName), userLeaveRoomHandler); socket.removeEventListener((BlossomEvent.RECEIVE_MESSAGE + _roomName), receiveMessageHandler); socket = null; _userArray = null; } public function unlockVars():void{ socket.unlockRoomVars(_roomName); } public function setPass(pass:String):void{ socket.setRoomPass(_roomName, pass); } public function getVars(varList):void{ socket.getRoomVars(varList, _roomName); } public function setVars(vars:Object){ socket.setRoomVars(vars, _roomName); } private function userLeaveRoomHandler(be:BlossomEvent):void{ var socketID:int; var user:BlossomUser; socketID = be.socketID; user = _userArray[socketID]; _userArray[socketID] = null; if (user != null){ dispatchEvent(new BlossomEvent(BlossomEvent.USER_LEAVE_ROOM, be.raw, user)); user.remove(); }; if (socketID == socket.socketID){ remove(); }; } public function sendToRoom(data, sendToSelf:Boolean=true, type:String=null):void{ var raw:Object; raw = new Object(); if (type != null){ raw.type = type; }; raw.data = data; socket.sendToRoom(_roomName, raw, sendToSelf); } public function lockVars():void{ socket.lockRoomVars(_roomName); } } }//package com.jiggmin.blossomSocket
Section 25
//BlossomSocket (com.jiggmin.blossomSocket.BlossomSocket) package com.jiggmin.blossomSocket { import flash.events.*; import flash.utils.*; public class BlossomSocket extends CommandSocket { private var _socketID:int; private var _me:BlossomUser; private var pingInterval:uint; private var _pingTime:int; private var version:Number;// = 1.1 public function BlossomSocket(address:String, port:int, key:String):void{ version = 1.1; super(); initListeners(); setKey(key); connect(address, port); _me = new BlossomUser(this, 0, 0, null, false, new Object()); } override protected function connectHandler(e:Event):void{ clearInterval(pingInterval); pingInterval = setInterval(sendPing, 30000); super.connectHandler(e); } public function unlockUserVars():void{ manageVars("", "user", "unlock", ""); } private function receiveMessageHandler(be:BlossomEvent):void{ if (be.roomName != null){ dispatchEvent(new BlossomEvent((BlossomEvent.RECEIVE_MESSAGE + be.roomName), be.raw)); }; if (be.socketID != 0){ dispatchEvent(new BlossomEvent((BlossomEvent.RECEIVE_MESSAGE + be.socketID), be.raw)); }; } public function unlockRoomVars(roomName:String):void{ manageVars("", "room", "unlock", roomName); } public function getUserVars(varList, socketID:int):void{ manageVars(varList, "user", "get", socketID.toString()); } public function setRoomPass(roomName:String, pass:String):void{ var obj:Object; obj = new Object(); obj.type = "set_room_pass"; obj.room_name = roomName; obj.pass = pass; send(obj); } public function setUserVars(variables:Object):void{ _me.addVars(variables); manageVars(variables, "user", "set", ""); } public function sendPing():void{ var obj:Object; obj = new Object(); obj.type = "ping"; obj.time = new Date().time; send(obj); } private function receiveVersionHandler(be:BlossomEvent):void{ if (be.version > version){ remove(); throw (new Error("Please update your client code. The Blossom Socket code you are using is no longer compatable with the remote server.")); }; } public function getRoomVars(varList, roomName:String):void{ manageVars(varList, "room", "get", roomName); } private function initListeners():void{ addEventListener(BlossomEvent.RECEIVE_SOCKET_ID, receiveSocketIDHandler, false, 0, true); addEventListener(BlossomEvent.RECEIVE_MESSAGE, receiveMessageHandler, false, 0, true); addEventListener(BlossomEvent.RECEIVE_USER_VARS, receiveUserVarsHandler, false, 0, true); addEventListener(BlossomEvent.RECEIVE_ROOM_VARS, receiveRoomVarsHandler, false, 0, true); addEventListener(BlossomEvent.RECEIVE_VERSION, receiveVersionHandler, false, 0, true); addEventListener(BlossomEvent.RECEIVE_USERS, receiveUsersHandler, false, 0, true); addEventListener(BlossomEvent.USER_JOIN_ROOM, userJoinRoomHandler, false, 0, true); addEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeaveRoomHandler, false, 0, true); addEventListener(BlossomEvent.LOGIN_SUCCESS, loginSuccessHandler, false, 0, true); addEventListener(BlossomEvent.PING, receivePing, false, 0, true); } private function userJoinRoomHandler(be:BlossomEvent):void{ dispatchEvent(new BlossomEvent((BlossomEvent.USER_JOIN_ROOM + be.roomName), be.raw)); } private function errorHandler(be:BlossomEvent):void{ trace(("Error: " + be.error)); if (be.roomName != null){ dispatchEvent(new BlossomEvent((BlossomEvent.ERROR + be.roomName), be.raw)); }; } public function joinRoom(roomName:String, pass:String=""):void{ var obj:Object; obj = new Object(); obj.type = "join_room"; obj.room_name = roomName; obj.pass = pass; send(obj); } public function setRoomVars(variables:Object, roomName:String):void{ manageVars(variables, "room", "set", roomName); } override protected function closeHandler(e:Event):void{ clearInterval(pingInterval); super.closeHandler(e); } public function leaveRoom(roomName:String):void{ var obj:Object; obj = new Object(); obj.type = "leave_room"; obj.room_name = roomName; send(obj); } public function getRooms():void{ var obj:Object; obj = new Object(); obj.type = "get_rooms"; send(obj); } private function receiveRoomVarsHandler(be:BlossomEvent):void{ dispatchEvent(new BlossomEvent((BlossomEvent.RECEIVE_ROOM_VARS + be.roomName), be.raw)); } private function manageVars(variables, location:String, action:String, id:String):void{ var obj:Object; obj = new Object(); obj.type = "manage_vars"; obj.user_vars = variables; obj.location = location; obj.action = action; obj.id = id; send(obj); } public function get pingTime():int{ return (_pingTime); } public function getGlobalVars(varList):void{ manageVars(varList, "global", "get", ""); } public function login(userName:String, pass:String):void{ var obj:Object; obj = new Object(); obj.type = "login"; obj.name = userName; obj.pass = pass; send(obj); } public function setGlobalVars(variables:Object):void{ manageVars(variables, "global", "set", ""); } public function deleteRoomVars(varList, roomName:String):void{ manageVars(varList, "room", "delete", roomName); } public function deleteUserVars(varList):void{ manageVars(varList, "user", "delete", ""); } private function receiveUserVarsHandler(be:BlossomEvent):void{ dispatchEvent(new BlossomEvent((BlossomEvent.RECEIVE_USER_VARS + be.socketID), be.raw)); } private function receiveSocketIDHandler(be:BlossomEvent):void{ var blossomEvent:BlossomEvent; _me = new BlossomUser(this, be.socketID, 0, null, false, new Object()); this._socketID = be.socketID; blossomEvent = new BlossomEvent(BlossomEvent.READY, be.raw); dispatchEvent(blossomEvent); } override public function remove():void{ removeEventListener(BlossomEvent.RECEIVE_SOCKET_ID, receiveSocketIDHandler); removeEventListener(BlossomEvent.RECEIVE_MESSAGE, receiveMessageHandler); removeEventListener(BlossomEvent.RECEIVE_USER_VARS, receiveUserVarsHandler); removeEventListener(BlossomEvent.RECEIVE_ROOM_VARS, receiveRoomVarsHandler); removeEventListener(BlossomEvent.RECEIVE_VERSION, receiveVersionHandler); removeEventListener(BlossomEvent.RECEIVE_USERS, receiveUsersHandler); removeEventListener(BlossomEvent.USER_JOIN_ROOM, userJoinRoomHandler); removeEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeaveRoomHandler); removeEventListener(BlossomEvent.PING, receivePing); removeEventListener(BlossomEvent.LOGIN_SUCCESS, loginSuccessHandler); if (_me != null){ _me.remove(); _me = null; }; clearInterval(pingInterval); super.remove(); } public function deleteGlobalVars(varList):void{ manageVars(varList, "global", "delete", ""); } public function register(userName:String, pass:String, email:String=""):void{ var obj:Object; obj = new Object(); obj.type = "register"; obj.name = userName; obj.pass = pass; obj.email = email; send(obj); } public function sendToUser(socketID:int, data):void{ var obj:Object; obj = new Object(); obj.type = "send_to_user"; obj.to_id = socketID; obj.data = data; send(obj); } public function get me():BlossomUser{ return (_me); } private function receiveUsersHandler(be:BlossomEvent):void{ var users:Array; var i:int; var len:int; var userObj:Object; var userRaw:Object; users = be.userList; len = users.length; i = 0; while (i < len) { userObj = users[i]; userRaw = new Object(); userRaw.type = BlossomEvent.USER_JOIN_ROOM; userRaw.socketID = userObj.socketID; userRaw.userID = userObj.userID; userRaw.moderator = userObj.moderator; userRaw.userName = userObj.userName; userRaw.vars = userObj.vars; userRaw.roomName = be.roomName; dispatchEvent(new BlossomEvent(BlossomEvent.USER_JOIN_ROOM, userRaw)); i++; }; } public function sendToRoom(roomName:String, data, sendToSelf:Boolean=false):void{ var obj:Object; obj = new Object(); obj.type = "send_to_room"; obj.room_name = roomName; obj.send_to_self = sendToSelf; obj.data = data; send(obj); } public function get socketID():int{ return (_socketID); } private function userLeaveRoomHandler(be:BlossomEvent):void{ dispatchEvent(new BlossomEvent((BlossomEvent.USER_LEAVE_ROOM + be.roomName), be.raw)); } public function unlockGlobalVars():void{ manageVars("", "global", "unlock", ""); } public function lockUserVars():void{ manageVars("", "user", "lock", ""); } public function getStats():void{ var obj:Object; obj = new Object(); obj.type = "get_stats"; send(obj); } private function loginSuccessHandler(be:BlossomEvent):void{ _me = new BlossomUser(this, socketID, be.userID, be.userName, be.moderator, be.vars); } private function receivePing(be:BlossomEvent):void{ _pingTime = (new Date().time - be.time); } public function lockRoomVars(roomName:String):void{ manageVars("", "room", "lock", roomName); } public function lockGlobalVars():void{ manageVars("", "global", "lock", ""); } } }//package com.jiggmin.blossomSocket
Section 26
//BlossomUser (com.jiggmin.blossomSocket.BlossomUser) package com.jiggmin.blossomSocket { import flash.display.*; public class BlossomUser extends Sprite { private var _vars:Object; private var id:String; private var _socketID:int; private var _userID:int; private var _userName:String; private var socket:BlossomSocket; private var _moderator:Boolean; public function BlossomUser(socket:BlossomSocket, socketID:int, userID:int=0, userName:String=null, moderator:Boolean=false, vars:Object=null):void{ super(); this.socket = socket; _socketID = socketID; _userID = userID; _userName = userName; _moderator = moderator; _vars = vars; id = socketID.toString(); socket.addEventListener((BlossomEvent.RECEIVE_USER_VARS + id), receiveUserVarsHandler, false, 0, true); socket.addEventListener((BlossomEvent.RECEIVE_MESSAGE + id), receiveMessageHandler, false, 0, true); } public function set userName(userName:String):void{ } public function get moderator():Boolean{ return (_moderator); } private function receiveMessageHandler(be:BlossomEvent):void{ var raw:Object; raw = be.data; dispatchEvent(new BlossomEvent(BlossomEvent.RECEIVE_MESSAGE, raw)); } public function set moderator(moderator:Boolean):void{ _moderator = moderator; } public function get userID():int{ return (_userID); } public function get vars():Object{ return (_vars); } public function set userID(userID:int):void{ _userID = userID; } private function receiveUserVarsHandler(be:BlossomEvent):void{ addVars(be.vars); dispatchEvent(new BlossomEvent(BlossomEvent.RECEIVE_USER_VARS, be.vars)); } public function set vars(vars:Object):void{ _vars = vars; } function addVars(vars:Object):void{ var variable:String; for (variable in vars) { _vars[variable] = vars[variable]; }; } public function remove():void{ socket.removeEventListener((BlossomEvent.RECEIVE_USER_VARS + id), receiveUserVarsHandler); socket.removeEventListener((BlossomEvent.RECEIVE_MESSAGE + id), receiveMessageHandler); socket = null; id = null; _userName = null; _vars = null; } public function send(data):void{ socket.sendToUser(socketID, data); } public function getVars(varList):void{ socket.getUserVars(socketID, varList); } public function set socketID(socketID:int):void{ _socketID = socketID; } public function get socketID():int{ return (_socketID); } public function get userName():String{ return (_userName); } } }//package com.jiggmin.blossomSocket
Section 27
//CommandSocket (com.jiggmin.blossomSocket.CommandSocket) package com.jiggmin.blossomSocket { import flash.events.*; import com.adobe.serialization.json.*; public class CommandSocket extends BasicSocket { private var encryptor:Encryptor; private var readNum:int;// = 0 public var traceTraffic:Boolean;// = false private var writeNum:int;// = 0 private var encrypt:Boolean;// = false private var readBuffer:String;// = "" private var EOL:String; private var sendBuffer:Array; public function CommandSocket():void{ sendBuffer = new Array(); encrypt = false; readNum = 0; writeNum = 0; readBuffer = ""; EOL = String.fromCharCode(4); traceTraffic = false; super(); encryptor = new Encryptor(); addEventListener(BlossomEvent.RECEIVE_IV, receiveIVHandler, false, 0, true); addEventListener(BlossomEvent.READY, readyHandler, false, 0, true); } private function readyHandler(be:BlossomEvent):void{ var obj:Object; for each (obj in sendBuffer) { send(obj); }; sendBuffer = new Array(); } override public function remove():void{ removeEventListener(BlossomEvent.RECEIVE_IV, receiveIVHandler); removeEventListener(BlossomEvent.READY, readyHandler); if (encryptor != null){ encryptor.remove(); encryptor = null; }; super.remove(); } protected function send(obj:Object):void{ var strObj:String; var sendStr:String; if (connected){ writeNum++; obj.write_num = writeNum; strObj = JSON.encode(obj); if (encrypt){ sendStr = encryptor.encrypt(strObj); } else { sendStr = strObj; }; sendStr = (sendStr + EOL); write(sendStr); if (traceTraffic){ trace(("write: " + strObj)); dataTracer.update(("write: " + strObj)); }; } else { sendBuffer.push(obj); }; } public function setKey(stringKey:String):void{ encryptor.setKey(stringKey); } protected function handleMessage(obj:Object):void{ var type:String; var blossomEvent:BlossomEvent; if ((((obj.type == null)) || ((obj.type == "")))){ type = BlossomEvent.RECEIVE_MESSAGE; } else { type = obj.type; }; blossomEvent = new BlossomEvent(type, obj, null); dispatchEvent(blossomEvent); } override protected function socketDataHandler(e:ProgressEvent):void{ readBytesAvailable(); super.socketDataHandler(e); } private function receiveIVHandler(be:BlossomEvent):void{ var iv:String; var obj:Object; if (encrypt == true){ obj = new Object(); obj.type = "confirm_iv"; send(obj); }; iv = be.iv; encryptor.setIV(iv); encrypt = true; } protected function readBytesAvailable():void{ var str:String; var index:int; var command:String; str = readUTFBytes(bytesAvailable); if (str != null){ readBuffer = (readBuffer + str); while (true) { index = readBuffer.indexOf(EOL); if (index == -1){ break; }; command = readBuffer.substring(0, index); readBuffer = readBuffer.substr((index + 1)); receiveCommand(command); }; }; } protected function receiveCommand(command:String):void{ var spaceIndex:int; var remoteSendNum:int; var stringVars:String; var obj:Object; readNum++; spaceIndex = command.indexOf(" "); remoteSendNum = int(command.substr(0, spaceIndex)); command = command.substr((spaceIndex + 1)); if (remoteSendNum != readNum){ throw (new Error(((("readCount does not match messageNum. readNum: " + readNum) + ", remoteSendNum: ") + remoteSendNum))); }; if (encrypt){ stringVars = encryptor.decrypt(command); } else { stringVars = command; }; if (traceTraffic){ dataTracer.update(("received: " + stringVars)); trace(("received: " + stringVars)); }; obj = JSON.decode(stringVars); handleMessage(obj); } } }//package com.jiggmin.blossomSocket
Section 28
//Encryptor (com.jiggmin.blossomSocket.Encryptor) package com.jiggmin.blossomSocket { import flash.utils.*; import com.hurlant.crypto.symmetric.*; import com.hurlant.util.*; public class Encryptor { private var mode:CBCMode; public function Encryptor(){ super(); } public function remove():void{ mode = null; } public function encrypt(string:String):String{ var binary:ByteArray; var encrypted:String; binary = new ByteArray(); binary.writeUTFBytes(string); mode.encrypt(binary); encrypted = binaryToString(binary); return (encrypted); } public function decrypt(string:String):String{ var binary:ByteArray; var decrypted:String; binary = stringToBinary(string); mode.decrypt(binary); binary.position = 0; decrypted = binary.readUTFBytes(binary.bytesAvailable); return (decrypted); } public function setIV(stringIV:String):void{ var binaryIV:ByteArray; binaryIV = stringToBinary(stringIV); IVMode(mode).IV = binaryIV; } private function stringToBinary(string:String):ByteArray{ var binary:ByteArray; binary = Base64.decodeToByteArray(string); return (binary); } private function binaryToString(binary:ByteArray):String{ var string:String; string = Base64.encodeByteArray(binary); return (string); } public function setKey(stringKey:String):void{ var binaryKey:ByteArray; var padding:ZeroPad; var key:AESKey; binaryKey = stringToBinary(stringKey); padding = new ZeroPad(); key = new AESKey(binaryKey); mode = new CBCMode(key, padding); } } }//package com.jiggmin.blossomSocket
Section 29
//ZeroPad (com.jiggmin.blossomSocket.ZeroPad) package com.jiggmin.blossomSocket { import flash.utils.*; import com.hurlant.crypto.symmetric.*; public class ZeroPad implements IPad { private var blockSize:uint; private var char:String; public function ZeroPad(blockSize:uint=0){ char = String.fromCharCode(0); super(); this.blockSize = blockSize; } public function unpad(a:ByteArray):void{ var string:String; a.position = 0; string = a.readUTFBytes(a.bytesAvailable); string.split(char).join(""); a.writeUTFBytes(string); } public function pad(a:ByteArray):void{ while ((a.length % blockSize) != 0) { a.writeUTFBytes(char); }; } public function setBlockSize(bs:uint):void{ blockSize = bs; } } }//package com.jiggmin.blossomSocket
Section 30
//Data (com.jiggmin.data.Data) package com.jiggmin.data { import flash.display.*; import flash.utils.*; public class Data { private static var stage:Stage; public function Data(){ super(); } public static function formatNumber(num:Number):String{ var a:*; a = []; while (num > 0) { a.push((num % 1000)); num = Math.floor((num / 1000)); }; return (a.reverse().join(",")); } public static function filterSwearing(str:String):String{ var fuckArray:Array; var niggerArray:Array; var shitArray:Array; var randArray:Array; fuckArray = new Array("flower"); niggerArray = new Array("cool cat", "ladies magnet"); shitArray = new Array("..."); randArray = new Array(":)"); if (str != null){ str = str.replace(/fuck|fuk|fu+?c+?k+?/gi, Data.randIndex(fuckArray)); str = str.replace(/nigg(a|er)|ni+?g+?e+?r+?/gi, Data.randIndex(niggerArray)); str = str.replace(/shit|s+?h+?i+?t+?/gi, Data.randIndex(shitArray)); str = str.replace(/fag|cunt|asshole|dick/gi, Data.randIndex(randArray)); str = str.replace(/&#013;/gi, ""); }; return (str); } public static function stringToObject(string:String){ var ClassReference:Class; var ret:*; ClassReference = (getDefinitionByName(string) as Class); ret = new (ClassReference); return (ret); } public static function getMS():int{ var date:Date; var ms:int; date = new Date(); ms = date.time; return (ms); } public static function randIndex(array:Array){ var val:*; val = array[Math.floor((Math.random() * array.length))]; return (val); } } }//package com.jiggmin.data
Section 31
//SocketManager (com.jiggmin.SocketManager) package com.jiggmin { import flash.events.*; import com.jiggmin.blossomSocket.*; public class SocketManager { public static var errorMessage:String = ""; protected static var disp:EventDispatcher; public static var _socket:BlossomSocket; public static var SOCKET_ERROR:String = "socketError"; public function SocketManager(){ super(); } public static function dispatchEvent(p_event:Event):void{ if (disp == null){ return; }; disp.dispatchEvent(p_event); } private static function socketCloseHandler(e:Event):void{ close(); errorMessage = "Your connection to the server was lost."; dispatchEvent(new Event(SocketManager.SOCKET_ERROR)); } public static function connect(a:String="colony1.armorgames.com"):BlossomSocket{ close(); _socket = new BlossomSocket(a, 1276, "JGtkSTBCK0tnLVhhdCF2Xw=="); _socket.addEventListener(Event.CLOSE, socketCloseHandler, false, 0, true); _socket.addEventListener(BlossomEvent.ERROR, socketErrorHandler, false, 0, true); return (_socket); } public static function addEventListener(p_type:String, p_listener:Function, p_useCapture:Boolean=false, p_priority:int=0, p_useWeakReference:Boolean=false):void{ if (disp == null){ disp = new EventDispatcher(); }; disp.addEventListener(p_type, p_listener, p_useCapture, p_priority, p_useWeakReference); } public static function removeEventListener(p_type:String, p_listener:Function, p_useCapture:Boolean=false):void{ if (disp == null){ return; }; disp.removeEventListener(p_type, p_listener, p_useCapture); } public static function get socket():BlossomSocket{ return (_socket); } private static function socketErrorHandler(be:BlossomEvent):void{ close(); errorMessage = be.error; dispatchEvent(new Event(SocketManager.SOCKET_ERROR)); } public static function close():void{ if (socket != null){ _socket.removeEventListener(Event.CLOSE, socketCloseHandler); _socket.removeEventListener(BlossomEvent.ERROR, socketErrorHandler); trace("close socket"); _socket.remove(); _socket = null; }; } } }//package com.jiggmin
Section 32
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import fl.events.*; import flash.geom.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 33
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 34
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 35
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 36
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 37
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 38
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 39
//CheckBox (fl.controls.CheckBox) package fl.controls { import flash.display.*; public class CheckBox extends LabelButton { private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 << 1)); uiFocusRect.height = (background.height + (_local2 << 1)); }; } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a CheckBox's toggle.")); } override public function get toggle():Boolean{ return (true); } override protected function configUI():void{ var _local1:Shape; var _local2:Graphics; super.configUI(); super.toggle = true; _local1 = new Shape(); _local2 = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); } override protected function drawLayout():void{ var _local1:Number; super.drawLayout(); _local1 = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } override protected function drawBackground():void{ } override protected function initializeAccessibility():void{ if (CheckBox.createAccessibilityImplementation != null){ CheckBox.createAccessibilityImplementation(this); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 40
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; import flash.geom.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 41
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 42
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import flash.ui.*; import flash.geom.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 43
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 44
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 45
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 46
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.ui.*; import fl.containers.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 47
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 48
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; import flash.text.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 49
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 50
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 51
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 52
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); } else { if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; }; throw (new ((!NULL! + !NULL!) + " to Array or DataProvider.").TypeError(!NULL!)); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 53
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 54
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 55
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 56
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 57
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 58
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 59
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 60
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 61
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 62
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 63
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 64
//ag_intro_mc_158 (Giraffe_fla.ag_intro_mc_158) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class ag_intro_mc_158 extends MovieClip { public var main:Object; public function ag_intro_mc_158(){ super(); addFrameScript(0, frame1, 217, frame218); } function frame218(){ main.play(); } function frame1(){ main.stop(); gotoAndPlay(2); } } }//package Giraffe_fla
Section 65
//ArmorGamesLogo_18 (Giraffe_fla.ArmorGamesLogo_18) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class ArmorGamesLogo_18 extends MovieClip { public var b:SimpleButton; public function ArmorGamesLogo_18(){ super(); addFrameScript(0, frame1); } function frame1(){ b.addEventListener(MouseEvent.CLICK, getAGURL); } public function getAGURL(me:MouseEvent):void{ var url:String; var req:URLRequest; var me = me; url = "http://ArmorGames.com"; req = new URLRequest(url); navigateToURL(req, "_blank"); //unresolved jump var _slot1 = e; } } }//package Giraffe_fla
Section 66
//baseGraphicsHolder_298 (Giraffe_fla.baseGraphicsHolder_298) package Giraffe_fla { import flash.display.*; public dynamic class baseGraphicsHolder_298 extends MovieClip { public var bgi:MovieClip; public function baseGraphicsHolder_298(){ super(); addFrameScript(0, frame1, 1, frame2, 10, frame11, 26, frame27, 43, frame44); } function frame1(){ visible = false; stop(); } function frame2(){ stop(); } function frame27(){ gotoAndStop("Built"); } function frame11(){ visible = true; } function frame44(){ visible = false; gotoAndStop("Built"); } } }//package Giraffe_fla
Section 67
//buildBar_241 (Giraffe_fla.buildBar_241) package Giraffe_fla { import flash.display.*; public dynamic class buildBar_241 extends MovieClip { public function buildBar_241(){ super(); addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Giraffe_fla
Section 68
//buildingCover_296 (Giraffe_fla.buildingCover_296) package Giraffe_fla { import flash.display.*; public dynamic class buildingCover_296 extends MovieClip { public function buildingCover_296(){ super(); addFrameScript(0, frame1, 15, frame16); } function frame16(){ stop(); stop(); } function frame1(){ stop(); } } }//package Giraffe_fla
Section 69
//chatBox_243 (Giraffe_fla.chatBox_243) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class chatBox_243 extends MovieClip { public var moveDir:int; public var viewLength:Number; public var sb_G:Number; public var minY:Number; public var sb_B:Number; public var sb_T:Number; public var sb:MovieClip; public var maxY:Number; public var innerBox:MovieClip; public var scrollSpeed:Number; public var ind:Number; public function chatBox_243(){ super(); addFrameScript(0, frame1); } public function addScrollUp(e:MouseEvent):void{ moveDir = 1; addEventListener(Event.ENTER_FRAME, moveText, false, 0, true); } public function updateNavBar():void{ if (maxY > (viewLength + 15)){ sb.bob.height = ((viewLength / maxY) * 84.5); sb.bob.visible = true; sb.visible = true; ind = ((innerBox.y - minY) / (maxY - minY)); sb_G = ((sb_B - sb_T) - sb.bob.height); sb.bob.y = ((sb_B - sb.bob.height) - (ind * sb_G)); } else { sb.bob.visible = false; sb.visible = false; }; } function frame1(){ viewLength = 103; minY = innerBox.y; scrollSpeed = 6; sb_T = 12; sb_B = 93.5; sb.visible = false; sb.butUp.addEventListener(MouseEvent.MOUSE_DOWN, addScrollUp, false, 0, true); sb.butDown.addEventListener(MouseEvent.MOUSE_DOWN, addScrollDown, false, 0, true); sb.butUp.addEventListener(MouseEvent.MOUSE_UP, removeScroll, false, 0, true); sb.butDown.addEventListener(MouseEvent.MOUSE_UP, removeScroll, false, 0, true); sb.bob.addEventListener(MouseEvent.MOUSE_DOWN, scrollDragS, false, 0, true); parent.stage.addEventListener(MouseEvent.MOUSE_UP, scrollDragE, false, 0, true); } public function addScrollDown(e:MouseEvent):void{ moveDir = -1; addEventListener(Event.ENTER_FRAME, moveText, false, 0, true); } public function removeScroll(e:MouseEvent):void{ removeEventListener(Event.ENTER_FRAME, moveText); } public function scrollDragS(me:MouseEvent):void{ sb.addEventListener(Event.ENTER_FRAME, mouserMove, false, 0, true); } public function scrollDragE(me:MouseEvent):void{ sb.removeEventListener(Event.ENTER_FRAME, mouserMove); } public function moveText(e:Event):void{ if ((((((innerBox.y < maxY)) && ((moveDir == 1)))) || ((((innerBox.y > minY)) && ((moveDir == -1)))))){ innerBox.y = (innerBox.y + (scrollSpeed * moveDir)); updateNavBar(); }; } public function mouserMove(e:Event):void{ sb.bob.y = (sb.mouseY - (sb.bob.height / 2)); if (sb.bob.y < sb_T){ sb.bob.y = sb_T; }; if ((sb.bob.y + sb.bob.height) > sb_B){ sb.bob.y = (sb_B - sb.bob.height); }; ind = (((sb_B - sb.bob.height) - sb.bob.y) / sb_G); innerBox.y = ((ind * (maxY - minY)) + minY); } } }//package Giraffe_fla
Section 70
//chatScrollBar_245 (Giraffe_fla.chatScrollBar_245) package Giraffe_fla { import flash.display.*; public dynamic class chatScrollBar_245 extends MovieClip { public var butUp:SimpleButton; public var bob:MovieClip; public var butDown:SimpleButton; public function chatScrollBar_245(){ super(); } } }//package Giraffe_fla
Section 71
//d_mc1_7 (Giraffe_fla.d_mc1_7) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc1_7 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc1_7(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2115"; tSay = "First manned vessel is sent beyond the Earth's Solar System."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 72
//d_mc2_10 (Giraffe_fla.d_mc2_10) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc2_10 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc2_10(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2132"; tSay = "A habitable planet, Minerva, has finally been indentified by the Planck-IV telescope."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 73
//d_mc3_13 (Giraffe_fla.d_mc3_13) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc3_13 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc3_13(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2141"; tSay = "The United Space Coalition is formed by Russia and the European nations. Mankind's first attempt of planetary colonization begins."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 74
//d_mc4_14 (Giraffe_fla.d_mc4_14) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc4_14 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc4_14(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2185"; tSay = "Athenia, the first extraterrestrial state in history, has been established."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 75
//d_mc5_15 (Giraffe_fla.d_mc5_15) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc5_15 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc5_15(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2207"; tSay = "Athenia falls into economic hardship from not having enough manual labour."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 76
//d_mc6_16 (Giraffe_fla.d_mc6_16) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc6_16 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc6_16(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2252"; tSay = "USC Ambassador proposes a special operation to supplement Athenia's labour force with life sentenced convicts and POWs. This was kept secret, and there was little protest."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 77
//d_mc7_17 (Giraffe_fla.d_mc7_17) package Giraffe_fla { import flash.display.*; import flash.events.*; public dynamic class d_mc7_17 extends MovieClip { public var inBut:SimpleButton; public var tDate:String; public var tSay:String; public function d_mc7_17(){ super(); addFrameScript(0, frame1); } function frame1(){ inBut.addEventListener(MouseEvent.MOUSE_OVER, doFunction, false, 0, true); inBut.addEventListener(MouseEvent.MOUSE_OUT, outFunction, false, 0, true); tDate = "2265"; tSay = "The operation begins. Tens of thousands of prisoners are transported from Earth against their will to start a new life on Minerva."; inBut.useHandCursor = false; } public function outFunction(me:MouseEvent):void{ toolTip.unTip(); } public function doFunction(me:MouseEvent):void{ toolTip.tip(new tipObject(tDate, 0, 0, 0, tSay), 0); } } }//package Giraffe_fla
Section 78
//dateMc_6 (Giraffe_fla.dateMc_6) package Giraffe_fla { import flash.display.*; import flash.text.*; public dynamic class dateMc_6 extends MovieClip { public var t:TextField; public function dateMc_6(){ super(); } } }//package Giraffe_fla
Section 79
//defeatScreen_253 (Giraffe_fla.defeatScreen_253) package Giraffe_fla { import flash.display.*; public dynamic class defeatScreen_253 extends MovieClip { public function defeatScreen_253(){ super(); addFrameScript(599, frame600); } function frame600(){ stop(); } } }//package Giraffe_fla
Section 80
//gameSetting_314 (Giraffe_fla.gameSetting_314) package Giraffe_fla { import flash.display.*; public dynamic class gameSetting_314 extends MovieClip { public function gameSetting_314(){ super(); addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Giraffe_fla
Section 81
//iconCombatButton_231 (Giraffe_fla.iconCombatButton_231) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class iconCombatButton_231 extends MovieClip { public var theButton:SimpleButton; public var id:uint; public var theIcon:MovieClip; public function iconCombatButton_231(){ super(); addFrameScript(0, frame1); } public function doThing(e:MouseEvent):void{ gameKon.theRoot.uiCombatBut(id); } public function hideTTui(e:MouseEvent):void{ toolTip.unTip(); } function frame1(){ theButton.addEventListener(MouseEvent.CLICK, doThing, false, 0, true); theButton.addEventListener(MouseEvent.MOUSE_OVER, showTTui, false, 0, true); theButton.addEventListener(MouseEvent.MOUSE_OUT, hideTTui, false, 0, true); } public function showTTui(e:MouseEvent):void{ gameKon.theRoot.combatUiTT(id); } } }//package Giraffe_fla
Section 82
//loadingBar_3 (Giraffe_fla.loadingBar_3) package Giraffe_fla { import flash.display.*; public dynamic class loadingBar_3 extends MovieClip { public var bar:MovieClip; public function loadingBar_3(){ super(); } } }//package Giraffe_fla
Section 83
//MainTimeline (Giraffe_fla.MainTimeline) package Giraffe_fla { import fl.controls.*; import flash.display.*; import flash.events.*; import com.jiggmin.blossomSocket.*; import flash.utils.*; import flash.net.*; import fl.data.*; import flash.text.*; import com.jiggmin.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var setRecty:Number; public var WeaponData:weaponData; public var justReg:Boolean; public var b0:MovieClip; public var b1:MovieClip; public var b2:MovieClip; public var b3:MovieClip; public var b4:MovieClip; public var b5:MovieClip; public var b6:MovieClip; public var b8:MovieClip; public var MP_userName:String; public var button_play:SimpleButton; public var but_exit:Button; public var my_cMenu:ContextMenu; public var but_login:Button; public var ad:DisplayObject; public var singleLevel:uint; public var screenGoRight:Boolean; public var drawing:Boolean; public var b7:MovieClip; public var domEnd:Number; public var urlStart:Number; public var DataTracer:dataTracer; public var missionMax:uint; public var tfRe:TextFormat; public var cText:tipObject; public var be:uint; public var bh; public var r_m2:TextField; public var v_screen:MovieClip; public var r_m3:TextField; public var r_m4:TextField; public var teamWin:Team; public var __setPropDict:Dictionary; public var combo1:ComboBox; public var FONT:MainFont2; public var aiProfile:uint; public var i; public var shower:TextField; public var friendList:Array; public var T:MenuFont; public var j; public var countTime:MovieClip; public var jum:String; public var screenPoint:Number; public var dif:uint; public var missionOn:Boolean; public var allySocket:uint; public var shakeDecay:Number; public var b; public var url2:String; public var BuildingData:buildingData; public var d_screen:MovieClip; public var r_p2:TextField; public var r_p3:TextField; public var screenGoLeft:Boolean; public var r_p4:TextField; public var screenWidth:Number; public var mpSTarget:MultiplayerScreen; public var CPMStarSubPoolID:int; public var mouseVel:Number; public var fg; public var CPMStarPoolID:int; public var domain:String; public var allPlayers:Array; public var mouseMaxVel:Number; public var boundLimit:Number; public var gh; public var button_link:Button; public var i2; public var urlEnd:Number; public var i6; public var i7:int; public var DCLINE:String; public var rememberMe:Boolean; public var validCheckClock:Timer; public var j7; public var re_name:TextField; public var playerName:String; public var xb_back:Button; public var re_pass2:TextField; public var gameRun:Boolean; public var secondLayer:groundDisplay2; public var dragRect:Rectangle; public var userRace:uint; public var loadBar:MovieClip; public var re_anon:TextField; public var shakeStr:Number; public var colorChat:Array; public var endPoint1:Number; public var endPoint2:Number; public var missionLevel:uint; public var regName:String; public var in_name:TextField; public var but_login3:Button; public var DisplayField:Sprite; public var comicPageMax:uint; public var gameRunning:Boolean; public var button_mission:Button; public var disconnectedHandler2:Function; public var ignoreList:Array; public var chatPanel:TextField; public var mW:Number; public var shakeOsci:Number; public var colorStrings:Array; public var TICS:Timer; public var collProp7:Object; public var but_register2:Button; public var uiGlowIn2:GlowFilter; public var DTIM:Timer; public var legitChecker:Boolean; public var sav_user:String; public var effectsDisplay:Sprite; public var serverNames:Array; public var promptBox:MovieClip; public var aiSingArray:Array; public var dateMC:MovieClip; public var storySetter:uint; public var MP_r2j:Boolean; public var oi:MovieClip; public var OptionData:optionData; public var comicLoad; public var agIntro:MovieClip; public var MP_color:uint; public var button_multi:Button; public var winGame:Boolean; public var button_single:Button; public var shakeNow:Number; public var roomName:String; public var sav_pass:String; public var mpscreenMode:Boolean; public var button_res:Button; public var userData:Object; public var mainPosY:Number; public var uiCombatTipOn:Array; public var userID:int; public var GameKon:gameKon; public var gameQuitable:Boolean; public var uiGlow:GlowFilter; public var minBound:uint; public var normalRoom:String; public var butmis_1:Button; public var butmis_2:Button; public var butmis_3:Button; public var butmis_4:Button; public var butmis_6:Button; public var uiLay:MovieClip; public var tf:TextFormat; public var butmis_5:Button; public var TJ:Timer; public var j_server0:Button; public var j_server1:Button; public var j_server2:Button; public var v2; public var clientPlayer:Array; public var DCTRUE:Boolean; public var optRestrict:Array; public var re_email:TextField; public var xb_back2:Button; public var xb_back3:Button; public var realUser:Boolean; public var singlePlayerMode:Boolean; public var mis_beg:SimpleButton; public var re_pass:TextField; public var hotkeyArray:Array; public var but_guest:Button; public var adBox:MovieClip; public var josefArray:Array; public var but_register:Button; public var LastDot:Number; public var n_l2:TextField; public var n_l4:TextField; public var rankedMatch:Boolean; public var n_l1:TextField; public var n_l3:TextField; public var allyChat:Boolean; public var buildBar:MovieClip; public var colorForm:Array; public var chatToWho:TextField; public var regPass:String; public var collProps7:Array; public var unitDisplay:Sprite; public var musicOn:Boolean; public var completedTheL:Boolean; public var in_pass:TextField; public var maxBound:uint; public var sxB_1:Button; public var sxB_2:Button; public var sxB_3:Button; public var sxB_4:Button; public var sxB_5:Button; public var rankLimit:Array; public var GD3:groundDisplay3; public var d_mc0:MovieClip; public var d_mc1:MovieClip; public var d_mc2:MovieClip; public var d_mc3:MovieClip; public var d_mc4:MovieClip; public var d_mc5:MovieClip; public var d_mc6:MovieClip; public var mouseLasso:Sprite; public var chatHider:MovieClip; public var tutLev:Boolean; public var BaseKon:baseKon; public var saveGame:SharedObject; public var gameSet:uint; public var roomMaster:Boolean; public var reMe:CheckBox; public var collObj7:DataProvider; public var agDom:Boolean; public var uiName:TextField; public var nameBox:TextField; public var playerControl; public var uiDesc:TextField; public var iii; public var uiGlowIn:GlowFilter; public var soundOn:Boolean; public var mouseAccel:Number; public var chatBox:MovieClip; public var r_e2:TextField; public var r_e3:TextField; public var aiSetArray:Array; public var r_e4:TextField; public var iWon:Boolean; public var UnitData:unitData; public var yugoSlav:uint; public var MP_team:uint; public var winSave:uint; public var vars2:Object; public var comicPage:uint; public var missionGo:Boolean; public var but_exit3:Button; public var allyPosT:uint; public var but_exit2:Button; public var DisplayKon:displayKon; public var TGYUJHI:Timer; public var onlineServers:Array; public var ToolTip:toolTip; public var remotePlayerArray:Array; public var itemObj7:SimpleCollectionItem; public var uiCombatTipOff:Array; public var r_i2:TextField; public var r_i3:TextField; public var setRectx:Number; public var mis_next:SimpleButton; public var r_i:TextField; public var hotbutArray:Array; public var r_i4:TextField; public var r_m:TextField; public var r_p:TextField; public var gameRoom:BlossomRoom; public var battleWidth:Number; public var validDomain:Boolean; public var r_e:TextField; public function MainTimeline(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37); } public function checkAllValid(te:TimerEvent=null):void{ if (UnitData.checkData()){ errorInData(); } else { if (OptionData.checkData()){ errorInData(); } else { trace("Pass"); }; }; } function __setProp_but_guest_MPCONNECT_Go_29(){ but_guest["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_guest.emphasized = false; but_guest.enabled = true; but_guest.label = "Play as Guest"; but_guest.labelPlacement = "right"; but_guest.selected = false; but_guest.toggle = false; but_guest.visible = true; but_guest["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function checkNameValid(a:String){ var regEXP:RegExp; var cahL:int; var nuller:Boolean; var nn:*; var o:Object; regEXP = /([0-9a-zA-Z])/; cahL = a.length; nuller = false; nn = 0; while (nn < cahL) { o = regEXP.exec(a.charAt(nn)); if (o == null){ nuller = true; }; nn++; }; if (a.indexOf("Guest") != -1){ nuller = true; }; if (nuller){ return (false); }; return (true); } public function endComicMode():void{ removeChild(comicLoad); mis_beg.visible = false; if (missionGo){ this.gotoAndStop("Game", "GAME"); } else { if (missionLevel == 6){ this.gotoAndStop("MISSION", "MENU"); } else { this.gotoAndStop("MISSION", "MENU"); }; }; } public function emptyText(event:MouseEvent):void{ toolTip.unTip(); gameKon.tippingWork = false; } public function receiveStatsHandler(be:BlossomEvent=null):void{ var users:int; if (MP_r2j){ users = be.raw.users; if (users < 300){ mpKon.eventRem(_e.RECEIVE_SOCKET_ID, connected, true); dataTracer.progressing = false; removeChild(DataTracer); MP_r2j = false; stage.removeEventListener("CLOSETRACER", stopTheJoin); dataTracer.initAfkClock(); gotoAndStop("mpLogin", "MPCONNECT"); } else { dataTracer.update("This server is full, please try a different one :("); dataTracer.suppress(); mpKon.close(); }; }; } public function completedTheLoad():void{ var pcent:uint; var iii2:*; if (!completedTheL){ completedTheL = true; pcent = 1; loadBar.bar.width = (mW * pcent); dateMC.x = (120.6 + loadBar.bar.width); for (iii2 in josefArray) { josefArray[iii2].oj.visible = true; }; this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, PL_LOADING); this.loaderInfo.removeEventListener(Event.COMPLETE, PL_LOADED); nextFrame(); }; } public function startSing1(e:MouseEvent):void{ loadGameGo(1); } public function startSing2(e:MouseEvent):void{ loadGameGo(2); } public function startSing4(e:MouseEvent):void{ loadGameGo(4); } public function startSing5(e:MouseEvent):void{ loadGameGo(5); } public function startSing3(e:MouseEvent):void{ loadGameGo(3); } public function addMPthings():void{ if (!mpKon.foxMode){ TJ = new Timer(10000); TJ.start(); TJ.addEventListener(TimerEvent.TIMER, sendResInfo, false, 0, true); SocketManager.socket.addEventListener(BlossomEvent.RECEIVE_MESSAGE, allyChatHandler, false, 0, true); gameRoom = new BlossomRoom(SocketManager.socket, roomName); mpKon.room = gameRoom; gameRoom.addEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeftHandler, false, 0, true); gameRoom.addEventListener("createUnit", createUnitHandler, false, 0, true); gameRoom.addEventListener("killUnit", killUnitHandler, false, 0, true); gameRoom.addEventListener("orderUnit", orderHandler, false, 0, true); gameRoom.addEventListener("createMissile", missileHandler, false, 0, true); gameRoom.addEventListener("updateBuilding", buildingHandler, false, 0, true); gameRoom.addEventListener("updateIncome", updateIncomeHandler, false, 0, true); gameRoom.addEventListener("sendChat", sendChatHandler, false, 0, true); gameRoom.addEventListener("sendExit", sendChatHandler, false, 0, true); gameRoom.addEventListener("alignResource", alignResourceHand, false, 0, true); }; } function __setProp_sxB_3_MENU_MENU_24(){ sxB_3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sxB_3.emphasized = false; sxB_3.enabled = true; sxB_3.label = "Normal"; sxB_3.labelPlacement = "right"; sxB_3.selected = false; sxB_3.toggle = false; sxB_3.visible = true; sxB_3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function killAllEvents():void{ but_login.removeEventListener(MouseEvent.CLICK, b_loginHand); but_register.removeEventListener(MouseEvent.CLICK, b_registerHand); but_guest.removeEventListener(MouseEvent.CLICK, b_guestHand); but_exit.removeEventListener(MouseEvent.CLICK, b_exitHand); } function __setProp_combo1_MENU_MENU_24(){ combo1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj7 = new DataProvider(); collProps7 = [{label:"Capitalist", data:2}, {label:"Communist", data:1}, {label:"Fascist", data:0}]; i7 = 0; while (i7 < collProps7.length) { itemObj7 = new SimpleCollectionItem(); collProp7 = collProps7[i7]; for (j7 in collProp7) { itemObj7[j7] = collProp7[j7]; }; collObj7.addItem(itemObj7); i7++; }; combo1.dataProvider = collObj7; combo1.editable = false; combo1.enabled = true; combo1.prompt = ""; combo1.restrict = ""; combo1.rowCount = 3; combo1.visible = true; combo1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame2(){ stop(); soundOn = true; musicOn = true; _t.init(stage); mpKon.init(this); dataTimer.init(stage); Mouse.show(); normalRoom = "Lobby"; DataTracer = new dataTracer(this, stage); url2 = stage.loaderInfo.url; urlStart = (url2.indexOf("://") + 3); urlEnd = url2.indexOf("/", urlStart); domain = url2.substring(urlStart, urlEnd); LastDot = (domain.lastIndexOf(".") - 1); domEnd = (domain.lastIndexOf(".", LastDot) + 1); domain = domain.substring(domEnd, domain.length); validDomain = ((("armorgames.com" == domain)) || (("" == domain))); agDom = false; button_play.addEventListener(MouseEvent.MOUSE_UP, playGame); } function frame3(){ } public function doDraw(event:Event):void{ mouseLasso.graphics.clear(); mouseLasso.graphics.lineStyle(1, 6750054); mouseLasso.graphics.drawRect(setRectx, setRecty, (mouseX - setRectx), (mouseY - setRecty)); } function frame1(){ CPMStarPoolID = 1052; CPMStarSubPoolID = 9; ad = AdLoader.LoadAd(CPMStarPoolID, CPMStarSubPoolID); adBox.addChild(ad); stop(); this.stop(); stage.scaleMode = StageScaleMode.EXACT_FIT; mW = loadBar.bar.width; completedTheL = false; T = new MenuFont(); tf = new TextFormat(); tf.font = T.fontName; tf.color = 0; tf.size = 15; this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, PL_LOADING, false, 0, true); this.loaderInfo.addEventListener(Event.COMPLETE, PL_LOADED, false, 0, true); addEventListener(Event.ENTER_FRAME, showMouse, false, 0, true); josefArray = new Array(); josefArray.push({oj:d_mc0, D:2115}); josefArray.push({oj:d_mc1, D:2132}); josefArray.push({oj:d_mc2, D:2141}); josefArray.push({oj:d_mc3, D:2185}); josefArray.push({oj:d_mc4, D:2207}); josefArray.push({oj:d_mc5, D:2252}); josefArray.push({oj:d_mc6, D:2265}); for (iii in josefArray) { josefArray[iii].oj.visible = false; }; ToolTip = new toolTip(stage, this, -265, 250); addChild(ToolTip); ToolTip.x = mouseX; ToolTip.y = mouseY; dragRect = new Rectangle(0, 0, 800, 575); ToolTip.startDrag(false, dragRect); BuildingData = new buildingData(); OptionData = new optionData(); WeaponData = new weaponData(); UnitData = new unitData(); } function frame22(){ gotoAndStop("MISSION", "MENU"); } public function overText2(event:MouseEvent):void{ toolTip.tip(gameKon.cText2, 1); gameKon.tippingWork = true; } function frame9(){ renderMachine.renderAll(2, colorForm, 3); } function frame23(){ if ((((__setPropDict[button_mission] == undefined)) || (!((int(__setPropDict[button_mission]) == 23))))){ __setPropDict[button_mission] = currentFrame; __setProp_button_mission_MENU_MENU_23(); }; if ((((__setPropDict[button_link] == undefined)) || (!((int(__setPropDict[button_link]) == 23))))){ __setPropDict[button_link] = currentFrame; __setProp_button_link_MENU_MENU_23(); }; if ((((__setPropDict[button_multi] == undefined)) || (!((int(__setPropDict[button_multi]) == 23))))){ __setPropDict[button_multi] = currentFrame; __setProp_button_multi_MENU_MENU_23(); }; if ((((__setPropDict[button_single] == undefined)) || (!((int(__setPropDict[button_single]) == 23))))){ __setPropDict[button_single] = currentFrame; __setProp_button_single_MENU_MENU_23(); }; stop(); optRestrict = new Array(); if (DCTRUE == true){ dataTracer.showTracer(); dataTracer.update(DCLINE); }; missionLevel = 1; storySetter = 0; missionOn = false; missionGo = true; button_single.setStyle("textFormat", tf); button_multi.setStyle("textFormat", tf); button_mission.setStyle("textFormat", tf); button_link.setStyle("textFormat", tf); button_link.addEventListener(MouseEvent.CLICK, getAGURL, false, 0, true); button_single.addEventListener(MouseEvent.MOUSE_UP, startSinglePlayer, false, 0, true); button_multi.addEventListener(MouseEvent.MOUSE_UP, startMultiPlayer, false, 0, true); button_mission.addEventListener(MouseEvent.MOUSE_UP, startMissionPlayer, false, 0, true); DCTRUE = false; remotePlayerArray = new Array(false, false, false, false); allPlayers = new Array(); singleLevel = 0; tutLev = false; } public function sendChatHandler(be:BlossomEvent):void{ gogoChat(be.data.i, be.data.t); } public function userLeftHandler(be:BlossomEvent):void{ var leaverSocket:*; var i2:*; var leaverName:String; leaverSocket = be.socketID; for (i2 in allPlayers) { if (allPlayers[i2].ID == leaverSocket){ leaverName = allPlayers[i2].NAME; }; }; doChat((leaverName + " has left the game."), "System", 0); } function frame5(){ aiTactic.init(); colorStrings = new Array("White", "Red", "Blue", "Yellow", "Green"); colorForm = new Array(0xFFFFFF, 0xFF0000, 39423, 0xFFCC00, 385051); colorChat = new Array("8C8C8C", "A93434", "306BA5", "BB8711", "327840"); renderMachine.renderAll(0); validCheckClock = new Timer(20000); validCheckClock.start(); validCheckClock.addEventListener(TimerEvent.TIMER, checkAllValid, false, 0, true); checkAllValid(); } function frame8(){ renderMachine.renderAll(2, colorForm, 2); } function frame21(){ gotoAndStop("START", "MENU"); } public function disconnectedHandler():void{ if (gameRunning){ tg(); gotoAndStop("START", "MENU"); } else { if (mpscreenMode){ gotoAndStop("START", "MENU"); }; }; } function frame36(){ if ((((__setPropDict[button_res] == undefined)) || (!((int(__setPropDict[button_res]) == 36))))){ __setPropDict[button_res] = currentFrame; __setProp_button_res_POST_Layer1_36(); }; if (winGame){ if ((((missionMax == missionLevel)) && ((missionMax < 6)))){ missionMax++; saveGame.data.al = missionMax; saveGame.flush(); }; shower.text = "VICTORY"; removeChild(d_screen); d_screen.stop(); d_screen.visible = false; d_screen = null; } else { shower.text = "DEFEAT"; removeChild(v_screen); v_screen.stop(); v_screen.visible = false; v_screen = null; }; button_res.addEventListener(MouseEvent.MOUSE_UP, restart, false, 0, true); } function frame11(){ jum = "You have been kicked on suspicion of hacking."; this.gotoAndPlay("Prestart", "MENU"); } public function overText(event:MouseEvent):void{ toolTip.tip(cText, 0); } function frame34(){ mpKon.gameBegun = false; dataTracer.endAfkClock(); dataTracer.hideTracer(); dataTimer.forceStart(); switch (clientPlayer[1]){ case 1: allyPosT = 2; break; case 2: allyPosT = 1; break; case 3: allyPosT = 4; break; case 4: allyPosT = 3; break; }; legitChecker = true; i = 1; while (i < 5) { for (i2 in allPlayers) { if (allPlayers[i2].POS == i){ allPlayers[i2].NAME = adjustName(allPlayers[i2].NAME); this[("n_l" + i)].text = allPlayers[i2].NAME; if (allPlayers[i2].POS == allyPosT){ allySocket = allPlayers[i2].ID; }; }; }; i++; }; if (allySocket != 0){ allyChat = true; } else { allyChat = false; }; countTime.basic = this; } function frame7(){ renderMachine.renderAll(2, colorForm, 1); } function frame30(){ if ((((__setPropDict[but_exit2] == undefined)) || (!((int(__setPropDict[but_exit2]) == 30))))){ __setPropDict[but_exit2] = currentFrame; __setProp_but_exit2_MPCONNECT_Go_30(); }; if ((((__setPropDict[but_register2] == undefined)) || (!((int(__setPropDict[but_register2]) == 30))))){ __setPropDict[but_register2] = currentFrame; __setProp_but_register2_MPCONNECT_Go_30(); }; but_register2.addEventListener(MouseEvent.CLICK, b_registerHand2, false, 0, true); but_exit2.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); but_register2.setStyle("textFormat", tf); but_exit2.setStyle("textFormat", tf); justReg = false; } function frame25(){ if ((((__setPropDict[butmis_3] == undefined)) || (!((int(__setPropDict[butmis_3]) == 25))))){ __setPropDict[butmis_3] = currentFrame; __setProp_butmis_3_MENU_MENU_25(); }; if ((((__setPropDict[butmis_2] == undefined)) || (!((int(__setPropDict[butmis_2]) == 25))))){ __setPropDict[butmis_2] = currentFrame; __setProp_butmis_2_MENU_MENU_25(); }; if ((((__setPropDict[butmis_6] == undefined)) || (!((int(__setPropDict[butmis_6]) == 25))))){ __setPropDict[butmis_6] = currentFrame; __setProp_butmis_6_MENU_MENU_25(); }; if ((((__setPropDict[butmis_1] == undefined)) || (!((int(__setPropDict[butmis_1]) == 25))))){ __setPropDict[butmis_1] = currentFrame; __setProp_butmis_1_MENU_MENU_25(); }; if ((((__setPropDict[butmis_5] == undefined)) || (!((int(__setPropDict[butmis_5]) == 25))))){ __setPropDict[butmis_5] = currentFrame; __setProp_butmis_5_MENU_MENU_25(); }; if ((((__setPropDict[butmis_4] == undefined)) || (!((int(__setPropDict[butmis_4]) == 25))))){ __setPropDict[butmis_4] = currentFrame; __setProp_butmis_4_MENU_MENU_25(); }; if ((((__setPropDict[xb_back2] == undefined)) || (!((int(__setPropDict[xb_back2]) == 25))))){ __setPropDict[xb_back2] = currentFrame; __setProp_xb_back2_MENU_MENU_25(); }; xb_back2.setStyle("textFormat", tf); xb_back2.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); tutLev = false; butmis_1.setStyle("textFormat", tf); butmis_2.setStyle("textFormat", tf); butmis_3.setStyle("textFormat", tf); butmis_4.setStyle("textFormat", tf); butmis_5.setStyle("textFormat", tf); butmis_6.setStyle("textFormat", tf); butmis_1.addEventListener(MouseEvent.CLICK, gotoMission1); butmis_2.addEventListener(MouseEvent.CLICK, gotoMission2); butmis_3.addEventListener(MouseEvent.CLICK, gotoMission3); butmis_4.addEventListener(MouseEvent.CLICK, gotoMission4); butmis_5.addEventListener(MouseEvent.CLICK, gotoMission5); butmis_6.addEventListener(MouseEvent.CLICK, gotoMission6); gh = 1; while (gh < 7) { if (missionMax < gh){ this[("butmis_" + gh)].enabled = false; this[("butmis_" + gh)].setStyle("textFormat", tf); this[("butmis_" + gh)].label = "Locked"; }; gh++; }; } function frame27(){ switch (storySetter){ case 0: comicLoad = new comic_0(); break; case 1: comicLoad = new comic_1(); break; case 2: comicLoad = new comic_2(); break; case 3: comicLoad = new comic_3(); break; case 4: comicLoad = new comic_4(); break; case 5: comicLoad = new comic_5(); break; case 6: comicLoad = new comic_6(); break; case 7: comicLoad = new comic_7(); break; case 8: comicLoad = new comic_8(); break; case 9: comicLoad = new comic_9(); break; case 10: comicLoad = new comic_10(); break; case 11: comicLoad = new comic_11(); break; }; addChild(comicLoad); comicLoad.y = 180; comicLoad.gotoAndStop(1); comicPage = 1; comicPageMax = comicLoad.totalFrames; mis_beg.visible = false; mis_next.visible = true; mis_next.addEventListener(MouseEvent.CLICK, nextComic); } function __setProp_butmis_3_MENU_MENU_25(){ butmis_3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_3.emphasized = false; butmis_3.enabled = true; butmis_3.label = "Mission 3"; butmis_3.labelPlacement = "right"; butmis_3.selected = false; butmis_3.toggle = false; butmis_3.visible = true; butmis_3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame37(){ stop(); } function frame32(){ roomMaster = false; rankedMatch = false; mpscreenMode = true; optRestrict = new Array(); gameSet = 0; mpSTarget = new MultiplayerScreen(MP_userName, MP_team, MP_color, userData, stage, normalRoom, userRace); disconnectedHandler2 = mpSTarget.endIt; addChildAt(mpSTarget, 0); } function frame24(){ if ((((__setPropDict[sxB_2] == undefined)) || (!((int(__setPropDict[sxB_2]) == 24))))){ __setPropDict[sxB_2] = currentFrame; __setProp_sxB_2_MENU_MENU_24(); }; if ((((__setPropDict[sxB_5] == undefined)) || (!((int(__setPropDict[sxB_5]) == 24))))){ __setPropDict[sxB_5] = currentFrame; __setProp_sxB_5_MENU_MENU_24(); }; if ((((__setPropDict[sxB_3] == undefined)) || (!((int(__setPropDict[sxB_3]) == 24))))){ __setPropDict[sxB_3] = currentFrame; __setProp_sxB_3_MENU_MENU_24(); }; if ((((__setPropDict[xb_back] == undefined)) || (!((int(__setPropDict[xb_back]) == 24))))){ __setPropDict[xb_back] = currentFrame; __setProp_xb_back_MENU_MENU_24(); }; if ((((__setPropDict[sxB_1] == undefined)) || (!((int(__setPropDict[sxB_1]) == 24))))){ __setPropDict[sxB_1] = currentFrame; __setProp_sxB_1_MENU_MENU_24(); }; if ((((__setPropDict[combo1] == undefined)) || (!((int(__setPropDict[combo1]) == 24))))){ __setPropDict[combo1] = currentFrame; __setProp_combo1_MENU_MENU_24(); }; if ((((__setPropDict[sxB_4] == undefined)) || (!((int(__setPropDict[sxB_4]) == 24))))){ __setPropDict[sxB_4] = currentFrame; __setProp_sxB_4_MENU_MENU_24(); }; clientPlayer = [2, 1, 1]; singleLevel = 0; tutLev = false; if (playerName != null){ nameBox.text = playerName; }; sxB_1.addEventListener(MouseEvent.CLICK, startSing1, false, 0, true); sxB_2.addEventListener(MouseEvent.CLICK, startSing2, false, 0, true); sxB_3.addEventListener(MouseEvent.CLICK, startSing3, false, 0, true); sxB_4.addEventListener(MouseEvent.CLICK, startSing4, false, 0, true); sxB_5.addEventListener(MouseEvent.CLICK, startSing5, false, 0, true); sxB_1.setStyle("textFormat", tf); sxB_2.setStyle("textFormat", tf); sxB_3.setStyle("textFormat", tf); sxB_4.setStyle("textFormat", tf); sxB_5.setStyle("textFormat", tf); xb_back.setStyle("textFormat", tf); xb_back.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); } function frame4(){ stop(); agIntro.main = this; soundKon.init(); my_cMenu = new ContextMenu(); my_cMenu.hideBuiltInItems(); contextMenu = my_cMenu; missionMax = 1; sav_user = ""; sav_pass = ""; rememberMe = false; saveGame = SharedObject.getLocal("Colony"); if (saveGame.data.al == null){ saveGame.data.al = 1; saveGame.data.sav_user = ""; saveGame.data.sav_pass = ""; saveGame.data.rememberMe = false; saveGame.flush(); } else { missionMax = saveGame.data.al; sav_user = saveGame.data.sav_user; sav_pass = saveGame.data.sav_pass; rememberMe = saveGame.data.rememberMe; }; } function frame35(){ removeChild(promptBox); stage.frameRate = 30; _t.startTicker(); mpKon.gameBegun = true; stage.addEventListener(Event.ACTIVATE, resetFocus); stage.focus = this; gameRunning = true; iWon = false; gameQuitable = true; FONT = new MainFont2(); disconnectedHandler2 = disconnectedHandler; DTIM = new Timer(5000); DTIM.start(); DTIM.addEventListener(TimerEvent.TIMER, incrDT, false, 0, true); yugoSlav = 25; if (!mpKon.foxMode){ }; trace(("Room Name: " + roomName)); gameKon.desync = false; if (!mpKon.foxMode){ winSave = 0; if (legitChecker){ rankedMatch = true; } else { rankedMatch = false; }; }; trace(("Ranked Match: " + rankedMatch)); if (!singlePlayerMode){ addMPthings(); if (((realUser) && (!(mpKon.foxMode)))){ if (rankedMatch){ userData.gamesPlayed++; winSave = userData.gamesConsecutiveWins; userData.gamesConsecutiveWins = 0; vars2 = new Object(); vars2.userData = userData; SocketManager.socket.setUserVars(vars2); }; }; }; TGYUJHI = new Timer(10000); TGYUJHI.start(); TGYUJHI.addEventListener(TimerEvent.TIMER, removeIncomeListenerGO, false, 0, true); GameKon = new gameKon(); gameRun = true; GameKon.setData(stage, this); GameKon.runData(); buildBar.visible = false; displayKon.liftRestri(); DisplayKon = new displayKon(); DisplayField = new Sprite(); addChildAt(DisplayField, 0); GD3 = new groundDisplay3(); addChildAt(GD3, 0); DisplayField.x = 0; mainPosY = (DisplayField.y = 120); unitDisplay = new Sprite(); DisplayField.addChild(unitDisplay); effectsDisplay = new Sprite(); DisplayField.addChild(effectsDisplay); screenWidth = stage.stageWidth; battleWidth = (stage.stageWidth * 2); screenPoint = 0; endPoint1 = 0; endPoint2 = (battleWidth - screenWidth); BaseKon = new baseKon(); secondLayer = new groundDisplay2(); DisplayField.addChildAt(new _groundDisplay(), 0); DisplayField.addChildAt(secondLayer, 0); DisplayField.addChildAt(BaseKon.BaseHolder, 2); BaseKon.BaseHolder.x = (50 + (BaseKon.BaseHolder.width / 2)); BaseKon.BaseHolder.y = 140; DisplayField.addChildAt(BaseKon.BaseHolder2, 2); BaseKon.BaseHolder2.x = (battleWidth - (50 + (BaseKon.BaseHolder2.width / 2))); BaseKon.BaseHolder2.y = 140; DisplayField.x = -(screenPoint); GameKon.player1 = new playerKon(0); GameKon.player2 = new playerKon(0); GameKon.player3 = new playerKon(0); GameKon.player4 = new playerKon(0); if (!singlePlayerMode){ for (i6 in allPlayers) { if ((((((allPlayers[i6].NAME == "Easy CPU")) || ((allPlayers[i6].NAME == "Normal CPU")))) || ((allPlayers[i6].NAME == "Hard CPU")))){ GameKon[("player" + allPlayers[i6].POS)].CPUMODE = true; trace(("CPU MODE ON PLAYER: " + allPlayers[i6].POS)); }; }; }; GameKon.player1.idTag = "p1_"; GameKon.player2.idTag = "p2_"; GameKon.player3.idTag = "p3_"; GameKon.player4.idTag = "p4_"; TICS = new Timer(3000); if (!singlePlayerMode){ GameKon.player1.cityColor = 1; GameKon.player2.cityColor = 2; GameKon.player3.cityColor = 3; GameKon.player4.cityColor = 4; TICS.reset(); TICS.start(); TICS.addEventListener(TimerEvent.TIMER, sendIncomeStatus, false, 0, true); } else { GameKon.player1.cityColor = 1; GameKon.player2.cityColor = 2; GameKon.player3.cityColor = 3; GameKon.player4.cityColor = 4; }; GameKon.player1.POS = 1; GameKon.player2.POS = 2; GameKon.player3.POS = 3; GameKon.player4.POS = 4; if (musicOn){ musicKon.setTheme(clientPlayer[0]); musicKon.startFader(0, 1); }; playerControl = GameKon[("player" + clientPlayer[1])]; gameKon.playerNow = playerControl; playerControl.setIncome(clientPlayer[0]); if (singlePlayerMode){ playerControl.cityColor = clientPlayer[2]; }; if ((((playerControl == GameKon.player3)) || ((playerControl == GameKon.player4)))){ screenPoint = endPoint2; DisplayField.x = -(screenPoint); }; GameKon.assignBase(); GameKon.player1.team = (GameKon.player2.team = (GameKon.player3.eteam = (GameKon.player4.eteam = unitKon.Team1))); GameKon.player1.eteam = (GameKon.player2.eteam = (GameKon.player3.team = (GameKon.player4.team = unitKon.Team2))); unitKon.createBase(GameKon.player1, GameKon.player3); addEventListener(Event.ENTER_FRAME, updateUI); addEventListener(Event.ENTER_FRAME, screenScroll); j = 0; while (j < 9) { this[("b" + j)].id = j; this[("b" + j)].btn.visible = false; j++; }; b8.visible = false; b8.btn.visible = true; oi.visible = false; boundLimit = 0.1; minBound = Math.round((stage.stageWidth * boundLimit)); maxBound = Math.round((stage.stageWidth * (1 - boundLimit))); mouseAccel = 1; mouseMaxVel = 35; mouseVel = 0; winGame = false; aiSetArray = new Array(GameKon.player1, GameKon.player2, GameKon.player3, GameKon.player4); optRestrict = new Array(); if (!singlePlayerMode){ switch (gameSet){ case 1: optRestrict = new Array(37, 40); break; case 2: optRestrict = new Array(37, 40, 23); break; case 3: optRestrict = new Array(13, 14, 16, 17, 18, 20, 21, 22, 24, 37, 40, 38, 39, 43, 45, 46, 48, 49, 52); break; case 4: optRestrict = new Array(15, 47, 37, 40, 23, 19, 51); break; case 5: optRestrict = new Array(33, 34, 37, 40); break; default: optRestrict = new Array(); break; }; }; aiSingArray = new Array(); chatBody.chatOn = false; if (optRestrict.length > 0){ displayKon.restricted = true; for (bh in optRestrict) { displayKon.restrictArray.push(optRestrict[bh]); }; }; if (singlePlayerMode){ switch (singleLevel){ case 1: aiSingArray.push({isON:false, dif:0, be:0}); aiSingArray.push({isON:true, dif:2, be:0}); aiSingArray.push({isON:true, dif:1, be:1}); aiSingArray.push({isON:true, dif:1, be:0}); chatBody.init(1); break; case 2: aiSingArray.push({isON:true, dif:1, be:99}); aiSingArray.push({isON:true, dif:1, be:99}); aiSingArray.push({isON:true, dif:1, be:99}); aiSingArray.push({isON:true, dif:1, be:99}); chatBody.init(0); break; case 3: aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); chatBody.init(0); break; case 4: aiSingArray.push({isON:true, dif:3, be:99}); aiSingArray.push({isON:true, dif:3, be:99}); aiSingArray.push({isON:true, dif:3, be:99}); aiSingArray.push({isON:true, dif:3, be:99}); chatBody.init(0); break; case 5: aiSingArray.push({isON:true, dif:4, be:99}); aiSingArray.push({isON:true, dif:4, be:99}); aiSingArray.push({isON:true, dif:4, be:99}); aiSingArray.push({isON:true, dif:4, be:99}); chatBody.init(0); break; case 6: aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:false, dif:1, be:1}); displayKon.restricted = true; displayKon.restrictArray.push(3, 6, 7, 8, 9); chatBody.init(2); break; case 7: aiSingArray.push({isON:true, dif:1, be:5}); aiSingArray.push({isON:true, dif:1, be:0}); aiSingArray.push({isON:false, dif:0, be:0}); aiSingArray.push({isON:true, dif:1, be:3}); displayKon.restricted = true; displayKon.restrictArray.push(2, 8, 34, 4, 46); chatBody.init(3); break; case 8: aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:false, dif:2, be:0}); aiSingArray.push({isON:true, dif:1, be:5}); aiSingArray.push({isON:true, dif:1, be:3}); displayKon.restricted = true; displayKon.restrictArray.push(3, 8); chatBody.init(4); break; case 9: aiSingArray.push({isON:true, dif:3, be:0}); aiSingArray.push({isON:true, dif:2, be:1}); aiSingArray.push({isON:false, dif:0, be:0}); aiSingArray.push({isON:true, dif:2, be:3}); displayKon.restricted = true; displayKon.restrictArray.push(8); chatBody.init(5); break; case 10: aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:true, dif:3, be:1}); aiSingArray.push({isON:true, dif:2, be:0}); aiSingArray.push({isON:true, dif:3, be:3}); displayKon.restricted = true; displayKon.restrictArray.push(3, 4, 33); chatBody.init(6); break; case 11: aiSingArray.push({isON:false, dif:1, be:0}); aiSingArray.push({isON:true, dif:3, be:1}); aiSingArray.push({isON:true, dif:2, be:3}); aiSingArray.push({isON:true, dif:3, be:0}); displayKon.restricted = false; chatBody.init(7); break; default: aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); aiSingArray.push({isON:true, dif:2, be:99}); chatBody.init(0); break; }; }; for (b in aiSetArray) { if (singlePlayerMode){ if (aiSetArray[b] != playerControl){ if (aiSingArray[b].isON){ dif = aiSingArray[b].dif; be = aiSingArray[b].be; aiSetArray[b].startAi(0, dif, be); }; }; } else { if (roomMaster){ for (v2 in allPlayers) { aiProfile = 0; if (allPlayers[v2].NAME == "Easy CPU"){ aiProfile = 1; }; if (allPlayers[v2].NAME == "Normal CPU"){ aiProfile = 2; }; if (allPlayers[v2].NAME == "Hard CPU"){ aiProfile = 4; }; if (((!((aiProfile == 0))) && ((allPlayers[v2].POS == (b + 1))))){ aiSetArray[b].startAi(allPlayers[v2].POS, aiProfile); }; }; }; }; }; if (singlePlayerMode){ switch (singleLevel){ case 7: mission2StartAi(); break; default: break; }; }; addEventListener(MouseEvent.MOUSE_DOWN, beginDraw); addEventListener(MouseEvent.MOUSE_UP, endDraw); mouseLasso = new Sprite(); drawing = false; addChild(mouseLasso); ToolTip = new toolTip(stage, this); addChild(ToolTip); ToolTip.x = mouseX; ToolTip.y = mouseY; dragRect = new Rectangle(0, 0, 550, 530); ToolTip.startDrag(false, dragRect); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.addEventListener(KeyboardEvent.KEY_UP, keyU); stage.addEventListener(Event.DEACTIVATE, keyC); screenGoLeft = false; screenGoRight = false; hotkeyArray = new Array(49, 50, 51, 52, 81, 87, 69, 82); hotbutArray = new Array(b0, b1, b2, b3, b4, b5, b6, b7); chatPanel.text = ""; uiGlow = new GlowFilter(2744852, 1, 7, 7, 0.62, 1, false, false); uiGlowIn = new GlowFilter(14483141, 1, 15, 15, 10, 1, true, false); uiGlowIn2 = new GlowFilter(8911994, 1, 4, 4, 1, 1, true, false); updateUIOptions(); fg = 0; while (fg < 6) { uiLay[("bg_" + fg)].id = fg; uiLay[("bg_" + fg)].theIcon.gotoAndStop((fg + 1)); fg++; }; uiCombatTipOn = new Array(); uiCombatTipOn.push(new tipObject("Auto-Build: ON", 0, 0, 0, "If this is on, any option from a building that you click will try to repeat itself after it finishes. You can also toggle this by holding Shift.")); uiCombatTipOn.push(new tipObject("Rally Point: ON", 0, 0, 0, "Units will mobilize in front of the base after they have been deployed.")); uiCombatTipOn.push(new tipObject("Allied Chat: ON", 0, 0, 0, "Chat messages will only be sent to your ally.")); uiCombatTipOn.push(new tipObject("Sound: ON", 0, 0, 0, "Sound effects are on.")); uiCombatTipOn.push(new tipObject("Music: ON", 0, 0, 0, "Music is on.")); uiCombatTipOn.push(new tipObject("Quit", 0, 0, 0, "Exit the game.")); uiCombatTipOff = new Array(); uiCombatTipOff.push(new tipObject("Auto-Build: OFF", 0, 0, 0, "Any options you build from a building will not repeat itself. You can also toggle this by holding Shift.")); uiCombatTipOff.push(new tipObject("Rally Point: OFF", 0, 0, 0, "Units will attack as soon as they are deployed.")); uiCombatTipOff.push(new tipObject("Allied Chat: OFF", 0, 0, 0, "Chat messages will be sent to all players in the game.")); uiCombatTipOff.push(new tipObject("Sound: OFF", 0, 0, 0, "Sound effects are off.")); uiCombatTipOff.push(new tipObject("Music: OFF", 0, 0, 0, "Music is off.")); uiCombatTipOff.push(new tipObject("Quit", 0, 0, 0, "Exit the game.")); b8.addEventListener(MouseEvent.MOUSE_OVER, overText); b8.addEventListener(MouseEvent.MOUSE_OUT, emptyText); oi.addEventListener(MouseEvent.MOUSE_OVER, overText2); oi.addEventListener(MouseEvent.MOUSE_OUT, emptyText); cText = new tipObject("Cancel", 0, 0, 0, "Click to cancel this action. You will receive a full refund."); } function frame6(){ renderMachine.renderAll(2, colorForm, 0); } public function sendResInfo(te:TimerEvent):void{ var vars:Object; vars = new Object(); vars.resArray = new Array(playerControl.r_m, playerControl.r_p, playerControl.r_e, playerControl.r_i); vars.pos = playerControl.POS; gameKon.theRoot.gameRoom.sendToRoom(vars, false, "alignResource"); } public function endDraw(event:MouseEvent):void{ var selectPool:Array; var z:*; if ((((mouseLasso.width > 3)) || ((mouseLasso.height > 3)))){ selectPool = new Array(); for (z in gameKon.playerNow.team.all) { if (z != 0){ if (mouseLasso.hitTestObject(gameKon.playerNow.team.all[z])){ if (gameKon.playerNow.team.all[z].player == gameKon.playerNow){ selectPool.push(gameKon.playerNow.team.all[z]); }; }; }; if (selectPool.length > 0){ displayKon.updateUnit(selectPool); }; }; }; mouseLasso.graphics.clear(); removeEventListener(Event.ENTER_FRAME, doDraw); } function __setProp_j_server1_MENU_MENU_26(){ j_server1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; j_server1.emphasized = false; j_server1.enabled = true; j_server1.label = ""; j_server1.labelPlacement = "right"; j_server1.selected = false; j_server1.toggle = false; j_server1.visible = true; j_server1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function realCreateUnit(a44, b44:uint, c44, d44, e44, f44, optionD):void{ var player:*; var unoldver:Boolean; var def:Number; var cArDef:Array; var nhj:*; var ayt:Boolean; var d2:*; var dv2:Number; var alreadyGotten:Boolean; var hg:*; var d:*; var vars:Object; var i2:*; var i3:*; player = GameKon[("player" + a44)]; player.createGap++; unoldver = true; if (player != gameKon.playerNow){ if (optionD != null){ d2 = optionData.LIST[optionD]; dv2 = d2.buildUnits.length; player.addRes(0, -(Math.floor((d2[0] / dv2)))); player.addRes(1, -(Math.floor((d2[1] / dv2)))); player.addRes(2, -(Math.floor((d2[2] / dv2)))); player.addRes(3, -(Math.floor((d2[4] / dv2)))); trace(((("SOMETHIBG MADE: " + dv2) + " // ") + -(Math.floor((d2[4] / dv2))))); var _local22 = player.stock; var _local23 = d2.stockReq; var _local24 = (_local22[_local23] - 1); _local22[_local23] = _local24; } else { unoldver = false; alreadyGotten = false; for (hg in optionData.LIST) { if (optionData.LIST[hg].buildUnits != null){ if ((optionData.LIST[hg].buildUnits.length == 1)){ if ((((optionData.LIST[hg].buildUnits[0] == b44)) && (!(alreadyGotten)))){ if (b44 == 5){ hg = 56; }; d = optionData.LIST[hg]; player.addRes(0, -(d[0])); player.addRes(1, -(d[1])); player.addRes(2, -(d[2])); player.addRes(3, -(d[4])); _local24 = player.stock; var _local25 = d.stockReq; var _local26 = (_local24[_local25] - 1); _local24[_local25] = _local26; alreadyGotten = true; }; }; }; }; }; }; def = 0; cArDef = new Array(player.r_m, player.r_p, player.r_e, player.r_i); for (nhj in cArDef) { if (cArDef[nhj] < 0){ def = (def - cArDef[nhj]); }; }; trace(("CREATING DEF: " + def)); trace(("YUGOSLAV LV: " + yugoSlav)); ayt = true; if ((((player.createGap < 15)) || (ayt))){ if ((((((def < yugoSlav)) && (unoldver))) || (player.CPUMODE))){ unitKon.addUnit(player, b44, false, c44, d44, e44, f44); } else { vars = new Object(); vars.def = true; for (i2 in allPlayers) { if (allPlayers[i2].POS == player.POS){ for (i3 in player.team.all) { if (((!((i3 == 0))) && ((player.team.all[i3].player == player)))){ unitKon.killOffUnit(player.team.all[i3].unitId, null); }; }; if (!mpKon.foxMode){ SocketManager.socket.sendToUser(allPlayers[i2].ID, vars); }; if (player.hackSend){ doChat((allPlayers[i2].NAME + " has been detected hacking and has been de-syncronized."), "System", 0); player.desync = true; player.hackSend = false; }; }; }; }; } else { vars = new Object(); vars.def = true; for (i2 in allPlayers) { if (allPlayers[i2].POS == player.POS){ for (i3 in player.team.all) { if (((!((i3 == 0))) && ((player.team.all[i3].player == player)))){ unitKon.killOffUnit(player.team.all[i3].unitId, null); }; }; SocketManager.socket.sendToUser(allPlayers[i2].ID, vars); if (player.hackSend){ doChat((allPlayers[i2].NAME + " has been detected hacking."), "System", 0); player.hackSend = false; }; }; }; }; } function frame31(){ if ((((__setPropDict[but_login3] == undefined)) || (!((int(__setPropDict[but_login3]) == 31))))){ __setPropDict[but_login3] = currentFrame; __setProp_but_login3_MPCONNECT_Go_31(); }; if ((((__setPropDict[but_exit3] == undefined)) || (!((int(__setPropDict[but_exit3]) == 31))))){ __setPropDict[but_exit3] = currentFrame; __setProp_but_exit3_MPCONNECT_Go_31(); }; but_login3.addEventListener(MouseEvent.CLICK, loginHand3, false, 0, true); but_exit3.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); but_login3.setStyle("textFormat", tf); but_exit3.setStyle("textFormat", tf); initUserData(); } public function backToGame(e:MouseEvent):void{ removeChild(promptBox); gameQuitable = true; } function __setProp_reMe_MPCONNECT_Go_29(){ reMe["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; reMe.enabled = true; reMe.label = "Remember Me"; reMe.labelPlacement = "right"; reMe.selected = false; reMe.visible = true; reMe["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function resetFocus(e:Event):void{ stage.focus = this; chatPanel.text = ""; } function __setProp_button_multi_MENU_MENU_23(){ button_multi["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; button_multi.emphasized = false; button_multi.enabled = true; button_multi.label = "Multi Player"; button_multi.labelPlacement = "right"; button_multi.selected = false; button_multi.toggle = false; button_multi.visible = true; button_multi["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function loadGameGo(a:uint):void{ singleLevel = a; if (a == 1){ tutLev = true; }; playerName = nameBox.text; clientPlayer[0] = combo1.selectedItem.data; gotoAndStop("Game", "GAME"); } function __setProp_butmis_1_MENU_MENU_25(){ butmis_1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_1.emphasized = false; butmis_1.enabled = true; butmis_1.label = "Mission 1"; butmis_1.labelPlacement = "right"; butmis_1.selected = false; butmis_1.toggle = false; butmis_1.visible = true; butmis_1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame20(){ musicKon.init(stage); gotoAndStop("START", "MENU"); } function __setProp_but_exit2_MPCONNECT_Go_30(){ but_exit2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_exit2.emphasized = false; but_exit2.enabled = true; but_exit2.label = "Exit to Menu"; but_exit2.labelPlacement = "right"; but_exit2.selected = false; but_exit2.toggle = false; but_exit2.visible = true; but_exit2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_butmis_6_MENU_MENU_25(){ butmis_6["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_6.emphasized = false; butmis_6.enabled = true; butmis_6.label = "Mission 6"; butmis_6.labelPlacement = "right"; butmis_6.selected = false; butmis_6.toggle = false; butmis_6.visible = true; butmis_6["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame33(){ gotoAndStop("Game", "GAME"); } public function updateUI(event:Event):void{ upUIHand(); } public function combatUiTT(id:uint):void{ switch (id){ case 0: if (gameKon.shiftToggle){ toolTip.tip(uiCombatTipOn[0], 0); } else { toolTip.tip(uiCombatTipOff[0], 0); }; break; case 1: if (gameKon.rallyOn){ toolTip.tip(uiCombatTipOn[1], 0); } else { toolTip.tip(uiCombatTipOff[1], 0); }; break; case 2: if (allyChat){ toolTip.tip(uiCombatTipOn[2], 0); } else { toolTip.tip(uiCombatTipOff[2], 0); }; break; case 3: if (soundOn){ toolTip.tip(uiCombatTipOn[3], 0); } else { toolTip.tip(uiCombatTipOff[3], 0); }; break; case 4: if (musicOn){ toolTip.tip(uiCombatTipOn[4], 0); } else { toolTip.tip(uiCombatTipOff[4], 0); }; break; case 5: toolTip.tip(uiCombatTipOn[5], 0); break; default: break; }; } public function mission2StartAi():void{ gameKon.theRoot.GameKon.player1.AI.AiStrategy.forceTech = 4; gameKon.theRoot.GameKon.player2.AI.AiStrategy.forceTech = 4; gameKon.theRoot.GameKon.player4.AI.AiStrategy.forceTech = 5; } function __setProp_but_login3_MPCONNECT_Go_31(){ but_login3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_login3.emphasized = false; but_login3.enabled = true; but_login3.label = "Play!"; but_login3.labelPlacement = "right"; but_login3.selected = false; but_login3.toggle = false; but_login3.visible = true; but_login3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame29(){ if ((((__setPropDict[reMe] == undefined)) || (!((int(__setPropDict[reMe]) == 29))))){ __setPropDict[reMe] = currentFrame; __setProp_reMe_MPCONNECT_Go_29(); }; if ((((__setPropDict[but_register] == undefined)) || (!((int(__setPropDict[but_register]) == 29))))){ __setPropDict[but_register] = currentFrame; __setProp_but_register_MPCONNECT_Go_29(); }; if ((((__setPropDict[but_exit] == undefined)) || (!((int(__setPropDict[but_exit]) == 29))))){ __setPropDict[but_exit] = currentFrame; __setProp_but_exit_MPCONNECT_Go_29(); }; if ((((__setPropDict[but_guest] == undefined)) || (!((int(__setPropDict[but_guest]) == 29))))){ __setPropDict[but_guest] = currentFrame; __setProp_but_guest_MPCONNECT_Go_29(); }; if ((((__setPropDict[but_login] == undefined)) || (!((int(__setPropDict[but_login]) == 29))))){ __setPropDict[but_login] = currentFrame; __setProp_but_login_MPCONNECT_Go_29(); }; if (justReg){ in_name.text = regName; in_pass.text = regPass; justReg = false; addChild(DataTracer); dataTracer.update("The account registration was a grand success! Now you may log in to play."); }; tfRe = new TextFormat(); tfRe.font = T.fontName; tfRe.color = 0x999999; tfRe.size = 12; reMe.setStyle("textFormat", tfRe); reMe.addEventListener(MouseEvent.CLICK, remMeHand, false, 0, true); but_login.addEventListener(MouseEvent.CLICK, b_loginHand, false, 0, true); but_register.addEventListener(MouseEvent.CLICK, b_registerHand, false, 0, true); but_guest.addEventListener(MouseEvent.CLICK, b_guestHand, false, 0, true); but_exit.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); but_login.setStyle("textFormat", tf); but_register.setStyle("textFormat", tf); but_guest.setStyle("textFormat", tf); but_exit.setStyle("textFormat", tf); if (rememberMe){ in_name.text = sav_user; in_pass.text = sav_pass; reMe.selected = true; }; userData = new Object(); friendList = new Array(); ignoreList = new Array(); userRace = 2; realUser = false; rankLimit = new Array(100, 500, 1500, 3000, 6000, 10000, 15000, 20000, 30000); initUserData(); } function __setProp_xb_back3_MENU_MENU_26(){ xb_back3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; xb_back3.emphasized = false; xb_back3.enabled = true; xb_back3.label = "Exit to Menu"; xb_back3.labelPlacement = "right"; xb_back3.selected = false; xb_back3.toggle = false; xb_back3.visible = true; xb_back3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function removeMPthings():void{ if (!mpKon.foxMode){ SocketManager.socket.removeEventListener(BlossomEvent.RECEIVE_MESSAGE, allyChatHandler); gameRoom.addEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeftHandler); TJ.removeEventListener(TimerEvent.TIMER, sendResInfo); gameRoom.removeEventListener("createUnit", createUnitHandler); gameRoom.removeEventListener("killUnit", killUnitHandler); gameRoom.removeEventListener("orderUnit", orderHandler); gameRoom.removeEventListener("createMissile", missileHandler); gameRoom.removeEventListener("updateBuilding", buildingHandler); gameRoom.removeEventListener("updateIncome", updateIncomeHandler); gameRoom.removeEventListener("sendChat", sendChatHandler); gameRoom.removeEventListener("sendExit", userExitHand); gameRoom.removeEventListener("alignResource", alignResourceHand); }; } public function userLeftHandlerFox(a:uint):void{ var leaverSocket:*; var i2:*; var leaverName:String; leaverSocket = a; for (i2 in allPlayers) { if (allPlayers[i2].ID == leaverSocket){ leaverName = allPlayers[i2].NAME; }; }; doChat((leaverName + " has left the game."), "System", 0); } function __setProp_sxB_1_MENU_MENU_24(){ sxB_1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sxB_1.emphasized = false; sxB_1.enabled = true; sxB_1.label = "Tutorial Level"; sxB_1.labelPlacement = "right"; sxB_1.selected = false; sxB_1.toggle = false; sxB_1.visible = true; sxB_1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function alignResourceHand(be:BlossomEvent):void{ var player:*; var pRA:Array; var gj:*; player = GameKon[("player" + be.data.pos)]; pRA = new Array(player.r_m, player.r_p, player.r_e, player.r_i); for (gj in be.data.resArray) { if (pRA[gj] < be.data.resArray[gj]){ player.addRes(pRA, 1); }; }; } public function orderHandler(be:BlossomEvent):void{ gameKon.doUnitOption(be.data.id, be.data.orderArray); } public function gotoStory(a:uint, b:uint):void{ storySetter = a; missionLevel = b; singlePlayerMode = true; singleLevel = (b + 5); missionGo = true; missionOn = true; gotoAndStop("Story", "STORY"); } public function playGame(Event:MouseEvent):void{ if (validDomain){ agDom = true; }; button_play.removeEventListener(MouseEvent.MOUSE_UP, playGame); removeChild(adBox); stage.frameRate = 30; play(); } public function receiveUserVarsHandler(be:BlossomEvent):void{ var vars:Object; dataTracer.hideTracer(); if (be.vars.userData == null){ vars = new Object(); vars.userData = userData; SocketManager.socket.setUserVars(vars); } else { userData = be.vars.userData; }; if (be.vars.ignoreList == null){ vars = new Object(); vars.ignoreList = ignoreList; SocketManager.socket.setUserVars(vars); } else { ignoreList = be.vars.ignoreList; }; if (be.vars.userRace == null){ vars = new Object(); vars.userRace = userRace; SocketManager.socket.setUserVars(vars); } else { userRace = be.vars.userRace; }; if (be.vars.friendList == null){ vars = new Object(); vars.friendList = friendList; SocketManager.socket.setUserVars(vars); } else { friendList = be.vars.friendList; }; dataTracer.progressing = false; killAllEvents(); gotoAndStop("mpLobby", "MPLOBBY"); } function frame10(){ renderMachine.renderAll(2, colorForm, 4); } public function loginSuccessHandler(be:BlossomEvent):void{ var moderator:Boolean; var varList:Array; userID = be.userID; MP_userName = be.userName; moderator = be.moderator; realUser = true; dataTracer.update("Success! Retrieving data..."); varList = new Array("userData", "userRace"); SocketManager.socket.getUserVars(varList, SocketManager.socket.socketID); SocketManager.socket.addEventListener(BlossomEvent.RECEIVE_USER_VARS, receiveUserVarsHandler, false, 0, true); } public function beginDraw(event:MouseEvent):void{ if (mouseY <= 400){ setRectx = mouseX; setRecty = mouseY; addEventListener(Event.ENTER_FRAME, doDraw); }; } function __setProp_xb_back_MENU_MENU_24(){ xb_back["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; xb_back.emphasized = false; xb_back.enabled = true; xb_back.label = "Exit to Menu"; xb_back.labelPlacement = "right"; xb_back.selected = false; xb_back.toggle = false; xb_back.visible = true; xb_back["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame26(){ if ((((__setPropDict[j_server1] == undefined)) || (!((int(__setPropDict[j_server1]) == 26))))){ __setPropDict[j_server1] = currentFrame; __setProp_j_server1_MENU_MENU_26(); }; if ((((__setPropDict[j_server0] == undefined)) || (!((int(__setPropDict[j_server0]) == 26))))){ __setPropDict[j_server0] = currentFrame; __setProp_j_server0_MENU_MENU_26(); }; if ((((__setPropDict[xb_back3] == undefined)) || (!((int(__setPropDict[xb_back3]) == 26))))){ __setPropDict[xb_back3] = currentFrame; __setProp_xb_back3_MENU_MENU_26(); }; if ((((__setPropDict[j_server2] == undefined)) || (!((int(__setPropDict[j_server2]) == 26))))){ __setPropDict[j_server2] = currentFrame; __setProp_j_server2_MENU_MENU_26(); }; stop(); xb_back3.setStyle("textFormat", tf); xb_back3.addEventListener(MouseEvent.CLICK, b_exitHand, false, 0, true); onlineServers = new Array("colony1.armorgames.com", "colony2.armorgames.com", ""); serverNames = new Array("Glastondale", "Beatrix", "Jetzul"); j_server0.setStyle("textFormat", tf); j_server1.setStyle("textFormat", tf); j_server2.setStyle("textFormat", tf); j_server0.label = serverNames[0]; j_server1.label = serverNames[1]; j_server2.label = serverNames[2]; MP_r2j = false; j_server0.addEventListener(MouseEvent.CLICK, s_Con0, false, 0, true); j_server1.addEventListener(MouseEvent.CLICK, s_Con1, false, 0, true); j_server2.addEventListener(MouseEvent.CLICK, s_Con2, false, 0, true); disconnectedHandler2 = new Function(); } public function PL_LOADING(event:ProgressEvent):void{ var pcent:Number; var loadPer:Number; var iii2:*; Mouse.show(); pcent = (event.bytesLoaded / event.bytesTotal); loadPer = Math.round((2009 + (pcent * 264))); dateMC.t.text = loadPer; for (iii2 in josefArray) { if (josefArray[iii2].D < loadPer){ josefArray[iii2].oj.visible = true; }; }; loadBar.bar.width = (mW * pcent); dateMC.x = (120.6 + loadBar.bar.width); if (pcent >= 0.99){ completedTheLoad(); }; } public function keyD(event:KeyboardEvent):void{ var juh:*; var vars:Object; var vars6:Object; if (event.keyCode == 27){ stage.focus = this; chatHider.visible = true; chatPanel.text = ""; }; if (event.keyCode == 16){ gameKon.shiftToggle = true; updateUIOptions(); }; if (stage.focus == this){ if (event.keyCode == 88){ if (gameKon.rallyOn){ gameKon.rallyOn = false; } else { gameKon.rallyOn = true; }; updateUIOptions(); }; if (event.keyCode == 67){ if (allyChat){ allyChat = false; chatToWho.text = "To All:"; } else { allyChat = true; chatToWho.text = "To Ally:"; }; updateUIOptions(); }; for (juh in hotkeyArray) { if (event.keyCode == hotkeyArray[juh]){ if (gameKon.selectedBuilding == null){ hotbutArray[juh].doReal(); } else { if ((gameKon.selectedBuilding.ownBy == gameKon.playerNow)){ hotbutArray[juh].doReal(); }; }; }; }; if ((((event.keyCode == 37)) || ((event.keyCode == 65)))){ screenGoLeft = true; }; if ((((event.keyCode == 39)) || ((event.keyCode == 68)))){ screenGoRight = true; }; }; if (event.keyCode == 13){ if (stage.focus == chatPanel){ stage.focus = this; chatHider.visible = true; if (((!((chatPanel.text == ""))) && (!((chatPanel.text == "< Type here or press Enter to chat >"))))){ chatBody.dealWith(chatPanel.text); if (singlePlayerMode){ doChat(chatPanel.text, playerName, clientPlayer[2]); chatPanel.text = ""; } else { vars = new Object(); vars.i = clientPlayer[1]; vars.t = chatPanel.text; if (!allyChat){ mpKon.sendOff(vars, true, "sendChat"); } else { if (mpKon.foxMode){ mpKon.fox.sendObjectToGroup(vars6, [mpKon.fox.myUserId]); } else { SocketManager.socket.sendToUser(SocketManager.socket.socketID, vars); }; if (allySocket != 0){ if (mpKon.foxMode){ vars6 = new Object(); vars6.sub = vars; vars6.id = "sendChat"; trace(("Allied Socket: " + allySocket)); mpKon.fox.sendObjectToGroup(vars6, [allySocket]); } else { SocketManager.socket.sendToUser(allySocket, vars); }; }; }; chatPanel.text = ""; }; } else { chatPanel.text = ""; }; } else { stage.focus = chatPanel; if (allyChat){ chatToWho.text = "To Ally:"; } else { chatToWho.text = "To All:"; }; chatHider.visible = false; }; }; } public function b_exitHand(e:MouseEvent):void{ dataTracer.suppress(); dataTracer.endAfkClock(); SocketManager.close(); gotoAndStop("START", "MENU"); } public function getAGURL(me:MouseEvent):void{ var urlAGL:String; var reqAGL:URLRequest; var me = me; urlAGL = "http://ArmorGames.com"; reqAGL = new URLRequest(urlAGL); navigateToURL(reqAGL, "_blank"); //unresolved jump var _slot1 = e; } function __setProp_but_register_MPCONNECT_Go_29(){ but_register["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_register.emphasized = false; but_register.enabled = true; but_register.label = "Register"; but_register.labelPlacement = "right"; but_register.selected = false; but_register.toggle = false; but_register.visible = true; but_register["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function keyC(event:Event):void{ gameKon.shiftToggle = false; screenGoRight = false; screenGoLeft = false; } public function buildingHandler(be:BlossomEvent):void{ var player:*; var def:Number; var cArDef:Array; var nhj:*; var traceBuild:*; var vars:Object; var i2:*; var i3:*; player = GameKon[("player" + be.data.pos)]; if (player != gameKon.playerNow){ def = 0; cArDef = new Array(player.r_m, player.r_p, player.r_e, player.r_i); for (nhj in cArDef) { if (cArDef[nhj] < 0){ def = (def - cArDef[nhj]); }; }; trace(("CREATING DEF: " + def)); trace(("YUGOSLAV LV: " + yugoSlav)); if ((((def < yugoSlav)) || (player.CPUMODE))){ traceBuild = gameKon.buildingArray[be.data.building]; if (be.data.cancelOrder){ trace(("Received Cancel Order from " + be.data.pos)); }; gameKon.doOption(optionData.LIST[be.data.buildId], be.data.cancelOrder, be.data.auto, player, traceBuild, true); } else { vars = new Object(); vars.def = true; for (i2 in allPlayers) { if (allPlayers[i2].POS == player.POS){ for (i3 in player.team.all) { if (((!((i3 == 0))) && ((player.team.all[i3].player == player)))){ unitKon.killOffUnit(player.team.all[i3].unitId, null); }; }; if (!mpKon.foxMode){ SocketManager.socket.sendToUser(allPlayers[i2].ID, vars); }; if (player.hackSend){ doChat((allPlayers[i2].NAME + " has been detected hacking and has been de-syncronized."), "System", 0); player.desync = true; player.hackSend = false; }; }; }; }; }; } public function keyU(event:KeyboardEvent):void{ if (event.keyCode == 16){ gameKon.shiftToggle = false; updateUIOptions(); }; if ((((event.keyCode == 37)) || ((event.keyCode == 65)))){ screenGoLeft = false; }; if ((((event.keyCode == 39)) || ((event.keyCode == 68)))){ screenGoRight = false; }; } public function terminateGame(event:MouseEvent):void{ removeChild(promptBox); promptBox.b3.removeEventListener(MouseEvent.CLICK, terminateGame); tg(); gotoAndStop("END", "POST"); } function __setProp_butmis_4_MENU_MENU_25(){ butmis_4["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_4.emphasized = false; butmis_4.enabled = true; butmis_4.label = "Mission 4"; butmis_4.labelPlacement = "right"; butmis_4.selected = false; butmis_4.toggle = false; butmis_4.visible = true; butmis_4["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_sxB_4_MENU_MENU_24(){ sxB_4["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sxB_4.emphasized = false; sxB_4.enabled = true; sxB_4.label = "Hard"; sxB_4.labelPlacement = "right"; sxB_4.selected = false; sxB_4.toggle = false; sxB_4.visible = true; sxB_4["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function restart(Event:MouseEvent):void{ if (singlePlayerMode){ if (missionOn){ gotoAndPlay("OutOf2", "MENU"); } else { gotoAndPlay("OutOf", "MENU"); }; } else { dataTracer.initAfkClock(); mpKon.zoneIn = false; gotoAndStop("mpLobby", "MPLOBBY"); }; } function __setProp_button_single_MENU_MENU_23(){ button_single["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; button_single.emphasized = false; button_single.enabled = true; button_single.label = "Quick Play"; button_single.labelPlacement = "right"; button_single.selected = false; button_single.toggle = false; button_single.visible = true; button_single["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function loginErrorHandler(be:BlossomEvent):void{ dataTracer.update(("Error logging in: " + be.error)); dataTracer.progressing = false; } function __setProp_but_register2_MPCONNECT_Go_30(){ but_register2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_register2.emphasized = false; but_register2.enabled = true; but_register2.label = "Register"; but_register2.labelPlacement = "right"; but_register2.selected = false; but_register2.toggle = false; but_register2.visible = true; but_register2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_but_exit_MPCONNECT_Go_29(){ but_exit["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_exit.emphasized = false; but_exit.enabled = true; but_exit.label = "Exit to Menu"; but_exit.labelPlacement = "right"; but_exit.selected = false; but_exit.toggle = false; but_exit.visible = true; but_exit["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function startMissionPlayer(Event:MouseEvent):void{ singlePlayerMode = true; gotoAndStop("MISSION", "MENU"); } public function endComic(me:MouseEvent):void{ mis_beg.removeEventListener(MouseEvent.CLICK, endComic); endComicMode(); } public function screenScroll(event:Event):void{ var screenSurrond:Number; if ((((((mouseY <= 400)) && ((mouseX < minBound)))) || (screenGoLeft))){ if (screenPoint > endPoint1){ mouseVel = (mouseVel - mouseAccel); if (mouseVel < -(mouseMaxVel)){ mouseVel = -(mouseMaxVel); }; } else { mouseVel = 0; }; } else { if ((((((mouseY <= 400)) && ((mouseX > maxBound)))) || (screenGoRight))){ if (screenPoint < endPoint2){ mouseVel = (mouseVel + mouseAccel); if (mouseVel > mouseMaxVel){ mouseVel = mouseMaxVel; }; } else { mouseVel = 0; }; } else { if (mouseVel !== 0){ mouseVel = (mouseVel - (mouseAccel * (mouseVel / Math.abs(mouseVel)))); }; }; }; screenPoint = (screenPoint + mouseVel); if (screenPoint > endPoint2){ screenPoint = endPoint2; }; if (screenPoint < endPoint1){ screenPoint = endPoint1; }; DisplayField.x = -(screenPoint); screenSurrond = ((2 * (screenPoint / (endPoint2 - endPoint1))) - 1); soundKon.surround(screenSurrond); secondLayer.x = (screenPoint / 2); GD3.x = (-(screenPoint) / 4); } function __setProp_j_server2_MENU_MENU_26(){ j_server2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; j_server2.emphasized = false; j_server2.enabled = true; j_server2.label = ""; j_server2.labelPlacement = "right"; j_server2.selected = false; j_server2.toggle = false; j_server2.visible = true; j_server2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function registerErrorHandler(be:BlossomEvent):void{ dataTracer.progressing = false; SocketManager.socket.removeEventListener(BlossomEvent.REGISTER_SUCCESS, registerSuccessHandler); SocketManager.socket.removeEventListener(BlossomEvent.REGISTER_ERROR, registerErrorHandler); dataTracer.update(("Error registering: " + be.error)); } public function b_registerHand(e:MouseEvent):void{ killAllEvents(); gotoAndStop("mpRegister", "MPCONNECT"); } public function doChat(t:String, n:String, c:uint){ var chatText:TextField; var chatFormat:TextFormat; var i:*; soundKon.playSound(3, 3, true); soundKon.playSound(3, 3, false); chatText = new TextField(); chatText.htmlText = ((((((("<font color='#FFFFFF'>" + n) + ": </font> ") + "<font color='#") + colorChat[c]) + "'>") + t) + "</font>"); chatFormat = new TextFormat(); chatText.width = 0x0100; chatText.embedFonts = true; chatText.autoSize = TextFieldAutoSize.LEFT; chatText.multiline = true; chatText.wordWrap = true; chatFormat.font = FONT.fontName; chatFormat.size = 14; chatText.setTextFormat(chatFormat); chatBox.innerBox.addChildAt(chatText, 0); chatText.y = 0; i = 0; while (i < chatBox.innerBox.numChildren) { chatBox.innerBox.getChildAt(i).y = (chatBox.innerBox.getChildAt(i).y - chatText.height); i++; }; if (chatBox.innerBox.numChildren > 25){ chatBox.innerBox.removeChildAt(25); }; chatBox.maxY = chatBox.innerBox.height; chatBox.innerBox.y = chatBox.minY; chatBox.updateNavBar(); } public function createUnitHandler(be:BlossomEvent):void{ realCreateUnit(be.data.pos, be.data.id, be.data.unitId, be.data.rand1, be.data.rand2, be.data.rand3, be.data.optionD); } public function tg():void{ DTIM.stop(); DTIM = null; _t.stopTicker(); if (musicOn == true){ musicKon.startFader(0, 2); }; if (gameKon.playerNow.team == teamWin){ winGame = true; } else { winGame = false; }; mpKon.zoneIn = true; chatBody.killAll(); removeEventListener(Event.ENTER_FRAME, updateUI); removeEventListener(Event.ENTER_FRAME, screenScroll); removeEventListener(MouseEvent.MOUSE_DOWN, beginDraw); removeEventListener(MouseEvent.MOUSE_UP, endDraw); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.removeEventListener(KeyboardEvent.KEY_UP, keyU); stage.removeEventListener(Event.DEACTIVATE, keyC); stage.removeEventListener(Event.ACTIVATE, resetFocus); if (!singlePlayerMode){ if (mpKon.foxMode){ mpKon.foxRoom("MLX_Limbo"); } else { removeMPthings(); SocketManager.socket.leaveRoom(gameRoom.roomName); }; }; gameQuitable = true; GameKon.killAll(); GameKon.stopData(); removeChild(GD3); DisplayField.removeChild(secondLayer); DisplayField.removeChild(unitDisplay); DisplayField.removeChild(effectsDisplay); removeChild(DisplayField); DisplayField = null; unitDisplay = null; effectsDisplay = null; GameKon = null; } public function errorInData():void{ dataTracer.DC("Error: Data altered."); } public function foxJoin():void{ mpKon.eventRem(_e.RECEIVE_SOCKET_ID, connected); dataTracer.progressing = false; removeChild(DataTracer); MP_r2j = false; stage.removeEventListener("CLOSETRACER", stopTheJoin); dataTracer.initAfkClock(); gotoAndStop("mpAnon", "MPCONNECT"); } function __setProp_button_link_MENU_MENU_23(){ button_link["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; button_link.emphasized = false; button_link.enabled = true; button_link.label = "Play More Games"; button_link.labelPlacement = "right"; button_link.selected = false; button_link.toggle = false; button_link.visible = true; button_link["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function gotoMission2(me:MouseEvent):void{ playerName = "Jetzul"; clientPlayer = new Array(0, 3, 3); gotoStory(1, 2); } public function gotoMission4(me:MouseEvent):void{ playerName = "Jetzul"; clientPlayer = new Array(0, 3, 3); gotoStory(3, 4); } public function gotoMission5(me:MouseEvent):void{ playerName = "Cpt. Baylet"; clientPlayer = new Array(2, 1, 1); gotoStory(4, 5); } public function gotoMission6(me:MouseEvent):void{ playerName = "Moston"; clientPlayer = new Array(1, 1, 1); gotoStory(5, 6); } function __setProp_butmis_2_MENU_MENU_25(){ butmis_2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_2.emphasized = false; butmis_2.enabled = true; butmis_2.label = "Mission 2"; butmis_2.labelPlacement = "right"; butmis_2.selected = false; butmis_2.toggle = false; butmis_2.visible = true; butmis_2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function gotoMission1(me:MouseEvent):void{ playerName = "Cpt. Baylet"; clientPlayer = new Array(2, 1, 1); gotoStory(0, 1); } public function gotoMission3(me:MouseEvent):void{ playerName = "Cpt. Baylet"; clientPlayer = new Array(2, 1, 1); gotoStory(2, 3); } public function sendIncomeStatus(e:TimerEvent=null):void{ var vars:Object; vars = new Object(); vars.race = clientPlayer[0]; vars.pos = clientPlayer[1]; TICS.removeEventListener(TimerEvent.TIMER, sendIncomeStatus); mpKon.sendOff(vars, false, "updateIncome"); } public function quitTheGame():void{ if (((gameRunning) && (gameQuitable))){ promptBox.p.text = "Are you sure you want to quit?"; gameQuitable = false; addChild(promptBox); promptBox.b3.visible = false; promptBox.b1.visible = true; promptBox.b2.visible = true; promptBox.b1.p.text = "YES"; promptBox.b2.p.text = "NO"; promptBox.b1.addEventListener(MouseEvent.CLICK, terminateGame); promptBox.b2.addEventListener(MouseEvent.CLICK, backToGame); }; } public function adjustName(a:String){ if (a == "NONE"){ legitChecker = false; return ("None"); }; if (a == "COMPUTER1"){ legitChecker = false; return ("Easy CPU"); }; if (a == "COMPUTER2"){ return ("Normal CPU"); }; if (a == "COMPUTER3"){ return ("Hard CPU"); }; return (a); } function __setProp_sxB_2_MENU_MENU_24(){ sxB_2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sxB_2.emphasized = false; sxB_2.enabled = true; sxB_2.label = "Easy"; sxB_2.labelPlacement = "right"; sxB_2.selected = false; sxB_2.toggle = false; sxB_2.visible = true; sxB_2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function allyChatHandler(be:BlossomEvent):void{ if (be.data.t != null){ gogoChat(be.data.i, be.data.t); }; if (be.data.def){ }; } public function killUnitReal(p, id, ran):void{ var pKiller:playerKon; var p = p; var id = id; var ran = ran; if (p > 0){ pKiller = GameKon[("player" + p)]; if (pKiller.desync){ } else { unitKon.killOffUnit(id, pKiller, ran); }; } else { unitKon.killOffUnit(id, null); }; //unresolved jump var _slot1 = e; } public function b_guestHand(e:MouseEvent):void{ var letterArr:Array; var bah:String; killAllEvents(); letterArr = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); bah = letterArr[Math.round((Math.random() * (letterArr.length - 1)))]; MP_userName = (("Guest_" + bah) + Math.round((Math.random() * 9999))); gotoAndStop("mpLobby", "MPLOBBY"); } public function endTheGame():void{ var vars2:Object; if (gameRunning){ if (((realUser) && (!(mpKon.foxMode)))){ if (!singlePlayerMode){ if (rankedMatch){ userData.pts = (userData.pts + 10); if (iWon){ userData.pts = (userData.pts + 20); userData.gamesWon++; userData.gamesConsecutiveWins = (winSave + 1); if (userData.gamesConsecutiveWins > 3){ userData.pts = (userData.pts + ((userData.gamesConsecutiveWins - 3) * 15)); }; if (userData.rank < 10){ if (userData.pts >= rankLimit[(userData.rank - 1)]){ userData.rank++; }; }; }; vars2 = new Object(); vars2.userData = userData; SocketManager.socket.setUserVars(vars2); }; }; }; promptBox.p.text = "The game has ended."; removeChild(promptBox); //unresolved jump var _slot1 = e; addChild(promptBox); promptBox.b3.visible = true; promptBox.b1.visible = false; promptBox.b2.visible = false; promptBox.b3.p.text = "CONTINUE"; promptBox.b3.addEventListener(MouseEvent.CLICK, terminateGame); gameRunning = false; }; } function __setProp_button_mission_MENU_MENU_23(){ button_mission["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; button_mission.emphasized = false; button_mission.enabled = true; button_mission.label = "Campaign Mode"; button_mission.labelPlacement = "right"; button_mission.selected = false; button_mission.toggle = false; button_mission.visible = true; button_mission["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function stopTheJoin(e:chatEvent):void{ MP_r2j = false; stage.removeEventListener("CLOSETRACER", stopTheJoin); } public function startSinglePlayer(Event:MouseEvent):void{ singlePlayerMode = true; nextFrame(); } public function uiCombatBut(id:uint):void{ switch (id){ case 0: if (gameKon.shiftToggle){ gameKon.shiftToggle = false; } else { gameKon.shiftToggle = true; }; break; case 1: if (gameKon.rallyOn){ gameKon.rallyOn = false; } else { gameKon.rallyOn = true; }; break; case 2: if (allyChat){ allyChat = false; chatToWho.text = "To All:"; } else { allyChat = true; chatToWho.text = "To Ally:"; }; break; case 3: if (soundOn){ soundOn = false; soundKon.soundOn = false; } else { soundOn = true; soundKon.soundOn = true; }; break; case 4: if (musicOn){ musicOn = false; musicKon.startFader(0.02, 2); } else { musicOn = true; musicKon.startFader(0, 1); }; break; case 5: quitTheGame(); break; default: break; }; updateUIOptions(); toolTip.unTip(); combatUiTT(id); } public function killUnitHandler(be:BlossomEvent):void{ killUnitReal(be.data.p, be.data.id, be.data.ran); } public function updateUIOptions():void{ var fg:*; var butOn:Boolean; fg = 0; while (fg < 6) { butOn = false; switch (fg){ case 0: if (gameKon.shiftToggle){ butOn = true; }; break; case 1: if (gameKon.rallyOn){ butOn = true; }; break; case 2: if (allyChat){ butOn = true; }; break; case 3: if (soundOn){ butOn = true; }; break; case 4: if (musicOn){ butOn = true; }; break; case 5: break; default: break; }; if (butOn){ uiLay[("bg_" + fg)].theIcon.filters = new Array(uiGlowIn, uiGlowIn2, uiGlow); } else { uiLay[("bg_" + fg)].theIcon.filters = []; }; fg++; }; } public function connected(be):void{ if (MP_r2j){ mpKon.getStats(); dataTracer.update("Getting Server Status..."); if (!mpKon.foxMode){ mpKon.eventSub(_e.RECEIVE_STATS, receiveStatsHandler); } else { foxJoin(); }; }; } public function checkDom():void{ url2 = stage.loaderInfo.url; urlStart = (url2.indexOf("://") + 3); urlEnd = url2.indexOf("/", urlStart); domain = url2.substring(urlStart, urlEnd); LastDot = (domain.lastIndexOf(".") - 1); domEnd = (domain.lastIndexOf(".", LastDot) + 1); domain = domain.substring(domEnd, domain.length); validDomain = ((("armorgames.com" == domain)) || (("" == domain))); } function __setProp_but_exit3_MPCONNECT_Go_31(){ but_exit3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_exit3.emphasized = false; but_exit3.enabled = true; but_exit3.label = "Exit to Menu"; but_exit3.labelPlacement = "right"; but_exit3.selected = false; but_exit3.toggle = false; but_exit3.visible = true; but_exit3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_j_server0_MENU_MENU_26(){ j_server0["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; j_server0.emphasized = false; j_server0.enabled = true; j_server0.label = ""; j_server0.labelPlacement = "right"; j_server0.selected = false; j_server0.toggle = false; j_server0.visible = true; j_server0["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function nextComic(me:MouseEvent):void{ comicPage++; comicLoad.nextFrame(); if (comicPage == comicPageMax){ mis_next.visible = false; mis_beg.visible = true; mis_next.removeEventListener(MouseEvent.CLICK, nextComic); mis_beg.addEventListener(MouseEvent.CLICK, endComic); }; } public function updateIncomeHandler(be:BlossomEvent):void{ var player:*; player = GameKon[("player" + be.data.pos)]; trace(("Recieving Income: " + be.data.race)); player.setIncome(be.data.race); } public function runShake(e:Event):void{ shakeNow = (shakeNow + shakeOsci); shakeStr = (shakeStr / shakeDecay); if (shakeStr < 0.5){ shakeStr = 0; stage.removeEventListener(Event.ENTER_FRAME, runShake); DisplayField.y = mainPosY; } else { DisplayField.y = (mainPosY + (shakeStr * Math.sin(shakeNow))); }; } public function missileHandler(be:BlossomEvent):void{ var notsure:uint; var h2:*; var taker:uint; var bypassD:Boolean; var def:Number; var cArDef:Array; var nhj:*; var player:*; var valBol:Boolean; var vars:Object; var i2:*; var i3:*; notsure = 5; for (h2 in allPlayers) { if (allPlayers[h2].ID == be.fromUser.socketID){ trace("Match!"); notsure = allPlayers[h2].POS; }; }; bypassD = false; if (be.data.pos == undefined){ if (notsure < 5){ taker = notsure; } else { taker = Math.round((1 + (Math.random() * 3))); bypassD = true; }; } else { taker = be.data.pos; }; if (!bypassD){ player = GameKon[("player" + taker)]; if (player != gameKon.playerNow){ player.mce++; trace(((("------------------------------- MCE: " + player.mce) + " . MCD: ") + player.mcd)); valBol = false; if (player.mce > player.mcd){ valBol = true; }; }; }; def = 0; cArDef = new Array(player.r_m, player.r_p, player.r_e, player.r_i); for (nhj in cArDef) { if (cArDef[nhj] < 0){ def = (def - cArDef[nhj]); }; }; trace(("CREATING DEF: " + def)); trace(("YUGOSLAV LV: " + yugoSlav)); if ((((((def < yugoSlav)) || (player.CPUMODE))) && (!(valBol)))){ unitKon.addMissile(be.data.tar, be.data.px, be.data.py); } else { vars = new Object(); vars.def = true; for (i2 in allPlayers) { if (allPlayers[i2].POS == player.POS){ for (i3 in player.team.all) { if (((!((i3 == 0))) && ((player.team.all[i3].player == player)))){ unitKon.killOffUnit(player.team.all[i3].unitId, null); }; }; if (!mpKon.foxMode){ SocketManager.socket.sendToUser(allPlayers[i2].ID, vars); }; if (player.hackSend){ doChat((allPlayers[i2].NAME + " has been detected hacking and has been de-syncronized."), "System", 0); player.desync = true; player.hackSend = false; }; }; }; }; } public function gogoChat(id:uint, it:String):void{ var i:*; var chat_pColor:*; var chat_pName:*; for (i in allPlayers) { if (allPlayers[i].POS == id){ chat_pName = allPlayers[i].NAME; }; }; chat_pColor = id; doChat(it, chat_pName, chat_pColor); } public function initUserData():void{ userData = new Object(); friendList = new Array(); ignoreList = new Array(); userRace = 2; userData.gamesPlayed = 0; userData.gamesWon = 0; userData.gamesConsecutiveWins = 0; userData.rank = 1; userData.pts = 0; userData.awards = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0); realUser = false; } public function registerSuccessHandler(be:BlossomEvent):void{ dataTracer.progressing = false; SocketManager.socket.removeEventListener(BlossomEvent.REGISTER_SUCCESS, registerSuccessHandler); SocketManager.socket.removeEventListener(BlossomEvent.REGISTER_ERROR, registerErrorHandler); removeChild(DataTracer); justReg = true; regName = re_name.text; regPass = re_pass.text; gotoAndStop("mpLogin", "MPCONNECT"); } public function remMeHand(me:MouseEvent):void{ if (reMe.selected){ rememberMe = true; sav_user = in_name.text; sav_pass = in_pass.text; } else { rememberMe = false; }; saveGame.data.sav_user = sav_user; saveGame.data.sav_pass = sav_pass; saveGame.data.rememberMe = rememberMe; saveGame.flush(); } public function s_Con0(me:MouseEvent):void{ startMpConnect(0); } public function s_Con1(me:MouseEvent):void{ startMpConnect(1); } public function s_Con2(me:MouseEvent):void{ startMpConnect(0, true); } function __setProp_butmis_5_MENU_MENU_25(){ butmis_5["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; butmis_5.emphasized = false; butmis_5.enabled = true; butmis_5.label = "Mission 5"; butmis_5.labelPlacement = "right"; butmis_5.selected = false; butmis_5.toggle = false; butmis_5.visible = true; butmis_5["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function startMpConnect(a:uint, smartFox:Boolean=false):void{ var serverGo:String; serverGo = onlineServers[a]; if (smartFox){ mpKon.foxMode = true; } else { mpKon.foxMode = false; }; mpKon.doConnect(serverGo); mpKon.eventSub(_e.RECEIVE_SOCKET_ID, connected); dataTracer.progressing = false; stage.addEventListener("CLOSETRACER", stopTheJoin, false, 0, true); addChild(DataTracer); dataTracer.update("Connecting.."); MP_r2j = true; } function __setProp_xb_back2_MENU_MENU_25(){ xb_back2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; xb_back2.emphasized = false; xb_back2.enabled = true; xb_back2.label = "Exit to Menu"; xb_back2.labelPlacement = "right"; xb_back2.selected = false; xb_back2.toggle = false; xb_back2.visible = true; xb_back2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function userExitHand(be:BlossomEvent):void{ tg(); } public function b_registerHand2(e:MouseEvent):void{ if (re_pass.text == re_pass2.text){ if (checkNameValid(re_name.text)){ SocketManager.socket.register(re_name.text, re_pass.text, re_email.text); SocketManager.socket.addEventListener(BlossomEvent.REGISTER_SUCCESS, registerSuccessHandler, false, 0, true); SocketManager.socket.addEventListener(BlossomEvent.REGISTER_ERROR, registerErrorHandler, false, 0, true); dataTracer.clearTracer(); dataTracer.update("Registering new account..."); addChild(DataTracer); } else { dataTracer.throwError("Names can only contain letters and numbers. It cannot contain spaces or any special characters."); }; } else { dataTracer.throwError("The passwords you entered do not match."); }; } function __setProp_but_login_MPCONNECT_Go_29(){ but_login["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; but_login.emphasized = false; but_login.enabled = true; but_login.label = "Login"; but_login.labelPlacement = "right"; but_login.selected = false; but_login.toggle = false; but_login.visible = true; but_login["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function PL_LOADED(event:Event):void{ completedTheLoad(); Mouse.show(); } function __setProp_sxB_5_MENU_MENU_24(){ sxB_5["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; sxB_5.emphasized = false; sxB_5.enabled = true; sxB_5.label = "Hard-Hard!"; sxB_5.labelPlacement = "right"; sxB_5.selected = false; sxB_5.toggle = false; sxB_5.visible = true; sxB_5["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function showMouse(e:Event=null):void{ Mouse.show(); } public function loginHand3(e:MouseEvent=null){ if ((((((((re_anon.text == "Krin")) || ((re_anon.text == "Jakrin")))) || ((re_anon.text == "krin")))) || ((re_anon.text == "jakrin")))){ dataTracer.throwError("Please choose a different name."); } else { if (checkNameValid(re_anon.text)){ dataTracer.progressing = false; mpKon.userName = (MP_userName = re_anon.text); mpKon.zoneIn = true; gotoAndStop("mpLobby", "MPLOBBY"); } else { dataTracer.throwError("Names can only contain letters and numbers. It cannot contain spaces or any special characters."); }; }; } public function startShake(a:Number, b:Number, c:Number):void{ shakeStr = a; shakeDecay = b; shakeOsci = c; shakeNow = (Math.random() * 10); stage.addEventListener(Event.ENTER_FRAME, runShake, false, 0, true); } public function removeIncomeListenerGO(te:TimerEvent):void{ gameRoom.removeEventListener("updateIncome", updateIncomeHandler); TGYUJHI.removeEventListener(TimerEvent.TIMER, removeIncomeListenerGO); TGYUJHI.stop(); TGYUJHI = null; } public function startMultiPlayer(Event:MouseEvent):void{ singlePlayerMode = false; MP_userName = (playerName = "Player"); MP_team = 2; MP_color = 0; dataTracer.clearTracer(); gotoAndStop("SERVER", "MENU"); } public function upUIHand():void{ r_p.text = playerControl.r_p; r_m.text = playerControl.r_m; r_e.text = playerControl.r_e; r_i.text = playerControl.r_i; r_p2.text = ("" + GameKon.player2.r_p); r_m2.text = ("" + GameKon.player2.r_m); r_e2.text = ("" + GameKon.player2.r_e); r_i2.text = ("" + GameKon.player2.r_i); r_p3.text = ("" + GameKon.player3.r_p); r_m3.text = ("" + GameKon.player3.r_m); r_e3.text = ("" + GameKon.player3.r_e); r_i3.text = ("" + GameKon.player3.r_i); r_p4.text = ("" + GameKon.player4.r_p); r_m4.text = ("" + GameKon.player4.r_m); r_e4.text = ("" + GameKon.player4.r_e); r_i4.text = ("" + GameKon.player4.r_i); } public function b_loginHand(e:MouseEvent):void{ dataTracer.clearTracer(); dataTracer.update("Logging in..."); addChild(DataTracer); SocketManager.socket.login(in_name.text, in_pass.text); SocketManager.socket.addEventListener(BlossomEvent.LOGIN_SUCCESS, loginSuccessHandler, false, 0, true); SocketManager.socket.addEventListener(BlossomEvent.LOGIN_ERROR, loginErrorHandler, false, 0, true); } public function incrDT(te:TimerEvent):void{ var bgi:*; var PPL:playerKon; if (yugoSlav < 100){ yugoSlav = (yugoSlav + 5); } else { yugoSlav = (yugoSlav + 1); }; bgi = 0; while (bgi < 5) { PPL = GameKon[("player" + bgi)]; if (PPL.mcd < (PPL.mce + 5)){ PPL.mcd = (PPL.mcd + 0.25); }; bgi++; }; } function __setProp_button_res_POST_Layer1_36(){ button_res["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; button_res.emphasized = false; button_res.enabled = true; button_res.label = "Proceed"; button_res.labelPlacement = "right"; button_res.selected = false; button_res.toggle = false; button_res.visible = true; button_res["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package Giraffe_fla
Section 84
//MPScreenCounter_227 (Giraffe_fla.MPScreenCounter_227) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class MPScreenCounter_227 extends MovieClip { public var basic:Object; public function MPScreenCounter_227(){ super(); addFrameScript(164, frame165); } function frame165(){ basic.gotoAndStop("Game", "GAME"); } } }//package Giraffe_fla
Section 85
//optionIcon_240 (Giraffe_fla.optionIcon_240) package Giraffe_fla { import flash.display.*; public dynamic class optionIcon_240 extends MovieClip { public var iconGF; public function optionIcon_240(){ super(); addFrameScript(0, frame1); } function frame1(){ iconGF = null; } } }//package Giraffe_fla
Section 86
//promptBox_249 (Giraffe_fla.promptBox_249) package Giraffe_fla { import flash.display.*; import flash.text.*; public dynamic class promptBox_249 extends MovieClip { public var b2:MovieClip; public var b1:MovieClip; public var b3:MovieClip; public var p:TextField; public function promptBox_249(){ super(); } } }//package Giraffe_fla
Section 87
//promptBoxButton_251 (Giraffe_fla.promptBoxButton_251) package Giraffe_fla { import flash.display.*; import flash.text.*; public dynamic class promptBoxButton_251 extends MovieClip { public var p:TextField; public function promptBoxButton_251(){ super(); } } }//package Giraffe_fla
Section 88
//S_279 (Giraffe_fla.S_279) package Giraffe_fla { import flash.display.*; public dynamic class S_279 extends MovieClip { public function S_279(){ super(); addFrameScript(499, frame500); } function frame500(){ stop(); } } }//package Giraffe_fla
Section 89
//soundLoader_157 (Giraffe_fla.soundLoader_157) package Giraffe_fla { import flash.display.*; public dynamic class soundLoader_157 extends MovieClip { public function soundLoader_157(){ super(); addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Giraffe_fla
Section 90
//teamDisplay_317 (Giraffe_fla.teamDisplay_317) package Giraffe_fla { import flash.display.*; import flash.text.*; public dynamic class teamDisplay_317 extends MovieClip { public var n:TextField; public function teamDisplay_317(){ super(); } } }//package Giraffe_fla
Section 91
//UI_Layout_229 (Giraffe_fla.UI_Layout_229) package Giraffe_fla { import flash.display.*; public dynamic class UI_Layout_229 extends MovieClip { public var bg_1:MovieClip; public var bg_3:MovieClip; public var bg_4:MovieClip; public var bg_5:MovieClip; public var bg_0:MovieClip; public var bg_2:MovieClip; public function UI_Layout_229(){ super(); } } }//package Giraffe_fla
Section 92
//uiButtonIcon_239 (Giraffe_fla.uiButtonIcon_239) package Giraffe_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class uiButtonIcon_239 extends MovieClip { public var id:Number; public var btn:SimpleButton; public var gfx:MovieClip; public function uiButtonIcon_239(){ super(); addFrameScript(0, frame1); } public function doTip(Event:MouseEvent):void{ if (toolTip.errorTip != true){ gameKon.doTip(id, true); }; } function frame1(){ btn.addEventListener(MouseEvent.CLICK, doOption); btn.addEventListener(MouseEvent.MOUSE_OVER, doTip); btn.addEventListener(MouseEvent.MOUSE_OUT, unTip); } public function unTip(Event:MouseEvent):void{ gameKon.doTip(0, false); } public function doReal():void{ var vars:Object; var hjy:*; var n:*; if (btn.visible){ if (gameKon.selectedBuilding != null){ vars = new Object(); vars.auto = false; vars.cancelOrder = false; vars.pos = gameKon.theRoot.clientPlayer[1]; vars.buildId = gameKon.selectedBuilding.INFO.options[id]; vars.building = gameKon.selectedBuilding.baseId; }; if (id == 8){ gameKon.doOption(null, true, false, gameKon.playerNow, gameKon.selectedBuilding); if (!gameKon.theRoot.singlePlayerMode){ vars.cancelOrder = true; mpKon.sendOff(vars, false, "updateBuilding"); }; } else { if (gameKon.selectedBuilding != null){ if (gameKon.shiftToggle){ vars.auto = true; gameKon.doOption(optionData.LIST[gameKon.selectedBuilding.INFO.options[id]], false, true, gameKon.playerNow, gameKon.selectedBuilding, false, false, vars, true); } else { gameKon.doOption(optionData.LIST[gameKon.selectedBuilding.INFO.options[id]], false, false, gameKon.playerNow, gameKon.selectedBuilding, false, false, vars, true); }; } else { for (hjy in gameKon.selectedUnit) { if (gameKon.selectedUnit[hjy].rallyMode){ gameKon.selectedUnit[hjy].rallyMode = false; gameKon.selectedUnit[hjy].aiPosition = false; }; }; if (gameKon.theRoot.singlePlayerMode){ gameKon.doUnitOption(id); } else { vars = new Object(); vars.id = id; vars.orderArray = new Array(); for (n in gameKon.selectedUnit) { vars.orderArray.push(gameKon.selectedUnit[n].unitId); }; mpKon.sendOff(vars, true, "orderUnit"); }; }; }; }; } public function doOption(Event:MouseEvent):void{ doReal(); } } }//package Giraffe_fla
Section 93
//VictoryScreen_266 (Giraffe_fla.VictoryScreen_266) package Giraffe_fla { import flash.display.*; public dynamic class VictoryScreen_266 extends MovieClip { public function VictoryScreen_266(){ super(); addFrameScript(599, frame600); } function frame600(){ stop(); } } }//package Giraffe_fla
Section 94
//Room (it.gotoandplay.smartfoxserver.data.Room) package it.gotoandplay.smartfoxserver.data { public class Room { private var maxUsers:int; private var userList:Array; private var name:String; private var userCount:int; private var specCount:int; private var id:int; private var myPlayerIndex:int; private var priv:Boolean; private var temp:Boolean; private var limbo:Boolean; private var maxSpectators:int; private var game:Boolean; private var variables:Array; public function Room(id:int, name:String, maxUsers:int, maxSpectators:int, isTemp:Boolean, isGame:Boolean, isPrivate:Boolean, isLimbo:Boolean, userCount:int=0, specCount:int=0){ super(); this.id = id; this.name = name; this.maxSpectators = maxSpectators; this.maxUsers = maxUsers; this.temp = isTemp; this.game = isGame; this.priv = isPrivate; this.limbo = isLimbo; this.userCount = userCount; this.specCount = specCount; this.userList = []; this.variables = []; } public function getVariable(varName:String){ return (variables[varName]); } public function addUser(u:User, id:int):void{ userList[id] = u; if (((this.game) && (u.isSpectator()))){ specCount++; } else { userCount++; }; } public function getName():String{ return (this.name); } public function getId():int{ return (this.id); } public function setIsLimbo(b:Boolean):void{ this.limbo = b; } public function clearVariables():void{ this.variables = []; } public function isTemp():Boolean{ return (this.temp); } public function getMaxSpectators():int{ return (this.maxSpectators); } public function setVariables(vars:Array):void{ this.variables = vars; } public function isGame():Boolean{ return (this.game); } public function getUser(userId):User{ var user:User; var i:String; var u:User; user = null; if (typeof(userId) == "number"){ user = userList[userId]; } else { if (typeof(userId) == "string"){ for (i in userList) { u = this.userList[i]; if (u.getName() == userId){ user = u; break; }; }; }; }; return (user); } public function setUserCount(n:int):void{ this.userCount = n; } public function getVariables():Array{ return (variables); } public function getUserCount():int{ return (this.userCount); } public function isLimbo():Boolean{ return (this.limbo); } public function getSpectatorCount():int{ return (this.specCount); } public function setSpectatorCount(n:int):void{ this.specCount = n; } public function setMyPlayerIndex(id:int):void{ this.myPlayerIndex = id; } public function getMyPlayerIndex():int{ return (this.myPlayerIndex); } public function clearUserList():void{ this.userList = []; this.userCount = 0; this.specCount = 0; } public function isPrivate():Boolean{ return (this.priv); } public function getMaxUsers():int{ return (this.maxUsers); } public function removeUser(id:int):void{ var u:User; u = userList[id]; if (((this.game) && (u.isSpectator()))){ specCount--; } else { userCount--; }; delete userList[id]; } public function getUserList():Array{ return (this.userList); } } }//package it.gotoandplay.smartfoxserver.data
Section 95
//User (it.gotoandplay.smartfoxserver.data.User) package it.gotoandplay.smartfoxserver.data { public class User { private var isSpec:Boolean; private var name:String; private var id:int; private var pId:int; private var variables:Array; private var isMod:Boolean; public function User(id:int, name:String){ super(); this.id = id; this.name = name; this.variables = []; this.isSpec = false; this.isMod = false; } public function setModerator(b:Boolean):void{ this.isMod = b; } public function getName():String{ return (this.name); } public function getVariables():Array{ return (this.variables); } public function getId():int{ return (this.id); } public function getPlayerId():int{ return (this.pId); } public function setPlayerId(pid:int):void{ this.pId = pid; } public function setIsSpectator(b:Boolean):void{ this.isSpec = b; } public function isSpectator():Boolean{ return (this.isSpec); } public function clearVariables():void{ this.variables = []; } public function getVariable(varName:String){ return (this.variables[varName]); } public function setVariables(o:Object):void{ var key:String; var v:*; for (key in o) { v = o[key]; if (v != null){ this.variables[key] = v; } else { delete this.variables[key]; }; }; } public function isModerator():Boolean{ return (this.isMod); } } }//package it.gotoandplay.smartfoxserver.data
Section 96
//ExtHandler (it.gotoandplay.smartfoxserver.handlers.ExtHandler) package it.gotoandplay.smartfoxserver.handlers { import it.gotoandplay.smartfoxserver.*; import it.gotoandplay.smartfoxserver.util.*; public class ExtHandler implements IMessageHandler { private var sfs:SmartFoxClient; public function ExtHandler(sfs:SmartFoxClient){ super(); this.sfs = sfs; } public function handleMessage(msgObj:Object, type:String):void{ var params:Object; var evt:SFSEvent; var xmlData:XML; var action:String; var roomId:int; var xmlStr:String; var asObj:Object; if (type == SmartFoxClient.XTMSG_TYPE_XML){ xmlData = (msgObj as XML); action = xmlData.body.@action; roomId = int(xmlData.body.@id); if (action == "xtRes"){ xmlStr = xmlData.body.toString(); asObj = ObjectSerializer.getInstance().deserialize(xmlStr); params = {}; params.dataObj = asObj; params.type = type; evt = new SFSEvent(SFSEvent.onExtensionResponse, params); sfs.dispatchEvent(evt); }; } else { if (type == SmartFoxClient.XTMSG_TYPE_JSON){ params = {}; params.dataObj = msgObj.o; params.type = type; evt = new SFSEvent(SFSEvent.onExtensionResponse, params); sfs.dispatchEvent(evt); } else { if (type == SmartFoxClient.XTMSG_TYPE_STR){ params = {}; params.dataObj = msgObj; params.type = type; evt = new SFSEvent(SFSEvent.onExtensionResponse, params); sfs.dispatchEvent(evt); }; }; }; } } }//package it.gotoandplay.smartfoxserver.handlers
Section 97
//IMessageHandler (it.gotoandplay.smartfoxserver.handlers.IMessageHandler) package it.gotoandplay.smartfoxserver.handlers { public interface IMessageHandler { function handleMessage(_arg1:Object, _arg2:String):void; } }//package it.gotoandplay.smartfoxserver.handlers
Section 98
//SysHandler (it.gotoandplay.smartfoxserver.handlers.SysHandler) package it.gotoandplay.smartfoxserver.handlers { import it.gotoandplay.smartfoxserver.*; import it.gotoandplay.smartfoxserver.data.*; import flash.utils.*; import it.gotoandplay.smartfoxserver.util.*; public class SysHandler implements IMessageHandler { private var sfs:SmartFoxClient; private var handlersTable:Array; public function SysHandler(sfs:SmartFoxClient){ super(); this.sfs = sfs; handlersTable = []; handlersTable["apiOK"] = this.handleApiOK; handlersTable["apiKO"] = this.handleApiKO; handlersTable["logOK"] = this.handleLoginOk; handlersTable["logKO"] = this.handleLoginKo; handlersTable["logout"] = this.handleLogout; handlersTable["rmList"] = this.handleRoomList; handlersTable["uCount"] = this.handleUserCountChange; handlersTable["joinOK"] = this.handleJoinOk; handlersTable["joinKO"] = this.handleJoinKo; handlersTable["uER"] = this.handleUserEnterRoom; handlersTable["userGone"] = this.handleUserLeaveRoom; handlersTable["pubMsg"] = this.handlePublicMessage; handlersTable["prvMsg"] = this.handlePrivateMessage; handlersTable["dmnMsg"] = this.handleAdminMessage; handlersTable["modMsg"] = this.handleModMessage; handlersTable["dataObj"] = this.handleASObject; handlersTable["rVarsUpdate"] = this.handleRoomVarsUpdate; handlersTable["roomAdd"] = this.handleRoomAdded; handlersTable["roomDel"] = this.handleRoomDeleted; handlersTable["rndK"] = this.handleRandomKey; handlersTable["roundTripRes"] = this.handleRoundTripBench; handlersTable["uVarsUpdate"] = this.handleUserVarsUpdate; handlersTable["createRmKO"] = this.handleCreateRoomError; handlersTable["bList"] = this.handleBuddyList; handlersTable["bUpd"] = this.handleBuddyListUpdate; handlersTable["bAdd"] = this.handleBuddyAdded; handlersTable["roomB"] = this.handleBuddyRoom; handlersTable["leaveRoom"] = this.handleLeaveRoom; handlersTable["swSpec"] = this.handleSpectatorSwitched; handlersTable["bPrm"] = this.handleAddBuddyPermission; handlersTable["remB"] = this.handleRemoveBuddy; handlersTable["swPl"] = this.handlePlayerSwitched; } private function handleRoomDeleted(o:Object):void{ var roomId:int; var roomList:Array; var params:Object; var evt:SFSEvent; roomId = int(o.body.rm.@id); roomList = sfs.getAllRooms(); params = {}; params.room = roomList[roomId]; delete roomList[roomId]; evt = new SFSEvent(SFSEvent.onRoomDeleted, params); sfs.dispatchEvent(evt); } public function handleMessage(msgObj:Object, type:String):void{ var xmlData:XML; var action:String; var fn:Function; xmlData = (msgObj as XML); action = xmlData.body.@action; fn = handlersTable[action]; if (fn != null){ fn.apply(this, [msgObj]); } else { trace(("Unknown sys command: " + action)); }; } public function handleUserEnterRoom(o:Object):void{ var roomId:int; var usrId:int; var usrName:String; var isMod:Boolean; var isSpec:Boolean; var pid:int; var varList:XMLList; var currRoom:Room; var newUser:User; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); usrId = int(o.body.u.@i); usrName = o.body.u.n; isMod = (o.body.u.@m == "1"); isSpec = (o.body.u.@s == "1"); pid = ((o.body.u.@p)!=null) ? int(o.body.u.@p) : -1; varList = o.body.u.vars["var"]; currRoom = sfs.getRoom(roomId); newUser = new User(usrId, usrName); newUser.setModerator(isMod); newUser.setIsSpectator(isSpec); newUser.setPlayerId(pid); currRoom.addUser(newUser, usrId); if (o.body.u.vars.toString().length > 0){ populateVariables(newUser.getVariables(), o.body.u); }; params = {}; params.roomId = roomId; params.user = newUser; evt = new SFSEvent(SFSEvent.onUserEnterRoom, params); sfs.dispatchEvent(evt); } public function handleUserVarsUpdate(o:Object):void{ var userId:int; var changedVars:Array; var varOwner:User; var returnUser:User; var room:Room; var params:Object; var evt:SFSEvent; userId = int(o.body.user.@id); varOwner = null; returnUser = null; if (o.body.vars.toString().length > 0){ for each (room in sfs.getAllRooms()) { varOwner = room.getUser(userId); if (varOwner != null){ if (returnUser == null){ returnUser = varOwner; }; changedVars = []; populateVariables(varOwner.getVariables(), o.body, changedVars); }; }; params = {}; params.user = returnUser; params.changedVars = changedVars; evt = new SFSEvent(SFSEvent.onUserVariablesUpdate, params); sfs.dispatchEvent(evt); }; } private function handleCreateRoomError(o:Object):void{ var errMsg:String; var params:Object; var evt:SFSEvent; errMsg = o.body.room.@e; params = {}; params.error = errMsg; evt = new SFSEvent(SFSEvent.onCreateRoomError, params); sfs.dispatchEvent(evt); } public function handlePrivateMessage(o:Object):void{ var roomId:int; var userId:int; var message:String; var sender:User; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); message = o.body.txt; sender = sfs.getRoom(roomId).getUser(userId); params = {}; params.message = Entities.decodeEntities(message); params.sender = sender; params.roomId = roomId; params.userId = userId; evt = new SFSEvent(SFSEvent.onPrivateMessage, params); sfs.dispatchEvent(evt); } private function handleBuddyRoom(o:Object):void{ var roomIds:String; var ids:Array; var i:int; var params:Object; var evt:SFSEvent; roomIds = o.body.br.@r; ids = roomIds.split(","); i = 0; while (i < ids.length) { ids[i] = int(ids[i]); i++; }; params = {}; params.idList = ids; evt = new SFSEvent(SFSEvent.onBuddyRoom, params); sfs.dispatchEvent(evt); } public function handleLogout(o:Object):void{ var evt:SFSEvent; sfs.__logout(); evt = new SFSEvent(SFSEvent.onLogout, {}); sfs.dispatchEvent(evt); } public function handleUserCountChange(o:Object):void{ var uCount:int; var sCount:int; var roomId:int; var room:Room; var params:Object; var evt:SFSEvent; uCount = int(o.body.@u); sCount = int(o.body.@s); roomId = int(o.body.@r); room = sfs.getAllRooms()[roomId]; if (room != null){ room.setUserCount(uCount); room.setSpectatorCount(sCount); params = {}; params.room = room; evt = new SFSEvent(SFSEvent.onUserCountChange, params); sfs.dispatchEvent(evt); }; } private function handleRandomKey(o:Object):void{ var key:String; var params:Object; var evt:SFSEvent; key = o.body.k.toString(); params = {}; params.key = key; evt = new SFSEvent(SFSEvent.onRandomKey, params); sfs.dispatchEvent(evt); } public function handlePublicMessage(o:Object):void{ var roomId:int; var userId:int; var message:String; var sender:User; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); message = o.body.txt; sender = sfs.getRoom(roomId).getUser(userId); params = {}; params.message = Entities.decodeEntities(message); params.sender = sender; params.roomId = roomId; evt = new SFSEvent(SFSEvent.onPublicMessage, params); sfs.dispatchEvent(evt); } public function handleAdminMessage(o:Object):void{ var roomId:int; var userId:int; var message:String; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); message = o.body.txt; params = {}; params.message = Entities.decodeEntities(message); evt = new SFSEvent(SFSEvent.onAdminMessage, params); sfs.dispatchEvent(evt); } public function dispatchDisconnection():void{ var evt:SFSEvent; evt = new SFSEvent(SFSEvent.onConnectionLost, null); sfs.dispatchEvent(evt); } private function handleRemoveBuddy(o:Object):void{ var buddyName:String; var buddy:Object; var it:String; var params:Object; var evt:SFSEvent; buddyName = o.body.n.toString(); buddy = null; for (it in sfs.buddyList) { buddy = sfs.buddyList[it]; if (buddy.name == buddyName){ delete sfs.buddyList[it]; params = {}; params.list = sfs.buddyList; evt = new SFSEvent(SFSEvent.onBuddyList, params); sfs.dispatchEvent(evt); break; }; }; } private function handleAddBuddyPermission(o:Object):void{ var params:Object; var evt:SFSEvent; params = {}; params.sender = o.body.n.toString(); params.message = ""; if (o.body.txt != undefined){ params.message = Entities.decodeEntities(o.body.txt); }; evt = new SFSEvent(SFSEvent.onBuddyPermissionRequest, params); sfs.dispatchEvent(evt); } public function handleLoginOk(o:Object):void{ var uid:int; var mod:int; var name:String; var params:Object; var evt:SFSEvent; uid = int(o.body.login.@id); mod = int(o.body.login.@mod); name = o.body.login.@n; sfs.amIModerator = (mod == 1); sfs.myUserId = uid; sfs.myUserName = name; sfs.playerId = -1; params = {}; params.success = true; params.name = name; params.error = ""; evt = new SFSEvent(SFSEvent.onLogin, params); sfs.dispatchEvent(evt); sfs.getRoomList(); } public function handleUserLeaveRoom(o:Object):void{ var userId:int; var roomId:int; var theRoom:Room; var uName:String; var params:Object; var evt:SFSEvent; var o = o; userId = int(o.body.user.@id); roomId = int(o.body.@r); theRoom = sfs.getRoom(roomId); uName = theRoom.getUser(userId).getName(); theRoom.removeUser(userId); params = {}; params.roomId = roomId; params.userId = userId; params.userName = uName; evt = new SFSEvent(SFSEvent.onUserLeaveRoom, params); sfs.dispatchEvent(evt); //unresolved jump var _slot1 = e; } public function handleRoomList(o:Object):void{ var roomList:Array; var roomXml:XML; var params:Object; var evt:SFSEvent; var roomId:int; var room:Room; sfs.clearRoomList(); roomList = sfs.getAllRooms(); for each (roomXml in o.body.rmList.rm) { roomId = int(roomXml.@id); room = new Room(roomId, roomXml.n, int(roomXml.@maxu), int(roomXml.@maxs), (roomXml.@temp == "1"), (roomXml.@game == "1"), (roomXml.@priv == "1"), (roomXml.@lmb == "1"), int(roomXml.@ucnt), int(roomXml.@scnt)); if (roomXml.vars.toString().length > 0){ populateVariables(room.getVariables(), roomXml); }; roomList[roomId] = room; }; params = {}; params.roomList = roomList; evt = new SFSEvent(SFSEvent.onRoomListUpdate, params); sfs.dispatchEvent(evt); } private function handleBuddyAdded(o:Object):void{ var buddy:Object; var bVars:XMLList; var params:Object; var evt:SFSEvent; var bVar:XML; buddy = {}; buddy.isOnline = ((o.body.b.@s == "1")) ? true : false; buddy.name = o.body.b.n.toString(); buddy.id = o.body.b.@i; buddy.isBlocked = ((o.body.b.@x == "1")) ? true : false; buddy.variables = {}; bVars = o.body.b.vs; if (bVars.toString().length > 0){ for each (bVar in bVars.v) { buddy.variables[bVar.@n.toString()] = bVar.toString(); }; }; sfs.buddyList.push(buddy); params = {}; params.list = sfs.buddyList; evt = new SFSEvent(SFSEvent.onBuddyList, params); sfs.dispatchEvent(evt); } private function handlePlayerSwitched(o:Object):void{ var roomId:int; var playerId:int; var isItMe:Boolean; var theRoom:Room; var userId:int; var user:User; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); playerId = int(o.body.pid.@id); isItMe = (o.body.pid.@u == undefined); theRoom = sfs.getRoom(roomId); if (playerId == -1){ theRoom.setUserCount((theRoom.getUserCount() - 1)); theRoom.setSpectatorCount((theRoom.getSpectatorCount() + 1)); if (!isItMe){ userId = int(o.body.pid.@u); user = theRoom.getUser(userId); if (user != null){ user.setIsSpectator(true); user.setPlayerId(playerId); }; }; }; if (isItMe){ sfs.playerId = playerId; params = {}; params.success = (playerId == -1); params.newId = playerId; params.room = theRoom; evt = new SFSEvent(SFSEvent.onPlayerSwitched, params); sfs.dispatchEvent(evt); }; } private function handleRoomAdded(o:Object):void{ var rId:int; var rName:String; var rMax:int; var rSpec:int; var isTemp:Boolean; var isGame:Boolean; var isPriv:Boolean; var isLimbo:Boolean; var newRoom:Room; var rList:Array; var params:Object; var evt:SFSEvent; rId = int(o.body.rm.@id); rName = o.body.rm.name; rMax = int(o.body.rm.@max); rSpec = int(o.body.rm.@spec); isTemp = ((o.body.rm.@temp == "1")) ? true : false; isGame = ((o.body.rm.@game == "1")) ? true : false; isPriv = ((o.body.rm.@priv == "1")) ? true : false; isLimbo = ((o.body.rm.@limbo == "1")) ? true : false; newRoom = new Room(rId, rName, rMax, rSpec, isTemp, isGame, isPriv, isLimbo); rList = sfs.getAllRooms(); rList[rId] = newRoom; if (o.body.rm.vars.toString().length > 0){ populateVariables(newRoom.getVariables(), o.body.rm); }; params = {}; params.room = newRoom; evt = new SFSEvent(SFSEvent.onRoomAdded, params); sfs.dispatchEvent(evt); } private function populateVariables(variables:Array, xmlData:Object, changedVars:Array=null):void{ var v:XML; var vName:String; var vType:String; var vValue:String; for each (v in xmlData.vars["var"]) { vName = v.@n; vType = v.@t; vValue = v; if (changedVars != null){ changedVars.push(vName); changedVars[vName] = true; }; if (vType == "b"){ variables[vName] = ((vValue == "1")) ? true : false; } else { if (vType == "n"){ variables[vName] = Number(vValue); } else { if (vType == "s"){ variables[vName] = vValue; } else { if (vType == "x"){ delete variables[vName]; }; }; }; }; }; } public function handleRoomVarsUpdate(o:Object):void{ var roomId:int; var userId:int; var currRoom:Room; var changedVars:Array; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); currRoom = sfs.getRoom(roomId); changedVars = []; if (o.body.vars.toString().length > 0){ populateVariables(currRoom.getVariables(), o.body, changedVars); }; params = {}; params.room = currRoom; params.changedVars = changedVars; evt = new SFSEvent(SFSEvent.onRoomVariablesUpdate, params); sfs.dispatchEvent(evt); } private function handleSpectatorSwitched(o:Object):void{ var roomId:int; var playerId:int; var theRoom:Room; var userId:int; var user:User; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); playerId = int(o.body.pid.@id); theRoom = sfs.getRoom(roomId); if (playerId > 0){ theRoom.setUserCount((theRoom.getUserCount() + 1)); theRoom.setSpectatorCount((theRoom.getSpectatorCount() - 1)); }; if (o.body.pid.@u != undefined){ userId = int(o.body.pid.@u); user = theRoom.getUser(userId); if (user != null){ user.setIsSpectator(false); user.setPlayerId(playerId); }; } else { sfs.playerId = playerId; params = {}; params.success = (sfs.playerId > 0); params.newId = sfs.playerId; params.room = theRoom; evt = new SFSEvent(SFSEvent.onSpectatorSwitched, params); sfs.dispatchEvent(evt); }; } private function handleLeaveRoom(o:Object):void{ var roomLeft:int; var params:Object; var evt:SFSEvent; roomLeft = int(o.body.rm.@id); params = {}; params.roomId = roomLeft; evt = new SFSEvent(SFSEvent.onRoomLeft, params); sfs.dispatchEvent(evt); } private function handleBuddyListUpdate(o:Object):void{ var params:Object; var evt:SFSEvent; var buddy:Object; var bVars:XMLList; var tempB:Object; var found:Boolean; var it:String; var bVar:XML; params = {}; evt = null; if (o.body.err.toString().length > 0){ params.error = o.body.err.toString(); evt = new SFSEvent(SFSEvent.onBuddyListError, params); sfs.dispatchEvent(evt); return; }; if (o.body.b != null){ buddy = {}; buddy.isOnline = ((o.body.b.@s == "1")) ? true : false; buddy.name = o.body.b.n.toString(); buddy.id = o.body.b.@i; buddy.isBlocked = ((o.body.b.@x == "1")) ? true : false; bVars = o.body.b.vs; tempB = null; found = false; for (it in sfs.buddyList) { tempB = sfs.buddyList[it]; if (tempB.name == buddy.name){ sfs.buddyList[it] = buddy; buddy.isBlocked = tempB.isBlocked; buddy.variables = tempB.variables; if (bVars.toString().length > 0){ for each (bVar in bVars.v) { buddy.variables[bVar.@n.toString()] = bVar.toString(); }; }; found = true; break; }; }; if (found){ params.buddy = buddy; evt = new SFSEvent(SFSEvent.onBuddyListUpdate, params); sfs.dispatchEvent(evt); }; }; } public function handleLoginKo(o:Object):void{ var params:Object; var evt:SFSEvent; params = {}; params.success = false; params.error = o.body.login.@e; evt = new SFSEvent(SFSEvent.onLogin, params); sfs.dispatchEvent(evt); } public function handleModMessage(o:Object):void{ var roomId:int; var userId:int; var message:String; var sender:User; var room:Room; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); message = o.body.txt; sender = null; room = sfs.getRoom(roomId); if (room != null){ sender = sfs.getRoom(roomId).getUser(userId); }; params = {}; params.message = Entities.decodeEntities(message); params.sender = sender; evt = new SFSEvent(SFSEvent.onModeratorMessage, params); sfs.dispatchEvent(evt); } public function handleApiOK(o:Object):void{ var evt:SFSEvent; sfs.isConnected = true; evt = new SFSEvent(SFSEvent.onConnection, {success:true}); sfs.dispatchEvent(evt); } private function handleRoundTripBench(o:Object):void{ var now:int; var res:int; var params:Object; var evt:SFSEvent; now = getTimer(); res = (now - sfs.getBenchStartTime()); params = {}; params.elapsed = res; evt = new SFSEvent(SFSEvent.onRoundTripResponse, params); sfs.dispatchEvent(evt); } public function handleJoinOk(o:Object):void{ var roomId:int; var roomVarsXml:XMLList; var userListXml:XMLList; var playerId:int; var currRoom:Room; var usr:XML; var params:Object; var evt:SFSEvent; var name:String; var id:int; var isMod:Boolean; var isSpec:Boolean; var pId:int; var user:User; roomId = int(o.body.@r); roomVarsXml = o.body; userListXml = o.body.uLs.u; playerId = int(o.body.pid.@id); sfs.activeRoomId = roomId; currRoom = sfs.getRoom(roomId); currRoom.clearUserList(); sfs.playerId = playerId; currRoom.setMyPlayerIndex(playerId); if (roomVarsXml.vars.toString().length > 0){ currRoom.clearVariables(); populateVariables(currRoom.getVariables(), roomVarsXml); }; for each (usr in userListXml) { name = usr.n; id = int(usr.@i); isMod = ((usr.@m == "1")) ? true : false; isSpec = ((usr.@s == "1")) ? true : false; pId = ((usr.@p == null)) ? -1 : int(usr.@p); user = new User(id, name); user.setModerator(isMod); user.setIsSpectator(isSpec); user.setPlayerId(pId); if (usr.vars.toString().length > 0){ populateVariables(user.getVariables(), usr); }; currRoom.addUser(user, id); }; sfs.changingRoom = false; params = {}; params.room = currRoom; evt = new SFSEvent(SFSEvent.onJoinRoom, params); sfs.dispatchEvent(evt); } public function handleJoinKo(o:Object):void{ var params:Object; var evt:SFSEvent; sfs.changingRoom = false; params = {}; params.error = o.body.error.@msg; evt = new SFSEvent(SFSEvent.onJoinRoomError, params); sfs.dispatchEvent(evt); } public function handleASObject(o:Object):void{ var roomId:int; var userId:int; var xmlStr:String; var sender:User; var asObj:Object; var params:Object; var evt:SFSEvent; roomId = int(o.body.@r); userId = int(o.body.user.@id); xmlStr = o.body.dataObj; sender = sfs.getRoom(roomId).getUser(userId); asObj = ObjectSerializer.getInstance().deserialize(new XML(xmlStr)); params = {}; params.obj = asObj; params.sender = sender; evt = new SFSEvent(SFSEvent.onObjectReceived, params); sfs.dispatchEvent(evt); } private function handleBuddyList(o:Object):void{ var bList:XMLList; var myVars:XMLList; var buddy:Object; var params:Object; var evt:SFSEvent; var myVar:XML; var b:XML; var bVars:XMLList; var bVar:XML; bList = o.body.bList; myVars = o.body.mv; params = {}; evt = null; if (((!((myVars == null))) && ((myVars.toString().length > 0)))){ for each (myVar in myVars.v) { sfs.myBuddyVars[myVar.@n.toString()] = myVar.toString(); }; }; if (((!((bList == null))) && (!((bList.b.length == null))))){ if (bList.toString().length > 0){ for each (b in bList.b) { buddy = {}; buddy.isOnline = ((b.@s == "1")) ? true : false; buddy.name = b.n.toString(); buddy.id = b.@i; buddy.isBlocked = ((b.@x == "1")) ? true : false; buddy.variables = {}; bVars = b.vs; if (bVars.toString().length > 0){ for each (bVar in bVars.v) { buddy.variables[bVar.@n.toString()] = bVar.toString(); }; }; sfs.buddyList.push(buddy); }; }; params.list = sfs.buddyList; evt = new SFSEvent(SFSEvent.onBuddyList, params); sfs.dispatchEvent(evt); } else { params.error = o.body.err.toString(); evt = new SFSEvent(SFSEvent.onBuddyListError, params); sfs.dispatchEvent(evt); }; } public function handleApiKO(o:Object):void{ var params:Object; var evt:SFSEvent; params = {}; params.success = false; params.error = "API are obsolete, please upgrade"; evt = new SFSEvent(SFSEvent.onConnection, params); sfs.dispatchEvent(evt); } } }//package it.gotoandplay.smartfoxserver.handlers
Section 99
//HttpConnection (it.gotoandplay.smartfoxserver.http.HttpConnection) package it.gotoandplay.smartfoxserver.http { import flash.events.*; import flash.net.*; public class HttpConnection extends EventDispatcher { private var port:int; private var connected:Boolean;// = false private var codec:IHttpProtocolCodec; private var urlLoaderFactory:LoaderFactory; private var sessionId:String; private var urlRequest:URLRequest; private var ipAddr:String; private var webUrl:String; private static const servletUrl:String = "BlueBox/HttpBox.do"; public static const HANDSHAKE_TOKEN:String = "#"; private static const HANDSHAKE:String = "connect"; private static const DISCONNECT:String = "disconnect"; private static const CONN_LOST:String = "ERR#01"; private static const paramName:String = "sfsHttp"; public function HttpConnection(){ connected = false; super(); codec = new RawProtocolCodec(); urlLoaderFactory = new LoaderFactory(handleResponse, handleIOError); } public function close():void{ send(DISCONNECT); } public function getSessionId():String{ return (this.sessionId); } private function handleResponse(evt:Event):void{ var loader:URLLoader; var data:String; var event:HttpEvent; var params:Object; loader = (evt.target as URLLoader); data = (loader.data as String); params = {}; if (data.charAt(0) == HANDSHAKE_TOKEN){ if (sessionId == null){ sessionId = codec.decode(data); connected = true; params.sessionId = this.sessionId; params.success = true; event = new HttpEvent(HttpEvent.onHttpConnect, params); dispatchEvent(event); } else { trace("**ERROR** SessionId is being rewritten"); }; } else { if (data.indexOf(CONN_LOST) == 0){ params.data = {}; event = new HttpEvent(HttpEvent.onHttpClose, params); } else { params.data = data; event = new HttpEvent(HttpEvent.onHttpData, params); }; dispatchEvent(event); }; } private function handleIOError(error:IOErrorEvent):void{ var params:Object; var event:HttpEvent; params = {}; params.message = error.text; event = new HttpEvent(HttpEvent.onHttpError, params); dispatchEvent(event); } public function connect(addr:String, port:int=8080):void{ this.ipAddr = addr; this.port = port; this.webUrl = ((((("http://" + this.ipAddr) + ":") + this.port) + "/") + servletUrl); this.sessionId = null; urlRequest = new URLRequest(webUrl); urlRequest.method = URLRequestMethod.POST; send(HANDSHAKE); } public function send(message:String):void{ var vars:URLVariables; var urlLoader:URLLoader; if (((((connected) || (((!(connected)) && ((message == HANDSHAKE)))))) || (((!(connected)) && ((message == "poll")))))){ vars = new URLVariables(); vars[paramName] = codec.encode(this.sessionId, message); urlRequest.data = vars; if (message != "poll"){ trace(("[ Send ]: " + urlRequest.data)); }; urlLoader = urlLoaderFactory.getLoader(); urlLoader.data = vars; urlLoader.load(urlRequest); }; } public function isConnected():Boolean{ return (this.connected); } } }//package it.gotoandplay.smartfoxserver.http
Section 100
//HttpEvent (it.gotoandplay.smartfoxserver.http.HttpEvent) package it.gotoandplay.smartfoxserver.http { import flash.events.*; public class HttpEvent extends Event { public var params:Object; private var evtType:String; public static const onHttpClose:String = "onHttpClose"; public static const onHttpError:String = "onHttpError"; public static const onHttpConnect:String = "onHttpConnect"; public static const onHttpData:String = "onHttpData"; public function HttpEvent(type:String, params:Object){ super(type); this.params = params; this.evtType = type; } override public function toString():String{ return (formatToString("HttpEvent", "type", "bubbles", "cancelable", "eventPhase", "params")); } override public function clone():Event{ return (new HttpEvent(this.evtType, this.params)); } } }//package it.gotoandplay.smartfoxserver.http
Section 101
//IHttpProtocolCodec (it.gotoandplay.smartfoxserver.http.IHttpProtocolCodec) package it.gotoandplay.smartfoxserver.http { public interface IHttpProtocolCodec { function encode(_arg1:String, _arg2:String):String; function decode(:String):String; } }//package it.gotoandplay.smartfoxserver.http
Section 102
//LoaderFactory (it.gotoandplay.smartfoxserver.http.LoaderFactory) package it.gotoandplay.smartfoxserver.http { import flash.events.*; import flash.net.*; public class LoaderFactory { private var currentLoaderIndex:int; private var loadersPool:Array; private static const DEFAULT_POOL_SIZE:int = 8; public function LoaderFactory(responseHandler:Function, errorHandler:Function, poolSize:int=8){ var i:int; var urlLoader:URLLoader; super(); loadersPool = []; i = 0; while (i < poolSize) { urlLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener(Event.COMPLETE, responseHandler); urlLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); urlLoader.addEventListener(IOErrorEvent.NETWORK_ERROR, errorHandler); loadersPool.push(urlLoader); i++; }; currentLoaderIndex = 0; } public function getLoader():URLLoader{ var urlLoader:URLLoader; urlLoader = loadersPool[currentLoaderIndex]; currentLoaderIndex++; if (currentLoaderIndex >= loadersPool.length){ currentLoaderIndex = 0; }; return (urlLoader); } } }//package it.gotoandplay.smartfoxserver.http
Section 103
//RawProtocolCodec (it.gotoandplay.smartfoxserver.http.RawProtocolCodec) package it.gotoandplay.smartfoxserver.http { public class RawProtocolCodec implements IHttpProtocolCodec { private static const SESSION_ID_LEN:int = 32; public function RawProtocolCodec(){ super(); } public function encode(sessionId:String, message:String):String{ return ((((sessionId == null)) ? "" : sessionId + message)); } public function decode(message:String):String{ var decoded:String; if (message.charAt(0) == HttpConnection.HANDSHAKE_TOKEN){ decoded = message.substr(1, SESSION_ID_LEN); }; return (decoded); } } }//package it.gotoandplay.smartfoxserver.http
Section 104
//Entities (it.gotoandplay.smartfoxserver.util.Entities) package it.gotoandplay.smartfoxserver.util { public class Entities { private static var hexTable:Array = new Array(); private static var ascTab:Array = []; private static var ascTabRev:Array = []; public function Entities(){ super(); } public static function decodeEntities(st:String):String{ var strbuff:String; var ch:String; var ent:String; var chi:String; var item:String; var i:int; i = 0; strbuff = ""; while (i < st.length) { ch = st.charAt(i); if (ch == "&"){ ent = ch; do { i++; chi = st.charAt(i); ent = (ent + chi); } while (((!((chi == ";"))) && ((i < st.length)))); item = ascTabRev[ent]; if (item != null){ strbuff = (strbuff + item); } else { strbuff = (strbuff + String.fromCharCode(getCharCode(ent))); }; } else { strbuff = (strbuff + ch); }; i++; }; return (strbuff); } public static function encodeEntities(st:String):String{ var strbuff:String; var i:int; var ch:String; var cod:int; strbuff = ""; i = 0; while (i < st.length) { ch = st.charAt(i); cod = st.charCodeAt(i); if ((((((cod == 9)) || ((cod == 10)))) || ((cod == 13)))){ strbuff = (strbuff + ch); } else { if ((((cod >= 32)) && ((cod <= 126)))){ if (ascTab[ch] != null){ strbuff = (strbuff + ascTab[ch]); } else { strbuff = (strbuff + ch); }; } else { strbuff = (strbuff + ch); }; }; i++; }; return (strbuff); } public static function getCharCode(ent:String):Number{ var hex:String; hex = ent.substr(3, ent.length); hex = hex.substr(0, (hex.length - 1)); return (Number(("0x" + hex))); } ascTab[">"] = "&gt;"; ascTab["<"] = "&lt;"; ascTab["&"] = "&amp;"; ascTab["'"] = "&apos;"; ascTab["\""] = "&quot;"; ascTabRev["&gt;"] = ">"; ascTabRev["&lt;"] = "<"; ascTabRev["&amp;"] = "&"; ascTabRev["&apos;"] = "'"; ascTabRev["&quot;"] = "\""; hexTable["0"] = 0; hexTable["1"] = 1; hexTable["2"] = 2; hexTable["3"] = 3; hexTable["4"] = 4; hexTable["5"] = 5; hexTable["6"] = 6; hexTable["7"] = 7; hexTable["8"] = 8; hexTable["9"] = 9; hexTable["A"] = 10; hexTable["B"] = 11; hexTable["C"] = 12; hexTable["D"] = 13; hexTable["E"] = 14; hexTable["F"] = 15; } }//package it.gotoandplay.smartfoxserver.util
Section 105
//ObjectSerializer (it.gotoandplay.smartfoxserver.util.ObjectSerializer) package it.gotoandplay.smartfoxserver.util { public class ObjectSerializer { private var eof:String; private var debug:Boolean; private var tabs:String; private static var instance:ObjectSerializer; public function ObjectSerializer(debug:Boolean=false){ super(); this.tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t"; setDebug(debug); } public function serialize(o:Object):String{ var result:Object; result = {}; obj2xml(o, result); return (result.xmlStr); } private function obj2xml(srcObj:Object, trgObj:Object, depth:int=0, objName:String=""):void{ var i:String; var ot:String; var t:String; var o:*; if (depth == 0){ trgObj.xmlStr = ("<dataObj>" + this.eof); } else { if (this.debug){ trgObj.xmlStr = (trgObj.xmlStr + this.tabs.substr(0, depth)); }; ot = ((srcObj is Array)) ? "a" : "o"; trgObj.xmlStr = (trgObj.xmlStr + ((((("<obj t='" + ot) + "' o='") + objName) + "'>") + this.eof)); }; for (i in srcObj) { t = typeof(srcObj[i]); o = srcObj[i]; if ((((((((t == "boolean")) || ((t == "number")))) || ((t == "string")))) || ((t == "null")))){ if (t == "boolean"){ o = Number(o); } else { if (t == "null"){ t = "x"; o = ""; } else { if (t == "string"){ o = Entities.encodeEntities(o); }; }; }; if (this.debug){ trgObj.xmlStr = (trgObj.xmlStr + this.tabs.substr(0, (depth + 1))); }; trgObj.xmlStr = (trgObj.xmlStr + ((((((("<var n='" + i) + "' t='") + t.substr(0, 1)) + "'>") + o) + "</var>") + this.eof)); } else { if (t == "object"){ obj2xml(o, trgObj, (depth + 1), i); if (this.debug){ trgObj.xmlStr = (trgObj.xmlStr + this.tabs.substr(0, (depth + 1))); }; trgObj.xmlStr = (trgObj.xmlStr + ("</obj>" + this.eof)); }; }; }; if (depth == 0){ trgObj.xmlStr = (trgObj.xmlStr + ("</dataObj>" + this.eof)); }; } private function setDebug(b:Boolean):void{ this.debug = b; if (this.debug){ this.eof = "\n"; } else { this.eof = ""; }; } private function xml2obj(x:XML, o:Object):void{ var i:int; var nodes:XMLList; var nodeName:String; var node:XML; var objName:String; var objType:String; var varName:String; var varType:String; var varVal:String; i = 0; nodes = x.children(); for each (node in nodes) { nodeName = node.name().toString(); if (nodeName == "obj"){ objName = node.@o; objType = node.@t; if (objType == "a"){ o[objName] = []; } else { if (objType == "o"){ o[objName] = {}; }; }; xml2obj(node, o[objName]); } else { if (nodeName == "var"){ varName = node.@n; varType = node.@t; varVal = node.toString(); if (varType == "b"){ o[varName] = ((varVal == "0")) ? false : true; } else { if (varType == "n"){ o[varName] = Number(varVal); } else { if (varType == "s"){ o[varName] = varVal; } else { if (varType == "x"){ o[varName] = null; }; }; }; }; }; }; }; } private function encodeEntities(s:String):String{ return (s); } public function deserialize(xmlString:String):Object{ var xmlData:XML; var resObj:Object; xmlData = new XML(xmlString); resObj = {}; xml2obj(xmlData, resObj); return (resObj); } public static function getInstance(debug:Boolean=false):ObjectSerializer{ if (instance == null){ instance = new ObjectSerializer(debug); }; return (instance); } } }//package it.gotoandplay.smartfoxserver.util
Section 106
//SFSEvent (it.gotoandplay.smartfoxserver.SFSEvent) package it.gotoandplay.smartfoxserver { import flash.events.*; public class SFSEvent extends Event { public var params:Object; public static const onExtensionResponse:String = "onExtensionResponse"; public static const onConfigLoadFailure:String = "onConfigLoadFailure"; public static const onBuddyListUpdate:String = "onBuddyListUpdate"; public static const onUserLeaveRoom:String = "onUserLeaveRoom"; public static const onRoomLeft:String = "onRoomLeft"; public static const onPlayerSwitched:String = "onPlayerSwitched"; public static const onRoundTripResponse:String = "onRoundTripResponse"; public static const onRoomListUpdate:String = "onRoomListUpdate"; public static const onConnection:String = "onConnection"; public static const onBuddyListError:String = "onBuddyListError"; public static const onJoinRoom:String = "onJoinRoom"; public static const onBuddyRoom:String = "onBuddyRoom"; public static const onUserEnterRoom:String = "onUserEnterRoom"; public static const onDebugMessage:String = "onDebugMessage"; public static const onAdminMessage:String = "onAdminMessage"; public static const onPublicMessage:String = "onPublicMessage"; public static const onModeratorMessage:String = "onModMessage"; public static const onPrivateMessage:String = "onPrivateMessage"; public static const onLogout:String = "onLogout"; public static const onJoinRoomError:String = "onJoinRoomError"; public static const onRoomAdded:String = "onRoomAdded"; public static const onLogin:String = "onLogin"; public static const onSpectatorSwitched:String = "onSpectatorSwitched"; public static const onBuddyPermissionRequest:String = "onBuddyPermissionRequest"; public static const onRoomDeleted:String = "onRoomDeleted"; public static const onConnectionLost:String = "onConnectionLost"; public static const onBuddyList:String = "onBuddyList"; public static const onRoomVariablesUpdate:String = "onRoomVariablesUpdate"; public static const onCreateRoomError:String = "onCreateRoomError"; public static const onUserCountChange:String = "onUserCountChange"; public static const onUserVariablesUpdate:String = "onUserVariablesUpdate"; public static const onConfigLoadSuccess:String = "onConfigLoadSuccess"; public static const onRandomKey:String = "onRandomKey"; public static const onObjectReceived:String = "onObjectReceived"; public function SFSEvent(type:String, params:Object){ super(type); this.params = params; } override public function toString():String{ return (formatToString("SFSEvent", "type", "bubbles", "cancelable", "eventPhase", "params")); } override public function clone():Event{ return (new SFSEvent(this.type, this.params)); } } }//package it.gotoandplay.smartfoxserver
Section 107
//SmartFoxClient (it.gotoandplay.smartfoxserver.SmartFoxClient) package it.gotoandplay.smartfoxserver { import flash.events.*; import it.gotoandplay.smartfoxserver.data.*; import flash.utils.*; import it.gotoandplay.smartfoxserver.util.*; import flash.net.*; import com.adobe.serialization.json.*; import it.gotoandplay.smartfoxserver.handlers.*; import it.gotoandplay.smartfoxserver.http.*; public class SmartFoxClient extends EventDispatcher { private var connected:Boolean; private var autoConnectOnConfigSuccess:Boolean;// = false private var benchStartTime:int; private var roomList:Array; private var _httpPollSpeed:int; private var minVersion:Number; public var httpPort:int;// = 8080 public var properties:Object;// = null public var myUserId:int; public var blueBoxPort:Number;// = 0 public var debug:Boolean; private var byteBuffer:ByteArray; private var subVersion:Number; public var buddyList:Array; public var port:int;// = 9339 private var messageHandlers:Array; public var defaultZone:String; private var isHttpMode:Boolean;// = false private var httpConnection:HttpConnection; private var majVersion:Number; private var socketConnection:Socket; public var blueBoxIpAddress:String; private var sysHandler:SysHandler; public var myBuddyVars:Array; public var myUserName:String; public var ipAddress:String; public var playerId:int; public var smartConnect:Boolean;// = true public var amIModerator:Boolean; private var extHandler:ExtHandler; public var changingRoom:Boolean; public var activeRoomId:int; public static const CONNECTION_MODE_HTTP:String = "http"; private static const MSG_JSON:String = "{"; public static const MODMSG_TO_USER:String = "u"; public static const XTMSG_TYPE_XML:String = "xml"; private static const MSG_XML:String = "<"; public static const MODMSG_TO_ROOM:String = "r"; private static const EOM:int = 0; public static const XTMSG_TYPE_STR:String = "str"; public static const CONNECTION_MODE_SOCKET:String = "socket"; public static const MODMSG_TO_ZONE:String = "z"; public static const CONNECTION_MODE_DISCONNECTED:String = "disconnected"; public static const XTMSG_TYPE_JSON:String = "json"; private static var MAX_POLL_SPEED:Number = 10000; private static var DEFAULT_POLL_SPEED:Number = 750; private static var MIN_POLL_SPEED:Number = 0; private static var HTTP_POLL_REQUEST:String = "poll"; private static var MSG_STR:String = "%"; public function SmartFoxClient(debug:Boolean=false){ autoConnectOnConfigSuccess = false; port = 9339; isHttpMode = false; _httpPollSpeed = DEFAULT_POLL_SPEED; blueBoxPort = 0; smartConnect = true; httpPort = 8080; properties = null; super(); this.majVersion = 1; this.minVersion = 5; this.subVersion = 8; this.activeRoomId = -1; this.debug = debug; this.messageHandlers = []; setupMessageHandlers(); socketConnection = new Socket(); socketConnection.addEventListener(Event.CONNECT, handleSocketConnection); socketConnection.addEventListener(Event.CLOSE, handleSocketDisconnection); socketConnection.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData); socketConnection.addEventListener(IOErrorEvent.IO_ERROR, handleIOError); socketConnection.addEventListener(IOErrorEvent.NETWORK_ERROR, handleIOError); socketConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError); httpConnection = new HttpConnection(); httpConnection.addEventListener(HttpEvent.onHttpConnect, handleHttpConnect); httpConnection.addEventListener(HttpEvent.onHttpClose, handleHttpClose); httpConnection.addEventListener(HttpEvent.onHttpData, handleHttpData); httpConnection.addEventListener(HttpEvent.onHttpError, handleHttpError); byteBuffer = new ByteArray(); } private function getXmlUserVariable(uVars:Object):String{ var xmlStr:String; var val:*; var t:String; var type:String; var key:String; xmlStr = "<vars>"; for (key in uVars) { val = uVars[key]; type = typeof(val); t = null; if (type == "boolean"){ t = "b"; val = (val) ? "1" : "0"; } else { if (type == "number"){ t = "n"; } else { if (type == "string"){ t = "s"; } else { if ((((((val == null)) && ((type == "object")))) || ((type == "undefined")))){ t = "x"; val = ""; }; }; }; }; if (t != null){ xmlStr = (xmlStr + (((((("<var n='" + key) + "' t='") + t) + "'><![CDATA[") + val) + "]]></var>")); }; }; xmlStr = (xmlStr + "</vars>"); return (xmlStr); } private function jsonReceived(msg:String):void{ var jso:Object; var handlerId:String; var handler:IMessageHandler; jso = JSON.decode(msg); handlerId = jso["t"]; handler = messageHandlers[handlerId]; if (handler != null){ handler.handleMessage(jso["b"], XTMSG_TYPE_JSON); }; } private function onConfigLoadFailure(evt:IOErrorEvent):void{ var params:Object; var sfsEvt:SFSEvent; params = {message:evt.text}; sfsEvt = new SFSEvent(SFSEvent.onConfigLoadFailure, params); dispatchEvent(sfsEvt); } public function getActiveRoom():Room{ if (((!(checkRoomList())) || (!(checkJoin())))){ return (null); }; return (roomList[activeRoomId]); } public function getBuddyRoom(buddy:Object):void{ if (buddy.id != -1){ send({t:"sys"}, "roomB", -1, (("<b id='" + buddy.id) + "' />")); }; } private function checkBuddyDuplicates(buddyName:String):Boolean{ var res:Boolean; var buddy:Object; res = false; for each (buddy in buddyList) { if (buddy.name == buddyName){ res = true; break; }; }; return (res); } private function getXmlRoomVariable(rVar:Object):String{ var vName:String; var vValue:*; var vPrivate:String; var vPersistent:String; var t:String; var type:String; vName = rVar.name.toString(); vValue = rVar.val; vPrivate = (rVar.priv) ? "1" : "0"; vPersistent = (rVar.persistent) ? "1" : "0"; t = null; type = typeof(vValue); if (type == "boolean"){ t = "b"; vValue = (vValue) ? "1" : "0"; } else { if (type == "number"){ t = "n"; } else { if (type == "string"){ t = "s"; } else { if ((((((vValue == null)) && ((type == "object")))) || ((type == "undefined")))){ t = "x"; vValue = ""; }; }; }; }; if (t != null){ return ((((((((((("<var n='" + vName) + "' t='") + t) + "' pr='") + vPrivate) + "' pe='") + vPersistent) + "'><![CDATA[") + vValue) + "]]></var>")); }; return (""); } public function getBuddyById(id:int):Object{ var buddy:Object; for each (buddy in buddyList) { if (buddy.id == id){ return (buddy); }; }; return (null); } private function handleSocketDisconnection(evt:Event):void{ var sfse:SFSEvent; initialize(); sfse = new SFSEvent(SFSEvent.onConnectionLost, {}); dispatchEvent(sfse); } private function handleSocketError(evt:SecurityErrorEvent):void{ debugMessage(("Socket Error: " + evt.text)); } private function xmlReceived(msg:String):void{ var xmlData:XML; var handlerId:String; var action:String; var roomId:int; var handler:IMessageHandler; xmlData = new XML(msg); handlerId = xmlData.@t; action = xmlData.body.@action; roomId = xmlData.body.@r; handler = messageHandlers[handlerId]; if (handler != null){ handler.handleMessage(xmlData, XTMSG_TYPE_XML); }; } public function switchSpectator(roomId:int=-1):void{ if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; send({t:"sys"}, "swSpec", roomId, ""); } public function roundTripBench():void{ this.benchStartTime = getTimer(); send({t:"sys"}, "roundTrip", activeRoomId, ""); } private function handleHttpError(evt:HttpEvent):void{ trace("HttpError"); if (!connected){ dispatchConnectionError(); }; } public function joinRoom(newRoom, pword:String="", isSpectator:Boolean=false, dontLeave:Boolean=false, oldRoom:int=-1):void{ var newRoomId:int; var isSpec:int; var r:Room; var header:Object; var leaveCurrRoom:String; var roomToLeave:int; var message:String; if (!checkRoomList()){ return; }; newRoomId = -1; isSpec = (isSpectator) ? 1 : 0; if (!this.changingRoom){ if (typeof(newRoom) == "number"){ newRoomId = int(newRoom); } else { if (typeof(newRoom) == "string"){ for each (r in roomList) { if (r.getName() == newRoom){ newRoomId = r.getId(); break; }; }; }; }; if (newRoomId != -1){ header = {t:"sys"}; leaveCurrRoom = (dontLeave) ? "0" : "1"; roomToLeave = ((oldRoom > -1)) ? oldRoom : activeRoomId; if (activeRoomId == -1){ leaveCurrRoom = "0"; roomToLeave = -1; }; message = (((((((((("<room id='" + newRoomId) + "' pwd='") + pword) + "' spec='") + isSpec) + "' leave='") + leaveCurrRoom) + "' old='") + roomToLeave) + "' />"); send(header, "joinRoom", activeRoomId, message); changingRoom = true; } else { debugMessage("SmartFoxError: requested room to join does not exist!"); }; }; } public function get httpPollSpeed():int{ return (this._httpPollSpeed); } public function uploadFile(fileRef:FileReference, id:int=-1, nick:String="", port:int=-1):void{ if (id == -1){ id = this.myUserId; }; if (nick == ""){ nick = this.myUserName; }; if (port == -1){ port = this.httpPort; }; fileRef.upload(new URLRequest(((((((("http://" + this.ipAddress) + ":") + port) + "/default/Upload.py?id=") + id) + "&nick=") + nick))); debugMessage(((((((("[UPLOAD]: http://" + this.ipAddress) + ":") + port) + "/default/Upload.py?id=") + id) + "&nick=") + nick)); } public function switchPlayer(roomId:int=-1):void{ if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; send({t:"sys"}, "swPl", roomId, ""); } private function makeXmlHeader(headerObj:Object):String{ var xmlData:String; var item:String; xmlData = "<msg"; for (item in headerObj) { xmlData = (xmlData + ((((" " + item) + "='") + headerObj[item]) + "'")); }; xmlData = (xmlData + ">"); return (xmlData); } private function debugMessage(message:String):void{ var evt:SFSEvent; if (this.debug){ trace(message); evt = new SFSEvent(SFSEvent.onDebugMessage, {message:message}); dispatchEvent(evt); }; } public function loadBuddyList():void{ send({t:"sys"}, "loadB", -1, ""); } private function errorTrace(msg:String):void{ trace("\n****************************************************************"); trace("Warning:"); trace(msg); trace("****************************************************************"); } public function leaveRoom(roomId:int):void{ var header:Object; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; header = {t:"sys"}; xmlMsg = (("<rm id='" + roomId) + "' />"); send(header, "leaveRoom", roomId, xmlMsg); } private function checkRoomList():Boolean{ var success:Boolean; success = true; if ((((roomList == null)) || ((roomList.length == 0)))){ success = false; errorTrace("The room list is empty!\nThe client API cannot function properly until the room list is populated.\nPlease consult the documentation for more infos."); }; return (success); } public function getRoomByName(roomName:String):Room{ var room:Room; var r:Room; if (!checkRoomList()){ return (null); }; room = null; for each (r in roomList) { if (r.getName() == roomName){ room = r; break; }; }; return (room); } private function handleHttpClose(evt:HttpEvent):void{ var sfse:SFSEvent; initialize(); sfse = new SFSEvent(SFSEvent.onConnectionLost, {}); dispatchEvent(sfse); } public function set httpPollSpeed(sp:int):void{ if ((((sp >= 0)) && ((sp <= 10000)))){ this._httpPollSpeed = sp; }; } public function getRoom(roomId:int):Room{ if (!checkRoomList()){ return (null); }; return (roomList[roomId]); } private function checkJoin():Boolean{ var success:Boolean; success = true; if (activeRoomId < 0){ success = false; errorTrace("You haven't joined any rooms!\nIn order to interact with the server you should join at least one room.\nPlease consult the documentation for more infos."); }; return (success); } public function setBuddyVariables(varList:Array):void{ var header:Object; var xmlMsg:String; var vName:String; var vValue:String; header = {t:"sys"}; xmlMsg = "<vars>"; for (vName in varList) { vValue = varList[vName]; if (myBuddyVars[vName] != vValue){ myBuddyVars[vName] = vValue; xmlMsg = (xmlMsg + (((("<var n='" + vName) + "'><![CDATA[") + vValue) + "]]></var>")); }; }; xmlMsg = (xmlMsg + "</vars>"); this.send(header, "setBvars", -1, xmlMsg); } private function tryBlueBoxConnection(evt:ErrorEvent):void{ var __ip:String; var __port:int; if (!connected){ if (smartConnect){ debugMessage("Socket connection failed. Trying BlueBox"); isHttpMode = true; __ip = ((blueBoxIpAddress)!=null) ? blueBoxIpAddress : ipAddress; __port = ((blueBoxPort)!=0) ? blueBoxPort : httpPort; httpConnection.connect(__ip, __port); } else { dispatchConnectionError(); }; } else { dispatchEvent(evt); debugMessage(("[WARN] Connection error: " + evt.text)); }; } public function getAllRooms():Array{ return (roomList); } private function strReceived(msg:String):void{ var params:Array; var handlerId:String; var handler:IMessageHandler; params = msg.substr(1, (msg.length - 2)).split(MSG_STR); handlerId = params[0]; handler = messageHandlers[handlerId]; if (handler != null){ handler.handleMessage(params.splice(1, (params.length - 1)), XTMSG_TYPE_STR); }; } private function handleSecurityError(evt:SecurityErrorEvent):void{ tryBlueBoxConnection(evt); } private function handleIOError(evt:IOErrorEvent):void{ tryBlueBoxConnection(evt); } private function dispatchConnectionError():void{ var params:Object; var sfse:SFSEvent; params = {}; params.success = false; params.error = "I/O Error"; sfse = new SFSEvent(SFSEvent.onConnection, params); dispatchEvent(sfse); } public function login(zone:String, name:String, pass:String):void{ var header:Object; var message:String; header = {t:"sys"}; message = (((((("<login z='" + zone) + "'><nick><![CDATA[") + name) + "]]></nick><pword><![CDATA[") + pass) + "]]></pword></login>"); send(header, "login", 0, message); } public function __logout():void{ initialize(true); } private function setupMessageHandlers():void{ sysHandler = new SysHandler(this); extHandler = new ExtHandler(this); addMessageHandler("sys", sysHandler); addMessageHandler("xt", extHandler); } private function addMessageHandler(key:String, handler:IMessageHandler):void{ if (this.messageHandlers[key] == null){ this.messageHandlers[key] = handler; } else { debugMessage((("Warning, message handler called: " + key) + " already exist!")); }; } public function autoJoin():void{ var header:Object; if (!checkRoomList()){ return; }; header = {t:"sys"}; this.send(header, "autoJoin", (this.activeRoomId) ? this.activeRoomId : -1, ""); } private function onConfigLoadSuccess(evt:Event):void{ var loader:URLLoader; var xmlDoc:XML; var sfsEvt:SFSEvent; loader = (evt.target as URLLoader); xmlDoc = new XML(loader.data); this.ipAddress = (this.blueBoxIpAddress = xmlDoc.ip); this.port = int(xmlDoc.port); this.defaultZone = xmlDoc.zone; if (xmlDoc.blueBoxIpAddress != undefined){ this.blueBoxIpAddress = xmlDoc.blueBoxIpAddress; }; if (xmlDoc.blueBoxPort != undefined){ this.blueBoxPort = xmlDoc.blueBoxPort; }; if (xmlDoc.debug != undefined){ this.debug = ((xmlDoc.debug.toLowerCase() == "true")) ? true : false; }; if (xmlDoc.smartConnect != undefined){ this.smartConnect = ((xmlDoc.smartConnect.toLowerCase() == "true")) ? true : false; }; if (xmlDoc.httpPort != undefined){ this.httpPort = int(xmlDoc.httpPort); }; if (xmlDoc.httpPollSpeed != undefined){ this.httpPollSpeed = int(xmlDoc.httpPollSpeed); }; if (xmlDoc.rawProtocolSeparator != undefined){ rawProtocolSeparator = xmlDoc.rawProtocolSeparator; }; if (autoConnectOnConfigSuccess){ this.connect(ipAddress, port); } else { sfsEvt = new SFSEvent(SFSEvent.onConfigLoadSuccess, {}); dispatchEvent(sfsEvt); }; } private function handleSocketConnection(e:Event):void{ var header:Object; var xmlMsg:String; header = {t:"sys"}; xmlMsg = (((("<ver v='" + this.majVersion.toString()) + this.minVersion.toString()) + this.subVersion.toString()) + "' />"); send(header, "verChk", 0, xmlMsg); } private function handleSocketData(evt:Event):void{ var bytes:int; var b:int; bytes = socketConnection.bytesAvailable; while (--bytes >= 0) { b = socketConnection.readByte(); if (b != 0){ byteBuffer.writeByte(b); } else { handleMessage(byteBuffer.toString()); byteBuffer = new ByteArray(); }; }; } public function logout():void{ var header:Object; header = {t:"sys"}; send(header, "logout", -1, ""); } public function getRoomList():void{ var header:Object; header = {t:"sys"}; send(header, "getRmList", activeRoomId, ""); } public function getConnectionMode():String{ var mode:String; mode = CONNECTION_MODE_DISCONNECTED; if (this.isConnected){ if (this.isHttpMode){ mode = CONNECTION_MODE_HTTP; } else { mode = CONNECTION_MODE_SOCKET; }; }; return (mode); } public function disconnect():void{ connected = false; if (!isHttpMode){ socketConnection.close(); } else { httpConnection.close(); }; sysHandler.dispatchDisconnection(); } public function sendJson(jsMessage:String):void{ debugMessage((("[Sending - JSON]: " + jsMessage) + "\n")); if (isHttpMode){ httpConnection.send(jsMessage); } else { writeToSocket(jsMessage); }; } private function send(header:Object, action:String, fromRoom:Number, message:String):void{ var xmlMsg:String; xmlMsg = makeXmlHeader(header); xmlMsg = (xmlMsg + ((((((("<body action='" + action) + "' r='") + fromRoom) + "'>") + message) + "</body>") + closeHeader())); debugMessage((("[Sending]: " + xmlMsg) + "\n")); if (isHttpMode){ httpConnection.send(xmlMsg); } else { writeToSocket(xmlMsg); }; } public function setRoomVariables(varList:Array, roomId:int=-1, setOwnership:Boolean=true):void{ var header:Object; var xmlMsg:String; var rv:Object; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; header = {t:"sys"}; if (setOwnership){ xmlMsg = "<vars>"; } else { xmlMsg = "<vars so='0'>"; }; for each (rv in varList) { xmlMsg = (xmlMsg + getXmlRoomVariable(rv)); }; xmlMsg = (xmlMsg + "</vars>"); send(header, "setRvars", roomId, xmlMsg); } public function addBuddy(buddyName:String):void{ var xmlMsg:String; if (((!((buddyName == myUserName))) && (!(checkBuddyDuplicates(buddyName))))){ xmlMsg = (("<n>" + buddyName) + "</n>"); send({t:"sys"}, "addB", -1, xmlMsg); }; } public function clearRoomList():void{ this.roomList = []; } public function getVersion():String{ return (((((this.majVersion + ".") + this.minVersion) + ".") + this.subVersion)); } public function setUserVariables(varObj:Object, roomId:int=-1):void{ var header:Object; var currRoom:Room; var user:User; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; header = {t:"sys"}; currRoom = getActiveRoom(); user = currRoom.getUser(myUserId); user.setVariables(varObj); xmlMsg = getXmlUserVariable(varObj); send(header, "setUvars", roomId, xmlMsg); } public function sendPrivateMessage(message:String, recipientId:int, roomId:int=-1):void{ var header:Object; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; header = {t:"sys"}; xmlMsg = (((("<txt rcp='" + recipientId) + "'><![CDATA[") + Entities.encodeEntities(message)) + "]]></txt>"); send(header, "prvMsg", roomId, xmlMsg); } public function getBuddyByName(buddyName:String):Object{ var buddy:Object; for each (buddy in buddyList) { if (buddy.name == buddyName){ return (buddy); }; }; return (null); } private function closeHeader():String{ return ("</msg>"); } public function sendPublicMessage(message:String, roomId:int=-1):void{ var header:Object; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; header = {t:"sys"}; xmlMsg = (("<txt><![CDATA[" + Entities.encodeEntities(message)) + "]]></txt>"); send(header, "pubMsg", roomId, xmlMsg); } public function clearBuddyList():void{ var params:Object; var evt:SFSEvent; buddyList = []; send({t:"sys"}, "clearB", -1, ""); params = {}; params.list = buddyList; evt = new SFSEvent(SFSEvent.onBuddyList, params); dispatchEvent(evt); } public function sendString(strMessage:String):void{ debugMessage((("[Sending - STR]: " + strMessage) + "\n")); if (isHttpMode){ httpConnection.send(strMessage); } else { writeToSocket(strMessage); }; } public function removeBuddy(buddyName:String):void{ var found:Boolean; var buddy:Object; var it:String; var header:Object; var xmlMsg:String; var params:Object; var evt:SFSEvent; found = false; for (it in buddyList) { buddy = buddyList[it]; if (buddy.name == buddyName){ delete buddyList[it]; found = true; break; }; }; if (found){ header = {t:"sys"}; xmlMsg = (("<n>" + buddyName) + "</n>"); send(header, "remB", -1, xmlMsg); params = {}; params.list = buddyList; evt = new SFSEvent(SFSEvent.onBuddyList, params); dispatchEvent(evt); }; } public function setBuddyBlockStatus(buddyName:String, status:Boolean):void{ var b:Object; var xmlMsg:String; var params:Object; var evt:SFSEvent; b = getBuddyByName(buddyName); if (b != null){ if (b.isBlocked != status){ b.isBlocked = status; xmlMsg = (((("<n x='" + (status) ? "1" : "0") + "'>") + buddyName) + "</n>"); send({t:"sys"}, "setB", -1, xmlMsg); params = {}; params.buddy = b; evt = new SFSEvent(SFSEvent.onBuddyListUpdate, params); dispatchEvent(evt); }; }; } private function handleMessage(msg:String):void{ var type:String; if (msg != "ok"){ debugMessage((((("[ RECEIVED ]: " + msg) + ", (len: ") + msg.length) + ")")); }; type = msg.charAt(0); if (type == MSG_XML){ xmlReceived(msg); } else { if (type == MSG_STR){ strReceived(msg); } else { if (type == MSG_JSON){ jsonReceived(msg); }; }; }; } public function getUploadPath():String{ return ((((("http://" + this.ipAddress) + ":") + this.httpPort) + "/default/uploads/")); } private function handleHttpData(evt:HttpEvent):void{ var data:String; var messages:Array; var message:String; var i:int; data = (evt.params.data as String); messages = data.split("\n"); if (messages[0] != ""){ i = 0; while (i < (messages.length - 1)) { message = messages[i]; if (message.length > 0){ handleMessage(message); }; i++; }; if (this._httpPollSpeed > 0){ setTimeout(this.handleDelayedPoll, this._httpPollSpeed); } else { handleDelayedPoll(); }; }; } public function loadConfig(configFile:String="config.xml", autoConnect:Boolean=true):void{ var loader:URLLoader; this.autoConnectOnConfigSuccess = autoConnect; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onConfigLoadSuccess); loader.addEventListener(IOErrorEvent.IO_ERROR, onConfigLoadFailure); loader.load(new URLRequest(configFile)); } public function set rawProtocolSeparator(value:String):void{ if (((!((value == "<"))) && (!((value == "{"))))){ MSG_STR = value; }; } private function writeToSocket(msg:String):void{ var byteBuff:ByteArray; byteBuff = new ByteArray(); byteBuff.writeMultiByte(msg, "utf-8"); byteBuff.writeByte(0); socketConnection.writeBytes(byteBuff); socketConnection.flush(); } private function initialize(isLogOut:Boolean=false):void{ this.changingRoom = false; this.amIModerator = false; this.playerId = -1; this.activeRoomId = -1; this.myUserId = -1; this.myUserName = ""; this.roomList = []; this.buddyList = []; this.myBuddyVars = []; if (!isLogOut){ this.connected = false; this.isHttpMode = false; }; } public function sendXtMessage(xtName:String, cmd:String, paramObj, type:String="xml", roomId:int=-1):void{ var header:Object; var xtReq:Object; var xmlmsg:String; var hdr:String; var i:Number; var body:Object; var obj:Object; var msg:String; if (!checkRoomList()){ return; }; if (roomId == -1){ roomId = activeRoomId; }; if (type == XTMSG_TYPE_XML){ header = {t:"xt"}; xtReq = {name:xtName, cmd:cmd, param:paramObj}; xmlmsg = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(xtReq)) + "]]>"); send(header, "xtReq", roomId, xmlmsg); } else { if (type == XTMSG_TYPE_STR){ hdr = ((((((((MSG_STR + "xt") + MSG_STR) + xtName) + MSG_STR) + cmd) + MSG_STR) + roomId) + MSG_STR); i = 0; while (i < paramObj.length) { hdr = (hdr + (paramObj[i].toString() + MSG_STR)); i++; }; sendString(hdr); } else { if (type == XTMSG_TYPE_JSON){ body = {}; body.x = xtName; body.c = cmd; body.r = roomId; body.p = paramObj; obj = {}; obj.t = "xt"; obj.b = body; msg = JSON.encode(obj); sendJson(msg); }; }; }; } public function sendObjectToGroup(obj:Object, userList:Array, roomId:int=-1):void{ var strList:String; var i:String; var header:Object; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; strList = ""; for (i in userList) { if (!isNaN(userList[i])){ strList = (strList + (userList[i] + ",")); }; }; strList = strList.substr(0, (strList.length - 1)); obj._$$_ = strList; header = {t:"sys"}; xmlMsg = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(obj)) + "]]>"); send(header, "asObjG", roomId, xmlMsg); } public function get rawProtocolSeparator():String{ return (MSG_STR); } public function getRandomKey():void{ send({t:"sys"}, "rndK", -1, ""); } public function sendObject(obj:Object, roomId:int=-1):void{ var xmlData:String; var header:Object; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; xmlData = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(obj)) + "]]>"); header = {t:"sys"}; send(header, "asObj", roomId, xmlData); } public function connect(ipAdr:String, port:int=9339):void{ if (!connected){ initialize(); this.ipAddress = ipAdr; this.port = port; socketConnection.connect(ipAdr, port); } else { debugMessage("*** ALREADY CONNECTED ***"); }; } public function sendBuddyPermissionResponse(allowBuddy:Boolean, targetBuddy:String):void{ var header:Object; var xmlMsg:String; header = {t:"sys"}; xmlMsg = (((("<n res='" + (allowBuddy) ? "g" : "r") + "'>") + targetBuddy) + "</n>"); send(header, "bPrm", -1, xmlMsg); } public function sendModeratorMessage(message:String, type:String, id:int=-1):void{ var header:Object; var xmlMsg:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; header = {t:"sys"}; xmlMsg = (((((("<txt t='" + type) + "' id='") + id) + "'><![CDATA[") + Entities.encodeEntities(message)) + "]]></txt>"); send(header, "modMsg", activeRoomId, xmlMsg); } public function getBenchStartTime():int{ return (this.benchStartTime); } public function createRoom(roomObj:Object, roomId:int=-1):void{ var header:Object; var isGame:String; var exitCurrentRoom:String; var maxUsers:String; var maxSpectators:String; var joinAsSpectator:String; var xmlMsg:String; var i:String; if (((!(checkRoomList())) || (!(checkJoin())))){ return; }; if (roomId == -1){ roomId = activeRoomId; }; header = {t:"sys"}; isGame = (roomObj.isGame) ? "1" : "0"; exitCurrentRoom = "1"; maxUsers = ((roomObj.maxUsers == null)) ? "0" : String(roomObj.maxUsers); maxSpectators = ((roomObj.maxSpectators == null)) ? "0" : String(roomObj.maxSpectators); joinAsSpectator = (roomObj.joinAsSpectator) ? "1" : "0"; if (((roomObj.isGame) && (!((roomObj.exitCurrentRoom == null))))){ exitCurrentRoom = (roomObj.exitCurrentRoom) ? "1" : "0"; }; xmlMsg = (((((((("<room tmp='1' gam='" + isGame) + "' spec='") + maxSpectators) + "' exit='") + exitCurrentRoom) + "' jas='") + joinAsSpectator) + "'>"); xmlMsg = (xmlMsg + (("<name><![CDATA[" + ((roomObj.name == null)) ? "" : roomObj.name) + "]]></name>")); xmlMsg = (xmlMsg + (("<pwd><![CDATA[" + ((roomObj.password == null)) ? "" : roomObj.password) + "]]></pwd>")); xmlMsg = (xmlMsg + (("<max>" + maxUsers) + "</max>")); if (roomObj.uCount != null){ xmlMsg = (xmlMsg + (("<uCnt>" + (roomObj.uCount) ? "1" : "0") + "</uCnt>")); }; if (roomObj.extension != null){ xmlMsg = (xmlMsg + ("<xt n='" + roomObj.extension.name)); xmlMsg = (xmlMsg + (("' s='" + roomObj.extension.script) + "' />")); }; if (roomObj.vars == null){ xmlMsg = (xmlMsg + "<vars></vars>"); } else { xmlMsg = (xmlMsg + "<vars>"); for (i in roomObj.vars) { xmlMsg = (xmlMsg + getXmlRoomVariable(roomObj.vars[i])); }; xmlMsg = (xmlMsg + "</vars>"); }; xmlMsg = (xmlMsg + "</room>"); send(header, "createRoom", roomId, xmlMsg); } private function handleDelayedPoll():void{ httpConnection.send(HTTP_POLL_REQUEST); } private function handleHttpConnect(evt:HttpEvent):void{ this.handleSocketConnection(null); connected = true; httpConnection.send(HTTP_POLL_REQUEST); } public function set isConnected(b:Boolean):void{ this.connected = b; } public function get isConnected():Boolean{ return (this.connected); } } }//package it.gotoandplay.smartfoxserver
Section 108
//_base (_base) package { import flash.display.*; public dynamic class _base extends MovieClip { public var bc:MovieClip; public var innerFrame:baseFrame; public var bgh:MovieClip; public function _base(){ super(); } } }//package
Section 109
//_e (_e) package { import flash.events.*; public class _e extends Event { public var obj:Object; public var sender:String; public static const PING:String = "ping"; public static const READY:String = "ready"; public static const RECEIVE_STATS:String = "receiveStats"; public static const RECEIVE_GLOBAL_VARS:String = "receiveGdlobalVars"; public static const REGISTER_SUCCESS:String = "registerSuccess"; public static const REGISTER_ERROR:String = "registerError"; public static const RECEIVE_ROOM_VARS:String = "receiveRoomVars"; public static const RECEIVE_ROOMS:String = "receiveRooms"; public static const USER_JOIN_ROOM:String = "userJoinRoom"; public static const RECEIVE_USER_VARS:String = "receiveUserVars"; public static const ERROR:String = "error"; public static const RECEIVE_IV:String = "receiveIV"; public static const RECEIVE_SOCKET_ID:String = "receiveSocketID"; public static const RECEIVE_USERS:String = "receiveUsers"; public static const LOGIN_SUCCESS:String = "loginSuccess"; public static const RECEIVE_MESSAGE:String = "receiveMessage"; public static const USER_LEAVE_ROOM:String = "userLeaveRoom"; public static const LOGIN_ERROR:String = "loginError"; public static const RECEIVE_VERSION:String = "receiveVersion"; public function _e(type:String, obj:Object=null, sender:String=null, bubbles:Boolean=false, cancelable:Boolean=true){ super(type, bubbles, cancelable); this.obj = obj; this.sender = sender; } } }//package
Section 110
//_ex (_ex) package { import flash.display.*; public dynamic class _ex extends MovieClip { public function _ex(){ super(); } } }//package
Section 111
//_groundDisplay (_groundDisplay) package { import flash.display.*; public dynamic class _groundDisplay extends MovieClip { public function _groundDisplay(){ super(); } } }//package
Section 112
//_hitter (_hitter) package { import flash.display.*; public dynamic class _hitter extends MovieClip { public function _hitter(){ super(); } } }//package
Section 113
//_icon (_icon) package { import flash.display.*; public dynamic class _icon extends MovieClip { public function _icon(){ super(); } } }//package
Section 114
//_t (_t) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class _t { private static const C:Number = 33.3333333333333; public static var theFactor:Number = 1; private static var s:Stage; private static var last:uint = getTimer(); public function _t(){ super(); } public static function stopTicker():void{ s.removeEventListener(Event.ENTER_FRAME, tick); } public static function init(ST:Stage):void{ s = ST; } public static function startTicker():void{ last = getTimer(); s.addEventListener(Event.ENTER_FRAME, tick); } public static function tick(evt:Event):void{ var now:uint; var factor:Number; now = getTimer(); factor = ((now - last) / C); theFactor = factor; if (theFactor > 2){ theFactor = 2; }; last = now; } } }//package
Section 115
//_trail (_trail) package { import flash.display.*; public dynamic class _trail extends MovieClip { public function _trail(){ super(); } } }//package
Section 116
//_unit (_unit) package { import flash.display.*; public dynamic class _unit extends MovieClip { public function _unit(){ super(); } } }//package
Section 117
//_weapon (_weapon) package { import flash.display.*; public dynamic class _weapon extends MovieClip { public function _weapon(){ super(); } } }//package
Section 118
//adjuster (adjuster) package { import flash.display.*; public dynamic class adjuster extends MovieClip { public function adjuster(){ super(); } } }//package
Section 119
//AdLoader (AdLoader) package { import flash.display.*; import flash.net.*; import flash.system.*; public class AdLoader { private static var cpmstarLoader:Loader; public function AdLoader(){ super(); } public static function LoadAd(poolid:int, subpoolid:int):DisplayObject{ var cpmstarViewSWFUrl:String; Security.allowDomain("server.cpmstar.com"); cpmstarViewSWFUrl = "http://server.cpmstar.com/adviewas3.swf"; cpmstarLoader = new Loader(); cpmstarLoader.load(new URLRequest(((((cpmstarViewSWFUrl + "?poolid=") + poolid) + "&subpoolid=") + subpoolid))); return (cpmstarLoader); } } }//package
Section 120
//aiBody (aiBody) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class aiBody extends Sprite { public var buildList:Array; private var be:uint; public var p:playerKon; private var stratTimer:Timer; private var canDoBuild:Array; public var AiStrategy:aiStrategy; private var timerObject:Timer; private var orderDone:Boolean;// = false public function aiBody(player:playerKon, be:uint){ orderDone = false; super(); p = player; this.be = be; buildList = new Array(); if (gameKon.theRoot.singlePlayerMode){ startAiFunctions(); } else { timerObject = new Timer(6000); timerObject.addEventListener(TimerEvent.TIMER, beginAiMover, false, 0, true); timerObject.start(); }; } private function executeStrategy(event:TimerEvent):void{ buildList = new Array(); AiStrategy.work(p.eteam.all, buildList, p); } public function killAi():void{ if (timerObject != null){ timerObject.removeEventListener(TimerEvent.TIMER, executeAi); }; if (stratTimer != null){ stratTimer.removeEventListener(TimerEvent.TIMER, executeStrategy); }; AiStrategy = null; } function checkResource(a:uint){ if ((((((optionData.LIST[a][0] <= p.r_m)) && ((optionData.LIST[a][1] <= p.r_p)))) && ((optionData.LIST[a][2] <= p.r_e)))){ if (optionData.LIST[a][4] <= p.r_i){ return (true); }; }; } function checkAval(a:uint){ var i:*; var j:*; canDoBuild = new Array(); for (i in p.builds) { for (j in p.builds[i].INFO.options) { if (p.builds[i].INFO.options[j] == a){ canDoBuild.push(p.builds[i]); }; }; }; } function checkBuild(b:baseBuilding){ if (b.working == false){ return (true); }; } function executeAi(event:TimerEvent):void{ var i2:*; var notDone:*; var j2:*; var oB:Object; var vars:Object; var sen:Boolean; for (i2 in buildList) { if (buildList[i2] == null){ } else { if (buildList[i2].onHold == false){ orderDone = false; while (orderDone == false) { checkAval(buildList[i2].array[0]); if (canDoBuild.length > 0){ orderDone = true; notDone = true; for (j2 in canDoBuild) { if (notDone){ if (checkBuild(canDoBuild[j2])){ notDone = false; if (checkResource(buildList[i2].array[0])){ oB = optionData.LIST[buildList[i2].array[0]]; canDoBuild[j2].aiCheck = buildList[i2]; if (((!((oB.buildOrder == null))) && (!(gameKon.theRoot.singlePlayerMode)))){ vars = new Object(); vars.auto = false; vars.cancelOrder = false; vars.pos = p.POS; vars.buildId = buildList[i2].array[0]; vars.building = canDoBuild[j2].baseId; sen = true; } else { vars = new Object(); sen = false; }; if (buildList[i2].tech){ canDoBuild[j2].techSend = AiStrategy; }; gameKon.doOption(oB, false, false, p, canDoBuild[j2], false, false, vars, sen); buildList[i2].onHold = true; if (buildList[i2].array.length == 1){ buildList[i2].limit = (buildList[i2].limit - 1); if (buildList[i2].limit == 0){ buildList.splice(i2, 1); }; } else { buildList[i2].array.splice(0, 1); }; }; }; }; }; } else { buildList.splice(i2, 1); orderDone = true; }; }; }; }; }; } private function startAiFunctions():void{ var vars2:Object; timerObject = new Timer(2000); timerObject.addEventListener(TimerEvent.TIMER, executeAi, false, 0, true); timerObject.start(); stratTimer = new Timer(5000); stratTimer.addEventListener(TimerEvent.TIMER, executeStrategy, false, 0, true); stratTimer.start(); AiStrategy = new aiStrategy(buildList, this.be, p); p.setIncome(aiTactic.income[AiStrategy.randomNum]); if (!gameKon.theRoot.singlePlayerMode){ vars2 = new Object(); vars2.race = aiTactic.income[AiStrategy.randomNum]; vars2.pos = p.POS; mpKon.sendOff(vars2, false, "updateIncome"); }; } function findPath(A:aiOrder, spliceNum:uint){ var a:*; var goSearch:Boolean; var i:*; var j:*; var k:*; a = A.array[0]; goSearch = true; for (i in buildingData.LIST) { if (goSearch){ for (j in buildingData.LIST[i].options) { if (buildingData.LIST[i].options[j] == a){ if (i == 0){ goSearch = false; } else { for (k in optionData.LIST) { if (optionData.LIST[k].buildOrder == i){ goSearch = false; A.array.reverse(); A.array.push(k); A.array.reverse(); }; }; }; }; }; }; }; } private function beginAiMover(e:TimerEvent):void{ timerObject.removeEventListener(TimerEvent.TIMER, beginAiMover); startAiFunctions(); } } }//package
Section 121
//aiOrder (aiOrder) package { public class aiOrder { public var array:Array; public var limit:uint; public var tech:Boolean; public var onHold:Boolean; public function aiOrder(w:uint, l:uint, t:Boolean=false):void{ super(); limit = l; tech = t; onHold = false; array = new Array(); array.push(w); } } }//package
Section 122
//aiStrategy (aiStrategy) package { public class aiStrategy { private var aiNames:Array; public var grouping:Boolean;// = false public var currentStrategy:uint;// = 0 public var techLevel:uint;// = 0 private var resOrder:uint; public var aiSet:Array; private var onPlayerTeam:Boolean; public var mindSetO:uint;// = 0 public var roundCount:uint;// = 0 public var mindSetR:uint;// = 0 public var forceTech:uint; public var techingNow:Boolean;// = false private var c_greet:Array; private var aiNames2:Array; public var aiGroup:Array; private var techCostPass:Boolean; public var techLevelOffense:uint;// = 0 private var useTech:uint; public var mustTech:Boolean; public var randomNum:uint; private var c_age:Array; private var c_make:Array; private var lastPush:uint; private var varName:String; private var pushGap:uint;// = 9 private var c_name:Array; private var resOrder2:uint; private var c_like:Array; private var c_do:Array; public function aiStrategy(a:Array, be:uint, p:playerKon):void{ var okPass:Boolean; mindSetR = 0; mindSetO = 0; aiSet = new Array(); currentStrategy = 0; techLevel = 0; techLevelOffense = 0; roundCount = 0; grouping = false; aiGroup = new Array(); pushGap = 9; techingNow = false; aiNames = ["Traditional", "Gladiator", "TechnoRush", "Spider", "Nuker", "SniperRush", "Joker", "FirePower", "HeavyMetal"]; aiNames2 = ["Gen. Glastondale", "Gen. Mortfang", "Cpt. Keeley", "Cpt. Beatrix", "Cpt. Bjorn", "Cpt. Jetzul", "Cpt. Haley", "FirePower", "HeavyMetal"]; c_greet = ["Good evening. General Glastondale reporting in for duty.", "This is General Mortfang reporting in.", "Hello! Captain Keeley at your service.", "Hello, this is Captain Beatrix.", "Cpt. Bjorn", "Alright, thumbs up... Let's do this!", "Captain Haley reporting in!", "FirePower", "HeavyMetal"]; c_name = ["I am Sir Miles Glastondale.", "The name's Lux Mortfang.", "Keeley Baker", "I'm Erika Beatrix.", "Cpt. Bjorn", "I am Shinkai Jetzul.", "Haley Cornwall", "FirePower", "HeavyMetal"]; c_age = ["62... or 63... I don't remember.", "43.", "26.", "34.", "Cpt. Bjorn", "32.", "24.", "FirePower", "HeavyMetal"]; c_like = ["Retirement... One day...", "Winning. What did you expect?", "Please Commander, focus on the battle!", "What kind of question is that? Are you a spy?", "Cpt. Bjorn", "Collecting people's ears, obviously...", "Is that really relevant now, Commander?", "FirePower", "HeavyMetal"]; c_make = ["I'm going for an Arsenal and a Hospital.", "I will try to tech towards Gladiators.", "Uh... I don't really know, I'm kind of new at this...", "Going for Sataka technology with meditec back-up.", "Cpt. Bjorn", "Opening with sniper rush. Then I'll tech to Arsenal.", "I'll try and have both an Arsenal and a MechTerm so we'll be ready for anything.", "FirePower", "HeavyMetal"]; c_do = ["It's a free world, Commander. But I wouldn't mind having you back me up Phantoms and Spiders.", "Support my forces with infantry and meditecs.", "I don't think I'm qualified to answer that.", "Tanks, marines, Snipers! It all depends on what they are doing.", "Cpt. Bjorn", "You'll need to take care of enemy air units. Sakata Mk-II, marines, and Black Queens are good for that.", "I need you to keep them away while I tech.", "FirePower", "HeavyMetal"]; super(); aiSet.push(new Array(1, 0)); aiSet.push(new Array(2, 1)); aiSet.push(new Array(3, 1)); aiSet.push(new Array(4, 1)); aiSet.push(new Array(0, 2)); aiSet.push(new Array(1, 0)); aiSet.push(new Array(5, 3)); mustTech = false; techingNow = false; techLevel = 0; techLevelOffense = 0; aiGroup = new Array(); grouping = false; if (be == 99){ okPass = false; while (!(okPass)) { randomNum = Math.floor((Math.random() * (aiSet.length - 0.1))); if (((((!((randomNum == 4))) && (!((randomNum == 2))))) && (!((randomNum == 6))))){ okPass = true; }; }; } else { randomNum = be; }; p.playerName = aiNames2[randomNum]; if (gameKon.playerNow.team == p.team){ chatBody.pCol = p.cityColor; onPlayerTeam = true; if (!gameKon.theRoot.missionOn){ chatBody.pName = p.playerName; chatBody.C_GREET = c_greet[randomNum]; chatBody.C_NAME = c_name[randomNum]; chatBody.C_AGE = c_age[randomNum]; chatBody.C_LIKE = c_like[randomNum]; chatBody.C_MAKE = c_make[randomNum]; chatBody.C_DO = c_do[randomNum]; if (!gameKon.theRoot.tutLev){ if (chatBody.chatOn){ chatBody.delaySay(chatBody.C_GREET, 5); }; }; }; } else { onPlayerTeam = false; }; currentStrategy = 0; mindSetR = aiSet[randomNum][0]; mindSetO = aiSet[randomNum][1]; roundCount = 0; lastPush = 0; techCostPass = false; trace(("AI Activated: " + aiNames[randomNum])); varName = aiNames[randomNum]; forceTech = aiTactic.techTreeArray[randomNum].length; switch (randomNum){ case 2: a.push(new aiOrder(7, 100)); break; case 3: break; case 5: a.push(new aiOrder(2, 1)); a.push(new aiOrder(44, 100)); break; default: a.push(new aiOrder(5, 100)); break; }; } public function work(u:Array, a:Array, p:playerKon):void{ var numOn:uint; var takeNum:uint; var stillChoose:Boolean; var moveObject:Object; var goMove:uint; var anal:uint; var danger:uint; var takeAction:uint; var uj:*; trace((aiNames[randomNum] + "-------------------------------")); roundCount++; techCostPass = false; mustTech = false; useTech = techLevel; if ((((techLevel < forceTech)) && (!(techingNow)))){ if (checkTechCost(p, aiTactic.techTreeArray[randomNum][techLevel], aiTactic.techTimeArray[randomNum][techLevel])){ trace("Must Tech!"); if (techCostPass){ a.push(new aiOrder(aiTactic.techTreeArray[randomNum][techLevel], 1, true)); techingNow = true; mustTech = false; }; }; } else { if (techLevel == aiTactic.techTreeArray[randomNum].length){ useTech = (techLevel - 1); }; }; if (mustTech){ anal = 12; if (onPlayerTeam){ chatBody.sendEv("A_SAVE"); }; } else { numOn = 0; stillChoose = true; while (stillChoose) { moveObject = analyzeEnemy(p)[numOn]; takeAction = moveObject.ID; goMove = aiTactic.counterArray[takeAction][randomNum][useTech]; if (goMove > 0){ stillChoose = false; takeNum = numOn; } else { if (numOn < 11){ numOn++; } else { stillChoose = false; takeNum = numOn; }; }; }; anal = analyzeEnemy(p)[takeNum].ID; danger = analyzeEnemy(p)[takeNum].DANGER; if (danger < 9){ if (((p.r_m + p.r_p) + p.r_e) > (25 * techLevel)){ if (onPlayerTeam){ chatBody.sendEv("A_RESUME"); }; anal = 0; } else { if (onPlayerTeam){ chatBody.sendEv("A_SAVE2"); }; anal = 12; }; }; }; if ((roundCount - lastPush) >= pushGap){ if (((onPlayerTeam) && (!(grouping)))){ chatBody.sendEv("A_GROUP"); }; grouping = true; }; if (grouping){ if (analyzeGroup() > 12){ if (onPlayerTeam){ chatBody.sendEv("A_ATTACK"); }; grouping = false; lastPush = roundCount; for (uj in aiGroup) { aiGroup[uj].aiPosition = false; aiGroup[uj].makeOption(0); }; aiGroup = new Array(); }; }; if (anal != 12){ aiTactic.work(a, goMove); trace(goMove); }; if ((((anal == 0)) && ((p.r_i >= 100)))){ aiTactic.work(a, 60); aiTactic.work(a, 61); aiTactic.work(a, 62); }; if (onPlayerTeam){ trace("BOO_2"); switch (anal){ case 1: chatBody.sendEv("A_C1"); break; case 2: chatBody.sendEv("A_C2"); break; case 3: chatBody.sendEv("A_C3"); break; case 4: chatBody.sendEv("A_C4"); break; case 5: chatBody.sendEv("A_C5"); break; case 6: chatBody.sendEv("A_C6"); break; case 7: chatBody.sendEv("A_C7"); break; case 8: chatBody.sendEv("A_C8"); break; case 9: chatBody.sendEv("A_C9"); break; case 11: chatBody.sendEv("A_C11"); break; default: break; }; }; resOrder = 0; resOrder2 = 0; switch (randomNum){ case 0: getOrder(0, 58); getOrder2(5, 56); getOrder(5, 59); break; case 1: getOrder(0, 58); getOrder2(3, 57); break; case 2: getOrder(0, 58); getOrder2(6, 57); break; case 3: getOrder(0, 58); getOrder2(6, 57); getOrder(6, 59); break; case 4: getOrder(0, 58); break; case 5: getOrder(0, 58); getOrder(5, 59); getOrder2(4, 56); break; case 6: getOrder(0, 58); getOrder2(5, 56); break; }; aiTactic.work(a, resOrder2); aiTactic.work(a, resOrder); } private function analyzeGroup(aType:Boolean=false):uint{ var potency:uint; var i:*; potency = 0; for (i in aiGroup) { switch (aiGroup[i].ID){ case 0: potency = (potency + 0); break; case 1: potency = (potency + 1); break; case 2: potency = (potency + 3); break; case 3: potency = (potency + 2); break; case 4: potency = (potency + 1); break; case 5: potency = (potency + 1); break; case 6: potency = (potency + 3); break; case 7: potency = (potency + 4); break; case 8: potency = (potency + 4); break; case 9: potency = (potency + 2); break; case 10: potency = (potency + 4); break; case 11: potency = (potency + 20); break; case 12: potency = (potency + 3); break; case 13: potency = (potency + 20); break; default: break; }; }; return (potency); } private function getOrder(t:uint, r:uint){ if (techLevel >= t){ resOrder = r; }; } private function getOrder2(t:uint, r:uint){ if (techLevel >= t){ resOrder2 = r; }; } private function checkTechCost(p:playerKon, b:uint, t:uint){ var o:Object; o = optionData.LIST[b]; if ((((((p.r_m >= o[0])) && ((p.r_p >= o[1])))) && ((p.r_e >= o[2])))){ techCostPass = true; return (true); }; if ((t * 2) <= roundCount){ mustTech = true; return (true); }; } private function analyzeEnemy(p:playerKon){ var dangerArray:*; var i:*; dangerArray = new Array(); i = 0; while (i < 12) { dangerArray.push({DANGER:0, ID:i}); i++; }; for (i in p.eteam.all) { switch (p.eteam.all[i].ID){ case 0: dangerArray[0].DANGER = (dangerArray[0].DANGER + 1); break; case 1: dangerArray[1].DANGER = (dangerArray[1].DANGER + 1); dangerArray[3].DANGER = (dangerArray[3].DANGER + 1); break; case 2: dangerArray[2].DANGER = (dangerArray[2].DANGER + 10); dangerArray[3].DANGER = (dangerArray[3].DANGER + 10); dangerArray[11].DANGER = (dangerArray[11].DANGER + 8); dangerArray[10].DANGER = (dangerArray[10].DANGER + 3); break; case 3: dangerArray[7].DANGER = (dangerArray[7].DANGER + 6); dangerArray[10].DANGER = (dangerArray[10].DANGER + 3); break; case 4: dangerArray[1].DANGER = (dangerArray[1].DANGER + 2); dangerArray[10].DANGER = (dangerArray[10].DANGER + 1); break; case 5: dangerArray[10].DANGER = (dangerArray[10].DANGER + 1); break; case 6: dangerArray[5].DANGER = (dangerArray[5].DANGER + 11); dangerArray[11].DANGER = (dangerArray[11].DANGER + 11); dangerArray[10].DANGER = (dangerArray[10].DANGER + 8); break; case 7: dangerArray[7].DANGER = (dangerArray[7].DANGER + 16); break; case 8: dangerArray[2].DANGER = (dangerArray[2].DANGER + 16); dangerArray[3].DANGER = (dangerArray[3].DANGER + 16); dangerArray[10].DANGER = (dangerArray[10].DANGER + 16); dangerArray[11].DANGER = (dangerArray[11].DANGER + 16); break; case 9: dangerArray[6].DANGER = (dangerArray[6].DANGER + 16); dangerArray[10].DANGER = (dangerArray[10].DANGER + 8); break; case 10: dangerArray[5].DANGER = (dangerArray[5].DANGER + 12); dangerArray[10].DANGER = (dangerArray[10].DANGER + 15); break; case 11: dangerArray[8].DANGER = (dangerArray[8].DANGER + 50); dangerArray[10].DANGER = (dangerArray[10].DANGER + 20); break; case 12: dangerArray[4].DANGER = (dangerArray[4].DANGER + 8); dangerArray[10].DANGER = (dangerArray[10].DANGER + 3); break; case 13: dangerArray[9].DANGER = (dangerArray[9].DANGER + 50); dangerArray[10].DANGER = (dangerArray[10].DANGER + 8); break; case 14: dangerArray[2].DANGER = (dangerArray[2].DANGER + 20); dangerArray[3].DANGER = (dangerArray[3].DANGER + 20); dangerArray[10].DANGER = (dangerArray[10].DANGER + 20); dangerArray[11].DANGER = (dangerArray[11].DANGER + 20); break; case 15: dangerArray[7].DANGER = (dangerArray[7].DANGER + 20); break; case 16: dangerArray[1].DANGER = (dangerArray[1].DANGER + 6); dangerArray[3].DANGER = (dangerArray[3].DANGER + 6); break; default: break; }; }; for (i in p.team.all) { switch (p.team.all[i].ID){ case 0: break; case 1: dangerArray[6].DANGER = (dangerArray[6].DANGER - 1); dangerArray[7].DANGER = (dangerArray[7].DANGER - 2); break; case 2: dangerArray[1].DANGER = (dangerArray[1].DANGER - 6); break; case 3: dangerArray[2].DANGER = (dangerArray[2].DANGER - 5); dangerArray[7].DANGER = (dangerArray[7].DANGER - 6); break; case 4: dangerArray[1].DANGER = (dangerArray[1].DANGER - 2); dangerArray[5].DANGER = (dangerArray[5].DANGER - 1); break; case 5: break; case 6: dangerArray[7].DANGER = (dangerArray[7].DANGER - 7); dangerArray[4].DANGER = (dangerArray[4].DANGER - 4); break; case 7: dangerArray[1].DANGER = (dangerArray[1].DANGER - 10); dangerArray[4].DANGER = (dangerArray[4].DANGER - 20); break; case 8: dangerArray[1].DANGER = (dangerArray[1].DANGER - 16); break; case 9: dangerArray[7].DANGER = (dangerArray[7].DANGER - 16); break; case 10: dangerArray[11].DANGER = (dangerArray[11].DANGER - 8); break; case 11: break; case 12: break; case 13: break; default: break; }; }; dangerArray.sortOn(["DANGER", "ID"], (Array.DESCENDING | Array.NUMERIC)); return (dangerArray); } } }//package
Section 123
//aiTactic (aiTactic) package { public class aiTactic { public static var techTreeArray:Array = new Array(); public static var techTimeArray:Array = new Array(); public static var income:Array = new Array(2, 0, 0, 0, 2, 1, 2); public static var counterArray:Array = new Array(); public function aiTactic(){ super(); } public static function init():void{ counterArray[0] = new Array(); counterArray[0].push(new Array(0, 37, 25, 25, 46, 40, 40)); counterArray[0].push(new Array(0, 26, 26, 29, 31, 31, 31)); counterArray[0].push(new Array(0, 26, 26, 43, 47, 47, 47, 48)); counterArray[0].push(new Array(0, 0, 26, 26, 27, 27, 30, 30)); counterArray[0].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[0].push(new Array(0, 33, 33, 33, 49, 50, 50)); counterArray[0].push(new Array(0, 37, 37, 28, 45, 39, 50, 51, 51)); counterArray[1] = new Array(); counterArray[1].push(new Array(0, 25, 25, 25, 25, 25, 25)); counterArray[1].push(new Array(0, 26, 26, 26, 27, 27, 27)); counterArray[1].push(new Array(0, 35, 35, 35, 35, 27, 27, 27)); counterArray[1].push(new Array(0, 0, 26, 26, 26, 27, 27, 27)); counterArray[1].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[1].push(new Array(0, 25, 25, 25, 25, 25, 25)); counterArray[1].push(new Array(0, 25, 25, 25, 25, 25, 25, 25, 25)); counterArray[2] = new Array(); counterArray[2].push(new Array(0, 25, 25, 25, 25, 25, 32)); counterArray[2].push(new Array(0, 28, 28, 29, 29, 29, 29)); counterArray[2].push(new Array(0, 28, 29, 29, 29, 29, 29, 29)); counterArray[2].push(new Array(0, 0, 28, 28, 29, 29, 29, 29)); counterArray[2].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[2].push(new Array(0, 0, 0, 0, 0, 0, 32)); counterArray[2].push(new Array(0, 0, 0, 28, 28, 28, 29, 29, 29)); counterArray[3] = new Array(); counterArray[3].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[3].push(new Array(0, 0, 0, 29, 29, 29, 29)); counterArray[3].push(new Array(0, 0, 29, 29, 29, 29, 29, 29)); counterArray[3].push(new Array(0, 0, 0, 0, 29, 29, 29, 29)); counterArray[3].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[3].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[3].push(new Array(0, 0, 0, 0, 0, 0, 29, 29, 29)); counterArray[4] = new Array(); counterArray[4].push(new Array(0, 0, 0, 0, 33, 32, 32)); counterArray[4].push(new Array(0, 0, 0, 29, 31, 31, 31)); counterArray[4].push(new Array(0, 35, 35, 35, 35, 29, 29, 29)); counterArray[4].push(new Array(0, 0, 0, 0, 29, 29, 29, 29)); counterArray[4].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[4].push(new Array(0, 33, 33, 33, 33, 32, 32)); counterArray[4].push(new Array(0, 0, 0, 0, 33, 33, 29, 29, 29)); counterArray[5] = new Array(); counterArray[5].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[5].push(new Array(0, 35, 35, 35, 35, 35, 35)); counterArray[5].push(new Array(0, 35, 35, 35, 35, 35, 35, 35)); counterArray[5].push(new Array(0, 0, 35, 35, 35, 35, 36, 36)); counterArray[5].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[5].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[5].push(new Array(0, 0, 0, 35, 35, 35, 35, 35, 35)); counterArray[6] = new Array(); counterArray[6].push(new Array(0, 25, 25, 25, 45, 40, 40)); counterArray[6].push(new Array(0, 26, 26, 26, 35, 35, 35)); counterArray[6].push(new Array(0, 26, 26, 26, 26, 35, 35, 35)); counterArray[6].push(new Array(0, 0, 26, 26, 26, 27, 30, 30)); counterArray[6].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[6].push(new Array(0, 33, 33, 33, 45, 39, 39)); counterArray[6].push(new Array(0, 25, 25, 33, 45, 39, 39, 39, 39)); counterArray[7] = new Array(); counterArray[7].push(new Array(0, 37, 37, 37, 45, 40, 32)); counterArray[7].push(new Array(0, 28, 28, 44, 38, 38, 38)); counterArray[7].push(new Array(0, 28, 28, 44, 44, 44, 44, 38)); counterArray[7].push(new Array(0, 0, 28, 28, 44, 44, 38, 38)); counterArray[7].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[7].push(new Array(0, 37, 37, 37, 45, 39, 39)); counterArray[7].push(new Array(0, 37, 37, 28, 28, 28, 38, 38, 38)); counterArray[8] = new Array(); counterArray[8].push(new Array(0, 37, 37, 37, 45, 40, 32)); counterArray[8].push(new Array(0, 26, 26, 26, 35, 35, 35)); counterArray[8].push(new Array(0, 28, 28, 44, 44, 44, 44, 38)); counterArray[8].push(new Array(0, 0, 26, 26, 44, 44, 38, 38)); counterArray[8].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[8].push(new Array(0, 37, 37, 37, 45, 39, 39)); counterArray[8].push(new Array(0, 37, 37, 28, 28, 28, 38, 38, 38)); counterArray[9] = new Array(); counterArray[9].push(new Array(0, 0, 0, 33, 33, 33, 32)); counterArray[9].push(new Array(0, 0, 0, 29, 29, 29, 29)); counterArray[9].push(new Array(0, 0, 29, 29, 29, 29, 29, 29)); counterArray[9].push(new Array(0, 0, 0, 0, 29, 29, 29, 29)); counterArray[9].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[9].push(new Array(0, 33, 33, 33, 33, 33, 32)); counterArray[9].push(new Array(0, 0, 0, 0, 33, 32, 32, 32, 32)); counterArray[10] = new Array(); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0, 0)); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0, 0)); counterArray[10].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[10].push(new Array(0, 0, 0, 0, 0, 0, 0, 0, 0)); counterArray[11] = new Array(); counterArray[11].push(new Array(0, 0, 0, 33, 33, 42, 42)); counterArray[11].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[11].push(new Array(0, 0, 0, 0, 27, 27, 27, 27)); counterArray[11].push(new Array(0, 0, 0, 0, 0, 30, 30, 30)); counterArray[11].push(new Array(0, 0, 34, 34, 34, 34, 34)); counterArray[11].push(new Array(0, 33, 33, 33, 33, 42, 42)); counterArray[11].push(new Array(0, 0, 0, 0, 33, 41, 41, 41, 41)); counterArray[12] = new Array(); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0)); counterArray[12].push(new Array(0, 0, 0, 0, 0, 0, 0, 0, 0)); } public static function work(a:Array, id:uint):void{ switch (id){ case 0: break; case 1: a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); break; case 2: a.push(new aiOrder(26, 4)); a.push(new aiOrder(25, 4)); break; case 3: a.push(new aiOrder(27, 4)); a.push(new aiOrder(27, 4)); break; case 4: a.push(new aiOrder(27, 4)); a.push(new aiOrder(25, 4)); break; case 5: a.push(new aiOrder(26, 4)); a.push(new aiOrder(31, 4)); break; case 6: a.push(new aiOrder(26, 4)); a.push(new aiOrder(32, 4)); break; case 7: a.push(new aiOrder(27, 4)); break; case 8: a.push(new aiOrder(31, 4)); break; case 9: a.push(new aiOrder(28, 4)); a.push(new aiOrder(27, 4)); break; case 10: a.push(new aiOrder(28, 4)); a.push(new aiOrder(25, 4)); a.push(new aiOrder(30, 4)); break; case 11: a.push(new aiOrder(29, 4)); a.push(new aiOrder(27, 4)); break; case 12: a.push(new aiOrder(29, 4)); a.push(new aiOrder(29, 4)); break; case 13: a.push(new aiOrder(29, 4)); a.push(new aiOrder(25, 4)); break; case 14: a.push(new aiOrder(28, 4)); a.push(new aiOrder(32, 4)); break; case 15: a.push(new aiOrder(26, 4)); break; case 16: a.push(new aiOrder(31, 4)); a.push(new aiOrder(27, 4)); break; case 17: a.push(new aiOrder(26, 4)); a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); break; case 18: a.push(new aiOrder(28, 4)); a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); break; case 19: a.push(new aiOrder(28, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(27, 4)); break; case 20: a.push(new aiOrder(28, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(29, 4)); break; case 21: a.push(new aiOrder(44, 7)); break; case 22: a.push(new aiOrder(25, 4)); break; case 23: a.push(new aiOrder(27, 4)); a.push(new aiOrder(32, 4)); break; case 24: a.push(new aiOrder(29, 4)); a.push(new aiOrder(32, 4)); break; case 25: a.push(new aiOrder(14, 2)); a.push(new aiOrder(13, 2)); a.push(new aiOrder(44, 10)); break; case 26: a.push(new aiOrder(5, 10)); a.push(new aiOrder(15, 2)); a.push(new aiOrder(35, 10)); trace("Go Make Units!"); break; case 27: a.push(new aiOrder(21, 2)); a.push(new aiOrder(16, 3)); a.push(new aiOrder(35, 10)); break; case 28: a.push(new aiOrder(15, 2)); a.push(new aiOrder(35, 10)); break; case 29: a.push(new aiOrder(19, 1)); a.push(new aiOrder(16, 3)); a.push(new aiOrder(35, 10)); break; case 30: a.push(new aiOrder(21, 2)); a.push(new aiOrder(17, 3)); a.push(new aiOrder(35, 10)); break; case 31: a.push(new aiOrder(43, 1)); a.push(new aiOrder(35, 10)); break; case 32: a.push(new aiOrder(23, 1)); a.push(new aiOrder(18, 2)); a.push(new aiOrder(44, 10)); break; case 33: a.push(new aiOrder(24, 5)); a.push(new aiOrder(44, 10)); break; case 34: a.push(new aiOrder(37, 1)); break; case 35: a.push(new aiOrder(16, 12)); a.push(new aiOrder(35, 10)); break; case 36: a.push(new aiOrder(16, 12)); a.push(new aiOrder(17, 3)); a.push(new aiOrder(35, 10)); break; case 37: a.push(new aiOrder(13, 15)); a.push(new aiOrder(44, 10)); break; case 38: a.push(new aiOrder(20, 1)); a.push(new aiOrder(35, 10)); break; case 39: a.push(new aiOrder(18, 2)); a.push(new aiOrder(13, 3)); a.push(new aiOrder(44, 10)); break; case 40: a.push(new aiOrder(18, 3)); a.push(new aiOrder(17, 6)); a.push(new aiOrder(44, 10)); break; case 41: a.push(new aiOrder(22, 2)); a.push(new aiOrder(44, 10)); break; case 42: a.push(new aiOrder(22, 3)); a.push(new aiOrder(17, 6)); a.push(new aiOrder(44, 10)); break; case 43: a.push(new aiOrder(15, 10)); a.push(new aiOrder(35, 10)); break; case 44: a.push(new aiOrder(39, 1)); a.push(new aiOrder(35, 10)); break; case 45: a.push(new aiOrder(38, 2)); a.push(new aiOrder(13, 3)); a.push(new aiOrder(44, 10)); break; case 46: a.push(new aiOrder(38, 3)); a.push(new aiOrder(17, 6)); a.push(new aiOrder(44, 10)); break; case 47: a.push(new aiOrder(16, 2)); a.push(new aiOrder(15, 1)); a.push(new aiOrder(19, 1)); a.push(new aiOrder(35, 10)); break; case 48: a.push(new aiOrder(39, 1)); a.push(new aiOrder(21, 2)); a.push(new aiOrder(35, 10)); break; case 49: a.push(new aiOrder(18, 2)); a.push(new aiOrder(13, 3)); a.push(new aiOrder(24, 2)); a.push(new aiOrder(44, 10)); break; case 50: a.push(new aiOrder(24, 2)); a.push(new aiOrder(18, 1)); a.push(new aiOrder(22, 1)); a.push(new aiOrder(44, 10)); break; case 51: a.push(new aiOrder(39, 1)); a.push(new aiOrder(21, 2)); a.push(new aiOrder(35, 10)); a.push(new aiOrder(24, 2)); a.push(new aiOrder(18, 1)); a.push(new aiOrder(22, 1)); a.push(new aiOrder(44, 10)); break; case 52: a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); a.push(new aiOrder(32, 4)); break; case 53: a.push(new aiOrder(26, 4)); a.push(new aiOrder(29, 4)); a.push(new aiOrder(32, 4)); break; case 54: a.push(new aiOrder(35, 10)); break; case 55: a.push(new aiOrder(31, 4)); break; case 56: a.push(new aiOrder(30, 4)); break; case 57: a.push(new aiOrder(23, 4)); break; case 58: a.push(new aiOrder(25, 4)); a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); a.push(new aiOrder(27, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(29, 4)); a.push(new aiOrder(29, 4)); a.push(new aiOrder(44, 3)); a.push(new aiOrder(35, 3)); a.push(new aiOrder(31, 4)); break; case 59: a.push(new aiOrder(17, 6)); a.push(new aiOrder(25, 4)); a.push(new aiOrder(26, 4)); a.push(new aiOrder(27, 4)); a.push(new aiOrder(27, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(28, 4)); a.push(new aiOrder(29, 4)); a.push(new aiOrder(29, 4)); a.push(new aiOrder(44, 3)); a.push(new aiOrder(35, 3)); a.push(new aiOrder(31, 4)); case 60: a.push(new aiOrder(46, 1)); break; case 61: a.push(new aiOrder(47, 1)); break; case 62: a.push(new aiOrder(48, 1)); break; default: break; }; } techTreeArray[0] = new Array(2, 4, 9, 6, 33, 11); techTreeArray[1] = new Array(3, 6, 10, 34, 7, 12); techTreeArray[2] = new Array(3, 7, 10, 6, 12, 12, 34); techTreeArray[3] = new Array(6, 3, 7, 10, 4, 34, 12); techTreeArray[4] = new Array(7, 8, 5, 11, 11, 12); techTreeArray[5] = new Array(9, 4, 5, 6, 33, 11); techTreeArray[6] = new Array(2, 6, 3, 9, 33, 10, 34, 11); techTreeArray[7] = new Array(2, 2, 2, 2); techTreeArray[8] = new Array(2, 2, 2, 2); techTimeArray[0] = new Array(1, 8, 16, 36, 40, 48); techTimeArray[1] = new Array(1, 7, 10, 25, 31, 32); techTimeArray[2] = new Array(1, 3, 18, 32, 40, 48, 52); techTimeArray[3] = new Array(0, 1, 8, 18, 22, 26, 36); techTimeArray[4] = new Array(1, 3, 6, 16, 30, 35); techTimeArray[5] = new Array(1, 14, 18, 22, 38, 50); techTimeArray[6] = new Array(1, 2, 16, 23, 32, 38, 45, 55); techTimeArray[7] = new Array(2, 2, 2, 2); techTreeArray[8] = new Array(2, 2, 2, 2); } }//package
Section 124
//Ambient1 (Ambient1) package { import flash.media.*; public dynamic class Ambient1 extends Sound { public function Ambient1(){ super(); } } }//package
Section 125
//Ambient2 (Ambient2) package { import flash.media.*; public dynamic class Ambient2 extends Sound { public function Ambient2(){ super(); } } }//package
Section 126
//Ambient3 (Ambient3) package { import flash.media.*; public dynamic class Ambient3 extends Sound { public function Ambient3(){ super(); } } }//package
Section 127
//baseBuilding (baseBuilding) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class baseBuilding extends Sprite { public var working:Boolean;// = false private var bitmap:Bitmap;// = null public var techSend:aiStrategy; public var maxTime:Number;// = 0 public var currentBuilding:uint;// = 0 public var option:Object; public var ownBy:playerKon; private var aniTimeLimit:uint;// = 0 public var unitLink:unitBody;// = null private var hitter:_hitter; public var percentTime:Number;// = 0 public var INFO:Array; private var buildPhase:uint;// = 0 public var aiCheck:aiOrder; private var aniTime:uint;// = 0 public var baseId:uint; private var base:_base; public var buildSide:Boolean;// = false private var currentTime:Number;// = 0 private var buildCommand:uint;// = 0 public var autoBuild:Boolean;// = false public function baseBuilding():void{ unitLink = null; hitter = new _hitter(); base = new _base(); bitmap = null; baseId = new uint(); currentBuilding = 0; maxTime = 0; autoBuild = false; currentTime = 0; aniTime = 0; percentTime = 0; INFO = new Array(); working = false; buildSide = false; buildCommand = 0; aniTimeLimit = 0; buildPhase = 0; super(); techSend = null; addChild(base); addChildAt(hitter, 0); INFO = buildingData.LIST[currentBuilding]; render(INFO[1]); gameKon.theStage.addEventListener(MouseEvent.MOUSE_DOWN, selectBase); gameKon.displayArray.push(this); gameKon.buildingArray.push(this); aiCheck = null; } public function destroy():void{ option = optionData.LIST[0]; INFO = buildingData.LIST[0]; buildSwap(); } public function killEvents():void{ gameKon.theStage.removeEventListener(MouseEvent.MOUSE_DOWN, selectBase); removeEventListener(Event.ENTER_FRAME, animateBuilding); removeEventListener(Event.ENTER_FRAME, work); } private function work(event:Event):void{ var usePos:uint; var copyArray:Array; var scan_b:*; var missileTarget:String; var vars:Object; var q:*; var d:*; var ovrR:Boolean; var canCancelGo2:Boolean; var ir4:*; var canCancelGo:Boolean; var i:*; if (currentTime < maxTime){ currentTime = (currentTime + _t.theFactor); percentTime = (Math.round(currentTime) / maxTime); if (gameKon.selectedBuilding == this){ gameKon.theRoot.buildBar.width = (percentTime * 150.5); }; } else { if (((gameKon.theRoot.gameRunning) && (((((gameKon.theRoot.singlePlayerMode) || ((ownBy == gameKon.playerNow)))) || (((ownBy.aiOn) && (gameKon.theRoot.roomMaster))))))){ if (aiCheck != null){ aiCheck.onHold = false; if (techSend != null){ techSend.techLevel++; techSend.techingNow = false; techSend = null; }; usePos = ownBy.POS; } else { usePos = gameKon.theRoot.clientPlayer[1]; }; if (option.buildMissile != null){ copyArray = new Array(); for (scan_b in ownBy.eteam.all) { copyArray.push({ID:ownBy.eteam.all[scan_b].unitId, xPOS:ownBy.eteam.all[scan_b].x}); }; if (ownBy.eteam == unitKon.Team2){ copyArray.sortOn("xPOS", Array.NUMERIC); } else { copyArray.sortOn("xPOS", (Array.DESCENDING | Array.NUMERIC)); }; missileTarget = copyArray[0].ID; copyArray = null; if (gameKon.theRoot.singlePlayerMode){ unitKon.addMissile(missileTarget, parent.x, parent.y); } else { vars = new Object(); vars.tar = missileTarget; vars.px = parent.x; vars.py = parent.y; vars.pos = ownBy.POS; mpKon.sendOff(vars, true, "createMissile"); }; }; if (option.buildUnits != null){ for (q in option.buildUnits) { if (gameKon.theRoot.singlePlayerMode){ unitKon.addUnit(ownBy, option.buildUnits[q]); } else { vars = new Object(); vars.id = option.buildUnits[q]; vars.pos = usePos; vars.unitId = unitKon.getNewId(gameKon.playerNow); vars.rand1 = Math.random(); vars.rand2 = Math.random(); vars.rand3 = Math.random(); vars.rand3 = Math.random(); vars.optionD = option.id; mpKon.sendOff(vars, true, "createUnit"); }; }; }; }; if (option.buildOrder != null){ if ((((ownBy == gameKon.playerNow)) && (gameKon.theRoot.singlePlayerMode))){ if (chatBody.needBuild == option.buildOrder){ chatBody.gotBuild = true; chatBody.sendEv("B_RIGHT"); } else { chatBody.sendEv("B_WRONG"); }; }; buildSwap(); INFO = buildingData.LIST[option.buildOrder]; currentBuilding = option.buildOrder; }; ownBy.addRes(0, option.buildResource[0]); ownBy.addRes(1, option.buildResource[1]); ownBy.addRes(2, option.buildResource[2]); ownBy.addRes(3, option.buildResource[3]); if (option.buildStock != null){ ownBy.stock[option.buildStock] = (ownBy.stock[option.buildStock] + 1); }; if (option.buildTech != null){ ownBy.tech[option.buildTech] = (ownBy.tech[option.buildTech] + 1); }; if (option.buildOrder != null){ if ((((INFO.autoBuild == null)) || (ownBy.aiOn))){ autoBuild = false; trace("Building Auto-Build Switched off!"); } else { d = optionData.LIST[INFO.options[INFO.autoBuild]]; autoBuild = true; option = d; maxTime = (d[3] * 30); }; }; working = false; removeEventListener(Event.ENTER_FRAME, work); if (gameKon.selectedBuilding == this){ displayKon.updateOptions(); }; if (gameKon.selectedBuilding == this){ gameKon.theRoot.buildBar.visible = false; } else { base.innerFrame.gotoAndStop("basic"); }; trace(((((" ********** BUILDING WORK TERMINATED from PLAYER " + ownBy.POS) + ". Building: ") + INFO[0]) + ".")); if (autoBuild){ ovrR = false; if (((((!(gameKon.theRoot.singlePlayerMode)) && (!((ownBy == gameKon.playerNow))))) && (!(ownBy.CPUMODE)))){ canCancelGo2 = false; for (ir4 in option.buildResource) { if (option.buildResource[ir4] > 0){ canCancelGo2 = true; }; }; if (canCancelGo2){ ovrR = true; }; }; gameKon.doOption(option, false, true, ownBy, this, ovrR, true); trace("Auto-Building Now"); } else { if (!gameKon.theRoot.singlePlayerMode){ trace("STEP 1"); if (((!((ownBy == gameKon.playerNow))) && (!(ownBy.CPUMODE)))){ trace("STEP 2"); canCancelGo = false; for (i in option.buildResource) { if (option.buildResource[i] > 0){ canCancelGo = true; }; }; if (canCancelGo){ trace((((("Restarted from Cancel from PLAYER " + ownBy.POS) + ". Building: ") + INFO[0]) + ".")); autoBuild = true; gameKon.doOption(option, false, false, ownBy, this, false, true); } else { trace((((("Work Cancel from PLAYER " + ownBy.POS) + ". Building: ") + INFO[0]) + ". Reason to cancel: Finished and No Autobuild.")); }; }; }; }; }; } private function buildSwap():void{ buildPhase = 0; if (currentBuilding != 0){ if (option.buildOrder == 0){ buildCommand = 0; } else { buildCommand = 2; }; aniTimeLimit = 18; base.bgh.gotoAndPlay("Down"); soundKon.playSound(3, 2, buildSide); } else { soundKon.playSound(3, 1, buildSide); buildCommand = 1; aniTimeLimit = 15; base.bc.play(); }; aniTime = 0; addEventListener(Event.ENTER_FRAME, animateBuilding, false, 0, true); } public function fixColor(col:String):void{ var addColor:Object; var colorRim:*; addColor = (getDefinitionByName(("baseRim_" + col)) as Class); colorRim = new (addColor); base.innerFrame.addChildAt(colorRim, 0); } public function pushBuild():void{ ownBy.builds.push(this); } private function render(r:uint):void{ if (bitmap != null){ base.bgh.bgi.removeChildAt(0); }; bitmap = new Bitmap(renderMachine.buildings[r]); base.bgh.bgi.addChild(bitmap); bitmap.scaleX = renderMachine.poly; bitmap.scaleY = renderMachine.poly; } public function unselBase():void{ if (working == false){ base.innerFrame.gotoAndStop("basic"); } else { base.innerFrame.gotoAndStop("working"); }; } public function cancelWork(reas:String="Not Given."):void{ var canCancelGo:Boolean; var i:*; if (((((gameKon.theRoot.singlePlayerMode) || ((ownBy == gameKon.playerNow)))) || (ownBy.CPUMODE))){ cancelWork2(); } else { canCancelGo = true; for (i in option.buildResource) { if (option.buildResource[i] > 0){ canCancelGo = false; }; }; if (canCancelGo){ trace(((((("Work Cancel from PLAYER " + ownBy.POS) + ". Building: ") + INFO[0]) + ". Reason to cancel: ") + reas)); cancelWork2(); }; }; } public function beginWork():void{ currentTime = 0; working = true; if (gameKon.selectedBuilding == this){ gameKon.theRoot.buildBar.visible = true; gameKon.cText2 = option.tip; if (gameKon.tippingWork){ toolTip.tip(gameKon.cText2, 1); }; displayKon.updateOptions(); } else { base.innerFrame.gotoAndStop("working"); }; addEventListener(Event.ENTER_FRAME, work, false, 0, true); } private function animateBuilding(event:Event):void{ if (buildCommand == 3){ removeEventListener(Event.ENTER_FRAME, animateBuilding); }; if (aniTime < aniTimeLimit){ aniTime++; } else { aniTime = 0; buildPhase++; if (buildCommand == 0){ base.bc.play(); buildCommand = 3; }; if (buildCommand == 1){ base.bgh.visible = true; render(INFO[1]); base.bgh.gotoAndPlay("Up"); buildCommand = 3; }; if (buildCommand == 2){ if (buildPhase == 1){ aniTimeLimit = 20; base.bc.play(); }; if (buildPhase == 2){ aniTimeLimit = 15; base.bc.play(); }; if (buildPhase == 3){ render(INFO[1]); base.bgh.gotoAndPlay("Up"); buildCommand = 3; }; }; }; } private function selectBase(event:MouseEvent):void{ if (hitter.hitTestPoint((((parent.parent.x + parent.x) + this.x) + mouseX), (((parent.parent.y + parent.y) + this.y) + mouseY), false)){ if (unitLink != null){ if (unitLink.life > 0){ displayKon.updateUnit([unitLink]); base.innerFrame.gotoAndStop("selected"); }; } else { gameKon.unselectBuilding(); gameKon.selectedBuilding = this; base.innerFrame.gotoAndStop("selected"); displayKon.updateOptions(); if (working == true){ gameKon.cText2 = option.tip; gameKon.theRoot.buildBar.width = (percentTime * 150.5); gameKon.theRoot.buildBar.visible = true; } else { gameKon.theRoot.buildBar.visible = false; }; }; }; } private function cancelWork2():void{ working = false; autoBuild = false; if (gameKon.selectedBuilding == this){ displayKon.updateOptions(); }; gameKon.theRoot.buildBar.visible = false; removeEventListener(Event.ENTER_FRAME, work); if (gameKon.selectedBuilding == this){ base.innerFrame.gotoAndStop("selected"); } else { base.innerFrame.gotoAndStop("basic"); }; } } }//package
Section 128
//baseFrame (baseFrame) package { import flash.display.*; public dynamic class baseFrame extends MovieClip { public function baseFrame(){ super(); addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 129
//baseGraphicsMain (baseGraphicsMain) package { import flash.display.*; public dynamic class baseGraphicsMain extends MovieClip { public function baseGraphicsMain(){ super(); } } }//package
Section 130
//baseKon (baseKon) package { import flash.display.*; public class baseKon extends gameKon { private var cF:Number;// = 0.625 public var BaseHolder2:Sprite; private var baseX:Array; private var baseY:Array; private var r:Number;// = 115 public var BaseHolder:Sprite; public function baseKon():void{ var i:*; var Base:baseBuilding; baseX = new Array(); baseY = new Array(); r = 115; cF = 0.625; BaseHolder = new Sprite(); BaseHolder2 = new Sprite(); super(); baseX.push(0); baseX.push((r / 2)); baseX.push((-(r) / 2)); baseX.push(r); baseX.push(0); baseX.push(-(r)); baseX.push((r / 2)); baseX.push((-(r) / 2)); baseX.push(0); baseY.push((-(r) * cF)); baseY.push(((-(r) / 2) * cF)); baseY.push(((-(r) / 2) * cF)); baseY.push(0); baseY.push(0); baseY.push(0); baseY.push(((r / 2) * cF)); baseY.push(((r / 2) * cF)); baseY.push((r * cF)); for (i in baseX) { Base = new baseBuilding(); Base.buildSide = false; BaseHolder.addChild(Base); Base.x = baseX[i]; Base.y = baseY[i]; }; for (i in baseX) { Base = new baseBuilding(); Base.buildSide = true; BaseHolder2.addChild(Base); Base.x = baseX[i]; Base.y = baseY[i]; }; } } }//package
Section 131
//baseRim_Blue (baseRim_Blue) package { import flash.display.*; public dynamic class baseRim_Blue extends MovieClip { public function baseRim_Blue(){ super(); addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 132
//baseRim_Green (baseRim_Green) package { import flash.display.*; public dynamic class baseRim_Green extends MovieClip { public function baseRim_Green(){ super(); addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 133
//baseRim_Red (baseRim_Red) package { import flash.display.*; public dynamic class baseRim_Red extends MovieClip { public function baseRim_Red(){ super(); addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 134
//baseRim_White (baseRim_White) package { import flash.display.*; public dynamic class baseRim_White extends MovieClip { public function baseRim_White(){ super(); addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 135
//baseRim_Yellow (baseRim_Yellow) package { import flash.display.*; public dynamic class baseRim_Yellow extends MovieClip { public function baseRim_Yellow(){ super(); addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 136
//Beat1 (Beat1) package { import flash.media.*; public dynamic class Beat1 extends Sound { public function Beat1(){ super(); } } }//package
Section 137
//Beat2 (Beat2) package { import flash.media.*; public dynamic class Beat2 extends Sound { public function Beat2(){ super(); } } }//package
Section 138
//Beat3 (Beat3) package { import flash.media.*; public dynamic class Beat3 extends Sound { public function Beat3(){ super(); } } }//package
Section 139
//Beat4 (Beat4) package { import flash.media.*; public dynamic class Beat4 extends Sound { public function Beat4(){ super(); } } }//package
Section 140
//Beat5 (Beat5) package { import flash.media.*; public dynamic class Beat5 extends Sound { public function Beat5(){ super(); } } }//package
Section 141
//buildingData (buildingData) package { public class buildingData { private var iN:Number;// = -1 private var build:Array; public static var LIST:Array = new Array(); public function buildingData():void{ iN = -1; build = new Array(); super(); make("Ground Zero", 0, "This is an underground construction site."); build.options = [2, 3, 4, 5, 6, 7, 8, null]; make("Main", 1, "Main"); build.options = [null, null, null, null, null, null, null, null]; make("Outpost", 2, "This is a Tier-1 unit deployment structure."); build.options = [13, 14, 44, 9, null, null, null, 0]; make("Forge", 5, "This is a Tier-1 unit deployment structure."); build.options = [16, 15, 35, 10, null, null, null, 0]; make("Hospital", 12, "This is a Tier-1 hybrid structure."); build.options = [25, 17, 45, 54, null, null, null, 0]; make("Bank", 10, "This is a Tier-1 resource structure."); build.options = [26, 11, 0, null, null, null, null, null]; build.autoBuild = 0; make("Armory", 13, "This is a Tier-2 resource structure."); build.options = [31, 30, 32, 47, null, null, null, 0]; make("Generator", 8, "This is a Tier-1 resource structure."); build.options = [27, 12, 0, null, null, null, null, null]; build.autoBuild = 0; make("Special Operations", 14, "This is a Tier-3 weapons structure."); build.options = [37, 40, null, 50, 48, 49, 52, 0]; make("Barracks", 3, "This is a Tier-2 unit deployment structure."); build.options = [13, 14, 24, 38, 44, 33, null, 0]; make("Manufactory", 6, "This is a Tier-2 unit deployment structure."); build.options = [16, 15, 19, 39, 35, 34, null, 0]; make("Arsenal", 4, "This is a Tier-3 unit deployment structure."); build.options = [13, 14, 24, 18, 22, 23, 44, 0]; make("Mechanics Terminal", 7, "This is a Tier-3 unit deployment structure."); build.options = [16, 15, 19, 20, 21, 43, 35, 0]; make("Treasury", 11, "This is a Tier-3 resource structure."); build.options = [28, 0, null, null, null, null, null, null]; build.autoBuild = 0; make("Solar Grid", 9, "This is a Tier-3 resource structure."); build.options = [29, 46, 0, null, null, null, null, null]; build.autoBuild = 0; make("War Sanctum", 15, "This is a Tier-3 resource structure."); build.options = [55, 17, 45, 51, null, null, null, 0]; } private function make(a:String, b:uint, c:String):void{ iN++; LIST[iN] = new Array(); LIST[iN].push(a, b, c); LIST[iN].options = new Array(); LIST[iN].autoBuild = null; build = LIST[iN]; } } }//package
Section 142
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { public function Button_disabledSkin(){ super(); } } }//package
Section 143
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { public function Button_downSkin(){ super(); } } }//package
Section 144
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { public function Button_emphasizedSkin(){ super(); } } }//package
Section 145
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { public function Button_overSkin(){ super(); } } }//package
Section 146
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { public function Button_selectedDisabledSkin(){ super(); } } }//package
Section 147
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { public function Button_selectedDownSkin(){ super(); } } }//package
Section 148
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { public function Button_selectedOverSkin(){ super(); } } }//package
Section 149
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { public function Button_selectedUpSkin(){ super(); } } }//package
Section 150
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { public function Button_upSkin(){ super(); } } }//package
Section 151
//CapitalistTheme (CapitalistTheme) package { import flash.media.*; public dynamic class CapitalistTheme extends Sound { public function CapitalistTheme(){ super(); } } }//package
Section 152
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { public function CellRenderer_disabledSkin(){ super(); } } }//package
Section 153
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { public function CellRenderer_downSkin(){ super(); } } }//package
Section 154
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { public function CellRenderer_overSkin(){ super(); } } }//package
Section 155
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { public function CellRenderer_selectedDisabledSkin(){ super(); } } }//package
Section 156
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { public function CellRenderer_selectedDownSkin(){ super(); } } }//package
Section 157
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { public function CellRenderer_selectedOverSkin(){ super(); } } }//package
Section 158
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { public function CellRenderer_selectedUpSkin(){ super(); } } }//package
Section 159
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { public function CellRenderer_upSkin(){ super(); } } }//package
Section 160
//chatBody (chatBody) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class chatBody extends Sprite { private static var RE_HUMAN:RegExp = /are you human|are you a person|who are you|are you real|are u human|are u a person/i; public static var C_NAME:String; private static var previousAction:uint; public static var C_LIKE:String; public static var C_DO:String; private static var RE_NAME:RegExp = /what(s| is|'s) (your|ur) (name|full name)/i; public static var pName:String; private static var RE_DO:RegExp = /(what|wut|wat) (should i|do u want me to ) (do|make|build)|what do i (make|build|do)/i; private static var RE_LIKE:RegExp = /(what|wut|wt|wat) do (you|u) like|what's your favourite thing/i; private static var RE_HOW:RegExp = /how?|how do i|how/i; private static var RE_SORRY:RegExp = /apologies|i apologize|sorry|sry|soz/i; private static var RE_SHUT:RegExp = /that's enough|shut up|shutup|shaddap|stop it|stop talking|be quiet/i; public static var gotBuild:Boolean; private static var C:Sprite; private static var RE_NO:RegExp = /no|nope|nah|naw|not really/i; private static var RE_WHAT:RegExp = /what|which/i; private static var T:Timer; private static var RE_THANKS:RegExp = /thanks|thankyou|thank you|ty/i; private static var missionMode:Boolean = false; public static var chatOn:Boolean = false; private static var previousTime:uint; private static var RE_OK:RegExp = /sure|ok|yes|alright|aight|okay|yes sir|you got it|uh huh|righto|ya|yeah|right|ye|yup|yep|fine/i; public static var C_MAKE:String; public static var needBuild:uint; private static var noMoreDanger:uint; private static var RE_MAKE:RegExp = /(what|wat|wut) (r|are|will) (you|u) (going to do|doing|do|make|making|building|build|going to make)/i; public static var addStandard:Boolean; private static var RE_HI:RegExp = /hey|hi|hello|greetings|sup|yo|heya|oi|morning|good evening| good morning|howdy|gday/i; private static var noMoreUpgrade:uint; private static var delayArray:Array; private static var RE_INSULT:RegExp = /(fuck|fuk) (you|u|off)|sod off|(you|u) (are stupid|suck|r stupid)|(you're|ur) (a moron|stupid|dumb)/i; private static var RE_WHY:RegExp = /why?|what for?/i; public static var stepCount:uint; private static var RE_YES:RegExp = /sure|alright|ok|okay|yes|ya|yes|yeah|yeh|yessir|si|oui|ja|why not|yup|yep|ye|please|fine/i; private static var RE_HELP:RegExp = /help|hlp/i; private static var RE_HUH:RegExp = /huh?|what('s| is|) (going on|happening|happened)|/i; private static var RE_AGE:RegExp = /how old (are|r) (you|u)|what(s|'s) (your|ur) age/i; public static var C_AGE:String; public static var C_GREET:String; public static var pCol:uint; private static var previousDanger:uint; public function chatBody(){ super(); } private static function tut_1(e:chatEvent):void{ delaySay("Alright! That's what I like to hear.", 2); resetAll(); chatOrder.SET(true, 10, 3); } private static function tut_2(e:chatEvent):void{ delaySay("Good work.", 2); gotBuild = false; needBuild = 9; resetAll(); chatOrder.SET(true, 7, 8); } private static function tut_4(e:chatEvent):void{ delaySay("Good! I like eager people.", 2); resetAll(); chatOrder.SET(true, 15, 14); } private static function tut_5(e:chatEvent):void{ delaySay("Alright. You know all the basics anyway, so good luck, and let's win this!", 2); resetAll(); setAction(); chatOrder.SET(false, 0, 0); } private static function tut_6(e:chatEvent):void{ delaySay("Wonderful. You learn fast.", 2); resetAll(); chatOrder.SET(true, 15, 15); } private static function tut_7(e:chatEvent):void{ delaySay("Ok for example, when you select Outpost, you can press 1 for Marines, 2 for Tanks, and 3 for Recruit. I hope it's clear now...", 2); resetAll(); chatOrder.SET(true, 15, 15); } private static function insult(e:chatEvent):void{ delaySay("How dare you say that to me!", 2); } public static function init(t:uint):void{ noMoreUpgrade = 100; noMoreDanger = 60; previousAction = 0; previousTime = 0; previousDanger = 0; T = new Timer(500); T.start(); T.addEventListener(TimerEvent.TIMER, putItUp, false, 0, true); stepCount = 0; delayArray = new Array(); gotBuild = false; addStandard = false; needBuild = 99; chatOn = true; missionMode = true; if (t == 0){ addStandard = true; missionMode = false; chatOrder.SET(false, 0, 0); } else { if (t == 1){ needBuild = 2; missionMode = false; chatOrder.SET(true, 3, 1); } else { if (t == 2){ pName = "Cpt. Jorin"; pCol = 2; needBuild = 2; C_NAME = "Hans Jorin"; chatOrder.SET(true, 3, 1, 1); } else { if (t == 3){ pName = "Cpt. Beatrix"; C_NAME = "Erika Beatrix"; chatOrder.SET(true, 3, 1, 2); } else { if (t == 4){ pName = "General Glastondale"; C_NAME = "Sir Miles Glastondale"; pCol = 2; chatOrder.SET(true, 240, 1, 3); } else { if (t == 5){ pName = "Cpt. Beatrix"; C_NAME = "Erika Beatrix"; chatOrder.SET(true, 7, 1, 4); } else { if (t == 6){ pName = "General Mortfang"; C_NAME = "Lux Mortfang"; chatOrder.SET(true, 7, 1, 5); } else { if (t == 7){ pName = "Haxel"; C_NAME = "Julio Haxel"; chatOrder.SET(true, 7, 1, 6); }; }; }; }; }; }; }; }; resetAll(addStandard); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: greetTut(); break; case 2: tut1(); break; case 3: tut2(); break; case 4: tut3(); break; case 5: tut4(); break; case 6: tut5(); break; case 7: tut6(); break; case 8: tut7(); break; case 9: tut8(); break; case 10: tut9(); break; case 11: tut10(); break; case 12: tut11(); break; case 13: tut12(); break; case 14: tut13(); break; case 15: tut14(); break; case 16: tut15(); break; case 17: tut16(); break; case 18: tut17(); break; case 19: tut18(); break; }; } private static function a_save2(e:chatEvent):void{ jimBob(5, "We're not in immediate danger, but I'm out of resources. I'm going to save up."); } private static function tut_3(e:chatEvent):void{ delaySay("No! You've made the wrong building! You don't really listen to me, do you?", 2); } private static function a_group(e:chatEvent):void{ jimBob(1, "Alright, I'm going to try form an attack group. Back me up."); addEar(chatEvent.SAY_OK, ty); } public static function dealWithA(u:uint):void{ switch (u){ case 0: break; }; } private static function tut_8(e:chatEvent):void{ delaySay("Beautiful. Now you can make Snipers. These guys have armor piercing bullets, and they can even outrange the enemy base defenses.", 2); resetAll(); chatOrder.SET(true, 25, 16); } public static function setAction():void{ addEar("A_GROUP", a_group); addEar("A_ATTACK", a_attack); addEar("A_SAVE", a_save); addEar("A_RESUME", a_resume); addEar("A_SAVE2", a_save2); addEar("A_C1", a_c1); addEar("A_C2", a_c2); addEar("A_C3", a_c3); addEar("A_C4", a_c4); addEar("A_C5", a_c5); addEar("A_C6", a_c6); addEar("A_C7", a_c7); addEar("A_C8", a_c8); addEar("A_C9", a_c9); addEar("A_C11", a_c11); addEar("C_DO", ac_do); addEar("C_NAME", ac_name); addEar("C_AGE", ac_age); addEar("C_LIKE", ac_like); addEar("C_MAKE", ac_make); addEar("C_HUMAN", ac_human); } private static function greetTut():void{ sayWhat("Hello! Welcome to the tutorial mission."); resetAll(); chatOrder.SET(true, 4, 2); } public static function sayWhat(r:String):void{ gameKon.theRoot.doChat(r, pName, pCol); } public static function dealWith(r:String):void{ if (chatOn){ if (RE_SORRY.test(r)){ sendEv(chatEvent.SAY_SORRY); }; if (RE_THANKS.test(r)){ sendEv(chatEvent.THANKS); }; if (RE_HELP.test(r)){ sendEv(chatEvent.HELP); }; if (RE_INSULT.test(r)){ sendEv(chatEvent.INSULT); }; if (RE_HOW.test(r)){ sendEv(chatEvent.SAY_HOW); }; if (RE_WHAT.test(r)){ sendEv(chatEvent.SAY_WHAT); }; if (RE_WHY.test(r)){ sendEv(chatEvent.SAY_WHY); }; if (RE_HUH.test(r)){ sendEv("HUH"); }; if (RE_SHUT.test(r)){ sendEv("SHUTUP"); }; if (RE_HUMAN.test(r)){ sendEv("C_HUMAN"); }; if (RE_NAME.test(r)){ sendEv("C_NAME"); }; if (RE_AGE.test(r)){ sendEv("C_AGE"); }; if (RE_LIKE.test(r)){ sendEv("C_LIKE"); }; if (RE_MAKE.test(r)){ sendEv("C_MAKE"); }; if (RE_DO.test(r)){ sendEv("C_DO"); }; if (RE_HI.test(r)){ sendEv(chatEvent.SAY_HI); }; if (RE_OK.test(r)){ sendEv(chatEvent.SAY_OK); }; if (RE_NO.test(r)){ sendEv(chatEvent.SAY_NO); } else { if (RE_YES.test(r)){ sendEv(chatEvent.SAY_YES); }; }; }; } public static function sendEv(r:String):void{ if (chatOn){ C.dispatchEvent(new chatEvent(r)); }; } private static function talk_2(e:chatEvent):void{ delaySay("Alright then. Let us be silent.", 2); resetAll(true); } public static function killAll():void{ if (chatOn){ T.stop(); T.removeEventListener(TimerEvent.TIMER, putItUp); T = null; C = null; chatOn = false; }; } private static function talk_1(e:chatEvent):void{ delaySay("Excellent. I will give you my battle reports.", 2); resetAll(); setAction(); } private static function ac_age(e:chatEvent):void{ delaySay(C_AGE, 4); resetAll(); setAction(); } public static function delaySay(r:String, t:uint):void{ delayArray.push({T:t, R:r}); } private static function tut10():void{ sayWhat("You can also make your orders repeat themselves by holding Shift when you press it. It will continute to build as long as you have the resources."); resetAll(); chatOrder.SET(true, 16, 12); } private static function tut11():void{ sayWhat("Also, learn to command the troops that you have on the field. Drag a box around them to select them."); resetAll(); chatOrder.SET(true, 20, 13); } private static function tut12():void{ sayWhat("That's pretty much all the basic stuff. Do you want to learn more? Yes or no?"); resetAll(); chatOrder.SET(false, 0, 0); addEar(chatEvent.SAY_YES, tut_4); addEar(chatEvent.SAY_NO, tut_5); } private static function tut13():void{ sayWhat("There are hotkeys for all the options. 1, 2, 3, 4, Q, W, E and R. They correspond to the layout of the buttons. You understand?"); resetAll(); chatOrder.SET(false, 0, 0); addEar(chatEvent.SAY_YES, tut_6); addEar(chatEvent.SAY_NO, tut_7); } private static function tut15():void{ sayWhat("Snipers are expensive though, so you need to control them well. For example, move them back while they reload to keep them away from enemy fire."); chatOrder.SET(true, 40, 17); resetAll(); } private static function greet_1(e:chatEvent):void{ delaySay("Hello.", 3); resetAll(); chatOrder.SET(true, 6, 19); } private static function tut14():void{ sayWhat("Right, moving on... You'll need to ugrade your Outpost if you want to get the best troops. Upgrade it to a Barracks."); resetAll(); addEar("B_RIGHT", tut_8); chatOrder.SET(false, 0, 0); } private static function tut2():void{ sayWhat("Ok. Basics first. Red bases are yours and Blue are mine. We don't share troops, technology, or funds."); resetAll(); chatOrder.SET(true, 13, 4); } private static function tut4():void{ sayWhat("You can see the enemy's base by scrolling the screen to the right, with either your mouse, or the arrow keys."); resetAll(); chatOrder.SET(true, 15, 6); } private static function tut5():void{ sayWhat("Right... Now I need you to start building something. Click on one of your Red platforms and build an Outpost."); resetAll(); if (!gotBuild){ chatOrder.SET(false, 0, 0); addEar("B_RIGHT", tut_2); addEar("B_WRONG", tut_3); } else { gotBuild = false; needBuild = 9; chatOrder.SET(true, 2, 7); }; } private static function tut6():void{ sayWhat("Oh, it looks like you already have one."); resetAll(); chatOrder.SET(true, 20, 8); } private static function ty(e:chatEvent):void{ delaySay("Thanks.", 2); C.removeEventListener(chatEvent.SAY_OK, ty); } private static function tut3():void{ sayWhat("But we do have the same objective. Protect our central base, and destroy all enemy forces."); resetAll(); chatOrder.SET(true, 13, 5); } private static function ac_name(e:chatEvent):void{ delaySay(C_NAME, 4); resetAll(); setAction(); } private static function tut18():void{ sayWhat("Would you like me to talk?"); chatOrder.SET(false, 0, 0); resetAll(); addEar(chatEvent.SAY_YES, talk_1); addEar(chatEvent.SAY_NO, talk_2); } private static function tut7():void{ sayWhat("Now make some Marines. They will automatically advance and attack."); resetAll(); chatOrder.SET(true, 15, 9); } private static function tut8():void{ sayWhat("If you want them to stop in front of our base instead, toggle rally mode by pressing X."); resetAll(); chatOrder.SET(true, 16, 10); } private static function tut16():void{ sayWhat("Alright, you should be getting a hang of this now."); chatOrder.SET(true, 15, 18); resetAll(); } private static function tut17():void{ sayWhat("Let 's smash them to the ground!"); chatOrder.SET(false, 0, 0); resetAll(); setAction(); } private static function ac_like(e:chatEvent):void{ delaySay(C_LIKE, 4); resetAll(); setAction(); } private static function a_save(e:chatEvent):void{ jimBob(3, "I'm saving up so I can upgrade."); } private static function tut1():void{ sayWhat("The enemy is already mobilizing, so do what I say and we'll be fine. Alright?"); resetAll(); addEar(chatEvent.SAY_OK, tut_1); chatOrder.SET(true, 25, 3); } private static function tut9():void{ sayWhat("When you need additional manpower, use the Recruit option from the Outpost."); resetAll(); chatOrder.SET(true, 16, 11); } private static function shut(e:chatEvent):void{ delaySay("Alright... Fine.", 2); resetAll(true); chatOrder.SET(false, 0, 0); } private static function good(e:chatEvent):void{ delaySay("Outstanding.", 2); resetAll(); setAction(); } private static function np(e:chatEvent):void{ delaySay("Alright don't worry. We'll think of something.", 2); resetAll(); setAction(); } private static function jimBob(a:uint, s:String):void{ if (previousAction != a){ if (a > 5){ if (previousDanger != a){ if (previousAction !== 6){ if (noMoreDanger == 0){ trace("BOO"); previousDanger = a; previousAction = 6; noMoreDanger = 80; previousTime = 5000; sayWhat(s); resetAll(); setAction(); }; }; }; } else { if (a == 3){ if (noMoreUpgrade == 0){ previousAction = a; noMoreUpgrade = 250; previousTime = 5000; sayWhat(s); resetAll(); setAction(); }; } else { previousAction = a; previousTime = 5000; sayWhat(s); resetAll(); setAction(); }; }; }; } private static function a_resume(e:chatEvent):void{ jimBob(4, "No major enemy threat detected."); } private static function a_c1(e:chatEvent):void{ jimBob(6, "They have a lot of infantry. Tanks will be good against them."); } private static function a_c3(e:chatEvent):void{ jimBob(8, "I think now is a good time to deploy a Phantom."); } private static function a_c6(e:chatEvent):void{ jimBob(11, "Let's bring down those Anti-Air Spiders."); } public static function resetAll(AS:Boolean=false):void{ C = new Sprite(); if (!missionMode){ addEar("SHUTUP", shut); } else { addEar("SHUTUP", shut2); }; addEar("INSULT", insult); if (AS){ addEar(chatEvent.SAY_HI, greet_1); }; } private static function putItUp(e:TimerEvent):void{ var i:*; stepCount++; if (noMoreDanger > 0){ noMoreDanger--; trace(("NMD " + noMoreDanger)); }; if (noMoreUpgrade > 0){ noMoreUpgrade--; }; if (previousTime > 0){ previousTime--; } else { previousAction = 0; }; for (i in delayArray) { delayArray[i].T--; if (delayArray[i].T == 0){ sayWhat(delayArray[i].R); delayArray.splice(i, 1); }; }; if (chatOrder.act){ if (stepCount >= chatOrder.timeCount){ chatOrder.go(); }; }; } private static function a_c4(e:chatEvent):void{ jimBob(9, "Sniper threat detected! Phantoms will be our best counter."); } private static function ac_human(e:chatEvent):void{ delaySay("No of course not. I thought you knew that already.", 2); resetAll(); setAction(); } private static function a_c7(e:chatEvent):void{ jimBob(12, "Air threat detected! Respond with Sakata Mk-II and Marines!"); } private static function a_c9(e:chatEvent):void{ jimBob(14, "A Gladiator! Send in everything you've got, we have to take it down!"); } private static function a_c2(e:chatEvent):void{ jimBob(7, "Threat from ground to ground units. Scouts and Phantoms would be ideal now."); } private static function a_c5(e:chatEvent):void{ jimBob(10, "Threat from single target attackers, we shoud shield our forces with Romans."); } private static function a_c8(e:chatEvent):void{ jimBob(13, "They've got a Black Queen! Try to damage it during its 12 second reload!"); } private static function a_c11(e:chatEvent):void{ jimBob(15, "We need some Positron weapons to take down that armor. Can you send in any Hover Tanks or Snipers?"); addEar(chatEvent.SAY_OK, good); addEar(chatEvent.SAY_YES, good); addEar(chatEvent.SAY_NO, np); } private static function a_attack(e:chatEvent):void{ jimBob(2, "Sending my men forward now! Go! Go!"); } private static function ac_do(e:chatEvent):void{ delaySay(C_DO, 4); resetAll(); setAction(); } private static function ac_make(e:chatEvent):void{ delaySay(C_MAKE, 4); resetAll(); setAction(); } public static function addEar(r:String, f:Function):void{ C.addEventListener(r, f, false, 0, true); } private static function shut2(e:chatEvent):void{ delaySay("...", 2); } } }//package
Section 161
//chatEvent (chatEvent) package { import flash.events.*; public class chatEvent extends Event { public static var HELP:String = "HELP"; public static var SAY_HI:String = "SAY_HI"; public static var SAY_SORRY:String = "SAY_SORRY"; public static var INSULT:String = "INSULT"; public static var SAY_OK:String = "SAY_OK"; public static var SAY_YES:String = "SAY_YES"; public static var THANKS:String = "THANKS"; public static var SAY_WHERE:String = "SAY_WHERE"; public static var SAY_HUH:String = "SAY_HUH"; public static var SAY_WHEN:String = "SAY_WHEN"; public static var SAY_WHY:String = "SAY_WHY"; public static var SAY_NO:String = "SAY_NO"; public static var SAY_WHAT:String = "SAY_WHAT"; public static var SAY_WHO:String = "SAY_WHO"; public static var SAY_HOW:String = "SAY_HOW"; public function chatEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=true):void{ super(type, bubbles, cancelable); } } }//package
Section 162
//chatMission1 (chatMission1) package { public class chatMission1 { public function chatMission1(){ super(); } private static function res11(ce:chatEvent):void{ chatBody.delaySay("Good job.", 5); chatBody.resetAll(); chatOrder.SET(true, 11, 11, 1); } private static function mission1StartAi():void{ gameKon.theRoot.GameKon.player2.startAi(0, 0, 0); gameKon.theRoot.GameKon.player3.startAi(0, 1, 2); gameKon.theRoot.GameKon.player3.setRes(0, 80); gameKon.theRoot.GameKon.player3.setRes(2, 100); gameKon.theRoot.GameKon.player2.AI.AiStrategy.forceTech = 1; gameKon.theRoot.GameKon.player3.AI.AiStrategy.forceTech = 1; } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Hey Baylet, it's me. Do you copy?"); chatBody.resetAll(); chatOrder.SET(true, 25, 2, 1); chatBody.addEar(chatEvent.SAY_HI, res1); chatBody.addEar(chatEvent.SAY_YES, res1); chatBody.addEar(chatEvent.SAY_NO, res2); chatBody.addEar("UNIT_DIED", res10); break; case 2: chatBody.sayWhat("Baylet, are you there? I need you to answer me!"); chatBody.resetAll(); chatOrder.SET(true, 15, 3, 1); chatBody.addEar(chatEvent.SAY_HI, res1); chatBody.addEar(chatEvent.SAY_YES, res1); chatBody.addEar(chatEvent.SAY_OK, res1); chatBody.addEar(chatEvent.SAY_NO, res2); chatBody.addEar("UNIT_DIED", res10); break; case 3: chatBody.sayWhat("You can talk to me by pressing Enter, typing something, then pressing Enter again to transmit the message."); chatBody.resetAll(); chatOrder.SET(false, 0, 0, 1); chatBody.addEar(chatEvent.SAY_HI, res1); chatBody.addEar(chatEvent.SAY_OK, res1); chatBody.addEar(chatEvent.SAY_NO, res2); chatBody.addEar("UNIT_DIED", res10); break; case 4: chatBody.sayWhat("Again, I'm sorry for waking you up in the middle of the night..."); chatBody.resetAll(); chatOrder.SET(true, 9, 5, 1); chatBody.addEar("UNIT_DIED", res10); break; case 5: chatBody.sayWhat("But there's been a situation. We've lost contact with all the other settlements."); chatBody.resetAll(); chatOrder.SET(true, 11, 6, 1); chatBody.addEar("UNIT_DIED", res10); break; case 6: chatBody.sayWhat("It's probably nothing serious..."); chatBody.resetAll(); chatOrder.SET(true, 10, 7, 1); chatBody.addEar("UNIT_DIED", res10); break; case 7: chatBody.sayWhat("In any case, I need you to send some men down to Bjorn's base and find out if the same thing's happened to them."); chatBody.resetAll(); chatOrder.SET(true, 10, 8, 1); chatBody.addEar("UNIT_DIED", res10); break; case 8: chatBody.sayWhat("First, raise an Outpost on one of your construction platforms."); chatBody.resetAll(); chatOrder.SET(true, 12, 9, 1); chatBody.addEar("UNIT_DIED", res10); chatBody.addEar(chatEvent.SAY_HOW, res4); chatBody.addEar(chatEvent.SAY_WHY, res5); break; case 9: chatBody.sayWhat("The blue ones are mine, by the way. You have no control over them."); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_HOW, res4); chatBody.addEar("UNIT_DIED", res10); if (!chatBody.gotBuild){ chatOrder.SET(true, 30, 10, 1); chatBody.addEar("B_RIGHT", res11); chatBody.addEar("B_WRONG", res9); } else { chatOrder.SET(true, 10, 20, 1); }; break; case 10: chatBody.sayWhat("Click on one of the empty red platforms at our base and build an Outpost on it."); chatBody.resetAll(); chatBody.addEar("UNIT_DIED", res10); if (!chatBody.gotBuild){ chatOrder.SET(false, 0, 0, 0); chatBody.addEar("B_RIGHT", res11); chatBody.addEar("B_WRONG", res9); } else { chatOrder.SET(true, 10, 20, 1); }; break; case 11: chatBody.sayWhat("Now, make some Marines from the Outpost. They will automatically head towards Bjorn's settlement."); chatBody.resetAll(); chatBody.addEar("UNIT_DIED", res10); chatOrder.SET(true, 15, 12, 1); break; case 12: chatBody.sayWhat("We're gonna get to the bottom of this..."); chatBody.resetAll(); chatBody.addEar("UNIT_DIED", res10); chatOrder.SET(false, 0, 0, 1); break; case 13: chatBody.sayWhat("All stations on high alert! Prepare for retaliation!"); chatBody.resetAll(); mission1StartAi(); chatBody.addEar("SAY_HUH", res7); chatOrder.SET(true, 20, 14, 1); break; case 14: chatBody.sayWhat("I don't know what happened... Could it be a base malfunction?"); chatBody.resetAll(); chatOrder.SET(true, 6, 15, 1); break; case 15: chatBody.sayWhat("No, wait... Detecting movement from inside their base. There's people behind this!"); chatBody.resetAll(); chatOrder.SET(true, 7, 16, 1); break; case 16: chatBody.sayWhat("Alright, Baylet, are you still there?"); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res8); chatBody.addEar(chatEvent.SAY_HI, res8); chatOrder.SET(true, 25, 17, 1); break; case 17: chatBody.sayWhat("Baylet! Answer me, dammit!"); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res8); chatBody.addEar(chatEvent.SAY_HI, res8); chatOrder.SET(false, 0, 0, 1); break; case 18: chatBody.sayWhat("We have to send our attacks in waves. Toggle the rally point by pressing X."); chatBody.resetAll(); chatOrder.SET(true, 10, 19, 1); break; case 19: chatBody.sayWhat("If your rally point is on, any units you will make gather in front of your base, rather than advance forward."); chatBody.resetAll(); chatOrder.SET(true, 10, 21, 1); break; case 20: chatBody.sayWhat("Oh, I see you already did that. Very well!"); chatBody.resetAll(); chatOrder.SET(true, 10, 11, 1); break; case 21: chatBody.sayWhat("When you think you have enough troops, drag a box around them to select them, and tell them to advance!"); chatBody.resetAll(); chatOrder.SET(true, 20, 22, 1); break; case 22: chatBody.sayWhat("Remember, our Tanks are good against thier ground units, and our marines can shoot rockets at their flying drones."); chatBody.resetAll(); chatOrder.SET(true, 15, 23, 1); break; case 23: chatBody.sayWhat("When you need more manpower, you can Recruit them from the Outpost."); chatBody.resetAll(); chatOrder.SET(true, 12, 24, 1); break; case 24: chatBody.sayWhat("If you hold Shift when you build something, it will put that option into auto-build, repeating itself until you cancel it."); chatBody.resetAll(); chatOrder.SET(true, 25, 25, 1); break; case 25: chatBody.sayWhat("Do not relent! Stop at nothing to bring them down!"); chatBody.resetAll(); chatOrder.SET(false, 0, 0, 1); break; }; } private static function res1(ce:chatEvent):void{ chatBody.delaySay("Good. Looks like our communication lines are still working.", 6); chatBody.resetAll(); chatOrder.SET(true, 13, 4, 1); } private static function res2(ce:chatEvent):void{ chatBody.delaySay("Stop joking around Baylet, we're on a mission here.", 5); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_SORRY, res3); chatOrder.SET(true, 17, 4, 1); } private static function res3(ce:chatEvent):void{ chatBody.delaySay("It's fine.", 5); chatBody.resetAll(); chatOrder.SET(true, 11, 4, 1); } private static function res4(ce:chatEvent):void{ chatBody.delaySay("Relax, I'm about to tell you.", 5); chatBody.resetAll(); chatOrder.SET(true, 13, 10, 1); } private static function res5(ce:chatEvent):void{ chatBody.delaySay("Wh-... Because that's our protocal!", 5); chatBody.resetAll(); chatOrder.SET(true, 15, 9, 1); } private static function res6(ce:chatEvent):void{ chatBody.resetAll(); chatOrder.SET(true, 2, 10, 1); } private static function res7(ce:chatEvent):void{ chatBody.delaySay("Didn't you see? They just shot at our marines!", 5); chatBody.resetAll(); chatOrder.SET(true, 18, 14, 1); } private static function res8(ce:chatEvent):void{ chatBody.delaySay("Good.", 5); chatBody.resetAll(); chatOrder.SET(true, 11, 18, 1); } private static function res9(ce:chatEvent):void{ chatBody.delaySay("That's the wrong building! I told you to build an Oupost!", 5); } private static function res10(ce:chatEvent):void{ chatBody.delaySay("Oh my God... Did they just...", 5); chatBody.resetAll(); chatOrder.SET(true, 11, 13, 1); } } }//package
Section 163
//chatMission2 (chatMission2) package { public class chatMission2 { public function chatMission2(){ super(); } private static function res1(ce:chatEvent):void{ chatBody.delaySay("Enjoying the breeze?", 6); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res2); chatBody.addEar(chatEvent.SAY_NO, res3); chatOrder.SET(true, 18, 2, 2); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Good evening, Jetzul."); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_HI, res1); chatOrder.SET(true, 30, 2, 2); break; case 2: chatBody.sayWhat("They're going to have heavy security around the Sakata technology."); chatBody.resetAll(); chatOrder.SET(true, 15, 3, 2); break; case 3: chatBody.sayWhat("Raise a Forge and upgrade it to a Manufactory, so then we can tear them up with our Phantoms."); chatBody.resetAll(); chatOrder.SET(true, 160, 4, 2); break; case 4: chatBody.sayWhat("Jetzul, I want to see you control those units of yours more! A good captain gives orders!"); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_HOW, res4); chatOrder.SET(true, 300, 5, 2); break; case 5: chatBody.sayWhat("Crush them! The USC are going to have thier communication satellite back up any time now!"); chatBody.resetAll(); chatOrder.SET(false, 0, 0); break; }; } private static function res2(ce:chatEvent):void{ chatBody.delaySay("Spendid! Well that's enough small talk, let's get down to business.", 6); chatBody.resetAll(); chatOrder.SET(true, 18, 2, 2); } private static function res3(ce:chatEvent):void{ chatBody.delaySay("Odd... I guess you belong in prison.", 6); chatBody.resetAll(); chatOrder.SET(true, 18, 2, 2); } private static function res4(ce:chatEvent):void{ chatBody.delaySay("Select troops and pull them back when they are weak, and send them out in groups.", 6); chatBody.resetAll(); chatOrder.SET(true, 300, 5, 2); } } }//package
Section 164
//chatMission3 (chatMission3) package { public class chatMission3 { public function chatMission3(){ super(); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Hang in there, Baylet! We're on our way!"); chatBody.resetAll(); chatOrder.SET(true, 10, 2, 3); break; case 2: chatBody.sayWhat("We've just arrived... Man the battle stations!"); chatBody.resetAll(); chatOrder.SET(true, 25, 3, 3); missionStartAi(); break; case 3: chatBody.sayWhat("Alright, you've made it this far... Now destroy them!"); chatBody.resetAll(); chatOrder.SET(false, 0, 0, 3); break; }; } private static function missionStartAi():void{ gameKon.theRoot.GameKon.player2.startAi(0, 2, 0); gameKon.theRoot.GameKon.player2.setRes(0, 80); gameKon.theRoot.GameKon.player2.setRes(1, 80); } } }//package
Section 165
//chatMission4 (chatMission4) package { public class chatMission4 { public function chatMission4(){ super(); } private static function res1(ce:chatEvent):void{ chatBody.delaySay("I thought so. Do you know him personally?", 6); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res3); chatBody.addEar(chatEvent.SAY_NO, res4); chatOrder.SET(true, 103, 4, 4); } private static function res3(ce:chatEvent):void{ chatBody.delaySay("Really? I suppose we can trust him then...", 6); chatBody.resetAll(); chatOrder.SET(true, 53, 4, 4); } private static function res4(ce:chatEvent):void{ chatBody.delaySay("Me neither. He's probably a USC official himself... Who else could give us such military technology?", 6); chatBody.resetAll(); chatOrder.SET(true, 53, 4, 4); } private static function res5(ce:chatEvent):void{ chatBody.delaySay("You haven't heard?! Have you been living under a rock?", 6); chatBody.resetAll(); chatOrder.SET(true, 18, 5, 4); } private static function res6(ce:chatEvent):void{ chatBody.delaySay("I see. It's a terrifying prospect, isn't it.", 6); chatBody.resetAll(); chatOrder.SET(true, 28, 10, 4); } private static function res7(ce:chatEvent):void{ chatBody.delaySay("You're not easily shaken, are you.", 6); chatBody.resetAll(); chatOrder.SET(true, 18, 10, 4); } private static function res2(ce:chatEvent):void{ chatBody.delaySay("I see... Odd...", 3); chatBody.resetAll(); chatOrder.SET(true, 53, 4, 4); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Another fine evening, Jetzul..."); chatBody.resetAll(); chatOrder.SET(true, 10, 2, 4); break; case 2: chatBody.sayWhat("Let's deal with this the old fashioned way."); chatBody.resetAll(); chatOrder.SET(true, 40, 3, 4); break; case 3: chatBody.sayWhat("Now that we're on a secure channel... Has a person calling himself P been contacting you as well?"); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res1); chatBody.addEar(chatEvent.SAY_NO, res2); chatOrder.SET(true, 100, 4, 4); break; case 4: chatBody.sayWhat("Jetzul, tell me... Do you believe in the conspiracy?"); chatBody.resetAll(); chatOrder.SET(false, 0, 0); chatBody.addEar(chatEvent.SAY_WHAT, res5); chatBody.addEar(chatEvent.SAY_YES, res6); chatBody.addEar(chatEvent.SAY_NO, res7); break; case 5: chatBody.sayWhat("Okay, you know how the prisoner transfer operation back in 2265 was kept under wraps..."); chatBody.resetAll(); chatOrder.SET(true, 11, 6, 4); break; case 6: chatBody.sayWhat("The Athenians don't even know about us, and all the other labourers here."); chatBody.resetAll(); chatOrder.SET(true, 11, 7, 4); break; case 7: chatBody.sayWhat("And the rumor is, once they develop the Romans into manual labour andriods, they're going to..."); chatBody.resetAll(); chatOrder.SET(true, 5, 8, 4); break; case 8: chatBody.sayWhat("'Clean up.'"); chatBody.resetAll(); chatOrder.SET(true, 8, 9, 4); break; case 9: chatBody.sayWhat("Do you think it's true?"); chatBody.resetAll(); chatBody.addEar(chatEvent.SAY_YES, res6); chatBody.addEar(chatEvent.SAY_NO, res7); chatOrder.SET(false, 0, 0); break; case 10: chatBody.sayWhat("I don't know what to make of it myself. But I'll keep my eyes open."); chatBody.resetAll(true); chatOrder.SET(false, 0, 0); break; }; } } }//package
Section 166
//chatMission5 (chatMission5) package { public class chatMission5 { public function chatMission5(){ super(); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Aright Baylet, we're on our own..."); chatBody.resetAll(); chatOrder.SET(true, 7, 2, 5); break; case 2: chatBody.sayWhat("... But there's a way out of this!"); chatBody.resetAll(); chatOrder.SET(true, 18, 3, 5); break; case 3: chatBody.sayWhat("I'm going to cover for you while you construct a Special Operations center."); chatBody.resetAll(); chatOrder.SET(true, 11, 4, 5); break; case 4: chatBody.sayWhat("You'll need a lot of resources to operate it though. But do this, and we'll burn them to ashes!"); chatBody.resetAll(); chatOrder.SET(true, 80, 5, 5); break; case 5: chatBody.sayWhat("Time your strikes well, Baylet! Try to kill as many of them as you can with each shot!"); chatBody.resetAll(true); chatOrder.SET(false, 0, 0); break; }; } } }//package
Section 167
//chatMission6 (chatMission6) package { public class chatMission6 { public function chatMission6(){ super(); } public static function runAiChat(a:uint){ switch (a){ case 0: chatOrder.SET(false, 0, 0); break; case 1: chatBody.sayWhat("Good evening Mr Moston. I'm Julio Haxel, I've been assigned to help you with tonight's mission."); chatBody.resetAll(true); chatOrder.SET(false, 0, 0); break; }; } } }//package
Section 168
//chatOrder (chatOrder) package { public class chatOrder { public static var timeCount:uint; public static var act:Boolean; public static var missionChat:uint; public static var currentOrder:uint; public function chatOrder(){ super(); } public static function SET(a:Boolean, b:uint, c:uint, d:uint=0):void{ act = a; timeCount = (chatBody.stepCount + b); currentOrder = c; missionChat = d; } public static function go():void{ if (missionChat == 0){ chatBody.runAiChat(currentOrder); }; if (missionChat == 1){ chatMission1.runAiChat(currentOrder); }; if (missionChat == 2){ chatMission2.runAiChat(currentOrder); }; if (missionChat == 3){ chatMission3.runAiChat(currentOrder); }; if (missionChat == 4){ chatMission4.runAiChat(currentOrder); }; if (missionChat == 5){ chatMission5.runAiChat(currentOrder); }; if (missionChat == 6){ chatMission6.runAiChat(currentOrder); }; } } }//package
Section 169
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { public function CheckBox_disabledIcon(){ super(); } } }//package
Section 170
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { public function CheckBox_downIcon(){ super(); } } }//package
Section 171
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { public function CheckBox_overIcon(){ super(); } } }//package
Section 172
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { public function CheckBox_selectedDisabledIcon(){ super(); } } }//package
Section 173
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { public function CheckBox_selectedDownIcon(){ super(); } } }//package
Section 174
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { public function CheckBox_selectedOverIcon(){ super(); } } }//package
Section 175
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { public function CheckBox_selectedUpIcon(){ super(); } } }//package
Section 176
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { public function CheckBox_upIcon(){ super(); } } }//package
Section 177
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { public function ComboBox_disabledSkin(){ super(); } } }//package
Section 178
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { public function ComboBox_downSkin(){ super(); } } }//package
Section 179
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { public function ComboBox_overSkin(){ super(); } } }//package
Section 180
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { public function ComboBox_upSkin(){ super(); } } }//package
Section 181
//comic_0 (comic_0) package { import flash.display.*; public dynamic class comic_0 extends MovieClip { public function comic_0(){ super(); } } }//package
Section 182
//comic_1 (comic_1) package { import flash.display.*; public dynamic class comic_1 extends MovieClip { public function comic_1(){ super(); } } }//package
Section 183
//comic_10 (comic_10) package { import flash.display.*; public dynamic class comic_10 extends MovieClip { public function comic_10(){ super(); } } }//package
Section 184
//comic_11 (comic_11) package { import flash.display.*; public dynamic class comic_11 extends MovieClip { public function comic_11(){ super(); } } }//package
Section 185
//comic_2 (comic_2) package { import flash.display.*; public dynamic class comic_2 extends MovieClip { public function comic_2(){ super(); } } }//package
Section 186
//comic_3 (comic_3) package { import flash.display.*; public dynamic class comic_3 extends MovieClip { public function comic_3(){ super(); } } }//package
Section 187
//comic_4 (comic_4) package { import flash.display.*; public dynamic class comic_4 extends MovieClip { public function comic_4(){ super(); } } }//package
Section 188
//comic_5 (comic_5) package { import flash.display.*; public dynamic class comic_5 extends MovieClip { public function comic_5(){ super(); } } }//package
Section 189
//comic_6 (comic_6) package { import flash.display.*; public dynamic class comic_6 extends MovieClip { public function comic_6(){ super(); } } }//package
Section 190
//comic_7 (comic_7) package { import flash.display.*; public dynamic class comic_7 extends MovieClip { public function comic_7(){ super(); } } }//package
Section 191
//comic_8 (comic_8) package { import flash.display.*; public dynamic class comic_8 extends MovieClip { public function comic_8(){ super(); } } }//package
Section 192
//comic_9 (comic_9) package { import flash.display.*; public dynamic class comic_9 extends MovieClip { public function comic_9(){ super(); } } }//package
Section 193
//CommunistTheme (CommunistTheme) package { import flash.media.*; public dynamic class CommunistTheme extends Sound { public function CommunistTheme(){ super(); } } }//package
Section 194
//costTip (costTip) package { import flash.display.*; import flash.text.*; public dynamic class costTip extends Sprite { public var c_e:TextField; public var c_m:TextField; public var c_p:TextField; public function costTip(){ super(); } } }//package
Section 195
//costTip2 (costTip2) package { import flash.display.*; import flash.text.*; public dynamic class costTip2 extends MovieClip { public var c_i:TextField; public function costTip2(){ super(); } } }//package
Section 196
//dataTimer (dataTimer) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class dataTimer extends Sprite { private static var RT:Timer = new Timer(20000); private static var D:Number = 0; private static var F:Number = 0; private static var G:Number = 0; private static var lastTimer:Number = 0; private static var S:Stage; private static var T:Timer = new Timer(1000); private static var now:Date = new Date(); private static var lastDate:Number; private static var FTotal:Number = 0; public function dataTimer(){ super(); } private static function startCheck():void{ F = 0; lastTimer = getTimer(); now = new Date(); lastDate = now.getUTCSeconds(); F = 0; D = 0; FTotal = 0; G = 0; T.reset(); T.start(); T.addEventListener(TimerEvent.TIMER, doTest); S.addEventListener(Event.ENTER_FRAME, upFrame); } public static function init(s:Stage):void{ S = s; lastDate = now.getUTCSeconds(); RT.addEventListener(TimerEvent.TIMER, beginTest, false, 0, true); RT.start(); } private static function upFrame(e:Event):void{ FTotal++; } private static function beginTest(e:TimerEvent=null):void{ RT.stop(); startCheck(); } private static function verifyInfo():void{ if ((G - D) > 2){ trace(("Unsafe Speed: " + (G - D))); dataTracer.DC("You have been disconnected for speed hacking."); } else { trace(("Safe Speed: " + (G - D))); }; } private static function endCheck():void{ T.removeEventListener(TimerEvent.TIMER, doTest); S.removeEventListener(Event.ENTER_FRAME, upFrame); T.stop(); RT.reset(); RT.start(); } public static function forceStart():void{ endCheck(); beginTest(); } private static function doTest(e:TimerEvent):void{ if (G > 10){ endCheck(); verifyInfo(); } else { F = (F + (FTotal / 30)); FTotal = 0; G = ((getTimer() - lastTimer) / 1000); now = new Date(); if (now.getUTCSeconds() < lastDate){ D = ((59 + now.getUTCSeconds()) - lastDate); } else { D = (now.getUTCSeconds() - lastDate); }; }; } } }//package
Section 197
//dataTracer (dataTracer) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class dataTracer extends Sprite { public static var tracer:Tracer = new Tracer(); private static var sup:Boolean = false; private static var clockRunning:Boolean = false; public static var theStage:Stage; public static var progressing:Boolean = false; private static var msgArray:Array = new Array(); public static var T:Timer; private static var theRoot:Object; public static var writeLim:uint = 9; private static var ticked:uint; public function dataTracer(r:Object, s:Stage):void{ super(); theRoot = r; theStage = s; addChild(tracer); } public static function throwError(t:String):void{ progressing = false; clearTracer(); showTracer(); update(t); } public static function noMoreProgress():void{ progressing = false; } public static function update(t:String):void{ var str:String; trace(("Updating " + t)); msgArray.push(t); if (msgArray.length > writeLim){ msgArray.shift(); }; str = msgArray.join("<br/>"); tracer.tr.htmlText = str; } public static function endAfkClock():void{ if (clockRunning){ T.stop(); T.removeEventListener(TimerEvent.TIMER, runAfkCheck); T = null; trace("Stopping the Clock"); clockRunning = false; }; } public static function initAfkClock():void{ T = new Timer(60000); clockRunning = true; T.start(); ticked = 0; trace("Start Clock"); T.addEventListener(TimerEvent.TIMER, runAfkCheck, false, 0, true); } public static function DCAFK():void{ DC("You have been disconnected for not having played a game for over 30 minutes."); } private static function runAfkCheck(te:TimerEvent){ ticked++; trace(("Timer Tick: " + ticked)); if (ticked == 15){ throwError("You must play a game within 15 minutes or you will be auto-kicked from the server."); }; if (ticked >= 30){ DCAFK(); }; } public static function hideTracer():void{ clearTracer(); theRoot.removeChild(theRoot.DataTracer); //unresolved jump var _slot1 = e; } public static function suppress():void{ sup = true; } public static function resetAfkClock():void{ T.reset(); T.start(); clockRunning = true; ticked = 0; } public static function showTracer():void{ theRoot.addChild(theRoot.DataTracer); } public static function clearTracer():void{ msgArray = new Array(); tracer.tr.htmlText = ""; } public static function DC(a:String="You have been disconnected from the server! :("):void{ if (!sup){ theRoot.disconnectedHandler2(); theRoot.DCTRUE = true; theRoot.DCLINE = a; progressing = false; clearTracer(); dataTracer.endAfkClock(); sup = false; theRoot.gotoAndStop("OutOf", "MENU"); } else { sup = false; }; } } }//package
Section 198
//displayBody (displayBody) package { import flash.display.*; import flash.events.*; public class displayBody extends Sprite { private var loopStart:uint; private var loopMax:uint; public var bitmap:Bitmap; private var reCenter:Boolean;// = false private var loopNow:uint; private var main:Object; private var currentMode:uint; public function displayBody(){ reCenter = false; super(); } public function createDisplay(a:Object, c:Boolean=false, doAnim:Boolean=true):void{ if (doAnim){ addEventListener(Event.ENTER_FRAME, animate); }; bitmap = new Bitmap(a.normal[0]); addChild(bitmap); main = a; loopStart = (loopNow = 0); loopMax = main.normal.length; bitmap.width = (bitmap.width * renderMachine.poly); bitmap.height = (bitmap.height * renderMachine.poly); reCenter = c; currentMode = 0; bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) / 2); } public function modeChange(a:uint, a2:Object=null):void{ if ((((currentMode == 2)) && (!((a == 3))))){ } else { if (a != currentMode){ currentMode = a; if (a == 0){ loopStart = (loopNow = 0); loopMax = main.run; }; if (a == 1){ loopStart = (loopNow = main.run); loopMax = (main.fire - main.prefire); }; if (a == 2){ loopStart = (loopNow = main.fire); loopMax = main.death; }; if (a == 3){ loopStart = (loopNow = main.death); loopMax = main.normal.length; }; if (a == 4){ loopStart = (loopNow = (main.fire - main.prefire)); loopMax = main.death; }; if (a == 5){ main = a2; loopStart = (loopNow = 0); loopMax = main.normal.length; catchAnimate(); }; }; }; } private function doDraw(a:BitmapData):void{ bitmap.bitmapData = a; if (reCenter){ bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) / 2); }; } private function catchAnimate():void{ doDraw(main.normal[loopNow]); loopNow++; if (loopNow == loopMax){ if (currentMode == 2){ currentMode = 1; modeChange(0); } else { loopNow = loopStart; }; }; } public function end():void{ removeEventListener(Event.ENTER_FRAME, animate); removeChild(bitmap); bitmap = null; //unresolved jump var _slot1 = e; } private function animate(event:Event):void{ catchAnimate(); } } }//package
Section 199
//displayKon (displayKon) package { import flash.display.*; import flash.events.*; public class displayKon { public static var restrictArray:Array; public static var d_bitmap:Bitmap; public static var restricted:Boolean = false; public function displayKon():void{ super(); gameKon.displayArray.push(this); clearAllOptions(true); render(0, 1, gameKon.theRoot.b8, null); } public function killEvents():void{ gameKon.theStage.removeEventListener(Event.ENTER_FRAME, updateBar); } public static function render(a:uint, b:uint, c:MovieClip, d:Object=null):void{ if (a == 0){ d_bitmap = new Bitmap(renderMachine.originalButtons[b]); } else { if (a == 1){ d_bitmap = new Bitmap(renderMachine.copyBase[buildingData.LIST[d.buildOrder][1]]); }; }; d_bitmap.scaleX = renderMachine.poly; d_bitmap.scaleY = renderMachine.poly; c.addChild(d_bitmap); } public static function clearAllOptions(startClear:Boolean=false):void{ var i:*; var g:*; gameKon.theStage.removeEventListener(Event.ENTER_FRAME, updateBar); if (!startClear){ for (g in unitKon.Team1.all) { unitKon.Team1.all[g].unfil(); }; for (g in unitKon.Team2.all) { unitKon.Team2.all[g].unfil(); }; }; gameKon.theStage.removeEventListener(Event.ENTER_FRAME, updateBar); gameKon.unselectBuilding(); gameKon.theRoot.buildBar.visible = false; gameKon.selectedBuilding = null; gameKon.selectedUnit = new Array(); gameKon.theRoot.uiName.text = "Control Panel"; gameKon.theRoot.uiDesc.text = "Nothing selected. Click on a unit or a base to select it."; i = 0; while (i < 8) { gameKon.theRoot[("b" + i)].visible = true; gameKon.theRoot.oi.visible = false; gameKon.theRoot.b8.visible = false; if (gameKon.theRoot[("b" + i)].gfx.numChildren > 0){ gameKon.theRoot[("b" + i)].gfx.removeChildAt(0); }; gameKon.theRoot[("b" + i)].btn.visible = false; i++; }; } public static function updateUnit(u:Array):void{ var g:*; var i:*; gameKon.unselectBuilding(); clearAllOptions(); gameKon.theRoot.buildBar.gotoAndStop("GREEN"); gameKon.selectedBuilding = null; if (u.length == 1){ gameKon.theRoot.buildBar.visible = true; gameKon.selectedUnit = [u[0]]; gameKon.theRoot.uiName.text = u[0].INFO.Name; gameKon.theRoot.uiDesc.text = u[0].INFO.Desc; gameKon.theStage.addEventListener(Event.ENTER_FRAME, updateBar); } else { gameKon.selectedUnit = u; gameKon.theRoot.buildBar.visible = false; gameKon.theRoot.uiName.text = "Group Selection"; gameKon.theRoot.uiDesc.text = "Multiple units have been selected."; }; for (g in gameKon.selectedUnit) { gameKon.selectedUnit[g].fil(); }; if (u[0].assocBase == null){ if ((((u[0].player == gameKon.playerNow)) || ((u.length > 1)))){ i = 0; while (i < 4) { gameKon.theRoot[("b" + i)].btn.visible = true; render(0, (i + 2), gameKon.theRoot[("b" + i)].gfx); i++; }; }; }; } public static function updateBar(event:Event):void{ var event = event; if (gameKon.selectedUnit.length == 1){ gameKon.theRoot.buildBar.width = (150.5 * (gameKon.selectedUnit[0].life / gameKon.selectedUnit[0].maxLife)); } else { if (gameKon.selectedBuilding == null){ gameKon.theRoot.buildBar.visible = false; }; }; //unresolved jump var _slot1 = e; } public static function updateOptions():void{ var g:*; var p:*; var i:*; var w:*; var restri:Boolean; var jj:*; var d:*; for (g in unitKon.Team1.all) { unitKon.Team1.all[g].unfil(); }; for (g in unitKon.Team2.all) { unitKon.Team2.all[g].unfil(); }; gameKon.theStage.removeEventListener(Event.ENTER_FRAME, updateBar); gameKon.theRoot.buildBar.gotoAndStop("YELLOW"); p = gameKon.selectedBuilding.INFO.options; gameKon.theRoot.uiName.text = gameKon.selectedBuilding.INFO[0]; gameKon.theRoot.uiDesc.text = gameKon.selectedBuilding.INFO[2]; if (((gameKon.selectedBuilding.working) && ((gameKon.selectedBuilding.ownBy == gameKon.playerNow)))){ i = 0; while (i < 8) { gameKon.theRoot[("b" + i)].visible = false; i++; }; gameKon.theRoot.oi.visible = true; gameKon.theRoot.b8.visible = true; w = gameKon.selectedBuilding.option; if (gameKon.theRoot.oi.numChildren > 0){ gameKon.theRoot.oi.removeChildAt(0); }; render(w.iconGraphic[0], w.iconGraphic[1], gameKon.theRoot.oi, w); } else { gameKon.theRoot.oi.visible = false; gameKon.theRoot.b8.visible = false; i = 0; while (i < 8) { gameKon.theRoot[("b" + i)].visible = true; if (gameKon.theRoot[("b" + i)].gfx.numChildren > 0){ gameKon.theRoot[("b" + i)].gfx.removeChildAt(0); }; restri = false; if (restricted){ for (jj in restrictArray) { if (p[i] == restrictArray[jj]){ restri = true; }; }; }; if (((((restri) || ((p[i] == null)))) || (!((gameKon.selectedBuilding.ownBy == gameKon.playerNow))))){ gameKon.theRoot[("b" + i)].btn.visible = false; } else { d = optionData.LIST[p[i]]; gameKon.theRoot[("b" + i)].btn.visible = true; render(d.iconGraphic[0], d.iconGraphic[1], gameKon.theRoot[("b" + i)].gfx, d); }; i++; }; }; } public static function liftRestri():void{ restrictArray = new Array(); restricted = false; } } }//package
Section 200
//exBody (exBody) package { import flash.display.*; import flash.events.*; public class exBody extends Sprite { private var loopStart:uint; private var loopMax:uint; public var bitmap:Bitmap; private var velX:Array; private var velY:Array; private var reCenter:Boolean;// = false private var loopNow:uint; private var timeSpread:uint;// = 9 private var main:Object; private var pX:Array; private var pY:Array; private var spreadMax:uint; public function exBody(id:uint, realType:Boolean=true):void{ var a:*; var f:*; reCenter = false; velX = new Array(); velY = new Array(); pX = new Array(); pY = new Array(); timeSpread = 9; spreadMax = timeSpread; super(); a = renderMachine.explosions[id]; if (realType){ gameKon.shakeScreen(1); } else { trace("MONEY ADD"); timeSpread = 0; }; addEventListener(Event.ENTER_FRAME, animate); bitmap = new Bitmap(a.normal[0]); addChild(bitmap); main = a; loopStart = (loopNow = 0); loopMax = main.normal.length; bitmap.width = (bitmap.width * renderMachine.poly); bitmap.height = (bitmap.height * renderMachine.poly); bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) / 2); f = 0; while (f < 5) { velX.push((2 + (Math.random() * 7))); velY.push((2 + (Math.random() * 7))); f++; }; velX[0] = (velX[0] * -1); velX[1] = (velX[1] * -1); velY[1] = (velY[1] * -1); velY[2] = (velY[2] * -1); velY[3] = (velY[3] * -1); for (f in velX) { pX[f] = (velX[f] * 0.7); pY[f] = (velY[f] * 0.7); }; } private function doDraw(a:BitmapData):void{ bitmap.bitmapData = a; if (reCenter){ bitmap.x = (-(bitmap.width) / 2); bitmap.y = (-(bitmap.height) / 2); }; } public function end():void{ removeEventListener(Event.ENTER_FRAME, animate); removeChild(bitmap); bitmap = null; //unresolved jump var _slot1 = e; } private function animate(event:Event):void{ var f:*; doDraw(main.normal[loopNow]); loopNow++; if (timeSpread > 0){ timeSpread--; for (f in velX) { pX[f] = (pX[f] + velX[f]); pY[f] = (pY[f] + velY[f]); velY[f] = (velY[f] + 0.8); unitKon.addTrail(8, (x + pX[f]), (y + pY[f])); }; }; if (loopNow == loopMax){ end(); unitKon.killEx(this); }; } } }//package
Section 201
//FascistTheme (FascistTheme) package { import flash.media.*; public dynamic class FascistTheme extends Sound { public function FascistTheme(){ super(); } } }//package
Section 202
//Fill1 (Fill1) package { import flash.media.*; public dynamic class Fill1 extends Sound { public function Fill1(){ super(); } } }//package
Section 203
//Fill2 (Fill2) package { import flash.media.*; public dynamic class Fill2 extends Sound { public function Fill2(){ super(); } } }//package
Section 204
//Fill3 (Fill3) package { import flash.media.*; public dynamic class Fill3 extends Sound { public function Fill3(){ super(); } } }//package
Section 205
//Fill4 (Fill4) package { import flash.media.*; public dynamic class Fill4 extends Sound { public function Fill4(){ super(); } } }//package
Section 206
//Fill5 (Fill5) package { import flash.media.*; public dynamic class Fill5 extends Sound { public function Fill5(){ super(); } } }//package
Section 207
//Fill6 (Fill6) package { import flash.media.*; public dynamic class Fill6 extends Sound { public function Fill6(){ super(); } } }//package
Section 208
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { public function focusRectSkin(){ super(); } } }//package
Section 209
//G1 (G1) package { import flash.display.*; public dynamic class G1 extends MovieClip { public function G1(){ super(); } } }//package
Section 210
//gameKon (gameKon) package { import flash.display.*; import flash.events.*; import flash.utils.*; public class gameKon { public var player1:playerKon; public var player2:playerKon; public var player3:playerKon; public var player4:playerKon; private var incomeTime:Number;// = 5 public var player0:playerKon; public static var cText2:tipObject; public static var buildingArray:Array = new Array(); private static var newTips:Array = new Array(); public static var tippingWork:Boolean = false; public static var winningTeam:uint; public static var desync:Boolean = false; private static var incomeTimer:Timer; public static var theStage:Stage; public static var rallyOn:Boolean; public static var selectedBuilding:baseBuilding; public static var theRoot:Object; public static var playerNow:playerKon; public static var shiftToggle:Boolean = false; public static var displayArray:Array = new Array(); public static var selectedUnit:Array; public function gameKon():void{ incomeTime = 5; super(); displayArray = new Array(); buildingArray = new Array(); selectedBuilding = null; selectedUnit = null; } public function killAll():void{ var i:*; for (i in unitKon.masterUnitArray) { unitKon.removeUnit(unitKon.masterUnitArray[i]); }; for (i in displayArray) { if (displayArray[i] != null){ displayArray[i].killEvents(); }; }; } public function Run(event:TimerEvent):void{ theStage.dispatchEvent(new incomeEv("income")); } public function stopData():void{ incomeTimer.stop(); incomeTimer.removeEventListener(TimerEvent.TIMER, Run); incomeTimer = null; } public function runData():void{ incomeTimer = new Timer(5000); incomeTimer.start(); incomeTimer.addEventListener(TimerEvent.TIMER, Run, false, 0, true); } public function assignBase():void{ var i:*; unitKon.resetAll(player1, player3); buildingArray[5].ownBy = player1; buildingArray[6].ownBy = player1; buildingArray[7].ownBy = player1; buildingArray[8].ownBy = player1; buildingArray[0].ownBy = player2; buildingArray[1].ownBy = player2; buildingArray[2].ownBy = player2; buildingArray[3].ownBy = player2; buildingArray[14].ownBy = player3; buildingArray[15].ownBy = player3; buildingArray[16].ownBy = player3; buildingArray[17].ownBy = player3; buildingArray[9].ownBy = player4; buildingArray[10].ownBy = player4; buildingArray[11].ownBy = player4; buildingArray[12].ownBy = player4; for (i in buildingArray) { buildingArray[i].baseId = i; if ((((i == 4)) || ((i == 13)))){ buildingArray[i].fixColor("White"); buildingArray[i].ownBy = player0; buildingArray[i].option = optionData.LIST[1]; buildingArray[i].maxTime = (buildingArray[i].option[3] * 30); buildingArray[i].beginWork(); } else { buildingArray[i].pushBuild(); buildingArray[i].fixColor(theRoot.colorStrings[buildingArray[i].ownBy.cityColor]); }; }; } public function setData(importStage:Stage, importRoot:Object):void{ theStage = importStage; theRoot = importRoot; rallyOn = false; player0 = new playerKon(); player1 = new playerKon(); player2 = new playerKon(); player3 = new playerKon(); player4 = new playerKon(); playerNow = new playerKon(); } public static function unselectBuilding():void{ var i:*; selectedBuilding = null; for (i in buildingArray) { buildingArray[i].unselBase(); }; } public static function checkBuild(player:playerKon, tar){ var c:Boolean; var u:*; c = false; for (u in player.builds) { if (player.builds[u].currentBuilding == tar){ c = true; }; if (tar == null){ c = true; }; }; return (c); } public static function doUnitOption(id:uint, unitArray:Array=null):void{ var orderMatrix:Array; var k:*; var u:*; var scan_i:*; var f:*; orderMatrix = new Array(); if (unitArray == null){ orderMatrix = selectedUnit; } else { for (u in unitArray) { for (scan_i in unitKon.masterUnitArray) { if (unitKon.masterUnitArray[scan_i].unitId == unitArray[u]){ orderMatrix.push(unitKon.masterUnitArray[scan_i]); }; }; }; }; for (k in orderMatrix) { if (orderMatrix[k] == playerNow.team.all[0]){ for (f in playerNow.team.all) { if (f != 0){ playerNow.team.all[f].behave = id; if (id == 1){ playerNow.team.all[f].modeChange(0); }; }; }; } else { orderMatrix[k].behave = id; orderMatrix[k].modeChange(0); }; }; } public static function checkTech(player:playerKon, tar){ if ((((player.tech[tar] > 0)) || ((tar == null)))){ return (true); }; return (false); } public static function doTip(j:Number, action:Boolean):void{ var p:*; var d:*; if (action){ if (selectedBuilding != null){ p = selectedBuilding.INFO.options[j]; if (p != null){ d = optionData.LIST[p]; toolTip.tip(d.tip, 0); }; } else { toolTip.tip(newTips[j], 0); }; } else { toolTip.unTip(); }; } public static function shakeScreen(a:uint):void{ if (a == 0){ theRoot.startShake(4, 1.3, 0.8); }; if (a == 1){ theRoot.startShake(13, 1.23, 1.4); }; if (a == 2){ theRoot.startShake(30, 1.5, 0.9); }; } public static function doOption(d:Object, j:Boolean, h:Boolean, player:playerKon, tarBuild:baseBuilding, overRide:Boolean=false, autoCom:Boolean=false, vars:Object=null, sendOff:Boolean=false):void{ var UTR:uint; var sampleArray:uint; var fgh:*; if (tarBuild != null){ if (j){ d = tarBuild.option; if (((((((!(theRoot.singlePlayerMode)) && (!(player.CPUMODE)))) && (!((d.buildUnits == null))))) && (!((player == playerNow))))){ } else { player.addRes(0, d[0]); player.addRes(1, d[1]); player.addRes(2, d[2]); player.addRes(3, d[4]); }; tarBuild.cancelWork("[GameKon] Ordered to Cancel."); if (d.buildMissile != null){ player.mcd++; }; } else { if (((overRide) || ((((((((player.r_m >= d[0])) && ((player.r_p >= d[1])))) && ((player.r_e >= d[2])))) && ((player.r_i >= d[4])))))){ if (((overRide) || (checkBuild(player, d.buildReq)))){ if (((overRide) || (checkTech(player, d.techReq)))){ if (((overRide) || (checkStock(player, d.stockReq)))){ if (((!(theRoot.singlePlayerMode)) && ((sendOff == true)))){ if (h){ vars.auto = true; }; mpKon.sendOff(vars, false, "updateBuilding"); }; if (d.buildMissile != null){ player.mcd++; }; if (((((((!(theRoot.singlePlayerMode)) && (!(player.CPUMODE)))) && (!((d.buildUnits == null))))) && (!((player == playerNow))))){ } else { player.addRes(0, -(d[0])); player.addRes(1, -(d[1])); player.addRes(2, -(d[2])); player.addRes(3, -(d[4])); var _local13 = player.stock; var _local14 = d.stockReq; var _local15 = (_local13[_local14] - 1); _local13[_local14] = _local15; }; tarBuild.option = d; sampleArray = 0; for (fgh in d.buildResource) { sampleArray = (sampleArray + d.buildResource[fgh]); }; UTR = d[3]; if (player.race == 0){ if (sampleArray == 0){ UTR = (UTR * 0.65); if (UTR > 4){ UTR = 4; }; if (UTR < 1){ UTR = 1; }; }; }; if (player.race == 2){ if (sampleArray > 0){ UTR = (UTR * 0.85); }; }; tarBuild.maxTime = (UTR * 30); trace("Building Option GOING! YEAH YEAH!"); tarBuild.beginWork(); if (h){ tarBuild.autoBuild = true; }; } else { if (!autoCom){ toolTip.giveError("Error", "You don't have enough things in stock to do this."); }; }; } else { if (!autoCom){ toolTip.giveError("Error", "You don't have the required technology to do this."); }; }; } else { if (!autoCom){ toolTip.giveError("Error", "You don't have the required structure to do this."); }; }; } else { if (!autoCom){ toolTip.giveError("Error", "You don't have enough resources to do this."); }; }; }; }; } public static function checkStock(player:playerKon, tar){ if ((((player.stock[tar] > 0)) || ((tar == null)))){ return (true); }; return (false); } newTips[0] = new tipObject("Advance", 0, 0, 0, "Move forward and attack normally."); newTips[1] = new tipObject("Hold", 0, 0, 0, "Hold position and fire at nearby enemies."); newTips[2] = new tipObject("Charge", 0, 0, 0, "Storm towards the enemy base, attacking nothing else."); newTips[3] = new tipObject("Fall Back", 0, 0, 0, "Retreat back towards base, but will not return enemy fire."); } }//package
Section 211
//groundDisplay2 (groundDisplay2) package { import flash.display.*; public dynamic class groundDisplay2 extends MovieClip { public function groundDisplay2(){ super(); } } }//package
Section 212
//groundDisplay3 (groundDisplay3) package { import flash.display.*; public dynamic class groundDisplay3 extends MovieClip { public function groundDisplay3(){ super(); } } }//package
Section 213
//incomeEv (incomeEv) package { import flash.events.*; public class incomeEv extends Event { public function incomeEv(type:String):void{ super(type); } } }//package
Section 214
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { public function List_skin(){ super(); } } }//package
Section 215
//MainFont (MainFont) package { import flash.text.*; public dynamic class MainFont extends Font { public function MainFont(){ super(); } } }//package
Section 216
//MainFont2 (MainFont2) package { import flash.text.*; public dynamic class MainFont2 extends Font { public function MainFont2(){ super(); } } }//package
Section 217
//MenuFont (MenuFont) package { import flash.text.*; public dynamic class MenuFont extends Font { public function MenuFont(){ super(); } } }//package
Section 218
//mpKon (mpKon) package { import flash.events.*; import com.jiggmin.blossomSocket.*; import it.gotoandplay.smartfoxserver.*; import it.gotoandplay.smartfoxserver.data.*; import flash.utils.*; import com.jiggmin.*; public class mpKon { public static const D:EventDispatcher = new EventDispatcher(); public static var playerUnitId:uint; private static var eventOverride:Boolean = false; public static var userList:Array; private static var roomSaveTrans:String; public static var foxMode:Boolean = false; public static var userData:Object; public static var roomObj; public static var roomList:Array = new Array(); public static var justMade:Boolean = false; private static var foxGRName:String; private static var justJoin:Boolean = false; public static var fox:SmartFoxClient; public static var gameBegun:Boolean = false; private static var T:Timer = new Timer(2300); public static var room:BlossomRoom; public static var reacher:MultiplayerScreen; private static var ROOT:Object; public static var blo:BlossomSocket; public static var zoneIn:Boolean = false; public static var socket; public static var userName:String = ""; public function mpKon(){ super(); } public static function createGameProcess(a:String):void{ trace("FIRST JOIN FUNCTION: Create"); foxRoom("MLX_Limbo"); roomSaveTrans = a; fox.addEventListener(SFSEvent.onJoinRoom, eventPhase2); } public static function fetchRoomList():void{ updateRoomArray(); } public static function foxRoom(r:String, overRide:Boolean=false):void{ var foundRoom:Boolean; var i:*; var roomObj:Object; foundRoom = false; if (overRide){ foundRoom = true; }; for (i in roomList) { if (roomList[i].getName() == r){ foundRoom = true; }; }; if (foundRoom){ fox.joinRoom(r); } else { roomObj = {name:r, maxUsers:4, isGame:true}; trace("Up To Here"); fox.createRoom(roomObj); }; } private static function makeGameRoom(e:SFSEvent=null):void{ var roomCheck:Boolean; var i:*; fox.removeEventListener(SFSEvent.onRoomListUpdate, makeGameRoom); roomList = e.params.roomList; roomCheck = true; for (i in roomList) { if (roomList[i].getName() == foxGRName){ roomCheck = false; }; }; if (foxGRName == ""){ roomCheck = false; }; if (roomCheck){ justMade = true; foxRoom(foxGRName); reacher.roomMaster = true; reacher.gameRoomMode = true; reacher.resetCB(); fox.addEventListener(SFSEvent.onJoinRoom, setRoomVar, false, 0, true); } else { dataTracer.throwError("Error: Room Exists or name is blank."); }; } private static function DC(e:SFSEvent=null):void{ trace("Fox DC'd"); dataTracer.DC("You have been disconnected :("); } private static function setRoomVar(e:SFSEvent=null):void{ reacher.foxGameRoom(); fox.removeEventListener(SFSEvent.onJoinRoom, setRoomVar); } public static function init(r:Object):void{ ROOT = r; } public static function createGameRoom(a:String="Game"):void{ foxGRName = a; fox.getRoomList(); fox.addEventListener(SFSEvent.onRoomListUpdate, makeGameRoom, false, 0, true); } public static function close():void{ if (foxMode){ fox.disconnect(); } else { SocketManager.close(); }; } public static function foxZone():void{ fox.login("ColonyReal", userName, ""); fox.addEventListener(SFSEvent.onObjectReceived, obRec); fox.addEventListener(SFSEvent.onConnectionLost, DC); fox.addEventListener(SFSEvent.onLogin, onLoginHandler); } private static function doneJoining(e=null):void{ T.removeEventListener(TimerEvent.TIMER, rejoinRoom); fox.removeEventListener(SFSEvent.onJoinRoom, doneJoining); trace("DONE JOINING"); } public static function switchToGameMode():void{ fox.removeEventListener(SFSEvent.onJoinRoom, joinRoomHandler); fox.removeEventListener(SFSEvent.onUserEnterRoom, userJoinedRoom); fox.removeEventListener(SFSEvent.onUserLeaveRoom, userLeftRoom); fox.addEventListener(SFSEvent.onUserLeaveRoom, userLeftInGame, false, 0, true); } public static function switchToLobbyMode():void{ fox.addEventListener(SFSEvent.onJoinRoom, joinRoomHandler, false, 0, true); fox.addEventListener(SFSEvent.onUserEnterRoom, userJoinedRoom, false, 0, true); fox.addEventListener(SFSEvent.onUserLeaveRoom, userLeftRoom, false, 0, true); fox.removeEventListener(SFSEvent.onUserLeaveRoom, userLeftInGame); } public static function eventRem(a:String, b:Function, fromMan:Boolean=false):void{ if (foxMode){ fox.removeEventListener(translateString(a), b); } else { if (fromMan){ SocketManager.removeEventListener(a, b); } else { socket.removeEventListener(a, b); }; }; } public static function setUserVars(a:Object){ if (foxMode){ } else { socket.setUserVars(a); }; } public static function beginGameProcess(a:String):void{ trace("FIRST JOIN FUNCTION: Join"); roomSaveTrans = a; eventOverride = true; eventTimer(); } private static function secondJoinFunction(e:SFSEvent=null):void{ var v:Array; var i:*; fox.removeEventListener(SFSEvent.onJoinRoom, secondJoinFunction); roomObj = fox.getRoom(fox.activeRoomId); v = roomObj.getVariables(); for (i in v) { switch (i){ case "gs": reacher.gameSet = v[i]; reacher.m3.gameSetting.gotoAndStop((v[i] + 1)); break; case "roomLeader": reacher.roomLeader = v[i]; break; case "randomFactor": break; case "gameStart": if (v[i]){ breakFunction(); }; break; default: break; }; }; } public static function eventSub(a:String, b:Function, fromMan:Boolean=false):void{ if (foxMode){ fox.addEventListener(translateString(a), b, false, 0, true); } else { if (fromMan){ SocketManager.addEventListener(a, b, false, 0, true); } else { socket.addEventListener(a, b, false, 0, true); }; }; } public static function sendOff(obj:Object, sendToSelf:Boolean, codeType:String, id:Number=-1):void{ var vars:Object; if (foxMode){ if (id < 0){ foxSend(obj, codeType, sendToSelf); } else { vars = new Object(); vars.sub = obj; vars.id = codeType; fox.sendObjectToGroup(vars, [id]); }; } else { room.sendToRoom(obj, sendToSelf, codeType); }; } private static function userLeftInGame(e:SFSEvent=null):void{ if (gameBegun){ ROOT.userLeftHandlerFox(e.params.userId); }; } private static function obRec(e:SFSEvent):void{ var o:Object; var oid:String; var _local4:Object; var _local5:*; var _local6:*; o = e.params.obj.sub; oid = e.params.obj.id; switch (oid){ case "chat": reacher.receiveChatHandler(null, o.message, e.params.sender.getName()); break; case "requestStats": _local4 = {}; _local4.r = userData.rank; _local4.gp = userData.gamesPlayed; sendOff(_local4, false, "sendStats", o.requester); break; case "sendStats": reacher.showStats(o.r, o.gp, e.params.sender.getName()); break; case "updateTeamDisplay": reacher.updateDBOXinGame(o.array); break; case "beginGame": userList = roomObj.getUserList(); reacher.foxBeginGame(o.arrayId, o.arrayPos, o.randName); break; case "updateIncome": trace("Setting Income Status"); _local5 = ROOT.GameKon[("player" + o.pos)]; _local5.setIncome(o.race); break; case "updateBuilding": _local5 = ROOT.GameKon[("player" + o.pos)]; _local6 = gameKon.buildingArray[o.building]; gameKon.doOption(optionData.LIST[o.buildId], o.cancelOrder, o.auto, _local5, _local6, true); break; case "createUnit": ROOT.realCreateUnit(o.pos, o.id, o.unitId, o.rand1, o.rand2, o.rand3); break; case "killUnit": ROOT.killUnitReal(o.p, o.id, o.ran); break; case "orderUnit": gameKon.doUnitOption(o.id, o.orderArray); break; case "createMissile": unitKon.addMissile(o.tar, o.px, o.py); break; case "sendChat": ROOT.gogoChat(o.i, o.t); break; case "sendExit": break; default: break; }; } private static function onLoginHandler(e:SFSEvent):void{ if (e.params.success){ trace("Logged Into Zone."); fox.addEventListener(SFSEvent.onRoomListUpdate, roomListHandlerLogin, false, 0, true); } else { dataTracer.DC("Cannot log in with that name, please choose a different name."); trace("Cannot Log Into Zone."); }; } private static function roomListLobbyLog(e:SFSEvent=null):void{ foxRoom("MLX_Lobby"); roomList = e.params.roomList; fox.removeEventListener(SFSEvent.onRoomListUpdate, roomListLobbyLog); } public static function justJoined():void{ justJoin = true; fox.addEventListener(SFSEvent.onJoinRoom, secondJoinFunction, false, 0, true); } private static function eventPhase2(e=null):void{ var i:*; var subSt:String; if (eventOverride){ roomList = e.params.roomList; for (i in roomList) { trace(roomList[i].getName()); }; eventOverride = false; trace("Timer Event Detected"); trace("SECOND JOIN FUNCTION: JOIN"); fox.removeEventListener(SFSEvent.onRoomListUpdate, eventPhase2); trace(("Room Join Target: " + roomSaveTrans)); subSt = roomSaveTrans.substr(0, 20); fox.joinRoom(subSt); fox.addEventListener(SFSEvent.onJoinRoom, doneJoining, false, 0, true); T.addEventListener(TimerEvent.TIMER, rejoinRoom, false, 0, true); } else { trace("SECOND JOIN FUNCTION: MAKE"); fox.removeEventListener(SFSEvent.onJoinRoom, eventPhase2); foxRoom(roomSaveTrans); }; } public static function sendEv(a:uint, b:Object=null, c:uint=99, d:String=""):void{ var ds:String; ds = ""; switch (a){ case 0: break; case 1: break; default: break; }; if (ds != ""){ }; } private static function eventTimer(e:SFSEvent=null):void{ T.reset(); T.start(); T.addEventListener(TimerEvent.TIMER, eventPhase3, false, 0, true); } public static function doConnect(a:String):void{ if (foxMode){ fox = new SmartFoxClient(false); fox.connect("174.129.235.54", 9339); justJoin = false; } else { SocketManager.connect(a); socket = SocketManager.socket; }; } private static function eventPhase3(e=null):void{ fox.getRoomList(); T.removeEventListener(TimerEvent.TIMER, eventPhase3); fox.addEventListener(SFSEvent.onRoomListUpdate, eventPhase2, false, 0, true); eventOverride = true; } public static function reLobby():void{ fox.addEventListener(SFSEvent.onRoomListUpdate, roomListLobbyLog, false, 0, true); } private static function rejoinRoom(e=null):void{ trace("Attempting to Rejoin"); foxRoom(roomSaveTrans, true); } public static function getStats():void{ if (foxMode){ } else { socket.getStats(); }; } private static function userLeftRoom(e:SFSEvent=null):void{ var sendA:Array; var i:*; var user:User; updateUserList(); if (reacher.gameRoomMode){ sendA = new Array(); for (i in userList) { if ((userList[i] is User)){ user = userList[i]; sendA.push({name:user.getName(), id:user.getId()}); }; }; reacher.updateCList_Leave(sendA, e.params.userId); }; } private static function userJoinedRoom(e:SFSEvent=null):void{ var sendA:Array; var i:*; var user:User; updateUserList(); if (reacher.gameRoomMode){ sendA = new Array(); for (i in userList) { if ((userList[i] is User)){ user = userList[i]; sendA.push({name:user.getName(), id:user.getId()}); }; }; reacher.updateCList_Join(sendA, e.params.user.getName()); }; } private static function updateUserList(e:SFSEvent=null):void{ var userNameList:Array; var i:*; roomObj = fox.getRoom(fox.activeRoomId); userList = roomObj.getUserList(); userNameList = new Array(); for (i in userList) { userNameList.push(userList[i].getName()); }; reacher.listUsers(userNameList); } public static function deactivate():void{ } private static function updateRoomArray():void{ var rArr:Array; var i:*; var roomObj2:*; var v:Array; var j:*; roomList = fox.getAllRooms(); rArr = new Array(); for (i in roomList) { roomObj2 = roomList[i]; v = roomObj2.getVariables(); for (j in v) { trace(j); }; if (v["gameStart"]){ } else { rArr.push({name:roomList[i].getName(), members:roomList[i].getUserCount()}); }; }; reacher.refreshRoomListConnect(rArr); } private static function breakFunction():void{ reacher.quitGameRoom(); dataTracer.throwError("The game has already begun."); } private static function roomListHandlerLogin(e:SFSEvent):void{ fox.removeEventListener(SFSEvent.onRoomListUpdate, roomListHandlerLogin); roomList = e.params.roomList; fox.joinRoom("MLX_Lobby"); fox.addEventListener(SFSEvent.onJoinRoom, joinRoomHandler, false, 0, true); fox.addEventListener(SFSEvent.onUserEnterRoom, userJoinedRoom, false, 0, true); fox.addEventListener(SFSEvent.onUserLeaveRoom, userLeftRoom, false, 0, true); } private static function joinRoomHandler(e:SFSEvent=null):void{ var obj:Object; var sendA:Array; var i:*; var user:User; obj = new Object(); obj.rank = "100"; obj.gamesPlayed = 908; fox.setUserVariables(obj); updateUserList(); if (justMade){ justMade = false; sendA = new Array(); for (i in userList) { if ((userList[i] is User)){ user = userList[i]; sendA.push({name:user.getName(), id:user.getId()}); }; }; reacher.updateCList_Join(sendA, userName); }; } private static function foxSend(a:Object, b:String, c:Boolean=false):void{ var vars:Object; vars = new Object(); vars.sub = a; vars.id = b; fox.sendObject(vars); if (c){ fox.sendObjectToGroup(vars, [fox.myUserId]); }; } private static function translateString(a:String):String{ switch (a){ case _e.RECEIVE_SOCKET_ID: return (SFSEvent.onConnection); default: break; }; return (a); } } }//package
Section 219
//MultiplayerMakeGraphic (MultiplayerMakeGraphic) package { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class MultiplayerMakeGraphic extends MovieClip { public var makeGame:Button; public var gameSetting:MovieClip; public var backLobby:Button; public var T:MenuFont; public var tf:TextFormat; public var gameName:TextField; public var setChange:SimpleButton; public function MultiplayerMakeGraphic(){ super(); addFrameScript(0, frame1); __setProp_backLobby_MultiplayerMake_Layer3_1(); __setProp_makeGame_MultiplayerMake_Layer3_1(); } function __setProp_backLobby_MultiplayerMake_Layer3_1(){ backLobby["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; backLobby.emphasized = false; backLobby.enabled = true; backLobby.label = "Exit to Lobby"; backLobby.labelPlacement = "right"; backLobby.selected = false; backLobby.toggle = false; backLobby.visible = true; backLobby["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_makeGame_MultiplayerMake_Layer3_1(){ makeGame["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; makeGame.emphasized = false; makeGame.enabled = true; makeGame.label = "Create Game"; makeGame.labelPlacement = "right"; makeGame.selected = false; makeGame.toggle = false; makeGame.visible = true; makeGame["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame1(){ T = new MenuFont(); tf = new TextFormat(); tf.font = T.fontName; tf.size = 14; tf.color = 0; makeGame.setStyle("textFormat", tf); backLobby.setStyle("textFormat", tf); } } }//package
Section 220
//MultiplayerRoomGraphic (MultiplayerRoomGraphic) package { import fl.controls.*; import flash.display.*; import fl.data.*; import flash.text.*; public dynamic class MultiplayerRoomGraphic extends MovieClip { public var ad:DisplayObject; public var c1:ComboBox; public var c3:ComboBox; public var c4:ComboBox; public var c2:ComboBox; public var d4:MovieClip; public var T:MenuFont; public var d2:MovieClip; public var d3:MovieClip; public var d1:MovieClip; public var tf:TextFormat; public var InstanceName_1:MovieClip; public var adBox:MovieClip; public var InstanceName_2:MovieClip; public var CPMStarSubPoolID:int; public var CPMStarPoolID:int; public var collProps1:Array; public var collProps2:Array; public var collProps3:Array; public var collProps4:Array; public var i2:int; public var i3:int; public var i4:int; public var i1:int; public var chatSend:TextField; public var j2; public var j3; public var j1; public var j4; public var collObj4:DataProvider; public var collObj1:DataProvider; public var collObj2:DataProvider; public var backLobby:Button; public var ranker_2:MovieClip; public var ranker_4:MovieClip; public var ranker_1:MovieClip; public var chatBox:TextField; public var scr_1:UIScrollBar; public var collObj3:DataProvider; public var textBox:TextField; public var ranker_3:MovieClip; public var startGame:Button; public var collProp1:Object; public var collProp3:Object; public var collProp2:Object; public var collProp4:Object; public var itemObj1:SimpleCollectionItem; public var itemObj2:SimpleCollectionItem; public var itemObj3:SimpleCollectionItem; public var itemObj4:SimpleCollectionItem; public var gameSetting:MovieClip; public function MultiplayerRoomGraphic(){ super(); addFrameScript(0, frame1); __setProp_c3_MultiplayerRoom_Layer2_1(); __setProp_c2_MultiplayerRoom_Layer2_1(); __setProp_backLobby_MultiplayerRoom_Layer2_1(); __setProp_c4_MultiplayerRoom_Layer2_1(); __setProp_startGame_MultiplayerRoom_Layer2_1(); __setProp_scr_1_MultiplayerRoom_Layer2_1(); __setProp_c1_MultiplayerRoom_Layer2_1(); } function __setProp_c2_MultiplayerRoom_Layer2_1(){ c2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj3 = new DataProvider(); collProps3 = [{label:"None", data:"Computer"}]; i3 = 0; while (i3 < collProps3.length) { itemObj3 = new SimpleCollectionItem(); collProp3 = collProps3[i3]; for (j3 in collProp3) { itemObj3[j3] = collProp3[j3]; }; collObj3.addItem(itemObj3); i3++; }; c2.dataProvider = collObj3; c2.editable = false; c2.enabled = true; c2.prompt = ""; c2.restrict = ""; c2.rowCount = 5; c2.visible = true; c2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_startGame_MultiplayerRoom_Layer2_1(){ startGame["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; startGame.emphasized = false; startGame.enabled = true; startGame.label = "Start Game"; startGame.labelPlacement = "right"; startGame.selected = false; startGame.toggle = false; startGame.visible = true; startGame["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame1(){ stop(); T = new MenuFont(); tf = new TextFormat(); tf.font = T.fontName; tf.size = 14; tf.color = 0; backLobby.setStyle("textFormat", tf); startGame.setStyle("textFormat", tf); CPMStarPoolID = 1052; CPMStarSubPoolID = 37; ad = AdLoader.LoadAd(CPMStarPoolID, CPMStarSubPoolID); adBox.addChild(ad); } function __setProp_c4_MultiplayerRoom_Layer2_1(){ c4["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj1 = new DataProvider(); collProps1 = [{label:"None", data:"Computer"}]; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; c4.dataProvider = collObj1; c4.editable = false; c4.enabled = true; c4.prompt = ""; c4.restrict = ""; c4.rowCount = 5; c4.visible = true; c4["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_backLobby_MultiplayerRoom_Layer2_1(){ backLobby["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; backLobby.emphasized = false; backLobby.enabled = true; backLobby.label = "Exit to Lobby"; backLobby.labelPlacement = "right"; backLobby.selected = false; backLobby.toggle = false; backLobby.visible = true; backLobby["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_c1_MultiplayerRoom_Layer2_1(){ c1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj4 = new DataProvider(); collProps4 = [{label:"None", data:"Computer"}]; i4 = 0; while (i4 < collProps4.length) { itemObj4 = new SimpleCollectionItem(); collProp4 = collProps4[i4]; for (j4 in collProp4) { itemObj4[j4] = collProp4[j4]; }; collObj4.addItem(itemObj4); i4++; }; c1.dataProvider = collObj4; c1.editable = false; c1.enabled = true; c1.prompt = ""; c1.restrict = ""; c1.rowCount = 5; c1.visible = true; c1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_scr_1_MultiplayerRoom_Layer2_1(){ scr_1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; scr_1.direction = "vertical"; scr_1.scrollTargetName = "chatBox"; scr_1.visible = true; scr_1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_c3_MultiplayerRoom_Layer2_1(){ c3["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj2 = new DataProvider(); collProps2 = [{label:"None", data:"Computer"}]; i2 = 0; while (i2 < collProps2.length) { itemObj2 = new SimpleCollectionItem(); collProp2 = collProps2[i2]; for (j2 in collProp2) { itemObj2[j2] = collProp2[j2]; }; collObj2.addItem(itemObj2); i2++; }; c3.dataProvider = collObj2; c3.editable = false; c3.enabled = true; c3.prompt = ""; c3.restrict = ""; c3.rowCount = 5; c3.visible = true; c3["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package
Section 221
//MultiplayerScreen (MultiplayerScreen) package { import flash.display.*; import flash.events.*; import com.jiggmin.blossomSocket.*; import flash.utils.*; import com.jiggmin.data.*; public class MultiplayerScreen extends MovieClip { private var c_buildUpMax:uint;// = 8 private var team:uint; private var normalRoom:String; private var roomSearch:BlossomRoom; private var c_timer:Timer; private var m:MultiplayerScreenGraphic; private var messageArray:Array; private var c_countDownSmall:uint; private var rankedMatch:Boolean;// = false private var maxMessages:int;// = 40 private var cBoxArray:Array; private var room:BlossomRoom; private var STAGE:Stage; private var timerRefreshUser:Timer; private var userName:String; public var gameSet:uint;// = 0 public var roomMaster:Boolean; public var gameRoomMode:Boolean;// = false private var lastBox; private var color:uint; private var m2:MultiplayerMakeGraphic; public var m3:MultiplayerRoomGraphic; public var foxRooms:Array; private var socket:BlossomSocket; private var c_countDown:uint; private var justClosed:Boolean; private var eSend:Object; private var c_buildUp:uint; private var lobbyRoom:BlossomRoom; private var dBoxArray:Array; public var roomLeader:uint; private var timerRefresh:Timer; private var rBoxArray:Array; public function MultiplayerScreen(userName:String, team:uint, color:uint, userData:Object, s:Stage, n:String, usr:uint):void{ var userVars:Object; var nCyAr:Array; var hg:*; gameRoomMode = false; eSend = new Object(); rankedMatch = false; gameSet = 0; c_buildUpMax = 8; messageArray = new Array(); maxMessages = 40; super(); if (mpKon.foxMode){ mpKon.reacher = this; }; normalRoom = n; STAGE = s; c_timer = new Timer(1000); c_timer.start(); c_timer.addEventListener(TimerEvent.TIMER, chatSpamHand, false, 0, true); c_buildUp = 0; c_countDown = 0; c_countDownSmall = 0; gameSet = 0; timerRefresh = new Timer(2000); timerRefresh.start(); timerRefreshUser = new Timer(10000); timerRefreshUser.start(); if (mpKon.foxMode){ timerRefresh.addEventListener(TimerEvent.TIMER, refreshRoomList, false, 0, true); } else { timerRefresh.addEventListener(TimerEvent.TIMER, refreshRoomList, false, 0, true); timerRefreshUser.addEventListener(TimerEvent.TIMER, refreshUserList, false, 0, true); }; rankedMatch = false; mpKon.userData = userData; this.userName = userName; this.team = team; this.color = color; roomMaster = false; justClosed = false; m = new MultiplayerScreenGraphic(); m2 = new MultiplayerMakeGraphic(); m3 = new MultiplayerRoomGraphic(); addChild(m); m.s_gplayed.text = userData.gamesPlayed; m.s_gwon.text = userData.gamesWon; m.s_cwins.text = userData.gamesConsecutiveWins; m.s_rank.text = userData.rank; m.ranker.gotoAndStop(userData.rank); if (userData.gamesPlayed > 0){ m.s_wratio.text = (Math.round(((100 * userData.gamesWon) / userData.gamesPlayed)) + "%"); }; cBoxArray = new Array(m3.c1, m3.c2, m3.c3, m3.c4); dBoxArray = new Array(m3.d1, m3.d2, m3.d3, m3.d4); rBoxArray = new Array(m3.ranker_1, m3.ranker_2, m3.ranker_3, m3.ranker_4); mpKon.eventSub(_e.RECEIVE_MESSAGE, msgHandler); userVars = new Object(); userVars.userName = userName; userVars.team = team; userVars.color = color; mpKon.setUserVars(userVars); if (mpKon.foxMode){ if (mpKon.zoneIn){ trace("Zoning In..."); mpKon.foxZone(); } else { trace("Already Zoned In"); mpKon.switchToLobbyMode(); mpKon.fox.getRoomList(); mpKon.reLobby(); }; normalRoom = "Lobby"; } else { socket = mpKon.socket; room = (mpKon.room = new BlossomRoom(socket, ("MLX_" + normalRoom))); }; addEvs(); m.playRankedButton.addEventListener(MouseEvent.CLICK, rankMatchSit, false, 0, true); m.exitButton.addEventListener(MouseEvent.CLICK, clickExitHandler, false, 0, true); m.createGameButton.addEventListener(MouseEvent.CLICK, clickCreateGameHandler, false, 0, true); m.joinGameButton.addEventListener(MouseEvent.CLICK, clickJoinGameHandler, false, 0, true); m2.backLobby.addEventListener(MouseEvent.CLICK, backLobbyHandler, false, 0, true); m3.backLobby.addEventListener(MouseEvent.CLICK, backLobbyHandler2, false, 0, true); m3.startGame.addEventListener(MouseEvent.CLICK, startGameHandler, false, 0, true); m.chatSend.addEventListener(KeyboardEvent.KEY_DOWN, keyInput, false, 0, true); m3.chatSend.addEventListener(KeyboardEvent.KEY_DOWN, keyInput, false, 0, true); m.roomBox.addEventListener(Event.CLOSE, beginRoomSwitch, false, 0, true); m.raceButton.addEventListener(MouseEvent.CLICK, changeRace, false, 0, true); m2.setChange.addEventListener(MouseEvent.CLICK, changeSet, false, 0, true); gameRoomMode = false; m.racePlate.gotoAndStop((usr + 1)); nCyAr = new Array("Lobby", "Veteran Hall", "Team Channel", "Deutsch Zimmer", "AFK Garden"); foxRooms = ["MLX_Lobby", "MLX_Veteran Hall", "MLX_Team Channel", "MLX_Deutsch Zimmer", "MLX_AFK Garden"]; for (hg in nCyAr) { if (normalRoom == nCyAr[hg]){ m.roomBox.selectedIndex = hg; }; }; } public function listUsers(a:Array=null):void{ var txt:String; var subArray:Array; var i:*; var user:BlossomUser; txt = ""; subArray = new Array(); if (mpKon.foxMode){ for (i in a) { txt = (txt + (a[i] + "\n")); }; } else { for each (user in room.userArray) { txt = (txt + (user.vars.userName + "\n")); }; }; if (gameRoomMode){ m3.textBox.text = txt; } else { m.textBox.text = txt; }; m.scr_2.update(); } private function refreshRoomList(te:TimerEvent){ if (mpKon.foxMode){ mpKon.fetchRoomList(); } else { socket.getRooms(); socket.addEventListener(BlossomEvent.RECEIVE_ROOMS, refreshRoomListHandler, false, 0, true); }; } private function addMessage(str:String):void{ messageArray.push(str); if (messageArray.length > maxMessages){ messageArray.shift(); }; showMessages(); } private function upTeamHand(e:Event):void{ var vars:*; var i:*; var theSel:uint; var j:*; m3.removeEventListener(Event.ENTER_FRAME, upTeamHand); if (justClosed){ justClosed = false; theSel = lastBox.selectedIndex; for (j in cBoxArray) { if (cBoxArray[j].selectedIndex == theSel){ if (theSel > 3){ if (cBoxArray[j] != lastBox){ cBoxArray[j].selectedIndex = 0; }; }; }; }; }; vars = new Object(); vars.array = new Array(); for (i in cBoxArray) { vars.array.push(cBoxArray[i].selectedLabel); }; mpKon.sendOff(vars, true, "updateTeamDisplay"); } public function foxBeginGame(a:Array, b:Array, c:String):void{ var imIn:Boolean; var i:int; var myPos:int; var user:*; var hisPos:uint; var v:*; MovieClip(parent).remotePlayerArray = new Array(false, false, false, false); MovieClip(parent).allPlayers = new Array(); imIn = false; i = 0; myPos = 1; trace("STING A"); for each (user in mpKon.userList) { hisPos = 0; for (v in a) { if (user.getId() == a[v]){ hisPos = b[v]; if (mpKon.fox.myUserId == a[v]){ myPos = hisPos; imIn = true; } else { MovieClip(parent).remotePlayerArray[i] = true; }; MovieClip(parent).allPlayers.push({POS:hisPos, NAME:user.getName(), ID:user.getId()}); }; }; i++; }; trace("STING B"); for (v in a) { trace(("TRACING :" + a[v])); if ((((((((a[v] == "NONE")) || ((a[v] == "COMPUTER1")))) || ((a[v] == "COMPUTER2")))) || ((a[v] == "COMPUTER3")))){ MovieClip(parent).allPlayers.push({POS:b[v], NAME:a[v], ID:0}); }; }; trace("STING C"); team = MovieClip(parent).userRace; MovieClip(parent).roomMaster = roomMaster; if (imIn){ MovieClip(parent).gameSet = gameSet; MovieClip(parent).clientPlayer = [team, myPos, color]; MovieClip(parent).gotoAndStop("Pre", "PRE"); trace("STING D"); MovieClip(parent).roomName = ((("GS£_" + c) + "_") + mpKon.roomObj.getName()); trace("STING E"); mpKon.switchToGameMode(); if (roomMaster){ mpKon.createGameProcess(MovieClip(parent).roomName); } else { mpKon.beginGameProcess(MovieClip(parent).roomName); }; remove(); if (parent != null){ parent.removeChild(this); }; } else { quitGameRoom(); }; trace("STING F"); } private function recieveRoomsHandler(be:BlossomEvent):void{ var roomArray:Array; var len:int; var i:int; var Xroom:Object; var stopScan:Boolean; var rName:String; var roomIsClear:Boolean; var vars:Object; socket.removeEventListener(BlossomEvent.RECEIVE_ROOMS, recieveRoomsHandler); roomArray = be.roomList; len = roomArray.length; stopScan = false; rName = m2.gameName.text; roomIsClear = true; i = 0; while (i < len) { if (!stopScan){ Xroom = roomArray[i]; if ((((Xroom.roomName == rName)) || ((rName == "")))){ roomIsClear = false; }; }; i++; }; if (roomIsClear){ m3.startGame.visible = true; roomMaster = true; socket.leaveRoom(room.roomName); gameRoomMode = true; clearMessages(); resetCB(); m2.makeGame.removeEventListener(MouseEvent.CLICK, makeGameHandler); room = (mpKon.room = new BlossomRoom(socket, rName)); room.addEventListener("updateTeamDisplay", updateTeamDisplayHandler, false, 0, true); room.addEventListener("beginGame", beginGameHandler, false, 0, true); addEvs(); stopScan = true; addChild(m3); vars = new Object(); vars.roomLeader = socket.socketID; vars.randomFactor = (Math.random() * 10); vars.gs = gameSet; room.setVars(vars); roomLeader = socket.socketID; } else { dataTracer.throwError("That room already exists, or the room name is blank."); }; if (stopScan == false){ addChild(m2); }; } private function makeGameHandler(me:MouseEvent):void{ if (mpKon.foxMode){ mpKon.createGameRoom(m2.gameName.text); } else { socket.getRooms(); removeChild(m2); socket.addEventListener(BlossomEvent.RECEIVE_ROOMS, recieveRoomsHandler, false, 0, true); }; } public function refreshRoomListConnect(a:Array):void{ var roomArray:Array; var len:int; var i:int; var g:int; var room:Object; var selStore:String; var theLabel:String; roomArray = a; len = roomArray.length; g = 0; if (m.theList.selectedItem != null){ selStore = m.theList.selectedItem.data; } else { selStore = "MLX_Lobby"; }; m.theList.removeAll(); i = 0; while (i < len) { room = roomArray[i]; if ((((room.members < 4)) && (true))){ if ((((room.name.indexOf("GameStartX_$") == -1)) && ((room.name.indexOf("MLX_") == -1)))){ if (room.name.indexOf("GS£_") == -1){ if (room.name.indexOf("GSearchXCV_$") == -1){ theLabel = ((("[" + room.members) + "/4] ") + room.name); m.theList.addItem({label:theLabel, data:room.name}); g++; if (selStore == room.name){ m.theList.selectedIndex = (g - 1); }; }; }; }; }; i++; }; } private function backLobbyHandler2(me:MouseEvent):void{ if (mpKon.foxMode){ mpKon.foxRoom(("MLX_" + normalRoom)); } else { socket.leaveRoom(room.roomName); socket.getRooms(); socket.addEventListener(BlossomEvent.RECEIVE_ROOMS, refreshRoomListHandler, false, 0, true); room = (mpKon.room = new BlossomRoom(socket, ("MLX_" + normalRoom))); addEvs(); listUsers(); }; removeChild(m3); addChild(m); roomMaster = false; gameRoomMode = false; clearMessages(); } private function checkRandomGame(be:BlossomEvent):void{ var vars:Object; var iDc:uint; var doItRand:Boolean; var user:BlossomUser; var letterArr:Array; var bah:String; if (roomSearch.userArray.length >= 4){ vars = new Object(); vars.randomJoin = true; vars.arrayId = new Array(); vars.arrayPos = new Array(1, 2, 3, 4); iDc = 1; doItRand = false; for each (user in roomSearch.userArray) { if (iDc < 5){ iDc++; vars.arrayId.push(user.socketID); if (user.socketID == socket.socketID){ doItRand = true; vars.arrayId.sort(); if (user.socketID == vars.arrayId[0]){ doItRand = true; }; }; }; }; if (doItRand){ letterArr = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); bah = letterArr[Math.round((Math.random() * (letterArr.length - 1)))]; vars.randName = (("Ranked_" + bah) + Math.round((Math.random() * 9999))); roomSearch.sendToRoom(vars, true, "beginGame"); }; }; } private function beginGameHandler(be:BlossomEvent):void{ var imIn:Boolean; var i:int; var myPos:int; var user:BlossomUser; var pracRoom:BlossomRoom; var hisPos:uint; var v:*; if (be.data.randomJoin){ pracRoom = roomSearch; } else { pracRoom = room; }; MovieClip(parent).remotePlayerArray = new Array(false, false, false, false); MovieClip(parent).allPlayers = new Array(); imIn = false; i = 0; myPos = 1; for each (user in pracRoom.userArray) { hisPos = 0; for (v in be.data.arrayId) { if (user.socketID == be.data.arrayId[v]){ hisPos = be.data.arrayPos[v]; if (socket.socketID == be.data.arrayId[v]){ myPos = hisPos; imIn = true; } else { MovieClip(parent).remotePlayerArray[i] = true; }; MovieClip(parent).allPlayers.push({POS:hisPos, NAME:user.vars.userName, ID:user.socketID}); }; }; i++; }; for (v in be.data.arrayId) { if ((((((((be.data.arrayId[v] == "NONE")) || ((be.data.arrayId[v] == "COMPUTER1")))) || ((be.data.arrayId[v] == "COMPUTER2")))) || ((be.data.arrayId[v] == "COMPUTER3")))){ MovieClip(parent).allPlayers.push({POS:be.data.arrayPos[v], NAME:be.data.arrayId[v], ID:0}); }; }; team = MovieClip(parent).userRace; MovieClip(parent).roomMaster = roomMaster; if (imIn){ MovieClip(parent).gameSet = gameSet; MovieClip(parent).clientPlayer = [team, myPos, color]; MovieClip(parent).gotoAndStop("Pre", "PRE"); if (be.data.randomJoin){ MovieClip(parent).rankedMatch = true; STAGE.addEventListener("CLOSETRACER", stopLooking, false, 0, true); dataTracer.hideTracer(); MovieClip(parent).roomName = ("GS£_" + be.data.randName); roomSearch.removeEventListener(BlossomEvent.USER_JOIN_ROOM, checkRandomGame); roomSearch.removeEventListener("beginGame", beginGameHandler); socket.leaveRoom(roomSearch.roomName); roomSearch = null; } else { MovieClip(parent).roomName = ((("GS£_" + room.roomName) + "_") + be.data.randName); }; remove(); if (parent != null){ parent.removeChild(this); }; } else { if (be.data.randomJoin){ } else { quitGameRoom(); }; }; } private function stopLooking(e:chatEvent):void{ STAGE.removeEventListener("CLOSETRACER", stopLooking); roomSearch.removeEventListener(BlossomEvent.USER_JOIN_ROOM, checkRandomGame); roomSearch.removeEventListener("beginGame", beginGameHandler); socket.leaveRoom(roomSearch.roomName); roomSearch = null; } private function updateTeamDisplayHandler(be:BlossomEvent):void{ var i:*; var user:BlossomUser; for (i in dBoxArray) { dBoxArray[i].n.text = be.data.array[i]; rBoxArray[i].visible = false; for each (user in room.userArray) { if (be.data.array[i] == user.vars.userName){ if ((user.vars.userName.indexOf("Guest_") == -1)){ if (user.vars.userData.rank > 0){ rBoxArray[i].visible = true; rBoxArray[i].gotoAndStop(user.vars.userData.rank); }; }; }; }; }; } private function refreshRoomListHandler(be:BlossomEvent):void{ var rArr:Array; var i:*; socket.removeEventListener(BlossomEvent.RECEIVE_ROOMS, refreshRoomListHandler); rArr = new Array(); for (i in be.roomList) { rArr.push({name:be.roomList[i].roomName, members:be.roomList[i].members}); }; refreshRoomListConnect(rArr); } private function msgHandler(be:BlossomEvent):void{ if (be.data.kick){ if (gameRoomMode){ if (!roomMaster){ quitGameRoom(); dataTracer.throwError("You have been kicked from the game."); }; }; }; } private function changeSet(me:MouseEvent):void{ gameSet++; if (gameSet > 5){ gameSet = 0; }; m2.gameSetting.gotoAndStop((gameSet + 1)); m3.gameSetting.gotoAndStop((gameSet + 1)); } private function userLeaveRoomHandler(be:BlossomEvent):void{ var sendA:Array; var user:BlossomUser; listUsers(); sendA = new Array(); for each (user in room.userArray) { sendA.push({name:user.vars.userName, id:user.socketID}); }; updateCList_Leave(sendA, be.fromUser.socketID); } public function remove():void{ m3.removeChild(m3.adBox); STAGE.frameRate = 30; MovieClip(parent).mpscreenMode = false; MovieClip(parent).normalRoom = normalRoom; m.exitButton.removeEventListener(MouseEvent.CLICK, clickExitHandler); timerRefresh.removeEventListener(TimerEvent.TIMER, refreshRoomList); if (mpKon.foxMode){ terminateFox(); } else { terminateBlossom(); }; c_timer.addEventListener(TimerEvent.TIMER, chatSpamHand, false, 0, true); room = null; socket = null; m = null; m2 = null; m3 = null; } private function changeRace(me:MouseEvent):void{ MovieClip(parent).userRace++; if (MovieClip(parent).userRace > 2){ MovieClip(parent).userRace = 0; }; m.racePlate.gotoAndStop((MovieClip(parent).userRace + 1)); } private function keyInput(ke:KeyboardEvent):void{ var chatRef:*; if (ke.keyCode == 13){ if (gameRoomMode){ chatRef = m3; } else { chatRef = m; }; if (chatRef.chatSend.text.indexOf("/stats") == 0){ runChatScript(0, 7, "Sorry, I couldn't find a user with that name in this room.", chatRef); } else { if (chatRef.chatSend.text.indexOf("/kick") == 0){ if (roomMaster){ if (gameRoomMode){ runChatScript(1, 6, "Sorry, I couldn't find a user with that name in this room.", chatRef); } else { addMessage((("<font color=\"#4F6B47\">" + "You are not in a game room, and cannot kick players.") + "</font>")); }; } else { addMessage((("<font color=\"#4F6B47\">" + "You are not the room master, and cannot kick players.") + "</font>")); }; chatRef.chatSend.text = ""; } else { if (userName.indexOf("Guest_") == -1){ if (c_countDown == 0){ sendMessage(); c_justSent(); } else { chatRef.chatSend.text = ""; addMessage((("<font color=\"#4F6B47\">" + "You have sent too many messages. You may not send another message for 60 seconds.") + "</font>")); }; } else { chatRef.chatSend.text = ""; addMessage((("<font color=\"#4F6B47\">" + "Guests are not allowed to send messages in chat rooms.") + "</font>")); }; }; }; }; } private function closeBox(e:Event){ lastBox = e.target; justClosed = true; m3.addEventListener(Event.ENTER_FRAME, upTeamHand, false, 0, true); } private function terminateFox():void{ } private function clearMessages():void{ messageArray = new Array(); showMessages(); } private function receRL(be:BlossomEvent):void{ roomLeader = be.vars.roomLeader; room.removeEventListener(BlossomEvent.RECEIVE_ROOM_VARS, receRL); gameSet = be.vars.gs; m3.gameSetting.gotoAndStop((gameSet + 1)); } private function clickJoinGameHandler(me:MouseEvent):void{ var j:*; var i:*; var varList:Array; if (m.theList.selectedItem != null){ if (mpKon.foxMode){ mpKon.foxRoom(m.theList.selectedItem.data); gameRoomMode = true; clearMessages(); removeChild(m); roomMaster = false; addChild(m3); m3.startGame.visible = false; for (j in cBoxArray) { cBoxArray[j].visible = false; }; for (i in dBoxArray) { dBoxArray[i].n.text = "None"; rBoxArray[i].visible = false; }; mpKon.justJoined(); } else { socket.leaveRoom(room.roomName); removeChild(m); roomMaster = false; addChild(m3); m3.startGame.visible = false; for (j in cBoxArray) { cBoxArray[j].visible = false; }; for (i in dBoxArray) { dBoxArray[i].n.text = "None"; rBoxArray[i].visible = false; }; gameRoomMode = true; clearMessages(); room = (mpKon.room = new BlossomRoom(socket, m.theList.selectedItem.data)); varList = new Array("randomFactor", "roomLeader", "gs"); room.getVars(varList); room.addEventListener(BlossomEvent.RECEIVE_ROOM_VARS, receRL, false, 0, true); room.addEventListener("updateTeamDisplay", updateTeamDisplayHandler, false, 0, true); room.addEventListener("beginGame", beginGameHandler, false, 0, true); addEvs(); }; }; } private function chatSpamHand(e:TimerEvent):void{ if (c_countDownSmall > 0){ c_countDownSmall--; } else { c_countDownSmall = 2; if (c_buildUp > 0){ c_buildUp--; }; }; if (c_countDown > 0){ c_countDown--; if (c_countDown == 0){ c_buildUp = 0; }; }; } public function updateCList_Join(a:Array, b):void{ var addNew:Boolean; var added:Boolean; var saveIndex:uint; var j:*; var indexBefore:*; var labelBefore:*; var i:uint; var v:*; if (((gameRoomMode) && (roomMaster))){ addNew = false; added = false; for (j in cBoxArray) { indexBefore = cBoxArray[j].selectedIndex; labelBefore = cBoxArray[j].selectedLabel; addNew = false; if (cBoxArray[j].selectedLabel == "None"){ addNew = true; }; cBoxArray[j].removeAll(); cBoxArray[j].addItem({label:"None", data:"NONE"}); cBoxArray[j].addItem({label:"Easy CPU", data:"COMPUTER1"}); cBoxArray[j].addItem({label:"Normal CPU", data:"COMPUTER2"}); cBoxArray[j].addItem({label:"Hard CPU", data:"COMPUTER3"}); i = 4; for (v in a) { cBoxArray[j].addItem({label:a[v].name, data:a[v].id}); if (addNew){ if (a[v].name == b){ saveIndex = i; }; } else { if (a[v].name == labelBefore){ saveIndex = i; }; }; i++; }; if (((!(addNew)) || (added))){ if (indexBefore < 2){ cBoxArray[j].selectedIndex = indexBefore; } else { cBoxArray[j].selectedIndex = saveIndex; }; } else { cBoxArray[j].selectedIndex = saveIndex; added = true; }; }; m3.addEventListener(Event.ENTER_FRAME, upTeamHand, false, 0, true); }; } private function c_justSent():void{ c_buildUp++; if (c_buildUp >= c_buildUpMax){ c_buildUp = c_buildUpMax; c_countDown = 30; }; c_countDownSmall = 3; } private function refreshUserList(te:TimerEvent){ listUsers(); } private function backLobbyHandler(me:MouseEvent):void{ removeChild(m2); addChild(m); } private function rankMatchSit(e:MouseEvent):void{ if (mpKon.foxMode){ dataTracer.throwError("This feature isn't available on this server."); } else { STAGE.addEventListener("CLOSETRACER", stopLooking, false, 0, true); dataTracer.clearTracer(); dataTracer.showTracer(); dataTracer.update("Looking for a game..."); dataTracer.progressing = false; roomSearch = new BlossomRoom(socket, "GSearchXCV_$"); roomSearch.addEventListener(BlossomEvent.USER_JOIN_ROOM, checkRandomGame, false, 0, true); roomSearch.addEventListener("beginGame", beginGameHandler, false, 0, true); }; } private function userJoinRoomHandler(be:BlossomEvent):void{ var sendA:Array; var user:BlossomUser; listUsers(); if (gameRoomMode){ if (room.userArray.length > 4){ if (be.fromUser.socketID == socket.socketID){ dataTracer.throwError("That game is already full."); quitGameRoom(); }; }; }; sendA = new Array(); for each (user in room.userArray) { sendA.push({name:user.vars.userName, id:user.socketID}); }; updateCList_Join(sendA, be.fromUser.vars.userName); } private function runChatScript(caseString:uint, caseStringSub:uint, errorString:String, chatRef):void{ var foundTheGuy:Boolean; var subArray:Array; var foxOverride:Boolean; var i:*; var j:*; var user:BlossomUser; var uNameRank:String; var regExNew:RegExp; var tName:String; var rankST:String; var vars4:Object; var caseString = caseString; var caseStringSub = caseStringSub; var errorString = errorString; var chatRef = chatRef; foundTheGuy = false; subArray = new Array(); foxOverride = false; if (mpKon.foxMode){ for (j in mpKon.userList) { subArray.push({n:mpKon.userList[j].getName(), id:mpKon.userList[j].getId()}); }; } else { trace(room.userArray); for each (user in room.userArray) { subArray.push({n:user.vars.userName, r:user.vars.userData.rank, gp:user.vars.userData.gamesPlayed, id:user.socketID}); //unresolved jump var _slot1 = e; }; }; for (i in subArray) { uNameRank = chatRef.chatSend.text.substr(caseStringSub); regExNew = new RegExp(uNameRank, "i"); tName = subArray[i].n; if (regExNew.test(tName)){ if ((((uNameRank.length == tName.length)) && ((tName.indexOf("Guest_") == -1)))){ foundTheGuy = true; switch (caseString){ case 0: if (mpKon.foxMode){ mpKon.sendOff({requester:mpKon.fox.myUserId}, false, "requestStats", subArray[i].id); foxOverride = true; foundTheGuy = false; } else { rankST = ((((((("<font color=\"#4F6B47\">" + tName) + "'s Rank: ") + subArray[i].r) + ". Games played: ") + subArray[i].gp) + ".") + "</font>"); }; break; case 1: rankST = (((("<font color=\"#4F6B47\">" + "Kicked ") + tName) + " from the game.") + "</font>"); if (mpKon.foxMode){ } else { vars4 = new Object(); vars4.kick = true; mpKon.socket.sendToUser(subArray[i].id, vars4); }; break; }; }; }; }; chatRef.chatSend.text = ""; if (!foundTheGuy){ if (foxOverride){ } else { addMessage((("<font color=\"#4F6B47\">" + errorString) + "</font>")); }; } else { addMessage(rankST); }; } private function changeRooms(e:Event):void{ var rankST:String; m.removeEventListener(Event.ENTER_FRAME, changeRooms); if (normalRoom != m.roomBox.selectedLabel){ normalRoom = m.roomBox.selectedLabel; if (mpKon.foxMode){ mpKon.foxRoom(foxRooms[m.roomBox.selectedIndex]); } else { socket.leaveRoom(room.roomName); room = (mpKon.room = new BlossomRoom(socket, ("MLX_" + normalRoom))); addEvs(); listUsers(); }; rankST = ((("<font color=\"#4F6B47\">" + "Now joining chat channel: ") + normalRoom) + "</font>"); addMessage(rankST); }; } private function startGameHandler(me:MouseEvent):void{ var goAhead:Boolean; var teamArray:*; var i:*; var checkID:*; var j:*; var vars:Object; var q:*; var letterArr2:Array; var bah2:String; goAhead = true; teamArray = new Array(); for (i in cBoxArray) { teamArray.push({ID:cBoxArray[i].selectedItem.data, POS:(i + 1)}); }; for (i in teamArray) { checkID = teamArray[i].ID; for (j in teamArray) { if (j != i){ if (checkID == teamArray[j].ID){ if (((((((!((checkID == "NONE"))) && (!((checkID == "COMPUTER1"))))) && (!((checkID == "COMPUTER2"))))) && (!((checkID == "COMPUTER3"))))){ goAhead = false; dataTracer.throwError("You cannot have the same player in two different slots."); }; }; }; }; }; if (goAhead){ vars = new Object(); vars.arrayId = new Array(); vars.arrayPos = new Array(); for (q in teamArray) { vars.arrayId.push(teamArray[q].ID); vars.arrayPos.push(teamArray[q].POS); }; letterArr2 = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); bah2 = letterArr2[Math.round((Math.random() * (letterArr2.length - 1)))]; vars.randName = (("G_" + bah2) + Math.round((Math.random() * 9999))); mpKon.sendOff(vars, true, "beginGame"); }; } private function sendMessage():void{ var chatRef:*; var message:String; var vars:Object; if (gameRoomMode){ chatRef = m3; } else { chatRef = m; }; if (chatRef.chatSend.text != ""){ message = chatRef.chatSend.text; chatRef.chatSend.text = ""; vars = new Object(); vars.message = message; vars.userName = userName; mpKon.sendOff(vars, true, "chat"); }; } public function quitGameRoom():void{ removeChild(m3); addChild(m); gameRoomMode = false; clearMessages(); if (mpKon.foxMode){ mpKon.foxRoom(("MLX_" + normalRoom)); } else { socket.leaveRoom(room.roomName); socket.getRooms(); socket.addEventListener(BlossomEvent.RECEIVE_ROOMS, refreshRoomListHandler, false, 0, true); room = (mpKon.room = new BlossomRoom(socket, ("MLX_" + normalRoom))); }; addEvs(); listUsers(); } public function endIt(a:Boolean=false):void{ remove(); dataTracer.suppress(); dataTracer.endAfkClock(); mpKon.close(); if (a){ MovieClip(parent).gotoAndStop("START", "MENU"); }; if (parent != null){ parent.removeChild(this); }; } private function showMessages():void{ var str:String; var chatRef:*; str = messageArray.join("<br/>"); if (gameRoomMode){ chatRef = m3; } else { chatRef = m; }; chatRef.chatBox.htmlText = str; chatRef.chatBox.scrollV = chatRef.chatBox.maxScrollV; chatRef.scr_1.update(); } private function beginRoomSwitch(e:Event):void{ m.addEventListener(Event.ENTER_FRAME, changeRooms, false, 0, true); } private function addEvs():void{ if (mpKon.foxMode){ } else { room.addEventListener("chat", receiveChatHandler, false, 0, true); room.addEventListener(BlossomEvent.USER_JOIN_ROOM, userJoinRoomHandler, false, 0, true); room.addEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeaveRoomHandler, false, 0, true); }; } private function terminateBlossom():void{ var vars3:*; vars3 = new Object(); vars3.userRace = MovieClip(parent).userRace; socket.setUserVars(vars3); timerRefreshUser.removeEventListener(TimerEvent.TIMER, refreshUserList); socket.removeEventListener(BlossomEvent.RECEIVE_ROOMS, refreshRoomListHandler); room.removeEventListener(BlossomEvent.USER_JOIN_ROOM, userJoinRoomHandler); room.removeEventListener(BlossomEvent.USER_LEAVE_ROOM, userLeaveRoomHandler); socket.removeEventListener(BlossomEvent.RECEIVE_MESSAGE, msgHandler); room.removeEventListener("chat", receiveChatHandler); socket.leaveRoom(room.roomName); } public function showStats(a:uint, b:uint, c:String):void{ addMessage(((((((("<font color=\"#4F6B47\">" + c) + "'s Rank: ") + a) + ". Games played: ") + b) + ".") + "</font>")); } private function clickExitHandler(me:MouseEvent=null):void{ endIt(true); } private function clickCreateGameHandler(me:MouseEvent):void{ removeChild(m); addChild(m2); m2.makeGame.addEventListener(MouseEvent.CLICK, makeGameHandler, false, 0, true); } private function addSystemMessage(message:String):void{ message = (("#<i>" + message) + "</i>"); addMessage(message); } public function foxGameRoom():void{ var roomVar:Array; m3.startGame.visible = true; clearMessages(); roomLeader = mpKon.fox.myUserId; roomVar = new Array(); roomVar.push({name:"roomLeader", val:roomLeader}); roomVar.push({name:"randomFactor", val:(Math.random() * 10)}); roomVar.push({name:"gs", val:gameSet}); roomVar.push({name:"gameStart", val:false}); mpKon.fox.setRoomVariables(roomVar); addChild(m3); } public function updateDBOXinGame(a:Array):void{ var i:*; for (i in dBoxArray) { dBoxArray[i].n.text = a[i]; rBoxArray[i].visible = false; }; } public function resetCB():void{ var j:*; var tty:*; for (j in cBoxArray) { cBoxArray[j].visible = true; cBoxArray[j].addEventListener(Event.CLOSE, closeBox, false, 0, true); cBoxArray[j].removeAll(); cBoxArray[j].addItem({label:"None", data:"NONE"}); cBoxArray[j].addItem({label:"Easy CPU", data:"COMPUTER1"}); cBoxArray[j].addItem({label:"Normal CPU", data:"COMPUTER2"}); cBoxArray[j].addItem({label:"Hard CPU", data:"COMPUTER3"}); cBoxArray[j].selectedIndex = 0; }; for (tty in dBoxArray) { dBoxArray[tty].n.text = "None"; rBoxArray[tty].visible = false; }; } public function receiveChatHandler(be:BlossomEvent=null, a:String="", b:String=""):void{ var chatSub:String; var nameSub:String; var message:String; var chat:Object; var htmlName:String; var str:String; if (mpKon.foxMode){ chatSub = a; nameSub = b; } else { chat = be.data; chatSub = chat.message; nameSub = chat.userName; }; message = Data.filterSwearing(chatSub); if (message.length < 200){ message = message.replace(/>/gi, "&gt;"); message = message.replace(/</gi, "&lt;"); htmlName = ((("<font color=\"#2B3C55\">" + nameSub) + ": ") + "</font>"); str = (htmlName + message); addMessage(str); }; } public function updateCList_Leave(a:Array, b):void{ var j:*; var labelBefore:*; var v:*; var e:*; if (((gameRoomMode) && (roomMaster))){ for (j in cBoxArray) { labelBefore = cBoxArray[j].selectedLabel; cBoxArray[j].removeAll(); cBoxArray[j].addItem({label:"None", data:"NONE"}); cBoxArray[j].addItem({label:"Easy CPU", data:"COMPUTER1"}); cBoxArray[j].addItem({label:"Normal CPU", data:"COMPUTER2"}); cBoxArray[j].addItem({label:"Hard CPU", data:"COMPUTER3"}); for (v in a) { cBoxArray[j].addItem({label:a[v].name, data:a[v].id}); }; cBoxArray[j].selectedIndex = 0; e = 0; while (e < cBoxArray[j].length) { if (cBoxArray[j].getItemAt(e).label == labelBefore){ cBoxArray[j].selectedIndex = e; }; e++; }; }; m3.addEventListener(Event.ENTER_FRAME, upTeamHand, false, 0, true); } else { if (b == roomLeader){ dataTracer.throwError("The Creator has left the game."); quitGameRoom(); }; }; } } }//package
Section 222
//MultiplayerScreenGraphic (MultiplayerScreenGraphic) package { import fl.controls.*; import flash.display.*; import fl.data.*; import flash.text.*; public dynamic class MultiplayerScreenGraphic extends MovieClip { public var chatSend:TextField; public var i5:int; public var exitButton:Button; public var j5; public var createGameButton:Button; public var s_gwon:TextField; public var s_gplayed:TextField; public var playRankedButton:Button; public var s_cwins:TextField; public var collObj5:DataProvider; public var scr_1:UIScrollBar; public var raceButton:SimpleButton; public var chatBox:TextField; public var textBox:TextField; public var scr_2:UIScrollBar; public var s_rank:TextField; public var InstanceName_0:MovieClip; public var joinGameButton:Button; public var tf:TextFormat; public var collProp5:Object; public var theList:List; public var s_wratio:TextField; public var __id2_:Button; public var racePlate:MovieClip; public var itemObj5:SimpleCollectionItem; public var ranker:MovieClip; public var collProps5:Array; public var T:MenuFont; public var roomBox:ComboBox; public function MultiplayerScreenGraphic(){ super(); addFrameScript(0, frame1); __setProp___id2__MultiplayerScreenGraphic_Layer2_1(); __setProp_createGameButton_MultiplayerScreenGraphic_Layer2_1(); __setProp_roomBox_MultiplayerScreenGraphic_Layer2_1(); __setProp_scr_2_MultiplayerScreenGraphic_Layer2_1(); __setProp_exitButton_MultiplayerScreenGraphic_Layer2_1(); __setProp_joinGameButton_MultiplayerScreenGraphic_Layer2_1(); __setProp_playRankedButton_MultiplayerScreenGraphic_Layer2_1(); __setProp_scr_1_MultiplayerScreenGraphic_Layer2_1(); } function __setProp_scr_1_MultiplayerScreenGraphic_Layer2_1(){ scr_1["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; scr_1.direction = "vertical"; scr_1.scrollTargetName = "chatBox"; scr_1.visible = true; scr_1["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_roomBox_MultiplayerScreenGraphic_Layer2_1(){ roomBox["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; collObj5 = new DataProvider(); collProps5 = [{label:"Lobby", data:""}, {label:"Veteran's Hall", data:""}, {label:"Team Channel", data:""}, {label:"Deutsch Zimmer", data:""}, {label:"AFK Garden", data:""}]; i5 = 0; while (i5 < collProps5.length) { itemObj5 = new SimpleCollectionItem(); collProp5 = collProps5[i5]; for (j5 in collProp5) { itemObj5[j5] = collProp5[j5]; }; collObj5.addItem(itemObj5); i5++; }; roomBox.dataProvider = collObj5; roomBox.editable = false; roomBox.enabled = true; roomBox.prompt = ""; roomBox.restrict = ""; roomBox.rowCount = 5; roomBox.visible = true; roomBox["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function frame1(){ stop(); T = new MenuFont(); tf = new TextFormat(); tf.font = T.fontName; tf.size = 14; tf.color = 0; exitButton.setStyle("textFormat", tf); joinGameButton.setStyle("textFormat", tf); createGameButton.setStyle("textFormat", tf); playRankedButton.setStyle("textFormat", tf); theList.setRendererStyle("textFormat", tf); } function __setProp_createGameButton_MultiplayerScreenGraphic_Layer2_1(){ createGameButton["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; createGameButton.emphasized = false; createGameButton.enabled = true; createGameButton.label = "Create Game"; createGameButton.labelPlacement = "right"; createGameButton.selected = false; createGameButton.toggle = false; createGameButton.visible = true; createGameButton["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_playRankedButton_MultiplayerScreenGraphic_Layer2_1(){ playRankedButton["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; playRankedButton.emphasized = false; playRankedButton.enabled = true; playRankedButton.label = "Play Random Match"; playRankedButton.labelPlacement = "right"; playRankedButton.selected = false; playRankedButton.toggle = false; playRankedButton.visible = true; playRankedButton["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp___id2__MultiplayerScreenGraphic_Layer2_1(){ __id2_["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; __id2_.emphasized = false; __id2_.enabled = true; __id2_.label = "Play Quick Game"; __id2_.labelPlacement = "right"; __id2_.selected = false; __id2_.toggle = false; __id2_.visible = true; __id2_["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_scr_2_MultiplayerScreenGraphic_Layer2_1(){ scr_2["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; scr_2.direction = "vertical"; scr_2.scrollTargetName = "textBox"; scr_2.visible = true; scr_2["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_exitButton_MultiplayerScreenGraphic_Layer2_1(){ exitButton["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; exitButton.emphasized = false; exitButton.enabled = true; exitButton.label = "Exit Lobby"; exitButton.labelPlacement = "right"; exitButton.selected = false; exitButton.toggle = false; exitButton.visible = true; exitButton["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } function __setProp_joinGameButton_MultiplayerScreenGraphic_Layer2_1(){ joinGameButton["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; joinGameButton.emphasized = false; joinGameButton.enabled = true; joinGameButton.label = "Join Game"; joinGameButton.labelPlacement = "right"; joinGameButton.selected = false; joinGameButton.toggle = false; joinGameButton.visible = true; joinGameButton["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } } }//package
Section 223
//musicKon (musicKon) package { import flash.display.*; import flash.events.*; import flash.media.*; public class musicKon { private static var fadeRate:Number; private static var theStage:Stage; public static var systemRunning:Boolean = false; private static var masterVol:SoundTransform = new SoundTransform(); private static var currentVol:Number = 0; private static var fadeRateDefault:Number = 0.01; private static var theSong; private static var initAlready:Boolean = false; private static var ThemeChannel:SoundChannel = new SoundChannel(); private static var musicFills:Array = new Array(); private static var changeCounter:uint; private static var chosenMode:uint; private static var nextMode:Array; private static var faderDir:Boolean = true; private static var currentMode:uint; private static var switchState:Boolean = true; private static var centi:Number = 3400; private static var yesPlay:Boolean; private static var musicArray:Array = new Array(); private static var TransitChannel:SoundChannel = new SoundChannel(); private static var playTheme2:Boolean = false; private static var playingSong; private static var prevSong:uint; private static var MainChannel:SoundChannel = new SoundChannel(); private static var systemShutOff:Boolean = false; private static var playTheme:Boolean = false; private static var oldMode:uint; private static var MoodChannel:SoundChannel = new SoundChannel(); private static var themeSong; public function musicKon(){ super(); } public static function setTheme(a:uint){ if (a == 0){ themeSong = new FascistTheme(); }; if (a == 1){ themeSong = new CommunistTheme(); }; if (a == 2){ themeSong = new CapitalistTheme(); }; } private static function resetAllMusic():void{ prevSong = 0; nextMode = new Array(); chosenMode = 0; currentMode = 0; changeCounter = 1; playTheme = false; switchState = true; playingSong = musicArray[0].array[0]; } public static function init(st:Stage):void{ var f1:Fill1; var f2:Fill2; var f3:Fill3; var f4:Fill4; var f5:Fill5; var f6:Fill6; if (!initAlready){ initAlready = true; theStage = st; f1 = new Fill1(); f2 = new Fill2(); f3 = new Fill3(); f4 = new Fill4(); f5 = new Fill5(); f6 = new Fill6(); musicFills[0] = new Array(); musicFills[0].push(null); musicFills[0].push(new Array(f1, f2, f3, f6)); musicFills[0].push(new Array(f3, f6)); musicFills[1] = new Array(); musicFills[1].push(new Array(f3, f6)); musicFills[1].push(new Array(f1, f2, f4, f5)); musicFills[1].push(new Array(f1, f3, f4, f6)); musicFills[2] = new Array(); musicFills[2].push(new Array(f3, f6)); musicFills[2].push(new Array(f3, f6)); musicFills[2].push(new Array(f1, f2, f4)); musicArray[0] = new Object(); musicArray[0].canGo = new Array(1, 2); musicArray[0].playTimes = 1; musicArray[0].array = new Array(); musicArray[0].array.push(new Ambient1()); musicArray[0].array.push(new Ambient2()); musicArray[0].array.push(new Ambient3()); musicArray[1] = new Object(); musicArray[1].canGo = new Array(0, 2); musicArray[1].playTimes = 1; musicArray[1].array = new Array(); musicArray[1].array.push(new Beat1()); musicArray[1].array.push(new Beat2()); musicArray[1].array.push(new Beat3()); musicArray[1].array.push(new Beat4()); musicArray[1].array.push(new Beat5()); musicArray[2] = new Object(); musicArray[2].canGo = new Array(0, 1); musicArray[2].playTimes = 0; musicArray[2].array = new Array(); musicArray[2].array.push(new Slow1()); musicArray[2].array.push(new Slow2()); masterVol.volume = currentVol; MainChannel.soundTransform = masterVol; TransitChannel.soundTransform = masterVol; ThemeChannel.soundTransform = masterVol; MoodChannel.soundTransform = masterVol; resetAllMusic(); }; } private static function runFader(event:Event):void{ if (faderDir){ if (currentVol < 1){ currentVol = (currentVol + fadeRate); } else { currentVol = 1; endFader(); }; } else { if (currentVol > 0){ currentVol = (currentVol - fadeRate); } else { currentVol = 0; endFader(); }; }; masterVol.volume = currentVol; MainChannel.soundTransform = masterVol; TransitChannel.soundTransform = masterVol; ThemeChannel.soundTransform = masterVol; MoodChannel.soundTransform = masterVol; } public static function startSystem():void{ resetAllMusic(); systemRunning = true; yesPlay = true; theStage.addEventListener(Event.ENTER_FRAME, runMusic, false, 0, true); } public static function closeSystem():void{ systemRunning = false; MainChannel.stop(); theStage.removeEventListener(Event.ENTER_FRAME, runMusic); } private static function G(a:Number):Number{ return (Math.round((a / 10))); } private static function switchMusic():void{ var songGet:Boolean; var testSong:uint; var TS:*; oldMode = currentMode; if (changeCounter > 0){ if ((((changeCounter == 1)) && ((currentMode == 0)))){ playTheme = true; }; songGet = false; while (!(songGet)) { testSong = R(musicArray[currentMode].array); if (testSong != prevSong){ prevSong = testSong; changeCounter--; songGet = true; } else { songGet = false; }; }; } else { currentMode = R(musicArray[currentMode].canGo, true); changeCounter = musicArray[currentMode].playTimes; prevSong = R(musicArray[currentMode].array); }; theSong = musicArray[currentMode].array[prevSong]; if (((!((currentMode == 0))) || (!((oldMode == 0))))){ TS = R(musicFills[oldMode][currentMode], true); TransitChannel = TS.play(); }; } private static function R(a:Array, returnVal:Boolean=false){ var rander:Number; var rtake:*; rander = (Math.random() * 100); rtake = Math.round(((rander * (a.length - 1)) / 100)); if (returnVal){ return (a[rtake]); }; return (rtake); } private static function runMusic(event:Event):void{ if (yesPlay){ MainChannel = playingSong.play(); yesPlay = false; }; if (G(MainChannel.position) >= (centi - 265)){ if (switchState){ switchMusic(); switchState = false; }; }; if (G(MainChannel.position) >= 840){ if (playTheme2){ if (prevSong != 2){ ThemeChannel = themeSong.play(); }; playTheme2 = false; }; }; if (G(MainChannel.position) >= (centi - 15)){ MainChannel = theSong.play(); playingSong = theSong; switchState = true; if (playTheme){ playTheme = false; playTheme2 = true; }; }; } public static function startFader(r:Number=0, fType:uint=0):void{ if (r == 0){ fadeRate = fadeRateDefault; } else { fadeRate = r; }; systemShutOff = false; if (fType == 1){ faderDir = true; if (!systemRunning){ startSystem(); }; }; if (fType == 2){ faderDir = false; systemShutOff = true; }; theStage.addEventListener(Event.ENTER_FRAME, runFader, false, 0, true); } private static function endFader():void{ if (systemShutOff){ closeSystem(); }; theStage.removeEventListener(Event.ENTER_FRAME, runFader); } } }//package
Section 224
//optionData (optionData) package { public class optionData { private var mul:Number; private var iN:Number;// = -1 private var option:Array; public static var LIST2:Array = new Array(); public static var LIST:Array = new Array(); public function optionData():void{ iN = -1; option = new Array(); mul = (1 + (Math.random() * 4)); super(); make(0, 0, 0, 5, "Destroy", [0, 24], "Demolish this building to make room for a new one."); option.buildOrder = 0; make(0, 0, 0, 1, "Main Base", [0, 0], "X"); option.buildOrder = 1; make(40, 30, 30, 5, "Build Outpost", [1, 0], "You can deploy marines, tanks, and other combat vehicles from this building."); option.buildOrder = 2; make(40, 30, 30, 5, "Build Forge", [1, 0], "You can deploy sky drones and andriod forces from this building."); option.buildOrder = 3; make(40, 10, 30, 5, "Build Hospital", [1, 0], "Treat the wounded, and deploy meditecs from this building."); option.buildOrder = 4; make(50, 0, 0, 10, "Build Bank", [1, 0], "This building allows you to gain financial resources."); option.buildOrder = 5; make(60, 25, 25, 15, "Build Armory", [1, 0], "This building allows to call in any additional supplies."); option.buildOrder = 6; make(50, 0, 0, 10, "Build Generator", [1, 0], "This building allows you to gain energy resources."); option.buildOrder = 7; make(80, 30, 30, 20, "Build Special Operations", [1, 0], "Launch missiles from this building."); option.buildOrder = 8; make(30, 0, 0, 17, "Upgrade to Barracks", [1, 0], "Upgrade this building into a Barracks (Tier 2)."); option.buildOrder = 9; make(60, 0, 0, 15, "Upgrade to Manufactory", [1, 0], "Upgrade this building into a Manfactory (Tier 2)."); option.buildOrder = 10; make(50, 0, 0, 15, "Upgrade to Treasury", [1, 0], "Upgrade this building into a Treasury (Tier 3)."); option.buildOrder = 13; make(50, 0, 0, 15, "Upgrade to Solar Grid", [1, 0], "Upgrade this building into a Solar Grid (Tier 3)."); option.buildOrder = 14; make(0, 2, 0, 1.2, "Deploy Marine", [0, 6], "Light infantry unit, armed with shocks rifles and anti-air rockets."); option.buildUnits = new Array([1]); make(5, 10, 0, 5, "Deploy Chronite Tank", [0, 7], "Heavily armored vehicle. Fires explosive shells at ground targets."); option.buildUnits = new Array([2]); make(3, 0, 7, 4, "Deploy Scout", [0, 8], "Fast flying drone with light armor. Fitted with formidable chronite-piercing weapons."); option.buildUnits = new Array([3]); make(0, 0, 5, 1.2, "Deploy A25-Roman", [0, 9], "Standard andriod soldier, armed with pulse rifles. Cannot attack air units."); option.buildUnits = new Array([4]); make(0, 6, 0, 8, "Deploy Meditec", [0, 10], "Light infantry unit that heals injured men and fixes any damaged ground vehicles."); option.buildUnits = new Array([5]); make(5, 16, 0, 5, "Deploy Gröditz", [0, 12], "Heavy bi-pedal 'Walker' unit with rapid firing weapons, effective against both ground and air targets."); option.buildUnits = new Array([6]); make(23, 5, 3, 7.3, "Deploy Phantom", [0, 13], "Assault helicopter that can rain down rapid fire against ground targets, but cannot fire at air targets."); option.buildUnits = new Array([7]); make(0, 0, 21, 5, "Deploy Sakata Mk-II", [0, 14], "Standard Sakata body, fitted with strong anti-air cannons, but unable to attack ground targets."); option.buildUnits = new Array([9]); make(0, 0, 26, 3, "Deploy Sakata Spider", [0, 15], "Fast and heavily armored assault unit with self-healing capabilities. Cannot attack air targets."); option.buildUnits = new Array([8]); make(0, 30, 10, 3, "Deploy Hover Tank", [0, 16], "Specially armored tank, equipped with deadly anti-Chronite ground weapons."); option.buildUnits = new Array([10]); make(30, 50, 25, 15, "Deploy Black Queen", [0, 17], "Heavily armored air superiority fighter. Can drop bombs on ground targets every 12 seconds."); option.buildUnits = new Array([11]); make(7, 12, 0, 1.6, "Deploy Sniper", [0, 11], "Light infantry unit, armed with a long range anti-Chronite sniper rifle."); option.buildUnits = new Array([12]); make(0, 0, 0, 5, "Resuscitate", [0, 20], "Gain 3 additional manpower over 5 seconds."); option.buildResource[1] = 3; make(0, 0, 0, 4.8, "Stock Exhange", [0, 19], "Gain 3 additional money over 5 seconds."); option.buildResource[0] = 3; make(0, 0, 0, 4.8, "Generate Power", [0, 21], "Gain 3 additional energy over 5 seconds."); option.buildResource[2] = 3; make(0, 0, 0, 3, "Gold Trading", [0, 19], "Gain 4 additional money over 3 seconds."); option.buildResource[0] = 4; make(0, 0, 0, 3, "Absorb Power", [0, 21], "Gain 4 additional energy over 3 seconds."); option.buildResource[2] = 4; make(0, 0, 0, 10, "Plan Reinforcements", [0, 20], "Gain 9 additional manpower over 10 seconds."); option.buildResource[1] = 9; make(0, 0, 0, 10, "Plan Financial Support", [0, 19], "Gain 9 additional money over 10 seconds."); option.buildResource[0] = 9; make(0, 0, 0, 10, "Plan Reserve Energy", [0, 21], "Gain 9 additional energy over 10 seconds."); option.buildResource[2] = 9; make(80, 0, 50, 10, "Upgrade Structure", [1, 0], "Uprade this building into an Arsenal (Tier 3). Requires an Armory to upgrade."); option.buildOrder = 11; option.buildReq = 6; make(70, 0, 20, 10, "Upgrade Structure", [1, 0], "Upgrade this building into a Mechanics Terminal (Tier 3). Requires an Armory to upgrade."); option.buildOrder = 12; option.buildReq = 6; make(0, 0, 0, 5, "Salvage", [0, 21], "Gain 2 energy over 5 seconds."); option.buildResource[2] = 2; make(0, 0, 0, 30, "Create Clones", [0, 20], "Gain 20 manpower over 30 seconds."); option.buildResource[1] = 20; make(60, 0, 15, 1, "Launch Missile", [0, 22], "Launches a deadly missile at enemies closest to the base."); option.buildMissile = 1; make(5, 16, 0, 5, "Deploy Gröditz", [0, 12], "Requires Armory to deploy. Heavy bi-pedal 'Walker' unit with rapid firing weapons, effective against both ground and air targets."); option.buildUnits = new Array([6]); option.buildReq = 6; make(0, 0, 21, 5, "Deploy Sakata Mk-II", [0, 14], "Requires Armory to deploy. Standard Sakata body, fitted with strong anti-air cannons, but unable to attack ground targets."); option.buildUnits = new Array([9]); option.buildReq = 6; make(15, 0, 60, 1, "Launch Missile", [0, 23], "Launches a deadly missile at enemies closest to the base."); option.buildMissile = 1; make(75, 20, 0, 1, "Convert to Avionics", [1, 0], "Convert this building into an Avionics Terminal."); option.buildOrder = 15; make(3, 0, 6, 2.5, "Deploy Scout", [0, 8], "Fast flying drone with light armor. Fitted with formidable chronite-piercing weapons."); option.buildUnits = new Array([3]); make(40, 10, 40, 15, "Deploy Gladiator", [0, 18], "Specially developed branch of the Roman andriods, with stronger parts, and air-attack capabilities."); option.buildUnits = new Array([13]); make(0, 0, 0, 3, "Recruit", [0, 20], "Gain 1 manpower over 3 seconds."); option.buildResource[1] = 1; make(0, 0, 0, 1, "Scramble Rescue Team", [0, 25], "Instantly deploy 3 Meditecs.", 20); option.buildUnits = new Array(5, 5, 5); make(0, 0, 0, 1, "Deploy Modified Sakata", [0, 26], "Deploy a specialized Sakata unit.", 65); option.buildUnits = new Array([14]); make(0, 0, 0, 1, "Deploy Modified Phantom", [0, 27], "Deploy a specialized Phantom unit.", 50); option.buildUnits = new Array([15]); make(0, 0, 0, 1, "Deploy Special Forces", [0, 28], "Deploy a team of highly trained infantry.", 65); option.buildUnits = new Array(16, 16, 16, 16, 5, 5, 12, 12); make(0, 0, 0, 1, "Deploy Far Sniper", [0, 29], "Deploy a specialized Sniper that can attack ground units at a very long range.", 35); option.buildUnits = new Array([17]); make(0, 0, 0, 5, "Black Operations", [0, 30], "Gain 2 influence over 5 seconds."); option.buildResource[3] = 2; make(0, 0, 0, 2, "Deploy Saint", [0, 32], "Deploy a flying drone built with Hover Tank technology.", 50); option.buildUnits = new Array([18]); make(0, 0, 0, 2, "Deploy A27-Pride", [0, 31], "Deploy an Android unit with long range suppressing fire.", 35); option.buildUnits = new Array([19]); make(0, 0, 0, 1, "Upgrade Marines", [0, 36], "Upgrade Marines.", 2); option.buildTech = 0; make(65, 0, 0, 15, "Upgrade to War Sanctum", [1, 0], "Upgrade this building into a War Sanctum (Tier 3)."); option.buildOrder = 15; make(0, 0, 0, 3, "Recover", [0, 20], "Gain 4 additional manpower over 3 seconds."); option.buildResource[1] = 4; make(0, 1, 0, 3, "Special Medic", [0, 0], "", 1); } private function make(a:uint, b:uint, c:uint, d:Number, e:String, f:Array, g:String, h:uint=0):void{ iN++; LIST[iN] = new Array(); LIST2[iN] = new Array(); LIST[iN].push(a, b, c, d, h); LIST2[iN].push((a * mul), (b * mul), (c * mul), (d * mul), (h * mul)); LIST[iN].orders = new Array(); option = LIST[iN]; option.id = iN; option.iconGraphic = new Array(); option.iconGraphic[0] = f[0]; option.iconGraphic[1] = f[1]; option.nameLabel = e; option.buildOrder = null; option.buildResource = new Array(0, 0, 0, 0); option.buildStock = null; option.buildTech = null; option.buildUnits = null; option.buildMissile = null; option.buildReq = null; option.stockReq = null; option.techReq = null; option.tip = new tipObject(e, a, b, c, g, h); } public function checkData():Boolean{ var i:*; var j:*; var boss:Number; for (i in LIST) { for (j in LIST[i]) { boss = (Math.round(((LIST2[i][j] / mul) * 1000)) / 1000); if (((!((LIST2[i][j] == null))) && (!((LIST[i][j] == boss))))){ trace(((((((("OPTION: (" + i) + " ") + j) + ") // ") + LIST[i][j]) + " -- ") + boss)); return (true); }; }; }; return (false); } } }//package
Section 225
//playerKon (playerKon) package { import flash.events.*; import flash.utils.*; public class playerKon { public var aiDifficulty:uint;// = 1 public var playerName:String; public var mcd:Number;// = 5 public var m_gain:uint; public var tech:Array; public var e_gain:uint; public var desync:Boolean;// = false public var stock:Array; public var mce:Number;// = 0 public var aiOn:Boolean; public var AI:aiBody; public var CPUMODE:Boolean;// = false public var POS:uint; private var dataPair:Array; private var dataRegion:Array; public var cityColor:uint;// = 0 public var createGap:uint;// = 0 public var builds:Array; public var eteam:Team; public var race:uint; private var aiGainArray:Array; public var hackSend:Boolean;// = true private var coEff:Number;// = 1 private var T:Timer; public var team:Team; public var idCounter:uint; private var r2_e:int;// = 50 public var theBase:unitBody; private var r2_i:int;// = 0 private var r2_m:int;// = 50 private var r2_p:int;// = 50 private var dataSection:Array; public var p_gain:uint; private var dataZone:Array; private var incomeData:Array; public var idTag:String; public function playerKon(incomeSet:uint=0):void{ var ju:*; var th:*; CPUMODE = false; createGap = 0; T = new Timer(1000); cityColor = 0; desync = false; hackSend = true; mcd = 5; mce = 0; stock = new Array(); tech = new Array(); r2_p = 50; r2_m = 50; r2_e = 50; r2_i = 0; aiGainArray = new Array(0.7, 1, 1.5, 2.2); aiDifficulty = 1; coEff = 1; dataSection = new Array(4); dataZone = new Array(4); dataRegion = new Array(4); dataPair = new Array(2); incomeData = new Array(); builds = new Array(); super(); mcd = 5; mce = 0; CPUMODE = false; desync = false; if (!gameKon.theRoot.singlePlayerMode){ T.start(); T.addEventListener(TimerEvent.TIMER, fresh, false, 0, true); }; ju = 0; while (ju < 4) { dataZone[ju] = new Array(); dataRegion[ju] = new Array(); dataSection[ju] = new Array(); th = 0; while (th < 5) { dataZone[ju][th] = Math.round(((Math.random() * 100) + 1)); dataRegion[ju][th] = Math.round(((Math.random() * 100) - 50)); dataSection[ju][th] = (-(dataRegion[ju][th]) * dataZone[ju][th]); th++; }; ju++; }; dataPair = new Array(GRP(), GRP()); setRes(0, 50); setRes(1, 50); setRes(2, 50); setRes(3, 0); idCounter = 0; aiOn = false; AI = null; coEff = 1; race = incomeSet; incomeData = new Array(); incomeData[0] = new Array(2, 4, 4); incomeData[1] = new Array(4, 4, 2); incomeData[2] = new Array(3, 5, 2); builds = new Array(); gameKon.displayArray.push(this); setIncome(incomeSet); stock = [0, 0, 0, 0, 0, 0, 0, 0]; tech = [0, 0, 0, 0, 0, 0, 0, 0]; } public function killEvents():void{ if (AI != null){ AI.killAi(); AI = null; }; gameKon.theStage.removeEventListener("income", income); } public function getData(a:uint){ var data_A:uint; var data_B:uint; data_A = ((dataSection[a][dataPair[0]] / dataZone[a][dataPair[0]]) + dataRegion[a][dataPair[0]]); data_B = ((dataSection[a][dataPair[1]] / dataZone[a][dataPair[1]]) + dataRegion[a][dataPair[1]]); if (data_A == data_B){ return (data_B); }; return (0); } public function startAi(pos:uint, dif:uint, be:uint=99):void{ POS = pos; gameKon.theStage.removeEventListener("income", income); AI = new aiBody(this, be); setRes(0, 50); setRes(1, 50); setRes(2, 50); setRes(3, 0); aiOn = true; switch (dif){ case 1: aiDifficulty = 0; break; case 2: aiDifficulty = 1; break; case 3: aiDifficulty = 2; break; case 4: aiDifficulty = 3; break; default: aiDifficulty = 1; break; }; coEff = aiGainArray[aiDifficulty]; } private function fresh(te:TimerEvent):void{ createGap = 0; hackSend = true; } public function income(event:Event):void{ if (team != null){ if (team.baseAlive){ team.setGain(); addRes(3, team.gainFactor); if (getData(3) > 100){ setRes(3, 100); }; addRes(0, (m_gain * coEff)); addRes(1, (p_gain * coEff)); addRes(2, (e_gain * coEff)); }; }; } public function setIncome(incomeSet:uint=0):void{ gameKon.theStage.addEventListener("income", income); race = incomeSet; trace(((("Setting Income: " + race) + " For Player: ") + POS)); p_gain = incomeData[incomeSet][0]; m_gain = incomeData[incomeSet][1]; e_gain = incomeData[incomeSet][2]; } public function addRes(res:int, val:int):void{ var th:*; th = 0; while (th < 5) { dataSection[res][th] = (dataSection[res][th] + (val * dataZone[res][th])); th++; }; if (res == 3){ if (getData(3) > 100){ setRes(3, 100); }; }; } public function setRes(res:int, val:int):void{ var th:*; th = 0; while (th < 5) { dataSection[res][th] = ((val - dataRegion[res][th]) * dataZone[res][th]); th++; }; } public function get r_e():int{ return (getData(2)); } public function get r_m():int{ return (getData(0)); } private function GRP():uint{ return (Math.round((Math.random() * 4))); } public function get r_i():int{ return (getData(3)); } public function get r_p():int{ return (getData(1)); } } }//package
Section 226
//renderMachine (renderMachine) package { import flash.display.*; import flash.geom.*; public class renderMachine { public static var WEP:_weapon = new _weapon(); public static var UNIT:_unit = new _unit(); public static var trail:Array = new Array(); public static var poly:Number = 1; public static var hold:Sprite = new Sprite(); public static var weapons:Array = new Array(); private static var drawingBuls:Boolean = false; public static var Adjuster:adjuster = new adjuster(); public static var copyBase:Array = new Array(); public static var TRAIL:_trail = new _trail(); public static var units:Array = new Array(); public static var EX:_ex = new _ex(); public static var BaseGraphicsMain:baseGraphicsMain = new baseGraphicsMain(); public static var originalButtons:Array = new Array(); public static var ICON:_icon = new _icon(); public static var copyUnits:Array = new Array(); public static var explosions:Array = new Array(); public static var buildings:Array = new Array(); public function renderMachine(){ super(); } public static function renderGo(a, b:Number, c:Number, d:Array, e, anim:Boolean=false, animated:Boolean=false, ob:Object=null, col=null):void{ var i:uint; var fireFirst:*; var bitmap:*; var b2:Number; var c2:Number; var colorMatt:*; var colorTransform:ColorTransform; if (animated){ ob.run = new uint(0); ob.fire = new uint(0); ob.death = new uint(0); ob.killTime = new uint(0); ob.prefire = new uint(0); fireFirst = new uint(0); }; i = 0; if (hold.numChildren > 0){ hold.removeChildAt(0); }; hold.addChild(a); a.scaleX = (1 / poly); a.scaleY = (1 / poly); while (i < e.totalFrames) { i++; if ((b + c) == 0){ if (anim){ if (drawingBuls){ b2 = b; c2 = c; } else { b2 = (e.width * 1.1); c2 = (e.height * 1.1); }; } else { b2 = hold.width; c2 = hold.height; }; } else { b2 = b; c2 = c; }; if (col != null){ if (e.currentLabel == "death"){ } else { colorMatt = e.getChildAt(0); colorTransform = colorMatt.transform.colorTransform; colorTransform.color = col; colorMatt.transform.colorTransform = colorTransform; }; }; if (e.currentLabel == "run"){ if (ob.run == 0){ ob.run = (e.currentFrame - 1); }; }; if (e.currentLabel == "prefire"){ if (fireFirst == 0){ fireFirst = (e.currentFrame - 1); }; }; if (e.currentLabel == "fire"){ if (ob.fire == 0){ ob.fire = (e.currentFrame - 1); }; }; if (e.currentLabel == "death"){ if (ob.death == 0){ ob.death = (e.currentFrame - 1); }; }; bitmap = new BitmapData(b2, c2, true, 0); bitmap.draw(hold); d.push(bitmap); e.nextFrame(); }; if (animated){ if (ob.normal.length > 1){ ob.killTime = (ob.normal.length - ob.death); }; if (fireFirst != 0){ ob.prefire = (ob.fire - fireFirst); }; }; } public static function renderAll(r_id:uint, col:Array=null, r_pop:uint=0):void{ var maxR:*; var r:*; var wA:Array; var hA:Array; var Mask:Shape; trace(r_id); if (r_id == 0){ renderGo(BaseGraphicsMain, (59 / poly), (97.9 / poly), buildings, BaseGraphicsMain); }; if (r_id == 0){ renderGo(ICON, (45 / poly), (45 / poly), originalButtons, ICON); }; if (r_id == 2){ units[r_pop] = new Array(); UNIT = new _unit(); drawingBuls = false; maxR = UNIT.numChildren; r = 0; while (r < maxR) { units[r_pop][r] = new Object(); units[r_pop][r].normal = new Array(); renderGo(UNIT.getChildAt(0), 0, 0, units[r_pop][r].normal, UNIT.getChildAt(0), true, true, units[r_pop][r], col[r_pop]); r++; }; }; if (r_id == 0){ maxR = TRAIL.numChildren; r = 0; while (r < maxR) { trail[r] = new Object(); trail[r].normal = new Array(); renderGo(TRAIL.getChildAt(0), 0, 0, trail[r].normal, TRAIL.getChildAt(0), true); r++; }; }; if (r_id == 0){ maxR = WEP.numChildren; r = 0; while (r < maxR) { weapons[r] = new Object(); weapons[r].normal = new Array(); renderGo(WEP.getChildAt(0), 0, 0, weapons[r].normal, WEP.getChildAt(0), true); r++; }; }; if (r_id == 0){ wA = new Array(23, 23, 23, 125, 74, 63, 30, 30, 63, 20, 23, 25, 22, 22, 33); hA = new Array(23, 23, 23, 67, 74, 63, 30, 30, 63, 28, 23, 33, 33, 33, 33); maxR = EX.numChildren; drawingBuls = true; r = 0; while (r < maxR) { explosions[r] = new Object(); explosions[r].normal = new Array(); renderGo(EX.getChildAt(0), wA[r], hA[r], explosions[r].normal, EX.getChildAt(0), true); r++; }; }; if (r_id == 0){ drawingBuls = false; Adjuster.addChildAt(BaseGraphicsMain, 1); Mask = new Shape(); Adjuster.addChildAt(Mask, 2); Mask.graphics.beginFill(0xFF0000); Mask.graphics.drawRect(0, 0, 45, 45); Mask.graphics.endFill(); BaseGraphicsMain.mask = Mask; BaseGraphicsMain.gotoAndStop(0); BaseGraphicsMain.scaleX = (BaseGraphicsMain.scaleY = 0.85); BaseGraphicsMain.x = -2; BaseGraphicsMain.y = -19; renderGo(Adjuster, 45, 45, copyBase, BaseGraphicsMain); }; } } }//package
Section 227
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { public function ScrollArrowDown_disabledSkin(){ super(); } } }//package
Section 228
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { public function ScrollArrowDown_downSkin(){ super(); } } }//package
Section 229
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { public function ScrollArrowDown_overSkin(){ super(); } } }//package
Section 230
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { public function ScrollArrowDown_upSkin(){ super(); } } }//package
Section 231
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { public function ScrollArrowUp_disabledSkin(){ super(); } } }//package
Section 232
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { public function ScrollArrowUp_downSkin(){ super(); } } }//package
Section 233
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { public function ScrollArrowUp_overSkin(){ super(); } } }//package
Section 234
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { public function ScrollArrowUp_upSkin(){ super(); } } }//package
Section 235
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { public function ScrollBar_thumbIcon(){ super(); } } }//package
Section 236
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { public function ScrollThumb_downSkin(){ super(); } } }//package
Section 237
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { public function ScrollThumb_overSkin(){ super(); } } }//package
Section 238
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { public function ScrollThumb_upSkin(){ super(); } } }//package
Section 239
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { public function ScrollTrack_skin(){ super(); } } }//package
Section 240
//sfx_death1 (sfx_death1) package { import flash.media.*; public dynamic class sfx_death1 extends Sound { public function sfx_death1(){ super(); } } }//package
Section 241
//sfx_death2 (sfx_death2) package { import flash.media.*; public dynamic class sfx_death2 extends Sound { public function sfx_death2(){ super(); } } }//package
Section 242
//sfx_death3 (sfx_death3) package { import flash.media.*; public dynamic class sfx_death3 extends Sound { public function sfx_death3(){ super(); } } }//package
Section 243
//sfx_death4 (sfx_death4) package { import flash.media.*; public dynamic class sfx_death4 extends Sound { public function sfx_death4(){ super(); } } }//package
Section 244
//sfx_death5 (sfx_death5) package { import flash.media.*; public dynamic class sfx_death5 extends Sound { public function sfx_death5(){ super(); } } }//package
Section 245
//sfx_death6 (sfx_death6) package { import flash.media.*; public dynamic class sfx_death6 extends Sound { public function sfx_death6(){ super(); } } }//package
Section 246
//sfx_death7 (sfx_death7) package { import flash.media.*; public dynamic class sfx_death7 extends Sound { public function sfx_death7(){ super(); } } }//package
Section 247
//sfx_ex1 (sfx_ex1) package { import flash.media.*; public dynamic class sfx_ex1 extends Sound { public function sfx_ex1(){ super(); } } }//package
Section 248
//sfx_ex2 (sfx_ex2) package { import flash.media.*; public dynamic class sfx_ex2 extends Sound { public function sfx_ex2(){ super(); } } }//package
Section 249
//sfx_ex3 (sfx_ex3) package { import flash.media.*; public dynamic class sfx_ex3 extends Sound { public function sfx_ex3(){ super(); } } }//package
Section 250
//sfx_ex4 (sfx_ex4) package { import flash.media.*; public dynamic class sfx_ex4 extends Sound { public function sfx_ex4(){ super(); } } }//package
Section 251
//sfx_ex5 (sfx_ex5) package { import flash.media.*; public dynamic class sfx_ex5 extends Sound { public function sfx_ex5(){ super(); } } }//package
Section 252
//sfx_inter1 (sfx_inter1) package { import flash.media.*; public dynamic class sfx_inter1 extends Sound { public function sfx_inter1(){ super(); } } }//package
Section 253
//sfx_inter2 (sfx_inter2) package { import flash.media.*; public dynamic class sfx_inter2 extends Sound { public function sfx_inter2(){ super(); } } }//package
Section 254
//sfx_inter3 (sfx_inter3) package { import flash.media.*; public dynamic class sfx_inter3 extends Sound { public function sfx_inter3(){ super(); } } }//package
Section 255
//sfx_shot1 (sfx_shot1) package { import flash.media.*; public dynamic class sfx_shot1 extends Sound { public function sfx_shot1(){ super(); } } }//package
Section 256
//sfx_shot10 (sfx_shot10) package { import flash.media.*; public dynamic class sfx_shot10 extends Sound { public function sfx_shot10(){ super(); } } }//package
Section 257
//sfx_shot11 (sfx_shot11) package { import flash.media.*; public dynamic class sfx_shot11 extends Sound { public function sfx_shot11(){ super(); } } }//package
Section 258
//sfx_shot12 (sfx_shot12) package { import flash.media.*; public dynamic class sfx_shot12 extends Sound { public function sfx_shot12(){ super(); } } }//package
Section 259
//sfx_shot2 (sfx_shot2) package { import flash.media.*; public dynamic class sfx_shot2 extends Sound { public function sfx_shot2(){ super(); } } }//package
Section 260
//sfx_shot3 (sfx_shot3) package { import flash.media.*; public dynamic class sfx_shot3 extends Sound { public function sfx_shot3(){ super(); } } }//package
Section 261
//sfx_shot4 (sfx_shot4) package { import flash.media.*; public dynamic class sfx_shot4 extends Sound { public function sfx_shot4(){ super(); } } }//package
Section 262
//sfx_shot5 (sfx_shot5) package { import flash.media.*; public dynamic class sfx_shot5 extends Sound { public function sfx_shot5(){ super(); } } }//package
Section 263
//sfx_shot6 (sfx_shot6) package { import flash.media.*; public dynamic class sfx_shot6 extends Sound { public function sfx_shot6(){ super(); } } }//package
Section 264
//sfx_shot7 (sfx_shot7) package { import flash.media.*; public dynamic class sfx_shot7 extends Sound { public function sfx_shot7(){ super(); } } }//package
Section 265
//sfx_shot8 (sfx_shot8) package { import flash.media.*; public dynamic class sfx_shot8 extends Sound { public function sfx_shot8(){ super(); } } }//package
Section 266
//sfx_shot9 (sfx_shot9) package { import flash.media.*; public dynamic class sfx_shot9 extends Sound { public function sfx_shot9(){ super(); } } }//package
Section 267
//Slow1 (Slow1) package { import flash.media.*; public dynamic class Slow1 extends Sound { public function Slow1(){ super(); } } }//package
Section 268
//Slow2 (Slow2) package { import flash.media.*; public dynamic class Slow2 extends Sound { public function Slow2(){ super(); } } }//package
Section 269
//soundKon (soundKon) package { import flash.events.*; import flash.utils.*; import flash.media.*; public class soundKon { private static var T:Timer = new Timer(10); private static var RightMixer:SoundTransform = new SoundTransform(); private static var sChanL:SoundChannel = new SoundChannel(); private static var LeftMixer:SoundTransform = new SoundTransform(); private static var sChanR:SoundChannel = new SoundChannel(); private static var playCheck:Array = new Array(); public static var soundOn:Boolean = true; private static var sfxArray:Array = new Array(); public function soundKon(){ super(); } private static function clearPlayed(te:TimerEvent):void{ var i:*; var j:*; for (i in sfxArray) { for (j in sfxArray[i]) { sfxArray[i][j].played = false; }; }; } public static function playSound(pool:uint=0, sound:uint=0, chan:Boolean=false):void{ if (soundOn){ if (sound != 0){ if (!sfxArray[pool][sound].played){ if (chan){ sChanR = sfxArray[pool][sound].s.play(); } else { sChanL = sfxArray[pool][sound].s.play(); }; if (((!((pool == 3))) && (!((sound == 3))))){ sfxArray[pool][sound].played = true; }; }; }; }; } public static function init():void{ T.start(); T.addEventListener(TimerEvent.TIMER, clearPlayed); sfxArray[0] = new Array(); sfxArray[0].push({played:false, s:null}); sfxArray[0].push({played:false, s:new sfx_shot1()}); sfxArray[0].push({played:false, s:new sfx_shot2()}); sfxArray[0].push({played:false, s:new sfx_shot3()}); sfxArray[0].push({played:false, s:new sfx_shot4()}); sfxArray[0].push({played:false, s:new sfx_shot5()}); sfxArray[0].push({played:false, s:new sfx_shot6()}); sfxArray[0].push({played:false, s:new sfx_shot7()}); sfxArray[0].push({played:false, s:new sfx_shot8()}); sfxArray[0].push({played:false, s:new sfx_shot9()}); sfxArray[0].push({played:false, s:new sfx_shot10()}); sfxArray[0].push({played:false, s:new sfx_shot11()}); sfxArray[0].push({played:false, s:new sfx_shot12()}); sfxArray[1] = new Array(); sfxArray[1].push({played:false, s:null}); sfxArray[1].push({played:false, s:new sfx_death1()}); sfxArray[1].push({played:false, s:new sfx_death2()}); sfxArray[1].push({played:false, s:new sfx_death3()}); sfxArray[1].push({played:false, s:new sfx_death4()}); sfxArray[1].push({played:false, s:new sfx_death5()}); sfxArray[1].push({played:false, s:new sfx_death6()}); sfxArray[1].push({played:false, s:new sfx_death7()}); sfxArray[2] = new Array(); sfxArray[2].push({played:false, s:null}); sfxArray[2].push({played:false, s:new sfx_ex1()}); sfxArray[2].push({played:false, s:new sfx_ex2()}); sfxArray[2].push({played:false, s:new sfx_ex3()}); sfxArray[2].push({played:false, s:new sfx_ex4()}); sfxArray[2].push({played:false, s:new sfx_ex5()}); sfxArray[3] = new Array(); sfxArray[3].push({played:false, s:null}); sfxArray[3].push({played:false, s:new sfx_inter1()}); sfxArray[3].push({played:false, s:new sfx_inter2()}); sfxArray[3].push({played:false, s:new sfx_inter3()}); } public static function surround(a:Number):void{ var leftPan:Number; var rightPan:Number; var leftVol:Number; var rightVol:Number; leftPan = (((a * -1) * 0.35) - 0.35); rightPan = ((a * -0.35) + 0.35); if (a < -1){ a = -1; }; if (a > 1){ a = 1; }; if (a > 0){ leftVol = (1 - (a * 0.5)); } else { leftVol = 1; }; if (a < 0){ rightVol = (1 + (a * 0.5)); } else { rightVol = 1; }; RightMixer.volume = rightVol; LeftMixer.volume = leftVol; RightMixer.pan = rightPan; LeftMixer.pan = leftPan; sChanL.soundTransform = LeftMixer; sChanR.soundTransform = RightMixer; } } }//package
Section 270
//Team (Team) package { public class Team { public var rallyPoint:Number; public var air:Array; public var ground:Array; public var all:Array; public var baseStartX:Number; public var midPoint:Number; public var baseStartY:Number; public var gainFactor:Number;// = 0 public var startX:Number; public var startY:Number; public var baseAlive:Boolean; public function Team():void{ gainFactor = 0; super(); baseAlive = true; ground = new Array(); air = new Array(); all = new Array(); } public function setGain():void{ var copyArray:Array; var scan_b:*; var controlPercent:Number; copyArray = new Array(); for (scan_b in all) { copyArray.push({xPOS:all[scan_b].x}); }; if (this == unitKon.Team2){ copyArray.sortOn("xPOS", Array.NUMERIC); controlPercent = (100 * ((startX - copyArray[0].xPOS) / 800)); } else { copyArray.sortOn("xPOS", (Array.DESCENDING | Array.NUMERIC)); controlPercent = (100 * ((copyArray[0].xPOS - startX) / 800)); }; gainFactor = 0; if (controlPercent > 0){ gainFactor = 1; }; if (controlPercent > 25){ gainFactor = 2; }; if (controlPercent > 50){ gainFactor = 3; }; } } }//package
Section 271
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { public function TextInput_disabledSkin(){ super(); } } }//package
Section 272
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { public function TextInput_upSkin(){ super(); } } }//package
Section 273
//tipObject (tipObject) package { public class tipObject { public var tipCostM:uint; public var tipName:String; public var tipCostP:uint; public var tipDesc:String; public var tipCostI:uint; public var tipCostE:uint; public function tipObject(b:String, c:uint, d:uint, e:uint, f:String, g:uint=0):void{ super(); tipName = b; tipCostM = c; tipCostP = d; tipCostE = e; tipDesc = f; tipCostI = g; } } }//package
Section 274
//toolTip (toolTip) package { import flash.display.*; import flash.events.*; import flash.text.*; public class toolTip extends Sprite { private static var tf2:TextFormat = new TextFormat(); private static var theRoot:Object; private static var t_desc:TextField = new TextField(); private static var CostTip2:costTip2 = new costTip2(); private static var osNum:Number = new Number(); private static var tip_g; private static var killTime:uint = 0; private static var theStage:Stage; private static var FONT:MainFont = new MainFont(); private static var tip_t; private static var t_cost_e:TextField = new TextField(); private static var t_cost_m:TextField = new TextField(); private static var t_cost_p:TextField = new TextField(); private static var CostTip:costTip = new costTip(); private static var tf:TextFormat = new TextFormat(); private static var t_name:TextField = new TextField(); public static var errorTip:Boolean; private static var tipState:Boolean = false; public function toolTip(s:Stage, r:Object, offSetX:Number=15, offSetSize:Number=150):void{ super(); errorTip = false; theStage = s; theRoot = r; gameKon.displayArray.push(this); tf.font = FONT.fontName; tf.size = 14; tf.color = 0xFFFFFF; tf2.font = FONT.fontName; tf2.size = 14; tf2.color = 3354667; addChild(t_name); addChild(t_desc); addChild(CostTip); addChild(CostTip2); CostTip.visible = false; CostTip.x = offSetX; CostTip2.visible = false; CostTip2.x = offSetX; t_name.text = "Name Plate"; t_name.border = true; t_name.borderColor = 0x111111; t_name.background = true; t_name.backgroundColor = 0x1A1A1A; t_name.selectable = false; t_name.width = offSetSize; t_name.x = offSetX; t_name.y = -20; t_name.embedFonts = true; t_name.autoSize = TextFieldAutoSize.LEFT; t_name.multiline = true; t_name.wordWrap = true; t_name.setTextFormat(tf); t_desc.text = "Text Plate"; t_desc.border = true; t_desc.borderColor = 0x111111; t_desc.background = true; t_desc.backgroundColor = 13223358; t_desc.selectable = false; t_desc.width = offSetSize; t_desc.x = offSetX; t_desc.embedFonts = true; t_desc.autoSize = TextFieldAutoSize.LEFT; t_desc.multiline = true; t_desc.wordWrap = true; t_desc.setTextFormat(tf2); t_name.visible = false; t_desc.visible = false; } public function killEvents():void{ theStage.removeEventListener(Event.ENTER_FRAME, cd_killTip); } public static function unTip():void{ errorTip = false; tipState = true; t_name.visible = false; t_desc.visible = false; CostTip.visible = false; CostTip2.visible = false; theStage.removeEventListener(Event.ENTER_FRAME, correctTip); } public static function setOffset():void{ if ((theStage.mouseY + osNum) > 570){ theRoot.ToolTip.y = (570 - osNum); }; } private static function correctTip(event:Event){ setOffset(); } public static function tip(t:Object, g:uint):void{ tip_t = t; tip_g = g; tipState = true; theStage.addEventListener(Event.ENTER_FRAME, correctTip, false, 0, true); if (g == 1){ t_name.text = t.tipName; t_name.setTextFormat(tf); t_desc.text = "This is currently in production."; t_desc.setTextFormat(tf2); t_name.visible = true; t_desc.visible = true; osNum = (t_name.height + t_desc.height); setOffset(); t_desc.y = (t_name.y + t_name.height); } else { if (t.tipName == null){ t_desc.text = t.tipDesc; t_desc.setTextFormat(tf2); t_desc.visible = true; osNum = t_desc.height; setOffset(); t_desc.y = t_name.y; } else { t_name.text = t.tipName; t_name.setTextFormat(tf); t_desc.text = t.tipDesc; t_desc.setTextFormat(tf2); t_name.visible = true; t_desc.visible = true; osNum = (t_name.height + t_desc.height); setOffset(); t_desc.y = (t_name.y + t_name.height); if ((((t.tipCostM + t.tipCostP) + t.tipCostE) + t.tipCostI) > 0){ if (t.tipCostI > 0){ CostTip2.visible = true; CostTip2.c_i.text = t.tipCostI; osNum = ((t_name.height + CostTip2.height) + t_desc.height); } else { CostTip.visible = true; CostTip.c_m.text = t.tipCostM; CostTip.c_p.text = t.tipCostP; CostTip.c_e.text = t.tipCostE; osNum = ((t_name.height + CostTip.height) + t_desc.height); }; setOffset(); CostTip.y = (t_name.y + t_name.height); CostTip2.y = (t_name.y + t_name.height); t_desc.y = ((t_name.y + t_name.height) + CostTip.height); }; }; }; } public static function giveError(msg1:String, msg2:String):void{ if (t_name.visible){ errorTip = true; t_name.text = msg1; t_name.setTextFormat(tf); CostTip.visible = false; CostTip2.visible = false; t_name.visible = true; t_desc.y = (t_name.y + t_name.height); t_desc.text = msg2; t_desc.setTextFormat(tf2); osNum = (t_desc.height + t_name.height); theStage.addEventListener(Event.ENTER_FRAME, cd_killTip); killTime = 0; setOffset(); }; } private static function cd_killTip(event:Event):void{ killTime++; if (killTime == 75){ errorTip = false; theStage.removeEventListener(Event.ENTER_FRAME, cd_killTip); if (t_desc.visible){ tip(tip_t, tip_g); }; }; } } }//package
Section 275
//Tracer (Tracer) package { import flash.display.*; import flash.events.*; import flash.text.*; public dynamic class Tracer extends MovieClip { public var tr:TextField; public var traBut:SimpleButton; public function Tracer(){ super(); addFrameScript(0, frame1); } public function hideTra(e:MouseEvent):void{ if (!dataTracer.progressing){ dataTracer.hideTracer(); dataTracer.theStage.dispatchEvent(new chatEvent("CLOSETRACER")); }; } function frame1(){ traBut.addEventListener(MouseEvent.CLICK, hideTra, false, 0, true); } } }//package
Section 276
//trailBody (trailBody) package { import flash.events.*; public class trailBody extends displayBody { private var decayTimeMax:uint; private var decayTime:uint; public static var decay:Array = new Array(null, 25, 40, 20, 20, 17, 40, 7, 32, 7, 7, 7, 40); public static var intensity:Array = new Array(null, 7, 3, 2, 4, 4, 3, 1, 2, 1, 1, 1, 3); public static var hl:Array = new Array(null, 0.3, 0.4, 0.5, 0.5, 0.6, 0.4, 0.4, 0.4, 0.3, 0.4, 0.4, 0.4); public static var yGap:Array = new Array(null, 4, 2, 5, 5, 8, 5, 2, 5, 3, 3, 3, 2); public static var xGap:Array = new Array(null, 4, 12, 5, 5, 8, 12, 2, 12, 3, 3, 3, 12); public function trailBody(id:uint, h:Number, d:Number):void{ var i:Boolean; var dt:uint; super(); createDisplay(renderMachine.trail[id], true, false); addEventListener(Event.ENTER_FRAME, trailAction); i = true; dt = 0; while (i) { dt++; if ((((Math.random() > h)) || ((dt > 10)))){ i = false; }; }; decayTime = (decayTimeMax = Math.round((d * dt))); } public function terminateEvents():void{ end(); } public function trailAction(event:Event){ decayTime--; y = (y + 0.5); alpha = (decayTime / decayTimeMax); if (decayTime == 0){ removeEventListener(Event.ENTER_FRAME, trailAction); unitKon.killTrail(this); }; } } }//package
Section 277
//unitBody (unitBody) package { import flash.events.*; import flash.filters.*; public class unitBody extends displayBody { public var kiteNow:Boolean;// = false public var aiOverride:Boolean;// = false public var behave:uint;// = 0 public var normalDir:Number;// = 1 private var getClose:Number; public var minX:Number; public var aiPoint:Number;// = 0 public var eteam:Team; private var speedArray:Array; public var speed:Number;// = 5 public var unitValue:Number; public var team:Team; public var maxLife:Number;// = 100 private var a_wep:weapon; public var assocBase:baseBuilding;// = null public var aiKite:Boolean;// = false private var healer:Boolean;// = false public var INFO:Object; public var mainTarget:unitBody; public var exDie:uint; public var player:playerKon; private var maxClose:Number;// = 40 public var life:Number; private var colorMat:ColorMatrixFilter; public var moveDir:Number;// = 1 public var ID:uint; public var rallyMode:Boolean;// = false private var deathSound:uint; private var armor:uint; private var aiOverrideCounter:uint;// = 0 public var belong:Array; private var killTime:uint; private var tarX:Number;// = 800 private var selfHeal:Number;// = 0 public var prefire:uint; private var wep:weapon; private var mat:Array; public var aiPosition:Boolean;// = false public var maxX:Number; public var addResGo:Boolean;// = false private var g_wep:weapon; private var task:uint; public var setFireX:Number; public var setFireY:Number; public var addResGoI:uint;// = 0 private var targetBy:Array; public var unitId:String; private var targetList:Array; public var airUnit:Boolean;// = false public static var armorCrossCheck:Array; public function unitBody(id:uint, p:playerKon, rand:Number=-1):void{ airUnit = false; maxLife = 100; life = maxLife; speed = 5; healer = false; selfHeal = 0; aiOverride = false; aiKite = false; aiPosition = false; rallyMode = false; aiPoint = 0; aiOverrideCounter = 0; kiteNow = false; addResGo = false; addResGoI = 0; normalDir = 1; assocBase = null; moveDir = 1; behave = 0; speedArray = [0, 0.5, 0.8, 1, 1.4, 1.6, 1.9]; maxClose = 40; mat = [2.6, 0, 0, 0, 2.40000000000001, 0, 2.6, 0, 0, 2.40000000000001, 0, 0, 2.6, 0, 2.40000000000001, 0, 0, 0, 1, 0]; colorMat = new ColorMatrixFilter(mat); tarX = 800; super(); doubleClickEnabled = true; gameKon.displayArray.push(this); INFO = unitData.LIST[id]; life = (maxLife = INFO.Life); unitValue = INFO.Value; armor = INFO.Armor; airUnit = INFO.Air; healer = INFO.Healer; selfHeal = INFO.selfHeal; setFireX = INFO.setX; exDie = INFO.exDie; setFireY = INFO.setY; deathSound = INFO.deathSound; ID = id; if (rand == -1){ getClose = Math.random(); } else { getClose = rand; }; player = p; createDisplay(renderMachine.units[player.cityColor][INFO.Graphic]); killTime = renderMachine.units[player.cityColor][INFO.Graphic].killTime; prefire = renderMachine.units[player.cityColor][INFO.Graphic].prefire; if (INFO.Weapon_G != null){ g_wep = new weapon(this, INFO.Weapon_G); } else { g_wep = null; }; if (INFO.Weapon_A != null){ a_wep = new weapon(this, INFO.Weapon_A); } else { a_wep = null; }; addEventListener(Event.ENTER_FRAME, go, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, displayStatsTrigger, false, 0, true); addEventListener(MouseEvent.DOUBLE_CLICK, selectAllType, false, 0, true); } private function displayStatsTrigger(event:Event):void{ displayStats(); } public function makeOption(id:uint):void{ var selU:Array; var vars:*; if (id != behave){ if (gameKon.theRoot.singlePlayerMode){ selU = new Array(); selU.push(unitId); gameKon.doUnitOption(id, selU); } else { vars = new Object(); vars.id = id; vars.orderArray = new Array(); vars.orderArray.push(unitId); mpKon.sendOff(vars, true, "orderUnit"); }; }; } public function fil():void{ filters = [colorMat]; } public function killEvents():void{ unitKon.removeUnit(this); } public function getTarget():void{ var cteam:*; var w:*; var theUnit:*; if (behave != 2){ targetList = new Array(); if (healer){ cteam = team; } else { cteam = eteam; }; if (g_wep != null){ for (w in cteam.ground) { if (((!((w == 0))) || (!(healer)))){ theUnit = cteam.ground[w]; if (theUnit != this){ if (((!(healer)) || ((theUnit.life < theUnit.maxLife)))){ targetList.push({u:theUnit, r:getRange(theUnit, g_wep), t:getTime(theUnit), theWep:g_wep}); }; }; }; }; }; if (a_wep != null){ for (w in cteam.air) { theUnit = cteam.air[w]; if (theUnit != this){ if (((!(healer)) || ((theUnit.life < theUnit.maxLife)))){ targetList.push({u:theUnit, r:getRange(theUnit, a_wep), t:getTime(theUnit), theWep:a_wep}); }; }; }; }; if (healer){ targetList.sortOn(["r", "t"], [Array.NUMERIC, Array.NUMERIC]); } else { targetList.sortOn(["r", "t"], [Array.NUMERIC, Array.NUMERIC]); }; if (targetList.length > 0){ disWeps(); mainTarget = targetList[0].u; wep = targetList[0].theWep; } else { mainTarget = null; disWeps(); }; targetList = null; }; if (behave == 2){ if ((((((eteam.all.length > 0)) && (!(healer)))) && (!((g_wep == null))))){ mainTarget = eteam.all[0]; } else { mainTarget = null; disWeps(); }; }; } public function unfil():void{ filters = []; } public function terminateEvents():void{ killEventsSoft(); end(); } public function endUnitBegin():void{ if (x > 800){ soundKon.playSound(1, deathSound, true); } else { soundKon.playSound(1, deathSound, false); }; killEventsSoft(); if (assocBase != null){ team.baseAlive = false; assocBase.destroy(); }; if (killTime == 0){ unitKon.removeUnit(this); } else { modeChange(3); addEventListener(Event.ENTER_FRAME, killThis); }; } private function go(event:Event):void{ if (((((aiPosition) && (!(kiteNow)))) && (!(aiOverride)))){ if ((((((x < (aiPoint - 25))) && ((normalDir == 1)))) || ((((x > (aiPoint + 25))) && ((normalDir == -1)))))){ makeOption(0); } else { if ((((((x > (aiPoint + 25))) && ((normalDir == 1)))) || ((((x < (aiPoint - 25))) && ((normalDir == -1)))))){ makeOption(3); } else { makeOption(1); if (rallyMode){ rallyMode = false; aiPosition = false; }; }; }; } else { if (aiOverride){ makeOption(0); aiOverrideCounter--; if (aiOverrideCounter == 0){ aiOverride = false; }; }; }; if (life > 0){ getTarget(); if (selfHeal > 0){ life = (life + selfHeal); }; if (life > maxLife){ life = maxLife; }; if (behave == 3){ if (wep != null){ wep.disengage(); }; if ((((((x > minX)) && ((normalDir == 1)))) || ((((x < minX)) && ((normalDir == -1)))))){ moveDir = -(normalDir); moveUnit(); }; } else { if (mainTarget != null){ if (checkRange()){ wep.engage(healer); scaleX = moveDir; if (behave != 1){ if (checkRange((getClose * maxClose)) == false){ moveUnit(); }; }; } else { if (behave != 1){ moveUnit(); }; }; } else { if (behave != 1){ if ((((((x < maxX)) && ((normalDir == 1)))) || ((((x > maxX)) && ((normalDir == -1)))))){ moveDir = normalDir; moveUnit(); }; }; }; }; }; } private function moveUnit():void{ x = (x + (moveDir * (speedArray[INFO.Speed] * _t.theFactor))); scaleX = moveDir; modeChange(1); } private function killEventsSoft():void{ removeEventListener(Event.ENTER_FRAME, go); removeEventListener(MouseEvent.MOUSE_DOWN, displayStatsTrigger); removeEventListener(MouseEvent.MOUSE_OVER, fil); removeEventListener(MouseEvent.MOUSE_OUT, unfil); if (wep != null){ wep.disengage(); wep = null; }; if (a_wep != null){ a_wep.disengage(); a_wep = null; }; if (g_wep != null){ g_wep.disengage(); g_wep = null; }; } private function disWeps():void{ if (wep != null){ wep.disengage(); }; if (g_wep != null){ g_wep.disengage(); }; if (a_wep != null){ a_wep.disengage(); }; } public function displayStats():void{ displayKon.updateUnit([this]); } private function checkRange(getC:Number=0){ if (mainTarget.x >= x){ moveDir = 1; } else { moveDir = -1; }; if (getRange(mainTarget, wep, getC) == 0){ return (true); }; disWeps(); return (false); } public function killThis(event:Event):void{ killTime = (killTime - 1); if (killTime == 0){ if (exDie > 0){ unitKon.addEx(exDie, x, y); if (addResGo){ unitKon.addEx(addResGoI, x, y, false); }; }; unitKon.removeUnit(this); removeEventListener(Event.ENTER_FRAME, killThis); }; } private function getTime(m:unitBody){ if (!healer){ return (Math.round((Math.random() * 10))); }; return ((m.life / m.maxLife)); } private function getRange(m:unitBody, n:weapon, getC:Number=0, retVal:Boolean=false){ var theHyp:Number; var theDist:Number; theHyp = Math.sqrt((Math.pow((m.x - x), 2) + Math.pow((m.y - y), 2))); theDist = ((theHyp - n.weaponRange) + getC); if ((((m.ID == 0)) || ((ID == 0)))){ theDist = (theDist - 100); }; if (((m.airUnit) || (airUnit))){ theDist = (theDist - 50); }; if (retVal){ trace(("DIST " + Math.round(((Math.floor(theDist) + 20) / speedArray[INFO.Speed])))); return (Math.round((Math.floor(theDist) + (20 / speedArray[INFO.Speed])))); }; if (theDist < 0){ theDist = 0; }; return (theDist); } public function takeHit(dam:Number, wepType:uint, shooter:unitBody=null, p:playerKon=null):void{ var realDam:*; var vars:Object; if (this != null){ realDam = Math.round((armorCrossCheck[armor][wepType] * dam)); if (life > 0){ if (aiPosition){ if (shooter != null){ if (((((shooter.airUnit) && (!((a_wep == null))))) || (((!(shooter.airUnit)) && (!((g_wep == null))))))){ aiOverrideCounter = 90; aiOverride = true; }; }; }; life = (life - realDam); if (life > maxLife){ life = maxLife; }; if (life <= 0){ life = 0; if (gameKon.theRoot.singlePlayerMode){ unitKon.killOffUnit(unitId, p, Math.round((Math.random() * 3))); } else { if ((player.desync == false)){ vars = new Object(); vars.id = unitId; vars.ran = Math.round((Math.random() * 3)); if (p != null){ vars.p = p.POS; } else { vars.p = 0; }; mpKon.sendOff(vars, true, "killUnit"); } else { unitKon.killOffUnit(unitId, p, Math.round((Math.random() * 3))); }; }; }; }; }; } private function selectAllType(me:MouseEvent):void{ var selectPool:Array; var i:*; trace("DC Select"); selectPool = new Array(); for (i in team.all) { if (team.all[i].player == gameKon.playerNow){ if (team.all[i].ID == ID){ selectPool.push(team.all[i]); displayKon.updateUnit(selectPool); }; }; }; } } }//package
Section 278
//unitData (unitData) package { public class unitData { private var unit:Array; private var iN:Number;// = -1 public var mul:Number; public static var LIST2:Array = new Array(); public static var LIST:Array = new Array(); public function unitData():void{ iN = -1; unit = new Array(); super(); mul = (1 + (Math.random() * 4)); make("Central Base", false, 5000, 0, 0, 3, 1, 15, false, 0, "This is the headquarters. Equipped with powerful defensive weapons.", 0, 0, 3); make("Marine", false, 62, 3, 1, 0, 0, 16, false, 0, "Light armor. Armed with shock rifles and rockets, effective against both ground and air.", 25, 16.4); unit.Value = 1; unit.deathSound = 3; make("Chronite Tank", false, 310, 1, 2, 2, 3, null, false, 0, "Chronite (heavy) armor. Armed with explosive shells, but cannot fire at air targets.", 100, 10, 3); unit.Value = 5; unit.deathSound = 4; make("Scout", true, 140, 5, 11, 1, 11, 11, false, 0, "Titanium armor. Armed with pulse lasers. ", 57, 44, 3); unit.Value = 3; unit.deathSound = 6; make("A25-Roman", false, 220, 4, 4, 1, 13, null, false, 0, "Titanium armor. Armed with pulse rifles, but cannot fire at air targets.", 22, 16); unit.Value = 2; unit.deathSound = 5; make("Meditec", false, 100, 3, 12, 0, 12, null, true, 0, "Light armor. Can heal/repair any friendly ground unit.", 22, 16); unit.Value = 2; unit.deathSound = 3; make("Gröditz", false, 310, 2, 7, 2, 5, 5, false, 0, "Chronite (heavy) armor. Armed with standard machine guns.", 47, 32, 3); unit.Value = 7; unit.deathSound = 4; make("Phantom", true, 320, 4, 3, 1, 8, null, false, 0, "Titanium armor. Armed with area-damage rapid cannons.", 61, 43.3, 3); unit.Value = 7; unit.deathSound = 4; make("Sakata Spider", false, 285, 4, 8, 2, 6, null, false, 0.57, "Chronite (heavy) armor. Armed with singular voltage beams. Self repairing technology.", 54, 5, 3); unit.Value = 10; unit.deathSound = 4; make("Sakata Mk-II", false, 200, 4, 9, 4, null, 7, false, 0.3, "Chronite (heavy) armor. Armed with anti-air Hadron cannons. Cannot attack ground targets.", 64, 5, 3); unit.Value = 7; unit.deathSound = 4; make("Hover Tank", false, 370, 3, 6, 4, 4, null, false, 0, "Special armor, resistant against missile damage. Armed with high impact, linear Positron cannons.", 102, 10, 3); unit.Value = 10; unit.deathSound = 4; make("Black Queen", true, 550, 4, 10, 4, 9, 10, false, 0, "Special armor, resistant against missile damage. Armed with anti-air missiles, and long ranged bombs.", 46, 37, 3); unit.Value = 15; unit.deathSound = 1; make("Sniper", false, 154, 4, 5, 0, 2, 14, false, 0, "Light armor. Equipped with armor-piercing Positron rifles. Not as effective against air targets.", 38, 9.3); unit.Value = 3; unit.deathSound = 3; make("A28-Gladiator", false, 600, 6, 13, 4, 17, 18, false, 0, "Special armor, resistant against missile damage. Armed with a high frequency pulse rifle. Not as effective against air targets.", 22, 16); unit.Value = 15; unit.deathSound = 2; make("Modified Sakata", false, 350, 6, 14, 2, 19, null, false, 2, "Modified to be faster in movement, firing, and repairing.", 54, 5, 3); unit.Value = 12; unit.deathSound = 4; make("Modified Phantom", true, 400, 5, 15, 1, 20, null, false, 0, "Modified to have stronger weapons and more durable armor.", 61, 43.3, 3); unit.Value = 12; unit.deathSound = 4; make("Special Forces", false, 230, 5, 1, 0, 21, 22, false, 0.3, "Specially trained to live longer, and do more damage.", 25, 16.4); unit.Value = 6; unit.deathSound = 3; make("Far Sniper", false, 120, 4, 16, 0, 23, null, false, 0, "Light armor. Equipped with armor-piercing Positron rifles. Massive range, but cannot attack air units.", 38, 9.3); unit.Value = 3; unit.deathSound = 3; make("Saint", true, 400, 5, 18, 4, 25, 4, false, 0.2, "Special armor. Armed with anti-air Positron cannons, and rapid ground rifles. Self-repairing technology.", 53, 48.5, 3); unit.Value = 15; unit.deathSound = 6; make("A27-Pride", false, 380, 4, 17, 4, 24, 24, false, 0, "Special armor, resistant against missile damage. Armed with a high range pulse rifle.", 22, 16); unit.Value = 15; unit.deathSound = 2; } private function make(a:String, b:Boolean, c:uint, d:uint, e:uint, f:uint, g, h, i:Boolean, j:Number, k:String, l:Number=0, m:Number=0, o:uint=0):void{ iN++; LIST[iN] = new Array(); LIST2[iN] = new Array(); doMake(LIST[iN], 1, a, b, c, d, e, f, g, h, i, j, k, l, m, o); doMake(LIST2[iN], mul, a, b, c, d, e, f, g, h, i, j, k, l, m, o); unit = LIST[iN]; } public function checkData():Boolean{ var checkData:Array; var i:*; var j:*; var boss:Number; checkData = ["Life", "Speed", "Graphic", "Armor", "selfHeal", "setX", "setY"]; for (i in LIST) { for (j in checkData) { boss = (Math.round(((LIST2[i][checkData[j]] / mul) * 1000)) / 1000); if (LIST[i][checkData[j]] != boss){ trace(((("UNIT: " + LIST[i][checkData[j]]) + " -- ") + boss)); return (true); }; }; }; return (false); } private function doMake(unit:Array, multi:Number, a:String, b:Boolean, c:uint, d:uint, e:uint, f:uint, g, h, i:Boolean, j:Number, k:String, l:Number=0, m:Number=0, o:uint=0):void{ unit.Name = a; unit.Air = b; unit.Life = (c * multi); unit.Speed = (d * multi); unit.Graphic = (e * multi); unit.Armor = (f * multi); unit.Weapon_G = g; unit.Weapon_A = h; unit.Healer = i; unit.selfHeal = (j * multi); unit.Desc = k; unit.setX = (l * multi); unit.setY = (m * multi); unit.exDie = o; unit.deathSound = 0; unit.Value = 0; } } }//package
Section 279
//unitKon (unitKon) package { public class unitKon { public static var grid; public static var Team1:Team; public static var Team2:Team; private static var trailCount:uint; public static var grid2; public static var theTeam:Team; public static var masterUnitArray:Array; private static var displayArray:Array = new Array(); public function unitKon(){ super(); } public static function killMissile(bul:wep_missile){ bul.terminateEvents(); if (grid2.contains(bul)){ grid2.removeChild(bul); }; bul = null; } public static function addBullet(b:wep_projectile, z:unitBody):void{ grid2.addChild(b); b.x = (z.x + (z.moveDir * (z.setFireX - (z.width / 2)))); b.y = ((z.y + z.setFireY) - (z.height / 2)); b.init(z); } private static function sortDisplay(u:unitBody){ var retter:uint; var h:*; if (displayArray.length == 0){ displayArray.push({unit:u, posY:(u.y + (u.height / 2))}); return (0); }; displayArray.sortOn("posY", (Array.DESCENDING | Array.NUMERIC)); retter = 0; for (h in displayArray) { if ((displayArray[h].posY <= u.y)){ retter = (retter + 1); displayArray.push({unit:u, posY:u.y}); retter = (displayArray.length - (1 + h)); return (retter); }; }; displayArray.push({unit:u, posY:u.y}); return (-1); } public static function addMissile(t:String, zx:Number, zy:Number):void{ var u:unitBody; var scan_i:*; var b:wep_missile; u = null; for (scan_i in masterUnitArray) { if (masterUnitArray[scan_i].unitId == t){ u = masterUnitArray[scan_i]; }; }; if (u != null){ b = new wep_missile(8, u, 388, 20, 3, 105, 3); grid2.addChild(b); b.x = zx; b.y = zy; b.init(); }; } public static function killBullet(bul:wep_projectile){ bul.terminateEvents(); if (grid2.contains(bul)){ grid2.removeChild(bul); }; bul = null; } public static function killTrail(bul:trailBody){ bul.terminateEvents(); if (grid2.contains(bul)){ grid2.removeChild(bul); trailCount--; }; bul = null; } public static function resetAll(p1:playerKon, p3:playerKon):void{ displayArray = new Array(); Team1 = new Team(); Team2 = new Team(); masterUnitArray = new Array(); trailCount = 0; unitBody.armorCrossCheck = new Array(); unitBody.armorCrossCheck[0] = new Array(1.25, 1, 1.1, 2); unitBody.armorCrossCheck[1] = new Array(1, 0.75, 0.75, 2); unitBody.armorCrossCheck[2] = new Array(0.25, 0.5, 1, 2); unitBody.armorCrossCheck[3] = new Array(0.9, 0.7, 0.6, 0.7); unitBody.armorCrossCheck[4] = new Array(0.25, 0.75, 0.75, 0.2); Team1.startY = (Team2.startY = 140); Team1.startX = 400; Team2.startX = (1600 - Team1.startX); Team1.baseStartX = 199; Team2.baseStartX = (1600 - Team1.baseStartX); Team1.baseStartY = (Team2.baseStartY = 130); Team1.rallyPoint = 480; Team2.rallyPoint = (1600 - Team1.rallyPoint); Team1.midPoint = (Team2.midPoint = 800); grid = gameKon.theRoot.unitDisplay; grid2 = gameKon.theRoot.effectsDisplay; } public static function addUnit(p:playerKon, id:uint, isBase:Boolean=false, uID:String=null, rand1:Number=0, rand2:Number=0, rand3:Number=0):void{ var u:unitBody; var getD:*; theTeam = p.team; if (gameKon.theRoot.singlePlayerMode){ rand1 = Math.random(); rand2 = Math.random(); rand3 = Math.random(); }; u = new unitBody(id, p, rand3); if (gameKon.theRoot.singlePlayerMode){ u.unitId = getNewId(p); } else { u.unitId = uID; }; masterUnitArray.push(u); u.team = theTeam; if (u.team == Team1){ u.eteam = Team2; } else { u.eteam = Team1; }; theTeam.all.push(u); if (u.airUnit){ theTeam.air.push(u); u.belong = theTeam.air; } else { theTeam.ground.push(u); u.belong = theTeam.ground; }; if (isBase){ u.x = u.team.baseStartX; u.y = u.team.baseStartY; u.visible = false; } else { u.maxX = u.eteam.startX; u.x = (u.minX = ((u.team.startX - 10) + Math.round((rand1 * 20)))); if (u.minX > u.maxX){ u.normalDir = (u.moveDir = (u.scaleX = -1)); }; if (u.airUnit){ u.y = ((u.team.startY - 220) + Math.round((rand2 * 40))); } else { u.y = ((u.team.startY - 25) + Math.round((rand2 * 75))); }; }; if (((gameKon.rallyOn) && (p)) == gameKon.playerNow){ u.rallyMode = true; u.aiPosition = true; u.aiPoint = (u.team.rallyPoint + (30 - (Math.random() * 60))); }; if (p.aiOn){ if (p.AI.AiStrategy.grouping){ p.AI.AiStrategy.aiGroup.push(u); u.aiPosition = true; u.aiPoint = (u.team.rallyPoint + (30 - (Math.random() * 60))); }; if ((u.ID == 9)){ u.aiPosition = true; u.aiPoint = (u.team.midPoint - (u.normalDir * (Math.random() * 60))); }; if ((((((u.ID == 4)) || ((u.ID == 1)))) || ((u.ID == 5)))){ if (Math.random() < 0.15){ u.aiPosition = true; u.aiPoint = (u.team.midPoint - (u.normalDir * (100 + (Math.random() * 200)))); }; }; }; getD = sortDisplay(u); if (getD == -1){ grid.addChild(u); } else { grid.addChildAt(u, getD); }; } public static function killOffUnit(uID:String, theKiller:playerKon=null, randNummer:uint=0):void{ var scan_i:*; var h:*; var del:*; var u:*; var useVal:Number; var randAdd:Number; var playerExGo:uint; chatBody.sendEv("UNIT_DIED"); for (scan_i in masterUnitArray) { if (masterUnitArray[scan_i].unitId == uID){ u = masterUnitArray[scan_i]; masterUnitArray.splice(scan_i, 1); }; }; u.endUnitBegin(); if (theKiller != null){ trace(("Killed by " + theKiller.POS)); if (theKiller.race == 1){ trace("PASS1"); if (u.unitValue < 1){ useVal = 1; } else { useVal = u.unitValue; }; if (useVal > 0){ randAdd = randNummer; trace("PASS2"); switch (randAdd){ case 0: theKiller.addRes(0, useVal); playerExGo = 0; break; case 1: theKiller.addRes(0, useVal); playerExGo = 0; break; case 2: theKiller.addRes(3, useVal); playerExGo = 3; break; case 3: theKiller.addRes(3, useVal); playerExGo = 3; break; }; if (theKiller.getData(3) > 100){ theKiller.setRes(3, 100); }; gameKon.theRoot.upUIHand(); if (theKiller.team == gameKon.playerNow.team){ if (theKiller == gameKon.playerNow){ if (u.exDie > 0){ u.addResGo = true; u.addResGoI = (11 + playerExGo); } else { addEx((11 + playerExGo), u.x, u.y, false); }; }; }; }; }; }; for (h in displayArray) { if (displayArray[h].unit == u){ displayArray.splice(h, 1); }; }; if (gameKon.selectedUnit != null){ if ((((gameKon.selectedUnit.length == 1)) && ((gameKon.selectedUnit[0] == u)))){ if (gameKon.selectedBuilding == null){ displayKon.clearAllOptions(); }; }; }; for (del in u.belong) { if (u.belong[del] == u){ u.belong.splice(del, 1); }; }; for (del in u.team.all) { if (u.team.all[del] == u){ u.team.all.splice(del, 1); }; }; if (u.team.all.length == 0){ gameKon.theRoot.teamWin = u.eteam; if (gameKon.playerNow.team == gameKon.theRoot.teamWin){ gameKon.theRoot.iWon = true; }; gameKon.theRoot.endTheGame(); }; } public static function getNewId(p:playerKon):String{ p.idCounter = (p.idCounter + 1); return ((p.idTag + p.idCounter)); } public static function createBase(p1, p3):void{ addUnit(p1, 0, true, getNewId(p1)); addUnit(p3, 0, true, getNewId(p3)); gameKon.buildingArray[4].unitLink = Team1.all[0]; gameKon.buildingArray[13].unitLink = Team2.all[0]; Team1.all[0].behave = 1; Team2.all[0].behave = 1; Team1.all[0].assocBase = gameKon.buildingArray[4]; Team2.all[0].assocBase = gameKon.buildingArray[13]; } public static function removeUnit(u:unitBody):void{ u.terminateEvents(); if (grid.contains(u)){ grid.removeChild(u); }; u = null; } public static function killEx(bul:exBody){ if (grid2.contains(bul)){ grid2.removeChild(bul); }; bul = null; } public static function addTrail(t:uint, tx:Number, ty:Number):void{ var i:uint; var tr:trailBody; i = trailBody.intensity[t]; while (i > 0) { if (trailCount < 120){ tr = new trailBody(t, trailBody.hl[t], trailBody.decay[t]); grid2.addChild(tr); tr.x = ((tx - (trailBody.xGap[t] / 2)) + (Math.random() * trailBody.xGap[t])); tr.y = ((ty - (trailBody.yGap[t] / 2)) + (Math.random() * trailBody.yGap[t])); trailCount++; }; i--; }; } public static function addEx(id:uint, ax:Number, ay:Number, fi:Boolean=true):void{ var e:exBody; e = new exBody(id, fi); grid2.addChild(e); e.x = ax; e.y = ay; } } }//package
Section 280
//weapon (weapon) package { import flash.display.*; import flash.events.*; public class weapon extends Sprite { public var reloadTime:Number; public var weaponGraphic:uint; private var weaponExSFX:uint; public var kitingTime:uint;// = 0 public var kiting:Boolean;// = false private var ownUnit:unitBody; private var weaponTrail:Number; private var weaponShotSFX:uint; public var weaponExplosion:Object; private var t:unitBody; public var weaponType:uint;// = 0 public var reloadNow:Number;// = 0 public var weaponRange:Number; private var healer:Boolean;// = false private var weaponSpeed:Number; public var weaponDamage:Number; public var weaponSplash:Number; public var weaponShock:Boolean; public function weapon(o:unitBody, w:uint):void{ var wepLoad:*; reloadNow = 0; weaponType = 0; kiting = false; kitingTime = 0; healer = false; super(); wepLoad = weaponData.LIST[w]; reloadTime = wepLoad[0]; weaponSpeed = wepLoad[1]; weaponRange = wepLoad[2]; weaponDamage = wepLoad[3]; weaponSplash = wepLoad[4]; weaponShock = wepLoad[5]; weaponGraphic = wepLoad[6]; weaponExplosion = renderMachine.explosions[wepLoad[7]]; weaponType = wepLoad[8]; weaponTrail = wepLoad[9]; weaponShotSFX = wepLoad[10]; weaponExSFX = wepLoad[11]; ownUnit = o; reloadNow = reloadTime; } private function work(event:Event):void{ if (reloadNow == 0){ addEventListener(Event.ENTER_FRAME, reload); } else { if (reloadNow == reloadTime){ reloadNow = 0; fire(); }; }; if (Math.round((reloadTime - reloadNow)) == ownUnit.prefire){ ownUnit.modeChange(4); }; } private function fire():void{ var bullet:wep_projectile; if (ownUnit.x > 800){ soundKon.playSound(0, weaponShotSFX, true); } else { soundKon.playSound(0, weaponShotSFX); }; ownUnit.modeChange(2); bullet = new wep_projectile(weaponGraphic, ownUnit, weaponDamage, weaponSpeed, weaponExplosion, weaponShock, weaponSplash, healer, weaponType, weaponTrail, weaponExSFX); unitKon.addBullet(bullet, ownUnit); } public function engage(h:Boolean):void{ healer = h; addEventListener(Event.ENTER_FRAME, work); } public function disengage():void{ removeEventListener(Event.ENTER_FRAME, work); } private function reload(event:Event):void{ if (reloadNow < reloadTime){ reloadNow = (reloadNow + _t.theFactor); } else { reloadNow = reloadTime; removeEventListener(Event.ENTER_FRAME, reload); }; } } }//package
Section 281
//weaponData (weaponData) package { public class weaponData { private var wep:Array; private var iN:Number;// = -1 public static var LIST:Array = new Array(); public function weaponData():void{ iN = -1; wep = new Array(); super(); make([15, 15, 250, 8, 0, true, 0, 0, 0, 0, 4, 0]); make([13, 45, 382, 35, 7, false, 0, 1, 1, 0, 12, 0]); make([94, 30, 439, 57, 0, false, 1, 2, 2, 2, 9, 0]); make([120, 15, 360, 70, 43, false, 2, 4, 1, 7, 10, 3]); make([35, 15, 390, 140, 0, false, 3, 5, 2, 6, 2, 2]); make([5, 23, 395, 10, 0, false, 4, 6, 1, 0, 11, 0]); make([37, 19, 300, 93, 0, false, 5, 7, 1, 3, 7, 0]); make([50, 18, 430, 63, 52, false, 6, 8, 2, 4, 8, 4]); make([4, 20, 400, 6, 40, false, 7, 6, 1, 9, 5, 0]); make([360, 17, 500, 140, 85, false, 8, 3, 3, 1, 1, 1]); make([18, 20, 380, 80, 0, false, 8, 6, 1, 1, 3, 3]); make([25, 25, 380, 20, 0, false, 6, 1, 2, 0, 8, 0]); make([15, 25, 170, 12, 0, true, 9, 9, 1, 0, 0, 0]); make([30, 20, 190, 20, 10, false, 0, 1, 0, 0, 6, 0]); make([80, 30, 420, 20, 0, false, 1, 2, 2, 2, 9, 5]); make([70, 18, 400, 40, 28, false, 6, 8, 2, 4, 8, 4]); make([180, 18, 385, 37, 5, false, 4, 4, 0, 10, 3, 3]); make([4, 25, 290, 17, 0, false, 10, 10, 3, 11, 12, 0]); make([12, 20, 420, 27, 0, false, 10, 10, 3, 11, 12, 0]); make([15, 18, 290, 103, 0, false, 5, 7, 1, 3, 7, 0]); make([4, 20, 400, 12, 40, false, 7, 6, 1, 9, 5, 0]); make([10, 15, 300, 12, 0, true, 0, 0, 0, 0, 4, 0]); make([180, 25, 430, 40, 25, false, 4, 4, 0, 10, 3, 3]); make([90, 30, 660, 90, 0, false, 11, 7, 2, 12, 9, 0]); make([2, 25, 415, 6, 25, false, 12, 6, 3, 0, 12, 0]); make([18, 30, 420, 57, 0, false, 1, 2, 2, 2, 9, 0]); } private function make(a:Array):void{ var i:*; iN++; LIST[iN] = new Array(); for (i in a) { LIST[iN][i] = a[i]; }; } } }//package
Section 282
//wep_missile (wep_missile) package { import flash.events.*; public class wep_missile extends displayBody { private var timeToGo:uint; private var midTime:Number; private var tar_y:Number; private var speed:Number;// = 8 private var ySide:Number; private var tar_x:Number; private var gravity:Number;// = 0.8 private var hyp:Number; private var damage:Number; private var target:unitBody; private var Splash:Number; private var EX:Object; private var WepType:uint; private var angle:Number; private var startYVel:Number; private var xSide:Number; private var speedX:Number; private var speedY:Number; public function wep_missile(id:uint, u:unitBody, dam:Number, s:Number, ex:uint, splash:Number, wepType:uint):void{ gravity = 0.8; speed = 8; super(); speed = s; EX = renderMachine.explosions[ex]; gameKon.displayArray.push(this); createDisplay(renderMachine.weapons[id], true); target = u; damage = dam; Splash = splash; WepType = wepType; addEventListener(Event.ENTER_FRAME, doTrail); } public function init():void{ tar_x = (((target.x + (target.width / 2)) * 0.97) + (Math.random() * 0.05)); tar_y = ((target.y * 0.97) + (Math.random() * 0.05)); if (x > 800){ soundKon.playSound(0, 0, true); } else { soundKon.playSound(0, 0, false); }; xSide = Math.abs((x - tar_x)); ySide = Math.abs((y - tar_y)); hyp = Math.sqrt((Math.pow(xSide, 2) + Math.pow(ySide, 2))); speedX = ((speed * xSide) / hyp); speedY = ((speed * ySide) / hyp); if (tar_x < x){ speedX = (speedX * -1); }; if (tar_y < y){ speedY = (speedY * -1); }; timeToGo = Math.round((hyp / speed)); if (target.airUnit){ speedY = (speedY * 2); gravity = (-(speedY) / timeToGo); } else { speedY = (speedY - (gravity * (timeToGo / 2))); }; angle = Math.atan((speedX / speedY)); rotation = ((angle * 180) / Math.PI); if (tar_x < x){ rotation = (180 - rotation); }; if (tar_y < y){ rotation = (rotation * -1); }; addEventListener(Event.ENTER_FRAME, go); } public function killEvents():void{ unitKon.killMissile(this); } private function calcHyp(dX, dY){ xSide = Math.abs((x - dX)); ySide = Math.abs((y - dY)); hyp = Math.sqrt((Math.pow(xSide, 2) + Math.pow(ySide, 2))); return (hyp); } private function killMain(event:Event):void{ timeToGo = (timeToGo - 1); if (timeToGo <= 0){ removeEventListener(Event.ENTER_FRAME, killMain); unitKon.killMissile(this); }; } private function doTrail(event:Event):void{ unitKon.addTrail(1, x, y); } private function hit():void{ var m:*; var tempTar:*; if (x > 800){ soundKon.playSound(2, 1, true); } else { soundKon.playSound(2, 1, false); }; gameKon.shakeScreen(2); target.takeHit(damage, WepType); //unresolved jump var _slot1 = e; if (Splash > 0){ for (m in target.team.all) { tempTar = target.team.all[m]; if (calcHyp(tempTar.x, tempTar.y) <= Splash){ tempTar.takeHit(damage, WepType); }; }; }; stopBullet(); modeChange(5, EX); unitKon.addEx(3, x, y); timeToGo = EX.normal.length; rotation = 0; addEventListener(Event.ENTER_FRAME, killMain); } public function stopBullet():void{ removeEventListener(Event.ENTER_FRAME, go); removeEventListener(Event.ENTER_FRAME, doTrail); } public function terminateEvents():void{ stopBullet(); end(); } private function go(event:Event):void{ x = (x + speedX); speedY = (speedY + gravity); y = (y + speedY); timeToGo = (timeToGo - 1); if (timeToGo == 0){ hit(); } else { angle = Math.atan((speedY / speedX)); rotation = ((angle * 180) / Math.PI); if (tar_x < x){ rotation = (rotation - 180); }; }; } } }//package
Section 283
//wep_projectile (wep_projectile) package { import flash.events.*; public class wep_projectile extends displayBody { private var shooter:unitBody; private var sound:uint; private var timeToGo:Number; private var tar_y:Number; private var speed:Number;// = 8 private var ySide:Number; private var tar_x:Number; private var p:playerKon;// = null private var hyp:Number; private var Shock:Boolean; private var damage:Number; private var target:unitBody; private var Splash:Number; private var EX:Object; private var WepType:uint; private var angle:Number; private var wepTrail:uint; private var xSide:Number; private var speedX:Number; private var speedY:Number; public function wep_projectile(id:uint, u:unitBody, dam:Number, s:Number, ex:Object, shock:Boolean, splash:Number, heal:Boolean, wepType:uint, trail:uint=0, sound:uint=0):void{ p = null; speed = 8; super(); speed = s; EX = ex; shooter = u; this.sound = sound; if (u.assocBase == null){ p = u.player; }; gameKon.displayArray.push(this); createDisplay(renderMachine.weapons[id], true); target = u.mainTarget; Shock = shock; Splash = splash; WepType = wepType; if (heal){ damage = -(dam); } else { damage = dam; }; if (trail > 0){ wepTrail = trail; addEventListener(Event.ENTER_FRAME, doTrail); }; } public function init(u:unitBody):void{ tar_x = ((u.mainTarget.x + (u.mainTarget.width / 2)) + getRand()); tar_y = (u.mainTarget.y + getRand()); if (Shock){ x = (tar_x + getRand()); y = (tar_y + getRand()); hit(); } else { xSide = Math.abs((x - tar_x)); ySide = Math.abs((y - tar_y)); hyp = Math.sqrt((Math.pow(xSide, 2) + Math.pow(ySide, 2))); angle = Math.atan((ySide / xSide)); speedX = ((speed * xSide) / hyp); speedY = ((speed * ySide) / hyp); if (tar_x < x){ speedX = (speedX * -1); }; if (tar_y < y){ speedY = (speedY * -1); }; timeToGo = (hyp / speed); rotation = ((angle * 180) / Math.PI); if (tar_x < x){ rotation = (180 - rotation); }; if (tar_y < y){ rotation = (rotation * -1); }; addEventListener(Event.ENTER_FRAME, go); }; } public function killEvents():void{ unitKon.killBullet(this); } private function calcHyp(dX, dY){ xSide = Math.abs((x - dX)); ySide = Math.abs((y - dY)); hyp = Math.sqrt((Math.pow(xSide, 2) + Math.pow(ySide, 2))); return (hyp); } private function killMain(event:Event):void{ timeToGo = (timeToGo - 1); if (timeToGo <= 0){ removeEventListener(Event.ENTER_FRAME, killMain); unitKon.killBullet(this); }; } private function doTrail(event:Event):void{ unitKon.addTrail(wepTrail, x, y); } private function hit():void{ var m:*; var tempTar:*; if (x > 800){ soundKon.playSound(2, sound, true); } else { soundKon.playSound(2, sound, false); }; target.takeHit(damage, WepType, shooter, p); //unresolved jump var _slot1 = e; if (Splash > 0){ for (m in target.team.all) { tempTar = target.team.all[m]; if (calcHyp(tempTar.x, tempTar.y) <= Splash){ tempTar.takeHit(damage, WepType); }; }; }; stopBullet(); modeChange(5, EX); timeToGo = EX.normal.length; addEventListener(Event.ENTER_FRAME, killMain); } public function stopBullet():void{ removeEventListener(Event.ENTER_FRAME, go); removeEventListener(Event.ENTER_FRAME, doTrail); } private function getRand(){ return ((5 - (Math.random() * 10))); } public function terminateEvents():void{ stopBullet(); end(); } private function go(event:Event):void{ x = (x + (speedX * _t.theFactor)); y = (y + (speedY * _t.theFactor)); timeToGo = (timeToGo - _t.theFactor); if (timeToGo <= 0){ hit(); }; } } }//package

Library Items

Symbol 1 Font {MenuFont}
Symbol 2 Font {MainFont2}
Symbol 3 Font {MainFont}Used by:235 920 960 974 975 980 981 982 983 985 1035 1046 1047 1051
Symbol 4 GraphicUsed by:14
Symbol 5 GraphicUsed by:14
Symbol 6 GraphicUsed by:14
Symbol 7 GraphicUsed by:14
Symbol 8 GraphicUsed by:14
Symbol 9 GraphicUsed by:14
Symbol 10 GraphicUsed by:14
Symbol 11 GraphicUsed by:14
Symbol 12 GraphicUsed by:14
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:4 5 6 7 8 9 10 11 12 13Used by:140 190
Symbol 15 FontUsed by:16 17 18 19 20 21 22 23 24 25 26 27 28 64 65 66 67 68 69 70 141 142 145 146 149 167 168 169 172 173 174 175 176 177 182 183 184 185 186 349 350 357 358 359 365 366 371 372 373 380 381 382 387 388 389 390
Symbol 16 TextUses:15Used by:140
Symbol 17 TextUses:15Used by:29
Symbol 18 TextUses:15Used by:29
Symbol 19 TextUses:15Used by:29
Symbol 20 TextUses:15Used by:29
Symbol 21 TextUses:15Used by:29
Symbol 22 TextUses:15Used by:29
Symbol 23 TextUses:15Used by:29
Symbol 24 TextUses:15Used by:29
Symbol 25 TextUses:15Used by:29
Symbol 26 TextUses:15Used by:29
Symbol 27 TextUses:15Used by:29
Symbol 28 TextUses:15Used by:29
Symbol 29 MovieClip {Giraffe_fla.gameSetting_314}Uses:17 18 19 20 21 22 23 24 25 26 27 28Used by:140 151
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:63 94 99 106 126 260
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {ScrollBar_thumbIcon}Uses:32Used by:63 74
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {ScrollArrowUp_disabledSkin}Uses:34Used by:63 74
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClip {ScrollArrowDown_disabledSkin}Uses:36Used by:63 74
Symbol 38 GraphicUsed by:40 43 51 55
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {ScrollArrowDown_upSkin}Uses:38 39Used by:63 74
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {ScrollThumb_upSkin}Uses:41Used by:63 74
Symbol 43 MovieClipUses:38Used by:45 47 57
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClip {ScrollArrowUp_upSkin}Uses:43 44Used by:63 74
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClip {ScrollArrowUp_overSkin}Uses:43 46Used by:63 74
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClip {ScrollThumb_overSkin}Uses:48Used by:63 74
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClip {ScrollArrowDown_overSkin}Uses:38 50Used by:63 74
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClip {ScrollThumb_downSkin}Uses:52Used by:63 74
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClip {ScrollArrowDown_downSkin}Uses:38 54Used by:63 74
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClip {ScrollArrowUp_downSkin}Uses:43 56Used by:63 74
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClip {ScrollTrack_skin}Uses:58Used by:63 74
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClip {focusRectSkin}Uses:60Used by:63 74 94 99 106 126 260
Symbol 62 MovieClip {fl.core.ComponentShim}Used by:63 74 91 94 99 106 126 260
Symbol 63 MovieClip {fl.controls.UIScrollBar}Uses:31 33 35 37 40 42 45 47 49 51 53 55 57 59 61 62Used by:140 190
Symbol 64 TextUses:15Used by:140 151
Symbol 65 TextUses:15Used by:140
Symbol 66 TextUses:15Used by:140 190
Symbol 67 TextUses:15Used by:140
Symbol 68 EditableTextUses:15Used by:140
Symbol 69 TextUses:15Used by:140
Symbol 70 EditableTextUses:15Used by:73
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:73
Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317}Uses:70 72Used by:140
Symbol 74 MovieClip {fl.controls.ScrollBar}Uses:59 33 35 37 40 42 45 47 49 51 53 55 57 61 62Used by:94
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClip {CellRenderer_upSkin}Uses:75Used by:91
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {CellRenderer_selectedUpSkin}Uses:77Used by:91
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClip {CellRenderer_selectedOverSkin}Uses:79Used by:91
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClip {CellRenderer_selectedDownSkin}Uses:81Used by:91
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClip {CellRenderer_selectedDisabledSkin}Uses:83Used by:91
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClip {CellRenderer_overSkin}Uses:85Used by:91
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClip {CellRenderer_downSkin}Uses:87Used by:91
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClip {CellRenderer_disabledSkin}Uses:89Used by:91
Symbol 91 MovieClip {fl.controls.listClasses.CellRenderer}Uses:76 78 80 82 84 86 88 90 62Used by:94
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClip {List_skin}Uses:92Used by:94
Symbol 94 MovieClip {fl.controls.List}Uses:31 74 61 91 93 62Used by:106 190
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClip {TextInput_upSkin}Uses:95Used by:99
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClip {TextInput_disabledSkin}Uses:97Used by:99
Symbol 99 MovieClip {fl.controls.TextInput}Uses:31 61 96 98 62Used by:106
Symbol 100 GraphicUsed by:101 102 105
Symbol 101 MovieClip {ComboBox_downSkin}Uses:100Used by:106
Symbol 102 MovieClip {ComboBox_overSkin}Uses:100Used by:106
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClip {ComboBox_disabledSkin}Uses:103Used by:106
Symbol 105 MovieClip {ComboBox_upSkin}Uses:100Used by:106
Symbol 106 MovieClip {fl.controls.ComboBox}Uses:31 94 99 101 102 104 105 61 62Used by:140 190  Timeline
Symbol 107 FontUsed by:108 109 156 160 164 913 934 935 936 937 938
Symbol 108 TextUses:107Used by:140
Symbol 109 TextUses:107Used by:140
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClip {Button_upSkin}Uses:110Used by:126
Symbol 112 GraphicUsed by:113 114 115
Symbol 113 MovieClip {Button_selectedUpSkin}Uses:112Used by:126
Symbol 114 MovieClip {Button_selectedOverSkin}Uses:112Used by:126
Symbol 115 MovieClip {Button_selectedDownSkin}Uses:112Used by:126
Symbol 116 GraphicUsed by:117
Symbol 117 MovieClip {Button_selectedDisabledSkin}Uses:116Used by:126
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClip {Button_overSkin}Uses:118Used by:126
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClip {Button_emphasizedSkin}Uses:120Used by:126
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClip {Button_downSkin}Uses:122Used by:126
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClip {Button_disabledSkin}Uses:124Used by:126
Symbol 126 MovieClip {fl.controls.Button}Uses:31 61 111 113 114 115 117 119 121 123 125 62Used by:140 151 190  Timeline
Symbol 127 FontUsed by:128 129 133 234 296 299 300
Symbol 128 EditableTextUses:127Used by:140
Symbol 129 EditableTextUses:127Used by:140
Symbol 130 GraphicUsed by:140
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClipUses:131Used by:140
Symbol 133 TextUses:127Used by:136
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134Used by:136
Symbol 136 MovieClipUses:133 135Used by:140  Timeline
Symbol 137 GraphicUsed by:140
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:140 151 190
Symbol 140 MovieClip {MultiplayerRoomGraphic}Uses:14 16 29 63 64 65 66 67 68 69 73 106 108 109 126 128 129 130 132 136 137 139
Symbol 141 EditableTextUses:15Used by:151
Symbol 142 TextUses:15Used by:151
Symbol 143 GraphicUsed by:144 289 896 1043  Timeline
Symbol 144 ButtonUses:143Used by:151 190 244 280 282 284 286 288 295 1037 1041 1068
Symbol 145 TextUses:15Used by:151
Symbol 146 TextUses:15Used by:151
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:151
Symbol 149 TextUses:15Used by:151
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClip {MultiplayerMakeGraphic}Uses:141 126 142 144 145 64 29 146 148 149 150 139
Symbol 152 GraphicUsed by:166
Symbol 153 GraphicUsed by:166 342 343 344 345 354 362 369 376 377 378 385 393 526 967 1044
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:166 270 529 896  Timeline
Symbol 156 TextUses:107Used by:166
Symbol 157 GraphicUsed by:166
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:166 270 530 896  Timeline
Symbol 160 TextUses:107Used by:166
Symbol 161 GraphicUsed by:166
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:162Used by:166 270 531 896  Timeline
Symbol 164 TextUses:107Used by:166
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:152 155 156 157 153 159 160 161 163 164 165Used by:190
Symbol 167 TextUses:15Used by:190
Symbol 168 TextUses:15Used by:190
Symbol 169 EditableTextUses:15Used by:190
Symbol 170 FontUsed by:171 178 179 180 181
Symbol 171 TextUses:170Used by:190
Symbol 172 TextUses:15Used by:190
Symbol 173 TextUses:15Used by:190
Symbol 174 EditableTextUses:15Used by:190
Symbol 175 EditableTextUses:15Used by:190
Symbol 176 EditableTextUses:15Used by:190
Symbol 177 EditableTextUses:15Used by:190
Symbol 178 TextUses:170Used by:190
Symbol 179 TextUses:170Used by:190
Symbol 180 TextUses:170Used by:190
Symbol 181 TextUses:170Used by:190
Symbol 182 TextUses:15Used by:190
Symbol 183 EditableTextUses:15Used by:190
Symbol 184 EditableTextUses:15Used by:190
Symbol 185 EditableTextUses:15Used by:190
Symbol 186 TextUses:15Used by:190
Symbol 187 GraphicUsed by:190
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:190
Symbol 190 MovieClip {MultiplayerScreenGraphic}Uses:144 14 166 63 167 106 168 169 171 172 66 173 174 175 176 177 178 179 180 181 182 126 94 183 184 185 186 187 189 139
Symbol 191 BitmapUsed by:192
Symbol 192 GraphicUses:191Used by:193
Symbol 193 MovieClip {baseRim_Yellow}Uses:192
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:196
Symbol 196 MovieClip {baseRim_Green}Uses:195
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:199
Symbol 199 MovieClip {baseRim_Blue}Uses:198
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:202
Symbol 202 MovieClip {baseRim_Red}Uses:201
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:205
Symbol 205 MovieClip {baseRim_White}Uses:204
Symbol 206 GraphicUsed by:231
Symbol 207 MovieClipUsed by:208
Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298}Uses:207Used by:231
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:211
Symbol 211 MovieClipUses:210Used by:223
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:223
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:222
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:222
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:222
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:222
Symbol 222 MovieClipUses:215 217 219 221Used by:223
Symbol 223 MovieClip {baseFrame}Uses:211 213 222Used by:231
Symbol 224 GraphicUsed by:231
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:227
Symbol 227 MovieClipUses:226Used by:228
Symbol 228 MovieClip {Giraffe_fla.buildingCover_296}Uses:227Used by:231
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:231
Symbol 231 MovieClip {_base}Uses:208 206 223 228 230 224
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClip {_hitter}Uses:232
Symbol 234 EditableTextUses:127Used by:244
Symbol 235 EditableTextUses:3Used by:244
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:243
Symbol 238 GraphicUsed by:239
Symbol 239 MovieClipUses:238Used by:243
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:240Used by:243
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:237 239 241 242Used by:244
Symbol 244 MovieClip {Tracer}Uses:234 144 235 243
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:248 250 252 254
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClip {CheckBox_selectedDisabledIcon}Uses:246 247Used by:260
Symbol 249 GraphicUsed by:250 257
Symbol 250 MovieClip {CheckBox_selectedDownIcon}Uses:246 249Used by:260
Symbol 251 GraphicUsed by:252 258
Symbol 252 MovieClip {CheckBox_selectedOverIcon}Uses:246 251Used by:260
Symbol 253 GraphicUsed by:254 259
Symbol 254 MovieClip {CheckBox_selectedUpIcon}Uses:246 253Used by:260
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {CheckBox_disabledIcon}Uses:255Used by:260
Symbol 257 MovieClip {CheckBox_downIcon}Uses:249Used by:260
Symbol 258 MovieClip {CheckBox_overIcon}Uses:251Used by:260
Symbol 259 MovieClip {CheckBox_upIcon}Uses:253Used by:260
Symbol 260 MovieClip {fl.controls.CheckBox}Uses:31 61 248 250 252 254 256 257 258 259 62Used by:Timeline
Symbol 261 FontUsed by:262 267 268 269
Symbol 262 EditableTextUses:261Used by:266
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:266 385 528 896  Timeline
Symbol 265 GraphicUsed by:266 270
Symbol 266 MovieClip {costTip2}Uses:262 264 265Used by:Timeline
Symbol 267 EditableTextUses:261Used by:270
Symbol 268 EditableTextUses:261Used by:270
Symbol 269 EditableTextUses:261Used by:270
Symbol 270 MovieClip {costTip}Uses:159 163 155 267 268 269 265Used by:Timeline
Symbol 271 GraphicUsed by:272
Symbol 272 ButtonUses:271Used by:277
Symbol 273 GraphicUsed by:275 910
Symbol 274 GraphicUsed by:275 910
Symbol 275 MovieClipUses:273 274Used by:277
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClip {Giraffe_fla.ArmorGamesLogo_18}Uses:272 275 276Used by:933  Timeline
Symbol 278 FontUsed by:279 281 283 285 287 290 293 309 310
Symbol 279 TextUses:278Used by:280
Symbol 280 MovieClip {Giraffe_fla.d_mc7_17}Uses:144 279Used by:Timeline
Symbol 281 TextUses:278Used by:282
Symbol 282 MovieClip {Giraffe_fla.d_mc6_16}Uses:144 281Used by:Timeline
Symbol 283 TextUses:278Used by:284
Symbol 284 MovieClip {Giraffe_fla.d_mc5_15}Uses:144 283Used by:Timeline
Symbol 285 TextUses:278Used by:286
Symbol 286 MovieClip {Giraffe_fla.d_mc4_14}Uses:144 285Used by:Timeline
Symbol 287 TextUses:278Used by:288
Symbol 288 MovieClip {Giraffe_fla.d_mc3_13}Uses:144 287Used by:Timeline
Symbol 289 ButtonUses:143Used by:292
Symbol 290 TextUses:278Used by:291
Symbol 291 MovieClipUses:290Used by:292
Symbol 292 MovieClip {Giraffe_fla.d_mc2_10}Uses:289 291Used by:Timeline
Symbol 293 TextUses:278Used by:294
Symbol 294 MovieClipUses:293Used by:295
Symbol 295 MovieClip {Giraffe_fla.d_mc1_7}Uses:144 294Used by:Timeline
Symbol 296 EditableTextUses:127Used by:298
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClip {Giraffe_fla.dateMc_6}Uses:296 297Used by:Timeline
Symbol 299 TextUses:127Used by:Timeline
Symbol 300 TextUses:127Used by:Timeline
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:301Used by:933  Timeline
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:303Used by:306
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClip {Giraffe_fla.loadingBar_3}Uses:304 305Used by:Timeline
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:Timeline
Symbol 309 TextUses:278Used by:312
Symbol 310 TextUses:278Used by:312
Symbol 311 GraphicUsed by:312
Symbol 312 ButtonUses:309 310 311Used by:Timeline
Symbol 313 Sound {sfx_inter1}Used by:340
Symbol 314 Sound {sfx_ex1}Used by:340
Symbol 315 Sound {sfx_death1}Used by:340
Symbol 316 Sound {sfx_shot1}Used by:340
Symbol 317 Sound {sfx_shot11}Used by:340
Symbol 318 Sound {sfx_inter2}Used by:340
Symbol 319 Sound {sfx_ex2}Used by:340
Symbol 320 Sound {sfx_death2}Used by:340
Symbol 321 Sound {sfx_shot2}Used by:340
Symbol 322 Sound {sfx_inter3}Used by:340
Symbol 323 Sound {sfx_ex3}Used by:340
Symbol 324 Sound {sfx_death3}Used by:340
Symbol 325 Sound {sfx_shot3}Used by:340
Symbol 326 Sound {sfx_ex4}Used by:340
Symbol 327 Sound {sfx_death4}Used by:340
Symbol 328 Sound {sfx_shot4}Used by:340
Symbol 329 Sound {sfx_ex5}Used by:340
Symbol 330 Sound {sfx_death5}Used by:340
Symbol 331 Sound {sfx_shot5}Used by:340
Symbol 332 Sound {sfx_death6}Used by:340
Symbol 333 Sound {sfx_shot6}Used by:340
Symbol 334 Sound {sfx_death7}Used by:340
Symbol 335 Sound {sfx_shot7}Used by:340
Symbol 336 Sound {sfx_shot12}Used by:340
Symbol 337 Sound {sfx_shot8}Used by:340
Symbol 338 Sound {sfx_shot9}Used by:340
Symbol 339 Sound {sfx_shot10}Used by:340
Symbol 340 MovieClip {Giraffe_fla.soundLoader_157}Uses:313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339Used by:Timeline
Symbol 341 GraphicUsed by:342 343 344 345 354 362 369 376 377 378 385 393
Symbol 342 MovieClip {comic_9}Uses:341 153Used by:Timeline
Symbol 343 MovieClip {comic_8}Uses:341 153Used by:Timeline
Symbol 344 MovieClip {comic_7}Uses:341 153Used by:Timeline
Symbol 345 MovieClip {comic_6}Uses:341 153Used by:Timeline
Symbol 346 FontUsed by:347 355 363 370 379 386
Symbol 347 EditableTextUses:346Used by:354
Symbol 348 GraphicUsed by:354
Symbol 349 TextUses:15Used by:354
Symbol 350 TextUses:15Used by:354
Symbol 351 FontUsed by:352 360 367 374 383 391
Symbol 352 TextUses:351Used by:354
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClip {comic_5}Uses:341 347 348 153 349 350 352 353Used by:Timeline
Symbol 355 EditableTextUses:346Used by:362
Symbol 356 GraphicUsed by:362 376 393
Symbol 357 TextUses:15Used by:362
Symbol 358 TextUses:15Used by:362
Symbol 359 TextUses:15Used by:362
Symbol 360 TextUses:351Used by:362
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClip {comic_4}Uses:341 355 356 153 357 358 359 360 361Used by:Timeline
Symbol 363 EditableTextUses:346Used by:369
Symbol 364 GraphicUsed by:369 385
Symbol 365 TextUses:15Used by:369
Symbol 366 TextUses:15Used by:369
Symbol 367 TextUses:351Used by:369
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClip {comic_3}Uses:341 363 364 153 365 366 367 368Used by:Timeline
Symbol 370 EditableTextUses:346Used by:376
Symbol 371 TextUses:15Used by:376
Symbol 372 TextUses:15Used by:376
Symbol 373 TextUses:15Used by:376
Symbol 374 TextUses:351Used by:376
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClip {comic_2}Uses:341 370 356 153 371 372 373 374 375Used by:Timeline
Symbol 377 MovieClip {comic_11}Uses:341 153Used by:Timeline
Symbol 378 MovieClip {comic_10}Uses:341 153Used by:Timeline
Symbol 379 EditableTextUses:346Used by:385
Symbol 380 TextUses:15Used by:385
Symbol 381 TextUses:15Used by:385
Symbol 382 TextUses:15Used by:385
Symbol 383 TextUses:351Used by:385
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClip {comic_1}Uses:341 379 364 153 264 380 381 382 383 384Used by:Timeline
Symbol 386 EditableTextUses:346Used by:393
Symbol 387 TextUses:15Used by:393
Symbol 388 TextUses:15Used by:393
Symbol 389 TextUses:15Used by:393
Symbol 390 TextUses:15Used by:393
Symbol 391 TextUses:351Used by:393
Symbol 392 GraphicUsed by:393
Symbol 393 MovieClip {comic_0}Uses:341 386 356 153 387 388 389 390 391 392Used by:Timeline
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:396
Symbol 396 MovieClip {_groundDisplay}Uses:395Used by:Timeline
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:399
Symbol 399 MovieClip {groundDisplay2}Uses:398Used by:Timeline
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:402
Symbol 402 MovieClip {groundDisplay3}Uses:401Used by:Timeline
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClip {G1}Uses:403Used by:Timeline
Symbol 405 GraphicUsed by:473
Symbol 406 GraphicUsed by:473
Symbol 407 GraphicUsed by:473
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:408Used by:473
Symbol 410 GraphicUsed by:473
Symbol 411 GraphicUsed by:473
Symbol 412 GraphicUsed by:473
Symbol 413 GraphicUsed by:473
Symbol 414 GraphicUsed by:473
Symbol 415 GraphicUsed by:473
Symbol 416 GraphicUsed by:473
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:417Used by:473
Symbol 419 GraphicUsed by:473
Symbol 420 GraphicUsed by:473 475 477 479 485 500 502 558 896
Symbol 421 GraphicUsed by:473
Symbol 422 GraphicUsed by:473
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClipUses:423Used by:473
Symbol 425 GraphicUsed by:473
Symbol 426 GraphicUsed by:473
Symbol 427 GraphicUsed by:473
Symbol 428 GraphicUsed by:473
Symbol 429 GraphicUsed by:473
Symbol 430 GraphicUsed by:473
Symbol 431 GraphicUsed by:473
Symbol 432 GraphicUsed by:473
Symbol 433 GraphicUsed by:473
Symbol 434 GraphicUsed by:473 740
Symbol 435 GraphicUsed by:473
Symbol 436 GraphicUsed by:473
Symbol 437 GraphicUsed by:473
Symbol 438 GraphicUsed by:473
Symbol 439 GraphicUsed by:473
Symbol 440 GraphicUsed by:473
Symbol 441 GraphicUsed by:473
Symbol 442 GraphicUsed by:473
Symbol 443 GraphicUsed by:473
Symbol 444 GraphicUsed by:473
Symbol 445 GraphicUsed by:473
Symbol 446 GraphicUsed by:473
Symbol 447 GraphicUsed by:473
Symbol 448 GraphicUsed by:473
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:473
Symbol 451 GraphicUsed by:473
Symbol 452 GraphicUsed by:473
Symbol 453 GraphicUsed by:473
Symbol 454 GraphicUsed by:473
Symbol 455 GraphicUsed by:473
Symbol 456 GraphicUsed by:473
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClipUses:457Used by:473
Symbol 459 GraphicUsed by:473
Symbol 460 GraphicUsed by:473
Symbol 461 GraphicUsed by:473
Symbol 462 GraphicUsed by:473
Symbol 463 GraphicUsed by:473
Symbol 464 GraphicUsed by:473
Symbol 465 GraphicUsed by:473
Symbol 466 GraphicUsed by:473
Symbol 467 GraphicUsed by:473
Symbol 468 GraphicUsed by:473
Symbol 469 GraphicUsed by:473
Symbol 470 GraphicUsed by:473
Symbol 471 GraphicUsed by:473
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClip {baseGraphicsMain}Uses:405 407 409 410 406 411 413 414 412 415 418 419 416 420 421 424 425 422 426 428 429 427 430 432 433 431 434 435 437 438 436 439 440 442 443 441 444 446 445 447 450 451 448 452 454 453 455 458 459 456 460 462 463 461 464 466 465 467 468 470 471 469 472Used by:Timeline
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:474 420Used by:503
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476 420Used by:503
Symbol 478 GraphicUsed by:479
Symbol 479 MovieClipUses:478 420Used by:503
Symbol 480 GraphicUsed by:481
Symbol 481 MovieClipUses:480Used by:503
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:482Used by:503
Symbol 484 GraphicUsed by:485
Symbol 485 MovieClipUses:484 420Used by:503
Symbol 486 GraphicUsed by:487
Symbol 487 MovieClipUses:486Used by:503
Symbol 488 GraphicUsed by:489
Symbol 489 MovieClipUses:488Used by:503
Symbol 490 GraphicUsed by:491
Symbol 491 MovieClipUses:490Used by:503
Symbol 492 GraphicUsed by:493
Symbol 493 MovieClipUses:492Used by:496
Symbol 494 GraphicUsed by:495
Symbol 495 MovieClipUses:494Used by:496
Symbol 496 MovieClipUses:493 495Used by:503
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:503
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499 420Used by:503
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:501 420Used by:503
Symbol 503 MovieClip {_weapon}Uses:475 477 479 481 483 485 487 489 491 496 498 500 502Used by:Timeline
Symbol 504 GraphicUsed by:505
Symbol 505 MovieClipUses:504Used by:527
Symbol 506 GraphicUsed by:507
Symbol 507 MovieClipUses:506Used by:527
Symbol 508 GraphicUsed by:509 532 558
Symbol 509 MovieClipUses:508Used by:527
Symbol 510 GraphicUsed by:511
Symbol 511 MovieClipUses:510Used by:527
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClipUses:512Used by:527
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClipUses:514Used by:527
Symbol 516 GraphicUsed by:517
Symbol 517 MovieClipUses:516Used by:527
Symbol 518 GraphicUsed by:519
Symbol 519 MovieClipUses:518Used by:527
Symbol 520 GraphicUsed by:521
Symbol 521 MovieClipUses:520Used by:527
Symbol 522 GraphicUsed by:523
Symbol 523 MovieClipUses:522Used by:527
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClipUses:524Used by:527
Symbol 526 MovieClipUses:153Used by:527
Symbol 527 MovieClip {_trail}Uses:505 507 509 511 513 515 517 519 521 523 525 526Used by:Timeline
Symbol 528 MovieClipUses:264Used by:569
Symbol 529 MovieClipUses:155Used by:569
Symbol 530 MovieClipUses:159Used by:569
Symbol 531 MovieClipUses:163Used by:569
Symbol 532 MovieClipUses:508Used by:541 545 546 547 548 549 559 560 568
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClipUses:533Used by:541 545 546 547 548 549 559 560
Symbol 535 GraphicUsed by:536
Symbol 536 MovieClipUses:535Used by:541 545 546 547 548 549 559 560
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClipUses:537Used by:541 545 546 547 548 549 559 560
Symbol 539 GraphicUsed by:540 567
Symbol 540 MovieClipUses:539Used by:541 545 546 547 548 549 559 560
Symbol 541 MovieClipUses:532 534 536 538 540Used by:569
Symbol 542 GraphicUsed by:543
Symbol 543 MovieClipUses:542Used by:544
Symbol 544 MovieClipUses:543Used by:569
Symbol 545 MovieClipUses:532 534 536 538 540Used by:569
Symbol 546 MovieClipUses:532 534 536 538 540Used by:569
Symbol 547 MovieClipUses:532 534 536 538 540Used by:569
Symbol 548 MovieClipUses:532 534 536 538 540Used by:569
Symbol 549 MovieClipUses:532 534 536 538 540Used by:569
Symbol 550 GraphicUsed by:558
Symbol 551 ShapeTweeningUsed by:558
Symbol 552 GraphicUsed by:558
Symbol 553 GraphicUsed by:558
Symbol 554 ShapeTweeningUsed by:558
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:558
Symbol 557 GraphicUsed by:558
Symbol 558 MovieClipUses:550 508 420 551 552 553 554 556 557Used by:569
Symbol 559 MovieClipUses:532 534 536 538 540Used by:569
Symbol 560 MovieClipUses:532 534 536 538 540Used by:569
Symbol 561 GraphicUsed by:562
Symbol 562 MovieClipUses:561Used by:568
Symbol 563 GraphicUsed by:564
Symbol 564 MovieClipUses:563Used by:568
Symbol 565 GraphicUsed by:566
Symbol 566 MovieClipUses:565Used by:568
Symbol 567 MovieClipUses:539Used by:568
Symbol 568 MovieClipUses:532 562 564 566 567Used by:569
Symbol 569 MovieClip {_ex}Uses:528 529 530 531 541 544 545 546 547 548 549 558 559 560 568Used by:Timeline
Symbol 570 GraphicUsed by:582
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:571Used by:582
Symbol 573 GraphicUsed by:582
Symbol 574 BitmapUsed by:575 668
Symbol 575 GraphicUses:574Used by:576 582 719
Symbol 576 MovieClipUses:575Used by:582 642 790 828
Symbol 577 GraphicUsed by:582
Symbol 578 GraphicUsed by:582
Symbol 579 GraphicUsed by:582
Symbol 580 GraphicUsed by:582
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClipUses:572 570 573 576 577 575 578 579 580 581Used by:859 896
Symbol 583 GraphicUsed by:605
Symbol 584 GraphicUsed by:605 625 700 808 826
Symbol 585 GraphicUsed by:605
Symbol 586 GraphicUsed by:605
Symbol 587 GraphicUsed by:605
Symbol 588 GraphicUsed by:605
Symbol 589 GraphicUsed by:605
Symbol 590 GraphicUsed by:605
Symbol 591 GraphicUsed by:605
Symbol 592 GraphicUsed by:605
Symbol 593 BitmapUsed by:594 847
Symbol 594 GraphicUses:593Used by:595
Symbol 595 MovieClipUses:594Used by:605 625 642 700 756 781 790 808 826 828 838
Symbol 596 GraphicUsed by:605
Symbol 597 GraphicUsed by:605
Symbol 598 GraphicUsed by:605
Symbol 599 GraphicUsed by:605
Symbol 600 GraphicUsed by:605
Symbol 601 GraphicUsed by:605
Symbol 602 GraphicUsed by:605
Symbol 603 GraphicUsed by:605 700 826
Symbol 604 GraphicUsed by:605 700 826
Symbol 605 MovieClipUses:583 584 585 586 587 588 589 590 591 592 595 596 597 598 599 600 601 602 603 604Used by:859 896
Symbol 606 GraphicUsed by:625
Symbol 607 GraphicUsed by:625
Symbol 608 GraphicUsed by:625
Symbol 609 GraphicUsed by:625
Symbol 610 GraphicUsed by:625
Symbol 611 GraphicUsed by:625
Symbol 612 GraphicUsed by:625
Symbol 613 GraphicUsed by:625
Symbol 614 GraphicUsed by:625
Symbol 615 GraphicUsed by:625
Symbol 616 GraphicUsed by:625
Symbol 617 GraphicUsed by:625
Symbol 618 GraphicUsed by:625
Symbol 619 GraphicUsed by:625
Symbol 620 GraphicUsed by:625
Symbol 621 GraphicUsed by:625
Symbol 622 GraphicUsed by:625
Symbol 623 GraphicUsed by:625 719 808 856
Symbol 624 GraphicUsed by:625 719 808 856
Symbol 625 MovieClipUses:606 584 607 608 609 610 611 612 613 595 614 615 616 617 618 619 620 621 622 623 624Used by:859 896
Symbol 626 GraphicUsed by:642 828 896
Symbol 627 GraphicUsed by:642
Symbol 628 GraphicUsed by:642 828 896
Symbol 629 GraphicUsed by:630
Symbol 630 MovieClipUses:629Used by:642
Symbol 631 GraphicUsed by:642
Symbol 632 GraphicUsed by:642
Symbol 633 GraphicUsed by:642 828
Symbol 634 GraphicUsed by:642 828
Symbol 635 GraphicUsed by:642 828
Symbol 636 GraphicUsed by:642 828
Symbol 637 GraphicUsed by:642 828
Symbol 638 GraphicUsed by:642 828 896
Symbol 639 GraphicUsed by:640
Symbol 640 MovieClipUses:639Used by:642 828 896
Symbol 641 GraphicUsed by:642 828 896
Symbol 642 MovieClipUses:626 627 630 628 631 632 633 634 635 636 595 637 576 638 640 641Used by:859 896
Symbol 643 GraphicUsed by:649 667 744
Symbol 644 GraphicUsed by:649
Symbol 645 GraphicUsed by:646
Symbol 646 MovieClipUses:645Used by:649 667 744
Symbol 647 GraphicUsed by:649
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:644 646 647 643 648Used by:681
Symbol 650 GraphicUsed by:655 677 747
Symbol 651 GraphicUsed by:652
Symbol 652 MovieClipUses:651Used by:655 677 747
Symbol 653 GraphicUsed by:655
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:652 653 650 654Used by:681
Symbol 656 GraphicUsed by:660 679 749
Symbol 657 GraphicUsed by:658
Symbol 658 MovieClipUses:657Used by:660 679 749
Symbol 659 GraphicUsed by:660
Symbol 660 MovieClipUses:658 656 659Used by:681
Symbol 661 GraphicUsed by:680 681 761
Symbol 662 GraphicUsed by:681 756 761
Symbol 663 GraphicUsed by:681
Symbol 664 GraphicUsed by:667
Symbol 665 GraphicUsed by:667
Symbol 666 GraphicUsed by:667
Symbol 667 MovieClipUses:664 646 665 643 666Used by:681 756 761
Symbol 668 GraphicUses:574Used by:669
Symbol 669 MovieClipUses:668Used by:681 730 740 761
Symbol 670 GraphicUsed by:681
Symbol 671 GraphicUsed by:681
Symbol 672 GraphicUsed by:681
Symbol 673 GraphicUsed by:674
Symbol 674 MovieClipUses:673Used by:681 756 761
Symbol 675 GraphicUsed by:677
Symbol 676 GraphicUsed by:677
Symbol 677 MovieClipUses:652 675 650 676Used by:681 756 761
Symbol 678 GraphicUsed by:679
Symbol 679 MovieClipUses:658 656 678Used by:681 756 761
Symbol 680 MovieClipUses:661Used by:681 761
Symbol 681 MovieClipUses:649 655 660 661 662 663 667 669 670 671 672 674 677 679 680Used by:859 896
Symbol 682 GraphicUsed by:700
Symbol 683 GraphicUsed by:700
Symbol 684 GraphicUsed by:700
Symbol 685 GraphicUsed by:700
Symbol 686 GraphicUsed by:700
Symbol 687 GraphicUsed by:700
Symbol 688 GraphicUsed by:700
Symbol 689 GraphicUsed by:700
Symbol 690 GraphicUsed by:700
Symbol 691 GraphicUsed by:700
Symbol 692 GraphicUsed by:700
Symbol 693 GraphicUsed by:700
Symbol 694 GraphicUsed by:700
Symbol 695 GraphicUsed by:700
Symbol 696 GraphicUsed by:700
Symbol 697 GraphicUsed by:700
Symbol 698 GraphicUsed by:700
Symbol 699 GraphicUsed by:700
Symbol 700 MovieClipUses:682 584 683 684 685 686 687 688 689 690 595 691 692 693 694 695 696 697 698 699 603 604Used by:859 896
Symbol 701 GraphicUsed by:719
Symbol 702 GraphicUsed by:719 856
Symbol 703 GraphicUsed by:719
Symbol 704 GraphicUsed by:719
Symbol 705 GraphicUsed by:719
Symbol 706 GraphicUsed by:719
Symbol 707 GraphicUsed by:719
Symbol 708 GraphicUsed by:719
Symbol 709 GraphicUsed by:719
Symbol 710 GraphicUsed by:719
Symbol 711 GraphicUsed by:719
Symbol 712 GraphicUsed by:719
Symbol 713 GraphicUsed by:719
Symbol 714 GraphicUsed by:719
Symbol 715 GraphicUsed by:719
Symbol 716 GraphicUsed by:719
Symbol 717 GraphicUsed by:719
Symbol 718 GraphicUsed by:719
Symbol 719 MovieClipUses:701 702 703 704 705 706 707 708 709 575 710 711 712 713 714 715 716 717 718 623 624Used by:859 896
Symbol 720 GraphicUsed by:730 896
Symbol 721 GraphicUsed by:730
Symbol 722 GraphicUsed by:723
Symbol 723 MovieClipUses:722Used by:730
Symbol 724 GraphicUsed by:730
Symbol 725 GraphicUsed by:730
Symbol 726 GraphicUsed by:730
Symbol 727 GraphicUsed by:730
Symbol 728 GraphicUsed by:730
Symbol 729 GraphicUsed by:730
Symbol 730 MovieClipUses:720 723 724 721 725 726 669 727 728 729Used by:859 896
Symbol 731 GraphicUsed by:740
Symbol 732 GraphicUsed by:733
Symbol 733 MovieClipUses:732Used by:740
Symbol 734 GraphicUsed by:740
Symbol 735 GraphicUsed by:740
Symbol 736 GraphicUsed by:740
Symbol 737 GraphicUsed by:740
Symbol 738 GraphicUsed by:740
Symbol 739 GraphicUsed by:740
Symbol 740 MovieClipUses:434 733 734 731 735 736 669 737 738 739Used by:859 896
Symbol 741 GraphicUsed by:744
Symbol 742 GraphicUsed by:744
Symbol 743 GraphicUsed by:744
Symbol 744 MovieClipUses:741 646 742 643 743Used by:756
Symbol 745 GraphicUsed by:747
Symbol 746 GraphicUsed by:747
Symbol 747 MovieClipUses:652 745 650 746Used by:756
Symbol 748 GraphicUsed by:749
Symbol 749 MovieClipUses:658 656 748Used by:756
Symbol 750 GraphicUsed by:755 756
Symbol 751 GraphicUsed by:756
Symbol 752 GraphicUsed by:756
Symbol 753 GraphicUsed by:756
Symbol 754 GraphicUsed by:756
Symbol 755 MovieClipUses:750Used by:756
Symbol 756 MovieClipUses:595 744 747 749 750 662 751 677 752 753 754 674 667 679 755Used by:859 896
Symbol 757 GraphicUsed by:761
Symbol 758 GraphicUsed by:761
Symbol 759 GraphicUsed by:761
Symbol 760 GraphicUsed by:761
Symbol 761 MovieClipUses:667 677 679 661 662 757 669 758 759 760 674 680Used by:859 896
Symbol 762 GraphicUsed by:781
Symbol 763 GraphicUsed by:781
Symbol 764 GraphicUsed by:765
Symbol 765 MovieClipUses:764Used by:781
Symbol 766 GraphicUsed by:781
Symbol 767 GraphicUsed by:781
Symbol 768 GraphicUsed by:781
Symbol 769 GraphicUsed by:781
Symbol 770 GraphicUsed by:781
Symbol 771 GraphicUsed by:781
Symbol 772 GraphicUsed by:781
Symbol 773 GraphicUsed by:774
Symbol 774 MovieClipUses:773Used by:781
Symbol 775 GraphicUsed by:781
Symbol 776 GraphicUsed by:781
Symbol 777 GraphicUsed by:781
Symbol 778 GraphicUsed by:781
Symbol 779 GraphicUsed by:781
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClipUses:763 765 762 766 768 767 769 770 772 774 771 775 776 777 778 595 779 780Used by:859 896
Symbol 782 GraphicUsed by:790
Symbol 783 GraphicUsed by:784
Symbol 784 MovieClipUses:783Used by:790
Symbol 785 GraphicUsed by:790
Symbol 786 GraphicUsed by:790
Symbol 787 GraphicUsed by:790
Symbol 788 GraphicUsed by:790
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClipUses:784 782 785 786 576 787 788 789 595Used by:859 896
Symbol 791 GraphicUsed by:808
Symbol 792 GraphicUsed by:808
Symbol 793 GraphicUsed by:808
Symbol 794 GraphicUsed by:808
Symbol 795 GraphicUsed by:808
Symbol 796 GraphicUsed by:808
Symbol 797 GraphicUsed by:808
Symbol 798 GraphicUsed by:808
Symbol 799 GraphicUsed by:808
Symbol 800 GraphicUsed by:808
Symbol 801 GraphicUsed by:808
Symbol 802 GraphicUsed by:808
Symbol 803 GraphicUsed by:808
Symbol 804 GraphicUsed by:808
Symbol 805 GraphicUsed by:808
Symbol 806 GraphicUsed by:808
Symbol 807 GraphicUsed by:808
Symbol 808 MovieClipUses:791 584 792 793 794 795 796 797 798 595 799 800 801 802 803 804 805 806 807 623 624Used by:859 896
Symbol 809 GraphicUsed by:826
Symbol 810 GraphicUsed by:826
Symbol 811 GraphicUsed by:826
Symbol 812 GraphicUsed by:826
Symbol 813 GraphicUsed by:826
Symbol 814 GraphicUsed by:826
Symbol 815 GraphicUsed by:826
Symbol 816 GraphicUsed by:826
Symbol 817 GraphicUsed by:826
Symbol 818 GraphicUsed by:826
Symbol 819 GraphicUsed by:826
Symbol 820 GraphicUsed by:826
Symbol 821 GraphicUsed by:826
Symbol 822 GraphicUsed by:826
Symbol 823 GraphicUsed by:826
Symbol 824 GraphicUsed by:826
Symbol 825 GraphicUsed by:826
Symbol 826 MovieClipUses:809 584 810 811 812 813 814 815 816 595 817 818 819 820 821 822 823 824 825 603 604Used by:859 896
Symbol 827 GraphicUsed by:828
Symbol 828 MovieClipUses:626 638 640 628 641 827 633 634 635 636 595 637 576Used by:859
Symbol 829 GraphicUsed by:838
Symbol 830 GraphicUsed by:831
Symbol 831 MovieClipUses:830Used by:838
Symbol 832 GraphicUsed by:838
Symbol 833 GraphicUsed by:838
Symbol 834 GraphicUsed by:838
Symbol 835 GraphicUsed by:838
Symbol 836 GraphicUsed by:838
Symbol 837 GraphicUsed by:838
Symbol 838 MovieClipUses:831 829 832 833 834 835 836 837 595Used by:859 896
Symbol 839 GraphicUsed by:856
Symbol 840 GraphicUsed by:856
Symbol 841 GraphicUsed by:856
Symbol 842 GraphicUsed by:856
Symbol 843 GraphicUsed by:856
Symbol 844 GraphicUsed by:856
Symbol 845 GraphicUsed by:856
Symbol 846 GraphicUsed by:856
Symbol 847 GraphicUses:593Used by:856
Symbol 848 GraphicUsed by:856
Symbol 849 GraphicUsed by:856
Symbol 850 GraphicUsed by:856
Symbol 851 GraphicUsed by:856
Symbol 852 GraphicUsed by:856
Symbol 853 GraphicUsed by:856
Symbol 854 GraphicUsed by:856
Symbol 855 GraphicUsed by:856
Symbol 856 MovieClipUses:839 702 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 623 624Used by:859
Symbol 857 GraphicUsed by:858
Symbol 858 MovieClipUses:857Used by:859
Symbol 859 MovieClip {_unit}Uses:582 605 625 642 681 700 719 730 740 756 761 781 790 808 826 828 838 856 858Used by:Timeline
Symbol 860 BitmapUsed by:861
Symbol 861 GraphicUses:860Used by:862
Symbol 862 MovieClipUses:861Used by:864 896
Symbol 863 GraphicUsed by:864
Symbol 864 MovieClip {adjuster}Uses:862 863Used by:Timeline
Symbol 865 FontUsed by:866
Symbol 866 TextUses:865Used by:896
Symbol 867 GraphicUsed by:896
Symbol 868 GraphicUsed by:869
Symbol 869 MovieClipUses:868Used by:896
Symbol 870 GraphicUsed by:896
Symbol 871 GraphicUsed by:896
Symbol 872 GraphicUsed by:896
Symbol 873 GraphicUsed by:896
Symbol 874 GraphicUsed by:896
Symbol 875 GraphicUsed by:896
Symbol 876 GraphicUsed by:896
Symbol 877 GraphicUsed by:896
Symbol 878 GraphicUsed by:896
Symbol 879 GraphicUsed by:896
Symbol 880 GraphicUsed by:896
Symbol 881 GraphicUsed by:896
Symbol 882 GraphicUsed by:896
Symbol 883 GraphicUsed by:896
Symbol 884 GraphicUsed by:896
Symbol 885 GraphicUsed by:896
Symbol 886 GraphicUsed by:896
Symbol 887 GraphicUsed by:896
Symbol 888 GraphicUsed by:896
Symbol 889 GraphicUsed by:896
Symbol 890 GraphicUsed by:896
Symbol 891 GraphicUsed by:896
Symbol 892 GraphicUsed by:896
Symbol 893 GraphicUsed by:894
Symbol 894 MovieClipUses:893Used by:896
Symbol 895 GraphicUsed by:896
Symbol 896 MovieClip {_icon}Uses:862 866 867 143 869 870 871 872 873 874 875 876 877 878 838 730 826 719 808 781 626 638 640 628 641 879 756 761 880 790 740 881 700 163 882 159 883 155 884 720 885 886 887 888 264 889 681 890 642 891 625 892 605 582 894 420 895Used by:Timeline
Symbol 897 GraphicUsed by:910
Symbol 898 SoundUsed by:910
Symbol 899 SoundUsed by:910
Symbol 900 GraphicUsed by:901
Symbol 901 MovieClipUses:900Used by:910
Symbol 902 GraphicUsed by:910
Symbol 903 SoundUsed by:910
Symbol 904 SoundUsed by:910
Symbol 905 SoundUsed by:910
Symbol 906 GraphicUsed by:907
Symbol 907 ButtonUses:906Used by:910
Symbol 908 SoundUsed by:910
Symbol 909 SoundUsed by:910
Symbol 910 MovieClip {Giraffe_fla.ag_intro_mc_158}Uses:273 274 897 898 899 901 902 903 904 905 907 908 909Used by:Timeline
Symbol 911 FontUsed by:912
Symbol 912 TextUses:911Used by:Timeline
Symbol 913 TextUses:107Used by:Timeline
Symbol 914 FontUsed by:915 958 959 963 966 972 973 976 977 978 979 984
Symbol 915 TextUses:914Used by:933
Symbol 916 GraphicUsed by:933
Symbol 917 BitmapUsed by:918
Symbol 918 GraphicUses:917Used by:919
Symbol 919 MovieClipUses:918Used by:933
Symbol 920 EditableTextUses:3Used by:933
Symbol 921 GraphicUsed by:933
Symbol 922 GraphicUsed by:923
Symbol 923 MovieClipUses:922Used by:933
Symbol 924 GraphicUsed by:933
Symbol 925 MovieClipUsed by:933
Symbol 926 GraphicUsed by:927
Symbol 927 MovieClipUses:926Used by:933
Symbol 928 GraphicUsed by:933
Symbol 929 BitmapUsed by:930
Symbol 930 GraphicUses:929Used by:931
Symbol 931 MovieClipUses:930Used by:933
Symbol 932 GraphicUsed by:933
Symbol 933 MovieClipUses:915 916 302 919 920 277 921 923 924 925 927 928 931 932Used by:Timeline
Symbol 934 TextUses:107Used by:Timeline
Symbol 935 TextUses:107Used by:Timeline
Symbol 936 TextUses:107Used by:Timeline
Symbol 937 TextUses:107Used by:Timeline
Symbol 938 TextUses:107Used by:Timeline
Symbol 939 Sound {Ambient1}Used by:Timeline
Symbol 940 Sound {Slow1}Used by:Timeline
Symbol 941 Sound {CapitalistTheme}Used by:Timeline
Symbol 942 Sound {Fill1}Used by:Timeline
Symbol 943 Sound {Beat1}Used by:Timeline
Symbol 944 Sound {Ambient2}Used by:Timeline
Symbol 945 Sound {Slow2}Used by:Timeline
Symbol 946 Sound {CommunistTheme}Used by:Timeline
Symbol 947 Sound {Fill2}Used by:Timeline
Symbol 948 Sound {Beat2}Used by:Timeline
Symbol 949 Sound {Ambient3}Used by:Timeline
Symbol 950 Sound {FascistTheme}Used by:Timeline
Symbol 951 Sound {Fill3}Used by:Timeline
Symbol 952 Sound {Beat3}Used by:Timeline
Symbol 953 Sound {Fill4}Used by:Timeline
Symbol 954 Sound {Beat4}Used by:Timeline
Symbol 955 Sound {Fill5}Used by:Timeline
Symbol 956 Sound {Beat5}Used by:Timeline
Symbol 957 Sound {Fill6}Used by:Timeline
Symbol 958 TextUses:914Used by:Timeline
Symbol 959 TextUses:914Used by:Timeline
Symbol 960 EditableTextUses:3Used by:Timeline
Symbol 961 GraphicUsed by:962
Symbol 962 MovieClipUses:961Used by:Timeline
Symbol 963 TextUses:914Used by:Timeline
Symbol 964 GraphicUsed by:967
Symbol 965 GraphicUsed by:967
Symbol 966 TextUses:914Used by:967
Symbol 967 ButtonUses:964 965 153 966Used by:Timeline
Symbol 968 GraphicUsed by:971
Symbol 969 GraphicUsed by:971
Symbol 970 GraphicUsed by:971
Symbol 971 ButtonUses:968 969 970Used by:Timeline
Symbol 972 TextUses:914Used by:Timeline
Symbol 973 TextUses:914Used by:Timeline
Symbol 974 EditableTextUses:3Used by:Timeline
Symbol 975 EditableTextUses:3Used by:Timeline
Symbol 976 TextUses:914Used by:Timeline
Symbol 977 TextUses:914Used by:Timeline
Symbol 978 TextUses:914Used by:Timeline
Symbol 979 TextUses:914Used by:Timeline
Symbol 980 EditableTextUses:3Used by:Timeline
Symbol 981 EditableTextUses:3Used by:Timeline
Symbol 982 EditableTextUses:3Used by:Timeline
Symbol 983 EditableTextUses:3Used by:Timeline
Symbol 984 TextUses:914Used by:Timeline
Symbol 985 EditableTextUses:3Used by:Timeline
Symbol 986 FontUsed by:987 998 999 1000
Symbol 987 EditableTextUses:986Used by:Timeline
Symbol 988 GraphicUsed by:989
Symbol 989 MovieClipUses:988Used by:Timeline
Symbol 990 GraphicUsed by:995
Symbol 991 GraphicUsed by:995
Symbol 992 GraphicUsed by:995
Symbol 993 GraphicUsed by:995
Symbol 994 GraphicUsed by:995
Symbol 995 MovieClip {Giraffe_fla.MPScreenCounter_227}Uses:990 991 992 993 994Used by:Timeline
Symbol 996 FontUsed by:997
Symbol 997 TextUses:996Used by:Timeline
Symbol 998 EditableTextUses:986Used by:Timeline
Symbol 999 EditableTextUses:986Used by:Timeline
Symbol 1000 EditableTextUses:986Used by:Timeline
Symbol 1001 GraphicUsed by:Timeline
Symbol 1002 BitmapUsed by:1003
Symbol 1003 GraphicUses:1002Used by:1004
Symbol 1004 MovieClipUses:1003Used by:Timeline
Symbol 1005 GraphicUsed by:Timeline
Symbol 1006 FontUsed by:1007 1011
Symbol 1007 EditableTextUses:1006Used by:1010
Symbol 1008 GraphicUsed by:1009
Symbol 1009 MovieClipUses:1008Used by:1010
Symbol 1010 MovieClip {Giraffe_fla.promptBoxButton_251}Uses:1007 1009Used by:1015
Symbol 1011 EditableTextUses:1006Used by:1015
Symbol 1012 BitmapUsed by:1013
Symbol 1013 GraphicUses:1012Used by:1014
Symbol 1014 MovieClipUses:1013Used by:1015
Symbol 1015 MovieClip {Giraffe_fla.promptBox_249}Uses:1010 1011 1014Used by:Timeline
Symbol 1016 FontUsed by:1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1048 1049 1050 1053
Symbol 1017 EditableTextUses:1016Used by:Timeline
Symbol 1018 EditableTextUses:1016Used by:Timeline
Symbol 1019 EditableTextUses:1016Used by:Timeline
Symbol 1020 EditableTextUses:1016Used by:Timeline
Symbol 1021 EditableTextUses:1016Used by:Timeline
Symbol 1022 EditableTextUses:1016Used by:Timeline
Symbol 1023 EditableTextUses:1016Used by:Timeline
Symbol 1024 EditableTextUses:1016Used by:Timeline
Symbol 1025 EditableTextUses:1016Used by:Timeline
Symbol 1026 EditableTextUses:1016Used by:Timeline
Symbol 1027 EditableTextUses:1016Used by:Timeline
Symbol 1028 EditableTextUses:1016Used by:Timeline
Symbol 1029 GraphicUsed by:1034
Symbol 1030 GraphicUsed by:1031
Symbol 1031 MovieClipUses:1030Used by:1034
Symbol 1032 BitmapUsed by:1033 1072
Symbol 1033 GraphicUses:1032Used by:1034
Symbol 1034 MovieClipUses:1031 1033 1029Used by:Timeline
Symbol 1035 EditableTextUses:3Used by:Timeline
Symbol 1036 MovieClip {Giraffe_fla.optionIcon_240}Used by:1037  Timeline
Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}Uses:144 1036Used by:Timeline
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClipUses:1038Used by:1041
Symbol 1040 GraphicUsed by:1041
Symbol 1041 MovieClip {Giraffe_fla.chatScrollBar_245}Uses:144 1039 1040Used by:1043
Symbol 1042 MovieClipUsed by:1043
Symbol 1043 MovieClip {Giraffe_fla.chatBox_243}Uses:1041 1042 143Used by:Timeline
Symbol 1044 MovieClipUses:153Used by:1045
Symbol 1045 MovieClip {Giraffe_fla.buildBar_241}Uses:1044Used by:Timeline
Symbol 1046 EditableTextUses:3Used by:Timeline
Symbol 1047 EditableTextUses:3Used by:Timeline
Symbol 1048 EditableTextUses:1016Used by:Timeline
Symbol 1049 EditableTextUses:1016Used by:Timeline
Symbol 1050 EditableTextUses:1016Used by:Timeline
Symbol 1051 EditableTextUses:3Used by:Timeline
Symbol 1052 GraphicUsed by:Timeline
Symbol 1053 EditableTextUses:1016Used by:Timeline
Symbol 1054 GraphicUsed by:1055
Symbol 1055 MovieClipUses:1054Used by:1073
Symbol 1056 GraphicUsed by:1067
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClipUses:1057Used by:1067
Symbol 1059 GraphicUsed by:1060
Symbol 1060 MovieClipUses:1059Used by:1067
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClipUses:1061Used by:1067
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClipUses:1063Used by:1067
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClipUses:1065Used by:1067
Symbol 1067 MovieClipUses:1056 1058 1060 1062 1064 1066Used by:1068
Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}Uses:144 1067Used by:1073
Symbol 1069 GraphicUsed by:1073
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClipUses:1070Used by:1073
Symbol 1072 GraphicUses:1032Used by:1073
Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229}Uses:1055 1068 1069 1071 1072Used by:Timeline
Symbol 1074 FontUsed by:1075
Symbol 1075 EditableTextUses:1074Used by:Timeline
Symbol 1076 GraphicUsed by:Timeline
Symbol 1077 GraphicUsed by:1078 1124
Symbol 1078 MovieClipUses:1077Used by:1123
Symbol 1079 GraphicUsed by:1080 1125
Symbol 1080 MovieClipUses:1079Used by:1123
Symbol 1081 GraphicUsed by:1082 1126
Symbol 1082 MovieClipUses:1081Used by:1123
Symbol 1083 BitmapUsed by:1084
Symbol 1084 GraphicUses:1083Used by:1085
Symbol 1085 MovieClipUses:1084Used by:1123
Symbol 1086 GraphicUsed by:1087
Symbol 1087 MovieClipUses:1086Used by:1088
Symbol 1088 MovieClip {Giraffe_fla.S_279}Uses:1087Used by:1097
Symbol 1089 GraphicUsed by:1090
Symbol 1090 MovieClipUses:1089Used by:1097
Symbol 1091 BitmapUsed by:1092
Symbol 1092 GraphicUses:1091Used by:1097
Symbol 1093 BitmapUsed by:1094
Symbol 1094 GraphicUses:1093Used by:1095
Symbol 1095 MovieClipUses:1094Used by:1097
Symbol 1096 GraphicUsed by:1097
Symbol 1097 MovieClipUses:1088 1090 1092 1095 1096Used by:1123
Symbol 1098 GraphicUsed by:1099 1130
Symbol 1099 MovieClipUses:1098Used by:1123
Symbol 1100 GraphicUsed by:1123
Symbol 1101 BitmapUsed by:1102
Symbol 1102 GraphicUses:1101Used by:1103
Symbol 1103 MovieClipUses:1102Used by:1123
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClipUses:1104Used by:1106
Symbol 1106 MovieClipUses:1105Used by:1123
Symbol 1107 BitmapUsed by:1108
Symbol 1108 GraphicUses:1107Used by:1109
Symbol 1109 MovieClipUses:1108Used by:1123
Symbol 1110 GraphicUsed by:1111
Symbol 1111 MovieClipUses:1110Used by:1112
Symbol 1112 MovieClipUses:1111Used by:1123
Symbol 1113 BitmapUsed by:1114
Symbol 1114 GraphicUses:1113Used by:1115
Symbol 1115 MovieClipUses:1114Used by:1123
Symbol 1116 BitmapUsed by:1117
Symbol 1117 GraphicUses:1116Used by:1118
Symbol 1118 MovieClipUses:1117Used by:1123
Symbol 1119 BitmapUsed by:1120
Symbol 1120 GraphicUses:1119Used by:1121
Symbol 1121 MovieClipUses:1120Used by:1123
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClip {Giraffe_fla.VictoryScreen_266}Uses:1078 1080 1082 1085 1097 1099 1100 1103 1106 1109 1112 1115 1118 1121 1122Used by:Timeline
Symbol 1124 MovieClipUses:1077Used by:1153
Symbol 1125 MovieClipUses:1079Used by:1153
Symbol 1126 MovieClipUses:1081Used by:1153
Symbol 1127 BitmapUsed by:1128
Symbol 1128 GraphicUses:1127Used by:1129
Symbol 1129 MovieClipUses:1128Used by:1153
Symbol 1130 MovieClipUses:1098Used by:1153
Symbol 1131 BitmapUsed by:1132
Symbol 1132 GraphicUses:1131Used by:1133
Symbol 1133 MovieClipUses:1132Used by:1136
Symbol 1134 BitmapUsed by:1135
Symbol 1135 GraphicUses:1134Used by:1136
Symbol 1136 MovieClipUses:1133 1135Used by:1153
Symbol 1137 GraphicUsed by:1138
Symbol 1138 MovieClipUses:1137Used by:1153
Symbol 1139 BitmapUsed by:1140
Symbol 1140 GraphicUses:1139Used by:1141
Symbol 1141 MovieClipUses:1140Used by:1153
Symbol 1142 BitmapUsed by:1143
Symbol 1143 GraphicUses:1142Used by:1144
Symbol 1144 MovieClipUses:1143Used by:1153
Symbol 1145 BitmapUsed by:1146
Symbol 1146 GraphicUses:1145Used by:1147
Symbol 1147 MovieClipUses:1146Used by:1153
Symbol 1148 BitmapUsed by:1149
Symbol 1149 GraphicUses:1148Used by:1150
Symbol 1150 MovieClipUses:1149Used by:1153
Symbol 1151 BitmapUsed by:1152
Symbol 1152 GraphicUses:1151Used by:1153
Symbol 1153 MovieClip {Giraffe_fla.defeatScreen_253}Uses:1124 1125 1126 1129 1130 1136 1138 1141 1144 1147 1150 1152Used by:Timeline

Instance Names

"d_mc6"Frame 1Symbol 280 MovieClip {Giraffe_fla.d_mc7_17}
"d_mc5"Frame 1Symbol 282 MovieClip {Giraffe_fla.d_mc6_16}
"d_mc4"Frame 1Symbol 284 MovieClip {Giraffe_fla.d_mc5_15}
"d_mc3"Frame 1Symbol 286 MovieClip {Giraffe_fla.d_mc4_14}
"d_mc2"Frame 1Symbol 288 MovieClip {Giraffe_fla.d_mc3_13}
"d_mc1"Frame 1Symbol 292 MovieClip {Giraffe_fla.d_mc2_10}
"d_mc0"Frame 1Symbol 295 MovieClip {Giraffe_fla.d_mc1_7}
"dateMC"Frame 1Symbol 298 MovieClip {Giraffe_fla.dateMc_6}
"loadBar"Frame 1Symbol 306 MovieClip {Giraffe_fla.loadingBar_3}
"adBox"Frame 1Symbol 136 MovieClip
"button_play"Frame 2Symbol 312 Button
"agIntro"Frame 4Symbol 910 MovieClip {Giraffe_fla.ag_intro_mc_158}
"button_link"Frame 23Symbol 126 MovieClip {fl.controls.Button}
"button_mission"Frame 23Symbol 126 MovieClip {fl.controls.Button}
"button_multi"Frame 23Symbol 126 MovieClip {fl.controls.Button}
"button_single"Frame 23Symbol 126 MovieClip {fl.controls.Button}
"nameBox"Frame 24Symbol 960 EditableText
"xb_back"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"sxB_1"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"sxB_2"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"sxB_3"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"sxB_5"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"sxB_4"Frame 24Symbol 126 MovieClip {fl.controls.Button}
"combo1"Frame 24Symbol 106 MovieClip {fl.controls.ComboBox}
"butmis_6"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"butmis_5"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"butmis_4"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"butmis_3"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"butmis_2"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"butmis_1"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"xb_back2"Frame 25Symbol 126 MovieClip {fl.controls.Button}
"j_server2"Frame 26Symbol 126 MovieClip {fl.controls.Button}
"j_server0"Frame 26Symbol 126 MovieClip {fl.controls.Button}
"xb_back3"Frame 26Symbol 126 MovieClip {fl.controls.Button}
"j_server1"Frame 26Symbol 126 MovieClip {fl.controls.Button}
"mis_next"Frame 27Symbol 967 Button
"mis_beg"Frame 27Symbol 971 Button
"reMe"Frame 29Symbol 260 MovieClip {fl.controls.CheckBox}
"in_pass"Frame 29Symbol 974 EditableText
"in_name"Frame 29Symbol 975 EditableText
"but_register"Frame 29Symbol 126 MovieClip {fl.controls.Button}
"but_login"Frame 29Symbol 126 MovieClip {fl.controls.Button}
"but_exit"Frame 29Symbol 126 MovieClip {fl.controls.Button}
"but_guest"Frame 29Symbol 126 MovieClip {fl.controls.Button}
"re_email"Frame 30Symbol 980 EditableText
"re_pass2"Frame 30Symbol 981 EditableText
"re_pass"Frame 30Symbol 982 EditableText
"re_name"Frame 30Symbol 983 EditableText
"but_exit2"Frame 30Symbol 126 MovieClip {fl.controls.Button}
"but_register2"Frame 30Symbol 126 MovieClip {fl.controls.Button}
"re_anon"Frame 31Symbol 985 EditableText
"but_exit3"Frame 31Symbol 126 MovieClip {fl.controls.Button}
"but_login3"Frame 31Symbol 126 MovieClip {fl.controls.Button}
"n_l3"Frame 34Symbol 987 EditableText
"countTime"Frame 34Symbol 995 MovieClip {Giraffe_fla.MPScreenCounter_227}
"n_l4"Frame 34Symbol 998 EditableText
"n_l1"Frame 34Symbol 999 EditableText
"n_l2"Frame 34Symbol 1000 EditableText
"promptBox"Frame 35Symbol 1015 MovieClip {Giraffe_fla.promptBox_249}
"r_e4"Frame 35Symbol 1017 EditableText
"r_p4"Frame 35Symbol 1018 EditableText
"r_m4"Frame 35Symbol 1019 EditableText
"r_i4"Frame 35Symbol 1020 EditableText
"r_e3"Frame 35Symbol 1021 EditableText
"r_p3"Frame 35Symbol 1022 EditableText
"r_m3"Frame 35Symbol 1023 EditableText
"r_i3"Frame 35Symbol 1024 EditableText
"r_e2"Frame 35Symbol 1025 EditableText
"r_p2"Frame 35Symbol 1026 EditableText
"r_m2"Frame 35Symbol 1027 EditableText
"r_i2"Frame 35Symbol 1028 EditableText
"chatHider"Frame 35Symbol 1034 MovieClip
"chatToWho"Frame 35Symbol 1035 EditableText
"b3"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b2"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b1"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b0"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"chatBox"Frame 35Symbol 1043 MovieClip {Giraffe_fla.chatBox_243}
"buildBar"Frame 35Symbol 1045 MovieClip {Giraffe_fla.buildBar_241}
"oi"Frame 35Symbol 1036 MovieClip {Giraffe_fla.optionIcon_240}
"b8"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b7"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b6"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b5"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"b4"Frame 35Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239}
"uiDesc"Frame 35Symbol 1046 EditableText
"uiName"Frame 35Symbol 1047 EditableText
"r_e"Frame 35Symbol 1048 EditableText
"r_p"Frame 35Symbol 1049 EditableText
"r_m"Frame 35Symbol 1050 EditableText
"chatPanel"Frame 35Symbol 1051 EditableText
"r_i"Frame 35Symbol 1053 EditableText
"uiLay"Frame 35Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229}
"shower"Frame 36Symbol 1075 EditableText
"button_res"Frame 36Symbol 126 MovieClip {fl.controls.Button}
"v_screen"Frame 36Symbol 1123 MovieClip {Giraffe_fla.VictoryScreen_266}
"d_screen"Frame 36Symbol 1153 MovieClip {Giraffe_fla.defeatScreen_253}
"n"Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317} Frame 1Symbol 70 EditableText
"ranker_4"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 14 MovieClip
"ranker_3"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 14 MovieClip
"ranker_2"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 14 MovieClip
"ranker_1"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 14 MovieClip
"gameSetting"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 29 MovieClip {Giraffe_fla.gameSetting_314}
"scr_1"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 63 MovieClip {fl.controls.UIScrollBar}
"textBox"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 68 EditableText
"d4"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317}
"d3"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317}
"c4"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 106 MovieClip {fl.controls.ComboBox}
"c3"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 106 MovieClip {fl.controls.ComboBox}
"d2"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317}
"d1"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 73 MovieClip {Giraffe_fla.teamDisplay_317}
"c2"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 106 MovieClip {fl.controls.ComboBox}
"c1"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 106 MovieClip {fl.controls.ComboBox}
"startGame"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"backLobby"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"chatSend"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 128 EditableText
"chatBox"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 129 EditableText
"InstanceName_2"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 132 MovieClip
"adBox"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 136 MovieClip
"InstanceName_1"Symbol 140 MovieClip {MultiplayerRoomGraphic} Frame 1Symbol 139 MovieClip
"gameName"Symbol 151 MovieClip {MultiplayerMakeGraphic} Frame 1Symbol 141 EditableText
"makeGame"Symbol 151 MovieClip {MultiplayerMakeGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"backLobby"Symbol 151 MovieClip {MultiplayerMakeGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"setChange"Symbol 151 MovieClip {MultiplayerMakeGraphic} Frame 1Symbol 144 Button
"gameSetting"Symbol 151 MovieClip {MultiplayerMakeGraphic} Frame 1Symbol 29 MovieClip {Giraffe_fla.gameSetting_314}
"raceButton"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 144 Button
"ranker"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 14 MovieClip
"racePlate"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 166 MovieClip
"scr_2"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 63 MovieClip {fl.controls.UIScrollBar}
"scr_1"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 63 MovieClip {fl.controls.UIScrollBar}
"roomBox"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 106 MovieClip {fl.controls.ComboBox}
"s_rank"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 169 EditableText
"s_cwins"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 174 EditableText
"s_wratio"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 175 EditableText
"s_gwon"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 176 EditableText
"s_gplayed"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 177 EditableText
"__id2_"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"playRankedButton"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"createGameButton"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"joinGameButton"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"exitButton"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 126 MovieClip {fl.controls.Button}
"theList"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 94 MovieClip {fl.controls.List}
"chatSend"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 183 EditableText
"chatBox"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 184 EditableText
"textBox"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 185 EditableText
"InstanceName_0"Symbol 190 MovieClip {MultiplayerScreenGraphic} Frame 1Symbol 189 MovieClip
"bgi"Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298} Frame 1Symbol 207 MovieClip
"bgh"Symbol 231 MovieClip {_base} Frame 1Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298}
"innerFrame"Symbol 231 MovieClip {_base} Frame 1Symbol 223 MovieClip {baseFrame}
"bc"Symbol 231 MovieClip {_base} Frame 1Symbol 228 MovieClip {Giraffe_fla.buildingCover_296}
"traBut"Symbol 244 MovieClip {Tracer} Frame 1Symbol 144 Button
"tr"Symbol 244 MovieClip {Tracer} Frame 1Symbol 235 EditableText
"c_i"Symbol 266 MovieClip {costTip2} Frame 1Symbol 262 EditableText
"c_e"Symbol 270 MovieClip {costTip} Frame 1Symbol 267 EditableText
"c_p"Symbol 270 MovieClip {costTip} Frame 1Symbol 268 EditableText
"c_m"Symbol 270 MovieClip {costTip} Frame 1Symbol 269 EditableText
"b"Symbol 277 MovieClip {Giraffe_fla.ArmorGamesLogo_18} Frame 1Symbol 272 Button
"inBut"Symbol 280 MovieClip {Giraffe_fla.d_mc7_17} Frame 1Symbol 144 Button
"inBut"Symbol 282 MovieClip {Giraffe_fla.d_mc6_16} Frame 1Symbol 144 Button
"inBut"Symbol 284 MovieClip {Giraffe_fla.d_mc5_15} Frame 1Symbol 144 Button
"inBut"Symbol 286 MovieClip {Giraffe_fla.d_mc4_14} Frame 1Symbol 144 Button
"inBut"Symbol 288 MovieClip {Giraffe_fla.d_mc3_13} Frame 1Symbol 144 Button
"inBut"Symbol 292 MovieClip {Giraffe_fla.d_mc2_10} Frame 1Symbol 289 Button
"inBut"Symbol 295 MovieClip {Giraffe_fla.d_mc1_7} Frame 1Symbol 144 Button
"t"Symbol 298 MovieClip {Giraffe_fla.dateMc_6} Frame 1Symbol 296 EditableText
"bar"Symbol 306 MovieClip {Giraffe_fla.loadingBar_3} Frame 1Symbol 304 MovieClip
"p"Symbol 1010 MovieClip {Giraffe_fla.promptBoxButton_251} Frame 1Symbol 1007 EditableText
"b3"Symbol 1015 MovieClip {Giraffe_fla.promptBox_249} Frame 1Symbol 1010 MovieClip {Giraffe_fla.promptBoxButton_251}
"b2"Symbol 1015 MovieClip {Giraffe_fla.promptBox_249} Frame 1Symbol 1010 MovieClip {Giraffe_fla.promptBoxButton_251}
"b1"Symbol 1015 MovieClip {Giraffe_fla.promptBox_249} Frame 1Symbol 1010 MovieClip {Giraffe_fla.promptBoxButton_251}
"p"Symbol 1015 MovieClip {Giraffe_fla.promptBox_249} Frame 1Symbol 1011 EditableText
"btn"Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239} Frame 1Symbol 144 Button
"gfx"Symbol 1037 MovieClip {Giraffe_fla.uiButtonIcon_239} Frame 1Symbol 1036 MovieClip {Giraffe_fla.optionIcon_240}
"butDown"Symbol 1041 MovieClip {Giraffe_fla.chatScrollBar_245} Frame 1Symbol 144 Button
"butUp"Symbol 1041 MovieClip {Giraffe_fla.chatScrollBar_245} Frame 1Symbol 144 Button
"bob"Symbol 1041 MovieClip {Giraffe_fla.chatScrollBar_245} Frame 1Symbol 1039 MovieClip
"sb"Symbol 1043 MovieClip {Giraffe_fla.chatBox_243} Frame 1Symbol 1041 MovieClip {Giraffe_fla.chatScrollBar_245}
"innerBox"Symbol 1043 MovieClip {Giraffe_fla.chatBox_243} Frame 1Symbol 1042 MovieClip
"theButton"Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231} Frame 1Symbol 144 Button
"theIcon"Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231} Frame 1Symbol 1067 MovieClip
"bg_5"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}
"bg_4"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}
"bg_3"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}
"bg_2"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}
"bg_1"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}
"bg_0"Symbol 1073 MovieClip {Giraffe_fla.UI_Layout_229} Frame 1Symbol 1068 MovieClip {Giraffe_fla.iconCombatButton_231}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
EnableDebugger2 (64)Timeline Frame 131 bytes "..$1$Z2$B8Nq4frbPSkkjAgWX6anG0."

Labels

"ARMOR"Frame 4
"Prestart"Frame 20
"OutOf"Frame 21
"OutOf2"Frame 22
"START"Frame 23
"SINGLE"Frame 24
"MISSION"Frame 25
"SERVER"Frame 26
"Story"Frame 27
"mpLogin"Frame 29
"mpRegister"Frame 30
"mpAnon"Frame 31
"mpLobby"Frame 32
"spLobby"Frame 33
"Pre"Frame 34
"Game"Frame 35
"END"Frame 36
"Lock"Frame 37
"Built"Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298} Frame 2
"Up"Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298} Frame 11
"Down"Symbol 208 MovieClip {Giraffe_fla.baseGraphicsHolder_298} Frame 28
"basic"Symbol 223 MovieClip {baseFrame} Frame 1
"selected"Symbol 223 MovieClip {baseFrame} Frame 6
"working"Symbol 223 MovieClip {baseFrame} Frame 11
"basic"Symbol 231 MovieClip {_base} Frame 1
"run"Symbol 582 MovieClip Frame 16
"fire"Symbol 582 MovieClip Frame 31
"death"Symbol 582 MovieClip Frame 36
"run"Symbol 605 MovieClip Frame 5
"fire"Symbol 605 MovieClip Frame 17
"death"Symbol 605 MovieClip Frame 19
"run"Symbol 625 MovieClip Frame 5
"fire"Symbol 625 MovieClip Frame 17
"death"Symbol 625 MovieClip Frame 23
"run"Symbol 642 MovieClip Frame 15
"fire"Symbol 642 MovieClip Frame 31
"death"Symbol 642 MovieClip Frame 34
"run"Symbol 681 MovieClip Frame 5
"fire"Symbol 681 MovieClip Frame 32
"death"Symbol 681 MovieClip Frame 36
"run"Symbol 700 MovieClip Frame 5
"fire"Symbol 700 MovieClip Frame 17
"death"Symbol 700 MovieClip Frame 23
"run"Symbol 719 MovieClip Frame 5
"prefire"Symbol 719 MovieClip Frame 15
"fire"Symbol 719 MovieClip Frame 17
"death"Symbol 719 MovieClip Frame 23
"run"Symbol 730 MovieClip Frame 15
"fire"Symbol 730 MovieClip Frame 31
"death"Symbol 730 MovieClip Frame 35
"run"Symbol 740 MovieClip Frame 15
"fire"Symbol 740 MovieClip Frame 31
"death"Symbol 740 MovieClip Frame 35
"run"Symbol 756 MovieClip Frame 5
"fire"Symbol 756 MovieClip Frame 32
"death"Symbol 756 MovieClip Frame 36
"run"Symbol 761 MovieClip Frame 5
"fire"Symbol 761 MovieClip Frame 32
"death"Symbol 761 MovieClip Frame 36
"run"Symbol 781 MovieClip Frame 5
"fire"Symbol 781 MovieClip Frame 51
"death"Symbol 781 MovieClip Frame 55
"run"Symbol 790 MovieClip Frame 9
"fire"Symbol 790 MovieClip Frame 21
"death"Symbol 790 MovieClip Frame 36
"run"Symbol 808 MovieClip Frame 5
"fire"Symbol 808 MovieClip Frame 17
"death"Symbol 808 MovieClip Frame 23
"run"Symbol 826 MovieClip Frame 5
"prefire"Symbol 826 MovieClip Frame 15
"fire"Symbol 826 MovieClip Frame 17
"death"Symbol 826 MovieClip Frame 23
"run"Symbol 828 MovieClip Frame 15
"fire"Symbol 828 MovieClip Frame 31
"death"Symbol 828 MovieClip Frame 34
"run"Symbol 838 MovieClip Frame 5
"fire"Symbol 838 MovieClip Frame 17
"death"Symbol 838 MovieClip Frame 32
"run"Symbol 856 MovieClip Frame 5
"prefire"Symbol 856 MovieClip Frame 15
"fire"Symbol 856 MovieClip Frame 17
"death"Symbol 856 MovieClip Frame 23
"YELLOW"Symbol 1045 MovieClip {Giraffe_fla.buildBar_241} Frame 1
"GREEN"Symbol 1045 MovieClip {Giraffe_fla.buildBar_241} Frame 2




http://swfchan.com/18/89313/info.shtml
Created: 29/3 -2019 01:35:30 Last modified: 29/3 -2019 01:35:30 Server time: 25/04 -2024 13:33:18