Section 1
//blueEnergy_41 (Gangster_Wars_fla.blueEnergy_41)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class blueEnergy_41 extends MovieClip {
public var blueBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 2
//bossBox_76 (Gangster_Wars_fla.bossBox_76)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class bossBox_76 extends MovieClip {
public var playBoss1:SimpleButton;
public var playBoss2:SimpleButton;
}
}//package Gangster_Wars_fla
Section 3
//charFrame_32 (Gangster_Wars_fla.charFrame_32)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class charFrame_32 extends MovieClip {
public var charImage:Characters;
}
}//package Gangster_Wars_fla
Section 4
//charInfo_83 (Gangster_Wars_fla.charInfo_83)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class charInfo_83 extends MovieClip {
public var lvl:TextField;
public var experience:TextField;
public var item2:Items;
public var item3:Items;
public var score:TextField;
public var gold:TextField;
public var charImage:Characters;
public var item1:Items;
}
}//package Gangster_Wars_fla
Section 5
//charSelection_16 (Gangster_Wars_fla.charSelection_16)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class charSelection_16 extends MovieClip {
public var charName:TextField;
public var charLvl:TextField;
public var select:MovieClip;
public var charScore:TextField;
public var remove:MovieClip;
public var createChar:MovieClip;
public var charImage:Characters;
public var charClass:TextField;
public function charSelection_16(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package Gangster_Wars_fla
Section 6
//greenEnergy_38 (Gangster_Wars_fla.greenEnergy_38)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class greenEnergy_38 extends MovieClip {
public var greenBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 7
//Highscore_15 (Gangster_Wars_fla.Highscore_15)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Highscore_15 extends MovieClip {
public var nameDisplay:TextField;
public var scoreDisplay:TextField;
public var rankDisplay:TextField;
}
}//package Gangster_Wars_fla
Section 8
//hitPoints_47 (Gangster_Wars_fla.hitPoints_47)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class hitPoints_47 extends MovieClip {
public var hpBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 9
//informationBox_74 (Gangster_Wars_fla.informationBox_74)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class informationBox_74 extends MovieClip {
public var infoBox:TextField;
public var opponentName:TextField;
public var opponentLvl:TextField;
public var charImage:Characters;
public var acceptBox:MovieClip;
}
}//package Gangster_Wars_fla
Section 10
//Intro_1 (Gangster_Wars_fla.Intro_1)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class Intro_1 extends MovieClip {
public var gameitnow:SimpleButton;
public var progressBar:MovieClip;
public function Intro_1(){
addFrameScript(0, frame1, 200, frame201, 316, frame317);
}
function frame317(){
stop();
progressBar.visible = true;
}
function frame201(){
progressBar.visible = false;
}
function frame1(){
progressBar.visible = false;
}
}
}//package Gangster_Wars_fla
Section 11
//MainTimeline (Gangster_Wars_fla.MainTimeline)
package Gangster_Wars_fla {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.printing.*;
import flash.system.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var setGraphics:MovieClip;
public var channel:SoundChannel;
public var theThemeSound:ThemeSound;
public var userData:SharedObject;
public var sound:uint;
public var soundSwitch:MovieClip;
public var myVariables:URLVariables;
public var graphicSwitch:MovieClip;
public var overworld:Overworld;
public var myRequest:URLRequest;
public var login:Login;
public var intro:MovieClip;
public var startLink:SimpleButton;
public var newsletter:MovieClip;
public var setSound:MovieClip;
public var myLoader:URLLoader;
public var charid:uint;
public var game:Array;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8);
}
public function toggleGraphics(_arg1:MouseEvent){
if (stage.quality == "HIGH"){
stage.quality = "MEDIUM";
graphicSwitch.gotoAndStop(2);
} else {
if (stage.quality == "MEDIUM"){
stage.quality = "LOW";
graphicSwitch.gotoAndStop(3);
} else {
if (stage.quality == "LOW"){
stage.quality = "HIGH";
graphicSwitch.gotoAndStop(1);
};
};
};
}
public function toggleSound(_arg1:MouseEvent){
if (userData.data.game[sound] == true){
userData.data.game[sound] = false;
soundSwitch.gotoAndStop(2);
channel.stop();
} else {
userData.data.game[sound] = true;
soundSwitch.gotoAndStop(1);
};
}
function frame2(){
stop();
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress);
this.loaderInfo.removeEventListener(Event.COMPLETE, completeProgress);
login.noHighScoreDisplay.addEventListener(MouseEvent.MOUSE_UP, redirectUser);
login.gotoNewsletter.addEventListener(MouseEvent.MOUSE_UP, redirectNewsletter);
}
public function loadProgress(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:int;
_local2 = this.root.loaderInfo.bytesLoaded;
_local3 = this.root.loaderInfo.bytesTotal;
_local4 = Math.floor(((_local2 / _local3) * 100));
intro.progressBar.startGame.visible = false;
intro.progressBar.loaderText.text = (("Loading..." + _local4) + "%");
}
public function returnPlayer(_arg1:Event){
var variables:URLVariables;
var event = _arg1;
try {
myLoader.dataFormat = URLLoaderDataFormat.TEXT;
variables = new URLVariables(myLoader.data);
if (variables.finish == 1){
myLoader.removeEventListener(Event.COMPLETE, returnPlayer);
gotoAndStop((currentFrame - 6));
};
} catch(error:Error) {
newsletter.cancelNews.addEventListener(MouseEvent.MOUSE_UP, backMenu);
newsletter.subscribe.addEventListener(MouseEvent.MOUSE_UP, subscribeNews);
newsletter.errorMessage.text = "Can not subscribe, please try again later";
};
}
public function subscribeNews(_arg1:MouseEvent){
var _local2:int;
var _local3:int;
_local2 = newsletter.emailInput.text.indexOf("@");
_local3 = newsletter.emailInput.text.lastIndexOf(".");
if (((!((_local2 == -1))) && (!((_local3 == -1))))){
if (_local3 < _local2){
newsletter.errorMessage.text = "Please verify the e-mail address";
} else {
newsletter.cancelNews.removeEventListener(MouseEvent.MOUSE_UP, backMenu);
newsletter.subscribe.removeEventListener(MouseEvent.MOUSE_UP, subscribeNews);
myVariables.email = newsletter.emailInput.text;
myRequest = new URLRequest("http://www.plox.info/~mattyq12/games/email_add.php");
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVariables;
myLoader.addEventListener(Event.COMPLETE, returnPlayer);
myLoader.load(myRequest);
};
} else {
newsletter.errorMessage.text = "Please verify the e-mail address";
};
}
public function introStart(_arg1:MouseEvent){
intro.progressBar.startGame.removeEventListener(MouseEvent.MOUSE_UP, introStart);
intro.gameitnow.removeEventListener(MouseEvent.MOUSE_UP, redirectUser);
gotoAndStop((currentFrame + 1));
}
function frame3(){
stop();
}
function frame7(){
stop();
channel.stop();
}
function frame1(){
stop();
game = new Array();
charid = 0;
sound = 1;
userData = SharedObject.getLocal("Gangsters");
game[charid] = 0;
game[sound] = true;
userData.data.game = game;
userData.flush();
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
this.loaderInfo.addEventListener(Event.COMPLETE, completeProgress);
intro.progressBar.startGame.addEventListener(MouseEvent.MOUSE_UP, introStart);
intro.gameitnow.addEventListener(MouseEvent.MOUSE_UP, redirectUser);
startLink.addEventListener(MouseEvent.CLICK, redirectUser);
setSound.addEventListener(MouseEvent.MOUSE_UP, toggleSound);
setGraphics.addEventListener(MouseEvent.MOUSE_UP, toggleGraphics);
userData.data.game[sound] = true;
soundSwitch.gotoAndStop(1);
graphicSwitch.gotoAndStop(1);
theThemeSound = new ThemeSound();
channel = theThemeSound.play();
}
function frame6(){
stop();
channel.stop();
}
function frame4(){
stop();
channel.stop();
}
function frame5(){
stop();
channel.stop();
}
public function completeProgress(_arg1:Event):void{
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress);
this.loaderInfo.removeEventListener(Event.COMPLETE, completeProgress);
intro.progressBar.startGame.visible = true;
intro.progressBar.loaderText.text = "";
}
function frame8(){
stop();
myLoader = new URLLoader();
myVariables = new URLVariables();
newsletter.cancelNews.addEventListener(MouseEvent.MOUSE_UP, backMenu);
newsletter.subscribe.addEventListener(MouseEvent.MOUSE_UP, subscribeNews);
}
public function redirectNewsletter(_arg1:MouseEvent){
gotoAndStop((currentFrame + 6));
}
public function redirectUser(_arg1:MouseEvent){
var _local2:URLRequest;
_local2 = new URLRequest("http://www.gameitnow.com");
navigateToURL(_local2, "_new");
}
public function backMenu(_arg1:MouseEvent){
newsletter.cancelNews.removeEventListener(MouseEvent.MOUSE_UP, backMenu);
newsletter.subscribe.removeEventListener(MouseEvent.MOUSE_UP, subscribeNews);
gotoAndStop((currentFrame - 6));
}
}
}//package Gangster_Wars_fla
Section 12
//newsletter_125 (Gangster_Wars_fla.newsletter_125)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class newsletter_125 extends MovieClip {
public var cancelNews:MovieClip;
public var subscribe:MovieClip;
public var emailInput:TextField;
public var errorMessage:TextField;
}
}//package Gangster_Wars_fla
Section 13
//ProgressBar_4 (Gangster_Wars_fla.ProgressBar_4)
package Gangster_Wars_fla {
import flash.display.*;
import flash.text.*;
public dynamic class ProgressBar_4 extends MovieClip {
public var startGame:SimpleButton;
public var loaderText:TextField;
}
}//package Gangster_Wars_fla
Section 14
//redEnergy_35 (Gangster_Wars_fla.redEnergy_35)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class redEnergy_35 extends MovieClip {
public var redBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 15
//summaryBox_102 (Gangster_Wars_fla.summaryBox_102)
package Gangster_Wars_fla {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.printing.*;
import flash.system.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class summaryBox_102 extends MovieClip {
public var menuBox:MovieClip;
public var playerName:TextField;
public var userData:SharedObject;
public var playerScore:TextField;
public var playerEmail:TextField;
public var friendName:TextField;
public var challengeBox:MovieClip;
public var playerExp:TextField;
public var playerLvl:TextField;
public var submitBox:MovieClip;
public var friendEmail:TextField;
public var gameResult:TextField;
public var continueBox:MovieClip;
public var gameInfo:TextField;
public var playerGold:TextField;
public var errorMessage:TextField;
public function summaryBox_102(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame3(){
stop();
playerLvl.text = userData.data.player[0][3];
playerScore.text = userData.data.player[5];
}
function frame1(){
stop();
}
function frame2(){
stop();
playerName.tabIndex = 1;
playerEmail.tabIndex = 2;
friendName.tabIndex = 3;
friendEmail.tabIndex = 4;
userData = SharedObject.getLocal("Gangsters");
playerLvl.text = userData.data.player[0][3];
playerScore.text = userData.data.player[5];
}
}
}//package Gangster_Wars_fla
Section 16
//timer_99 (Gangster_Wars_fla.timer_99)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class timer_99 extends MovieClip {
public var timerBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 17
//tutorialBox_51 (Gangster_Wars_fla.tutorialBox_51)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class tutorialBox_51 extends MovieClip {
public function tutorialBox_51(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Gangster_Wars_fla
Section 18
//World_69 (Gangster_Wars_fla.World_69)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class World_69 extends MovieClip {
public var city4:Buildings;
public var city1:Buildings;
public var city2:Buildings;
public var bossBuilding:MovieClip;
public var boss3:Buildings;
public var church2:Buildings;
public var church4:Buildings;
public var church1:Buildings;
public var church5:Buildings;
public var church3:Buildings;
public var boss1:Buildings;
public var itemShop:Buildings;
public var city3:Buildings;
public var boss2:Buildings;
public var farm1:Buildings;
public var farm3:Buildings;
public var farm4:Buildings;
public var farm2:Buildings;
public var farm5:Buildings;
public var farm6:Buildings;
}
}//package Gangster_Wars_fla
Section 19
//Worldmap_66 (Gangster_Wars_fla.Worldmap_66)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class Worldmap_66 extends MovieClip {
public var world4HitTest:MovieClip;
public var world:MovieClip;
public var world3HitTest:MovieClip;
public var charLight:MovieClip;
public var world2HitTest:MovieClip;
public var worldHitTest:MovieClip;
public var world2:MovieClip;
public function Worldmap_66(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Gangster_Wars_fla
Section 20
//yellowEnergy_44 (Gangster_Wars_fla.yellowEnergy_44)
package Gangster_Wars_fla {
import flash.display.*;
public dynamic class yellowEnergy_44 extends MovieClip {
public var yellowBar:MovieClip;
}
}//package Gangster_Wars_fla
Section 21
//Ariel (Ariel)
package {
import flash.text.*;
public dynamic class Ariel extends Font {
}
}//package
Section 22
//Buildings (Buildings)
package {
import flash.display.*;
public dynamic class Buildings extends MovieClip {
public var defeated:MovieClip;
}
}//package
Section 23
//CarDriveSound (CarDriveSound)
package {
import flash.media.*;
public dynamic class CarDriveSound extends Sound {
}
}//package
Section 24
//CarStopSound (CarStopSound)
package {
import flash.media.*;
public dynamic class CarStopSound extends Sound {
}
}//package
Section 25
//Characters (Characters)
package {
import flash.display.*;
public dynamic class Characters extends MovieClip {
public function Characters(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 26
//Create (Create)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.net.*;
public class Create extends MovieClip {
private var game:Array;
private var classname:uint;// = 2
private var userData:SharedObject;
private var exp:uint;// = 6
private var lvl:uint;// = 3
public var char1f:SimpleButton;
private var charitems:uint;// = 2
public var char1m:SimpleButton;
public var char2f:SimpleButton;
public var char2m:SimpleButton;
private var gold:uint;// = 7
private var blue:uint;// = 10
private var pos:uint;// = 4
public var char3f:SimpleButton;
private var skills:uint;// = 1
public var char3m:SimpleButton;
private var yellow:uint;// = 11
private var yellowmax:uint;// = 15
private var red:uint;// = 8
private var score:uint;// = 5
private var stats:uint;// = 0
private var castrate:uint;// = 17
private var bluemax:uint;// = 14
private var myLoader:URLLoader;
private var charname:uint;// = 1
private var charid:uint;// = 0
private var player:Array;
public var charName:TextField;
private var green:uint;// = 9
private var hp:uint;// = 4
private var id:uint;// = 6
private var sound:uint;// = 1
private var prefcolor:uint;// = 16
public var charInfo:TextField;
private var myVariables:URLVariables;
private var redmax:uint;// = 12
private var myRequest:URLRequest;
private var opponent:Array;
private var hpmax:uint;// = 5
private var levels:uint;// = 3
private var greenmax:uint;// = 13
public var logout:MovieClip;
private var domainControl:String;// = "plox.info/"
public function Create(){
domainControl = "plox.info/";
myLoader = new URLLoader();
myVariables = new URLVariables();
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
game = new Array();
player = new Array(new Array(), new Array(), new Array(), new Array(), new Array(), new Array(), new Array());
opponent = new Array(new Array(), new Array(), new Array());
super();
userData = SharedObject.getLocal("Gangsters");
char1m.addEventListener(MouseEvent.MOUSE_UP, createChar);
char1f.addEventListener(MouseEvent.MOUSE_UP, createChar);
char2m.addEventListener(MouseEvent.MOUSE_UP, createChar);
char2f.addEventListener(MouseEvent.MOUSE_UP, createChar);
char3m.addEventListener(MouseEvent.MOUSE_UP, createChar);
char3f.addEventListener(MouseEvent.MOUSE_UP, createChar);
logout.addEventListener(MouseEvent.CLICK, mainmenu);
}
public function setPlayerId(_arg1:Event){
var _local2:URLVariables;
myLoader.dataFormat = URLLoaderDataFormat.TEXT;
_local2 = new URLVariables(myLoader.data);
myLoader.removeEventListener(Event.COMPLETE, setPlayerId);
player[id] = _local2.id;
}
public function createChar(_arg1:MouseEvent){
var _local2:String;
var _local3:*;
var _local4:uint;
var _local5:String;
var _local6:String;
var _local7:String;
_local2 = _arg1.currentTarget.name;
_local5 = charName.text;
_local6 = _local5.substring(0, 1);
_local7 = _local5.substring(1, 99);
_local5 = (_local6.toUpperCase() + _local7.toLowerCase());
if (_local2 == "char1m"){
_local3 = 1;
_local4 = 1;
};
if (_local2 == "char1f"){
_local3 = 2;
_local4 = 1;
};
if (_local2 == "char2m"){
_local3 = 3;
_local4 = 5;
};
if (_local2 == "char2f"){
_local3 = 4;
_local4 = 5;
};
if (_local2 == "char3m"){
_local3 = 5;
_local4 = 3;
};
if (_local2 == "char3f"){
_local3 = 6;
_local4 = 3;
};
if (charName.text == ""){
charInfo.text = "Please enter a name";
} else {
player[stats][charname] = _local5;
player[stats][classname] = _local3;
player[stats][lvl] = 1;
player[stats][hpmax] = (45 + (3 * player[stats][lvl]));
player[stats][hp] = player[stats][hpmax];
player[stats][exp] = 0;
player[stats][gold] = 0;
player[stats][red] = 0;
player[stats][green] = 0;
player[stats][blue] = 0;
player[stats][yellow] = 0;
player[stats][redmax] = 60;
player[stats][greenmax] = 60;
player[stats][bluemax] = 60;
player[stats][yellowmax] = 60;
player[skills][0] = _local4;
player[skills][1] = null;
player[skills][2] = null;
player[skills][3] = null;
player[skills][4] = null;
player[charitems][0] = new Array();
player[charitems][1] = null;
player[charitems][2] = null;
player[charitems][3] = null;
player[levels][0] = 1;
player[levels][1] = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
player[pos][0] = 21.6;
player[pos][1] = 339.9;
player[score] = 0;
if (this.root.loaderInfo.url.indexOf(domainControl) != -1){
myVariables.name = player[stats][charname];
myRequest = new URLRequest("./highscore_add.php");
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVariables;
myLoader.addEventListener(Event.COMPLETE, setPlayerId);
myLoader.load(myRequest);
};
startGame();
};
}
public function mainmenu(_arg1:MouseEvent){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame - 1));
logout.removeEventListener(MouseEvent.CLICK, mainmenu);
}
public function startGame(){
var _local1:String;
_local1 = userData.data.game[charid];
userData.data[("player" + _local1)] = player;
userData.data.player = player;
userData.data.opponent = opponent;
if (userData.flush() == "flushed"){
char1m.removeEventListener(MouseEvent.MOUSE_UP, createChar);
char1f.removeEventListener(MouseEvent.MOUSE_UP, createChar);
char2m.removeEventListener(MouseEvent.MOUSE_UP, createChar);
char2f.removeEventListener(MouseEvent.MOUSE_UP, createChar);
char3m.removeEventListener(MouseEvent.MOUSE_UP, createChar);
char3f.removeEventListener(MouseEvent.MOUSE_UP, createChar);
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
}
}
}//package
Section 27
//Gamefield (Gamefield)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
public class Gamefield extends MovieClip {
public var playerRedBar:MovieClip;
private var classname:uint;// = 2
public var playerGreenBar:MovieClip;
private var allSwaps:Array;
private var isDropping:Boolean;// = false
public var opponentRedDisplay:TextField;
private var lvl:uint;// = 3
private var skills:uint;// = 1
public var summaryBox:MovieClip;
public var playerYellowDisplay:TextField;
private var currentSkill:Skill;
private var blue:uint;// = 10
private var gold:uint;// = 7
private var yellowmax:uint;// = 15
private var expFormat;
private var skillSprite:Sprite;
private var goldFormat:TextFormat;
private var yellow:uint;// = 11
private var red:uint;// = 8
private var stats:uint;// = 0
private var castrate:uint;// = 17
private var hintPiece:Piece;
private var extraTurn:Boolean;// = false
public var playerTurnIndicator:MovieClip;
public var playerHpDisplay:TextField;
public var playerRedDisplay:TextField;
private var isSwapping:Boolean;// = false
private var myLoader:URLLoader;
public var playerTimer:MovieClip;
private var theMatchExpSound:MatchExpSound;
private var theSkillExtraTurnSound:SkillExtraTurnSound;
private var turnTime:uint;
private var hp:uint;// = 4
private var id:uint;// = 6
public var playerYellowBar:MovieClip;
public var opponentExpDisplay:TextField;
private var myVariables:URLVariables;
private var color1:uint;// = 0
private var sound:uint;// = 1
public var opponentBlueBar:MovieClip;
private var gameSprite;
private var opponent:Array;
public var opponentBlueDisplay:TextField;
public var playerBlueDisplay:TextField;
private var levels:uint;// = 3
public var opponentRedBar:MovieClip;
public var playerExpDisplay:TextField;
public var opponentHpDisplay:TextField;
public var playerGreenDisplay:TextField;
public var fieldBackground:MovieClip;
public var playerCharFrame:MovieClip;
private var userData:SharedObject;
public var playerNameDisplay:TextField;
public var opponentNameDisplay:TextField;
private var exp:uint;// = 6
private var firstPiece;
public var opponentYellowBar:MovieClip;
private var playerDmgReduce:uint;// = 0
private var charitems:uint;// = 2
private var theSkillSwapRedSound:SkillSwapRedSound;
public var opponentGreenDisplay:TextField;
private var theSkillSwapGreenSound:SkillSwapGreenSound;
private var turnTimeCount:uint;
private var theSkillHintSound:SkillHintSound;
private var pos:uint;// = 4
private var theSkillReloadSound:SkillReloadSound;
private var opponentSkillCooldown:Array;
private var skillActivated:uint;// = 0
private var theSkillFreezeTime:SkillFreezeTimeSound;
public var opponentGreenBar:MovieClip;
public var opponentHpBar:MovieClip;
private var score:uint;// = 5
public var playerGoldDisplay:TextField;
private var possibleSwap;
public var opponentGoldDisplay:TextField;
public var setPause:MovieClip;
private var bluemax:uint;// = 14
private var multiBlock:Boolean;// = false
public var opponentCharFrame:MovieClip;
private var charname:uint;// = 1
private var player:Array;
private var charid:uint;// = 0
private var opponentSkill:Array;
public var infoText:TextField;
private var green:uint;// = 9
private var theMatchGemSound:MatchGemSound;
private var playerTurn;
private var turnCombo:uint;// = 0
private var prefcolor:uint;// = 16
private var theMatchMoneySound:MatchMoneySound;
private var showHint:Boolean;
private var hpFormat;
private var opponentDmgReduce:uint;// = 0
private var redmax:uint;// = 12
public var playerBlueBar:MovieClip;
private var myRequest:URLRequest;
private var grid;
public var opponentYellowDisplay:TextField;
private var hpmax:uint;// = 5
private var playerSkillCooldown:Array;
private var greenmax:uint;// = 13
private var theSkillHealSound:SkillHealSound;
public var playerHpBar:MovieClip;
private var theSkillConvertSound:SkillConvertSound;
public var opponentTurnIndicator:MovieClip;
private var difficulty:String;
private var playerDmgIncrease:uint;// = 0
private var gamePaused:Boolean;// = false
private var opponentDmgIncrease:uint;// = 0
private var theMatchGemSound2:MatchGemSound2;
private var theMatchGemSound3:MatchGemSound3;
private var theSkillRowSound:SkillRowSound;
private var theMatchWeaponSound:MatchWeaponSound;
private var gameOver:Boolean;// = false
public var opponentTimer:MovieClip;
private var playerSkill:Array;
private var domainControl:String;// = "plox.info/"
static const spacing:Number = 45;
static const offsetX:Number = 162;
static const numPieces:uint = 7;
static const offsetY:Number = 58;
public function Gamefield(){
var _local1:String;
domainControl = "plox.info/";
myLoader = new URLLoader();
myVariables = new URLVariables();
multiBlock = false;
isDropping = false;
isSwapping = false;
extraTurn = false;
gameOver = false;
gamePaused = false;
turnCombo = 0;
playerSkillCooldown = new Array(false, "3", "3", "2", "2", "3", "12", "15", "0", "0", "2", "2", "2", "10", "2", "3", "2");
opponentSkillCooldown = new Array(false, "3", "3", "2", "2", "3", "12", "15", "0", "0", "2", "2", "2", "10", "2", "3", "2");
skillActivated = 0;
color1 = 0;
playerDmgReduce = 0;
playerDmgIncrease = 0;
opponentDmgReduce = 0;
opponentDmgIncrease = 0;
playerSkill = new Array();
opponentSkill = new Array();
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
theMatchWeaponSound = new MatchWeaponSound();
theMatchExpSound = new MatchExpSound();
theMatchMoneySound = new MatchMoneySound();
theMatchGemSound = new MatchGemSound();
theMatchGemSound2 = new MatchGemSound2();
theMatchGemSound3 = new MatchGemSound3();
theSkillExtraTurnSound = new SkillExtraTurnSound();
theSkillRowSound = new SkillRowSound();
theSkillHealSound = new SkillHealSound();
theSkillFreezeTime = new SkillFreezeTimeSound();
theSkillReloadSound = new SkillReloadSound();
theSkillSwapRedSound = new SkillSwapRedSound();
theSkillSwapGreenSound = new SkillSwapGreenSound();
theSkillConvertSound = new SkillConvertSound();
theSkillHintSound = new SkillHintSound();
super();
summaryBox.visible = false;
userData = SharedObject.getLocal("Gangsters");
_local1 = userData.data.game[charid];
player = userData.data[("player" + _local1)];
opponent = userData.data.opponent;
if (Math.round((Math.random() * 1)) == 1){
playerTurn = true;
} else {
playerTurn = false;
};
if (opponent[stats][lvl] < 5){
difficulty = "easy";
showHint = true;
turnTime = 360;
} else {
if (opponent[stats][lvl] < 12){
difficulty = "normal";
showHint = true;
turnTime = 225;
} else {
difficulty = "hard";
showHint = false;
turnTime = 180;
};
};
turnTimeCount = turnTime;
startGame();
}
public function skill1(_arg1){
var _local2:int;
var _local3:Piece;
var _local4:*;
var _local5:Number;
_local2 = 0;
while (_local2 < 8) {
_local3 = grid[_local2][_arg1.row];
if (playerTurn){
_local5 = calculateScore(true, 3, _local3.type, _local3.bonus);
addScore(_local5, _local3.type);
} else {
_local5 = calculateScore(false, 3, _local3.type, _local3.bonus);
addComputerScore(_local5, _local3.type, 1);
};
_local4 = new PointBurst(this, Math.floor(_local5), _local3.x, _local3.y, _local3.type);
gameSprite.removeChild(_local3);
grid[_local2][_arg1.row] = null;
affectAbove(_local3);
_local2++;
};
addNewPieces();
turnTimeCount = 10000;
findAndRemoveMatches();
_local4 = new PointBurst(this, "ROW BLAST", 315, 200, 99);
playSound(theSkillRowSound);
}
public function skill2(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][hp] = (player[stats][hp] + 5);
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
updateTurn(0);
} else {
if (_arg1 == "computer"){
opponent[stats][hp] = (opponent[stats][hp] + 5);
if (opponent[stats][hp] > opponent[stats][hpmax]){
opponent[stats][hp] = opponent[stats][hpmax];
};
updateTurn(0);
};
};
updateScore();
_local2 = new PointBurst(this, "HEAL", 315, 200, 99);
playSound(theSkillHealSound);
}
public function skill5(_arg1){
var _local2:*;
var _local3:uint;
if (_arg1 == "player"){
_local3 = 5;
addScore(_local3, 1);
updateTurn(0);
} else {
if (_arg1 == "computer"){
_local3 = 5;
addComputerScore(_local3, 1, 1);
updateTurn(0);
};
};
updateScore();
_local2 = new PointBurst(this, "SHOOT", 315, 200, 99);
playSound(theMatchWeaponSound);
}
public function skill6(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = new PointBurst(this, "RELOAD", 315, 200, 99);
_local2 = 0;
while (_local2 < 8) {
_local4 = 0;
while (_local4 < 8) {
grid[_local4][_local2] = null;
_local4++;
};
_local2++;
};
removeChild(gameSprite);
turnTimeCount = turnTime;
grid = new Array();
_local3 = 0;
while (_local3 < 8) {
grid.push(new Array());
_local3++;
};
setupGrid();
playSound(theSkillReloadSound);
}
public function skill8(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][red] = (player[stats][red] + 8);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
} else {
if (_arg1 == "computer"){
opponent[stats][red] = (opponent[stats][red] + 8);
if (opponent[stats][red] > opponent[stats][redmax]){
opponent[stats][red] = opponent[stats][redmax];
};
};
};
updateScore();
updateCooldown("all", false);
_local2 = new PointBurst(this, "ENRAGE", 315, 200, 99);
playSound(theSkillSwapRedSound);
}
public function skill9(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][green] = (player[stats][green] + 8);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
} else {
if (_arg1 == "computer"){
opponent[stats][green] = (opponent[stats][green] + 8);
if (opponent[stats][green] > opponent[stats][greenmax]){
opponent[stats][green] = opponent[stats][greenmax];
};
};
};
updateScore();
updateCooldown("all", false);
_local2 = new PointBurst(this, "CALM DOWN", 315, 200, 99);
playSound(theSkillSwapGreenSound);
}
public function skill3(_arg1){
var _local2:*;
extraTurn = true;
turnTimeCount = turnTime;
infoText.text = "Extra turn active";
_local2 = new PointBurst(this, "EXTRA TURN", 315, 200, 99);
playSound(theSkillExtraTurnSound);
}
public function skill4(_arg1){
var _local2:*;
if (_arg1 == "player"){
turnTimeCount = 10000;
playerTimer.timerBar.visible = false;
_local2 = new PointBurst(this, "SWIFT MOVE", 315, 200, 99);
playSound(theSkillFreezeTime);
};
}
public function skill7(_arg1){
var _local2:*;
var _local3:int;
var _local4:int;
var _local5:Piece;
var _local6:Number;
_local2 = new PointBurst(this, "COLOR BOMB", 315, 200, 99);
_local3 = 0;
while (_local3 < 8) {
_local4 = 0;
while (_local4 < 8) {
_local5 = grid[_local4][_local3];
if (_local5.type == _arg1.type){
gameSprite.removeChild(_local5);
grid[_local4][_local3] = null;
affectAbove(_local5);
if (playerTurn){
_local6 = calculateScore(true, 3, _local5.type, _local5.bonus);
addScore(_local6, _local5.type);
} else {
_local6 = calculateScore(false, 3, _local5.type, _local5.bonus);
addComputerScore(_local6, _local5.type, 1);
};
};
_local4++;
};
_local3++;
};
addNewPieces();
turnTimeCount = 10000;
findAndRemoveMatches();
playSound(theSkillConvertSound);
}
public function emailChallenge(_arg1:MouseEvent){
summaryBox.gotoAndStop(2);
summaryBox.submitBox.addEventListener(MouseEvent.CLICK, sendChallenge);
}
public function lookForMatches():Array{
var _local1:Array;
var _local2:int;
var _local3:int;
var _local4:Array;
_local1 = new Array();
if (!gameOver){
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 6) {
_local4 = getMatchHoriz(_local3, _local2);
if (_local4.length > 2){
_local1.push(_local4);
_local3 = (_local3 + (_local4.length - 1));
};
_local3++;
};
_local2++;
};
_local3 = 0;
while (_local3 < 8) {
_local2 = 0;
while (_local2 < 6) {
_local4 = getMatchVert(_local3, _local2);
if (_local4.length > 2){
_local1.push(_local4);
_local2 = (_local2 + (_local4.length - 1));
};
_local2++;
};
_local3++;
};
};
return (_local1);
}
public function skill10(_arg1){
var _local2:uint;
var _local3:int;
var _local4:int;
var _local5:*;
var _local6:int;
var _local7:Piece;
_local2 = (3 + _arg1);
_local3 = 0;
_local4 = 0;
while (_local4 < 8) {
_local6 = 0;
while (_local6 < 8) {
_local7 = grid[_local6][_local4];
if ((((_local7.type == 1)) && ((_local2 > 0)))){
_local7.type = 1;
_local7.bonus = 2;
_local7.gotoAndStop(8);
_local2--;
_local3++;
};
_local6++;
};
_local4++;
};
turnTimeCount = turnTime;
_local5 = new PointBurst(this, (_local3 + " UPGRADES"), 315, 200, 99);
playSound(theSkillReloadSound);
}
public function skill12(_arg1){
var _local2:*;
var _local3:uint;
if (_arg1 == "player"){
_local3 = opponent[stats][red];
if (_local3 > 10){
_local3 = 10;
};
opponent[stats][red] = (opponent[stats][red] - _local3);
player[stats][red] = (player[stats][red] + _local3);
} else {
_local3 = player[stats][red];
if (_local3 > 10){
_local3 = 10;
};
player[stats][red] = (player[stats][red] - _local3);
opponent[stats][red] = (opponent[stats][red] + _local3);
};
updateScore();
_local2 = new PointBurst(this, (_local3 + " RED STOLEN"), 315, 200, 99);
playSound(theSkillConvertSound);
updateTurn(0);
}
public function skill15(_arg1, _arg2){
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == _arg1){
_local6.type = _arg2;
_local6.gotoAndStop(_arg2);
};
_local5++;
};
_local3++;
};
turnTimeCount = 10000;
findAndRemoveMatches();
updateScore();
_local4 = new PointBurst(this, "SWAP GEMS", 315, 200, 99);
playSound(theSkillConvertSound);
}
public function skill16(){
var _local1:*;
hintPiece.hint.visible = true;
_local1 = new PointBurst(this, "BACKUP", 315, 200, 99);
playSound(theSkillHintSound);
}
public function skill11(_arg1){
var _local2:uint;
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local2 = 0;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == 1){
_local2++;
};
_local5++;
};
_local3++;
};
if (_arg1 == "player"){
addScore(_local2, 1);
updateTurn(0);
} else {
if (_arg1 == "computer"){
addComputerScore(_local2, 1, 0);
updateTurn(0);
};
};
updateScore();
_local4 = new PointBurst(this, (Math.floor(_local2) + " DAMAGE"), 315, 200, 99);
playSound(theMatchWeaponSound);
}
public function skill14(_arg1){
var _local2:*;
var _local3:uint;
if (_arg1 == "player"){
_local3 = 5;
if (_local3 > opponent[stats][red]){
opponent[stats][red] = 0;
} else {
opponent[stats][red] = (opponent[stats][red] - _local3);
};
if (_local3 > opponent[stats][green]){
opponent[stats][green] = 0;
} else {
opponent[stats][green] = (opponent[stats][green] - _local3);
};
if (_local3 > opponent[stats][blue]){
opponent[stats][blue] = 0;
} else {
opponent[stats][blue] = (opponent[stats][blue] - _local3);
};
if (_local3 > opponent[stats][yellow]){
opponent[stats][yellow] = 0;
} else {
opponent[stats][yellow] = (opponent[stats][yellow] - _local3);
};
} else {
if (_local3 > player[stats][red]){
player[stats][red] = 0;
} else {
player[stats][red] = (player[stats][red] - _local3);
};
if (_local3 > player[stats][green]){
player[stats][green] = 0;
} else {
player[stats][green] = (player[stats][green] - _local3);
};
if (_local3 > player[stats][blue]){
player[stats][blue] = 0;
} else {
player[stats][blue] = (player[stats][blue] - _local3);
};
if (_local3 > opponent[stats][yellow]){
player[stats][yellow] = 0;
} else {
player[stats][yellow] = (player[stats][yellow] - _local3);
};
};
updateScore();
_local2 = new PointBurst(this, "BANKRUPT", 315, 200, 99);
playSound(theSkillConvertSound);
updateTurn(0);
}
public function listAllPossibles(){
var _local1:int;
var _local2:int;
var _local3:Boolean;
allSwaps = new Array();
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
_local3 = false;
_local3 = matchPattern(_local1, _local2, [[1, 0]], [[-2, 0], [-1, -1], [-1, 1], [2, -1], [2, 1], [3, 0]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[2, 0]], [[1, -1], [1, 1]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[0, 1]], [[0, -2], [-1, -1], [1, -1], [-1, 2], [1, 2], [0, 3]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[0, 2]], [[-1, 1], [1, 1]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local2++;
};
_local1++;
};
}
public function addSkills(){
var _local1:uint;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < player[skills].length) {
if (player[skills][_local2] != null){
_local1++;
playerSkill.push(addSkill("player", player[skills][_local2], _local1));
} else {
_local1++;
addSkill("player", 17, _local1);
};
_local2++;
};
_local1 = 0;
_local2 = 0;
while (_local2 < opponent[skills].length) {
if (((!((opponent[skills][_local2] == null))) && (!((opponent[skills][_local2] == 0))))){
_local1++;
opponentSkill.push(addSkill("opponent", opponent[skills][_local2], _local1));
};
_local2++;
};
}
public function skill13(_arg1){
var _local2:uint;
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local2 = 0;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == 1){
_local2++;
grid[_local5][_local3] = null;
gameSprite.removeChild(_local6);
affectAbove(_local6);
};
_local5++;
};
_local3++;
};
addNewPieces();
if (_arg1 == "player"){
player[stats][hp] = (player[stats][hp] + _local2);
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
} else {
if (_arg1 == "computer"){
opponent[stats][hp] = (opponent[stats][hp] + _local2);
if (opponent[stats][hp] > opponent[stats][hpmax]){
opponent[stats][hp] = opponent[stats][hpmax];
};
};
};
updateTurn(0);
updateScore();
_local4 = new PointBurst(this, (Math.floor(_local2) + " HEALED"), 315, 200, 99);
playSound(theSkillHealSound);
}
public function makeSwap(_arg1, _arg2:Piece){
swapPieces(_arg1, _arg2);
if (lookForMatches().length == 0){
if (playerTurn){
playerPenalty();
swapPieces(_arg1, _arg2);
} else {
swapPieces(_arg1, _arg2);
};
} else {
isSwapping = true;
turnTimeCount = turnTime;
};
}
public function manaBurn(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:int;
player[stats][red] = 0;
player[stats][green] = 0;
player[stats][blue] = 0;
player[stats][yellow] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
updateScore();
_local1 = new PointBurst(this, "NO MOVES LEFT", 315, 200, 99);
_local2 = 0;
while (_local2 < 8) {
_local4 = 0;
while (_local4 < 8) {
grid[_local4][_local2] = null;
_local4++;
};
_local2++;
};
removeChild(gameSprite);
turnTimeCount = turnTime;
grid = new Array();
_local3 = 0;
while (_local3 < 8) {
grid.push(new Array());
_local3++;
};
setupGrid();
}
public function updateTurn(_arg1:uint){
var _local2:uint;
var _local3:uint;
updateCooldown("all", false);
infoText.text = "";
if (playerTurn){
if (showHint){
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 8) {
if (grid[_local2][_local3] != null){
grid[_local2][_local3].hint.visible = false;
};
_local3++;
};
_local2++;
};
};
if (extraTurn){
updateCooldown("player", true);
extraTurn = false;
turnTimeCount = turnTime;
hintPiece = calculateSwap();
} else {
playerTurn = false;
turnTimeCount = turnTime;
updateCooldown("opponent", true);
startComputerTurn(_arg1);
};
} else {
if (extraTurn){
updateCooldown("opponent", true);
extraTurn = false;
turnTimeCount = turnTime;
startComputerTurn(_arg1);
} else {
updateCooldown("player", true);
playerTurn = true;
turnTimeCount = turnTime;
hintPiece = calculateSwap();
if (opponent[skills][0] == 0){
if (player[stats][hp] >= 1){
var _local4 = player[stats];
var _local5 = hp;
var _local6 = (_local4[_local5] - 1);
_local4[_local5] = _local6;
updateScore();
};
};
};
};
}
public function addComputerScore(_arg1, _arg2:int, _arg3:uint){
if ((((_arg2 == 1)) && (!(gameOver)))){
if (player[stats][hp] == 0){
player[stats][hp] = 0;
gameOver = true;
showSummary();
} else {
if (player[stats][hp] <= _arg1){
player[stats][hp] = 0;
gameOver = true;
showSummary();
} else {
player[stats][hp] = (player[stats][hp] - Math.round(_arg1));
};
};
} else {
if (_arg2 == 2){
opponent[stats][gold] = (opponent[stats][gold] + _arg1);
} else {
if (_arg2 == 3){
opponent[stats][exp] = (opponent[stats][exp] + _arg1);
} else {
if (_arg2 == 4){
opponent[stats][red] = (opponent[stats][red] + (_arg1 + _arg3));
if (opponent[stats][red] > opponent[stats][redmax]){
opponent[stats][red] = opponent[stats][redmax];
};
} else {
if (_arg2 == 5){
opponent[stats][green] = (opponent[stats][green] + (_arg1 + _arg3));
if (opponent[stats][green] > opponent[stats][greenmax]){
opponent[stats][green] = opponent[stats][greenmax];
};
} else {
if (_arg2 == 6){
opponent[stats][blue] = (opponent[stats][blue] + (_arg1 + _arg3));
if (opponent[stats][blue] > opponent[stats][bluemax]){
opponent[stats][blue] = opponent[stats][bluemax];
};
} else {
if (_arg2 == 7){
opponent[stats][yellow] = (opponent[stats][yellow] + (_arg1 + _arg3));
if (opponent[stats][yellow] > opponent[stats][yellowmax]){
opponent[stats][yellow] = opponent[stats][yellowmax];
};
};
};
};
};
};
};
};
updateScore();
}
public function animateBars(_arg1:Event){
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:int;
_local2 = 121.1;
_local3 = 47.6;
_local4 = ((player[stats][hp] / player[stats][hpmax]) * 100);
_local5 = ((player[stats][red] / player[stats][redmax]) * 100);
_local6 = ((player[stats][green] / player[stats][greenmax]) * 100);
_local7 = ((player[stats][blue] / player[stats][bluemax]) * 100);
_local8 = ((player[stats][yellow] / player[stats][yellowmax]) * 100);
_local9 = ((opponent[stats][hp] / opponent[stats][hpmax]) * 100);
_local10 = ((opponent[stats][red] / opponent[stats][redmax]) * 100);
_local11 = ((opponent[stats][green] / opponent[stats][greenmax]) * 100);
_local12 = ((opponent[stats][blue] / opponent[stats][bluemax]) * 100);
_local13 = ((opponent[stats][yellow] / opponent[stats][yellowmax]) * 100);
if ((opponentHpBar.hpBar.width + 1) < ((_local2 / 100) * _local9)){
opponentHpBar.hpBar.width++;
} else {
if (opponentHpBar.hpBar.width > ((_local2 / 100) * _local9)){
opponentHpBar.hpBar.width--;
};
};
if ((playerRedBar.redBar.height + 1) < ((_local3 / 100) * _local5)){
playerRedBar.redBar.height++;
} else {
if (playerRedBar.redBar.height > ((_local3 / 100) * _local5)){
playerRedBar.redBar.height--;
};
};
if ((playerGreenBar.greenBar.height + 1) < ((_local3 / 100) * _local6)){
playerGreenBar.greenBar.height++;
} else {
if (playerGreenBar.greenBar.height > ((_local3 / 100) * _local6)){
playerGreenBar.greenBar.height--;
};
};
if ((playerBlueBar.blueBar.height + 1) < ((_local3 / 100) * _local7)){
playerBlueBar.blueBar.height++;
} else {
if (playerBlueBar.blueBar.height > ((_local3 / 100) * _local7)){
playerBlueBar.blueBar.height--;
};
};
if ((playerYellowBar.yellowBar.height + 1) < ((_local3 / 100) * _local8)){
playerYellowBar.yellowBar.height++;
} else {
if (playerYellowBar.yellowBar.height > ((_local3 / 100) * _local8)){
playerYellowBar.yellowBar.height--;
};
};
if ((playerHpBar.hpBar.width + 1) < ((_local2 / 100) * _local4)){
playerHpBar.hpBar.width++;
} else {
if (playerHpBar.hpBar.width > ((_local2 / 100) * _local4)){
playerHpBar.hpBar.width--;
};
};
if ((opponentRedBar.redBar.height + 1) < ((_local3 / 100) * _local10)){
opponentRedBar.redBar.height++;
} else {
if (opponentRedBar.redBar.height > ((_local3 / 100) * _local10)){
opponentRedBar.redBar.height--;
};
};
if ((opponentGreenBar.greenBar.height + 1) < ((_local3 / 100) * _local11)){
opponentGreenBar.greenBar.height++;
} else {
if (opponentGreenBar.greenBar.height > ((_local3 / 100) * _local11)){
opponentGreenBar.greenBar.height--;
};
};
if ((opponentBlueBar.blueBar.height + 1) < ((_local3 / 100) * _local12)){
opponentBlueBar.blueBar.height++;
} else {
if (opponentBlueBar.blueBar.height > ((_local3 / 100) * _local12)){
opponentBlueBar.blueBar.height--;
};
};
if ((opponentYellowBar.yellowBar.height + 1) < ((_local3 / 100) * _local13)){
opponentYellowBar.yellowBar.height++;
} else {
if (opponentYellowBar.yellowBar.height > ((_local3 / 100) * _local13)){
opponentYellowBar.yellowBar.height--;
};
};
_local14 = ((168 / 100) * ((turnTimeCount / turnTime) * 100));
if (_local14 > 168){
_local14 = 168;
};
playerTimer.timerBar.height = _local14;
opponentTimer.timerBar.height = _local14;
if (gamePaused){
summaryBox.visible = true;
setChildIndex(getChildByName("summaryBox"), (this.numChildren - 1));
} else {
summaryBox.visible = false;
};
}
public function chooseComputerMove(_arg1:TimerEvent){
var _local2:Boolean;
var _local3:uint;
if (grid != null){
if ((Math.random() * 100) < opponent[stats][castrate]){
if ((((((difficulty == "normal")) && (((Math.random() * 100) > 50)))) || ((difficulty == "hard")))){
_local2 = false;
listAllPossibles();
_local3 = 0;
while (_local3 < allSwaps.length) {
if ((((allSwaps[_local3][0] == 1)) || ((allSwaps[_local3][0] == 8)))){
_local2 = true;
makeComputerTurn();
};
_local3++;
};
if (!_local2){
if (!useComputerSkill()){
makeComputerTurn();
};
};
} else {
if (!useComputerSkill()){
makeComputerTurn();
};
};
} else {
makeComputerTurn();
};
};
}
public function addNewPieces(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Piece;
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
_local3 = 7;
while (_local3 >= 0) {
if (grid[_local1][_local3] == null){
_local4 = addPiece(_local1, _local3);
var _temp1 = _local2;
_local2 = (_local2 + 1);
_local4.y = ((offsetY - spacing) - (spacing * _temp1));
isDropping = true;
};
_local3--;
};
_local1++;
};
}
public function affectAbove(_arg1:Piece){
var _local2:int;
_local2 = (_arg1.row - 1);
while (_local2 >= 0) {
if (grid[_arg1.col][_local2] != null){
grid[_arg1.col][_local2].row++;
grid[_arg1.col][(_local2 + 1)] = grid[_arg1.col][_local2];
grid[_arg1.col][_local2] = null;
};
_local2--;
};
}
public function useComputerSkill(){
var _local1:Skill;
var _local2:Piece;
var _local3:uint;
var _local4:uint;
if (opponent[skills][0] == null){
return (false);
};
if ((((opponent[stats][hp] < 20)) && ((opponent[skills][0] == 2)))){
_local1 = opponentSkill[0];
} else {
_local1 = opponentSkill[Math.floor((Math.random() * opponentSkill.length))];
};
if (checkSkillReq("computer", _local1)){
if (_local1.type == 1){
opponent[stats][red] = (opponent[stats][red] - 10);
_local2 = grid[Math.ceil((Math.random() * 7))][Math.ceil((Math.random() * 7))];
skill1(_local2);
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 2){
opponent[stats][green] = (opponent[stats][green] - 10);
skill2("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 3){
skill3("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 5){
opponent[stats][red] = (opponent[stats][red] - 10);
updateScore();
skill5("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 6){
opponent[stats][blue] = (opponent[stats][blue] - 5);
updateScore();
if (lookForMatches().length == 0){
skill6();
startComputerTurn(2000);
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
return (false);
} else {
if (_local1.type == 7){
while (true) {
_local2 = grid[Math.ceil((Math.random() * 7))][Math.ceil((Math.random() * 7))];
if ((((((((_local2.type == 4)) || ((_local2.type == 5)))) || ((_local2.type == 6)))) || ((_local2.type == 7)))){
break;
};
};
skill7(_local2);
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
} else {
if (_local1.type == 8){
opponent[stats][blue] = (opponent[stats][blue] - 5);
opponent[stats][yellow] = (opponent[stats][yellow] - 5);
updateScore();
skill8("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 9){
opponent[stats][blue] = (opponent[stats][blue] - 5);
opponent[stats][yellow] = (opponent[stats][yellow] - 5);
updateScore();
skill9("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 10){
opponent[stats][red] = (opponent[stats][red] - 5);
updateScore();
skill10(0);
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
startComputerTurn(0);
return (true);
};
if (_local1.type == 11){
opponent[stats][red] = (opponent[stats][red] - 15);
updateScore();
skill11("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 12){
opponent[stats][blue] = (opponent[stats][blue] - 5);
opponent[stats][yellow] = (opponent[stats][yellow] + 5);
updateScore();
skill12("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 13){
opponent[stats][green] = (opponent[stats][green] - 15);
updateScore();
skill13("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 14){
opponent[stats][blue] = (opponent[stats][blue] - 15);
updateScore();
skill14("computer");
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
if (_local1.type == 15){
_local3 = (Math.floor((Math.random() * 4)) + 4);
_local4 = (Math.floor((Math.random() * 4)) + 4);
if (_local3 == _local4){
_local3 = 4;
_local4 = 5;
};
skill15(_local3, _local4);
_local1.cooldown = opponentSkillCooldown[_local1.type];
updateCooldown("all", false);
return (true);
};
};
};
};
return (false);
}
public function checkSkillReq(_arg1:String, _arg2:Skill){
if (_arg1 == "player"){
if ((((_arg2.type == 1)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 2)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][green] >= 10)) && ((player[stats][hp] < player[stats][hpmax])))){
return (true);
};
} else {
if ((((_arg2.type == 3)) && ((_arg2.cooldown == 0)))){
if (player[stats][yellow] >= 3){
return (true);
};
} else {
if ((((_arg2.type == 4)) && ((_arg2.cooldown == 0)))){
if (player[stats][green] >= 3){
return (true);
};
} else {
if ((((_arg2.type == 5)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 6)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 7)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][red] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 8)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 9)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 10)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 11)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 15){
return (true);
};
} else {
if ((((_arg2.type == 12)) && ((_arg2.cooldown == 0)))){
if ((((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))) && ((opponent[stats][red] > 0)))){
return (true);
};
} else {
if ((((_arg2.type == 13)) && ((_arg2.cooldown == 0)))){
if (player[stats][green] >= 15){
return (true);
};
} else {
if ((((_arg2.type == 14)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 15){
return (true);
};
} else {
if ((((_arg2.type == 15)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 16)) && ((_arg2.cooldown == 0)))){
if (player[stats][yellow] >= 5){
return (true);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
return (false);
} else {
if (_arg1 == "computer"){
if ((((_arg2.type == 1)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 2)) && ((_arg2.cooldown == 0)))){
if ((((opponent[stats][green] >= 10)) && ((opponent[stats][hp] < opponent[stats][hpmax])))){
return (true);
};
} else {
if ((((_arg2.type == 5)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 6)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 7)) && ((_arg2.cooldown == 0)))){
if ((((opponent[stats][red] >= 5)) && ((opponent[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 8)) && ((_arg2.cooldown == 0)))){
if ((((opponent[stats][blue] >= 5)) && ((opponent[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 9)) && ((_arg2.cooldown == 0)))){
if ((((opponent[stats][blue] >= 5)) && ((opponent[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 10)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][red] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 11)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][red] >= 15){
return (true);
};
} else {
if ((((_arg2.type == 12)) && ((_arg2.cooldown == 0)))){
if ((((((opponent[stats][blue] >= 5)) && ((opponent[stats][yellow] >= 5)))) && ((player[stats][red] > 0)))){
return (true);
};
} else {
if ((((_arg2.type == 13)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][green] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 14)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 15)) && ((_arg2.cooldown == 0)))){
if (opponent[stats][blue] >= 5){
return (true);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
return (false);
};
};
}
public function sendChallenge(_arg1:MouseEvent){
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:URLRequest;
var _local7:URLLoader;
var _local8:URLVariables;
_local2 = summaryBox.playerEmail.text.indexOf("@");
_local3 = summaryBox.playerEmail.text.lastIndexOf(".");
_local4 = summaryBox.friendEmail.text.indexOf("@");
_local5 = summaryBox.friendEmail.text.lastIndexOf(".");
if (((((((!((_local2 == -1))) && (!((_local3 == -1))))) && (!((_local4 == -1))))) && (!((_local5 == -1))))){
if ((((_local3 < _local2)) && ((_local5 < _local4)))){
summaryBox.errorMessage.text = "Please verify the e-mail addresses";
} else {
summaryBox.submitBox.removeEventListener(MouseEvent.CLICK, sendChallenge);
_local7 = new URLLoader();
_local8 = new URLVariables();
_local8.from = summaryBox.playerName.text;
_local8.fromEmail = summaryBox.playerEmail.text;
_local8.to = summaryBox.friendName.text;
_local8.toEmail = summaryBox.friendEmail.text;
_local8.level = player[stats][lvl];
_local8.score = player[score];
_local6 = new URLRequest("http://www.plox.info/~mattyq12/games/sendEmailChallengeEN.php");
_local6.method = URLRequestMethod.POST;
_local6.data = _local8;
_local7.addEventListener(Event.COMPLETE, challengeDone);
_local7.load(_local6);
};
} else {
summaryBox.errorMessage.text = "Please verify the e-mail addresses";
};
}
public function getMatchVert(_arg1, _arg2):Array{
var _local3:Array;
var _local4:int;
var _local5:uint;
_local3 = new Array(grid[_arg1][_arg2]);
_local4 = 1;
while ((_arg2 + _local4) < 8) {
if (grid[_arg1][_arg2].type == 9){
_local5 = (_local4 - 1);
if (_local5 < 1){
_local5 = 1;
};
if ((((((((((grid[_arg1][(_arg2 + _local5)].type == grid[_arg1][(_arg2 + _local4)].type)) && (!((grid[_arg1][(_arg2 + _local4)].type == 1))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 2))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 3))))) || ((grid[_arg1][(_arg2 + _local4)].type == 9)))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
if ((((((((((grid[_arg1][(_arg2 + _local5)].type == 9)) && (!((grid[_arg1][(_arg2 + _local4)].type == 1))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 2))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 3))))) || ((grid[_arg1][(_arg2 + _local4)].type == 9)))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
return (_local3);
};
};
} else {
if (grid[_arg1][_arg2].type == grid[_arg1][(_arg2 + _local4)].type){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
if ((((((((grid[_arg1][(_arg2 + _local4)].type == 9)) && (!((grid[_arg1][_arg2].type == 1))))) && (!((grid[_arg1][_arg2].type == 2))))) && (!((grid[_arg1][_arg2].type == 3))))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
return (_local3);
};
};
};
_local4++;
};
return (_local3);
}
public function showSummary(){
var _local1:String;
var _local2:String;
var _local3:Boolean;
var _local4:String;
var _local5:uint;
var _local6:uint;
player[stats][lvl] = Math.floor(((player[stats][exp] / 350) + 1));
if (player[stats][lvl] >= 50){
player[stats][lvl] = 50;
};
if (player[stats][exp] >= 99999){
player[stats][exp] = 99999;
};
if (player[stats][gold] >= 99999){
player[stats][gold] = 99999;
};
if ((((player[skills][4] == null)) && ((opponent[stats][charid] == 50)))){
player[skills][4] = 16;
} else {
if ((((player[skills][4] == null)) && ((opponent[stats][charid] == 51)))){
player[skills][4] = 4;
};
};
_local3 = false;
if ((((player[stats][lvl] >= 5)) && ((player[skills][1] == null)))){
if ((((player[stats][classname] == 1)) || ((player[stats][classname] == 2)))){
player[skills][1] = 12;
_local3 = true;
};
if ((((player[stats][classname] == 3)) || ((player[stats][classname] == 4)))){
player[skills][1] = 8;
_local3 = true;
};
if ((((player[stats][classname] == 5)) || ((player[stats][classname] == 6)))){
player[skills][1] = 6;
_local3 = true;
};
};
if ((((player[stats][lvl] >= 15)) && ((player[skills][2] == null)))){
if ((((player[stats][classname] == 1)) || ((player[stats][classname] == 2)))){
player[skills][2] = 10;
_local3 = true;
};
if ((((player[stats][classname] == 3)) || ((player[stats][classname] == 4)))){
player[skills][2] = 2;
_local3 = true;
};
if ((((player[stats][classname] == 5)) || ((player[stats][classname] == 6)))){
player[skills][2] = 13;
_local3 = true;
};
};
if ((((player[stats][lvl] >= 25)) && ((player[skills][3] == null)))){
if ((((player[stats][classname] == 1)) || ((player[stats][classname] == 2)))){
player[skills][3] = 11;
_local3 = true;
};
if ((((player[stats][classname] == 3)) || ((player[stats][classname] == 4)))){
player[skills][3] = 9;
_local3 = true;
};
if ((((player[stats][classname] == 5)) || ((player[stats][classname] == 6)))){
player[skills][3] = 15;
_local3 = true;
};
};
if (player[stats][hp] > 0){
player[score] = (player[score] + 100);
_local1 = "Victory!";
if ((((((player[stats][lvl] == 10)) || ((player[stats][lvl] == 20)))) || ((player[stats][lvl] == 30)))){
_local2 = (("Congratulations, you have defeated " + opponent[stats][charname]) + " and gained a 100 Score! New items are unlocked at your current level, go have a look!");
} else {
if (_local3){
_local2 = (("Congratulations, you have defeated " + opponent[stats][charname]) + " and gained a 100 Score! You have unlocked a new skill!");
} else {
if (player[stats][lvl] == 50){
_local2 = (("Congratulations, you have defeated " + opponent[stats][charname]) + " and gained a 100 Score! You have reached the maximum level and become a Godfather!");
} else {
_local2 = (("Congratulations, you have defeated " + opponent[stats][charname]) + " and gained a 100 Score!");
};
};
};
_local5 = player[levels][0];
_local6 = opponent[stats][charid];
player[levels][1][_local6] = true;
if ((((((opponent[stats][charid] == 6)) || ((opponent[stats][charid] == 12)))) || ((opponent[stats][charid] == 17)))){
player[levels][0] = (player[levels][0] + 1);
};
} else {
player[score] = (player[score] - 50);
if (player[score] < 0){
player[score] = 0;
};
_local1 = "Defeat!";
_local2 = (("You managed to escape " + opponent[stats][charname]) + ", but lost 50 Score! Try again or go buy some better items!");
};
gameSprite.visible = false;
summaryBox.gameResult.text = _local1;
summaryBox.gameInfo.text = _local2;
summaryBox.continueBox.visible = false;
summaryBox.playerScore.text = String(player[score]);
summaryBox.playerLvl.text = String(player[stats][lvl]);
summaryBox.playerExp.text = String(player[stats][exp]);
summaryBox.playerGold.text = String(player[stats][gold]);
gamePaused = !(gamePaused);
setPause.visible = false;
_local4 = userData.data.game[charid];
userData.data[("player" + _local4)] = player;
userData.flush();
if (this.root.loaderInfo.url.indexOf(domainControl) != -1){
myVariables.id = player[id];
myVariables.score = player[score];
myRequest = new URLRequest("./highscore_update.php");
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVariables;
myLoader.load(myRequest);
} else {
summaryBox.challengeBox.visible = false;
summaryBox.submitBox.visible = false;
summaryBox.menuBox.x = 0;
};
}
public function matchPattern(_arg1, _arg2:uint, _arg3, _arg4:Array){
var _local5:int;
var _local6:int;
_local5 = grid[_arg1][_arg2].type;
possibleSwap = new Array();
_local6 = 0;
while (_local6 < _arg3.length) {
if (!matchType((_arg1 + _arg3[_local6][0]), (_arg2 + _arg3[_local6][1]), _local5)){
return (false);
};
_local6++;
};
_local6 = 0;
while (_local6 < _arg4.length) {
if (matchType((_arg1 + _arg4[_local6][0]), (_arg2 + _arg4[_local6][1]), _local5)){
possibleSwap.push(_local5);
possibleSwap.push((_arg1 + _arg4[_local6][0]));
possibleSwap.push((_arg2 + _arg4[_local6][1]));
return (true);
};
_local6++;
};
return (false);
}
public function togglePauseGame(_arg1:MouseEvent){
summaryBox.gameResult.text = "Game paused";
summaryBox.gameInfo.text = "Taking a break already? If you quit now you will get a 25 Score penalty!";
summaryBox.playerScore.text = String(player[score]);
summaryBox.playerLvl.text = String(player[stats][lvl]);
summaryBox.playerExp.text = String(player[stats][exp]);
summaryBox.playerGold.text = String(player[stats][gold]);
gamePaused = !(gamePaused);
}
public function itemValues(_arg1:String, _arg2:uint){
if (_arg1 == "player"){
if (_arg2 == 1){
player[stats][red] = (player[stats][red] + 10);
} else {
if (_arg2 == 2){
playerDmgReduce = (playerDmgReduce + 1);
} else {
if (_arg2 == 3){
player[stats][hpmax] = (player[stats][hpmax] + 10);
player[stats][hp] = (player[stats][hp] + 10);
} else {
if (_arg2 == 4){
player[stats][red] = (player[stats][red] + 5);
player[stats][green] = (player[stats][green] + 5);
player[stats][blue] = (player[stats][blue] + 5);
player[stats][yellow] = (player[stats][yellow] + 5);
} else {
if (_arg2 == 5){
playerDmgReduce = (playerDmgReduce + 2);
} else {
if (_arg2 == 6){
player[stats][hpmax] = (player[stats][hpmax] + 20);
player[stats][hp] = (player[stats][hp] + 20);
} else {
if (_arg2 == 7){
player[stats][red] = (player[stats][red] + 10);
player[stats][green] = (player[stats][green] + 10);
player[stats][blue] = (player[stats][blue] + 10);
player[stats][yellow] = (player[stats][yellow] + 10);
} else {
if (_arg2 == 8){
playerDmgReduce = (playerDmgReduce + 3);
} else {
if (_arg2 == 9){
playerDmgIncrease = (playerDmgIncrease + 2);
} else {
if (_arg2 == 10){
player[stats][red] = (player[stats][red] + 15);
player[stats][green] = (player[stats][green] + 15);
player[stats][blue] = (player[stats][blue] + 15);
player[stats][yellow] = (player[stats][yellow] + 15);
} else {
if (_arg2 == 11){
playerDmgReduce = (playerDmgReduce + 4);
} else {
if (_arg2 == 12){
playerDmgIncrease = (playerDmgIncrease + 4);
};
};
};
};
};
};
};
};
};
};
};
};
} else {
if (_arg1 == "opponent"){
if (_arg2 == 1){
opponent[stats][red] = (opponent[stats][red] + 10);
} else {
if (_arg2 == 2){
opponentDmgReduce = (opponentDmgReduce + 1);
} else {
if (_arg2 == 3){
opponent[stats][hpmax] = (opponent[stats][hpmax] + 10);
opponent[stats][hp] = (opponent[stats][hp] + 10);
} else {
if (_arg2 == 4){
opponent[stats][red] = (opponent[stats][red] + 5);
opponent[stats][green] = (opponent[stats][green] + 5);
opponent[stats][blue] = (opponent[stats][blue] + 5);
opponent[stats][yellow] = (opponent[stats][yellow] + 5);
} else {
if (_arg2 == 5){
opponentDmgReduce = (opponentDmgReduce + 2);
} else {
if (_arg2 == 6){
opponent[stats][hpmax] = (opponent[stats][hpmax] + 20);
opponent[stats][hp] = (opponent[stats][hp] + 20);
} else {
if (_arg2 == 7){
opponent[stats][red] = (opponent[stats][red] + 10);
opponent[stats][green] = (opponent[stats][green] + 10);
opponent[stats][blue] = (opponent[stats][blue] + 10);
opponent[stats][yellow] = (opponent[stats][yellow] + 10);
} else {
if (_arg2 == 8){
opponentDmgReduce = (opponentDmgReduce + 3);
} else {
if (_arg2 == 9){
opponentDmgIncrease = (opponentDmgIncrease + 2);
} else {
if (_arg2 == 10){
opponent[stats][red] = (opponent[stats][red] + 15);
opponent[stats][green] = (opponent[stats][green] + 15);
opponent[stats][blue] = (opponent[stats][blue] + 15);
opponent[stats][yellow] = (opponent[stats][yellow] + 15);
} else {
if (_arg2 == 11){
opponentDmgReduce = (opponentDmgReduce + 4);
} else {
if (_arg2 == 12){
opponentDmgIncrease = (opponentDmgIncrease + 4);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function calculateSwap(){
var _local1:Piece;
var _local2:uint;
if (lookForPossibles()){
listAllPossibles();
if ((((difficulty == "easy")) || ((((difficulty == "normal")) && (((Math.random() * 100) > 50)))))){
_local1 = grid[allSwaps[0][1]][allSwaps[0][2]];
return (_local1);
};
if ((((difficulty == "normal")) || ((difficulty == "hard")))){
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((allSwaps[_local2][0] == 1)) || ((allSwaps[_local2][0] == 8)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if (allSwaps[_local2][0] == 9){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if (allSwaps[_local2][0] == opponent[stats][prefcolor]){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((((((allSwaps[_local2][0] == 4)) || ((allSwaps[_local2][0] == 5)))) || ((allSwaps[_local2][0] == 6)))) || ((allSwaps[_local2][0] == 7)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((allSwaps[_local2][0] == 2)) || ((allSwaps[_local2][0] == 3)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
};
} else {
manaBurn();
};
}
public function addSkill(_arg1:String, _arg2:uint, _arg3:uint):Skill{
var _local4:Skill;
skillSprite = new Sprite();
_local4 = new Skill();
if (_arg1 == "player"){
_local4.x = 8;
} else {
_local4.x = 528;
};
_local4.y = (183 + (_arg3 * 35));
_local4.type = _arg2;
_local4.cooldown = 0;
_local4.gotoAndStop(_arg2);
if (_arg2 != 17){
_local4.timer.visible = false;
};
skillSprite.addChild(_local4);
if (_arg1 == "player"){
_local4.addEventListener(MouseEvent.MOUSE_UP, skillActivation);
};
addChild(skillSprite);
return (_local4);
}
public function playSound(_arg1:Object){
var _local2:SoundChannel;
if (userData.data.game[sound] == true){
_local2 = _arg1.play();
};
}
public function clickPiece(_arg1:MouseEvent){
var _local2:Piece;
var _local3:Array;
var _local4:int;
if (((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && ((skillActivated == 0)))){
_local2 = Piece(_arg1.currentTarget);
if (firstPiece == null){
_local2.select.visible = true;
firstPiece = _local2;
} else {
if (firstPiece == _local2){
_local2.select.visible = false;
firstPiece = null;
} else {
_local3 = new Array();
firstPiece.select.visible = false;
_local3 = [[0, 1], [0, -1], [-1, 0], [1, 0]];
_local4 = 0;
while (_local4 < _local3.length) {
if ((((Math.abs((firstPiece.col + _local3[_local4][0])) == _local2.col)) && ((Math.abs((firstPiece.row + _local3[_local4][1])) == _local2.row)))){
turnCombo = 0;
makeSwap(firstPiece, _local2);
firstPiece = null;
break;
};
_local4++;
};
if (firstPiece != null){
firstPiece = _local2;
firstPiece.select.visible = true;
};
};
};
} else {
if (((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && ((skillActivated == 1)))){
_local2 = Piece(_arg1.currentTarget);
player[stats][red] = (player[stats][red] - 10);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill1(_local2);
skillActivated = 0;
infoText.text = "";
} else {
if (((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && ((skillActivated == 7)))){
_local2 = Piece(_arg1.currentTarget);
if ((((((((_local2.type == 4)) || ((_local2.type == 5)))) || ((_local2.type == 6)))) || ((_local2.type == 7)))){
player[stats][red] = (player[stats][red] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill7(_local2);
skillActivated = 0;
infoText.text = "";
} else {
infoText.text = "Invalid piece";
};
} else {
if (((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && ((skillActivated == 15)))){
_local2 = Piece(_arg1.currentTarget);
if ((((((((_local2.type == 4)) || ((_local2.type == 5)))) || ((_local2.type == 6)))) || ((_local2.type == 7)))){
if (color1 == 0){
color1 = _local2.type;
infoText.text = "Select target color";
} else {
if (_local2.type != color1){
infoText.text = "";
player[stats][blue] = (player[stats][blue] - 5);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill15(color1, _local2.type);
skillActivated = 0;
color1 = 0;
};
};
} else {
skillActivated = 0;
color1 = 0;
infoText.text = "Invalid piece";
};
};
};
};
};
}
public function skillActivation(_arg1:MouseEvent){
currentSkill = Skill(_arg1.currentTarget);
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated > 0)))){
skillActivated = 0;
infoText.text = "";
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 1)))){
if (checkSkillReq("player", currentSkill)){
skillActivated = 1;
infoText.text = "Select row to delete";
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 2)))){
if (checkSkillReq("player", currentSkill)){
player[stats][green] = (player[stats][green] - 10);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill2("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 3)))){
if (checkSkillReq("player", currentSkill)){
player[stats][yellow] = (player[stats][yellow] - 3);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill3("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 4)))){
if (checkSkillReq("player", currentSkill)){
player[stats][green] = (player[stats][green] - 3);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill4("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 5)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 10);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill5("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 6)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill6();
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 7)))){
if (checkSkillReq("player", currentSkill)){
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skillActivated = 7;
infoText.text = "Select color to delete";
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 8)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill8("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 9)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill9("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 10)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill10(Math.floor((player[stats][red] / 8)));
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 11)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 15);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill11("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 12)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill12("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 13)))){
if (checkSkillReq("player", currentSkill)){
player[stats][green] = (player[stats][green] - 15);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill13("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 14)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 15);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill14("player");
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 15)))){
if (checkSkillReq("player", currentSkill)){
skillActivated = 15;
infoText.text = "Select source color";
};
} else {
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 16)))){
if (checkSkillReq("player", currentSkill)){
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown("all", false);
skill16();
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function playerPenalty(){
var _local1:*;
var _local2:String;
addComputerScore(5, 1, 1);
if (turnTimeCount <= 0){
_local2 = "TIME UP";
} else {
_local2 = "WRONG MOVE";
};
_local1 = new PointBurst(this, _local2, 315, 200, 99);
skillActivated = 0;
infoText.text = "";
updateTurn(0);
}
public function addScore(_arg1, _arg2:int){
if ((((_arg2 == 1)) && (!(gameOver)))){
if (opponent[stats][hp] == 0){
opponent[stats][hp] = 0;
gameOver = true;
showSummary();
} else {
if (opponent[stats][hp] <= _arg1){
opponent[stats][hp] = 0;
gameOver = true;
showSummary();
} else {
opponent[stats][hp] = (opponent[stats][hp] - _arg1);
};
};
} else {
if (_arg2 == 2){
if ((player[stats][gold] + _arg1) >= 99999){
player[stats][gold] = 99999;
} else {
player[stats][gold] = (player[stats][gold] + _arg1);
};
} else {
if (_arg2 == 3){
if ((player[stats][exp] + _arg1) >= 99999){
player[stats][exp] = 99999;
} else {
player[stats][exp] = (player[stats][exp] + _arg1);
};
} else {
if (_arg2 == 4){
player[stats][red] = (player[stats][red] + _arg1);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
} else {
if (_arg2 == 5){
player[stats][green] = (player[stats][green] + _arg1);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
} else {
if (_arg2 == 6){
player[stats][blue] = (player[stats][blue] + _arg1);
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
} else {
if (_arg2 == 7){
player[stats][yellow] = (player[stats][yellow] + _arg1);
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
} else {
if (_arg2 == 9){
player[stats][red] = (player[stats][red] + _arg1);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
player[stats][green] = (player[stats][green] + _arg1);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
player[stats][blue] = (player[stats][blue] + _arg1);
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
player[stats][yellow] = (player[stats][yellow] + _arg1);
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
};
};
};
};
};
};
};
};
updateScore();
}
public function challengeDone(_arg1:Event){
var variables:URLVariables;
var event = _arg1;
try {
myLoader.dataFormat = URLLoaderDataFormat.TEXT;
variables = new URLVariables(myLoader.data);
if (variables.finish == 1){
myLoader.removeEventListener(Event.COMPLETE, challengeDone);
summaryBox.gotoAndStop(3);
};
} catch(error:Error) {
myLoader.removeEventListener(Event.COMPLETE, challengeDone);
summaryBox.submitBox.visible = false;
};
}
public function lookForPossibles(){
var _local1:int;
var _local2:int;
var _local3:Boolean;
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
_local3 = false;
_local3 = matchPattern(_local1, _local2, [[1, 0]], [[-2, 0], [-1, -1], [-1, 1], [2, -1], [2, 1], [3, 0]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[2, 0]], [[1, -1], [1, 1]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[0, 1]], [[0, -2], [-1, -1], [1, -1], [-1, 2], [1, 2], [0, 3]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[0, 2]], [[-1, 1], [1, 1]]);
if (_local3){
return (true);
};
_local2++;
};
_local1++;
};
return (false);
}
public function matchType(_arg1, _arg2, _arg3:int){
if ((((((((_arg1 < 0)) || ((_arg1 > 7)))) || ((_arg2 < 0)))) || ((_arg2 > 7)))){
return (false);
};
return ((((grid[_arg1][_arg2].type == _arg3)) || ((((((((grid[_arg1][_arg2].type == 9)) && (!((_arg3 == 1))))) && (!((_arg3 == 2))))) && (!((_arg3 == 3)))))));
}
public function movePieces(_arg1:Event){
var _local2:Boolean;
var _local3:int;
var _local4:int;
_local2 = false;
_local3 = 0;
while (_local3 < 8) {
_local4 = 0;
while (_local4 < 8) {
if (grid[_local4][_local3] != null){
if (grid[_local4][_local3].y < ((grid[_local4][_local3].row * spacing) + offsetY)){
grid[_local4][_local3].y = (grid[_local4][_local3].y + 9);
_local2 = true;
} else {
if (grid[_local4][_local3].y > ((grid[_local4][_local3].row * spacing) + offsetY)){
grid[_local4][_local3].y = (grid[_local4][_local3].y - 9);
_local2 = true;
} else {
if (grid[_local4][_local3].x < ((grid[_local4][_local3].col * spacing) + offsetX)){
grid[_local4][_local3].x = (grid[_local4][_local3].x + 9);
_local2 = true;
} else {
if (grid[_local4][_local3].x > ((grid[_local4][_local3].col * spacing) + offsetX)){
grid[_local4][_local3].x = (grid[_local4][_local3].x - 9);
_local2 = true;
};
};
};
};
};
_local4++;
};
_local3++;
};
if (((((((isDropping) && (!(_local2)))) && (!(gameOver)))) && (!(gamePaused)))){
isDropping = false;
findAndRemoveMatches();
} else {
if (((((((isSwapping) && (!(_local2)))) && (!(gameOver)))) && (!(gamePaused)))){
isSwapping = false;
findAndRemoveMatches();
};
};
if (((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))){
turnTimeCount--;
playerTurnIndicator.visible = true;
opponentTurnIndicator.visible = false;
playerTimer.visible = true;
opponentTimer.visible = false;
if (((((((showHint) && ((turnTimeCount <= (turnTime / 2))))) && ((difficulty == "easy")))) || (((((showHint) && ((turnTimeCount <= (turnTime / 4))))) && ((difficulty == "normal")))))){
hintPiece.hint.visible = true;
};
if (turnTimeCount <= 0){
playerPenalty();
};
} else {
if (((((!(playerTurn)) && (!(gameOver)))) && (!(gamePaused)))){
turnTimeCount--;
playerTurnIndicator.visible = false;
opponentTurnIndicator.visible = true;
playerTimer.visible = false;
opponentTimer.visible = true;
};
};
}
public function swapPieces(_arg1, _arg2:Piece){
var _local3:uint;
var _local4:uint;
_local3 = _arg1.col;
_local4 = _arg1.row;
_arg1.col = _arg2.col;
_arg1.row = _arg2.row;
_arg2.col = _local3;
_arg2.row = _local4;
grid[_arg1.col][_arg1.row] = _arg1;
grid[_arg2.col][_arg2.row] = _arg2;
}
public function cleanUp(){
grid = null;
removeChild(gameSprite);
removeChild(skillSprite);
gameSprite = null;
skillSprite = null;
setPause.removeEventListener(MouseEvent.CLICK, togglePauseGame);
summaryBox.menuBox.removeEventListener(MouseEvent.CLICK, endGame);
removeEventListener(Event.ENTER_FRAME, movePieces);
removeEventListener(Event.ENTER_FRAME, animateBars);
}
public function calculateScore(_arg1:Boolean, _arg2:uint, _arg3:uint, _arg4:uint){
if (_arg1){
if (_arg3 == 1){
return ((((2 + _arg4) - Math.floor((opponentDmgReduce / _arg2))) + Math.floor((playerDmgIncrease / _arg2))));
};
if (_arg3 == 2){
return (20);
};
if (_arg3 == 3){
return (10);
};
if (_arg3 == 4){
return (_arg2);
};
if (_arg3 == 5){
return (_arg2);
};
if (_arg3 == 6){
return (_arg2);
};
if (_arg3 == 7){
return (_arg2);
};
if (_arg3 == 9){
return (_arg4);
};
return (0);
//unresolved jump
};
if (_arg3 == 1){
return ((((2 + _arg4) - Math.floor((playerDmgReduce / _arg2))) + Math.floor((opponentDmgIncrease / _arg2))));
};
if (_arg3 == 2){
return (20);
};
if (_arg3 == 3){
return (10);
};
if (_arg3 == 4){
return (_arg2);
};
if (_arg3 == 5){
return (_arg2);
};
if (_arg3 == 6){
return (_arg2);
};
if (_arg3 == 7){
return (_arg2);
};
if (_arg3 == 9){
return (_arg4);
};
return (0);
}
public function addPiece(_arg1, _arg2:int):Piece{
var _local3:Piece;
_local3 = new Piece();
_local3.x = ((_arg1 * spacing) + offsetX);
_local3.y = (((_arg2 * spacing) + offsetY) - 396);
_local3.col = _arg1;
_local3.row = _arg2;
if ((Math.random() * 1000) < 25){
_local3.type = 1;
_local3.gotoAndStop(8);
_local3.bonus = 2;
} else {
if (((multiBlock) || (((Math.random() * 1000) < 25)))){
multiBlock = false;
_local3.type = 9;
_local3.gotoAndStop(9);
_local3.bonus = 3;
} else {
_local3.type = Math.ceil((Math.random() * 7));
_local3.gotoAndStop(_local3.type);
_local3.bonus = 0;
};
};
_local3.select.visible = false;
_local3.hint.visible = false;
gameSprite.addChild(_local3);
grid[_arg1][_arg2] = _local3;
_local3.addEventListener(MouseEvent.MOUSE_DOWN, clickPiece);
_local3.addEventListener(MouseEvent.MOUSE_OVER, identifyPiece);
return (_local3);
}
public function setBackground(){
var _local1:uint;
if (opponent[stats][charid] <= 6){
_local1 = 1;
} else {
if (opponent[stats][charid] <= 12){
_local1 = 2;
} else {
if (opponent[stats][charid] <= 17){
_local1 = 3;
};
};
};
fieldBackground.gotoAndStop(_local1);
}
public function identifyPiece(_arg1:MouseEvent){
var _local2:uint;
var _local3:uint;
var _local4:Piece;
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 8) {
if (grid[_local2][_local3] != null){
grid[_local2][_local3].select.visible = false;
};
_local3++;
};
_local2++;
};
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated == 0)))){
if (firstPiece != null){
firstPiece.select.visible = true;
};
};
if (((((((((((playerTurn) && (!(gameOver)))) && (!(gamePaused)))) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated == 1)))){
_local4 = Piece(_arg1.currentTarget);
_local2 = 0;
while (_local2 < 8) {
grid[_local2][_local4.row].select.visible = true;
_local2++;
};
};
}
public function updateScore(){
if (player[stats][hp] < 0){
player[stats][hp] = 0;
};
if (player[stats][red] < 0){
player[stats][red] = 0;
};
if (player[stats][green] < 0){
player[stats][green] = 0;
};
if (player[stats][blue] < 0){
player[stats][blue] = 0;
};
if (player[stats][yellow] < 0){
player[stats][yellow] = 0;
};
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
if (opponent[stats][hp] <= 0){
opponent[stats][hp] = 0;
};
if (opponent[stats][red] <= 0){
opponent[stats][red] = 0;
};
if (opponent[stats][green] <= 0){
opponent[stats][green] = 0;
};
if (opponent[stats][blue] <= 0){
opponent[stats][blue] = 0;
};
if (opponent[stats][yellow] <= 0){
opponent[stats][yellow] = 0;
};
if (opponent[stats][hp] > opponent[stats][hpmax]){
opponent[stats][hp] = opponent[stats][hpmax];
};
if (opponent[stats][red] > opponent[stats][redmax]){
opponent[stats][red] = opponent[stats][redmax];
};
if (opponent[stats][green] > opponent[stats][greenmax]){
opponent[stats][green] = opponent[stats][greenmax];
};
if (opponent[stats][blue] > opponent[stats][bluemax]){
opponent[stats][blue] = opponent[stats][bluemax];
};
if (opponent[stats][yellow] > opponent[stats][yellowmax]){
opponent[stats][yellow] = opponent[stats][yellowmax];
};
playerHpDisplay.defaultTextFormat = hpFormat;
playerExpDisplay.defaultTextFormat = expFormat;
playerGoldDisplay.defaultTextFormat = goldFormat;
opponentHpDisplay.defaultTextFormat = hpFormat;
opponentExpDisplay.defaultTextFormat = expFormat;
opponentGoldDisplay.defaultTextFormat = goldFormat;
playerNameDisplay.text = String(player[stats][charname]);
playerHpDisplay.text = String(((player[stats][hp] + " / ") + player[stats][hpmax]));
playerExpDisplay.text = String(player[stats][exp]);
playerGoldDisplay.text = String(player[stats][gold]);
playerRedDisplay.text = String(player[stats][red]);
playerGreenDisplay.text = String(player[stats][green]);
playerBlueDisplay.text = String(player[stats][blue]);
playerYellowDisplay.text = String(player[stats][yellow]);
opponentNameDisplay.text = String(opponent[stats][charname]);
opponentHpDisplay.text = String(((Math.round(opponent[stats][hp]) + " / ") + Math.round(opponent[stats][hpmax])));
opponentExpDisplay.text = String(opponent[stats][exp]);
opponentGoldDisplay.text = String(opponent[stats][gold]);
opponentRedDisplay.text = String(opponent[stats][red]);
opponentGreenDisplay.text = String(opponent[stats][green]);
opponentBlueDisplay.text = String(opponent[stats][blue]);
opponentYellowDisplay.text = String(opponent[stats][yellow]);
}
public function updateCooldown(_arg1:String, _arg2:Boolean){
var _local3:uint;
var _local4:Skill;
if ((((_arg1 == "player")) || ((_arg1 == "all")))){
_local3 = 0;
while (_local3 < playerSkill.length) {
_local4 = playerSkill[_local3];
if (((_arg2) && ((_local4.cooldown > 0)))){
_local4.cooldown--;
};
if (((!((_local4 == null))) && ((_local4.cooldown > 0)))){
_local4.timer.visible = true;
_local4.timer.width = ((106 / playerSkillCooldown[_local4.type]) * _local4.cooldown);
} else {
if (((!((_local4 == null))) && (!(checkSkillReq("player", _local4))))){
_local4.timer.visible = true;
_local4.timer.width = 106;
} else {
_local4.timer.visible = false;
};
};
_local3++;
};
};
if ((((_arg1 == "opponent")) || ((_arg1 == "all")))){
_local3 = 0;
while (_local3 < opponentSkill.length) {
_local4 = opponentSkill[_local3];
if (((_arg2) && ((_local4.cooldown > 0)))){
_local4.cooldown--;
};
if (((!((_local4 == null))) && ((_local4.cooldown > 0)))){
_local4.timer.visible = true;
_local4.timer.width = ((106 / opponentSkillCooldown[_local4.type]) * _local4.cooldown);
} else {
if (((!((_local4 == null))) && (!(checkSkillReq("computer", _local4))))){
_local4.timer.visible = true;
_local4.timer.width = 106;
} else {
_local4.timer.visible = false;
};
};
_local3++;
};
};
}
public function makeComputerTurn(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:Piece;
var _local5:Piece;
var _local6:Piece;
var _local7:Piece;
_local1 = calculateSwap();
_local2 = _local1.col;
_local3 = _local1.row;
if ((((_local3 > 0)) && (!(isSwapping)))){
_local4 = grid[_local2][(_local3 - 1)];
makeSwap(_local1, _local4);
};
if ((((_local3 < 7)) && (!(isSwapping)))){
_local5 = grid[_local2][(_local3 + 1)];
makeSwap(_local1, _local5);
};
if ((((_local2 > 0)) && (!(isSwapping)))){
_local6 = grid[(_local2 - 1)][_local3];
makeSwap(_local1, _local6);
};
if ((((_local2 < 7)) && (!(isSwapping)))){
_local7 = grid[(_local2 + 1)][_local3];
makeSwap(_local1, _local7);
};
turnCombo = 0;
}
public function addCharItem(_arg1:String, _arg2:uint, _arg3:uint):Items{
var _local4:Items;
_local4 = new Items();
if (_arg1 == "player"){
_local4.x = 26.2;
} else {
_local4.x = 524;
};
_local4.y = (47.2 + (_arg3 * 24.5));
_local4.type = _arg2;
_local4.gotoAndStop(_arg2);
skillSprite.addChild(_local4);
return (_local4);
}
public function findAndRemoveMatches(){
var _local1:Array;
var _local2:int;
var _local3:int;
var _local4:*;
var _local5:Number;
_local1 = lookForMatches();
_local2 = 0;
while (_local2 < _local1.length) {
_local3 = 0;
while (_local3 < _local1[_local2].length) {
if (gameSprite.contains(_local1[_local2][_local3])){
if (playerTurn){
_local5 = calculateScore(true, (_local1[_local2].length - 1), _local1[_local2][_local3].type, _local1[_local2][_local3].bonus);
addScore(_local5, _local1[_local2][_local3].type);
} else {
_local5 = calculateScore(false, (_local1[_local2].length - 1), _local1[_local2][_local3].type, _local1[_local2][_local3].bonus);
addComputerScore(_local5, _local1[_local2][_local3].type, 1);
};
_local4 = new PointBurst(this, Math.floor(_local5), _local1[_local2][_local3].x, _local1[_local2][_local3].y, _local1[_local2][_local3].type);
gameSprite.removeChild(_local1[_local2][_local3]);
grid[_local1[_local2][_local3].col][_local1[_local2][_local3].row] = null;
affectAbove(_local1[_local2][_local3]);
};
_local3++;
};
turnCombo++;
if ((((_local1[_local2][0].type == 1)) || ((_local1[_local2][0].type == 8)))){
playSound(theMatchWeaponSound);
} else {
if (_local1[_local2][0].type == 2){
playSound(theMatchMoneySound);
} else {
if (_local1[_local2][0].type == 3){
playSound(theMatchExpSound);
} else {
if ((((((((((_local1[_local2][0].type == 4)) || ((_local1[_local2][0].type == 5)))) || ((_local1[_local2][0].type == 6)))) || ((_local1[_local2][0].type == 7)))) || ((_local1[_local2][0].type == 9)))){
if (turnCombo <= 1){
playSound(theMatchGemSound);
} else {
if (turnCombo <= 5){
playSound(theMatchGemSound2);
} else {
playSound(theMatchGemSound3);
};
};
};
};
};
};
if (_local1[_local2].length == 4){
extraTurn = true;
_local4 = new PointBurst(this, "4-IN-A-ROW", 315, 200, 99);
} else {
if (_local1[_local2].length == 5){
extraTurn = true;
multiBlock = true;
_local4 = new PointBurst(this, "5-IN-A-ROW", 315, 200, 99);
};
};
if (turnCombo >= 6){
extraTurn = true;
addScore(100, 3);
turnCombo = 0;
_local4 = new PointBurst(this, "CHAIN BONUS", 315, 200, 99);
};
_local2++;
};
addNewPieces();
if ((((((_local1.length == 0)) && (!(isDropping)))) && (!(isSwapping)))){
if (((!(isDropping)) && (!(isSwapping)))){
updateTurn(0);
};
if (!lookForPossibles()){
manaBurn();
};
};
}
public function endGame(_arg1:MouseEvent){
var _local2:String;
if (!gameOver){
player[score] = (player[score] - 25);
if (player[score] < 0){
player[score] = 0;
};
_local2 = userData.data.game[charid];
userData.data[("player" + _local2)] = player;
userData.flush();
if (this.root.loaderInfo.url.indexOf(domainControl) != -1){
myVariables.id = player[id];
myVariables.score = player[score];
myRequest = new URLRequest("./highscore_update.php");
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVariables;
myLoader.load(myRequest);
};
};
cleanUp();
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame - 1));
}
public function setupGrid(){
var _local1:uint;
var _local2:int;
turnTimeCount = (turnTimeCount + 40);
while (true) {
gameSprite = new Sprite();
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
addPiece(_local1, _local2);
_local2++;
};
_local1++;
};
if (lookForMatches().length != 0){
} else {
if (lookForPossibles() == false){
} else {
break;
};
};
};
addChild(gameSprite);
setChildIndex(gameSprite, 4);
}
public function startGame(){
var _local1:int;
hpFormat = new TextFormat("Verdana", 14, 0, true, false, false, null, null, "center");
expFormat = new TextFormat("Verdana", 11, 0xFFFFFF, true, false, false, null, null, "center");
goldFormat = new TextFormat("Verdana", 11, 0xFFFFFF, true, false, false, null, null, "center");
grid = new Array();
_local1 = 0;
while (_local1 < 8) {
grid.push(new Array());
_local1++;
};
setBackground();
setupGrid();
addSkills();
addItems();
playerCharFrame.charImage.gotoAndStop(userData.data.player[stats][classname]);
opponentCharFrame.charImage.gotoAndStop(userData.data.opponent[stats][classname]);
hintPiece = calculateSwap();
setPause.addEventListener(MouseEvent.CLICK, togglePauseGame);
summaryBox.continueBox.addEventListener(MouseEvent.CLICK, togglePauseGame);
summaryBox.challengeBox.addEventListener(MouseEvent.CLICK, emailChallenge);
summaryBox.menuBox.addEventListener(MouseEvent.CLICK, endGame);
addEventListener(Event.ENTER_FRAME, animateBars);
addEventListener(Event.ENTER_FRAME, movePieces);
updateScore();
updateCooldown("all", false);
if (!playerTurn){
startComputerTurn(2000);
};
}
public function addItems(){
var _local1:int;
_local1 = 1;
while (_local1 < player[charitems].length) {
if (player[charitems][_local1] != null){
addCharItem("player", player[charitems][_local1], _local1);
itemValues("player", player[charitems][_local1]);
};
_local1++;
};
_local1 = 1;
while (_local1 < opponent[charitems].length) {
if (opponent[charitems][_local1] != null){
addCharItem("opponent", opponent[charitems][_local1], _local1);
itemValues("opponent", opponent[charitems][_local1]);
};
_local1++;
};
}
public function startComputerTurn(_arg1:uint){
var _local2:Timer;
if (((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))){
_local2 = new Timer((((Math.random() * 3000) + 1000) + _arg1), 1);
_local2.addEventListener(TimerEvent.TIMER_COMPLETE, chooseComputerMove);
_local2.start();
} else {
if (!gameOver){
_local2 = new Timer((((Math.random() * 3000) + 1000) + 2000), 1);
_local2.addEventListener(TimerEvent.TIMER_COMPLETE, chooseComputerMove);
_local2.start();
};
};
}
public function getMatchHoriz(_arg1, _arg2):Array{
var _local3:Array;
var _local4:int;
var _local5:uint;
_local3 = new Array(grid[_arg1][_arg2]);
_local4 = 1;
while ((_arg1 + _local4) < 8) {
if (grid[_arg1][_arg2].type == 9){
_local5 = (_local4 - 1);
if (_local5 < 1){
_local5 = 1;
};
if ((((((((((grid[(_arg1 + _local5)][_arg2].type == grid[(_arg1 + _local4)][_arg2].type)) && (!((grid[(_arg1 + _local4)][_arg2].type == 1))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 2))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 3))))) || ((grid[(_arg1 + _local4)][_arg2].type == 9)))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
if ((((((((((grid[(_arg1 + _local5)][_arg2].type == 9)) && (!((grid[(_arg1 + _local4)][_arg2].type == 1))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 2))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 3))))) || ((grid[(_arg1 + _local4)][_arg2].type == 9)))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
return (_local3);
};
};
} else {
if (grid[_arg1][_arg2].type == grid[(_arg1 + _local4)][_arg2].type){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
if ((((((((grid[(_arg1 + _local4)][_arg2].type == 9)) && (!((grid[_arg1][_arg2].type == 1))))) && (!((grid[_arg1][_arg2].type == 2))))) && (!((grid[_arg1][_arg2].type == 3))))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
return (_local3);
};
};
};
_local4++;
};
return (_local3);
}
}
}//package
Section 28
//Items (Items)
package {
import flash.display.*;
public dynamic class Items extends MovieClip {
}
}//package
Section 29
//Itemshop (Itemshop)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
public class Itemshop extends MovieClip {
private var classname:uint;// = 2
private var userData:SharedObject;
private var exp:uint;// = 6
private var lvl:uint;// = 3
private var charitems:uint;// = 2
private var gold:uint;// = 7
private var blue:uint;// = 10
private var pos:uint;// = 4
private var lvlprogress:uint;// = 18
private var skills:uint;// = 1
private var yellowmax:uint;// = 15
private var yellow:uint;// = 11
private var red:uint;// = 8
public var buyItem1:MovieClip;
public var buyItem2:MovieClip;
public var buyItem3:MovieClip;
public var buyItem4:MovieClip;
public var buyItem6:MovieClip;
public var buyItem10:MovieClip;
public var buyItem12:MovieClip;
public var buyItem5:MovieClip;
public var buyItem7:MovieClip;
public var buyItem8:MovieClip;
public var buyItem9:MovieClip;
public var buyItem11:MovieClip;
private var stats:uint;// = 0
private var castrate:uint;// = 17
private var score:int;// = 5
private var bluemax:uint;// = 14
public var charGold:TextField;
private var charname:uint;// = 1
public var charLvl:TextField;
private var charid:uint;// = 0
private var player:Array;
private var green:uint;// = 9
private var hp:uint;// = 4
private var id:uint;// = 6
public var exit:MovieClip;
private var prefcolor:uint;// = 16
private var theMatchMoneySound:MatchMoneySound;
private var sound:uint;// = 1
private var redmax:uint;// = 12
private var opponent:Array;
private var hpmax:uint;// = 5
public var deleteItem:MovieClip;
public var charExperience:TextField;
private var levels:uint;// = 3
public var item2:Items;
public var storeLvl:TextField;
public var item1:Items;
public var item3:Items;
private var greenmax:uint;// = 13
private var initialY:int;
public var charImage:Characters;
private var initialX:int;
public function Itemshop(){
var _local1:String;
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
lvlprogress = 18;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
theMatchMoneySound = new MatchMoneySound();
super();
userData = SharedObject.getLocal("Gangsters");
_local1 = userData.data.game[charid];
player = userData.data[("player" + _local1)];
opponent = userData.data.opponent;
itemInfo();
}
public function playSound(_arg1:Object){
var _local2:SoundChannel;
if (userData.data.game[sound] == true){
_local2 = _arg1.play();
};
}
public function itemInfo(){
var _local1:uint;
var _local2:uint;
var _local3:Items;
storeLvl.text = opponent[stats][lvl];
charImage.gotoAndStop(userData.data.player[stats][classname]);
charLvl.text = player[stats][lvl];
charExperience.text = player[stats][exp];
charGold.text = player[stats][gold];
buyItem1.addEventListener(MouseEvent.CLICK, checkItem1);
buyItem2.addEventListener(MouseEvent.CLICK, checkItem2);
buyItem3.addEventListener(MouseEvent.CLICK, checkItem3);
buyItem4.addEventListener(MouseEvent.CLICK, checkItem4);
buyItem5.addEventListener(MouseEvent.CLICK, checkItem5);
buyItem6.addEventListener(MouseEvent.CLICK, checkItem6);
buyItem7.addEventListener(MouseEvent.CLICK, checkItem7);
buyItem8.addEventListener(MouseEvent.CLICK, checkItem8);
buyItem9.addEventListener(MouseEvent.CLICK, checkItem9);
buyItem10.addEventListener(MouseEvent.CLICK, checkItem10);
buyItem11.addEventListener(MouseEvent.CLICK, checkItem11);
buyItem12.addEventListener(MouseEvent.CLICK, checkItem12);
exit.addEventListener(MouseEvent.CLICK, exitItems);
if (player[charitems][1] != null){
item1.gotoAndStop(player[charitems][1]);
} else {
item1.gotoAndStop(13);
};
if (player[charitems][2] != null){
item2.gotoAndStop(player[charitems][2]);
} else {
item2.gotoAndStop(14);
};
if (player[charitems][3] != null){
item3.gotoAndStop(player[charitems][3]);
} else {
item3.gotoAndStop(15);
};
buyItem1.visible = false;
buyItem2.visible = false;
buyItem3.visible = false;
buyItem4.visible = false;
buyItem5.visible = false;
buyItem6.visible = false;
buyItem7.visible = false;
buyItem8.visible = false;
buyItem9.visible = false;
buyItem10.visible = false;
buyItem11.visible = false;
buyItem12.visible = false;
if (opponent[stats][lvl] == 1){
buyItem1.visible = true;
buyItem2.visible = true;
buyItem3.visible = true;
};
if (opponent[stats][lvl] == 2){
buyItem4.visible = true;
buyItem5.visible = true;
buyItem6.visible = true;
};
if (opponent[stats][lvl] == 3){
buyItem7.visible = true;
buyItem8.visible = true;
buyItem9.visible = true;
};
if (opponent[stats][lvl] == 4){
buyItem10.visible = true;
buyItem11.visible = true;
buyItem12.visible = true;
};
_local1 = 0;
while (_local1 < player[charitems][0].length) {
if (player[charitems][0][_local1] == 1){
buyItem1.visible = false;
};
if (player[charitems][0][_local1] == 2){
buyItem2.visible = false;
};
if (player[charitems][0][_local1] == 3){
buyItem3.visible = false;
};
if (player[charitems][0][_local1] == 4){
buyItem4.visible = false;
};
if (player[charitems][0][_local1] == 5){
buyItem5.visible = false;
};
if (player[charitems][0][_local1] == 6){
buyItem6.visible = false;
};
if (player[charitems][0][_local1] == 7){
buyItem7.visible = false;
};
if (player[charitems][0][_local1] == 8){
buyItem8.visible = false;
};
if (player[charitems][0][_local1] == 9){
buyItem9.visible = false;
};
if (player[charitems][0][_local1] == 10){
buyItem10.visible = false;
};
if (player[charitems][0][_local1] == 11){
buyItem11.visible = false;
};
if (player[charitems][0][_local1] == 12){
buyItem12.visible = false;
};
_local1++;
};
_local2 = 0;
_local1 = 0;
while (_local1 < player[charitems][0].length) {
_local2++;
_local3 = new Items();
_local3.x = (-227.9 + (60 * _local1));
_local3.y = 130;
_local3.width = 44.4;
_local3.height = 33.8;
_local3.gotoAndStop(player[charitems][0][_local1]);
_local3.type = player[charitems][0][_local1];
_local3.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local3.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local3);
setChildIndex(_local3, (this.numChildren - _local2));
_local1++;
};
}
public function stopDragItem(_arg1:MouseEvent){
var _local2:Object;
var _local3:uint;
_local2 = _arg1.currentTarget;
_local2.stopDrag();
if (((((((((_local2.hitTestObject(item1)) && ((_local2.type == 1)))) || (((_local2.hitTestObject(item1)) && ((_local2.type == 4)))))) || (((_local2.hitTestObject(item1)) && ((_local2.type == 7)))))) || (((_local2.hitTestObject(item1)) && ((_local2.type == 10)))))){
item1.gotoAndStop(_local2.currentFrame);
player[charitems][1] = _local2.currentFrame;
_local2.x = initialX;
_local2.y = initialY;
} else {
if (((((((((_local2.hitTestObject(item2)) && ((_local2.type == 2)))) || (((_local2.hitTestObject(item2)) && ((_local2.type == 5)))))) || (((_local2.hitTestObject(item2)) && ((_local2.type == 8)))))) || (((_local2.hitTestObject(item2)) && ((_local2.type == 11)))))){
item2.gotoAndStop(_local2.currentFrame);
player[charitems][2] = _local2.currentFrame;
_local2.x = initialX;
_local2.y = initialY;
} else {
if (((((((((_local2.hitTestObject(item3)) && ((_local2.type == 3)))) || (((_local2.hitTestObject(item3)) && ((_local2.type == 6)))))) || (((_local2.hitTestObject(item3)) && ((_local2.type == 9)))))) || (((_local2.hitTestObject(item3)) && ((_local2.type == 12)))))){
item3.gotoAndStop(_local2.currentFrame);
player[charitems][3] = _local2.currentFrame;
_local2.x = initialX;
_local2.y = initialY;
} else {
if (_local2.hitTestObject(deleteItem)){
_local3 = 0;
while (_local3 < player[charitems][0].length) {
if (player[charitems][0][_local3] == _local2.currentFrame){
player[charitems][0].splice(_local3, 1);
};
_local3++;
};
if (_local2.currentFrame == item1.currentFrame){
item1.gotoAndStop(13);
player[charitems][1] = null;
} else {
if (_local2.currentFrame == item2.currentFrame){
item2.gotoAndStop(14);
player[charitems][2] = null;
} else {
if (_local2.currentFrame == item3.currentFrame){
item3.gotoAndStop(15);
player[charitems][3] = null;
};
};
};
_local2.visible = false;
} else {
_local2.x = initialX;
_local2.y = initialY;
};
};
};
};
}
public function startDragItem(_arg1:MouseEvent){
var _local2:Object;
_local2 = _arg1.currentTarget;
initialX = _local2.x;
initialY = _local2.y;
_local2.startDrag(false);
}
public function exitItems(_arg1:Event){
var _local2:String;
exit.removeEventListener(MouseEvent.CLICK, exitItems);
_local2 = userData.data.game[charid];
userData.data[("player" + _local2)] = player;
userData.data.opponent = opponent;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame - 2));
};
}
public function checkItem1(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 500)) && ((player[charitems][0].length <= 6)))){
buyItem1.visible = false;
player[stats][gold] = (player[stats][gold] - 500);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(1);
_local2.type = 1;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(1);
item1.gotoAndStop(1);
player[charitems][1] = 1;
playSound(theMatchMoneySound);
};
}
public function checkItem2(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 1500)) && ((player[charitems][0].length <= 6)))){
buyItem2.visible = false;
player[stats][gold] = (player[stats][gold] - 1500);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(2);
_local2.type = 2;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(2);
item2.gotoAndStop(2);
player[charitems][2] = 2;
playSound(theMatchMoneySound);
};
}
public function checkItem3(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 1000)) && ((player[charitems][0].length <= 6)))){
buyItem3.visible = false;
player[stats][gold] = (player[stats][gold] - 1000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(3);
_local2.type = 3;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(3);
item3.gotoAndStop(3);
player[charitems][3] = 3;
playSound(theMatchMoneySound);
};
}
public function checkItem5(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 4000)) && ((player[charitems][0].length <= 6)))){
buyItem5.visible = false;
player[stats][gold] = (player[stats][gold] - 4000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(5);
_local2.type = 5;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(5);
item2.gotoAndStop(5);
player[charitems][2] = 5;
playSound(theMatchMoneySound);
};
}
public function checkItem6(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 2500)) && ((player[charitems][0].length <= 6)))){
buyItem6.visible = false;
player[stats][gold] = (player[stats][gold] - 2500);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(6);
_local2.type = 6;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(6);
item3.gotoAndStop(6);
player[charitems][3] = 6;
playSound(theMatchMoneySound);
};
}
public function checkItem8(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 6000)) && ((player[charitems][0].length <= 6)))){
buyItem8.visible = false;
player[stats][gold] = (player[stats][gold] - 6000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(8);
_local2.type = 8;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(8);
item2.gotoAndStop(8);
player[charitems][2] = 8;
playSound(theMatchMoneySound);
};
}
public function checkItem7(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 6000)) && ((player[charitems][0].length <= 6)))){
buyItem7.visible = false;
player[stats][gold] = (player[stats][gold] - 6000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(7);
_local2.type = 7;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(7);
item1.gotoAndStop(7);
player[charitems][1] = 7;
playSound(theMatchMoneySound);
};
}
public function checkItem9(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 8000)) && ((player[charitems][0].length <= 6)))){
buyItem9.visible = false;
player[stats][gold] = (player[stats][gold] - 8000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(9);
_local2.type = 9;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(9);
item3.gotoAndStop(9);
player[charitems][3] = 9;
playSound(theMatchMoneySound);
};
}
public function checkItem4(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 2000)) && ((player[charitems][0].length <= 6)))){
buyItem4.visible = false;
player[stats][gold] = (player[stats][gold] - 2000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(4);
_local2.type = 4;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(4);
item1.gotoAndStop(4);
player[charitems][1] = 4;
playSound(theMatchMoneySound);
};
}
public function checkItem10(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 8000)) && ((player[charitems][0].length <= 6)))){
buyItem10.visible = false;
player[stats][gold] = (player[stats][gold] - 8000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(10);
_local2.type = 10;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(10);
item1.gotoAndStop(10);
player[charitems][1] = 10;
playSound(theMatchMoneySound);
};
}
public function checkItem12(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 8000)) && ((player[charitems][0].length <= 6)))){
buyItem12.visible = false;
player[stats][gold] = (player[stats][gold] - 8000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(12);
_local2.type = 12;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(12);
item3.gotoAndStop(12);
player[charitems][3] = 12;
playSound(theMatchMoneySound);
};
}
public function checkItem11(_arg1:Event){
var _local2:Items;
if ((((player[stats][gold] >= 8000)) && ((player[charitems][0].length <= 6)))){
buyItem11.visible = false;
player[stats][gold] = (player[stats][gold] - 8000);
charGold.text = player[stats][gold];
_local2 = new Items();
_local2.x = (-227.9 + (60 * player[charitems][0].length));
_local2.y = 130;
_local2.width = 44.4;
_local2.height = 33.8;
_local2.gotoAndStop(11);
_local2.type = 11;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, startDragItem);
_local2.addEventListener(MouseEvent.MOUSE_UP, stopDragItem);
addChild(_local2);
setChildIndex(_local2, (this.numChildren - (player[charitems][0].length + 1)));
player[charitems][0].push(11);
item2.gotoAndStop(11);
player[charitems][2] = 11;
playSound(theMatchMoneySound);
};
}
}
}//package
Section 30
//Login (Login)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.net.*;
public class Login extends MovieClip {
private var domainControl:String;// = "plox.info/"
private var classname:uint;// = 2
private var userData:SharedObject;
private var exp:uint;// = 6
private var lvl:uint;// = 3
private var charitems:uint;// = 2
private var gold:uint;// = 7
private var blue:uint;// = 10
private var pos:uint;// = 4
private var skills:uint;// = 1
private var yellowmax:uint;// = 15
public var noHighScoreDisplay:SimpleButton;
private var yellow:uint;// = 11
public var gotoNewsletter:SimpleButton;
private var red:uint;// = 8
public var highScoreDisplay:MovieClip;
private var stats:uint;// = 0
private var score:uint;// = 5
private var castrate:uint;// = 17
private var classNames:Array;
private var bluemax:uint;// = 14
private var myLoader:URLLoader;
private var charname:uint;// = 1
private var charid:uint;// = 0
private var green:uint;// = 9
private var hp:uint;// = 4
private var id:uint;// = 6
private var sound:uint;// = 1
private var prefcolor:uint;// = 16
private var redmax:uint;// = 12
private var myRequest:URLRequest;
private var hpmax:uint;// = 5
private var levels:uint;// = 3
private var greenmax:uint;// = 13
public var p1:MovieClip;
public var p2:MovieClip;
public var p3:MovieClip;
private var game:Array;
public function Login(){
domainControl = "plox.info/";
myLoader = new URLLoader();
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
game = new Array();
classNames = new Array("empty", "Hitman", "Hitman", "Bodyguard", "Bodyguard", "Drugsdealer", "Drugsdealer");
super();
userData = SharedObject.getLocal("Gangsters");
if (this.root.loaderInfo.url.indexOf(domainControl) != -1){
noHighScoreDisplay.visible = false;
myRequest = new URLRequest("./highscore_view.php");
myRequest.method = URLRequestMethod.POST;
myLoader.addEventListener(Event.COMPLETE, showHighScore);
myLoader.load(myRequest);
} else {
highScoreDisplay.visible = false;
noHighScoreDisplay.visible = true;
};
loadPlayers();
}
public function createChar3(_arg1:MouseEvent){
userData.data.game[charid] = 3;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
}
public function createChar2(_arg1:MouseEvent){
userData.data.game[charid] = 2;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
}
public function playChar3(_arg1:MouseEvent){
userData.data.game[charid] = 3;
userData.data.player = userData.data.player3;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 3));
};
}
public function playChar1(_arg1:MouseEvent){
userData.data.game[charid] = 1;
userData.data.player = userData.data.player1;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 3));
};
}
public function playChar2(_arg1:MouseEvent){
userData.data.game[charid] = 2;
userData.data.player = userData.data.player2;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 3));
};
}
public function removeChar1(_arg1:MouseEvent){
game[charid] = 1;
userData.data[("player" + game[charid])] = undefined;
if (userData.flush() == "flushed"){
p1.gotoAndStop(2);
p1.select.visible = false;
p1.remove.visible = false;
p1.createChar.visible = true;
p1.createChar.addEventListener(MouseEvent.CLICK, createChar1);
};
}
public function removeChar3(_arg1:MouseEvent){
game[charid] = 3;
userData.data[("player" + game[charid])] = undefined;
if (userData.flush() == "flushed"){
p3.gotoAndStop(2);
p3.select.visible = false;
p3.remove.visible = false;
p3.createChar.visible = true;
p3.createChar.addEventListener(MouseEvent.CLICK, createChar3);
};
}
public function removeChar2(_arg1:MouseEvent){
game[charid] = 2;
userData.data[("player" + game[charid])] = undefined;
if (userData.flush() == "flushed"){
p2.gotoAndStop(2);
p2.select.visible = false;
p2.remove.visible = false;
p2.createChar.visible = true;
p2.createChar.addEventListener(MouseEvent.CLICK, createChar2);
};
}
public function showHighScore(_arg1:Event):void{
var variables:URLVariables;
var event = _arg1;
try {
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
myLoader.close();
variables = new URLVariables(myLoader.data);
myLoader.removeEventListener(Event.COMPLETE, showHighScore);
highScoreDisplay.nameDisplay.htmlText = variables.names;
highScoreDisplay.scoreDisplay.htmlText = variables.scores;
} catch(error:Error) {
highScoreDisplay.nameDisplay.htmlText = "Can not retrieve score, please try again later...";
};
}
public function loadPlayers(){
if (userData.data.player1 == undefined){
p1.gotoAndStop(2);
p1.select.visible = false;
p1.remove.visible = false;
p1.createChar.visible = true;
p1.createChar.addEventListener(MouseEvent.CLICK, createChar1);
} else {
p1.gotoAndStop(1);
p1.charImage.gotoAndStop(userData.data.player1[stats][classname]);
p1.select.visible = true;
p1.remove.visible = true;
p1.createChar.visible = false;
p1.charName.text = String(userData.data.player1[stats][charname]);
p1.charLvl.text = String(userData.data.player1[stats][lvl]);
p1.charClass.text = String(classNames[userData.data.player1[stats][classname]]);
p1.charScore.text = String(userData.data.player1[score]);
p1.select.addEventListener(MouseEvent.CLICK, playChar1);
p1.remove.addEventListener(MouseEvent.CLICK, removeChar1);
};
if (userData.data.player2 == undefined){
p2.gotoAndStop(2);
p2.select.visible = false;
p2.remove.visible = false;
p2.createChar.visible = true;
p2.createChar.addEventListener(MouseEvent.CLICK, createChar2);
} else {
p2.gotoAndStop(1);
p2.charImage.gotoAndStop(userData.data.player2[stats][classname]);
p2.select.visible = true;
p2.remove.visible = true;
p2.createChar.visible = false;
p2.charName.text = String(userData.data.player2[stats][charname]);
p2.charLvl.text = String(userData.data.player2[stats][lvl]);
p2.charClass.text = String(classNames[userData.data.player2[stats][classname]]);
p2.charScore.text = String(userData.data.player2[score]);
p2.select.addEventListener(MouseEvent.CLICK, playChar2);
p2.remove.addEventListener(MouseEvent.CLICK, removeChar2);
};
if (userData.data.player3 == undefined){
p3.gotoAndStop(2);
p3.select.visible = false;
p3.remove.visible = false;
p3.createChar.visible = true;
p3.createChar.addEventListener(MouseEvent.CLICK, createChar3);
} else {
p3.gotoAndStop(1);
p3.charImage.gotoAndStop(userData.data.player3[stats][classname]);
p3.select.visible = true;
p3.remove.visible = true;
p3.createChar.visible = false;
p3.charName.text = String(userData.data.player3[stats][charname]);
p3.charLvl.text = String(userData.data.player3[stats][lvl]);
p3.charClass.text = String(classNames[userData.data.player3[stats][classname]]);
p3.charScore.text = String(userData.data.player3[score]);
p3.select.addEventListener(MouseEvent.CLICK, playChar3);
p3.remove.addEventListener(MouseEvent.CLICK, removeChar3);
};
}
public function createChar1(_arg1:MouseEvent){
userData.data.game[charid] = 1;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
}
}
}//package
Section 31
//MatchExpSound (MatchExpSound)
package {
import flash.media.*;
public dynamic class MatchExpSound extends Sound {
}
}//package
Section 32
//MatchGemSound (MatchGemSound)
package {
import flash.media.*;
public dynamic class MatchGemSound extends Sound {
}
}//package
Section 33
//MatchGemSound2 (MatchGemSound2)
package {
import flash.media.*;
public dynamic class MatchGemSound2 extends Sound {
}
}//package
Section 34
//MatchGemSound3 (MatchGemSound3)
package {
import flash.media.*;
public dynamic class MatchGemSound3 extends Sound {
}
}//package
Section 35
//MatchMoneySound (MatchMoneySound)
package {
import flash.media.*;
public dynamic class MatchMoneySound extends Sound {
}
}//package
Section 36
//MatchWeaponSound (MatchWeaponSound)
package {
import flash.media.*;
public dynamic class MatchWeaponSound extends Sound {
}
}//package
Section 37
//Overworld (Overworld)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
public class Overworld extends MovieClip {
private var game:Array;
private var classname:uint;// = 2
private var userData:SharedObject;
private var exp:uint;// = 6
private var lvl:uint;// = 3
private var charitems:uint;// = 2
private var infoFormat:TextFormat;
private var skills:uint;// = 1
private var gold:uint;// = 7
private var blue:uint;// = 10
private var pos:uint;// = 4
public var redirectBox:SimpleButton;
private var nameFormat:TextFormat;
private var yellowmax:uint;// = 15
private var yellow:uint;// = 11
public var infoBar:TextField;
private var red:uint;// = 8
private var score:uint;// = 5
private var stats:uint;// = 0
private var castrate:uint;// = 17
private var charTargetX:uint;
private var charTargetY:uint;
private var bluemax:uint;// = 14
private var lvlFormat:TextFormat;
private var charname:uint;// = 1
private var charid:uint;// = 0
private var player:Array;
private var green:uint;// = 9
private var hp:uint;// = 4
private var id:uint;// = 6
public var bossBox:MovieClip;
private var prefcolor:uint;// = 16
public var charInfo:MovieClip;
public var information:MovieClip;
private var sound:uint;// = 1
private var redmax:uint;// = 12
public var char:MovieClip;
private var opponent:Array;
public var map:MovieClip;
private var hpmax:uint;// = 5
private var levels:uint;// = 3
private var bossUnlocked:uint;// = 0
private var greenmax:uint;// = 13
public var logout:MovieClip;
private var theCarDriveSound:CarDriveSound;
private var theCarStopSound:CarStopSound;
private var activeBuildings:Array;
private var domainControl:String;// = "plox.info/"
public function Overworld(){
var _local1:String;
var _local2:uint;
var _local3:uint;
var _local4:Object;
var _local5:uint;
domainControl = "plox.info/";
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
theCarDriveSound = new CarDriveSound();
theCarStopSound = new CarStopSound();
bossUnlocked = 0;
super();
infoFormat = new TextFormat("Verdana", 14, 0, false, false, false, null, null, "left");
nameFormat = new TextFormat("Verdana", 18, 0, true, false, false, null, null, "left");
lvlFormat = new TextFormat("Verdana", 16, 0, true, false, false, null, null, "right");
userData = SharedObject.getLocal("Gangsters");
_local1 = userData.data.game[charid];
player = userData.data[("player" + _local1)];
opponent = userData.data.opponent;
if (player[pos] != undefined){
char.x = player[pos][0];
char.y = player[pos][1];
};
activeBuildings = new Array("farm1", "farm2", "farm3", "farm4", "farm5", "farm6", "boss1", "church1", "church2", "church3", "church4", "church5", "boss2", "city1", "city2", "city3", "city4", "boss3");
_local2 = 0;
while (_local2 < 2) {
_local3 = 0;
while (_local3 < activeBuildings.length) {
if (_local2 == 0){
_local4 = map.world.getChildByName(activeBuildings[_local3]);
} else {
_local4 = map.world2.getChildByName(activeBuildings[_local3]);
};
if (_local3 < 6){
_local5 = 1;
} else {
if (_local3 == 6){
_local5 = 4;
} else {
if (_local3 < 12){
_local5 = 2;
} else {
if (_local3 == 12){
_local5 = 5;
} else {
if (_local3 < 17){
_local5 = 3;
} else {
if (_local3 == 17){
_local5 = 6;
};
};
};
};
};
};
if (player[levels][1][_local3]){
_local4.gotoAndStop(_local5);
_local4.type = 99;
_local4.defeated.visible = true;
if (_local2 == 0){
bossUnlocked++;
};
} else {
if (_local3 == 6){
_local4.gotoAndStop(4);
_local4.type = 6;
_local4.defeated.visible = false;
} else {
if (_local3 == 12){
_local4.gotoAndStop(5);
_local4.type = 12;
_local4.defeated.visible = false;
} else {
if (_local3 == 17){
_local4.gotoAndStop(6);
_local4.type = 17;
_local4.defeated.visible = false;
} else {
_local4.gotoAndStop(_local5);
_local4.type = _local3;
_local4.defeated.visible = false;
};
};
};
};
_local3++;
};
_local2++;
};
map.world.itemShop.gotoAndStop(8);
map.world.itemShop.type = 8;
map.world.itemShop.defeated.visible = false;
map.world2.itemShop.gotoAndStop(8);
map.world2.itemShop.type = 8;
map.world2.itemShop.defeated.visible = false;
charTargetX = char.x;
charTargetY = char.y;
charInfo.charImage.gotoAndStop(userData.data.player[stats][classname]);
charInfo.lvl.text = String(player[stats][lvl]);
charInfo.experience.text = String(player[stats][exp]);
charInfo.gold.text = String(player[stats][gold]);
charInfo.score.text = String(player[score]);
if (player[charitems][1] != null){
charInfo.item1.gotoAndStop(player[charitems][1]);
} else {
charInfo.item1.gotoAndStop(13);
};
if (player[charitems][2] != null){
charInfo.item2.gotoAndStop(player[charitems][2]);
} else {
charInfo.item2.gotoAndStop(14);
};
if (player[charitems][3] != null){
charInfo.item3.gotoAndStop(player[charitems][3]);
} else {
charInfo.item3.gotoAndStop(15);
};
map.world.addEventListener(MouseEvent.CLICK, moveMouse);
map.world2.addEventListener(MouseEvent.CLICK, moveMouse);
addEventListener(Event.ENTER_FRAME, moveChar);
addEventListener(Event.ENTER_FRAME, hitTest);
information.acceptBox.addEventListener(MouseEvent.CLICK, acceptBox);
bossBox.playBoss1.addEventListener(MouseEvent.CLICK, acceptBox);
bossBox.playBoss2.addEventListener(MouseEvent.CLICK, acceptBox);
logout.addEventListener(MouseEvent.CLICK, mainmenu);
}
public function playSound(_arg1:Object){
var _local2:SoundChannel;
if (userData.data.game[sound] == true){
_local2 = _arg1.play();
};
}
public function mainmenu(_arg1:MouseEvent){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame - 3));
logout.removeEventListener(MouseEvent.CLICK, mainmenu);
}
public function hideInformation(){
information.visible = false;
}
public function hitTest(_arg1:Event){
var _local2:uint;
var _local3:Object;
var _local4:uint;
while (_local2 < activeBuildings.length) {
_local3 = map.world.getChildByName(activeBuildings[_local2]);
if (_local3.hitTestPoint(char.x, char.y, true)){
showInformation(_local3.type);
break;
} else {
hideInformation();
};
_local2++;
};
if (map.world.bossBuilding.hitTestPoint(char.x, char.y, true)){
if (this.root.loaderInfo.url.indexOf(domainControl) != -1){
bossBox.visible = true;
redirectBox.visible = false;
} else {
bossBox.visible = false;
redirectBox.visible = true;
redirectBox.addEventListener(MouseEvent.CLICK, redirectUser);
};
} else {
bossBox.visible = false;
redirectBox.visible = false;
};
if (map.world.itemShop.hitTestPoint(char.x, char.y, true)){
if (player[stats][lvl] >= 30){
_local4 = 4;
} else {
if (player[stats][lvl] >= 20){
_local4 = 3;
} else {
if (player[stats][lvl] >= 10){
_local4 = 2;
} else {
_local4 = 1;
};
};
};
information.opponentName.text = "Itemstore";
information.opponentLvl.text = _local4;
information.charImage.visible = true;
information.charImage.gotoAndStop(8);
information.infoBox.text = "You can buy and sell items here. Pimp yourself up and become The Godfather!";
information.opponentName.defaultTextFormat = nameFormat;
information.opponentLvl.defaultTextFormat = lvlFormat;
information.infoBox.defaultTextFormat = infoFormat;
information.acceptBox.visible = true;
information.visible = true;
};
}
public function moveChar(_arg1:Event){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = 5;
_local3 = ((2 * Math.PI) * (char.rotation / 360));
_local4 = (_local2 * Math.cos(_local3));
_local5 = (_local2 * Math.sin(_local3));
if ((((((((player[levels][0] == 1)) && (map.world2HitTest.hitTestPoint((char.x + _local4), (char.y + _local5), true)))) || ((((player[levels][0] == 2)) && (map.world3HitTest.hitTestPoint((char.x + _local4), (char.y + _local5), true)))))) || ((((player[levels][0] == 3)) && (map.world4HitTest.hitTestPoint((char.x + _local4), (char.y + _local5), true)))))){
charTargetX = char.x;
charTargetY = char.y;
infoBar.text = "Forbidden access, kill the Boss first";
} else {
if ((((char.x < (charTargetX - 3))) || ((char.x > (charTargetX + 3))))){
if (!map.worldHitTest.hitTestPoint((char.x + _local4), (char.y + _local5), true)){
char.x = (char.x + _local4);
} else {
charTargetX = char.x;
};
};
if ((((char.y < (charTargetY - 3))) || ((char.y > (charTargetY + 3))))){
if (!map.worldHitTest.hitTestPoint((char.x + _local4), (char.y + _local5), true)){
char.y = (char.y + _local5);
} else {
charTargetY = char.y;
};
};
};
map.charLight.x = char.x;
map.charLight.y = char.y;
map.charLight.rotation = char.rotation;
}
public function moveMouse(_arg1:MouseEvent){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
charTargetX = mouseX;
charTargetY = mouseY;
_local2 = (mouseX - char.x);
_local3 = (mouseY - char.y);
_local4 = Math.atan2(_local3, _local2);
_local5 = (360 * (_local4 / (2 * Math.PI)));
char.rotation = _local5;
playSound(theCarDriveSound);
}
public function acceptBox(_arg1:MouseEvent){
playSound(theCarStopSound);
map.world.removeEventListener(MouseEvent.CLICK, moveMouse);
map.world2.removeEventListener(MouseEvent.CLICK, moveMouse);
removeEventListener(Event.ENTER_FRAME, moveChar);
removeEventListener(Event.ENTER_FRAME, hitTest);
information.acceptBox.removeEventListener(MouseEvent.CLICK, acceptBox);
bossBox.playBoss1.removeEventListener(MouseEvent.CLICK, acceptBox);
bossBox.playBoss2.removeEventListener(MouseEvent.CLICK, acceptBox);
if (information.opponentName.text == "Itemstore"){
opponent[stats][lvl] = information.opponentLvl.text;
player[pos][0] = char.x;
player[pos][1] = char.y;
userData.data.player = player;
userData.data.opponent = opponent;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 2));
};
} else {
if (_arg1.target.name == "playBoss1"){
opponent[stats][charname] = "Valentio";
opponent[stats][charid] = 50;
opponent[stats][classname] = 9;
opponent[stats][lvl] = 35;
opponent[stats][hp] = 185;
opponent[stats][hpmax] = 185;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 50;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 20;
opponent[stats][redmax] = 80;
opponent[stats][greenmax] = 80;
opponent[stats][bluemax] = 80;
opponent[stats][yellowmax] = 80;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 100;
opponent[skills][0] = 0;
opponent[skills][1] = 1;
opponent[skills][2] = 5;
opponent[skills][3] = 11;
opponent[skills][4] = 7;
opponent[charitems][1] = 10;
opponent[charitems][2] = 8;
opponent[charitems][3] = 12;
} else {
if (_arg1.target.name == "playBoss2"){
opponent[stats][charname] = "Leonardo";
opponent[stats][charid] = 51;
opponent[stats][classname] = 12;
opponent[stats][lvl] = 40;
opponent[stats][hp] = 165;
opponent[stats][hpmax] = 165;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 50;
opponent[stats][blue] = 20;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 80;
opponent[stats][greenmax] = 80;
opponent[stats][bluemax] = 80;
opponent[stats][yellowmax] = 80;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 100;
opponent[skills][0] = 0;
opponent[skills][1] = 2;
opponent[skills][2] = 10;
opponent[skills][3] = 14;
opponent[skills][4] = 6;
opponent[charitems][1] = 10;
opponent[charitems][2] = 8;
opponent[charitems][3] = 12;
};
};
player[stats][hpmax] = (45 + (4 * player[stats][lvl]));
player[stats][hp] = player[stats][hpmax];
player[stats][red] = 0;
player[stats][green] = 0;
player[stats][blue] = 0;
player[stats][yellow] = 0;
player[pos][0] = char.x;
player[pos][1] = char.y;
userData.data.player = player;
userData.data.opponent = opponent;
if (userData.flush() == "flushed"){
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
};
}
public function redirectUser(_arg1:MouseEvent){
var _local2:URLRequest;
redirectBox.removeEventListener(MouseEvent.CLICK, redirectUser);
_local2 = new URLRequest("http://www.gameitnow.com");
navigateToURL(_local2, "_new");
}
public function showInformation(_arg1:uint){
var _local2:String;
var _local3:Boolean;
_local2 = "";
_local3 = false;
if (player[levels][0] == 1){
if (_arg1 == 0){
_local2 = "Your first target, a underguy of Pedro.";
opponent[stats][charname] = "Carlos";
opponent[stats][charid] = 0;
opponent[stats][classname] = 10;
opponent[stats][lvl] = 1;
opponent[stats][hp] = 50;
opponent[stats][hpmax] = 50;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 25;
opponent[skills][0] = null;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = null;
opponent[charitems][3] = null;
} else {
if (_arg1 == 1){
_local2 = "Your second target is gonna be Fernandez. A low profile drugdealer. Make it clean and easy!";
opponent[stats][charname] = "Fernandez";
opponent[stats][charid] = 1;
opponent[stats][classname] = 13;
opponent[stats][lvl] = 2;
opponent[stats][hp] = 50;
opponent[stats][hpmax] = 50;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 10;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 25;
opponent[skills][0] = 2;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = null;
opponent[charitems][3] = 3;
} else {
if (_arg1 == 2){
_local2 = "Your third target, Alehandro, is a smart guy. Be careful he has some tricks!";
opponent[stats][charname] = "Alehandro";
opponent[stats][charid] = 2;
opponent[stats][classname] = 11;
opponent[stats][lvl] = 3;
opponent[stats][hp] = 65;
opponent[stats][hpmax] = 65;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 10;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 15;
opponent[skills][0] = 7;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 1;
opponent[charitems][2] = null;
opponent[charitems][3] = null;
} else {
if (_arg1 == 3){
_local2 = "Your fourth target is gonna be Diego. Good luck!";
opponent[stats][charname] = "Diego";
opponent[stats][charid] = 3;
opponent[stats][classname] = 14;
opponent[stats][lvl] = 4;
opponent[stats][hp] = 70;
opponent[stats][hpmax] = 70;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 10;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 30;
opponent[skills][0] = 1;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 1;
opponent[charitems][2] = null;
opponent[charitems][3] = 3;
} else {
if (_arg1 == 4){
_local2 = "This guy owns a weaponshop, take him out!";
opponent[stats][charname] = "Felugi";
opponent[stats][charid] = 4;
opponent[stats][classname] = 1;
opponent[stats][lvl] = 5;
opponent[stats][hp] = 75;
opponent[stats][hpmax] = 75;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 30;
opponent[skills][0] = 1;
opponent[skills][1] = 3;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = 2;
opponent[charitems][3] = 3;
} else {
if (_arg1 == 5){
_local2 = "Do not let her looks fool you!";
opponent[stats][charname] = "Alexia";
opponent[stats][charid] = 5;
opponent[stats][classname] = 2;
opponent[stats][lvl] = 6;
opponent[stats][hp] = 80;
opponent[stats][hpmax] = 80;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 35;
opponent[skills][0] = 1;
opponent[skills][1] = 5;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 1;
opponent[charitems][2] = null;
opponent[charitems][3] = null;
} else {
if (_arg1 == 6){
if (bossUnlocked == 6){
_local2 = "You think you are ready to take out the big Montanova? Good luck kid!";
} else {
_local2 = "Complete the other levels before taking on the local boss!";
opponent[stats][lvl] = "?";
_local3 = true;
};
opponent[stats][charname] = "Montanova";
opponent[stats][charid] = 6;
opponent[stats][classname] = 12;
opponent[stats][lvl] = 7;
opponent[stats][hp] = 85;
opponent[stats][hpmax] = 85;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 15;
opponent[stats][green] = 15;
opponent[stats][blue] = 15;
opponent[stats][yellow] = 15;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 100;
opponent[skills][0] = 0;
opponent[skills][1] = 1;
opponent[skills][2] = 2;
opponent[skills][3] = 7;
opponent[skills][4] = null;
opponent[charitems][1] = 1;
opponent[charitems][2] = 2;
opponent[charitems][3] = 3;
} else {
if (_arg1 == 99){
_local2 = "Level completed!";
opponent[stats][charname] = "Completed";
opponent[stats][classname] = 15;
opponent[stats][lvl] = "-";
_local3 = true;
} else {
_local2 = "Level locked!";
opponent[stats][charname] = "Locked";
opponent[stats][classname] = 7;
opponent[stats][lvl] = "-";
_local3 = false;
};
};
};
};
};
};
};
};
} else {
if (player[levels][0] == 2){
if (_arg1 == 7){
_local2 = "So you want to make it higher up. Then take out this next guy and get some attention around here!";
opponent[stats][charname] = "Frank";
opponent[stats][charid] = 7;
opponent[stats][classname] = 3;
opponent[stats][lvl] = 10;
opponent[stats][hp] = 100;
opponent[stats][hpmax] = 100;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 45;
opponent[skills][0] = 5;
opponent[skills][1] = 7;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = 5;
opponent[charitems][3] = 6;
} else {
if (_arg1 == 8){
_local2 = "This guy is a arms dealer, fast and dangerous.";
opponent[stats][charname] = "Ganzoles";
opponent[stats][charid] = 8;
opponent[stats][classname] = 14;
opponent[stats][lvl] = 11;
opponent[stats][hp] = 110;
opponent[stats][hpmax] = 110;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 10;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 50;
opponent[skills][0] = 2;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 4;
opponent[charitems][2] = null;
opponent[charitems][3] = 6;
} else {
if (_arg1 == 9){
_local2 = "Your next target is a mercenary working for the boss.";
opponent[stats][charname] = "Frederic";
opponent[stats][charid] = 9;
opponent[stats][classname] = 1;
opponent[stats][lvl] = 12;
opponent[stats][hp] = 115;
opponent[stats][hpmax] = 115;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 10;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 65;
opponent[skills][0] = 5;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = 8;
opponent[charitems][3] = 9;
} else {
if (_arg1 == 10){
_local2 = "Rumor goes this guy killed an entire family single handed. Go take revenge.";
opponent[stats][charname] = "Raziel";
opponent[stats][charid] = 10;
opponent[stats][classname] = 5;
opponent[stats][lvl] = 13;
opponent[stats][hp] = 120;
opponent[stats][hpmax] = 120;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 20;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 70;
opponent[skills][0] = 1;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 4;
opponent[charitems][2] = 8;
opponent[charitems][3] = null;
} else {
if (_arg1 == 11){
_local2 = "This guy is does everything to please Estachio, pathetic!";
opponent[stats][charname] = "Marcillo";
opponent[stats][charid] = 11;
opponent[stats][classname] = 10;
opponent[stats][lvl] = 14;
opponent[stats][hp] = 125;
opponent[stats][hpmax] = 125;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 70;
opponent[skills][0] = 7;
opponent[skills][1] = null;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 12;
opponent[charitems][2] = null;
opponent[charitems][3] = null;
} else {
if (_arg1 == 12){
if (bossUnlocked == 12){
_local2 = "Now it is time to learn this guy a lesson!";
} else {
_local2 = "Defeat his followers first!";
opponent[stats][lvl] = "?";
_local3 = true;
};
opponent[stats][charname] = "Estachio";
opponent[stats][charid] = 12;
opponent[stats][classname] = 9;
opponent[stats][lvl] = 15;
opponent[stats][hp] = 135;
opponent[stats][hpmax] = 135;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 10;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 100;
opponent[skills][0] = 0;
opponent[skills][1] = 5;
opponent[skills][2] = 2;
opponent[skills][3] = 10;
opponent[skills][4] = null;
opponent[charitems][1] = 7;
opponent[charitems][2] = 5;
opponent[charitems][3] = 9;
} else {
if (_arg1 == 99){
_local2 = "Level completed!";
opponent[stats][charname] = "Completed";
opponent[stats][classname] = 15;
opponent[stats][lvl] = "-";
_local3 = true;
} else {
_local2 = "Level locked!";
opponent[stats][charname] = "Locked";
opponent[stats][classname] = 7;
opponent[stats][lvl] = "-";
_local3 = false;
};
};
};
};
};
};
};
} else {
if (player[levels][0] == 3){
if (_arg1 == 13){
_local2 = "This city is a dangerous place, so be careful!";
opponent[stats][charname] = "Annetta";
opponent[stats][charid] = 13;
opponent[stats][classname] = 6;
opponent[stats][lvl] = 20;
opponent[stats][hp] = 140;
opponent[stats][hpmax] = 140;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 80;
opponent[skills][0] = 7;
opponent[skills][1] = 11;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 7;
opponent[charitems][2] = 8;
opponent[charitems][3] = null;
} else {
if (_arg1 == 14){
_local2 = "This smooth guy is next in line!";
opponent[stats][charname] = "Orlando";
opponent[stats][charid] = 14;
opponent[stats][classname] = 3;
opponent[stats][lvl] = 21;
opponent[stats][hp] = 145;
opponent[stats][hpmax] = 145;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 0;
opponent[stats][green] = 10;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 5;
opponent[stats][castrate] = 85;
opponent[skills][0] = 2;
opponent[skills][1] = 6;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 7;
opponent[charitems][2] = 8;
opponent[charitems][3] = null;
} else {
if (_arg1 == 15){
_local2 = "A little weird in the head but very dangerous!";
opponent[stats][charname] = "Roberto";
opponent[stats][charid] = 15;
opponent[stats][classname] = 14;
opponent[stats][lvl] = 22;
opponent[stats][hp] = 150;
opponent[stats][hpmax] = 150;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 10;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 85;
opponent[skills][0] = 1;
opponent[skills][1] = 2;
opponent[skills][2] = 15;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = null;
opponent[charitems][2] = 8;
opponent[charitems][3] = 9;
} else {
if (_arg1 == 16){
_local2 = "You are doing great getting this far! Up next is Savio!";
opponent[stats][charname] = "Savio";
opponent[stats][charid] = 16;
opponent[stats][classname] = 13;
opponent[stats][lvl] = 23;
opponent[stats][hp] = 155;
opponent[stats][hpmax] = 155;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 10;
opponent[stats][green] = 0;
opponent[stats][blue] = 0;
opponent[stats][yellow] = 0;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 90;
opponent[skills][0] = 13;
opponent[skills][1] = 15;
opponent[skills][2] = null;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 7;
opponent[charitems][2] = null;
opponent[charitems][3] = 9;
} else {
if (_arg1 == 17){
if (bossUnlocked == 17){
_local2 = "Do not underestimate this girl!";
} else {
_local2 = "Complete the other levels before taking on the boss!";
opponent[stats][lvl] = "?";
_local3 = true;
};
opponent[stats][charname] = "Naomi";
opponent[stats][charid] = 17;
opponent[stats][classname] = 2;
opponent[stats][lvl] = 30;
opponent[stats][hp] = 180;
opponent[stats][hpmax] = 180;
opponent[stats][exp] = 0;
opponent[stats][gold] = 0;
opponent[stats][red] = 10;
opponent[stats][green] = 10;
opponent[stats][blue] = 10;
opponent[stats][yellow] = 10;
opponent[stats][redmax] = 60;
opponent[stats][greenmax] = 60;
opponent[stats][bluemax] = 60;
opponent[stats][yellowmax] = 60;
opponent[stats][prefcolor] = 4;
opponent[stats][castrate] = 100;
opponent[skills][0] = 0;
opponent[skills][1] = 12;
opponent[skills][2] = 13;
opponent[skills][3] = null;
opponent[skills][4] = null;
opponent[charitems][1] = 7;
opponent[charitems][2] = 8;
opponent[charitems][3] = 9;
} else {
if (_arg1 == 99){
_local2 = "Level completed!";
opponent[stats][charname] = "Completed";
opponent[stats][classname] = 15;
opponent[stats][lvl] = "-";
_local3 = true;
} else {
_local2 = "Level locked!";
opponent[stats][charname] = "Locked";
opponent[stats][classname] = 7;
opponent[stats][lvl] = "-";
_local3 = false;
};
};
};
};
};
};
} else {
if (player[levels][0] == 4){
_local2 = "Level completed!";
opponent[stats][charname] = "Completed";
opponent[stats][classname] = 15;
opponent[stats][lvl] = "-";
_local3 = true;
};
};
};
};
information.opponentName.text = opponent[stats][charname];
information.opponentLvl.text = opponent[stats][lvl];
information.charImage.gotoAndStop(opponent[stats][classname]);
information.infoBox.text = _local2;
information.opponentName.defaultTextFormat = nameFormat;
information.opponentLvl.defaultTextFormat = lvlFormat;
information.infoBox.defaultTextFormat = infoFormat;
if (_local3){
information.acceptBox.visible = false;
information.charImage.visible = true;
} else {
information.acceptBox.visible = true;
information.charImage.visible = true;
};
information.visible = true;
}
}
}//package
Section 38
//Piece (Piece)
package {
import flash.display.*;
public dynamic class Piece extends MovieClip {
public var select:MovieClip;
public var hint:MovieClip;
}
}//package
Section 39
//PointBurst (PointBurst)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class PointBurst extends Sprite {
private var burstSprite:Sprite;
private var fontColor:Number;
private var animTimer:Timer;
private var parentMC:MovieClip;
private var tField:TextField;
static const startScale:Number = 0.5;
static const animStepTime:int = 40;
static const fontSize:int = 30;
static const fontFace:String = "Arial";
static const fontBold:Boolean = true;
static const animSteps:int = 20;
static const endScale:Number = 1.5;
public function PointBurst(_arg1:MovieClip, _arg2:Object, _arg3, _arg4:Number, _arg5:uint){
var _local6:TextFormat;
super();
if (_arg5 == 4){
fontColor = 0xFF0000;
} else {
if (_arg5 == 5){
fontColor = 0x9900;
} else {
if (_arg5 == 6){
fontColor = 0xFF;
} else {
if (_arg5 == 7){
fontColor = 0xFFFF00;
} else {
fontColor = 0xFFFFFF;
};
};
};
};
_local6 = new TextFormat();
_local6.font = fontFace;
_local6.size = fontSize;
_local6.bold = fontBold;
_local6.color = fontColor;
_local6.align = "center";
tField = new TextField();
tField.embedFonts = true;
tField.selectable = false;
tField.defaultTextFormat = _local6;
tField.autoSize = TextFieldAutoSize.CENTER;
tField.text = String(_arg2);
tField.x = -((tField.width / 2));
tField.y = -((tField.height / 2));
burstSprite = new Sprite();
burstSprite.x = _arg3;
burstSprite.y = _arg4;
burstSprite.scaleX = startScale;
burstSprite.scaleY = startScale;
burstSprite.alpha = 0;
burstSprite.addChild(tField);
parentMC = _arg1;
parentMC.addChild(burstSprite);
animTimer = new Timer(animStepTime, animSteps);
animTimer.addEventListener(TimerEvent.TIMER, rescaleBurst);
animTimer.addEventListener(TimerEvent.TIMER_COMPLETE, removeBurst);
animTimer.start();
}
public function removeBurst(_arg1:TimerEvent){
burstSprite.removeChild(tField);
parentMC.removeChild(burstSprite);
tField = null;
burstSprite = null;
delete ??getglobalscope
[this];
}
public function rescaleBurst(_arg1:TimerEvent){
var _local2:Number;
_local2 = (_arg1.target.currentCount / animSteps);
burstSprite.scaleX = (((1 - _local2) * startScale) + (_local2 * endScale));
burstSprite.scaleY = (((1 - _local2) * startScale) + (_local2 * endScale));
burstSprite.alpha = (0.5 + _local2);
}
}
}//package
Section 40
//Skill (Skill)
package {
import flash.display.*;
public dynamic class Skill extends MovieClip {
public var timer:MovieClip;
}
}//package
Section 41
//SkillConvertSound (SkillConvertSound)
package {
import flash.media.*;
public dynamic class SkillConvertSound extends Sound {
}
}//package
Section 42
//SkillExtraTurnSound (SkillExtraTurnSound)
package {
import flash.media.*;
public dynamic class SkillExtraTurnSound extends Sound {
}
}//package
Section 43
//SkillFreezeTimeSound (SkillFreezeTimeSound)
package {
import flash.media.*;
public dynamic class SkillFreezeTimeSound extends Sound {
}
}//package
Section 44
//SkillHealSound (SkillHealSound)
package {
import flash.media.*;
public dynamic class SkillHealSound extends Sound {
}
}//package
Section 45
//SkillHintSound (SkillHintSound)
package {
import flash.media.*;
public dynamic class SkillHintSound extends Sound {
}
}//package
Section 46
//SkillReloadSound (SkillReloadSound)
package {
import flash.media.*;
public dynamic class SkillReloadSound extends Sound {
}
}//package
Section 47
//SkillRowSound (SkillRowSound)
package {
import flash.media.*;
public dynamic class SkillRowSound extends Sound {
}
}//package
Section 48
//SkillSwapGreenSound (SkillSwapGreenSound)
package {
import flash.media.*;
public dynamic class SkillSwapGreenSound extends Sound {
}
}//package
Section 49
//SkillSwapRedSound (SkillSwapRedSound)
package {
import flash.media.*;
public dynamic class SkillSwapRedSound extends Sound {
}
}//package
Section 50
//ThemeSound (ThemeSound)
package {
import flash.media.*;
public dynamic class ThemeSound extends Sound {
}
}//package
Section 51
//Tutorial (Tutorial)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.media.*;
import flash.net.*;
public class Tutorial extends MovieClip {
public var playerRedBar:MovieClip;
public var startBox:MovieClip;
public var playerNameDisplay:TextField;
public var playerGreenBar:MovieClip;
private var classname:uint;// = 2
private var userData:SharedObject;
private var exp:uint;// = 6
private var firstPiece;
private var playerDmgReduce:uint;// = 0
private var allSwaps:Array;
private var isDropping:Boolean;// = false
private var lvl:uint;// = 3
private var theSkillSwapRedSound:SkillSwapRedSound;
private var theSkillSwapGreenSound:SkillSwapGreenSound;
private var charitems:uint;// = 2
private var theSkillHintSound:SkillHintSound;
private var currentSkill:Skill;
private var gold:uint;// = 7
public var playerYellowDisplay:TextField;
private var blue:uint;// = 10
private var skills:uint;// = 1
private var expFormat;
private var skillSprite:Sprite;
private var goldFormat:TextFormat;
private var yellow:uint;// = 11
private var yellowmax:uint;// = 15
private var skillActivated:uint;// = 0
private var red:uint;// = 8
private var theSkillReloadSound:SkillReloadSound;
private var score:uint;// = 5
private var stats:uint;// = 0
public var playerGoldDisplay:TextField;
private var possibleSwap;
private var castrate:uint;// = 17
private var hintPiece:Piece;
private var pos:uint;// = 4
public var playerTurnIndicator:MovieClip;
public var playerHpDisplay:TextField;
private var theSkillFreezeTime:SkillFreezeTimeSound;
public var playerRedDisplay:TextField;
private var bluemax:uint;// = 14
private var isSwapping:Boolean;// = false
private var multiBlock:Boolean;// = false
public var tutorialHpDisplay:TextField;
private var charname:uint;// = 1
private var theMatchExpSound:MatchExpSound;
private var theSkillExtraTurnSound:SkillExtraTurnSound;
private var charid:uint;// = 0
private var player:Array;
public var infoText:TextField;
private var tutorialHint:int;// = 180
private var tutorialHp:int;// = 20
private var hp:uint;// = 4
private var green:uint;// = 9
private var id:uint;// = 6
public var playerYellowBar:MovieClip;
private var turnCombo:uint;// = 0
private var theMatchMoneySound:MatchMoneySound;
private var hpFormat;
private var showHint:Boolean;// = true
public var tutorialHpBar:MovieClip;
private var color1:uint;// = 0
private var prefcolor:uint;// = 16
private var sound:uint;// = 1
private var redmax:uint;// = 12
public var playerBlueBar:MovieClip;
private var theMatchGemSound:MatchGemSound;
private var grid;
private var tutorialTurn;// = false
private var gameSprite;
private var hpmax:uint;// = 5
public var playerBlueDisplay:TextField;
private var levels:uint;// = 3
private var playerSkillCooldown:Array;
private var greenmax:uint;// = 13
public var playerHpBar:MovieClip;
private var theSkillHealSound:SkillHealSound;
public var tutorialBox:MovieClip;
public var playerExpDisplay:TextField;
private var theSkillConvertSound:SkillConvertSound;
private var skillUsed:Boolean;// = false
public var playerGreenDisplay:TextField;
private var theMatchGemSound2:MatchGemSound2;
public var skipBox:MovieClip;
private var playerDmgIncrease:uint;// = 0
private var theSkillRowSound:SkillRowSound;
public var playerCharFrame:MovieClip;
private var theMatchGemSound3:MatchGemSound3;
private var gameOver:Boolean;// = false
private var theMatchWeaponSound:MatchWeaponSound;
private var playerSkill:Array;
static const spacing:Number = 45;
static const offsetX:Number = 162;
static const numPieces:uint = 7;
static const offsetY:Number = 58;
public function Tutorial(){
var _local1:String;
showHint = true;
multiBlock = false;
isDropping = false;
isSwapping = false;
gameOver = false;
turnCombo = 0;
tutorialHp = 20;
tutorialTurn = false;
tutorialHint = 180;
skillUsed = false;
playerSkillCooldown = new Array(false, "3", "3", "2", "2", "3", "12", "15", "0", "0", "2", "2", "2", "10", "2", "3", "2");
skillActivated = 0;
color1 = 0;
playerDmgReduce = 0;
playerDmgIncrease = 0;
playerSkill = new Array();
stats = 0;
charname = 1;
classname = 2;
lvl = 3;
hp = 4;
hpmax = 5;
exp = 6;
gold = 7;
red = 8;
green = 9;
blue = 10;
yellow = 11;
redmax = 12;
greenmax = 13;
bluemax = 14;
yellowmax = 15;
prefcolor = 16;
castrate = 17;
skills = 1;
charitems = 2;
levels = 3;
pos = 4;
score = 5;
id = 6;
charid = 0;
sound = 1;
theMatchWeaponSound = new MatchWeaponSound();
theMatchExpSound = new MatchExpSound();
theMatchMoneySound = new MatchMoneySound();
theMatchGemSound = new MatchGemSound();
theMatchGemSound2 = new MatchGemSound2();
theMatchGemSound3 = new MatchGemSound3();
theSkillExtraTurnSound = new SkillExtraTurnSound();
theSkillRowSound = new SkillRowSound();
theSkillHealSound = new SkillHealSound();
theSkillFreezeTime = new SkillFreezeTimeSound();
theSkillReloadSound = new SkillReloadSound();
theSkillSwapRedSound = new SkillSwapRedSound();
theSkillSwapGreenSound = new SkillSwapGreenSound();
theSkillConvertSound = new SkillConvertSound();
theSkillHintSound = new SkillHintSound();
super();
hpFormat = new TextFormat("Verdana", 15, 0, true, false, false, null, null, "center");
expFormat = new TextFormat("Verdana", 11, 0xFFFFFF, true, false, false, null, null, "center");
goldFormat = new TextFormat("Verdana", 11, 0xFFFFFF, true, false, false, null, null, "center");
userData = SharedObject.getLocal("Gangsters");
_local1 = userData.data.game[charid];
player = userData.data[("player" + _local1)];
startGame();
}
public function skill1(_arg1){
var _local2:int;
var _local3:Piece;
var _local4:Number;
var _local5:*;
_local2 = 0;
while (_local2 < 8) {
_local3 = grid[_local2][_arg1.row];
_local4 = calculateScore(3, _local3.type, _local3.bonus);
addScore(_local4, _local3.type);
_local5 = new PointBurst(this, Math.floor(_local4), _local3.x, _local3.y, _local3.type);
gameSprite.removeChild(_local3);
grid[_local2][_arg1.row] = null;
affectAbove(_local3);
_local2++;
};
addNewPieces();
_local5 = new PointBurst(this, "ROW BLAST", 315, 200, 99);
playSound(theSkillRowSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill2(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][hp] = (player[stats][hp] + 5);
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
};
updateScore();
_local2 = new PointBurst(this, "HEAL", 315, 200, 99);
playSound(theSkillHealSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill5(_arg1){
var _local2:*;
var _local3:uint;
if (_arg1 == "player"){
_local3 = 5;
addScore(_local3, 1);
};
updateScore();
_local2 = new PointBurst(this, "SHOOT", 315, 200, 99);
playSound(theMatchWeaponSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill8(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][red] = (player[stats][red] + 8);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
};
updateScore();
updateCooldown(false);
_local2 = new PointBurst(this, "ENRAGE", 315, 200, 99);
playSound(theSkillSwapRedSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill9(_arg1){
var _local2:*;
if (_arg1 == "player"){
player[stats][green] = (player[stats][green] + 8);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
};
updateScore();
updateCooldown(false);
_local2 = new PointBurst(this, "CALM DOWN", 315, 200, 99);
playSound(theSkillSwapGreenSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function nextLesson(_arg1:MouseEvent){
if (tutorialBox.currentFrame == 7){
startBox.removeEventListener(MouseEvent.MOUSE_UP, nextLesson);
endGame(_arg1);
} else {
startBox.visible = false;
skipBox.visible = false;
tutorialBox.nextFrame();
};
}
public function matchPattern(_arg1, _arg2:uint, _arg3, _arg4:Array){
var _local5:int;
var _local6:int;
_local5 = grid[_arg1][_arg2].type;
possibleSwap = new Array();
_local6 = 0;
while (_local6 < _arg3.length) {
if (!matchType((_arg1 + _arg3[_local6][0]), (_arg2 + _arg3[_local6][1]), _local5)){
return (false);
};
_local6++;
};
_local6 = 0;
while (_local6 < _arg4.length) {
if (matchType((_arg1 + _arg4[_local6][0]), (_arg2 + _arg4[_local6][1]), _local5)){
possibleSwap.push(_local5);
possibleSwap.push((_arg1 + _arg4[_local6][0]));
possibleSwap.push((_arg2 + _arg4[_local6][1]));
return (true);
};
_local6++;
};
return (false);
}
public function calculateSwap(){
var _local1:Piece;
var _local2:uint;
if (lookForPossibles()){
listAllPossibles();
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((allSwaps[_local2][0] == 1)) || ((allSwaps[_local2][0] == 8)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if (allSwaps[_local2][0] == 9){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((((((allSwaps[_local2][0] == 4)) || ((allSwaps[_local2][0] == 5)))) || ((allSwaps[_local2][0] == 6)))) || ((allSwaps[_local2][0] == 7)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
if (_local1 == null){
_local2 = 0;
while (_local2 < allSwaps.length) {
if ((((allSwaps[_local2][0] == 2)) || ((allSwaps[_local2][0] == 3)))){
_local1 = grid[allSwaps[_local2][1]][allSwaps[_local2][2]];
return (_local1);
};
_local2++;
};
};
} else {
manaBurn();
};
}
public function itemValues(_arg1:String, _arg2:uint){
if (_arg2 == 1){
player[stats][red] = (player[stats][red] + 10);
} else {
if (_arg2 == 2){
playerDmgReduce = (playerDmgReduce + 1);
} else {
if (_arg2 == 3){
player[stats][hpmax] = (player[stats][hpmax] + 10);
player[stats][hp] = (player[stats][hp] + 10);
} else {
if (_arg2 == 4){
player[stats][red] = (player[stats][red] + 5);
player[stats][green] = (player[stats][green] + 5);
player[stats][blue] = (player[stats][blue] + 5);
player[stats][yellow] = (player[stats][yellow] + 5);
} else {
if (_arg2 == 5){
playerDmgReduce = (playerDmgReduce + 2);
} else {
if (_arg2 == 6){
player[stats][hpmax] = (player[stats][hpmax] + 20);
player[stats][hp] = (player[stats][hp] + 20);
} else {
if (_arg2 == 7){
player[stats][red] = (player[stats][red] + 10);
player[stats][green] = (player[stats][green] + 10);
player[stats][blue] = (player[stats][blue] + 10);
player[stats][yellow] = (player[stats][yellow] + 10);
} else {
if (_arg2 == 8){
playerDmgReduce = (playerDmgReduce + 3);
} else {
if (_arg2 == 9){
playerDmgIncrease = (playerDmgIncrease + 1);
} else {
if (_arg2 == 10){
player[stats][red] = (player[stats][red] + 15);
player[stats][green] = (player[stats][green] + 15);
player[stats][blue] = (player[stats][blue] + 15);
player[stats][yellow] = (player[stats][yellow] + 15);
} else {
if (_arg2 == 11){
playerDmgReduce = (playerDmgReduce + 4);
} else {
if (_arg2 == 12){
playerDmgIncrease = (playerDmgIncrease + 2);
};
};
};
};
};
};
};
};
};
};
};
};
}
public function skill6(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = new PointBurst(this, "RELOAD", 315, 200, 99);
_local2 = 0;
while (_local2 < 8) {
_local4 = 0;
while (_local4 < 8) {
grid[_local4][_local2] = null;
_local4++;
};
_local2++;
};
removeChild(gameSprite);
grid = new Array();
_local3 = 0;
while (_local3 < 8) {
grid.push(new Array());
_local3++;
};
setupGrid();
playSound(theSkillReloadSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function lookForMatches():Array{
var _local1:Array;
var _local2:int;
var _local3:int;
var _local4:Array;
_local1 = new Array();
if (!gameOver){
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 6) {
_local4 = getMatchHoriz(_local3, _local2);
if (_local4.length > 2){
_local1.push(_local4);
_local3 = (_local3 + (_local4.length - 1));
};
_local3++;
};
_local2++;
};
_local3 = 0;
while (_local3 < 8) {
_local2 = 0;
while (_local2 < 6) {
_local4 = getMatchVert(_local3, _local2);
if (_local4.length > 2){
_local1.push(_local4);
_local2 = (_local2 + (_local4.length - 1));
};
_local2++;
};
_local3++;
};
};
return (_local1);
}
public function skill15(_arg1, _arg2){
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == _arg1){
_local6.type = _arg2;
_local6.gotoAndStop(_arg2);
};
_local5++;
};
_local3++;
};
findAndRemoveMatches();
updateScore();
_local4 = new PointBurst(this, "SWAP GEMS", 315, 200, 99);
playSound(theSkillConvertSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function addSkill(_arg1:String, _arg2:uint, _arg3:uint):Skill{
var _local4:Skill;
skillSprite = new Sprite();
_local4 = new Skill();
if (_arg1 == "player"){
_local4.x = 8;
} else {
_local4.x = 528;
};
_local4.y = (183 + (_arg3 * 35));
_local4.type = _arg2;
_local4.cooldown = 0;
_local4.gotoAndStop(_arg2);
if (_arg2 != 17){
_local4.timer.visible = false;
};
skillSprite.addChild(_local4);
if (_arg1 == "player"){
_local4.addEventListener(MouseEvent.MOUSE_UP, skillActivation);
};
addChild(skillSprite);
return (_local4);
}
public function playSound(_arg1:Object){
var _local2:SoundChannel;
if (userData.data.game[sound] == true){
_local2 = _arg1.play();
};
}
public function addSkills(){
var _local1:uint;
var _local2:int;
_local1 = 0;
_local2 = 0;
while (_local2 < player[skills].length) {
if (player[skills][_local2] != null){
_local1++;
playerSkill.push(addSkill("player", player[skills][_local2], _local1));
} else {
_local1++;
addSkill("player", 17, _local1);
};
_local2++;
};
}
public function skill10(_arg1){
var _local2:uint;
var _local3:int;
var _local4:int;
var _local5:*;
var _local6:int;
var _local7:Piece;
_local2 = (3 + _arg1);
_local3 = 0;
_local4 = 0;
while (_local4 < 8) {
_local6 = 0;
while (_local6 < 8) {
_local7 = grid[_local6][_local4];
if ((((_local7.type == 1)) && ((_local2 > 0)))){
_local7.type = 1;
_local7.bonus = 2;
_local7.gotoAndStop(8);
_local2--;
_local3++;
};
_local6++;
};
_local4++;
};
_local5 = new PointBurst(this, (_local3 + " UPGRADES"), 315, 200, 99);
playSound(theSkillReloadSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skillActivation(_arg1:MouseEvent){
currentSkill = Skill(_arg1.currentTarget);
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated > 0)))){
skillActivated = 0;
infoText.text = "";
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 1)))){
if (checkSkillReq("player", currentSkill)){
skillActivated = 1;
infoText.text = "Select row to delete";
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 2)))){
if (checkSkillReq("player", currentSkill)){
player[stats][green] = (player[stats][green] - 10);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill2("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 3)))){
if (checkSkillReq("player", currentSkill)){
player[stats][yellow] = (player[stats][yellow] - 3);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill3("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 5)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 10);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill5("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 6)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill6();
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 7)))){
if (checkSkillReq("player", currentSkill)){
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skillActivated = 7;
infoText.text = "Select color to delete";
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 8)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill8("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 9)))){
if (checkSkillReq("player", currentSkill)){
player[stats][blue] = (player[stats][blue] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill9("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 10)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill10(Math.floor((player[stats][red] / 8)));
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 11)))){
if (checkSkillReq("player", currentSkill)){
player[stats][red] = (player[stats][red] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill11("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 13)))){
if (checkSkillReq("player", currentSkill)){
player[stats][green] = (player[stats][green] - 5);
updateScore();
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill13("player");
};
} else {
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((currentSkill.type == 15)))){
if (checkSkillReq("player", currentSkill)){
skillActivated = 15;
infoText.text = "Select source color";
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function skill11(_arg1){
var _local2:uint;
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local2 = 0;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == 1){
_local2++;
};
_local5++;
};
_local3++;
};
if (_arg1 == "player"){
addScore(_local2, 1);
};
updateScore();
_local4 = new PointBurst(this, (Math.floor(_local2) + " DAMAGE"), 315, 200, 99);
playSound(theMatchWeaponSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function clickPiece(_arg1:MouseEvent){
var _local2:Piece;
var _local3:Array;
var _local4:int;
if (((!(gameOver)) && ((skillActivated == 0)))){
_local2 = Piece(_arg1.currentTarget);
if (firstPiece == null){
_local2.select.visible = true;
firstPiece = _local2;
} else {
if (firstPiece == _local2){
_local2.select.visible = false;
firstPiece = null;
} else {
_local3 = new Array();
firstPiece.select.visible = false;
_local3 = [[0, 1], [0, -1], [-1, 0], [1, 0]];
_local4 = 0;
while (_local4 < _local3.length) {
if ((((Math.abs((firstPiece.col + _local3[_local4][0])) == _local2.col)) && ((Math.abs((firstPiece.row + _local3[_local4][1])) == _local2.row)))){
turnCombo = 0;
makeSwap(firstPiece, _local2);
firstPiece = null;
break;
};
_local4++;
};
if (firstPiece != null){
firstPiece = _local2;
firstPiece.select.visible = true;
};
};
};
} else {
if (((!(gameOver)) && ((skillActivated == 1)))){
_local2 = Piece(_arg1.currentTarget);
player[stats][red] = (player[stats][red] - 10);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill1(_local2);
skillActivated = 0;
infoText.text = "";
} else {
if (((!(gameOver)) && ((skillActivated == 7)))){
_local2 = Piece(_arg1.currentTarget);
if ((((((((_local2.type == 4)) || ((_local2.type == 5)))) || ((_local2.type == 6)))) || ((_local2.type == 7)))){
player[stats][red] = (player[stats][red] - 5);
player[stats][yellow] = (player[stats][yellow] - 5);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill7(_local2);
skillActivated = 0;
infoText.text = "";
} else {
infoText.text = "Invalid piece";
};
} else {
if (((!(gameOver)) && ((skillActivated == 15)))){
_local2 = Piece(_arg1.currentTarget);
if ((((((((_local2.type == 4)) || ((_local2.type == 5)))) || ((_local2.type == 6)))) || ((_local2.type == 7)))){
if (color1 == 0){
color1 = _local2.type;
infoText.text = "Select target color";
} else {
if (_local2.type != color1){
infoText.text = "";
player[stats][blue] = (player[stats][blue] - 5);
currentSkill.cooldown = playerSkillCooldown[currentSkill.type];
updateCooldown(false);
skill15(color1, _local2.type);
skillActivated = 0;
color1 = 0;
};
};
} else {
skillActivated = 0;
color1 = 0;
infoText.text = "Invalid piece";
};
};
};
};
};
}
public function skill3(_arg1){
var _local2:*;
infoText.text = "Extra turn active";
_local2 = new PointBurst(this, "EXTRA TURN", 315, 200, 99);
playSound(theSkillExtraTurnSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill13(_arg1){
var _local2:uint;
var _local3:int;
var _local4:*;
var _local5:int;
var _local6:Piece;
_local2 = 0;
_local3 = 0;
while (_local3 < 8) {
_local5 = 0;
while (_local5 < 8) {
_local6 = grid[_local5][_local3];
if (_local6.type == 1){
_local2++;
grid[_local5][_local3] = null;
gameSprite.removeChild(_local6);
affectAbove(_local6);
};
_local5++;
};
_local3++;
};
addNewPieces();
if (_arg1 == "player"){
player[stats][hp] = (player[stats][hp] + _local2);
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
};
updateScore();
_local4 = new PointBurst(this, (Math.floor(_local2) + " HEALED"), 315, 200, 99);
playSound(theSkillHealSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function skill7(_arg1){
var _local2:*;
var _local3:int;
var _local4:int;
var _local5:Piece;
var _local6:Number;
_local2 = new PointBurst(this, "COLOR BOMB", 315, 200, 99);
_local3 = 0;
while (_local3 < 8) {
_local4 = 0;
while (_local4 < 8) {
_local5 = grid[_local4][_local3];
if (_local5.type == _arg1.type){
gameSprite.removeChild(_local5);
grid[_local4][_local3] = null;
affectAbove(_local5);
_local6 = calculateScore(3, _local5.type, _local5.bonus);
addScore(_local6, _local5.type);
};
_local4++;
};
_local3++;
};
addNewPieces();
updateScore();
playSound(theSkillConvertSound);
if (tutorialBox.currentFrame == 4){
skillUsed = true;
};
}
public function movePieces(_arg1:Event){
var _local2:Boolean;
var _local3:int;
var _local4:int;
_local2 = false;
_local3 = 0;
while (_local3 < 8) {
_local4 = 0;
while (_local4 < 8) {
if (grid[_local4][_local3] != null){
if (grid[_local4][_local3].y < ((grid[_local4][_local3].row * spacing) + offsetY)){
grid[_local4][_local3].y = (grid[_local4][_local3].y + 9);
_local2 = true;
} else {
if (grid[_local4][_local3].y > ((grid[_local4][_local3].row * spacing) + offsetY)){
grid[_local4][_local3].y = (grid[_local4][_local3].y - 9);
_local2 = true;
} else {
if (grid[_local4][_local3].x < ((grid[_local4][_local3].col * spacing) + offsetX)){
grid[_local4][_local3].x = (grid[_local4][_local3].x + 9);
_local2 = true;
} else {
if (grid[_local4][_local3].x > ((grid[_local4][_local3].col * spacing) + offsetX)){
grid[_local4][_local3].x = (grid[_local4][_local3].x - 9);
_local2 = true;
};
};
};
};
};
_local4++;
};
_local3++;
};
if (((((isDropping) && (!(_local2)))) && (!(gameOver)))){
isDropping = false;
findAndRemoveMatches();
} else {
if (((((isSwapping) && (!(_local2)))) && (!(gameOver)))){
isSwapping = false;
findAndRemoveMatches();
};
};
}
public function updateObjective(){
if (tutorialBox.currentFrame == 2){
if ((((((((player[stats][red] >= 20)) && ((player[stats][green] >= 20)))) && ((player[stats][blue] >= 20)))) && ((player[stats][yellow] >= 20)))){
tutorialBox.nextFrame();
};
} else {
if (tutorialBox.currentFrame == 3){
if (tutorialHp <= 0){
tutorialHpBar.visible = false;
tutorialHpDisplay.visible = false;
tutorialBox.nextFrame();
};
} else {
if (tutorialBox.currentFrame == 4){
if (skillUsed == true){
tutorialBox.nextFrame();
};
} else {
if (tutorialBox.currentFrame == 5){
if (tutorialTurn == true){
tutorialBox.nextFrame();
};
} else {
if (tutorialBox.currentFrame == 6){
if ((((player[stats][exp] >= 250)) && ((player[stats][gold] >= 500)))){
startBox.visible = true;
tutorialBox.nextFrame();
};
};
};
};
};
};
}
public function matchType(_arg1, _arg2, _arg3:int){
if ((((((((_arg1 < 0)) || ((_arg1 > 7)))) || ((_arg2 < 0)))) || ((_arg2 > 7)))){
return (false);
};
return ((((grid[_arg1][_arg2].type == _arg3)) || ((((((((grid[_arg1][_arg2].type == 9)) && (!((_arg3 == 1))))) && (!((_arg3 == 2))))) && (!((_arg3 == 3)))))));
}
public function lookForPossibles(){
var _local1:int;
var _local2:int;
var _local3:Boolean;
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
_local3 = false;
_local3 = matchPattern(_local1, _local2, [[1, 0]], [[-2, 0], [-1, -1], [-1, 1], [2, -1], [2, 1], [3, 0]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[2, 0]], [[1, -1], [1, 1]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[0, 1]], [[0, -2], [-1, -1], [1, -1], [-1, 2], [1, 2], [0, 3]]);
if (_local3){
return (true);
};
_local3 = matchPattern(_local1, _local2, [[0, 2]], [[-1, 1], [1, 1]]);
if (_local3){
return (true);
};
_local2++;
};
_local1++;
};
return (false);
}
public function swapPieces(_arg1, _arg2:Piece){
var _local3:uint;
var _local4:uint;
_local3 = _arg1.col;
_local4 = _arg1.row;
_arg1.col = _arg2.col;
_arg1.row = _arg2.row;
_arg2.col = _local3;
_arg2.row = _local4;
grid[_arg1.col][_arg1.row] = _arg1;
grid[_arg2.col][_arg2.row] = _arg2;
}
public function makeSwap(_arg1, _arg2:Piece){
swapPieces(_arg1, _arg2);
if (lookForMatches().length == 0){
swapPieces(_arg1, _arg2);
} else {
isSwapping = true;
};
}
public function cleanUp(){
grid = null;
removeChild(gameSprite);
removeChild(skillSprite);
gameSprite = null;
skillSprite = null;
skipBox.removeEventListener(MouseEvent.MOUSE_UP, endGame);
startBox.removeEventListener(MouseEvent.MOUSE_UP, nextLesson);
removeEventListener(Event.ENTER_FRAME, movePieces);
removeEventListener(Event.ENTER_FRAME, animateBars);
}
public function addScore(_arg1, _arg2:int){
if (_arg2 == 1){
if (tutorialBox.currentFrame == 3){
if ((tutorialHp - Math.round(_arg1)) <= 0){
tutorialHp = 0;
} else {
tutorialHp = (tutorialHp - Math.round(_arg1));
};
updateObjective();
};
} else {
if (_arg2 == 2){
player[stats][gold] = (player[stats][gold] + _arg1);
} else {
if (_arg2 == 3){
player[stats][exp] = (player[stats][exp] + _arg1);
} else {
if (_arg2 == 4){
player[stats][red] = (player[stats][red] + _arg1);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
} else {
if (_arg2 == 5){
player[stats][green] = (player[stats][green] + _arg1);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
} else {
if (_arg2 == 6){
player[stats][blue] = (player[stats][blue] + _arg1);
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
} else {
if (_arg2 == 7){
player[stats][yellow] = (player[stats][yellow] + _arg1);
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
} else {
if (_arg2 == 9){
player[stats][red] = (player[stats][red] + _arg1);
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
player[stats][green] = (player[stats][green] + _arg1);
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
player[stats][blue] = (player[stats][blue] + _arg1);
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
player[stats][yellow] = (player[stats][yellow] + _arg1);
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
};
};
};
};
};
};
};
};
updateScore();
}
public function calculateScore(_arg1:uint, _arg2:uint, _arg3:uint){
if (_arg2 == 1){
return (((2 + _arg3) + (playerDmgIncrease / _arg1)));
};
if (_arg2 == 2){
return (20);
};
if (_arg2 == 3){
return (10);
};
if (_arg2 == 4){
return (_arg1);
};
if (_arg2 == 5){
return (_arg1);
};
if (_arg2 == 6){
return (_arg1);
};
if (_arg2 == 7){
return (_arg1);
};
if (_arg2 == 9){
return (_arg3);
};
return (0);
}
public function addPiece(_arg1, _arg2:int):Piece{
var _local3:Piece;
_local3 = new Piece();
_local3.x = ((_arg1 * spacing) + offsetX);
_local3.y = (((_arg2 * spacing) + offsetY) - 396);
_local3.col = _arg1;
_local3.row = _arg2;
if ((Math.random() * 1000) < 25){
_local3.type = 1;
_local3.gotoAndStop(8);
_local3.bonus = 2;
} else {
if (((multiBlock) || (((Math.random() * 1000) < 25)))){
multiBlock = false;
_local3.type = 9;
_local3.gotoAndStop(9);
_local3.bonus = 3;
} else {
_local3.type = Math.ceil((Math.random() * 7));
_local3.gotoAndStop(_local3.type);
_local3.bonus = 0;
};
};
_local3.select.visible = false;
_local3.hint.visible = false;
gameSprite.addChild(_local3);
grid[_arg1][_arg2] = _local3;
_local3.addEventListener(MouseEvent.MOUSE_DOWN, clickPiece);
_local3.addEventListener(MouseEvent.MOUSE_OVER, identifyPiece);
return (_local3);
}
public function listAllPossibles(){
var _local1:int;
var _local2:int;
var _local3:Boolean;
allSwaps = new Array();
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
_local3 = false;
_local3 = matchPattern(_local1, _local2, [[1, 0]], [[-2, 0], [-1, -1], [-1, 1], [2, -1], [2, 1], [3, 0]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[2, 0]], [[1, -1], [1, 1]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[0, 1]], [[0, -2], [-1, -1], [1, -1], [-1, 2], [1, 2], [0, 3]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local3 = matchPattern(_local1, _local2, [[0, 2]], [[-1, 1], [1, 1]]);
if (_local3){
allSwaps.push(possibleSwap);
};
_local2++;
};
_local1++;
};
}
public function manaBurn(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:int;
updateScore();
_local1 = new PointBurst(this, "NO MOVES LEFT", 315, 200, 99);
_local2 = 0;
while (_local2 < 8) {
_local4 = 0;
while (_local4 < 8) {
grid[_local4][_local2] = null;
_local4++;
};
_local2++;
};
removeChild(gameSprite);
grid = new Array();
_local3 = 0;
while (_local3 < 8) {
grid.push(new Array());
_local3++;
};
setupGrid();
}
public function identifyPiece(_arg1:MouseEvent){
var _local2:uint;
var _local3:uint;
var _local4:Piece;
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 8) {
if (grid[_local2][_local3] != null){
grid[_local2][_local3].select.visible = false;
};
_local3++;
};
_local2++;
};
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated == 0)))){
if (firstPiece != null){
firstPiece.select.visible = true;
};
};
if (((((((!(gameOver)) && (!(isSwapping)))) && (!(isDropping)))) && ((skillActivated == 1)))){
_local4 = Piece(_arg1.currentTarget);
_local2 = 0;
while (_local2 < 8) {
grid[_local2][_local4.row].select.visible = true;
_local2++;
};
};
}
public function updateScore(){
if (player[stats][hp] <= 0){
player[stats][hp] = 0;
};
if (player[stats][red] <= 0){
player[stats][red] = 0;
};
if (player[stats][green] <= 0){
player[stats][green] = 0;
};
if (player[stats][blue] <= 0){
player[stats][blue] = 0;
};
if (player[stats][yellow] <= 0){
player[stats][yellow] = 0;
};
if (player[stats][hp] > player[stats][hpmax]){
player[stats][hp] = player[stats][hpmax];
};
if (player[stats][red] > player[stats][redmax]){
player[stats][red] = player[stats][redmax];
};
if (player[stats][green] > player[stats][greenmax]){
player[stats][green] = player[stats][greenmax];
};
if (player[stats][blue] > player[stats][bluemax]){
player[stats][blue] = player[stats][bluemax];
};
if (player[stats][yellow] > player[stats][yellowmax]){
player[stats][yellow] = player[stats][yellowmax];
};
playerHpDisplay.defaultTextFormat = hpFormat;
playerExpDisplay.defaultTextFormat = expFormat;
playerGoldDisplay.defaultTextFormat = goldFormat;
playerNameDisplay.text = String(player[stats][charname]);
playerHpDisplay.text = String(((player[stats][hp] + " / ") + player[stats][hpmax]));
playerExpDisplay.text = String(player[stats][exp]);
playerGoldDisplay.text = String(player[stats][gold]);
playerRedDisplay.text = String(player[stats][red]);
playerGreenDisplay.text = String(player[stats][green]);
playerBlueDisplay.text = String(player[stats][blue]);
playerYellowDisplay.text = String(player[stats][yellow]);
if (tutorialBox.currentFrame == 3){
tutorialHpDisplay.text = String((tutorialHp + " / 20"));
};
}
public function updateCooldown(_arg1:Boolean){
var _local2:uint;
var _local3:Skill;
_local2 = 0;
while (_local2 < playerSkill.length) {
_local3 = playerSkill[_local2];
if (((_arg1) && ((_local3.cooldown > 0)))){
_local3.cooldown--;
};
if (((!((_local3 == null))) && ((_local3.cooldown > 0)))){
_local3.timer.visible = true;
_local3.timer.width = ((106 / playerSkillCooldown[_local3.type]) * _local3.cooldown);
} else {
if (((!((_local3 == null))) && (!(checkSkillReq("player", _local3))))){
_local3.timer.visible = true;
_local3.timer.width = 106;
} else {
_local3.timer.visible = false;
};
};
_local2++;
};
}
public function findAndRemoveMatches(){
var _local1:Array;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:*;
_local1 = lookForMatches();
_local2 = 0;
while (_local2 < _local1.length) {
_local3 = 0;
while (_local3 < _local1[_local2].length) {
if (gameSprite.contains(_local1[_local2][_local3])){
_local4 = calculateScore((_local1[_local2].length - 1), _local1[_local2][_local3].type, _local1[_local2][_local3].bonus);
addScore(_local4, _local1[_local2][_local3].type);
_local5 = new PointBurst(this, Math.floor(_local4), _local1[_local2][_local3].x, _local1[_local2][_local3].y, _local1[_local2][_local3].type);
gameSprite.removeChild(_local1[_local2][_local3]);
grid[_local1[_local2][_local3].col][_local1[_local2][_local3].row] = null;
affectAbove(_local1[_local2][_local3]);
};
_local3++;
};
turnCombo++;
if ((((_local1[_local2][0].type == 1)) || ((_local1[_local2][0].type == 8)))){
playSound(theMatchWeaponSound);
} else {
if (_local1[_local2][0].type == 2){
playSound(theMatchMoneySound);
} else {
if (_local1[_local2][0].type == 3){
playSound(theMatchExpSound);
} else {
if ((((((((((_local1[_local2][0].type == 4)) || ((_local1[_local2][0].type == 5)))) || ((_local1[_local2][0].type == 6)))) || ((_local1[_local2][0].type == 7)))) || ((_local1[_local2][0].type == 9)))){
if (turnCombo <= 1){
playSound(theMatchGemSound);
} else {
if (turnCombo <= 5){
playSound(theMatchGemSound2);
} else {
playSound(theMatchGemSound3);
};
};
};
};
};
};
if (_local1[_local2].length == 4){
_local5 = new PointBurst(this, "4-IN-A-ROW", 315, 200, 99);
if (tutorialBox.currentFrame == 5){
tutorialTurn = true;
};
} else {
if (_local1[_local2].length == 5){
multiBlock = true;
_local5 = new PointBurst(this, "5-IN-A-ROW", 315, 200, 99);
if (tutorialBox.currentFrame == 5){
tutorialTurn = true;
};
};
};
if (turnCombo > 6){
addScore(100, 3);
turnCombo = 0;
_local5 = new PointBurst(this, "CHAIN BONUS", 315, 200, 99);
if (tutorialBox.currentFrame == 5){
tutorialTurn = true;
};
};
_local2++;
};
addNewPieces();
if ((((((_local1.length == 0)) && (!(isDropping)))) && (!(isSwapping)))){
if (!lookForPossibles()){
manaBurn();
} else {
_local2 = 0;
while (_local2 < 8) {
_local3 = 0;
while (_local3 < 8) {
if (grid[_local2][_local3] != null){
grid[_local2][_local3].hint.visible = false;
};
_local3++;
};
_local2++;
};
infoText.text = "";
updateCooldown(true);
updateObjective();
hintPiece = calculateSwap();
tutorialHint = 180;
};
};
}
public function setupGrid(){
var _local1:uint;
var _local2:int;
while (true) {
gameSprite = new Sprite();
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
while (_local2 < 8) {
addPiece(_local1, _local2);
_local2++;
};
_local1++;
};
if (lookForMatches().length != 0){
} else {
if (lookForPossibles() == false){
} else {
break;
};
};
};
addChild(gameSprite);
}
public function endGame(_arg1:Event){
var _local2:String;
player[stats][exp] = 0;
player[stats][gold] = 0;
_local2 = userData.data.game[charid];
userData.data[("player" + _local2)] = player;
if (userData.flush() == "flushed"){
cleanUp();
MovieClip(root).gotoAndStop((MovieClip(root).currentFrame + 1));
};
}
public function addNewPieces(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Piece;
_local1 = 0;
while (_local1 < 8) {
_local2 = 0;
_local3 = 7;
while (_local3 >= 0) {
if (grid[_local1][_local3] == null){
_local4 = addPiece(_local1, _local3);
var _temp1 = _local2;
_local2 = (_local2 + 1);
_local4.y = ((offsetY - spacing) - (spacing * _temp1));
isDropping = true;
};
_local3--;
};
_local1++;
};
}
public function addCharItem(_arg1:String, _arg2:uint, _arg3:uint):Items{
var _local4:Items;
_local4 = new Items();
if (_arg1 == "player"){
_local4.x = 26.2;
} else {
_local4.x = 615.3;
};
_local4.y = (47.2 + (_arg3 * 24.5));
_local4.type = _arg2;
_local4.gotoAndStop(_arg2);
skillSprite.addChild(_local4);
return (_local4);
}
public function animateBars(_arg1:Event){
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
_local2 = 121.1;
_local3 = 47.6;
_local4 = ((tutorialHp / 20) * 100);
_local5 = ((player[stats][hp] / player[stats][hpmax]) * 100);
_local6 = ((player[stats][red] / player[stats][redmax]) * 100);
_local7 = ((player[stats][green] / player[stats][greenmax]) * 100);
_local8 = ((player[stats][blue] / player[stats][bluemax]) * 100);
_local9 = ((player[stats][yellow] / player[stats][yellowmax]) * 100);
if ((playerRedBar.redBar.height + 1) < ((_local3 / 100) * _local6)){
playerRedBar.redBar.height++;
} else {
if (playerRedBar.redBar.height > ((_local3 / 100) * _local6)){
playerRedBar.redBar.height--;
};
};
if ((playerGreenBar.greenBar.height + 1) < ((_local3 / 100) * _local7)){
playerGreenBar.greenBar.height++;
} else {
if (playerGreenBar.greenBar.height > ((_local3 / 100) * _local7)){
playerGreenBar.greenBar.height--;
};
};
if ((playerBlueBar.blueBar.height + 1) < ((_local3 / 100) * _local8)){
playerBlueBar.blueBar.height++;
} else {
if (playerBlueBar.blueBar.height > ((_local3 / 100) * _local8)){
playerBlueBar.blueBar.height--;
};
};
if ((playerYellowBar.yellowBar.height + 1) < ((_local3 / 100) * _local9)){
playerYellowBar.yellowBar.height++;
} else {
if (playerYellowBar.yellowBar.height > ((_local3 / 100) * _local9)){
playerYellowBar.yellowBar.height--;
};
};
if ((playerHpBar.hpBar.width + 1) < ((_local2 / 100) * _local5)){
playerHpBar.hpBar.width++;
} else {
if (playerHpBar.hpBar.width > ((_local2 / 100) * _local5)){
playerHpBar.hpBar.width--;
};
};
if (tutorialBox.currentFrame == 3){
tutorialHpBar.visible = true;
tutorialHpDisplay.visible = true;
if (tutorialHpBar.hpBar.width > ((121.1 / 100) * _local4)){
tutorialHpBar.hpBar.width--;
};
};
tutorialHint--;
if (tutorialHint <= 0){
hintPiece.hint.visible = true;
};
}
public function startGame(){
var _local1:int;
grid = new Array();
_local1 = 0;
while (_local1 < 8) {
grid.push(new Array());
_local1++;
};
setupGrid();
addSkills();
addItems();
playerCharFrame.charImage.gotoAndStop(userData.data.player[stats][classname]);
tutorialHpBar.visible = false;
tutorialHpDisplay.visible = false;
hintPiece = calculateSwap();
startBox.addEventListener(MouseEvent.MOUSE_UP, nextLesson);
skipBox.addEventListener(MouseEvent.MOUSE_UP, endGame);
addEventListener(Event.ENTER_FRAME, movePieces);
addEventListener(Event.ENTER_FRAME, animateBars);
updateScore();
updateCooldown(false);
}
public function affectAbove(_arg1:Piece){
var _local2:int;
_local2 = (_arg1.row - 1);
while (_local2 >= 0) {
if (grid[_arg1.col][_local2] != null){
grid[_arg1.col][_local2].row++;
grid[_arg1.col][(_local2 + 1)] = grid[_arg1.col][_local2];
grid[_arg1.col][_local2] = null;
};
_local2--;
};
}
public function addItems(){
var _local1:int;
_local1 = 1;
while (_local1 < player[charitems].length) {
if (player[charitems][_local1] != null){
addCharItem("player", player[charitems][_local1], _local1);
itemValues("player", player[charitems][_local1]);
};
_local1++;
};
}
public function checkSkillReq(_arg1:String, _arg2:Skill){
if (_arg1 == "player"){
if ((((_arg2.type == 1)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 2)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][green] >= 10)) && ((player[stats][hp] < player[stats][hpmax])))){
return (true);
};
} else {
if ((((_arg2.type == 3)) && ((_arg2.cooldown == 0)))){
if (player[stats][yellow] >= 3){
return (true);
};
} else {
if ((((_arg2.type == 4)) && ((_arg2.cooldown == 0)))){
if (player[stats][green] >= 3){
return (true);
};
} else {
if ((((_arg2.type == 5)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 10){
return (true);
};
} else {
if ((((_arg2.type == 6)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 7)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][red] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 8)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 9)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 10)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 11)) && ((_arg2.cooldown == 0)))){
if (player[stats][red] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 12)) && ((_arg2.cooldown == 0)))){
if ((((player[stats][blue] >= 5)) && ((player[stats][yellow] >= 5)))){
return (true);
};
} else {
if ((((_arg2.type == 13)) && ((_arg2.cooldown == 0)))){
if (player[stats][green] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 14)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 15)) && ((_arg2.cooldown == 0)))){
if (player[stats][blue] >= 5){
return (true);
};
} else {
if ((((_arg2.type == 16)) && ((_arg2.cooldown == 0)))){
if (player[stats][yellow] >= 5){
return (true);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
return (false);
};
}
public function getMatchVert(_arg1, _arg2):Array{
var _local3:Array;
var _local4:int;
var _local5:uint;
_local3 = new Array(grid[_arg1][_arg2]);
_local4 = 1;
while ((_arg2 + _local4) < 8) {
if (grid[_arg1][_arg2].type == 9){
_local5 = (_local4 - 1);
if (_local5 < 1){
_local5 = 1;
};
if ((((((((((grid[_arg1][(_arg2 + _local5)].type == grid[_arg1][(_arg2 + _local4)].type)) && (!((grid[_arg1][(_arg2 + _local4)].type == 1))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 2))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 3))))) || ((grid[_arg1][(_arg2 + _local4)].type == 9)))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
if ((((((((((grid[_arg1][(_arg2 + _local5)].type == 9)) && (!((grid[_arg1][(_arg2 + _local4)].type == 1))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 2))))) && (!((grid[_arg1][(_arg2 + _local4)].type == 3))))) || ((grid[_arg1][(_arg2 + _local4)].type == 9)))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
return (_local3);
};
};
} else {
if (grid[_arg1][_arg2].type == grid[_arg1][(_arg2 + _local4)].type){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
if ((((((((grid[_arg1][(_arg2 + _local4)].type == 9)) && (!((grid[_arg1][_arg2].type == 1))))) && (!((grid[_arg1][_arg2].type == 2))))) && (!((grid[_arg1][_arg2].type == 3))))){
_local3.push(grid[_arg1][(_arg2 + _local4)]);
} else {
return (_local3);
};
};
};
_local4++;
};
return (_local3);
}
public function getMatchHoriz(_arg1, _arg2):Array{
var _local3:Array;
var _local4:int;
var _local5:uint;
_local3 = new Array(grid[_arg1][_arg2]);
_local4 = 1;
while ((_arg1 + _local4) < 8) {
if (grid[_arg1][_arg2].type == 9){
_local5 = (_local4 - 1);
if (_local5 < 1){
_local5 = 1;
};
if ((((((((((grid[(_arg1 + _local5)][_arg2].type == grid[(_arg1 + _local4)][_arg2].type)) && (!((grid[(_arg1 + _local4)][_arg2].type == 1))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 2))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 3))))) || ((grid[(_arg1 + _local4)][_arg2].type == 9)))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
if ((((((((((grid[(_arg1 + _local5)][_arg2].type == 9)) && (!((grid[(_arg1 + _local4)][_arg2].type == 1))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 2))))) && (!((grid[(_arg1 + _local4)][_arg2].type == 3))))) || ((grid[(_arg1 + _local4)][_arg2].type == 9)))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
return (_local3);
};
};
} else {
if (grid[_arg1][_arg2].type == grid[(_arg1 + _local4)][_arg2].type){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
if ((((((((grid[(_arg1 + _local4)][_arg2].type == 9)) && (!((grid[_arg1][_arg2].type == 1))))) && (!((grid[_arg1][_arg2].type == 2))))) && (!((grid[_arg1][_arg2].type == 3))))){
_local3.push(grid[(_arg1 + _local4)][_arg2]);
} else {
return (_local3);
};
};
};
_local4++;
};
return (_local3);
}
}
}//package