Section 1
//png (effect-fire4.png)
package effect-fire4 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire4
Section 2
//png (effect-fire5.png)
package effect-fire5 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire5
Section 3
//png (effect-fire6.png)
package effect-fire6 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire6
Section 4
//png (effect-fire7.png)
package effect-fire7 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire7
Section 5
//png (effect-fire8.png)
package effect-fire8 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire8
Section 6
//png (effect-fire9.png)
package effect-fire9 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package effect-fire9
Section 7
//Game (Game.Game)
package Game {
import flash.net.*;
public class Game {
public var player_level_attack:int;// = 0
public var player_talismans:Array;
public var lives:Number;
public var lives_default:Number;// = 1
public var cpu_talismans:Array;
public var port_visit:int;// = 0
public var fieldMC:field;
public var tutorial_step:int;// = 0
public var navigation:int;// = 0
public var level_spell_prices:Array;
public var cpu_level_money:int;// = 0
public var matches:Array;
public var game_started:Boolean;// = false
public var bookmark:Number;// = 0
public var game_field_height:Number;// = 7
public var tutorial_last_step:int;// = 0
public var current_level:Level;
public var levels_count:Number;// = 15
public var player_level_man:int;// = 0
public var talismans_prices:Array;
public var cpu_level_man:int;// = 0
public var armor:int;// = 0
public var attack:int;// = 0
public var so:SharedObject;
public var trade:int;// = 0
public var bomb_mask:Array;
public var game_field:Array;
public var game_field_width:Number;// = 12
public var player_level_role:String;
public var talismans_open:Array;
public var player_g:int;// = 0
public var player_level_trade:int;// = 0
public var cpu_g:int;// = 0
public var cpu_b:int;// = 0
public var player_b:int;// = 0
public var cpu_level_attack:int;// = 0
public var player_r:int;// = 0
public var levels:Levels;
public var cpu_r:int;// = 0
public var playersMove:Boolean;// = true
public var level_is_playing:Boolean;// = false
public var win_status:Number;// = 0
public var player_exp:int;// = 0
public var canMove:Boolean;// = false
public var moves:Array;
public var player_rank:int;// = 1
public var cpu_level_trade:int;// = 0
public var level_ups_prices:Array;
public var levels_options:Array;
public var player_money:int;// = 0
public var points:Number;// = 0
public var player_level_money:int;// = 0
public var talismans:Array;
public var player_level_def:int;// = 0
public var gameOver:Boolean;// = false
public var cpu_level_def:int;// = 0
public function Game(){
levels = new Levels(levels_count);
lives = lives_default;
game_field = new Array();
matches = new Array();
moves = new Array();
talismans = new Array("trader1", "trader2", "trader3", "trader4", "trader5", "guardian1", "guardian2", "guardian5", "korsair1", "korsair2", "korsair4", "korsair5");
talismans_prices = new Array(500, 750, 1000, 1500, 2000, 500, 750, 2000, 500, 750, 1500, 2000);
talismans_open = new Array(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
player_talismans = new Array();
cpu_talismans = new Array();
level_spell_prices = new Array(new Array(new Array(0, 3, 9, 1), new Array(0, 6, 9, 1), new Array(6, 0, 12, 0)), new Array(new Array(0, 9, 3, 1), new Array(0, 9, 6, 1), new Array(6, 12, 0, 0)), new Array(new Array(9, 3, 0, 1), new Array(6, 0, 9, 0), new Array(12, 0, 6, 1)));
level_ups_prices = new Array(new Array(40, 80, 120, 160, 200), new Array(30, 60, 90, 120, 150), new Array(20, 40, 60, 80, 100), new Array(10, 20, 30, 40, 50));
levels_options = new Array(new Array(2, 1, 6, new Array("guardian1"), 1), new Array(3, 1, 7, new Array("korsair1"), 2), new Array(1, 1, 8, new Array("trader1"), 2), new Array(3, 1, 9, new Array("korsair2"), 3), new Array(2, 2, 10, new Array("guardian1", "guardian2"), 4), new Array(3, 2, 11, new Array("korsair2"), 1), new Array(2, 2, 12, new Array("guardian5"), 1), new Array(3, 2, 13, new Array("korsair1", "korsair5"), 2), new Array(1, 2, 14, new Array("trader2", "trader3"), 3), new Array(3, 2, 15, new Array("korsair5"), 3), new Array(3, 3, 16, new Array("korsair1", "korsair2", "korsair5"), 4), new Array(1, 3, 17, new Array("trader1", "trader3", "trader5"), 2), new Array(1, 3, 18, new Array("trader4", "trader5"), 3), new Array(3, 3, 19, new Array("korsair4"), 4), new Array(3, 3, 20, new Array("korsair1", "korsair4", "korsair5", "guardian5"), 1));
bomb_mask = new Array(new Array(0, -2), new Array(-1, -1), new Array(0, -1), new Array(1, -1), new Array(-2, 0), new Array(-1, 0), new Array(1, 0), new Array(2, 0), new Array(-1, 1), new Array(0, 1), new Array(1, 1), new Array(0, 2));
super();
fieldMC = new field();
so = SharedObject.getLocal("myData", "/");
}
public function checkPlaying():Boolean{
return (level_is_playing);
}
public function searchForCustomMatch(_arg1:int, _arg2:Boolean=false){
var _local4:int;
var _local5:int;
var _local7:int;
var _local3:Boolean;
var _local6:Array = new Array();
if (_arg2 == true){
matches = new Array();
};
_local4 = 0;
while (_local4 < game_field_width) {
_local5 = 0;
while (_local5 < game_field_height) {
_local3 = false;
if (game_field[_local4][_local5][0] == _arg1){
_local6 = BoomItem(_local4, _local5);
if (_local6.length > 0){
if (checkMatches(new Array(_local4, _local5)) == false){
if (_local3 == false){
matches.push(new Array());
_local3 = true;
};
matches[(matches.length - 1)].push(new Array(_local4, _local5, true));
};
_local7 = 0;
while (_local7 < _local6.length) {
if (checkMatches(_local6[_local7]) == false){
if (_local3 == false){
matches.push(new Array());
_local3 = true;
};
matches[(matches.length - 1)].push(_local6[_local7]);
};
_local7++;
};
} else {
if (checkMatches(new Array(_local4, _local5)) == false){
if (_local3 == false){
matches.push(new Array());
_local3 = true;
};
matches[(matches.length - 1)].push(new Array(_local4, _local5, false));
};
};
};
_local5++;
};
_local4++;
};
}
public function LoadGame(){
var _local1:int;
if (so.data.player_rank != undefined){
player_rank = so.data.player_rank;
};
if (so.data.player_money != undefined){
player_money = so.data.player_money;
};
if (so.data.player_exp != undefined){
player_exp = so.data.player_exp;
};
if (so.data.player_level_attack != undefined){
player_level_attack = so.data.player_level_attack;
};
if (so.data.player_level_man != undefined){
player_level_man = so.data.player_level_man;
};
if (so.data.player_level_def != undefined){
player_level_def = so.data.player_level_def;
};
if (so.data.player_level_trade != undefined){
player_level_trade = so.data.player_level_trade;
};
if (so.data.player_talismans != undefined){
player_talismans = so.data.player_talismans;
};
if (so.data.talismans_open != undefined){
talismans_open = so.data.talismans_open;
};
if (so.data.port_visit != undefined){
port_visit = so.data.port_visit;
};
if (so.data.tutorial_step != undefined){
tutorial_step = so.data.tutorial_step;
};
if (so.data.tutorial_last_step != undefined){
tutorial_last_step = so.data.tutorial_last_step;
};
if (((!((so.data.current_level == undefined))) && ((so.data.current_level > 0)))){
_local1 = 0;
while (_local1 < (so.data.current_level - 1)) {
current_level = levels.setupNextLevel();
_local1++;
};
};
}
public function finishPlaying():void{
level_is_playing = false;
}
public function checkMatches(_arg1):Boolean{
var _local2:int;
var _local3:int;
if (matches.length > 0){
_local2 = 0;
while (_local2 < matches.length) {
_local3 = 0;
while (_local3 < matches[_local2].length) {
if ((((matches[_local2][_local3][0] == _arg1[0])) && ((matches[_local2][_local3][1] == _arg1[1])))){
return (true);
};
_local3++;
};
_local2++;
};
};
return (false);
}
public function clearMatches():void{
matches = new Array();
}
public function Lose():void{
win_status = 2;
if (--lives == 0){
level_is_playing = false;
};
}
public function searchForMatch(_arg1:int, _arg2:Boolean=false){
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local10:int;
var _local3:Boolean;
var _local4:Boolean;
var _local9:Array = new Array();
if (_arg2 == true){
matches = new Array();
};
_local5 = 0;
while (_local5 < ((game_field_width - _arg1) + 1)) {
_local6 = 0;
while (_local6 < game_field_height) {
_local4 = false;
_local3 = false;
_local7 = 0;
while (_local7 < _arg1) {
if (game_field[_local5][_local6][0] != game_field[(_local5 + _local7)][_local6][0]){
_local3 = true;
};
_local7++;
};
if (_local3 == false){
_local7 = 0;
while (_local7 < _arg1) {
_local9 = BoomItem((_local5 + _local7), _local6);
if (_local9.length > 0){
if (checkMatches(new Array((_local5 + _local7), _local6)) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(new Array((_local5 + _local7), _local6, true));
};
_local10 = 0;
while (_local10 < _local9.length) {
if (checkMatches(_local9[_local10]) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(_local9[_local10]);
};
_local10++;
};
} else {
if (checkMatches(new Array((_local5 + _local7), _local6)) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(new Array((_local5 + _local7), _local6, false));
};
};
_local7++;
};
_local8++;
};
_local6++;
};
_local5++;
};
_local6 = 0;
while (_local6 < ((game_field_height - _arg1) + 1)) {
_local5 = 0;
while (_local5 < game_field_width) {
_local4 = false;
_local3 = false;
_local7 = 0;
while (_local7 < _arg1) {
if (game_field[_local5][_local6][0] != game_field[_local5][(_local6 + _local7)][0]){
_local3 = true;
};
_local7++;
};
if (_local3 == false){
_local7 = 0;
while (_local7 < _arg1) {
_local9 = BoomItem(_local5, (_local6 + _local7));
if (_local9.length > 0){
if (checkMatches(new Array(_local5, (_local6 + _local7))) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(new Array(_local5, (_local6 + _local7), true));
};
_local10 = 0;
while (_local10 < _local9.length) {
if (checkMatches(_local9[_local10]) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(_local9[_local10]);
};
_local10++;
};
} else {
if (checkMatches(new Array(_local5, (_local6 + _local7))) == false){
if (_local4 == false){
matches.push(new Array());
_local4 = true;
};
matches[(matches.length - 1)].push(new Array(_local5, (_local6 + _local7), false));
};
};
_local7++;
};
_local8++;
};
_local5++;
};
_local6++;
};
traceM(matches);
return (_local8);
}
public function searchForMoves(_arg1:int, _arg2:Boolean=false){
var i:int;
var j:int;
var k:int;
var sortOnFirstKey:Function;
var sortOnSecondKey:Function;
var match = _arg1;
var clearM = _arg2;
sortOnFirstKey = function (_arg1:Array, _arg2:Array):Number{
var _local3:Number = _arg1[0];
var _local4:Number = _arg2[0];
if (_local3 > _local4){
return (1);
};
if (_local3 < _local4){
return (-1);
};
return (0);
};
sortOnSecondKey = function (_arg1:Array, _arg2:Array):Number{
var _local3:Number = _arg1[1];
var _local4:Number = _arg2[1];
if (_local3 > _local4){
return (1);
};
if (_local3 < _local4){
return (-1);
};
return (0);
};
var tmpA:Array = new Array();
var tmpB:Array = new Array();
var found:Boolean;
var index:Array = new Array();
var indexTo:Array = new Array();
var r:int;
if (clearM == true){
moves = new Array();
};
i = 0;
while (i < ((game_field_width - match) + 1)) {
j = 0;
while (j < game_field_height) {
tmpA = new Array();
k = 0;
while (k < match) {
tmpA.push(new Array(game_field[(i + k)][j][0], (i + k), j));
k = (k + 1);
};
tmpA.sort(sortOnFirstKey, Array.NUMERIC);
r = 0;
tmpB = new Array();
tmpB[r] = new Array(tmpA[0][0], 1);
k = 1;
while (k < match) {
if (tmpA[k][0] == tmpA[(k - 1)][0]){
var _local4 = tmpB[r];
var _local5 = 1;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
} else {
r = (r + 1);
_local4 = (r + 1);
tmpB[_local4] = new Array(tmpA[k][0], 1);
};
k = (k + 1);
};
tmpB.sort(sortOnSecondKey, Array.NUMERIC, Array.DESCENDING);
if ((((tmpB[0][1] == 1)) && (((tmpB[0][1] + tmpB[1][1]) == match)))){
found = false;
index = new Array();
indexTo = new Array();
k = 0;
while (k < tmpA.length) {
if (tmpA[k][0] == tmpB[0][0]){
indexTo = new Array(tmpA[k][1], tmpA[k][2]);
if ((((((tmpA[k][2] > 0)) && ((game_field[tmpA[k][1]][(tmpA[k][2] - 1)][0] == tmpB[1][0])))) && (!((game_field[tmpA[k][1]][(tmpA[k][2] - 1)][2] == true))))){
index = new Array(tmpA[k][1], (tmpA[k][2] - 1));
found = true;
} else {
if ((((((tmpA[k][2] < (game_field_height - 1))) && ((game_field[tmpA[k][1]][(tmpA[k][2] + 1)][0] == tmpB[1][0])))) && (!((game_field[tmpA[k][1]][(tmpA[k][2] + 1)][2] == true))))){
index = new Array(tmpA[k][1], (tmpA[k][2] + 1));
found = true;
} else {
if ((((((((tmpA[k][1] == i)) && ((i > 0)))) && ((game_field[(tmpA[k][1] - 1)][tmpA[k][2]][0] == tmpB[1][0])))) && (!((game_field[(tmpA[k][1] - 1)][tmpA[k][2]][2] == true))))){
index = new Array((tmpA[k][1] - 1), tmpA[k][2]);
found = true;
} else {
if ((((((((tmpA[k][1] == ((i + match) - 1))) && ((i < (game_field_width - match))))) && ((game_field[(tmpA[k][1] + 1)][tmpA[k][2]][0] == tmpB[1][0])))) && (!((game_field[(tmpA[k][1] + 1)][tmpA[k][2]][2] == true))))){
index = new Array((tmpA[k][1] + 1), tmpA[k][2]);
found = true;
};
};
};
};
};
k = (k + 1);
};
if ((((((found == true)) && (!((game_field[index[0]][index[1]][2] == true))))) && (!((game_field[indexTo[0]][indexTo[1]][2] == true))))){
moves.push(new Array());
moves[(moves.length - 1)].push(tmpB[1][0]);
moves[(moves.length - 1)].push(index);
moves[(moves.length - 1)].push(indexTo);
};
};
j = (j + 1);
};
i = (i + 1);
};
j = 0;
while (j < ((game_field_height - match) + 1)) {
i = 0;
while (i < game_field_width) {
tmpA = new Array();
k = 0;
while (k < match) {
tmpA.push(new Array(game_field[i][(j + k)][0], i, (j + k)));
k = (k + 1);
};
tmpA.sort(sortOnFirstKey, Array.NUMERIC);
r = 0;
tmpB = new Array();
tmpB[r] = new Array(tmpA[0][0], 1);
k = 1;
while (k < match) {
if (tmpA[k][0] == tmpA[(k - 1)][0]){
_local4 = tmpB[r];
_local5 = 1;
_local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
} else {
r = (r + 1);
_local4 = (r + 1);
tmpB[_local4] = new Array(tmpA[k][0], 1);
};
k = (k + 1);
};
tmpB.sort(sortOnSecondKey, Array.NUMERIC, Array.DESCENDING);
if ((((tmpB[0][1] == 1)) && (((tmpB[0][1] + tmpB[1][1]) == match)))){
found = false;
index = new Array();
k = 0;
while (k < tmpA.length) {
if (tmpA[k][0] == tmpB[0][0]){
indexTo = new Array(tmpA[k][1], tmpA[k][2]);
if ((((((tmpA[k][1] > 0)) && ((game_field[(tmpA[k][1] - 1)][tmpA[k][2]][0] == tmpB[1][0])))) && (!((game_field[(tmpA[k][1] - 1)][tmpA[k][2]][2] == true))))){
index = new Array((tmpA[k][1] - 1), tmpA[k][2]);
found = true;
} else {
if ((((((tmpA[k][1] < (game_field_width - 1))) && ((game_field[(tmpA[k][1] + 1)][tmpA[k][2]][0] == tmpB[1][0])))) && (!((game_field[(tmpA[k][1] + 1)][tmpA[k][2]][2] == true))))){
index = new Array((tmpA[k][1] + 1), tmpA[k][2]);
found = true;
} else {
if ((((((((tmpA[k][2] == j)) && ((j > 0)))) && ((game_field[tmpA[k][1]][(tmpA[k][2] - 1)][0] == tmpB[1][0])))) && (!((game_field[tmpA[k][1]][(tmpA[k][2] - 1)][2] == true))))){
index = new Array(tmpA[k][1], (tmpA[k][2] - 1));
found = true;
} else {
if ((((((((tmpA[k][2] == ((j + match) - 1))) && ((j < (game_field_height - match))))) && ((game_field[tmpA[k][1]][(tmpA[k][2] + 1)][0] == tmpB[1][0])))) && (!((game_field[tmpA[k][1]][(tmpA[k][2] + 1)][2] == true))))){
index = new Array(tmpA[k][1], (tmpA[k][2] + 1));
found = true;
};
};
};
};
};
k = (k + 1);
};
if ((((((found == true)) && (!((game_field[index[0]][index[1]][2] == true))))) && (!((game_field[indexTo[0]][indexTo[1]][2] == true))))){
moves.push(new Array());
moves[(moves.length - 1)].push(tmpB[1][0]);
moves[(moves.length - 1)].push(index);
moves[(moves.length - 1)].push(indexTo);
};
};
i = (i + 1);
};
j = (j + 1);
};
}
public function SaveGame(){
so.data.isSaved = true;
so.data.player_rank = player_rank;
so.data.player_money = player_money;
so.data.player_exp = player_exp;
so.data.player_level_attack = player_level_attack;
so.data.player_level_man = player_level_man;
so.data.player_level_def = player_level_def;
so.data.player_level_trade = player_level_trade;
so.data.player_talismans = player_talismans;
so.data.talismans_open = talismans_open;
so.data.port_visit = port_visit;
so.data.tutorial_step = tutorial_step;
so.data.tutorial_last_step = tutorial_last_step;
so.data.current_level = Main.Application.game.levels.current_level;
so.flush();
}
public function setupNextLevel():void{
if (gameOver == false){
level_is_playing = false;
current_level = levels.setupNextLevel();
if (current_level == null){
gameOver = true;
win_status = 1;
return;
};
win_status = 0;
};
}
public function deleteMatchesFromField():Array{
var _local2:Number;
var _local3:Number;
var _local5:int;
var _local1:Array = new Array();
var _local4:int;
while (_local4 < matches.length) {
_local5 = 0;
while (_local5 < matches[_local4].length) {
_local2 = matches[_local4][_local5][0];
_local3 = matches[_local4][_local5][1];
if (game_field[_local2][_local3][2] != true){
game_field[_local2][_local3][0] = 0;
game_field[_local2][_local3][1] = 0;
} else {
game_field[_local2][_local3][2] = false;
};
_local5++;
};
_local4++;
};
_local4 = 0;
while (_local4 < game_field_width) {
_local1.push(new Array());
_local5 = 0;
while (_local5 < game_field_height) {
_local1[_local4].push(game_field[_local4][_local5]);
_local5++;
};
_local4++;
};
traceField(_local1);
return (_local1);
}
public function modifyField():Array{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Boolean;
var _local1:Array = new Array();
var _local2:Array = new Array();
var _local3:Array = new Array();
var _local4:Number = (game_field_height - 1);
var _local5:int;
while (_local5 < game_field_width) {
_local1 = new Array();
_local2 = new Array();
_local4 = (game_field_height - 1);
_local6 = (game_field_height - 1);
while (_local6 >= 0) {
if (game_field[_local5][_local6][0] != 0){
var _temp1 = _local4;
_local4 = (_local4 - 1);
var _local11 = _temp1;
_local1[_local11] = game_field[_local5][_local6];
};
_local6--;
};
_local7 = 0;
while (_local7 <= _local4) {
_local8 = (1 + Math.floor((Math.random() * 7)));
if (Main.Application.game.levels.getCurrentLevelIndex() == 1){
if (_local8 == 4){
while (_local8 == 4) {
_local8 = (1 + Math.floor((Math.random() * 7)));
};
};
};
_local9 = 0;
if (Main.Application.game.levels.current_level >= 5){
_local9 = ((((_local8 == 1)) && ((Math.floor((Math.random() * 23)) == 22)))) ? 1 : 0;
};
_local10 = false;
if (Main.Application.game.levels.current_level >= 4){
_local10 = ((_local9)==1) ? false : ((Math.floor((Math.random() * 90)))==22) ? true : false;
};
_local1[_local7] = new Array(_local8, _local9, _local10);
_local7++;
};
_local6 = 0;
while (_local6 < game_field_height) {
game_field[_local5][_local6] = _local1[_local6];
_local6++;
};
_local6 = 0;
while (_local6 < (_local4 + 1)) {
_local2[_local6] = _local1[_local6];
_local6++;
};
_local3.push(_local2);
_local5++;
};
traceField();
return (_local3);
}
public function closeCustomMatches():Array{
var _local2:Number;
var _local3:Number;
var _local5:int;
var _local1:Array = new Array();
var _local4:int;
while (_local4 < matches.length) {
_local5 = 0;
while (_local5 < matches[_local4].length) {
_local2 = matches[_local4][_local5][0];
_local3 = matches[_local4][_local5][1];
if (game_field[_local2][_local3][2] != true){
game_field[_local2][_local3][2] = true;
};
_local5++;
};
_local4++;
};
_local4 = 0;
while (_local4 < game_field_width) {
_local1.push(new Array());
_local5 = 0;
while (_local5 < game_field_height) {
_local1[_local4].push(game_field[_local4][_local5]);
_local5++;
};
_local4++;
};
return (_local1);
}
public function startPlaying():Boolean{
if (level_is_playing == false){
lives = current_level.lives;
level_is_playing = true;
return (true);
};
return (false);
}
public function generateField():void{
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:Boolean;
var _local1:int;
var _local2 = 10;
game_field = new Array(game_field_width);
var _local3:int;
while (_local3 < game_field_width) {
game_field[_local3] = new Array(game_field_height);
_local4 = 0;
while (_local4 < game_field_height) {
_local5 = (1 + Math.floor((Math.random() * 7)));
if (Main.Application.game.levels.getCurrentLevelIndex() == 1){
if (_local5 == 4){
while (_local5 == 4) {
_local5 = (1 + Math.floor((Math.random() * 7)));
};
};
};
_local6 = 0;
if (Main.Application.game.levels.current_level >= 5){
_local6 = ((((_local5 == 1)) && ((Math.floor((Math.random() * 23)) == 22)))) ? 1 : 0;
};
_local7 = false;
if (Main.Application.game.levels.current_level >= 4){
_local7 = ((_local6)==1) ? false : ((Math.floor((Math.random() * 90)))==22) ? true : false;
};
game_field[_local3][_local4] = new Array(_local5, _local6, _local7);
_local4++;
};
_local3++;
};
traceField();
}
public function traceM(_arg1:Array):void{
var _local4:int;
var _local2 = "";
var _local3:int;
while (_local3 < _arg1.length) {
_local2 = "";
_local4 = 0;
while (_local4 < _arg1[_local3].length) {
_local2 = (_local2 + (((((("[" + _arg1[_local3][_local4][0]) + "][") + _arg1[_local3][_local4][1]) + "]") + game_field[_arg1[_local3][_local4][0]][_arg1[_local3][_local4][1]]) + ", "));
_local4++;
};
_local3++;
};
}
public function checkGameStatus():Number{
if (gameOver == false){
return (0);
};
return (win_status);
}
public function Win():void{
win_status = 1;
setupNextLevel();
}
public function BoomItem(_arg1:int, _arg2:int):Array{
var _local4:int;
var _local3:Array = new Array();
if ((((game_field[_arg1][_arg2][0] == 1)) && ((game_field[_arg1][_arg2][1] == 1)))){
_local4 = 0;
while (_local4 < bomb_mask.length) {
if (((((((((_arg1 + bomb_mask[_local4][0]) >= 0)) && (((_arg2 + bomb_mask[_local4][1]) >= 0)))) && (((_arg1 + bomb_mask[_local4][0]) < game_field_width)))) && (((_arg2 + bomb_mask[_local4][1]) < game_field_height)))){
if (game_field[(_arg1 + bomb_mask[_local4][0])][(_arg2 + bomb_mask[_local4][1])][2] != true){
_local3.push(new Array((_arg1 + bomb_mask[_local4][0]), (_arg2 + bomb_mask[_local4][1]), true));
} else {
_local3.concat(BoomItem((_arg1 + bomb_mask[_local4][0]), (_arg2 + bomb_mask[_local4][1])));
};
};
_local4++;
};
};
return (_local3);
}
public function traceField(_arg1:Array=null):void{
var _local4:int;
if (_arg1 == null){
_arg1 = game_field;
};
var _local2 = "";
var _local3:int;
while (_local3 < game_field_height) {
_local2 = "";
_local4 = 0;
while (_local4 < game_field_width) {
_local2 = (_local2 + (((((("[" + _local4) + "][") + _local3) + "]") + _arg1[_local4][_local3]) + ", "));
_local4++;
};
_local3++;
};
}
public function startNewGame():void{
bookmark = 0;
port_visit = 0;
tutorial_step = 0;
tutorial_last_step = 0;
talismans_open = new Array(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
player_talismans = new Array();
cpu_talismans = new Array();
player_rank = 1;
player_money = 0;
player_exp = 0;
player_level_attack = 0;
player_level_man = 0;
player_level_def = 0;
player_level_trade = 0;
attack = 0;
armor = 0;
navigation = 0;
trade = 0;
gameOver = false;
lives = lives_default;
current_level = levels.setupFirstLevel();
level_is_playing = false;
win_status = 0;
}
}
}//package Game
Section 8
//Level (Game.Level)
package Game {
class Level {
public var points:Number;// = 0
public var lives:Number;// = 1
public var name:String;
function Level(_arg1:String){
name = _arg1;
}
}
}//package Game
Section 9
//Levels (Game.Levels)
package Game {
import Game.*;
class Levels {
public var current_level:Number;// = 0
public var levels:Array;
public var last_open_level:Number;// = 0
public var levels_count:Number;// = 0
function Levels(_arg1:Number){
levels = new Array();
super();
var _local2:Number = 0;
while (_local2 < _arg1) {
addLevel(("Level " + (_local2 + 1)));
_local2++;
};
}
public function getCurrentLevelIndex():Number{
return (current_level);
}
public function getCurrentLevel():Level{
return (levels[current_level]);
}
public function addLevel(_arg1:String):void{
var _local2 = levels_count++;
levels[_local2] = new Level(_arg1);
}
public function getCurrentLevelInfo():Object{
return (Object({name:levels[current_level].name}));
}
public function setCurrentLevelIndex(_arg1:Number):void{
current_level = _arg1;
}
public function getLastOpenLevel():Number{
return (last_open_level);
}
public function setupFirstLevel():Level{
current_level = 0;
last_open_level = ++current_level;
trace(("setupFirstLevel " + getCurrentLevelIndex()));
return (levels[0]);
}
public function setupNextLevel():Level{
return (((++current_level)>levels_count) ? null : levels[(current_level - 1)]);
}
public function getLevelInfoAt(_arg1:Number):Object{
return (Object({name:levels[_arg1].name}));
}
}
}//package Game
Section 10
//chsDown_165 (Game_fla.chsDown_165)
package Game_fla {
import flash.display.*;
public dynamic class chsDown_165 extends MovieClip {
public function chsDown_165(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop((1 + ((Main.Application.soundControl.globalSwitch)==true) ? 0 : 1));
}
}
}//package Game_fla
Section 11
//chsNorm_163 (Game_fla.chsNorm_163)
package Game_fla {
import flash.display.*;
public dynamic class chsNorm_163 extends MovieClip {
public function chsNorm_163(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop((1 + ((Main.Application.soundControl.globalSwitch)==true) ? 0 : 1));
}
}
}//package Game_fla
Section 12
//chsOver_164 (Game_fla.chsOver_164)
package Game_fla {
import flash.display.*;
public dynamic class chsOver_164 extends MovieClip {
public function chsOver_164(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop((1 + ((Main.Application.soundControl.globalSwitch)==true) ? 0 : 1));
}
}
}//package Game_fla
Section 13
//ClassGuard_150 (Game_fla.ClassGuard_150)
package Game_fla {
import flash.display.*;
public dynamic class ClassGuard_150 extends MovieClip {
public function ClassGuard_150(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 14
//ClassGuardLock_152 (Game_fla.ClassGuardLock_152)
package Game_fla {
import flash.display.*;
public dynamic class ClassGuardLock_152 extends MovieClip {
public function ClassGuardLock_152(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 15
//ClassGuardO_151 (Game_fla.ClassGuardO_151)
package Game_fla {
import flash.display.*;
public dynamic class ClassGuardO_151 extends MovieClip {
public function ClassGuardO_151(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 16
//ClassTrad_146 (Game_fla.ClassTrad_146)
package Game_fla {
import flash.display.*;
public dynamic class ClassTrad_146 extends MovieClip {
public function ClassTrad_146(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 17
//ClassTradLock_148 (Game_fla.ClassTradLock_148)
package Game_fla {
import flash.display.*;
public dynamic class ClassTradLock_148 extends MovieClip {
public function ClassTradLock_148(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 18
//ClassTradO_147 (Game_fla.ClassTradO_147)
package Game_fla {
import flash.display.*;
public dynamic class ClassTradO_147 extends MovieClip {
public function ClassTradO_147(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 19
//GameLogo_168 (Game_fla.GameLogo_168)
package Game_fla {
import flash.display.*;
public dynamic class GameLogo_168 extends MovieClip {
public function GameLogo_168(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Preloader.Obj.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 20
//Island_154 (Game_fla.Island_154)
package Game_fla {
import flash.display.*;
public dynamic class Island_154 extends MovieClip {
public function Island_154(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 21
//IslandO_155 (Game_fla.IslandO_155)
package Game_fla {
import flash.display.*;
public dynamic class IslandO_155 extends MovieClip {
public function IslandO_155(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 22
//Logotype1_221 (Game_fla.Logotype1_221)
package Game_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class Logotype1_221 extends MovieClip {
public var gameTop:btnLogo2;
public function Logotype1_221(){
addFrameScript(0, frame1);
}
function frame1(){
gameTop.buttonMode = true;
gameTop.useHandCursor = true;
gameTop.mouseChildren = false;
gameTop.alpha = 0;
gameTop.addEventListener(MouseEvent.CLICK, function (){
navigateToURL(new URLRequest("http://www.gametop.com/stats/marinepuzzleonline.html"), "_blank");
});
}
}
}//package Game_fla
Section 23
//LoseBG_50 (Game_fla.LoseBG_50)
package Game_fla {
import flash.display.*;
public dynamic class LoseBG_50 extends MovieClip {
public function LoseBG_50(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 24
//MenuNormal_181 (Game_fla.MenuNormal_181)
package Game_fla {
import flash.display.*;
public dynamic class MenuNormal_181 extends MovieClip {
public function MenuNormal_181(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 25
//MenuOwer_182 (Game_fla.MenuOwer_182)
package Game_fla {
import flash.display.*;
public dynamic class MenuOwer_182 extends MovieClip {
public function MenuOwer_182(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 26
//MouseDown_183 (Game_fla.MouseDown_183)
package Game_fla {
import flash.display.*;
public dynamic class MouseDown_183 extends MovieClip {
public function MouseDown_183(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 27
//PlayNorm_157 (Game_fla.PlayNorm_157)
package Game_fla {
import flash.display.*;
public dynamic class PlayNorm_157 extends MovieClip {
public function PlayNorm_157(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 28
//PlayOver_158 (Game_fla.PlayOver_158)
package Game_fla {
import flash.display.*;
public dynamic class PlayOver_158 extends MovieClip {
public function PlayOver_158(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 29
//PortBG_186 (Game_fla.PortBG_186)
package Game_fla {
import flash.display.*;
public dynamic class PortBG_186 extends MovieClip {
public function PortBG_186(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 30
//Portreats_192 (Game_fla.Portreats_192)
package Game_fla {
import flash.display.*;
public dynamic class Portreats_192 extends MovieClip {
public function Portreats_192(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package Game_fla
Section 31
//screenBorder_22 (Game_fla.screenBorder_22)
package Game_fla {
import flash.display.*;
public dynamic class screenBorder_22 extends MovieClip {
public function screenBorder_22(){
addFrameScript(0, frame1);
}
function frame1(){
alpha = 0;
}
}
}//package Game_fla
Section 32
//ShineMC_74 (Game_fla.ShineMC_74)
package Game_fla {
import flash.display.*;
public dynamic class ShineMC_74 extends MovieClip {
public function ShineMC_74(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package Game_fla
Section 33
//ships_184 (Game_fla.ships_184)
package Game_fla {
import flash.display.*;
public dynamic class ships_184 extends MovieClip {
public function ships_184(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
}
}//package Game_fla
Section 34
//ships2_128 (Game_fla.ships2_128)
package Game_fla {
import flash.display.*;
public dynamic class ships2_128 extends MovieClip {
public function ships2_128(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39, 39, frame40, 40, frame41, 41, frame42, 42, frame43, 43, frame44);
}
function frame41(){
stop();
}
function frame42(){
stop();
}
function frame30(){
stop();
}
function frame31(){
stop();
}
function frame10(){
stop();
}
function frame11(){
stop();
}
function frame12(){
stop();
}
function frame13(){
stop();
}
function frame14(){
stop();
}
function frame15(){
stop();
}
function frame16(){
stop();
}
function frame17(){
stop();
}
function frame18(){
stop();
}
function frame19(){
stop();
}
function frame35(){
stop();
}
function frame36(){
stop();
}
function frame37(){
stop();
}
function frame38(){
stop();
}
function frame39(){
stop();
}
function frame32(){
stop();
}
function frame33(){
stop();
}
function frame34(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame20(){
stop();
}
function frame9(){
stop();
}
function frame22(){
stop();
}
function frame23(){
stop();
}
function frame24(){
stop();
}
function frame25(){
stop();
}
function frame26(){
stop();
}
function frame8(){
stop();
}
function frame21(){
stop();
}
function frame29(){
stop();
}
function frame40(){
stop();
}
function frame27(){
stop();
}
function frame28(){
stop();
}
function frame43(){
stop();
}
function frame44(){
stop();
}
}
}//package Game_fla
Section 35
//Sphere_208 (Game_fla.Sphere_208)
package Game_fla {
import flash.display.*;
public dynamic class Sphere_208 extends MovieClip {
public var S:MovieClip;
public var sph:BlueSphere;
public function Sphere_208(){
addFrameScript(79, frame80);
}
function frame80(){
visible = false;
gotoAndStop(1);
}
}
}//package Game_fla
Section 36
//SphereMC_73 (Game_fla.SphereMC_73)
package Game_fla {
import flash.display.*;
public dynamic class SphereMC_73 extends MovieClip {
public function SphereMC_73(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package Game_fla
Section 37
//Spheres_209 (Game_fla.Spheres_209)
package Game_fla {
import flash.display.*;
public dynamic class Spheres_209 extends MovieClip {
public function Spheres_209(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame8(){
stop();
}
function frame9(){
stop();
}
}
}//package Game_fla
Section 38
//TipsBG_20 (Game_fla.TipsBG_20)
package Game_fla {
import flash.display.*;
public dynamic class TipsBG_20 extends MovieClip {
public function TipsBG_20(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 39
//Turn_21 (Game_fla.Turn_21)
package Game_fla {
import flash.display.*;
public dynamic class Turn_21 extends MovieClip {
public function Turn_21(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 40
//VictoryBG_55 (Game_fla.VictoryBG_55)
package Game_fla {
import flash.display.*;
public dynamic class VictoryBG_55 extends MovieClip {
public function VictoryBG_55(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package Game_fla
Section 41
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showClickAwayAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
var sendHostProgress:Boolean;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!(clip is DisplayObject)){
trace("Warning: Object passed as container clip not a descendant of the DisplayObject type");
return (null);
};
if (MovieClip(clip).stage == null){
trace("Warning: Container clip for ad is not attached to the stage");
return (null);
};
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
if (!options.skip){
loader.load(req);
};
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local6:Array;
var _local3:Object = _arg2.getBounds(_arg2.root);
var _local4:Number = 0;
var _local5:Number = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array = _arg2.split(".");
var _local4:Number = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}, progress_override:function (_arg1:Object):Number{
return (NaN);
}, bar_offset:0};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
if (options.skip){
ad_timeout = 0;
};
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = (10 + options.bar_offset);
bar.y = (h - 20);
};
var bar_w:Number = ((w - bar.x) - 10);
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(bar_w, 0);
backing.lineTo(bar_w, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo(bar_w, 0);
inside.lineTo(bar_w, 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(bar_w, 0);
outline.lineTo(bar_w, 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var progress:Number = Math.min(1, options.progress_override(clip));
var f:Function = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
if (!isNaN(progress)){
complete = (progress == 1);
} else {
if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){
complete = true;
} else {
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local12:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _local1:Object = this.parent.parent.root;
var _local2:Object = this.parent._mochiad_ctr;
var _local3:Number = (getTimer() - this.started);
var _local4:Boolean;
var _local5:Number = _local1.loaderInfo.bytesTotal;
var _local6:Number = _local1.loaderInfo.bytesLoaded;
var _local7:Number = Math.min(1, options.progress_override(_local1));
if (_local7 == 1){
complete = true;
};
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
var _local8:Number = ((100 * _local6) / _local5);
if (!isNaN(_local7)){
_local8 = (100 * _local7);
};
var _local9:Number = ((100 * _local3) / chk.ad_msec);
var _local10:Object = this._mochiad_bar._inside;
var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9));
_local11 = Math.max(this.last_pcnt, _local11);
this.last_pcnt = _local11;
_local10.scaleX = (_local11 * 0.01);
options.ad_progress(_local11);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8});
if (_local8 >= 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local12 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (unloaded){
MochiAd.unload(_local1);
} else {
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var mc = _arg1;
var f:Function = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 42
//MochiCoins (mochi.as3.MochiCoins)
package mochi.as3 {
public class MochiCoins {
public static const STORE_HIDE:String = "StoreHide";
public static const LOGGED_IN:String = "LoggedIn";
public static const NO_USER:String = "NoUser";
public static const PROPERTIES_SIZE:String = "PropertiesSize";
public static const IO_ERROR:String = "IOError";
public static const STORE_ITEMS:String = "StoreItems";
public static const USER_INFO:String = "UserInfo";
public static const LOGIN_SHOW:String = "LoginShow";
public static const PROFILE_HIDE:String = "ProfileHide";
public static const STORE_SHOW:String = "StoreShow";
public static const ITEM_NEW:String = "ItemNew";
public static const ITEM_OWNED:String = "ItemOwned";
public static const PROPERTIES_SAVED:String = "PropertySaved";
public static const WIDGET_LOADED:String = "WidgetLoaded";
public static const ERROR:String = "Error";
public static const LOGGED_OUT:String = "LoggedOut";
public static const PROFILE_SHOW:String = "ProfileShow";
public static const LOGIN_HIDE:String = "LoginHide";
public static const LOGIN_SHOWN:String = "LoginShown";
public static var _user_info:Object = null;
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public static var _inventory:MochiInventory;
public static function getUserInfo():void{
MochiServices.send("coins_getUserInfo");
}
public static function requestLogin():void{
MochiServices.send("coins_requestLogin");
}
public static function showItem(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showItem call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showItem", {options:_arg1}, null, null);
}
public static function saveUserProperties(_arg1:Object):void{
MochiServices.send("coins_saveUserProperties", _arg1);
}
public static function get loggedIn():Boolean{
return (!((_user_info == null)));
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
if (_arg1 == LOGGED_IN){
_inventory = new MochiInventory();
_user_info = _arg2;
} else {
if (_arg1 == LOGGED_OUT){
if (inventory){
_inventory.release();
_inventory = null;
};
_user_info = null;
};
};
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function getStoreItems():void{
MochiServices.send("coins_getStoreItems");
}
public static function showLoginWidget(_arg1:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showLoginWidget", {options:_arg1});
}
public static function get inventory():MochiInventory{
return (_inventory);
}
public static function showStore(_arg1:Object=null):void{
MochiServices.bringToTop();
MochiServices.send("coins_showStore", {options:_arg1}, null, null);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function getAPIURL():String{
if (!_user_info){
return (null);
};
return (_user_info.api_url);
}
public static function hideLoginWidget():void{
MochiServices.send("coins_hideLoginWidget");
}
public static function getAPIToken():String{
if (!_user_info){
return (null);
};
return (_user_info.api_token);
}
public static function showVideo(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showVideo call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showVideo", {options:_arg1}, null, null);
}
}
}//package mochi.as3
Section 43
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function reencode():void{
var _local1:uint = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function toString():String{
var _local1:String = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function get value():Number{
return (Number(this.toString()));
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 44
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher)
package mochi.as3 {
public class MochiEventDispatcher {
private var eventTable:Object;
public function MochiEventDispatcher():void{
eventTable = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
return;
};
for (_local3 in eventTable[_arg1]) {
var _local6 = eventTable[_arg1];
_local6[_local3](_arg2);
};
}
public function removeEventListener(_arg1:String, _arg2:Function):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
eventTable[_arg1] = [];
return;
};
for (_local3 in eventTable[_arg1]) {
if (eventTable[_arg1][_local3] != _arg2){
} else {
eventTable[_arg1].splice(Number(_local3), 1);
};
};
}
public function addEventListener(_arg1:String, _arg2:Function):void{
removeEventListener(_arg1, _arg2);
eventTable[_arg1].push(_arg2);
}
}
}//package mochi.as3
Section 45
//MochiEvents (mochi.as3.MochiEvents)
package mochi.as3 {
import flash.display.*;
public class MochiEvents {
public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL";
public static const FORMAT_LONG:String = "LongForm";
public static const ALIGN_BOTTOM:String = "ALIGN_B";
public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived";
public static const FORMAT_SHORT:String = "ShortForm";
public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR";
public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR";
public static const ALIGN_TOP:String = "ALIGN_T";
public static const ALIGN_LEFT:String = "ALIGN_L";
public static const ALIGN_RIGHT:String = "ALIGN_R";
public static const ALIGN_TOP_LEFT:String = "ALIGN_TL";
public static const ALIGN_CENTER:String = "ALIGN_C";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var gameStart:Number;
private static var levelStart:Number;
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function startSession(_arg1:String):void{
MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null);
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{
var _local4:Object;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
_local3.clip = _arg1;
MochiServices.send("events_setNotifications", _local3, null, null);
}
public static function endGame():void{
var _local1:Number = (new Date().time - gameStart);
trigger("end_game", {time:_local1});
}
public static function startGame():void{
gameStart = new Date().time;
trigger("start_game");
}
public static function trigger(_arg1:String, _arg2:Object=null):void{
if (_arg2 == null){
_arg2 = {};
} else {
if (_arg2["kind"] != undefined){
trace("WARNING: optional arguments package contains key 'id', it will be overwritten");
_arg2["kind"] = _arg1;
};
};
MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function startLevel():void{
levelStart = new Date().time;
trigger("start_level");
}
public static function endLevel():void{
var _local1:Number = (new Date().time - levelStart);
trigger("end_level", {time:_local1});
}
}
}//package mochi.as3
Section 46
//MochiInventory (mochi.as3.MochiInventory)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
public dynamic class MochiInventory extends Proxy {
private var _timer:Timer;
private var _names:Array;
private var _syncID:Number;
private var _consumableProperties:Object;
private var _outstandingID:Number;
private var _syncPending:Boolean;
public static const READY:String = "InvReady";
public static const ERROR:String = "Error";
public static const IO_ERROR:String = "IoError";
private static const CONSUMER_KEY:String = "MochiConsumables";
public static const WRITTEN:String = "InvWritten";
public static const NOT_READY:String = "InvNotReady";
public static const VALUE_ERROR:String = "InvValueError";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiInventory():void{
MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems);
MochiCoins.addEventListener(MochiCoins.LOGGED_IN, loggedIn);
MochiCoins.addEventListener(MochiCoins.LOGGED_OUT, loggedOut);
_syncPending = false;
_outstandingID = 0;
_syncID = 0;
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, sync);
_timer.start();
if (MochiCoins.loggedIn){
loggedIn();
} else {
loggedOut();
};
}
private function newItems(_arg1:Object):void{
this[_arg1.id] = (this[_arg1.id] + _arg1.count);
}
public function release():void{
MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems);
MochiCoins.removeEventListener(MochiCoins.LOGGED_IN, loggedIn);
MochiCoins.removeEventListener(MochiCoins.LOGGED_OUT, loggedOut);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (-1);
};
if (_consumableProperties[_arg1]){
return (MochiDigits(_consumableProperties[_arg1]).value);
};
return (undefined);
}
private function loggedIn(_arg1:Object=null):void{
MochiUserData.get(CONSUMER_KEY, getConsumableBag);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (false);
};
if (_consumableProperties[_arg1] == undefined){
return (false);
};
return (true);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{
return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1));
}
private function putConsumableBag(_arg1:MochiUserData):void{
_syncPending = false;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
_outstandingID = -1;
};
triggerEvent(WRITTEN, {});
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:MochiDigits;
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return;
};
if (!(_arg2 is Number)){
triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2});
return;
};
if (_consumableProperties[_arg1]){
_local3 = MochiDigits(_consumableProperties[_arg1]);
if (_local3.value == _arg2){
return;
};
_local3.value = _arg2;
} else {
_names.push(_arg1);
_consumableProperties[_arg1] = new MochiDigits(_arg2);
};
_syncID++;
}
private function sync(_arg1:Event=null):void{
var _local3:String;
if (((_syncPending) || ((_syncID == _outstandingID)))){
return;
};
_outstandingID = _syncID;
var _local2:Object = {};
for (_local3 in _consumableProperties) {
_local2[_local3] = MochiDigits(_consumableProperties[_local3]).value;
};
MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag);
_syncPending = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{
return (_names[(_arg1 - 1)]);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{
if (!_consumableProperties[_arg1]){
return (false);
};
_names.splice(_names.indexOf(_arg1), 1);
delete _consumableProperties[_arg1];
return (true);
}
private function getConsumableBag(_arg1:MochiUserData):void{
var _local2:String;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
return;
};
_consumableProperties = {};
_names = new Array();
if (_arg1.data){
for (_local2 in _arg1.data) {
_names.push(_local2);
_consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]);
};
};
triggerEvent(READY, {});
}
private function loggedOut(_arg1:Object=null):void{
_consumableProperties = null;
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
}
}//package mochi.as3
Section 47
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.geom.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
private static var _preserved:Object;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
public static var servicesSync:MochiSync = new MochiSync();
private static var _clip:MovieClip;
private static var _id:String;
private static var _services:String = "services.swf";
private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _loader:Loader;
private static var _connecting:Boolean = false;
private static var _mochiLocalConnection:MovieClip;
private static var _listenChannelName:String = "__ms_";
public static var onError:Object;
public static var netup:Boolean = true;
private static var _mochiLC:String = "MochiLC.swf";
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function onReceive(_arg1:Object):void{
var methodName:String;
var pkg = _arg1;
var cb:String = pkg.callbackID;
var cblst:Object = _clip._callbacks[cb];
if (!cblst){
return;
};
var method:* = cblst.callbackMethod;
methodName = "";
var obj:Object = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete _clip._callbacks[cb];
}
public static function get childClip():Object{
return (_clip);
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1));
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local4:int;
var _local14:Loader;
var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
var _local6:Array = [0, 64, 0, 0, 0];
var _local7:MovieClip = new MovieClip();
var _local8:LocalConnection = new LocalConnection();
var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
var _local10:ByteArray = new ByteArray();
var _local11:ByteArray = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
var _local12:uint = ((_local3.length + _local11.length) + 4);
var _local13:uint = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var avm1Click:DisplayObject;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
var vars:Object = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
var s = "?";
var i:Number = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
var _local2:Rectangle = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function warnID(_arg1:String, _arg2:Boolean):void{
_arg1 = _arg1.toLowerCase();
if (_arg1.length != 16){
trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length"));
return;
} else {
if (_arg1 == "1e113c7239048b3f"){
if (_arg2){
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
};
return;
} else {
if (_arg1 == "84993a1de4031cd8"){
if (_arg2){
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
};
return;
};
};
};
var _local3:Number = 0;
while (_local3 < _arg1.length) {
switch (_arg1.charAt(_local3)){
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "a":
case "b":
case "c":
case "d":
case "e":
case "f":
break;
default:
trace(("WARNING: Board ID contains illegal characters: " + _arg1));
return;
};
_local3++;
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_mochiLocalConnection.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
};
return (_local2);
}
public static function getVersion():String{
return ("3.4 as3");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (((_clip) && (_clip._queue))){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
}
public static function get id():String{
return (_id);
}
private static function onEvent(_arg1:Object):void{
var _local2:String = _arg1.target;
var _local3:String = _arg1.event;
switch (_local2){
case "events":
MochiEvents.triggerEvent(_arg1.event, _arg1.args);
break;
case "coins":
MochiCoins.triggerEvent(_arg1.event, _arg1.args);
break;
case "sync":
servicesSync.triggerEvent(_arg1.event, _arg1.args);
break;
};
}
private static function urlOptions(_arg1:Object):Object{
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Array;
var _local2:Object = {};
if (_arg1.stage){
_local3 = _arg1.stage.loaderInfo.parameters.mochiad_options;
} else {
_local3 = _arg1.loaderInfo.parameters.mochiad_options;
};
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function loadError(_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
}
private static function initComChannels():void{
if (!_connected){
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_clip.onReceive = onReceive;
_clip.onEvent = onEvent;
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
while (_clip._queue.length > 0) {
_mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function loadLCBridge(_arg1:Object):void{
var loader:Loader;
var clip = _arg1;
loader = new Loader();
var mochiLCURL:String = (_servURL + _mochiLC);
var req:URLRequest = new URLRequest(mochiLCURL);
var complete:Function = function (_arg1:Object):void{
_mochiLocalConnection = MovieClip(loader.content);
listen();
};
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
loader.load(req);
clip.addChild(loader);
}
private static function listen():void{
_mochiLocalConnection.connect(_listenChannelName);
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
trace("Waiting for MochiAds services to connect...");
}
public static function get clip():Object{
return (_container);
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var _local3:String = ("_mochiservices_com_" + _arg1);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(_arg2).servURL){
_servURL = urlOptions(_arg2).servURL;
};
var _local4:String = (_servURL + _services);
if (urlOptions(_arg2).servicesURL){
_local4 = urlOptions(_arg2).servicesURL;
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999))));
MochiServices.allowDomains(_local4);
_clip = createEmptyMovieClip(_arg2, _local3, 10336, false);
loadLCBridge(_clip);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
var _local5:URLRequest = new URLRequest(_local4);
var _local6:URLVariables = new URLVariables();
_local6.listenLC = _listenChannelName;
_local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options;
_local6.api_version = getVersion();
if (widget){
_local6.widget = true;
};
_local5.data = _local6;
_loader.load(_local5);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_clip._nextcallbackID = 0;
_clip._callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
warnID(id, false);
if ((clip is DisplayObject)){
if (clip.stage == null){
trace("MochiServices connect requires the containing clip be attached to the stage");
};
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
var mc:MovieClip = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function bringToTop(_arg1:Event=null):void{
var e = _arg1;
if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
}
public static function connectWait(_arg1:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load. (timeout)");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
}
}
}//package mochi.as3
Section 48
//MochiSync (mochi.as3.MochiSync)
package mochi.as3 {
import flash.utils.*;
public dynamic class MochiSync extends Proxy {
private var _syncContainer:Object;
public static var SYNC_PROPERTY:String = "UpdateProperty";
public static var SYNC_REQUEST:String = "SyncRequest";
public function MochiSync():void{
_syncContainer = {};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
if (_syncContainer[_arg1] == _arg2){
return;
};
var _local3:String = _arg1.toString();
_syncContainer[_local3] = _arg2;
MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2});
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (_syncContainer[_arg1]);
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
switch (_arg1){
case SYNC_REQUEST:
MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY:
_syncContainer[_arg2.name] = _arg2.value;
break;
};
}
}
}//package mochi.as3
Section 49
//MochiUserData (mochi.as3.MochiUserData)
package mochi.as3 {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class MochiUserData extends EventDispatcher {
public var callback:Function;// = null
public var operation:String;// = null
public var error:Event;// = null
public var data;// = null
public var _loader:URLLoader;
public var key:String;// = null
public function MochiUserData(_arg1:String="", _arg2:Function=null){
this.key = _arg1;
this.callback = _arg2;
}
public function serialize(_arg1):ByteArray{
var _local2:ByteArray = new ByteArray();
_local2.objectEncoding = ObjectEncoding.AMF3;
_local2.writeObject(_arg1);
_local2.compress();
return (_local2);
}
public function errorHandler(_arg1:IOErrorEvent):void{
data = null;
error = _arg1;
if (callback != null){
performCallback();
} else {
dispatchEvent(_arg1);
};
close();
}
public function putEvent(_arg1):void{
request("put", serialize(_arg1));
}
public function deserialize(_arg1:ByteArray){
_arg1.objectEncoding = ObjectEncoding.AMF3;
_arg1.uncompress();
return (_arg1.readObject());
}
public function securityErrorHandler(_arg1:SecurityErrorEvent):void{
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString())));
}
public function getEvent():void{
request("get", serialize(null));
}
override public function toString():String{
return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]"));
}
public function performCallback():void{
try {
callback(this);
} catch(e:Error) {
trace(("[MochiUserData] exception during callback: " + e));
};
}
public function request(_arg1:String, _arg2:ByteArray):void{
var _operation = _arg1;
var _data = _arg2;
operation = _operation;
var api_url:String = MochiCoins.getAPIURL();
var api_token:String = MochiCoins.getAPIToken();
if ((((api_url == null)) || ((api_token == null)))){
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in"));
return;
};
_loader = new URLLoader();
var args:URLVariables = new URLVariables();
args.op = _operation;
args.key = key;
var req:URLRequest = new URLRequest((((MochiCoins.getAPIURL() + "/") + "MochiUserData?") + args.toString()));
req.method = URLRequestMethod.POST;
req.contentType = "application/x-mochi-userdata";
req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)];
req.data = _data;
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_loader.load(req);
} catch(e:SecurityError) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString())));
};
}
public function completeHandler(_arg1:Event):void{
var event = _arg1;
try {
if (_loader.data.length){
data = deserialize(_loader.data);
} else {
data = null;
};
} catch(e:Error) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString())));
return;
};
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function close():void{
if (_loader){
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.close();
_loader = null;
};
error = null;
callback = null;
}
public static function get(_arg1:String, _arg2:Function):void{
var _local3:MochiUserData = new MochiUserData(_arg1, _arg2);
_local3.getEvent();
}
public static function put(_arg1:String, _arg2, _arg3:Function):void{
var _local4:MochiUserData = new MochiUserData(_arg1, _arg3);
_local4.putEvent(_arg2);
}
}
}//package mochi.as3
Section 50
//btnCheckSound (Screens.CommonButtons.btnCheckSound)
package Screens.CommonButtons {
import flash.events.*;
import System.*;
public class btnCheckSound extends AdvancedButton {
public function btnCheckSound(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.soundControl.TouchSound();
}
}
}//package Screens.CommonButtons
Section 51
//btnFreeDownload (Screens.CommonButtons.btnFreeDownload)
package Screens.CommonButtons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnFreeDownload extends AdvancedButton {
public var textClip:MovieClip;
public function btnFreeDownload(){
if (Main.Application.moreGamesButtonEnable == false){
visible = false;
};
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnFreeDownload/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
linksManager.navigateToTDS("freeDownload", ((tdsOptions.country)=="RU") ? 3 : 2);
}
}
}//package Screens.CommonButtons
Section 52
//btnMoreGames (Screens.CommonButtons.btnMoreGames)
package Screens.CommonButtons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnMoreGames extends AdvancedButton {
public var textClip:MovieClip;
public function btnMoreGames(){
if (Main.Application.moreGamesButtonEnable == false){
visible = false;
};
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnMoreGames/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
linksManager.navigateToTDS("moreGames", 1);
}
}
}//package Screens.CommonButtons
Section 53
//btnPlay (Screens.CommonButtons.btnPlay)
package Screens.CommonButtons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnPlay extends AdvancedButton {
public var textClip:MovieClip;
public function btnPlay(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnPlay/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.game.startNewGame();
if (Main.Application.levelsMapScreenEnable == false){
Main.Application.setCurrentEvent("showGameScreen");
} else {
Main.Application.setCurrentEvent("showLevelsMapScreen");
};
}
}
}//package Screens.CommonButtons
Section 54
//btnSelectLevel (Screens.CommonButtons.btnSelectLevel)
package Screens.CommonButtons {
import flash.events.*;
import System.*;
public class btnSelectLevel extends AdvancedButton {
public function btnSelectLevel(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnSelectLevel/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showLevelsMapScreen");
}
}
}//package Screens.CommonButtons
Section 55
//EndOfGameScreen (Screens.EndOfGameScreen.EndOfGameScreen)
package Screens.EndOfGameScreen {
import flash.display.*;
public dynamic class EndOfGameScreen extends MovieClip {
}
}//package Screens.EndOfGameScreen
Section 56
//btnStartNewGame (Screens.GameOverScreen.Buttons.btnStartNewGame)
package Screens.GameOverScreen.Buttons {
import flash.events.*;
import System.*;
public class btnStartNewGame extends AdvancedButton {
public function btnStartNewGame(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.game.startNewGame();
if (Main.Application.levelsMapScreenEnable == false){
Main.Application.setCurrentEvent("showGameScreen");
} else {
Main.Application.setCurrentEvent("showLevelsMapScreen");
};
}
}
}//package Screens.GameOverScreen.Buttons
Section 57
//btnTryAgain (Screens.GameOverScreen.Buttons.btnTryAgain)
package Screens.GameOverScreen.Buttons {
import flash.events.*;
import System.*;
public class btnTryAgain extends AdvancedButton {
public function btnTryAgain(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showGameScreen");
}
}
}//package Screens.GameOverScreen.Buttons
Section 58
//GameOverScreen (Screens.GameOverScreen.GameOverScreen)
package Screens.GameOverScreen {
import flash.display.*;
import flash.text.*;
import Screens.GameOverScreen.Buttons.*;
import Screens.CommonButtons.*;
public class GameOverScreen extends MovieClip {
public var btnTryAgain:btnTryAgain;
public var btnStartNewGame:btnStartNewGame;
public var btnSelectLevel:btnSelectLevel;
public var livesCount:TextField;
public function GameOverScreen(){
livesCount.text = Main.Application.game.lives.toString();
btnStartNewGame.visible = false;
btnTryAgain.visible = false;
btnSelectLevel.visible = false;
var _local1:Number = Main.Application.game.checkGameStatus();
if (_local1 == 2){
btnStartNewGame.visible = true;
} else {
if (_local1 == 0){
btnTryAgain.visible = true;
btnSelectLevel.visible = true;
};
};
}
}
}//package Screens.GameOverScreen
Section 59
//btnEn (Screens.GameScreen.Buttons.btnEn)
package Screens.GameScreen.Buttons {
import flash.events.*;
import System.*;
public class btnEn extends AdvancedButton {
public function btnEn(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.localization.ChangeLanguage("en");
Main.Application.localization.TranslateChildren(parent);
}
}
}//package Screens.GameScreen.Buttons
Section 60
//btnLose (Screens.GameScreen.Buttons.btnLose)
package Screens.GameScreen.Buttons {
import flash.events.*;
import System.*;
public class btnLose extends AdvancedButton {
public function btnLose(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.game.Lose();
Main.Application.setCurrentEvent("showGameOverScreen");
}
}
}//package Screens.GameScreen.Buttons
Section 61
//btnRu (Screens.GameScreen.Buttons.btnRu)
package Screens.GameScreen.Buttons {
import flash.events.*;
import System.*;
public class btnRu extends AdvancedButton {
public function btnRu(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.localization.ChangeLanguage("ru");
Main.Application.localization.TranslateChildren(parent);
}
}
}//package Screens.GameScreen.Buttons
Section 62
//btnWin (Screens.GameScreen.Buttons.btnWin)
package Screens.GameScreen.Buttons {
import flash.events.*;
import flash.text.*;
import System.*;
public class btnWin extends AdvancedButton {
public var btnWin_Up:TextField;
public function btnWin(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.game.Win();
Main.Application.setCurrentEvent("showLevelResultsScreen");
}
}
}//package Screens.GameScreen.Buttons
Section 63
//itemSelect (Screens.GameScreen.Field.itemSelect)
package Screens.GameScreen.Field {
import flash.display.*;
import flash.events.*;
public class itemSelect extends MovieClip {
public function itemSelect(){
mouseEnabled = false;
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(_arg1:Event){
if (visible == true){
rotation = (rotation + 1);
};
}
}
}//package Screens.GameScreen.Field
Section 64
//Bbar (Screens.GameScreen.Bbar)
package Screens.GameScreen {
import flash.events.*;
public class Bbar extends fnsHint {
public var manaMain:B;
public var val:Number;// = 1
public var manaMask:bar_mask3;
public var last_val:Number;// = 1
public function Bbar(){
manaMask.y = (manaMask.y + manaMask.height);
manaMask.scaleY = -(manaMask.scaleY);
manaMain.mask = manaMask;
manaMask.scaleY = 0;
val = 0;
}
function scale(_arg1:Event){
if (last_val > val){
if (manaMask.scaleY > val){
manaMask.scaleY = (manaMask.scaleY - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (manaMask.scaleY < val){
manaMask.scaleY = (manaMask.scaleY + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
if (val == _arg1){
return;
};
last_val = val;
val = (-1 * _arg1);
addEventListener(Event.ENTER_FRAME, scale);
}
}
}//package Screens.GameScreen
Section 65
//btnContinue (Screens.GameScreen.btnContinue)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnContinue extends AdvancedButton {
public var textClip:MovieClip;
public function btnContinue(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnContinue/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local2:Number = Main.Application.game.checkGameStatus();
Main.Application.setCurrentEvent(((_local2)==0) ? "showLevelsMapScreen" : "showEndOfGameScreen");
}
}
}//package Screens.GameScreen
Section 66
//btnMainMenu (Screens.GameScreen.btnMainMenu)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnMainMenu extends AdvancedButton {
public var textClip:MovieClip;
public function btnMainMenu(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnMainMenu/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if ((((Main.Application.game.win_status == 0)) && (!((GameScreen.Obj == null))))){
GameScreen.Obj.clearField(true);
Main.Application.game.Lose();
GameScreen.Obj = null;
};
Main.Application.setCurrentEvent("showMainScreen");
}
}
}//package Screens.GameScreen
Section 67
//btnMainMenu2 (Screens.GameScreen.btnMainMenu2)
package Screens.GameScreen {
import flash.events.*;
import System.*;
public class btnMainMenu2 extends AdvancedButton {
public function btnMainMenu2(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if ((((Main.Application.getCurrentEvent() == "showGameScreen")) || ((((Main.Application.game.win_status == 0)) && (!((GameScreen.Obj == null))))))){
GameScreen.Obj.clearField(true);
Main.Application.game.Lose();
GameScreen.Obj = null;
};
Main.Application.setCurrentEvent("showMainScreen");
}
}
}//package Screens.GameScreen
Section 68
//btnMainMenu3 (Screens.GameScreen.btnMainMenu3)
package Screens.GameScreen {
import flash.events.*;
import System.*;
public class btnMainMenu3 extends AdvancedButton {
public function btnMainMenu3(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showMainScreen");
}
}
}//package Screens.GameScreen
Section 69
//btnOnPanel (Screens.GameScreen.btnOnPanel)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnOnPanel extends AdvancedButton {
public var textClip:MovieClip;
public function btnOnPanel(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnOnPanel/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local2:Number;
GameScreen.Obj.clearField(true);
Main.Application.game.bookmark = 0;
Main.Application.game.Win();
Main.Application.game.SaveGame();
if ((((Preloader.Obj.portal_game == true)) && ((Preloader.Obj.logoID == 3)))){
_local2 = Main.Application.game.checkGameStatus();
Main.Application.setCurrentEvent(((_local2)==0) ? "showLevelsMapScreen" : "showEndOfGameScreen");
} else {
Main.Application.setCurrentEvent("showNugScreen");
};
}
}
}//package Screens.GameScreen
Section 70
//btnOnPanelIsland (Screens.GameScreen.btnOnPanelIsland)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnOnPanelIsland extends AdvancedButton {
public var textClip:MovieClip;
public function btnOnPanelIsland(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnOnPanelIsland/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.win_status != 1){
GameScreen.Obj.clearField(true);
Main.Application.game.Lose();
};
Main.Application.setCurrentEvent("showPortScreen");
}
}
}//package Screens.GameScreen
Section 71
//btnOnPanelMainMenu (Screens.GameScreen.btnOnPanelMainMenu)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnOnPanelMainMenu extends AdvancedButton {
public var textClip:MovieClip;
public function btnOnPanelMainMenu(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnOnPanelMainMenu/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.win_status == 0){
GameScreen.Obj.clearField(true);
Main.Application.game.Lose();
};
var _local2:Number = Main.Application.game.checkGameStatus();
Main.Application.setCurrentEvent(((_local2)==0) ? "showLevelsMapScreen" : "showEndOfGameScreen");
}
}
}//package Screens.GameScreen
Section 72
//CPU_HPb (Screens.GameScreen.CPU_HPb)
package Screens.GameScreen {
import flash.events.*;
public class CPU_HPb extends fnsHint {
public var val:Number;// = 1
public var hpMain:HPb_main;
public var hpMask:bar_mask;
public var last_val:Number;// = 1
public function CPU_HPb(){
hpMain.mask = hpMask;
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
if (val == _arg1){
return;
};
last_val = val;
val = _arg1;
addEventListener(Event.ENTER_FRAME, scale);
}
function scale(_arg1:Event){
if (last_val > val){
if (hpMask.scaleX > val){
hpMask.scaleX = (hpMask.scaleX - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (hpMask.scaleX < val){
hpMask.scaleX = (hpMask.scaleX + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
}
}//package Screens.GameScreen
Section 73
//CPU_MANb (Screens.GameScreen.CPU_MANb)
package Screens.GameScreen {
import flash.events.*;
public class CPU_MANb extends fnsHint {
public var val:Number;// = 0
public var manMain:MANb_main;
public var manMask:bar_mask2;
public var last_val:Number;// = 0
public function CPU_MANb(){
manMain.mask = manMask;
manMask.scaleX = 0;
val = 0;
}
function scale(_arg1:Event){
if (last_val > val){
if (manMask.scaleX > val){
manMask.scaleX = (manMask.scaleX - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (manMask.scaleX < val){
manMask.scaleX = (manMask.scaleX + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
function getVal():Number{
return (val);
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
_arg1 = ((_arg1)>1) ? 1 : _arg1;
if (Math.abs(val) == _arg1){
return;
};
last_val = val;
val = _arg1;
addEventListener(Event.ENTER_FRAME, scale);
}
}
}//package Screens.GameScreen
Section 74
//fieldItem (Screens.GameScreen.fieldItem)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
public class fieldItem extends MovieClip {
public var fieldMC:field;
public var estatus:Boolean;// = false
public var deleted:Boolean;// = false
public var istatus:Boolean;// = false
var shake_count:int;// = 0
public var cevent:Array;
public var alphing:Boolean;// = false
public var sstatus:Boolean;// = false
public var goalY:Number;
var last_cm:Boolean;
public var goalX:Number;
var x0:Number;
public var bstatus:Boolean;// = false
public var moving:Boolean;// = false
var y0:Number;
var R:Number;// = 0
var angle:Number;// = 0
public var normal:Boolean;// = false
public var i:int;
public var j:int;
public function fieldItem(){
buttonMode = true;
useHandCursor = true;
mouseChildren = false;
fieldMC = Main.Application.game.fieldMC;
addEventListener(MouseEvent.CLICK, itemMouseClickHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false, 0, true);
}
function itemMouseOutHandler(_arg1:Event){
StopMove();
setNormalPosition();
}
public function StopMove(_arg1:Boolean=false):void{
removeEventListener(Event.ENTER_FRAME, movingCirlce, false);
if (_arg1 == true){
setNormalPosition();
};
}
function itemMouseClickHandler(_arg1:Event){
if (Main.Application.game.playersMove == true){
setNormalPosition();
StopMove();
};
}
public function Erace(_arg1:Array):void{
cevent = _arg1;
normal = false;
alphing = true;
if (deleted == true){
return;
};
deleted = true;
removeEventListener(MouseEvent.CLICK, itemMouseClickHandler, false);
removeEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false);
removeEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false);
StopMove();
addEventListener(Event.ENTER_FRAME, Erace_frameHandler, false, 0, true);
}
public function getNormalX():Number{
return (((((this.i * this.width) - this.i) + 3) + (this.width / 2)));
}
function shakeing(_arg1:Event):void{
if (shake_count++ >= 10){
this.x = (((this.i * this.width) - this.i) + 3);
this.y = (((this.j * this.height) - this.j) + 3);
removeEventListener(Event.ENTER_FRAME, shakeing, false);
if (Main.Application.game.playersMove == true){
if ((((this.i == (Main.Application.game.game_field_width - 1))) && ((this.j == (Main.Application.game.game_field_height - 1))))){
Main.Application.game.canMove = true;
};
};
return;
};
var _local2:Number = 0.18;
var _local3:* = Math.round(Math.random());
if (_local3 == 0){
x = (x + _local2);
} else {
if (_local3 == 1){
x = (x - _local2);
};
};
_local3 = Math.round(Math.random());
if (_local3 == 0){
y = (y + _local2);
} else {
if (_local3 == 1){
y = (y - _local2);
};
};
}
public function setPosition(_arg1:int, _arg2:int){
this.i = _arg1;
this.j = _arg2;
}
public function Erace_frameHandler(_arg1:Event):void{
if (this.alpha > 0){
this.alpha = (this.alpha - 0.1);
} else {
normal = true;
this.visible = false;
this.alpha = 0;
alphing = false;
this.width = 1;
this.height = 1;
removeEventListener(Event.ENTER_FRAME, Erace_frameHandler, false);
dispatchEvent(new FieldItemEvent(FieldItemEvent.ERACE_COMPLITE, true, false, cevent));
Main.Application.objectsGCa.push(this);
};
}
public function MoveTo_frameHandler(_arg1:Event):void{
if ((((Math.abs((this.y - goalY)) <= 5)) && ((Math.abs((this.x - goalX)) <= 5)))){
normal = true;
moving = false;
this.x = goalX;
this.y = goalY;
removeEventListener(Event.ENTER_FRAME, MoveTo_frameHandler, false);
setNormalPosition();
addEventListener(MouseEvent.CLICK, itemMouseClickHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false, 0, true);
dispatchEvent(new FieldItemEvent(FieldItemEvent.MOVETO_COMPLITE, true, false, cevent));
} else {
this.x = (this.x + ((goalX)>this.x) ? 5 : ((goalX)<this.x) ? -5 : 0);
this.y = (this.y + ((goalY)>this.y) ? 5 : ((goalY)<this.y) ? -5 : 0);
};
}
public function setNormalPosition():void{
if ((((((((this.alpha < 1)) || ((this.normal == false)))) || ((this.moving == true)))) || ((this.alphing == true)))){
return;
};
this.x = (((this.i * this.width) - this.i) + 3);
this.y = (((this.j * this.height) - this.j) + 3);
}
public function getJ():int{
return (this.j);
}
function itemMouseOverHandler(_arg1:Event){
if (Main.Application.game.playersMove == true){
if (((((!((GameScreen.Obj.selectObject1 == this))) && (!((GameScreen.Obj.selectObject2 == this))))) && ((istatus == false)))){
StartMove();
};
};
}
public function getI():int{
return (this.i);
}
public function Throw(_arg1:int, _arg2:int, _arg3:Array):void{
StopMove();
cevent = _arg3;
normal = false;
moving = true;
alphing = true;
this.x = _arg1;
this.y = _arg2;
goalY = this.y;
this.y = (this.y - this.height);
this.alpha = 0;
removeEventListener(MouseEvent.CLICK, itemMouseClickHandler, false);
removeEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false);
removeEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false);
StopMove();
addEventListener(Event.ENTER_FRAME, Throw_frameHandler, false, 0, true);
}
public function getNormalY():Number{
return (((((this.j * this.height) - this.j) + 3) + (this.height / 2)));
}
public function StartMove():void{
if ((((((((this.alpha < 1)) || ((this.normal == false)))) || ((this.moving == true)))) || ((this.alphing == true)))){
return;
};
x0 = (((this.i * this.width) - this.i) + 3);
y0 = (((this.j * this.height) - this.j) + 3);
R = 0;
addEventListener(Event.ENTER_FRAME, movingCirlce, false, 0, true);
}
public function MoveTo(_arg1:int, _arg2:int, _arg3:Array):void{
if ((((this.x == _arg1)) && ((this.y == _arg2)))){
return;
};
StopMove();
cevent = _arg3;
normal = false;
moving = true;
goalX = _arg1;
goalY = _arg2;
removeEventListener(MouseEvent.CLICK, itemMouseClickHandler, false);
removeEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false);
removeEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false);
StopMove();
addEventListener(Event.ENTER_FRAME, MoveTo_frameHandler, false, 0, true);
}
public function ThrowTo_frameHandler(_arg1:Event):void{
if (this.y < goalY){
this.y = (this.y + 5);
} else {
normal = true;
moving = false;
this.y = goalY;
removeEventListener(Event.ENTER_FRAME, ThrowTo_frameHandler, false);
setNormalPosition();
addEventListener(MouseEvent.CLICK, itemMouseClickHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false, 0, true);
dispatchEvent(new FieldItemEvent(FieldItemEvent.THROWTO_COMPLITE, true, false, cevent));
};
}
public function ThrowTo(_arg1:int, _arg2:int, _arg3:Array):void{
if (this.y >= _arg2){
return;
};
StopMove();
cevent = _arg3;
normal = false;
moving = true;
goalY = _arg2;
removeEventListener(MouseEvent.CLICK, itemMouseClickHandler, false);
removeEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false);
removeEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false);
StopMove();
addEventListener(Event.ENTER_FRAME, ThrowTo_frameHandler, false, 0, true);
}
public function Shake():void{
shake_count = 0;
addEventListener(Event.ENTER_FRAME, shakeing, false, 0, true);
}
public function Throw_frameHandler(_arg1:Event):void{
if (this.alpha < 1){
this.alpha = (this.alpha + (3 / this.height));
};
if (this.y < goalY){
this.y = (this.y + 3);
} else {
normal = true;
moving = false;
alphing = false;
this.y = goalY;
removeEventListener(Event.ENTER_FRAME, Throw_frameHandler, false);
setNormalPosition();
addEventListener(MouseEvent.CLICK, itemMouseClickHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, itemMouseOverHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, itemMouseOutHandler, false, 0, true);
dispatchEvent(new FieldItemEvent(FieldItemEvent.THROW_COMPLITE, true, false, cevent));
};
}
function movingCirlce(_arg1:Event):void{
if ((((((((this.alpha < 1)) || ((this.normal == false)))) || ((this.moving == true)))) || ((this.alphing == true)))){
return;
};
R = 1;
this.y = (y0 + (R * Math.sin(angle)));
this.x = (x0 + (R * Math.cos(angle)));
angle = (angle + 0.3);
if (angle >= 360){
angle = 0;
};
}
}
}//package Screens.GameScreen
Section 75
//FieldItemEvent (Screens.GameScreen.FieldItemEvent)
package Screens.GameScreen {
import flash.events.*;
public class FieldItemEvent extends Event {
public var options:Array;
public static const CREATE_COMPLITE:String = "create_complite";
public static const ERACE_COMPLITE:String = "erace_complite";
public static const SILVERING_COMPLITE:String = "silvering_complite";
public static const MOVETO_COMPLITE:String = "moveTo_complite";
public static const ON_LAST_EVENT:String = "on_last_event";
public static const THROW_COMPLITE:String = "throw_complite";
public static const THROWTO_COMPLITE:String = "throwTo_complite";
public static const CLOSING_COMPLITE:String = "closing_complite";
public function FieldItemEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Array=null){
super(_arg1, _arg2, _arg3);
options = _arg4;
}
override public function toString():String{
return (formatToString("FieldItemEvent", "type", "bubbles", "cancelable", "eventPhase"));
}
override public function clone():Event{
return (new FieldItemEvent(type, bubbles, cancelable, options));
}
}
}//package Screens.GameScreen
Section 76
//fightField (Screens.GameScreen.fightField)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class fightField extends MovieClip {
public var success:Boolean;// = true
public var k:int;// = 1
public var dx:int;// = 90
public var ship1:ship;
public var hit_timer:Timer;
public var ship2:ship;
public function fightField(){
addEventListener(Event.ENTER_FRAME, Update);
}
function stopHitTimer(_arg1:Event){
_arg1.target.stop();
}
function Update(_arg1:Event){
}
public function makeBomb(_arg1:Boolean=false, _arg2:Boolean=false, _arg3:int=0){
var _local4:Boolean = ((_arg3)==0) ? Main.Application.game.playersMove : ((_arg3)==1) ? true : false;
if (_local4 == true){
ship1 = GameScreen.Obj.CPUShip;
ship2 = GameScreen.Obj.playerShip;
k = 1;
dx = 105;
if ((((((Math.random() * 99) + 1) > (100 - GameScreen.Obj.CPUManeure))) && ((_arg1 == false)))){
success = false;
} else {
success = true;
};
} else {
ship1 = GameScreen.Obj.playerShip;
ship2 = GameScreen.Obj.CPUShip;
k = -1;
dx = 20;
if ((((((Math.random() * 99) + 1) > (100 - GameScreen.Obj.PLRManeure))) && ((_arg1 == false)))){
success = false;
} else {
success = true;
};
};
if (_arg1 == true){
success = true;
};
if (_arg2 == true){
success = false;
};
var _local5:Class = Class(getDefinitionByName(("jFlight" + (1 + Math.round((Math.random() * 4))))));
var _local6:jFlight = new (_local5);
addChild(_local6);
_local6.visible = false;
_local6.gotoAndStop(1);
startHitTimer(_local6.Launch);
_local6.shipMC = ship1;
_local6.x = ((ship2.x + dx) + ((Math.random() * 5) * ((Math.random())>0.5) ? -1 : 1));
_local6.y = ((ship2.y + 135) - ((Math.random() * 5) * ((Math.random())>0.5) ? -1 : 1));
_local6.scaleX = ((Math.abs((ship2.rootX - ship2.x)) + Math.abs((ship2.x - ship1.x))) / Math.abs((ship2.x - ship1.x)));
_local6.success = success;
_local6.rotation = (_local6.rotation - (k * ((success)==false) ? -5 : ((Math.random() * 5) + 5)));
if (_local4 == false){
_local6.scaleX = -(_local6.scaleX);
};
}
function startHitTimer(_arg1:Function){
var _local2:Number = (Math.round((Math.random() * 100)) * 10);
hit_timer = new Timer(_local2, 1);
hit_timer.addEventListener(TimerEvent.TIMER, _arg1);
hit_timer.addEventListener(TimerEvent.TIMER_COMPLETE, stopHitTimer);
hit_timer.start();
}
}
}//package Screens.GameScreen
Section 77
//fireExplode (Screens.GameScreen.fireExplode)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class fireExplode extends MovieClip {
var bitmapsArray:Array;
var particleBitmapsArray:Array;
public function fireExplode(_arg1:Number=0, _arg2:Number=0){
bitmapsArray = ["fireBig"];
particleBitmapsArray = ["particle", "particle1", "particle5"];
super();
x = _arg1;
y = _arg2;
}
public function Explode(_arg1:MovieClip, _arg2:Number=0.8):void{
createExplosion(x, y, _arg1, 10, 25, _arg2, 0.01, 0.03);
}
private function tempParticleUpdate(_arg1:Event):void{
_arg1.target.scaleX = (_arg1.target.scaleX + _arg1.target.speed);
_arg1.target.scaleY = (_arg1.target.scaleY + _arg1.target.speed);
_arg1.target.rotation = (_arg1.target.rotation + (_arg1.target.speed * 100));
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.speedAlpha);
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
function createParticles(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:*;
var _local11:Class;
var _local12:MovieClip;
var _local13:MovieClip;
var _local9:Number = 0;
while (_local9 < _arg4) {
_local10 = particleBitmapsArray[Math.round((Math.random() * (particleBitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = _arg1;
_local12.y = _arg2;
_local12.rotation = (Math.random() * 360);
_local12.alpha = ((Math.random() * 0.5) + 0.5);
_local12.scaleX = _arg6;
_local12.scaleY = _arg6;
_local12.boundyLeft = (_local12.x - _arg5);
_local12.boundyTop = (_local12.y - _arg5);
_local12.boundyRight = (_local12.x + _arg5);
_local12.boundyBottom = (_local12.y + _arg5);
_local12.speedX = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedY = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedX = (_local12.speedX * _arg7);
_local12.speedY = (_local12.speedY * _arg7);
_local12.fadeSpeed = ((Math.random() * _arg8) * _arg8);
_local12.addEventListener(Event.ENTER_FRAME, particleUpdate);
_local9++;
};
}
function createExplosion(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:String;
var _local11:Class;
var _local12:*;
var _local13:MovieClip;
var _local14:*;
var _local9:* = 0;
while (_local9 < _arg4) {
_local10 = bitmapsArray[Math.round((Math.random() * (bitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = ((_arg1 + (Math.random() * _arg5)) - (_arg5 / 2));
_local12.y = ((_arg2 + (Math.random() * _arg5)) - (_arg5 / 2));
_local14 = (Math.random() * _arg6);
_local12.scaleX = _local14;
_local12.scaleY = _local14;
_local12.speed = ((Math.random() * _arg7) + _arg7);
_local12.speedAlpha = ((Math.random() * _arg8) + _arg8);
_local12.addEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_local9++;
};
}
private function particleUpdate(_arg1:Event):void{
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.fadeSpeed);
_arg1.target.x = (_arg1.target.x + _arg1.target.speedX);
_arg1.target.y = (_arg1.target.y + _arg1.target.speedY);
if ((((((((((_arg1.target.alpha <= 0)) || ((_arg1.target.x < _arg1.target.boundyLeft)))) || ((_arg1.target.x > _arg1.target.boundyRight)))) || ((_arg1.target.y < _arg1.target.boundyTop)))) || ((_arg1.target.y > _arg1.target.boundyBottom)))){
_arg1.target.removeEventListener(Event.ENTER_FRAME, particleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
}
}//package Screens.GameScreen
Section 78
//fnsHint (Screens.GameScreen.fnsHint)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class fnsHint extends MovieClip {
public var path:String;// = "trader_desc"
public var _timer:Timer;
public function fnsHint(){
_timer = new Timer(700, 1);
super();
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
GameScreen.Obj.hp.hint_text.htmlText = Preloader.Obj.localization.GetTranslation(("Screens/GameScreen/" + path));
_timer.addEventListener(TimerEvent.TIMER, slowShow);
_timer.start();
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
GameScreen.Obj.hp.visible = false;
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, slowShow);
}
public function slowShow(_arg1:TimerEvent):void{
GameScreen.Obj.hp.visible = true;
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, slowShow);
}
public function setText(_arg1:String){
path = _arg1;
}
public function disableHint(){
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
}
}//package Screens.GameScreen
Section 79
//GameScreen (Screens.GameScreen.GameScreen)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.text.*;
import Screens.GameScreen.Field.*;
import Screens.*;
import flash.geom.*;
public class GameScreen extends MovieClip {
public var closedMC:closed;
public var CPU_MAN:CPU_MANb;
public var movesCountValue:TextField;
public var itemChange1MC:itemSelect;
public var selectStatus:int;// = 0
public var fieldMC:field;
public var PLR_HP:PLR_HPb;
public var PLR_B:TextField;
public var PLR_G:TextField;
public var pCrHint:hintBG;
public var PLR_R:TextField;
public var PLR_S:MovieClip;
public var fField:fightField;
public var CPU_R1:TextField;
public var CPU_R2:TextField;
public var CPU_R3:TextField;
public var noEvents:Boolean;// = true
public var selectObject1:Object;
public var CPUmoney:TextField;
public var expHint:hintBG;
public var CPU_B1:TextField;
public var CPU_B2:TextField;
public var CPU_B3:TextField;
public var cMoneyHint:hintBG;
public var sField:MovieClip;
public var selectObject2:Object;
public var fireMC:fire;
public var pHpHint:hintBG;
public var bomb_mask:Array;
public var pManHint:hintBG;
var clearing:Boolean;// = false
public var cpu_boarded:int;// = 0
public var explo_downMC:explo_down;
public var PLRexp:TextField;
public var take4:Boolean;// = false
public var whosTurn:TextField;
public var cpu_roleID:Number;// = 1
public var add_ships:Array;
public var CPUManeure:Number;// = 0
public var take5:Boolean;// = false
public var PLRManeure:Number;// = 0
public var player_use_korsair2:Boolean;// = false
private var follower_x:Number;
public var player_boarded:int;// = 0
public var PLRmoney:TextField;
var particleCounter:Number;// = 0
private var follower_y:Number;
public var player_talismans_mc:Array;
var last_dragX:Number;
public var playerShip:ship;
var game_message:Message;
public var cpu_spells:Array;
public var CPU_Gbar:Gbar;
public var player_spells_icons:Array;
public var player_HP_count:Number;// = 1
var dragDX:Number;// = 0
var dragDY:Number;// = 0
var particles:Array;
var last_dragY:Number;
public var pMoneyHint:hintBG;
public var CPU_Rbar:Rbar;
public var CPU_G1:TextField;
public var CPU_G3:TextField;
public var normal:Boolean;// = true
public var CPU_Bbar:Bbar;
public var CPU_G2:TextField;
private var momentumy:Number;// = 0
private var momentumx:Number;// = 0
public var count4:Number;// = 0
public var count5:Number;// = 0
public var hp:hintPanel;
public var mRule:moveRule;
public var bselectObject1:Object;
public var events:Array;
public var cpu_blinded:int;// = 0
public var cManHint:hintBG;
public var CPU_HP:CPU_HPb;
public var player_spells_counter:int;// = 0
public var PLR_R1:TextField;
public var PLR_R2:TextField;
public var PLR_R3:TextField;
public var CPUShip_add1:simpleShip;
public var CPUShip_add2:simpleShip;
public var bselectObject2:Object;
public var player_roleID:Number;// = 1
public var bBackground:levelBackground;
public var items_array:Array;
public var PLR_Gbar:Gbar;
public var PLR_B1:TextField;
public var PLR_B2:TextField;
public var PLR_B3:TextField;
var particleBitmapsArray:Array;
public var cpu_use_korsair2:Boolean;// = false
public var PLR_Rbar:Rbar;
public var CPU_B:TextField;
public var fieldReseting:Boolean;// = false
public var CPU_G:TextField;
public var PLR_MAN:PLR_MANb;
var particleBitmap:Bitmap;
public var player_blinded:int;// = 0
public var cpu_talismans_mc:Array;
public var PLR_Bbar:Bbar;
public var CPU_R:TextField;
public var CPU_S:MovieClip;
public var cpu_spells_icons:Array;
var tutorial:Tutorials;
public var last_event_siq:Array;
public var last_event_obj:Array;
public var movesCount:TextField;
public var player_spells:Array;
public var cpu_spells_counter:int;// = 0
private var hint_timer:Timer;
private var disty:Number;
var bitmapsArray:Array;
public var bonus_upMC:bonusUP;
private var distx:Number;
public var fieldObj:Array;
public var last_event:Array;
public var itemSelectMC:itemSelect;
public var hintArrow:hintHelper;
public var itemChange2MC:itemSelect;
public var PLR_G1:TextField;
public var PLR_G2:TextField;
public var PLR_G3:TextField;
public var bonus_downMC:bonus_down;
public var cCrHint:hintBG;
public var moreFreeGames:btnMoreGames2;
public var gameOver:Boolean;// = false
public var Panel:MovieClip;
public var CPU_HP_count:Number;// = 1
public var explo_upMC:explo_up;
public var cHpHint:hintBG;
public var CPUShip:ship;
public var moveNum:Number;// = 3
public static var tmpBipmap:Bitmap;
public static var sh:Shine = new Shine(32, 32);
static var Obj:GameScreen;
public function GameScreen(){
var tmpMC:MovieClip;
var _tmpClass:Class;
var _tmp:MovieClip;
var tmpMC2:MovieClip;
var j:int;
var hBG:hintBG;
fieldObj = new Array();
events = new Array();
last_event = new Array();
items_array = new Array("red_cristal", "green_cristal", "blue_cristal", "rule", "expirience", "bomb", "coin");
bomb_mask = new Array(new Array(0, -2), new Array(-1, -1), new Array(0, -1), new Array(1, -1), new Array(-2, 0), new Array(-1, 0), new Array(1, 0), new Array(2, 0), new Array(-1, 1), new Array(0, 1), new Array(1, 1), new Array(0, 2));
add_ships = new Array(new Array(null, null), new Array(null, new Array(6, 0.75, 450, 10)), new Array(null, null), new Array(new Array(11, 0.7, 320, 14), null), new Array(null, new Array(21, 0.75, 455, 10)), new Array(new Array(6, 0.65, 330, 24), new Array(6, 0.8, 450, 0)), new Array(new Array(11, 0.65, 325, 18), new Array(6, 0.8, 450, 0)), new Array(null, new Array(19, 0.8, 450, 6)), new Array(new Array(17, 0.6, 330, 26), new Array(6, 0.8, 450, 0)), new Array(new Array(11, 0.7, 330, 18), new Array(17, 0.75, 450, 10)), new Array(new Array(6, 0.65, 325, 22), null), new Array(new Array(11, 0.65, 325, 18), new Array(6, 0.8, 450, 0)), new Array(null, null), new Array(new Array(8, 0.65, 330, 20), new Array(13, 0.9, 450, -10)), new Array(new Array(22, 0.65, 325, 20), new Array(13, 0.9, 450, -10)));
player_spells = new Array();
cpu_spells = new Array();
player_talismans_mc = new Array();
cpu_talismans_mc = new Array();
player_spells_icons = new Array();
cpu_spells_icons = new Array();
bitmapsArray = ["effectfire5", "effectfire6", "effectfire7", "effectfire8", "effectfire9"];
particleBitmapsArray = ["particle", "particle1", "particle5"];
particles = new Array(5000);
follower_x = mouseX;
follower_y = mouseY;
name = "GameScreen";
super();
Obj = this;
Main.Application.game.startPlaying();
Main.Application.game.generateField();
Main.Application.game.canMove = false;
trace(("GENERATE: " + Main.Application.game.canMove));
var _tmpTA:Array = new Array();
var ii:int;
while (ii < Main.Application.game.player_talismans.length) {
if (Main.Application.game.player_talismans[ii] != ""){
_tmpTA.push(Main.Application.game.player_talismans[ii]);
};
ii = (ii + 1);
};
Main.Application.game.player_talismans = new Array();
ii = 0;
while (ii < _tmpTA.length) {
Main.Application.game.player_talismans.push(_tmpTA[ii]);
ii = (ii + 1);
};
Main.Application.game.playersMove = true;
moveNum = 3;
movesCount.text = Preloader.Obj.localization.GetTranslation("Screens/GameScreen/movesCount");
whosTurn.text = Preloader.Obj.localization.GetTranslation("Screens/GameScreen/playersTurn");
movesCountValue.text = moveNum.toString();
fieldMC = Main.Application.game.fieldMC;
var l:int;
while (l < fieldMC.numChildren) {
tmpMC = (fieldMC.getChildAt(l) as MovieClip);
tmpMC.visible = false;
tmpMC.width = 1;
tmpMC.height = 1;
fieldMC.removeChildAt(l);
l = (l - 1);
l = (l + 1);
};
addChild(fieldMC);
fieldMC.x = 78;
fieldMC.y = 162;
swapChildren(fieldMC, Panel);
mRule.y = 150;
if (Main.Application.game.playersMove == true){
mRule.x = 158;
} else {
mRule.x = 375;
};
playerShip = new ship();
sField.addChild(playerShip);
if (((!((Main.Application.game.levels.current_level == 3))) && (!((Main.Application.game.levels.current_level == 4))))){
playerShip.selectShipById(Main.Application.game.player_rank);
} else {
playerShip.selectShipById((Main.Application.game.player_rank + 20));
};
playerShip.rootX = 30;
playerShip.x = 30;
playerShip.y = -25;
var add_ships_options:Array = add_ships[(Main.Application.game.levels.current_level - 1)];
if (add_ships_options[0] != null){
CPUShip_add1 = new simpleShip();
sField.addChild(CPUShip_add1);
CPUShip_add1.selectShipById(add_ships_options[0][0]);
CPUShip_add1.isCPU = true;
CPUShip_add1.rootX = add_ships_options[0][2];
CPUShip_add1.scaleX = add_ships_options[0][1];
CPUShip_add1.scaleY = add_ships_options[0][1];
CPUShip_add1.x = add_ships_options[0][2];
CPUShip_add1.y = add_ships_options[0][3];
CPUShip_add1.setDx();
};
if (add_ships_options[1] != null){
CPUShip_add2 = new simpleShip();
sField.addChild(CPUShip_add2);
CPUShip_add2.selectShipById(add_ships_options[1][0]);
CPUShip_add2.isCPU = true;
CPUShip_add2.isRight = true;
CPUShip_add2.rootX = add_ships_options[1][2];
CPUShip_add2.scaleX = add_ships_options[1][1];
CPUShip_add2.scaleY = add_ships_options[1][1];
CPUShip_add2.x = add_ships_options[1][2];
CPUShip_add2.y = add_ships_options[1][3];
CPUShip_add2.setDx();
};
CPUShip = new ship();
sField.addChild(CPUShip);
CPUShip.selectShipById(Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][2]);
CPUShip.isCPU = true;
CPUShip.rootX = 375;
CPUShip.x = 375;
CPUShip.y = -25;
CPUShip.setDx();
Main.Application.game.cpu_talismans = Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][3];
Main.Application.game.player_level_money = 0;
Main.Application.game.player_r = 0;
Main.Application.game.player_g = 0;
Main.Application.game.player_b = 0;
PLRmoney.text = Main.Application.game.player_level_money.toString();
PLRexp.text = Main.Application.game.player_exp.toString();
PLR_R.text = Main.Application.game.player_r.toString();
PLR_G.text = Main.Application.game.player_g.toString();
PLR_B.text = Main.Application.game.player_b.toString();
PLR_Rbar.setVal(0);
PLR_Gbar.setVal(0);
PLR_Bbar.setVal(0);
Main.Application.game.cpu_level_money = 0;
Main.Application.game.cpu_level_attack = ((Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][1] - 1) + Math.round((Math.random() * 1)));
Main.Application.game.cpu_level_def = ((Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][1] - 1) + Math.round((Math.random() * 1)));
Main.Application.game.cpu_level_man = ((Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][1] - 1) + Math.round((Math.random() * 1)));
Main.Application.game.cpu_level_trade = ((Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][1] - 1) + Math.round((Math.random() * 1)));
Main.Application.game.cpu_r = 0;
Main.Application.game.cpu_g = 0;
Main.Application.game.cpu_b = 0;
CPUmoney.text = Main.Application.game.cpu_level_money.toString();
CPU_R.text = Main.Application.game.cpu_r.toString();
CPU_G.text = Main.Application.game.cpu_g.toString();
CPU_B.text = Main.Application.game.cpu_b.toString();
CPU_Rbar.setVal(0);
CPU_Gbar.setVal(0);
CPU_Bbar.setVal(0);
PLR_S.gotoAndStop(1);
PLR_S.visible = false;
CPU_S.gotoAndStop(1);
CPU_S.visible = false;
normal = false;
Main.Application.game.searchForMatch(6);
count5 = Main.Application.game.searchForMatch(5);
count4 = Main.Application.game.searchForMatch(4);
Main.Application.game.searchForMatch(3);
hintArrow = new hintHelper();
addChild(hintArrow);
hintArrow.visible = false;
hintArrow.mouseEnabled = false;
particleBitmap = new Bitmap(new BitmapData(550, 400, true, 0xFFFFFF));
particleBitmap.addEventListener(Event.ENTER_FRAME, _particleUpdate);
addChild(particleBitmap);
particleBitmap.smoothing = true;
game_message = new Message();
addChild(game_message);
game_message.x = 190;
game_message.y = 100;
game_message.visible = false;
game_message.mouseEnabled = false;
Panel.Victory.x = 140;
Panel.Victory.y = 95;
Panel.Victory.visible = false;
Panel.Victory.mouseEnabled = false;
var jj:int;
while (jj < 4) {
Panel.Victory.getChildByName(("tr" + (jj + 1))).text = "";
jj = (jj + 1);
};
Panel.Lose.x = 140;
Panel.Lose.visible = false;
Panel.Lose.mouseEnabled = false;
Preloader.Obj.localization.TranslateChildren(Panel.Victory);
getNormal(false);
fieldObj = new Array(Main.Application.game.game_field_width);
var i:int;
while (i < Main.Application.game.game_field_width) {
fieldObj[i] = new Array(Main.Application.game.game_field_height);
j = 0;
while (j < Main.Application.game.game_field_height) {
createFieldItem(i, j);
events.push(new Array("throw", i, j, (((i * 32) - i) + 3), (((j * 32) - j) + 3)));
j = (j + 1);
};
i = (i + 1);
};
doNextEvent();
itemSelectMC = new itemSelect();
itemSelectMC.visible = false;
fieldMC.addChild(itemSelectMC);
itemChange1MC = new itemSelect();
itemChange1MC.visible = false;
addChild(itemChange1MC);
itemChange2MC = new itemSelect();
itemChange2MC.visible = false;
addChild(itemChange2MC);
if (Main.Application.game.player_level_role == "trade"){
player_roleID = 1;
} else {
player_roleID = 2;
};
i = 1;
while (i <= Main.Application.game.player_rank) {
_tmpClass = Class(getDefinitionByName(((("spell" + player_roleID) + "_") + i)));
_tmp = new (_tmpClass);
_tmp.isPlayer = true;
_tmp.x = 9;
_tmp.y = (318 + ((i - 1) * (_tmp.height - 1.1)));
addChild((_tmp as DisplayObject));
hBG = new hintBG();
addChild(hBG);
hBG.x = (_tmp.x + _tmp.width);
hBG.y = _tmp.y;
hBG.width = 41.5;
hBG.height = _tmp.height;
hBG.alpha = 0;
hBG.setText((("Skills/" + ((player_roleID)==1) ? "trader" : "guardian") + i));
player_spells[(i - 1)] = _tmp;
(getChildByName(("PLR_R" + i)) as TextField).alpha = 0.5;
(getChildByName(("PLR_G" + i)) as TextField).alpha = 0.5;
(getChildByName(("PLR_B" + i)) as TextField).alpha = 0.5;
_tmp.setFunctionAt(player_roleID, i);
_tmp.rC = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][0];
_tmp.gC = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][1];
_tmp.bC = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][2];
_tmp.pC = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][3];
(getChildByName(("PLR_R" + i)) as TextField).text = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][0];
(getChildByName(("PLR_G" + i)) as TextField).text = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][1];
(getChildByName(("PLR_B" + i)) as TextField).text = Main.Application.game.level_spell_prices[(player_roleID - 1)][(i - 1)][2];
i = (i + 1);
};
i = 0;
while (i < Main.Application.game.player_talismans.length) {
_tmpClass = Class(getDefinitionByName(Main.Application.game.player_talismans[i]));
_tmp = new (_tmpClass);
_tmp.x = -4;
_tmp.y = (225 + (i * (_tmp.height / 2)));
addChild((_tmp as DisplayObject));
_tmp.setText(("Talismans/" + Main.Application.game.player_talismans[i]));
player_talismans_mc[i] = _tmp;
i = (i + 1);
};
cpu_roleID = Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][0];
i = 1;
while (i <= Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][1]) {
_tmpClass = Class(getDefinitionByName(((("spell" + cpu_roleID) + "_") + i)));
_tmp = new (_tmpClass);
_tmp.x = ((550 - 9) - (2 * _tmp.width));
_tmp.y = (318 + ((i - 1) * (_tmp.height - 1.1)));
addChild((_tmp as DisplayObject));
hBG = new hintBG();
addChild(hBG);
hBG.width = 41.5;
hBG.height = _tmp.height;
hBG.x = (_tmp.x - 41.5);
hBG.y = _tmp.y;
hBG.alpha = 0;
hBG.setText((("Skills/" + ((cpu_roleID)==1) ? "trader" : ((cpu_roleID)==2) ? "guardian" : "korsair") + i));
cpu_spells.push(_tmp);
(getChildByName(("CPU_R" + i)) as TextField).alpha = 0.5;
(getChildByName(("CPU_G" + i)) as TextField).alpha = 0.5;
(getChildByName(("CPU_B" + i)) as TextField).alpha = 0.5;
_tmp.setFunctionAt(cpu_roleID, i);
_tmp.rC = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][0];
_tmp.gC = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][1];
_tmp.bC = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][2];
_tmp.pC = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][3];
(getChildByName(("CPU_R" + i)) as TextField).text = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][0];
(getChildByName(("CPU_G" + i)) as TextField).text = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][1];
(getChildByName(("CPU_B" + i)) as TextField).text = Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(i - 1)][2];
i = (i + 1);
};
i = 0;
while (i < Main.Application.game.cpu_talismans.length) {
_tmpClass = Class(getDefinitionByName(Main.Application.game.cpu_talismans[i]));
_tmp = new (_tmpClass);
_tmp.x = 504;
_tmp.y = (225 + (i * (_tmp.height / 2)));
addChild((_tmp as DisplayObject));
_tmp.setText(("Talismans/" + Main.Application.game.cpu_talismans[i]));
cpu_talismans_mc[i] = _tmp;
i = (i + 1);
};
i = 0;
while (i < Panel.Victory.Talismans.numChildren) {
tmpMC2 = (Panel.Victory.Talismans.getChildAt(i) as MovieClip);
tmpMC2.visible = false;
tmpMC2.width = 1;
tmpMC2.height = 1;
Panel.Victory.Talismans.removeChildAt(i);
i = (i - 1);
i = (i + 1);
};
i = 0;
while (i < Main.Application.game.cpu_talismans.length) {
_tmpClass = Class(getDefinitionByName(Main.Application.game.cpu_talismans[i]));
_tmp = new (_tmpClass);
_tmp.x = (i * (_tmp.width - 6));
Panel.Victory.Talismans.addChild((_tmp as DisplayObject));
_tmp.disableHint();
i = (i + 1);
};
bBackground.gotoAndStop(Main.Application.game.levels_options[(Main.Application.game.levels.current_level - 1)][4]);
hp = new hintPanel();
addChild(hp);
hp.visible = false;
hp.x = 90;
hp.y = 200;
swapChildren(Panel, hp);
swapChildren(hintArrow, hp);
swapChildren(game_message, hp);
PLR_MAN.setText("maneuver");
PLR_HP.setText("health");
CPU_MAN.setText("maneuver");
CPU_HP.setText("health");
mRule.setText("rule");
PLR_Rbar.setText("p_cbar");
PLR_Gbar.setText("p_cbar");
PLR_Bbar.setText("p_cbar");
CPU_Rbar.setText("c_cbar");
CPU_Gbar.setText("c_cbar");
CPU_Bbar.setText("c_cbar");
expHint.setText("experience");
pManHint.setText("maneuver");
cManHint.setText("maneuver");
pHpHint.setText("health");
cHpHint.setText("health");
pCrHint.setText("p_cbar");
cCrHint.setText("c_cbar");
pMoneyHint.setText("p_money");
cMoneyHint.setText("c_money");
tutorial = new Tutorials();
addChild(tutorial);
if (Main.Application.game.levels.getCurrentLevelIndex() == 1){
Main.Application.game.tutorial_last_step = 1;
tutorial.setupStep(1);
} else {
if (Main.Application.game.levels.getCurrentLevelIndex() == 2){
AddPLRManeure((((3.5 + (Main.Application.game.player_level_man * 1.5)) * 2) * 6));
PLR_MAN.setVal((PLRManeure / 100));
playerShip.Move((-(PLRManeure) / 4));
Main.Application.game.player_r = 6;
if (Main.Application.game.player_r <= 20){
PLR_Rbar.setVal((Main.Application.game.player_r / 20));
PLR_R.text = Main.Application.game.player_r.toString();
};
Main.Application.game.player_g = 10;
if (Main.Application.game.player_g <= 20){
PLR_Gbar.setVal((Main.Application.game.player_g / 20));
PLR_G.text = Main.Application.game.player_g.toString();
};
Main.Application.game.player_b = 12;
if (Main.Application.game.player_b <= 20){
PLR_Bbar.setVal((Main.Application.game.player_b / 20));
PLR_B.text = Main.Application.game.player_b.toString();
};
Main.Application.game.tutorial_last_step = 8;
tutorial.setupStep(5);
} else {
if (Main.Application.game.levels.getCurrentLevelIndex() == 4){
Main.Application.game.tutorial_last_step = 9;
tutorial.setupStep(9);
} else {
if (Main.Application.game.levels.getCurrentLevelIndex() == 5){
Main.Application.game.tutorial_last_step = 10;
tutorial.setupStep(10);
};
};
};
};
if ((((Preloader.Obj.portal_game == true)) && (!((Preloader.Obj.logoID == 3))))){
moreFreeGames.visible = false;
} else {
moreFreeGames.buttonMode = true;
moreFreeGames.useHandCursor = true;
moreFreeGames.mouseChildren = false;
moreFreeGames.addEventListener(MouseEvent.CLICK, function (){
navigateToURL(new URLRequest("http://www.gametop.com/stats/marinepuzzleonline.html"), "_blank");
});
};
addEventListener(MouseEvent.MOUSE_UP, itemMouseUpHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, itemMouseDownHandler, false, 0, true);
addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
addEventListener(FieldItemEvent.ON_LAST_EVENT, lastEventListener, false, 0, true);
if (Preloader.Obj.cheatsOn == true){
addEventListener(KeyboardEvent.KEY_UP, key_up);
};
}
public function enterFrameHandler(_arg1:Event):void{
var _local2:int;
if (((((PLRManeure / 100) <= 1)) && (!(((PLRManeure / 100) == Math.abs(PLR_MAN.getVal())))))){
PLR_MAN.setVal((PLRManeure / 100));
playerShip.Move((-(PLRManeure) / 4));
};
if (((((CPUManeure / 100) <= 1)) && (!(((CPUManeure / 100) == Math.abs(CPU_MAN.getVal())))))){
CPU_MAN.setVal((CPUManeure / 100));
CPUShip.Move((-(CPUManeure) / 4));
if (add_ships[(Main.Application.game.levels.current_level - 1)][0] != null){
CPUShip_add1.Move((-(CPUManeure) / 4));
};
if (add_ships[(Main.Application.game.levels.current_level - 1)][1] != null){
CPUShip_add2.Move((-(CPUManeure) / 4));
};
};
if (Main.Application.game.player_r > 20){
Main.Application.game.player_r = 20;
};
if (Main.Application.game.player_g > 20){
Main.Application.game.player_g = 20;
};
if (Main.Application.game.player_b > 20){
Main.Application.game.player_b = 20;
};
if (Main.Application.game.cpu_r > 20){
Main.Application.game.cpu_r = 20;
};
if (Main.Application.game.cpu_g > 20){
Main.Application.game.cpu_g = 20;
};
if (Main.Application.game.cpu_b > 20){
Main.Application.game.cpu_b = 20;
};
if (Main.Application.objectsGCa.length > 0){
_local2 = 0;
while (_local2 < Main.Application.objectsGCa.length) {
if (Main.Application.objectsGCa[_local2] != null){
if ((Main.Application.objectsGCa[_local2] is MovieClip)){
Main.Application.objectsGCa[_local2].visible = false;
Main.Application.objectsGCa[_local2].width = 1;
Main.Application.objectsGCa[_local2].height = 1;
if (Main.Application.objectsGCa[_local2].parent != null){
Main.Application.objectsGCa[_local2].parent.removeChild(Main.Application.objectsGCa[_local2]);
};
} else {
delete Main.Application.objectsGCa[_local2];
};
};
_local2++;
};
Main.Application.objectsGCa = new Array();
};
if ((((events.length == 0)) && ((noEvents == false)))){
if (Main.Application.game.playersMove == true){
Main.Application.game.canMove = true;
};
noEvents = true;
checkCrystals(false);
};
}
public function checkNormal():Boolean{
var _local2:int;
if ((((fieldReseting == true)) || ((fieldObj == null)))){
return (false);
};
normal = true;
var _local1:int;
while (_local1 < Main.Application.game.game_field_width) {
_local2 = 0;
while (_local2 < Main.Application.game.game_field_height) {
if (fieldObj[_local1][_local2] != undefined){
if (fieldObj[_local1][_local2][0].normal == false){
normal = false;
break;
};
};
_local2++;
};
_local1++;
};
return (normal);
}
public function closeFieldItem(_arg1:int, _arg2:int, _arg3:Array=null){
if ((((Main.Application.game.game_field[_arg1][_arg2][2] == true)) && (!((fieldObj[_arg1][_arg2][0].istatus == true))))){
fieldObj[_arg1][_arg2][0].istatus = true;
closedMC = new closed();
fieldObj[_arg1][_arg2][0].addChild(closedMC);
};
dispatchEvent(new FieldItemEvent(FieldItemEvent.CLOSING_COMPLITE, true, false, _arg3));
}
public function gameVictoryEnterFrameHandler(_arg1:Event):void{
var _local2:Number = _arg1.target.alpha;
_arg1.target.alpha = (_arg1.target.alpha + 0.04);
if (_arg1.target.alpha >= 1){
_arg1.target.removeEventListener(Event.ENTER_FRAME, gameVictoryEnterFrameHandler);
};
}
function doTrail(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number=1, _arg6:Number=0):void{
var _local7:Number = particles.push(new Object());
particles[(_local7 - 1)].width = 32;
particles[(_local7 - 1)].height = 32;
var _local8:* = 0.5;
particles[(_local7 - 1)].scaleX = _local8;
particles[(_local7 - 1)].scaleY = _local8;
particles[(_local7 - 1)].colorR = 0xFF;
particles[(_local7 - 1)].colorG = 0xFF;
particles[(_local7 - 1)].colorB = 0xFF;
var _local9:Number = Math.abs(((particles[(_local7 - 1)].width * (particles[(_local7 - 1)].scaleY - 1)) / 2));
var _local10:Number = Math.abs(((particles[(_local7 - 1)].height * (particles[(_local7 - 1)].scaleY - 1)) / 2));
particles[(_local7 - 1)].x = (((_arg2 + (Math.random() * 1)) - 1) - _local9);
particles[(_local7 - 1)].y = (((_arg3 + (Math.random() * 1)) - 1) - _local10);
particles[(_local7 - 1)].rotation = (Math.random() * 360);
particles[(_local7 - 1)].alpha = 1;
particles[(_local7 - 1)].speed = ((Math.random() * 6) + 2);
if (++particleCounter > 5000){
particleCounter = 0;
particles = new Array(5000);
};
}
function key_up(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 32){
CPU_HP_count = 0;
CPUShip.setVals();
};
}
function checkCursor(_arg1:int=0, _arg2:Boolean=false):void{
}
public function boomItem(_arg1:int, _arg2:int):void{
var _local3:int;
return;
}
public function lastEventListener(_arg1:FieldItemEvent):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
if (cpu_use_korsair2 == true){
cpu_use_korsair2 = false;
};
if (player_use_korsair2 == true){
player_use_korsair2 = false;
};
checkCursor();
if (moveNum <= 0){
moveNum = 3;
Main.Application.game.playersMove = !(Main.Application.game.playersMove);
checkCursor();
if (Main.Application.game.playersMove == true){
mRule.x = 158;
} else {
mRule.x = 375;
};
if (player_boarded > 0){
_local4 = 0;
while (_local4 < 3) {
_local2 = ((playerShip.x + (playerShip.width / 2)) + ((Math.random() * playerShip.width) / 4));
_local3 = ((playerShip.y + (playerShip.height / 4)) + ((Math.random() * playerShip.height) / 4));
createExplosion(_local2, _local3, sField, 5, 15, 0.5, 0.03, 0.05);
createParticles(_local2, _local3, sField, 3, 50, 0.5, 2, 0.2);
_local4++;
};
player_boarded--;
player_spells_counter--;
player_spells_icons[player_spells_counter].visible = false;
player_spells_icons[player_spells_counter].width = 1;
player_spells_icons[player_spells_counter].height = 1;
delete player_spells_icons[player_spells_counter];
playerShip.setVals(false, true);
};
if (cpu_boarded > 0){
_local4 = 0;
while (_local4 < 3) {
_local2 = ((CPUShip.x + (CPUShip.width / 2)) + ((Math.random() * CPUShip.width) / 4));
_local3 = ((CPUShip.y + (CPUShip.height / 4)) + ((Math.random() * CPUShip.height) / 4));
createExplosion(_local2, _local3, sField, 5, 15, 0.5, 0.03, 0.05);
createParticles(_local2, _local3, sField, 3, 50, 0.5, 2, 0.2);
_local4++;
};
cpu_boarded--;
cpu_spells_counter--;
cpu_spells_icons[cpu_spells_counter].visible = false;
cpu_spells_icons[cpu_spells_counter].width = 1;
cpu_spells_icons[cpu_spells_counter].height = 1;
delete cpu_spells_icons[cpu_spells_counter];
CPUShip.setVals(false, true);
};
};
if ((((events.length == 0)) && ((noEvents == true)))){
if (Main.Application.game.playersMove == false){
AImove();
};
};
Main.Application.game.canMove = Main.Application.game.playersMove;
Main.Application.game.searchForMoves(5, true);
Main.Application.game.searchForMoves(4);
Main.Application.game.searchForMoves(3);
if (Main.Application.game.moves.length > 0){
if (Main.Application.game.playersMove == true){
startHintTimer();
};
} else {
itemChange1MC.visible = false;
itemChange2MC.visible = false;
hintArrow.visible = false;
stopHintTimer();
resetField();
};
whosTurn.text = Preloader.Obj.localization.GetTranslation((("Screens/GameScreen/" + ((Main.Application.game.playersMove)==true) ? "players" : "computers") + "Turn"));
movesCountValue.text = moveNum.toString();
Main.Application.game.traceField();
traceField();
}
public function clearField(_arg1:Boolean=false){
var _local2:MovieClip;
var _local4:int;
var _local5:int;
clearing = true;
stopHintTimer();
var _local3:int;
while (_local3 < fieldMC.numChildren) {
if (!(fieldMC.getChildAt(_local3) is itemSelect)){
_local2 = (fieldMC.getChildAt(_local3) as MovieClip);
_local2.visible = false;
_local2.width = 1;
_local2.height = 1;
fieldMC.removeChildAt(_local3);
_local3--;
};
_local3++;
};
if (fieldObj != null){
_local4 = 0;
while (_local4 < Main.Application.game.game_field_width) {
_local5 = 0;
while (_local5 < Main.Application.game.game_field_height) {
fieldObj[_local4][_local5].splice(0, fieldObj[_local4][_local5].length);
_local5++;
};
fieldObj[_local4].splice(0, fieldObj[_local4].length);
_local4++;
};
fieldObj.splice(0, fieldObj.length);
fieldObj = null;
};
if (_arg1 == true){
if (fField != null){
_local3 = 0;
while (_local3 < fField.numChildren) {
_local2 = (fField.getChildAt(_local3) as MovieClip);
_local2.visible = false;
_local2.width = 1;
_local2.height = 1;
if ((fField.getChildAt(_local3) is jFlight)){
_local2.erace();
};
fField.removeChildAt(_local3);
_local3--;
_local3++;
};
removeChild(fField);
fField = null;
};
moveNum = 0;
events = new Array();
};
clearing = false;
}
public function traceField(_arg1:Array=null):void{
var _local4:int;
if (fieldObj == null){
return;
};
if (_arg1 == null){
_arg1 = fieldObj;
};
var _local2 = "";
var _local3:int;
while (_local3 < Main.Application.game.game_field_height) {
_local2 = "";
_local4 = 0;
while (_local4 < Main.Application.game.game_field_width) {
_local2 = (_local2 + (((((("[" + _local4) + "][") + _local3) + "]") + _arg1[_local4][_local3]) + ", "));
_local4++;
};
_local3++;
};
}
function showRandomHint(_arg1:Event){
showHint(Main.Application.game.moves[Math.round((Math.random() * (Main.Application.game.moves.length - 1)))]);
}
function startHintTimer(){
hint_timer = new Timer(10000, 1);
hint_timer.addEventListener(TimerEvent.TIMER, showRandomHint);
hint_timer.start();
}
public function gameMessageEnterFrameHandler(_arg1:Event):void{
var _local2:Number = _arg1.target.alpha;
if (_local2 <= 0.85){
_arg1.target.alpha = (_arg1.target.alpha - 0.03);
} else {
_arg1.target.alpha = (_arg1.target.alpha - 0.001);
};
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
_arg1.target.visible = false;
};
}
public function resetField(){
var _local2:int;
if (fieldReseting == true){
return;
};
game_message.gotoAndStop(3);
game_message.alpha = 1;
game_message.visible = true;
game_message.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
game_message.addEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
fieldReseting = true;
clearField(false);
Main.Application.game.generateField();
normal = false;
Main.Application.game.searchForMatch(6);
count5 = Main.Application.game.searchForMatch(5);
count4 = Main.Application.game.searchForMatch(4);
Main.Application.game.searchForMatch(3);
getNormal(false);
fieldObj = new Array(Main.Application.game.game_field_width);
var _local1:int;
while (_local1 < Main.Application.game.game_field_width) {
fieldObj[_local1] = new Array(Main.Application.game.game_field_height);
_local2 = 0;
while (_local2 < Main.Application.game.game_field_height) {
createFieldItem(_local1, _local2);
events.push(new Array("throw", _local1, _local2, (((_local1 * 32) - _local1) + 3), (((_local2 * 32) - _local2) + 3)));
_local2++;
};
_local1++;
};
doNextEvent();
}
private function particleUpdate(_arg1:Event):void{
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.fadeSpeed);
_arg1.target.x = (_arg1.target.x + _arg1.target.speedX);
_arg1.target.y = (_arg1.target.y + _arg1.target.speedY);
if ((((((((((_arg1.target.alpha <= 0)) || ((_arg1.target.x < _arg1.target.boundyLeft)))) || ((_arg1.target.x > _arg1.target.boundyRight)))) || ((_arg1.target.y < _arg1.target.boundyTop)))) || ((_arg1.target.y > _arg1.target.boundyBottom)))){
_arg1.target.removeEventListener(Event.ENTER_FRAME, particleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
public function generateSilver(_arg1:Array):void{
var _local2:Number = Math.round((Math.random() * (Main.Application.game.game_field_width - 1)));
var _local3:Number = Math.round((Math.random() * (Main.Application.game.game_field_height - 1)));
var _local4:int;
var _local5:Boolean;
var _local6:int;
while (_local6 < fieldObj[_local2][_local3][0].numChildren) {
if ((fieldObj[_local2][_local3][0].getChildAt(_local6) is explo_up)){
_local5 = true;
};
_local6++;
};
while ((((((((Main.Application.game.game_field[_local2][_local3][0] == 0)) || ((Main.Application.game.game_field[_local2][_local3][1] > 0)))) || ((Main.Application.game.game_field[_local2][_local3][2] == true)))) || ((_local5 == true)))) {
_local2 = Math.round((Math.random() * (Main.Application.game.game_field_width - 1)));
_local3 = Math.round((Math.random() * (Main.Application.game.game_field_height - 1)));
++_local4;
if (_local4 >= ((Main.Application.game.game_field_width * Main.Application.game.game_field_height) / 2)){
return;
};
_local5 = false;
_local6 = 0;
while (_local6 < fieldObj[_local2][_local3][0].numChildren) {
if ((fieldObj[_local2][_local3][0].getChildAt(_local6) is explo_up)){
_local5 = true;
};
_local6++;
};
};
fieldObj[_local2][_local3][0].normal = false;
Main.Application.game.game_field[_local2][_local3][1] = 3;
bonus_downMC = new bonus_down();
bonus_downMC.mouseEnabled = false;
fieldObj[_local2][_local3][0].addChild(bonus_downMC);
fieldObj[_local2][_local3][0].swapChildrenAt(0, 1);
fieldObj[_local2][_local3][0].sstatus = true;
bonus_upMC = new bonusUP();
bonus_upMC.mouseEnabled = false;
fieldObj[_local2][_local3][0].addChild(bonus_upMC);
_local6 = 0;
while (_local6 < fieldObj[_local2][_local3][0].numChildren) {
if ((fieldObj[_local2][_local3][0].getChildAt(_local6) is closed)){
fieldObj[_local2][_local3][0].swapChildrenAt(_local6, (fieldObj[_local2][_local3][0].numChildren - 1));
} else {
if ((fieldObj[_local2][_local3][0].getChildAt(_local6) is explo_up)){
fieldObj[_local2][_local3][0].swapChildrenAt(_local6, (fieldObj[_local2][_local3][0].numChildren - 1));
};
};
_local6++;
};
fieldObj[_local2][_local3][0].normal = true;
dispatchEvent(new FieldItemEvent(FieldItemEvent.SILVERING_COMPLITE, true, false, _arg1));
}
public function checkTalisman(_arg1:String=null, _arg2:Boolean=true):Boolean{
var _local3:Array = ((_arg2)==true) ? Main.Application.game.player_talismans : Main.Application.game.cpu_talismans;
var _local4:int;
while (_local4 < _local3.length) {
if (_local3[_local4] == _arg1){
return (true);
};
_local4++;
};
return (false);
}
public function itemMouseUpHandler(_arg1:Event){
removeEventListener(Event.ENTER_FRAME, itemEnterFrameHandler, false);
}
public function closeAllBombs():void{
var _local1:Number;
var _local2:Number;
var _local3:Boolean;
var _local4:int;
var _local5:int;
Main.Application.game.searchForCustomMatch(6, true);
Main.Application.game.closeCustomMatches();
if (Main.Application.game.matches.length > 0){
_local4 = 0;
while (_local4 < Main.Application.game.matches.length) {
_local5 = 0;
while (_local5 < Main.Application.game.matches[_local4].length) {
_local1 = Main.Application.game.matches[_local4][_local5][0];
_local2 = Main.Application.game.matches[_local4][_local5][1];
_local3 = Main.Application.game.matches[_local4][_local5][2];
events.push(new Array("close", _local1, _local2, _local3));
_local5++;
};
_local4++;
};
};
doNextEvent();
}
function createParticles(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:*;
var _local11:Class;
var _local12:MovieClip;
var _local13:MovieClip;
var _local9:Number = 0;
while (_local9 < _arg4) {
_local10 = particleBitmapsArray[Math.round((Math.random() * (particleBitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = _arg1;
_local12.y = _arg2;
_local12.rotation = (Math.random() * 360);
_local12.alpha = ((Math.random() * 0.5) + 0.5);
_local12.scaleX = _arg6;
_local12.scaleY = _arg6;
_local12.boundyLeft = (_local12.x - _arg5);
_local12.boundyTop = (_local12.y - _arg5);
_local12.boundyRight = (_local12.x + _arg5);
_local12.boundyBottom = (_local12.y + _arg5);
_local12.speedX = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedY = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedX = (_local12.speedX * _arg7);
_local12.speedY = (_local12.speedY * _arg7);
_local12.fadeSpeed = ((Math.random() * _arg8) * _arg8);
_local12.addEventListener(Event.ENTER_FRAME, particleUpdate);
_local9++;
};
}
public function itemEventListener(_arg1:FieldItemEvent):void{
var _local2:Number;
var _local3:Number;
var _local4:Boolean;
var _local5:int;
var _local6:int;
if (_arg1.type == "erace_complite"){
if (((!((_arg1.target == null))) && ((_arg1.target.parent == fieldMC)))){
if (fieldMC.getChildIndex((_arg1.target as DisplayObject)) >= 0){
fieldMC.removeChild((_arg1.target as DisplayObject));
};
};
} else {
if (_arg1.type == "moveTo_complite"){
itemChange1MC.visible = false;
itemChange2MC.visible = false;
hintArrow.visible = false;
stopHintTimer();
Main.Application.game.searchForMatch(6, true);
count5 = Main.Application.game.searchForMatch(5);
count4 = Main.Application.game.searchForMatch(4);
Main.Application.game.searchForMatch(3);
if (Main.Application.game.matches.length == 0){
Swap(bselectObject1, bselectObject2, null, false);
selectObject1 = null;
selectObject2 = null;
if (moveNum < 4){
moveNum++;
};
} else {
if (Main.Application.game.matches.length > 0){
_local5 = 0;
while (_local5 < Main.Application.game.matches.length) {
if (moveNum < 4){
if (Main.Application.game.matches[_local5].length == 4){
game_message.gotoAndStop(1);
game_message.alpha = 1;
game_message.visible = true;
game_message.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
game_message.addEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
moveNum++;
} else {
if (Main.Application.game.matches[_local5].length >= 5){
game_message.gotoAndStop(2);
game_message.alpha = 1;
game_message.visible = true;
game_message.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
game_message.addEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
moveNum = (moveNum + 2);
};
};
};
if (moveNum > 4){
moveNum = 4;
};
_local6 = 0;
while (_local6 < Main.Application.game.matches[_local5].length) {
_local2 = Main.Application.game.matches[_local5][_local6][0];
_local3 = Main.Application.game.matches[_local5][_local6][1];
_local4 = Main.Application.game.matches[_local5][_local6][2];
events.push(new Array("erace", _local2, _local3, _local4));
_local6++;
};
_local5++;
};
};
if (Main.Application.game.tutorial_step == 1){
Main.Application.game.tutorial_last_step = 4;
tutorial.setupStep(2);
};
getNormal();
doNextEvent();
};
};
};
_arg1.target.removeEventListener(_arg1.type, itemEventListener, false);
if (_arg1.options == last_event_obj){
dispatchEvent(new FieldItemEvent(FieldItemEvent.ON_LAST_EVENT, true, false));
};
if ((((((fieldReseting == false)) && (checkNormal()))) && ((events.length > 0)))){
doNextEvent();
};
}
function stopHintTimer(){
if (hint_timer == null){
return;
};
if (hint_timer.running == true){
hint_timer.stop();
hint_timer.removeEventListener(TimerEvent.TIMER, showRandomHint);
};
}
public function checkCrystals(_arg1:Boolean=true):void{
var _local2 = 1;
while (_local2 <= Main.Application.game.player_rank) {
if ((((((Main.Application.game.player_r >= Main.Application.game.level_spell_prices[(player_roleID - 1)][(_local2 - 1)][0])) && ((Main.Application.game.player_g >= Main.Application.game.level_spell_prices[(player_roleID - 1)][(_local2 - 1)][1])))) && ((Main.Application.game.player_b >= Main.Application.game.level_spell_prices[(player_roleID - 1)][(_local2 - 1)][2])))){
(getChildByName(("PLR_R" + _local2)) as TextField).alpha = 1;
(getChildByName(("PLR_G" + _local2)) as TextField).alpha = 1;
(getChildByName(("PLR_B" + _local2)) as TextField).alpha = 1;
player_spells[(_local2 - 1)].setLock(false);
} else {
if (_arg1 == true){
(getChildByName(("PLR_R" + _local2)) as TextField).alpha = 0.5;
(getChildByName(("PLR_G" + _local2)) as TextField).alpha = 0.5;
(getChildByName(("PLR_B" + _local2)) as TextField).alpha = 0.5;
player_spells[(_local2 - 1)].setLock(true);
};
};
_local2++;
};
_local2 = 1;
while (_local2 <= cpu_spells.length) {
if ((((((Main.Application.game.cpu_r >= Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(_local2 - 1)][0])) && ((Main.Application.game.cpu_g >= Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(_local2 - 1)][1])))) && ((Main.Application.game.cpu_b >= Main.Application.game.level_spell_prices[(cpu_roleID - 1)][(_local2 - 1)][2])))){
(getChildByName(("CPU_R" + _local2)) as TextField).alpha = 1;
(getChildByName(("CPU_G" + _local2)) as TextField).alpha = 1;
(getChildByName(("CPU_B" + _local2)) as TextField).alpha = 1;
cpu_spells[(_local2 - 1)].setLock(false);
} else {
if (_arg1 == true){
(getChildByName(("CPU_R" + _local2)) as TextField).alpha = 0.5;
(getChildByName(("CPU_G" + _local2)) as TextField).alpha = 0.5;
(getChildByName(("CPU_B" + _local2)) as TextField).alpha = 0.5;
cpu_spells[(_local2 - 1)].setLock(true);
};
};
_local2++;
};
if (_arg1 == true){
PLR_Rbar.setVal((Main.Application.game.player_r / 20));
PLR_R.text = Main.Application.game.player_r.toString();
PLR_Gbar.setVal((Main.Application.game.player_g / 20));
PLR_G.text = Main.Application.game.player_g.toString();
PLR_Bbar.setVal((Main.Application.game.player_b / 20));
PLR_B.text = Main.Application.game.player_b.toString();
CPU_Rbar.setVal((Main.Application.game.cpu_r / 20));
CPU_R.text = Main.Application.game.cpu_r.toString();
CPU_Gbar.setVal((Main.Application.game.cpu_g / 20));
CPU_G.text = Main.Application.game.cpu_g.toString();
CPU_Bbar.setVal((Main.Application.game.cpu_b / 20));
CPU_B.text = Main.Application.game.cpu_b.toString();
};
}
public function getTalisman(_arg1:String=null, _arg2:Boolean=true):Object{
var _local3:Array = ((_arg2)==true) ? Main.Application.game.player_talismans : Main.Application.game.cpu_talismans;
var _local4:Array = ((_arg2)==true) ? player_talismans_mc : cpu_talismans_mc;
var _local5:int;
while (_local5 < _local3.length) {
if (_local3[_local5] == _arg1){
if (_arg1.substr(0, 3) == "tra"){
Main.Application.soundControl.Play(31, 1, false);
} else {
if (_arg1.substr(0, 3) == "gua"){
Main.Application.soundControl.Play(32, 1, false);
} else {
if (_arg1.substr(0, 3) == "kor"){
Main.Application.soundControl.Play(33, 1, false);
};
};
};
return (_local4[_local5]);
};
_local5++;
};
return (null);
}
public function showHint(_arg1:Array){
if ((((gameOver == true)) || ((fieldObj == null)))){
return;
};
var _local2:int = _arg1[1][0];
var _local3:int = _arg1[1][1];
var _local4:int = _arg1[2][0];
var _local5:int = _arg1[2][1];
fieldObj[_local2][_local3][1] = (((_local2 * fieldObj[_local2][_local3][0].width) - _local2) + 3);
fieldObj[_local2][_local3][2] = (((_local3 * fieldObj[_local2][_local3][0].height) - _local3) + 3);
fieldObj[_local4][_local5][1] = (((_local4 * fieldObj[_local4][_local5][0].width) - _local4) + 3);
fieldObj[_local4][_local5][2] = (((_local5 * fieldObj[_local4][_local5][0].height) - _local5) + 3);
if (Main.Application.game.playersMove == true){
if (_local2 == _local4){
hintArrow.rotation = 0;
hintArrow.x = ((fieldMC.x + fieldObj[_local2][_local3][1]) + 16);
hintArrow.y = (((fieldMC.y + fieldObj[_local2][_local3][2]) + 32) - ((_local3)>_local5) ? 32 : 0);
} else {
hintArrow.rotation = 90;
hintArrow.x = (((fieldMC.x + fieldObj[_local2][_local3][1]) + 32) - ((_local2)>_local4) ? 32 : 0);
hintArrow.y = ((fieldMC.y + fieldObj[_local2][_local3][2]) + 16);
};
hintArrow.visible = true;
} else {
hintArrow.visible = false;
stopHintTimer();
itemChange1MC.visible = true;
itemChange1MC.x = (((fieldMC.x + fieldObj[_local2][_local3][1]) + 32) - 16);
itemChange1MC.y = (((fieldMC.y + fieldObj[_local2][_local3][2]) + 32) - 16);
itemChange2MC.visible = true;
itemChange2MC.x = (((fieldMC.x + fieldObj[_local4][_local5][1]) + 32) - 16);
itemChange2MC.y = (((fieldMC.y + fieldObj[_local4][_local5][2]) + 32) - 16);
};
}
public function doNextEvent(){
var _local3:Object;
var _local4:Number;
var _local5:fireExplode;
var _local6:int;
var _local7:Number;
var _local8:int;
if ((((fieldObj == null)) || ((fField == null)))){
return;
};
if (events.length == 0){
return;
};
noEvents = false;
fieldReseting = false;
last_event_obj = events[(events.length - 1)];
var _local1:Array = events.shift();
var _local2:Boolean;
last_event = _local1;
if ((((last_event[0] == "erace")) && ((fieldObj[_local1[1]][_local1[2]][0] is bomb)))){
if ((((Main.Application.game.playersMove == true)) && ((player_blinded > 0)))){
player_blinded--;
player_spells_counter--;
player_spells_icons[player_spells_counter].visible = false;
player_spells_icons[player_spells_counter].width = 1;
player_spells_icons[player_spells_counter].height = 1;
delete player_spells_icons[player_spells_counter];
_local2 = true;
} else {
if ((((Main.Application.game.playersMove == false)) && ((cpu_blinded > 0)))){
cpu_blinded--;
cpu_spells_counter--;
cpu_spells_icons[cpu_spells_counter].visible = false;
cpu_spells_icons[cpu_spells_counter].width = 1;
cpu_spells_icons[cpu_spells_counter].height = 1;
delete cpu_spells_icons[cpu_spells_counter];
_local2 = true;
};
};
};
while (last_event[0] == _local1[0]) {
if (_local1[0] == "erace_full"){
fieldObj[_local1[1]][_local1[2]][0].istatus = false;
fieldObj[_local1[1]][_local1[2]][0].addEventListener(FieldItemEvent.ERACE_COMPLITE, itemEventListener, false, 0, true);
fieldObj[_local1[1]][_local1[2]][0].Erace(_local1);
} else {
if (_local1[0] == "erace"){
if (fieldObj[_local1[1]][_local1[2]][0].istatus != true){
if (Main.Application.game.playersMove == true){
if ((((checkTalisman("trader5", true) == true)) && ((Main.Application.game.player_b >= 20)))){
_local3 = getTalisman("trader5", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_level_money = (Main.Application.game.player_level_money + (((Main.Application.game.player_level_trade * 2) + 5) * 10));
PLRmoney.text = Main.Application.game.player_level_money.toString();
doTrails((PLRmoney.x + (PLRmoney.width / 2)), (PLRmoney.y + (PLRmoney.height / 2)), 10);
};
if ((((checkTalisman("guardian5", true) == true)) && ((Main.Application.game.player_g >= 20)))){
_local3 = getTalisman("guardian5", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
AddPLRManeure(((3.5 + (Main.Application.game.player_level_man * 1.5)) * 2));
};
if ((fieldObj[_local1[1]][_local1[2]][0] is coin)){
_local4 = ((((Main.Application.game.player_level_trade * 2) + 5) * 10) * ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (checkTalisman("trader2", true) == true){
_local3 = getTalisman("trader2", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
_local4 = (_local4 + Math.floor((_local4 / 2)));
};
Main.Application.game.player_level_money = (Main.Application.game.player_level_money + _local4);
if (checkTalisman("trader1", false) == true){
_local3 = getTalisman("trader1", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.cpu_level_money = (Main.Application.game.cpu_level_money + Math.floor((_local4 / 2)));
CPUmoney.text = Main.Application.game.cpu_level_money.toString();
doTrails((CPUmoney.x + (CPUmoney.width / 2)), (CPUmoney.y + (CPUmoney.height / 2)), 10);
};
PLRmoney.text = Main.Application.game.player_level_money.toString();
new Trail(PLRmoney, (PLRmoney.x + 10), PLRmoney.y, ((fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()) - 16), ((fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()) - 16), "coin", 0xFF, 231, 76);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is expirience)){
Main.Application.game.player_exp = (Main.Application.game.player_exp + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
PLRexp.text = Main.Application.game.player_exp.toString();
new Trail(PLRexp, (PLRexp.x + 10), PLRexp.y, ((fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()) - 16), ((fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()) - 16), "expirience", 0xFF, 231, 76);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is red_cristal)){
Main.Application.game.player_r = (Main.Application.game.player_r + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.player_r <= 20){
PLR_Rbar.setVal((Main.Application.game.player_r / 20));
PLR_R.text = Main.Application.game.player_r.toString();
};
new Trail(PLR_R, (PLR_R.x - 6), PLR_R.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "red_cristal", 0xFF, 146, 58);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is green_cristal)){
Main.Application.game.player_g = (Main.Application.game.player_g + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.player_g <= 20){
PLR_Gbar.setVal((Main.Application.game.player_g / 20));
PLR_G.text = Main.Application.game.player_g.toString();
};
new Trail(PLR_G, (PLR_G.x - 6), PLR_G.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "green_cristal", 111, 0xFF, 62);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is blue_cristal)){
Main.Application.game.player_b = (Main.Application.game.player_b + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.player_b <= 20){
PLR_Bbar.setVal((Main.Application.game.player_b / 20));
PLR_B.text = Main.Application.game.player_b.toString();
};
new Trail(PLR_B, (PLR_B.x - 6), PLR_B.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "blue_cristal", 98, 161, 0xFF);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is rule)){
AddPLRManeure(((3.5 + (Main.Application.game.player_level_man * 1.5)) * 2));
if (fieldObj[_local1[1]][_local1[2]][0].sstatus == true){
AddPLRManeure(((3.5 + (Main.Application.game.player_level_man * 1.5)) * 2));
AddPLRManeure(((3.5 + (Main.Application.game.player_level_man * 1.5)) * 2));
};
};
};
};
};
};
};
} else {
if ((((checkTalisman("trader5", false) == true)) && ((Main.Application.game.cpu_b >= 20)))){
_local3 = getTalisman("trader5", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.cpu_level_money = (Main.Application.game.cpu_level_money + (((Main.Application.game.cpu_level_trade * 2) + 5) * 10));
CPUmoney.text = Main.Application.game.cpu_level_money.toString();
};
if ((((checkTalisman("guardian5", false) == true)) && ((Main.Application.game.cpu_g >= 20)))){
_local3 = getTalisman("guardian5", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
AddCPUManeure(((3.5 + (Main.Application.game.cpu_level_man * 1.5)) * 2));
};
if ((fieldObj[_local1[1]][_local1[2]][0] is coin)){
_local4 = ((((Main.Application.game.cpu_level_trade * 2) + 5) * 10) * ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (checkTalisman("trader2", false) == true){
_local3 = getTalisman("trader2", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
_local4 = (_local4 + Math.floor((_local4 / 2)));
};
Main.Application.game.cpu_level_money = (Main.Application.game.cpu_level_money + _local4);
if (checkTalisman("trader1", true) == true){
_local3 = getTalisman("trader1", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_level_money = (Main.Application.game.player_level_money + Math.floor((_local4 / 2)));
PLRmoney.text = Main.Application.game.player_level_money.toString();
doTrails((PLRmoney.x + (PLRmoney.width / 2)), (PLRmoney.y + (PLRmoney.height / 2)), 10);
};
CPUmoney.text = Main.Application.game.cpu_level_money.toString();
new Trail(CPUmoney, (CPUmoney.x + 16), CPUmoney.y, ((fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()) - 16), ((fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()) - 16), "coin", 0xFF, 231, 76);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is red_cristal)){
Main.Application.game.cpu_r = (Main.Application.game.cpu_r + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.cpu_r <= 20){
CPU_Rbar.setVal((Main.Application.game.cpu_r / 20));
CPU_R.text = Main.Application.game.cpu_r.toString();
};
new Trail(CPU_R, (CPU_R.x + 6), CPU_R.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "red_cristal", 0xFF, 146, 58);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is green_cristal)){
Main.Application.game.cpu_g = (Main.Application.game.cpu_g + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.cpu_g <= 20){
CPU_Gbar.setVal((Main.Application.game.cpu_g / 20));
CPU_G.text = Main.Application.game.cpu_g.toString();
};
new Trail(CPU_G, (CPU_G.x + 6), CPU_G.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "green_cristal", 111, 0xFF, 62);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is blue_cristal)){
Main.Application.game.cpu_b = (Main.Application.game.cpu_b + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
if (Main.Application.game.cpu_b <= 20){
CPU_Bbar.setVal((Main.Application.game.cpu_b / 20));
CPU_B.text = Main.Application.game.cpu_b.toString();
};
new Trail(CPU_B, (CPU_B.x + 6), CPU_B.y, (fieldMC.x + fieldObj[_local1[1]][_local1[2]][0].getNormalX()), (fieldMC.y + fieldObj[_local1[1]][_local1[2]][0].getNormalY()), "blue_cristal", 98, 161, 0xFF);
} else {
if ((fieldObj[_local1[1]][_local1[2]][0] is rule)){
AddCPUManeure(((3.5 + (Main.Application.game.cpu_level_man * 1.5)) * 2));
if (fieldObj[_local1[1]][_local1[2]][0].sstatus == true){
AddCPUManeure(((3.5 + (Main.Application.game.cpu_level_man * 1.5)) * 2));
AddCPUManeure(((3.5 + (Main.Application.game.cpu_level_man * 1.5)) * 2));
};
};
};
};
};
};
};
if ((fieldObj[_local1[1]][_local1[2]][0] is bomb)){
fField.makeBomb(false, _local2);
if (fieldObj[_local1[1]][_local1[2]][0].sstatus == true){
fField.makeBomb(false, _local2);
fField.makeBomb(false, _local2);
};
if (checkTalisman("korsair4", Main.Application.game.playersMove) == true){
_local3 = getTalisman("korsair4", Main.Application.game.playersMove);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
fField.makeBomb(false, _local2);
fField.makeBomb(false, _local2);
};
if ((((Main.Application.game.playersMove == true)) && ((checkTalisman("guardian2", true) == true)))){
_local3 = getTalisman("guardian2", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_exp = (Main.Application.game.player_exp + ((fieldObj[_local1[1]][_local1[2]][0].sstatus)==true) ? 3 : 1);
PLRexp.text = Main.Application.game.player_exp.toString();
doTrails((PLRexp.x + (PLRexp.width / 2)), (PLRexp.y + (PLRexp.height / 2)), 10);
};
};
};
if (fieldObj[_local1[1]][_local1[2]][0].bstatus == true){
_local5 = new fireExplode();
addChild(_local5);
_local5.x = (fieldObj[_local1[1]][_local1[2]][0].x + 16);
_local5.y = (fieldObj[_local1[1]][_local1[2]][0].y + 16);
_local5.Explode(fieldMC, 0.75);
Main.Application.soundControl.Play(4, 1, false);
};
if (fieldObj[_local1[1]][_local1[2]][0].istatus != true){
fieldObj[_local1[1]][_local1[2]][0].istatus = false;
fieldObj[_local1[1]][_local1[2]][0].addEventListener(FieldItemEvent.ERACE_COMPLITE, itemEventListener, false, 0, true);
fieldObj[_local1[1]][_local1[2]][0].Erace(_local1);
} else {
fieldObj[_local1[1]][_local1[2]][0].istatus = false;
Main.Application.soundControl.Play(5, 1, false);
_local6 = 0;
while (_local6 < fieldObj[_local1[1]][_local1[2]][0].numChildren) {
if ((fieldObj[_local1[1]][_local1[2]][0].getChildAt(_local6) is closed)){
fieldObj[_local1[1]][_local1[2]][0].getChildAt(_local6).visible = false;
var _temp1 = _local6;
_local6 = (_local6 - 1);
fieldObj[_local1[1]][_local1[2]][0].removeChildAt(_temp1);
};
_local6++;
};
};
} else {
if (_local1[0] == "throw"){
fieldObj[_local1[1]][_local1[2]][0].StopMove();
fieldObj[_local1[1]][_local1[2]][0].addEventListener(FieldItemEvent.THROW_COMPLITE, itemEventListener, false, 0, true);
fieldObj[_local1[1]][_local1[2]][0].Throw(_local1[3], _local1[4], _local1);
} else {
if (_local1[0] == "create"){
addEventListener(FieldItemEvent.CREATE_COMPLITE, itemEventListener, false, 0, true);
createFieldItem(_local1[1], _local1[2], _local1[3], _local1[4], _local1[5], _local1);
} else {
if (_local1[0] == "close"){
addEventListener(FieldItemEvent.CLOSING_COMPLITE, itemEventListener, false, 0, true);
closeFieldItem(_local1[1], _local1[2], _local1);
} else {
if (_local1[0] == "throwTo"){
fieldObj[_local1[3]][_local1[4]][0].StopMove();
fieldObj[_local1[3]][_local1[4]] = new Array(fieldObj[_local1[1]][_local1[2]][0], fieldObj[_local1[1]][_local1[2]][0].x, fieldObj[_local1[1]][_local1[2]][0].y);
fieldObj[_local1[3]][_local1[4]][0].setPosition(_local1[3], _local1[4]);
fieldObj[_local1[3]][_local1[4]][0].addEventListener(FieldItemEvent.THROWTO_COMPLITE, itemEventListener, false, 0, true);
_local7 = ((_local1[4] * (fieldObj[_local1[3]][_local1[4]][0].height - 1)) + 3);
fieldObj[_local1[3]][_local1[4]][0].ThrowTo(0, _local7, _local1);
} else {
if (_local1[0] == "swap"){
fieldObj[_local1[1]][_local1[2]][0].StopMove();
fieldObj[_local1[3]][_local1[4]][0].StopMove();
Swap(fieldObj[_local1[1]][_local1[2]][0], fieldObj[_local1[3]][_local1[4]][0], _local1);
} else {
if (_local1[0] == "silver"){
addEventListener(FieldItemEvent.SILVERING_COMPLITE, itemEventListener, false, 0, true);
generateSilver(_local1);
};
};
};
};
};
};
};
};
last_event = _local1;
if (events.length == 0){
break;
};
_local1 = ((last_event[0])==events[0][0]) ? events.shift() : events[0];
};
if (last_event[0] == "erace"){
Main.Application.soundControl.Play(2, 1, false);
if (Main.Application.game.playersMove == true){
if ((((checkTalisman("korsair5", true) == true)) && ((Main.Application.game.player_r >= 20)))){
_local3 = getTalisman("korsair5", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
fField.makeBomb(false, _local2);
} else {
if ((((checkTalisman("korsair5", false) == true)) && ((Main.Application.game.cpu_r >= 20)))){
_local3 = getTalisman("korsair5", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
fField.makeBomb(false, _local2);
};
};
};
if ((fieldObj[last_event[1]][last_event[2]][0] is bomb)){
if (Main.Application.game.playersMove == false){
if (Main.Application.game.cpu_level_attack > 0){
_local8 = 0;
while (_local8 < Main.Application.game.cpu_level_attack) {
fField.makeBomb(false, _local2);
_local8++;
};
};
if (checkTalisman("trader3", true) == true){
_local3 = getTalisman("trader3", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_level_money = (Main.Application.game.player_level_money + (((Main.Application.game.player_level_trade * 2) + 5) * 10));
PLRmoney.text = Main.Application.game.player_level_money.toString();
doTrails((PLRmoney.x + (PLRmoney.width / 2)), (PLRmoney.y + (PLRmoney.height / 2)), 10);
};
if ((((checkTalisman("korsair2", true) == true)) && ((cpu_use_korsair2 == false)))){
_local3 = getTalisman("korsair2", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
fField.makeBomb(false, false, 1);
cpu_use_korsair2 = true;
} else {
if (cpu_use_korsair2 == true){
cpu_use_korsair2 = false;
};
};
} else {
if (Main.Application.game.player_level_attack > 0){
_local8 = 0;
while (_local8 < Main.Application.game.player_level_attack) {
fField.makeBomb(false, _local2);
_local8++;
};
};
if (checkTalisman("trader3", false) == true){
_local3 = getTalisman("trader3", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.cpu_level_money = (Main.Application.game.cpu_level_money + (((Main.Application.game.cpu_level_trade * 2) + 5) * 10));
CPUmoney.text = Main.Application.game.cpu_level_money.toString();
doTrails((CPUmoney.x + (CPUmoney.width / 2)), (CPUmoney.y + (CPUmoney.height / 2)), 10);
};
if ((((checkTalisman("korsair2", false) == true)) && ((player_use_korsair2 == false)))){
_local3 = getTalisman("korsair2", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
fField.makeBomb(false, false, 2);
player_use_korsair2 = true;
} else {
if (player_use_korsair2 == true){
player_use_korsair2 = false;
};
};
};
} else {
if ((fieldObj[last_event[1]][last_event[2]][0] is blue_cristal)){
if (Main.Application.game.playersMove == false){
if (checkTalisman("trader4", false) == true){
_local3 = getTalisman("trader4", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.cpu_b = (Main.Application.game.cpu_b + 3);
if (Main.Application.game.cpu_b <= 20){
CPU_Bbar.setVal((Main.Application.game.cpu_b / 20));
CPU_B.text = Main.Application.game.cpu_b.toString();
doTrails((CPU_B.x + (CPU_B.width / 2)), (CPU_B.y + (CPU_B.height / 2)), 5);
};
};
} else {
if (checkTalisman("trader4", true) == true){
_local3 = getTalisman("trader4", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_b = (Main.Application.game.player_b + 3);
if (Main.Application.game.player_b <= 20){
PLR_Bbar.setVal((Main.Application.game.player_b / 20));
PLR_B.text = Main.Application.game.player_b.toString();
doTrails((PLR_B.x + (PLR_B.width / 2)), (PLR_B.y + (PLR_B.height / 2)), 5);
};
};
};
} else {
if ((fieldObj[last_event[1]][last_event[2]][0] is green_cristal)){
if (checkTalisman("guardian1", false) == true){
_local3 = getTalisman("guardian1", false);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.cpu_g = (Main.Application.game.cpu_g + 1);
if (Main.Application.game.cpu_g <= 20){
CPU_Gbar.setVal((Main.Application.game.cpu_g / 20));
CPU_G.text = Main.Application.game.cpu_g.toString();
doTrails((CPU_G.x + (CPU_G.width / 2)), (CPU_G.y + (CPU_G.height / 2)), 5);
};
};
if (checkTalisman("guardian1", true) == true){
_local3 = getTalisman("guardian1", true);
doTrails((_local3.x + (_local3.width / 2)), (_local3.y + (_local3.height / 2)), 5);
Main.Application.game.player_g = (Main.Application.game.player_g + 1);
if (Main.Application.game.player_g <= 20){
PLR_Gbar.setVal((Main.Application.game.player_g / 20));
PLR_G.text = Main.Application.game.player_g.toString();
doTrails((PLR_G.x + (PLR_G.width / 2)), (PLR_G.y + (PLR_G.height / 2)), 5);
};
};
};
};
};
if ((fieldObj[last_event[1]][last_event[2]][0] is rule)){
Main.Application.soundControl.Play((13 + Math.round(Math.random())), 1, false);
};
};
if (last_event[0] == "swap"){
Main.Application.soundControl.Play(3, 1, false);
};
if (last_event == last_event_obj){
fieldObj[last_event[1]][last_event[2]].estatus = true;
};
}
private function _particleUpdate(_arg1:Event):void{
var _local3:Matrix;
var _local4:Number;
var _local5:Number;
var _local6:ColorTransform;
particleBitmap.bitmapData.fillRect(new Rectangle(0, 0, 550, 400), 0);
var _local2:int;
while (_local2 < particles.length) {
if (((!((particles[_local2] == undefined))) || (!((particles[_local2] == null))))){
particles[_local2].alpha = (particles[_local2].alpha - (particles[_local2].speed / 50));
if (particles[_local2].alpha > 0){
_local3 = new Matrix();
_local4 = Math.abs((particles[_local2].x - ((particles[_local2].width * (particles[_local2].scaleY - 1)) / 2)));
_local5 = Math.abs((particles[_local2].y - ((particles[_local2].height * (particles[_local2].scaleY - 1)) / 2)));
_local3.createBox(particles[_local2].scaleX, particles[_local2].scaleY, particles[_local2].rotation, _local4, _local5);
_local6 = new ColorTransform(0, 0, 0, GameScreen.Obj.particles[_local2].alpha);
_local6.redOffset = GameScreen.Obj.particles[_local2].colorR;
_local6.greenOffset = GameScreen.Obj.particles[_local2].colorG;
_local6.blueOffset = GameScreen.Obj.particles[_local2].colorB;
particleBitmap.bitmapData.draw(sh, _local3, _local6, null, null, true);
} else {
particles[_local2] = null;
particles.splice(_local2, 1);
};
};
_local2++;
};
}
public function itemEnterFrameHandler(_arg1:Event){
var _local2:int;
var _local3:int;
var _local4:Boolean;
var _local5:int;
if ((((Main.Application.game.canMove == false)) || ((Main.Application.game.playersMove == false)))){
return;
};
if (selectObject1 != null){
dragDX = (mouseX - last_dragX);
dragDY = (mouseY - last_dragY);
_local2 = selectObject1.getI();
_local3 = selectObject1.getJ();
_local4 = false;
_local5 = 16;
if ((((dragDX <= -(_local5))) && ((_local2 > 0)))){
_local2--;
_local4 = true;
} else {
if ((((dragDX >= _local5)) && ((_local2 < Main.Application.game.game_field_width)))){
_local2++;
_local4 = true;
} else {
if ((((dragDY <= -(_local5))) && ((_local3 > 0)))){
_local3--;
_local4 = true;
} else {
if ((((dragDY >= _local5)) && ((_local3 < Main.Application.game.game_field_height)))){
_local3++;
_local4 = true;
};
};
};
};
if ((((_local4 == true)) && ((fieldObj[_local2][_local3][0].istatus == false)))){
selectStatus = 0;
selectObject2 = fieldObj[_local2][_local3][0];
Swap(selectObject1, selectObject2, null);
itemSelectMC.visible = false;
itemMouseUpHandler(_arg1);
};
};
}
private function FollowMouse(_arg1:Number, _arg2:Number):void{
var _local3:Number = 10;
distx = (follower_x - _arg1);
disty = (follower_y - _arg2);
follower_x = (follower_x - (distx / _local3));
follower_y = (follower_y - (disty / _local3));
}
public function itemClickHandler(_arg1:Event){
if ((((Main.Application.game.canMove == false)) || ((Main.Application.game.playersMove == false)))){
return;
};
itemChange1MC.visible = false;
itemChange2MC.visible = false;
hintArrow.visible = false;
stopHintTimer();
var _local2:MovieClip = (_arg1.target as MovieClip);
if ((((_local2 is explo_up)) || ((_local2 is bonusUP)))){
_local2 = (_local2.parent as MovieClip);
};
if ((((((_local2 is fieldItem)) && ((Math.abs((_local2.x - _local2.getNormalX())) <= 32)))) && ((Math.abs((_local2.y - _local2.getNormalY())) <= 32)))){
itemSelectMC.visible = true;
itemSelectMC.x = ((_local2.getNormalX() + 32) - 16);
itemSelectMC.y = ((_local2.getNormalY() + 32) - 16);
if ((((selectStatus == 0)) && ((_local2.istatus == false)))){
selectStatus = 1;
selectObject1 = _local2;
} else {
if ((((((selectStatus == 1)) && ((_local2.istatus == false)))) && (!((_local2 == selectObject1))))){
if ((((((Math.abs((selectObject1.getI() - _local2.getI())) <= 1)) && (((selectObject1.getJ() - _local2.getJ()) == 0)))) || (((((selectObject1.getI() - _local2.getI()) == 0)) && ((Math.abs((selectObject1.getJ() - _local2.getJ())) <= 1)))))){
selectStatus = 0;
selectObject2 = _local2;
Swap(selectObject1, selectObject2, null);
itemMouseUpHandler(_arg1);
itemSelectMC.visible = false;
} else {
selectStatus = 1;
selectObject1 = _local2;
};
};
};
};
}
public function createExplosion(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:String;
var _local11:Class;
var _local12:*;
var _local13:MovieClip;
var _local14:*;
var _local9:* = 0;
while (_local9 < _arg4) {
_local10 = bitmapsArray[Math.round((Math.random() * (bitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = ((_arg1 + (Math.random() * _arg5)) - (_arg5 / 2));
_local12.y = ((_arg2 + (Math.random() * _arg5)) - (_arg5 / 2));
_local14 = (Math.random() * _arg6);
_local12.scaleX = _local14;
_local12.scaleY = _local14;
_local12.speed = ((Math.random() * _arg7) + _arg7);
_local12.speedAlpha = ((Math.random() * _arg8) + _arg8);
_local12.addEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_local9++;
};
}
public function getAllElementsById(_arg1:int):void{
var _local2:Number;
var _local3:Number;
var _local4:Boolean;
var _local5:int;
var _local6:int;
Main.Application.game.searchForCustomMatch(_arg1, true);
if (Main.Application.game.matches.length > 0){
_local5 = 0;
while (_local5 < Main.Application.game.matches.length) {
_local6 = 0;
while (_local6 < Main.Application.game.matches[_local5].length) {
_local2 = Main.Application.game.matches[_local5][_local6][0];
_local3 = Main.Application.game.matches[_local5][_local6][1];
_local4 = Main.Application.game.matches[_local5][_local6][2];
events.push(new Array("erace", _local2, _local3, _local4));
_local6++;
};
_local5++;
};
};
getNormal();
}
public function itemMouseDownHandler(_arg1:Event){
if ((((((Main.Application.game.canMove == false)) || ((Main.Application.game.playersMove == false)))) || (!((_arg1.target is fieldItem))))){
itemMouseUpHandler(_arg1);
return;
};
var _local2:MovieClip = (_arg1.target as MovieClip);
if ((((_local2 is explo_up)) || ((_local2 is bonusUP)))){
_local2 = (_local2.parent as MovieClip);
};
itemChange1MC.visible = false;
itemChange2MC.visible = false;
hintArrow.visible = false;
stopHintTimer();
if (selectObject1 == _local2){
selectStatus = 0;
};
if (((((((!((_local2 == null))) && ((_local2 is fieldItem)))) && ((Math.abs((_local2.x - _local2.getNormalX())) <= 32)))) && ((Math.abs((_local2.y - _local2.getNormalY())) <= 32)))){
_local2.itemMouseClickHandler(null);
itemSelectMC.visible = true;
itemSelectMC.x = _local2.getNormalX();
itemSelectMC.y = _local2.getNormalY();
if ((((selectStatus == 0)) && ((_local2.istatus == false)))){
selectStatus = 1;
selectObject1 = _local2;
last_dragX = mouseX;
last_dragY = mouseY;
addEventListener(Event.ENTER_FRAME, itemEnterFrameHandler, false, 0, true);
} else {
if ((((((selectStatus == 1)) && ((_local2.istatus == false)))) && (!((_local2 == selectObject1))))){
if (selectObject1 != null){
if ((((((Math.abs((selectObject1.getI() - _local2.getI())) <= 1)) && (((selectObject1.getJ() - _local2.getJ()) == 0)))) || (((((selectObject1.getI() - _local2.getI()) == 0)) && ((Math.abs((selectObject1.getJ() - _local2.getJ())) <= 1)))))){
selectStatus = 0;
selectObject2 = _local2;
Swap(selectObject1, selectObject2, null);
itemMouseUpHandler(_arg1);
itemSelectMC.visible = false;
} else {
selectStatus = 1;
selectObject1 = _local2;
};
} else {
selectStatus = 1;
selectObject1 = _local2;
};
};
};
};
}
public function doTrails(_arg1:Number, _arg2:Number, _arg3:int=1){
var _local4:int;
while (_local4 < Math.floor((_arg3 / 2))) {
doTrail(this, (_arg1 + 8), (_arg2 + 4), "sparcle");
_local4++;
};
}
public function createFieldItem(_arg1:int, _arg2:int, _arg3:Number=-1, _arg4:Number=0, _arg5:Boolean=false, _arg6:Array=null){
var _local9:Object;
var _local10:Class;
var _local7:Boolean = ((_arg3)>-1) ? false : true;
_arg3 = (((_arg3)>-1) ? _arg3 : Main.Application.game.game_field[_arg1][_arg2][0] - 1);
if (_local7 == true){
_arg4 = Main.Application.game.game_field[_arg1][_arg2][1];
_arg5 = Main.Application.game.game_field[_arg1][_arg2][2];
};
var _local8:Boolean;
_local10 = Class(getDefinitionByName(items_array[_arg3]));
_local9 = new (_local10);
_local9.normal = false;
_local9.x = (((_arg1 * _local9.width) - _arg1) + 3);
_local9.y = (((_arg2 * _local9.height) - _arg2) + 3);
fieldMC.addChild((_local9 as DisplayObject));
if ((((_arg3 == 0)) && ((_arg4 == 1)))){
explo_downMC = new explo_down();
explo_downMC.mouseEnabled = false;
_local9.addChild(explo_downMC);
_local9.swapChildrenAt(0, 1);
explo_upMC = new explo_up();
explo_upMC.mouseEnabled = false;
_local9.addChild(explo_upMC);
_local9.bstatus = true;
} else {
if (_arg5 == true){
_local8 = true;
closedMC = new closed();
_local9.addChild(closedMC);
};
};
_local9.setPosition(_arg1, _arg2);
_local9.alpha = 0;
_local9.istatus = _local8;
_local9.normal = true;
fieldObj[_arg1][_arg2] = new Array(_local9, _local9.x, _local9.y);
dispatchEvent(new FieldItemEvent(FieldItemEvent.CREATE_COMPLITE, true, false, _arg6));
return (_local9);
}
public function Swap(_arg1:Object, _arg2:Object, _arg3:Array, _arg4:Boolean=true){
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Array;
var _local10:Object;
var _local11:Number;
var _local12:Number;
if ((((((Math.abs((_arg1.getI() - _arg2.getI())) <= 1)) && (((_arg1.getJ() - _arg2.getJ()) == 0)))) || (((((_arg1.getI() - _arg2.getI()) == 0)) && ((Math.abs((_arg1.getJ() - _arg2.getJ())) <= 1)))))){
_local5 = _arg1.getI();
_local6 = _arg1.getJ();
_local7 = _arg2.getI();
_local8 = _arg2.getJ();
_local9 = Main.Application.game.game_field[_local5][_local6];
Main.Application.game.game_field[_local5][_local6] = Main.Application.game.game_field[_local7][_local8];
Main.Application.game.game_field[_local7][_local8] = _local9;
_local10 = new Array(fieldObj[_local5][_local6][0], fieldObj[_local5][_local6][1], fieldObj[_local5][_local6][2]);
fieldObj[_local5][_local6] = fieldObj[_local7][_local8];
fieldObj[_local5][_local6][0].setPosition(_local5, _local6);
fieldObj[_local7][_local8] = _local10;
fieldObj[_local7][_local8][0].setPosition(_local7, _local8);
_local11 = ((_local5 * (fieldObj[_local5][_local6][0].width - 1)) + 3);
_local12 = ((_local6 * (fieldObj[_local5][_local6][0].height - 1)) + 3);
fieldObj[_local5][_local6][0].MoveTo(_local11, _local12, _arg3);
_local11 = ((_local7 * (fieldObj[_local7][_local8][0].width - 1)) + 3);
_local12 = ((_local8 * (fieldObj[_local7][_local8][0].height - 1)) + 3);
fieldObj[_local7][_local8][0].MoveTo(_local11, _local12, _arg3);
if (_arg4 == true){
fieldObj[_local5][_local6][0].addEventListener(FieldItemEvent.MOVETO_COMPLITE, itemEventListener, false, 0, true);
};
selectObject1 = fieldObj[_local5][_local6][0];
selectObject2 = fieldObj[_local7][_local8][0];
bselectObject1 = selectObject1;
bselectObject2 = selectObject2;
if (_arg4 == true){
moveNum--;
Main.Application.game.searchForMatch(6, true);
Main.Application.game.searchForMatch(5);
Main.Application.game.searchForMatch(4);
Main.Application.game.searchForMatch(3);
if (Main.Application.game.matches.length == 0){
} else {
selectObject1 = null;
selectObject2 = null;
};
};
};
}
public function ShakeField():void{
var _local2:int;
if ((((((fieldObj == null)) || ((fField == null)))) || ((clearing == true)))){
return;
};
Main.Application.game.canMove = false;
trace(("SHAKE: " + Main.Application.game.canMove));
var _local1:int;
while (_local1 < Main.Application.game.game_field_width) {
_local2 = 0;
while (_local2 < Main.Application.game.game_field_height) {
fieldObj[_local1][_local2][0].Shake();
_local2++;
};
_local1++;
};
}
function AddCPUManeure(_arg1:Number):void{
if (PLRManeure <= 0){
CPUManeure = (CPUManeure + _arg1);
} else {
PLRManeure = (PLRManeure - _arg1);
if (PLRManeure <= 0){
CPUManeure = (CPUManeure + Math.abs(PLRManeure));
PLRManeure = 0;
};
};
if (CPUManeure > 100){
CPUManeure = 100;
};
if (CPUManeure < 0){
CPUManeure = 0;
};
if (PLRManeure > 100){
PLRManeure = 100;
};
if (PLRManeure < 0){
PLRManeure = 0;
};
}
function AddPLRManeure(_arg1:Number):void{
if (CPUManeure <= 0){
PLRManeure = (PLRManeure + _arg1);
} else {
CPUManeure = (CPUManeure - _arg1);
if (CPUManeure <= 0){
PLRManeure = (PLRManeure + Math.abs(CPUManeure));
CPUManeure = 0;
};
};
if (CPUManeure > 100){
CPUManeure = 100;
};
if (CPUManeure < 0){
CPUManeure = 0;
};
if (PLRManeure > 100){
PLRManeure = 100;
};
if (PLRManeure < 0){
PLRManeure = 0;
};
}
public function getNormal(_arg1:Boolean=true){
var _local4:Array;
var _local5:Boolean;
var _local6:Boolean;
var _local7:Number;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:Number;
var _local12:Number;
var _local13:Boolean;
Main.Application.game.canMove = false;
trace(("GET NORMAL: " + Main.Application.game.canMove));
var _local2:Array = new Array();
var _local3:Array = new Array();
if (Main.Application.game.matches.length > 0){
while (Main.Application.game.matches.length > 0) {
_local2 = Main.Application.game.deleteMatchesFromField();
_local3 = Main.Application.game.modifyField();
_local4 = new Array();
_local5 = false;
_local6 = false;
_local7 = (Main.Application.game.game_field_height - 1);
_local8 = 0;
while (_local8 < Main.Application.game.game_field_width) {
_local4 = new Array(-1, -1);
_local5 = false;
_local6 = false;
_local9 = (Main.Application.game.game_field_height - 1);
while (_local9 >= 0) {
if (_local2[_local8][_local9][0] == 0){
_local6 = true;
break;
};
_local9--;
};
if (_local6 == true){
_local9 = (Main.Application.game.game_field_height - 1);
while (_local9 >= 0) {
if ((((_local2[_local8][_local9][0] == 0)) && ((_local5 == false)))){
_local4[0] = _local8;
_local4[1] = _local9;
_local5 = true;
} else {
if (((((!((_local2[_local8][_local9][0] == 0))) && (!((_local4[0] == -1))))) && (!((_local4[1] == -1))))){
if (_arg1 == true){
events.push(new Array("throwTo", _local8, _local9, _local4[0], _local4[1]));
};
_local4[1] = (_local4[1] - 1);
};
};
_local9--;
};
};
_local8++;
};
if (_arg1 == true){
_local8 = 0;
while (_local8 < Main.Application.game.game_field_width) {
if (_local3[_local8].length > 0){
_local9 = 0;
while (_local9 < _local3[_local8].length) {
events.push(new Array("create", _local8, _local9, _local3[_local8][_local9][0], _local3[_local8][_local9][1], _local3[_local8][_local9][2]));
_local9++;
};
};
_local8++;
};
if (count4 > 0){
while (_local10 < count4) {
events.push(new Array("silver"));
_local10++;
};
};
if (count5 > 0){
while (_local10 < count5) {
events.push(new Array("silver"));
events.push(new Array("silver"));
_local10++;
};
};
_local8 = 0;
while (_local8 < Main.Application.game.game_field_width) {
if (_local3[_local8].length > 0){
_local9 = 0;
while (_local9 < _local3[_local8].length) {
events.push(new Array("throw", _local8, _local9, ((_local8 * 31) + 3), ((_local9 * 31) + 3)));
_local9++;
};
};
_local8++;
};
};
Main.Application.game.searchForMatch(6, true);
count5 = Main.Application.game.searchForMatch(5);
count4 = Main.Application.game.searchForMatch(4);
Main.Application.game.searchForMatch(3);
if (_arg1 == true){
if (Main.Application.game.matches.length > 0){
_local8 = 0;
while (_local8 < Main.Application.game.matches.length) {
if (moveNum < 4){
if (Main.Application.game.matches[_local8].length == 4){
game_message.gotoAndStop(1);
game_message.alpha = 1;
game_message.visible = true;
game_message.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
game_message.addEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
moveNum++;
} else {
if (Main.Application.game.matches[_local8].length >= 5){
game_message.gotoAndStop(2);
game_message.alpha = 1;
game_message.visible = true;
game_message.removeEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
game_message.addEventListener(Event.ENTER_FRAME, gameMessageEnterFrameHandler);
moveNum = (moveNum + 2);
};
};
};
if (moveNum > 4){
moveNum = 4;
};
_local9 = 0;
while (_local9 < Main.Application.game.matches[_local8].length) {
_local11 = Main.Application.game.matches[_local8][_local9][0];
_local12 = Main.Application.game.matches[_local8][_local9][1];
_local13 = Main.Application.game.matches[_local8][_local9][2];
events.push(new Array("erace", _local11, _local12, _local13));
_local9++;
};
_local8++;
};
};
};
};
};
if (_arg1 == true){
if ((((fieldReseting == false)) && (checkNormal()))){
doNextEvent();
};
};
}
private function tempParticleUpdate(_arg1:Event):void{
_arg1.target.scaleX = (_arg1.target.scaleX + _arg1.target.speed);
_arg1.target.scaleY = (_arg1.target.scaleY + _arg1.target.speed);
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.speedAlpha);
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
public function skipMove(_arg1:Boolean=false):void{
moveNum--;
if (moveNum <= 0){
moveNum = 3;
Main.Application.game.playersMove = !(Main.Application.game.playersMove);
if (Main.Application.game.playersMove == true){
checkCursor(3);
mRule.x = 158;
} else {
checkCursor(3);
mRule.x = 375;
};
if (_arg1 == true){
AImove();
doNextEvent();
};
} else {
checkCursor();
};
whosTurn.text = Preloader.Obj.localization.GetTranslation((("Screens/GameScreen/" + ((Main.Application.game.playersMove)==true) ? "players" : "computers") + "Turn"));
movesCountValue.text = moveNum.toString();
}
public function AImove(){
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local8:Boolean;
var _local9:int;
if ((((CPU_HP_count <= 0.12)) || ((player_HP_count <= 0.12)))){
return;
};
itemSelectMC.visible = false;
if (Math.round(Math.random()) == 1){
_local8 = false;
_local9 = (cpu_spells.length - 1);
while (_local9 >= 0) {
if (cpu_spells[_local9].checkPrice() == true){
_local8 = cpu_spells[_local9].callFunction();
break;
};
_local9--;
};
if (Main.Application.game.playersMove == true){
return;
};
};
var _local6:Boolean;
var _local7:Boolean;
take4 = false;
take5 = false;
Main.Application.game.searchForMoves(5, true);
if (Main.Application.game.moves.length > 0){
_local7 = true;
};
Main.Application.game.searchForMoves(4);
if (Main.Application.game.moves.length > 0){
_local6 = true;
};
Main.Application.game.searchForMoves(3);
if (Main.Application.game.moves.length > 0){
_local5 = 0;
while (_local5 < Main.Application.game.moves.length) {
if ((((Main.Application.game.moves[_local5][0] == 6)) || ((Main.Application.game.moves[_local5][0] == 4)))){
_local1 = Main.Application.game.moves[_local5][1][0];
_local2 = Main.Application.game.moves[_local5][1][1];
_local3 = Main.Application.game.moves[_local5][2][0];
_local4 = Main.Application.game.moves[_local5][2][1];
showHint(Main.Application.game.moves[_local5]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
return;
};
_local5++;
};
_local5 = 0;
while (_local5 < Main.Application.game.moves.length) {
if ((((((Main.Application.game.moves[_local5][0] == 1)) || ((Main.Application.game.moves[_local5][0] == 2)))) || ((Main.Application.game.moves[_local5][0] == 3)))){
_local1 = Main.Application.game.moves[_local5][1][0];
_local2 = Main.Application.game.moves[_local5][1][1];
_local3 = Main.Application.game.moves[_local5][2][0];
_local4 = Main.Application.game.moves[_local5][2][1];
showHint(Main.Application.game.moves[_local5]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
return;
};
_local5++;
};
_local5 = 0;
while (_local5 < Main.Application.game.moves.length) {
if (Main.Application.game.moves[_local5][0] == 7){
_local1 = Main.Application.game.moves[_local5][1][0];
_local2 = Main.Application.game.moves[_local5][1][1];
_local3 = Main.Application.game.moves[_local5][2][0];
_local4 = Main.Application.game.moves[_local5][2][1];
showHint(Main.Application.game.moves[_local5]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
return;
};
_local5++;
};
if ((((_local6 == true)) || ((_local7 == true)))){
_local1 = Main.Application.game.moves[0][1][0];
_local2 = Main.Application.game.moves[0][1][1];
_local3 = Main.Application.game.moves[0][2][0];
_local4 = Main.Application.game.moves[0][2][1];
showHint(Main.Application.game.moves[0]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
if (_local6 == true){
take4 = true;
} else {
if (_local7 == true){
take5 = true;
};
};
return;
};
_local5 = 0;
while (_local5 < Main.Application.game.moves.length) {
if (Main.Application.game.moves[_local5][0] == 5){
_local1 = Main.Application.game.moves[_local5][1][0];
_local2 = Main.Application.game.moves[_local5][1][1];
_local3 = Main.Application.game.moves[_local5][2][0];
_local4 = Main.Application.game.moves[_local5][2][1];
showHint(Main.Application.game.moves[_local5]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
return;
};
_local5++;
};
_local1 = Main.Application.game.moves[0][1][0];
_local2 = Main.Application.game.moves[0][1][1];
_local3 = Main.Application.game.moves[0][2][0];
_local4 = Main.Application.game.moves[0][2][1];
showHint(Main.Application.game.moves[0]);
events.push(new Array("swap", _local1, _local2, _local3, _local4));
return;
};
}
}
}//package Screens.GameScreen
Section 80
//Gbar (Screens.GameScreen.Gbar)
package Screens.GameScreen {
import flash.events.*;
public class Gbar extends fnsHint {
public var manaMain:G;
public var val:Number;// = 1
public var manaMask:bar_mask3;
public var last_val:Number;// = 1
public function Gbar(){
manaMask.y = (manaMask.y + manaMask.height);
manaMask.scaleY = -(manaMask.scaleY);
manaMain.mask = manaMask;
manaMask.scaleY = 0;
val = 0;
}
function scale(_arg1:Event){
if (last_val > val){
if (manaMask.scaleY > val){
manaMask.scaleY = (manaMask.scaleY - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (manaMask.scaleY < val){
manaMask.scaleY = (manaMask.scaleY + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
if (val == _arg1){
return;
};
last_val = val;
val = (-1 * _arg1);
addEventListener(Event.ENTER_FRAME, scale);
}
}
}//package Screens.GameScreen
Section 81
//jFlight (Screens.GameScreen.jFlight)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class jFlight extends MovieClip {
public var explode:MovieClip;
public var b:jadro;
public var success:Boolean;// = true
public var shipMC:ship;
var bitmapsArray:Array;
var particleBitmapsArray:Array;
public function jFlight(){
bitmapsArray = ["effectfire5", "effectfire6", "effectfire7", "effectfire8", "effectfire9"];
particleBitmapsArray = ["particle", "particle1", "particle5"];
super();
addEventListener(Event.ENTER_FRAME, checkExplode);
addEventListener(Event.ENTER_FRAME, Update);
}
function createExplosion(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:String;
var _local11:Class;
var _local12:*;
var _local13:MovieClip;
var _local14:*;
var _local9:* = 0;
while (_local9 < _arg4) {
_local10 = bitmapsArray[Math.round((Math.random() * (bitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = ((_arg1 + (Math.random() * _arg5)) - (_arg5 / 2));
_local12.y = ((_arg2 + (Math.random() * _arg5)) - (_arg5 / 2));
_local14 = (Math.random() * _arg6);
_local12.scaleX = _local14;
_local12.scaleY = _local14;
_local12.speed = ((Math.random() * _arg7) + _arg7);
_local12.speedAlpha = ((Math.random() * _arg8) + _arg8);
_local12.addEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_local9++;
};
}
private function tempParticleUpdate(_arg1:Event):void{
_arg1.target.scaleX = (_arg1.target.scaleX + _arg1.target.speed);
_arg1.target.scaleY = (_arg1.target.scaleY + _arg1.target.speed);
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.speedAlpha);
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, tempParticleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
private function particleUpdate(_arg1:Event):void{
_arg1.target.alpha = (_arg1.target.alpha - _arg1.target.fadeSpeed);
_arg1.target.x = (_arg1.target.x + _arg1.target.speedX);
_arg1.target.y = (_arg1.target.y + _arg1.target.speedY);
if ((((((((((_arg1.target.alpha <= 0)) || ((_arg1.target.x < _arg1.target.boundyLeft)))) || ((_arg1.target.x > _arg1.target.boundyRight)))) || ((_arg1.target.y < _arg1.target.boundyTop)))) || ((_arg1.target.y > _arg1.target.boundyBottom)))){
_arg1.target.removeEventListener(Event.ENTER_FRAME, particleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
function Update(_arg1:Event){
}
function createParticles(_arg1:Number, _arg2:Number, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{
var _local10:*;
var _local11:Class;
var _local12:MovieClip;
var _local13:MovieClip;
var _local9:Number = 0;
while (_local9 < _arg4) {
_local10 = particleBitmapsArray[Math.round((Math.random() * (particleBitmapsArray.length - 1)))];
_local11 = Class(getDefinitionByName(_local10));
_local12 = new MovieClip();
_arg3.addChild(_local12);
_local13 = new (_local11);
_local12.addChild(_local13);
_local13.x = (-(_local13.width) / 2);
_local13.y = (-(_local13.height) / 2);
_local12.x = _arg1;
_local12.y = _arg2;
_local12.rotation = (Math.random() * 360);
_local12.alpha = ((Math.random() * 0.5) + 0.5);
_local12.scaleX = _arg6;
_local12.scaleY = _arg6;
_local12.boundyLeft = (_local12.x - _arg5);
_local12.boundyTop = (_local12.y - _arg5);
_local12.boundyRight = (_local12.x + _arg5);
_local12.boundyBottom = (_local12.y + _arg5);
_local12.speedX = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedY = ((Math.random() * _arg7) - (Math.random() * _arg7));
_local12.speedX = (_local12.speedX * _arg7);
_local12.speedY = (_local12.speedY * _arg7);
_local12.fadeSpeed = ((Math.random() * _arg8) * _arg8);
_local12.addEventListener(Event.ENTER_FRAME, particleUpdate);
_local9++;
};
}
function checkExplode(_arg1:Event){
if (GameScreen.Obj == null){
removeEventListener(Event.ENTER_FRAME, checkExplode);
return;
};
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, checkExplode);
stop();
visible = false;
explode = new MovieClip();
parent.addChild(explode);
if (success == true){
if (scaleX >= 0){
explode.x = ((this.b.x + this.x) - 0);
explode.y = ((this.b.y + this.y) - 32);
} else {
explode.x = (((this.b.x + this.x) - (2 * this.width)) + 32);
explode.y = ((this.b.y + this.y) - 32);
};
Main.Application.soundControl.Play((23 + Math.round((Math.random() * 4))), 1, false);
createExplosion(0, 0, explode, 5, 15, 0.5, 0.03, 0.05);
createParticles(0, 0, explode, 3, 50, 0.5, 2, 0.2);
GameScreen.Obj.ShakeField();
if (shipMC != null){
shipMC.setVals();
shipMC.checkKorsair();
};
} else {
if (scaleX >= 0){
explode.x = ((this.b.x + this.x) - 16);
explode.y = 150;
} else {
explode.x = (((this.b.x + this.x) - (2 * this.width)) + 16);
explode.y = 150;
};
explode.addChild(new WaterSplashing());
Main.Application.soundControl.Play(15, 1, false);
};
};
}
public function Launch(_arg1:Event){
Main.Application.soundControl.Play((19 + Math.round((Math.random() * 3))), 1, false);
visible = true;
gotoAndPlay(1);
}
public function erace(){
removeEventListener(Event.ENTER_FRAME, checkExplode);
}
}
}//package Screens.GameScreen
Section 82
//moveRule (Screens.GameScreen.moveRule)
package Screens.GameScreen {
import flash.events.*;
public class moveRule extends fnsHint {
public function moveRule(){
addEventListener(Event.ENTER_FRAME, rotate);
}
function rotate(_arg1:Event){
rotation = (rotation + ((Main.Application.game.playersMove) ? -1 : 1 * 0.5));
}
}
}//package Screens.GameScreen
Section 83
//PLR_HPb (Screens.GameScreen.PLR_HPb)
package Screens.GameScreen {
import flash.events.*;
public class PLR_HPb extends fnsHint {
public var val:Number;// = 1
public var hpMain:HPb_main;
public var hpMask:bar_mask;
public var last_val:Number;// = 1
public function PLR_HPb(){
hpMask.x = (hpMask.x + hpMask.width);
hpMask.scaleX = -(hpMask.scaleX);
hpMain.mask = hpMask;
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
if (val == _arg1){
return;
};
last_val = val;
val = (-1 * _arg1);
addEventListener(Event.ENTER_FRAME, scale);
}
function scale(_arg1:Event){
if (last_val > val){
if (hpMask.scaleX > val){
hpMask.scaleX = (hpMask.scaleX - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (hpMask.scaleX < val){
hpMask.scaleX = (hpMask.scaleX + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
}
}//package Screens.GameScreen
Section 84
//PLR_MANb (Screens.GameScreen.PLR_MANb)
package Screens.GameScreen {
import flash.events.*;
public class PLR_MANb extends fnsHint {
public var val:Number;// = 0
public var manMain:MANb_main;
public var manMask:bar_mask2;
public var last_val:Number;// = 0
public function PLR_MANb(){
manMask.x = (manMask.x + manMask.width);
manMask.scaleX = -(manMask.scaleX);
manMain.mask = manMask;
manMask.scaleX = 0;
val = 0;
}
function scale(_arg1:Event){
if (last_val > val){
if (manMask.scaleX > val){
manMask.scaleX = (manMask.scaleX - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (manMask.scaleX < val){
manMask.scaleX = (manMask.scaleX + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
function getVal():Number{
return (val);
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
_arg1 = ((_arg1)>1) ? 1 : _arg1;
if (Math.abs(val) == _arg1){
return;
};
last_val = val;
val = (-1 * _arg1);
addEventListener(Event.ENTER_FRAME, scale);
}
}
}//package Screens.GameScreen
Section 85
//Rbar (Screens.GameScreen.Rbar)
package Screens.GameScreen {
import flash.events.*;
public class Rbar extends fnsHint {
public var manaMain:R;
public var val:Number;// = 1
public var manaMask:bar_mask3;
public var last_val:Number;// = 1
public function Rbar(){
manaMask.y = (manaMask.y + manaMask.height);
manaMask.scaleY = -(manaMask.scaleY);
manaMain.mask = manaMask;
manaMask.scaleY = 0;
val = 0;
}
function scale(_arg1:Event){
if (last_val > val){
if (manaMask.scaleY > val){
manaMask.scaleY = (manaMask.scaleY - 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val < val){
if (manaMask.scaleY < val){
manaMask.scaleY = (manaMask.scaleY + 0.01);
} else {
removeEventListener(Event.ENTER_FRAME, scale);
};
};
if (last_val == val){
removeEventListener(Event.ENTER_FRAME, scale);
};
}
function setVal(_arg1:Number){
_arg1 = ((_arg1)<0) ? 0 : _arg1;
if (val == _arg1){
return;
};
last_val = val;
val = (-1 * _arg1);
addEventListener(Event.ENTER_FRAME, scale);
}
}
}//package Screens.GameScreen
Section 86
//ship (Screens.GameScreen.ship)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class ship extends MovieClip {
var lastManeure:Number;// = 0
public var shipS:England_3_100;
var HP_count:Number;// = 1
var ID:int;// = 1
public var isCPU:Boolean;// = false
var isBroken:Boolean;// = false
var Maneure:Number;// = 0
var dSmoke:Number;// = 0
public var rootX:Number;// = -1500
var particleCounter:Number;// = 0
var dManeure:Number;// = 0
public function ship(){
gotoAndPlay(Math.round((Math.random() * totalFrames)));
addEventListener(Event.ENTER_FRAME, Update);
setDx();
}
function MoveHandle(_arg1:Event){
if (lastManeure > Maneure){
if (this.x < Maneure){
this.x = (this.x + 0.1);
setDx();
} else {
if (this.x > Maneure){
this.x = (this.x - 0.1);
setDx();
} else {
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
};
};
if (lastManeure < Maneure){
if (this.x > Maneure){
this.x = (this.x - 0.1);
setDx();
} else {
if (this.x < Maneure){
this.x = (this.x + 0.1);
setDx();
} else {
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
};
};
if (lastManeure == Maneure){
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
}
function doTrail(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number=0.8, _arg6:Number=0):void{
if (Math.random() < 0.7){
return;
};
var _local7:Class = Class(getDefinitionByName(_arg4));
var _local8:MovieClip = new (_local7);
addChild(_local8);
_local8.x = ((_arg2 + (Math.random() * 4)) - 8);
_local8.y = ((_arg3 + (Math.random() * 4)) - 8);
_local8.rotation = (Math.random() * 360);
_local8.alpha = _arg5;
var _local9:* = ((Math.random() * 0.3) + _arg6);
_local8.scaleX = _local9;
_local8.scaleY = _local9;
_local8.speed = ((Math.random() * 4) + 2);
_local8.addEventListener(Event.ENTER_FRAME, _particleUpdate);
particleCounter++;
if (particleCounter > 10){
particleCounter = 0;
};
}
public function selectShipById(_arg1:int){
ID = _arg1;
_arg1 = (_arg1 + (_arg1 - 1));
if (HP_count <= 0.5){
_arg1++;
};
shipS.gotoAndStop(_arg1);
}
private function _particleUpdate(_arg1:Event):void{
_arg1.target.y = (_arg1.target.y - (_arg1.target.speed / 4));
_arg1.target.scaleX = (_arg1.target.scaleX + (_arg1.target.speed / 400));
_arg1.target.scaleY = (_arg1.target.scaleY + (_arg1.target.speed / 400));
_arg1.target.alpha = (_arg1.target.alpha - (_arg1.target.speed / 400));
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, _particleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
function checkKorsair():void{
var _local1:Object;
if (GameScreen.Obj.checkTalisman("korsair1", isCPU) == true){
if (isCPU == true){
_local1 = GameScreen.Obj.getTalisman("korsair1", true);
GameScreen.Obj.doTrails((_local1.x + (_local1.width / 2)), (_local1.y + (_local1.height / 2)), 5);
Main.Application.game.player_r = (Main.Application.game.player_r + 1);
if (Main.Application.game.player_r <= 20){
GameScreen.Obj.PLR_Rbar.setVal((Main.Application.game.player_r / 20));
GameScreen.Obj.PLR_R.text = Main.Application.game.player_r.toString();
GameScreen.Obj.doTrails((GameScreen.Obj.PLR_R.x + (GameScreen.Obj.PLR_R.width / 2)), (GameScreen.Obj.PLR_R.y + (GameScreen.Obj.PLR_R.height / 2)), 5);
};
} else {
_local1 = GameScreen.Obj.getTalisman("korsair1", false);
GameScreen.Obj.doTrails((_local1.x + (_local1.width / 2)), (_local1.y + (_local1.height / 2)), 5);
Main.Application.game.cpu_r = (Main.Application.game.cpu_r + 1);
if (Main.Application.game.cpu_r <= 20){
GameScreen.Obj.CPU_Rbar.setVal((Main.Application.game.cpu_r / 20));
GameScreen.Obj.CPU_R.text = Main.Application.game.cpu_r.toString();
GameScreen.Obj.doTrails((GameScreen.Obj.CPU_R.x + (GameScreen.Obj.CPU_R.width / 2)), (GameScreen.Obj.CPU_R.y + (GameScreen.Obj.CPU_R.height / 2)), 5);
};
};
};
}
function setDx(){
dSmoke = this.x;
dSmoke = (dSmoke + ((((isCPU)==true) ? -1 : 1 * this.width) / 2));
dSmoke = (dSmoke - ((isCPU)==true) ? ((this.getChildAt(0) as MovieClip).width * 2) : 0);
}
function scaleShip(){
scaleX = (-1 * scaleX);
}
function selectShip(_arg1:String){
shipS.gotoAndStop(_arg1);
}
function Update(_arg1:Event){
if (HP_count <= 0.5){
doTrail(this, dSmoke, 152, "particle_smoke_black");
doTrail(this, dSmoke, 152, "particle_smoke_clear", 0.3);
if (HP_count <= 0.3){
doTrail(this, dSmoke, 152, "particle_smoke_red", 0.25, 0.2);
};
};
}
function Move(_arg1:Number){
if (rootX == -1500){
rootX = this.x;
};
dManeure = _arg1;
lastManeure = Maneure;
Maneure = (rootX + (dManeure * ((isCPU)==true) ? -1 : 1));
addEventListener(Event.ENTER_FRAME, MoveHandle);
}
function setVals(_arg1:Boolean=false, _arg2:Boolean=false){
var _local3:Number;
var _local4:int;
var _local5:int;
var _local6:int;
if (_arg1 == true){
trace("REPAIR!");
};
if (isCPU == true){
if (_arg1 == false){
if (_arg2 == false){
_local3 = 1.7;
if (Main.Application.game.levels.getCurrentLevelIndex() > 3){
_local3 = (_local3 - (0.1 * (Main.Application.game.levels.getCurrentLevelIndex() - 3)));
};
if (_local3 < 1){
_local3 = 1;
};
GameScreen.Obj.CPU_HP_count = (GameScreen.Obj.CPU_HP_count - Math.abs(((_local3 * (((0.35 * 4) * (6 - Main.Application.game.cpu_level_def)) / 100)) / 2)));
} else {
GameScreen.Obj.CPU_HP_count = (GameScreen.Obj.CPU_HP_count - Math.abs(((((3 * (0.35 * 4)) * (6 - 0)) / 100) / 2)));
};
if ((((((GameScreen.Obj.CPU_HP_count <= 0.12)) && ((GameScreen.Obj.Panel.Victory.visible == false)))) && ((GameScreen.Obj.Panel.Lose.visible == false)))){
Main.Application.soundControl.Play(28, 1, false);
GameScreen.Obj.gameOver = true;
Main.Application.game.canMove = false;
_local4 = Main.Application.game.player_level_money;
GameScreen.Obj.Panel.Victory.GoldCollectedValue.text = (_local4 + "");
GameScreen.Obj.Panel.Victory.CrystalsLeftRValue.text = ((10 * (Main.Application.game.player_r + Main.Application.game.cpu_r)) + "");
_local4 = (_local4 + (10 * (Main.Application.game.player_r + Main.Application.game.cpu_r)));
GameScreen.Obj.Panel.Victory.CrystalsLeftGValue.text = ((10 * (Main.Application.game.player_g + Main.Application.game.cpu_g)) + "");
_local4 = (_local4 + (10 * (Main.Application.game.player_g + Main.Application.game.cpu_g)));
GameScreen.Obj.Panel.Victory.CrystalsLeftBValue.text = ((10 * (Main.Application.game.player_b + Main.Application.game.cpu_b)) + "");
_local4 = (_local4 + (10 * (Main.Application.game.player_b + Main.Application.game.cpu_b)));
_local5 = 0;
while (_local5 < Main.Application.game.talismans.length) {
_local6 = 0;
while (_local6 < Main.Application.game.cpu_talismans.length) {
if (Main.Application.game.cpu_talismans[_local6] == Main.Application.game.talismans[_local5]){
Main.Application.game.talismans_open[_local5] = 1;
GameScreen.Obj.Panel.Victory.getChildByName(("tr" + (_local6 + 1))).text = Main.Application.game.talismans_prices[_local5].toString();
_local4 = (_local4 + Main.Application.game.talismans_prices[_local5]);
};
_local6++;
};
_local5++;
};
GameScreen.Obj.Panel.Victory.LevelTotalValue.text = _local4.toString();
Main.Application.game.player_money = (Main.Application.game.player_money + _local4);
GameScreen.Obj.tutorial.visible = false;
GameScreen.Obj.Panel.Victory.gotoAndStop(1);
GameScreen.Obj.Panel.Victory.alpha = 0;
GameScreen.Obj.Panel.Victory.visible = true;
GameScreen.Obj.Panel.Victory.removeEventListener(Event.ENTER_FRAME, GameScreen.Obj.gameVictoryEnterFrameHandler);
GameScreen.Obj.Panel.Victory.addEventListener(Event.ENTER_FRAME, GameScreen.Obj.gameVictoryEnterFrameHandler);
};
} else {
trace("CPU REPAIR!");
GameScreen.Obj.CPU_HP_count = (GameScreen.Obj.CPU_HP_count + (1 / 10));
if (GameScreen.Obj.CPU_HP_count > 1){
GameScreen.Obj.CPU_HP_count = 1;
};
if (GameScreen.Obj.CPU_HP_count > 0.5){
isBroken = false;
};
};
GameScreen.Obj.CPU_HP.setVal(GameScreen.Obj.CPU_HP_count);
HP_count = GameScreen.Obj.CPU_HP_count;
} else {
if (_arg1 == false){
_local3 = 0.5;
if (Main.Application.game.levels.getCurrentLevelIndex() > 3){
_local3 = (_local3 + (0.1 * (Main.Application.game.levels.getCurrentLevelIndex() - 3)));
};
if (_local3 > 1){
_local3 = 1;
};
if (_arg2 == false){
GameScreen.Obj.player_HP_count = (GameScreen.Obj.player_HP_count - Math.abs(((_local3 * (((0.35 * 4) * (6 - Main.Application.game.player_level_def)) / 100)) / 2)));
} else {
GameScreen.Obj.player_HP_count = (GameScreen.Obj.player_HP_count - Math.abs(((((3 * (0.35 * 4)) * (6 - 0)) / 100) / 2)));
};
if ((((((GameScreen.Obj.player_HP_count <= 0.12)) && ((GameScreen.Obj.Panel.Victory.visible == false)))) && ((GameScreen.Obj.Panel.Lose.visible == false)))){
Main.Application.soundControl.Play(28, 1, false);
GameScreen.Obj.gameOver = true;
Main.Application.game.canMove = false;
GameScreen.Obj.tutorial.visible = false;
GameScreen.Obj.Panel.Lose.gotoAndStop(1);
GameScreen.Obj.Panel.Lose.alpha = 0;
GameScreen.Obj.Panel.Lose.visible = true;
GameScreen.Obj.Panel.Lose.removeEventListener(Event.ENTER_FRAME, GameScreen.Obj.gameVictoryEnterFrameHandler);
GameScreen.Obj.Panel.Lose.addEventListener(Event.ENTER_FRAME, GameScreen.Obj.gameVictoryEnterFrameHandler);
};
} else {
trace("PLR REPAIR!");
GameScreen.Obj.player_HP_count = (GameScreen.Obj.player_HP_count + (1 / 10));
if (GameScreen.Obj.player_HP_count > 1){
GameScreen.Obj.player_HP_count = 1;
};
if (GameScreen.Obj.player_HP_count > 0.5){
isBroken = false;
};
};
GameScreen.Obj.PLR_HP.setVal(GameScreen.Obj.player_HP_count);
HP_count = GameScreen.Obj.player_HP_count;
};
if ((((HP_count <= 0.5)) && ((isBroken == false)))){
isBroken = true;
selectShipById(ID);
};
}
}
}//package Screens.GameScreen
Section 87
//simpleShip (Screens.GameScreen.simpleShip)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class simpleShip extends MovieClip {
var lastManeure:Number;// = 0
public var isRight:Boolean;// = false
public var shipS:MovieClip;
var HP_count:Number;// = 1
var ID:int;// = 1
public var isCPU:Boolean;// = false
var isBroken:Boolean;// = false
var particleCounter:Number;// = 0
var dSmoke:Number;// = 0
var Maneure:Number;// = 0
public var rootX:Number;// = -1500
var dManeure:Number;// = 0
public function simpleShip(){
gotoAndPlay(Math.round((Math.random() * totalFrames)));
addEventListener(Event.ENTER_FRAME, Update);
setDx();
}
function MoveHandle(_arg1:Event){
if (lastManeure > Maneure){
if (this.x < Maneure){
this.x = (this.x + 0.1);
setDx();
} else {
if (this.x > Maneure){
this.x = (this.x - 0.1);
setDx();
} else {
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
};
};
if (lastManeure < Maneure){
if (this.x > Maneure){
this.x = (this.x - 0.1);
setDx();
} else {
if (this.x < Maneure){
this.x = (this.x + 0.1);
setDx();
} else {
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
};
};
if (lastManeure == Maneure){
removeEventListener(Event.ENTER_FRAME, MoveHandle);
};
}
function doTrail(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number=0.8, _arg6:Number=0):void{
if (Math.random() < 0.7){
return;
};
var _local7:Class = Class(getDefinitionByName(_arg4));
var _local8:MovieClip = new (_local7);
addChild(_local8);
_local8.x = ((_arg2 + (Math.random() * 4)) - 8);
_local8.y = ((_arg3 + (Math.random() * 4)) - 8);
_local8.rotation = (Math.random() * 360);
_local8.alpha = _arg5;
var _local9:* = ((Math.random() * 0.3) + _arg6);
_local8.scaleX = _local9;
_local8.scaleY = _local9;
_local8.speed = ((Math.random() * 4) + 2);
_local8.addEventListener(Event.ENTER_FRAME, _particleUpdate);
particleCounter++;
if (particleCounter > 10){
particleCounter = 0;
};
}
public function selectShipById(_arg1:int){
ID = _arg1;
_arg1 = (_arg1 + (_arg1 - 1));
if (GameScreen.Obj.CPU_HP_count <= 0.5){
_arg1++;
};
shipS.gotoAndStop(_arg1);
}
private function _particleUpdate(_arg1:Event):void{
_arg1.target.y = (_arg1.target.y - (_arg1.target.speed / 4));
_arg1.target.scaleX = (_arg1.target.scaleX + (_arg1.target.speed / 400));
_arg1.target.scaleY = (_arg1.target.scaleY + (_arg1.target.speed / 400));
_arg1.target.alpha = (_arg1.target.alpha - (_arg1.target.speed / 400));
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, _particleUpdate);
_arg1.target.parent.removeChild(_arg1.target);
};
}
function setDx(){
dSmoke = this.x;
if (isRight == true){
dSmoke = (dSmoke + (-(this.width) * 1.3));
};
dSmoke = (dSmoke - ((isCPU)==true) ? ((this.getChildAt(0) as MovieClip).width * 2) : 0);
}
function scaleShip(){
scaleX = (-1 * scaleX);
}
function selectShip(_arg1:String){
shipS.gotoAndStop(_arg1);
}
function Update(_arg1:Event){
if (GameScreen.Obj == null){
return;
};
if (GameScreen.Obj.CPU_HP_count <= 0.5){
doTrail(this, dSmoke, 150, "particle_smoke_black");
doTrail(this, dSmoke, 150, "particle_smoke_clear", 0.3);
setVals();
if (HP_count <= 0.3){
doTrail(this, dSmoke, 150, "particle_smoke_red", 0.35, 0.2);
};
};
}
function Move(_arg1:Number){
if (rootX == -1500){
rootX = this.x;
};
dManeure = _arg1;
lastManeure = Maneure;
Maneure = (rootX + (dManeure * ((isCPU)==true) ? -1 : 1));
addEventListener(Event.ENTER_FRAME, MoveHandle);
}
function setVals(_arg1:Boolean=false, _arg2:Boolean=false){
if ((((GameScreen.Obj.CPU_HP_count <= 0.5)) && ((isBroken == false)))){
isBroken = true;
selectShipById(ID);
};
}
}
}//package Screens.GameScreen
Section 88
//SpellButton (Screens.GameScreen.SpellButton)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class SpellButton extends MovieClip {
public var CAframe:int;// = 1
public var rC:int;// = 0
public var pC:int;// = 0
public var bC:int;// = 0
public var Func:Function;
public var isPlayer:Boolean;// = false
public var sC:int;// = 0
public var sI:int;// = 0
public var sJ:int;// = 0
public var Functions:Array;
public var gC:int;// = 0
public function SpellButton(){
Func = emptyFunction;
Functions = new Array(new Array(tradeCallOfTheSea, tradeFastRepair, tradeCommerce), new Array(guardSharpSalvo, guardBindTheFire, guardBlindness), new Array(corsairRage, corsairPlunder, corsairBoarding));
super();
buttonMode = true;
useHandCursor = true;
mouseChildren = false;
this.gotoAndStop(CAframe);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
public function tradeCommerce():Boolean{
decPrice();
GameScreen.Obj.getAllElementsById(7);
return (skipMove());
}
public function emptyFunction():void{
}
public function guardBlindness():Boolean{
var _local1:Blindnes;
var _local2:int;
decPrice();
if (isPlayer == true){
GameScreen.Obj.cpu_blinded = (GameScreen.Obj.cpu_blinded + 2);
GameScreen.Obj.cpu_spells_counter = (GameScreen.Obj.cpu_spells_counter + 2);
_local2 = (GameScreen.Obj.cpu_spells_counter - 2);
while (_local2 < GameScreen.Obj.cpu_spells_counter) {
_local1 = new Blindnes();
GameScreen.Obj.addChild(_local1);
_local1.x = (335 - (18 * _local2));
_local1.y = 125;
GameScreen.Obj.cpu_spells_icons.push(_local1);
_local2++;
};
} else {
GameScreen.Obj.player_blinded = (GameScreen.Obj.player_blinded + 2);
GameScreen.Obj.player_spells_counter = (GameScreen.Obj.player_spells_counter + 2);
_local2 = (GameScreen.Obj.player_spells_counter - 2);
while (_local2 < GameScreen.Obj.player_spells_counter) {
_local1 = new Blindnes();
GameScreen.Obj.addChild(_local1);
_local1.x = (180 + (18 * _local2));
_local1.y = 125;
GameScreen.Obj.player_spells_icons.push(_local1);
_local2++;
};
};
return (skipMove(true));
}
public function tradeFastRepair():Boolean{
decPrice();
if (isPlayer == false){
GameScreen.Obj.CPUShip.setVals(true);
} else {
GameScreen.Obj.playerShip.setVals(true);
};
return (skipMove(true));
}
public function guardSharpSalvo():Boolean{
decPrice();
var _local1:int;
while (_local1 < 3) {
GameScreen.Obj.fField.makeBomb(true);
_local1++;
};
return (skipMove(true));
}
public function tradeCallOfTheSea():Boolean{
decPrice();
GameScreen.Obj.getAllElementsById(3);
return (skipMove());
}
function SPenterFrameHandler(_arg1:Event):void{
_arg1.target.rotation = (_arg1.target.rotation + 0.5);
if (_arg1.target.parent.parent.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, SPenterFrameHandler);
};
}
public function corsairBoarding():Boolean{
var _local1:Boarding;
var _local2:int;
decPrice();
if (isPlayer == true){
GameScreen.Obj.CPUManeure = 0;
GameScreen.Obj.cpu_boarded = (GameScreen.Obj.cpu_boarded + 2);
GameScreen.Obj.cpu_spells_counter = (GameScreen.Obj.cpu_spells_counter + 2);
_local2 = (GameScreen.Obj.cpu_spells_counter - 2);
while (_local2 < GameScreen.Obj.cpu_spells_counter) {
_local1 = new Boarding();
GameScreen.Obj.addChild(_local1);
_local1.x = (335 - (18 * _local2));
_local1.y = 125;
GameScreen.Obj.cpu_spells_icons.push(_local1);
_local2++;
};
} else {
GameScreen.Obj.PLRManeure = 0;
GameScreen.Obj.player_boarded = (GameScreen.Obj.player_boarded + 2);
GameScreen.Obj.player_spells_counter = (GameScreen.Obj.player_spells_counter + 2);
_local2 = (GameScreen.Obj.player_spells_counter - 2);
while (_local2 < GameScreen.Obj.player_spells_counter) {
_local1 = new Boarding();
GameScreen.Obj.addChild(_local1);
_local1.x = (180 + (18 * _local2));
_local1.y = 125;
GameScreen.Obj.player_spells_icons.push(_local1);
_local2++;
};
};
return (skipMove(true));
}
public function setFunction(_arg1:Function):void{
Func = _arg1;
}
public function callFunction():Boolean{
return (Func.call());
}
public function corsairPlunder():Boolean{
decPrice();
GameScreen.Obj.getAllElementsById(1);
return (skipMove());
}
public function guardBindTheFire():Boolean{
decPrice();
GameScreen.Obj.closeAllBombs();
return (skipMove());
}
function decPrice():void{
if (isPlayer == true){
GameScreen.Obj.PLR_S.visible = true;
GameScreen.Obj.PLR_S.S.gotoAndStop(sC);
GameScreen.Obj.PLR_S.sph.sh.gotoAndStop(sI);
GameScreen.Obj.PLR_S.sph.sp.gotoAndStop(sI);
GameScreen.Obj.PLR_S.gotoAndPlay(1);
GameScreen.Obj.PLR_S.sph.sh.alpha = 1;
GameScreen.Obj.PLR_S.sph.sh.addEventListener(Event.ENTER_FRAME, SHenterFrameHandler);
GameScreen.Obj.PLR_S.sph.sp.addEventListener(Event.ENTER_FRAME, SPenterFrameHandler);
} else {
GameScreen.Obj.CPU_S.visible = true;
GameScreen.Obj.CPU_S.S.gotoAndStop(sC);
GameScreen.Obj.CPU_S.sph.sh.gotoAndStop(sI);
GameScreen.Obj.CPU_S.sph.sp.gotoAndStop(sI);
GameScreen.Obj.CPU_S.gotoAndPlay(1);
GameScreen.Obj.CPU_S.sph.sh.alpha = 1;
GameScreen.Obj.CPU_S.sph.sh.addEventListener(Event.ENTER_FRAME, SHenterFrameHandler);
GameScreen.Obj.CPU_S.sph.sp.addEventListener(Event.ENTER_FRAME, SPenterFrameHandler);
};
if (isPlayer == true){
Main.Application.game.player_r = (Main.Application.game.player_r - rC);
Main.Application.game.player_g = (Main.Application.game.player_g - gC);
Main.Application.game.player_b = (Main.Application.game.player_b - bC);
} else {
Main.Application.game.cpu_r = (Main.Application.game.cpu_r - rC);
Main.Application.game.cpu_g = (Main.Application.game.cpu_g - gC);
Main.Application.game.cpu_b = (Main.Application.game.cpu_b - bC);
};
GameScreen.Obj.checkCrystals();
setLock(true);
}
public function onMouseOut(_arg1:MouseEvent):void{
if ((((CAframe == 2)) && ((isPlayer == true)))){
this.gotoAndStop(CAframe);
};
}
public function onMouseClick(_arg1:MouseEvent):void{
if (Main.Application.game.playersMove == true){
Main.Application.soundControl.Play(10, 1, false);
Func.call();
};
}
public function corsairRage():Boolean{
decPrice();
var _local1 = 3;
if (isPlayer == true){
_local1 = (_local1 + Main.Application.game.player_level_attack);
} else {
_local1 = (_local1 + Main.Application.game.cpu_level_attack);
};
var _local2:int;
while (_local2 < _local1) {
GameScreen.Obj.fField.makeBomb();
_local2++;
};
return (skipMove(true));
}
public function setFunctionAt(_arg1:int, _arg2:int):void{
setFunction(Functions[(_arg1 - 1)][(_arg2 - 1)]);
sC = (((_arg1 - 1) * 3) + _arg2);
sI = _arg1;
sJ = _arg2;
}
function SHenterFrameHandler(_arg1:Event):void{
_arg1.target.alpha = (_arg1.target.alpha - 0.01);
if (_arg1.target.alpha <= 0){
_arg1.target.removeEventListener(Event.ENTER_FRAME, SHenterFrameHandler);
};
}
public function setLock(_arg1:Boolean):void{
CAframe = ((_arg1)==true) ? 1 : 2;
this.gotoAndStop(CAframe);
if (isPlayer == true){
if (_arg1 == false){
addEventListener(MouseEvent.CLICK, onMouseClick);
} else {
removeEventListener(MouseEvent.CLICK, onMouseClick);
};
};
}
function checkPrice():Boolean{
if (isPlayer == true){
if ((((((Main.Application.game.player_r >= rC)) && ((Main.Application.game.player_g >= gC)))) && ((Main.Application.game.player_b >= bC)))){
return (true);
};
} else {
if ((((((Main.Application.game.cpu_r >= rC)) && ((Main.Application.game.cpu_g >= gC)))) && ((Main.Application.game.cpu_b >= bC)))){
return (true);
};
};
return (false);
}
public function onMouseOver(_arg1:MouseEvent):void{
if ((((CAframe == 2)) && ((isPlayer == true)))){
this.gotoAndStop(3);
};
}
function skipMove(_arg1:Boolean=false):Boolean{
if (pC == 1){
GameScreen.Obj.skipMove(_arg1);
return (true);
};
return (false);
}
}
}//package Screens.GameScreen
Section 89
//Trail (Screens.GameScreen.Trail)
package Screens.GameScreen {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.geom.*;
public class Trail extends MovieClip {
private var colorG:Number;// = 0xFF
private var colorR:Number;// = 0xFF
private var objType:String;
private var distx:Number;
private var disty:Number;
private var particleCounter:int;// = 0
private var follower_x:Number;
public var target:TextField;
private var follower_y:Number;
private var momentumx:Number;// = 0
private var momentumy:Number;// = 0
private var goalX:Number;
var d:Number;// = 5
private var goalY:Number;
private var colorB:Number;// = 0xFF
public static var sh:Shine = new Shine(32, 32);
public function Trail(_arg1:TextField, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:Number=0xFF, _arg8:Number=0xFF, _arg9:Number=0xFF){
follower_x = mouseX;
follower_y = mouseY;
super();
Init(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9);
}
private function _particleUpdate(_arg1:Event):void{
var _local3:Matrix;
var _local4:Number;
var _local5:Number;
var _local6:ColorTransform;
GameScreen.Obj.particleBitmap.bitmapData.fillRect(new Rectangle(0, 0, 550, 400), 0);
var _local2:int;
while (_local2 < GameScreen.Obj.particles.length) {
if (((!((GameScreen.Obj.particles[_local2] == undefined))) || (!((GameScreen.Obj.particles[_local2] == null))))){
GameScreen.Obj.particles[_local2].scaleX = (GameScreen.Obj.particles[_local2].scaleX + (GameScreen.Obj.particles[_local2].speed / 400));
GameScreen.Obj.particles[_local2].scaleY = (GameScreen.Obj.particles[_local2].scaleY + (GameScreen.Obj.particles[_local2].speed / 400));
GameScreen.Obj.particles[_local2].alpha = (GameScreen.Obj.particles[_local2].alpha - (GameScreen.Obj.particles[_local2].speed / 400));
if (GameScreen.Obj.particles[_local2].alpha > 0){
_local3 = new Matrix();
_local4 = (GameScreen.Obj.particles[_local2].x - ((GameScreen.Obj.particles[_local2].width * (GameScreen.Obj.particles[_local2].scaleY - 1)) / 2));
_local5 = (GameScreen.Obj.particles[_local2].y - ((GameScreen.Obj.particles[_local2].height * (GameScreen.Obj.particles[_local2].scaleY - 1)) / 2));
_local3.createBox(GameScreen.Obj.particles[_local2].scaleX, GameScreen.Obj.particles[_local2].scaleY, GameScreen.Obj.particles[_local2].rotation, _local4, _local5);
_local6 = new ColorTransform(0.5, 0, 0, GameScreen.Obj.particles[_local2].alpha, 0xFF, 0, 0);
GameScreen.Obj.particleBitmap.bitmapData.draw(sh, _local3, _local6, null, null, true);
} else {
GameScreen.Obj.particles[_local2] = null;
};
};
_local2++;
};
}
public function Destroy(){
switch (objType){
case "red_cristal":
Main.Application.soundControl.Play(9, 1, false);
break;
case "green_cristal":
Main.Application.soundControl.Play(9, 1, false);
break;
case "blue_cristal":
Main.Application.soundControl.Play(9, 1, false);
break;
case "expirience":
Main.Application.soundControl.Play((6 + Math.round((Math.random() * 2))), 1, false);
break;
case "coin":
Main.Application.soundControl.Play((11 + Math.round(Math.random())), 1, false);
break;
};
objType = "";
var _local1:TextFormat = new TextFormat();
_local1.size = 8;
var _local2:TextFormat = target.getTextFormat();
if (_local2.size != 8){
target.setTextFormat(_local1);
};
target.y = (target.y + 0.5);
removeEventListener(Event.ENTER_FRAME, fly);
}
public function doTrails(_arg1:Number, _arg2:Number, _arg3:int=1){
doTrail(GameScreen.Obj, (_arg1 + 8), (_arg2 + 4), "sparcle");
}
public function Init(_arg1:TextField, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:Number=0xFF, _arg8:Number=0xFF, _arg9:Number=0xFF){
var _local11:TextFormat;
target = _arg1;
goalX = _arg2;
goalY = _arg3;
follower_x = _arg4;
follower_y = _arg5;
colorR = _arg7;
colorG = _arg8;
colorB = _arg9;
objType = _arg6;
if (objType != ""){
_local11 = new TextFormat();
};
_local11.size = 10;
var _local10:TextFormat = target.getTextFormat();
if (_local10.size != 10){
target.setTextFormat(_local11);
};
target.y = (target.y - 0.5);
addEventListener(Event.ENTER_FRAME, fly);
}
private function fly(_arg1:Event){
distx = (follower_x - goalX);
disty = (follower_y - goalY);
if ((((Math.abs(distx) <= 4)) && ((Math.abs(disty) <= 4)))){
Destroy();
return;
};
follower_x = (follower_x - (distx / d));
follower_y = (follower_y - (disty / d));
doTrails(follower_x, follower_y, 5);
}
function doTrail(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number=1, _arg6:Number=0):void{
var _local7:Number = GameScreen.Obj.particles.push(new Object());
GameScreen.Obj.particles[(_local7 - 1)].width = 32;
GameScreen.Obj.particles[(_local7 - 1)].height = 32;
var _local8:* = 0.5;
GameScreen.Obj.particles[(_local7 - 1)].scaleX = _local8;
GameScreen.Obj.particles[(_local7 - 1)].scaleY = _local8;
GameScreen.Obj.particles[(_local7 - 1)].colorR = this.colorR;
GameScreen.Obj.particles[(_local7 - 1)].colorG = this.colorG;
GameScreen.Obj.particles[(_local7 - 1)].colorB = this.colorB;
var _local9:Number = Math.abs(((GameScreen.Obj.particles[(_local7 - 1)].width * (GameScreen.Obj.particles[(_local7 - 1)].scaleY - 1)) / 2));
var _local10:Number = Math.abs(((GameScreen.Obj.particles[(_local7 - 1)].height * (GameScreen.Obj.particles[(_local7 - 1)].scaleY - 1)) / 2));
GameScreen.Obj.particles[(_local7 - 1)].x = (_arg2 - _local9);
GameScreen.Obj.particles[(_local7 - 1)].y = (_arg3 - _local10);
GameScreen.Obj.particles[(_local7 - 1)].rotation = (Math.random() * 360);
GameScreen.Obj.particles[(_local7 - 1)].alpha = 1;
GameScreen.Obj.particles[(_local7 - 1)].speed = ((Math.random() * 6) + 2);
if (++particleCounter > 15){
particleCounter = 0;
};
if (++GameScreen.Obj.particleCounter > 5000){
GameScreen.Obj.particleCounter = 0;
GameScreen.Obj.particles = new Array(5000);
};
}
}
}//package Screens.GameScreen
Section 90
//HowToPlayScreen (Screens.HowToPlayScreen.HowToPlayScreen)
package Screens.HowToPlayScreen {
import flash.display.*;
public dynamic class HowToPlayScreen extends MovieClip {
public var TipsPanel:TipsPanel;
public var Title:MovieClip;
}
}//package Screens.HowToPlayScreen
Section 91
//TipsPanel (Screens.HowToPlayScreen.TipsPanel)
package Screens.HowToPlayScreen {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class TipsPanel extends MovieClip {
public var tutorial_text1:TextField;
public var tutorial_text2:TextField;
public var tutorial_text3:TextField;
public var tutorial_text4:TextField;
public var tutorial_text5:TextField;
public var tutorial_text6:TextField;
public var tutorial_text7:TextField;
public var tutorial_text8:TextField;
public function TipsPanel(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
super();
gotoAndStop(1);
addEventListener(MouseEvent.CLICK, onClick);
}
function frame1(){
Main.Application.localization.TranslateChildren(this);
}
function frame3(){
Main.Application.localization.TranslateChildren(this);
}
function frame4(){
Main.Application.localization.TranslateChildren(this);
}
public function onClick(_arg1:MouseEvent):void{
if (currentFrame == totalFrames){
Main.Application.game.startNewGame();
if (Main.Application.levelsMapScreenEnable == false){
Main.Application.setCurrentEvent("showGameScreen");
} else {
Main.Application.setCurrentEvent("showLevelsMapScreen");
};
} else {
gotoAndStop((currentFrame + 1));
};
}
function frame2(){
Main.Application.localization.TranslateChildren(this);
}
}
}//package Screens.HowToPlayScreen
Section 92
//btnContinue (Screens.LevelResultsScreen.Buttons.btnContinue)
package Screens.LevelResultsScreen.Buttons {
import flash.events.*;
import System.*;
public class btnContinue extends AdvancedButton {
public function btnContinue(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local2:Number = Main.Application.game.checkGameStatus();
Main.Application.setCurrentEvent(((_local2)==0) ? "showLevelsMapScreen" : "showEndOfGameScreen");
}
}
}//package Screens.LevelResultsScreen.Buttons
Section 93
//LevelResultsScreen (Screens.LevelResultsScreen.LevelResultsScreen)
package Screens.LevelResultsScreen {
import flash.display.*;
import flash.text.*;
public class LevelResultsScreen extends MovieClip {
public var pointsCount:TextField;
}
}//package Screens.LevelResultsScreen
Section 94
//btnClassGuard (Screens.LevelsMapScreen.Buttons.btnClassGuard)
package Screens.LevelsMapScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnClassGuard extends AdvancedButton {
public function btnClassGuard(){
addEventListener(MouseEvent.CLICK, onClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = true;
(parent as MovieClip).hp.hint_text.text = Preloader.Obj.localization.GetTranslation("Screens/LevelsMapScreen/guardian_desc");
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.checkPlaying()){
Main.Application.game.finishPlaying();
};
Main.Application.game.player_level_role = "guard";
Main.Application.soundControl.Play(17, 1, false);
Main.Application.setCurrentEvent("showGameScreen");
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = false;
}
public function LockButton():void{
super.Lock();
removeEventListener(MouseEvent.CLICK, onClick);
}
}
}//package Screens.LevelsMapScreen.Buttons
Section 95
//btnClassTrad (Screens.LevelsMapScreen.Buttons.btnClassTrad)
package Screens.LevelsMapScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnClassTrad extends AdvancedButton {
public function btnClassTrad(){
addEventListener(MouseEvent.CLICK, onClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = true;
(parent as MovieClip).hp.hint_text.text = Preloader.Obj.localization.GetTranslation("Screens/LevelsMapScreen/trader_desc");
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.checkPlaying()){
Main.Application.game.finishPlaying();
};
Main.Application.game.player_level_role = "trade";
Main.Application.soundControl.Play(17, 1, false);
Main.Application.setCurrentEvent("showGameScreen");
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = false;
}
}
}//package Screens.LevelsMapScreen.Buttons
Section 96
//btnIsland (Screens.LevelsMapScreen.Buttons.btnIsland)
package Screens.LevelsMapScreen.Buttons {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import System.*;
public class btnIsland extends AdvancedButton {
public function btnIsland(){
addEventListener(MouseEvent.CLICK, onClick);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = true;
(parent as MovieClip).hp.hint_text.text = Preloader.Obj.localization.GetTranslation("Screens/LevelsMapScreen/island_desc");
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showPortScreen");
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
(parent as MovieClip).hp.visible = false;
}
}
}//package Screens.LevelsMapScreen.Buttons
Section 97
//btnPlayLevel (Screens.LevelsMapScreen.Buttons.btnPlayLevel)
package Screens.LevelsMapScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnPlayLevel extends AdvancedButton {
public var textClip:MovieClip;
public function btnPlayLevel(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.checkPlaying()){
Main.Application.game.finishPlaying();
};
Main.Application.setCurrentEvent("showGameScreen");
}
}
}//package Screens.LevelsMapScreen.Buttons
Section 98
//btnResumeGame (Screens.LevelsMapScreen.Buttons.btnResumeGame)
package Screens.LevelsMapScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnResumeGame extends AdvancedButton {
public var textClip:MovieClip;
public function btnResumeGame(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showGameScreen");
}
}
}//package Screens.LevelsMapScreen.Buttons
Section 99
//LevelsMapScreen (Screens.LevelsMapScreen.LevelsMapScreen)
package Screens.LevelsMapScreen {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import Screens.LevelsMapScreen.Buttons.*;
public class LevelsMapScreen extends MovieClip {
public var hp:hintPanel;
public var btnClassGuard:btnClassGuard;
public var panel:MovieClip;
public var btnIsland:btnIsland;
public var levelInfo:TextField;
public var dialog_text:TextField;
public var click_to_continue:TextField;
public var next_dialog:Number;// = 1
public var Map:MovieClip;
public var btnClassTrad:btnClassTrad;
public var dialog_count:Number;
public function LevelsMapScreen(){
var _local5:int;
super();
hp.visible = false;
btnIsland.visible = false;
btnClassTrad.visible = false;
btnClassGuard.visible = false;
Map.Ship.gotoAndStop(1);
var _local1 = 2;
while (_local1 <= 8) {
Map.getChildByName(("i" + _local1.toString())).visible = false;
_local1++;
};
var _local2:Array = new Array(new Array(2, 2), new Array(4, 3), new Array(6, 4), new Array(10, 5), new Array(11, 6), new Array(12, 7), new Array(14, 8));
var _local3:int;
while (_local3 < _local2.length) {
if (Main.Application.game.levels.getCurrentLevelIndex() >= _local2[_local3][0]){
_local5 = 2;
while (_local5 <= _local2[_local3][1]) {
Map.getChildByName(("i" + _local5.toString())).visible = true;
_local5++;
};
};
_local3++;
};
next_dialog = (((Main.Application.game.bookmark)>0) ? Main.Application.game.bookmark : 0 + 1);
dialog_count = Math.round(((Preloader.Obj.localization.GetChildCount(("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex())) - 2) / 2));
click_to_continue.text = Preloader.Obj.localization.GetTranslation("Screens/LevelsMapScreen/click_to_continue");
if (next_dialog < dialog_count){
dialog_text.text = Preloader.Obj.localization.GetTranslation(((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/dialog_text") + next_dialog));
panel.faces.gotoAndStop(Preloader.Obj.localization.GetTranslation(((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/dialog_face") + next_dialog)));
} else {
panel.faces.gotoAndStop(Preloader.Obj.localization.GetTranslation(((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/dialog_face") + (next_dialog - 1))));
nextDialog(null);
};
var _local4:Object = Main.Application.game.levels.getLevelInfoAt((Main.Application.game.levels.getLastOpenLevel() - 1));
if (Main.Application.game.bookmark > 0){
Map.Ship.gotoAndStop(Preloader.Obj.localization.GetTranslation((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/ship_srcoll_finish")));
} else {
Map.Ship.addEventListener(Event.ENTER_FRAME, shipEnterFrameHandler);
Map.Ship.gotoAndPlay(Preloader.Obj.localization.GetTranslation((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/ship_srcoll_start")));
};
addEventListener(MouseEvent.CLICK, nextDialog);
}
public function nextDialog(_arg1:MouseEvent):void{
if (next_dialog < dialog_count){
Main.Application.soundControl.Play(16, 1, false);
next_dialog++;
Main.Application.game.bookmark = next_dialog;
if ((((((((Main.Application.game.levels.getCurrentLevelIndex() == 2)) && (((next_dialog - 1) == 2)))) || ((((Main.Application.game.levels.getCurrentLevelIndex() == 4)) && (((next_dialog - 1) == 9)))))) || ((((Main.Application.game.levels.getCurrentLevelIndex() == 11)) && (((next_dialog - 1) == 2)))))){
Main.Application.setCurrentEvent("showPortScreen");
};
panel.faces.gotoAndStop(Preloader.Obj.localization.GetTranslation(((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/dialog_face") + next_dialog)));
dialog_text.text = Preloader.Obj.localization.GetTranslation(((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/dialog_text") + next_dialog));
} else {
dialog_text.visible = false;
click_to_continue.text = Preloader.Obj.localization.GetTranslation("Screens/LevelsMapScreen/player_role");
if (Main.Application.game.levels.getCurrentLevelIndex() > 1){
btnIsland.visible = true;
};
btnClassTrad.visible = true;
btnClassGuard.visible = true;
if (Main.Application.game.levels.getCurrentLevelIndex() == 1){
btnClassGuard.LockButton();
};
removeEventListener(MouseEvent.CLICK, nextDialog);
};
}
public function shipEnterFrameHandler(_arg1:Event):void{
if (_arg1.target.currentFrame >= Preloader.Obj.localization.GetTranslation((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/ship_srcoll_finish"))){
_arg1.target.gotoAndStop(Preloader.Obj.localization.GetTranslation((("Dialogs/Level" + Main.Application.game.levels.getCurrentLevelIndex()) + "/ship_srcoll_finish")));
_arg1.target.removeEventListener(Event.ENTER_FRAME, shipEnterFrameHandler);
};
}
}
}//package Screens.LevelsMapScreen
Section 100
//btnContinue (Screens.MainScreen.Buttons.btnContinue)
package Screens.MainScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnContinue extends AdvancedButton {
public var textClip:MovieClip;
public function btnContinue(){
Translate(Preloader.Obj.localization.GetTranslation("Screens/MainScreen/Buttons/btnContinue/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.game.startNewGame();
Main.Application.game.LoadGame();
if (Main.Application.levelsMapScreenEnable == false){
Main.Application.setCurrentEvent("showGameScreen");
} else {
Main.Application.setCurrentEvent("showLevelsMapScreen");
};
}
}
}//package Screens.MainScreen.Buttons
Section 101
//btnHowToPlay (Screens.MainScreen.Buttons.btnHowToPlay)
package Screens.MainScreen.Buttons {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnHowToPlay extends AdvancedButton {
public var textClip:MovieClip;
public function btnHowToPlay(){
Translate(Preloader.Obj.localization.GetTranslation("Screens/MainScreen/Buttons/btnHowToPlay/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
Main.Application.setCurrentEvent("showHowToPlayScreen");
}
}
}//package Screens.MainScreen.Buttons
Section 102
//btnAdvContinue (Screens.MainScreen.btnAdvContinue)
package Screens.MainScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnAdvContinue extends AdvancedButton {
public var textClip:MovieClip;
public function btnAdvContinue(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnContinue/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
parent.visible = false;
}
}
}//package Screens.MainScreen
Section 103
//MainScreen (Screens.MainScreen.MainScreen)
package Screens.MainScreen {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import mochi.as3.*;
import flash.text.*;
import Screens.CommonButtons.*;
import Screens.MainScreen.Buttons.*;
public class MainScreen extends MovieClip {
public var bottomCell2:MovieClip;
public var FreeDownloadButton:btnFreeDownload;
public var l:logos;
public var bottomCell:MovieClip;
public var MyPlayCityTxt:TextField;
public var ContinueButton:btnContinue;
public var MoreGamesButton:btnMoreGames;
static var Obj:MainScreen;
public function MainScreen(){
Obj = this;
if (Preloader.Obj.portal_game == true){
bottomCell.visible = false;
if (Preloader.Obj.logoID == 3){
MoreGamesButton.visible = true;
FreeDownloadButton.visible = false;
} else {
MoreGamesButton.visible = false;
FreeDownloadButton.visible = true;
};
if (Preloader.Obj.logoID != 4){
MyPlayCityTxt.visible = false;
};
};
var _local1:SharedObject = SharedObject.getLocal("myData", "/");
if (_local1.data.isSaved != true){
bottomCell.visible = false;
bottomCell2.visible = true;
ContinueButton.visible = false;
if ((((Preloader.Obj.portal_game == true)) && ((Preloader.Obj.logoID == 3)))){
bottomCell2.visible = false;
MoreGamesButton.y = 185.6;
} else {
FreeDownloadButton.y = 185.6;
MoreGamesButton.y = 245.6;
};
} else {
if ((((Preloader.Obj.portal_game == true)) && ((Preloader.Obj.logoID == 3)))){
MoreGamesButton.y = FreeDownloadButton.y;
};
};
if (Preloader.Obj.portal_game == false){
l.gotoAndStop(1);
} else {
l.gotoAndStop(Preloader.Obj.logoID);
};
}
public function showAd(_arg1:Event){
removeEventListener(Event.ADDED_TO_STAGE, showAd);
if (Preloader.Obj.advShowed == true){
return;
};
Preloader.Obj.advShowed = true;
var _local2:adv = new adv();
addChild(_local2);
_local2.x = 85;
_local2.y = 10;
MochiAd.showClickAwayAd({clip:_local2.ad, id:"fed147c8fec12b97"});
}
}
}//package Screens.MainScreen
Section 104
//NugScreen (Screens.NugScreen.NugScreen)
package Screens.NugScreen {
import flash.display.*;
import flash.text.*;
import Screens.CommonButtons.*;
public class NugScreen extends MovieClip {
public var description:TextField;
public var bullet1:TextField;
public var bullet2:TextField;
public var bullet3:TextField;
public var bullet4:TextField;
public var bullet5:TextField;
public var bullet6:TextField;
public var fd:btnFreeDownload;
public function NugScreen(){
description.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/description");
bullet1.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet1");
bullet2.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet2");
bullet3.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet3");
bullet4.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet4");
bullet5.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet5");
bullet6.text = Preloader.Obj.localization.GetTranslation("Screens/NugScreen/bullet6");
}
}
}//package Screens.NugScreen
Section 105
//btnPlay (Screens.PortScreen.Buttons.btnPlay)
package Screens.PortScreen.Buttons {
import flash.events.*;
import System.*;
public class btnPlay extends AdvancedButton {
public function btnPlay(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.levelsMapScreenEnable == false){
Main.Application.game.SaveGame();
Main.Application.setCurrentEvent("showGameScreen");
} else {
Main.Application.game.bookmark--;
Main.Application.setCurrentEvent("showLevelsMapScreen");
};
}
}
}//package Screens.PortScreen.Buttons
Section 106
//btnTalisman (Screens.PortScreen.Buttons.btnTalisman)
package Screens.PortScreen.Buttons {
import System.*;
public dynamic class btnTalisman extends AdvancedButton {
}
}//package Screens.PortScreen.Buttons
Section 107
//btnBuyShip (Screens.PortScreen.btnBuyShip)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnBuyShip extends AdvancedButton {
public var textClip:MovieClip;
public function btnBuyShip(){
Translate(Preloader.Obj.localization.GetTranslation("CommonButtons/btnBuyShip/buttonText"));
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
if (Main.Application.game.player_rank == 3){
PortScreen.Obj.playerShips.visible = false;
removeEventListener(MouseEvent.CLICK, onClick);
return;
};
if (Main.Application.game.player_money >= (Main.Application.game.player_rank * 10000)){
Main.Application.soundControl.Play(18, 1, false);
Main.Application.game.player_money = (Main.Application.game.player_money - (Main.Application.game.player_rank * 10000));
PortScreen.Obj.moneyCaption.text = Main.Application.game.player_money.toString();
if (Main.Application.game.player_rank == 2){
PortScreen.Obj.playerShips.visible = false;
} else {
if (((!((Main.Application.game.levels.current_level == 3))) && (!((Main.Application.game.levels.current_level == 4))))){
PortScreen.Obj.playerShips.gotoAndStop((PortScreen.Obj.playerShips.currentFrame + 1));
} else {
PortScreen.Obj.playerShips.gotoAndStop((PortScreen.Obj.playerShips.currentFrame + 5));
};
};
Main.Application.game.player_rank++;
PortScreen.Obj.getChildByName(("tal" + Main.Application.game.player_rank.toString())).visible = true;
PortScreen.Obj.getChildByName(("level" + Main.Application.game.player_rank.toString())).visible = true;
if (((!((Main.Application.game.levels.current_level == 3))) && (!((Main.Application.game.levels.current_level == 4))))){
PortScreen.Obj.portShip.selectShipById(Main.Application.game.player_rank);
} else {
PortScreen.Obj.portShip.selectShipById((Main.Application.game.player_rank + 20));
};
PortScreen.Obj.TranslateButtons();
};
}
}
}//package Screens.PortScreen
Section 108
//btnMinus (Screens.PortScreen.btnMinus)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnMinus extends AdvancedButton {
public function btnMinus(){
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local6:Object;
var _local2:String = name;
var _local3:Array = _local2.split(/m*/);
var _local4 = -2;
var _local5:int = (_local3[1] - 1);
if ((((_local5 == 0)) && ((Main.Application.game.player_level_attack > 0)))){
_local4 = --Main.Application.game.player_level_attack;
} else {
if ((((_local5 == 1)) && ((Main.Application.game.player_level_def > 0)))){
_local4 = --Main.Application.game.player_level_def;
} else {
if ((((_local5 == 2)) && ((Main.Application.game.player_level_man > 0)))){
_local4 = --Main.Application.game.player_level_man;
} else {
if ((((_local5 == 3)) && ((Main.Application.game.player_level_trade > 0)))){
_local4 = --Main.Application.game.player_level_trade;
};
};
};
};
if (Main.Application.game.player_level_attack == 0){
PortScreen.Obj.m1.visible = false;
};
if (Main.Application.game.player_level_def == 0){
PortScreen.Obj.m2.visible = false;
};
if (Main.Application.game.player_level_man == 0){
PortScreen.Obj.m3.visible = false;
};
if (Main.Application.game.player_level_trade == 0){
PortScreen.Obj.m4.visible = false;
};
if (_local4 == -2){
return;
};
Main.Application.game.player_exp = (Main.Application.game.player_exp + Main.Application.game.level_ups_prices[_local5][_local4]);
PortScreen.Obj.expCaption.text = Main.Application.game.player_exp.toString();
if (_local4 == 0){
_local6 = PortScreen.Obj.level1;
} else {
if (_local4 == 1){
_local6 = PortScreen.Obj.level2;
} else {
if (_local4 == 2){
_local6 = PortScreen.Obj.level3;
};
};
};
if (_local5 == 0){
_local6 = _local6.b1;
} else {
if (_local5 == 1){
_local6 = _local6.b2;
} else {
if (_local5 == 2){
_local6 = _local6.b3;
} else {
if (_local5 == 3){
_local6 = _local6.b4;
};
};
};
};
_local6.UnLockButton();
}
}
}//package Screens.PortScreen
Section 109
//btnPlus (Screens.PortScreen.btnPlus)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
import System.*;
public class btnPlus extends AdvancedButton {
public var path:String;// = "trader_desc"
public var price:Array;
public function btnPlus(){
price = new Array();
super();
var _local1:String = name;
var _local2:Array = _local1.split(/b*/);
var _local3:int = (_local2[1] - 1);
_local1 = parent.name;
_local2 = _local1.split(/level*/);
var _local4:int = (_local2[1] - 1);
price.push(Main.Application.game.level_ups_prices[_local3][_local4]);
switch (_local3){
case 0:
path = "Experience/attack";
break;
case 1:
path = "Experience/durability";
break;
case 2:
path = "Experience/navigation";
break;
case 3:
path = "Experience/trade";
break;
};
enableHint();
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local6:Boolean;
var _local2:String = name;
var _local3:Array = _local2.split(/b*/);
var _local4:int = (_local3[1] - 1);
_local2 = parent.name;
_local3 = _local2.split(/level*/);
var _local5:int = (_local3[1] - 1);
if (Main.Application.game.player_exp > Main.Application.game.level_ups_prices[_local4][_local5]){
_local6 = false;
if ((((_local4 == 0)) && ((Main.Application.game.player_level_attack == _local5)))){
Main.Application.game.player_level_attack++;
_local6 = true;
} else {
if ((((_local4 == 1)) && ((Main.Application.game.player_level_def == _local5)))){
Main.Application.game.player_level_def++;
_local6 = true;
} else {
if ((((_local4 == 2)) && ((Main.Application.game.player_level_man == _local5)))){
Main.Application.game.player_level_man++;
_local6 = true;
} else {
if ((((_local4 == 3)) && ((Main.Application.game.player_level_trade == _local5)))){
Main.Application.game.player_level_trade++;
_local6 = true;
};
};
};
};
if (Main.Application.game.player_level_attack > 0){
PortScreen.Obj.m1.visible = true;
};
if (Main.Application.game.player_level_def > 0){
PortScreen.Obj.m2.visible = true;
};
if (Main.Application.game.player_level_man > 0){
PortScreen.Obj.m3.visible = true;
};
if (Main.Application.game.player_level_trade > 0){
PortScreen.Obj.m4.visible = true;
};
if (_local6 == true){
LockButton();
Main.Application.game.player_exp = (Main.Application.game.player_exp - Main.Application.game.level_ups_prices[_local4][_local5]);
PortScreen.Obj.expCaption.text = Main.Application.game.player_exp.toString();
};
if (Main.Application.game.tutorial_step == 12){
Main.Application.game.tutorial_last_step = 13;
PortScreen.Obj.tutorial.setupStep(13);
};
};
}
public function enableHint(){
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
PortScreen.Obj.hp.visible = false;
}
public function UnLockButton():void{
super.UnLock();
addEventListener(MouseEvent.CLICK, onClick);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
PortScreen.Obj.hp.visible = true;
PortScreen.Obj.hp.hint_text.htmlText = Preloader.Obj.localization.GetTranslation(("Screens/GameScreen/" + path), price);
}
public function LockButton():void{
super.Lock();
removeEventListener(MouseEvent.CLICK, onClick);
}
public function disableHint(){
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
if ((parent as MovieClip).hp != null){
(parent as MovieClip).hp.visible = false;
};
}
}
}//package Screens.PortScreen
Section 110
//fnsHint (Screens.PortScreen.fnsHint)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
public class fnsHint extends MovieClip {
public var path:String;// = "trader_desc"
public function fnsHint(){
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function onMouseOverHandler(_arg1:MouseEvent):void{
PortScreen.Obj.hp.visible = true;
PortScreen.Obj.hp.hint_text.htmlText = Preloader.Obj.localization.GetTranslation(("Screens/GameScreen/" + path));
}
public function onMouseOutHandler(_arg1:MouseEvent):void{
PortScreen.Obj.hp.visible = false;
}
public function disableHint(){
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
if ((parent as MovieClip).hp != null){
(parent as MovieClip).hp.visible = false;
};
}
public function enableHint(){
addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
}
public function setText(_arg1:String){
path = _arg1;
}
}
}//package Screens.PortScreen
Section 111
//PortScreen (Screens.PortScreen.PortScreen)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
import Screens.GameScreen.*;
import flash.text.*;
import Screens.*;
import Screens.PortScreen.Buttons.*;
public class PortScreen extends MovieClip {
public var moneyCaption:TextField;
public var expCaption:TextField;
public var hp:hintPanel;
public var t10:talButton;
public var t11:talButton;
public var t12:talButton;
public var bBuyShip:btnBuyShip;
public var level1:level0;
public var level2:level;
public var level3:level;
public var pBG:PortBitmapBG;
public var Title:btnPlay;
public var rn:rankNums;
public var t1:talButton;
public var t2:talButton;
public var t3:talButton;
public var t4:talButton;
public var t5:talButton;
public var t6:talButton;
public var t7:talButton;
public var t8:talButton;
public var t9:talButton;
public var playerShips:MovieClip;
public var priceCaption:TextField;
public var m1:btnMinus;
public var m2:btnMinus;
public var m3:btnMinus;
public var m4:btnMinus;
var portShip:ship;
public var tal1:talButton;
public var tal2:talButton;
public var tal3:talButton;
var tutorial:Tutorials;
static var Obj:PortScreen;
public function PortScreen(){
var _local2:int;
super();
Obj = this;
Main.Application.game.port_visit++;
if (Main.Application.game.player_rank < 3){
if (((!((Main.Application.game.levels.current_level == 3))) && (!((Main.Application.game.levels.current_level == 4))))){
playerShips.gotoAndStop(Main.Application.game.player_rank);
} else {
playerShips.gotoAndStop((Main.Application.game.player_rank + 4));
};
} else {
playerShips.visible = false;
};
portShip = new ship();
pBG.addChild(portShip);
if (((!((Main.Application.game.levels.current_level == 3))) && (!((Main.Application.game.levels.current_level == 4))))){
portShip.selectShipById(Main.Application.game.player_rank);
} else {
portShip.selectShipById((Main.Application.game.player_rank + 20));
};
portShip.rootX = 30;
portShip.x = 30;
portShip.y = -30;
priceCaption.mouseEnabled = false;
rn.mouseEnabled = false;
var _local1 = 1;
while (_local1 <= 3) {
(getChildByName(("tal" + _local1.toString())) as talButton).isPlayer = true;
if (_local1 <= Main.Application.game.player_talismans.length){
_local2 = 0;
while (_local2 < Main.Application.game.talismans.length) {
if (Main.Application.game.player_talismans[(_local1 - 1)] == Main.Application.game.talismans[_local2]){
(getChildByName(("tal" + _local1.toString())) as talButton).showTalisman((_local2 + 1));
(getChildByName(("tal" + _local1.toString())) as talButton).UnLockIt();
break;
};
_local2++;
};
};
_local1++;
};
if (Main.Application.game.player_rank < 3){
_local1 = (Main.Application.game.player_rank + 1);
while (_local1 <= 3) {
getChildByName(("tal" + _local1.toString())).visible = false;
getChildByName(("level" + _local1.toString())).visible = false;
_local1++;
};
};
if (Main.Application.game.player_level_attack == 0){
m1.visible = false;
};
if (Main.Application.game.player_level_def == 0){
m2.visible = false;
};
if (Main.Application.game.player_level_man == 0){
m3.visible = false;
};
if (Main.Application.game.player_level_trade == 0){
m4.visible = false;
};
_local1 = 1;
while (_local1 < (Main.Application.game.player_rank + 1)) {
if (Main.Application.game.player_level_attack >= _local1){
if (_local1 == 1){
level1.b1.LockButton();
} else {
if (_local1 == 2){
level2.b1.LockButton();
} else {
if (_local1 == 3){
level3.b1.LockButton();
};
};
};
};
if (Main.Application.game.player_level_def >= _local1){
if (_local1 == 1){
level1.b2.LockButton();
} else {
if (_local1 == 2){
level2.b2.LockButton();
} else {
if (_local1 == 3){
level3.b2.LockButton();
};
};
};
};
if (Main.Application.game.player_level_man >= _local1){
if (_local1 == 1){
level1.b3.LockButton();
} else {
if (_local1 == 2){
level2.b3.LockButton();
} else {
if (_local1 == 3){
level3.b3.LockButton();
};
};
};
};
if (Main.Application.game.player_level_trade >= _local1){
if (_local1 == 1){
level1.b4.LockButton();
} else {
if (_local1 == 2){
level2.b4.LockButton();
} else {
if (_local1 == 3){
level3.b4.LockButton();
};
};
};
};
_local1++;
};
expCaption.text = Main.Application.game.player_exp.toString();
moneyCaption.text = Main.Application.game.player_money.toString();
hp = new hintPanel();
addChild(hp);
hp.visible = false;
hp.x = 90;
hp.y = 10;
tutorial = new Tutorials();
addChild(tutorial);
if (Main.Application.game.port_visit == 1){
if (Main.Application.game.player_exp < 80){
Main.Application.game.player_exp = 80;
PortScreen.Obj.expCaption.text = Main.Application.game.player_exp.toString();
};
Main.Application.game.tutorial_last_step = 12;
tutorial.setupStep(11);
} else {
if (Main.Application.game.port_visit == 2){
if (Main.Application.game.player_money < (Main.Application.game.player_rank * 10000)){
Main.Application.game.player_money = (Main.Application.game.player_rank * 10000);
PortScreen.Obj.moneyCaption.text = Main.Application.game.player_money.toString();
};
Main.Application.game.tutorial_last_step = 15;
tutorial.setupStep(15);
};
};
TranslateButtons();
}
public function TranslateButtons():void{
if (Main.Application.game.player_rank >= 3){
priceCaption.text = Preloader.Obj.localization.GetTranslation("Screens/PortScreen/no_vessels");
} else {
priceCaption.text = Preloader.Obj.localization.GetTranslation("Screens/PortScreen/price", new Array(((Main.Application.game.player_rank * 10000) + "")));
};
if (Main.Application.game.player_rank >= 3){
bBuyShip.Translate(Preloader.Obj.localization.GetTranslation("Screens/PortScreen/no_vessels"));
} else {
if (Main.Application.game.player_money >= (Main.Application.game.player_rank * 10000)){
bBuyShip.Translate(Preloader.Obj.localization.GetTranslation(("Screens/PortScreen/rank_" + (Main.Application.game.player_rank + 1))));
} else {
bBuyShip.Translate(Preloader.Obj.localization.GetTranslation("Screens/PortScreen/not_enough_gold"));
};
};
}
}
}//package Screens.PortScreen
Section 112
//talButton (Screens.PortScreen.talButton)
package Screens.PortScreen {
import flash.display.*;
import flash.events.*;
public class talButton extends fnsHint {
public var id:int;// = 0
public var isPlayer:Boolean;// = false
public var tal:talisman;
public function talButton(){
var _local2:Array;
var _local3:Boolean;
var _local4:int;
super();
addEventListener(MouseEvent.CLICK, onClick);
tal.mouseEnabled = false;
var _local1:String = name;
if ((((_local1.length < 4)) && ((_local1.substr(0, 1) == "t")))){
_local2 = _local1.split(/t*/);
id = (_local2[1] - 0);
if (id > 0){
tal.gotoAndStop(id);
setText(("Talismans/" + Main.Application.game.talismans[(id - 1)]));
_local3 = false;
_local4 = 0;
while (_local4 < Main.Application.game.player_talismans.length) {
if (Main.Application.game.player_talismans[_local4] == Main.Application.game.talismans[(id - 1)]){
_local3 = true;
break;
};
_local4++;
};
if ((((_local3 == true)) || ((Main.Application.game.talismans_open[(id - 1)] == 0)))){
LockIt();
};
};
} else {
LockIt();
};
}
public function showTalisman(_arg1:int=1):void{
tal.visible = true;
tal.gotoAndStop(_arg1);
id = _arg1;
setText(("Talismans/" + Main.Application.game.talismans[(id - 1)]));
}
public function LockIt():void{
tal.visible = false;
disableHint();
removeEventListener(MouseEvent.CLICK, onClick);
}
public function UnLockIt():void{
tal.visible = true;
enableHint();
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
var _local3:int;
var _local5:Boolean;
var _local6:int;
if ((((Main.Application.game.tutorial_step < 13)) && ((Main.Application.game.port_visit == 1)))){
return;
};
var _local2:String = name;
var _local4:Array = _local2.split(/tal*/);
if (isPlayer == false){
_local5 = false;
_local6 = 0;
while (_local6 < Main.Application.game.player_talismans.length) {
if (Main.Application.game.player_talismans[_local6] == ""){
_local3 = _local6;
_local5 = true;
break;
};
_local6++;
};
if (_local5 == false){
_local3 = Main.Application.game.player_talismans.length;
};
if ((((Main.Application.game.player_talismans.length < Main.Application.game.player_rank)) || ((_local5 == true)))){
Main.Application.game.player_talismans[_local3] = Main.Application.game.talismans[(id - 1)];
(PortScreen.Obj.getChildByName(("tal" + (_local3 + 1))) as talButton).showTalisman(id);
(PortScreen.Obj.getChildByName(("tal" + (_local3 + 1))) as talButton).UnLockIt();
LockIt();
};
} else {
if (tal.visible == true){
(PortScreen.Obj.getChildByName(("t" + id.toString())) as talButton).UnLockIt();
(PortScreen.Obj.getChildByName(("tal" + _local4[1])) as talButton).LockIt();
Main.Application.game.player_talismans[(_local4[1] - 1)] = "";
};
};
if (Main.Application.game.tutorial_step == 13){
Main.Application.game.tutorial_last_step = 14;
PortScreen.Obj.tutorial.setupStep(14);
};
}
}
}//package Screens.PortScreen
Section 113
//SplashScreen (Screens.SplashScreen.SplashScreen)
package Screens.SplashScreen {
import flash.display.*;
import flash.events.*;
public class SplashScreen extends MovieClip {
public var splash_screen:SplashMovie;
public function SplashScreen(){
splash_screen = new SplashMovie();
splash_screen.x = 0;
splash_screen.y = 0;
addChild(splash_screen);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
public function enterFrameHandler(_arg1:Event):void{
if (splash_screen.currentFrame == splash_screen.totalFrames){
Main.Application.setCurrentEvent("showMainScreen");
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
};
}
}
}//package Screens.SplashScreen
Section 114
//Tutorials (Screens.Tutorials)
package Screens {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class Tutorials extends MovieClip {
public var tutorial_text1:TextField;
public var tutorial_text2:TextField;
public var tutorial_text3:TextField;
public var tutorial_text4:TextField;
public var tutorial_text5:TextField;
public var tutorial_text6:TextField;
public var tutorial_text7:TextField;
public var tutorial_text8:TextField;
public var tutorial_text9:TextField;
public var tutorial_text10:TextField;
public var tutorial_text16:TextField;
public var tutorial_text19:TextField;
public var tutorial_text13:TextField;
public var tutorial_text14:TextField;
public var tutorial_text15:TextField;
public var tutorial_text17:TextField;
public var tutorial_text11:TextField;
public var tutorial_text12:TextField;
public var tutorial_text18:TextField;
public var e:empty;
public var s:Boolean;// = false
public function Tutorials(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 14, frame15);
super();
setupStep(0);
e = new empty();
addChild(e);
e.alpha = 0;
e.addEventListener(MouseEvent.CLICK, onClick);
}
public function Stop():void{
s = true;
}
public function Continue():void{
s = false;
}
function frame10(){
tutorial_text15.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text15");
}
function frame11(){
tutorial_text16.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text16");
}
function frame12(){
tutorial_text17.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text17");
}
function frame13(){
tutorial_text18.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text18");
}
function frame15(){
tutorial_text19.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text19");
}
function frame1(){
tutorial_text1.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text1");
}
function frame4(){
tutorial_text7.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text7");
tutorial_text8.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text8");
}
function frame5(){
tutorial_text9.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text9");
}
public function setupStep(_arg1:int):void{
if (_arg1 == 0){
gotoAndStop(1);
visible = false;
} else {
gotoAndStop(_arg1);
visible = true;
if (_arg1 == 14){
e.visible = false;
};
};
Main.Application.game.tutorial_step = _arg1;
}
function frame7(){
tutorial_text12.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text12");
}
function frame8(){
tutorial_text13.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text13");
}
function frame2(){
tutorial_text2.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text2");
tutorial_text3.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text3");
tutorial_text4.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text4");
}
function frame3(){
tutorial_text5.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text5");
tutorial_text6.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text6");
}
public function onClick(_arg1:MouseEvent):void{
setupNextStep();
}
function frame6(){
tutorial_text10.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text10");
tutorial_text11.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text11");
}
function frame9(){
tutorial_text14.text = Main.Application.localization.GetTranslation("Tutorials/tutorial_text14");
}
public function setupNextStep():void{
if ((((currentFrame == totalFrames)) || ((currentFrame == Main.Application.game.tutorial_last_step)))){
s = true;
visible = false;
} else {
s = false;
setupStep((Main.Application.game.tutorial_step + 1));
};
}
}
}//package Screens
Section 115
//AdvancedButton (System.AdvancedButton)
package System {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class AdvancedButton extends MovieClip {
public var buttonTranslation:String;// = "Button"
public function AdvancedButton(){
buttonMode = true;
useHandCursor = true;
mouseChildren = false;
this.gotoAndStop(1);
Translate();
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
if (this.hasOwnProperty("textClip") == true){
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_UP, this.onMouseUp);
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_OVER, this.onMouseOver);
};
}
public function onMouseUp(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
public function UnLock():void{
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
if (this.hasOwnProperty("textClip") == true){
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_UP, this.onMouseUp);
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
getChildByName("textClip").addEventListener(MouseEvent.MOUSE_OVER, this.onMouseOver);
};
this.gotoAndStop(1);
}
public function onMouseOut(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
public function onMouseDown(_arg1:MouseEvent):void{
this.gotoAndStop(3);
}
public function onMouseOver(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
public function Lock():void{
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
if (this.hasOwnProperty("textClip") == true){
getChildByName("textClip").removeEventListener(MouseEvent.MOUSE_UP, this.onMouseUp);
getChildByName("textClip").removeEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
getChildByName("textClip").removeEventListener(MouseEvent.MOUSE_OVER, this.onMouseOver);
};
this.gotoAndStop(4);
}
public function Translate(_arg1:String=""):void{
var _local2:Object;
if (_arg1 != ""){
buttonTranslation = _arg1;
};
if (this.hasOwnProperty("textClip")){
_local2 = this.getChildByName("textClip");
_local2.buttonText.text = buttonTranslation;
};
}
}
}//package System
Section 116
//AdvancedCursor (System.AdvancedCursor)
package System {
import flash.display.*;
import flash.events.*;
import flash.ui.*;
public class AdvancedCursor extends MovieClip {
public function AdvancedCursor(){
Mouse.hide();
super.addEventListener(Event.ADDED_TO_STAGE, this.handler_addedToStage);
this.setState(1);
}
private function handler_addedToStage(_arg1:Event):void{
addEventListener(Event.ENTER_FRAME, this.handler_mouseMove);
}
private function handler_mouseMove(_arg1:Event):void{
super.x = super.stage.mouseX;
super.y = super.stage.mouseY;
}
public function getState():uint{
return (currentFrame);
}
private function handler_removedToStage(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, this.handler_mouseMove);
}
public function setState(_arg1:uint):void{
gotoAndStop(_arg1);
}
}
}//package System
Section 117
//EmbedClip (System.EmbedClip)
package System {
import flash.display.*;
public class EmbedClip extends MovieClip {
public function EmbedClip(){
stop();
}
}
}//package System
Section 118
//Localization (System.Localization)
package System {
import flash.display.*;
import flash.text.*;
public class Localization extends MovieClip {
private var tXML:XML;
private var langXML:XMLList;
private var current_language:String;// = "en"
public function Localization(){
tXML = <Translations>
<en>
<Main>
<GameScreen>
<Panel>
<Victory>
<GoldCollectedCaption>Gold Collected:</GoldCollectedCaption>
<CrystalsLeftCaption>Crystals Left:</CrystalsLeftCaption>
<TrophyTalismansCaption>Trophy Talismans:</TrophyTalismansCaption>
<LevelTotalCaption>Level Total:</LevelTotalCaption>
</Victory>
</Panel>
</GameScreen>
</Main>
<Tutorials>
<tutorial_text1>Swap nearby tokens so they form a row of three items of the same type</tutorial_text1>
<tutorial_text2>The game goes in turns with the enemy; every new stage gives you three moves</tutorial_text2>
<tutorial_text3>You can see the number of moves left by looking at your pointer</tutorial_text3>
<tutorial_text4>If the pointer is crossed out, it's the enemy's turn</tutorial_text4>
<tutorial_text5>Your ship is to the left; its damage level is represented by the meter marked with the arrow</tutorial_text5>
<tutorial_text6>A wheel by the damage meter shows the turn is yours. When the wheel is to the right, it's the enemy's turn</tutorial_text6>
<tutorial_text7>To win the level, you must sink your enemy's ship by collecting the cannonballs</tutorial_text7>
<tutorial_text8>Also, collect coins and scrolls to improve the capabilities of your ship further</tutorial_text8>
<tutorial_text9>A row of four or more tokens gives you an extra move. Along with this, some tokens at the field can get a bonus value. They will have triple effect compared to a regular token</tutorial_text9>
<tutorial_text10>Collect wheels to maneuver against the enemy. The further you move, the lower is the possibility to hit you</tutorial_text10>
<tutorial_text11>The meter showing the collected maneuver is marked with the arrow</tutorial_text11>
<tutorial_text12>Collect crystals of various color to use your special abilities. The number of collected crystals is displayed at the meters marked by the arrow</tutorial_text12>
<tutorial_text13>We've added you some crystals, and now you can use one of your special abilities by clicking it (marked with the arrow)</tutorial_text13>
<tutorial_text14>Some tokens will have chains on. You won't be able to move them. Make such token a part of three-token combination to remove the chain</tutorial_text14>
<tutorial_text15>Some red crystals may be empowered with flame. Make such token a part of three-token combination to explode it</tutorial_text15>
<tutorial_text16>While you are on the island, you can improve your ship for the experience points you've earned (marked with the arrow)</tutorial_text16>
<tutorial_text17>Hold the pointer over the upgrade button (marked with the arrow) to learn more about the skill, then click the button to make an upgrade</tutorial_text17>
<tutorial_text18>All talismans retrieved in battle will appear here. Click the talisman marked with the arrow to take it to the battle. Currently you can carry only one talisman with you</tutorial_text18>
<tutorial_text19>You have enough gold to purchase a new ship! A new ship will give you possibility to make more upgrades, carry more talismans and use new special abilities in battle</tutorial_text19>
</Tutorials>
<CommonButtons>
<btnMoreGames>
<buttonText>More Free Games</buttonText>
</btnMoreGames>
<btnFreeDownload>
<buttonText>Download Full Version</buttonText>
</btnFreeDownload>
<btnMainMenu>
<buttonText>Main Menu</buttonText>
</btnMainMenu>
<btnSelectLevel>
<buttonText>Select Level</buttonText>
</btnSelectLevel>
<btnPlay>
<buttonText>New Game</buttonText>
</btnPlay>
<btnOnPanel>
<buttonText>Close</buttonText>
</btnOnPanel>
<btnOnPanelIsland>
<buttonText>Return to the Island</buttonText>
</btnOnPanelIsland>
<btnOnPanelMainMenu>
<buttonText>Exit to Menu</buttonText>
</btnOnPanelMainMenu>
<btnBuyShip>
<buttonText>Buy</buttonText>
</btnBuyShip>
<btnContinue>
<buttonText>Continue</buttonText>
</btnContinue>
</CommonButtons>
<Screens>
<GameScreen>
<Talismans>
<trader1><![CDATA[<b>Deception talisman</b><br>Brings gold from the coins picked by the enemy]]></trader1>
<trader2><![CDATA[<b>Wealth talisman</b><br>Adds extra gold for picked coins]]></trader2>
<trader3><![CDATA[<b>Nemesis talisman</b><br>Brings gold every time you are attacked]]></trader3>
<trader4><![CDATA[<b>Ocean talisman</b><br>Brings three extra blue crystals when blue crystals are picked]]></trader4>
<trader5><![CDATA[<b>Merchant talisman</b><br>If you have more than 20 blue crystals, the talisman will give you extra gold for any collected token]]></trader5>
<guardian1><![CDATA[<b>Earth talisman</b><br>Brings en extra green stone when they are picked, even by the enemy]]></guardian1>
<guardian2><![CDATA[<b>Scholarship talisman</b><br>Increases experience every time you hit the enemy]]></guardian2>
<guardian5><![CDATA[<b>Guardian talisman</b><br>If you have more than 20 green crystals, the talisman will perform maneuver of the ship on picking up any tokens]]></guardian5>
<korsair1><![CDATA[<b>Fire talisman</b><br>Brings an extra red stone on hitting the enemy]]></korsair1>
<korsair2><![CDATA[<b>Revenge talisman</b><br>Makes a retaliatory shot when you are attacked]]></korsair2>
<korsair4><![CDATA[<b>War talisman</b><br>Grants three extra shots when you are attacking]]></korsair4>
<korsair5><![CDATA[<b>Corsair talisman</b><br>If you have more than 20 red crystals, the talisman will fire a shot on picking up any token]]></korsair5>
</Talismans>
<Skills>
<trader1><![CDATA[<b>Call of the sea</b><br>Collects all blue crystals from the field]]></trader1>
<trader2><![CDATA[<b>Fast repair</b><br>Repairs your ship]]></trader2>
<trader3><![CDATA[<b>Commerce</b><br>Collects all coins from the field]]></trader3>
<guardian1><![CDATA[<b>Sharp salvo</b><br>Fires a salvo with all cannonballs hitting the enemy]]></guardian1>
<guardian2><![CDATA[<b>Bind the fire</b><br>Binds all cannonball tokens at the field]]></guardian2>
<guardian3><![CDATA[<b>Blindness</b><br>Dissolves enemy aim for one salvo. Can be used several times]]></guardian3>
<korsair1><![CDATA[<b>Rage</b><br>Fires a salvo]]></korsair1>
<korsair2><![CDATA[<b>Plunder</b><br>Collects all red crystals from the field]]></korsair2>
<korsair3><![CDATA[<b>Boarding</b><br>Dissolves an enemy maneuver and inflicts damage to the enemy for 2 turns. Can be used several times]]></korsair3>
</Skills>
<Experience>
<attack><![CDATA[<b>Attack</b><br>Increases the number of extra shots<br>Price: %1 exp points]]></attack>
<durability><![CDATA[<b>Durability</b><br>Decreases the damage you receive<br>Price: %1 exp points]]></durability>
<navigation><![CDATA[<b>Navigation</b><br>Makes your ship maneuver faster<br>Price: %1 exp points]]></navigation>
<trade><![CDATA[<b>Trade</b><br>Increases the amount of gold when coins are picked from the field<br>Price: %1 exp points]]></trade>
</Experience>
<maneuver>Maneuver meters - show how far you are from the enemy or the enemy is from you. The farther you are, the lower is the probability of hitting you</maneuver>
<health>Damage meters - show how much yours (to the left) and enemy's (to the right) ships are damaged</health>
<rule>If the wheel is at the left - it's your turn; if it's to the right - it's the enemy's turn</rule>
<experience>Displays the amount of experience points you earned in the game</experience>
<p_cbar>Shows the amount of gold you collected in this battle</p_cbar>
<c_cbar>Shows the amount of gold the enemy collected in this battle</c_cbar>
<p_money>Shows the amount of gold you collected in this battle</p_money>
<c_money>Shows the amount of gold the enemy collected in this battle</c_money>
<movesCount>Moves count:</movesCount>
<playersTurn>Your turn</playersTurn>
<computersTurn>Enemy's turn</computersTurn>
</GameScreen>
<PortScreen>
<price>Price: %1</price>
<no_vessels>No vessels</no_vessels>
<not_enough_gold>Not enough gold</not_enough_gold>
<rank_2>Purchase a ship II</rank_2>
<rank_3>Purchase a ship III</rank_3>
<rank_4>Purchase a ship IV</rank_4>
<rank_5>Purchase a ship V</rank_5>
</PortScreen>
<LevelsMapScreen>
<click_to_continue>Click to continue</click_to_continue>
<player_role>Who do you want to be in this battle?</player_role>
<island_desc>While in town, you can exchange talismans, make upgrades for experience points or buy a ship for gold coins.</island_desc>
<trader_desc>Merchant tends to earn more gold in combat, and uses blue crystals the most.</trader_desc>
<guardian_desc>Guardian has stronger defense and tactics. He uses green crystals the most.</guardian_desc>
</LevelsMapScreen>
<NugScreen>
<description>Sea Journey: a unique match3 game for you to range the seas and seek for adventures!
Besides matching items you participate in a thrilling sea battle! The items, which you manage to match, directly influence the course and the issue of the battles.</description>
<bullet1> • Thrilling journey</bullet1>
<bullet2> • Collect resources to upgrade your ship</bullet2>
<bullet3> • Spectacular sea battles</bullet3>
<bullet4> • Amazing power-ups</bullet4>
<bullet5> • Addictive Match 3 Gameplay</bullet5>
<bullet6> • 7 fabulous mini-games</bullet6>
</NugScreen>
<MainScreen>
<Buttons>
<btnHowToPlay>
<buttonText>How To Play</buttonText>
</btnHowToPlay>
<btnContinue>
<buttonText>Continue</buttonText>
</btnContinue>
</Buttons>
</MainScreen>
</Screens>
<Dialogs>
<Level1>
<ship_srcoll_start>1</ship_srcoll_start>
<ship_srcoll_finish>100</ship_srcoll_finish>
<dialog_text1>The sea was calm, and the ship of our hero set sail without trouble. By noon, a shape of a ship was spotted on horizon.</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>The captain took his spyglass, looked into the distance and exclaimed:</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Oh no! How could this happen? A pirate ship is coming our way! But… it doesn't look too big.”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“It's good that I managed to mount a few cannons from the latest income.”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“For the first time in my life I'm about to engage. PREPARE TO ATTACK!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
</Level1>
<Level2>
<ship_srcoll_start>100</ship_srcoll_start>
<ship_srcoll_finish>300</ship_srcoll_finish>
<dialog_text1>We've successfully reached the island, then we sold all the cargo, and after that, the captain decided to prepare for the oncoming adventures</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2> and try the talisman effects at the same time…</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Here is my plan: we'll leave the shore behind, then we'll change our sail and flag to black ones, ”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“and after that, as pirates, we'll travel to the island mentioned in the letter and get the important mission. Let's move out!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“I see two pirate ships on horizon… And they are turning on us already. We must win the battle!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>“If they will escape us, their peers will know someone is heading towards the fort. EVERYONE, PREPARE FOR BATTLE!”</dialog_text6>
<dialog_face6>hero</dialog_face6>
</Level2>
<Level3>
<ship_srcoll_start>300</ship_srcoll_start>
<ship_srcoll_finish>400</ship_srcoll_finish>
<dialog_text1>“Yet another victory! So far so good… This place is just what we need to change the color of the flag and sails.”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Well, now we're going to be pirates ourselves. Heh heh!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>“As I can see, the situation is about to be risky. The pirate ship is turning towards us, and if they will learn we're not going to attack the merchants, we and our friends will perish.”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“We must stick to our pirate look… and, after all, this vessel is foreign... Engage!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
</Level3>
<Level4>
<ship_srcoll_start>400</ship_srcoll_start>
<ship_srcoll_finish>600</ship_srcoll_finish>
<dialog_text1>“Hello! Here is the letter I got from you not long ago. I came here as soon as I could”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“I see, and you don't have to worry. I know you're not a pirate, you are my best friend's son.”</dialog_text2>
<dialog_face2>pirate</dialog_face2>
<dialog_text3>“And the ship you sank was my trick to pass you the letter in secret.”</dialog_text3>
<dialog_face3>pirate</dialog_face3>
<dialog_text4>“You need to hide under the pirate flag, and I advise you to change it after you leave our waterfront.”</dialog_text4>
<dialog_face4>pirate</dialog_face4>
<dialog_text5>“Once your father gave me a scroll that only you can understand.”</dialog_text5>
<dialog_face5>pirate</dialog_face5>
<dialog_text6>“He said it's a hind that will lead you to big trials and treasures... All I can do is wish you luck…”</dialog_text6>
<dialog_face6>pirate</dialog_face6>
<dialog_text7>“I left, but I felt the old pirate didn't say everything...”</dialog_text7>
<dialog_face7>hero</dialog_face7>
<dialog_text8>“The scroll said: "Here is my last present to you - break it apart and follow its truth…"”</dialog_text8>
<dialog_face8>hero</dialog_face8>
<dialog_text9>“It seems like I know what it's about, but I'd better trade here for a while before I leave”</dialog_text9>
<dialog_face9>hero</dialog_face9>
<dialog_text10>“There it is! Inside this medallion, there was a map!|It seems now we have to head for the island marked on it”</dialog_text10>
<dialog_face10>hero</dialog_face10>
<dialog_text11>We headed for a small island and were right about to get back under our flag, when suddenly a pirate ship approached us.</dialog_text11>
<dialog_face11>author</dialog_face11>
<dialog_text12>It was the old pirate himself…</dialog_text12>
<dialog_face12>author</dialog_face12>
<dialog_text13>“Ha ha ha! And you thought you can escape like that? I came for the medallion!”</dialog_text13>
<dialog_face13>pirate</dialog_face13>
<dialog_text14>“Your father was too trusting and I know you now have the map!”</dialog_text14>
<dialog_face14>pirate</dialog_face14>
</Level4>
<Level5>
<ship_srcoll_start>600</ship_srcoll_start>
<ship_srcoll_finish>700</ship_srcoll_finish>
<dialog_text1>“We've won! But anyway, it's strange, what these military ships were up to in here?”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“But we don't have time to think, because the island is near!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>On our way to the island we've met enemies, but they weren't pirates by then. It was foreign military ships.</dialog_text3>
<dialog_face3>author</dialog_face3>
</Level5>
<Level6>
<ship_srcoll_start>700</ship_srcoll_start>
<ship_srcoll_finish>900</ship_srcoll_finish>
<dialog_text1>After we've arrived, the captain and several men went to the place marked on the map, where they found a shrine…</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>It was pretty simple - a few columns with arches and some kind of mechanism in the middle…</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Wonderful! It's my first chest of treasures, and also this… shiny crystal… What these miracles are about?”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“The chest contained 5000 gold and another map, pointing out an island to the north…”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“Now we know where to sail next, but I have a feeling there's a lot of pirates in these waters…”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>The captain was right - soon after we set sail, we've met the pirates.</dialog_text6>
<dialog_face6>author</dialog_face6>
</Level6>
<Level7>
<ship_srcoll_start>900</ship_srcoll_start>
<ship_srcoll_finish>1000</ship_srcoll_finish>
<dialog_text1>Another victory! Fortune was on our side by now, but the way is not over yet…</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>It seems we ran across a pirate fleet once more…</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level7>
<Level8>
<ship_srcoll_start>1000</ship_srcoll_start>
<ship_srcoll_finish>1100</ship_srcoll_finish>
<dialog_text1>We left the waters of the pirate island and hoped the way will be safe from then, but we were wrong…</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>The captain spotted foreign ships. Oh, those corsairs!</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level8>
<Level9>
<ship_srcoll_start>1100</ship_srcoll_start>
<ship_srcoll_finish>1200</ship_srcoll_finish>
<dialog_text1>“Finally, we're near the island! Now let's start the hunt for treasure…”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“The map shows the… It's strange, there's an ancient shrine here, too!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>This shrine was just like the previous one.</dialog_text3>
<dialog_face3>author</dialog_face3>
<dialog_text4>“Now that's a catch! 5000 more gold and a magic crystal… Like I've expected, it's not over yet; there was a map in the chest”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“ amongst the gold, and it points to one more island to the west from here, but we have to visit our home port first…”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>After we left the shore, we met some pirates…</dialog_text6>
<dialog_face6>author</dialog_face6>
</Level9>
<Level10>
<ship_srcoll_start>1200</ship_srcoll_start>
<ship_srcoll_finish>1400</ship_srcoll_finish>
<dialog_text1>“We're almost home! The island is on horizon… Along with some pirate ships.”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“There's too much of them in these waters. It feels like we are hunted down.”</dialog_text2>
<dialog_face2>hero</dialog_face2>
</Level10>
<Level11>
<ship_srcoll_start>1400</ship_srcoll_start>
<ship_srcoll_finish>1600</ship_srcoll_finish>
<dialog_text1>At night we've reached the island, but the captain didn't want to stay for long,</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2> because the stash of gold aboard could attract too much attention.</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>Soon we left for the island marked on the map. Our path lay through the night…</dialog_text3>
<dialog_face3>author</dialog_face3>
<dialog_text4>“What was I thinking about? We'll remember this night forever, we got ourselves into a storm!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“And even more, there are pirates!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
</Level11>
<Level12>
<ship_srcoll_start>1600</ship_srcoll_start>
<ship_srcoll_finish>2000</ship_srcoll_finish>
<dialog_text1>In the morning we've reached the destination, and there was an altar with a puzzle…</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>“5000 more gold, a magic crystal and a strange letter:”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>"Go to the nearest island with an obelisk on it and find great secret there…"</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“What does it all mean after all? It seems we're about to meet something unusual…”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>We've found the obelisk… it stands on an altar similar to all the previous mysteries.</dialog_text5>
<dialog_face5>author</dialog_face5>
<dialog_text6>At the base of the obelisk we've found three hollows in shape of the emeralds we retrieved.</dialog_text6>
<dialog_face6>author</dialog_face6>
<dialog_text7>The captain inserted the crystals into hollows, and it looked like sides of the obelisk have brightened somehow...</dialog_text7>
<dialog_face7>author</dialog_face7>
<dialog_text8>“Well, now the obelisk glows, but I wonder what does it mean… And what is the purpose of this ray?”</dialog_text8>
<dialog_face8>hero</dialog_face8>
<dialog_text9>“Where does it point? The map we found here points in other direction…”</dialog_text9>
<dialog_face9>hero</dialog_face9>
<dialog_text10>“We've got to keep moving, the intuition tells me we've being watched.”</dialog_text10>
<dialog_face10>hero</dialog_face10>
<dialog_text11>“It seems I brought someone's attention on this port after all.”</dialog_text11>
<dialog_face11>hero</dialog_face11>
<dialog_text12>“And why does our way lay near a pirate island again? Alright, we'll have to vanquish another villain…”</dialog_text12>
<dialog_face12>hero</dialog_face12>
</Level12>
<Level13>
<ship_srcoll_start>2000</ship_srcoll_start>
<ship_srcoll_finish>2100</ship_srcoll_finish>
<dialog_text1>While we were busy fighting another enemy, the mysterious spying ship caught up with us…</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>It turned out to be a foreign merchant… No wonder he was interested in our gold!</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level13>
<Level14>
<ship_srcoll_start>2100</ship_srcoll_start>
<ship_srcoll_finish>2400</ship_srcoll_finish>
<dialog_text1>“Victory! Never envy the gold of others… I wonder what awaits us further, on the island…”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>As we stepped on the land, we all proceeded to the point marked on the map. Examining the area, we've found an altar with a mechanism in its center.</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Hovering emeralds! 5000 gold and a map pointing out another obelisk.”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“On our way we had to visit the port…”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>About that morning, a strong storm begun, and yet again we were unlucky to encounter an enemy. This time there were foreign military ships.</dialog_text5>
<dialog_face5>author</dialog_face5>
</Level14>
<Level15>
<ship_srcoll_start>2400</ship_srcoll_start>
<ship_srcoll_finish>2500</ship_srcoll_finish>
<dialog_text1>In the morning we've finally reached the island.</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>The night was terrible… the further our ship progressed, the harder it was…</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“If the map is correct, the island with the obelisk must be at the north from the nearby island…”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>We got moving without knowing what to expect ahead… In the port, the captain learned the further sea didn't belong to our country,</dialog_text4>
<dialog_face4>author</dialog_face4>
<dialog_text5>and some forts were captured by enemies. Then it was clear why we encountered enemy military ships so often.</dialog_text5>
<dialog_face5>author</dialog_face5>
</Level15>
</Dialogs>
</en>
<ru>
<Main>
<GameScreen>
<Panel>
<Victory>
<GoldCollectedCaption>Собрано золота:</GoldCollectedCaption>
<CrystalsLeftCaption>Остаток кристаллов:</CrystalsLeftCaption>
<TrophyTalismansCaption>Талисманы:</TrophyTalismansCaption>
<LevelTotalCaption>Вместе за уровень:</LevelTotalCaption>
</Victory>
</Panel>
</GameScreen>
</Main>
<Tutorials>
<tutorial_text1>Меняйте местами соседние фишки, чтоб получить ряд из трех элементов одного типа</tutorial_text1>
<tutorial_text2>Игра идет по очереди с противником, каждый новый этап дает вам три хода</tutorial_text2>
<tutorial_text3>Узнать, сколько ходов у вас осталось можно, посмотрев на курсор</tutorial_text3>
<tutorial_text4>Если курсор перечеркнут - значит ходит противник</tutorial_text4>
<tutorial_text5>Ваш корабль находится слева, уровень его повреждений отображает индикатор, на который указывает стрелка</tutorial_text5>
<tutorial_text6>Штурвал возле индикатора повреждения показывает, что ход ваш. Если штурвал справа - ходит враг</tutorial_text6>
<tutorial_text7>Чтоб выиграть уровень вы должны потопить врага, собирая ядра</tutorial_text7>
<tutorial_text8>Также, собирайте монеты и свитки для дальнейшего улучшения характеристик корабля</tutorial_text8>
<tutorial_text9>Ряд из четырёх и более фишек даст вам дополнительный ход. При этом некоторые фишки на поле могут стать бонусными. Эффект от них втрое больше обычной фишки</tutorial_text9>
<tutorial_text10>Собирайте штурвалы, чтоб маневрировать от врага. Чем дальше вы уплыли, тем меньшая вероятность попадания в вас</tutorial_text10>
<tutorial_text11>Индикатор, отображающий набранный маневр отмечен стрелкой</tutorial_text11>
<tutorial_text12>Собирайте разноцветные кристаллы, чтоб использовать специальные возможности. Количество набранных кристаллов отображается индикаторами, на которые указывает стрелка</tutorial_text12>
<tutorial_text13>Мы добавили вам несколько кристаллов, и теперь Вы можете попробовать использовать одну из специальных возможностей, щелкнув на нее (отмечено стрелкой)</tutorial_text13>
<tutorial_text14>Некоторые фишки могут быть в цепях. Вы не можете двигать их. Сделайте такую фишку частью ряда из 3 чтоб снять цепь</tutorial_text14>
<tutorial_text15>Некоторые красные кристаллы могут быть наделенными огненной силой. Сделайте такую фишку частью ряда из 3 чтоб взорвать ее</tutorial_text15>
<tutorial_text16>Пока вы на острове - вы можете улучшить свой корабль за счет набранных вами очков опыта (указано стрелкой)</tutorial_text16>
<tutorial_text17>Наведите курсор на кнопку улучшения (отмечено стрелкой) чтобы получить больше информации о навыке, затем щелкните кнопку, чтобы сделать улучшение</tutorial_text17>
<tutorial_text18>Все полученные в боях талисманы будут появляться здесь. Щелкните на талисмане, отмеченном стрелкой, чтобы взять его в бой. Пока что вы можете носить с собой только один талисман</tutorial_text18>
<tutorial_text19>У вас достаточно золота для покупки нового корабля! Новый корабль даст вам возможность сделать больше улучшений, носить больше талисманов, и использовать новые специальные возможности в бою</tutorial_text19>
</Tutorials>
<CommonButtons>
<btnMoreGames>
<buttonText>Еще Игры</buttonText>
</btnMoreGames>
<btnFreeDownload>
<buttonText>Скачать полную версию</buttonText>
</btnFreeDownload>
<btnMainMenu>
<buttonText>Меню</buttonText>
</btnMainMenu>
<btnSelectLevel>
<buttonText>Выбрать Уровень</buttonText>
</btnSelectLevel>
<btnPlay>
<buttonText>Новая Игра</buttonText>
</btnPlay>
<btnOnPanel>
<buttonText>Закрыть</buttonText>
</btnOnPanel>
<btnOnPanelIsland>
<buttonText>Вернутся на остров</buttonText>
</btnOnPanelIsland>
<btnOnPanelMainMenu>
<buttonText>Выйти в меню</buttonText>
</btnOnPanelMainMenu>
<btnBuyShip>
<buttonText>Купить</buttonText>
</btnBuyShip>
<btnContinue>
<buttonText>Продолжить</buttonText>
</btnContinue>
</CommonButtons>
<Screens>
<GameScreen>
<Talismans>
<trader1><![CDATA[<b>Талисман хитрости</b><br>Приносит золото из монет, взятых противником]]></trader1>
<trader2><![CDATA[<b>Талисман богатств</b><br>Добавляет больше золота за взятые монеты]]></trader2>
<trader3><![CDATA[<b>Талисман возмездия</b><br>Приносит золото каждый раз, когда вас атакуют]]></trader3>
<trader4><![CDATA[<b>Талисман океана</b><br>Приносит три дополнительных синих кристалла при взятии синих кристаллов]]></trader4>
<trader5><![CDATA[<b>Талисман Торговца</b><br>Если у вас есть больше 20 синих кристаллов, талисман будет давать вам дополнительное золото за любые взятые фишки]]></trader5>
<guardian1><![CDATA[<b>Талисман земли</b><br>Приносит дополнительный зеленый камень при их взятии, даже врагом]]></guardian1>
<guardian2><![CDATA[<b>Талисман учения</b><br>Добавляет опыт каждый раз, когда вы попадаете во врага]]></guardian2>
<guardian5><![CDATA[<b>Талисман Стража</b><br>Если у вас больше 20 зеленых кристаллов, талисман будет маневрировать кораблем при взятии любых фишек]]></guardian5>
<korsair1><![CDATA[<b>Талисман огня</b><br>Приносит дополнительный красный камень при попадании во врага]]></korsair1>
<korsair2><![CDATA[<b>Талисман мести</b><br>Совершает ответный выстрел, когда вас атакуют]]></korsair2>
<korsair4><![CDATA[<b>Талисман войны</b><br>Дает три дополнительных выстрела, когда вы атакуете]]></korsair4>
<korsair5><![CDATA[<b>Талисман Корсара</b><br>Если у вас есть больше 20 красных кристаллов, талисман будет производить выстрел при взятии любых фишек]]></korsair5>
</Talismans>
<Skills>
<trader1><![CDATA[<b>Зов моря</b><br>Собирает все синие кристаллы с поля]]></trader1>
<trader2><![CDATA[<b>Быстрый ремонт</b><br>ремонтирует ваш корабль]]></trader2>
<trader3><![CDATA[<b>Коммерция</b><br>Собирает все монеты с поля]]></trader3>
<guardian1><![CDATA[<b>Меткий залп</b><br>Делает залп выстрелов, и все ядра попадут во врага]]></guardian1>
<guardian2><![CDATA[<b>Оковать огонь</b><br>Ставит цепи на все фишки ядер на поле]]></guardian2>
<guardian3><![CDATA[<b>Слепота</b><br>Аннулирует меткость врага на один залп. Можно использовать многократно]]></guardian3>
<korsair1><![CDATA[<b>Ярость</b><br>Делает залп выстрелов]]></korsair1>
<korsair2><![CDATA[<b>Грабеж</b><br>Собирает все красные кристаллы с поля]]></korsair2>
<korsair3><![CDATA[<b>Абордаж</b><br>Аннулирует вражеский маневр и наносит урон врагу 2 хода подряд. Можно использовать многократно]]></korsair3>
</Skills>
<Experience>
<attack><![CDATA[<b>Атака</b><br>Увеличивает количество дополнительных выстрелов<br>Цена: %1 очков опыта]]></attack>
<durability><![CDATA[<b>Прочность</b><br>Снижает урон, который наносят вам<br>Цена: %1 очков опыта]]></durability>
<navigation><![CDATA[<b>Навигация</b><br>Убыстряет маневр вашего корабля<br>Цена: %1 очков опыта]]></navigation>
<trade><![CDATA[<b>Торговля</b><br>Увеличивает количество золота при взятии монет с поля<br>Цена: %1 очков опыта]]></trade>
</Experience>
<maneuver>Индикаторы маневра - отображают, насколько далеко вы уплыли от врага, или он от вас. Чем дальше вы уплыли, тем меньшая вероятность попадания по вам</maneuver>
<health>Индикаторы повреждений - отображают, насколько ваш (слева) и вражеский (справа) корабль повреждены</health>
<rule>Если штурвал слева - ходите вы, если справа - ходит враг</rule>
<experience>Отображает сколько очков опыта вы накопили за игру</experience>
<p_cbar>Показывает, сколько золота вы набрали в этом бою</p_cbar>
<c_cbar>Показывает, сколько золота враг набрал в этом бою</c_cbar>
<p_money>Показывает, сколько золота вы набрали в этом бою</p_money>
<c_money>Показывает, сколько золота враг набрал в этом бою</c_money>
<movesCount>Количество ходов:</movesCount>
<playersTurn>Ваш ход</playersTurn>
<computersTurn>Ход соперника</computersTurn>
</GameScreen>
<PortScreen>
<price>Цена: %1</price>
<no_vessels>Нет судов</no_vessels>
<not_enough_gold>Недостаточно золота</not_enough_gold>
<rank_2>Купить корабль II</rank_2>
<rank_3>Купить корабль III</rank_3>
<rank_4>Купить корабль IV</rank_4>
<rank_5>Купить корабль V</rank_5>
</PortScreen>
<LevelsMapScreen>
<click_to_continue>Щелкните чтоб продолжить</click_to_continue>
<player_role>Кем желаете играть в этом сражении?</player_role>
<island_desc>В городе вы можете поменять талисманы, сделать улучшение за очки опыта, купить корабль за золото.</island_desc>
<trader_desc>Торговец стремится заработать больше золота в бою. Больше всего использует синие кристаллы.</trader_desc>
<guardian_desc>Страж сильнее в защите и тактике. Больше всего использует зеленые кристаллы.</guardian_desc>
</LevelsMapScreen>
<NugScreen>
<description>Померяйся силами с коварными пиратами и военными флотами разных стран!
"Морское Путешествие" не оставит равнодушными даже самых взыскательных игроков. Вперед, на встречу приключениям. На абордаж!</description>
<bullet1> • Захватывающее путешествие</bullet1>
<bullet2> • Собирайте ресурсы и развивайте свой корабль</bullet2>
<bullet3> • Впечатляющие морские сражения</bullet3>
<bullet4> • Изумительные доп. возможности</bullet4>
<bullet5> • Привычная игровая механика Match 3</bullet5>
<bullet6> • 7 сказочных мини-игр</bullet6>
</NugScreen>
<MainScreen>
<Buttons>
<btnHowToPlay>
<buttonText>Правила</buttonText>
</btnHowToPlay>
<btnContinue>
<buttonText>Продолжить</buttonText>
</btnContinue>
</Buttons>
</MainScreen>
</Screens>
<Dialogs>
<Level1>
<ship_srcoll_start>1</ship_srcoll_start>
<ship_srcoll_finish>100</ship_srcoll_finish>
<dialog_text1>На море был штиль, и корабль нашего героя благополучно отчалил от берега.</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>К полудню, на горизонте появился силуэт корабля. Капитан вынул подзорную трубу, и, посмотрев вдаль, воскликнул:</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“О нет! Как же такое могло случиться? К нам движется пиратское судно! Однако, на вид оно не слишком велико.”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“Хорошо, что за деньги с последней выручки мне удалось установить на борт несколько пушек.”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“Впервые за всю свою жизнь я пожалуй решусь вступить в бой. ПРИГОТОВИТСЯ К АТАКЕ!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
</Level1>
<Level2>
<ship_srcoll_start>100</ship_srcoll_start>
<ship_srcoll_finish>300</ship_srcoll_finish>
<dialog_text1>До острова мы доплыли благополучно, затем продали весь груз, после чего, капитан решил хорошенько подготовиться к дальнейшим приключениям</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>и заодно - испробовать действие талисмана...</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Мой план таков: мы отойдем от берега и сменим цвет наших парусов и флага на черный,”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“а после этого, отправимся как пираты на указанный в письме остров, чтобы получить важное задание. В путь!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“Вижу на горизонте два пиратских судна... И они уже поворачивают к нам. Мы не должны проиграть!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>“Если же они ускользнут от нас, то их товарищам станет известно, что кто-то держит курс к форту. ВСЕ ПО МЕСТАМ!”</dialog_text6>
<dialog_face6>hero</dialog_face6>
</Level2>
<Level3>
<ship_srcoll_start>300</ship_srcoll_start>
<ship_srcoll_finish>400</ship_srcoll_finish>
<dialog_text1>“Еще одна победа! Пока что дела идут хорошо... Здесь как раз подходящее место чтобы сменить цвет флага и парусов.”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Что ж, теперь мы сами будем пиратами. Хе-хе!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>“Вижу, ситуация грозит стать опасной. Пиратское судно поворачивает к нам, и если они узнают, что мы не собираемся атаковать торговцев,”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“ то и мы и наши друзья погибнем. Мы должны сохранять облик пиратов... да и потом, это иноземное судно... В бой!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
</Level3>
<Level4>
<ship_srcoll_start>400</ship_srcoll_start>
<ship_srcoll_finish>600</ship_srcoll_finish>
<dialog_text1>“Здравствуй! Вот письмо, которое я недавно получил от тебя... Я приплыл, как только смог”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Вижу, но тебе не стоит беспокоиться. Я знаю, что ты не пират, ты - сын моего лучшего друга.”</dialog_text2>
<dialog_face2>pirate</dialog_face2>
<dialog_text3>“А корабль, потопленный тобой - это моя уловка, чтобы тайком передать тебе письмо.”</dialog_text3>
<dialog_face3>pirate</dialog_face3>
<dialog_text4>“Ты можешь больше не скрываться под пиратским флагом, но советую снять его за пределами наших вод.”</dialog_text4>
<dialog_face4>pirate</dialog_face4>
<dialog_text5>“Твой отец когда-то передал мне свиток, который никто кроме тебя понять не сможет.”</dialog_text5>
<dialog_face5>pirate</dialog_face5>
<dialog_text6>“Он говорил, что это подсказка, которая приведет к большим испытаниям и сокровищам... Я же могу пожелать тебе только удачи...”</dialog_text6>
<dialog_face6>pirate</dialog_face6>
<dialog_text7>“Я ушел, но чувствовал, что старый пират не сказал всего... ”</dialog_text7>
<dialog_face7>hero</dialog_face7>
<dialog_text8>“В свитке было написано: “Последний мой тебе подарок - разбей на части и следуй истине его...””</dialog_text8>
<dialog_face8>hero</dialog_face8>
<dialog_text9>“Кажется, я знаю, о чем он, но надо бы поторговать здесь перед отплытием”</dialog_text9>
<dialog_face9>hero</dialog_face9>
<dialog_text10>“Вот оно что! В этом медальоне была карта! Похоже, теперь наш путь лежит на остров, указанный на ней”</dialog_text10>
<dialog_face10>hero</dialog_face10>
<dialog_text11>Мы направились к маленькому островку, и как раз собирались снова вернуться под родной флаг,</dialog_text11>
<dialog_face11>author</dialog_face11>
<dialog_text12> как вдруг, к нам начал приближаться пиратский корабль. Это был тот самый старый пират...</dialog_text12>
<dialog_face12>author</dialog_face12>
<dialog_text13>“Ха-ха-ха! А ты думал просто так уйдешь? Я пришел за медальоном!”</dialog_text13>
<dialog_face13>pirate</dialog_face13>
<dialog_text14>“Твой отец был слишком доверчивым, и я знаю, что у тебя теперь есть карта!”</dialog_text14>
<dialog_face14>pirate</dialog_face14>
</Level4>
<Level5>
<ship_srcoll_start>600</ship_srcoll_start>
<ship_srcoll_finish>700</ship_srcoll_finish>
<dialog_text1>“Мы победили! Но все-таки странно, какими судьбами сюда занесло военные корабли?”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Но нет времени думать, ведь мы уже у острова!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>По пути к острову мы встретили врагов, но уже не пиратов. Это были иноземные военные корабли...</dialog_text3>
<dialog_face3>author</dialog_face3>
</Level5>
<Level6>
<ship_srcoll_start>700</ship_srcoll_start>
<ship_srcoll_finish>900</ship_srcoll_finish>
<dialog_text1>После прибытия капитан и несколько человек отправились к месту, указанному на карте, где обнаружили алтарь...</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>Он был довольно прост - несколько колонн с арками, а по центру - какой-то механизм...</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Чудесно! Мой первый сундук сокровищ, и ещё этот... сверкающий кристалл... Что значат все эти чудеса?”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“В сундуке оказалось 5000 золота и очередная карта, которая указывала на остров к северу отсюда...”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“Теперь мы знаем, куда плыть дальше, но чует мое сердце в этих водах полно пиратов...”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>Капитан не ошибся - вскоре после отплытия мы встретили пиратов.</dialog_text6>
<dialog_face6>author</dialog_face6>
</Level6>
<Level7>
<ship_srcoll_start>900</ship_srcoll_start>
<ship_srcoll_finish>1000</ship_srcoll_finish>
<dialog_text1>И снова победа! Удача пока что была на нашей стороне, но путь на этом не заканчивался...</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>Позже мы снова столкнулись с пиратской флотилией...</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level7>
<Level8>
<ship_srcoll_start>1000</ship_srcoll_start>
<ship_srcoll_finish>1100</ship_srcoll_finish>
<dialog_text1>Мы покинули воды пиратского острова и надеялись, что дальше путь будет безопасным, но мы ошиблись...</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>Капитан заметил иностранные судна. Ох уж эти корсары!</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level8>
<Level9>
<ship_srcoll_start>1100</ship_srcoll_start>
<ship_srcoll_finish>1200</ship_srcoll_finish>
<dialog_text1>“Наконец-то, мы у острова! Теперь займемся поиском сокровищ...”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Карта указывает на... Как странно, здесь тоже есть древний алтарь!”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>Этот алтарь был такой же, как и предыдущий.</dialog_text3>
<dialog_face3>author</dialog_face3>
<dialog_text4>“Вот это улов! Еще 5000 золота и магический кристалл... Как я и ожидал - это еще не конец, среди золота в сундуке”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“ нашлась карта, указывающая на еще один остров к западу отсюда, но сначала нам нужно заплыть в родной порт...”</dialog_text5>
<dialog_face5>hero</dialog_face5>
<dialog_text6>Отчалив от берега, мы наткнулись на пиратов...</dialog_text6>
<dialog_face6>author</dialog_face6>
</Level9>
<Level10>
<ship_srcoll_start>1200</ship_srcoll_start>
<ship_srcoll_finish>1400</ship_srcoll_finish>
<dialog_text1>“Мы уже почти дома! Остров появился на горизонте... А так же на горизонте появились пиратские судна.”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>“Слишком уж много их в этих водах. Такое впечатление, что на нас ведут охоту.”</dialog_text2>
<dialog_face2>hero</dialog_face2>
</Level10>
<Level11>
<ship_srcoll_start>1400</ship_srcoll_start>
<ship_srcoll_finish>1600</ship_srcoll_finish>
<dialog_text1>Ночью мы добрались до острова, но капитан не хотел задерживаться здесь,</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2> поскольку количество золота на борту корабля могло привлечь слишком много внимания.</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>Вскоре мы отправились к острову, обозначенному на карте. Путь пролегал сквозь ночь...</dialog_text3>
<dialog_face3>author</dialog_face3>
<dialog_text4>“И о чём я только думал! Эта ночь нам никогда не забудется, мы попали в шторм!”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>“И это еще ничего, если бы не пираты!”</dialog_text5>
<dialog_face5>hero</dialog_face5>
</Level11>
<Level12>
<ship_srcoll_start>1600</ship_srcoll_start>
<ship_srcoll_finish>2000</ship_srcoll_finish>
<dialog_text1>Утром мы достигли цели, ею оказался алтарь с загадкой...</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>“Еще 5000 золота, волшебный кристалл и странное письмо:”</dialog_text2>
<dialog_face2>hero</dialog_face2>
<dialog_text3>"На остров ближний с обелиском плывите вы сквозь призрачный туман, лишь одни загадки там..."</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“Что же это все значит? Кажется, нам предстоит встретить что-то необычное...”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>Мы нашли обелиск... он стоит на таком же алтаре, как и все предыдущие тайны.</dialog_text5>
<dialog_face5>author</dialog_face5>
<dialog_text6>У основания обелиска мы обнаружили три углубления в форме найденных изумрудов.</dialog_text6>
<dialog_face6>author</dialog_face6>
<dialog_text7>Капитан вставил кристаллы в углубления, после чего грани обелиска как будто очистились...</dialog_text7>
<dialog_face7>author</dialog_face7>
<dialog_text8>“Ну вот, теперь обелиск светится, но интересно, что это значит... И что означает этот луч?”</dialog_text8>
<dialog_face8>hero</dialog_face8>
<dialog_text9>“Куда он указывает? Ведь карта, найденная здесь, указывает не туда...”</dialog_text9>
<dialog_face9>hero</dialog_face9>
<dialog_text10>“Надо продолжать плыть, поскольку интуиция подсказывает мне, что за нами следят.”</dialog_text10>
<dialog_face10>hero</dialog_face10>
<dialog_text11>“Похоже, я все-таки привлек чье-то внимание в порту.”</dialog_text11>
<dialog_face11>hero</dialog_face11>
<dialog_text12>“И почему наш путь снова проходит мимо пиратского острова? Так и быть, придется победить очередного разбойника...”</dialog_text12>
<dialog_face12>hero</dialog_face12>
</Level12>
<Level13>
<ship_srcoll_start>2000</ship_srcoll_start>
<ship_srcoll_finish>2100</ship_srcoll_finish>
<dialog_text1>Пока мы возились с очередным врагом, нас настиг тот самый таинственный корабль-шпион.</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>Оказалось, что это иноземный коммерсант... Не удивительно, что его заинтересовало наше золото!</dialog_text2>
<dialog_face2>author</dialog_face2>
</Level13>
<Level14>
<ship_srcoll_start>2100</ship_srcoll_start>
<ship_srcoll_finish>2400</ship_srcoll_finish>
<dialog_text1>“Победа! Нечего покушаться на чужое золото... Интересно, что нас ждет дальше, на острове...”</dialog_text1>
<dialog_face1>hero</dialog_face1>
<dialog_text2>Ступив на сушу, мы все отправились к точке, обозначенной на карте. Исследовав ее, мы обнаружили алтарь с механизмом по центру.</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Летающие изумруды! 5000 золота и карта, которая указывала на очередной обелиск.”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>“По пути надо заплыть в порт...”</dialog_text4>
<dialog_face4>hero</dialog_face4>
<dialog_text5>Ближе к утру, начался сильный шторм, и нам снова не посчастливилось встретить врага. На этот раз - иноземные военные корабли.</dialog_text5>
<dialog_face5>author</dialog_face5>
</Level14>
<Level15>
<ship_srcoll_start>2400</ship_srcoll_start>
<ship_srcoll_finish>2500</ship_srcoll_finish>
<dialog_text1>Утром мы, наконец, добрались до острова.</dialog_text1>
<dialog_face1>author</dialog_face1>
<dialog_text2>Ночь выдалась ужасной... чем дальше продвигался наш корабль - тем становилось всё тяжелее...</dialog_text2>
<dialog_face2>author</dialog_face2>
<dialog_text3>“Если верить карте, то остров с обелиском должен был находиться на севере от соседнего острова...”</dialog_text3>
<dialog_face3>hero</dialog_face3>
<dialog_text4>Мы отправились в путь, и не ведали, что ждет нас впереди... В порту капитан узнал, что далее море уже не принадлежит нашей стране,</dialog_text4>
<dialog_face4>author</dialog_face4>
<dialog_text5> и несколько фортов захвачены врагами. Теперь ясно, почему мы так часто встречали вражеские военные корабли.</dialog_text5>
<dialog_face5>author</dialog_face5>
</Level15>
</Dialogs>
</ru>
</Translations>
;
SelectLanguageFromXML();
}
private function getParent(_arg1:Object):Object{
return ((_arg1.parent) ? _arg1.parent : null);
}
public function GetTranslation(_arg1:String, _arg2:Array=null):String{
var _local3:Array = _arg1.split("/");
var _local4:XMLList = langXML;
var _local5:Number = 0;
while (_local5 < _local3.length) {
if (_local3[_local5] != null){
_local4 = _local4.child(_local3[_local5]);
};
if (_local4.toString() == ""){
return (null);
};
_local5++;
};
var _local6:String = _local4.toString();
if (((!((_arg2 == null))) && ((_arg2.length > 0)))){
_local5 = 0;
while (_local5 < _arg2.length) {
_local6 = _local6.replace(new RegExp(("\\%" + (_local5 + 1)), "gi"), _arg2[_local5]);
_local5++;
};
};
return (_local6);
}
public function ChangeLanguage(_arg1:String){
current_language = _arg1;
SelectLanguageFromXML();
}
public function GetChildCount(_arg1:String):Number{
var _local2:Array = _arg1.split("/");
var _local3:XMLList = langXML;
var _local4:Number = 0;
while (_local4 < _local2.length) {
if (_local2[_local4] != null){
_local3 = _local3.child(_local2[_local4]);
};
if (_local3.toString() == ""){
return (_local3.*.length());
};
_local4++;
};
return (_local3.*.length());
}
private function SearchNode(_arg1:Object):XMLList{
var _local5:Number;
var _local2:Array = new Array();
var _local3:Object = _arg1;
var _local4:XMLList = langXML;
while (_local3 != null) {
if (_local3.name != null){
_local2.push(_local3.name);
};
_local3 = getParent(_local3);
};
if (_local2.length > 0){
_local2 = _local2.reverse();
_local5 = 0;
while (_local5 < _local2.length) {
if (_local5 == 1){
} else {
if (_local2[_local5] != null){
_local4 = _local4.child(_local2[_local5]);
};
if (_local4.toString() == ""){
return (null);
};
};
_local5++;
};
return (_local4);
//unresolved jump
};
return (null);
}
public function TranslateChildren(_arg1:Object):Boolean{
var _local2:XMLList = SearchNode(_arg1);
if (_local2 == null){
return (false);
};
checkXMLChild(_arg1, _local2);
return (true);
}
public function Translate(_arg1:Object, _arg2:Array=null):Boolean{
var _local5:Number;
var _local3:XMLList = SearchNode(_arg1);
if (_local3 == null){
return (false);
};
var _local4:String = _local3.toString();
if (_arg2.length > 0){
_local5 = 0;
while (_local5 < _arg2.length) {
_local4 = _local4.replace(new RegExp(("\\%" + (_local5 + 1)), "gi"), _arg2[_local5]);
_local5++;
};
};
_arg1.text = _local4;
return (true);
}
private function checkXMLChild(_arg1:Object, _arg2:XMLList):void{
var _local3:Object;
var _local4:Number = 0;
while (_arg2.*[_local4] != undefined) {
_local3 = getChild(_arg1, _arg2.*[_local4].localName());
if (_local3 != null){
if ((_local3 is TextField)){
_local3.text = _arg2.*[_local4].toString();
} else {
if (_arg2.*[_local4] != undefined){
checkXMLChild(_local3, XMLList(_arg2.*[_local4]));
};
};
};
_local4++;
};
}
private function getChild(_arg1:Object, _arg2:String):Object{
if (_arg1.hasOwnProperty(_arg2)){
return (_arg1[_arg2]);
};
return (null);
}
public function SelectLanguageFromXML():void{
langXML = tXML.child(current_language);
}
public function GetCurrentLanguage():String{
return (current_language);
}
}
}//package System
Section 119
//MochiAd (System.MochiAd)
package System {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.7");
}
public static function showClickAwayAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
var sendHostProgress:Boolean;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local3:Object = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local6:Array;
var _local3:Object = _arg2.getBounds(_arg2.root);
var _local4:Number = 0;
var _local5:Number = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array = _arg2.split(".");
var _local4:Number = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array = _arg2.split(".");
var _local5:Number = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var f:Function = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _local1:Object = this.parent.parent.root;
var _local2:Object = this.parent._mochiad_ctr;
var _local3:Number = (getTimer() - this.started);
var _local4:Boolean;
var _local5:Number = _local1.loaderInfo.bytesTotal;
var _local6:Number = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
var _local7:Number = ((100 * _local6) / _local5);
var _local8:Number = ((100 * _local3) / chk.ad_msec);
var _local9:Object = this._mochiad_bar._inside;
var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var mc = _arg1;
var f:Function = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package System
Section 120
//SoundControl (System.SoundControl)
package System {
import flash.display.*;
import flash.events.*;
import flash.media.*;
public class SoundControl extends Sprite {
private var sndTransform:Array;
private var sndNum:int;// = 0
private var channel:Array;
private var sound:Array;
public var globalSwitch:Boolean;// = true
private var loopPlay:Array;
private var sndSwitch:Array;
public function SoundControl(){
sound = new Array();
channel = new Array();
sndTransform = new Array();
sndSwitch = new Array();
loopPlay = new Array();
super();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function Stop(_arg1:int):void{
sndSwitch[_arg1] = false;
}
public function isPlaying(_arg1:int):Boolean{
return (sndSwitch[_arg1]);
}
public function Play(_arg1:int, _arg2:int, _arg3:Boolean=false):void{
sndSwitch[_arg1] = true;
if (!loopPlay[_arg1]){
if (_arg2 == 0){
loopPlay[_arg1] = true;
};
if (((!(globalSwitch)) || (_arg3))){
sndTransform[_arg1].volume = 0;
};
channel[_arg1] = sound[_arg1].play(0, ((_arg2)>0) ? _arg2 : 999999, sndTransform[_arg1]);
};
}
public function AddSound(_arg1:Object):void{
sound[sndNum] = _arg1;
channel[sndNum] = new SoundChannel();
sndTransform[sndNum] = new SoundTransform();
sndSwitch[sndNum] = true;
loopPlay[sndNum] = false;
sndNum++;
}
private function onEnterFrame(_arg1:Event):void{
var _local2:int;
while (_local2 < sndNum) {
if (((((!(globalSwitch)) || (!(sndSwitch[_local2])))) && ((sndTransform[_local2].volume > 0)))){
sndTransform[_local2].volume = (sndTransform[_local2].volume - 0.05);
channel[_local2].soundTransform = sndTransform[_local2];
if (sndTransform[_local2].volume <= 0.07){
sndTransform[_local2].volume = 0;
channel[_local2].soundTransform = sndTransform[_local2];
};
} else {
if (((((globalSwitch) && (sndSwitch[_local2]))) && ((sndTransform[_local2].volume < 1)))){
sndTransform[_local2].volume = (sndTransform[_local2].volume + 0.05);
channel[_local2].soundTransform = sndTransform[_local2];
if (sndTransform[_local2].volume >= 0.93){
sndTransform[_local2].volume = 1;
channel[_local2].soundTransform = sndTransform[_local2];
};
};
};
_local2++;
};
}
public function TouchSound():void{
if (sndNum == 0){
return;
};
globalSwitch = !(globalSwitch);
if (globalSwitch){
sndTransform[0].volume = 1;
channel[0].soundTransform = sndTransform[0];
};
}
}
}//package System
Section 121
//adClass (adClass)
package {
import flash.display.*;
public dynamic class adClass extends MovieClip {
}
}//package
Section 122
//adv (adv)
package {
import flash.display.*;
public dynamic class adv extends MovieClip {
public var ad:MovieClip;
}
}//package
Section 123
//B (B)
package {
import flash.display.*;
public dynamic class B extends MovieClip {
}
}//package
Section 124
//bar_mask (bar_mask)
package {
import flash.display.*;
public dynamic class bar_mask extends MovieClip {
}
}//package
Section 125
//bar_mask2 (bar_mask2)
package {
import flash.display.*;
public dynamic class bar_mask2 extends MovieClip {
}
}//package
Section 126
//bar_mask3 (bar_mask3)
package {
import flash.display.*;
public dynamic class bar_mask3 extends MovieClip {
}
}//package
Section 127
//battleTheme (battleTheme)
package {
import flash.media.*;
public dynamic class battleTheme extends Sound {
}
}//package
Section 128
//Blindnes (Blindnes)
package {
import flash.display.*;
public dynamic class Blindnes extends MovieClip {
}
}//package
Section 129
//blue_cristal (blue_cristal)
package {
import Screens.GameScreen.*;
public dynamic class blue_cristal extends fieldItem {
}
}//package
Section 130
//BlueSphere (BlueSphere)
package {
import flash.display.*;
public dynamic class BlueSphere extends MovieClip {
public var sh:MovieClip;
public var sp:MovieClip;
}
}//package
Section 131
//Boarding (Boarding)
package {
import flash.display.*;
public dynamic class Boarding extends MovieClip {
}
}//package
Section 132
//bomb (bomb)
package {
import Screens.GameScreen.*;
public dynamic class bomb extends fieldItem {
}
}//package
Section 133
//bonus_down (bonus_down)
package {
import flash.display.*;
public dynamic class bonus_down extends MovieClip {
}
}//package
Section 134
//bonusUP (bonusUP)
package {
import flash.display.*;
public dynamic class bonusUP extends MovieClip {
}
}//package
Section 135
//BrokeRow (BrokeRow)
package {
import flash.media.*;
public dynamic class BrokeRow extends Sound {
}
}//package
Section 136
//btnLogo (btnLogo)
package {
import flash.display.*;
public dynamic class btnLogo extends MovieClip {
}
}//package
Section 137
//btnLogo2 (btnLogo2)
package {
import flash.display.*;
public dynamic class btnLogo2 extends MovieClip {
}
}//package
Section 138
//btnMoreGames2 (btnMoreGames2)
package {
import Screens.CommonButtons.*;
public dynamic class btnMoreGames2 extends btnMoreGames {
}
}//package
Section 139
//BuySheep (BuySheep)
package {
import flash.media.*;
public dynamic class BuySheep extends Sound {
}
}//package
Section 140
//closed (closed)
package {
import flash.display.*;
public dynamic class closed extends MovieClip {
}
}//package
Section 141
//coin (coin)
package {
import Screens.GameScreen.*;
public dynamic class coin extends fieldItem {
}
}//package
Section 142
//configManager (configManager)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
public class configManager extends MovieClip {
var showonload:String;// = null
var popupurl:String;// = ""
var areas:Dictionary;
var areacontent:Dictionary;
var gid:String;
public var values:Array;
var ver:uint;
var configXML:XML;
public function configManager(_arg1:String, _arg2:uint, _arg3:Stage):void{
configXML = <config></config>
;
areas = new Dictionary(true);
areacontent = new Dictionary(true);
values = [];
super();
gid = _arg1;
ver = _arg2;
var _local4:URLLoader = new URLLoader();
configureListeners(_local4);
_local4.addEventListener(Event.COMPLETE, loadXML);
_local4.load(new URLRequest(((((((((tdsOptions.get_config_url + "?gameid=") + _arg1) + "&version=") + _arg2) + "&player=") + Capabilities.version) + "&referer=") + tdsOptions.referer)));
}
private function securityErrorHandler(_arg1:SecurityErrorEvent):void{
trace(("securityErrorHandler: " + _arg1));
dispatchEvent(new Event("CONFIGLOADED"));
if (Preloader.Obj.game_loaded == true){
Preloader.Obj.main();
};
tdsOptions.alive = false;
}
function getContent(_arg1:String, _arg2:uint, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String):void{
var loadcontent:Function;
var id = _arg1;
var arrid = _arg2;
var loc = _arg3;
var x = _arg4;
var y = _arg5;
var href = _arg6;
loadcontent = function (_arg1:Event):void{
var bannerid:uint;
var e = _arg1;
if (areacontent[id] == undefined){
areacontent[id] = [];
};
e.target.content.x = x;
e.target.content.y = y;
e.target.content.href = href;
e.target.content.gameid = gid;
e.target.content.version = ver;
areacontent[id][arrid] = e.target.content;
if (showonload == id){
bannerid = int((Math.random() * areacontent[id].length));
areas[id].addChild(areacontent[id][bannerid]);
if (areacontent[id][bannerid].href != ""){
areacontent[id][bannerid].addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
navigateToURL(new URLRequest(areacontent[id][bannerid].href), "_blank");
});
};
};
trace("content loaded");
trace(("LOADED_" + id));
dispatchEvent(new Event(("LOADED_" + id)));
};
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadcontent);
loader.load(new URLRequest(loc));
}
public function addArea(_arg1:String, _arg2:MovieClip):void{
var bannerid:uint;
var i:uint;
var k:uint;
var id = _arg1;
var area = _arg2;
if (areas[id] == undefined){
areas[id] = area;
if (areacontent[id] == undefined){
areacontent[id] = [];
i = 0;
while (i < configXML.stages.stage.length()) {
if (String(configXML.stages.stage[i].@name) == id){
k = 0;
while (k < configXML.stages.stage[i].banners.banner.length()) {
getContent(configXML.stages.stage[i].@name, k, configXML.stages.stage[i].banners.banner[k].@location, configXML.stages.stage[i].banners.banner[k].@x, configXML.stages.stage[i].banners.banner[k].@y, configXML.stages.stage[i].banners.banner[k].@href);
k = (k + 1);
};
};
i = (i + 1);
};
};
};
bannerid = int((Math.random() * areacontent[id].length));
if (((((!((areacontent[id][bannerid] == null))) && (!((areacontent[id][bannerid] == undefined))))) && (!(area.contains(areacontent[id][bannerid]))))){
area.addChild(areacontent[id][bannerid]);
dispatchEvent(new Event(("LOADED_" + id)));
if (areacontent[id][bannerid].href != ""){
areacontent[id][bannerid].addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
navigateToURL(new URLRequest(areacontent[id][bannerid].href), "_blank");
});
};
} else {
showonload = id;
};
trace((("start " + id) + " area"));
}
private function httpStatusHandler(_arg1:HTTPStatusEvent):void{
if ((((_arg1.status < 200)) || ((_arg1.status >= 300)))){
dispatchEvent(new Event("CONFIGLOADED"));
if (Preloader.Obj.game_loaded == true){
Preloader.Obj.main();
};
tdsOptions.alive = false;
};
}
function loadXML(_arg1:Event):void{
var _local3:uint;
configXML = new XML(_arg1.target.data);
if (configXML.settings.secured_redirect != ""){
tdsOptions.secured_redirect = ((configXML.settings.secured_redirect)=="true") ? true : false;
};
if (configXML.info.country != ""){
tdsOptions.country = configXML.info.country;
};
var _local2:uint;
while (_local2 < configXML.stages.stage.length()) {
_local3 = 0;
while (_local3 < configXML.stages.stage[_local2].banners.banner.length()) {
if (configXML.stages.stage[_local2].banners.banner[_local3].@autoload == "true"){
trace(((("get content " + configXML.stages.stage[_local2].@name) + " loc:") + configXML.stages.stage[_local2].banners.banner[_local3].@location));
getContent(configXML.stages.stage[_local2].@name, _local3, configXML.stages.stage[_local2].banners.banner[_local3].@location, configXML.stages.stage[_local2].banners.banner[_local3].@x, configXML.stages.stage[_local2].banners.banner[_local3].@y, configXML.stages.stage[_local2].banners.banner[_local3].@href);
};
_local3++;
};
_local2++;
};
_local2 = 0;
while (_local2 < configXML.values.value.length()) {
if (String(configXML.values.value[_local2].@stagename).length > 0){
values[configXML.values.value[_local2].@name] = [configXML.values.value[_local2].@stagename, configXML.values.value[_local2].@text];
} else {
values[String(configXML.values.value[_local2].@name)] = String(configXML.values.value[_local2].@value);
};
_local2++;
};
dispatchEvent(new Event("CONFIGLOADED"));
trace("config loaded\n\n");
}
private function completeHandler(_arg1:Event):void{
}
private function progressHandler(_arg1:ProgressEvent):void{
trace(((("progressHandler loaded:" + _arg1.bytesLoaded) + " total: ") + _arg1.bytesTotal));
}
private function openHandler(_arg1:Event):void{
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
trace(("ioErrorHandler: " + _arg1));
dispatchEvent(new Event("CONFIGLOADED"));
if (Preloader.Obj.game_loaded == true){
Preloader.Obj.main();
};
tdsOptions.alive = false;
}
private function configureListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, completeHandler);
_arg1.addEventListener(Event.OPEN, openHandler);
_arg1.addEventListener(ProgressEvent.PROGRESS, progressHandler);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
}
}//package
Section 143
//Destroy (Destroy)
package {
import flash.media.*;
public dynamic class Destroy extends Sound {
}
}//package
Section 144
//effectfire4 (effectfire4)
package {
import flash.display.*;
public dynamic class effectfire4 extends MovieClip {
}
}//package
Section 145
//effectfire5 (effectfire5)
package {
import flash.display.*;
public dynamic class effectfire5 extends MovieClip {
}
}//package
Section 146
//effectfire6 (effectfire6)
package {
import flash.display.*;
public dynamic class effectfire6 extends MovieClip {
}
}//package
Section 147
//effectfire7 (effectfire7)
package {
import flash.display.*;
public dynamic class effectfire7 extends MovieClip {
}
}//package
Section 148
//effectfire8 (effectfire8)
package {
import flash.display.*;
public dynamic class effectfire8 extends MovieClip {
}
}//package
Section 149
//effectfire9 (effectfire9)
package {
import flash.display.*;
public dynamic class effectfire9 extends MovieClip {
}
}//package
Section 150
//empty (empty)
package {
import flash.display.*;
public dynamic class empty extends MovieClip {
}
}//package
Section 151
//England_1 (England_1)
package {
import flash.display.*;
public dynamic class England_1 extends MovieClip {
public function England_1(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 152
//England_2 (England_2)
package {
import flash.display.*;
public dynamic class England_2 extends MovieClip {
public function England_2(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 153
//England_3 (England_3)
package {
import flash.display.*;
public dynamic class England_3 extends MovieClip {
public function England_3(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 154
//England_3_100 (England_3_100)
package {
import flash.display.*;
public dynamic class England_3_100 extends MovieClip {
public function England_3_100(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39, 39, frame40, 40, frame41, 41, frame42, 42, frame43, 43, frame44, 44, frame45, 45, frame46);
}
function frame41(){
stop();
}
function frame42(){
stop();
}
function frame30(){
stop();
}
function frame31(){
stop();
}
function frame10(){
stop();
}
function frame11(){
stop();
}
function frame12(){
stop();
}
function frame13(){
stop();
}
function frame14(){
stop();
}
function frame15(){
stop();
}
function frame16(){
stop();
}
function frame17(){
stop();
}
function frame18(){
stop();
}
function frame19(){
stop();
}
function frame35(){
stop();
}
function frame36(){
stop();
}
function frame37(){
stop();
}
function frame38(){
stop();
}
function frame39(){
stop();
}
function frame32(){
stop();
}
function frame33(){
stop();
}
function frame34(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame20(){
stop();
}
function frame9(){
stop();
}
function frame22(){
stop();
}
function frame23(){
stop();
}
function frame24(){
stop();
}
function frame25(){
stop();
}
function frame26(){
stop();
}
function frame8(){
stop();
}
function frame21(){
stop();
}
function frame29(){
stop();
}
function frame45(){
stop();
}
function frame46(){
stop();
}
function frame40(){
stop();
}
function frame27(){
stop();
}
function frame28(){
stop();
}
function frame43(){
stop();
}
function frame44(){
stop();
}
}
}//package
Section 155
//England_4 (England_4)
package {
import flash.display.*;
public dynamic class England_4 extends MovieClip {
public function England_4(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 156
//England_5 (England_5)
package {
import flash.display.*;
public dynamic class England_5 extends MovieClip {
public function England_5(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 157
//expirience (expirience)
package {
import Screens.GameScreen.*;
public dynamic class expirience extends fieldItem {
}
}//package
Section 158
//explo_down (explo_down)
package {
import flash.display.*;
public dynamic class explo_down extends MovieClip {
}
}//package
Section 159
//explo_up (explo_up)
package {
import flash.display.*;
public dynamic class explo_up extends MovieClip {
}
}//package
Section 160
//field (field)
package {
import flash.display.*;
public dynamic class field extends MovieClip {
}
}//package
Section 161
//fifth (fifth)
package {
import flash.display.*;
public dynamic class fifth extends MovieClip {
public function fifth(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package
Section 162
//fire (fire)
package {
import flash.display.*;
public dynamic class fire extends MovieClip {
}
}//package
Section 163
//fireBig (fireBig)
package {
import flash.display.*;
public dynamic class fireBig extends MovieClip {
}
}//package
Section 164
//FireStrike (FireStrike)
package {
import flash.media.*;
public dynamic class FireStrike extends Sound {
}
}//package
Section 165
//Fliping (Fliping)
package {
import flash.media.*;
public dynamic class Fliping extends Sound {
}
}//package
Section 166
//four (four)
package {
import flash.display.*;
public dynamic class four extends MovieClip {
public function four(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package
Section 167
//G (G)
package {
import flash.display.*;
public dynamic class G extends MovieClip {
}
}//package
Section 168
//green_cristal (green_cristal)
package {
import Screens.GameScreen.*;
public dynamic class green_cristal extends fieldItem {
}
}//package
Section 169
//Guard (Guard)
package {
import flash.media.*;
public dynamic class Guard extends Sound {
}
}//package
Section 170
//guardian1 (guardian1)
package {
import Screens.GameScreen.*;
public dynamic class guardian1 extends fnsHint {
}
}//package
Section 171
//guardian2 (guardian2)
package {
import Screens.GameScreen.*;
public dynamic class guardian2 extends fnsHint {
}
}//package
Section 172
//guardian5 (guardian5)
package {
import Screens.GameScreen.*;
public dynamic class guardian5 extends fnsHint {
}
}//package
Section 173
//Heart (Heart)
package {
import flash.media.*;
public dynamic class Heart extends Sound {
}
}//package
Section 174
//hintBG (hintBG)
package {
import Screens.GameScreen.*;
public dynamic class hintBG extends fnsHint {
public function hintBG(){
addFrameScript(0, frame1);
}
function frame1(){
alpha = 0;
}
}
}//package
Section 175
//hintHelper (hintHelper)
package {
import flash.display.*;
public dynamic class hintHelper extends MovieClip {
public var a:MovieClip;
public function hintHelper(){
addFrameScript(0, frame1);
}
function frame1(){
a.mouseEnabled = false;
}
}
}//package
Section 176
//hintPanel (hintPanel)
package {
import flash.display.*;
import flash.text.*;
public dynamic class hintPanel extends MovieClip {
public var hint_text:TextField;
}
}//package
Section 177
//hit1 (hit1)
package {
import flash.media.*;
public dynamic class hit1 extends Sound {
}
}//package
Section 178
//hit2 (hit2)
package {
import flash.media.*;
public dynamic class hit2 extends Sound {
}
}//package
Section 179
//hit3 (hit3)
package {
import flash.media.*;
public dynamic class hit3 extends Sound {
}
}//package
Section 180
//hit4 (hit4)
package {
import flash.media.*;
public dynamic class hit4 extends Sound {
}
}//package
Section 181
//hit5 (hit5)
package {
import flash.media.*;
public dynamic class hit5 extends Sound {
}
}//package
Section 182
//HPb_main (HPb_main)
package {
import flash.display.*;
public dynamic class HPb_main extends MovieClip {
}
}//package
Section 183
//island2 (island2)
package {
import flash.display.*;
public dynamic class island2 extends MovieClip {
}
}//package
Section 184
//island3 (island3)
package {
import flash.display.*;
public dynamic class island3 extends MovieClip {
}
}//package
Section 185
//island4 (island4)
package {
import flash.display.*;
public dynamic class island4 extends MovieClip {
}
}//package
Section 186
//island5 (island5)
package {
import flash.display.*;
public dynamic class island5 extends MovieClip {
}
}//package
Section 187
//island6 (island6)
package {
import flash.display.*;
public dynamic class island6 extends MovieClip {
}
}//package
Section 188
//island7 (island7)
package {
import flash.display.*;
public dynamic class island7 extends MovieClip {
}
}//package
Section 189
//island8 (island8)
package {
import flash.display.*;
public dynamic class island8 extends MovieClip {
}
}//package
Section 190
//jadro (jadro)
package {
import flash.display.*;
public dynamic class jadro extends MovieClip {
}
}//package
Section 191
//jadroFire (jadroFire)
package {
import flash.display.*;
public dynamic class jadroFire extends MovieClip {
public function jadroFire(){
addFrameScript(39, frame40);
}
function frame40(){
stop();
}
}
}//package
Section 192
//jFlight1 (jFlight1)
package {
import Screens.GameScreen.*;
public dynamic class jFlight1 extends jFlight {
}
}//package
Section 193
//jFlight2 (jFlight2)
package {
import Screens.GameScreen.*;
public dynamic class jFlight2 extends jFlight {
}
}//package
Section 194
//jFlight3 (jFlight3)
package {
import Screens.GameScreen.*;
public dynamic class jFlight3 extends jFlight {
}
}//package
Section 195
//jFlight4 (jFlight4)
package {
import Screens.GameScreen.*;
public dynamic class jFlight4 extends jFlight {
}
}//package
Section 196
//jFlight5 (jFlight5)
package {
import Screens.GameScreen.*;
public dynamic class jFlight5 extends jFlight {
}
}//package
Section 197
//Korsair (Korsair)
package {
import flash.media.*;
public dynamic class Korsair extends Sound {
}
}//package
Section 198
//korsair1 (korsair1)
package {
import Screens.GameScreen.*;
public dynamic class korsair1 extends fnsHint {
}
}//package
Section 199
//korsair2 (korsair2)
package {
import Screens.GameScreen.*;
public dynamic class korsair2 extends fnsHint {
}
}//package
Section 200
//korsair4 (korsair4)
package {
import Screens.GameScreen.*;
public dynamic class korsair4 extends fnsHint {
}
}//package
Section 201
//korsair5 (korsair5)
package {
import Screens.GameScreen.*;
public dynamic class korsair5 extends fnsHint {
}
}//package
Section 202
//Kristal (Kristal)
package {
import flash.media.*;
public dynamic class Kristal extends Sound {
}
}//package
Section 203
//level (level)
package {
import flash.display.*;
import Screens.PortScreen.*;
public dynamic class level extends MovieClip {
public var b2:btnPlus;
public var b3:btnPlus;
public var b4:btnPlus;
public var b1:btnPlus;
}
}//package
Section 204
//level_last (level_last)
package {
import flash.display.*;
import Screens.PortScreen.*;
public dynamic class level_last extends MovieClip {
public var b2:btnPlus;
public var b3:btnPlus;
public var b4:btnPlus;
public var b1:btnPlus;
}
}//package
Section 205
//level0 (level0)
package {
import flash.display.*;
import Screens.PortScreen.*;
public dynamic class level0 extends MovieClip {
public var b2:btnPlus;
public var b3:btnPlus;
public var b4:btnPlus;
public var b1:btnPlus;
}
}//package
Section 206
//levelBackground (levelBackground)
package {
import flash.display.*;
public dynamic class levelBackground extends MovieClip {
public function levelBackground(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
}
}//package
Section 207
//linksManager (linksManager)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class linksManager {
public static function getRequest(_arg1:String, _arg2:String=""):URLRequest{
var _local3:URLRequest = new URLRequest(_arg1);
_local3.method = URLRequestMethod.POST;
return (_local3);
}
private static function navigateToSpareURL(_arg1:int=-1):void{
if ((((((_arg1 == -1)) || ((_arg1 < 1)))) || ((_arg1 > tdsOptions.spare_links.length)))){
_arg1 = Math.ceil((Math.random() * (tdsOptions.spare_links.length - 1)));
} else {
_arg1--;
};
navigateToURL(new URLRequest(tdsOptions.spare_links[_arg1]), "_blank");
}
private static function openHandler(_arg1:Event):void{
}
private static function ioErrorHandler(_arg1:IOErrorEvent):void{
navigateToSpareURL();
tdsOptions.alive = false;
}
private static function securityErrorHandler(_arg1:SecurityErrorEvent):void{
}
private static function httpStatusHandler(_arg1:HTTPStatusEvent):void{
if ((((_arg1.status < 200)) || ((_arg1.status >= 300)))){
navigateToSpareURL();
tdsOptions.alive = false;
};
}
public static function navigateToTDSLink(_arg1:String, _arg2:int=-1):void{
if (tdsOptions.alive == true){
navigateToURL(getRequest(getLinkToTDS(_arg1)));
} else {
navigateToSpareURL(_arg2);
};
}
public static function navigateToTDS(_arg1:String, _arg2:int=-1):void{
if (tdsOptions.secured_redirect){
navigateToSecuredTDSLink(_arg1, _arg2);
} else {
navigateToTDSLink(_arg1, _arg2);
};
}
private static function completeHandler(_arg1:Event):void{
}
private static function configureListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, completeHandler);
_arg1.addEventListener(Event.OPEN, openHandler);
_arg1.addEventListener(ProgressEvent.PROGRESS, progressHandler);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
public static function navigateToSecuredTDSLink(_arg1:String, _arg2:int=-1):void{
var loader:URLLoader;
var action = _arg1;
var spare_url_id = _arg2;
if (tdsOptions.alive == true){
var navigateToLink:Function = function (_arg1:Event):void{
var _local2:XML = <config></config>
;
_local2 = new XML(_arg1.target.data);
navigateToURL(getRequest(_local2.redirect_url, _local2.referer), "_blank");
};
loader = new URLLoader();
configureListeners(loader);
loader.addEventListener(Event.COMPLETE, navigateToLink);
loader.load(getRequest(getLinkToTDS(action, true)));
} else {
navigateToSpareURL(spare_url_id);
};
}
private static function progressHandler(_arg1:ProgressEvent):void{
}
private static function getLinkToTDS(_arg1:String, _arg2:Boolean=false):String{
return (((((((((tdsOptions.redirect_url + "?gameid=") + tdsOptions.gameid) + "&version=") + tdsOptions.version) + "&action=") + _arg1) + ((tdsOptions.referer)!="") ? ("&referer=" + tdsOptions.referer) : "") + ((_arg2)==true) ? "&secured=true" : ""));
}
}
}//package
Section 208
//loading (loading)
package {
import flash.display.*;
public dynamic class loading extends MovieClip {
}
}//package
Section 209
//logos (logos)
package {
import flash.display.*;
public dynamic class logos extends MovieClip {
}
}//package
Section 210
//LoseScreen (LoseScreen)
package {
import flash.display.*;
public dynamic class LoseScreen extends MovieClip {
}
}//package
Section 211
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import Screens.GameScreen.*;
import Game.*;
import System.*;
import Screens.GameOverScreen.*;
import Screens.CommonButtons.*;
import Screens.SplashScreen.*;
import flash.system.*;
public dynamic class Main extends Sprite {
public var layers:Array;
public var moreGamesLink;// = "http://www.divogames.com/"
private var current_state:String;// = "none"
public var soundControl:SoundControl;
private var layers_count:Number;// = 3
private var current_event:String;// = "none"
public var localization:Localization;
public var levelsMapScreenEnable:Boolean;// = true
public var splashScreenEnable:Boolean;// = false
public var moreGamesButtonEnable:Boolean;// = true
public var freeDownloadLink;// = "http://www.divogames.com/en/games/puzzle/sea_journey/download/"
public var objectsGCa:Array;
public var game:Game;
public static var Application:Main;
public function Main(){
soundControl = new SoundControl();
layers = new Array(layers_count);
objectsGCa = new Array();
super();
Application = this;
localization = Preloader.Obj.localization;
Security.allowDomain("*");
var _local1:int;
while (_local1 < layers_count) {
layers[_local1] = new Sprite();
addChild(layers[_local1]);
_local1++;
};
game = new Game();
soundControl.AddSound(new sndTestSound());
soundControl.AddSound(new menuTheme());
soundControl.AddSound(new BrokeRow());
soundControl.AddSound(new Fliping());
soundControl.AddSound(new FireStrike());
soundControl.AddSound(new OpenClosed());
soundControl.AddSound(new Xp1());
soundControl.AddSound(new Xp2());
soundControl.AddSound(new Xp3());
soundControl.AddSound(new Kristal());
soundControl.AddSound(new UseTrick());
soundControl.AddSound(new Monets1());
soundControl.AddSound(new Monets2());
soundControl.AddSound(new Maneur1());
soundControl.AddSound(new Maneur1());
soundControl.AddSound(new miss());
soundControl.AddSound(new ScnNext());
soundControl.AddSound(new StartBattle());
soundControl.AddSound(new BuySheep());
soundControl.AddSound(new Shut1());
soundControl.AddSound(new Shut2());
soundControl.AddSound(new Shut3());
soundControl.AddSound(new Shut4());
soundControl.AddSound(new hit1());
soundControl.AddSound(new hit2());
soundControl.AddSound(new hit3());
soundControl.AddSound(new hit4());
soundControl.AddSound(new hit5());
soundControl.AddSound(new Destroy());
soundControl.AddSound(new OpenIsland());
soundControl.AddSound(new battleTheme());
soundControl.AddSound(new Trader());
soundControl.AddSound(new Guard());
soundControl.AddSound(new Korsair());
Main.Application.soundControl.Play(1, 0, false);
setCurrentEvent(((splashScreenEnable)==true) ? "showSplashScreen" : "showMainScreen");
addEventListener(Event.ENTER_FRAME, Update);
}
private function checkCurrentEvent():void{
if (current_event == "none"){
return;
};
hideCurrentState();
var _local1:String = current_event.substr(4);
var _local2:Class = Class(getDefinitionByName(((("Screens." + _local1) + ".") + _local1)));
var _local3:Sprite = new (_local2);
layers[0].addChild(_local3);
_local3.name = _local1;
Preloader.Obj.localization.TranslateChildren(_local3);
current_state = _local1;
if (current_event != "showGameScreen"){
if (Main.Application.soundControl.isPlaying(30) == true){
Main.Application.soundControl.Stop(30);
};
if (Main.Application.soundControl.isPlaying(1) == false){
Main.Application.soundControl.Play(1, 0, false);
};
} else {
if (Main.Application.soundControl.isPlaying(1) == true){
Main.Application.soundControl.Stop(1);
};
if (Main.Application.soundControl.isPlaying(30) == false){
Main.Application.soundControl.Play(30, 0, false);
};
};
setCurrentEvent("none");
}
public function getCurrentEvent():String{
return (current_event);
}
private function Update(_arg1:Event):void{
checkCurrentEvent();
}
public function setCurrentEvent(_arg1:String):void{
var _local2:btnCheckSound;
current_event = _arg1;
if (current_event == "showMainScreen"){
_local2 = new btnCheckSound();
layers[1].addChild(_local2);
_local2.x = 2;
_local2.y = 1;
};
}
private function hideCurrentState():void{
var _local2:DisplayObject;
if (current_state == "none"){
return;
};
var _local1:Class = Class(getDefinitionByName(((("Screens." + current_state) + ".") + current_state)));
var _local3:Number = 0;
while (_local3 < layers[0].numChildren) {
if ((layers[0].getChildAt(_local3) is _local1)){
var _temp1 = _local3;
_local3 = (_local3 - 1);
_local2 = layers[0].getChildAt(_temp1);
_local2.visible = false;
layers[0].removeChild(_local2);
_local2 = null;
};
_local3++;
};
}
}
}//package
Section 212
//MainScreenBG (MainScreenBG)
package {
import flash.display.*;
public dynamic class MainScreenBG extends MovieClip {
}
}//package
Section 213
//MANb_main (MANb_main)
package {
import flash.display.*;
public dynamic class MANb_main extends MovieClip {
}
}//package
Section 214
//Maneur1 (Maneur1)
package {
import flash.media.*;
public dynamic class Maneur1 extends Sound {
}
}//package
Section 215
//Maneur2 (Maneur2)
package {
import flash.media.*;
public dynamic class Maneur2 extends Sound {
}
}//package
Section 216
//menuTheme (menuTheme)
package {
import flash.media.*;
public dynamic class menuTheme extends Sound {
}
}//package
Section 217
//Message (Message)
package {
import flash.display.*;
public dynamic class Message extends MovieClip {
public function Message(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 218
//miss (miss)
package {
import flash.media.*;
public dynamic class miss extends Sound {
}
}//package
Section 219
//Monets1 (Monets1)
package {
import flash.media.*;
public dynamic class Monets1 extends Sound {
}
}//package
Section 220
//Monets2 (Monets2)
package {
import flash.media.*;
public dynamic class Monets2 extends Sound {
}
}//package
Section 221
//MyPlayCity_logo (MyPlayCity_logo)
package {
import flash.display.*;
public dynamic class MyPlayCity_logo extends MovieClip {
public function MyPlayCity_logo(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Preloader.Obj.localization.GetCurrentLanguage());
}
}
}//package
Section 222
//noMoves (noMoves)
package {
import flash.display.*;
public dynamic class noMoves extends MovieClip {
public function noMoves(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(Main.Application.localization.GetCurrentLanguage());
}
}
}//package
Section 223
//OpenClosed (OpenClosed)
package {
import flash.media.*;
public dynamic class OpenClosed extends Sound {
}
}//package
Section 224
//OpenIsland (OpenIsland)
package {
import flash.media.*;
public dynamic class OpenIsland extends Sound {
}
}//package
Section 225
//particle (particle)
package {
import flash.display.*;
public dynamic class particle extends MovieClip {
}
}//package
Section 226
//jpg (particle.jpg)
package particle {
import flash.display.*;
public dynamic class jpg extends BitmapData {
public function jpg(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle
Section 227
//particle_smoke_black (particle_smoke_black)
package {
import flash.display.*;
public dynamic class particle_smoke_black extends MovieClip {
}
}//package
Section 228
//particle_smoke_clear (particle_smoke_clear)
package {
import flash.display.*;
public dynamic class particle_smoke_clear extends MovieClip {
}
}//package
Section 229
//particle_smoke_red (particle_smoke_red)
package {
import flash.display.*;
public dynamic class particle_smoke_red extends MovieClip {
}
}//package
Section 230
//particle1 (particle1)
package {
import flash.display.*;
public dynamic class particle1 extends MovieClip {
}
}//package
Section 231
//png (particle1.png)
package particle1 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle1
Section 232
//particle2 (particle2)
package {
import flash.display.*;
public dynamic class particle2 extends MovieClip {
}
}//package
Section 233
//png (particle2.png)
package particle2 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle2
Section 234
//particle3 (particle3)
package {
import flash.display.*;
public dynamic class particle3 extends MovieClip {
}
}//package
Section 235
//png (particle3.png)
package particle3 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle3
Section 236
//particle4 (particle4)
package {
import flash.display.*;
public dynamic class particle4 extends MovieClip {
}
}//package
Section 237
//png (particle4.png)
package particle4 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle4
Section 238
//particle5 (particle5)
package {
import flash.display.*;
public dynamic class particle5 extends MovieClip {
}
}//package
Section 239
//png (particle5.png)
package particle5 {
import flash.display.*;
public dynamic class png extends BitmapData {
public function png(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package particle5
Section 240
//Pirates_4 (Pirates_4)
package {
import flash.display.*;
public dynamic class Pirates_4 extends MovieClip {
public function Pirates_4(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package
Section 241
//PortBitmapBG (PortBitmapBG)
package {
import flash.display.*;
public dynamic class PortBitmapBG extends MovieClip {
}
}//package
Section 242
//Preloader (Preloader)
package {
import flash.display.*;
import flash.events.*;
import System.*;
import flash.system.*;
import flash.net.*;
import flash.text.*;
public dynamic class Preloader extends MovieClip {
public var game:adClass;
public var config:configManager;
public var gameTop:btnLogo;
public var ProgressBar:MovieClip;
public var logoID:Number;// = 3
public var adv_loaded:Boolean;// = false
private var hosts:Array;
public var localization:Localization;
public var main_created:Boolean;// = false
public var portal_game:Boolean;// = true
private var progressBar:Sprite;
public var advShowed:Boolean;// = false
public var config_loaded:Boolean;// = false
public var game_loaded:Boolean;// = false
public var adv:adClass;
public var cheatsOn:Boolean;// = false
public static const ENTRY_FRAME:Number = 3;
public static const DOCUMENT_CLASS:String = "Main";
public static var Obj:Preloader;
public function Preloader(){
var myOptions:Object;
localization = new Localization();
hosts = new Array("games.bigfishgames.com", "bigfishgames.com", "bigfishgames.de", "bigfishgames.fr", "bigfishgames.es", "bigfishgames.mx", "bigfishgames.jp");
addFrameScript(0, frame1);
super();
stop();
Obj = this;
Security.allowDomain("*");
stage.showDefaultContextMenu = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
tdsOptions.setReferer(loaderInfo.url, loaderInfo.loaderURL);
if (portal_game == false){
config = new configManager(tdsOptions.gameid, tdsOptions.version, stage);
config.addEventListener("CONFIGLOADED", cfgLoaded);
} else {
config_loaded = true;
tdsOptions.alive = false;
};
if ((((((portal_game == true)) && ((((logoID == 2)) || ((logoID == 4)))))) && (!(isUrl(hosts))))){
return;
};
game = new adClass();
stage.addChild(game);
if (portal_game == false){
adv = new adClass();
addChild(adv);
myOptions = {id:"fed147c8fec12b97", clip:adv, res:"533x400", ad_failed:function ():void{
Preloader.Obj.adv_loaded = true;
}, ad_skipped:function ():void{
Preloader.Obj.adv_loaded = true;
}, ad_finished:function ():void{
Preloader.Obj.adv_loaded = true;
}};
MochiAd.showPreGameAd(myOptions);
} else {
Preloader.Obj.adv_loaded = true;
};
progressBar = (getChildByName("ProgressBar") as Sprite);
progressBar.scaleX = 0;
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
if (cheatsOn == true){
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
};
}
private function main():void{
if (main_created == true){
return;
};
main_created = true;
var _local1:Class = (loaderInfo.applicationDomain.getDefinition(Preloader.DOCUMENT_CLASS) as Class);
var _local2:Sprite = (new (_local1) as Sprite);
_local2.name = "Main";
game.addChild(_local2);
}
public function cfgLoaded(_arg1:Event):void{
config_loaded = true;
if (tdsOptions.country == "RU"){
localization.ChangeLanguage("ru");
} else {
localization.ChangeLanguage("en");
};
if ((((game_loaded == true)) && ((adv_loaded == true)))){
main();
};
}
private function completeHandler(_arg1:Event):void{
play();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function progressHandler(_arg1:ProgressEvent):void{
var _local2:uint = _arg1.bytesLoaded;
var _local3:uint = _arg1.bytesTotal;
progressBar.scaleX = (_local2 / _local3);
}
public function isUrl(_arg1:Array):Boolean{
var _local2:int;
while (_local2 < _arg1.length) {
if (tdsOptions.referer.indexOf(_arg1[_local2]) != -1){
return (true);
};
_local2++;
};
return (false);
}
private function enterFrameHandler_waitForAd(_arg1:Event):void{
if ((((config_loaded == true)) && ((adv_loaded == true)))){
removeEventListener(Event.ENTER_FRAME, enterFrameHandler_waitForAd);
main();
};
}
private function enterFrameHandler(_arg1:Event):void{
if (currentFrame >= Preloader.ENTRY_FRAME){
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
stop();
game_loaded = true;
if ((((config_loaded == true)) && ((adv_loaded == true)))){
main();
} else {
addEventListener(Event.ENTER_FRAME, enterFrameHandler_waitForAd);
};
};
}
function key_up(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == 76)) || ((_arg1.keyCode == 108)))){
localization.ChangeLanguage(((localization.GetCurrentLanguage())=="ru") ? "en" : "ru");
};
}
function frame1(){
gameTop.buttonMode = true;
gameTop.useHandCursor = true;
gameTop.mouseChildren = false;
gameTop.alpha = 0;
gameTop.addEventListener(MouseEvent.CLICK, function (){
navigateToURL(new URLRequest("http://www.gametop.com/stats/marinepuzzleonline.html"), "_blank");
});
}
}
}//package
Section 243
//R (R)
package {
import flash.display.*;
public dynamic class R extends MovieClip {
}
}//package
Section 244
//rankNums (rankNums)
package {
import flash.display.*;
public dynamic class rankNums extends MovieClip {
}
}//package
Section 245
//red_cristal (red_cristal)
package {
import Screens.GameScreen.*;
public dynamic class red_cristal extends fieldItem {
}
}//package
Section 246
//rule (rule)
package {
import Screens.GameScreen.*;
public dynamic class rule extends fieldItem {
}
}//package
Section 247
//ScnNext (ScnNext)
package {
import flash.media.*;
public dynamic class ScnNext extends Sound {
}
}//package
Section 248
//Shine (Shine)
package {
import flash.display.*;
public dynamic class Shine extends BitmapData {
public function Shine(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 249
//shoot (shoot)
package {
import flash.display.*;
public dynamic class shoot extends MovieClip {
public function shoot(){
addFrameScript(19, frame20);
}
function frame20(){
stop();
}
}
}//package
Section 250
//Shut1 (Shut1)
package {
import flash.media.*;
public dynamic class Shut1 extends Sound {
}
}//package
Section 251
//Shut2 (Shut2)
package {
import flash.media.*;
public dynamic class Shut2 extends Sound {
}
}//package
Section 252
//Shut3 (Shut3)
package {
import flash.media.*;
public dynamic class Shut3 extends Sound {
}
}//package
Section 253
//Shut4 (Shut4)
package {
import flash.media.*;
public dynamic class Shut4 extends Sound {
}
}//package
Section 254
//sndTestSound (sndTestSound)
package {
import flash.media.*;
public dynamic class sndTestSound extends Sound {
}
}//package
Section 255
//sparcle (sparcle)
package {
import flash.display.*;
public dynamic class sparcle extends MovieClip {
}
}//package
Section 256
//spell1_1 (spell1_1)
package {
import Screens.GameScreen.*;
public dynamic class spell1_1 extends SpellButton {
public function spell1_1(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 257
//spell1_2 (spell1_2)
package {
import Screens.GameScreen.*;
public dynamic class spell1_2 extends SpellButton {
public function spell1_2(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 258
//spell1_3 (spell1_3)
package {
import Screens.GameScreen.*;
public dynamic class spell1_3 extends SpellButton {
public function spell1_3(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 259
//spell2_1 (spell2_1)
package {
import Screens.GameScreen.*;
public dynamic class spell2_1 extends SpellButton {
public function spell2_1(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 260
//spell2_2 (spell2_2)
package {
import Screens.GameScreen.*;
public dynamic class spell2_2 extends SpellButton {
public function spell2_2(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 261
//spell2_3 (spell2_3)
package {
import Screens.GameScreen.*;
public dynamic class spell2_3 extends SpellButton {
public function spell2_3(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 262
//spell3_1 (spell3_1)
package {
import Screens.GameScreen.*;
public dynamic class spell3_1 extends SpellButton {
public function spell3_1(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 263
//spell3_2 (spell3_2)
package {
import Screens.GameScreen.*;
public dynamic class spell3_2 extends SpellButton {
public function spell3_2(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 264
//spell3_3 (spell3_3)
package {
import Screens.GameScreen.*;
public dynamic class spell3_3 extends SpellButton {
public function spell3_3(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
}
}//package
Section 265
//Sphere1_1 (Sphere1_1)
package {
import flash.display.*;
public dynamic class Sphere1_1 extends MovieClip {
}
}//package
Section 266
//Sphere1_2 (Sphere1_2)
package {
import flash.display.*;
public dynamic class Sphere1_2 extends MovieClip {
}
}//package
Section 267
//Sphere1_3 (Sphere1_3)
package {
import flash.display.*;
public dynamic class Sphere1_3 extends MovieClip {
}
}//package
Section 268
//Sphere2_1 (Sphere2_1)
package {
import flash.display.*;
public dynamic class Sphere2_1 extends MovieClip {
}
}//package
Section 269
//Sphere2_2 (Sphere2_2)
package {
import flash.display.*;
public dynamic class Sphere2_2 extends MovieClip {
}
}//package
Section 270
//Sphere2_3 (Sphere2_3)
package {
import flash.display.*;
public dynamic class Sphere2_3 extends MovieClip {
}
}//package
Section 271
//Sphere3_1 (Sphere3_1)
package {
import flash.display.*;
public dynamic class Sphere3_1 extends MovieClip {
}
}//package
Section 272
//Sphere3_2 (Sphere3_2)
package {
import flash.display.*;
public dynamic class Sphere3_2 extends MovieClip {
}
}//package
Section 273
//Sphere3_3 (Sphere3_3)
package {
import flash.display.*;
public dynamic class Sphere3_3 extends MovieClip {
}
}//package
Section 274
//SplashMovie (SplashMovie)
package {
import flash.display.*;
public dynamic class SplashMovie extends MovieClip {
public function SplashMovie(){
addFrameScript(140, frame141);
}
function frame141(){
stop();
}
}
}//package
Section 275
//StartBattle (StartBattle)
package {
import flash.media.*;
public dynamic class StartBattle extends Sound {
}
}//package
Section 276
//talisman (talisman)
package {
import Screens.GameScreen.*;
public dynamic class talisman extends fnsHint {
public function talisman(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
function frame7(){
stop();
}
function frame8(){
stop();
}
function frame10(){
stop();
}
function frame11(){
stop();
}
function frame12(){
stop();
}
function frame9(){
stop();
}
}
}//package
Section 277
//tdsOptions (tdsOptions)
package {
public class tdsOptions {
public static const redirect_url:String = (("http://" + host) + "/redirect.php");
public static const gameid:String = "sea_journey";
public static const version:uint = 1;
public static const host:String = "divogames.com/tds";
public static const link_count_url:String = (("http://" + host) + "/countLink.php");
public static const get_config_url:String = (("http://" + host) + "/getConfig.php");
public static var alive:Boolean = true;
public static var secured_redirect:Boolean = true;
public static var spare_links:Array = new Array("http://www.gametop.com/stats/marinepuzzleonline.html", "http://www.gametop.com/stats/marinepuzzleonline.html", "http://www.gametop.com/stats/marinepuzzleonline.html");
public static var country:String;
public static var language:String;
public static var referer:String = "";
public static function setReferer(_arg1:String, _arg2:String):void{
if ((((_arg1 == null)) || ((_arg1 == "")))){
_arg1 = _arg2;
};
referer = "";
if (_arg1 == null){
referer = "empty";
} else {
if (_arg1.substr(0, 7) == "file://"){
referer = "local";
};
};
if (referer != ""){
return;
};
if (_arg1.indexOf("http://") != -1){
_arg1 = _arg1.substr(7);
} else {
if (_arg1.indexOf("https://") != -1){
_arg1 = _arg1.substr(8);
};
};
if (_arg1.indexOf("/") != -1){
_arg1 = _arg1.substr(0, _arg1.indexOf("/"));
};
referer = _arg1;
}
}
}//package
Section 278
//Trader (Trader)
package {
import flash.media.*;
public dynamic class Trader extends Sound {
}
}//package
Section 279
//trader1 (trader1)
package {
import Screens.GameScreen.*;
public dynamic class trader1 extends fnsHint {
}
}//package
Section 280
//trader2 (trader2)
package {
import Screens.GameScreen.*;
public dynamic class trader2 extends fnsHint {
}
}//package
Section 281
//trader3 (trader3)
package {
import Screens.GameScreen.*;
public dynamic class trader3 extends fnsHint {
}
}//package
Section 282
//trader4 (trader4)
package {
import Screens.GameScreen.*;
public dynamic class trader4 extends fnsHint {
}
}//package
Section 283
//trader5 (trader5)
package {
import Screens.GameScreen.*;
public dynamic class trader5 extends fnsHint {
}
}//package
Section 284
//tutArrow (tutArrow)
package {
import flash.display.*;
public dynamic class tutArrow extends MovieClip {
}
}//package
Section 285
//UseTrick (UseTrick)
package {
import flash.media.*;
public dynamic class UseTrick extends Sound {
}
}//package
Section 286
//WaterSplashing (WaterSplashing)
package {
import flash.display.*;
public dynamic class WaterSplashing extends MovieClip {
public function WaterSplashing(){
addFrameScript(29, frame30);
}
function frame30(){
stop();
}
}
}//package
Section 287
//VictoryScreen (VictoryScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class VictoryScreen extends MovieClip {
public var CrystalsLeftCaption:TextField;
public var CrystalsLeftRValue:TextField;
public var GoldCollectedValue:TextField;
public var Talismans:MovieClip;
public var LevelTotalCaption:TextField;
public var LevelTotalValue:TextField;
public var CrystalsLeftBValue:TextField;
public var TrophyTalismansCaption:TextField;
public var CrystalsLeftGValue:TextField;
public var tr1:TextField;
public var tr2:TextField;
public var tr3:TextField;
public var tr4:TextField;
public var GoldCollectedCaption:TextField;
}
}//package
Section 288
//Xp1 (Xp1)
package {
import flash.media.*;
public dynamic class Xp1 extends Sound {
}
}//package
Section 289
//Xp2 (Xp2)
package {
import flash.media.*;
public dynamic class Xp2 extends Sound {
}
}//package
Section 290
//Xp3 (Xp3)
package {
import flash.media.*;
public dynamic class Xp3 extends Sound {
}
}//package