Frame 1
stop();
this.onEnterFrame = function () {
ifFrameLoaded (2) {
delete this.onEnterFrame;
gotoAndStop (2);
}
};
var rcMenu = new ContextMenu();
rcMenu.hideBuiltInItems();
rcMenu.customItems.push(new ContextMenuItem("Monster Master", function () {
}));
rcMenu.customItems.push(new ContextMenuItem("Created by Matthew Stradwick", function () {
}));
rcMenu.customItems.push(new ContextMenuItem("Crazy Monkey Games", function () {
getURL ("http://www.crazymonkeygames.com", "_blank");
}));
this.menu = rcMenu;
Instance of Symbol 52 MovieClip in Frame 2
on (release) {
getURL ("http://www.crazymonkeygames.com", "_blank");
}
Frame 3
stop();
Instance of Symbol 437 MovieClip [Button] in Frame 3
//component parameters
onClipEvent (construct) {
icon = "";
label = "Button";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Frame 5
function preload() {
stageManager = this.createEmptyMovieClip("stageManager", 0);
stageManager.onResize = function () {
stageManager._x = WIDTH / 2;
stageManager._y = HEIGHT / 2;
var _local1 = new flash.geom.Rectangle(0, 0, WIDTH, HEIGHT);
stageManager._parent.scrollRect = _local1;
};
Stage.addListener(stageManager);
stageManager.onResize();
var titleScreen = stageManager.attachMovie("Title Screen", "titleScreen", 0);
var dispatch = this;
titleScreen.playButton.onRelease = function () {
dispatch.selectPlayers();
titleScreen.removeMovieClip();
};
titleScreen.instructionsButton.onRelease = function () {
var _local1 = titleScreen.createChildAtDepth("Tutorial", mx.managers.DepthManager.kTop);
};
titleScreen.moreGamesButton.onRelease = function () {
getURL ("http://www.crazymonkeygames.com", "_blank");
};
}
function selectPlayers() {
var dispatch = this;
playerSelect = stageManager.createChildAtDepth("PlayerSelect", mx.managers.DepthManager.kTop, {gameInfo:gameInfo, input:input});
playerSelect.doneFunc = function () {
dispatch.startGame();
};
}
function startGame() {
if (gameInfo.deckStrength[0] != "Custom") {
gameInfo.generateDeckList(0);
}
if (gameInfo.deckStrength[1] != "Custom") {
gameInfo.generateDeckList(1);
}
var dispatch = this;
game = stageManager.createChildAtDepth("Game", mx.managers.DepthManager.kTop, {gameInfo:gameInfo, input:input});
Card.game = game;
Player.game = game;
game.doneFunc = function () {
dispatch.selectPlayers();
};
game.startup();
}
function onKeyUp() {
switch (Key.getCode()) {
case 27 :
input.keyEscape();
return;
case 32 :
input.keySpace();
return;
case 13 :
input.keyEnter();
}
}
function tallyPoints(counts) {
var _local3 = 0;
var _local1 = 0;
while (_local1 < counts.length) {
_local3 = _local3 + (counts[_local1].count * counts[_local1].card.cost);
_local1++;
}
return(_local3);
}
function findReplacementCard(counts, compareFunc) {
var _local3 = new Array();
var _local4 = 0;
while (_local4 < counts.length) {
_local3.push({from:_local4, to:new Array()});
if (counts[_local4].count > 0) {
var _local1 = 0;
while (_local1 < counts.length) {
if (counts[_local1].viable) {
if (compareFunc(counts[_local1].card.cost, counts[_local4].card.cost) && (counts[_local1].count < counts[_local1].card.limit)) {
_local3[_local4].to.push(_local1);
}
}
_local1++;
}
}
_local4++;
}
_local4 = _local3.length - 1;
while (_local4 >= 0) {
if (_local3[_local4].to.length < 1) {
_local3.splice(_local4, 1);
}
_local4--;
}
if (_local3.length < 1) {
return(false);
}
var _local8 = Math.floor(Math.random() * _local3.length);
var _local9 = Math.floor(Math.random() * _local3[_local8].to.length);
counts[_local3[_local8].from].count--;
counts[_local3[_local8].to[_local9]].count++;
return(true);
}
function allocateCards(counts, count) {
c = 0;
while (c < count) {
var _local3 = new Array();
var _local1 = 0;
while (_local1 < counts.length) {
if (counts[_local1].viable && (counts[_local1].count < counts[_local1].card.limit)) {
_local3.push(counts[_local1]);
}
_local1++;
}
var _local4 = Math.floor(Math.random() * _local3.length);
_local3[_local4].count++;
c++;
}
}
function testMagicViability(cardName, monsterCounts) {
if (cardName == "Necromancy") {
var _local1 = 0;
while (_local1 < monsterCounts.length) {
if ((monsterCounts[_local1].card.cardName == "Skeleton") && (monsterCounts[_local1].count > 0)) {
return(true);
}
_local1++;
}
return(false);
}
if (cardName == "Combine") {
var _local6 = 0;
while (_local6 < Card.combinations.length) {
var _local4 = Card.combinations[_local6];
var _local5 = true;
var _local3 = 0;
while (_local3 < _local4.componentNames.length) {
var _local1 = 0;
while (_local1 < monsterCounts.length) {
if ((monsterCounts[_local1].card.cardName == _local4.componentNames[_local3]) && (monsterCounts[_local1].count < 1)) {
_local5 = false;
}
_local1++;
}
_local3++;
}
if (_local5) {
return(true);
}
_local6++;
}
return(false);
}
return(true);
}
_global.WIDTH = 800;
_global.HEIGHT = 600;
var stageManager;
var mask;
var playerSelect;
var game;
var input = {keySpace:null, keyEnter:null, keyEscape:null};
Key.addListener(this);
var gameInfo = {playerName:new Array("Player 1", "Computer"), computer:new Array(false, true), avatar:new Array("Player", "Computer"), deckStrength:new Array(2000, 2000), deckList:new Array(null, null), animLength:8, shuffleLength:2, AIThinkTime:15};
input.getState = function () {
return({keyEscape:input.keyEscape, keyEnter:input.keyEnter, keySpace:input.keySpace});
};
input.setState = function (state) {
input.keyEnter = state.keyEnter;
input.keyEscape = state.keyEscape;
input.keySpace = state.keySpace;
};
input.clear = function () {
input.keySpace = (input.keyEnter = (input.keyEscape = null));
};
gameInfo.generateDeckList = function (player) {
var _local13 = gameInfo.deckStrength[player];
var _local12 = 18 + Math.round((Math.random() * 6) - 3);
var _local7 = 10 * Math.round(((_local12 / 40) * _local13) / 10);
var _local14 = 40 - _local12;
var _local8 = _local13 - _local7;
var _local2 = new Array();
var _local1 = new Array();
var _local3 = 0;
while (_local3 < Card.monsterList.length) {
_local2.push({count:0, card:Card.monsterList[_local3], viable:true});
_local3++;
}
_local3 = 0;
while (_local3 < Card.magicList.length) {
_local1.push({count:0, card:Card.magicList[_local3], viable:true});
_local3++;
}
allocateCards(_local2, _local12);
var _local6 = tallyPoints(_local2);
while (_local6 != _local7) {
_local6 = tallyPoints(_local2);
if (_local6 < _local7) {
if (!findReplacementCard(_local2, function (a, b) {
return(a > b);
})) {
trace("Could not meet monster budget");
break;
}
} else if (!findReplacementCard(_local2, function (a, b) {
return(a < b);
})) {
trace("Could not meet monster budget");
break;
}
}
_local3 = 0;
while (_local3 < _local1.length) {
_local1[_local3].viable = testMagicViability(_local1[_local3].card.cardName, _local2);
_local3++;
}
allocateCards(_local1, _local14);
var _local5 = tallyPoints(_local1);
while (_local5 != _local8) {
_local5 = tallyPoints(_local1);
if (_local5 < _local8) {
if (!findReplacementCard(_local1, function (a, b) {
return(a > b);
})) {
trace("Could not meet magic budget");
break;
}
} else if (!findReplacementCard(_local1, function (a, b) {
return(a < b);
})) {
trace("Could not meet magic budget");
break;
}
}
var _local4 = new Array();
_local3 = 0;
while (_local3 < _local2.length) {
while (_local2[_local3].count > 0) {
_local2[_local3].count--;
_local4.push(_local2[_local3].card.cardName);
}
_local3++;
}
_local3 = 0;
while (_local3 < _local1.length) {
while (_local1[_local3].count > 0) {
_local1[_local3].count--;
_local4.push(_local1[_local3].card.cardName);
}
_local3++;
}
gameInfo.deckList[player] = _local4;
};
gameInfo.shuffleDeck = function (player) {
var _local1 = gameInfo.deckList[player];
var _local3 = new Array();
while (_local1.length > 0) {
var _local2 = Math.floor(Math.random() * _local1.length);
_local3.push(_local1[_local2]);
_local1.splice(_local2, 1);
}
var _local2 = 0;
while (_local2 < _local3.length) {
_local1.push(_local3[_local2]);
_local2++;
}
};
preload();
stop();
Symbol 34 Button
on (release) {
_parent.gotoAndStop("Game");
}
Symbol 35 MovieClip Frame 1
stop();
Instance of Symbol 23 MovieClip in Symbol 35 MovieClip Frame 1
onClipEvent (enterFrame) {
bar._xscale = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (bar._xscale == 100) {
_parent.nextFrame();
}
}
Symbol 35 MovieClip Frame 2
_parent.gotoAndStop("Loaded");
Symbol 51 MovieClip Frame 1
stop();
Symbol 52 MovieClip Frame 1
gotoAndPlay (2);
Instance of Symbol 51 MovieClip in Symbol 52 MovieClip Frame 81
onClipEvent (enterFrame) {
chance = random(90);
if (chance == 1) {
play();
}
}
Instance of Symbol 21 MovieClip in Symbol 52 MovieClip Frame 81
on (release) {
getURL ("http://www.crazymonkeygames.com", "_blank");
}
Symbol 52 MovieClip Frame 95
stop();
Symbol 56 MovieClip Frame 1
spiral._rotation = spiral._rotation + 20;
Symbol 56 MovieClip Frame 2
gotoAndPlay (1);
Symbol 59 MovieClip Frame 1
this._rotation = Math.random() * 360;
this.gotoAndPlay(Math.floor(Math.random() * 10));
this.onEnterFrame = function () {
this._rotation = this._rotation + 10;
};
Symbol 59 MovieClip Frame 11
gotoAndPlay (2);
Symbol 67 MovieClip [Fireball Visual] Frame 18
this.removeMovieClip();
Symbol 79 MovieClip [Flood visual] Frame 15
this.removeMovieClip();
Symbol 83 MovieClip Frame 4
_parent.removeMovieClip();
Symbol 88 MovieClip [Card] Frame 1
#initclip 60
Object.registerClass("Card", Card);
#endinitclip
Symbol 97 MovieClip [Effect] Frame 1
#initclip 50
Object.registerClass("Effect", Effect);
#endinitclip
Symbol 99 MovieClip [Explosion] Frame 40
this.removeMovieClip();
Symbol 107 MovieClip [HealthBar] Frame 1
#initclip 51
Object.registerClass("HealthBar", HealthBar);
#endinitclip
stop();
Symbol 111 MovieClip Frame 1
stop();
Symbol 111 MovieClip Frame 40
gotoAndStop ("Wait");
Symbol 138 MovieClip [Summoning] Frame 27
gotoAndPlay (1);
Symbol 139 MovieClip [Game] Frame 1
#initclip 52
Object.registerClass("Game", Game);
#endinitclip
Symbol 144 MovieClip [Barrier] Frame 1
stop();
Symbol 144 MovieClip [Barrier] Frame 21
stop();
Symbol 144 MovieClip [Barrier] Frame 41
stop();
Symbol 146 MovieClip [InputBlocker] Frame 1
block.useHandCursor = false;
block.onRelease = function () {
};
block._width = _global.WIDTH;
block._height = _global.HEIGHT;
Symbol 154 MovieClip [BattlePopup] Frame 1
#initclip 53
Object.registerClass("BattlePopup", BattlePopup);
#endinitclip
Symbol 167 MovieClip [CardPicker] Frame 1
#initclip 54
Object.registerClass("CardPicker", CardPicker);
#endinitclip
Symbol 199 MovieClip [DeckCreator] Frame 1
#initclip 55
Object.registerClass("DeckCreator", DeckCreator);
#endinitclip
Instance of Symbol 51 MovieClip in Symbol 241 MovieClip Frame 73
onClipEvent (enterFrame) {
chance = random(90);
if (chance == 1) {
play();
}
}
Symbol 272 MovieClip [PlayerSelect] Frame 1
#initclip 56
Object.registerClass("PlayerSelect", PlayerSelect);
#endinitclip
Symbol 301 MovieClip Frame 1
this.onRelease = function () {
getURL ("http://www.crazymonkeygames.com", "_blank");
};
Symbol 302 MovieClip [Title Screen] Frame 1
mino.cacheAsBitmap = true;
cmg.cacheAsBitmap = true;
Symbol 302 MovieClip [Title Screen] Frame 15
stop();
Symbol 310 MovieClip [Nav Highlight] Frame 1
this.enabled = false;
Symbol 310 MovieClip [Nav Highlight] Frame 10
stop();
Symbol 355 MovieClip [Slide 2] Frame 1
p1.nameLabel.text = "Player 1";
p2.nameLabel.text = "Computer";
p1.avatar.gotoAndStop(2);
p2.avatar.gotoAndStop(1);
spiderCard.cardName = "Spider";
spiderCard.init();
spiderCard._xscale = (spiderCard._yscale = 50);
spiderCard.setFlipped(true);
spiderCard.setInPlay(true);
ratCard.cardName = "Rat";
ratCard.init();
ratCard._xscale = (ratCard._yscale = 50);
ratCard.setFlipped(true);
ratCard.setInPlay(true);
minotaurCard.cardName = "Minotaur";
minotaurCard.init();
minotaurCard._xscale = (minotaurCard._yscale = 50);
minotaurCard.setFlipped(true);
minotaurCard.setInPlay(true);
chargeCard.cardName = "Charge!";
chargeCard.init();
chargeCard._xscale = (chargeCard._yscale = 50);
chargeCard.setFlipped(true);
giftCard.cardName = "Gift";
giftCard.init();
giftCard._xscale = (giftCard._yscale = 50);
giftCard.setFlipped(true);
summonCard.cardName = "Summon";
summonCard.init();
summonCard._xscale = (summonCard._yscale = 50);
summonCard.setFlipped(true);
Symbol 366 MovieClip [Slide 3] Frame 1
monsterCard.cardName = "Rat";
monsterCard.init();
monsterCard._xscale = (monsterCard._yscale = 200);
monsterCard.setFlipped(true);
monsterCard.setInPlay(false);
monsterCard.setActive(false);
monsterCard.addEffect("Sword");
monsterCard.overlay.pingAttack._visible = false;
magicCard.cardName = "Sword";
magicCard.init();
magicCard._xscale = (magicCard._yscale = 200);
magicCard.setFlipped(true);
magicCard.setActive(false);
Symbol 367 Button
on (release) {
this.play();
}
Symbol 386 MovieClip Frame 1
stop();
divider.barrier.gotoAndStop("Down");
p1.nameLabel.text = "Player 1";
p2.nameLabel.text = "Computer";
p1.avatar.gotoAndStop(2);
p2.avatar.gotoAndStop(1);
card1.cardName = "Minotaur";
card1.init();
card1.setFlipped(true);
card1.setInPlay(false);
card2.cardName = "Weaken";
card2.init();
card2.setFlipped(true);
card3.cardName = "Rat";
card3.init();
card3.setFlipped(true);
card3.setInPlay(false);
card4.cardName = "Sacrifice";
card4.init();
card4.setFlipped(true);
card5.cardName = "Flood";
card5.init();
card5.setFlipped(true);
card6.cardName = "Lightning";
card6.init();
card6.setFlipped(true);
Symbol 386 MovieClip Frame 40
stop();
Symbol 386 MovieClip Frame 60
stop();
card1.setInPlay(true);
card1.beginSummon();
card3.setUsable(false);
Symbol 386 MovieClip Frame 61
stop();
Symbol 386 MovieClip Frame 62
stop();
divider.barrier.gotoAndPlay("Down");
card1.summoning._visible = false;
card1.summoning.stop();
card1.setUsable(true);
card7.cardName = "Ninja";
card7.init();
card7.setFlipped(true);
card7.setInPlay(false);
card8.cardName = "Spider";
card8.init();
card8.setFlipped(true);
card8.setInPlay(false);
Symbol 386 MovieClip Frame 63
card1.damage(1);
card7.damage(1);
card8.damage(1);
Symbol 386 MovieClip Frame 78
stop();
Symbol 386 MovieClip Frame 89
card7.damage(2);
Symbol 386 MovieClip Frame 108
stop();
Symbol 386 MovieClip Frame 117
battle.battle(card1, card8);
battle.pauseAutomation();
stop();
Symbol 386 MovieClip Frame 118
battle.onEnterFrame = function () {
battle.randomNumbers();
};
Symbol 386 MovieClip Frame 137
stop();
battle.onEnterFrame = null;
battle.attackLabel.text = "4";
battle.defenseLabel.text = "1";
battle.defenderDisplay.overlay.healthBar.explode(3);
battle.defenderDisplay.health = battle.defenderDisplay.health - 3;
battle.defenderDisplay.updateOverlay();
Symbol 386 MovieClip Frame 138
card8.damage(3);
Symbol 386 MovieClip Frame 152
stop();
Symbol 386 MovieClip Frame 165
p2.healthBar2.explode(6);
p2.healthBar2.update(4, 10);
stop();
Symbol 386 MovieClip Frame 166
stop();
Symbol 386 MovieClip Frame 167
stop();
Symbol 394 Button
on (release) {
this.removeMovieClip();
}
Symbol 395 Button
on (release) {
moveTo(1);
}
Symbol 396 Button
on (release) {
moveTo(2);
}
Symbol 397 Button
on (release) {
moveTo(3);
}
Symbol 398 Button
on (release) {
moveTo(4);
}
Symbol 403 MovieClip [Tutorial] Frame 1
#initclip 57
Object.registerClass("Tutorial", Tutorial);
#endinitclip
Symbol 404 MovieClip [AnimationHandler] Frame 1
#initclip 58
Object.registerClass("AnimationHandler", AnimationHandler);
#endinitclip
Symbol 412 MovieClip [BrdrShdw] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "shadowColor");
Symbol 414 MovieClip [BrdrFace] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "buttonColor");
Symbol 417 MovieClip [BrdrBlk] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "borderColor");
Symbol 419 MovieClip [BrdrHilght] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "highlightColor");
Symbol 422 MovieClip [Defaults] Frame 1
#initclip 37
Object.registerClass("Defaults", mx.skins.halo.Defaults);
#endinitclip
Symbol 423 MovieClip [UIObjectExtensions] Frame 1
#initclip 38
Object.registerClass("UIObjectExtensions", mx.core.ext.UIObjectExtensions);
#endinitclip
Symbol 424 MovieClip [UIObject] Frame 1
#initclip 39
Object.registerClass("UIObject", mx.core.UIObject);
#endinitclip
stop();
Symbol 427 Button
on (keyPress "<Tab>") {
this.tabHandler();
}
Symbol 428 MovieClip Frame 1
#initclip 40
Object.registerClass("FocusManager", mx.managers.FocusManager);
if (_root.focusManager == undefined) {
_root.createClassObject(mx.managers.FocusManager, "focusManager", mx.managers.DepthManager.highestDepth--);
}
#endinitclip
Symbol 429 MovieClip [FocusRect] Frame 1
#initclip 41
Object.registerClass("FocusRect", mx.skins.halo.FocusRect);
#endinitclip
Symbol 430 MovieClip [FocusManager] Frame 1
#initclip 42
Object.registerClass("FocusManager", mx.managers.FocusManager);
#endinitclip
stop();
Symbol 431 MovieClip [UIComponentExtensions] Frame 1
#initclip 43
Object.registerClass("UIComponentExtensions", mx.core.ext.UIComponentExtensions);
#endinitclip
Symbol 432 MovieClip [UIComponent] Frame 1
#initclip 44
Object.registerClass("UIComponent", mx.core.UIComponent);
#endinitclip
stop();
Symbol 433 MovieClip [SimpleButton] Frame 1
#initclip 45
Object.registerClass("SimpleButton", mx.controls.SimpleButton);
#endinitclip
stop();
Symbol 434 MovieClip [Border] Frame 1
#initclip 46
Object.registerClass("Border", mx.skins.Border);
#endinitclip
stop();
Symbol 435 MovieClip [RectBorder] Frame 1
#initclip 47
mx.skins.SkinElement.registerElement(mx.skins.RectBorder.symbolName, Object(mx.skins.RectBorder));
Object.registerClass("RectBorder", mx.skins.halo.RectBorder);
#endinitclip
stop();
Symbol 436 MovieClip [ButtonSkin] Frame 1
#initclip 48
Object.registerClass("ButtonSkin", mx.skins.halo.ButtonSkin);
#endinitclip
Symbol 437 MovieClip [Button] Frame 1
#initclip 49
Object.registerClass("Button", mx.controls.Button);
#endinitclip
stop();
Instance of Symbol 433 MovieClip [SimpleButton] in Symbol 437 MovieClip [Button] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 458 MovieClip [Player] Frame 1
#initclip 59
Object.registerClass("Player", Player);
#endinitclip
Symbol 584 MovieClip [__Packages.Effect] Frame 0
class Effect extends MovieClip
{
var effectName, nameLabel, transform;
function Effect () {
super();
}
static function applicable(effectName, card) {
switch (effectName) {
case "Fire Sword" :
return(scanEffects(effectName, card) == null);
case "Ice Shield" :
return(scanEffects(effectName, card) == null);
case "Sword" :
return((scanEffects(effectName, card) == null) && (scanEffects("Fire Sword", card) == null));
case "Shield" :
return((scanEffects(effectName, card) == null) && (scanEffects("Ice Shield", card) == null));
case "Curse" :
return((scanEffects(effectName, card) == null) && ((card.attack > 0) || (card.defense > 0)));
case "Weaken" :
return((scanEffects(effectName, card) == null) && (card.attack > 0));
case "Vulnerable" :
return((scanEffects(effectName, card) == null) && (card.defense > 0));
case "Poison" :
return(card.flesh);
case "Reaper" :
return(card.attack > 0);
case "Psychic" :
return(card.sentient && (card.summoningTimeLeft < 1));
}
return(true);
}
static function scanEffects(effectName, card) {
var _local1 = 0;
while (_local1 < card.effects.length) {
if (card.effects[_local1].effectName == effectName) {
return(card.effects[_local1]);
}
_local1++;
}
return(null);
}
function apply() {
switch (effectName) {
case "Fire Sword" :
color(COLOR_ORANGE);
positive = true;
card.removeEffect("Sword");
val = card.upgradeAttack(4, true);
break;
case "Ice Shield" :
color(COLOR_ORANGE);
positive = true;
card.removeEffect("Shield");
val = card.upgradeDefense(4, true);
break;
case "Sword" :
color(COLOR_YELLOW);
positive = true;
val = card.upgradeAttack(2, true);
break;
case "Shield" :
color(COLOR_YELLOW);
positive = true;
val = card.upgradeDefense(2, true);
break;
case "Curse" :
color(COLOR_PURPLE2);
positive = false;
val = {attack:card.downgradeAttack(1, true), defense:card.downgradeDefense(1, true)};
break;
case "Weaken" :
color(COLOR_PURPLE);
positive = false;
val = card.downgradeAttack(3, true);
break;
case "Vulnerable" :
color(COLOR_PURPLE);
positive = false;
val = card.downgradeDefense(3, true);
break;
case "Poison" :
color(COLOR_GREEN);
positive = false;
card.healthBar.poison();
break;
case "Reaper" :
color(COLOR_PURPLE);
positive = false;
val = card.downgradeAttack(1, true);
break;
case "Psychic" :
color(COLOR_RED);
positive = false;
val = card.owner;
card.owner.removeFromPile(card, Card.game.anim.endTime());
card.owner = card.owner.opponent;
card.setActive(true);
card.owner.sendTo(card, "Monsters");
}
refresh();
}
function remove() {
switch (effectName) {
case "Fire Sword" :
card.downgradeAttack(val);
break;
case "Ice Shield" :
card.downgradeDefense(val);
break;
case "Sword" :
card.downgradeAttack(val);
break;
case "Shield" :
card.downgradeDefense(val);
break;
case "Curse" :
card.upgradeAttack(val.attack);
card.upgradeDefense(val.defense);
break;
case "Weaken" :
card.upgradeAttack(val);
break;
case "Vulnerable" :
card.upgradeDefense(val);
break;
case "Poison" :
card.healthBar.cure();
break;
case "Reaper" :
card.upgradeAttack(val);
break;
case "Psychic" :
card.owner.removeFromPile(card, Card.game.anim.endTime());
card.owner = val;
card.owner.sendTo(card, "Monsters");
}
}
function tick() {
switch (effectName) {
case "Poison" :
if (!scanEffects("Psychic", card)) {
card.healthBar.poison();
card.damage(stack);
}
break;
case "Psychic" :
card.removeEffect(effectName);
}
}
function increaseStack() {
stack++;
switch (effectName) {
case "Poison" :
card.healthBar.poison();
break;
case "Reaper" :
val = val + card.downgradeAttack(1, true);
}
refresh();
}
function refresh() {
if (stack != 1) {
nameLabel.text = (effectName + ": ") + stack;
} else {
nameLabel.text = effectName;
}
}
function color(c) {
transform.colorTransform = c;
}
static var COLOR_ORANGE = new flash.geom.ColorTransform(0.9, 0.7, 0, 1, 0, 0, 0, 0);
static var COLOR_YELLOW = new flash.geom.ColorTransform(0.8, 0.8, 0, 1, 0, 0, 0, 0);
static var COLOR_PURPLE = new flash.geom.ColorTransform(0.4, 0, 0.6, 1, 0, 0, 0, 0);
static var COLOR_PURPLE2 = new flash.geom.ColorTransform(0.5, 0, 0.5, 1, 0, 0, 0, 0);
static var COLOR_GREEN = new flash.geom.ColorTransform(0, 0.6, 0, 1, 0, 0, 0, 0);
static var COLOR_RED = new flash.geom.ColorTransform(0.6, 0, 0, 1, 0, 0, 0, 0);
var positive = true;
var card = null;
var val = null;
var stack = 1;
}
Symbol 585 MovieClip [__Packages.Card] Frame 0
class Card extends MovieClip
{
static var game;
var x, _x, y, _y, cardName, blurb, cardType, owner, action, effect, effects, use, healthBar, summoning, _flipped, cardBack, _usable, graphic, overlay, _active, onPress, onRelease, onReleaseOutside, useHandCursor, _inPlay, effectsLayer, hitTest, oldDepth, getDepth, onMouseMove, _parent, dragHomeX, dragHomeY, startDrag, stopDrag, swapDepths, onEnterFrame, _droptarget, onDamageDone, createChildAtDepth, hitArea;
function Card () {
super();
x = _x;
y = _y;
cardName = "";
blurb = "";
cardType = TYPE_UTILITY;
owner = null;
action = null;
effect = null;
effects = new Array();
doubleClickCountdown = 0;
use = null;
setUsable(false);
setActive(false);
setInPlay(false);
setFlipped(false);
}
function reset() {
while (effects.length > 0) {
var _local2 = effects.pop();
_local2.remove();
_local2.removeMovieClip();
}
attack = baseAttack;
defense = baseDefense;
health = maxHealth;
healthBar.cure();
setUsable(false);
setActive(false);
setInPlay(false);
setFlipped(false);
summoning._visible = false;
updateOverlay();
}
function ally(card) {
return(((card.owner == owner) && (card.isInPlay())) && (card.cardType == TYPE_MONSTER));
}
function enemy(card) {
return(((card.owner == owner.opponent) && (card.isInPlay())) && (card.cardType == TYPE_MONSTER));
}
function setFlipped(b) {
_flipped = b;
cardBack._visible = !_flipped;
}
function isFlipped() {
return(_flipped);
}
function setUsable(b) {
_usable = b;
if (_usable) {
graphic.filters = new Array();
overlay.healthBar.filters = new Array();
overlay.summoningTimeLabel.textColor = 12303291 /* 0xBBBBBB */;
} else {
graphic.filters = new Array(GRAYSCALE);
overlay.healthBar.filters = new Array(DESATURATED);
overlay.summoningTimeLabel.textColor = 7829367 /* 0x777777 */;
}
}
function isUsable() {
return(_usable);
}
function setActive(b) {
b = b && ((!owner.computer) && (owner == Player.currentPlayer));
_active = b;
if (_active) {
if (cardType == TYPE_UTILITY) {
onPress = testDoubleClick;
} else {
onPress = beginDrag;
onRelease = endDrag;
onReleaseOutside = endDrag;
}
useHandCursor = true;
} else {
onPress = null;
onRelease = null;
onReleaseOutside = null;
useHandCursor = false;
}
}
function isActive() {
return(_active);
}
function setInPlay(b) {
_inPlay = b;
overlay.summoningTimeLabel._visible = !_inPlay;
}
function isInPlay() {
return(_inPlay);
}
function beginSummon() {
setUsable(false);
setActive(false);
summoning._visible = true;
summoning.play();
summoningTimeLeft = summoningTime;
summoning.summoningTimeLabel.text = summoningTimeLeft;
overlay.summoningTimeLabel._visible = false;
}
function summonTick() {
if (summoningTimeLeft <= 0) {
return(undefined);
}
summoningTimeLeft--;
summoning.summoningTimeLabel.text = summoningTimeLeft;
if (summoningTimeLeft <= 0) {
summoning._visible = false;
summoning.stop();
setUsable(true);
setActive(true);
}
}
function show() {
if (hidden) {
_x = x;
_y = y;
hidden = false;
}
}
function hide() {
if (!hidden) {
x = _x;
y = _y;
_x = offScreen.x;
_y = offScreen.y;
hidden = true;
}
}
function showMouseover() {
effectsLayer._visible = true;
if ((overlay.mouseover.blurb.text != "") && ((!isInPlay()) || (summoningTimeLeft <= 0))) {
overlay.mouseover._visible = true;
}
}
function hideMouseover() {
effectsLayer._visible = false;
overlay.mouseover._visible = false;
}
function disableMouseover() {
onRollOver = null;
onDragOver = null;
onRollOut = null;
onDragOut = null;
}
function onRollOver() {
showMouseover();
}
function onDragOver() {
if (!dragging) {
showMouseover();
}
}
function onRollOut() {
hideMouseover();
}
function onDragOut() {
hideMouseover();
}
function hitTestMonsters() {
var _local2 = 0;
while (_local2 < owner.monsters.length) {
if (owner.monsters[_local2] != this) {
if (dragging && (hitTest(owner.monsters[_local2]))) {
owner.monsters[_local2].showMouseover();
} else {
owner.monsters[_local2].hideMouseover();
}
}
_local2++;
}
_local2 = 0;
while (_local2 < owner.opponent.monsters.length) {
if (dragging && (hitTest(owner.opponent.monsters[_local2]))) {
owner.opponent.monsters[_local2].showMouseover();
} else {
owner.opponent.monsters[_local2].hideMouseover();
}
_local2++;
}
}
function beginDrag() {
oldDepth = getDepth();
dragging = true;
onMouseMove = hitTestMonsters;
hideMouseover();
_parent._parent.bringToTop(this);
dragHomeX = _x;
dragHomeY = _y;
if ((cardType == TYPE_MONSTER) && (game.barrierTime > 0)) {
var _local3 = (-Stage.height) / 2;
var _local2 = Stage.height / 2;
if (owner._yscale > 0) {
_local3 = _local3 + (((Stage.height / 2) + (HEIGHT / 2)) + 5);
} else {
_local2 = _local2 - (((Stage.height / 2) + (HEIGHT / 2)) + 5);
}
startDrag(true, (-Stage.width) / 2, _local3, Stage.width / 2, _local2);
} else {
startDrag(true, (-Stage.width) / 2, (-Stage.height) / 2, Stage.width / 2, Stage.height / 2);
}
}
function endDrag() {
stopDrag();
_x = dragHomeX;
_y = dragHomeY;
dragging = false;
hitTestMonsters();
onMouseMove = null;
swapDepths(oldDepth);
drop();
}
function testDoubleClick() {
if (doubleClickCountdown > 0) {
if (use()) {
setFlipped(true);
if (showCombatText) {
game.showCombatText(cardName);
}
discard();
}
} else {
doubleClickCountdown = DOUBLE_CLICK_TIME;
onEnterFrame = function () {
this.doubleClickCountdown--;
if (this.doubleClickCountdown <= 0) {
this.doubleClickCountdown = 0;
this.onEnterFrame = null;
}
};
}
}
function drop() {
if (cardType == TYPE_MONSTER) {
if ((!isInPlay()) && (eval (this._droptarget) == owner.monstersMC)) {
owner.deploy(this);
}
if (isInPlay() && (game.barrierTime < 1)) {
if (owner.opponent.monsters.length <= 0) {
if ((eval (this._droptarget) == owner.opponent.portrait.hit) || (eval (this._droptarget) == owner.opponent.monstersMC)) {
attackOpponent();
}
}
var card = targetCard();
if (card != null) {
if (enemy(card) && (isUsable())) {
attackMonster(card);
}
}
}
} else if (cardType == TYPE_UPGRADE) {
var card = targetCard();
if (card != null) {
if (ally(card)) {
if (use(card)) {
setFlipped(true);
if (showCombatText) {
game.showCombatText(cardName);
}
discard();
}
}
}
} else if (cardType == TYPE_DOWNGRADE) {
var card = targetCard();
if (card != null) {
if (enemy(card)) {
if (use(card)) {
setFlipped(true);
if (showCombatText) {
game.showCombatText(cardName);
}
discard();
}
}
}
}
}
function targetCard() {
var card = null;
var end = _droptarget.indexOf("/cardLayer");
if (end > -1) {
var i = 0;
while (i < 3) {
end = _droptarget.indexOf("/", end) + 1;
i++;
}
var target = (substring(_droptarget, 0, end));
card = eval (target);
}
return(card);
}
function attackMonster(card) {
game.battle(this, card);
attacksThisTurn--;
if (attacksThisTurn < 1) {
setUsable(false);
setActive(false);
}
}
function attackOpponent() {
onDamageDone(null, attack);
owner.opponent.damage(attack);
attacksThisTurn--;
if (attacksThisTurn < 1) {
setUsable(false);
setActive(false);
}
}
function loadGraphics() {
switch (cardType) {
case TYPE_MONSTER :
graphic = createChildAtDepth("m_" + cardName, mx.managers.DepthManager.kTop);
if (graphic == null) {
graphic = createChildAtDepth("Default_Monster", mx.managers.DepthManager.kTop);
}
summoning = createChildAtDepth("Summoning", mx.managers.DepthManager.kTop, {_visible:false});
summoning.stop();
overlay = createChildAtDepth("Overlay_Monster", mx.managers.DepthManager.kTop);
overlay.healthBar = createChildAtDepth("HealthBar", mx.managers.DepthManager.kTop, {_x:0, _y:28});
healthBar = overlay.healthBar;
overlay.attackMouseover.onRollOver = function () {
this._parent._parent.showAttackInfo();
};
overlay.attackMouseover.onDragOut = (overlay.attackMouseover.onRollOut = function () {
this._parent._parent.hideAttackInfo();
});
overlay.defenseMouseover.onRollOver = function () {
this._parent._parent.showDefenseInfo();
};
overlay.defenseMouseover.onDragOut = (overlay.defenseMouseover.onRollOut = function () {
this._parent._parent.hideDefenseInfo();
});
break;
case TYPE_UPGRADE :
case TYPE_DOWNGRADE :
case TYPE_UTILITY :
graphic = createChildAtDepth("c_" + cardName, mx.managers.DepthManager.kTop);
if (graphic == null) {
graphic = createChildAtDepth("Default_Utility", mx.managers.DepthManager.kTop);
}
overlay = createChildAtDepth("Overlay_Utility", mx.managers.DepthManager.kTop);
}
cardBack = createChildAtDepth("CardBack", mx.managers.DepthManager.kTop);
hitArea = cardBack;
effectsLayer._visible = false;
if (cardType != TYPE_MONSTER) {
disableMouseover();
}
overlay.nameLabel.autoSize = "left";
overlay.nameLabel.text = cardName;
if (overlay.nameLabel._width > 66) {
overlay.nameLabel._xscale = (overlay.nameLabel._yscale = 6200 / overlay.nameLabel._width);
overlay.nameLabel._y = overlay.nameLabel._y + (((100 - overlay.nameLabel._yscale) / 100) * 6);
}
switch (cardType) {
case TYPE_MONSTER :
if (summoningTime == 1) {
overlay.summoningTimeLabel.text = "1 turn";
} else {
overlay.summoningTimeLabel.text = summoningTime + " turns";
}
overlay.mouseover.blurb.text = blurb;
overlay.mouseover.blurb.autoSize = "center";
overlay.mouseover.blurb._y = overlay.mouseover.blurb._y - (overlay.mouseover.blurb._height / 2);
overlay.mouseover._visible = false;
if (blurb != "") {
graphic.createChildAtDepth("Gold_Border", mx.managers.DepthManager.kTop);
}
break;
default :
overlay.blurb.text = blurb;
overlay.blurb.autoSize = "center";
if (overlay.blurb._height > ((cardBack._height / 2) - (overlay.nameLabel._y + overlay.nameLabel._height))) {
overlay.blurb.autoSize = "none";
overlay.blurb._y = overlay.nameLabel._y + overlay.nameLabel._height;
overlay.blurb._height = (cardBack._height / 2) - overlay.blurb._y;
Mouse.addListener(overlay);
onRollOver = function () {
this.overlay.onMouseWheel = function (delta) {
this.blurb.scroll = this.blurb.scroll - (delta / Math.abs(delta));
};
};
onRollOut = function () {
this.overlay.onMouseWheel = null;
};
} else {
overlay.blurb._y = Math.max((-overlay.blurb._height) / 2, overlay.nameLabel._y + overlay.nameLabel._height);
Mouse.removeListener(overlay);
overlay.onMouseWheel = null;
onRollOver = null;
onRollOut = null;
}
}
graphic.cacheAsBitmap = true;
}
function updateOverlay() {
if (cardType == TYPE_MONSTER) {
overlay.healthBar.update(health, maxHealth);
if (attack > 0) {
overlay.attackLabel.text = "" + attack;
} else {
overlay.attackLabel.text = "-";
}
if (attack > baseAttack) {
overlay.attackLabel.textColor = 153;
} else if (attack < baseAttack) {
overlay.attackLabel.textColor = 10027008 /* 0x990000 */;
} else {
overlay.attackLabel.textColor = 0;
}
if (defense > 0) {
overlay.defenseLabel.text = "" + defense;
} else {
overlay.defenseLabel.text = "-";
}
if (defense > baseDefense) {
overlay.defenseLabel.textColor = 153;
} else if (defense < baseDefense) {
overlay.defenseLabel.textColor = 10027008 /* 0x990000 */;
} else {
overlay.defenseLabel.textColor = 0;
}
}
}
function arrangeEffects() {
var _local4 = 0;
while (_local4 < effects.length) {
var _local2 = _local4;
var _local5 = _local4 + 1;
while (_local5 < effects.length) {
var _local3 = false;
if (effects[_local5].positive && (!effects[_local2].positive)) {
_local3 = true;
} else if (effects[_local5].positive == effects[_local2].positive) {
if (effects[_local5].effectName < effects[_local2].effectName) {
_local3 = true;
}
}
if (_local3) {
_local2 = _local5;
}
_local5++;
}
var _local6 = effects[_local4];
effects[_local4] = effects[_local2];
effects[_local2] = _local6;
_local4++;
}
var _local7 = 1;
var _local5 = 0;
while (_local5 < effects.length) {
effects[_local5]._y = _local7;
_local7 = _local7 + 10;
_local5++;
}
}
function init() {
switch (cardName) {
case "Hydra" :
default :
cardType = TYPE_MONSTER;
attack = 6;
defense = 5;
health = 6;
summoningTime = 3;
attacksPerTurn = 2;
blurb = "Attacks twice per turn";
break;
case "Dragon" :
cardType = TYPE_MONSTER;
attack = 8;
defense = 4;
health = 6;
summoningTime = 3;
break;
case "Ogre" :
cardType = TYPE_MONSTER;
attack = 7;
defense = 3;
health = 6;
summoningTime = 3;
blurb = "Stuns enemy monster on hit";
onDamageDone = function (card, dam) {
card.stun();
};
break;
case "Robot" :
cardType = TYPE_MONSTER;
attack = 6;
defense = 5;
health = 5;
summoningTime = 2;
flesh = false;
sentient = false;
blurb = "Immune to heal, poison and psychic";
break;
case "Reaper" :
cardType = TYPE_MONSTER;
attack = 5;
defense = 4;
health = 4;
summoningTime = 2;
blurb = "Lowers enemy's attack on hit";
onDamageDone = function (card, dam) {
card.addEffect("Reaper");
};
break;
case "Minotaur" :
cardType = TYPE_MONSTER;
attack = 6;
defense = 3;
health = 6;
summoningTime = 2;
break;
case "Dwarf" :
cardType = TYPE_MONSTER;
attack = 5;
defense = 5;
health = 5;
summoningTime = 2;
break;
case "Golem" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 6;
health = 5;
summoningTime = 2;
flesh = false;
sentient = false;
blurb = "Immune to heal, poison and psychic";
break;
case "Knight" :
cardType = TYPE_MONSTER;
attack = 6;
defense = 4;
health = 4;
summoningTime = 2;
break;
case "Cerberus" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 3;
health = 4;
summoningTime = 1;
attacksPerTurn = 2;
blurb = "Attacks twice per turn";
break;
case "Vampire" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 3;
health = 5;
summoningTime = 1;
blurb = "Steals life when dealing damage";
onDamageDone = function (card, dam) {
this.heal(dam);
};
break;
case "Ninja" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 1;
health = 3;
summoningTime = 1;
blurb = "Kills any enemy he hits";
onDamageDone = function (card, dam) {
card.damage(Math.max(0, card.health - dam));
};
break;
case "Gorilla" :
cardType = TYPE_MONSTER;
attack = 5;
defense = 2;
health = 6;
blurb = "Stuns enemy monster on hit";
onDamageDone = function (card, dam) {
card.stun();
};
break;
case "Alien" :
cardType = TYPE_MONSTER;
attack = 5;
defense = 4;
health = 5;
summoningTime = 2;
blurb = "Takes no damage from failed attacks";
noRetaliation = true;
break;
case "Archer" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 2;
health = 4;
blurb = "Takes no damage from failed attacks";
noRetaliation = true;
break;
case "Spider" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 2;
health = 4;
blurb = "Poisons enemies it bites";
onDamageDone = function (card, dam) {
card.addEffect("Poison");
};
break;
case "Greebler" :
cardType = TYPE_MONSTER;
attack = 4;
defense = 3;
health = 3;
break;
case "Skeleton" :
cardType = TYPE_MONSTER;
attack = 3;
defense = 2;
health = 3;
flesh = false;
blurb = "Immune to heal and poison";
break;
case "Leprechaun" :
cardType = TYPE_MONSTER;
attack = 2;
defense = 1;
health = 2;
summoningTime = 0;
blurb = "Steals a card if attacking the enemy player";
onDamageDone = function (card) {
if (card == null) {
this.stealCard(1);
}
};
break;
case "Rat" :
cardType = TYPE_MONSTER;
attack = 2;
defense = 1;
health = 2;
summoningTime = 0;
blurb = "Poisons enemies it bites";
onDamageDone = function (card, dam) {
card.addEffect("Poison");
};
break;
case "Dragon Rider" :
cardType = TYPE_MONSTER;
attack = 12;
defense = 6;
health = 7;
summoningTime = 2;
break;
case "Death Knight" :
cardType = TYPE_MONSTER;
attack = 8;
defense = 5;
health = 6;
summoningTime = 2;
attacksPerTurn = 2;
blurb = "2 attacks per turn. Lowers enemy's attack";
onDamageDone = function (card, dam) {
card.addEffect("Reaper");
};
break;
case "Ninja Rat" :
cardType = TYPE_MONSTER;
attack = 6;
defense = 3;
health = 5;
summoningTime = 1;
blurb = "Kills any enemy he hits";
onDamageDone = function (card, dam) {
card.damage(Math.max(0, card.health - dam));
};
break;
case "Fire Sword" :
cardType = TYPE_UPGRADE;
blurb = "Increase friendly monster's attack by 4";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Ice Shield" :
cardType = TYPE_UPGRADE;
blurb = "Increase friendly monster's defense by 4";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Sword" :
cardType = TYPE_UPGRADE;
blurb = "Increase friendly monster's attack by 2";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Shield" :
cardType = TYPE_UPGRADE;
blurb = "Increase friendly monster's defense by 2";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Heal" :
cardType = TYPE_UPGRADE;
blurb = "Heals a friendly monster for 2 points";
use = function (card) {
return(card.heal(2));
};
break;
case "Cleanse" :
cardType = TYPE_UPGRADE;
blurb = "Removes all harmful effects from a friendly monster";
use = function (card) {
return(card.removeDowngrades());
};
break;
case "Antidote" :
cardType = TYPE_UPGRADE;
blurb = "Removes poison from a friendly monster";
use = function (card) {
return(card.removeEffect("Poison"));
};
break;
case "Charge!" :
cardType = TYPE_UPGRADE;
blurb = "Gives a friendly monster an extra attack this turn";
use = function (card) {
return(card.extraAttack());
};
break;
case "Summon" :
cardType = TYPE_UPGRADE;
blurb = "Instantly finishes summoning a friendly monster";
use = function (card) {
return(card.finishSummon());
};
break;
case "Sacrifice" :
cardType = TYPE_UPGRADE;
blurb = "Sacrifice a friendly monster to recover 5 health";
use = function (card) {
return(card.sacrifice());
};
break;
case "Fireball" :
cardType = TYPE_DOWNGRADE;
blurb = "Cause 3 damage to an enemy monster";
showCombatText = false;
use = function (card) {
return(this.fireball(card));
};
break;
case "Lightning" :
cardType = TYPE_DOWNGRADE;
blurb = "Cause 2 damage to an enemy monster";
showCombatText = false;
use = function (card) {
return(this.lightning(card));
};
break;
case "Poison" :
cardType = TYPE_DOWNGRADE;
blurb = "Causes 1 damage each turn to an enemy monster";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Curse" :
cardType = TYPE_DOWNGRADE;
blurb = "Reduce enemy monster's attack and defense by 1";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Weaken" :
cardType = TYPE_DOWNGRADE;
blurb = "Decrease enemy monster's attack by 3";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Vulnerable" :
cardType = TYPE_DOWNGRADE;
blurb = "Decrease enemy monster's defense by 3";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Strip" :
cardType = TYPE_DOWNGRADE;
blurb = "Removes helpful effects from an enemy monster";
use = function (card) {
return(card.removeUpgrades());
};
break;
case "Psychic" :
cardType = TYPE_DOWNGRADE;
blurb = "Gives you control of an enemy monster for 1 turn";
use = function (card) {
return(card.addEffect(this.cardName));
};
break;
case "Reinforce" :
cardType = TYPE_UTILITY;
blurb = "Place an extra monster on the table this turn";
use = function (card) {
return(this.owner.reinforce(1));
};
break;
case "Black Hole" :
cardType = TYPE_UTILITY;
blurb = "Destroys all monsters on the table";
showCombatText = false;
use = function (card) {
return(this.blackHole());
};
break;
case "Flood" :
cardType = TYPE_UTILITY;
blurb = "Causes 1 damage to all monsters on the table";
use = function (card) {
return(this.flood());
};
break;
case "Doom" :
cardType = TYPE_UTILITY;
blurb = "Destroys the enemy monster with the lowest attack";
use = function (card) {
return(this.doom());
};
break;
case "Necromancy" :
cardType = TYPE_UTILITY;
blurb = "Summons all skeletons directly from your deck, hand, or graveyard";
use = function (card) {
return(this.necromancy());
};
break;
case "Combine" :
cardType = TYPE_UTILITY;
blurb = "Combines monsters with the same combiner symbol into a super monster";
use = function (card) {
return(this.combine());
};
break;
case "Steal" :
cardType = TYPE_UTILITY;
blurb = "Steal a card from your opponent's hand";
use = function (card) {
return(this.stealCard(1));
};
break;
case "Forget" :
cardType = TYPE_UTILITY;
blurb = "Your opponent forgets 2 cards from his hand";
use = function (card) {
return(this.discardHand(2));
};
break;
case "Telescope" :
cardType = TYPE_UTILITY;
blurb = "View your opponent's hand";
use = function (card) {
return(this.viewOpponentHand());
};
break;
case "Barrier" :
cardType = TYPE_UTILITY;
blurb = "Prevents attacks by all monsters until the end of your next turn";
use = function (card) {
return(Card.game.startBarrier(3));
};
break;
case "Reborn" :
cardType = TYPE_UTILITY;
blurb = "Bring the most powerful monster in your graveyard to your hand";
use = function (card) {
return(this.grabMostPowerfulFrom(this.owner.graveyard));
};
break;
case "Beckon" :
cardType = TYPE_UTILITY;
blurb = "Bring the most powerful monster in your deck to your hand";
use = function (card) {
return(this.grabMostPowerfulFrom(this.owner.deck));
};
break;
case "Gift" :
cardType = TYPE_UTILITY;
blurb = "Instantly draw 2 cards";
use = function (card) {
this.owner.deal(2);
return(true);
};
break;
case "Restore" :
cardType = TYPE_UTILITY;
blurb = "Recover 2 health";
use = function (card) {
return(this.owner.heal(2));
};
}
baseAttack = attack;
baseDefense = defense;
maxHealth = health;
loadGraphics();
updateOverlay();
}
function addEffect(effectName) {
if (Effect.applicable(effectName, this)) {
var _local3 = null;
var _local2 = 0;
while (_local2 < effects.length) {
if (effects[_local2].effectName == effectName) {
_local3 = effects[_local2];
}
_local2++;
}
if (_local3 == null) {
_local3 = effectsLayer.createChildAtDepth("Effect", mx.managers.DepthManager.kTop, {effectName:effectName, card:this});
effects.push(_local3);
_local3.apply();
arrangeEffects();
updateOverlay();
} else {
_local3.increaseStack();
}
return(true);
}
return(false);
}
function removeEffect(effectName) {
var _local4 = false;
var _local2 = effects.length - 1;
while (_local2 >= 0) {
var _local3 = effects[_local2];
if (_local3.effectName == effectName) {
_local3.remove();
effects.splice(_local2, 1);
_local3.removeMovieClip();
_local4 = true;
}
_local2--;
}
arrangeEffects();
return(_local4);
}
function removeDowngrades() {
var _local4 = 0;
var _local2 = effects.length - 1;
while (_local2 >= 0) {
var _local3 = effects[_local2];
if (!_local3.positive) {
_local3.remove();
effects.splice(_local2, 1);
_local3.removeMovieClip();
_local4++;
}
_local2--;
}
arrangeEffects();
return(_local4 > 0);
}
function removeUpgrades() {
var _local4 = 0;
var _local2 = effects.length - 1;
while (_local2 >= 0) {
var _local3 = effects[_local2];
if (_local3.positive) {
_local3.remove();
effects.splice(_local2, 1);
_local3.removeMovieClip();
_local4++;
}
_local2--;
}
arrangeEffects();
return(_local4 > 0);
}
function upgradeAttack(val, ping) {
attack = attack + val;
updateOverlay();
if (ping && (val > 0)) {
overlay.pingAttack.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 0, 1, 0, 0, 0, 0);
overlay.pingAttack.gotoAndPlay("Start");
}
return(val);
}
function downgradeAttack(val, ping) {
val = Math.min(val, attack);
if (val < 1) {
return(val);
}
attack = attack - val;
updateOverlay();
if (ping) {
overlay.pingAttack.transform.colorTransform = new flash.geom.ColorTransform(0.4, 0, 0.5, 1, 0, 0, 0, 0);
overlay.pingAttack.gotoAndPlay("Start");
}
return(val);
}
function upgradeDefense(val, ping) {
defense = defense + val;
updateOverlay();
if (ping && (val > 0)) {
overlay.pingDefense.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 0, 1, 0, 0, 0, 0);
overlay.pingDefense.gotoAndPlay("Start");
}
return(val);
}
function downgradeDefense(val, ping) {
val = Math.min(val, defense);
if (val < 1) {
return(val);
}
defense = defense - val;
updateOverlay();
if (ping) {
overlay.pingDefense.transform.colorTransform = new flash.geom.ColorTransform(0.4, 0, 0.5, 1, 0, 0, 0, 0);
overlay.pingDefense.gotoAndPlay("Start");
}
return(val);
}
function heal(val) {
if ((health < maxHealth) && (flesh)) {
health = Math.min(maxHealth, health + val);
overlay.healthBar.pulse();
updateOverlay();
return(true);
}
return(false);
}
function damage(val) {
var _local2 = Math.min(val, health);
overlay.healthBar.explode(_local2);
health = health - _local2;
if (health <= 0) {
kill();
}
updateOverlay();
return(true);
}
function damageAll(val) {
if ((owner.monsters.length < 1) && (owner.opponent.monsters.length < 1)) {
return(false);
}
var _local2 = owner.monsters.length - 1;
while (_local2 >= 0) {
owner.monsters[_local2].damage(val);
_local2--;
}
_local2 = owner.opponent.monsters.length - 1;
while (_local2 >= 0) {
owner.opponent.monsters[_local2].damage(val);
_local2--;
}
return(true);
}
function kill() {
removeUpgrades();
removeDowngrades();
attack = baseAttack;
defense = baseDefense;
health = 0;
discard();
return(true);
}
function killAll() {
if ((owner.monsters.length < 1) && (owner.opponent.monsters.length < 1)) {
return(false);
}
while (owner.monsters.length > 0) {
owner.monsters[0].kill();
}
while (owner.opponent.monsters.length > 0) {
owner.opponent.monsters[0].kill();
}
return(true);
}
function discard() {
owner.sendToGraveyard(this);
return(true);
}
function discardHand(val) {
if (owner.opponent.hand.length < 1) {
return(false);
}
var _local2 = 0;
while (_local2 < val) {
owner.opponent.hand[Math.floor(Math.random() * owner.opponent.hand.length)].discard();
_local2++;
}
return(true);
}
function finishSummon() {
if (summoningTimeLeft < 1) {
return(false);
}
summoningTimeLeft = 1;
summonTick();
return(true);
}
function lightning(card) {
var _local2 = game.spawnVisual("Lightning Visual");
if (dragging) {
_local2._x = dragHomeX;
_local2._y = dragHomeY;
} else {
_local2._x = _x;
_local2._y = _y;
}
_local2._rotation = ((Math.atan2(card._y - _local2._y, card._x - _local2._x) * 180) / Math.PI) - 90;
_local2._yscale = (_local2._xscale = Math.sqrt(((card._y - _local2._y) * (card._y - _local2._y)) + ((card._x - _local2._x) * (card._x - _local2._x))));
game.anim.addFunction(function () {
card.damage(2);
}, 2);
return(true);
}
function fireball(card) {
var _local2 = game.spawnVisual("Fireball Visual");
_local2._x = card._x;
_local2._y = card._y;
var _local4;
var _local3;
if (dragging) {
_local4 = dragHomeX;
_local3 = dragHomeY;
} else {
_local4 = _x;
_local3 = _y;
}
_local2._rotation = (Math.atan2(_local2._y - _local3, _local2._x - _local4) * 180) / Math.PI;
var _local5 = Math.sqrt(((_local3 - _local2._y) * (_local3 - _local2._y)) + ((_local4 - _local2._x) * (_local4 - _local2._x)));
var _local6 = 1 + Math.ceil(9 * ((500 - _local5) / 500));
_local2.gotoAndPlay(_local6);
game.anim.addFunction(function () {
card.damage(3);
}, 13);
return(true);
}
function blackHole() {
if ((owner.monsters.length < 1) && (owner.opponent.monsters.length < 1)) {
return(false);
}
var vis = game.spawnVisual("Black Hole Visual");
killAll();
game.anim.addFunction(function () {
vis.onEnterFrame = function () {
vis._alpha = vis._alpha - 10;
};
}, game.anim.endTime());
game.anim.addFunction(function () {
vis.removeMovieClip();
}, game.anim.endTime() + 10);
return(true);
}
function flood() {
if ((owner.monsters.length < 1) && (owner.opponent.monsters.length < 1)) {
return(false);
}
var _local2 = game.spawnVisual("Flood Visual");
var card = this;
game.anim.addFunction(function () {
card.damageAll(1);
}, 13);
return(true);
}
function doom() {
var weakest = weakestEnemy();
if (weakest == null) {
return(false);
}
var black = weakest.createChildAtDepth("Black Card", mx.managers.DepthManager.kTop);
black.onEnterFrame = function () {
black._alpha = black._alpha - 5;
if (black._alpha < 5) {
black.removeMovieClip();
}
};
game.anim.addFunction(function () {
weakest.kill();
}, 20 - owner.gameInfo.animLength);
return(true);
}
function weakestEnemy() {
if (owner.opponent.monsters.length < 1) {
return(null);
}
var _local3 = null;
var _local2 = 0;
while (_local2 < owner.opponent.monsters.length) {
if (_local3 == null) {
_local3 = owner.opponent.monsters[_local2];
} else if (owner.opponent.monsters[_local2].attack < _local3.attack) {
_local3 = owner.opponent.monsters[_local2];
}
_local2++;
}
var _local4 = new Array();
_local2 = 0;
while (_local2 < owner.opponent.monsters.length) {
if (owner.opponent.monsters[_local2].attack <= _local3.attack) {
_local4.push(owner.opponent.monsters[_local2]);
}
_local2++;
}
return(_local4[Math.floor(Math.random() * _local4.length)]);
}
function viewOpponentHand() {
if (owner.opponent.hand.length < 1) {
return(false);
}
var _local2 = 0;
while (_local2 < owner.opponent.hand.length) {
owner.opponent.hand[_local2].cardBack._visible = false;
_local2++;
}
return(true);
}
function sacrifice() {
if (owner.health >= owner.maxHealth) {
return(false);
}
owner.heal(5);
kill();
return(true);
}
function extraAttack() {
if (summoningTimeLeft > 0) {
return(false);
}
attacksThisTurn++;
setActive(true);
setUsable(true);
return(true);
}
function stun() {
if (attacksThisTurn < 1) {
return(false);
}
attacksThisTurn = 0;
setUsable(false);
setActive(false);
return(true);
}
function stealCard(n) {
if (owner.opponent.hand.length < 1) {
return(false);
}
if ((n < 0) || (isNaN(n))) {
n = 1;
}
var _local3 = 0;
while (_local3 < n) {
var _local2 = owner.opponent.hand[Math.floor(Math.random() * owner.opponent.hand.length)];
_local2.owner.removeFromPile(_local2, game.anim.endTime());
_local2.owner = owner;
owner.sendToHand(_local2, "Hand");
_local3++;
}
return(true);
}
function grabMostPowerfulFrom(array) {
var _local4 = null;
var _local2 = 0;
while (_local2 < array.length) {
if (array[_local2].cardType == TYPE_MONSTER) {
if (_local4 == null) {
_local4 = array[_local2];
} else if ((((array[_local2].attack * array[_local2].attacksPerTurn) + array[_local2].defense) + array[_local2].maxHealth) > (((_local4.attack * _local4.attacksPerTurn) + _local4.defense) + _local4.maxHealth)) {
_local4 = array[_local2];
}
}
_local2++;
}
if (_local4 == null) {
return(false);
}
owner.sendToHand(_local4);
return(true);
}
function checkCombination(index) {
var _local2 = 0;
while (_local2 < combinations[index].componentNames.length) {
if (!owner.findCombinerPart(combinations[index].componentNames[_local2])) {
return(false);
}
_local2++;
}
_local2 = 0;
while (_local2 < combinations[index].componentNames.length) {
owner.sendToGraveyard(owner.findCombinerPart(combinations[index].componentNames[_local2]));
_local2++;
}
owner.addToDeck(game.addCard(combinations[index].combinerName, owner));
owner.deal(1);
return(true);
}
function combine() {
var _local2 = 0;
while (_local2 < combinations.length) {
if (checkCombination(_local2)) {
return(true);
}
_local2++;
}
return(false);
}
function necromancy() {
var _local3 = false;
var _local2 = 0;
while (_local2 < owner.deck.length) {
if (owner.deck[_local2].cardName == "Skeleton") {
owner.deploy(owner.deck[_local2], true);
_local3 = true;
}
_local2++;
}
_local2 = 0;
while (_local2 < owner.hand.length) {
if (owner.hand[_local2].cardName == "Skeleton") {
owner.deploy(owner.hand[_local2], true);
_local3 = true;
}
_local2++;
}
_local2 = 0;
while (_local2 < owner.graveyard.length) {
if (owner.graveyard[_local2].cardName == "Skeleton") {
owner.deploy(owner.graveyard[_local2], true);
_local3 = true;
}
_local2++;
}
return(_local3);
}
static var GRAYSCALE = new flash.filters.ColorMatrixFilter([0.33, 0.33, 0.33, 0, 0, 0.33, 0.33, 0.33, 0, 0, 0.33, 0.33, 0.33, 0, 0, 0, 0, 0, 1, 0]);
static var DESATURATED = new flash.filters.ColorMatrixFilter([0.3, 0.15, 0.15, 0, 0, 0.15, 0.3, 0.15, 0, 0, 0.15, 0.15, 0.3, 0, 0, 0, 0, 0, 1, 0]);
static var offScreen = {x:-500, y:-500};
static var DOUBLE_CLICK_TIME = 15;
static var TYPE_MONSTER = 0;
static var TYPE_UPGRADE = 1;
static var TYPE_DOWNGRADE = 2;
static var TYPE_UTILITY = 3;
static var WIDTH = 70;
static var HEIGHT = 100;
static var monsterList = new Array({limit:2, cost:90, cardName:"Hydra"}, {limit:2, cost:80, cardName:"Dragon"}, {limit:2, cost:80, cardName:"Ogre"}, {limit:2, cost:70, cardName:"Robot"}, {limit:3, cost:70, cardName:"Ninja"}, {limit:3, cost:60, cardName:"Reaper"}, {limit:3, cost:60, cardName:"Knight"}, {limit:3, cost:60, cardName:"Alien"}, {limit:3, cost:50, cardName:"Minotaur"}, {limit:3, cost:50, cardName:"Golem"}, {limit:3, cost:50, cardName:"Dwarf"}, {limit:3, cost:50, cardName:"Gorilla"}, {limit:3, cost:45, cardName:"Cerberus"}, {limit:3, cost:40, cardName:"Vampire"}, {limit:3, cost:35, cardName:"Archer"}, {limit:3, cost:30, cardName:"Spider"}, {limit:3, cost:30, cardName:"Greebler"}, {limit:3, cost:20, cardName:"Skeleton"}, {limit:3, cost:20, cardName:"Leprechaun"}, {limit:3, cost:15, cardName:"Rat"});
static var magicList = new Array({limit:1, cost:70, cardName:"Fire Sword"}, {limit:1, cost:70, cardName:"Ice Shield"}, {limit:3, cost:30, cardName:"Sword"}, {limit:3, cost:30, cardName:"Shield"}, {limit:3, cost:50, cardName:"Heal"}, {limit:3, cost:50, cardName:"Cleanse"}, {limit:3, cost:20, cardName:"Antidote"}, {limit:3, cost:50, cardName:"Charge!"}, {limit:3, cost:60, cardName:"Summon"}, {limit:3, cost:40, cardName:"Sacrifice"}, {limit:3, cost:50, cardName:"Fireball"}, {limit:3, cost:35, cardName:"Lightning"}, {limit:3, cost:40, cardName:"Poison"}, {limit:3, cost:20, cardName:"Curse"}, {limit:3, cost:30, cardName:"Weaken"}, {limit:3, cost:30, cardName:"Vulnerable"}, {limit:3, cost:30, cardName:"Strip"}, {limit:3, cost:80, cardName:"Psychic"}, {limit:1, cost:100, cardName:"Necromancy"}, {limit:3, cost:50, cardName:"Combine"}, {limit:3, cost:60, cardName:"Steal"}, {limit:3, cost:40, cardName:"Reinforce"}, {limit:2, cost:100, cardName:"Black Hole"}, {limit:3, cost:30, cardName:"Flood"}, {limit:3, cost:60, cardName:"Doom"}, {limit:3, cost:70, cardName:"Forget"}, {limit:3, cost:30, cardName:"Telescope"}, {limit:3, cost:30, cardName:"Barrier"}, {limit:3, cost:70, cardName:"Reborn"}, {limit:3, cost:70, cardName:"Beckon"}, {limit:3, cost:50, cardName:"Gift"}, {limit:3, cost:70, cardName:"Restore"});
static var combinations = new Array({componentNames:new Array("Dragon", "Knight"), combinerName:"Dragon Rider"}, {componentNames:new Array("Reaper", "Cerberus"), combinerName:"Death Knight"}, {componentNames:new Array("Rat", "Ninja"), combinerName:"Ninja Rat"});
var hidden = false;
var attack = 0;
var baseAttack = 0;
var defense = 0;
var baseDefense = 0;
var health = 10;
var maxHealth = 10;
var summoningTime = 1;
var summoningTimeLeft = 0;
var attacksPerTurn = 1;
var attacksThisTurn = 1;
var flesh = true;
var sentient = true;
var noRetaliation = false;
var showCombatText = true;
var dragging = false;
var doubleClickCountdown = 0;
}
Symbol 586 MovieClip [__Packages.Player] Frame 0
class Player extends MovieClip
{
static var game;
var playerName, playerIndex, gameInfo, computer, backgroundMC, deckMC, handMC, monstersMC, graveyardMC, portrait, deck, hand, monsters, graveyard, opponent, deploysLeft, health, maxHealth, onEnterFrame, _yscale, AIStage;
function Player () {
super();
playerName = gameInfo.playerName[playerIndex];
computer = gameInfo.computer[playerIndex];
backgroundMC.cacheAsBitmap = true;
deckMC.cacheAsBitmap = true;
handMC.cacheAsBitmap = true;
monstersMC.cacheAsBitmap = true;
graveyardMC.cacheAsBitmap = true;
portrait.avatar.cacheAsBitmap = true;
deck = new Array();
hand = new Array();
monsters = new Array();
graveyard = new Array();
opponent = null;
deploysLeft = 1;
health = 20;
maxHealth = 20;
updateHealth();
gameInfo.shuffleDeck(playerIndex);
createDeck();
game.anim.addListener(this);
onEnterFrame = AITurn;
}
function reset() {
while (deck.length > 0) {
deck.pop().removeMovieClip();
}
while (hand.length > 0) {
hand.pop().removeMovieClip();
}
while (monsters.length > 0) {
monsters.pop().removeMovieClip();
}
while (graveyard.length > 0) {
graveyard.pop().removeMovieClip();
}
if (gameInfo.deckStrength[playerIndex] != "Custom") {
gameInfo.generateDeckList(playerIndex);
}
gameInfo.shuffleDeck(playerIndex);
createDeck();
deploysLeft = 1;
health = 20;
maxHealth = 20;
updateHealth();
}
function setPortrait(p, frame) {
var _local2 = {x:portrait._x, y:portrait._y};
portrait = p;
portrait._x = _local2.x;
portrait._y = (_local2.y * _yscale) / 100;
portrait.nameLabel.text = playerName;
portrait.healthBar.update(health, maxHealth);
portrait.avatar.gotoAndStop(frame);
}
function createDeck() {
var _local2 = 0;
while (_local2 < gameInfo.deckList[playerIndex].length) {
addToDeck(game.addCard(gameInfo.deckList[playerIndex][_local2], this));
_local2++;
}
}
function addToDeck(card) {
deck.push(card);
card.pile = "Deck";
var _local3 = pileCoords("Deck");
card._x = _local3.x;
card._y = _local3.y;
if (deck.length > 1) {
deck[deck.length - 2].hide();
}
}
function endTurn() {
var _local2 = 0;
while (_local2 < hand.length) {
hand[_local2].setUsable(true);
hand[_local2].setActive(false);
hand[_local2].setFlipped(opponent.computer);
_local2++;
}
_local2 = monsters.length - 1;
while (_local2 >= 0) {
monsters[_local2].attacksThisTurn = monsters[_local2].attacksPerTurn;
if (monsters[_local2].summoningTimeLeft > 0) {
monsters[_local2].summonTick();
} else {
monsters[_local2].setUsable(true);
}
monsters[_local2].setActive(false);
var _local3 = 0;
while (_local3 < monsters[_local2].effects.length) {
monsters[_local2].effects[_local3].tick();
_local3++;
}
_local2--;
}
portrait.bg._alpha = 0;
currentPlayer = opponent;
game.barrierTick();
game.readyCheck();
}
function newTurn() {
currentPlayer = this;
var _local2 = 0;
while (_local2 < hand.length) {
hand[_local2].setActive(true);
hand[_local2].setFlipped((!computer) || (opponent.computer));
_local2++;
}
_local2 = 0;
while (_local2 < monsters.length) {
monsters[_local2].setActive(monsters[_local2].isUsable());
_local2++;
}
portrait.bg._alpha = 100;
deploysLeft = 1;
AIStage = AI_FIRST_RUN;
deal(1);
}
function deal(n) {
if (n < 1) {
return(undefined);
}
if (isNaN(n)) {
n = 1;
}
while (n > 0) {
if (deck.length > 0) {
n--;
var _local2 = deck[deck.length - 1];
sendTo(_local2, "Hand");
var _local3 = (_local2.cardType != Card.TYPE_MONSTER) || (deploysLeft > 0);
_local2.setActive(_local3);
_local2.setUsable(_local3);
} else {
n = 0;
game.endGame(this, " ran out of cards");
}
}
}
function deploy(card, free) {
if (card == null) {
return(undefined);
}
if ((card.isInPlay() || (card.cardType != Card.TYPE_MONSTER)) || (deploysLeft < 1)) {
return(undefined);
}
if (!free) {
deploysLeft--;
}
card.health = card.maxHealth;
card.updateOverlay();
sendTo(card, "Monsters");
if (deploysLeft < 1) {
var _local2 = 0;
while (_local2 < hand.length) {
if (hand[_local2].cardType == Card.TYPE_MONSTER) {
hand[_local2].setUsable(false);
hand[_local2].setActive(false);
}
_local2++;
}
}
card.setInPlay(true);
if (card.summoningTime > 0) {
card.beginSummon();
}
card.attacksThisTurn = card.attacksPerTurn;
}
function sendToGraveyard(card) {
if (card == null) {
return(undefined);
}
sendTo(card, "Graveyard");
card.finishSummon();
card.setInPlay(false);
card.setUsable(true);
card.setActive(false);
}
function sendToHand(card) {
if (card == null) {
return(undefined);
}
sendTo(card, "Hand");
card.health = card.maxHealth;
card.updateOverlay();
var _local3 = (card.cardType != Card.TYPE_MONSTER) || (deploysLeft > 0);
card.setInPlay(false);
card.setActive(_local3);
card.setUsable(_local3);
}
function sendTo(card, pile) {
if (card == null) {
return(undefined);
}
card.show();
var _local2 = game.anim.endTime();
var _local4 = false;
if ((pile == "Graveyard") || (pile == "Monsters")) {
_local4 = true;
}
if ((pile == "Hand") && (((!card.owner.computer) && (card.owner == currentPlayer)) || (card.owner.opponent.computer))) {
_local4 = true;
}
removeFromPile(card, _local2);
var g = game;
game.anim.addFunction(function () {
g.bringToTop(card);
}, _local2);
game.anim.addAnim(new Animation(card, pileCoords(pile, true), gameInfo.animLength, _local2, _local4));
_local2 = _local2 + gameInfo.animLength;
card.pile = pile;
if (pile == "Deck") {
deck.push(card);
if (deck.length > 1) {
var c2 = deck[deck.length - 2];
game.anim.addFunction(function () {
c2.hide();
}, _local2);
}
} else if (pile == "Hand") {
hand.push(card);
adjustHand(_local2);
if (hand.length > 1) {
var c2 = hand[hand.length - 2];
game.anim.addFunction(function () {
g.putBelow(card, c2);
}, _local2);
}
} else if (pile == "Monsters") {
monsters.push(card);
adjustMonsters(_local2);
if (monsters.length > 1) {
var c2 = monsters[monsters.length - 2];
game.anim.addFunction(function () {
g.putBelow(card, c2);
}, _local2);
}
} else if (pile == "Graveyard") {
graveyard.push(card);
if (graveyard.length > 1) {
var c2 = graveyard[graveyard.length - 2];
game.anim.addFunction(function () {
c2.hide();
}, _local2);
}
}
}
function removeFromPile(card, delayTime) {
if (card.pile == "Deck") {
var _local2 = 0;
while (_local2 < deck.length) {
if (card == deck[_local2]) {
deck.splice(_local2, 1);
}
_local2++;
}
if (deck.length > 0) {
deck[deck.length - 1].show();
}
} else if (card.pile == "Hand") {
var _local2 = 0;
while (_local2 < hand.length) {
if (card == hand[_local2]) {
hand.splice(_local2, 1);
}
_local2++;
}
adjustHand(delayTime);
} else if (card.pile == "Monsters") {
var _local2 = 0;
while (_local2 < monsters.length) {
if (card == monsters[_local2]) {
monsters.splice(_local2, 1);
}
_local2++;
}
adjustMonsters(delayTime);
} else if (card.pile == "Graveyard") {
var _local2 = 0;
while (_local2 < graveyard.length) {
if (card == graveyard[_local2]) {
graveyard.splice(_local2, 1);
}
_local2++;
}
if (graveyard.length > 0) {
graveyard[graveyard.length - 1].show();
}
}
}
function adjustHand(delay) {
if (hand.length < 1) {
return(undefined);
}
var _local4 = hand.length;
var _local8 = Math.min(Card.WIDTH + 4, handMC._width / (hand.length + 1));
var _local5 = pileCoords("Hand");
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = {x:_local5.x + (_local8 * (((_local4 - 1) / 2) - _local2)), y:_local5.y};
game.anim.addAnim(new Animation(hand[_local2], _local3, gameInfo.shuffleLength, delay));
_local2++;
}
}
function adjustMonsters(delay) {
if (monsters.length < 1) {
return(undefined);
}
var _local4 = monsters.length;
var _local8 = Math.min(Card.WIDTH + 4, monstersMC._width / (monsters.length + 1));
var _local5 = pileCoords("Monsters");
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = {x:_local5.x + (_local8 * (((_local4 - 1) / 2) - _local2)), y:_local5.y};
game.anim.addAnim(new Animation(monsters[_local2], _local3, gameInfo.shuffleLength, delay));
_local2++;
}
}
function pileCoords(pile, adjusted) {
var _local2 = null;
if (pile == "Deck") {
_local2 = deckMC;
} else if (pile == "Hand") {
_local2 = handMC;
} else if (pile == "Monsters") {
_local2 = monstersMC;
} else if (pile == "Graveyard") {
_local2 = graveyardMC;
}
var _local4 = {x:_local2._x, y:(_local2._y * _yscale) / 100};
if (adjusted) {
if ((pile == "Hand") && (hand.length > 0)) {
var _local5 = hand.length;
var _local6 = Math.min(Card.WIDTH + 4, handMC._width / (hand.length + 1));
_local4.x = _local4.x + (_local6 * (((_local5 - 1) / 2) - hand.length));
} else if ((pile == "Monsters") && (monsters.length > 0)) {
var _local5 = monsters.length;
var _local6 = Math.min(Card.WIDTH + 4, monstersMC._width / (monsters.length + 1));
_local4.x = _local4.x + (_local6 * (((_local5 - 1) / 2) - monsters.length));
}
}
return(_local4);
}
function damage(val) {
var _local2 = Math.min(val, health);
var _local3 = Math.max(0, Math.min(10, Math.min(_local2, health - 10)));
var _local4 = Math.max(0, Math.min(10, _local2 - _local3));
portrait.healthBar1.explode(_local4);
portrait.healthBar2.explode(_local3);
health = health - _local2;
updateHealth();
if (health < 1) {
game.endGame(this, " was defeated");
}
return(_local2 > 0);
}
function heal(val) {
if ((val < 1) || (health >= maxHealth)) {
return(false);
}
var _local2 = Math.min(val, maxHealth - health);
health = health + _local2;
updateHealth();
portrait.healthBar1.pulse();
portrait.healthBar2.pulse();
return(true);
}
function updateHealth() {
portrait.healthBar1.update(Math.min(10, Math.max(health, 0)), 10);
portrait.healthBar2.update(Math.min(10, Math.max(health - 10, 0)), maxHealth - 10);
}
function reinforce(n) {
if (isNaN(n)) {
n = 1;
}
if (deploysLeft >= monstersInHand()) {
return(false);
}
if (deploysLeft < 1) {
var _local2 = 0;
while (_local2 < hand.length) {
if (hand[_local2].cardType == Card.TYPE_MONSTER) {
hand[_local2].setUsable(true);
hand[_local2].setActive(true);
}
_local2++;
}
}
deploysLeft = deploysLeft + n;
return(true);
}
function pauseAI() {
AIPaused = true;
}
function resumeAI() {
AIPaused = false;
}
function AITurn() {
if ((!computer) || (this != currentPlayer)) {
return(undefined);
}
if ((AIPaused || (game.automationPaused)) || (game.anim.animating > 0)) {
return(undefined);
}
AITime++;
if (AITime < gameInfo.AIThinkTime) {
return(undefined);
}
if (AIAction()) {
AITime = 0;
}
}
function AIAction() {
switch (AIStage) {
case AI_FIRST_RUN :
case AI_SECOND_RUN :
case AI_LAST_RUN :
var _local5 = 0;
while (_local5 < hand.length) {
if (AITryCard(hand[_local5])) {
return(true);
}
_local5++;
}
AIStage++;
break;
case AI_DEPLOY :
if ((deploysLeft > 0) && (monstersInHand() > 0)) {
var _local6 = null;
_local5 = 0;
while (_local5 < hand.length) {
if (hand[_local5].cardType == Card.TYPE_MONSTER) {
if (_local6 == null) {
_local6 = hand[_local5];
} else if (((hand[_local5].attack + hand[_local5].defense) + hand[_local5].health) > ((_local6.attack + _local6.defense) + _local6.health)) {
_local6 = hand[_local5];
}
}
_local5++;
}
if (_local6 != null) {
deploy(_local6);
return(true);
}
}
AIStage++;
break;
case AI_ATTACK :
if (game.barrierTime > 0) {
AIStage++;
break;
}
var _local2 = new Array();
_local5 = 0;
while (_local5 < monsters.length) {
if (monsters[_local5].isUsable() && (monsters[_local5].attacksThisTurn > 0)) {
_local2.push(monsters[_local5]);
}
_local5++;
}
if (_local2.length > 0) {
if (opponent.monsters.length < 1) {
_local2[0].attackOpponent();
return(true);
}
var _local3 = null;
if (_local2.length == 1) {
_local3 = _local2[0];
} else {
_local5 = 0;
while (_local5 < _local2.length) {
if (_local3 == null) {
_local3 = _local2[_local5];
} else if (_local2[_local5].attack > _local3.attack) {
_local3 = _local2[_local5];
}
_local5++;
}
if (!_local3.noRetaliation) {
_local5 = 0;
while (_local5 < _local2.length) {
if (_local2[_local5].noRetaliation) {
if ((!_local3.noRetaliation) || (_local2[_local5].attack > _local3.attack)) {
_local3 = _local2[_local5];
}
}
_local5++;
}
}
if (!Effect.scanEffects("Psychic", _local3)) {
_local5 = 0;
while (_local5 < _local2.length) {
if (Effect.scanEffects("Psychic", _local2[_local5])) {
if ((!Effect.scanEffects("Psychic", _local3)) || (_local2[_local5].attack > _local3.attack)) {
_local3 = _local2[_local5];
}
}
_local5++;
}
}
}
var _local8 = _local3.noRetaliation || (Effect.scanEffects("Psychic", _local3));
var _local4 = null;
var _local7 = null;
_local5 = 0;
while (_local5 < opponent.monsters.length) {
if (_local4 == null) {
if (_local8 || (wouldAttack(_local3, opponent.monsters[_local5]))) {
_local4 = opponent.monsters[_local5];
}
} else if ((opponent.monsters[_local5].attack / (((opponent.monsters[_local5].defense * 2) + opponent.monsters[_local5].health) + opponent.monsters[_local5].summoningTimeLeft)) > (_local4.attack / (((_local4.defense * 2) + _local4.health) + _local4.summoningTimeLeft))) {
if (_local8 || (wouldAttack(_local3, opponent.monsters[_local5]))) {
_local4 = opponent.monsters[_local5];
}
}
if (_local7 == null) {
_local7 = opponent.monsters[_local5];
} else if (opponent.monsters[_local5].attack > _local7.attack) {
_local7 = opponent.monsters[_local5];
}
_local5++;
}
if (_local4 != null) {
if (_local7 == _local4) {
_local3.attackMonster(_local4);
return(true);
}
var _local9 = (_local4.defense + _local4.health) * 1.5;
var _local10 = _local3;
_local5 = 0;
while (_local5 < _local2.length) {
if ((_local2[_local5].attack < _local3.attack) && (_local2[_local5].attack > _local9)) {
_local3 = _local2[_local5];
}
_local5++;
}
_local10.attackMonster(_local4);
return(true);
}
}
AIStage++;
break;
case AI_FINISHED :
default :
endTurn();
}
return(false);
}
function wouldAttack(attacker, defender) {
var _local2 = Math.max(1, Math.sqrt(monsters.length / opponent.monsters.length));
return((attacker.attack * _local2) > defender.defense);
}
function AITryCard(card) {
switch (card.cardName) {
case "Fire Sword" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
var _local18 = topScorer(monsters, function (card) {
if (!Effect.applicable("Fire Sword", card)) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Ice Shield" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if (!Effect.applicable("Ice Shield", card)) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Sword" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if (!Effect.applicable("Sword", card)) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Shield" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if (!Effect.applicable("Shield", card)) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Heal" :
if (AIStage == AI_FIRST_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if (((card.maxHealth - card.health) < 2) || (!card.flesh)) {
return(-1);
}
return((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1));
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Cure" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
var _local3 = 0;
var _local1 = 0;
while (_local1 < card.effects.length) {
if (!card.effects[_local1].positive) {
_local3++;
}
_local1++;
}
if (_local3 < 1) {
return(-1);
}
return(((((_local3 * card.attack) * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Antidote" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
var _local3 = 0;
var _local1 = 0;
while (_local1 < card.effects.length) {
if (card.effects[_local1].effectName == "Poison") {
_local3 = card.effects[_local1].stack;
}
_local1++;
}
if (_local3 < 1) {
return(-1);
}
return(((((_local3 * card.attack) * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Charge!" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
if (game.barrierTime > 0) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if ((card.summoningTimeLeft > 0) || (card.attacksThisTurn > 0)) {
return(-1);
}
return(((card.attack * card.health) / card.maxHealth) - 3.5);
});
var _local16 = topScorer(opponent.monsters, function (card) {
return(999 - card.defense);
});
if ((_local18 != null) && ((_local16 == null) || (wouldAttack(_local18, _local16)))) {
AIStage--;
return(useCard(card, _local18));
}
break;
case "Summon" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
if (game.barrierTime > 0) {
return(false);
}
_local18 = topScorer(monsters, function (card) {
if (card.summoningTimeLeft < 1) {
return(-1);
}
return(((((card.summoningTimeLeft * card.attack) * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
_local16 = topScorer(opponent.monsters, function (card) {
return(999 - card.defense);
});
if ((_local18 != null) && ((_local16 == null) || (wouldAttack(_local18, _local16)))) {
return(useCard(card, _local18));
}
break;
case "Sacrifice" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
if ((maxHealth - health) >= 5) {
return(false);
}
if (monsters.length < 2) {
return(false);
}
var _local14 = 1;
var _local4 = 0;
while (_local4 < monsters.length) {
_local14 = _local14 + ((monsters[_local4].attack + monsters[_local4].defense) + monsters[_local4].health);
_local4++;
}
var _local12 = 1;
_local4 = 0;
while (_local4 < opponent.monsters.length) {
_local12 = _local12 + (((opponent.monsters[_local4].attack * opponent.monsters[_local4].attacksPerTurn) + opponent.monsters[_local4].defense) + opponent.monsters[_local4].health);
_local4++;
}
if ((_local12 / _local14) > 2) {
return(false);
}
var _local13 = new Array();
_local4 = 0;
while (_local4 < monsters.length) {
if (monsters[_local4].health <= (maxHealth - health)) {
_local13.push(monsters[_local4]);
}
_local4++;
}
_local18 = topScorer(_local13, function (card) {
return(8 - ((((card.attack * card.attacksPerTurn) + card.defense) * card.health) / card.maxHealth));
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Fireball" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
return((((((card.attack * card.attacksPerTurn) + card.defense) / 3) / Math.sqrt(Math.max(1, card.summoningTimeLeft + 1))) / (1 + (Math.abs(3 - card.health) * 2))) - 1);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Lightning" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
return((((((card.attack * card.attacksPerTurn) + card.defense) / 3) / Math.sqrt(Math.max(1, card.summoningTimeLeft + 1))) / (1 + (Math.abs(2 - card.health) * 2))) - 1);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Poison" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
if (!card.flesh) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) + (card.defense * 2)) + (card.health * 3)) - 20);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Curse" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
if (!Effect.applicable("Curse", card)) {
return(-1);
}
return(((((card.attack * card.attacksPerTurn) + card.defense) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Weaken" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
if (!Effect.applicable("Weaken", card)) {
return(-1);
}
return((((card.attack * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Vulnerable" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
if (!Effect.applicable("Vulnerable", card)) {
return(-1);
}
return(((card.defense / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Strip" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
var _local3 = 0;
var _local1 = 0;
while (_local1 < card.effects.length) {
if (card.effects[_local1].positive) {
_local3++;
}
_local1++;
}
if (_local3 < 1) {
return(-1);
}
return(((((_local3 * card.attack) * card.attacksPerTurn) / Math.max(1, card.summoningTimeLeft + 1)) * card.health) / card.maxHealth);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Necromancy" :
if (AIStage != AI_FIRST_RUN) {
return(false);
}
return(useCard(card));
case "Combine" :
if (AIStage != AI_FIRST_RUN) {
return(false);
}
_local4 = 0;
while (_local4 < Card.combinations.length) {
var _local6 = false;
var _local3 = 0;
while (_local3 < Card.combinations[_local4].componentNames.length) {
if (!findCombinerPart(Card.combinations[_local4].componentNames[_local3])) {
_local6 = true;
}
_local3++;
}
if (_local6 == false) {
return(useCard(card));
}
_local4++;
}
break;
case "Psychic" :
if (AIStage != AI_SECOND_RUN) {
return(false);
}
if (game.barrierTime > 0) {
return(false);
}
_local18 = topScorer(opponent.monsters, function (card) {
if ((!card.flesh) || (card.summoningTimeLeft > 0)) {
return(-1);
}
return((card.attack * card.attacksPerTurn) - 3.5);
});
if (_local18 != null) {
return(useCard(card, _local18));
}
break;
case "Steal" :
if (opponent.hand.length < 1) {
return(false);
}
return(useCard(card));
case "Reinforce" :
if (deploysLeft >= monstersInHand()) {
return(false);
}
return(useCard(card));
case "Black Hole" :
if (AIStage != AI_FIRST_RUN) {
return(false);
}
if (opponent.monsters.length < 1) {
return(false);
}
if (opponent.monsters.length == 1) {
_local4 = 0;
while (_local4 < hand.length) {
if (hand[_local4].cardName == "Doom") {
return(false);
}
_local4++;
}
}
_local14 = 1;
_local4 = 0;
while (_local4 < monsters.length) {
_local14 = _local14 + (((monsters[_local4].attack * monsters[_local4].attacksPerTurn) + monsters[_local4].defense) + monsters[_local4].health);
_local4++;
}
_local12 = 1;
_local4 = 0;
while (_local4 < opponent.monsters.length) {
_local12 = _local12 + (((opponent.monsters[_local4].attack * opponent.monsters[_local4].attacksPerTurn) + opponent.monsters[_local4].defense) + opponent.monsters[_local4].health);
_local4++;
}
if (((_local12 / _local14) > 2) && (_local12 > 10)) {
return(useCard(card));
}
break;
case "Flood" :
if (AIStage != AI_FIRST_RUN) {
return(false);
}
if (opponent.monsters.length < 1) {
return(false);
}
var _local15 = 1;
_local4 = 0;
while (_local4 < monsters.length) {
_local15 = _local15 + (((monsters[_local4].attack * monsters[_local4].attacksPerTurn) + monsters[_local4].defense) / monsters[_local4].health);
_local4++;
}
var _local11 = 1;
_local4 = 0;
while (_local4 < opponent.monsters.length) {
_local11 = _local11 + (((opponent.monsters[_local4].attack * opponent.monsters[_local4].attacksPerTurn) + opponent.monsters[_local4].defense) / opponent.monsters[_local4].health);
_local4++;
}
if (((_local11 / _local15) > 2) && (_local11 > 5)) {
return(useCard(card));
}
break;
case "Doom" :
if (opponent.monsters.length < 1) {
return(false);
}
if (AIStage != AI_FIRST_RUN) {
return(false);
}
if (opponent.monsters.length == 1) {
return(useCard(card, opponent.monsters[0]));
}
var _local7 = null;
_local4 = 0;
while (_local4 < opponent.monsters.length) {
if (_local7 == null) {
_local7 = opponent.monsters[_local4];
} else if (opponent.monsters[_local4].attack < _local7.attack) {
_local7 = opponent.monsters[_local4];
}
_local4++;
}
if (((_local7.attack + _local7.defense) + _local7.health) > 8) {
return(useCard(card));
}
break;
case "Forget" :
if (opponent.hand.length < 2) {
return(false);
}
return(useCard(card));
case "Telescope" :
return(useCard(card));
case "Barrier" :
if (AIStage != AI_LAST_RUN) {
return(false);
}
if (monsters.length < 1) {
return(useCard(card));
}
if (opponent.monsters.length < 1) {
return(false);
}
_local14 = 1;
_local4 = 0;
while (_local4 < monsters.length) {
_local14 = _local14 + (((monsters[_local4].attack * monsters[_local4].attacksPerTurn) + monsters[_local4].defense) + monsters[_local4].health);
_local4++;
}
_local12 = 1;
_local4 = 0;
while (_local4 < opponent.monsters.length) {
_local12 = _local12 + (((opponent.monsters[_local4].attack * opponent.monsters[_local4].attacksPerTurn) + opponent.monsters[_local4].defense) + opponent.monsters[_local4].health);
_local4++;
}
if (((_local12 / _local14) > 2) && (_local12 > 10)) {
return(useCard(card));
}
break;
case "Reborn" :
if (deploysLeft < 1) {
return(false);
}
_local18 = topScorer(graveyard, function (card) {
var _local2 = ((card.attack * card.attacksPerTurn) + card.defense) + card.maxHealth;
if (_local2 >= 15) {
return(_local2);
}
return(-1);
});
if (_local18 != null) {
return(useCard(card));
}
break;
case "Beckon" :
if (deploysLeft < 1) {
return(false);
}
return(useCard(card));
case "Gift" :
if (deck.length < 2) {
return(false);
}
return(useCard(card));
case "Restore" :
if ((maxHealth - health) < 2) {
return(false);
}
return(useCard(card));
}
return(false);
}
function useCard(card, target) {
if (card.use(target)) {
card.setFlipped(true);
if (card.showCombatText) {
game.showCombatText(card.cardName);
}
card.discard();
return(true);
}
return(false);
}
function monstersInHand() {
var _local3 = 0;
var _local2 = 0;
while (_local2 < hand.length) {
if (hand[_local2].cardType == Card.TYPE_MONSTER) {
_local3++;
}
_local2++;
}
return(_local3);
}
function topScorer(array, scoreFunc) {
if (array.length < 1) {
return(null);
}
var _local5 = null;
var _local4 = 0;
var _local1 = 0;
while (_local1 < array.length) {
var _local2 = scoreFunc(array[_local1]);
if ((_local2 > _local4) && (_local2 >= 0)) {
_local5 = array[_local1];
_local4 = _local2;
}
_local1++;
}
return(_local5);
}
function findCombinerPart(cardName) {
var _local2 = 0;
while (_local2 < hand.length) {
if (cardName == hand[_local2].cardName) {
return(hand[_local2]);
}
_local2++;
}
var _local3 = null;
_local2 = 0;
while (_local2 < monsters.length) {
if (cardName == monsters[_local2].cardName) {
if (_local3 == null) {
_local3 = monsters[_local2];
} else if (monsters[_local2].health < _local3.health) {
_local3 = monsters[_local2];
} else if (monsters[_local2].health == _local3.health) {
if (monsters[_local2].summoningTimeLeft > _local3.summoningTimeLeft) {
_local3 = monsters[_local2];
}
}
}
_local2++;
}
return(_local3);
}
static var AI_FIRST_RUN = 0;
static var AI_DEPLOY = 1;
static var AI_SECOND_RUN = 2;
static var AI_ATTACK = 3;
static var AI_LAST_RUN = 4;
static var AI_FINISHED = 5;
static var currentPlayer = null;
var AITime = 0;
var AIPaused = false;
}
Symbol 587 MovieClip [__Packages.Animation] Frame 0
class Animation
{
var card, destination, frames, totalFrames, delay, showCard, flip, finished, flipped;
function Animation (Card, Destination, Frames, Delay, ShowCard) {
card = Card;
destination = Destination;
frames = Frames;
totalFrames = frames;
if (Delay != undefined) {
delay = Delay;
} else {
delay = 0;
}
showCard = ShowCard;
flip = (showCard != undefined) && (showCard != card.isFlipped());
finished = false;
flipped = false;
}
function animate() {
if (finished) {
return(undefined);
}
if (delay > 0) {
delay--;
return(undefined);
}
if (flip) {
card._xscale = (Math.abs((totalFrames / 2) - frames) / (totalFrames / 2)) * 100;
}
if ((!flipped) && (frames <= (totalFrames / 2))) {
if (showCard != undefined) {
card.setFlipped(showCard);
}
flipped = true;
}
card._x = Math.round(card._x + ((destination.x - card._x) / frames));
card._y = Math.round(card._y + ((destination.y - card._y) / frames));
frames--;
if (frames < 1) {
card._xscale = 100;
finished = true;
}
}
function skip() {
delay = Math.min(0, delay);
frames = Math.min(1, frames);
animate();
}
}
Symbol 447 MovieClip [__Packages.mx.managers.DepthManager] Frame 0
class mx.managers.DepthManager
{
var _childCounter, createClassObject, createObject, _parent, swapDepths, _topmost, getDepth;
function DepthManager () {
MovieClip.prototype.createClassChildAtDepth = createClassChildAtDepth;
MovieClip.prototype.createChildAtDepth = createChildAtDepth;
MovieClip.prototype.setDepthTo = setDepthTo;
MovieClip.prototype.setDepthAbove = setDepthAbove;
MovieClip.prototype.setDepthBelow = setDepthBelow;
MovieClip.prototype.findNextAvailableDepth = findNextAvailableDepth;
MovieClip.prototype.shuffleDepths = shuffleDepths;
MovieClip.prototype.getDepthByFlag = getDepthByFlag;
MovieClip.prototype.buildDepthTable = buildDepthTable;
_global.ASSetPropFlags(MovieClip.prototype, "createClassChildAtDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "createChildAtDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthTo", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthAbove", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthBelow", 1);
_global.ASSetPropFlags(MovieClip.prototype, "findNextAvailableDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "shuffleDepths", 1);
_global.ASSetPropFlags(MovieClip.prototype, "getDepthByFlag", 1);
_global.ASSetPropFlags(MovieClip.prototype, "buildDepthTable", 1);
}
static function sortFunction(a, b) {
if (a.getDepth() > b.getDepth()) {
return(1);
}
return(-1);
}
static function test(depth) {
if (depth == reservedDepth) {
return(false);
}
return(true);
}
static function createClassObjectAtDepth(className, depthSpace, initObj) {
var _local1;
switch (depthSpace) {
case kCursor :
_local1 = holder.createClassChildAtDepth(className, kTopmost, initObj);
break;
case kTooltip :
_local1 = holder.createClassChildAtDepth(className, kTop, initObj);
break;
}
return(_local1);
}
static function createObjectAtDepth(linkageName, depthSpace, initObj) {
var _local1;
switch (depthSpace) {
case kCursor :
_local1 = holder.createChildAtDepth(linkageName, kTopmost, initObj);
break;
case kTooltip :
_local1 = holder.createChildAtDepth(linkageName, kTop, initObj);
break;
}
return(_local1);
}
function createClassChildAtDepth(className, depthFlag, initObj) {
if (_childCounter == undefined) {
_childCounter = 0;
}
var _local3 = buildDepthTable();
var _local2 = getDepthByFlag(depthFlag, _local3);
var _local5 = "down";
if (depthFlag == kBottom) {
_local5 = "up";
}
var _local6;
if (_local3[_local2] != undefined) {
_local6 = _local2;
_local2 = findNextAvailableDepth(_local2, _local3, _local5);
}
var _local4 = createClassObject(className, "depthChild" + (_childCounter++), _local2, initObj);
if (_local6 != undefined) {
_local3[_local2] = _local4;
shuffleDepths(_local4, _local6, _local3, _local5);
}
if (depthFlag == kTopmost) {
_local4._topmost = true;
}
return(_local4);
}
function createChildAtDepth(linkageName, depthFlag, initObj) {
if (_childCounter == undefined) {
_childCounter = 0;
}
var _local3 = buildDepthTable();
var _local2 = getDepthByFlag(depthFlag, _local3);
var _local5 = "down";
if (depthFlag == kBottom) {
_local5 = "up";
}
var _local6;
if (_local3[_local2] != undefined) {
_local6 = _local2;
_local2 = findNextAvailableDepth(_local2, _local3, _local5);
}
var _local4 = createObject(linkageName, "depthChild" + (_childCounter++), _local2, initObj);
if (_local6 != undefined) {
_local3[_local2] = _local4;
shuffleDepths(_local4, _local6, _local3, _local5);
}
if (depthFlag == kTopmost) {
_local4._topmost = true;
}
return(_local4);
}
function setDepthTo(depthFlag) {
var _local2 = _parent.buildDepthTable();
var _local3 = _parent.getDepthByFlag(depthFlag, _local2);
if (_local2[_local3] != undefined) {
shuffleDepths(MovieClip(this), _local3, _local2, undefined);
} else {
swapDepths(_local3);
}
if (depthFlag == kTopmost) {
_topmost = true;
} else {
delete _topmost;
}
}
function setDepthAbove(targetInstance) {
if (targetInstance._parent != _parent) {
return(undefined);
}
var _local2 = targetInstance.getDepth() + 1;
var _local3 = _parent.buildDepthTable();
if ((_local3[_local2] != undefined) && (getDepth() < _local2)) {
_local2 = _local2 - 1;
}
if (_local2 > highestDepth) {
_local2 = highestDepth;
}
if (_local2 == highestDepth) {
_parent.shuffleDepths(this, _local2, _local3, "down");
} else if (_local3[_local2] != undefined) {
_parent.shuffleDepths(this, _local2, _local3, undefined);
} else {
swapDepths(_local2);
}
}
function setDepthBelow(targetInstance) {
if (targetInstance._parent != _parent) {
return(undefined);
}
var _local6 = targetInstance.getDepth() - 1;
var _local3 = _parent.buildDepthTable();
if ((_local3[_local6] != undefined) && (getDepth() > _local6)) {
_local6 = _local6 + 1;
}
var _local4 = lowestDepth + numberOfAuthortimeLayers;
var _local5;
for (_local5 in _local3) {
var _local2 = _local3[_local5];
if (_local2._parent != undefined) {
_local4 = Math.min(_local4, _local2.getDepth());
}
}
if (_local6 < _local4) {
_local6 = _local4;
}
if (_local6 == _local4) {
_parent.shuffleDepths(this, _local6, _local3, "up");
} else if (_local3[_local6] != undefined) {
_parent.shuffleDepths(this, _local6, _local3, undefined);
} else {
swapDepths(_local6);
}
}
function findNextAvailableDepth(targetDepth, depthTable, direction) {
var _local5 = lowestDepth + numberOfAuthortimeLayers;
if (targetDepth < _local5) {
targetDepth = _local5;
}
if (depthTable[targetDepth] == undefined) {
return(targetDepth);
}
var _local1 = targetDepth;
var _local2 = targetDepth;
if (direction == "down") {
while (depthTable[_local2] != undefined) {
_local2--;
}
return(_local2);
}
while (depthTable[_local1] != undefined) {
_local1++;
}
return(_local1);
}
function shuffleDepths(subject, targetDepth, depthTable, direction) {
var _local9 = lowestDepth + numberOfAuthortimeLayers;
var _local8 = _local9;
var _local5;
for (_local5 in depthTable) {
var _local7 = depthTable[_local5];
if (_local7._parent != undefined) {
_local9 = Math.min(_local9, _local7.getDepth());
}
}
if (direction == undefined) {
if (subject.getDepth() > targetDepth) {
direction = "up";
} else {
direction = "down";
}
}
var _local1 = new Array();
for (_local5 in depthTable) {
var _local7 = depthTable[_local5];
if (_local7._parent != undefined) {
_local1.push(_local7);
}
}
_local1.sort(sortFunction);
if (direction == "up") {
var _local3;
var _local11;
do {
if (_local1.length <= 0) {
break;
}
_local3 = _local1.pop();
} while (_local3 != subject);
do {
if (_local1.length <= 0) {
break;
}
_local11 = subject.getDepth();
_local3 = _local1.pop();
var _local4 = _local3.getDepth();
if (_local11 > (_local4 + 1)) {
if (_local4 >= 0) {
subject.swapDepths(_local4 + 1);
} else if ((_local11 > _local8) && (_local4 < _local8)) {
subject.swapDepths(_local8);
}
}
subject.swapDepths(_local3);
} while (_local4 != targetDepth);
} else if (direction == "down") {
var _local3;
do {
if (_local1.length <= 0) {
break;
}
_local3 = _local1.shift();
} while (_local3 != subject);
do {
if (_local1.length <= 0) {
break;
}
var _local11 = _local3.getDepth();
_local3 = _local1.shift();
var _local4 = _local3.getDepth();
if ((_local11 < (_local4 - 1)) && (_local4 > 0)) {
subject.swapDepths(_local4 - 1);
}
subject.swapDepths(_local3);
} while (_local4 != targetDepth);
}
}
function getDepthByFlag(depthFlag, depthTable) {
var _local2 = 0;
if ((depthFlag == kTop) || (depthFlag == kNotopmost)) {
var _local5 = 0;
var _local7 = false;
var _local8;
for (_local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
if (!_local9._topmost) {
_local2 = Math.max(_local2, _local9.getDepth());
} else if (!_local7) {
_local5 = _local9.getDepth();
_local7 = true;
} else {
_local5 = Math.min(_local5, _local9.getDepth());
}
}
}
}
_local2 = _local2 + 20;
if (_local7) {
if (_local2 >= _local5) {
_local2 = _local5 - 1;
}
}
} else if (depthFlag == kBottom) {
for (var _local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
_local2 = Math.min(_local2, _local9.getDepth());
}
}
}
_local2 = _local2 - 20;
} else if (depthFlag == kTopmost) {
for (var _local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
_local2 = Math.max(_local2, _local9.getDepth());
}
}
}
_local2 = _local2 + 100;
}
if (_local2 >= highestDepth) {
_local2 = highestDepth;
}
var _local6 = lowestDepth + numberOfAuthortimeLayers;
for (var _local9 in depthTable) {
var _local4 = depthTable[_local9];
if (_local4._parent != undefined) {
_local6 = Math.min(_local6, _local4.getDepth());
}
}
if (_local2 <= _local6) {
_local2 = _local6;
}
return(_local2);
}
function buildDepthTable(Void) {
var _local5 = new Array();
var _local4;
for (_local4 in this) {
var _local2 = this[_local4];
var _local3 = typeof(_local2);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local2.__getTextFormat != undefined))) {
if (_local2._parent == this) {
_local5[_local2.getDepth()] = _local2;
}
}
}
return(_local5);
}
static var reservedDepth = 1048575;
static var highestDepth = 1048574;
static var lowestDepth = -16383;
static var numberOfAuthortimeLayers = 383;
static var kCursor = 101;
static var kTooltip = 102;
static var kTop = 201;
static var kBottom = 202;
static var kTopmost = 203;
static var kNotopmost = 204;
static var holder = _root.createEmptyMovieClip("reserved", reservedDepth);
static var __depthManager = new mx.managers.DepthManager();
}
Symbol 405 MovieClip [__Packages.mx.core.UIObject] Frame 0
class mx.core.UIObject extends MovieClip
{
var _width, _height, _x, _y, _parent, _minHeight, _minWidth, _visible, dispatchEvent, _xscale, _yscale, methodTable, onEnterFrame, tfList, __width, __height, moveTo, lineTo, createTextField, attachMovie, buildDepthTable, findNextAvailableDepth, idNames, childrenCreated, _name, createAccessibilityImplementation, _endInit, validateNow, hasOwnProperty, initProperties, stylecache, className, ignoreClassStyleDeclaration, _tf, fontFamily, fontSize, color, marginLeft, marginRight, fontStyle, fontWeight, textAlign, textIndent, textDecoration, embedFonts, styleName, enabled;
function UIObject () {
super();
constructObject();
}
function get width() {
return(_width);
}
function get height() {
return(_height);
}
function get left() {
return(_x);
}
function get x() {
return(_x);
}
function get top() {
return(_y);
}
function get y() {
return(_y);
}
function get right() {
return(_parent.width - (_x + width));
}
function get bottom() {
return(_parent.height - (_y + height));
}
function getMinHeight(Void) {
return(_minHeight);
}
function setMinHeight(h) {
_minHeight = h;
}
function get minHeight() {
return(getMinHeight());
}
function set minHeight(h) {
setMinHeight(h);
//return(minHeight);
}
function getMinWidth(Void) {
return(_minWidth);
}
function setMinWidth(w) {
_minWidth = w;
}
function get minWidth() {
return(getMinWidth());
}
function set minWidth(w) {
setMinWidth(w);
//return(minWidth);
}
function setVisible(x, noEvent) {
if (x != _visible) {
_visible = x;
if (noEvent != true) {
dispatchEvent({type:(x ? "reveal" : "hide")});
}
}
}
function get visible() {
return(_visible);
}
function set visible(x) {
setVisible(x, false);
//return(visible);
}
function get scaleX() {
return(_xscale);
}
function set scaleX(x) {
_xscale = x;
//return(scaleX);
}
function get scaleY() {
return(_yscale);
}
function set scaleY(y) {
_yscale = y;
//return(scaleY);
}
function doLater(obj, fn) {
if (methodTable == undefined) {
methodTable = new Array();
}
methodTable.push({obj:obj, fn:fn});
onEnterFrame = doLaterDispatcher;
}
function doLaterDispatcher(Void) {
delete onEnterFrame;
if (invalidateFlag) {
redraw();
}
var _local3 = methodTable;
methodTable = new Array();
if (_local3.length > 0) {
var _local2;
while (_local2 = _local3.shift() , _local2 != undefined) {
_local2.obj[_local2.fn]();
}
}
}
function cancelAllDoLaters(Void) {
delete onEnterFrame;
methodTable = new Array();
}
function invalidate(Void) {
invalidateFlag = true;
onEnterFrame = doLaterDispatcher;
}
function invalidateStyle(Void) {
invalidate();
}
function redraw(bAlways) {
if (invalidateFlag || (bAlways)) {
invalidateFlag = false;
var _local2;
for (_local2 in tfList) {
tfList[_local2].draw();
}
draw();
dispatchEvent({type:"draw"});
}
}
function draw(Void) {
}
function move(x, y, noEvent) {
var _local3 = _x;
var _local2 = _y;
_x = x;
_y = y;
if (noEvent != true) {
dispatchEvent({type:"move", oldX:_local3, oldY:_local2});
}
}
function setSize(w, h, noEvent) {
var _local3 = __width;
var _local2 = __height;
__width = w;
__height = h;
size();
if (noEvent != true) {
dispatchEvent({type:"resize", oldWidth:_local3, oldHeight:_local2});
}
}
function size(Void) {
_width = __width;
_height = __height;
}
function drawRect(x1, y1, x2, y2) {
moveTo(x1, y1);
lineTo(x2, y1);
lineTo(x2, y2);
lineTo(x1, y2);
lineTo(x1, y1);
}
function createLabel(name, depth, text) {
createTextField(name, depth, 0, 0, 0, 0);
var _local2 = this[name];
_local2._color = textColorList;
_local2._visible = false;
_local2.__text = text;
if (tfList == undefined) {
tfList = new Object();
}
tfList[name] = _local2;
_local2.invalidateStyle();
invalidate();
_local2.styleName = this;
return(_local2);
}
function createObject(linkageName, id, depth, initobj) {
return(attachMovie(linkageName, id, depth, initobj));
}
function createClassObject(className, id, depth, initobj) {
var _local3 = className.symbolName == undefined;
if (_local3) {
Object.registerClass(className.symbolOwner.symbolName, className);
}
var _local4 = mx.core.UIObject(createObject(className.symbolOwner.symbolName, id, depth, initobj));
if (_local3) {
Object.registerClass(className.symbolOwner.symbolName, className.symbolOwner);
}
return(_local4);
}
function createEmptyObject(id, depth) {
return(createClassObject(mx.core.UIObject, id, depth));
}
function destroyObject(id) {
var _local2 = this[id];
if (_local2.getDepth() < 0) {
var _local4 = buildDepthTable();
var _local5 = findNextAvailableDepth(0, _local4, "up");
var _local3 = _local5;
_local2.swapDepths(_local3);
}
_local2.removeMovieClip();
delete this[id];
}
function getSkinIDName(tag) {
return(idNames[tag]);
}
function setSkin(tag, linkageName, initObj) {
if (_global.skinRegistry[linkageName] == undefined) {
mx.skins.SkinElement.registerElement(linkageName, mx.skins.SkinElement);
}
return(createObject(linkageName, getSkinIDName(tag), tag, initObj));
}
function createSkin(tag) {
var _local2 = getSkinIDName(tag);
createEmptyObject(_local2, tag);
return(this[_local2]);
}
function createChildren(Void) {
}
function _createChildren(Void) {
createChildren();
childrenCreated = true;
}
function constructObject(Void) {
if (_name == undefined) {
return(undefined);
}
init();
_createChildren();
createAccessibilityImplementation();
_endInit();
if (validateNow) {
redraw(true);
} else {
invalidate();
}
}
function initFromClipParameters(Void) {
var _local4 = false;
var _local2;
for (_local2 in clipParameters) {
if (hasOwnProperty(_local2)) {
_local4 = true;
this["def_" + _local2] = this[_local2];
delete this[_local2];
}
}
if (_local4) {
for (_local2 in clipParameters) {
var _local3 = this["def_" + _local2];
if (_local3 != undefined) {
this[_local2] = _local3;
}
}
}
}
function init(Void) {
__width = _width;
__height = _height;
if (initProperties == undefined) {
initFromClipParameters();
} else {
initProperties();
}
if (_global.cascadingStyles == true) {
stylecache = new Object();
}
}
function getClassStyleDeclaration(Void) {
var _local4 = this;
var _local3 = className;
while (_local3 != undefined) {
if (ignoreClassStyleDeclaration[_local3] == undefined) {
if (_global.styles[_local3] != undefined) {
return(_global.styles[_local3]);
}
}
_local4 = _local4.__proto__;
_local3 = _local4.className;
}
}
function setColor(color) {
}
function __getTextFormat(tf, bAll) {
var _local8 = stylecache.tf;
if (_local8 != undefined) {
var _local3;
for (_local3 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local3])) {
if (tf[_local3] == undefined) {
tf[_local3] = _local8[_local3];
}
}
}
return(false);
}
var _local6 = false;
for (var _local3 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local3])) {
if (tf[_local3] == undefined) {
var _local5 = _tf[_local3];
if (_local5 != undefined) {
tf[_local3] = _local5;
} else if ((_local3 == "font") && (fontFamily != undefined)) {
tf[_local3] = fontFamily;
} else if ((_local3 == "size") && (fontSize != undefined)) {
tf[_local3] = fontSize;
} else if ((_local3 == "color") && (color != undefined)) {
tf[_local3] = color;
} else if ((_local3 == "leftMargin") && (marginLeft != undefined)) {
tf[_local3] = marginLeft;
} else if ((_local3 == "rightMargin") && (marginRight != undefined)) {
tf[_local3] = marginRight;
} else if ((_local3 == "italic") && (fontStyle != undefined)) {
tf[_local3] = fontStyle == _local3;
} else if ((_local3 == "bold") && (fontWeight != undefined)) {
tf[_local3] = fontWeight == _local3;
} else if ((_local3 == "align") && (textAlign != undefined)) {
tf[_local3] = textAlign;
} else if ((_local3 == "indent") && (textIndent != undefined)) {
tf[_local3] = textIndent;
} else if ((_local3 == "underline") && (textDecoration != undefined)) {
tf[_local3] = textDecoration == _local3;
} else if ((_local3 == "embedFonts") && (embedFonts != undefined)) {
tf[_local3] = embedFonts;
} else {
_local6 = true;
}
}
}
}
if (_local6) {
var _local9 = styleName;
if (_local9 != undefined) {
if (typeof(_local9) != "string") {
_local6 = _local9.__getTextFormat(tf, true, this);
} else if (_global.styles[_local9] != undefined) {
_local6 = _global.styles[_local9].__getTextFormat(tf, true, this);
}
}
}
if (_local6) {
var _local10 = getClassStyleDeclaration();
if (_local10 != undefined) {
_local6 = _local10.__getTextFormat(tf, true, this);
}
}
if (_local6) {
if (_global.cascadingStyles) {
if (_parent != undefined) {
_local6 = _parent.__getTextFormat(tf, false);
}
}
}
if (_local6) {
_local6 = _global.style.__getTextFormat(tf, true, this);
}
return(_local6);
}
function _getTextFormat(Void) {
var _local2 = stylecache.tf;
if (_local2 != undefined) {
return(_local2);
}
_local2 = new TextFormat();
__getTextFormat(_local2, true);
stylecache.tf = _local2;
if (enabled == false) {
var _local3 = getStyle("disabledColor");
_local2.color = _local3;
}
return(_local2);
}
function getStyleName(Void) {
var _local2 = styleName;
if (_local2 != undefined) {
if (typeof(_local2) != "string") {
return(_local2.getStyleName());
}
return(_local2);
}
if (_parent != undefined) {
return(_parent.getStyleName());
}
return(undefined);
}
function getStyle(styleProp) {
var _local3;
_global.getStyleCounter++;
if (this[styleProp] != undefined) {
return(this[styleProp]);
}
var _local6 = styleName;
if (_local6 != undefined) {
if (typeof(_local6) != "string") {
_local3 = _local6.getStyle(styleProp);
} else {
var _local7 = _global.styles[_local6];
_local3 = _local7.getStyle(styleProp);
}
}
if (_local3 != undefined) {
return(_local3);
}
var _local7 = getClassStyleDeclaration();
if (_local7 != undefined) {
_local3 = _local7[styleProp];
}
if (_local3 != undefined) {
return(_local3);
}
if (_global.cascadingStyles) {
if (mx.styles.StyleManager.isInheritingStyle(styleProp) || (mx.styles.StyleManager.isColorStyle(styleProp))) {
var _local5 = stylecache;
if (_local5 != undefined) {
if (_local5[styleProp] != undefined) {
return(_local5[styleProp]);
}
}
if (_parent != undefined) {
_local3 = _parent.getStyle(styleProp);
} else {
_local3 = _global.style[styleProp];
}
if (_local5 != undefined) {
_local5[styleProp] = _local3;
}
return(_local3);
}
}
if (_local3 == undefined) {
_local3 = _global.style[styleProp];
}
return(_local3);
}
static function mergeClipParameters(o, p) {
for (var _local3 in p) {
o[_local3] = p[_local3];
}
return(true);
}
static var symbolName = "UIObject";
static var symbolOwner = mx.core.UIObject;
static var version = "2.0.2.126";
static var textColorList = {color:1, disabledColor:1};
var invalidateFlag = false;
var lineWidth = 1;
var lineColor = 0;
var tabEnabled = false;
var clipParameters = {visible:1, minHeight:1, minWidth:1, maxHeight:1, maxWidth:1, preferredHeight:1, preferredWidth:1};
}
Symbol 438 MovieClip [__Packages.mx.skins.SkinElement] Frame 0
class mx.skins.SkinElement extends MovieClip
{
var _visible, _x, _y, _width, _height;
function SkinElement () {
super();
}
static function registerElement(name, className) {
Object.registerClass(name, ((className == undefined) ? (mx.skins.SkinElement) : (className)));
_global.skinRegistry[name] = true;
}
function __set__visible(visible) {
_visible = visible;
}
function move(x, y) {
_x = x;
_y = y;
}
function setSize(w, h) {
_width = w;
_height = h;
}
}
Symbol 439 MovieClip [__Packages.mx.styles.CSSTextStyles] Frame 0
class mx.styles.CSSTextStyles
{
function CSSTextStyles () {
}
static function addTextStyles(o, bColor) {
o.addProperty("textAlign", function () {
return(this._tf.align);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.align = x;
});
o.addProperty("fontWeight", function () {
return(((this._tf.bold != undefined) ? ((this._tf.bold ? "bold" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.bold = x == "bold";
});
if (bColor) {
o.addProperty("color", function () {
return(this._tf.color);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.color = x;
});
}
o.addProperty("fontFamily", function () {
return(this._tf.font);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.font = x;
});
o.addProperty("textIndent", function () {
return(this._tf.indent);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.indent = x;
});
o.addProperty("fontStyle", function () {
return(((this._tf.italic != undefined) ? ((this._tf.italic ? "italic" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.italic = x == "italic";
});
o.addProperty("marginLeft", function () {
return(this._tf.leftMargin);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.leftMargin = x;
});
o.addProperty("marginRight", function () {
return(this._tf.rightMargin);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.rightMargin = x;
});
o.addProperty("fontSize", function () {
return(this._tf.size);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.size = x;
});
o.addProperty("textDecoration", function () {
return(((this._tf.underline != undefined) ? ((this._tf.underline ? "underline" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.underline = x == "underline";
});
o.addProperty("embedFonts", function () {
return(this._tf.embedFonts);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.embedFonts = x;
});
}
}
Symbol 441 MovieClip [__Packages.mx.styles.CSSStyleDeclaration] Frame 0
class mx.styles.CSSStyleDeclaration
{
var _tf;
function CSSStyleDeclaration () {
}
function __getTextFormat(tf, bAll) {
var _local5 = false;
if (_tf != undefined) {
var _local2;
for (_local2 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local2])) {
if (tf[_local2] == undefined) {
var _local3 = _tf[_local2];
if (_local3 != undefined) {
tf[_local2] = _local3;
} else {
_local5 = true;
}
}
}
}
} else {
_local5 = true;
}
return(_local5);
}
function getStyle(styleProp) {
var _local2 = this[styleProp];
var _local3 = mx.styles.StyleManager.getColorName(_local2);
return(((_local3 == undefined) ? (_local2) : (_local3)));
}
static function classConstruct() {
mx.styles.CSSTextStyles.addTextStyles(mx.styles.CSSStyleDeclaration.prototype, true);
return(true);
}
static var classConstructed = classConstruct();
static var CSSTextStylesDependency = mx.styles.CSSTextStyles;
}
Symbol 440 MovieClip [__Packages.mx.styles.StyleManager] Frame 0
class mx.styles.StyleManager
{
function StyleManager () {
}
static function registerInheritingStyle(styleName) {
inheritingStyles[styleName] = true;
}
static function isInheritingStyle(styleName) {
return(inheritingStyles[styleName] == true);
}
static function registerColorStyle(styleName) {
colorStyles[styleName] = true;
}
static function isColorStyle(styleName) {
return(colorStyles[styleName] == true);
}
static function registerColorName(colorName, colorValue) {
colorNames[colorName] = colorValue;
}
static function isColorName(colorName) {
return(colorNames[colorName] != undefined);
}
static function getColorName(colorName) {
return(colorNames[colorName]);
}
static var inheritingStyles = {color:true, direction:true, fontFamily:true, fontSize:true, fontStyle:true, fontWeight:true, textAlign:true, textIndent:true};
static var colorStyles = {barColor:true, trackColor:true, borderColor:true, buttonColor:true, color:true, dateHeaderColor:true, dateRollOverColor:true, disabledColor:true, fillColor:true, highlightColor:true, scrollTrackColor:true, selectedDateColor:true, shadowColor:true, strokeColor:true, symbolBackgroundColor:true, symbolBackgroundDisabledColor:true, symbolBackgroundPressedColor:true, symbolColor:true, symbolDisabledColor:true, themeColor:true, todayIndicatorColor:true, shadowCapColor:true, borderCapColor:true, focusColor:true};
static var colorNames = {black:0, white:16777215, red:16711680, green:65280, blue:255, magenta:16711935, yellow:16776960, cyan:65535, haloGreen:8453965, haloBlue:2881013, haloOrange:16761344};
static var TextFormatStyleProps = {font:true, size:true, color:true, leftMargin:false, rightMargin:false, italic:true, bold:true, align:true, indent:true, underline:false, embedFonts:false};
static var TextStyleMap = {textAlign:true, fontWeight:true, color:true, fontFamily:true, textIndent:true, fontStyle:true, lineHeight:true, marginLeft:true, marginRight:true, fontSize:true, textDecoration:true, embedFonts:true};
}
Symbol 588 MovieClip [__Packages.HealthBar] Frame 0
class HealthBar extends MovieClip
{
var w, mask, maxMask, _parent, _y, _x, pulseTime, onEnterFrame, gotoAndStop;
function HealthBar () {
super();
w = mask._width;
}
function update(current, max) {
mask._width = (w * current) / 10;
maxMask._width = (w * max) / 10;
}
function explode(damage) {
var _local3 = (((-w) / 2) + mask._width) - (w / 20);
var _local2 = 0;
while (_local2 < damage) {
_parent.createChildAtDepth("Explosion", mx.managers.DepthManager.kTop, {_x:_x + _local3, _y:_y, _rotation:Math.random() * 360});
_local3 = _local3 - (w / 10);
_local2++;
}
}
function pulse() {
pulseTime = PULSE_LENGTH;
onEnterFrame = function () {
var _local2 = ((HealthBar.PULSE_LENGTH - this.pulseTime) / HealthBar.PULSE_LENGTH) * 100;
this.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 1, 1, _local2, _local2, _local2, 0);
this.pulseTime--;
if (this.pulseTime <= 0) {
this.pulseTime = HealthBar.PULSE_LENGTH;
this.onEnterFrame = function () {
var _local2 = (this.pulseTime / HealthBar.PULSE_LENGTH) * 100;
this.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 1, 1, _local2, _local2, _local2, 0);
this.pulseTime--;
if (this.pulseTime <= 0) {
this.onEnterFrame = null;
}
};
}
};
}
function poison() {
gotoAndStop("Poisoned");
pulseTime = PULSE_LENGTH;
onEnterFrame = function () {
this.pulseTime--;
var _local2 = ((HealthBar.PULSE_LENGTH - this.pulseTime) / HealthBar.PULSE_LENGTH) * 255;
this.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 1, 1, _local2, _local2, _local2, 0);
if (this.pulseTime < 1) {
this.pulseTime = HealthBar.PULSE_LENGTH;
this.onEnterFrame = function () {
this.pulseTime--;
var _local2 = (this.pulseTime / HealthBar.PULSE_LENGTH) * 255;
this.transform.colorTransform = new flash.geom.ColorTransform(1, 1, 1, 1, _local2, _local2, _local2, 0);
if (this.pulseTime < 1) {
this.onEnterFrame = null;
}
};
}
};
}
function cure() {
gotoAndStop("Normal");
}
static var PULSE_LENGTH = 8;
}
Symbol 589 MovieClip [__Packages.Game] Frame 0
class Game extends MovieClip
{
var anim, createChildAtDepth, divider, combatText, cardLayer, createEmptyMovieClip, player1, gameInfo, player2, inputBlocker, readyPopup, newGamePopup, battlePopup, menuPopup, input, defaultInput, started, barrierTime, doneFunc, removeMovieClip;
function Game () {
super();
}
function startup() {
var _local6 = this;
anim = createChildAtDepth("AnimationHandler", mx.managers.DepthManager.kTop);
anim.addListener(this);
divider = createChildAtDepth("Divider", mx.managers.DepthManager.kTop);
combatText = createChildAtDepth("CombatText", mx.managers.DepthManager.kTop, {_visible:false});
cardLayer = createEmptyMovieClip("cardLayer", mx.managers.DepthManager.kTop);
player1 = createChildAtDepth("Player", mx.managers.DepthManager.kBottom, {playerIndex:0, gameInfo:gameInfo});
player1.transform.colorTransform = new flash.geom.ColorTransform(0.5, 0.5, 1, 1, 0, 0, 0, 0);
player1.setPortrait(createChildAtDepth("Portrait", mx.managers.DepthManager.kBottom), gameInfo.avatar[0]);
player1.portrait.setDepthAbove(player1);
player2 = createChildAtDepth("Player", mx.managers.DepthManager.kBottom, {playerIndex:1, gameInfo:gameInfo, _yscale:-100});
player2.transform.colorTransform = new flash.geom.ColorTransform(1, 0.5, 0.5, 1, 0, 0, 0, 0);
player2.setPortrait(createChildAtDepth("Portrait", mx.managers.DepthManager.kBottom), gameInfo.avatar[1]);
player2.portrait.setDepthAbove(player2);
player1.opponent = player2;
player2.opponent = player1;
inputBlocker = createChildAtDepth("InputBlocker", mx.managers.DepthManager.kTop, {_visible:false});
readyPopup = createChildAtDepth("ReadyPopup", mx.managers.DepthManager.kTopmost, {_visible:false});
newGamePopup = createChildAtDepth("NewGamePopup", mx.managers.DepthManager.kTopmost, {_visible:false});
battlePopup = createChildAtDepth("BattlePopup", mx.managers.DepthManager.kTopmost, {_visible:false});
menuPopup = createChildAtDepth("MenuPopup", mx.managers.DepthManager.kTopmost, {_visible:false});
startGame();
}
function startGame() {
var game = this;
input.keySpace = function () {
game.anim.skip();
};
input.keyEnter = (divider.button.onRelease = function () {
if (!Player.currentPlayer.computer) {
Player.currentPlayer.endTurn();
}
});
input.keyEscape = (divider.menuButton.onRelease = function () {
game.escapeMenu();
});
defaultInput = input.getState();
menuPopup._visible = false;
newGamePopup._visible = false;
battlePopup._visible = false;
readyPopup._visible = false;
started = false;
Player.currentPlayer = null;
barrierTime = 0;
player1.deal(5);
player2.deal(5);
var game = this;
anim.addFunction(function () {
game.startBarrier(2);
}, anim.endTime());
}
function pauseAutomation() {
automationPaused = true;
anim.pauseAnimation();
battlePopup.pause();
}
function resumeAutomation() {
automationPaused = false;
anim.resumeAnimation();
battlePopup.resume();
}
function changePlayers() {
if (gameInfo.deckStrength[0] != "Custom") {
gameInfo.deckList[0] = new Array();
}
if (gameInfo.deckStrength[1] != "Custom") {
gameInfo.deckList[1] = new Array();
}
doneFunc();
removeMovieClip();
}
function escapeMenu() {
var game = this;
var inputState = input.getState();
menuPopup.resumeButton.onRelease = (input.keySpace = (input.keyEnter = (input.keyEscape = function () {
game.input.setState(inputState);
game.menuPopup._visible = false;
game.resumeAutomation();
Player.currentPlayer.resumeAI();
})));
var menuInputState = input.getState();
menuPopup.instructionsButton.onRelease = function () {
var instructions = game.menuPopup.createChildAtDepth("Tutorial", mx.managers.DepthManager.kTop);
instructions.doneButton.onRelease = (game.input.keySpace = (game.input.keyEnter = (game.input.keyEscape = function () {
game.input.setState(menuInputState);
instructions.removeMovieClip();
})));
};
menuPopup.settingsButton.onRelease = function () {
game.changePlayers();
};
menuPopup.restartButton.onRelease = function () {
game.input.setState(inputState);
game.menuPopup._visible = false;
game.resumeAutomation();
Player.currentPlayer.resumeAI();
game.player1.reset();
game.player2.reset();
game.startGame();
};
menuPopup.cmgButton.onRelease = function () {
_root.getURL("http://www.crazymonkeygames.com", "_blank");
};
menuPopup._visible = true;
pauseAutomation();
Player.currentPlayer.pauseAI();
var sliderLength = 150;
var sliderMin = ((-sliderLength) / 2);
menuPopup.animSlider._x = sliderMin + (sliderLength * ((gameInfo.animLength - 4) / 16));
menuPopup.compSlider._x = sliderMin + (sliderLength * ((gameInfo.AIThinkTime - 5) / 50));
var as = menuPopup.animSlider;
var _local4 = menuPopup.animArea;
as.onPress = (_local4.onPress = function () {
as.startDrag(true, sliderMin, as._y, sliderMin + sliderLength, as._y);
as.onEnterFrame = function () {
game.gameInfo.animLength = Math.round((((as._x - sliderMin) / sliderLength) * 16) + 4);
game.gameInfo.shuffleLength = Math.round(game.gameInfo.animLength / 4);
};
});
as.onRelease = (as.onReleaseOutside = (_local4.onRelease = (_local4.onReleaseOutside = function () {
as.stopDrag();
as.onEnterFrame = null;
})));
var cs = menuPopup.compSlider;
var _local3 = menuPopup.compArea;
cs.onPress = (_local3.onPress = function () {
cs.startDrag(true, sliderMin, cs._y, sliderMin + sliderLength, cs._y);
cs.onEnterFrame = function () {
game.gameInfo.AIThinkTime = Math.round((((cs._x - sliderMin) / sliderLength) * 50) + 5);
};
});
cs.onRelease = (cs.onReleaseOutside = (_local3.onRelease = (_local3.onReleaseOutside = function () {
cs.stopDrag();
cs.onEnterFrame = null;
})));
}
function endGame(loser, loserText) {
var game = this;
var inputState = input.getState();
newGamePopup.settingsButton.onRelease = function () {
game.changePlayers();
};
newGamePopup.restartButton.onRelease = (input.keySpace = (input.keyEnter = function () {
game.input.setState(inputState);
game.newGamePopup._visible = false;
game.resumeAutomation();
Player.currentPlayer.resumeAI();
game.player1.reset();
game.player2.reset();
game.startGame();
}));
newGamePopup.cmgButton.onRelease = function () {
_root.getURL("http://www.crazymonkeygames.com", "_blank");
};
newGamePopup.winnerLabel.text = loser.opponent.playerName + " wins!";
newGamePopup.loserLabel.text = loser.playerName + loserText;
newGamePopup._visible = true;
pauseAutomation();
Player.currentPlayer.pauseAI();
}
function readyCheck() {
if (Player.currentPlayer.computer) {
inputBlocker._visible = true;
Player.currentPlayer.newTurn();
return(undefined);
}
inputBlocker._visible = false;
var game = this;
var inputState = input.getState();
var ready = function () {
game.input.setState(inputState);
game.readyPopup._visible = false;
Player.currentPlayer.newTurn();
};
readyPopup.readyButton.onRelease = (input.keySpace = (input.keyEnter = function () {
ready();
}));
readyPopup.playerLabel.text = Player.currentPlayer.playerName + "'s turn";
readyPopup._visible = true;
}
function battle(attacker, defender) {
var game = this;
var inputState = input.getState();
battlePopup.doneFunc = function () {
game.input.setState(inputState);
game.battlePopup._visible = false;
Player.currentPlayer.resumeAI();
};
input.keySpace = (input.keyEnter = function () {
game.battlePopup.skip();
});
battlePopup._visible = true;
Player.currentPlayer.pauseAI();
battlePopup.battle(attacker, defender);
}
function onStartAnimating() {
var _local2 = this;
input.keyEnter = null;
inputBlocker._visible = true;
}
function onStopAnimating() {
var _local2 = this;
input.setState(defaultInput);
inputBlocker._visible = Player.currentPlayer.computer;
if (!started) {
started = true;
Player.currentPlayer = player1;
readyCheck();
}
}
function bringToTop(c) {
c.setDepthTo(mx.managers.DepthManager.kTop);
}
function sendToBottom(c) {
c.setDepthTo(mx.managers.DepthManager.kBottom);
}
function bringAbove(c1, c2) {
c1.setDepthAbove(c2);
}
function putBelow(c1, c2) {
c1.setDepthBelow(c2);
}
function addCard(cardName, player) {
var _local2 = cardLayer.createChildAtDepth("Card", mx.managers.DepthManager.kTop);
_local2.cardName = cardName;
_local2.owner = player;
_local2.init();
return(_local2);
}
function showCombatText(text) {
var ct = combatText;
ct.nameLabel.text = text;
ct._visible = true;
ct._alpha = 100;
ct.count = 0;
ct.onEnterFrame = function () {
ct.count++;
ct._alpha = ct._alpha - Math.min(ct._alpha, ct.count / 2);
if (ct._alpha <= 0) {
ct.onEnterFrame = null;
ct._visible = false;
}
};
}
function startBarrier(turns) {
if ((turns <= barrierTime) || (turns < 1)) {
return(false);
}
barrierTime = turns;
divider.barrier.gotoAndPlay("Up");
anim.addFunction(anim.endTime() + 20, function () {
});
return(true);
}
function barrierTick() {
if (barrierTime <= 0) {
return(undefined);
}
barrierTime--;
if (barrierTime <= 0) {
divider.barrier.gotoAndPlay("Down");
}
}
function spawnVisual(linkageName) {
return(createChildAtDepth(linkageName, mx.managers.DepthManager.kTop));
}
var automationPaused = false;
}
Symbol 590 MovieClip [__Packages.BattlePopup] Frame 0
class BattlePopup extends MovieClip
{
var attackerBlurb, scroller, defenderBlurb, automationPaused, attacker, defender, attackerDisplay, defenderDisplay, attackLabel, defenseLabel, attack, defense, counter, onEnterFrame, doneFunc;
function BattlePopup () {
super();
attackerBlurb = scroller.attackerBlurb;
defenderBlurb = scroller.defenderBlurb;
attackerBlurb.autoSize = "center";
defenderBlurb.autoSize = "center";
}
function battle(Attacker, Defender) {
automationPaused = false;
attacker = Attacker;
defender = Defender;
if (attackerDisplay != null) {
attackerDisplay.removeMovieClip();
}
if (defenderDisplay != null) {
defenderDisplay.removeMovieClip();
}
attackerDisplay = scroller.createChildAtDepth("Card", mx.managers.DepthManager.kTopmost, {_x:-120, _y:Card.HEIGHT / 2});
defenderDisplay = scroller.createChildAtDepth("Card", mx.managers.DepthManager.kTopmost, {_x:120, _y:Card.HEIGHT / 2});
setupCard(attackerDisplay, attacker);
setupCard(defenderDisplay, defender);
attackLabel.text = "" + Math.max(0, attackerDisplay.attack);
defenseLabel.text = "" + Math.max(0, defenderDisplay.defense);
positionBlurbs();
scroller._y = Math.floor(((-Card.HEIGHT) / 2) - ((scroller._height - Card.HEIGHT) / 4));
attack = attackerDisplay.attack;
defense = defenderDisplay.defense;
counter = 0;
onEnterFrame = sequence;
}
function positionBlurbs() {
attackerBlurb.text = attacker.blurb;
if (attacker.blurb == "") {
attackerBlurb._y = 0;
} else {
Math.floor((attackerBlurb._y = ((attackerDisplay._y + attackerDisplay.effectsLayer._y) + attackerDisplay.effectsLayer._height) - 2));
if (attacker.effects.length > 0) {
attackerBlurb._y = attackerBlurb._y - 1;
}
}
defenderBlurb.text = defender.blurb;
if (defender.blurb == "") {
defenderBlurb._y = 0;
} else {
Math.floor((defenderBlurb._y = ((defenderDisplay._y + defenderDisplay.effectsLayer._y) + defenderDisplay.effectsLayer._height) - 2));
if (defender.effects.length > 0) {
defenderBlurb._y = defenderBlurb._y - 1;
}
}
}
function setupCard(to, from) {
to.cardName = from.cardName;
to.init();
to.setFlipped(true);
to.setUsable(from.isUsable());
to.setActive(false);
to.setInPlay(true);
to.disableMouseover();
to.attack = from.attack;
to.defense = from.defense;
to.health = from.health;
to.healthBar.gotoAndStop(from.healthBar._currentframe);
to.updateOverlay();
var _local2 = 0;
while (_local2 < from.effects.length) {
var _local3 = from.effects[_local2];
to.effects.push(to.effectsLayer.createChildAtDepth("Effect", mx.managers.DepthManager.kTopmost, {effectName:_local3.effectName, card:null, stack:_local3.stack}));
to.effects[_local2].apply();
to.effects[_local2].card = to;
_local2++;
}
to.arrangeEffects();
to.effectsLayer._visible = true;
to.effectsLayer._y = to.effectsLayer._y + 5;
}
function sequence() {
if (automationPaused) {
return(undefined);
}
counter++;
if ((counter > RANDOM_TIME) and (counter < DAMAGE_TIME)) {
randomNumbers();
}
if (counter == DAMAGE_TIME) {
doDamage();
}
if (counter > FINISH_TIME) {
finish();
}
}
function skip() {
if (counter < DAMAGE_TIME) {
doDamage();
counter = DAMAGE_TIME;
return(undefined);
}
finish();
}
function pauseAutomation() {
automationPaused = true;
}
function resumeAutomation() {
automationPaused = false;
}
function randomNumbers() {
if (attackerDisplay.attack > 0) {
var _local3 = attack;
while (_local3 == attack) {
attack = Math.floor(Math.random() * (attackerDisplay.attack + 1));
}
attackLabel.text = "" + attack;
}
if (defenderDisplay.defense > 0) {
var _local2 = defense;
while (_local2 == defense) {
defense = Math.floor(Math.random() * (defenderDisplay.defense + 1));
}
defenseLabel.text = "" + defense;
}
}
function doDamage() {
attack = Math.max(0, Math.floor(Math.random() * (attackerDisplay.attack + 1)));
defense = Math.max(0, Math.floor(Math.random() * (defenderDisplay.defense + 1)));
attackLabel.text = "" + attack;
defenseLabel.text = "" + defense;
if (attack > defense) {
var _local2 = Math.min(attack - defense, defender.health);
attackerDisplay.onDamageDone(defenderDisplay, _local2);
defenderDisplay.overlay.healthBar.explode(_local2);
defenderDisplay.health = defenderDisplay.health - _local2;
defenderDisplay.updateOverlay();
} else if ((defense > attack) && (!attacker.noRetaliation)) {
var _local2 = Math.min(defense - attack, attacker.health);
defenderDisplay.onDamageDone(attackerDisplay, _local2);
attackerDisplay.overlay.healthBar.explode(_local2);
attackerDisplay.health = attackerDisplay.health - _local2;
attackerDisplay.updateOverlay();
}
positionBlurbs();
}
function finish() {
onEnterFrame = null;
if (attack > defense) {
var _local2 = Math.min(attack - defense, defender.health);
attacker.onDamageDone(defender, _local2);
defender.damage(_local2);
} else if ((defense > attack) && (!attacker.noRetaliation)) {
var _local2 = Math.min(defense - attack, attacker.health);
defender.onDamageDone(attacker, _local2);
attacker.damage(_local2);
}
attackerDisplay.removeMovieClip();
defenderDisplay.removeMovieClip();
doneFunc();
}
static var RANDOM_TIME = 20;
static var DAMAGE_TIME = 50;
static var FINISH_TIME = 100;
}
Symbol 591 MovieClip [__Packages.CardPicker] Frame 0
class CardPicker extends MovieClip
{
var cardInfo, strengthLabel, limitLabel, card, createChildAtDepth, leftButton, rightButton, countLabel;
function CardPicker () {
super();
}
function onLoad() {
var picker = this;
strengthLabel.text = "Value: " + cardInfo.card.cost;
limitLabel.text = "Limit: " + cardInfo.card.limit;
updateText();
card = createChildAtDepth("Card", mx.managers.DepthManager.kTop);
card.cardName = cardInfo.card.cardName;
card.init();
card.setFlipped(true);
card.setUsable(true);
card.setActive(false);
card.setInPlay(false);
card.useHandCursor = true;
card.cardBack.cacheAsBitmap = false;
leftButton.onRelease = function () {
picker.deckCreator.decrease(picker.cardInfo);
picker.updateText();
};
card.onRelease = (rightButton.onRelease = function () {
picker.deckCreator.increase(picker.cardInfo);
picker.updateText();
});
}
function updateText() {
countLabel.text = cardInfo.count;
}
}
Symbol 592 MovieClip [__Packages.DeckCreator] Frame 0
class DeckCreator extends MovieClip
{
var inputBlocker, cardCountPopup, counts, scroller, pickers, sliderMin, sliderMax, scrollHeight, slider, sliderArea, okButton, backButton, clearButton, fillButton, input, player, gameInfo, nameLabel, _ymouse, _xmouse, localToGlobal, countLabel, strengthLabel;
function DeckCreator () {
super();
}
function onLoad() {
Mouse.addListener(this);
inputBlocker.useHandCursor = false;
inputBlocker._visible = false;
cardCountPopup._visible = false;
counts = new Array();
var _local2 = 0;
while (_local2 < Card.monsterList.length) {
counts.push({count:0, card:Card.monsterList[_local2]});
_local2++;
}
_local2 = 0;
while (_local2 < Card.magicList.length) {
counts.push({count:0, card:Card.magicList[_local2]});
_local2++;
}
fillCounts();
var _local11 = new flash.geom.Rectangle(0, 0, scroller._width, scroller._height);
scroller.scrollRect = _local11;
pickers = new Array();
var _local4 = 0;
var _local3 = 0;
_local2 = 0;
while (_local2 < counts.length) {
pickers.push(scroller.createChildAtDepth("CardPicker", mx.managers.DepthManager.kTop, {_x:50 + (100 * _local3), _y:70 + (_local4 * 165), cardInfo:counts[_local2], deckCreator:this}));
_local3++;
if ((_local3 > 6) || (_local2 == (Card.monsterList.length - 1))) {
_local3 = 0;
_local4++;
}
_local2++;
}
scroller.bg._height = Math.max(_local11.height, scroller._height + 30);
sliderMin = -190;
sliderMax = 190;
scrollHeight = scroller._height - _local11.height;
scroller.cacheAsBitmap = true;
var screen = this;
var s = slider;
s.onPress = function () {
s.startDrag(true, s._x, screen.sliderMin, s._x, screen.sliderMax);
s.onEnterFrame = function () {
screen.updateScroller();
};
};
s.onRelease = (s.onReleaseOutside = function () {
s.stopDrag();
s.onEnterFrame = null;
});
sliderArea.onPress = function () {
s.onPress();
};
sliderArea.onRelease = function () {
s.onRelease();
};
sliderArea.onReleaseOutside = function () {
s.onRelease();
};
okButton.onRelease = function () {
if (screen.cardCount < 40) {
screen.cardCountError();
} else {
screen.writeArray();
screen.input.clear();
screen.doneFunc();
screen.removeMovieClip();
}
};
backButton.onRelease = function () {
screen.input.clear();
screen.cancelFunc();
screen.removeMovieClip();
};
clearButton.onRelease = function () {
screen.clearCounts();
};
fillButton.onRelease = function () {
screen.randomCounts();
};
input.keyEnter = function () {
screen.okButton.onRelease();
};
input.keyEscape = function () {
screen.backButton.onRelease();
};
if (gameInfo.computer[player]) {
nameLabel.text = "Create deck for " + gameInfo.playerName[player];
} else {
nameLabel.text = gameInfo.playerName[player] + ", create your deck";
}
updateLabels();
}
function writeArray() {
gameInfo.deckList[player] = new Array();
var _local4 = gameInfo.deckList[player];
var _local3 = 0;
while (_local3 < counts.length) {
var _local2 = 0;
while (_local2 < counts[_local3].count) {
_local4.push(counts[_local3].card.cardName);
_local2++;
}
_local3++;
}
}
function fillCounts() {
var _local4 = gameInfo.deckList[player];
if (_local4 == null) {
return(undefined);
}
var _local3 = 0;
while (_local3 < _local4.length) {
var _local2 = 0;
while (_local2 < counts.length) {
if (counts[_local2].card.cardName == _local4[_local3]) {
counts[_local2].count++;
cardCount++;
strength = strength + counts[_local2].card.cost;
}
_local2++;
}
_local3++;
}
}
function clearCounts() {
var _local2 = 0;
while (_local2 < counts.length) {
counts[_local2].count = 0;
pickers[_local2].updateText();
_local2++;
}
cardCount = 0;
strength = 0;
updateLabels();
}
function randomCounts() {
var _local4 = new Array();
var _local2 = 0;
while (_local2 < counts.length) {
var _local3 = counts[_local2].count;
while (_local3 < counts[_local2].card.limit) {
_local4.push(_local2);
_local3++;
}
_local2++;
}
while (cardCount < 40) {
cardCount++;
var _local6 = Math.floor(Math.random() * _local4.length);
var _local5 = _local4[_local6];
counts[_local5].count++;
strength = strength + counts[_local5].card.cost;
pickers[_local5].updateText();
_local4.splice(_local6, 1);
}
updateLabels();
}
function updateScroller() {
var _local3 = (slider._y - sliderMin) / (sliderMax - sliderMin);
var _local2 = scroller.scrollRect;
_local2.y = _local3 * scrollHeight;
scroller.scrollRect = _local2;
}
function onMouseWheel(delta) {
var _local3 = {x:_xmouse, y:_ymouse};
localToGlobal(_local3);
if (!scroller.hitTest(_local3.x, _local3.y, false)) {
return(undefined);
}
var _local2 = scroller.scrollRect;
_local2.y = Math.min(scrollHeight, Math.max(0, _local2.y - (delta * 5)));
var _local4 = _local2.y / scrollHeight;
slider._y = sliderMin + ((sliderMax - sliderMin) * _local4);
scroller.scrollRect = _local2;
}
function increase(cardInfo) {
if ((cardCount < 40) && (cardInfo.count < cardInfo.card.limit)) {
cardInfo.count++;
cardCount++;
strength = strength + cardInfo.card.cost;
updateLabels();
}
}
function decrease(cardInfo) {
if ((cardCount > 0) && (cardInfo.count > 0)) {
cardInfo.count--;
cardCount--;
strength = strength - cardInfo.card.cost;
updateLabels();
}
}
function updateLabels() {
countLabel.text = ("Cards: " + cardCount) + "/40";
strengthLabel.text = "Deck Strength: " + strength;
}
function cardCountError() {
inputBlocker._visible = true;
cardCountPopup._visible = true;
var creator = this;
var inputState = input.saveState();
var closeCardCountError = function () {
creator.inputBlocker._visible = false;
creator.cardCountPopup._visible = false;
creator.input.loadState(inputState);
};
cardCountPopup.okButton.onRelease = (input.keySpace = (input.keyEnter = (input.keyEscape = function () {
closeCardCountError();
})));
}
var doneFunc = null;
var cancelFunc = null;
var cardCount = 0;
var strength = 0;
}
Symbol 593 MovieClip [__Packages.PlayerSelect] Frame 0
class PlayerSelect extends MovieClip
{
var p1Avatar, createChildAtDepth, p2Avatar, nameLabel, p1NameLabel, p2NameLabel, avatar, deckStrengthLabel, p1DeckStrengthLabel, p2DeckStrengthLabel, deckSlider, p1DeckSlider, p2DeckSlider, deckSliderArea, p1DeckSliderArea, p2DeckSliderArea, customDeckButton, p1CustomDeckButton, p2CustomDeckButton, sliderMin, p1Left, p1Right, p2Left, p2Right, p1ComputerButton, p1PlayerButton, p2ComputerButton, p2PlayerButton, gameInfo, okButton, input;
function PlayerSelect () {
super();
}
function onLoad() {
var selectScreen = this;
p1Avatar = createChildAtDepth("Avatar", mx.managers.DepthManager.kTop, {_x:-190, _y:0, _xscale:175, _yscale:175});
p2Avatar = createChildAtDepth("Avatar", mx.managers.DepthManager.kTop, {_x:190, _y:0, _xscale:175, _yscale:175});
nameLabel = new Array(p1NameLabel, p2NameLabel);
avatar = new Array(p1Avatar, p2Avatar);
deckStrengthLabel = new Array(p1DeckStrengthLabel, p2DeckStrengthLabel);
deckSlider = new Array(p1DeckSlider, p2DeckSlider);
deckSliderArea = new Array(p1DeckSliderArea, p2DeckSliderArea);
customDeckButton = new Array(p1CustomDeckButton, p2CustomDeckButton);
sliderMin = new Array(-290, 90);
p1Left.onRelease = function () {
selectScreen.setAvatar(0, selectScreen.p1Avatar._currentframe - 1);
};
p1Right.onRelease = function () {
selectScreen.setAvatar(0, selectScreen.p1Avatar._currentframe + 1);
};
p2Left.onRelease = function () {
selectScreen.setAvatar(1, selectScreen.p2Avatar._currentframe - 1);
};
p2Right.onRelease = function () {
selectScreen.setAvatar(1, selectScreen.p2Avatar._currentframe + 1);
};
p1ComputerButton.onRelease = function () {
selectScreen.setController(0, true);
};
p1PlayerButton.onRelease = function () {
selectScreen.setController(0, false);
};
p2ComputerButton.onRelease = function () {
selectScreen.setController(1, true);
};
p2PlayerButton.onRelease = function () {
selectScreen.setController(1, false);
};
updateNameLabel(0);
updateNameLabel(1);
setName(0, gameInfo.playerName[0]);
setName(1, gameInfo.playerName[1]);
setAvatar(0, gameInfo.avatar[0]);
setAvatar(1, gameInfo.avatar[1]);
setupDeckControls(0);
setupDeckControls(1);
okButton.onRelease = function () {
selectScreen.gameInfo.playerName[0] = selectScreen.nameLabel[0].text;
selectScreen.gameInfo.playerName[1] = selectScreen.nameLabel[1].text;
selectScreen.input.clear();
selectScreen.doneFunc();
selectScreen.removeMovieClip();
};
}
function setupDeckControls(i) {
var selectScreen = this;
var s = deckSlider[i];
updateDeckSlider(i);
deckSlider[i].onPress = function () {
s.startDrag(true, selectScreen.sliderMin[i], s._y, selectScreen.sliderMin[i] + PlayerSelect.SLIDER_WIDTH, s._y);
s.onEnterFrame = function () {
selectScreen.updateDeckStrength(i);
};
};
deckSlider[i].onRelease = (deckSlider[i].onReleaseOutside = function () {
s.stopDrag();
selectScreen.updateDeckStrength(i);
s.onEnterFrame = null;
});
deckSliderArea[i].onPress = function () {
s.onPress();
};
deckSliderArea[i].onRelease = function () {
s.onRelease();
};
deckSliderArea[i].onReleaseOutside = function () {
s.onRelease();
};
customDeckButton[i].onRelease = function () {
selectScreen.customDeck(i);
};
}
function updateDeckSlider(player) {
if (gameInfo.deckStrength[player] == "Custom") {
deckSlider[player]._visible = false;
} else {
deckSlider[player]._visible = true;
deckSlider[player]._x = sliderMin[player] + ((SLIDER_WIDTH * (gameInfo.deckStrength[player] - MIN_DECK_STRENGTH)) / (MAX_DECK_STRENGTH - MIN_DECK_STRENGTH));
}
deckStrengthLabel[player].text = gameInfo.deckStrength[player];
}
function updateDeckStrength(player) {
gameInfo.deckStrength[player] = MIN_DECK_STRENGTH + (100 * Math.floor((((deckSlider[player]._x - sliderMin[player]) / SLIDER_WIDTH) * (MAX_DECK_STRENGTH - MIN_DECK_STRENGTH)) / 100));
deckStrengthLabel[player].text = gameInfo.deckStrength[player];
deckSlider[player]._visible = true;
}
function customDeck(player) {
var oldStrength = gameInfo.deckStrength[player];
gameInfo.deckStrength[player] = "Custom";
deckStrengthLabel[player].text = gameInfo.deckStrength[player];
deckSlider[player]._visible = false;
var inputState = input.getState();
input.clear();
var playerSelect = this;
var _local2 = createChildAtDepth("DeckCreator", mx.managers.DepthManager.kTop, {player:player, gameInfo:gameInfo, input:input});
_local2.doneFunc = function () {
playerSelect.input.setState(inputState);
};
_local2.cancelFunc = function () {
playerSelect.input.setState(inputState);
playerSelect.gameInfo.deckStrength[player] = oldStrength;
playerSelect.updateDeckStrength(player);
};
}
function setName(player, n) {
gameInfo.playerName[player] = n;
nameLabel[player].text = gameInfo.playerName[player];
}
function setAvatar(player, f) {
gameInfo.avatar[player] = f;
avatar[player].gotoAndStop(f);
}
function setController(player, computer) {
gameInfo.computer[player] = computer;
if (computer) {
setName(player, "Computer");
setAvatar(player, "Computer");
} else {
setName(player, "Player " + (player + 1));
setAvatar(player, "Player");
if (avatar[0]._currentframe == avatar[1]._currentframe) {
setAvatar(player, avatar[player]._currentframe + 1);
}
}
updateNameLabel(player);
}
function updateNameLabel(player) {
nameLabel[player].selectable = !gameInfo.computer[player];
if (gameInfo.computer[player]) {
nameLabel[player].textColor = 10066329 /* 0x999999 */;
} else {
nameLabel[player].textColor = 16777215 /* 0xFFFFFF */;
}
}
static var MAX_DECK_STRENGTH = 2500;
static var MIN_DECK_STRENGTH = 1500;
static var SLIDER_WIDTH = 200;
}
Symbol 594 MovieClip [__Packages.Tutorial] Frame 0
class Tutorial extends MovieClip
{
var slideViewer, navHighlight;
function Tutorial () {
super();
}
function onLoad() {
slideViewer.slide1.cacheAsBitmap = true;
slideViewer.slide2.cacheAsBitmap = true;
slideViewer.slide3.cacheAsBitmap = true;
slideViewer.slide4.cacheAsBitmap = true;
var _local2 = new flash.geom.Rectangle(0, 0, 800, 600);
slideViewer.scrollRect = _local2;
moveTo(1);
}
function moveTo(slide) {
var _local2 = slideViewer.scrollRect;
_local2.x = (slide - 1) * _local2.width;
slideViewer.scrollRect = _local2;
slideViewer.slide4.gotoAndStop(1);
navHighlight._y = -310 + (30 * slide);
navHighlight.gotoAndPlay(1);
}
static var WIDTH = 800;
static var FADE_TIME = 1;
}
Symbol 595 MovieClip [__Packages.AnimationHandler] Frame 0
class AnimationHandler extends MovieClip
{
var registered, animations, functions, animating, animationPaused, onEnterFrame;
function AnimationHandler () {
super();
registered = new Array();
animations = new Array();
functions = new Array();
animating = false;
animationPaused = false;
}
function addListener(listener) {
registered.push(listener);
}
function removeListener(listener) {
var _local2 = 0;
while (_local2 < registered.length) {
if (registered[_local2] == listener) {
registered.splice(_local2, 1);
_local2--;
}
_local2++;
}
}
function startAnimating() {
if (!animating) {
animating = true;
onEnterFrame = update;
var _local2 = 0;
while (_local2 < registered.length) {
registered[_local2].onStartAnimating();
_local2++;
}
}
}
function stopAnimating() {
if (animating) {
animating = false;
onEnterFrame = null;
var _local2 = 0;
while (_local2 < registered.length) {
registered[_local2].onStopAnimating();
_local2++;
}
}
}
function pauseAnimation() {
animationPaused = true;
}
function resumeAnimation() {
animationPaused = false;
}
function update() {
if (animationPaused) {
return(undefined);
}
var _local2 = animations.length - 1;
while (_local2 >= 0) {
animations[_local2].animate();
if (animations[_local2].finished) {
removeAnim(_local2);
}
_local2--;
}
_local2 = functions.length - 1;
while (_local2 >= 0) {
functions[_local2].delay--;
if (functions[_local2].delay <= 0) {
functions[_local2].func();
removeFunction(_local2);
}
_local2--;
}
}
function skip() {
if (animationPaused) {
return(undefined);
}
while ((animations.length > 0) || (functions.length > 0)) {
var _local2 = -1;
var _local3 = -1;
var _local4 = 0;
while (_local4 < animations.length) {
if (_local2 == -1) {
_local2 = _local4;
} else if ((animations[_local4].delay + animations[_local4].frames) < (animations[_local2].delay + animations[_local2].frames)) {
_local2 = _local4;
}
_local4++;
}
_local4 = 0;
while (_local4 < functions.length) {
if (_local3 == -1) {
_local3 = _local4;
} else if (functions[_local4].delay < functions[_local3].delay) {
_local3 = _local4;
}
_local4++;
}
if (_local2 < 0) {
functions[_local3].func();
removeFunction(_local3);
} else if (_local3 < 0) {
animations[_local2].skip();
removeAnim(_local2);
} else if ((animations[_local2].delay + animations[_local2].frames) < functions[_local3].delay) {
animations[_local2].skip();
removeAnim(_local2);
} else {
functions[_local3].func();
removeFunction(_local3);
}
}
}
function addAnim(a) {
animations.push(a);
startAnimating();
}
function removeAnim(index) {
animations.splice(index, 1);
if ((animations.length < 1) && (functions.length < 1)) {
stopAnimating();
}
}
function addFunction(func, delay) {
functions.push(new Object({delay:delay, func:func}));
startAnimating();
}
function removeFunction(index) {
functions.splice(index, 1);
if ((animations.length < 1) && (functions.length < 1)) {
stopAnimating();
}
}
function endTime() {
var _local3 = 0;
var _local2 = 0;
while (_local2 < animations.length) {
var _local4 = animations[_local2].delay + animations[_local2].frames;
if (_local4 > _local3) {
_local3 = _local4;
}
_local2++;
}
_local2 = 0;
while (_local2 < functions.length) {
if (functions[_local2].delay > _local3) {
_local3 = functions[_local2].delay;
}
_local2++;
}
return(_local3);
}
}
Symbol 406 MovieClip [__Packages.mx.core.UIComponent] Frame 0
class mx.core.UIComponent extends mx.core.UIObject
{
var __width, __height, invalidate, stylecache, removeEventListener, dispatchEvent, drawFocus, addEventListener, _xscale, _yscale, _focusrect, watch, enabled;
function UIComponent () {
super();
}
function get width() {
return(__width);
}
function get height() {
return(__height);
}
function setVisible(x, noEvent) {
super.setVisible(x, noEvent);
}
function enabledChanged(id, oldValue, newValue) {
setEnabled(newValue);
invalidate();
delete stylecache.tf;
return(newValue);
}
function setEnabled(enabled) {
invalidate();
}
function getFocus() {
var selFocus = Selection.getFocus();
return(((selFocus === null) ? null : (eval (selFocus))));
}
function setFocus() {
Selection.setFocus(this);
}
function getFocusManager() {
var _local2 = this;
while (_local2 != undefined) {
if (_local2.focusManager != undefined) {
return(_local2.focusManager);
}
_local2 = _local2._parent;
}
return(undefined);
}
function onKillFocus(newFocus) {
removeEventListener("keyDown", this);
removeEventListener("keyUp", this);
dispatchEvent({type:"focusOut"});
drawFocus(false);
}
function onSetFocus(oldFocus) {
addEventListener("keyDown", this);
addEventListener("keyUp", this);
dispatchEvent({type:"focusIn"});
if (getFocusManager().bDrawFocus != false) {
drawFocus(true);
}
}
function findFocusInChildren(o) {
if (o.focusTextField != undefined) {
return(o.focusTextField);
}
if (o.tabEnabled == true) {
return(o);
}
return(undefined);
}
function findFocusFromObject(o) {
if (o.tabEnabled != true) {
if (o._parent == undefined) {
return(undefined);
}
if (o._parent.tabEnabled == true) {
o = o._parent;
} else if (o._parent.tabChildren) {
o = findFocusInChildren(o._parent);
} else {
o = findFocusFromObject(o._parent);
}
}
return(o);
}
function pressFocus() {
var _local3 = findFocusFromObject(this);
var _local2 = getFocus();
if (_local3 != _local2) {
_local2.drawFocus(false);
if (getFocusManager().bDrawFocus != false) {
_local3.drawFocus(true);
}
}
}
function releaseFocus() {
var _local2 = findFocusFromObject(this);
if (_local2 != getFocus()) {
_local2.setFocus();
}
}
function isParent(o) {
while (o != undefined) {
if (o == this) {
return(true);
}
o = o._parent;
}
return(false);
}
function size() {
}
function init() {
super.init();
_xscale = 100;
_yscale = 100;
_focusrect = _global.useFocusRect == false;
watch("enabled", enabledChanged);
if (enabled == false) {
setEnabled(false);
}
}
function dispatchValueChangedEvent(value) {
dispatchEvent({type:"valueChanged", value:value});
}
static var symbolName = "UIComponent";
static var symbolOwner = mx.core.UIComponent;
static var version = "2.0.2.126";
static var kStretch = 5000;
var focusEnabled = true;
var tabEnabled = true;
var origBorderStyles = {themeColor:16711680};
var clipParameters = {};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.core.UIComponent.prototype.clipParameters, mx.core.UIObject.prototype.clipParameters);
}
Symbol 407 MovieClip [__Packages.mx.controls.SimpleButton] Frame 0
class mx.controls.SimpleButton extends mx.core.UIComponent
{
static var emphasizedStyleDeclaration;
var preset, boundingBox_mc, useHandCursor, skinName, linkLength, iconName, destroyObject, __width, _width, __height, _height, __emphaticStyleName, styleName, enabled, invalidate, pressFocus, dispatchEvent, autoRepeat, interval, getStyle, releaseFocus, createLabel, invalidateStyle;
function SimpleButton () {
super();
}
function init(Void) {
super.init();
if (preset == undefined) {
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
useHandCursor = false;
}
function createChildren(Void) {
if (preset != undefined) {
var _local2 = this[idNames[preset]];
this[refNames[preset]] = _local2;
skinName = _local2;
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
}
initializing = false;
} else if (__state == true) {
setStateVar(true);
} else {
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
}
}
}
function setIcon(tag, linkageName) {
return(setSkin(tag + 8, linkageName));
}
function changeIcon(tag, linkageName) {
linkLength = linkageName.length;
var _local2 = stateNames[tag] + "Icon";
this[_local2] = linkageName;
this[idNames[tag + 8]] = _local2;
setStateVar(getState());
}
function changeSkin(tag, linkageName) {
var _local2 = stateNames[tag] + "Skin";
this[_local2] = linkageName;
this[idNames[tag]] = _local2;
setStateVar(getState());
}
function viewIcon(varName) {
var _local4 = varName + "Icon";
var _local3 = this[_local4];
if (typeof(_local3) == "string") {
var _local5 = _local3;
if (__emphasized) {
if (this[_local3 + "Emphasized"].length > 0) {
_local3 = _local3 + "Emphasized";
}
}
if (this[_local3].length == 0) {
return(undefined);
}
_local3 = setIcon(tagMap[_local5], this[_local3]);
if ((_local3 == undefined) && (_global.isLivePreview)) {
_local3 = setIcon(0, "ButtonIcon");
}
this[_local4] = _local3;
}
iconName._visible = false;
iconName = _local3;
iconName._visible = true;
}
function removeIcons() {
var _local3 = 0;
while (_local3 < 2) {
var _local2 = 8;
while (_local2 < 16) {
destroyObject(idNames[_local2]);
this[stateNames[_local2 - 8] + "Icon"] = "";
_local2++;
}
_local3++;
}
refresh();
}
function setSkin(tag, linkageName, initobj) {
var _local3 = super.setSkin(tag, linkageName, ((initobj != undefined) ? (initobj) : ({styleName:this})));
calcSize(tag, _local3);
return(_local3);
}
function calcSize(Void) {
__width = _width;
__height = _height;
}
function viewSkin(varName, initObj) {
var _local3 = varName + "Skin";
var _local2 = this[_local3];
if (typeof(_local2) == "string") {
var _local4 = _local2;
if (__emphasized) {
if (this[_local2 + "Emphasized"].length > 0) {
_local2 = _local2 + "Emphasized";
}
}
if (this[_local2].length == 0) {
return(undefined);
}
_local2 = setSkin(tagMap[_local4], this[_local2], ((initObj != undefined) ? (initObj) : ({styleName:this})));
this[_local3] = _local2;
}
skinName._visible = false;
skinName = _local2;
skinName._visible = true;
}
function showEmphasized(e) {
if (e && (!__emphatic)) {
if (emphasizedStyleDeclaration != undefined) {
__emphaticStyleName = styleName;
styleName = emphasizedStyleDeclaration;
}
__emphatic = true;
} else {
if (__emphatic) {
styleName = __emphaticStyleName;
}
__emphatic = false;
}
}
function refresh(Void) {
var _local2 = getState();
if (enabled == false) {
viewIcon("disabled");
viewSkin("disabled");
} else {
viewSkin(phase);
viewIcon(phase);
}
setView(phase == "down");
iconName.enabled = enabled;
}
function setView(offset) {
if (iconName == undefined) {
return(undefined);
}
var _local2 = (offset ? (btnOffset) : 0);
iconName._x = ((__width - iconName._width) / 2) + _local2;
iconName._y = ((__height - iconName._height) / 2) + _local2;
}
function setStateVar(state) {
if (state) {
if (trueOverSkin.length == 0) {
rolloverSkin = tus;
} else {
rolloverSkin = trs;
}
if (trueOverIcon.length == 0) {
rolloverIcon = tui;
} else {
rolloverIcon = tri;
}
upSkin = tus;
downSkin = tds;
disabledSkin = dts;
upIcon = tui;
downIcon = tdi;
disabledIcon = dti;
} else {
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
} else {
rolloverSkin = frs;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
} else {
rolloverIcon = fri;
}
upSkin = fus;
downSkin = fds;
disabledSkin = dfs;
upIcon = fui;
downIcon = fdi;
disabledIcon = dfi;
}
__state = state;
}
function setState(state) {
if (state != __state) {
setStateVar(state);
invalidate();
}
}
function size(Void) {
refresh();
}
function draw(Void) {
if (initializing) {
initializing = false;
skinName.visible = true;
iconName.visible = true;
}
size();
}
function getState(Void) {
return(__state);
}
function setToggle(val) {
__toggle = val;
if (__toggle == false) {
setState(false);
}
}
function getToggle(Void) {
return(__toggle);
}
function set toggle(val) {
setToggle(val);
//return(toggle);
}
function get toggle() {
return(getToggle());
}
function set value(val) {
setSelected(val);
//return(value);
}
function get value() {
return(getSelected());
}
function set selected(val) {
setSelected(val);
//return(selected);
}
function get selected() {
return(getSelected());
}
function setSelected(val) {
if (__toggle) {
setState(val);
} else {
setState((initializing ? (val) : (__state)));
}
}
function getSelected() {
return(__state);
}
function setEnabled(val) {
if (enabled != val) {
super.setEnabled(val);
invalidate();
}
}
function onPress(Void) {
pressFocus();
phase = "down";
refresh();
dispatchEvent({type:"buttonDown"});
if (autoRepeat) {
interval = setInterval(this, "onPressDelay", getStyle("repeatDelay"));
}
}
function onPressDelay(Void) {
dispatchEvent({type:"buttonDown"});
if (autoRepeat) {
clearInterval(interval);
interval = setInterval(this, "onPressRepeat", getStyle("repeatInterval"));
}
}
function onPressRepeat(Void) {
dispatchEvent({type:"buttonDown"});
updateAfterEvent();
}
function onRelease(Void) {
releaseFocus();
phase = "rollover";
if (interval != undefined) {
clearInterval(interval);
delete interval;
}
if (getToggle()) {
setState(!getState());
} else {
refresh();
}
dispatchEvent({type:"click"});
}
function onDragOut(Void) {
phase = "up";
refresh();
dispatchEvent({type:"buttonDragOut"});
}
function onDragOver(Void) {
if (phase != "up") {
onPress();
return(undefined);
}
phase = "down";
refresh();
}
function onReleaseOutside(Void) {
releaseFocus();
phase = "up";
if (interval != undefined) {
clearInterval(interval);
delete interval;
}
}
function onRollOver(Void) {
phase = "rollover";
refresh();
}
function onRollOut(Void) {
phase = "up";
refresh();
}
function getLabel(Void) {
return(fui.text);
}
function setLabel(val) {
if (typeof(fui) == "string") {
createLabel("fui", 8, val);
fui.styleName = this;
} else {
fui.text = val;
}
var _local4 = fui._getTextFormat();
var _local2 = _local4.getTextExtent2(val);
fui._width = _local2.width + 5;
fui._height = _local2.height + 5;
iconName = fui;
setView(__state);
}
function get emphasized() {
return(__emphasized);
}
function set emphasized(val) {
__emphasized = val;
var _local2 = 0;
while (_local2 < 8) {
this[idNames[_local2]] = stateNames[_local2] + "Skin";
if (typeof(this[idNames[_local2 + 8]]) == "movieclip") {
this[idNames[_local2 + 8]] = stateNames[_local2] + "Icon";
}
_local2++;
}
showEmphasized(__emphasized);
setStateVar(__state);
invalidateStyle();
//return(emphasized);
}
function keyDown(e) {
if (e.code == 32) {
onPress();
}
}
function keyUp(e) {
if (e.code == 32) {
onRelease();
}
}
function onKillFocus(newFocus) {
super.onKillFocus();
if (phase != "up") {
phase = "up";
refresh();
}
}
static var symbolName = "SimpleButton";
static var symbolOwner = mx.controls.SimpleButton;
static var version = "2.0.2.126";
var className = "SimpleButton";
var style3dInset = 4;
var btnOffset = 1;
var __toggle = false;
var __state = false;
var __emphasized = false;
var __emphatic = false;
static var falseUp = 0;
static var falseDown = 1;
static var falseOver = 2;
static var falseDisabled = 3;
static var trueUp = 4;
static var trueDown = 5;
static var trueOver = 6;
static var trueDisabled = 7;
var falseUpSkin = "SimpleButtonUp";
var falseDownSkin = "SimpleButtonIn";
var falseOverSkin = "";
var falseDisabledSkin = "SimpleButtonUp";
var trueUpSkin = "SimpleButtonIn";
var trueDownSkin = "";
var trueOverSkin = "";
var trueDisabledSkin = "SimpleButtonIn";
var falseUpIcon = "";
var falseDownIcon = "";
var falseOverIcon = "";
var falseDisabledIcon = "";
var trueUpIcon = "";
var trueDownIcon = "";
var trueOverIcon = "";
var trueDisabledIcon = "";
var phase = "up";
var fui = "falseUpIcon";
var fus = "falseUpSkin";
var fdi = "falseDownIcon";
var fds = "falseDownSkin";
var frs = "falseOverSkin";
var fri = "falseOverIcon";
var dfi = "falseDisabledIcon";
var dfs = "falseDisabledSkin";
var tui = "trueUpIcon";
var tus = "trueUpSkin";
var tdi = "trueDownIcon";
var tds = "trueDownSkin";
var trs = "trueOverSkin";
var tri = "trueOverIcon";
var dts = "trueDisabledSkin";
var dti = "trueDisabledIcon";
var rolloverSkin = mx.controls.SimpleButton.prototype.frs;
var rolloverIcon = mx.controls.SimpleButton.prototype.fri;
var upSkin = mx.controls.SimpleButton.prototype.fus;
var downSkin = mx.controls.SimpleButton.prototype.fds;
var disabledSkin = mx.controls.SimpleButton.prototype.dfs;
var upIcon = mx.controls.SimpleButton.prototype.fui;
var downIcon = mx.controls.SimpleButton.prototype.fdi;
var disabledIcon = mx.controls.SimpleButton.prototype.dfi;
var initializing = true;
var idNames = ["fus", "fds", "frs", "dfs", "tus", "tds", "trs", "dts", "fui", "fdi", "fri", "dfi", "tui", "tdi", "tri", "dti"];
var stateNames = ["falseUp", "falseDown", "falseOver", "falseDisabled", "trueUp", "trueDown", "trueOver", "trueDisabled"];
var refNames = ["upSkin", "downSkin", "rolloverSkin", "disabledSkin"];
var tagMap = {falseUpSkin:0, falseDownSkin:1, falseOverSkin:2, falseDisabledSkin:3, trueUpSkin:4, trueDownSkin:5, trueOverSkin:6, trueDisabledSkin:7, falseUpIcon:0, falseDownIcon:1, falseOverIcon:2, falseDisabledIcon:3, trueUpIcon:4, trueDownIcon:5, trueOverIcon:6, trueDisabledIcon:7};
}
Symbol 408 MovieClip [__Packages.mx.controls.Button] Frame 0
class mx.controls.Button extends mx.controls.SimpleButton
{
var initializing, labelPath, initIcon, getState, enabled, phase, idNames, __width, __height, setState, invalidate, iconName, refresh, createLabel, _iconLinkageName, removeIcons, hitArea_mc, createEmptyObject;
function Button () {
super();
}
function init(Void) {
super.init();
}
function draw() {
if (initializing) {
labelPath.visible = true;
}
super.draw();
if (initIcon != undefined) {
_setIcon(initIcon);
}
delete initIcon;
}
function onRelease(Void) {
super.onRelease();
}
function createChildren(Void) {
super.createChildren();
}
function setSkin(tag, linkageName, initobj) {
return(super.setSkin(tag, linkageName, initobj));
}
function viewSkin(varName) {
var _local3 = (getState() ? "true" : "false");
_local3 = _local3 + (enabled ? (phase) : "disabled");
super.viewSkin(varName, {styleName:this, borderStyle:_local3});
}
function invalidateStyle(c) {
labelPath.invalidateStyle(c);
super.invalidateStyle(c);
}
function setColor(c) {
var _local2 = 0;
while (_local2 < 8) {
this[idNames[_local2]].redraw(true);
_local2++;
}
}
function setEnabled(enable) {
labelPath.enabled = enable;
super.setEnabled(enable);
}
function calcSize(tag, ref) {
if ((__width == undefined) || (__height == undefined)) {
return(undefined);
}
if (tag < 7) {
ref.setSize(__width, __height, true);
}
}
function size(Void) {
setState(getState());
setHitArea(__width, __height);
var _local3 = 0;
while (_local3 < 8) {
var _local4 = idNames[_local3];
if (typeof(this[_local4]) == "movieclip") {
this[_local4].setSize(__width, __height, true);
}
_local3++;
}
super.size();
}
function set labelPlacement(val) {
__labelPlacement = val;
invalidate();
//return(labelPlacement);
}
function get labelPlacement() {
return(__labelPlacement);
}
function getLabelPlacement(Void) {
return(__labelPlacement);
}
function setLabelPlacement(val) {
__labelPlacement = val;
invalidate();
}
function getBtnOffset(Void) {
if (getState()) {
var _local2 = btnOffset;
} else if (phase == "down") {
var _local2 = btnOffset;
} else {
var _local2 = 0;
}
return(_local2);
}
function setView(offset) {
var _local16 = (offset ? (btnOffset) : 0);
var _local12 = getLabelPlacement();
var _local7 = 0;
var _local6 = 0;
var _local9 = 0;
var _local8 = 0;
var _local5 = 0;
var _local4 = 0;
var _local3 = labelPath;
var _local2 = iconName;
var _local15 = _local3.textWidth;
var _local14 = _local3.textHeight;
var _local10 = (__width - borderW) - borderW;
var _local11 = (__height - borderW) - borderW;
if (_local2 != undefined) {
_local7 = _local2._width;
_local6 = _local2._height;
}
if ((_local12 == "left") || (_local12 == "right")) {
if (_local3 != undefined) {
_local9 = Math.min(_local10 - _local7, _local15 + 5);
_local3._width = _local9;
_local8 = Math.min(_local11, _local14 + 5);
_local3._height = _local8;
}
if (_local12 == "right") {
_local5 = _local7;
if (centerContent) {
_local5 = _local5 + (((_local10 - _local9) - _local7) / 2);
}
_local2._x = _local5 - _local7;
} else {
_local5 = (_local10 - _local9) - _local7;
if (centerContent) {
_local5 = _local5 / 2;
}
_local2._x = _local5 + _local9;
}
_local4 = 0;
_local2._y = _local4;
if (centerContent) {
_local2._y = (_local11 - _local6) / 2;
_local4 = (_local11 - _local8) / 2;
}
if (!centerContent) {
_local2._y = _local2._y + Math.max(0, (_local8 - _local6) / 2);
}
} else {
if (_local3 != undefined) {
_local9 = Math.min(_local10, _local15 + 5);
_local3._width = _local9;
_local8 = Math.min(_local11 - _local6, _local14 + 5);
_local3._height = _local8;
}
_local5 = (_local10 - _local9) / 2;
_local2._x = (_local10 - _local7) / 2;
if (_local12 == "top") {
_local4 = (_local11 - _local8) - _local6;
if (centerContent) {
_local4 = _local4 / 2;
}
_local2._y = _local4 + _local8;
} else {
_local4 = _local6;
if (centerContent) {
_local4 = _local4 + (((_local11 - _local8) - _local6) / 2);
}
_local2._y = _local4 - _local6;
}
}
var _local13 = borderW + _local16;
_local3._x = _local5 + _local13;
_local3._y = _local4 + _local13;
_local2._x = _local2._x + _local13;
_local2._y = _local2._y + _local13;
}
function set label(lbl) {
setLabel(lbl);
//return(label);
}
function setLabel(label) {
if (label == "") {
labelPath.removeTextField();
refresh();
return(undefined);
}
if (labelPath == undefined) {
var _local2 = createLabel("labelPath", 200, label);
_local2._width = _local2.textWidth + 5;
_local2._height = _local2.textHeight + 5;
if (initializing) {
_local2.visible = false;
}
} else {
delete labelPath.__text;
labelPath.text = label;
refresh();
}
}
function getLabel(Void) {
return(((labelPath.__text != undefined) ? (labelPath.__text) : (labelPath.text)));
}
function get label() {
return(getLabel());
}
function _getIcon(Void) {
return(_iconLinkageName);
}
function get icon() {
if (initializing) {
return(initIcon);
}
return(_iconLinkageName);
}
function _setIcon(linkage) {
if (initializing) {
if (linkage == "") {
return(undefined);
}
initIcon = linkage;
} else {
if (linkage == "") {
removeIcons();
return(undefined);
}
super.changeIcon(0, linkage);
super.changeIcon(1, linkage);
super.changeIcon(3, linkage);
super.changeIcon(4, linkage);
super.changeIcon(5, linkage);
_iconLinkageName = linkage;
refresh();
}
}
function set icon(linkage) {
_setIcon(linkage);
//return(icon);
}
function setHitArea(w, h) {
if (hitArea_mc == undefined) {
createEmptyObject("hitArea_mc", 100);
}
var _local2 = hitArea_mc;
_local2.clear();
_local2.beginFill(16711680);
_local2.drawRect(0, 0, w, h);
_local2.endFill();
_local2.setVisible(false);
}
static var symbolName = "Button";
static var symbolOwner = mx.controls.Button;
var className = "Button";
static var version = "2.0.2.126";
var btnOffset = 0;
var _color = "buttonColor";
var __label = "default value";
var __labelPlacement = "right";
var falseUpSkin = "ButtonSkin";
var falseDownSkin = "ButtonSkin";
var falseOverSkin = "ButtonSkin";
var falseDisabledSkin = "ButtonSkin";
var trueUpSkin = "ButtonSkin";
var trueDownSkin = "ButtonSkin";
var trueOverSkin = "ButtonSkin";
var trueDisabledSkin = "ButtonSkin";
var falseUpIcon = "";
var falseDownIcon = "";
var falseOverIcon = "";
var falseDisabledIcon = "";
var trueUpIcon = "";
var trueDownIcon = "";
var trueOverIcon = "";
var trueDisabledIcon = "";
var clipParameters = {labelPlacement:1, icon:1, toggle:1, selected:1, label:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.Button.prototype.clipParameters, mx.controls.SimpleButton.prototype.clipParameters);
var centerContent = true;
var borderW = 1;
}
Symbol 442 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1, load:1};
}
Symbol 443 MovieClip [__Packages.mx.events.UIEventDispatcher] Frame 0
class mx.events.UIEventDispatcher extends mx.events.EventDispatcher
{
var dispatchQueue, owner, __sentLoadEvent, __origAddEventListener;
function UIEventDispatcher () {
super();
}
static function addKeyEvents(obj) {
if (obj.keyHandler == undefined) {
var _local1 = (obj.keyHandler = new Object());
_local1.owner = obj;
_local1.onKeyDown = _fEventDispatcher.onKeyDown;
_local1.onKeyUp = _fEventDispatcher.onKeyUp;
}
Key.addListener(obj.keyHandler);
}
static function removeKeyEvents(obj) {
Key.removeListener(obj.keyHandler);
}
static function addLoadEvents(obj) {
if (obj.onLoad == undefined) {
obj.onLoad = _fEventDispatcher.onLoad;
obj.onUnload = _fEventDispatcher.onUnload;
if (obj.getBytesTotal() == obj.getBytesLoaded()) {
obj.doLater(obj, "onLoad");
}
}
}
static function removeLoadEvents(obj) {
delete obj.onLoad;
delete obj.onUnload;
}
static function initialize(obj) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.UIEventDispatcher();
}
obj.addEventListener = _fEventDispatcher.__addEventListener;
obj.__origAddEventListener = _fEventDispatcher.addEventListener;
obj.removeEventListener = _fEventDispatcher.removeEventListener;
obj.dispatchEvent = _fEventDispatcher.dispatchEvent;
obj.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(mx.events.EventDispatcher, eventObj);
dispatchQueue(this, eventObj);
}
function onKeyDown(Void) {
owner.dispatchEvent({type:"keyDown", code:Key.getCode(), ascii:Key.getAscii(), shiftKey:Key.isDown(16), ctrlKey:Key.isDown(17)});
}
function onKeyUp(Void) {
owner.dispatchEvent({type:"keyUp", code:Key.getCode(), ascii:Key.getAscii(), shiftKey:Key.isDown(16), ctrlKey:Key.isDown(17)});
}
function onLoad(Void) {
if (__sentLoadEvent != true) {
dispatchEvent({type:"load"});
}
__sentLoadEvent = true;
}
function onUnload(Void) {
dispatchEvent({type:"unload"});
}
function __addEventListener(event, handler) {
__origAddEventListener(event, handler);
var _local3 = lowLevelEvents;
for (var _local5 in _local3) {
if (mx.events.UIEventDispatcher[_local5][event] != undefined) {
var _local2 = _local3[_local5][0];
mx.events.UIEventDispatcher[_local2](this);
}
}
}
function removeEventListener(event, handler) {
var _local6 = "__q_" + event;
mx.events.EventDispatcher._removeEventListener(this[_local6], event, handler);
if (this[_local6].length == 0) {
var _local2 = lowLevelEvents;
for (var _local5 in _local2) {
if (mx.events.UIEventDispatcher[_local5][event] != undefined) {
var _local3 = _local2[_local5][1];
mx.events.UIEventDispatcher[_local2[_local5][1]](this);
}
}
}
}
static var keyEvents = {keyDown:1, keyUp:1};
static var loadEvents = {load:1, unload:1};
static var lowLevelEvents = {keyEvents:["addKeyEvents", "removeKeyEvents"], loadEvents:["addLoadEvents", "removeLoadEvents"]};
static var _fEventDispatcher = undefined;
}
Symbol 444 MovieClip [__Packages.mx.skins.ColoredSkinElement] Frame 0
class mx.skins.ColoredSkinElement
{
var getStyle, _color, onEnterFrame;
function ColoredSkinElement () {
}
function setColor(c) {
if (c != undefined) {
var _local2 = new Color(this);
_local2.setRGB(c);
}
}
function draw(Void) {
setColor(getStyle(_color));
onEnterFrame = undefined;
}
function invalidateStyle(Void) {
onEnterFrame = draw;
}
static function setColorStyle(p, colorStyle) {
if (p._color == undefined) {
p._color = colorStyle;
}
p.setColor = mixins.setColor;
p.invalidateStyle = mixins.invalidateStyle;
p.draw = mixins.draw;
p.setColor(p.getStyle(colorStyle));
}
static var mixins = new mx.skins.ColoredSkinElement();
}
Symbol 445 MovieClip [__Packages.mx.core.ext.UIObjectExtensions] Frame 0
class mx.core.ext.UIObjectExtensions
{
function UIObjectExtensions () {
}
static function addGeometry(tf, ui) {
tf.addProperty("width", ui.__get__width, null);
tf.addProperty("height", ui.__get__height, null);
tf.addProperty("left", ui.__get__left, null);
tf.addProperty("x", ui.__get__x, null);
tf.addProperty("top", ui.__get__top, null);
tf.addProperty("y", ui.__get__y, null);
tf.addProperty("right", ui.__get__right, null);
tf.addProperty("bottom", ui.__get__bottom, null);
tf.addProperty("visible", ui.__get__visible, ui.__set__visible);
}
static function Extensions() {
if (bExtended == true) {
return(true);
}
bExtended = true;
var _local6 = mx.core.UIObject.prototype;
var _local9 = mx.skins.SkinElement.prototype;
addGeometry(_local9, _local6);
mx.events.UIEventDispatcher.initialize(_local6);
var _local13 = mx.skins.ColoredSkinElement;
mx.styles.CSSTextStyles.addTextStyles(_local6);
var _local5 = MovieClip.prototype;
_local5.getTopLevel = _local6.getTopLevel;
_local5.createLabel = _local6.createLabel;
_local5.createObject = _local6.createObject;
_local5.createClassObject = _local6.createClassObject;
_local5.createEmptyObject = _local6.createEmptyObject;
_local5.destroyObject = _local6.destroyObject;
_global.ASSetPropFlags(_local5, "getTopLevel", 1);
_global.ASSetPropFlags(_local5, "createLabel", 1);
_global.ASSetPropFlags(_local5, "createObject", 1);
_global.ASSetPropFlags(_local5, "createClassObject", 1);
_global.ASSetPropFlags(_local5, "createEmptyObject", 1);
_global.ASSetPropFlags(_local5, "destroyObject", 1);
_local5.__getTextFormat = _local6.__getTextFormat;
_local5._getTextFormat = _local6._getTextFormat;
_local5.getStyleName = _local6.getStyleName;
_local5.getStyle = _local6.getStyle;
_global.ASSetPropFlags(_local5, "__getTextFormat", 1);
_global.ASSetPropFlags(_local5, "_getTextFormat", 1);
_global.ASSetPropFlags(_local5, "getStyleName", 1);
_global.ASSetPropFlags(_local5, "getStyle", 1);
var _local7 = TextField.prototype;
addGeometry(_local7, _local6);
_local7.addProperty("enabled", function () {
return(this.__enabled);
}, function (x) {
this.__enabled = x;
this.invalidateStyle();
});
_local7.move = _local9.move;
_local7.setSize = _local9.setSize;
_local7.invalidateStyle = function () {
this.invalidateFlag = true;
};
_local7.draw = function () {
if (this.invalidateFlag) {
this.invalidateFlag = false;
var _local2 = this._getTextFormat();
this.setTextFormat(_local2);
this.setNewTextFormat(_local2);
this.embedFonts = _local2.embedFonts == true;
if (this.__text != undefined) {
if (this.text == "") {
this.text = this.__text;
}
delete this.__text;
}
this._visible = true;
}
};
_local7.setColor = function (color) {
this.textColor = color;
};
_local7.getStyle = _local5.getStyle;
_local7.__getTextFormat = _local6.__getTextFormat;
_local7.setValue = function (v) {
this.text = v;
};
_local7.getValue = function () {
return(this.text);
};
_local7.addProperty("value", function () {
return(this.getValue());
}, function (v) {
this.setValue(v);
});
_local7._getTextFormat = function () {
var _local2 = this.stylecache.tf;
if (_local2 != undefined) {
return(_local2);
}
_local2 = new TextFormat();
this.__getTextFormat(_local2);
this.stylecache.tf = _local2;
if (this.__enabled == false) {
if (this.enabledColor == undefined) {
var _local4 = this.getTextFormat();
this.enabledColor = _local4.color;
}
var _local3 = this.getStyle("disabledColor");
_local2.color = _local3;
} else if (this.enabledColor != undefined) {
if (_local2.color == undefined) {
_local2.color = this.enabledColor;
}
}
return(_local2);
};
_local7.getPreferredWidth = function () {
this.draw();
return(this.textWidth + 4);
};
_local7.getPreferredHeight = function () {
this.draw();
return(this.textHeight + 4);
};
TextFormat.prototype.getTextExtent2 = function (s) {
var _local3 = _root._getTextExtent;
if (_local3 == undefined) {
_root.createTextField("_getTextExtent", -2, 0, 0, 1000, 100);
_local3 = _root._getTextExtent;
_local3._visible = false;
}
_root._getTextExtent.text = s;
var _local4 = this.align;
this.align = "left";
_root._getTextExtent.setTextFormat(this);
this.align = _local4;
return({width:_local3.textWidth, height:_local3.textHeight});
};
if (_global.style == undefined) {
_global.style = new mx.styles.CSSStyleDeclaration();
_global.cascadingStyles = true;
_global.styles = new Object();
_global.skinRegistry = new Object();
if (_global._origWidth == undefined) {
_global.origWidth = Stage.width;
_global.origHeight = Stage.height;
}
}
var _local4 = _root;
while (_local4._parent != undefined) {
_local4 = _local4._parent;
}
_local4.addProperty("width", function () {
return(Stage.width);
}, null);
_local4.addProperty("height", function () {
return(Stage.height);
}, null);
_global.ASSetPropFlags(_local4, "width", 1);
_global.ASSetPropFlags(_local4, "height", 1);
return(true);
}
static var bExtended = false;
static var UIObjectExtended = Extensions();
static var UIObjectDependency = mx.core.UIObject;
static var SkinElementDependency = mx.skins.SkinElement;
static var CSSTextStylesDependency = mx.styles.CSSTextStyles;
static var UIEventDispatcherDependency = mx.events.UIEventDispatcher;
}
Symbol 446 MovieClip [__Packages.mx.skins.halo.Defaults] Frame 0
class mx.skins.halo.Defaults
{
var beginGradientFill, beginFill, moveTo, lineTo, curveTo, endFill;
function Defaults () {
}
static function setThemeDefaults() {
var _local2 = _global.style;
_local2.themeColor = 8453965 /* 0x80FF4D */;
_local2.disabledColor = 8684164 /* 0x848284 */;
_local2.modalTransparency = 0;
_local2.filled = true;
_local2.stroked = true;
_local2.strokeWidth = 1;
_local2.strokeColor = 0;
_local2.fillColor = 16777215 /* 0xFFFFFF */;
_local2.repeatInterval = 35;
_local2.repeatDelay = 500;
_local2.fontFamily = "_sans";
_local2.fontSize = 12;
_local2.selectionColor = 13500353 /* 0xCDFFC1 */;
_local2.rollOverColor = 14942166 /* 0xE3FFD6 */;
_local2.useRollOver = true;
_local2.backgroundDisabledColor = 14540253 /* 0xDDDDDD */;
_local2.selectionDisabledColor = 14540253 /* 0xDDDDDD */;
_local2.selectionDuration = 200;
_local2.openDuration = 250;
_local2.borderStyle = "inset";
_local2.color = 734012 /* 0x0B333C */;
_local2.textSelectedColor = 24371;
_local2.textRollOverColor = 2831164 /* 0x2B333C */;
_local2.textDisabledColor = 16777215 /* 0xFFFFFF */;
_local2.vGridLines = true;
_local2.hGridLines = false;
_local2.vGridLineColor = 6710886 /* 0x666666 */;
_local2.hGridLineColor = 6710886 /* 0x666666 */;
_local2.headerColor = 15395562 /* 0xEAEAEA */;
_local2.indentation = 17;
_local2.folderOpenIcon = "TreeFolderOpen";
_local2.folderClosedIcon = "TreeFolderClosed";
_local2.defaultLeafIcon = "TreeNodeIcon";
_local2.disclosureOpenIcon = "TreeDisclosureOpen";
_local2.disclosureClosedIcon = "TreeDisclosureClosed";
_local2.popupDuration = 150;
_local2.todayColor = 6710886 /* 0x666666 */;
_local2 = (_global.styles.ScrollSelectList = new mx.styles.CSSStyleDeclaration());
_local2.backgroundColor = 16777215 /* 0xFFFFFF */;
_local2.borderColor = 13290186 /* 0xCACACA */;
_local2.borderStyle = "inset";
_local2 = (_global.styles.ComboBox = new mx.styles.CSSStyleDeclaration());
_local2.borderStyle = "inset";
_local2 = (_global.styles.NumericStepper = new mx.styles.CSSStyleDeclaration());
_local2.textAlign = "center";
_local2 = (_global.styles.RectBorder = new mx.styles.CSSStyleDeclaration());
_local2.borderColor = 14015965 /* 0xD5DDDD */;
_local2.buttonColor = 7305079 /* 0x6F7777 */;
_local2.shadowColor = 15658734 /* 0xEEEEEE */;
_local2.highlightColor = 12897484 /* 0xC4CCCC */;
_local2.shadowCapColor = 14015965 /* 0xD5DDDD */;
_local2.borderCapColor = 9542041 /* 0x919999 */;
var _local4 = new Object();
_local4.borderColor = 16711680 /* 0xFF0000 */;
_local4.buttonColor = 16711680 /* 0xFF0000 */;
_local4.shadowColor = 16711680 /* 0xFF0000 */;
_local4.highlightColor = 16711680 /* 0xFF0000 */;
_local4.shadowCapColor = 16711680 /* 0xFF0000 */;
_local4.borderCapColor = 16711680 /* 0xFF0000 */;
mx.core.UIComponent.prototype.origBorderStyles = _local4;
var _local3;
_local3 = (_global.styles.TextInput = new mx.styles.CSSStyleDeclaration());
_local3.backgroundColor = 16777215 /* 0xFFFFFF */;
_local3.borderStyle = "inset";
_global.styles.TextArea = _global.styles.TextInput;
_local3 = (_global.styles.Window = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "default";
_local3 = (_global.styles.windowStyles = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3 = (_global.styles.dataGridStyles = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3 = (_global.styles.Alert = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "alert";
_local3 = (_global.styles.ScrollView = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "inset";
_local3 = (_global.styles.View = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "none";
_local3 = (_global.styles.ProgressBar = new mx.styles.CSSStyleDeclaration());
_local3.color = 11187123 /* 0xAAB3B3 */;
_local3.fontWeight = "bold";
_local3 = (_global.styles.AccordionHeader = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3.fontSize = "11";
_local3 = (_global.styles.Accordion = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "solid";
_local3.backgroundColor = 16777215 /* 0xFFFFFF */;
_local3.borderColor = 9081738 /* 0x8A938A */;
_local3.headerHeight = 22;
_local3.marginLeft = (_local3.marginRight = (_local3.marginTop = (_local3.marginBottom = -1)));
_local3.verticalGap = -1;
_local3 = (_global.styles.DateChooser = new mx.styles.CSSStyleDeclaration());
_local3.borderColor = 9542041 /* 0x919999 */;
_local3.headerColor = 16777215 /* 0xFFFFFF */;
_local3 = (_global.styles.CalendarLayout = new mx.styles.CSSStyleDeclaration());
_local3.fontSize = 10;
_local3.textAlign = "right";
_local3.color = 2831164 /* 0x2B333C */;
_local3 = (_global.styles.WeekDayStyle = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3.fontSize = 11;
_local3.textAlign = "center";
_local3.color = 2831164 /* 0x2B333C */;
_local3 = (_global.styles.TodayStyle = new mx.styles.CSSStyleDeclaration());
_local3.color = 16777215 /* 0xFFFFFF */;
_local3 = (_global.styles.HeaderDateText = new mx.styles.CSSStyleDeclaration());
_local3.fontSize = 12;
_local3.fontWeight = "bold";
_local3.textAlign = "center";
}
function drawRoundRect(x, y, w, h, r, c, alpha, rot, gradient, ratios) {
if (typeof(r) == "object") {
var _local18 = r.br;
var _local16 = r.bl;
var _local15 = r.tl;
var _local10 = r.tr;
} else {
var _local10 = r;
var _local15 = _local10;
var _local16 = _local15;
var _local18 = _local16;
}
if (typeof(c) == "object") {
if (typeof(alpha) != "object") {
var _local9 = [alpha, alpha];
} else {
var _local9 = alpha;
}
if (ratios == undefined) {
ratios = [0, 255];
}
var _local14 = h * 0.7;
if (typeof(rot) != "object") {
var _local11 = {matrixType:"box", x:-_local14, y:_local14, w:w * 2, h:h * 4, r:rot * 0.0174532925199433 /* Math.PI/180 */};
} else {
var _local11 = rot;
}
if (gradient == "radial") {
beginGradientFill("radial", c, _local9, ratios, _local11);
} else {
beginGradientFill("linear", c, _local9, ratios, _local11);
}
} else if (c != undefined) {
beginFill(c, alpha);
}
r = _local18;
var _local13 = r - (r * 0.707106781186547);
var _local12 = r - (r * 0.414213562373095);
moveTo(x + w, (y + h) - r);
lineTo(x + w, (y + h) - r);
curveTo(x + w, (y + h) - _local12, (x + w) - _local13, (y + h) - _local13);
curveTo((x + w) - _local12, y + h, (x + w) - r, y + h);
r = _local16;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo(x + r, y + h);
curveTo(x + _local12, y + h, x + _local13, (y + h) - _local13);
curveTo(x, (y + h) - _local12, x, (y + h) - r);
r = _local15;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo(x, y + r);
curveTo(x, y + _local12, x + _local13, y + _local13);
curveTo(x + _local12, y, x + r, y);
r = _local10;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo((x + w) - r, y);
curveTo((x + w) - _local12, y, (x + w) - _local13, y + _local13);
curveTo(x + w, y + _local12, x + w, y + r);
lineTo(x + w, (y + h) - r);
if (c != undefined) {
endFill();
}
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
setThemeDefaults();
mx.core.UIObject.prototype.drawRoundRect = mx.skins.halo.Defaults.prototype.drawRoundRect;
return(true);
}
static var classConstructed = classConstruct();
static var CSSStyleDeclarationDependency = mx.styles.CSSStyleDeclaration;
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
static var UIObjectDependency = mx.core.UIObject;
}
Symbol 448 MovieClip [__Packages.mx.managers.SystemManager] Frame 0
class mx.managers.SystemManager
{
static var _xAddEventListener, addEventListener, __addEventListener, _xRemoveEventListener, removeEventListener, __removeEventListener, form, __screen, dispatchEvent;
function SystemManager () {
}
static function init(Void) {
if (_initialized == false) {
_initialized = true;
mx.events.EventDispatcher.initialize(mx.managers.SystemManager);
Mouse.addListener(mx.managers.SystemManager);
Stage.addListener(mx.managers.SystemManager);
_xAddEventListener = addEventListener;
addEventListener = __addEventListener;
_xRemoveEventListener = removeEventListener;
removeEventListener = __removeEventListener;
}
}
static function addFocusManager(f) {
form = f;
f.focusManager.activate();
}
static function removeFocusManager(f) {
}
static function onMouseDown(Void) {
var _local1 = form;
_local1.focusManager._onMouseDown();
}
static function onResize(Void) {
var _local7 = Stage.width;
var _local6 = Stage.height;
var _local9 = _global.origWidth;
var _local8 = _global.origHeight;
var _local3 = Stage.align;
var _local5 = (_local9 - _local7) / 2;
var _local4 = (_local8 - _local6) / 2;
if (_local3 == "T") {
_local4 = 0;
} else if (_local3 == "B") {
_local4 = _local8 - _local6;
} else if (_local3 == "L") {
_local5 = 0;
} else if (_local3 == "R") {
_local5 = _local9 - _local7;
} else if (_local3 == "LT") {
_local4 = 0;
_local5 = 0;
} else if (_local3 == "TR") {
_local4 = 0;
_local5 = _local9 - _local7;
} else if (_local3 == "LB") {
_local4 = _local8 - _local6;
_local5 = 0;
} else if (_local3 == "RB") {
_local4 = _local8 - _local6;
_local5 = _local9 - _local7;
}
if (__screen == undefined) {
__screen = new Object();
}
__screen.x = _local5;
__screen.y = _local4;
__screen.width = _local7;
__screen.height = _local6;
_root.focusManager.relocate();
dispatchEvent({type:"resize"});
}
static function get screen() {
init();
if (__screen == undefined) {
onResize();
}
return(__screen);
}
static var _initialized = false;
static var idleFrames = 0;
static var isMouseDown = false;
static var forms = new Array();
}
Symbol 449 MovieClip [__Packages.mx.managers.FocusManager] Frame 0
class mx.managers.FocusManager extends mx.core.UIComponent
{
var __defaultPushButton, defPushButton, form, move, tabEnabled, _width, _height, _x, _y, _alpha, _parent, tabCapture, watch, lastMouse, _visible, lastFocus, doLater, lastSelFocus, cancelAllDoLaters, _searchKey, _lastTarget, _firstNode, _nextIsNext, _nextNode, _lastx, _prevNode, _needPrev, _foundList, _prevObj, _nextObj, _firstObj, _lastObj, _lastNode, lastTabFocus, findFocusFromObject;
function FocusManager () {
super();
}
function get defaultPushButton() {
return(__defaultPushButton);
}
function set defaultPushButton(x) {
if (x != __defaultPushButton) {
__defaultPushButton.__set__emphasized(false);
__defaultPushButton = x;
defPushButton = x;
x.__set__emphasized(true);
}
//return(defaultPushButton);
}
function getMaxTabIndex(o) {
var _local3 = 0;
var _local6;
for (_local6 in o) {
var _local2 = o[_local6];
if (_local2._parent == o) {
if (_local2.tabIndex != undefined) {
if (_local2.tabIndex > _local3) {
_local3 = _local2.tabIndex;
}
}
if (_local2.tabChildren == true) {
var _local4 = getMaxTabIndex(_local2);
if (_local4 > _local3) {
_local3 = _local4;
}
}
}
}
return(_local3);
}
function getNextTabIndex(Void) {
return(getMaxTabIndex(form) + 1);
}
function get nextTabIndex() {
return(getNextTabIndex());
}
function relocate(Void) {
var _local2 = mx.managers.SystemManager.__get__screen();
move(_local2.x - 1, _local2.y - 1);
}
function init(Void) {
super.init();
tabEnabled = false;
_width = (_height = 1);
_x = (_y = -1);
_alpha = 0;
_parent.focusManager = this;
_parent.tabChildren = true;
_parent.tabEnabled = false;
form = _parent;
_parent.addEventListener("hide", this);
_parent.addEventListener("reveal", this);
mx.managers.SystemManager.init();
mx.managers.SystemManager.addFocusManager(form);
tabCapture.tabIndex = 0;
watch("enabled", enabledChanged);
Selection.addListener(this);
lastMouse = new Object();
_global.ASSetPropFlags(_parent, "focusManager", 1);
_global.ASSetPropFlags(_parent, "tabChildren", 1);
_global.ASSetPropFlags(_parent, "tabEnabled", 1);
}
function enabledChanged(id, oldValue, newValue) {
_visible = newValue;
return(newValue);
}
function activate(Void) {
Key.addListener(this);
activated = (_visible = true);
if (lastFocus != undefined) {
bNeedFocus = true;
if (!mx.managers.SystemManager.isMouseDown) {
doLater(this, "restoreFocus");
}
}
}
function deactivate(Void) {
Key.removeListener(this);
activated = (_visible = false);
var _local2 = getSelectionFocus();
var _local3 = getActualFocus(_local2);
if (isOurFocus(_local3)) {
lastSelFocus = _local2;
lastFocus = _local3;
}
cancelAllDoLaters();
}
function isOurFocus(o) {
if (o.focusManager == this) {
return(true);
}
while (o != undefined) {
if (o.focusManager != undefined) {
return(false);
}
if (o._parent == _parent) {
return(true);
}
o = o._parent;
}
return(false);
}
function onSetFocus(o, n) {
if (n == null) {
if (activated) {
bNeedFocus = true;
}
} else {
var _local2 = getFocus();
if (isOurFocus(_local2)) {
bNeedFocus = false;
lastFocus = _local2;
lastSelFocus = n;
}
}
}
function restoreFocus(Void) {
var _local2 = lastSelFocus.hscroll;
if (_local2 != undefined) {
var _local5 = lastSelFocus.scroll;
var _local4 = lastSelFocus.background;
}
lastFocus.setFocus();
var _local3 = Selection;
Selection.setSelection(_local3.lastBeginIndex, _local3.lastEndIndex);
if (_local2 != undefined) {
lastSelFocus.scroll = _local5;
lastSelFocus.hscroll = _local2;
lastSelFocus.background = _local4;
}
}
function onUnload(Void) {
mx.managers.SystemManager.removeFocusManager(form);
}
function setFocus(o) {
if (o == null) {
Selection.setFocus(null);
} else if (o.setFocus == undefined) {
Selection.setFocus(o);
} else {
o.setFocus();
}
}
function getActualFocus(o) {
var _local1 = o._parent;
while (_local1 != undefined) {
if (_local1.focusTextField != undefined) {
while (_local1.focusTextField != undefined) {
o = _local1;
_local1 = _local1._parent;
if (_local1 == undefined) {
return(undefined);
}
if (_local1.focusTextField == undefined) {
return(o);
}
}
}
if (_local1.tabEnabled != true) {
return(o);
}
o = _local1;
_local1 = o._parent;
}
return(undefined);
}
function getSelectionFocus() {
var m = Selection.getFocus();
var o = eval (m);
return(o);
}
function getFocus(Void) {
var _local2 = getSelectionFocus();
return(getActualFocus(_local2));
}
function walkTree(p, index, groupName, dir, lookup, firstChild) {
var _local5 = true;
var _local11;
for (_local11 in p) {
var _local2 = p[_local11];
if ((((_local2._parent == p) && (_local2.enabled != false)) && (_local2._visible != false)) && ((_local2.tabEnabled == true) || ((_local2.tabEnabled != false) && ((((((((_local2.onPress != undefined) || (_local2.onRelease != undefined)) || (_local2.onReleaseOutside != undefined)) || (_local2.onDragOut != undefined)) || (_local2.onDragOver != undefined)) || (_local2.onRollOver != undefined)) || (_local2.onRollOut != undefined)) || (_local2 instanceof TextField))))) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
if (_local2 != _lastTarget) {
if (((_local2.groupName != undefined) || (groupName != undefined)) && (_local2.groupName == groupName)) {
continue;
}
if ((_local2 instanceof TextField) && (_local2.selectable == false)) {
continue;
}
if (_local5 || (((_local2.groupName != undefined) && (_local2.groupName == _firstNode.groupName)) && (_local2.selected == true))) {
if (firstChild) {
_firstNode = _local2;
firstChild = false;
}
}
if (_nextIsNext == true) {
if ((((_local2.groupName != undefined) && (_local2.groupName == _nextNode.groupName)) && (_local2.selected == true)) || ((_nextNode == undefined) && ((_local2.groupName == undefined) || ((_local2.groupName != undefined) && (_local2.groupName != groupName))))) {
_nextNode = _local2;
}
}
if ((_local2.groupName == undefined) || (groupName != _local2.groupName)) {
if (((_lastx.groupName != undefined) && (_local2.groupName == _lastx.groupName)) && (_lastx.selected == true)) {
} else {
_lastx = _local2;
}
}
} else {
_prevNode = _lastx;
_needPrev = false;
_nextIsNext = true;
}
if (_local2.tabIndex != undefined) {
if (_local2.tabIndex == index) {
if (_foundList[_local2._name] == undefined) {
if (_needPrev) {
_prevObj = _local2;
_needPrev = false;
}
_nextObj = _local2;
}
}
if (dir && (_local2.tabIndex > index)) {
if (((_nextObj == undefined) || ((_nextObj.tabIndex > _local2.tabIndex) && (((_local2.groupName == undefined) || (_nextObj.groupName == undefined)) || (_local2.groupName != _nextObj.groupName)))) || ((((_nextObj.groupName != undefined) && (_nextObj.groupName == _local2.groupName)) && (_nextObj.selected != true)) && ((_local2.selected == true) || (_nextObj.tabIndex > _local2.tabIndex)))) {
_nextObj = _local2;
}
} else if ((!dir) && (_local2.tabIndex < index)) {
if (((_prevObj == undefined) || ((_prevObj.tabIndex < _local2.tabIndex) && (((_local2.groupName == undefined) || (_prevObj.groupName == undefined)) || (_local2.groupName != _prevObj.groupName)))) || ((((_prevObj.groupName != undefined) && (_prevObj.groupName == _local2.groupName)) && (_prevObj.selected != true)) && ((_local2.selected == true) || (_prevObj.tabIndex < _local2.tabIndex)))) {
_prevObj = _local2;
}
}
if (((_firstObj == undefined) || ((_local2.tabIndex < _firstObj.tabIndex) && (((_local2.groupName == undefined) || (_firstObj.groupName == undefined)) || (_local2.groupName != _firstObj.groupName)))) || ((((_firstObj.groupName != undefined) && (_firstObj.groupName == _local2.groupName)) && (_firstObj.selected != true)) && ((_local2.selected == true) || (_local2.tabIndex < _firstObj.tabIndex)))) {
_firstObj = _local2;
}
if (((_lastObj == undefined) || ((_local2.tabIndex > _lastObj.tabIndex) && (((_local2.groupName == undefined) || (_lastObj.groupName == undefined)) || (_local2.groupName != _lastObj.groupName)))) || ((((_lastObj.groupName != undefined) && (_lastObj.groupName == _local2.groupName)) && (_lastObj.selected != true)) && ((_local2.selected == true) || (_local2.tabIndex > _lastObj.tabIndex)))) {
_lastObj = _local2;
}
}
if (_local2.tabChildren) {
getTabCandidateFromChildren(_local2, index, groupName, dir, _local5 && (firstChild));
}
_local5 = false;
} else if (((_local2._parent == p) && (_local2.tabChildren == true)) && (_local2._visible != false)) {
if (_local2 == _lastTarget) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
if (_prevNode == undefined) {
var _local3 = _lastx;
var _local7 = false;
while (_local3 != undefined) {
if (_local3 == _local2) {
_local7 = true;
break;
}
_local3 = _local3._parent;
}
if (_local7 == false) {
_prevNode = _lastx;
}
}
_needPrev = false;
if (_nextNode == undefined) {
_nextIsNext = true;
}
} else if (!((_local2.focusManager != undefined) && (_local2.focusManager._parent == _local2))) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
getTabCandidateFromChildren(_local2, index, groupName, dir, _local5 && (firstChild));
}
_local5 = false;
}
}
_lastNode = _lastx;
if (lookup) {
if (p._parent != undefined) {
if (p != _parent) {
if ((_prevNode == undefined) && (dir)) {
_needPrev = true;
} else if ((_nextNode == undefined) && (!dir)) {
_nextIsNext = false;
}
_lastTarget = _lastTarget._parent;
getTabCandidate(p._parent, index, groupName, dir, true);
}
}
}
}
function getTabCandidate(o, index, groupName, dir, firstChild) {
var _local2;
var _local3 = true;
if (o == _parent) {
_local2 = o;
_local3 = false;
} else {
_local2 = o._parent;
if (_local2 == undefined) {
_local2 = o;
_local3 = false;
}
}
walkTree(_local2, index, groupName, dir, _local3, firstChild);
}
function getTabCandidateFromChildren(o, index, groupName, dir, firstChild) {
walkTree(o, index, groupName, dir, false, firstChild);
}
function getFocusManagerFromObject(o) {
while (o != undefined) {
if (o.focusManager != undefined) {
return(o.focusManager);
}
o = o._parent;
}
return(undefined);
}
function tabHandler(Void) {
bDrawFocus = true;
var _local5 = getSelectionFocus();
var _local4 = getActualFocus(_local5);
if (_local4 != _local5) {
_local5 = _local4;
}
if (getFocusManagerFromObject(_local5) != this) {
_local5 == undefined;
}
if (_local5 == undefined) {
_local5 = form;
} else if (_local5.tabIndex != undefined) {
if ((_foundList != undefined) || (_foundList.tabIndex != _local5.tabIndex)) {
_foundList = new Object();
_foundList.tabIndex = _local5.tabIndex;
}
_foundList[_local5._name] = _local5;
}
var _local3 = Key.isDown(16) != true;
_searchKey = getTimer();
_needPrev = true;
_nextIsNext = false;
_lastx = undefined;
_firstNode = undefined;
_lastNode = undefined;
_nextNode = undefined;
_prevNode = undefined;
_firstObj = undefined;
_lastObj = undefined;
_nextObj = undefined;
_prevObj = undefined;
_lastTarget = _local5;
var _local6 = _local5;
getTabCandidate(_local6, ((_local5.tabIndex == undefined) ? 0 : (_local5.tabIndex)), _local5.groupName, _local3, true);
var _local2;
if (_local3) {
if (_nextObj != undefined) {
_local2 = _nextObj;
} else {
_local2 = _firstObj;
}
} else if (_prevObj != undefined) {
_local2 = _prevObj;
} else {
_local2 = _lastObj;
}
if (_local2.tabIndex != _local5.tabIndex) {
_foundList = new Object();
_foundList.tabIndex = _local2.tabIndex;
_foundList[_local2._name] = _local2;
} else {
if (_foundList == undefined) {
_foundList = new Object();
_foundList.tabIndex = _local2.tabIndex;
}
_foundList[_local2._name] = _local2;
}
if (_local2 == undefined) {
if (_local3 == false) {
if (_nextNode != undefined) {
_local2 = _nextNode;
} else {
_local2 = _firstNode;
}
} else if ((_prevNode == undefined) || (_local5 == form)) {
_local2 = _lastNode;
} else {
_local2 = _prevNode;
}
}
if (_local2 == undefined) {
return(undefined);
}
lastTabFocus = _local2;
setFocus(_local2);
if (_local2.emphasized != undefined) {
if (defPushButton != undefined) {
_local5 = defPushButton;
defPushButton = _local2;
_local5.emphasized = false;
_local2.emphasized = true;
}
} else if ((defPushButton != undefined) && (defPushButton != __defaultPushButton)) {
_local5 = defPushButton;
defPushButton = __defaultPushButton;
_local5.emphasized = false;
__defaultPushButton.__set__emphasized(true);
}
}
function onKeyDown(Void) {
mx.managers.SystemManager.idleFrames = 0;
if (defaultPushButtonEnabled) {
if (Key.getCode() == 13) {
if (defaultPushButton != undefined) {
doLater(this, "sendDefaultPushButtonEvent");
}
}
}
}
function sendDefaultPushButtonEvent(Void) {
defPushButton.dispatchEvent({type:"click"});
}
function getMousedComponentFromChildren(x, y, o) {
for (var _local7 in o) {
var _local2 = o[_local7];
if (((_local2._visible && (_local2.enabled)) && (_local2._parent == o)) && (_local2._searchKey != _searchKey)) {
_local2._searchKey = _searchKey;
if (_local2.hitTest(x, y, true)) {
if ((_local2.onPress != undefined) || (_local2.onRelease != undefined)) {
return(_local2);
}
var _local3 = getMousedComponentFromChildren(x, y, _local2);
if (_local3 != undefined) {
return(_local3);
}
return(_local2);
}
}
}
return(undefined);
}
function mouseActivate(Void) {
if (!bNeedFocus) {
return(undefined);
}
_searchKey = getTimer();
var _local2 = getMousedComponentFromChildren(lastMouse.x, lastMouse.y, form);
if (_local2 instanceof mx.core.UIComponent) {
return(undefined);
}
_local2 = findFocusFromObject(_local2);
if (_local2 == lastFocus) {
return(undefined);
}
if (_local2 == undefined) {
doLater(this, "restoreFocus");
return(undefined);
}
var _local3 = _local2.hscroll;
if (_local3 != undefined) {
var _local6 = _local2.scroll;
var _local5 = _local2.background;
}
setFocus(_local2);
var _local4 = Selection;
Selection.setSelection(_local4.lastBeginIndex, _local4.lastEndIndex);
if (_local3 != undefined) {
_local2.scroll = _local6;
_local2.hscroll = _local3;
_local2.background = _local5;
}
}
function _onMouseDown(Void) {
bDrawFocus = false;
if (lastFocus != undefined) {
lastFocus.drawFocus(false);
}
mx.managers.SystemManager.idleFrames = 0;
var _local3 = Selection;
_local3.lastBeginIndex = Selection.getBeginIndex();
_local3.lastEndIndex = Selection.getEndIndex();
lastMouse.x = _root._xmouse;
lastMouse.y = _root._ymouse;
_root.localToGlobal(lastMouse);
}
function onMouseUp(Void) {
if (_visible) {
doLater(this, "mouseActivate");
}
}
function handleEvent(e) {
if (e.type == "reveal") {
mx.managers.SystemManager.activate(form);
} else {
mx.managers.SystemManager.deactivate(form);
}
}
static function enableFocusManagement() {
if (!initialized) {
initialized = true;
Object.registerClass("FocusManager", mx.managers.FocusManager);
if (_root.focusManager == undefined) {
_root.createClassObject(mx.managers.FocusManager, "focusManager", mx.managers.DepthManager.highestDepth--);
}
}
}
static var symbolName = "FocusManager";
static var symbolOwner = mx.managers.FocusManager;
static var version = "2.0.2.126";
var className = "FocusManager";
var bNeedFocus = false;
var bDrawFocus = false;
var defaultPushButtonEnabled = true;
var activated = true;
static var initialized = false;
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}
Symbol 450 MovieClip [__Packages.mx.skins.halo.FocusRect] Frame 0
class mx.skins.halo.FocusRect extends mx.skins.SkinElement
{
var boundingBox_mc, _xscale, _yscale, clear, beginFill, drawRoundRect, endFill, _visible;
function FocusRect () {
super();
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
function draw(o) {
o.adjustFocusRect();
}
function setSize(w, h, r, a, rectCol) {
_xscale = (_yscale = 100);
clear();
if (typeof(r) == "object") {
r.br = ((r.br > 2) ? (r.br - 2) : 0);
r.bl = ((r.bl > 2) ? (r.bl - 2) : 0);
r.tr = ((r.tr > 2) ? (r.tr - 2) : 0);
r.tl = ((r.tl > 2) ? (r.tl - 2) : 0);
beginFill(rectCol, a * 0.3);
drawRoundRect(0, 0, w, h, r);
drawRoundRect(2, 2, w - 4, h - 4, r);
endFill();
r.br = ((r.br > 1) ? (r.br + 1) : 0);
r.bl = ((r.bl > 1) ? (r.bl + 1) : 0);
r.tr = ((r.tr > 1) ? (r.tr + 1) : 0);
r.tl = ((r.tl > 1) ? (r.tl + 1) : 0);
beginFill(rectCol, a * 0.3);
drawRoundRect(1, 1, w - 2, h - 2, r);
r.br = ((r.br > 1) ? (r.br - 1) : 0);
r.bl = ((r.bl > 1) ? (r.bl - 1) : 0);
r.tr = ((r.tr > 1) ? (r.tr - 1) : 0);
r.tl = ((r.tl > 1) ? (r.tl - 1) : 0);
drawRoundRect(2, 2, w - 4, h - 4, r);
endFill();
} else {
var _local5;
if (r != 0) {
_local5 = r - 2;
} else {
_local5 = 0;
}
beginFill(rectCol, a * 0.3);
drawRoundRect(0, 0, w, h, r);
drawRoundRect(2, 2, w - 4, h - 4, _local5);
endFill();
beginFill(rectCol, a * 0.3);
if (r != 0) {
_local5 = r - 2;
r = r - 1;
} else {
_local5 = 0;
r = 0;
}
drawRoundRect(1, 1, w - 2, h - 2, r);
drawRoundRect(2, 2, w - 4, h - 4, _local5);
endFill();
}
}
function handleEvent(e) {
if (e.type == "unload") {
_visible = true;
} else if (e.type == "resize") {
e.target.adjustFocusRect();
} else if (e.type == "move") {
e.target.adjustFocusRect();
}
}
static function classConstruct() {
mx.core.UIComponent.prototype.drawFocus = function (focused) {
var _local2 = this._parent.focus_mc;
if (!focused) {
_local2._visible = false;
this.removeEventListener("unload", _local2);
this.removeEventListener("move", _local2);
this.removeEventListener("resize", _local2);
} else {
if (_local2 == undefined) {
_local2 = this._parent.createChildAtDepth("FocusRect", mx.managers.DepthManager.kTop);
_local2.tabEnabled = false;
this._parent.focus_mc = _local2;
} else {
_local2._visible = true;
}
_local2.draw(this);
if (_local2.getDepth() < this.getDepth()) {
_local2.setDepthAbove(this);
}
this.addEventListener("unload", _local2);
this.addEventListener("move", _local2);
this.addEventListener("resize", _local2);
}
};
mx.core.UIComponent.prototype.adjustFocusRect = function () {
var _local2 = this.getStyle("themeColor");
if (_local2 == undefined) {
_local2 = 8453965 /* 0x80FF4D */;
}
var _local3 = this._parent.focus_mc;
_local3.setSize(this.width + 4, this.height + 4, 0, 100, _local2);
_local3.move(this.x - 2, this.y - 2);
};
TextField.prototype.drawFocus = mx.core.UIComponent.prototype.drawFocus;
TextField.prototype.adjustFocusRect = mx.core.UIComponent.prototype.adjustFocusRect;
mx.skins.halo.FocusRect.prototype.drawRoundRect = mx.skins.halo.Defaults.prototype.drawRoundRect;
return(true);
}
static var classConstructed = classConstruct();
static var DefaultsDependency = mx.skins.halo.Defaults;
static var UIComponentDependency = mx.core.UIComponent;
}
Symbol 451 MovieClip [__Packages.mx.managers.OverlappedWindows] Frame 0
class mx.managers.OverlappedWindows
{
function OverlappedWindows () {
}
static function checkIdle(Void) {
if (mx.managers.SystemManager.idleFrames > 10) {
mx.managers.SystemManager.dispatchEvent({type:"idle"});
} else {
mx.managers.SystemManager.idleFrames++;
}
}
static function __addEventListener(e, o, l) {
if (e == "idle") {
if (mx.managers.SystemManager.interval == undefined) {
mx.managers.SystemManager.interval = setInterval(mx.managers.SystemManager.checkIdle, 100);
}
}
mx.managers.SystemManager._xAddEventListener(e, o, l);
}
static function __removeEventListener(e, o, l) {
if (e == "idle") {
if (mx.managers.SystemManager._xRemoveEventListener(e, o, l) == 0) {
clearInterval(mx.managers.SystemManager.interval);
}
} else {
mx.managers.SystemManager._xRemoveEventListener(e, o, l);
}
}
static function onMouseDown(Void) {
mx.managers.SystemManager.idleFrames = 0;
mx.managers.SystemManager.isMouseDown = true;
var _local5 = _root;
var _local3;
var _local8 = _root._xmouse;
var _local7 = _root._ymouse;
if (mx.managers.SystemManager.form.modalWindow == undefined) {
if (mx.managers.SystemManager.forms.length > 1) {
var _local6 = mx.managers.SystemManager.forms.length;
var _local4;
_local4 = 0;
while (_local4 < _local6) {
var _local2 = mx.managers.SystemManager.forms[_local4];
if (_local2._visible) {
if (_local2.hitTest(_local8, _local7)) {
if (_local3 == undefined) {
_local3 = _local2.getDepth();
_local5 = _local2;
} else if (_local3 < _local2.getDepth()) {
_local3 = _local2.getDepth();
_local5 = _local2;
}
}
}
_local4++;
}
if (_local5 != mx.managers.SystemManager.form) {
mx.managers.SystemManager.activate(_local5);
}
}
}
var _local9 = mx.managers.SystemManager.form;
_local9.focusManager._onMouseDown();
}
static function onMouseMove(Void) {
mx.managers.SystemManager.idleFrames = 0;
}
static function onMouseUp(Void) {
mx.managers.SystemManager.isMouseDown = false;
mx.managers.SystemManager.idleFrames = 0;
}
static function activate(f) {
if (mx.managers.SystemManager.form != undefined) {
if ((mx.managers.SystemManager.form != f) && (mx.managers.SystemManager.forms.length > 1)) {
var _local1 = mx.managers.SystemManager.form;
_local1.focusManager.deactivate();
}
}
mx.managers.SystemManager.form = f;
f.focusManager.activate();
}
static function deactivate(f) {
if (mx.managers.SystemManager.form != undefined) {
if ((mx.managers.SystemManager.form == f) && (mx.managers.SystemManager.forms.length > 1)) {
var _local5 = mx.managers.SystemManager.form;
_local5.focusManager.deactivate();
var _local3 = mx.managers.SystemManager.forms.length;
var _local1;
var _local2;
_local1 = 0;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1] == f) {
_local1 = _local1 + 1;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1]._visible == true) {
_local2 = mx.managers.SystemManager.forms[_local1];
}
_local1++;
}
mx.managers.SystemManager.form = _local2;
break;
}
if (mx.managers.SystemManager.forms[_local1]._visible == true) {
_local2 = mx.managers.SystemManager.forms[_local1];
}
_local1++;
}
_local5 = mx.managers.SystemManager.form;
_local5.focusManager.activate();
}
}
}
static function addFocusManager(f) {
mx.managers.SystemManager.forms.push(f);
mx.managers.SystemManager.activate(f);
}
static function removeFocusManager(f) {
var _local3 = mx.managers.SystemManager.forms.length;
var _local1;
_local1 = 0;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1] == f) {
if (mx.managers.SystemManager.form == f) {
mx.managers.SystemManager.deactivate(f);
}
mx.managers.SystemManager.forms.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
static function enableOverlappedWindows() {
if (!initialized) {
initialized = true;
mx.managers.SystemManager.checkIdle = checkIdle;
mx.managers.SystemManager.__addEventListener = __addEventListener;
mx.managers.SystemManager.__removeEventListener = __removeEventListener;
mx.managers.SystemManager.onMouseDown = onMouseDown;
mx.managers.SystemManager.onMouseMove = onMouseMove;
mx.managers.SystemManager.onMouseUp = onMouseUp;
mx.managers.SystemManager.activate = activate;
mx.managers.SystemManager.deactivate = deactivate;
mx.managers.SystemManager.addFocusManager = addFocusManager;
mx.managers.SystemManager.removeFocusManager = removeFocusManager;
}
}
static var initialized = false;
static var SystemManagerDependency = mx.managers.SystemManager;
}
Symbol 452 MovieClip [__Packages.mx.styles.CSSSetStyle] Frame 0
class mx.styles.CSSSetStyle
{
var styleName, stylecache, _color, setColor, invalidateStyle;
function CSSSetStyle () {
}
function _setStyle(styleProp, newValue) {
this[styleProp] = newValue;
if (mx.styles.StyleManager.TextStyleMap[styleProp] != undefined) {
if (styleProp == "color") {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
}
_level0.changeTextStyleInChildren(styleProp);
return(undefined);
}
if (mx.styles.StyleManager.isColorStyle(styleProp)) {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
if (styleProp == "themeColor") {
var _local7 = mx.styles.StyleManager.colorNames.haloBlue;
var _local6 = mx.styles.StyleManager.colorNames.haloGreen;
var _local8 = mx.styles.StyleManager.colorNames.haloOrange;
var _local4 = {};
_local4[_local7] = 12188666 /* 0xB9FBFA */;
_local4[_local6] = 13500353 /* 0xCDFFC1 */;
_local4[_local8] = 16766319 /* 0xFFD56F */;
var _local5 = {};
_local5[_local7] = 13958653 /* 0xD4FDFD */;
_local5[_local6] = 14942166 /* 0xE3FFD6 */;
_local5[_local8] = 16772787 /* 0xFFEEB3 */;
var _local9 = _local4[newValue];
var _local10 = _local5[newValue];
if (_local9 == undefined) {
_local9 = newValue;
}
if (_local10 == undefined) {
_local10 = newValue;
}
setStyle("selectionColor", _local9);
setStyle("rollOverColor", _local10);
}
_level0.changeColorStyleInChildren(styleName, styleProp, newValue);
} else {
if ((styleProp == "backgroundColor") && (isNaN(newValue))) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
_level0.notifyStyleChangeInChildren(styleName, styleProp, newValue);
}
}
function changeTextStyleInChildren(styleProp) {
var _local4 = getTimer();
var _local5;
for (_local5 in this) {
var _local2 = this[_local5];
if (_local2._parent == this) {
if (_local2.searchKey != _local4) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache.tf;
delete _local2.stylecache[styleProp];
}
_local2.invalidateStyle(styleProp);
_local2.changeTextStyleInChildren(styleProp);
_local2.searchKey = _local4;
}
}
}
}
function changeColorStyleInChildren(sheetName, colorStyle, newValue) {
var _local6 = getTimer();
var _local7;
for (_local7 in this) {
var _local2 = this[_local7];
if (_local2._parent == this) {
if (_local2.searchKey != _local6) {
if (((_local2.getStyleName() == sheetName) || (sheetName == undefined)) || (sheetName == "_global")) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache[colorStyle];
}
if (typeof(_local2._color) == "string") {
if (_local2._color == colorStyle) {
var _local4 = _local2.getStyle(colorStyle);
if (colorStyle == "color") {
if (stylecache.tf.color != undefined) {
stylecache.tf.color = _local4;
}
}
_local2.setColor(_local4);
}
} else if (_local2._color[colorStyle] != undefined) {
if (typeof(_local2) != "movieclip") {
_local2._parent.invalidateStyle();
} else {
_local2.invalidateStyle(colorStyle);
}
}
}
_local2.changeColorStyleInChildren(sheetName, colorStyle, newValue);
_local2.searchKey = _local6;
}
}
}
}
function notifyStyleChangeInChildren(sheetName, styleProp, newValue) {
var _local5 = getTimer();
var _local6;
for (_local6 in this) {
var _local2 = this[_local6];
if (_local2._parent == this) {
if (_local2.searchKey != _local5) {
if (((_local2.styleName == sheetName) || ((_local2.styleName != undefined) && (typeof(_local2.styleName) == "movieclip"))) || (sheetName == undefined)) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache[styleProp];
delete _local2.stylecache.tf;
}
delete _local2.enabledColor;
_local2.invalidateStyle(styleProp);
}
_local2.notifyStyleChangeInChildren(sheetName, styleProp, newValue);
_local2.searchKey = _local5;
}
}
}
}
function setStyle(styleProp, newValue) {
if (stylecache != undefined) {
delete stylecache[styleProp];
delete stylecache.tf;
}
this[styleProp] = newValue;
if (mx.styles.StyleManager.isColorStyle(styleProp)) {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
if (styleProp == "themeColor") {
var _local10 = mx.styles.StyleManager.colorNames.haloBlue;
var _local9 = mx.styles.StyleManager.colorNames.haloGreen;
var _local11 = mx.styles.StyleManager.colorNames.haloOrange;
var _local6 = {};
_local6[_local10] = 12188666 /* 0xB9FBFA */;
_local6[_local9] = 13500353 /* 0xCDFFC1 */;
_local6[_local11] = 16766319 /* 0xFFD56F */;
var _local7 = {};
_local7[_local10] = 13958653 /* 0xD4FDFD */;
_local7[_local9] = 14942166 /* 0xE3FFD6 */;
_local7[_local11] = 16772787 /* 0xFFEEB3 */;
var _local12 = _local6[newValue];
var _local13 = _local7[newValue];
if (_local12 == undefined) {
_local12 = newValue;
}
if (_local13 == undefined) {
_local13 = newValue;
}
setStyle("selectionColor", _local12);
setStyle("rollOverColor", _local13);
}
if (typeof(_color) == "string") {
if (_color == styleProp) {
if (styleProp == "color") {
if (stylecache.tf.color != undefined) {
stylecache.tf.color = newValue;
}
}
setColor(newValue);
}
} else if (_color[styleProp] != undefined) {
invalidateStyle(styleProp);
}
changeColorStyleInChildren(undefined, styleProp, newValue);
} else {
if ((styleProp == "backgroundColor") && (isNaN(newValue))) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
invalidateStyle(styleProp);
}
if (mx.styles.StyleManager.isInheritingStyle(styleProp) || (styleProp == "styleName")) {
var _local8;
var _local5 = newValue;
if (styleProp == "styleName") {
_local8 = ((typeof(newValue) == "string") ? (_global.styles[newValue]) : (_local5));
_local5 = _local8.themeColor;
if (_local5 != undefined) {
_local8.rollOverColor = (_local8.selectionColor = _local5);
}
}
notifyStyleChangeInChildren(undefined, styleProp, newValue);
}
}
static function enableRunTimeCSS() {
}
static function classConstruct() {
var _local2 = MovieClip.prototype;
var _local3 = mx.styles.CSSSetStyle.prototype;
mx.styles.CSSStyleDeclaration.prototype.setStyle = _local3._setStyle;
_local2.changeTextStyleInChildren = _local3.changeTextStyleInChildren;
_local2.changeColorStyleInChildren = _local3.changeColorStyleInChildren;
_local2.notifyStyleChangeInChildren = _local3.notifyStyleChangeInChildren;
_local2.setStyle = _local3.setStyle;
_global.ASSetPropFlags(_local2, "changeTextStyleInChildren", 1);
_global.ASSetPropFlags(_local2, "changeColorStyleInChildren", 1);
_global.ASSetPropFlags(_local2, "notifyStyleChangeInChildren", 1);
_global.ASSetPropFlags(_local2, "setStyle", 1);
var _local4 = TextField.prototype;
_local4.setStyle = _local2.setStyle;
_local4.changeTextStyleInChildren = _local3.changeTextStyleInChildren;
return(true);
}
static var classConstructed = classConstruct();
static var CSSStyleDeclarationDependency = mx.styles.CSSStyleDeclaration;
}
Symbol 453 MovieClip [__Packages.mx.core.ext.UIComponentExtensions] Frame 0
class mx.core.ext.UIComponentExtensions
{
function UIComponentExtensions () {
}
static function Extensions() {
if (bExtended == true) {
return(true);
}
bExtended = true;
TextField.prototype.setFocus = function () {
Selection.setFocus(this);
};
TextField.prototype.onSetFocus = function (oldFocus) {
if (this.tabEnabled != false) {
if (this.getFocusManager().bDrawFocus) {
this.drawFocus(true);
}
}
};
TextField.prototype.onKillFocus = function (oldFocus) {
if (this.tabEnabled != false) {
this.drawFocus(false);
}
};
TextField.prototype.drawFocus = mx.core.UIComponent.prototype.drawFocus;
TextField.prototype.getFocusManager = mx.core.UIComponent.prototype.getFocusManager;
mx.managers.OverlappedWindows.enableOverlappedWindows();
mx.styles.CSSSetStyle.enableRunTimeCSS();
mx.managers.FocusManager.enableFocusManagement();
}
static var bExtended = false;
static var UIComponentExtended = Extensions();
static var UIComponentDependency = mx.core.UIComponent;
static var FocusManagerDependency = mx.managers.FocusManager;
static var OverlappedWindowsDependency = mx.managers.OverlappedWindows;
}
Symbol 454 MovieClip [__Packages.mx.skins.Border] Frame 0
class mx.skins.Border extends mx.core.UIObject
{
function Border () {
super();
}
function init(Void) {
super.init();
}
static var symbolName = "Border";
static var symbolOwner = mx.skins.Border;
var className = "Border";
var tagBorder = 0;
var idNames = new Array("border_mc");
}
Symbol 455 MovieClip [__Packages.mx.skins.RectBorder] Frame 0
class mx.skins.RectBorder extends mx.skins.Border
{
var __width, __height, offset, __borderMetrics;
function RectBorder () {
super();
}
function get width() {
return(__width);
}
function get height() {
return(__height);
}
function init(Void) {
super.init();
}
function draw(Void) {
size();
}
function getBorderMetrics(Void) {
var _local2 = offset;
if (__borderMetrics == undefined) {
__borderMetrics = {left:_local2, top:_local2, right:_local2, bottom:_local2};
} else {
__borderMetrics.left = _local2;
__borderMetrics.top = _local2;
__borderMetrics.right = _local2;
__borderMetrics.bottom = _local2;
}
return(__borderMetrics);
}
function get borderMetrics() {
return(getBorderMetrics());
}
function drawBorder(Void) {
}
function size(Void) {
drawBorder();
}
function setColor(Void) {
drawBorder();
}
static var symbolName = "RectBorder";
static var symbolOwner = mx.skins.RectBorder;
static var version = "2.0.2.126";
var className = "RectBorder";
var borderStyleName = "borderStyle";
var borderColorName = "borderColor";
var shadowColorName = "shadowColor";
var highlightColorName = "highlightColor";
var buttonColorName = "buttonColor";
var backgroundColorName = "backgroundColor";
}
Symbol 456 MovieClip [__Packages.mx.skins.halo.RectBorder] Frame 0
class mx.skins.halo.RectBorder extends mx.skins.RectBorder
{
var offset, getStyle, borderStyleName, __borderMetrics, className, borderColorName, backgroundColorName, shadowColorName, highlightColorName, buttonColorName, __get__width, __get__height, clear, _color, drawRoundRect, beginFill, drawRect, endFill;
function RectBorder () {
super();
}
function init(Void) {
borderWidths.default = 3;
super.init();
}
function getBorderMetrics(Void) {
if (offset == undefined) {
var _local3 = getStyle(borderStyleName);
offset = borderWidths[_local3];
}
if ((getStyle(borderStyleName) == "default") || (getStyle(borderStyleName) == "alert")) {
__borderMetrics = {left:3, top:1, right:3, bottom:3};
return(__borderMetrics);
}
return(super.getBorderMetrics());
}
function drawBorder(Void) {
var _local6 = _global.styles[className];
if (_local6 == undefined) {
_local6 = _global.styles.RectBorder;
}
var _local5 = getStyle(borderStyleName);
var _local7 = getStyle(borderColorName);
if (_local7 == undefined) {
_local7 = _local6[borderColorName];
}
var _local8 = getStyle(backgroundColorName);
if (_local8 == undefined) {
_local8 = _local6[backgroundColorName];
}
var _local16 = getStyle("backgroundImage");
if (_local5 != "none") {
var _local14 = getStyle(shadowColorName);
if (_local14 == undefined) {
_local14 = _local6[shadowColorName];
}
var _local13 = getStyle(highlightColorName);
if (_local13 == undefined) {
_local13 = _local6[highlightColorName];
}
var _local12 = getStyle(buttonColorName);
if (_local12 == undefined) {
_local12 = _local6[buttonColorName];
}
var _local11 = getStyle(borderCapColorName);
if (_local11 == undefined) {
_local11 = _local6[borderCapColorName];
}
var _local10 = getStyle(shadowCapColorName);
if (_local10 == undefined) {
_local10 = _local6[shadowCapColorName];
}
}
offset = borderWidths[_local5];
var _local9 = offset;
var _local3 = __get__width();
var _local4 = __get__height();
clear();
_color = undefined;
if (_local5 == "none") {
} else if (_local5 == "inset") {
_color = colorList;
draw3dBorder(_local11, _local12, _local7, _local13, _local14, _local10);
} else if (_local5 == "outset") {
_color = colorList;
draw3dBorder(_local11, _local7, _local12, _local14, _local13, _local10);
} else if (_local5 == "alert") {
var _local15 = getStyle("themeColor");
drawRoundRect(0, 5, _local3, _local4 - 5, 5, 6184542, 10);
drawRoundRect(1, 4, _local3 - 2, _local4 - 5, 4, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, 3, _local15, 50);
drawRoundRect(3, 1, _local3 - 6, _local4 - 4, 2, 16777215, 100);
} else if (_local5 == "default") {
drawRoundRect(0, 5, _local3, _local4 - 5, {tl:5, tr:5, br:0, bl:0}, 6184542, 10);
drawRoundRect(1, 4, _local3 - 2, _local4 - 5, {tl:4, tr:4, br:0, bl:0}, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, {tl:3, tr:3, br:0, bl:0}, [12897484, 11844796], 100, 0, "radial");
drawRoundRect(3, 1, _local3 - 6, _local4 - 4, {tl:2, tr:2, br:0, bl:0}, 16777215, 100);
} else if (_local5 == "dropDown") {
drawRoundRect(0, 0, _local3 + 1, _local4, {tl:4, tr:0, br:0, bl:4}, [13290186, 7895160], 100, -10, "linear");
drawRoundRect(1, 1, _local3 - 1, _local4 - 2, {tl:3, tr:0, br:0, bl:3}, 16777215, 100);
} else if (_local5 == "menuBorder") {
var _local15 = getStyle("themeColor");
drawRoundRect(4, 4, _local3 - 2, _local4 - 3, 0, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(4, 4, _local3 - 1, _local4 - 2, 0, 6184542, 10);
drawRoundRect(0, 0, _local3 + 1, _local4, 0, [0, 14342874], 100, 250, "linear");
drawRoundRect(0, 0, _local3 + 1, _local4, 0, _local15, 50);
drawRoundRect(2, 2, _local3 - 3, _local4 - 4, 0, 16777215, 100);
} else if (_local5 == "comboNonEdit") {
} else {
beginFill(_local7);
drawRect(0, 0, _local3, _local4);
drawRect(1, 1, _local3 - 1, _local4 - 1);
endFill();
_color = borderColorName;
}
if (_local8 != undefined) {
beginFill(_local8);
drawRect(_local9, _local9, __get__width() - _local9, __get__height() - _local9);
endFill();
}
}
function draw3dBorder(c1, c2, c3, c4, c5, c6) {
var _local3 = __get__width();
var _local2 = __get__height();
beginFill(c1);
drawRect(0, 0, _local3, _local2);
drawRect(1, 0, _local3 - 1, _local2);
endFill();
beginFill(c2);
drawRect(1, 0, _local3 - 1, 1);
endFill();
beginFill(c3);
drawRect(1, _local2 - 1, _local3 - 1, _local2);
endFill();
beginFill(c4);
drawRect(1, 1, _local3 - 1, 2);
endFill();
beginFill(c5);
drawRect(1, _local2 - 2, _local3 - 1, _local2 - 1);
endFill();
beginFill(c6);
drawRect(1, 2, _local3 - 1, _local2 - 2);
drawRect(2, 2, _local3 - 2, _local2 - 2);
endFill();
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
_global.styles.rectBorderClass = mx.skins.halo.RectBorder;
_global.skinRegistry.RectBorder = true;
return(true);
}
static var symbolName = "RectBorder";
static var symbolOwner = mx.skins.halo.RectBorder;
static var version = "2.0.2.126";
var borderCapColorName = "borderCapColor";
var shadowCapColorName = "shadowCapColor";
var colorList = {highlightColor:0, borderColor:0, buttonColor:0, shadowColor:0, borderCapColor:0, shadowCapColor:0};
var borderWidths = {none:0, solid:1, inset:2, outset:2, alert:3, dropDown:2, menuBorder:2, comboNonEdit:2};
static var classConstructed = classConstruct();
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}
Symbol 457 MovieClip [__Packages.mx.skins.halo.ButtonSkin] Frame 0
class mx.skins.halo.ButtonSkin extends mx.skins.RectBorder
{
var __get__width, __get__height, getStyle, _parent, clear, drawRoundRect, __get__x, __get__y;
function ButtonSkin () {
super();
}
function init() {
super.init();
}
function size() {
drawHaloRect(__get__width(), __get__height());
}
function drawHaloRect(w, h) {
var _local6 = getStyle("borderStyle");
var _local4 = getStyle("themeColor");
var _local5 = _parent.emphasized;
clear();
switch (_local6) {
case "falseup" :
if (_local5) {
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 75);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 85, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 75);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
} else {
drawRoundRect(0, 0, w, h, 5, 9542041, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, [13291985, 16250871], 100, 0, "radial");
drawRoundRect(2, 2, w - 4, h - 4, 3, [9542041, 13818586], 100, 0, "radial");
drawRoundRect(3, 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(3, 4, w - 6, h - 7, 2, 16316664, 100);
}
break;
case "falsedown" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, _local4, 20);
break;
case "falserollover" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 50);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 50);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
break;
case "falsedisabled" :
drawRoundRect(0, 0, w, h, 5, 13159628, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, 15921906, 100);
drawRoundRect(2, 2, w - 4, h - 4, 3, 13949401, 100);
drawRoundRect(3, 3, w - 6, h - 6, 2, 15921906, 100);
break;
case "trueup" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 10066329, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16250871, 100);
break;
case "truedown" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 10066329, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, _local4, 20);
break;
case "truerollover" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 50);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 40);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
break;
case "truedisabled" :
drawRoundRect(0, 0, w, h, 5, 13159628, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, 15921906, 100);
drawRoundRect(2, 2, w - 4, h - 4, 3, 13949401, 100);
drawRoundRect(3, 3, w - 6, h - 6, 2, 15921906, 100);
}
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
_global.skinRegistry.ButtonSkin = true;
return(true);
}
static var symbolName = "ButtonSkin";
static var symbolOwner = mx.skins.halo.ButtonSkin;
var className = "ButtonSkin";
var backgroundColorName = "buttonColor";
static var classConstructed = classConstruct();
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}