Frame 1
MaxLevels = 3;
Level1Height = 34;
Level1Width = 54;
Level1Map = new Array();
Level1Map[0] = "xxxxxxxxxooooooooooooooooooooooooooooooooooooooooooooo";
Level1Map[1] = "xbooooobxooooooooooooooooooooooooooooooooooooooooooooo";
Level1Map[2] = "xoxxoxxoxooooooooooooooooooooooooooooooooooooooooooooo";
Level1Map[3] = "xoxofoxoxooxxxxxxxxxxxxxoooooooooooooooooooooooooooooo";
Level1Map[4] = "xoxxxxxoxooxxxxxxxxxxxxxoooooooooooooooooooooooooooooo";
Level1Map[5] = "xbooooobxooxxxxxxcxxxxxxoooooooooooooooooooooooooooooo";
Level1Map[6] = "xxxxoxxxxooxxxxxoooxxxxxoooooooooooooooooooooooooooooo";
Level1Map[7] = "oooxoxoooooxxxxootooxxxxoooooooooooooooooooooooooooooo";
Level1Map[8] = "oooxoxoooooxxxbooooobxxxoooooooooooooooooooooooooooooo";
Level1Map[9] = "oooxoxoooooxxoowibwiooxxoooooxxxoooooooooooooooooooooo";
Level1Map[10] = "oooxoxxxxxxxoooiibiioooxxxxxxxoxoooooooooooooooooooooo";
Level1Map[11] = "oooxpoooooooetoooboootoooopooooxoooooooooooooooooooooo";
Level1Map[12] = "oooxxxxxxxxxooowibwioooxxxxxxxoxoooooooooooooooooooooo";
Level1Map[13] = "oooooooooooxxooiibiiooxxoooooxmxoooxxxxxxxxxoooooooooo";
Level1Map[14] = "oooooooooooxxxbooooobxxxoooooxoxoooxoobbbooxoooooooooo";
Level1Map[15] = "oooooooooooxxxxootooxxxxoooooxbxxxxxowiowioxoooooooooo";
Level1Map[16] = "oooooooooooxxxxxoooxxxxxoooooxbboooooiioiioxoooooooooo";
Level1Map[17] = "oooooooooooxxxxxxoxxxxxxoooooxxxxxxxoooooooxoooooooooo";
Level1Map[18] = "oooooooooooxxxxxxoxxxxxxoooooooooooxoootoooxoooooooooo";
Level1Map[19] = "oooooooooooxxxxxxoxxxxxxoooooooooooxootetooxoooooooooo";
Level1Map[20] = "oooooooooooooooozpzooooooooooooooooxotoootoxoooooooooo";
Level1Map[21] = "oooooooooooooooozozooooooooooooooooxoototooxoooooooooo";
Level1Map[22] = "oxxxxxooxxxxxooozozooooooooooooooooxoooooooxoooooooooo";
Level1Map[23] = "oxoooxooxbbbxooozozooooooooooooooooxoooooooxoooooooooo";
Level1Map[24] = "oxoooxxxxoooxzzzzozzoooooooooooooooxoooooooxoooootttoo";
Level1Map[25] = "oxcooooooooomoooooozoooooooooooooooxoototooxooootoooto";
Level1Map[26] = "oxoooxxxxoooxzzzzzzzoooooooooooooooxotopotoxooootosoto";
Level1Map[27] = "oxoooxooxbbbxooooooooooooooooooooooxootctooxooootoooto";
Level1Map[28] = "oxxxxxooxxxxxooooooooooooooooooooooxoootoooxoooozottoo";
Level1Map[29] = "oooooooooooooooooooooooooooooooooooxoooooooxoooozozooo";
Level1Map[30] = "oooooooooooooooooooooooooooooooooooxowiowioxzzzzzozooo";
Level1Map[31] = "oooooooooooooooooooooooooooooooooooxoiioiiooooooobzooo";
Level1Map[32] = "oooooooooooooooooooooooooooooooooooxoobbbooxzzzzzzzooo";
Level1Map[33] = "oooooooooooooooooooooooooooooooooooxxxxxxxxxoooooooooo";
Level2Height = 40;
Level2Width = 60;
Level2Map = new Array();
Level2Map[0] = "ozzzzzzzoooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
Level2Map[1] = "zooooooozoooooooxxxxxooooxoooooxxxxxxxxxxxxxxxxxxxbootttoobx";
Level2Map[2] = "zowiowiozoooooooxoooxxxxxxoowioxxxxxxxoxctoxoxxxxxozootoozox";
Level2Map[3] = "zoiioiiozoooooooxotoooooooooiioxxxxxxxoxotoxoxxxxxoozooozoox";
Level2Map[4] = "zooosooozoooooooxoooxxxxxxxooooxxxxxxxoooooooxxxzoooozozootx";
Level2Map[5] = "zowiowiozoooooooxotoxxxxxxxxooxxxxxxxxbwiowibxxxxzoooofoottx";
Level2Map[6] = "zoiioiiozoooooooxoooxooooooomxxxxxxxxxoiioiioxxxzoooozozootx";
Level2Map[7] = "zooooooozoooooooxetoxozzzxxxoooooooooooooboooxxxxxoozooozoox";
Level2Map[8] = "ozzooozzooooooooxoooxozzzxxxoxxxxxxxxxoooboooxxxxxozooooozox";
Level2Map[9] = "ooototooooooooooxotoxpooooooxxxxxxxxxxxxxxxxxxxxxxbooooooobx";
Level2Map[10] = "ooototooooooooooxoooxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxmxxxxxx";
Level2Map[11] = "ooototooooooooooxotoxxxxoxxooooooooooxxxxxxxxxxxxxxxxoxxxxxx";
Level2Map[12] = "ooototooooooooooxooooooooxxxxxxxxxxxoxxxxxxxxxxxxxxxxoooooox";
Level2Map[13] = "oooxoxooooooooooxxxxxxxxmxxxxxxxxxxxmoooxxxxxxxxxxxxxxxxxxox";
Level2Map[14] = "oooxoxooooooooooxxxxxxxoooxxxxxxxxxxoxxoxxxxxxxxxxxxooopbxox";
Level2Map[15] = "oooxmxoooooooooooooooozoxozooooxxxxxxxxoxxxxxxxxxxxoozzzbxox";
Level2Map[16] = "oxxxoxxxooooooooooowiozoxozowioxxxxxxxxoxxxxxxxxxxooozzzbxox";
Level2Map[17] = "oxxxoxxxoooooooooooiiozoxpzoiioxxxxxxxxmoooooooomooooooobxox";
Level2Map[18] = "xxxbobxxxooooooooooooozoxozooooxxxxxxxxoxxxxxxxxooooxxxxxxox";
Level2Map[19] = "xxxbobxxxoooooooooooooxoxoxooooxxxxxxxoooxxxxxxxootoxpooooox";
Level2Map[20] = "xxxxoxxxxooooooooooooxomomoxoooxxxxxxoooooxxxxxxotooxoxxxxox";
Level2Map[21] = "xxxxoxxxxooooooooooooxomomoxoooxxxxxobtttboxxxxxootoxoxxxxox";
Level2Map[22] = "xxxoooxxxxxxxxxxxxxxxxxxoxxxxxxxxxxootoootooxxxxotooxoxxooex";
Level2Map[23] = "xoooooooxxxxxxxxxxxxxxxxoxxxxxxxxxobtoooootboxxxootoxoxxoxxx";
Level2Map[24] = "xoxoooxoxxxxxxxxxxxxoooooxxxxxxxxootoozozootooxxotooxooooxoo";
Level2Map[25] = "xoxxxxxoxxxxxxxxxxxxoxxxoxxxxxxxeotoozocozootooxootoxxxxoxot";
Level2Map[26] = "xoooooooxxxxxxxxxxxxoxxxoxxxxxxxxootoozozootooxxotoooooxoxot";
Level2Map[27] = "xozozozoxxxxxxxxxxxxobbxoxxxxxxxxxobtoozootboxxxootooooxoxot";
Level2Map[28] = "xoooooooxxxxoxxxxxxxobbxoxxxxxxxxxxootoootooxxxxotoooooxoxot";
Level2Map[29] = "xozozozooooommoooxxxoxxxoxxxxxxxxxxxobtotboxxxxxoooooocxoxoo";
Level2Map[30] = "xeooooooxxxooxxoxxxxoxxxoxxxxxxxxxxxxoooooxxxxxxooxxxxxxoxxx";
Level2Map[31] = "xxxxoxxxxxxxxxxoxxxxeooooxxxbobxxxxxxxoooxxxxxxxooxoooooooox";
Level2Map[32] = "xxxxoxxxxxxxxxxoxxxxxxxxoxxxopoxxxxxxxxoxxxxxxxxooxozowiozox";
Level2Map[33] = "xxxxoxxxxxxxxxxoxxxxxxxxoxxxbooxxxxxxxxoxxxxxxxxooxbooiioobx";
Level2Map[34] = "xxxxoxxxxxooooooooooooxxoxxxxxoxxxxxxxxoxxxxxxxxeoxttoooottx";
Level2Map[35] = "ooxoooxooxototoooototoxxoxxxxxoxxxxxxxxoxxxxxxxxbbxboowioobx";
Level2Map[36] = "ooxocoxooxooboowioobooxxoxxxxxoxxxxxxxxoxxxxxxxxxxxozoiiozox";
Level2Map[37] = "ooxoooxooxototoiiototoxxoxxxxooooooooommoooooooooomoooooooox";
Level2Map[38] = "ooxopoxooxoooooooooooomoooxooxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxx";
Level2Map[39] = "ooxxxxxooxxxxxxxxxxxxxxxxxxoooooooooooxxxxxxxxxxxxxxxxxxxxxx";
Level3Height = 40;
Level3Width = 60;
Level3Map = new Array();
Level3Map[0] = "oooooooooootttttttxxxxxxxxxxxxxxxxxxxxxooooooooooooooooooooo";
Level3Map[1] = "oooooooooootooooooeooboooomooooboopxxooooooooooooooooooooooo";
Level3Map[2] = "ooooooooooototttttzoozxxxxmxxxxzoozxooooooooxxxooooooooooooo";
Level3Map[3] = "ooooooooooototooooozoozxxxocxxzoozxooooooooxxxxxoooooooooxxo";
Level3Map[4] = "oooooooootttotttoooozoozxxoxxzoozxxxxxxxxxxxxxxxxxxxxxxxxxxo";
Level3Map[5] = "ooooooootoooooootoooxzoozxxxzoozxxxxxxxxxxxxxxxxxxxxoxxxxxoo";
Level3Map[6] = "ooooooootowibwiotoooxxzoozxzoozxxxxbooobooobooooooooooooxxoo";
Level3Map[7] = "ooooooootoiibiiotoooxxxzooboozxxxxxoxxxxxxxxxxxxxxxxoxxoxxoo";
Level3Map[8] = "xxxxxxxotobbbbbotoooxxxxzooozxxxxxxoxxxxxxxxxxxxxxxoooxoxxoo";
Level3Map[9] = "xoooooxotowibwiotoooxxxxxzozxxxxxxxoxxxxxxbooooobmooocxoxxoo";
Level3Map[10] = "xozozoxotoiibiiotxxxxxxxxxoxxxxxxxxoxxxxxxotttttoxxoooxoxxoo";
Level3Map[11] = "xoofooxotoooooooooooooxxxxoxxxxxxxxoxxxxxxbooooobxxxoxxoxxoo";
Level3Map[12] = "xozozoxxxttttttttxxxxoxxxxoxoxxxxxxoxxxxxxxxxoxxxxxxmxxoxxoo";
Level3Map[13] = "xoooooooboobooboooooxoxxxoomoxxxxxxoxxbobxxxxoxxxxbobxxoxxoo";
Level3Map[14] = "xxxxxxxxxxxxxxxxxxxoooxxxxxxmxxxxxxexxotoxxxxoxxxxotoxxoxxxo";
Level3Map[15] = "xxxxottobbottoxxxxxxxxxxxoooooooxoxxxxotoxxxoooxxxotoxxoxxxx";
Level3Map[16] = "xoooowiowiowioooooxxxxxxxotototoxooooootoooootoooootoxxoxxxx";
Level3Map[17] = "xoxxoiioiioiioxxxoxxxxxxxoooooooxmxxxxotoxxxoooxxxotoxxoxxxx";
Level3Map[18] = "xoxxooooxxooooxxxoxxxxoomotosotomooxxxotoxxxxoxxxxotoxxoxxxo";
Level3Map[19] = "xoxxxxxxxxxxxxxxxoxxxxxmxoooooooxxxxxxbobxxxxoxxxxbobxxoxxoo";
Level3Map[20] = "xoxxxxxxxxxxxxxxoomoooooxotototoxxxxxxxxxxxxxoxxxxxxoxxoxxoo";
Level3Map[21] = "xoxxxxxxxxxxxxxxxxxxxxxoxoooooooxxxxxxxxxxbooooobxxxoxxoxxoo";
Level3Map[22] = "xooooooooooooooxxxxxxxxxxxxxmxxxxxxxxxxxxxotttttoxxxoxxoxxoo";
Level3Map[23] = "xxxxxxxxxxxxxxoxxxxxxxxxxxxxomooxxxxxxxxxxboooooboooooxoxxoo";
Level3Map[24] = "xxtttttttttttxoxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxoexoxxoo";
Level3Map[25] = "xxtbooooooobtxoxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxoxxoo";
Level3Map[26] = "xxtotttttttotxoxxooooxoooooooxoxoooxbbbbxbbbboooooooooooxxoo";
Level3Map[27] = "xxtotboooetotxoxxowioxoozzzzzzozzooxowioxxxxxxxxoxxxxxxxxxoo";
Level3Map[28] = "xxtototttototxoxxoiioxoozbooooobzooxoiioxxxxxxxzozxxxxxxxxxo";
Level3Map[29] = "xxtoootpootooooxxooooxoozottottozooxooooxxooooozozoooooooxxo";
Level3Map[30] = "xxtototttototxxxxooooxoozotoootozooxooooxxooooozozoooooooooo";
Level3Map[31] = "xxtotbooobtotxxxxowioxoozoooxooozooxowioxxooooozozoooooooooo";
Level3Map[32] = "xxtotttttttotxxxxoiioxoozotoootozooxoiioxxxoooozozoooooooooo";
Level3Map[33] = "xxtbooooooobtxxooooooxoozottpttozooxooooooxxxxxxoxoooooooooo";
Level3Map[34] = "xxtttwimwitttxxoxxxxxxoozbooooobzooxxxxxxoxxxxxxoxxxxxxxxxxo";
Level3Map[35] = "xxxxxiioiixxxxxoxeoobxoozzzzozzzzooxboocxoxxxxxxoxxxbooooobx";
Level3Map[36] = "xboxxxxoxxxxxoxoxowioxooooototoooooxowioxoxxxxxxoxxxowibwiox";
Level3Map[37] = "xbooooooxoooooxoxoiioxxxxxxxoxxxxxxxoiioxoxxxxxxmooooiibiiox";
Level3Map[38] = "xcoxxxxoxoooooxoxooooooooooooooooooooooomooxxxxxoxxxbooooobx";
Level3Map[39] = "xxxxxxxxxoooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxooxxxxxxxo";
Frame 2
ifFrameLoaded (7) {
gotoAndPlay (5);
}
Frame 3
gotoAndPlay (2);
Frame 5
TargetLoad = _root.getBytesTotal();
BarWidth = LoadBar._width;
Frame 6
CurrentLoad = _root.getBytesLoaded();
LoadPercentage = CurrentLoad / TargetLoad;
setProperty("LoadBar", _width , BarWidth * LoadPercentage);
Frame 7
if (LoadPercentage < 1) {
gotoAndPlay (6);
} else {
gotoAndPlay (12);
}
Frame 13
PlayerLevel = 1;
PlayerScore = 0;
PlayerLives = 3;
stop();
Frame 15
function GoNextLevel() {
Message.gotoandstop(1);
PlayerLevel = PlayerLevel + 1;
gotoAndPlay (33);
}
function StartFromTop() {
gotoAndStop (13);
}
function SetupStart() {
PlayerFindsTarget = 0;
StartY = 0;
while (StartY < MapHeight) {
StartX = 0;
while (StartX < MapWidth) {
if (MapArray[StartY].charAt(StartX) == "s") {
MapX = StartX - 4;
MapY = StartY - 4;
if (MapX < 0) {
MapX = 0;
}
if ((MapWidth - 9) < MapX) {
MapX = MapWidth - 9;
}
if (MapY < 0) {
MapY = 0;
}
if ((MapHeight - 9) < MapY) {
MapY = MapHeight - 9;
}
HeroX = StartX;
HeroY = StartY;
HeroScreenX = ((StartX - MapX) * 40) + 40;
HeroScreenY = ((StartY - MapY) * 40) + 40;
MapScreenX = ((-MapX) * 40) + 20;
MapScreenY = ((-MapY) * 40) + 20;
setProperty("MapArea", _y , MapScreenY);
setProperty("MapArea", _x , MapScreenX);
}
if (MapArray[StartY].charAt(StartX) == "c") {
PlayerFindsTarget = PlayerFindsTarget + 1;
}
StartX = StartX + 1;
}
StartY = StartY + 1;
}
}
function CountEnemies() {
EnemyArray[0] = "";
StartY = 0;
while (StartY < MapHeight) {
StartX = 0;
while (StartX < MapWidth) {
if (MapArray[StartY].charAt(StartX) == "e") {
EnemyCount = EnemyCount + 1;
EnemyArray[EnemyCount] = "Enemy" + EnemyCount;
EnemyMoving[EnemyCount] = false;
EnemyX[EnemyCount] = StartX;
EnemyY[EnemyCount] = StartY;
EnemyTargetX[EnemyCount] = 0;
EnemyTargetY[EnemyCount] = 0;
EnemyScreenX[EnemyCount] = (StartX * 40) + 20;
EnemyScreenY[EnemyCount] = (StartY * 40) + 20;
EnemyVisible[EnemyCount] = false;
MapArray[EnemyY[EnemyCount]] = (MapArray[EnemyY[EnemyCount]].substring(0, EnemyX[EnemyCount]) + "o") + MapArray[EnemyY[EnemyCount]].substring(EnemyX[EnemyCount] + 1, MapWidth);
}
StartX = StartX + 1;
}
StartY = StartY + 1;
}
}
function ShowEnemy(CheckValue, XValue, YValue) {
count = count + 1;
MapArea.EnemyLevel.Enemy.duplicateMovieClip("Enemy" + CheckValue, count);
setProperty(eval ("MapArea.EnemyLevel.Enemy" + CheckValue), _x , XValue);
setProperty(eval ("MapArea.EnemyLevel.Enemy" + CheckValue), _y , YValue);
EnemyVisible[CheckValue] = true;
}
function HideEnemy(CheckValue, EnemyName) {
eval ("MapArea.EnemyLevel." + EnemyName).removeMovieClip();
EnemyVisible[CheckValue] = false;
}
function CheckEnemyStatus() {
GlobalEnemyMoving = false;
Check = 1;
while (EnemyCount >= Check) {
if (EnemyArray[Check] != "") {
MapTop = MapY - 2;
MapBottom = MapY + 11;
MapLeft = MapX - 2;
MapRight = MapX + 11;
if (MapTop < 1) {
MapTop = 0;
}
if (MapLeft < 1) {
MapLeft = 0;
}
if ((MapHeight - 1) < MapBottom) {
MapBottom = MapHeight - 1;
}
if ((MapWidth - 1) < MapRight) {
MapRight = MapWidth - 1;
}
if ((((EnemyY[Check] >= MapTop) && (MapBottom >= EnemyY[Check])) && (EnemyX[Check] >= MapLeft)) && (MapRight >= EnemyX[Check])) {
if (!EnemyVisible[Check]) {
ShowEnemy(Check, EnemyScreenX[Check], EnemyScreenY[Check]);
}
XDifference = EnemyX[Check] - HeroX;
YDifference = EnemyY[Check] - HeroY;
if (Math.sqrt((XDifference * XDifference) + (YDifference * YDifference)) < 5) {
EnemyMoving[Check] = true;
GlobalEnemyMoving = true;
} else {
EnemyMoving[Check] = false;
EnemyDirection[Check] = "";
}
} else {
EnemyMoving[Check] = false;
EnemyDirection[Check] = "";
if (EnemyVisible[Check]) {
HideEnemy(Check, EnemyArray[Check]);
}
}
}
Check = Check + 1;
}
DirectEnemies();
}
function RefreshEnemy() {
Check = 1;
while (EnemyCount >= Check) {
if (EnemyMoving[Check]) {
if (EnemyDirection[Check] == "up") {
EnemyY[Check] = EnemyY[Check] - 1;
} else if (EnemyDirection[Check] == "down") {
EnemyY[Check] = EnemyY[Check] + 1;
} else if (EnemyDirection[Check] == "left") {
EnemyX[Check] = EnemyX[Check] - 1;
} else if (EnemyDirection[Check] == "right") {
EnemyX[Check] = EnemyX[Check] + 1;
}
}
Check = Check + 1;
}
}
function ObstacleCheck(GetChar) {
if (((((GetChar == "x") || (GetChar == "z")) || (GetChar == "w")) || (GetChar == "i")) || (GetChar == "t")) {
return(false);
}
return(true);
}
function DirectEnemies() {
EnemyOptionsCount = 0;
Check = 1;
while (EnemyCount >= Check) {
EnemyTargetX[Check] = 0;
EnemyTargetY[Check] = 0;
LastDirection = EnemyDirection[Check];
EnemyDirection[Check] = "";
if (EnemyMoving[Check]) {
if ((LastDirection != "") && (Math.floor(Math.random() * 3) != 2)) {
if (LastDirection == "up") {
FoundCharacter = MapArray[EnemyY[Check] - 1].charAt(EnemyX[Check]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "up";
}
} else if (LastDirection == "down") {
FoundCharacter = MapArray[EnemyY[Check] + 1].charAt(EnemyX[Check]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "down";
}
} else if (LastDirection == "left") {
FoundCharacter = MapArray[EnemyY[Check]].charAt(EnemyX[Check] - 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "left";
}
} else if (LastDirection == "right") {
FoundCharacter = MapArray[EnemyY[Check]].charAt(EnemyX[Check] + 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "right";
}
}
} else if (HeroY < EnemyY[Check]) {
FoundCharacter = MapArray[EnemyY[Check] - 1].charAt(EnemyX[Check]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "up";
}
} else if (EnemyY[Check] < HeroY) {
FoundCharacter = MapArray[EnemyY[Check] + 1].charAt(EnemyX[Check]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "down";
}
} else if (HeroX < EnemyX[Check]) {
FoundCharacter = MapArray[EnemyY[Check]].charAt(EnemyX[Check] - 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "left";
}
} else if (EnemyX[Check] < HeroX) {
FoundCharacter = MapArray[EnemyY[Check]].charAt(EnemyX[Check] + 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyDirection[Check] = "right";
}
}
if (EnemyDirection[Check] == "") {
FindOtherEnemyOptions(Check);
RandomNum = Math.floor(Math.random() * EnemyOptionsCount) + 1;
EnemyDirection[Check] = EnemyOptionsArray[RandomNum];
}
if (((EnemyDirection[Check] == "up") && (MoveableTargetX == EnemyX[Check])) && (MoveableTargetY == (EnemyY[Check] - 1))) {
EnemyDirection[Check] = "";
} else if (((EnemyDirection[Check] == "down") && (MoveableTargetX == EnemyX[Check])) && (MoveableTargetY == (EnemyY[Check] + 1))) {
EnemyDirection[Check] = "";
} else if (((EnemyDirection[Check] == "left") && (MoveableTargetX == (EnemyX[Check] - 1))) && (MoveableTargetY == EnemyY[Check])) {
EnemyDirection[Check] = "";
} else if (((EnemyDirection[Check] == "right") && (MoveableTargetX == (EnemyX[Check] + 1))) && (MoveableTargetY == EnemyY[Check])) {
EnemyDirection[Check] = "";
}
if (EnemyDirection[Check] == "") {
EnemyMoving[Check] = false;
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndStop(1);
} else if (EnemyDirection[Check] == "up") {
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _rotation , 0);
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndPlay(5);
EnemyTargetX[Check] = EnemyX[Check];
EnemyTargetY[Check] = EnemyY[Check] - 1;
} else if (EnemyDirection[Check] == "down") {
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _rotation , 180);
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndPlay(5);
EnemyTargetX[Check] = EnemyX[Check];
EnemyTargetY[Check] = EnemyY[Check] + 1;
} else if (EnemyDirection[Check] == "left") {
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _rotation , 270);
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndPlay(5);
EnemyTargetX[Check] = EnemyX[Check] - 1;
EnemyTargetY[Check] = EnemyY[Check];
} else if (EnemyDirection[Check] == "right") {
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _rotation , 90);
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndPlay(5);
EnemyTargetX[Check] = EnemyX[Check] + 1;
EnemyTargetY[Check] = EnemyY[Check];
}
} else {
eval ("MapArea.EnemyLevel." + EnemyArray[Check]).gotoAndStop(1);
}
Check = Check + 1;
}
}
function FindOtherEnemyOptions(CheckValue) {
EnemyOptionsCount = 0;
FoundCharacter = MapArray[EnemyY[CheckValue] - 1].charAt(EnemyX[CheckValue]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyOptionsCount = EnemyOptionsCount + 1;
EnemyOptionsArray[EnemyOptionsCount] = "up";
}
FoundCharacter = MapArray[EnemyY[CheckValue] + 1].charAt(EnemyX[CheckValue]);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyOptionsCount = EnemyOptionsCount + 1;
EnemyOptionsArray[EnemyOptionsCount] = "down";
}
FoundCharacter = MapArray[EnemyY[CheckValue]].charAt(EnemyX[CheckValue] - 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyOptionsCount = EnemyOptionsCount + 1;
EnemyOptionsArray[EnemyOptionsCount] = "left";
}
FoundCharacter = MapArray[EnemyY[CheckValue]].charAt(EnemyX[CheckValue] + 1);
if (ObstacleCheck(FoundCharacter) && (FoundCharacter != "m")) {
EnemyOptionsCount = EnemyOptionsCount + 1;
EnemyOptionsArray[EnemyOptionsCount] = "right";
}
}
function IsMoveableMoving() {
MoveableMoving = false;
if (KeyPress == "up") {
MapArray[MoveableY] = (MapArray[MoveableY].substring(0, MoveableX) + "o") + MapArray[MoveableY].substring(MoveableX + 1, MapWidth);
MapArray[MoveableY - 1] = (MapArray[MoveableY - 1].substring(0, MoveableX) + "m") + MapArray[MoveableY - 1].substring(MoveableX + 1, MapWidth);
CreateTile("m", MoveableX, MoveableY - 1);
eval ("MapArea.MapLevel." + MoveableTile).removeMovieClip();
} else if (KeyPress == "down") {
MapArray[MoveableY] = (MapArray[MoveableY].substring(0, MoveableX) + "o") + MapArray[MoveableY].substring(MoveableX + 1, MapWidth);
MapArray[MoveableY + 1] = (MapArray[MoveableY + 1].substring(0, MoveableX) + "m") + MapArray[MoveableY + 1].substring(MoveableX + 1, MapWidth);
CreateTile("m", MoveableX, MoveableY + 1);
eval ("MapArea.MapLevel." + MoveableTile).removeMovieClip();
} else if (KeyPress == "left") {
MapArray[MoveableY] = (MapArray[MoveableY].substring(0, MoveableX - 1) + "mo") + MapArray[MoveableY].substring(MoveableX + 1, MapWidth);
CreateTile("m", MoveableX - 1, MoveableY);
eval ("MapArea.MapLevel." + MoveableTile).removeMovieClip();
} else if (KeyPress == "right") {
MapArray[MoveableY] = (MapArray[MoveableY].substring(0, MoveableX) + "om") + MapArray[MoveableY].substring(MoveableX + 2, MapWidth);
CreateTile("m", MoveableX + 1, MoveableY);
eval ("MapArea.MapLevel." + MoveableTile).removeMovieClip();
}
}
function IsAreaMoving() {
MapMoving = false;
if (KeyPress == "up") {
HeroY = HeroY - 1;
MapY = MapY - 1;
} else if (KeyPress == "down") {
HeroY = HeroY + 1;
MapY = MapY + 1;
} else if (KeyPress == "left") {
HeroX = HeroX - 1;
MapX = MapX - 1;
} else if (KeyPress == "right") {
HeroX = HeroX + 1;
MapX = MapX + 1;
}
UpdateMap();
}
function IsHeroMoving() {
HeroMoving = false;
if (KeyPress == "up") {
HeroY = HeroY - 1;
} else if (KeyPress == "down") {
HeroY = HeroY + 1;
} else if (KeyPress == "left") {
HeroX = HeroX - 1;
} else if (KeyPress == "right") {
HeroX = HeroX + 1;
}
}
function GlobalCheck() {
if (GlobalEnemyMoving == true) {
RefreshEnemy();
}
if (MoveableMoving) {
IsMoveableMoving();
}
if (MapMoving) {
IsAreaMoving();
}
if (HeroMoving) {
IsHeroMoving();
}
CheckPosition();
CheckKeys();
if (MapMoving || (HeroMoving)) {
SetHeroAngles();
}
GlobalCounter = 0;
CheckEnemyStatus();
if (MoveableMoving) {
Push.start();
}
}
function SetHeroAngles() {
if (KeyPress == "right") {
setProperty("Hero", _rotation , 0);
} else if (KeyPress == "left") {
setProperty("Hero", _rotation , 180);
} else if (KeyPress == "down") {
setProperty("Hero", _rotation , 90);
} else {
setProperty("Hero", _rotation , 270);
}
if (MoveableMoving && (WalkCycle == 0)) {
WalkCycle = 1;
Hero.gotoandplay(25);
} else if (MoveableMoving) {
WalkCycle = 0;
Hero.gotoandplay(35);
} else if (WalkCycle == 0) {
WalkCycle = 1;
Hero.gotoandplay(5);
} else {
WalkCycle = 0;
Hero.gotoandplay(15);
}
}
function CreateTile(Type, Xvalue, Yvalue) {
TileName = (((Type + "Block_") + Xvalue) + "_") + Yvalue;
TileType = Type + "Block";
eval ("MapArea.MapLevel." + TileType).duplicateMovieClip(TileName, count);
count = count + 1;
if (Type == "t") {
setProperty(eval ("MapArea.MapLevel." + TileName), _rotation , Math.floor(Math.random() * 120));
}
setProperty(eval ("MapArea.MapLevel." + TileName), _x , (Xvalue * 40) + 20);
setProperty(eval ("MapArea.MapLevel." + TileName), _y , (Yvalue * 40) + 20);
}
function RemoveTile(Type, Xvalue, Yvalue) {
TileName = (((Type + "Block_") + Xvalue) + "_") + Yvalue;
eval ("MapArea.MapLevel." + TileName).removeMovieClip();
}
function CheckPosition() {
FoundItem = MapArray[HeroY].charAt(HeroX);
if (FoundItem == "p") {
StartPowerUP();
} else if (FoundItem == "c") {
GetCollectable();
} else if (FoundItem == "f") {
FinishLevel();
} else if (FoundItem == "b") {
GetBonus();
}
}
function GetCollectable() {
MapArray[HeroY] = (MapArray[HeroY].substring(0, HeroX) + "o") + MapArray[HeroY].substring(HeroX + 1, MapWidth);
PlayerFinds = PlayerFinds + 1;
PlayerScore = PlayerScore + 100;
Hero.HeroFX.gotoandplay(35);
RemoveTile("c", HeroX, HeroY);
}
function GetBonus() {
MapArray[HeroY] = (MapArray[HeroY].substring(0, HeroX) + "o") + MapArray[HeroY].substring(HeroX + 1, MapWidth);
PlayerScore = PlayerScore + 50;
Hero.HeroFX.gotoandplay(5);
RemoveTile("b", HeroX, HeroY);
}
function StartPowerUp() {
MapArray[HeroY] = (MapArray[HeroY].substring(0, HeroX) + "o") + MapArray[HeroY].substring(HeroX + 1, MapWidth);
Hero.ForceField.gotoandplay(10);
Hero.HeroFX.gotoandplay(20);
PowerBar.gotoandplay(10);
PlayerScore = PlayerScore + 500;
RemoveTile("p", HeroX, HeroY);
}
function FinishLevel() {
if (PlayerFinds == PlayerFindsTarget) {
gotoAndPlay (28);
}
}
function BuildMap() {
Xorigin = MapX - 2;
if (Xorigin < 1) {
Xorigin = 0;
}
Xend = Xorigin + 13;
if (MapWidth < Xend) {
Xend = MapWidth;
}
Yorigin = MapY - 2;
if (Yorigin < 1) {
Yorigin = 0;
}
Yend = Yorigin + 13;
if (MapHeight < Yend) {
Yend = MapHeight;
}
BuildY = Yorigin;
while (BuildY < Yend) {
BuildX = Xorigin;
while (BuildX < Xend) {
FoundCharacter = MapArray[BuildY].charAt(BuildX);
if (FoundCharacter != "o") {
CreateTile(FoundCharacter, BuildX, BuildY);
}
BuildX = BuildX + 1;
}
BuildY = BuildY + 1;
}
}
function UpdateMap() {
if (KeyPress == "up") {
Xorigin = MapX - 2;
if (Xorigin < 1) {
Xorigin = 0;
}
Xend = Xorigin + 14;
if (MapWidth < Xend) {
Xend = MapWidth;
}
UpdateX = Xorigin;
while (UpdateX < Xend) {
FoundCharacter = MapArray[MapY - 2].charAt(UpdateX);
if ((1 < MapY) && (FoundCharacter != "o")) {
CreateTile(FoundCharacter, UpdateX, MapY - 2);
}
FoundCharacter = MapArray[MapY + 11].charAt(UpdateX);
if ((MapY < (MapHeight - 11)) && (FoundCharacter != "o")) {
RemoveTile(FoundCharacter, UpdateX, MapY + 11);
}
UpdateX = UpdateX + 1;
}
} else if (KeyPress == "down") {
Xorigin = MapX - 3;
if (Xorigin < 1) {
Xorigin = 0;
}
Xend = Xorigin + 14;
if (MapWidth < Xend) {
Xend = MapWidth;
}
UpdateX = Xorigin;
while (UpdateX < Xend) {
FoundCharacter = MapArray[MapY - 3].charAt(UpdateX);
if ((2 < MapY) && (FoundCharacter != "o")) {
RemoveTile(FoundCharacter, UpdateX, MapY - 3);
}
FoundCharacter = MapArray[MapY + 10].charAt(UpdateX);
if ((MapY < (MapHeight - 10)) && (FoundCharacter != "o")) {
CreateTile(FoundCharacter, UpdateX, MapY + 10);
}
UpdateX = UpdateX + 1;
}
} else if (KeyPress == "left") {
Yorigin = MapY - 2;
if (Yorigin < 1) {
Yorigin = 0;
}
Yend = Yorigin + 14;
if (MapHeight < Yend) {
Yend = MapHeight;
}
UpdateY = Yorigin;
while (UpdateY < Yend) {
FoundCharacter = MapArray[UpdateY].charAt(MapX - 2);
if ((1 < MapX) && (FoundCharacter != "o")) {
CreateTile(FoundCharacter, MapX - 2, UpdateY);
}
FoundCharacter = MapArray[UpdateY].charAt(MapX + 11);
if ((MapX < (MapWidth - 11)) && (FoundCharacter != "o")) {
RemoveTile(FoundCharacter, MapX + 11, UpdateY);
}
UpdateY = UpdateY + 1;
}
} else if (KeyPress == "right") {
Yorigin = MapY - 3;
if (Yorigin < 1) {
Yorigin = 0;
}
Yend = Yorigin + 14;
if (MapHeight < Yend) {
Yend = MapHeight;
}
UpdateY = Yorigin;
while (UpdateY < Yend) {
FoundCharacter = MapArray[UpdateY].charAt(MapX - 3);
if ((2 < MapX) && (FoundCharacter != "o")) {
RemoveTile(FoundCharacter, MapX - 3, UpdateY);
}
FoundCharacter = MapArray[UpdateY].charAt(MapX + 10);
if ((MapX < (MapWidth - 10)) && (FoundCharacter != "o")) {
CreateTile(FoundCharacter, MapX + 10, UpdateY);
}
UpdateY = UpdateY + 1;
}
}
}
function CheckKeys() {
KeyPress = KeyControl.ThisKeyPress;
if (KeyPress != "") {
doHeroMove();
}
}
function CheckMoveable() {
MoveableTargetX = 0;
MoveableTargetY = 0;
if (((2 < HeroY) && (KeyPress == "up")) && (MapArray[HeroY - 1].charAt(HeroX) == "m")) {
MoveableX = HeroX;
MoveableY = HeroY - 1;
if (MapArray[HeroY - 2].charAt(HeroX) == "o") {
MoveableTargetX = HeroX;
MoveableTargetY = HeroY - 2;
StartMoveable();
return(true);
}
return(false);
}
if (((HeroY < 3) && (KeyPress == "up")) && (MapArray[HeroY - 1].charAt(HeroX) == "m")) {
return(false);
}
if (((HeroY < (MapHeight - 3)) && (KeyPress == "down")) && (MapArray[HeroY + 1].charAt(HeroX) == "m")) {
MoveableX = HeroX;
MoveableY = HeroY + 1;
if (MapArray[HeroY + 2].charAt(HeroX) == "o") {
MoveableTargetX = HeroX;
MoveableTargetY = HeroY + 2;
StartMoveable();
return(true);
}
return(false);
}
if ((((MapHeight - 4) < HeroY) && (KeyPress == "down")) && (MapArray[HeroY + 1].charAt(HeroX) == "m")) {
return(false);
}
if (((2 < HeroX) && (KeyPress == "left")) && (MapArray[HeroY].charAt(HeroX - 1) == "m")) {
MoveableX = HeroX - 1;
MoveableY = HeroY;
if (MapArray[HeroY].charAt(HeroX - 2) == "o") {
MoveableTargetX = HeroX - 2;
MoveableTargetY = HeroY;
StartMoveable();
return(true);
}
return(false);
}
if (((HeroX < 3) && (KeyPress == "left")) && (MapArray[HeroY].charAt(HeroX - 1) == "m")) {
return(false);
}
if (((HeroX < (MapWidth - 3)) && (KeyPress == "right")) && (MapArray[HeroY].charAt(HeroX + 1) == "m")) {
MoveableX = HeroX + 1;
MoveableY = HeroY;
if (MapArray[HeroY].charAt(HeroX + 2) == "o") {
MoveableTargetX = HeroX + 2;
MoveableTargetY = HeroY;
StartMoveable();
return(true);
}
return(false);
}
if ((((MapHeight - 4) < HeroX) && (KeyPress == "right")) && (MapArray[HeroY].charAt(HeroX + 1) == "m")) {
return(false);
}
return(true);
}
function StartMoveable() {
MoveableMoving = true;
MoveableTile = (("mBlock_" + MoveableX) + "_") + MoveableY;
MoveableScreenX = (MoveableX * 40) + 20;
MoveableScreenY = (MoveableY * 40) + 20;
}
function doHeroMove() {
if ((KeyPress == "up") && (ObstacleCheck(MapArray[HeroY - 1].charAt(HeroX)))) {
if (CheckMoveable()) {
HeroTargetX = HeroX;
HeroTargetY = HeroY - 1;
if (MapY == 0) {
HeroMoving = true;
} else if ((MapY == (MapHeight - 9)) && (200 < HeroScreenY)) {
HeroMoving = true;
} else {
MapMoving = true;
}
}
} else if ((KeyPress == "down") && (ObstacleCheck(MapArray[HeroY + 1].charAt(HeroX)))) {
if (CheckMoveable()) {
HeroTargetX = HeroX;
HeroTargetY = HeroY + 1;
if ((MapY == 0) && (HeroScreenY < 200)) {
HeroMoving = true;
} else if (MapY == (MapHeight - 9)) {
HeroMoving = true;
} else {
MapMoving = true;
}
}
} else if ((KeyPress == "left") && (ObstacleCheck(MapArray[HeroY].charAt(HeroX - 1)))) {
if (CheckMoveable()) {
HeroTargetX = HeroX - 1;
HeroTargetY = HeroY;
if (MapX == 0) {
HeroMoving = true;
} else if ((MapX == (MapWidth - 9)) && (200 < HeroScreenX)) {
HeroMoving = true;
} else {
MapMoving = true;
}
}
} else if ((KeyPress == "right") && (ObstacleCheck(MapArray[HeroY].charAt(HeroX + 1)))) {
if (CheckMoveable()) {
HeroTargetX = HeroX + 1;
HeroTargetY = HeroY;
if ((MapX == 0) && (HeroScreenX < 200)) {
HeroMoving = true;
} else if (MapX == (MapWidth - 9)) {
HeroMoving = true;
} else {
MapMoving = true;
}
}
}
}
function CheckCollision() {
XDifference = EnemyX[Check] - HeroX;
YDifference = EnemyY[Check] - HeroY;
Proximity = Math.sqrt((XDifference * XDifference) + (YDifference * YDifference));
if (EnemyArray[Check] != "") {
if (KillEnemies) {
HideEnemy(Check, EnemyArray[Check]);
EnemyArray[Check] = "";
PlayerScore = PlayerScore + 250;
EnemyMoving[Check] = false;
EnemyDirection[Check] = "";
} else {
gotoAndPlay (23);
}
}
}
function GlobalUpdate() {
GlobalCounter = GlobalCounter + 1;
if (((!HeroMoving) && (!MapMoving)) && (!GlobalEnemyMoving)) {
GlobalCheck();
} else {
if (HeroMoving) {
UpdateHeroMove();
} else if (MapMoving) {
UpdateAreaMove();
}
if (MoveableMoving) {
UpdateMoveableMove();
}
if (GlobalEnemyMoving == true) {
UpdateEnemyMove();
}
}
}
function doCollision(CheckValue) {
if (KillEnemies) {
Hero.HeroFX.gotoAndPlay(50);
HideEnemy(CheckValue, EnemyArray[CheckValue]);
EnemyArray[CheckValue] = "";
PlayerScore = PlayerScore + 250;
EnemyMoving[CheckValue] = false;
EnemyDirection[CheckValue] = "";
} else {
HeroKill.start();
HideEnemy(CheckValue, EnemyArray[CheckValue]);
EnemyArray[CheckValue] = "";
EnemyMoving[CheckValue] = false;
EnemyDirection[CheckValue] = "";
gotoAndPlay (23);
}
}
function UpdateEnemyMove() {
Check = 1;
while (EnemyCount >= Check) {
if (EnemyMoving[Check]) {
if ((EnemyX[Check] == HeroX) && (EnemyY[Check] == HeroY)) {
doCollision(Check);
} else if (((((GlobalCounter == 2) && (HeroX == EnemyTargetX[Check])) && (HeroY == EnemyTargetY[Check])) && (HeroTargetX == EnemyX[Check])) && (HeroTargetY == EnemyY[Check])) {
doCollision(Check);
} else if (EnemyDirection[Check] == "down") {
EnemyScreenY[Check] = EnemyScreenY[Check] + 8;
} else if (EnemyDirection[Check] == "up") {
EnemyScreenY[Check] = EnemyScreenY[Check] - 8;
} else if (EnemyDirection[Check] == "right") {
EnemyScreenX[Check] = EnemyScreenX[Check] + 8;
} else if (EnemyDirection[Check] == "left") {
EnemyScreenX[Check] = EnemyScreenX[Check] - 8;
}
if (EnemyMoving[Check]) {
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _x , EnemyScreenX[Check]);
setProperty(eval ("MapArea.EnemyLevel." + EnemyArray[Check]), _y , EnemyScreenY[Check]);
}
}
Check = Check + 1;
}
}
function UpdateHeroMove() {
if (KeyPress == "down") {
HeroScreenY = HeroScreenY + 8;
setProperty("Hero", _y , HeroScreenY);
} else if (KeyPress == "up") {
HeroScreenY = HeroScreenY - 8;
setProperty("Hero", _y , HeroScreenY);
} else if (KeyPress == "right") {
HeroScreenX = HeroScreenX + 8;
setProperty("Hero", _x , HeroScreenX);
} else if (KeyPress == "left") {
HeroScreenX = HeroScreenX - 8;
setProperty("Hero", _x , HeroScreenX);
}
}
function UpdateMoveableMove() {
if (KeyPress == "down") {
MoveableScreenY = MoveableScreenY + 8;
setProperty(eval ("MapArea.MapLevel." + MoveableTile), _y , MoveableScreenY);
} else if (KeyPress == "up") {
MoveableScreenY = MoveableScreenY - 8;
setProperty(eval ("MapArea.MapLevel." + MoveableTile), _y , MoveableScreenY);
} else if (KeyPress == "right") {
MoveableScreenX = MoveableScreenX + 8;
setProperty(eval ("MapArea.MapLevel." + MoveableTile), _x , MoveableScreenX);
} else if (KeyPress == "left") {
MoveableScreenX = MoveableScreenX - 8;
setProperty(eval ("MapArea.MapLevel." + MoveableTile), _x , MoveableScreenX);
}
}
function UpdateAreaMove() {
if (KeyPress == "up") {
MapScreenY = MapScreenY + 8;
setProperty("MapArea", _y , MapScreenY);
} else if (KeyPress == "down") {
MapScreenY = MapScreenY - 8;
setProperty("MapArea", _y , MapScreenY);
} else if (KeyPress == "left") {
MapScreenX = MapScreenX + 8;
setProperty("MapArea", _x , MapScreenX);
} else if (KeyPress == "right") {
MapScreenX = MapScreenX - 8;
setProperty("MapArea", _x , MapScreenX);
}
}
function name() {
}
var MapArray = new Array();
if (PlayerLevel == 1) {
MapWidth = Level1Width;
MapHeight = Level1Height;
y = 0;
while (y < MapHeight) {
MapArray[y] = Level1Map[y];
y = y + 1;
}
} else if (PlayerLevel == 2) {
MapWidth = Level2Width;
MapHeight = Level2Height;
y = 0;
while (y < MapHeight) {
MapArray[y] = Level2Map[y];
y = y + 1;
}
} else if (PlayerLevel == 3) {
MapWidth = Level3Width;
MapHeight = Level3Height;
y = 0;
while (y < MapHeight) {
MapArray[y] = Level3Map[y];
y = y + 1;
}
}
PlayerFinds = 0;
PlayerFindsTarget = 0;
DeathLoop = 0;
Push = new Sound();
Push.attachSound("Push");
HeroKill = new Sound();
HeroKill.attachSound("hero_kill");
EnemyKill = new Sound();
EnemyKill.attachSound("enemy_kill");
count = 1;
GlobalCounter = 0;
GlobalEnemyMoving = false;
MapX = 0;
MapY = 0;
HeroX = 1;
HeroY = 1;
HeroScreenX = 80;
HeroScreenY = 80;
HeroTargetX = 0;
HeroTargetY = 0;
MapScreenX = 20;
MapScreenY = 20;
WalkCycle = 0;
KillEnemies = false;
if (GameDetail == "low") {
setProperty("ShadedEdges", _visible , 0);
}
Hero._xscale = 100;
Hero._yscale = 100;
Hero._rotation = 0;
Hero._alpha = 100;
var EnemyArray = new Array();
var EnemyMoving = new Array();
var EnemyDirection = new Array();
var EnemyVisible = new Array();
var EnemyX = new Array();
var EnemyY = new Array();
var EnemyTargetX = new Array();
var EnemyTargetY = new Array();
var EnemyScreenX = new Array();
var EnemyScreenY = new Array();
EnemyCount = 0;
EnemyOptionsArray = new Array();
EnemyOptionsCount = 0;
EnemyOptionsArray[0] = "";
MoveableTargetX = 0;
MoveableTargetY = 0;
SetupStart();
CountEnemies();
BuildMap();
CheckEnemyStatus();
Message.gotoandstop(1);
HeroMoving = false;
MapMoving = false;
setProperty("Hero", _x , HeroScreenX);
setProperty("Hero", _y , HeroScreenY);
Frame 16
if (4 < GlobalCounter) {
GlobalCheck();
GlobalUpdate();
} else {
GlobalUpdate();
}
Frame 17
gotoAndPlay (16);
Frame 23
DeathLoop = DeathLoop + 1;
HeroScaleX = Hero._xscale;
HeroScaleY = Hero._yscale;
if (DeathLoop < 21) {
Hero.gotoandplay(45);
Hero._xscale = HeroScaleX + 40;
Hero._yscale = HeroScaleY + 40;
Hero._rotation = DeathLoop * 6;
Hero._alpha = 100 - (DeathLoop * 5);
} else {
PlayerLives = PlayerLives - 1;
if (0 < PlayerLives) {
DeathLoop = 0;
Hero._xscale = 100;
Hero._yscale = 100;
Hero._rotation = 0;
Hero._alpha = 100;
gotoAndPlay (16);
} else {
gotoAndPlay (25);
}
}
Frame 24
gotoAndPlay (23);
Frame 25
Message.gotoandplay(5);
stop();
Frame 28
if (PlayerLevel == MaxLevels) {
Message.gotoandplay(25);
} else {
Message.gotoandplay(15);
}
FrameCounter = 1;
Frame 29
if (30 < FrameCounter) {
PlayerLevel = PlayerLevel + 1;
if (MaxLevels < PlayerLevel) {
stop();
} else {
gotoAndPlay (33);
}
} else {
FrameCounter = FrameCounter + 1;
}
Frame 30
gotoAndPlay (29);
Frame 33
gotoAndPlay (15);
Symbol 20 Button
on (release) {
stopAllSounds();
GameDetail = "high";
gotoAndPlay (14);
}
Symbol 24 Button
on (release) {
stopAllSounds();
GameDetail = "low";
gotoAndPlay (14);
}
Symbol 30 MovieClip Frame 1
FirstKeyDown = "";
SecondKeyDown = "";
Symbol 30 MovieClip Frame 2
if (key.isDown(34)) {
_root.GoNextLevel();
}
if (key.isDown(38)) {
if (FirstKeyDown == "") {
FirstKeyDown = "up";
} else if ((FirstKeyDown != "up") && (SecondKeyDown != "up")) {
SecondKeyDown = "up";
}
} else if (FirstKeyDown == "up") {
FirstKeyDown = SecondKeyDown;
SecondKeyDown = "";
} else if (SecondKeyDown == "up") {
SecondKeyDown = "";
}
if (key.isDown(40)) {
if (FirstKeyDown == "") {
FirstKeyDown = "down";
} else if ((FirstKeyDown != "down") && (SecondKeyDown != "down")) {
SecondKeyDown = "down";
}
} else if (FirstKeyDown == "down") {
FirstKeyDown = SecondKeyDown;
SecondKeyDown = "";
} else if (SecondKeyDown == "down") {
SecondKeyDown = "";
}
if (key.isDown(39)) {
if (FirstKeyDown == "") {
FirstKeyDown = "right";
} else if ((FirstKeyDown != "right") && (SecondKeyDown != "right")) {
SecondKeyDown = "right";
}
} else if (FirstKeyDown == "right") {
FirstKeyDown = SecondKeyDown;
SecondKeyDown = "";
} else if (SecondKeyDown == "right") {
SecondKeyDown = "";
}
if (key.isDown(37)) {
if (FirstKeyDown == "") {
FirstKeyDown = "left";
} else if ((FirstKeyDown != "left") && (SecondKeyDown != "left")) {
SecondKeyDown = "left";
}
} else if (FirstKeyDown == "left") {
FirstKeyDown = SecondKeyDown;
SecondKeyDown = "";
} else if (SecondKeyDown == "left") {
SecondKeyDown = "";
}
if (SecondKeyDown != "") {
ThisKeyPress = SecondKeyDown;
} else {
ThisKeyPress = FirstKeyDown;
}
Symbol 30 MovieClip Frame 3
gotoAndPlay (2);
Symbol 34 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndStop (2);
}
stop();
Symbol 34 MovieClip Frame 2
stop();
Symbol 54 MovieClip Frame 2
gotoAndPlay (1);
Symbol 54 MovieClip Frame 10
_root.KillEnemies = true;
Symbol 54 MovieClip Frame 207
_root.Hero.ForceField.gotoandplay(20);
Symbol 54 MovieClip Frame 210
_root.KillEnemies = false;
gotoAndPlay (1);
Symbol 68 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndStop (2);
}
stop();
Symbol 71 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndPlay (2);
}
stop();
Symbol 74 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndStop (2);
}
stop();
Symbol 77 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndPlay (2);
}
stop();
Symbol 82 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndStop (2);
}
stop();
Symbol 86 MovieClip Frame 1
if (_root.GameDetail == "low") {
gotoAndStop (2);
}
stop();
Symbol 86 MovieClip Frame 2
stop();
Symbol 92 MovieClip Frame 1
stop();
Symbol 92 MovieClip Frame 10
gotoAndPlay (5);
Symbol 97 MovieClip Frame 1
stop();
Symbol 97 MovieClip Frame 19
stop();
Symbol 97 MovieClip Frame 30
gotoAndPlay (1);
Symbol 100 MovieClip Frame 1
stop();
Symbol 100 MovieClip Frame 17
gotoAndPlay (1);
Symbol 100 MovieClip Frame 32
gotoAndPlay (1);
Symbol 100 MovieClip Frame 47
gotoAndPlay (1);
Symbol 100 MovieClip Frame 62
gotoAndPlay (1);
Symbol 113 MovieClip Frame 1
stop();
Symbol 113 MovieClip Frame 10
gotoAndPlay (1);
Symbol 113 MovieClip Frame 20
gotoAndPlay (1);
Symbol 113 MovieClip Frame 30
gotoAndPlay (1);
Symbol 113 MovieClip Frame 40
gotoAndPlay (1);
Symbol 113 MovieClip Frame 45
stop();
Symbol 120 MovieClip Frame 1
stop();
Symbol 120 MovieClip Frame 10
if (key.isDown(32)) {
_root.StartFromTop();
}
Symbol 120 MovieClip Frame 11
gotoAndPlay (10);
Symbol 120 MovieClip Frame 20
stop();
Symbol 120 MovieClip Frame 30
if (key.isDown(32)) {
_root.StartFromTop();
}
Symbol 120 MovieClip Frame 31
gotoAndPlay (30);