Combined Code
movieClip 4 {
}
movieClip 7 {
}
movieClip 9 {
}
movieClip 11 maparea_s {
}
movieClip 14 {
}
movieClip 16 {
}
movieClip 18 {
}
movieClip 21 {
}
movieClip 23 {
}
movieClip 25 {
}
movieClip 26 {
}
movieClip 27 {
}
// unknown tag 88 length 78
movieClip 62 {
}
movieClip 64 cross_x {
}
movieClip 66 {
}
movieClip 71 map_unit {
}
movieClip 72 minimapscreen {
#initclip
Object.registerClass('minimapscreen', ScreenMinimap);
#endinitclip
frame 1 {
init();
}
}
button 78 {
on (release) {
com.newgrounds.API.loadNewgrounds();
}
}
movieClip 84 {
frame 1 {
onEnterFrame = function () {
if (_visible) {
_rotation = _rotation + 30;
} else {
delete onEnterFrame;
}
};
}
}
movieClip 85 {
frame 11 {
gotoAndPlay(1);
}
}
movieClip 86 Flash Ad (NewgroundsAPI) {
#initclip
Object.registerClass('Flash Ad (NewgroundsAPI)', com.newgrounds.components.FlashAd);
#endinitclip
}
// unknown tag 88 length 68
// unknown tag 88 length 68
movieClip 116 {
frame 10 {
stop();
}
}
// unknown tag 88 length 68
movieClip 118 {
frame 37 {
_parent.setGotoFrame('done');
stop();
}
}
movieClip 120 {
}
movieClip 122 NewgroundsAPIAsset_Medal_Icon_Placeholder {
}
// unknown tag 88 length 68
// unknown tag 88 length 69
// unknown tag 88 length 68
movieClip 130 NewgroundsAPIAsset_Medal_Popup {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_visible = true;
icon._visible = false;
pop_delay = setInterval(endDelay, 3000);
}
frame 2 {
medal.attachIcon(icon);
}
frame 10 {
icon._visible = true;
medal_name = medal.getName();
medal_value = medal.getValue() + 'pts';
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
movieClip 136 NewgroundsAPIAsset_Login_Warning {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 69
movieClip 139 NewgroundsAPIAsset_Connection_Error {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
movieClip 141 {
}
movieClip 143 {
}
movieClip 145 {
}
movieClip 147 {
}
movieClip 149 {
}
movieClip 151 {
}
movieClip 153 {
}
movieClip 155 {
}
movieClip 157 {
}
movieClip 159 {
}
movieClip 160 NewgroundsAPIAsset_big_popup_background {
frame 1 {
var w = Math.round(this._width);
var h = Math.round(this._height);
if (w < 80) {
w = 80;
}
if (h < 80) {
h = 80;
}
this._width = 350;
this._height = 120;
t._width = w - 2;
t._x = 1;
b._width = w - 2;
b._x = 1;
c._width = w - 2;
c._x = 1;
c._height = h - 2;
c._y = 1;
l._height = h - 2;
l._y = 1;
r._height = h - 2;
r._y = 1;
tr._x = w - 7;
r._x = w - 7;
br._x = w - 7;
b._y = h - 7;
bl._y = h - 7;
br._y = h - 7;
shadow._width = w + 10;
shadow._height = h + 10;
}
}
button 164 {
on (release) {
this._visible = false;
this.removeMovieClip();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
button 170 {
on (release) {
getURL(official_version_url, '_blank');
}
}
// unknown tag 88 length 69
movieClip 172 NewgroundsAsset_New_Version_Available {
frame 1 {
_x = Stage.width / 2;
_y = Stage.height / 2;
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
}
}
button 173 {
on (release) {
getURL(official_version_url, '_blank');
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
// unknown tag 88 length 69
movieClip 177 NewgroundsAsset_Illegal_Host {
frame 1 {
_x = Stage.width / 2;
_y = Stage.height / 2;
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
}
}
movieClip 178 API Connector (NewgroundsAPI) {
#initclip
Object.registerClass('API Connector (NewgroundsAPI)', com.newgrounds.components.APIConnector);
#endinitclip
frame 20 {
_visible = false;
}
}
frame 1 {
}
instance of movieClip 178 API Connector (NewgroundsAPI) {
onClipEvent (construct) {
api_id = '16346:itCNQcsz';
encryption_key = 'FenEAJQbJjiXGBFduhBqyp4bbNc9xKWi';
version = '';
fake_session = false;
debug = false;
error_screens = true;
medal_popups = true;
}
}
movieClip 1934 __Packages.Screen {
#initclip
if (!_global.Screen) {
var v1 = function () {
super();
this.busy = false;
};
_global.Screen = v1;
_global.Screen extends MovieClip;
var v2 = v1.prototype;
v2.fade = function () {
this.filters = [Filters.Desaturator()];
};
v2.unfade = function () {
this.filters = [];
};
v2.enable = function () {
this.enabled = true;
};
v2.disable = function () {
this.enabled = false;
};
v2.lock = function () {
this.disable();
};
v2.unlock = function () {
this.enable();
};
ASSetPropFlags(_global.Screen.prototype, null, 1);
}
#endinitclip
}
movieClip 1935 __Packages.Filters {
#initclip
if (!_global.Filters) {
var v1 = function () {};
_global.Filters = v1;
var v2 = v1.prototype;
v1.Desaturator = function () {
return new flash.filters.ColorMatrixFilter(Filters.fade_data);
};
v1.Dark = function () {
return new flash.filters.ColorMatrixFilter(Filters.fade_data1);
};
v1.Alpha = function (alpha_) {
var v1 = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, alpha_ / 100, 0];
return new flash.filters.ColorMatrixFilter(v1);
};
v1.Glow = function (color_) {
return new flash.filters.GlowFilter(color_, 100, 10, 10, 5, 3);
};
v1.GlowMedium = function (color_) {
return new flash.filters.GlowFilter(color_, 50, 7, 7, 3, 3);
};
v1.GlowLight = function (color_) {
return new flash.filters.GlowFilter(color_, 50, 7, 7, 1, 3);
};
v1.Shadow = function () {
return new flash.filters.DropShadowFilter(3, 45, 0, 100, 9, 9, 1, 3);
};
v1.Blur = function () {
return new flash.filters.BlurFilter(2, 2, 3);
};
v1.BlurDeep = function () {
return new flash.filters.BlurFilter(5, 5, 1);
};
v1.fade_data = [0.33, 0.33, 0.33, 0, 0, 0.33, 0.33, 0.33, 0, 0, 0.33, 0.33, 0.33, 0, 0, 0, 0, 0, 1, 0];
v1.fade_data1 = [0.5, 0, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, 1, 0];
ASSetPropFlags(_global.Filters.prototype, null, 1);
}
#endinitclip
}
movieClip 1936 __Packages.ScreenMinimap {
#initclip
if (!_global.ScreenMinimap) {
var v1 = function () {
super();
};
_global.ScreenMinimap = v1;
_global.ScreenMinimap extends Screen;
var v2 = v1.prototype;
v2.init = function () {
(Core.Get()).switchMusic(0);
this.back._alpha = 50;
this.cross_x._alpha = 75;
this.cross_y._alpha = 75;
var v2 = (Core.Get()).game.unit_pos;
var v4 = v2.x * 480 / 2400;
var v3 = v2.y * 270 / 1800;
this.cross_x._x = v4;
this.unit._x = this.cross_x._x;
this.cross_y._y = 62 + v3;
this.unit._y = this.cross_y._y;
this.syncAreas();
this.syncEnemies();
};
v2.syncAreas = function () {
var v4 = (Core.Get()).game;
var v6 = (Core.Get()).world;
var v5 = v4.areas_marked.length;
var v3 = 0;
while (v3 < v5) {
var v2 = v6.areas[v3].name;
if (v4.areas_marked[v3]) {
this.areas[v2]._visible = true;
this.captions[v2]._visible = true;
} else {
this.areas[v2]._visible = false;
this.captions[v2]._visible = false;
}
++v3;
}
};
v2.syncEnemies = function () {
var v5 = (Core.Get()).game;
var v3 = 0;
while (v3 < v5.enemy_data.length) {
var v4 = v5.enemy_data[v3];
var v2 = this.enemies.attachMovie('map_enemy', '', this.enemies.getNextHighestDepth());
v2._x = v4.x;
v2._y = v4.y;
v2._xscale = 250;
v2._yscale = 333;
++v3;
}
this.enemies._xscale = 20;
this.enemies._yscale = 15;
};
ASSetPropFlags(_global.ScreenMinimap.prototype, null, 1);
}
#endinitclip
}
movieClip 1937 __Packages.Core {
#initclip
if (!_global.Core) {
var v1 = function (root_) {
Log.Msg('Core::Core()');
this.root = root_;
this.root.scrollRect = new flash.geom.Rectangle(0, 0, 480, 360);
this.cfg = new CfgData();
this.world = new WorldData();
this.debug_mode = false;
this.sound_on = true;
this.music_on = true;
this.loadMeta();
this.state = EScreenState.NONE;
this.counter = 0;
this.need_screen_disable = false;
this.root.onEnterFrame = mx.utils.Delegate.create(this, this.onUpdate);
this.root.createEmptyMovieClip('mc_sound_left', 100);
this.root.createEmptyMovieClip('mc_sound_right', 101);
this.root.createEmptyMovieClip('mc_sound_mid', 102);
this.root.createEmptyMovieClip('mc_music_menu', 103);
this.root.createEmptyMovieClip('mc_music_battle', 104);
this.root.createEmptyMovieClip('mc_music_intro', 105);
this.sound_left = new Sound('mc_sound_left');
this.sound_left.setPan(-90);
this.sound_right = new Sound('mc_sound_right');
this.sound_right.setPan(90);
this.sound_mid = new Sound('mc_sound_mid');
this.sound_mid.setPan(0);
this.music_menu = new Sound('mc_music_menu');
this.music_menu.onSoundComplete = mx.utils.Delegate.create(this.music_menu, function () {
this.start();
});
this.music_menu.setVolume(100);
this.music_battle = new Sound('mc_music_battle');
this.music_battle.onSoundComplete = mx.utils.Delegate.create(this.music_battle, function () {
this.start();
});
this.music_battle.setVolume(50);
this.music_intro = new Sound('mc_music_intro');
this.music_intro.onSoundComplete = mx.utils.Delegate.create(this.music_intro, function () {
this.start();
});
this.music_intro.setVolume(50);
this.onMouseWheel = null;
var v2 = new Object();
v2.onMouseWheel = mx.utils.Delegate.create(this, this.onMouseWheelWrapper);
Mouse.addListener(v2);
this.music_menu.attachSound('music_menu');
this.music_intro.attachSound('music_intro');
this.cur_music = -1;
this.root.createEmptyMovieClip('', 1);
this.goMain();
};
_global.Core = v1;
var v2 = v1.prototype;
v2.startGame = function () {
this.game = new GameData();
};
v2.goMain = function (delay_) {
this.switchToScreen('mainscreen', delay_);
};
v2.goIntro = function (delay_) {
this.switchToScreen('introscreen', delay_);
};
v2.goHelp = function (delay_) {
this.switchToScreen('helpscreen', delay_);
};
v2.goMap = function (delay_) {
this.switchToScreen('mapscreen', delay_);
};
v2.goArea = function (delay_) {
this.switchToScreen('areascreen', delay_);
};
v2.goBattle = function (delay_) {
this.switchToScreen('battlescreen', delay_);
};
v2.goLose = function (delay_) {
this.switchToScreen('losescreen', delay_);
};
v2.goOutro = function (delay_) {
this.switchToScreen('outroscreen', delay_);
};
v2.popupItems = function (delay_) {
this.popupScreen('itemsscreen', delay_);
};
v2.popupTeam = function (delay_) {
this.popupScreen('teamscreen', delay_);
};
v2.popupTasks = function (delay_) {
this.popupScreen('tasksscreen', delay_);
};
v2.popupMinimap = function (delay_) {
this.popupScreen('minimapscreen', delay_);
};
v2.popupTalk = function (delay_) {
this.popupScreen('talkscreen', delay_);
};
v2.popupTrade = function (delay_) {
this.popupScreen('tradescreen', delay_);
};
v2.popupWinBattle = function (delay_) {
this.popupScreen('battlewinscreen', delay_);
};
v2.popupOptions = function (delay_) {
this.popupScreen('optionsscreen', delay_);
};
v2.popupSkillsUp = function (delay_) {
this.popupScreen('skillupscreen', delay_);
};
v2.popupSave = function (delay_) {
this.game.exchange = {'save': true};
this.popupScreen('saveloadscreen', delay_);
};
v2.popupLoad = function (delay_) {
this.game.exchange = {'save': false};
this.popupScreen('saveloadscreen', delay_);
};
v2.playSound = function (name_, pan_) {
if (!this.sound_on) {
return undefined;
}
if (undefined == pan_) {
pan_ = 0;
}
if (0 == pan_) {
this.sound_mid.attachSound(name_);
this.sound_mid.start();
} else {
if (pan_ < 0) {
this.sound_left.attachSound(name_);
this.sound_left.start();
} else {
if (pan_ > 0) {
this.sound_right.attachSound(name_);
this.sound_right.start();
}
}
}
};
v1.Create = function (root_) {
if (!Core.the_core) {
Core.the_core = new Core(root_);
Core.the_core.localEn();
} else {
Log.Err('Core::Create() : already created');
}
};
v1.Get = function () {
return Core.the_core;
};
v2.onMouseWheelWrapper = function (value_) {
if (this.onMouseWheel) {
this.onMouseWheel(value_);
}
};
v2.switchToScreen = function (screen_, delay_) {
if (undefined == delay_) {
delay_ = 0;
}
var v2 = this.root.getInstanceAtDepth(1);
v2.disable();
this.screen_proto_name = screen_;
this.screen_inst_name = screen_;
if (v2._name == screen_) {
this.screen_inst_name += '1';
}
Log.Msg('TRANS START');
if (delay_) {
this.switchState(EScreenState.DELAY_TRANS, 60);
} else {
this.doSwitch();
}
};
v2.doSwitch = function () {
this.sound_left.stop();
this.sound_mid.stop();
this.sound_right.stop();
(Core.Get()).playSound('popup');
if (this.screen_proto_name == 'battlescreen') {
this.switchMusic(this.game.getBattleRegion());
} else {
if (this.screen_proto_name == 'mainscreen' || this.screen_proto_name == 'introscreen') {
this.switchMusic(5);
} else {
this.switchMusic(0);
}
}
var v4 = this.root.getInstanceAtDepth(1);
var v2 = this.root.attachMovie(this.screen_proto_name, this.screen_inst_name, 2);
v2.disable();
this.need_screen_disable = true;
v2.swapDepths(1);
var v6 = this.root.attachMovie('scroll_eff', '', 5);
v6.blendMode = 'add';
var v3 = this.root.attachMovie('maskscreen1', 'mask1', 3);
var v5 = this.root.attachMovie('maskscreen', 'mask', 4);
v2.setMask(v5);
v4.setMask(v3);
this.switchState(EScreenState.TRANS, 30);
};
v2.switchState = function (state_, time_) {
if (time_ == undefined) {
time_ = 0;
}
if (this.counter) {
Log.Err('State switch error');
}
this.state = state_;
this.counter = time_;
};
v2.onUpdate = function () {
if (this.counter > 0) {
--this.counter;
}
switch (this.state) {
case EScreenState.NONE:
break;
case EScreenState.DELAY_TRANS:
if (0 == this.counter) {
this.doSwitch();
}
break;
case EScreenState.TRANS:
if (this.need_screen_disable) {
var v2 = this.root.getInstanceAtDepth(1);
v2.disable();
this.need_screen_disable = false;
}
if (0 == this.counter) {
Log.Msg('TRANS END');
this.switchState(EScreenState.NONE);
(this.root.getInstanceAtDepth(2)).removeMovieClip();
(this.root.getInstanceAtDepth(3)).removeMovieClip();
(this.root.getInstanceAtDepth(4)).removeMovieClip();
(this.root.getInstanceAtDepth(5)).removeMovieClip();
v2 = this.root.getInstanceAtDepth(1);
v2.enable();
v2.setMask(null);
v2.onMouseMove();
}
break;
case EScreenState.DELAY_POPUP:
if (0 == this.counter) {
this.doPopup();
}
break;
case EScreenState.POPUP:
if (0 == this.counter) {
Log.Msg('POPUP END');
this.switchState(EScreenState.NONE);
(this.root.getInstanceAtDepth(11)).removeMovieClip();
(this.root.getInstanceAtDepth(12)).removeMovieClip();
var v3 = this.root.getInstanceAtDepth(10);
v3.enable();
v3.setMask(null);
v3.onMouseMove();
}
}
};
v2.popupScreen = function (screen_, delay_) {
if (undefined == delay_) {
delay_ = 0;
}
var v2 = this.root.getInstanceAtDepth(1);
v2.lock();
this.screen_proto_name = screen_;
this.screen_inst_name = screen_;
Log.Msg('POPUP START');
if (delay_) {
this.switchState(EScreenState.DELAY_POPUP, 60);
} else {
this.doPopup();
}
};
v2.doPopup = function () {
(Core.Get()).playSound('popup');
var v3 = this.root.getInstanceAtDepth(1);
v3.fade();
var v2 = this.root.attachMovie(this.screen_proto_name, this.screen_inst_name, 10);
v2.disable();
var v4 = this.root.attachMovie('maskpopup', 'maskpopup', 11);
v2.setMask(v4);
var v5 = this.root.attachMovie('popup_eff', '', 12);
v5.blendMode = 'add';
this.switchState(EScreenState.POPUP, 20);
};
v2.unpopupEnable = function () {
var v2 = this.root.getInstanceAtDepth(1);
v2.enable();
this.unpopup();
};
v2.unpopupBusy = function () {
var v2 = this.root.getInstanceAtDepth(1);
v2.busy = true;
this.unpopup();
};
v2.unpopup = function () {
this.switchMusic(0);
if (this.counter > 0) {
(this.root.getInstanceAtDepth(11)).removeMovieClip();
(this.root.getInstanceAtDepth(12)).removeMovieClip();
if (this.state != EScreenState.POPUP) {
Log.Err('Erroneous unpopup');
}
this.counter = 0;
this.switchState(EScreenState.NONE);
}
(this.root.getInstanceAtDepth(10)).removeMovieClip();
var v2 = this.root.getInstanceAtDepth(1);
v2.unfade();
v2.unlock();
};
v2.saveGame = function (i_) {
var v2 = this.meta_save[i_];
v2.valid = true;
v2.level = this.game.getTeamLevel();
v2.area = this.game.in_area;
v2.region = this.game.cur_region;
v2.slots = this.game.team.slice(0, 4);
var v4 = SharedObject.getLocal('gx_wrap' + i_);
v4.data.game = this.game;
v4.flush();
var v3 = SharedObject.getLocal('gx_wrap');
v3.data.meta = this.meta_save;
v3.flush();
};
v2.loadGame = function (i_) {
this.game = new GameData();
var v2 = SharedObject.getLocal('gx_wrap' + i_);
for (var v3 in v2.data.game) {
this.game[v3] = v2.data.game[v3];
}
this.game.checkMedals();
};
v2.loadMeta = function () {
this.meta_save = new Array();
var v2 = 0;
while (v2 < 4) {
this.meta_save.push({'valid': false});
++v2;
}
var v3 = SharedObject.getLocal('gx_wrap');
for (var v5 in v3.data.meta) {
this.meta_save[v5] = v3.data.meta[v5];
}
};
v2.canLoad = function () {
var v2 = 0;
while (v2 < 4) {
if (this.meta_save[v2].valid) {
return true;
}
++v2;
}
return false;
};
v2.localEn = function () {
this.locale = new LocaleEn();
this.world.localEn();
};
v2.localRu = function () {
this.locale = new LocaleRu();
this.world.localRu();
};
v2.isSoundOn = function () {
return this.sound_on;
};
v2.isMusicOn = function () {
return this.music_on;
};
v2.setSound = function (on_) {
this.sound_on = on_;
if (!this.sound_on) {
this.sound_left.stop();
this.sound_mid.stop();
this.sound_right.stop();
}
};
v2.stopMusic = function () {
switch (this.cur_music) {
break;
case -1:
case 0:
this.music_menu.stop();
break;
case 5:
this.music_intro.stop();
break;
default:
this.music_battle.stop();
}
};
v2.startMusic = function () {
var v2 = ['music_menu', 'music_battle1', 'music_battle2', 'music_battle3', 'music_battle4', 'music_intro'];
switch (this.cur_music) {
break;
case -1:
case 0:
this.music_menu.start(this.music_menu.getPosition() / 1000);
break;
case 1:
case 2:
case 3:
case 4:
this.music_battle.attachSound(v2[this.cur_music]);
this.music_battle.start();
break;
case 5:
this.music_intro.start(this.music_intro.getPosition() / 1000);
}
};
v2.setMusic = function (on_) {
if (on_ == this.music_on) {
return undefined;
}
this.music_on = on_;
if (!this.music_on) {
this.stopMusic();
} else {
this.startMusic();
}
};
v2.switchMusic = function (id_) {
if (id_ == this.cur_music) {
return undefined;
}
this.stopMusic();
this.cur_music = id_;
if (!this.music_on) {
return undefined;
}
this.startMusic();
};
v2.unlockMedal = function (name_) {
var v1 = com.newgrounds.API.getMedal(name_);
if (undefined != v1 && !v1.__get__unlocked()) {
com.newgrounds.API.unlockMedal(name_);
}
};
ASSetPropFlags(_global.Core.prototype, null, 1);
}
#endinitclip
}
movieClip 1938 __Packages.CfgData {
#initclip
if (!_global.CfgData) {
var v1 = function () {
this.scr_size = new Pair(480, 360);
this.map_size = new Pair(2400, 1800);
this.min_vel = 10;
this.max_vel = 30;
this.accel = 1.02;
this.min_vel = 2;
this.max_vel = 3;
this.accel = 1.02;
this.min_walk = new Pair(160, 120);
this.max_walk = new Pair(320, 205);
this.map_grid = new Pair(60, 60);
this.fog_size = new Pair(40, 30);
this.dark_size = new Pair(9, 7);
this.inventory_size = new Pair(4, 8);
this.inventory_grid = new Pair(66, 34);
this.trader_size = new Pair(2, 7);
this.drop_size = new Pair(2, 5);
this.useitem_size = new Pair(4, 4);
this.tasklist_size = new Pair(0, 15);
this.tasklist_grid = new Pair(0, 19);
this.talklist_size = new Pair(0, 7);
this.talklist_grid = new Pair(0, 19);
};
_global.CfgData = v1;
var v2 = v1.prototype;
ASSetPropFlags(_global.CfgData.prototype, null, 1);
}
#endinitclip
}
movieClip 1939 __Packages.Pair {
#initclip
if (!_global.Pair) {
var v1 = function (x_, y_) {
this.x = (x_ == undefined) ? 0 : x_;
this.y = (y_ == undefined) ? 0 : y_;
};
_global.Pair = v1;
var v2 = v1.prototype;
v2.clone = function () {
return new Pair(this.x, this.y);
};
ASSetPropFlags(_global.Pair.prototype, null, 1);
}
#endinitclip
}
movieClip 1940 __Packages.WorldData {
#initclip
if (!_global.WorldData) {
var v1 = function () {
this.areas = new Array();
this.area_data = new Array();
this.areas.push({'id': 0, 'name': 'kaufo', 'r': 30, 'caption': 'K.A.U.F.O.\nOfficial\nSecret Base', 'caption2': 'K.A.U.F.O. Official Secret Base', 'img': 7});
this.area_data.push({'npc': [{'npc': 'natan', 'condition': function () {
return !(Core.Get()).game.isFlag('q_kaufo_betrayal');
}}], 'talk': [{'npc': 'natan', 'talk': 0}]});
this.areas.push({'id': 1, 'name': 'integra', 'r': 30, 'caption': 'Integra City', 'img': 10});
this.area_data.push({'npc': [{'npc': 'clod', 'condition': function () {
return (Core.Get()).game.isFlag('q_integra_people');
}}, {'npc': 'jake', 'condition': function () {
return (Core.Get()).game.isFlag('q_integra_people');
}}, {'npc': 'alexa', 'condition': function () {
return (Core.Get()).game.isFlag('q_integra_people');
}}, {'npc': 'lindwid', 'condition': function () {
return (Core.Get()).game.isFlag('q_integra_people');
}}], 'talk': [{'npc': 'grid', 'talk': 39}, {'npc': 'craven', 'talk': 40}]});
this.areas.push({'id': 2, 'name': 'astral', 'r': 20, 'caption': 'Astral Ville', 'img': 12});
this.area_data.push({'npc': ['ho']});
this.areas.push({'id': 3, 'name': 'nikky', 'r': 20, 'caption': 'Nikky Ville', 'img': 3});
this.area_data.push({'npc': ['halisted']});
this.areas.push({'id': 4, 'name': 'summer', 'r': 20, 'caption': 'Summer Garden', 'img': 22});
this.area_data.push({'npc': [{'npc': 'alien1', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') < 2;
}}, {'npc': 'alien2', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') < 2;
}}, {'npc': 'alien3', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') < 2;
}}, {'npc': 'alien1a', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') == 2 && (Core.Get()).game.isAreaFlag('q_sg_battle');
}}, {'npc': 'alien2a', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') == 2 && (Core.Get()).game.isAreaFlag('q_sg_battle');
}}, {'npc': 'alien3a', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') == 2 && (Core.Get()).game.isAreaFlag('q_sg_battle');
}}, {'npc': 'carl', 'condition': function () {
return (Core.Get()).game.getFlag('q_gotosummerg') == 2 && !(Core.Get()).game.isAreaFlag('q_sg_battle') && 1 == (Core.Get()).game.getFlag('q_raymondehelp');
}}], 'talk': [{'npc': 'grid', 'talk': 34}, {'npc': 'craven', 'talk': 38}]});
this.areas.push({'id': 5, 'name': 'raymonde', 'r': 20, 'caption': 'Raymonde Ville', 'img': 19});
this.area_data.push({'npc': [{'npc': 'carl', 'condition': function () {
return (Core.Get()).game.getFlag('q_raymondehelp') >= 2;
}}, {'npc': 'house_carl', 'condition': function () {
return (Core.Get()).game.getFlag('q_raymondehelp') == 1 && !(Core.Get()).game.isFlag('q_gotosummerg');
}}, 'michael', 'smith'], 'talk': [{'npc': 'craven', 'talk': 241}, {'npc': 'smith', 'talk': 255}]});
this.areas.push({'id': 6, 'name': 'meta', 'r': 30, 'caption': 'Meta-Fighters\nHideout', 'caption2': 'Meta-Fighters Hideout', 'img': 6});
this.area_data.push({'npc': [{'npc': 'vladimir', 'condition': function () {
return (Core.Get()).game.getFlag('q_waitforalien') < 2;
}}, {'npc': 'micrasm', 'condition': function () {
return (Core.Get()).game.getFlag('q_waitforalien') < 2;
}}, {'npc': 'leena', 'condition': function () {
return (Core.Get()).game.getFlag('q_waitforalien') < 2;
}}, {'npc': 'craven', 'condition': function () {
return (Core.Get()).game.getFlag('q_waitforalien') < 2 && !(Core.Get()).game.isInTeam(8);
}}], 'talk': [{'npc': 'micrasm', 'talk': 49}, {'npc': 'leena', 'talk': 50}, {'npc': 'cid', 'talk': 51}, {'npc': 'grid', 'talk': 52}]});
this.areas.push({'id': 7, 'name': 'oasis', 'r': 20, 'caption': 'Oasis', 'img': 16});
this.area_data.push({'npc': ['sarahata']});
this.areas.push({'id': 8, 'name': 'alienbase', 'r': 20, 'caption': 'Alien Base', 'img': 13});
this.area_data.push({'npc': ['sir_f'], 'talk': [{'npc': 'sir_f', 'talk': 220}, {'npc': 'karry', 'talk': 221}, {'npc': 'key', 'talk': 222}, {'npc': 'sir_f', 'talk': 223}]});
this.areas.push({'id': 9, 'name': 'beta', 'r': 20, 'caption': 'Betaville', 'img': 20});
this.area_data.push({'npc': ['mihel', 'vermut', 'zoid'], 'talk': [{'npc': 'vermut', 'talk': 82}]});
this.areas.push({'id': 10, 'name': 'kameron', 'r': 30, 'caption': 'Kameron City', 'img': 23});
this.area_data.push({'npc': ['bristol', 'stan', 'viola', 'ace']});
this.areas.push({'id': 11, 'name': 'nevermore', 'r': 30, 'caption': 'Nevermore Town', 'img': 8});
this.area_data.push({'npc': ['kippa', {'npc': 'lexic', 'condition': function () {
return !(Core.Get()).game.isInTeam(7);
}}, 'gaimon', 'chivax']});
this.areas.push({'id': 12, 'name': 'rainland', 'r': 20, 'caption': 'Rainland', 'img': 29});
this.area_data.push({'npc': ['shell', {'npc': 'liz', 'condition': function () {
return 7 > (Core.Get()).game.getFlag('q_lizandsten');
}}, 'alice']});
this.areas.push({'id': 13, 'name': 'ufo1', 'r': 20, 'caption': 'UFO Site 1', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 8}, {'npc': 'grid', 'talk': 9}, {'npc': 'grid', 'talk': 10}, {'npc': 'grid', 'talk': 11}]});
this.areas.push({'id': 14, 'name': 'ufo2', 'r': 20, 'caption': 'UFO Site 2', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 12}, {'npc': 'grid', 'talk': 13}, {'npc': 'grid', 'talk': 14}]});
this.areas.push({'id': 15, 'name': 'ufo3', 'r': 20, 'caption': 'UFO Site 3', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 15}, {'npc': 'grid', 'talk': 16}, {'npc': 'grid', 'talk': 17}]});
this.areas.push({'id': 16, 'name': 'ufo4', 'r': 20, 'caption': 'UFO Site 4', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 18}, {'npc': 'grid', 'talk': 19}, {'npc': 'grid', 'talk': 20}]});
this.areas.push({'id': 17, 'name': 'ufo5', 'r': 20, 'caption': 'UFO Site 5', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 21}, {'npc': 'grid', 'talk': 22}, {'npc': 'grid', 'talk': 23}]});
this.areas.push({'id': 18, 'name': 'ufo6', 'r': 20, 'caption': 'UFO Site 6', 'img': 27});
this.area_data.push({'npc': [], 'talk': [{'npc': 'grid', 'talk': 24}, {'npc': 'grid', 'talk': 25}, {'npc': 'grid', 'talk': 26}]});
this.areas.push({'id': 19, 'name': 'kalister', 'r': 25, 'caption': 'Kalister', 'img': 5});
this.area_data.push({'npc': ['marcy', 'biby', 'ibrahim'], 'talk': [{'npc': 'marcy', 'talk': 165}, {'npc': 'sir_f', 'talk': 166}, {'npc': 'sir_f', 'talk': 167}, {'npc': 'sir_f', 'talk': 168}]});
this.areas.push({'id': 20, 'name': 'sirth', 'r': 25, 'caption': 'Sirth', 'img': 24});
this.area_data.push({'npc': ['michel', 'jax', 'elm', {'npc': 'nina_x', 'condition': function () {
return !(Core.Get()).game.isInTeam(10);
}}]});
this.areas.push({'id': 21, 'name': 'calipso', 'r': 25, 'caption': 'Dead City\nCalipso', 'caption2': 'Dead City Calipso', 'img': 18});
this.area_data.push({'npc': ['ken', 'goman', 'fea']});
this.areas.push({'id': 22, 'name': 'farm', 'r': 20, 'caption': 'Uncle Sam\'s Farm', 'img': 21});
this.area_data.push({'npc': ['uncle_sam', 'stacy']});
this.areas.push({'id': 23, 'name': 'gibson', 'r': 30, 'caption': 'Gibson City', 'img': 25});
this.area_data.push({'npc': [{'npc': 'curt', 'condition': function () {
return !(Core.Get()).game.isInTeam(4);
}}, 'georg', 'john']});
this.areas.push({'id': 24, 'name': 'casteda', 'r': 25, 'caption': 'Casteda City', 'img': 17});
this.area_data.push({'npc': ['keabo', 'seth', 'hydra', 'heraldio']});
this.areas.push({'id': 25, 'name': 'vlads', 'r': 20, 'caption': 'Vladsville', 'img': 15});
this.area_data.push({'npc': ['vlad_ser', 'vlad_vlad', 'vlada']});
this.areas.push({'id': 26, 'name': 'port', 'r': 20, 'caption': 'Port', 'img': 9});
this.area_data.push({'npc': ['harcos', 'yax', {'npc': 'cij', 'condition': function () {
return !(Core.Get()).game.isFlag('hysterie');
}}]});
this.areas.push({'id': 27, 'name': 'jade', 'r': 20, 'caption': 'Jade Island', 'img': 26});
this.area_data.push({'npc': ['garret', 'ksenya']});
this.areas.push({'id': 28, 'name': 'milbase', 'r': 30, 'caption': 'Military Base', 'img': 28});
this.area_data.push({'npc': [{'npc': 'garn', 'condition': function () {
return 2 > (Core.Get()).game.getFlag('q_startrevolution');
}}, {'npc': 'celester', 'condition': function () {
return 2 > (Core.Get()).game.getFlag('q_startrevolution');
}}, {'npc': 'lesly', 'condition': function () {
return 2 > (Core.Get()).game.getFlag('q_startrevolution');
}}], 'talk': [{'npc': 'garn', 'talk': 160}, {'npc': 'grid', 'talk': 161}]});
this.areas.push({'id': 29, 'name': 'capitol', 'r': 30, 'caption': 'Dark Capitol City', 'img': 2});
this.area_data.push({'npc': ['guard', {'npc': 'mist', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_startrevolution');
}}]});
this.areas.push({'id': 30, 'name': 'alpha', 'r': 20, 'caption': 'Alphaville', 'img': 14});
this.area_data.push({'npc': [{'npc': 'hell', 'condition': function () {
return !(Core.Get()).game.isInTeam(11) && !(Core.Get()).game.isFlag('v_hellkilled');
}}], 'talk': [{'npc': 'hell', 'talk': 197}, {'npc': 'hell', 'talk': 202}]});
this.areas.push({'id': 31, 'name': 'sarreno', 'r': 20, 'caption': 'Sarreno+ Lab', 'img': 11});
this.area_data.push({'npc': ['dr_rade']});
this.areas.push({'id': 32, 'name': 'highland', 'r': 25, 'caption': 'Highland City', 'img': 4});
this.area_data.push({'npc': [{'npc': 'kage', 'condition': function () {
return !(Core.Get()).game.isInTeam(6);
}}, 'grandin']});
this.area_to_id = new Object();
var v3 = this.areas.length;
var v2 = 0;
while (v2 < v3) {
this.area_to_id[this.areas[v2].name] = this.areas[v2].id;
++v2;
}
this.npc = new NPCData();
this.talk = new TalkData();
this.chars = new Array(12);
this.chars[0] = {'name': 'Grid', 'str_id': 'grid', 'vit': 5, 'def': 5, 'acc': 5, 'dgr': 5, 'tch': 5, 'med': 5, 'lck': 5};
this.chars[1] = {'name': 'Key', 'str_id': 'key', 'vit': 4, 'def': 4, 'acc': 6, 'dgr': 6, 'tch': 6, 'med': 2, 'lck': 7};
this.chars[2] = {'name': 'Katenka', 'str_id': 'katenka', 'vit': 4, 'def': 5, 'acc': 4, 'dgr': 5, 'tch': 3, 'med': 8, 'lck': 9};
this.chars[3] = {'name': 'CID', 'str_id': 'cid', 'vit': 8, 'def': 6, 'acc': 5, 'dgr': 7, 'tch': 9, 'med': 1, 'lck': 1};
this.chars[4] = {'name': 'Kurt', 'str_id': 'curt', 'vit': 5, 'def': 5, 'acc': 6, 'dgr': 7, 'tch': 2, 'med': 3, 'lck': 6};
this.chars[5] = {'name': 'Karry', 'str_id': 'karry', 'vit': 4, 'def': 5, 'acc': 5, 'dgr': 5, 'tch': 8, 'med': 8, 'lck': 4};
this.chars[6] = {'name': 'Kage', 'str_id': 'kage', 'vit': 6, 'def': 5, 'acc': 8, 'dgr': 9, 'tch': 3, 'med': 3, 'lck': 5};
this.chars[7] = {'name': 'Lexic', 'str_id': 'lexic', 'vit': 9, 'def': 7, 'acc': 3, 'dgr': 8, 'tch': 2, 'med': 4, 'lck': 8};
this.chars[8] = {'name': 'Craven', 'str_id': 'craven', 'vit': 4, 'def': 4, 'acc': 6, 'dgr': 8, 'tch': 8, 'med': 4, 'lck': 3};
this.chars[9] = {'name': 'Feather', 'str_id': 'feather', 'vit': 4, 'def': 4, 'acc': 3, 'dgr': 5, 'tch': 5, 'med': 9, 'lck': 9};
this.chars[10] = {'name': 'Nina X', 'str_id': 'nina_x', 'vit': 7, 'def': 7, 'acc': 4, 'dgr': 7, 'tch': 2, 'med': 2, 'lck': 8};
this.chars[11] = {'name': 'Hell', 'str_id': 'hell', 'vit': 9, 'def': 9, 'acc': 8, 'dgr': 9, 'tch': 4, 'med': 2, 'lck': 9};
this.items = new ItemData();
this.quests = new Object();
this.tasks = new Object();
this.quest_items = new Array();
this.region_map = ['AAAAAAAABBBBBBBBBBBBBCCCCCDDDDDDDDDDDDDD', 'AAAAAAAABBBBBBBBBBBBBCCCCCDDDDDDDDDDDDDD', 'AAAAAAAABBBBBBBBBBBBCCCCCCDDDDDDDDDDDDDD', 'AAAAAAAABBBBBBBBBBBCCCCCCCDDDDDDDDDDDDD ', 'AAAAAAABBBBBBBBBBBBCCCCCCCCDDDDDDDDDDD ', 'AAAAAAABBBBBBBBBBBBCCCCCCCCCCDDDDDDDD ', 'AAAAAAABBBBBBBBBBBBCCCCCCCCCCCHHHHDDD ', 'AAAAAAAABBBBBBBBBBBCCCCCCCCCCHHHHHHHH ', 'AAAAAAAABBBBBBF CCCCCCGGGCHHHHHHHH ', 'AAAAAAAAFBBFFFFF GGGGGGGGGHHHHHHH ', 'EEEEEFFFFFFFFFFFFF LGGGGGGGHHHHHHH ', 'EEEEEEFFFFFFFFFFFFFLLGGGGGGHHHHHHH ', 'EEEEEEFFFFFFFFFFFFFLLLGGGGGHHHHMMM ', 'EEEEEEEEEEEFFFFFFFLLLLGGGGGHHMMMNNNN ', 'EEEEEEEEEEEEFFFFLLLLLLLGGGMMMMMMNNN ', 'EEEEEEEEIIIIIFFFLLLLLLLLLLMMMMMMNNN ', 'EEEEEEIIIIIIIKKKKKKKLLLLLLMMMMMMNNNN ', 'EEEEIIIIIIIIIKKKKKKKKKLLLMMMMMMMNNNNN ', 'EEEEIIIIIIIIJJKKKKKKKKLLLMMMMNNNNNNSSS ', 'EEEEIIIIIIIJJJJJKKKKKKKLQMMMQNNNNNNSSSSS', 'OOOIIIIIJJJJJJJJJJJKKKKLQQQQQNNNNNNSSSSS', 'OOOOIIIIJJJJJJJJJJJJJKKQQQQQQRRRNNNSSSSS', 'OOOOOOOJJJJJJJJJJJJJJJKQQQQRRRRRRRRSSSSS', 'OOOOOOOOOOOJJJOOOOPPPPPPQRRRRRRRRRRRSSSS', 'OOOOOOOOOOOOOOOOOOPPPPPPPRRRRRRRRRRRRSSS', 'OOOOOOOOOOOOOOOOOOPPPPPPPRRRRRRRRRRRRRSS', 'OOOOOOOOOOOOOOOOOOPPPPPPPPRRRRRRRRRRRRRR', 'OOOOOOOOOOOOOOOOOOPPPPPPPPRRRRRRRRRRRRRR', 'OOOOOOOOOOOOOOOOOOOOPPPPPPRRRRRRRRRRRRRR', 'OOOOOOOOOOOOOOOOOOOOPPPPPPRRRRRRRRRRRRRR'];
this.regions = [{'name': 'Fading Lands', 'terrain': 1, 'enemy': ['bandit', {'enemy': 'kaufo', 'condition': function () {
return (Core.Get()).game.isFlag('q_kaufo_betrayal');
}}]}, {'name': 'Carben Valley', 'terrain': 1, 'enemy': ['bandit', {'enemy': 'alien', 'condition': function () {
return !(Core.Get()).game.isInParty(5);
}}, {'enemy': 'kaufo', 'condition': function () {
return (Core.Get()).game.isFlag('q_kaufo_betrayal');
}}]}, {'name': 'Integra Region', 'terrain': 1, 'enemy': ['robot', 'bandit', {'enemy': 'alien', 'condition': function () {
return !(Core.Get()).game.isInParty(5);
}}, {'enemy': 'meta', 'condition': function () {
return !(Core.Get()).game.isInParty(8);
}}]}, {'name': 'Silent Desert', 'terrain': 2, 'enemy': ['robot', {'enemy': 'meta', 'condition': function () {
return !(Core.Get()).game.isInParty(8);
}}]}, {'name': 'Nexuser Region', 'terrain': 3, 'enemy': ['gartt', {'enemy': 'kaufo', 'condition': function () {
return (Core.Get()).game.isFlag('q_kaufo_betrayal');
}}]}, {'name': 'Ameno Valley', 'terrain': 1, 'enemy': ['robot', 'zombie', {'enemy': 'kaufo', 'condition': function () {
return (Core.Get()).game.isFlag('q_kaufo_betrayal');
}}]}, {'name': 'Espian Plains', 'terrain': 4, 'enemy': ['mutant', {'enemy': 'alien', 'condition': function () {
return !(Core.Get()).game.isInParty(5);
}}]}, {'name': 'Gessier Plains', 'terrain': 2, 'enemy': ['raider', {'enemy': 'meta', 'condition': function () {
return !(Core.Get()).game.isInParty(8);
}}]}, {'name': 'Vectral Highs', 'terrain': 3, 'enemy': ['robot', 'mutant']}, {'name': 'Demien Highs', 'terrain': 3, 'enemy': ['mutant', 'zombie', 'bandit']}, {'name': 'Hellsing Valley', 'terrain': 4, 'enemy': ['raider', 'zombie']}, {'name': 'Gibson Region', 'terrain': 4, 'enemy': [{'enemy': 'raider', 'condition': function () {
return (Core.Get()).game.getFlag('q_gibsonquest') <= 2;
}}, {'enemy': 'mutant', 'condition': function () {
return (Core.Get()).game.getFlag('q_gibsonquest') >= 2 && (Core.Get()).game.getFlag('q_gibsonquest') <= 4;
}}, {'enemy': 'alien', 'condition': function () {
return !(Core.Get()).game.isInParty(5);
}}]}, {'name': 'Strat Plateau', 'terrain': 2, 'enemy': ['rabbit', 'raider', 'bandit', {'enemy': 'rogue_meta', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_bigalienplan') && !(Core.Get()).game.getFlag('drop_vacuumengine');
}}]}, {'name': 'Left Mids', 'terrain': 2, 'enemy': ['rabbit', 'gartt']}, {'name': 'Deus Mointain Chain', 'terrain': 3, 'enemy': []}, {'name': 'Tatin\'s Highs', 'terrain': 3, 'enemy': ['mutant', 'gartt']}, {'name': 'Last Stand Plains', 'terrain': 4, 'enemy': ['grabber', 'rabbit']}, {'name': 'Paradark Region', 'terrain': 4, 'enemy': ['soldier', 'robot']}, {'name': 'Top Secret Region', 'terrain': 2, 'enemy': ['soldier', 'shade']}];
this.bands = new BandData();
this.enemy = new Object();
this.enemy.RP = {'weapon': EItemType.PISTOL, 'device': -1, 'vit': 5, 'def': 7, 'acc': 5, 'dgr': 5, 'tch': 7, 'med': 0, 'lck': 4, 'frame': 1};
this.enemy.RA = {'weapon': EItemType.ASSAULT, 'device': -1, 'vit': 6, 'def': 7, 'acc': 5, 'dgr': 5, 'tch': 7, 'med': 0, 'lck': 4, 'frame': 2};
this.enemy.RG = {'weapon': EItemType.HEAVY, 'device': -1, 'vit': 7, 'def': 7, 'acc': 5, 'dgr': 5, 'tch': 7, 'med': 0, 'lck': 4, 'frame': 3};
this.enemy.RH = {'weapon': EItemType.MELEE, 'device': 120, 'vit': 5, 'def': 6, 'acc': 5, 'dgr': 4, 'tch': 5, 'med': 7, 'lck': 4, 'frame': 4};
this.enemy.MM = {'weapon': EItemType.MELEE, 'device': 121, 'vit': 4, 'def': 6, 'acc': 6, 'dgr': 8, 'tch': 8, 'med': 0, 'lck': 6, 'frame': 5};
this.enemy.MG = {'weapon': EItemType.HEAVY, 'device': 122, 'vit': 4, 'def': 9, 'acc': 6, 'dgr': 8, 'tch': 8, 'med': 0, 'lck': 6, 'frame': 6};
this.enemy.MP = {'weapon': EItemType.PISTOL, 'device': 123, 'vit': 4, 'def': 6, 'acc': 6, 'dgr': 8, 'tch': 8, 'med': 0, 'lck': 6, 'frame': 7};
this.enemy.MZ = {'weapon': EItemType.HEAVY, 'device': 89, 'vit': 4, 'def': 999, 'acc': 6, 'dgr': 8, 'tch': 8, 'med': 0, 'lck': 999, 'frame': 6};
this.enemy.ZM = {'weapon': EItemType.MELEE, 'device': 124, 'vit': 8, 'def': 5, 'acc': 4, 'dgr': 12, 'tch': 3, 'med': 0, 'lck': 3, 'frame': 8};
this.enemy.ZZ = {'weapon': EItemType.MELEE, 'device': 125, 'vit': 12, 'def': 5, 'acc': 4, 'dgr': 17, 'tch': 5, 'med': 0, 'lck': 3, 'frame': 9};
this.enemy.UX = {'weapon': EItemType.RLAUNCHER, 'device': -1, 'vit': 20, 'def': 9, 'acc': 4, 'dgr': 6, 'tch': 4, 'med': 3, 'lck': 7, 'frame': 10};
this.enemy.UG = {'weapon': EItemType.HEAVY, 'device': -1, 'vit': 20, 'def': 9, 'acc': 4, 'dgr': 6, 'tch': 4, 'med': 3, 'lck': 5, 'frame': 11};
this.enemy.UZ = {'weapon': EItemType.SNIPER, 'device': 126, 'vit': 30, 'def': 11, 'acc': 4, 'dgr': 8, 'tch': 5, 'med': 3, 'lck': 5, 'frame': 12};
this.enemy.GA = {'weapon': EItemType.ASSAULT, 'device': -1, 'vit': 9, 'def': 3, 'acc': 6, 'dgr': 10, 'tch': 5, 'med': 5, 'lck': 8, 'frame': 13};
this.enemy.GX = {'weapon': EItemType.GLAUNCHER, 'device': -1, 'vit': 9, 'def': 3, 'acc': 7, 'dgr': 10, 'tch': 5, 'med': 5, 'lck': 7, 'frame': 14};
this.enemy.GZ = {'weapon': EItemType.SHOTGUN, 'device': 82, 'vit': 10, 'def': 4, 'acc': 8, 'dgr': 15, 'tch': 10, 'med': 5, 'lck': 8, 'frame': 15};
this.enemy.BM = {'weapon': EItemType.MELEE, 'device': -1, 'vit': 4, 'def': 4, 'acc': 4, 'dgr': 4, 'tch': 3, 'med': 2, 'lck': 3, 'frame': 16};
this.enemy.BP = {'weapon': EItemType.PISTOL, 'device': -1, 'vit': 4, 'def': 4, 'acc': 4, 'dgr': 4, 'tch': 3, 'med': 2, 'lck': 3, 'frame': 17};
this.enemy.BN = {'weapon': EItemType.SNIPER, 'device': -1, 'vit': 5, 'def': 5, 'acc': 4, 'dgr': 6, 'tch': 3, 'med': 2, 'lck': 3, 'frame': 18};
this.enemy.BZ = {'weapon': EItemType.SHOTGUN, 'device': -1, 'vit': 6, 'def': 5, 'acc': 4, 'dgr': 6, 'tch': 3, 'med': 2, 'lck': 3, 'frame': 19};
this.enemy.YS = {'weapon': EItemType.SHOTGUN, 'device': 111, 'vit': 8, 'def': 8, 'acc': 10, 'dgr': 5, 'tch': 5, 'med': 5, 'lck': 15, 'frame': 20};
this.enemy.YG = {'weapon': EItemType.HEAVY, 'device': 106, 'vit': 5, 'def': 5, 'acc': 10, 'dgr': 8, 'tch': 8, 'med': 5, 'lck': 15, 'frame': 21};
this.enemy.DP = {'weapon': EItemType.PISTOL, 'device': 94, 'vit': 8, 'def': 6, 'acc': 6, 'dgr': 6, 'tch': 5, 'med': 5, 'lck': 5, 'frame': 22};
this.enemy.DU = {'weapon': EItemType.SMG, 'device': 94, 'vit': 8, 'def': 6, 'acc': 6, 'dgr': 6, 'tch': 5, 'med': 5, 'lck': 5, 'frame': 23};
this.enemy.DZ = {'weapon': EItemType.SHOTGUN, 'device': -1, 'vit': 9, 'def': 6, 'acc': 6, 'dgr': 6, 'tch': 5, 'med': 5, 'lck': 5, 'frame': 24};
this.enemy.SA = {'weapon': EItemType.ASSAULT, 'device': 83, 'vit': 10, 'def': 10, 'acc': 10, 'dgr': 10, 'tch': 4, 'med': 10, 'lck': 10, 'frame': 25};
this.enemy.SN = {'weapon': EItemType.SNIPER, 'device': -1, 'vit': 15, 'def': 15, 'acc': 15, 'dgr': 15, 'tch': 10, 'med': 10, 'lck': 15, 'frame': 26};
this.enemy.SH1 = {'weapon': EItemType.PISTOL, 'device': 108, 'vit': 10, 'def': 10, 'acc': 10, 'dgr': 8, 'tch': 6, 'med': 20, 'lck': 10, 'frame': 27};
this.enemy.SH2 = {'weapon': EItemType.PISTOL, 'device': 109, 'vit': 10, 'def': 10, 'acc': 10, 'dgr': 8, 'tch': 6, 'med': 20, 'lck': 10, 'frame': 27};
this.enemy.SH3 = {'weapon': EItemType.PISTOL, 'device': 110, 'vit': 10, 'def': 10, 'acc': 10, 'dgr': 8, 'tch': 6, 'med': 20, 'lck': 10, 'frame': 27};
this.enemy.HM = {'weapon': EItemType.MELEE, 'device': 113, 'vit': 9, 'def': 9, 'acc': 9, 'dgr': 9, 'tch': 9, 'med': 9, 'lck': 9, 'frame': 28};
this.enemy.A1 = {'weapon': EItemType.PISTOL, 'device': 116, 'vit': 6, 'def': 10, 'acc': 12, 'dgr': 12, 'tch': 5, 'med': 12, 'lck': 12, 'frame': 29};
this.enemy.A2 = {'weapon': EItemType.PISTOL, 'device': 115, 'vit': 10, 'def': 8, 'acc': 10, 'dgr': 14, 'tch': 14, 'med': 10, 'lck': 10, 'frame': 30};
this.enemy.KP = {'weapon': EItemType.PISTOL, 'device': 102, 'vit': 12, 'def': 10, 'acc': 12, 'dgr': 14, 'tch': 8, 'med': 8, 'lck': 6, 'frame': 31};
this.enemy.XX = {'weapon': EItemType.PSI, 'device': 127, 'vit': 50, 'def': 3, 'acc': 10, 'dgr': 16, 'tch': 12, 'med': 10, 'lck': 15, 'frame': 32};
this.enemy.QCYB = {'weapon': EItemType.HEAVY, 'device': 119, 'vit': 18, 'def': 18, 'acc': 18, 'dgr': 18, 'tch': 20, 'med': 0, 'lck': 3, 'frame': 34};
this.enemy.QHEL = {'weapon': EItemType.RLAUNCHER, 'device': 118, 'vit': 9, 'def': 9, 'acc': 8, 'dgr': 9, 'tch': 4, 'med': 2, 'lck': 9, 'frame': 35};
this.enemy.QCEL = {'weapon': EItemType.SNIPER, 'device': 110, 'vit': 27, 'def': 17, 'acc': 25, 'dgr': 18, 'tch': 17, 'med': 3, 'lck': 17, 'frame': 36};
this.enemy.QGRN = {'weapon': EItemType.SHOTGUN, 'device': 138, 'vit': 35, 'def': 20, 'acc': 10, 'dgr': 13, 'tch': 8, 'med': 3, 'lck': 10, 'frame': 37};
this.enemy.QNTN = {'weapon': EItemType.PISTOL, 'device': 106, 'vit': 40, 'def': 25, 'acc': 15, 'dgr': 20, 'tch': 12, 'med': 10, 'lck': 7, 'frame': 38};
this.enemy.QCID = {'weapon': EItemType.ASSAULT, 'device': 128, 'vit': 45, 'def': 20, 'acc': 12, 'dgr': 25, 'tch': 25, 'med': 5, 'lck': 10, 'frame': 39};
this.enemy.QSRF = {'weapon': EItemType.PISTOL, 'device': 117, 'vit': 50, 'def': 15, 'acc': 14, 'dgr': 15, 'tch': 18, 'med': 15, 'lck': 15, 'frame': 40};
this.enemy.QGRD = {'weapon': EItemType.SMG, 'device': 110, 'vit': 25, 'def': 25, 'acc': 25, 'dgr': 25, 'tch': 25, 'med': 25, 'lck': 20, 'frame': 41};
this.enemy.QMST = {'weapon': EItemType.HEAVY, 'device': 129, 'vit': 50, 'def': 13, 'acc': 9, 'dgr': 30, 'tch': 15, 'med': 4, 'lck': 5, 'frame': 42};
this.enemy.QDKS = {'weapon': EItemType.MELEE, 'device': 138, 'vit': 20, 'def': 15, 'acc': 3, 'dgr': 9, 'tch': 10, 'med': 1, 'lck': 3, 'frame': 43};
this.enemy.QKEY = {'weapon': EItemType.PISTOL, 'device': -1, 'vit': 4, 'def': 4, 'acc': 6, 'dgr': 6, 'tch': 6, 'med': 2, 'lck': 7, 'frame': 44};
this.enemy.QKRY = {'weapon': EItemType.PISTOL, 'device': -1, 'vit': 4, 'def': 5, 'acc': 5, 'dgr': 5, 'tch': 8, 'med': 8, 'lck': 4, 'frame': 45};
this.level_exp = [0, 100, 250, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000, 21000, 22000];
};
_global.WorldData = v1;
var v2 = v1.prototype;
v2.getRegion = function (tile_) {
var v2 = this.region_map[tile_.y].charCodeAt(tile_.x) - 65;
return v2 < 0 ? -1 : v2;
};
v2.getItemType = function (item_) {
return this.items[item_].type;
};
v2.getQuestTitle = function (quest_) {
return this.quests[quest_].title;
};
v2.getQuestPart = function (quest_, sub_) {
return this.tasks[quest_][sub_];
};
v2.getQuestItemName = function (id_) {
return this.quest_items[id_].name;
};
v2.getQuestItemDescri = function (id_) {
return this.quest_items[id_].descri;
};
v2.getSellPrice = function (item_) {
return Math.ceil(this.items[item_].cost / 2);
};
v2.getBuyPrice = function (item_) {
return this.items[item_].cost;
};
v2.localRu = function () {
this.talk = new TalkData();
this.areas[0].caption = 'ОфициальнаÑ\nÑÐµÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð±Ð°Ð·Ð°\nУ.Ð’.И.Ф.Ж.';
this.areas[0].caption2 = 'ÐžÑ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ ÑÐµÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð±Ð°Ð·Ð° У.Ð’.И.Ф.Ж.';
this.areas[1].caption = 'Интегра';
this.areas[2].caption = 'ÐÑтрал';
this.areas[3].caption = 'Ðикки';
this.areas[4].caption = 'Летний Сад';
this.areas[5].caption = 'Раймонд';
this.areas[6].caption = 'Убежище\nМета-воинов';
this.areas[6].caption2 = 'Убежище Мета-воинов';
this.areas[7].caption = 'ОазиÑ';
this.areas[8].caption = 'База пришельцев';
this.areas[9].caption = 'Бетавилль';
this.areas[10].caption = 'КÑмерон';
this.areas[11].caption = 'Ðевермор';
this.areas[12].caption = 'Рейнланд';
this.areas[13].caption = 'ПоÑадка ÐЛО 1';
this.areas[14].caption = 'ПоÑадка ÐЛО 2';
this.areas[15].caption = 'ПоÑадка ÐЛО 3';
this.areas[16].caption = 'ПоÑадка ÐЛО 4';
this.areas[17].caption = 'ПоÑадка ÐЛО 5';
this.areas[18].caption = 'ПоÑадка ÐЛО 6';
this.areas[19].caption = 'КалиÑтер';
this.areas[20].caption = 'Сирт';
this.areas[21].caption = 'Мёртвый город\nКалипÑо';
this.areas[21].caption2 = 'Мёртвый город КалипÑо';
this.areas[22].caption = 'Ферма дÑдюшки СÑма';
this.areas[23].caption = 'ГибÑон-Ñити';
this.areas[24].caption = 'КаÑтеда';
this.areas[25].caption = 'Владзвилль';
this.areas[26].caption = 'Порт';
this.areas[27].caption = 'Ðефритовый оÑтров';
this.areas[28].caption = 'Ð’Ð¾ÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð°';
this.areas[29].caption = 'Капитолий Дарк';
this.areas[30].caption = 'Ðльфавилль';
this.areas[31].caption = 'ЛабораториÑ\nSarreno+';
this.areas[31].caption2 = 'Ð›Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ Sarreno+';
this.areas[32].caption = 'Ð’Ñ‹Ñокогорье';
this.npc = new NPCData();
this.chars[0].name = 'Грид';
this.chars[1].name = 'Кей';
this.chars[2].name = 'Катенька';
this.chars[3].name = 'CID';
this.chars[4].name = 'Курт';
this.chars[5].name = 'Карри';
this.chars[6].name = 'Кейдж';
this.chars[7].name = 'ЛекÑик';
this.chars[8].name = 'Крейвен';
this.chars[9].name = 'Фивер';
this.chars[10].name = 'Ðина X';
this.chars[11].name = 'Ð¥Ñл';
this.quests.ufo_visit = {'title': 'СЛЕД ПРИШЕЛЬЦЕВ'};
this.tasks.ufo_visit = ['Я должен отправитьÑÑ Ð² район, где видели пришельцев. Ðужно поÑмотреть, правда ли они там были, и что проиÑходит. Ð’ общем, вÑе как обычно.', 'Ð¡ÑƒÐ´Ñ Ð¿Ð¾ выжженной земле и Ñледам диÑкотеки, в районе дейÑтвительно были пришельцы. Следует раÑÑпроÑить жителей ближайшей деревни.', 'Похоже, из района близ деревни Ðикки, пришельцы направилиÑÑŒ в направлении города Интегра.', 'Ð’Ñе жители города Интегра куда-то иÑчезли! Следует Ñообщить об Ñтом Ðатану. Похоже, пришельцы разошлиÑÑŒ ни на шутку.'];
this.quests.natan_plan = {'title': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐÐ'};
this.tasks.natan_plan = ['Ðатан был крайне возмущен тем, что жители города Интегра пропали. Ему нужно времÑ, чтобы придумать гениальный план дальнейших дейÑтвий. ВернуÑÑŒ к нему через чаÑ.', 'Мне нужно взÑÑ‚ÑŒ у Карла Ð’Ð°ÐºÑƒÐ¾Ð»Ñ Ñ‚ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ñ‹Ð¹ телевизор и Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ него Ñделать запиÑи во вÑех меÑтах, где видели пришельцев недавно – вÑего таких меÑÑ‚ 6, они отмечены на карте.', 'Мне удалоÑÑŒ Ñобрать вÑе видео из меÑÑ‚, где видели пришельцев. Я Ð¾Ñ‚Ð½ÐµÑ ÐµÐ³Ð¾ Ðатану, и он, запаÑшиÑÑŒ попкорном, проÑматривает его. ВернуÑÑŒ-ка Ñ ÐµÑ‰Ðµ через чаÑок-другой...', 'Ðатану удалоÑÑŒ вычиÑлить меÑтоположение главной базы пришельцев – оказываетÑÑ, они находÑÑ‚ÑÑ Ð½Ð° дне КонÑкого МорÑ. Ðужно ÑнарÑдить туда ÑкÑпедицию.', 'Чтобы капитан Ñудна «ÐеизбежноÑть» ÑоглаÑилÑÑ Ð¾Ñ‚Ð²ÐµÐ·Ñ‚Ð¸ Ð²Ð°Ñ Ðº базе пришельцев, Ñ Ð¿Ð¾Ñ‡ÐµÐ¼Ñƒ-то должен доказать ему Ñвою доблеÑÑ‚ÑŒ, убив 3Ñ… грабберов в районе равнин ЛаÑÑ‚ Стенд.', 'Дурацкий капитан придумал мне еще одно задание, в Ñтот раз – оÑмыÑленное. Мне Ñледует поймать в районе Равнин Страта злоумышленников, которые украли вакуумный мотор ÐеизбежноÑти.', 'Я отправлÑÑŽÑÑŒ на Ñекретную базу пришельцев, чтобы убить их лидера... Вот он, момент иÑтины.'];
this.quests.meta_oasis = {'title': 'ОÐЗИС И МЕТÐ-ВОИÐЫ'};
this.tasks.meta_oasis = ['Вот ведь незадача! Мета-воины взÑли Ð¼ÐµÐ½Ñ Ð² плен и нацепили на ногу детонирующий датчик! Теперь мне нужно выполнить их задание, чтобы обреÑти былую Ñвободу. ПридетÑÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑŒÑÑ Ð² город ОазиÑ, чтобы заключить от лица Мета-воинов Ñ Ð½Ð¸Ð¼Ð¸ Ñоглашение о ÑотрудничеÑтве.', 'Глава города ÐžÐ°Ð·Ð¸Ñ Ð¿Ñ€Ð¾Ñит провеÑти ей Интернет, тогда она ÑоглаÑна на ÑотрудничеÑтво. РаÑÑкажу об Ñтом Лине.'];
this.quests.meta_raimonde = {'title': 'ПОМОЧЬ ДЕРЕВÐЕ Ð ÐЙМОÐД'};
this.tasks.meta_raimonde = ['Лина нечеÑтнаÑ! Она хочет, чтобы Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ð» еще одно задание. Можно подумать, у Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ выбор – Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‚Ð¾Ð¼-то на ноге. Ðужно пойти в деревню Раймонд и выÑÑнить, что у них там за проблема, а заодно и решить ее.', 'ДейÑтвительно, в деревне физиков Раймонд проблема – куда-то пропал ученый Карл Вакуоль. Улики указывают, что Ñледует поиÑкать его Ñледы в небольшом меÑтечке под названием «Летний Сад».', 'Мне удалоÑÑŒ помочь деревне Раймонд. Ðужно раÑÑказать об Ñтом Лине. ÐадеюÑÑŒ, в Ñтот раз она Ð¼ÐµÐ½Ñ Ð¾Ñ‚Ð¿ÑƒÑтит. ÐеблагодарнаÑ.'];
this.quests.meta_uprise = {'title': 'ВОССТÐÐИЕ МЕТÐ-ВОИÐОВ'};
this.tasks.meta_uprise = ['Зачем-то Ñ ÑоглаÑилÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ в подготовке воÑÑÑ‚Ð°Ð½Ð¸Ñ ÐœÐµÑ‚Ð°-воинов. Возможно, мной владеет Ð°Ð»Ñ‡Ð½Ð°Ñ Ð¶Ð°Ð¶Ð´Ð° награды... Ð’ любом Ñлучае, Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ отправлÑÑ‚ÑŒÑÑ Ð² деревню Раймонд и помочь там Вакуолю и Беккорду в подготовке воÑÑтаниÑ.', 'Я помог обоим ученым деревни Раймонд в подготовке воÑÑтаниÑ.', 'Следующий Ñтап подготовки воÑÑÑ‚Ð°Ð½Ð¸Ñ â€“ заключение Ñоюза Ñ Â«Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ð¼ мертвых» КалипÑо. ВеÑелые они, Ñти Мета-воины. ЖизнерадоÑтные.', 'КалипÑо заключит Ñоюз Ñ ÐœÐµÑ‚Ð°-воинами только в том Ñлучае, еÑли те Ñмогут «вернуть их к жизни». Уж не знаю, ÑущеÑтвуют ли такие иÑÑледованиÑ... надо ÑпроÑить у Лины.', 'ОказываетÑÑ, ÑущеÑтвуют. ИÑÑледованиÑми иÑкуÑÑтвенной жизни занималÑÑ ÐºÐ¾Ð³Ð´Ð°-то МихаÑль из деревни Раймонд. Ðужно убедить его помочь бедной нежити.', 'Как тщеÑлавны люди! Ðемного леÑти, и МихаÑль ÑоглаÑилÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ. Самое Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑказать об Ñтом Фие.', 'Как и ожидалоÑÑŒ, теперь «немертваÑ» Ñила города КалипÑо на Ñтороне Мета-воинов. ОÑталоÑÑŒ только раÑÑказать Лине о Ñвоем уÑпехе.', 'Ðу что же, Ñоюз Ñ ÐšÐ°Ð»Ð¸Ð¿Ñо заключен, Ð´ÐµÑ€ÐµÐ²Ð½Ñ Ð Ð°Ð¹Ð¼Ð¾Ð½Ð´ занимаетÑÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ñтвом техники. Что дальше? Ðужно ÑпроÑить у Лины.', 'Ðе вÑе так гладко, как казалоÑÑŒ. У Мета-воинов закончилиÑÑŒ деньги. Теперь революции нужен инвеÑтор... Я должен отправитьÑÑ Ð² город богачей КаÑтеда и привлечь капиталы одного из меÑтных меценатов.', 'ИнвеÑтиции найдены. Лина будет рада уÑлышать... еÑли конечно Ñта девочка-компьютер умеет радоватьÑÑ.', 'Будем Ñчитать, что она обрадовалаÑÑŒ. Во вÑÑком Ñлучае, зарплата порадовала. Сразу видно, что ÑтаралÑÑ Ð½Ðµ зрÑ.', 'Ð ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ñ Ð² дейÑтвии!.. Ðе понимаю, как Ñ Ð²Ð²ÑзалÑÑ Ð²Ð¾ вÑе Ñто, но уверен, что делаю правильную вещь... в общем, на мне ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ð¶Ð½Ð¾Ðµ задание – уничтожение военной базы, где находÑÑ‚ÑÑ Ð¾Ñновные Ñилы президента МиÑÑ‚.', 'Ура, товарищи! Ð ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ñ Ð¸Ð´ÐµÑ‚ полным ходом! Я уничтожил военную базу. Ðужно возвращатьÑÑ Ðº Лине и получить дальнейшие инÑтрукции.', 'СобÑтвенно говорÑ, что и ожидалоÑÑŒ. Мое Ñледующее задание принеÑет мир в Ñтот мир. И порÑдок. ÐœÐ¾Ñ Ð·Ð°Ð´Ð°Ñ‡Ð° – Ñвергнуть правительÑтво и захватить Ñтолицу Дарк...'];
this.quests.astral_flowers = {'title': 'ÐСТРÐЛЬÐЫЕ ЦВЕТЫ'};
this.tasks.astral_flowers = ['Я вызвалÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ Ñтранному фермеру из ÐÑтральной Деревни Ñобрать 10 аÑтральных ÑемÑн. Они выпадают из врагов в окреÑтноÑÑ‚ÑÑ… деревни.'];
this.quests.bristol_divorce = {'title': 'Ð ÐЗВОД БРИСТОЛ'};
this.tasks.bristol_divorce = ['Я ÑоглаÑилÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ модели и художнице БриÑтол развеÑтиÑÑŒ Ñ ÐµÐµ мужем, мои давним знакомым – Сетом из города КаÑтеда.', 'Сет довольно Ñпокойно воÑпринÑл повеÑтку. Ðу что ж, мое дело Ñделано, надо раÑÑказать БриÑтол о том, что она Ñнова Ñвободна.'];
this.quests.debt_collection = {'title': 'ВЫБИВÐТЕЛЬ ДОЛГОВ'};
this.tasks.debt_collection = ['ÐÐ¹Ñ Ð¸Ð· города КÑмерон дает деньги в долг. Однако не вÑе ÑтремÑÑ‚ÑÑ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°Ñ‚ÑŒ долг. Ðужно помочь ему и забрать долг у Вермута из фашиÑÑ‚Ñкой деревни Гартт.', 'Ðу что же, Вермут вернул долг. ОÑталоÑÑŒ Ñходить к Сету за процентами.'];
this.quests.love_story = {'title': 'ЛЮБОВÐЫЙ КУРЬЕР'};
this.tasks.love_story = ['Лиз из Рейнленда тайно влюблена в... кто бы мог подумать... мÑра города КÑмерон, Стена! Ðу и Ð²ÐºÑƒÑ Ñƒ нее... Помочь что ли бедной девушке?', 'Так вот, Ñта Лиз попроÑила передать Ñвоему возлюбленному Стену любовную запиÑку.', 'Стен вроде бы не оÑобо возражает против вÑтречи Ñ Ð›Ð¸Ð·... не знаю, получитÑÑ Ð»Ð¸ из Ñтого что-либо хорошее, но Ñказать об Ñтом девушке, думаю, Ñтоит.'];
this.quests.love_story_2 = {'title': 'ЛЮБОВÐЫЙ КУРЬЕР-2'};
this.tasks.love_story_2 = ['Похоже, что у Лиз и Стена не ÑложилоÑÑŒ (впрочем, кто бы ÑомневалÑÑ...). Правда, девушка быÑтро оправилаÑÑŒ от горÑ, и теперь у нее новый возлюбленный... фашиÑÑ‚ Мигель из БетавилÑ! Ðет, Ñерьезно, что Ñ Ð½ÐµÐ¹ не так? Ð’ общем, она попроÑила Ð¼ÐµÐ½Ñ Ð¾Ñ‚Ð½ÐµÑти запиÑку теперь уже ему.', 'ÐœÐ¸Ð³ÐµÐ»Ñ Ð²Ð¾Ð¾Ð´ÑƒÑˆÐµÐ²Ð¸Ð»Ð° Ð»ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка, и Ñ…Ð¾Ñ‚Ñ Ð¾Ð½ никогда в жизни не видел Лиз, он заÑвил, что любит ее. Ðу что же, возможно два пÑиха нашли друг друга... надо порадовать девушку.'];
this.quests.rain_machine = {'title': 'ДОЖДЕВÐЯ ÐœÐШИÐÐ'};
this.tasks.rain_machine = ['Ð’ Рейнленде нет ни капли дождÑ... оказываетÑÑ, Ñто потому, что ÑломалаÑÑŒ Ð´Ð¾Ð¶Ð´ÐµÐ²Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð°, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ð»Ð° оÑадки в Ñтом заÑушливом изначально меÑте. Дождевую машину Ñобирали в городе ОазиÑ, так что, возможно, они Ñумеют помочь и Ñ ÐµÐµ починкой.', 'Мне удалоÑÑŒ починить дождевую машину! ОÑталоÑÑŒ только похваÑтатьÑÑ Ñвоими доÑтижениÑми.'];
this.quests.soil_analysis = {'title': 'ОБРÐЗЦЫ ПОЧВЫ'};
this.tasks.soil_analysis = ['Я вызывалÑÑ Ñобрать образцы почвы Ñо вÑего мира. КажетÑÑ, за Ñто Ð¼ÐµÐ½Ñ Ð¶Ð´ÐµÑ‚ Ñ…Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°!'];
this.quests.love_hunter = {'title': 'ЛЮБОВÐЫЙ ОХОТÐИК'};
this.tasks.love_hunter = ['Развращенный муÑорщик из ГибÑон Сити по имени Джон попроÑил Ð¼ÐµÐ½Ñ Ð²Ð·ÑÑ‚ÑŒ у Беккорда из деревни Раймонд «любовный чип» и вживить его извеÑтной актриÑе, певице и модели Байби.', 'Я взÑл любовный чип у Беккорда. Теперь нужно каким-то образом вживить его Байби... не предÑтавлÑÑŽ, правда, как Ñто возможно...', 'Ðу что же, чип Байби вживлен, Ñто оказалоÑÑŒ проще, чем... что бы то ни было. ÐевероÑтно, Ñта девочка по-наÑтоÑщему ТУПÐЯ.'];
this.quests.infidels = {'title': 'ÐЕВЕРÐЫЕ'};
this.tasks.infidels = ['Когда-то давно, Ñекта ÐрмадоÑа, поклонÑющаÑÑÑ ÐºÐ¸Ð±ÐµÑ€Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑкому божеÑтву, изобрела 13 адÑких машин, цель которых была поработить человечеÑтво. Правда, машины вышли из под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð¸, видимо, не Ñтали порабощать человечеÑтво, а проÑто нападают на людей. Ð’ общем, Ð¼Ð¾Ñ Ð·Ð°Ð´Ð°Ñ‡Ð° уничтожить вÑе 13 адÑких машин, и тогда Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ñƒ Ñекретное оружие ÐрмадоÑа.'];
this.quests.raiding_raiders = {'title': 'РЕЙД ПО РЕЙДЕРÐÐœ'};
this.tasks.raiding_raiders = ['Я пообещал главе города ГибÑон убить 20 рейдеров, что мешают въезду/выезду в город.'];
this.quests.raiding_mutants = {'title': 'РЕЙД ПО МУТÐÐТÐÐœ'};
this.tasks.raiding_mutants = ['Стоило мне прогнать из района ГибÑон Сити рейдеров, как на их меÑто пришли мутанты. И теперь уже они мешают въезду/выезду в город. Угадайте, что от Ð¼ÐµÐ½Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ? Убить 25 мутантов в районе ГибÑон-Сити.'];
this.quests.michels_medallion = {'title': 'МЕДÐЛЬОРМИШЕЛЬ'};
this.tasks.michels_medallion = ['Один из... клиентов... Мишель украл ее медальон. Так что еÑли вдруг найдете у одного из бандитов Ñтранный медальон, то Ñкорее вÑего он принадлежал Мишель.'];
this.quests.clean_suburbs = {'title': 'ЗÐЧИСТКРПРИГОРОДÐ'};
this.tasks.clean_suburbs = ['Ð”Ð¶Ð°ÐºÑ Ð¿Ð¾Ð¿Ñ€Ð¾Ñил Ð¼ÐµÐ½Ñ Ð·Ð°Ñ‡Ð¸Ñтить пригород и убить в районе выÑот Демиена 50 бандитов за награду. Главное, не пожимать ему руку... а то вдруг оторвет.'];
this.quests.talks_with_aliens = {'title': 'Ð ÐЗГОВОРЫ С ПРИШЕЛЬЦÐМИ'};
this.tasks.talks_with_aliens = ['Иногда так бывает, что вдруг переоÑмыÑлÑешь вÑе то, чем жил раньше. Также и Ñ. Ð’ общем, получилоÑÑŒ так, что Ñ Ð¿Ñ€ÐµÐ´Ð°Ð» К.Ð.У.Ф.О. ради того, чтобы поговорить Ñ Ð˜Ð¼Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ пришельцев. Мне не дает Ð¿Ð¾ÐºÐ¾Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¾Ð± иÑтине... понимаю, что теперь за мной будут охотитьÑÑ Ñ‚Ðµ, Ñ ÐºÐµÐ¼ Ñ Ñ€Ð°Ð½ÑŒÑˆÐµ работал.', 'Что ж, теперь мне вÑе понÑтно. Я поÑпоÑобÑтвую пришельцам, ведь они, в отличие от жителей Ñтой планеты, хотÑÑ‚ землÑнам добра. Мне Ñледует вернутьÑÑ Ð² город Интегра и ожидать начала дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð»Ð°Ð½Ð° ÑÑра ÐÑ„.', 'Сид захватил контроль над Мета-воинами, обманом убив Лину и поработив умы оÑтальных поÑредÑтвом чипа ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ñ€Ð°Ð·ÑƒÐ¼Ð°. Я отправлюÑÑŒ на базу Мета-воинов и уничтожу его. Он может помешать плану пришельцев.', 'К.Ð.У.Ф.О. уÑтроили облаву и атакуют базу пришельцев. Ðужно поÑпешить в город Интегра и телепортироватьÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾, чтобы помочь ÑÑру ÐÑ„.', 'СÑÑ€ ÐÑ„ обратитÑÑ ÐºÐ¾ вÑем людÑм Земли поÑредÑтвом транÑлÑции из города КалиÑтер. ÐœÐ¾Ñ Ð·Ð°Ð´Ð°Ñ‡Ð° отправитьÑÑ Ð² Ñтот город и защищать транÑлÑцию до Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñ€ÐµÑ‡Ð¸ ÑÑра ÐÑ„.'];
this.quests.keabo_style = {'title': 'ДИСК КИБО-СТÐЙЛ'};
this.tasks.keabo_style = ['Кибо попроÑил Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾Ð»ÐºÐ½ÑƒÑ‚ÑŒ его диÑк на какую-нибудь радиоÑтанцию, не иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿Ñ€Ð¸ Ñтом денег, чтобы вÑе было чеÑтно. ПоÑлушал Ñ Ñ‚Ð¾Ñ‚ диÑк... нет, не фанат Ñ Ñ‚Ð°ÐºÐ¾Ð¹ музыки.', 'Похоже, одну радиоÑтанцию диÑк вÑе-таки заинтереÑовал. Ðужно порадовать дебютанта.'];
this.quests.feel_of_guilty = {'title': 'ЧУВСТВО ВИÐЫ'};
this.tasks.feel_of_guilty = ['Девочка по имени Гидра уÑтроила жеÑтокую бойню в городе Ðевермор, чем вызвала недовольÑтво Ñвоих родителей, которые переÑтали ей давать миллионы на карманные раÑходы. Похоже, что мне нужно отправитьÑÑ Ð² Ðевермор и проÑить Ð¿Ñ€Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ ее имени.'];
this.quest_items[0] = {'name': 'Темпоральный телевизор', 'descri': ''};
this.quest_items[1] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана в окреÑтноÑÑ‚ÑÑ… деревни Ðикки.'};
this.quest_items[2] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана в окреÑтноÑÑ‚ÑÑ… ВладÑвилÑ.'};
this.quest_items[3] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана в окреÑтноÑÑ‚ÑÑ… ГибÑон-Ñити.'};
this.quest_items[4] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана недалеко от ОазиÑа.'};
this.quest_items[5] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана в предгорьÑÑ… к югу от города КаÑтеда.'};
this.quest_items[6] = {'name': 'Ð¢ÐµÐ¼Ð¿Ð¾Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾Ð·Ð°Ð¿Ð¸ÑÑŒ', 'descri': 'ВидеозапиÑÑŒ, ÑÐ´ÐµÐ»Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ темпорального телевизора.\n ЗапиÑÑŒ Ñделана в окреÑтноÑÑ‚ÑÑ… деревни Бетавилль.'};
this.quest_items[7] = {'name': 'ÐÑтральное ÑемÑ', 'descri': ''};
this.quest_items[8] = {'name': 'Чип 707', 'descri': ''};
this.quest_items[9] = {'name': 'Ð›ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка Мигелю', 'descri': ''};
this.quest_items[10] = {'name': 'Ðльбом фотографий БриÑтол', 'descri': ''};
this.quest_items[11] = {'name': 'Ð›ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка Стену', 'descri': ''};
this.quest_items[12] = {'name': 'Вакуумный мотор', 'descri': ''};
this.quest_items[13] = {'name': 'ДиÑк КИБО РУЛИТ', 'descri': ''};
this.quest_items[14] = {'name': 'Ключ от Замка Геральдио', 'descri': ''};
this.quest_items[15] = {'name': 'Чип 404', 'descri': ''};
this.quest_items[16] = {'name': 'Любовный чип', 'descri': ''};
this.quest_items[17] = {'name': 'Медальон Мишель', 'descri': ''};
this.quest_items[18] = {'name': 'Видеокамера пришельцев', 'descri': ''};
this.quest_items[19] = {'name': 'Чип 101', 'descri': ''};
this.quest_items[20] = {'name': 'Собиратель почвы', 'descri': ''};
this.quest_items[21] = {'name': 'PÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†ÐµÐ²', 'descri': ''};
this.quest_items[22] = {'name': 'БлеÑÑ‚Ñщий шар', 'descri': 'БлеÑÑ‚Ñщий шар, который мог бы иÑпользоватьÑÑ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð¸Ñкотеки.'};
this.quest_items[23] = {'name': 'Купон на обед', 'descri': 'Купон на беÑплатный обед в городке Летний Сад.'};
this.quest_items[24] = {'name': 'Ð¢Ð¸Ñ‚Ð°Ð½Ð¾Ð²Ð°Ñ Ñ†ÐµÐ¿ÑŒ BDX', 'descri': ''};
this.quest_items[25] = {'name': 'Гальванизатор S7', 'descri': ''};
this.quest_items[26] = {'name': 'Ðефритовый поршень', 'descri': ''};
this.quest_items[27] = {'name': 'Грант ВакуолÑ', 'descri': ''};
this.regions[0].name = 'ГаÑнущие земли';
this.regions[1].name = 'Долина Карбен';
this.regions[2].name = 'Район Интегра';
this.regions[3].name = 'Ð¢Ð¸Ñ…Ð°Ñ ÐŸÑƒÑтынÑ';
this.regions[4].name = 'Район ÐекÑузер';
this.regions[5].name = 'Долина Ðмено';
this.regions[6].name = 'Равнины ÐÑпиан';
this.regions[7].name = 'Равнины ГеÑÑье';
this.regions[8].name = 'Вектральные Ð’Ñ‹Ñоты';
this.regions[9].name = 'Ð’Ñ‹Ñоты Демиен';
this.regions[10].name = 'Долина ХеллÑинг';
this.regions[11].name = 'Район ГибÑон';
this.regions[12].name = 'Плато Страт';
this.regions[13].name = 'Левые Средины';
this.regions[14].name = 'Ð“Ð¾Ñ€Ð½Ð°Ñ Ñ†ÐµÐ¿ÑŒ ДеуÑ';
this.regions[15].name = 'Ð’Ñ‹Ñоты Татин';
this.regions[16].name = 'Равнины ЛаÑÑ‚ СтÑнд';
this.regions[17].name = 'Район Парадарк';
this.regions[18].name = 'СверхÑекретный регион';
this.perks = [[{'name': 'МаÑтер пушки', 'descri': 'ПиÑтолеты: +20% вреда'}, {'name': 'Мощный выÑтрел', 'descri': 'ПиÑтолеты: +10 крит. вреда'}, {'name': 'Разрушитель', 'descri': 'ПиÑтолеты: +20/100 крит. шанÑ'}], [{'name': 'Убийца пришельцев', 'descri': '100% крит. вред пришельцам'}, {'name': 'Стрелок', 'descri': 'ПиÑтолеты: +30% вреда'}, {'name': 'Двойной выÑтрел', 'descri': 'ПиÑтолеты: ÑтрелÑет дважды'}], [{'name': 'ПопрыгуньÑ', 'descri': '+15/100 ÑˆÐ°Ð½Ñ ÑƒÐ²Ð¾Ñ€Ð¾Ñ‚Ð°'}, {'name': 'Танец пуль', 'descri': 'ПП поражают вÑех врагов'}, {'name': 'Ураган', 'descri': 'ПП: +20% воÑÑÑ‚. AP'}], [{'name': '', 'descri': ''}, {'name': '', 'descri': ''}, {'name': '', 'descri': ''}], [{'name': 'Разогрев', 'descri': '+10% вред за убитых врагов'}, {'name': 'ВыноÑливоÑÑ‚ÑŒ', 'descri': 'ВоÑÑÑ‚. 1 HP в Ñекунду'}, {'name': 'Дробь', 'descri': 'РужьÑ: +30% вреда'}], [{'name': 'ДоÑтуп W', 'descri': 'ДоÑтупно оружие пришельцев'}, {'name': 'ДоÑтуп T', 'descri': 'ДоÑтупны девайÑÑ‹ пришельцев'}, {'name': 'ÐкÑперт TW', 'descri': 'СнарÑж. пришельцев: +20% вреда'}], [{'name': 'ПоÑвÑщение', 'descri': 'Холодное: цель терÑет 1 AP'}, {'name': 'ПроÑветление', 'descri': '15% ÑˆÐ°Ð½Ñ Ð¿Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ÑŒ ещё раз'}, {'name': 'Откровение', 'descri': 'Холодное: +50% вреда'}], [{'name': 'Поддержка', 'descri': '+2 DR вÑем членам команды'}, {'name': 'ТÑжеловеÑ', 'descri': 'Ракетницы/гран-мёты: +10 вреда'}, {'name': 'Ð’Ð¾Ð»Ñ Ðº победе', 'descri': '50% ÑˆÐ°Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ñ‚ÑŒ Ñмерти'}], [{'name': 'Манёвр', 'descri': '+15/100 ÑˆÐ°Ð½Ñ ÑƒÐ²Ð¾Ñ€Ð¾Ñ‚Ð°'}, {'name': 'Ðаведение', 'descri': 'СнайперÑкие винтовки: -3 AP'}, {'name': 'Полёт', 'descri': '+15/100 ÑˆÐ°Ð½Ñ ÑƒÐ²Ð¾Ñ€Ð¾Ñ‚Ð°'}], [{'name': 'Целитель', 'descri': 'Ðптечки: +30% макÑ. Ñила'}, {'name': 'СвÑÑ‚Ð°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð°', 'descri': '+100% DR еÑли безоружна'}, {'name': 'Поток Ñнергии', 'descri': '+50% воÑÑÑ‚. EP'}], [{'name': 'Гнев', 'descri': '+15% вреда поÑле крит. раны'}, {'name': 'ÐгреÑÑиÑ', 'descri': '+10% воÑÑÑ‚. AP еÑли HP < 50%'}, {'name': 'ЯроÑÑ‚ÑŒ', 'descri': '100% ÑˆÐ°Ð½Ñ ÐºÑ€Ð¸Ñ‚. еÑли HP < 30%'}], [{'name': 'ÐÑоциал', 'descri': '-15% Def другим членам команды'}, {'name': 'Убийца', 'descri': 'Любое оружие: +10% вреда'}, {'name': 'ÐдÑÐºÐ°Ñ Ð¿Ñ€Ñ‹Ñ‚ÑŒ', 'descri': '+25% воÑÑÑ‚. AP'}]];
};
v2.localEn = function () {
this.talk = new TalkDataEn();
this.areas[0].caption = 'K.A.U.F.O.\nOfficial\nSecret Base';
this.areas[0].caption2 = 'K.A.U.F.O. Official Secret Base';
this.areas[1].caption = 'Integra City';
this.areas[2].caption = 'Astral Village';
this.areas[3].caption = 'Nikky Village';
this.areas[4].caption = 'Summer Garden';
this.areas[5].caption = 'Raymonde Village';
this.areas[6].caption = 'Meta-Warriors\nHideout';
this.areas[6].caption2 = 'Meta-Warriors Hideout';
this.areas[7].caption = 'Oasis';
this.areas[8].caption = 'Alien Base';
this.areas[9].caption = 'Beta Village';
this.areas[10].caption = 'Kameron City';
this.areas[11].caption = 'Nevermore Town';
this.areas[12].caption = 'Rainland';
this.areas[13].caption = 'UFO Site 1';
this.areas[14].caption = 'UFO Site 2';
this.areas[15].caption = 'UFO Site 3';
this.areas[16].caption = 'UFO Site 4';
this.areas[17].caption = 'UFO Site 5';
this.areas[18].caption = 'UFO Site 6';
this.areas[19].caption = 'Kalister';
this.areas[20].caption = 'Sirth';
this.areas[21].caption = 'Dead City\nCalipso';
this.areas[21].caption2 = 'Dead City Calipso';
this.areas[22].caption = 'Uncle Sam\'s Farm';
this.areas[23].caption = 'Gibson City';
this.areas[24].caption = 'Casteda City';
this.areas[25].caption = 'Vladsville';
this.areas[26].caption = 'Port';
this.areas[27].caption = 'Jade Island';
this.areas[28].caption = 'Military Base';
this.areas[29].caption = 'Dark Capitol City';
this.areas[30].caption = 'Alpha Village';
this.areas[31].caption = 'Sarreno+ Lab';
this.areas[31].caption2 = undefined;
this.areas[32].caption = 'Highland City';
this.npc = new NPCDataEn();
this.chars[0].name = 'Grid';
this.chars[1].name = 'Key';
this.chars[2].name = 'Katenka';
this.chars[3].name = 'CID';
this.chars[4].name = 'Kurt';
this.chars[5].name = 'Karry';
this.chars[6].name = 'Kage';
this.chars[7].name = 'Lexic';
this.chars[8].name = 'Craven';
this.chars[9].name = 'Feather';
this.chars[10].name = 'Nina X';
this.chars[11].name = 'Hell';
this.quests.ufo_visit = {'title': 'ALIEN TRACE'};
this.tasks.ufo_visit = ['I should check out the place where an alien ship was noticed. Just as usual.', 'According to the scorched earth and remains of a disco, aliens did visit that place. I need to talk to people in the nearby village.', 'It seems that, after the disco, the aliens moved in the direction of Integra City.', 'All the citizens of Integra are gone! I should report to Nathan immediately. I think they\'re up to something.'];
this.quests.natan_plan = {'title': 'NATHAN\'S GREAT PLAN'};
this.tasks.natan_plan = ['After hearing my report, Nathan needs time to think out a plan. I\'ll return to him in an hour.', 'I need to get a temporal TV from Carl Vaccuol in Raymonde Village and use it in each of the 6 places where aliens were recently seen.', 'I\'ve collected the video data and Nathan\'s reviewing it. I think I\'ll return in an hour or two.', 'Nathan\'s discovered the location of the main alien base on our planet. It\'s in the middle of the Horse Sea so I need to find out a way to get there. It would probably be useful to ask at Port Town.', 'I should kill 3 grabbers in Last Stand plains region to prove to an ambitious captain that I\'m worthy of boarding his ship, \'Impendence\'.', 'The stupid captain gave me another task. I should catch the thieves who stole \'Impendence\'s engine.', 'I\'m going to the secret alien base. Here it is - the moment of truth...'];
this.quests.meta_oasis = {'title': 'OASIS AND META-WARRIORS'};
this.tasks.meta_oasis = ['Damn! The Meta-Warriors captured me and forced me to help them! Now I have to finish their task to earn back my freedom. The task is to broker an alliance between the Meta-Warriors and Oasis.', 'Oasis wants Internet access and a water-supply before they\'ll agree to cooperate.'];
this.quests.meta_raimonde = {'title': 'HELP RAYMONDE VILLAGE'};
this.tasks.meta_raimonde = ['Lina lied to me! Now she wants me to do another job and I have no choice but to help! I now have to help Raymonde Village with their problem.', 'There really was a problem in Raymonde Village. Their great scientist Carl Vaccuol somehow disappeared. The clues suggest I need to go to Summer Garden.', 'I\'ve helped Raymonde Village. Now I have to report to Lina. This time she\'d best do what I want or I\'ll kill her.'];
this.quests.meta_uprise = {'title': 'META-FIGHTERS\' REBELLION'};
this.tasks.meta_uprise = ['For some reasons I\'ve agreed to help Meta-fighters\' Rebellion. I have to return to Raymonde Village and help both Smith and Carl to make preparations for the Rebellion.', 'I\'ve helped both scientists.', 'Next stage of the Rebellion – make alliance with the dead city, Calipso.', 'Calipso will agree to cooperate only if the Meta-Warriors can return them \'back to life\'. I have to report their condition to Lina.', 'Mikhael from Raymonde village might be able to solve the problem of Calipso.', 'I\'ve persuaded Mikhael to help Calipso. Now I\'ll go and report to Fia.', 'As expected, now the zombies are willing to help. Must report that to Lina.', 'This Rebellion is fun. What shall I do next? Have to ask Lina.', 'A problem! Meta-Warriors are out of money so they need to find a sponsor. My task is to go to Casteda and find an investor there.', 'I\'ve secured the investment. Need to report to Lina.', 'It was well worth it! The payment for this task really cheered me up.', 'The Rebellion has started!.. I\'m not really sure of what I\'m doing but I think I need to attack the Military Base.', 'The Revolution is almost here! I\'ve destroyed the Military Base and now must return to Lina for further instructions.', 'My next and final task... I must attack Dark Capitol City and kill Myst the President.'];
this.quests.astral_flowers = {'title': 'ASTRAL FLOWERS'};
this.tasks.astral_flowers = ['I was asked by a strange farmer in Astral Village to collect 10 of the astral seeds that randomly drop from enemies in the region.'];
this.quests.bristol_divorce = {'title': 'BRISTOL\'S DIVORCE'};
this.tasks.bristol_divorce = ['I\'ve agreed to help Bristol serve Seth, my pal from Casteda City, with divorce papers.', 'Seth wasn\'t upset and signed the papers. I\'ll go and tell Bristol she\'s free again.'];
this.quests.debt_collection = {'title': 'DEBT RETURNER'};
this.tasks.debt_collection = ['I have to convince Vermuth from Beta Village to repay his debt to Ace.', 'The debt is repaid. I\'ll go and speak to Ace.'];
this.quests.love_story = {'title': 'LOVE LETTER'};
this.tasks.love_story = ['Liz from Rainland is in love with Stan, Cameron\'s mayor! Should I help Liz and deliver her love letter to Stan?', 'I\'ve agreed to help Liz deliver her love letter to Stan in Cameron City.', 'Stan seems to be positive about meeting Liz. Gonna tell Liz about that.'];
this.quests.love_story_2 = {'title': 'LOVE LETTER-2'};
this.tasks.love_story_2 = ['Liz and Stan didn\'t work out but she already has a new love - Miguel from Garth... another love letter to another man.', 'Miguel was happy to get the love letter. Let\'s tell Liz about the results.'];
this.quests.rain_machine = {'title': 'RAINMACHINE'};
this.tasks.rain_machine = ['There is NO rain in Rainland... apparently because their rainmachine is broken. Someone in Oasis might know how to fix it.', 'The problem with the rainmachine is solved. Now I need to let the villagers in on the good news.'];
this.quests.soil_analysis = {'title': 'SOIL SAMPLES'};
this.tasks.soil_analysis = ['If I can collect soil samples from all regions in the continent I\'ll get a great reward.'];
this.quests.love_hunter = {'title': 'LOVE HUNTER'};
this.tasks.love_hunter = ['A garbage man from Gibson City asked me to get the chip of love from Smith Becord in Raymonde Village and somehow implant it in Biby from Kalister. Only if I have nothing better to do.', 'I\'ve taken a love-chip from Becord. I wonder how I can implant it in Biby?..', 'Well, implanting the chip in Biby wasn\'t that hard at all. Man, she\'s so DUMB. Now I can report back to John in Gibson City.'];
this.quests.infidels = {'title': 'UNFAITHUL ONES'};
this.tasks.infidels = ['I have to destroy 13 hell machines all around the world for a cultist named Ibrahim at Kalister.'];
this.quests.raiding_raiders = {'title': 'GET RID OF RAIDERS'};
this.tasks.raiding_raiders = ['I promised to kill 20 raiders around Gibson City and report back to Georg.'];
this.quests.raiding_mutants = {'title': 'GET RID OF MUTANTS'};
this.tasks.raiding_mutants = ['Once I killed the raiders, a new threat appeared - mutants. Now I have to kill 25 of them and report to Georg.'];
this.quests.michels_medallion = {'title': 'MICHELLE\'S PENDANT'};
this.tasks.michels_medallion = ['If I ever find a pendant dropped from a bandit it\'ll be Michelle\'s. She asked me to bring it back to her if it turns up.'];
this.quests.clean_suburbs = {'title': 'CLEAR THE SUBURB'};
this.tasks.clean_suburbs = ['Jax asked me to kill 50 bandits around Sirith and then report back to him.'];
this.quests.talks_with_aliens = {'title': 'TALKING TO ALIENS'};
this.tasks.talks_with_aliens = ['Sometimes you look back on your life and realise that everything you did was wrong. I quit K.A.U.F.O. and want to learn the truth. My former comrades will probably hunt me down now.', 'I know the truth now. I\'ll help Sir F because his intentions are pure. For now I have to return to Integra and wait for further instructions, though.', 'Cid killed Lina and took control of the Meta-Warriors. I have to stop him before he interferes in Sir F\'s plans.', 'K.A.U.F.O. are attacking the alien base! I have to return immediatley and help Sir F.', 'My task is to go to Kalister and protect Sir F while his speech is broadcast to the planet.'];
this.quests.keabo_style = {'title': 'KIBO\'S CD'};
this.tasks.keabo_style = ['Kibo asked me to promote his CD for the radio without using any money. No idea how to do that.', 'I have to tell Kibo he\'s getting his debut.'];
this.quests.feel_of_guilty = {'title': 'THE BLAME'};
this.tasks.feel_of_guilty = ['I must go to Nevermore town and apologize to the mayor for Hydra\'s recent misbehaviour.'];
this.quest_items[0] = {'name': 'Temporal TV', 'descri': ''};
this.quest_items[1] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Nikky village.'};
this.quest_items[2] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Vladsville.'};
this.quest_items[3] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Gibson City.'};
this.quest_items[4] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Oasis.'};
this.quest_items[5] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Casteda City.'};
this.quest_items[6] = {'name': 'Temporal record', 'descri': 'A videorecord made by a temporal TV.\n Recorded near Beta Village.'};
this.quest_items[7] = {'name': 'Astral seed', 'descri': ''};
this.quest_items[8] = {'name': 'Chip 707', 'descri': ''};
this.quest_items[9] = {'name': 'Love letter to Miguel', 'descri': ''};
this.quest_items[10] = {'name': 'Bristol\'s photo album', 'descri': ''};
this.quest_items[11] = {'name': 'Love letter to Stan', 'descri': ''};
this.quest_items[12] = {'name': 'Vacuum engine', 'descri': ''};
this.quest_items[13] = {'name': 'Kibo\'s promo CD', 'descri': ''};
this.quest_items[14] = {'name': 'A key to Geraldio\'s castle', 'descri': ''};
this.quest_items[15] = {'name': 'Chip 404', 'descri': ''};
this.quest_items[16] = {'name': 'Love chip', 'descri': ''};
this.quest_items[17] = {'name': 'Michelle\'s pendant', 'descri': ''};
this.quest_items[18] = {'name': 'Aliens\' videocam', 'descri': ''};
this.quest_items[19] = {'name': 'Chip 101', 'descri': ''};
this.quest_items[20] = {'name': 'Soil collector', 'descri': ''};
this.quest_items[21] = {'name': 'Aliens\' radio', 'descri': ''};
this.quest_items[22] = {'name': 'Shining sphere', 'descri': ''};
this.quest_items[23] = {'name': 'Coupon for free food', 'descri': 'A coupon for a free dinner in Summer Garden.'};
this.quest_items[24] = {'name': 'Titan chain BDX', 'descri': ''};
this.quest_items[25] = {'name': 'Galvanizator S7', 'descri': ''};
this.quest_items[26] = {'name': 'Jade piston', 'descri': ''};
this.quest_items[27] = {'name': 'Vaccuol\'s credit card', 'descri': ''};
this.regions[0].name = 'Fading Lands';
this.regions[1].name = 'Carben Valley';
this.regions[2].name = 'Integra Region';
this.regions[3].name = 'Silent Desert';
this.regions[4].name = 'Nexuser Region';
this.regions[5].name = 'Ameno Valley';
this.regions[6].name = 'Espian Plains';
this.regions[7].name = 'Gessier Plains';
this.regions[8].name = 'Vectral Heights';
this.regions[9].name = 'Demien Heights';
this.regions[10].name = 'Hellsing Valley';
this.regions[11].name = 'Gibson Region';
this.regions[12].name = 'Strat Plateau';
this.regions[13].name = 'Left Mids';
this.regions[14].name = 'Deus Mountain Chain';
this.regions[15].name = 'Tatin\'s Heights';
this.regions[16].name = 'Last Stand Plains';
this.regions[17].name = 'Paradark Region';
this.regions[18].name = 'Top Secret Region';
this.perks = [[{'name': 'Gun Master', 'descri': 'Pistols: +20% damage'}, {'name': 'Powered Shot', 'descri': 'Pistols: +10 crit. damage'}, {'name': 'Destroyer', 'descri': 'Pistols: +20/100 crit. chance'}], [{'name': 'Alien Hunter', 'descri': '100% crit. against aliens'}, {'name': 'Marksman', 'descri': 'Pistols: +30% damage'}, {'name': 'Double shot', 'descri': 'Fires twice when using pistol'}], [{'name': 'Fidget', 'descri': '+15/100 evasion chance'}, {'name': 'Bullet Dance', 'descri': 'SMG hits every enemy'}, {'name': 'Hurricane', 'descri': '+20% AP regen with SMG'}], [{'name': '', 'descri': ''}, {'name': '', 'descri': ''}, {'name': '', 'descri': ''}], [{'name': 'Warm Up', 'descri': '+10% damage/each KO\'ed enemy'}, {'name': 'Endurance', 'descri': 'Restores 1 HP each second'}, {'name': 'Shotgun Master', 'descri': 'Shotguns: +30% damage'}], [{'name': 'W Access', 'descri': 'Can use alien weapons'}, {'name': 'T Access', 'descri': 'Can use alien devices'}, {'name': 'TW Expertise', 'descri': 'Alien equipment: +20% damage'}], [{'name': 'Initiate', 'descri': 'Melee: target loses 1 AP'}, {'name': 'Disciple', 'descri': '15% chance to get a bonus turn'}, {'name': 'Adept', 'descri': 'Melee: +50% damage'}], [{'name': 'Supportive Song', 'descri': 'All team members get +2 DR'}, {'name': 'Heavy-weight', 'descri': 'Launchers: +10 damage'}, {'name': 'Persistence', 'descri': '50% chance to resist KO'}], [{'name': 'Maneuvers', 'descri': '+15/100 evasion chance'}, {'name': 'Targeting', 'descri': 'Sniper rifles: -3 AP cost'}, {'name': 'Flight', 'descri': '+15/100 evasion chance'}], [{'name': 'Healer', 'descri': 'Medikits: +30% heal power'}, {'name': 'Holy Shield', 'descri': '+100% DR if no weapon equipped'}, {'name': 'Energy Flow', 'descri': '+50% EP regen'}], [{'name': 'Anger', 'descri': '+15% damage after crit. hit'}, {'name': 'Aggression', 'descri': '+10% AP regen when HP < 50%'}, {'name': 'Rage', 'descri': '100% crit. hits when HP < 30%'}], [{'name': 'Antisocial', 'descri': '-15% DEF to other team members'}, {'name': 'Weapon Mastery', 'descri': 'All weapons: +10% damage'}, {'name': 'Demonic Speed', 'descri': '+25% AP regen'}]];
};
ASSetPropFlags(_global.WorldData.prototype, null, 1);
}
#endinitclip
}
movieClip 1941 __Packages.ItemData {
#initclip
if (!_global.ItemData) {
var v1 = function () {
super();
this.addMelee(4, 4, 3, 1, 'snd_wp_kick', 'Fist');
this[0].cost = 0;
this.addMelee(5, 7, 3, 1, 'snd_wp_cut', 'Knife');
this.addMelee(4, 10, 4, 1, 'snd_wp_kick', 'Tube');
this.addMelee(5, 9, 3, 3, 'snd_wp_kick', 'Knuckles');
this.addMelee(7, 11, 4, 4, 'snd_wp_kick', 'Bat');
this.addMelee(5, 12, 3, 5, 'snd_wp_cut', 'Hatchet');
this.addMelee(8, 14, 3, 10, 'snd_wp_cut', 'Machete');
this.addMelee(8, 18, 4, 12, 'snd_wp_chainsaw', 'Chainsaw');
this.addMelee(6, 21, 3, 18, 'snd_wp_kick', 'Robopunch');
this.addMelee(11, 18, 3, 21, 'snd_wp_cut', 'Sword');
this.addMelee(0, 0, 0, 0, 'snd_wp_kick', 'Lightsaber');
this[this.length - 1].spam = true;
this.addPistol(4, 8, 3, 1, 'snd_wp_pistol', 'Magnum');
this.addPistol(5, 9, 4, 1, 'snd_wp_pistol', 'PM Makarov');
this.addPistol(5, 10, 3, 4, 'snd_wp_pistol', 'Beretta 92');
this.addPistol(7, 12, 4, 5, 'snd_wp_pistol', 'Desert Eagle');
this.addPistol(5, 14, 3, 7, 'snd_wp_pistol', 'Glock 17');
this.addPistol(8, 15, 4, 8, 'snd_wp_pistol', 'Python');
this.addPistol(9, 17, 4, 10, 'snd_wp_pistol', 'G5 Breed');
this.addPistol(10, 14, 3, 13, 'snd_wp_single_silent', 'FK9 IntKill');
this.addPistol(8, 25, 5, 15, 'snd_wp_pistol', 'Gunblade');
this.addPistol(11, 20, 4, 18, 'snd_wp_pistol', 'Peacemaker');
this.addPistol(9, 20, 3, 20, 'snd_wp_pistol', 'Punisher');
this.addPistol(10, 24, 3, 24, 'snd_wp_pistol', 'Zero Void');
this.addSMG(5, 8, 5, 1, 'snd_wp_smg', 'TMP');
this.addSMG(6, 10, 5, 3, 'snd_wp_smg', 'UZI');
this.addSMG(7, 12, 5, 7, 'snd_wp_smg', 'MP5');
this.addSMG(6, 13, 4, 10, 'snd_wp_smg', 'FN P90');
this.addSMG(7, 16, 5, 12, 'snd_wp_smg', 'Colt 633');
this.addSMG(9, 12, 4, 14, 'snd_wp_smg', 'Rapid');
this.addSMG(8, 18, 5, 15, 'snd_wp_smg', 'Grinder');
this.addSMG(7, 21, 5, 19, 'snd_wp_burst_silent', 'The Flame');
this.addShotgun(3, 10, 7, 4, 'snd_wp_shotgun', 'Sawn-off');
this.addShotgun(5, 12, 7, 8, 'snd_wp_shotgun', 'Benelli M3');
this.addShotgun(3, 19, 8, 10, 'snd_wp_shotgun', 'Benelli M4');
this.addShotgun(4, 17, 7, 14, 'snd_wp_shotgun', 'Neostead');
this.addShotgun(5, 19, 7, 18, 'snd_wp_shotgun', 'Jackhammer');
this.addShotgun(3, 25, 8, 22, 'snd_wp_shotgun', 'Combat Shot');
this.addShotgun(5, 27, 7, 26, 'snd_wp_shotgun', 'Flacker');
this.addHeavy(8, 15, 8, 5, 'snd_wp_heavy', 'RPK');
this.addHeavy(10, 17, 8, 9, 'snd_wp_heavy', 'M60');
this.addHeavy(9, 21, 8, 12, 'snd_wp_heavy', 'MG4');
this.addHeavy(7, 27, 9, 15, 'snd_wp_heavy', 'S.A.W.');
this.addHeavy(10, 26, 9, 18, 'snd_wp_heavy', 'Minigun');
this.addHeavy(8, 29, 9, 20, 'snd_wp_heavy', 'Vulcan');
this.addHeavy(12, 32, 8, 26, 'snd_wp_heavy', 'Avenger');
this.addAssault(5, 15, 6, 5, 'snd_wp_assault', 'AK-47');
this.addAssault(8, 12, 6, 6, 'snd_wp_assault', 'Colt M4');
this.addAssault(6, 19, 6, 10, 'snd_wp_assault', 'SIG SG 552');
this.addAssault(10, 18, 6, 14, 'snd_wp_assault', 'Steyr AUG');
this.addAssault(12, 20, 6, 19, 'snd_wp_assault', 'HK G11');
this.addAssault(18, 21, 6, 25, 'snd_wp_assault', 'Pulsator');
this.addGL(1, 17, 8, 5, 'snd_wp_gl', 'Thumper');
this.addGL(1, 26, 10, 14, 'snd_wp_gl', 'Milkor');
this.addRL(0, 0, 0, 0, 'snd_wp_rl', 'RPG');
this[this.length - 1].spam = true;
this.addRL(1, 23, 10, 11, 'snd_wp_rl', 'Bazooka');
this.addRL(0, 0, 0, 0, 'snd_wp_rl', 'M202');
this[this.length - 1].spam = true;
this.addRL(0, 0, 0, 0, 'snd_wp_rl', 'Rainmaker');
this[this.length - 1].spam = true;
this.addRL(1, 33, 12, 21, 'snd_wp_rl', 'BBX Launcher');
this.addSniper(9, 19, 8, 1, 'snd_wp_sniper', 'Scout');
this.addSniper(12, 25, 8, 5, 'snd_wp_sniper', 'SVD Dragunov');
this.addSniper(16, 30, 8, 10, 'snd_wp_sniper', 'AWM');
this.addSniper(21, 29, 8, 13, 'snd_wp_single_silent', 'Vintorez');
this.addSniper(18, 35, 8, 16, 'snd_wp_single_silent', 'Barret M90');
this.addSniper(23, 33, 8, 19, 'snd_wp_single_silent', 'Vykhlop');
this.addSniper(22, 44, 7, 25, 'snd_wp_single_silent', 'Gauss Rifle');
this.addSniper(20, 40, 7, 6, 'snd_wp_single_silent', 'A-Gun');
this[this.length - 1].alien = true;
this.addPistol(10, 20, 3, 6, 'snd_wp_single_silent', 'A-Blaster');
this[this.length - 1].alien = true;
this.addAssault(5, 20, 2, 6, 'snd_wp_burst_silent', 'A-Caster');
this[this.length - 1].alien = true;
this.addRL(20, 20, 10, 6, 'snd_wp_gl', 'A-Apo');
this[this.length - 1].alien = true;
var v10 = this.length;
var v6 = 1;
while (v6 < v10) {
var v3 = this[v6];
var v7 = (v3.dmg_min + v3.dmg_max) / 2 / v3.ap;
var v4 = 1;
switch (v3.type2) {
case EWeapon.SINGLE:
v4 = 1;
break;
case EWeapon.BURST:
v4 = 1.5;
break;
case EWeapon.SHOT:
v4 = 2.5;
break;
case EWeapon.SPLASH:
v4 = 3.5;
break;
case EWeapon.MELEE:
v4 = 0.8;
}
v7 *= 1 + v4;
var v8 = v7 - 1;
if (v8 < 0.2) {
v8 = 0.2;
}
var v9 = 30;
var v5 = v3.level;
switch (v6) {
case 65:
v5 = 22;
break;
case 66:
v5 = 12;
break;
case 67:
v5 = 22;
break;
case 68:
v5 = 30;
}
v3.cost = Math.round(v7 * v8 * v9 * v5);
if (v3.ap == 0) {
v3.cost = 999999;
}
if (v3.ap == 0) {
v3.level = 40;
}
++v6;
}
this.addArmor(2, 200, 1, 'Leather Jacket');
this.addArmor(3, 650, 3, 'Leather Armor');
this.addArmor(4, 1500, 5, 'Leather Armor');
this.addArmor(5, 3500, 8, 'Metal Armor');
this.addArmor(6, 6000, 10, 'Metal Armor');
this.addArmor(7, 12000, 13, 'KAUFO Armor');
this.addArmor(8, 16000, 15, 'KAUFO Armor');
this.addArmor(9, 22000, 18, 'Combat Armor');
this.addArmor(10, 26000, 20, 'Combat Armor');
this.addArmor(12, 48000, 23, 'Power Armor');
this.addArmor(15, 72000, 25, 'Power Armor');
this.addDeviceES(40, 5000, 10, 'Demolisher', 'Inflicts damage:\n20+0.6*TCH', 'snd_dev_dmg');
this.addDeviceES(20, 1500, 1, 'Punish', 'Inflicts damage:\n15+0.3*TCH', 'snd_dev_dmg');
this.addDeviceEM(50, 7000, 12, 'Bombada', 'Inflicts damage:\n5+0.3*TCH', 'snd_dev_dmg');
this.addDeviceEM(30, 3500, 6, 'Exploda', 'Inflicts damage:\n5+0.1*TCH', 'snd_dev_dmg');
this.addDevicePS(0, 1000, 1, 'Lemon I', '+25% grenade damage');
this.addDevicePS(0, 3000, 5, 'Lemon II', '+50% grenade damage');
this.addDevicePS(0, 9000, 10, 'Lemon III', '+100% grenade damage');
this.addDevicePS(0, 5000, 5, 'Black Runner 1', '+10% AP regen');
this.addDevicePS(0, 10000, 10, 'Black Runner 2', '+25% AP regen');
this.addDevicePS(0, 20000, 15, 'Black Runner 3', '+50% AP regen');
this.addDeviceFX(5, 500, 1, 'S-Barrier', 'Defend; +1 DR bonus');
this.addDeviceFX(7, 1000, 5, 'Barrier', 'Defend; +2 DR bonus');
this.addDeviceFX(10, 4000, 10, 'Barrier-X', 'Defend; +5 DR bonus');
this.addDeviceES(9, 1500, 4, 'Ghost', '-2 DR');
this.addDeviceEM(18, 4500, 8, 'Evil Ghost', '-2 DR');
this.addDeviceEM(36, 10500, 12, 'Dead Ghost', '-4 DR');
this.addDevicePS(0, 1700, 3, 'Enforcer', '+10% weapon damage');
this.addDevicePS(0, 4300, 9, 'theKiller', '+25% weapon damage');
this.addDevicePS(0, 8500, 13, 'Demon-6', '+50% weapon damage');
this.addDevicePS(0, 7500, 9, 'Vampire XR', 'Converts 10% of damage to HP');
this.addDeviceFX(10, 2000, 3, 'LeadeR', '+2 DR');
this.addDevicePS(0, 15000, 15, 'Double Fellow', 'Double attack with weapon');
this.addDevicePS(0, 6000, 4, 'Shadow Man', '+30/100 evasion chance');
this.addDeviceFM(45, 11000, 8, 'Shadow Fog', '+30/100 evasion chance for 30 sec');
this.addDeviceES(20, 6000, 5, 'Venom Sting', '3-5 damage every 3 sec for 30 sec');
this.addDeviceES(60, 15000, 15, 'Venom Bite', '10-20 damage every 3 sec for 30 sec');
this.addDeviceEM(60, 12000, 10, 'Radioactive C', '3-5 damage every 3 sec for 20 sec');
this.addDeviceFM(30, 5000, 6, 'Refresher', 'Removes harmful effects');
this.addDeviceFS(15, 4500, 1, 'Med Tech', 'Restores up to 10-30 HP', 'snd_dev_heal');
this.addDeviceFS(30, 6500, 10, 'Med Tech v2.0', 'Restores up to 40-80 HP', 'snd_dev_heal');
this.addDeviceFS(45, 11500, 20, 'Med Tech v3.0', 'Restores up to 80-120 HP', 'snd_dev_heal');
this.addDevicePS(0, 5500, 8, 'Counter-hero', 'Attacker takes 10-12 damage');
this.addDeviceFM(40, 9100, 7, 'Shield Field', '+30% DR for 60 sec');
this.addDeviceES(25, 8000, 8, 'Freezer4', '-25% AP regen for 60 sec');
this.addDeviceES(10, 15000, 10, 'SF Burner', '-30 Energy');
this.addDeviceFM(50, 30000, 15, 'X-Gassius', '+20% DR');
this[this.length - 1].alien = true;
this.addDeviceES(40, 25000, 12, 'X-Deformus', 'Inflicts damage:\n15+0.5*TCH;\n-10% AP regen');
this[this.length - 1].alien = true;
this.addDeviceES(75, 50000, 15, 'X-Confirmatus', 'Inflicts damage:\n30+1.0*TCH;\n-2 DR');
this[this.length - 1].alien = true;
this.addDeviceES(35, 37000, 10, 'ScreameR', 'Damages for 30-60% of current HP');
this.addDeviceEM(30, 35000, 12, 'HellBringer', '5-10 damage for each 5 sec');
this.addDeviceFM(10, 0, 5, 'All-Heal', 'Heals 20% HP', 'snd_dev_heal');
this[this.length - 1].no_use = true;
this.addDeviceFX(15, 0, 7, 'Break-Through', '100% Crit this turn');
this[this.length - 1].no_use = true;
this.addDeviceFX(10, 3000, 1, 'Charge', 'Skip turn; 2x damage next turn');
this.addDevicePS(0, 8500, 4, 'Sharpshooter', 'Weapon attacks never miss');
this.addDeviceFX(15, 0, 10, 'Eat Brains', '100% damage this turn converted to HP');
this[this.length - 1].no_use = true;
this.addDeviceFM(25, 0, 5, 'Order', 'Fully refill AP');
this[this.length - 1].no_use = true;
this.addDevicePS(0, 0, 1, 'Ally Regen', 'Mass: +10% HP each turn', 'snd_dev_heal');
this[this.length - 1].no_use = true;
this.addDevicePS(0, 0, 1, 'Self-Regen', '+30% HP each turn', 'snd_dev_heal');
this[this.length - 1].no_use = true;
this.addDeviceEM(20, 0, 1, 'Voltage', '50% damage:\n20+0.6*TCH');
this[this.length - 1].no_use = true;
this.addDeviceES(40, 0, 1, 'Death Ray', '60% to kill');
this[this.length - 1].no_use = true;
this.addDevicePS(0, 3000, 1, 'LevelDown', '-2 weapon level requirement');
this.addDevicePS(0, 9000, 5, 'LevelDown+', '-5 weapon level requirement');
this.addDeviceFX(100, 50000, 18, 'RebirthStar', '+25 all skills');
this.addDevicePS(0, 45000, 10, 'Greed', 'Owner receives all battle XP');
this.addDevicePS(0, 30000, 15, 'Midas', '+30% money from battles');
this.addDeviceES(40, 50000, 5, 'HELL-Fire', 'Inflicts damage:\n25+1.0*TCH');
this[this.length - 1].hell = true;
this.addDeviceEM(60, 75000, 10, 'HELL-Gate', 'Inflicts damage:\n20+0.3*TCH;\n-5 DR');
this[this.length - 1].hell = true;
this.addDeviceES(60, 100000, 15, 'HELL-Dice', '150 damage to target; 50 damage to self');
this[this.length - 1].hell = true;
this.addDeviceFX(25, 0, 1, 'BareKnuckle', '0.9*TCH');
this[this.length - 1].no_use = true;
this.addGrenade(1, 40, 150, 1, 'Hand Grenade');
this.addGrenade(1, 60, 250, 8, 'RGD33');
this.addGrenade(1, 80, 750, 15, 'RGD5');
this.addGrenade(1, 100, 1000, 22, 'Plasmade');
this.addGrenade(100, 500, 50000, 30, 'Holy Grenade');
this[this.length - 1].type2 = EWeapon.MASSIVE;
this.addGrenade(0, 0, 999999, 40, 'Flash Grenade');
this[this.length - 1].spam = true;
this.addGrenade(0, 0, 0, 0, 'Incinerade');
this.addMedikit(20, 100, 1, 'Bandages');
this.addMedikit(40, 200, 5, 'Small Medikit');
this.addMedikit(60, 400, 10, 'Big Medikit');
this.addMedikit(80, 800, 15, 'Adv. Medikit');
this.addMedikit(100, 1600, 20, 'Combat Medikit');
this.addMassMedikit(20, 500, 5, 'Healing Orb');
this.addMassMedikit(40, 1000, 15, 'Healing Capsule');
this.addMassMedikit(60, 2000, 25, 'Healing Drone');
this.addMedikit(0, 999999, 40, 'Hydrotine');
this[this.length - 1].spam = true;
this.addMedikit(30, 250, 5, 'Battery');
this[this.length - 1].recharge = true;
this.addQuest(0, 'Astral Seed', 7);
this.addQuest(0, 'Vacuum Engine', 12);
this.addQuest(0, 'Castle Key', 14);
this.addQuest(0, 'Medallion', 17);
this.addQuest(0, 'Jade Piston', 26);
this.addQuest(0, 'BDX Chain', 24);
this.addQuest(0, 'S7 Halvanizer', 25);
this.addPsi(6, 6, 6, 1, 'Grabber Psi 1');
this.addPsi(12, 12, 6, 10, 'Grabber Psi 2');
this.addPsi(18, 18, 5, 20, 'Grabber Psi 3');
this.addPsi(24, 24, 5, 25, 'Grabber Psi 4');
};
_global.ItemData = v1;
_global.ItemData extends Array;
var v2 = v1.prototype;
v2.addMelee = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.MELEE, 'type3': EItemType.MELEE, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addPistol = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.SINGLE, 'type3': EItemType.PISTOL, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addSMG = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.BURST, 'type3': EItemType.SMG, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addShotgun = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.SHOT, 'type3': EItemType.SHOTGUN, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addHeavy = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.BURST, 'type3': EItemType.HEAVY, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addAssault = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.BURST, 'type3': EItemType.ASSAULT, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addGL = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.SPLASH, 'type3': EItemType.GLAUNCHER, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addRL = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.SPLASH, 'type3': EItemType.RLAUNCHER, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addSniper = function (dmg_min_, dmg_max_, ap_, level_, snd_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.SINGLE, 'type3': EItemType.SNIPER, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': snd_, 'name': name_});
};
v2.addPsi = function (dmg_min_, dmg_max_, ap_, level_, name_) {
this.push({'type': EItem.WEAPON, 'type2': EWeapon.MASSIVE, 'type3': EItemType.PSI, 'level': level_, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'ap': ap_, 'snd': 'snd_dev_dmg', 'name': name_});
};
v2.addArmor = function (dr_, cost_, level_, name_) {
this.push({'type': EItem.ARMOR, 'type2': EWeapon.PASSIVE, 'type3': EItemType.ARMOR, 'dr': dr_, 'cost': cost_, 'name': name_, 'level': level_});
};
v2.addDeviceES = function (energy_, cost_, level_, name_, descri_, snd_) {
if (snd_ == undefined) {
snd_ = 'snd_dev_debuff';
}
this.push({'type': EItem.DEVICE, 'type2': EWeapon.SINGLE, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_, 'snd': snd_});
};
v2.addDeviceEM = function (energy_, cost_, level_, name_, descri_, snd_) {
if (snd_ == undefined) {
snd_ = 'snd_dev_debuff';
}
this.push({'type': EItem.DEVICE, 'type2': EWeapon.MASSIVE, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_, 'snd': snd_});
};
v2.addDevicePS = function (energy_, cost_, level_, name_, descri_) {
this.push({'type': EItem.DEVICE, 'type2': EWeapon.PASSIVE, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_});
};
v2.addDeviceFS = function (energy_, cost_, level_, name_, descri_, snd_) {
if (snd_ == undefined) {
snd_ = 'snd_dev_buff';
}
this.push({'type': EItem.DEVICE, 'type2': EWeapon.SINGLE, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_, 'snd': snd_, 'heal': true});
};
v2.addDeviceFM = function (energy_, cost_, level_, name_, descri_, snd_) {
if (snd_ == undefined) {
snd_ = 'snd_dev_buff';
}
this.push({'type': EItem.DEVICE, 'type2': EWeapon.MASSIVE, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_, 'snd': snd_, 'heal': true});
};
v2.addDeviceFX = function (energy_, cost_, level_, name_, descri_, snd_) {
if (snd_ == undefined) {
snd_ = 'snd_dev_buff';
}
this.push({'type': EItem.DEVICE, 'type2': EWeapon.SELF, 'cost': cost_, 'type3': EItemType.DEVICE, 'energy': energy_, 'cost': cost_, 'name': name_, 'level': level_, 'descri': descri_, 'snd': snd_, 'heal': true});
};
v2.addGrenade = function (dmg_min_, dmg_max_, cost_, level_, name_) {
this.push({'type': EItem.USE, 'type2': EWeapon.SPLASH, 'type3': EItemType.GRENADE, 'dmg_min': dmg_min_, 'dmg_max': dmg_max_, 'cost': cost_, 'name': name_, 'level': level_});
};
v2.addMedikit = function (power_, cost_, level_, name_) {
this.push({'type': EItem.HEAL, 'type2': EWeapon.SINGLE, 'type3': EItemType.MEDIKIT, 'heal': power_, 'cost': cost_, 'name': name_, 'level': level_});
};
v2.addMassMedikit = function (power_, cost_, level_, name_) {
this.push({'type': EItem.HEAL, 'type2': EWeapon.MASSIVE, 'type3': EItemType.MEDIKIT, 'heal': power_, 'cost': cost_, 'name': name_, 'level': level_});
};
v2.addQuest = function (cost_, name_, quest_item_) {
this.push({'type': EItem.QUEST, 'type2': EWeapon.PASSIVE, 'type3': EItemType.QUEST, 'cost': cost_, 'name': name_, 'quest_item': quest_item_, 'level': 1});
};
ASSetPropFlags(_global.ItemData.prototype, null, 1);
}
#endinitclip
}
movieClip 1942 __Packages.EWeapon {
#initclip
if (!_global.EWeapon) {
var v1 = function () {};
_global.EWeapon = v1;
var v2 = v1.prototype;
v1.PASSIVE = -1;
v1.MELEE = 0;
v1.SINGLE = 1;
v1.BURST = 2;
v1.SHOT = 3;
v1.SPLASH = 4;
v1.MASSIVE = 5;
v1.SELF = 6;
ASSetPropFlags(_global.EWeapon.prototype, null, 1);
}
#endinitclip
}
movieClip 1943 __Packages.EItem {
#initclip
if (!_global.EItem) {
var v1 = function () {};
_global.EItem = v1;
var v2 = v1.prototype;
v1.WEAPON = 1;
v1.ARMOR = 2;
v1.DEVICE = 3;
v1.USE = 4;
v1.HEAL = 5;
v1.QUEST = 6;
ASSetPropFlags(_global.EItem.prototype, null, 1);
}
#endinitclip
}
movieClip 1944 __Packages.EItemType {
#initclip
if (!_global.EItemType) {
var v1 = function () {};
_global.EItemType = v1;
var v2 = v1.prototype;
v1.MELEE = 1;
v1.PISTOL = 2;
v1.SMG = 3;
v1.SHOTGUN = 4;
v1.HEAVY = 5;
v1.ASSAULT = 6;
v1.RLAUNCHER = 7;
v1.GLAUNCHER = 8;
v1.SNIPER = 9;
v1.ARMOR = 10;
v1.DEVICE = 11;
v1.GRENADE = 12;
v1.MEDIKIT = 13;
v1.QUEST = 14;
v1.PSI = 15;
ASSetPropFlags(_global.EItemType.prototype, null, 1);
}
#endinitclip
}
movieClip 1945 __Packages.BandData {
#initclip
if (!_global.BandData) {
var v1 = function () {
super();
this.robot = [{'layout': ['RP', 'RP', '', '', '', '', '', ''], 'lvl_max': 9}, {'layout': ['RP', '', '', '', 'RP', '', '', ''], 'lvl_max': 9}, {'layout': ['RP', 'RP', 'RP', '', '', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['RP', '', '', '', 'RP', 'RP', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['RP', 'RP', '', '', 'RH', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['RA', 'RA', '', '', 'RH', 'RH', '', ''], 'lvl_min': 8, 'lvl_max': 14}, {'layout': ['RP', 'RP', 'RP', '', 'RH', 'RH', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['RG', 'RG', '', '', 'RH', 'RH', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['RA', 'RA', 'RA', '', 'RH', 'RH', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['RA', 'RA', 'RG', '', 'RH', 'RH', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['RG', 'RA', 'RA', '', 'RH', 'RH', 'RH', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['RG', 'RG', 'RG', '', 'RH', 'RH', 'RH', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['RA', 'RA', 'RP', 'RP', 'RH', 'RH', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['RG', 'RG', 'RG', 'RG', 'RH', 'RH', 'RH', ''], 'lvl_min': 20}, {'layout': ['RG', 'RG', 'RA', 'RA', 'RH', 'RH', 'RH', ''], 'lvl_min': 20}, {'layout': ['RA', 'RA', 'RA', 'RA', 'RH', 'RH', 'RH', ''], 'lvl_min': 20}];
this.meta = [{'layout': ['MM', '', '', '', 'MM', '', '', ''], 'lvl_max': 14}, {'layout': ['MM', '', '', '', 'MP', '', '', ''], 'lvl_max': 14}, {'layout': ['MP', '', '', '', 'MP', '', '', ''], 'lvl_max': 14}, {'layout': ['MM', 'MM', '', '', 'MM', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['MM', 'MM', '', '', 'MP', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['MM', '', '', '', 'MP', 'MP', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['MP', '', '', '', 'MP', 'MP', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['MM', '', '', '', 'MG', 'MG', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['MM', 'MM', '', '', 'MM', 'MM', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['MM', 'MM', '', '', 'MP', 'MP', 'MP', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['MM', 'MM', 'MM', '', 'MP', 'MP', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['MM', 'MM', '', '', 'MG', 'MG', 'MP', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['MG', 'MG', '', '', 'MG', 'MG', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['MM', 'MM', 'MM', '', 'MG', 'MG', 'MG', ''], 'lvl_min': 20}, {'layout': ['MM', 'MM', '', '', 'MG', 'MG', 'MG', 'MG'], 'lvl_min': 20}, {'layout': ['MP', 'MP', '', '', 'MG', 'MG', 'MG', 'MG'], 'lvl_min': 20}];
this.zombie = [{'layout': ['ZM', '', '', '', 'ZM', '', '', ''], 'lvl_max': 9}, {'layout': ['ZM', '', '', '', 'ZM', 'ZM', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['ZM', 'ZM', '', '', 'ZZ', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['ZM', 'ZM', 'ZM', '', 'ZZ', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['ZM', 'ZM', '', '', 'ZM', 'ZM', '', ''], 'lvl_min': 15}, {'layout': ['ZM', 'ZM', 'ZM', '', 'ZZ', 'ZZ', '', ''], 'lvl_min': 15}];
this.mutant = [{'layout': ['UG', '', '', '', 'UG', '', '', ''], 'lvl_max': 9}, {'layout': ['UG', '', '', '', 'UG', 'UG', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['UX', '', '', '', 'UX', 'UX', '', ''], 'lvl_max': 10, 'lvl_max': 19}, {'layout': ['UG', 'UG', '', '', 'UG', 'UZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['UG', 'UG', '', '', 'UG', 'UZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['UX', 'UX', '', '', 'UX', 'UZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['UG', 'UG', 'UG', '', 'UZ', 'UZ', '', ''], 'lvl_min': 20}, {'layout': ['UG', 'UG', 'UX', '', 'UZ', 'UZ', '', ''], 'lvl_min': 20}, {'layout': ['UX', 'UX', 'UX', '', 'UZ', 'UZ', '', ''], 'lvl_min': 20}];
this.gartt = [{'layout': ['GA', '', '', '', 'GA', '', '', ''], 'lvl_max': 9}, {'layout': ['GA', '', '', '', 'GA', 'GA', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['GA', 'GA', '', '', 'GX', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['GA', 'GA', '', '', 'GA', 'GA', '', ''], 'lvl_min': 15, 'lvl_max': 19}, {'layout': ['GA', 'GA', 'GA', '', 'GX', 'GZ', '', ''], 'lvl_min': 15, 'lvl_max': 19}, {'layout': ['GA', 'GA', 'GA', '', 'GX', 'GX', '', ''], 'lvl_min': 15, 'lvl_max': 19}, {'layout': ['GA', 'GA', 'GA', '', 'GX', 'GX', 'GZ', ''], 'lvl_min': 20}, {'layout': ['GA', 'GA', 'GA', 'GA', 'GX', 'GX', 'GZ', ''], 'lvl_min': 25}];
this.bandit = [{'layout': ['BM', '', '', '', 'BM', '', '', ''], 'lvl_max': 9}, {'layout': ['BM', '', '', '', 'BP', '', '', ''], 'lvl_max': 9}, {'layout': ['BP', '', '', '', 'BP', '', '', ''], 'lvl_max': 9}, {'layout': ['BM', 'BM', '', '', 'BP', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['BP', '', '', '', 'BP', 'BP', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['BM', 'BM', '', '', 'BZ', '', '', ''], 'lvl_min': 5, 'lvl_max': 9}, {'layout': ['BM', 'BP', '', '', 'BP', 'BN', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['BM', 'BM', '', '', 'BZ', 'BN', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['BM', 'BM', '', '', 'BZ', 'BZ', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['BM', 'BM', '', '', 'BZ', 'BN', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['BM', 'BM', '', '', 'BZ', 'BZ', 'BP', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['BM', 'BP', 'BP', '', 'BZ', 'BP', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['BM', 'BM', 'BM', '', 'BP', 'BP', 'BP', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['BP', 'BP', '', '', 'BZ', 'BZ', 'BN', 'BN'], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['BP', 'BP', 'BP', 'BP', 'BZ', 'BZ', 'BN', 'BN'], 'lvl_min': 20}, {'layout': ['BM', 'BM', 'BP', 'BP', 'BZ', 'BZ', 'BN', 'BN'], 'lvl_min': 20}];
this.rabbit = [{'layout': ['YG', '', '', '', 'YS', '', '', ''], 'lvl_max': 9}, {'layout': ['YG', 'YG', '', '', 'YS', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['YG', 'YG', 'YG', '', 'YS', '', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['YG', 'YG', '', '', 'YS', 'YS', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['YG', 'YG', 'YG', '', 'YS', 'YS', '', ''], 'lvl_min': 20}, {'layout': ['YG', 'YG', 'YG', '', 'YS', 'YS', 'YS', ''], 'lvl_min': 25}];
this.raider = [{'layout': ['DP', '', '', '', 'DP', '', '', ''], 'lvl_max': 9}, {'layout': ['DU', '', '', '', 'DU', '', '', ''], 'lvl_max': 9}, {'layout': ['DP', 'DP', '', '', 'DZ', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['DU', 'DU', '', '', 'DZ', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['DP', 'DP', '', '', 'DU', 'DU', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['DP', 'DP', 'DP', '', 'DZ', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['DP', 'DP', 'DU', '', 'DZ', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['DP', 'DP', 'DU', 'DU', 'DZ', 'DZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['DP', 'DP', 'DP', 'DP', 'DZ', 'DZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['DU', 'DU', 'DU', 'DU', 'DZ', 'DZ', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['DP', 'DP', 'DU', 'DU', 'DZ', 'DZ', 'DZ', ''], 'lvl_min': 20}, {'layout': ['DP', 'DP', 'DP', 'DP', 'DZ', 'DZ', 'DZ', ''], 'lvl_min': 20}, {'layout': ['DU', 'DU', 'DU', 'DU', 'DZ', 'DZ', 'DZ', ''], 'lvl_min': 20}, {'layout': ['DP', 'DP', 'DU', 'DU', 'DZ', 'DZ', 'DZ', 'DZ'], 'lvl_min': 25}, {'layout': ['DP', 'DP', 'DP', 'DP', 'DZ', 'DZ', 'DZ', 'DZ'], 'lvl_min': 25}, {'layout': ['DU', 'DU', 'DU', 'DU', 'DZ', 'DZ', 'DZ', 'DZ'], 'lvl_min': 25}];
this.soldier = [{'layout': ['SA', '', '', '', 'SA', '', '', ''], 'lvl_max': 9}, {'layout': ['SA', 'SA', '', '', 'SH1', '', '', ''], 'lvl_max': 9}, {'layout': ['SA', 'SA', 'SA', '', 'SH2', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['SA', 'SA', '', '', 'SN', 'SH2', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['SA', 'SA', '', '', 'SN', 'SH2', 'SH2', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['SA', 'SA', 'SA', '', 'SH2', 'SH2', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['SA', 'SA', 'SA', '', 'SN', 'SH3', 'SH3', ''], 'lvl_min': 20}, {'layout': ['SA', 'SA', 'SA', '', 'SN', 'SH3', 'SH3', ''], 'lvl_min': 20}, {'layout': ['SA', 'SA', 'SA', '', 'SN', 'SN', 'SN', ''], 'lvl_min': 25}];
this.shade = [{'layout': ['HM', '', '', '', '', '', '', ''], 'lvl_max': 9}, {'layout': ['HM', '', '', '', 'HM', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['HM', '', '', '', 'HM', 'HM', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['HM', 'HM', '', '', 'HM', 'HM', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['HM', 'HM', '', '', 'HM', 'HM', 'HM', ''], 'lvl_min': 20}, {'layout': ['HM', 'HM', 'HM', '', 'HM', 'HM', 'HM', ''], 'lvl_min': 25}];
this.alien = [{'layout': ['A2', '', '', '', '', '', '', ''], 'lvl_max': 4}, {'layout': ['A1', '', '', '', 'A2', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['A1', 'A1', '', '', 'A2', '', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['A1', 'A1', '', '', 'A2', 'A2', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['A1', 'A1', 'A1', '', 'A2', 'A2', '', ''], 'lvl_min': 20}, {'layout': ['A1', 'A1', 'A1', '', 'A2', 'A2', 'A2', ''], 'lvl_min': 25}];
this.kaufo = [{'layout': ['KP', '', '', '', 'KP', '', '', ''], 'lvl_max': 10}, {'layout': ['KP', 'KP', '', '', 'KP', '', '', ''], 'lvl_min': 5, 'lvl_max': 14}, {'layout': ['KP', 'KP', '', '', 'KP', 'KP', '', ''], 'lvl_min': 10, 'lvl_max': 19}, {'layout': ['KP', 'KP', 'KP', '', 'KP', 'KP', '', ''], 'lvl_min': 15, 'lvl_max': 24}, {'layout': ['KP', 'KP', 'KP', '', 'KP', 'KP', 'KP', ''], 'lvl_min': 20}, {'layout': ['KP', 'KP', 'KP', 'KP', 'KP', 'KP', 'KP', 'KP'], 'lvl_min': 25}];
this.grabber = [{'layout': ['XX', '', '', '', '', '', '', '']}, {'layout': ['XX', '', '', '', 'XX', '', '', ''], 'lvl_min': 15}];
this.arma_machine = [{'layout': ['RA', 'RA', 'RG', 'RG', 'QCYB', 'RH', '', '']}];
this.sg_aliens = [{'layout': ['A1', 'A1', '', '', 'A2', '', '', '']}];
this.int_meta = [{'layout': ['MZ', 'MZ', '', '', 'MZ', 'MZ', '', '']}];
this.cid = [{'layout': ['MM', 'MM', '', '', 'MG', 'MG', 'QCID', '']}];
this.celester = [{'layout': ['SN', 'SN', 'SN', '', 'QCEL', 'SN', 'SN', '']}];
this.vermut = [{'layout': ['GA', 'GA', '', '', 'GZ', '', '', ''], 'lvl_max': 9}, {'layout': ['GA', 'GA', '', '', 'GX', 'GZ', '', ''], 'lvl_min': 10, 'lvl_max': 14}, {'layout': ['GA', 'GA', 'GA', '', 'GX', 'GZ', '', ''], 'lvl_min': 15, 'lvl_max': 19}, {'layout': ['GA', 'GA', 'GA', '', 'GX', 'GX', 'GZ', ''], 'lvl_min': 20, 'lvl_max': 24}, {'layout': ['GA', 'GA', 'GA', 'GA', 'GX', 'GX', 'GZ', ''], 'lvl_min': 25}];
this.garn = [{'layout': ['SA', 'SA', 'QGRN', '', 'QCEL', 'SH3', 'SH3', '']}];
this.rogue_meta = [{'layout': ['MM', 'MM', 'MM', '', 'MG', 'MG', 'MG', '']}];
this.tr_kaufo = [{'layout': ['KP', 'KP', 'KP', '', 'KP', 'KP', 'KP', '']}];
this.tr_mist = [{'layout': ['SA', 'SA', 'SA', '', 'QMST', 'QCEL', 'SH3', '']}];
this.tr_nathan = [{'layout': ['KP', 'KP', 'KP', '', 'QNTN', 'KP', 'KP', '']}];
this.hell = [{'layout': ['HM', 'HM', 'HM', 'HM', 'QHEL', '', '', '']}];
this.mist = [{'layout': ['QGRD', 'QGRD', 'QGRD', 'QGRD', 'QMST', 'SH3', 'SH3', 'SH3']}];
this.sir_f = [{'layout': ['A1', 'A1', 'A1', '', 'QSRF', 'A2', 'A2', '']}];
this.key = [{'layout': ['KP', 'KP', 'KP', '', 'QKEY', 'KP', 'KP', '']}];
this.karry = [{'layout': ['QKRY', '', '', '', '', '', '', '']}];
this.dek_shades = [{'layout': ['HM', 'HM', 'HM', '', 'HM', 'HM', 'HM', '']}];
this.dekkis = [{'layout': ['', '', '', '', 'QDKS', '', '', '']}];
};
_global.BandData = v1;
_global.BandData extends Object;
var v2 = v1.prototype;
ASSetPropFlags(_global.BandData.prototype, null, 1);
}
#endinitclip
}
movieClip 1946 __Packages.NPCData {
#initclip
if (!_global.NPCData) {
var v1 = function () {
this.natan = {'id': 0, 'name': 'Ðатан', 'hello': 'ПриветÑтвую тебÑ, Грид. Где Ñ‚Ñ‹ опÑÑ‚ÑŒ пропадал?'};
this.natan.descri = 'Глава У.В.И.Ф.Ж.';
this.natan.talk = [1, 2, 3, 4, 5, 6, 7];
this.halisted = {'id': 1, 'name': 'ГалиÑтед', 'hello': 'Здоров, паренек!'};
this.halisted.descri = 'Старейшина деревни';
this.halisted.talk = [27, 28, 29];
this.ho = {'id': 2, 'name': 'Фермер Хо', 'hello': 'Привет, мужик, чего ты хотел?'};
this.ho.descri = 'Лучший фермер деревни';
this.ho.talk = [33, 30, 31, 32];
this.alien1 = {'id': 3, 'name': 'Житель Саммер Гарден', 'hello': 'Добро пролеживать в Сад Лета, человек. Ты же такой же как Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐº. Почему бы тебе не надеть на голову медведÑ?'};
this.alien1.descri = 'Обычный человек';
this.alien1.talk = [35];
this.alien2 = {'id': 4, 'name': 'Житель Саммер Гарден', 'hello': 'Иметь Ð²Ð°Ñ Ð² нашем город большой чеÑÑ‚ÑŒ.'};
this.alien2.descri = 'Обычный человек';
this.alien2.talk = [36];
this.alien3 = {'id': 5, 'name': 'Житель Саммер Гарден', 'hello': 'Я работаю официантом. Отчего-то получаетÑÑ Ð½Ðµ очень хорошо и начальÑтво вÑе Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð°Ð»ÑƒÐµÑ‚ÑÑ, что Ñ Ð¿Ð»Ð¾Ñ…Ð¾ одеваюÑÑŒ.'};
this.alien3.descri = 'Обычный человек';
this.alien3.talk = [37];
this.clod = {'id': 6, 'name': 'Клод', 'hello': 'Привет. Добро пожаловать в индуÑтриальный городок Интегра.'};
this.clod.descri = 'Ðеопролетарий';
this.clod.talk = [41, 42, 43];
this.jake = {'id': 7, 'name': 'Джейк', 'hello': 'Здоров!'};
this.jake.descri = 'Пролетарий';
this.jake.talk = [44, 45];
this.alexa = {'id': 8, 'name': 'ÐлекÑа', 'hello': 'Привет, Ñалага.'};
this.alexa.descri = 'МеÑÑ‚Ð½Ð°Ñ Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¸Ñ†Ð°';
this.alexa.talk = [46];
this.lindwid = {'id': 9, 'name': 'Линдвид', 'hello': 'Ðе отвлекай менÑ! Я очень занÑта.'};
this.lindwid.descri = 'Инженер-проектировщик';
this.lindwid.talk = [47, 48];
this.vladimir = {'id': 10, 'name': 'Владимир', 'hello': 'ЗдравÑтвуйте, товарищ.'};
this.vladimir.descri = 'Мета-Воин, техник';
this.vladimir.talk = [53, 54, 55];
this.micrasm = {'id': 11, 'name': 'МикраÑм', 'hello': 'Обидишь Лину – убью.'};
this.micrasm.descri = 'Мета-Воин, телохранитель Лины';
this.leena = {'id': 12, 'name': 'Лина', 'hello': 'Мое приветÑтвие, крошка-детка.'};
this.leena.descri = 'Лидер Мета-Воинов';
this.leena.talk = [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72];
this.craven = {'id': 13, 'name': 'Крейвен', 'hello': 'Думаю, вам лучше поговорить Ñ Ð›Ð¸Ð½Ð¾Ð¹, еÑли Ð²Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€ÐµÑуют какие-то вопроÑÑ‹.'};
this.craven.descri = 'Мета-Воин';
this.craven.talk = [73, 74];
this.sarahata = {'id': 14, 'name': 'Сарахата', 'hello': 'ПриветÑтвую Ð²Ð°Ñ Ð² моем ОазиÑе. ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Сарахата, Ñ â€“ меÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¸Ñ†Ð°.'};
this.sarahata.descri = 'Правительница племени';
this.sarahata.talk = [75, 76, 77];
this.mihel = {'id': 15, 'name': 'Мигель', 'hello': 'Чего тебе надо? Проваливай!'};
this.mihel.descri = 'Лидер Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð“Ð°Ñ€Ñ‚Ñ‚';
this.mihel.talk = [78, 79, 80];
this.vermut = {'id': 16, 'name': 'Вермут', 'hello': 'Служу Гартт.'};
this.vermut.descri = 'УчаÑтник Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð“Ð°Ñ€Ñ‚Ñ‚';
this.vermut.talk = [81];
this.zoid = {'id': 17, 'name': 'Зойд', 'hello': 'СлавьÑÑ, Гартт!'};
this.zoid.descri = 'УчаÑтник Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð“Ð°Ñ€Ñ‚Ñ‚';
this.zoid.talk = [83];
this.bristol = {'id': 18, 'name': 'БриÑтол', 'hello': 'Привет.'};
this.bristol.descri = 'Художница и натурщица';
this.bristol.talk = [84, 85, 86];
this.stan = {'id': 19, 'name': 'Стен', 'hello': 'Привет, мужик. Будь крут. Ð’Ñе ок.'};
this.stan.descri = 'ÐœÑÑ€ города';
this.stan.talk = [87, 88];
this.viola = {'id': 20, 'name': 'Виола', 'hello': 'ЗдравÑтвуйте.'};
this.viola.descri = 'Музыкант';
this.viola.talk = [89, 90];
this.ace = {'id': 21, 'name': 'ÐйÑ', 'hello': 'Прив.'};
this.ace.descri = 'Меценат';
this.ace.talk = [91, 93, 94, 95, 96];
this.shell = {'id': 22, 'name': 'Шелл', 'hello': 'Привет, путник!'};
this.shell.descri = 'Отважный воин и иÑÑледователь';
this.shell.talk = [97, 98, 99];
this.liz = {'id': 23, 'name': 'Лиз', 'hello': '(вздыхает)'};
this.liz.descri = 'Жительница';
this.liz.talk = [100, 101, 102, 103, 104];
this.alice = {'id': 24, 'name': 'ÐлиÑ', 'hello': 'ПриветÑтвую.'};
this.alice.descri = 'ХозÑйка торговой лавки';
this.alice.talk = [105, 106];
this.harcos = {'id': 25, 'name': 'ХаркоÑ', 'hello': 'ХаркоÑ, капитан «ÐеизбежноÑти», приветÑтвует тебÑ!'};
this.harcos.descri = 'Капитан «ÐеизбежноÑти»';
this.harcos.talk = [107, 108, 109, 110, 111, 112, 113];
this.yax = {'id': 26, 'name': 'ЙакÑ', 'hello': 'Привет.'};
this.yax.descri = 'Бывалый морÑк';
this.yax.talk = [114, 115, 116];
this.cij = {'id': 27, 'name': 'Си Ðй Джей', 'hello': 'Йохо!'};
this.cij.descri = 'Капитан «ИÑтерии» - летающего кораблÑ';
this.cij.talk = [117, 118, 119];
this.kippa = {'id': 28, 'name': 'Киппа', 'hello': 'Привет!'};
this.kippa.descri = 'Девочка Ñ ÐºÐ¾ÑˆÐ°Ñ‡ÑŒÐ¸Ð¼Ð¸ ушками';
this.kippa.talk = [120, 121, 122];
this.lexic = {'id': 29, 'name': 'ЛекÑик', 'hello': 'Привет!'};
this.lexic.descri = 'Панда';
this.lexic.talk = [123, 124, 125];
this.gaimon = {'id': 30, 'name': 'Гаймон', 'hello': 'Здра.'};
this.gaimon.descri = 'Странный человек';
this.gaimon.talk = [126, 127, 128];
this.chivax = {'id': 31, 'name': 'ЧивакÑ', 'hello': 'Привет.'};
this.chivax.descri = 'ÐœÑÑ€ города';
this.chivax.talk = [129, 130];
this.ken = {'id': 32, 'name': 'Кен', 'hello': 'Черт! Я шел на войну, Ð²ÐµÑ€Ñ Ð² Ñветлое будущее, а закончил мрачным наÑтоÑщим...'};
this.ken.descri = 'Бывший Ñолдат';
this.ken.talk = [131];
this.goman = {'id': 33, 'name': 'Гоуман', 'hello': 'Ðормальные девушки на Ð¼ÐµÐ½Ñ Ð½Ðµ обращают вниманиÑ, а Фие тоже подавай только живых мужиков... и что мне прикажете делать?!'};
this.goman.descri = 'Бывший Ñолдат';
this.goman.talk = [132];
this.fea = {'id': 34, 'name': 'ФиÑ', 'hello': 'ЗдравÑтвуй, живой человек...'};
this.fea.descri = 'Бывший ученый';
this.fea.talk = [133, 134, 135];
this.keabo = {'id': 35, 'name': 'Кибо', 'hello': 'Мир, жвачка, чувак. Ð’Ñе круто. Ðе парьÑÑ.'};
this.keabo.descri = 'Торговец оружием';
this.keabo.talk = [136, 137, 138, 139, 140];
this.seth = {'id': 36, 'name': 'Сет', 'hello': '...'};
this.seth.descri = 'Мрачный и злой богатей';
this.seth.talk = [141, 142, 143, 144];
this.hydra = {'id': 37, 'name': 'Гидра', 'hello': 'ЗдраÑьте!'};
this.hydra.descri = 'Девушка из богатой Ñемьи';
this.hydra.talk = [145, 146, 147, 148];
this.heraldio = {'id': 38, 'name': 'Геральдио', 'hello': 'ЗдравÑтвуйте, ÑÑÑ€.'};
this.heraldio.descri = 'ÐриÑтократ';
this.heraldio.talk = [149, 150, 151, 152];
this.vlad_ser = {'id': 39, 'name': 'Влад Сергеевич', 'hello': 'Добро пожаловать во Владзвиль!'};
this.vlad_ser.descri = 'Глава деревни';
this.vlad_ser.talk = [153, 154, 155];
this.vlad_vlad = {'id': 40, 'name': 'Влад Владович', 'hello': 'Здоровеньки.'};
this.vlad_vlad.descri = 'Кузнец';
this.vlad_vlad.talk = [156, 157, 158];
this.vlada = {'id': 41, 'name': 'Влада', 'hello': 'Привет, хозÑюшка!'};
this.vlada.descri = 'ХозÑйка';
this.vlada.talk = [159];
this.garn = {'id': 42, 'name': 'Гарн Стакович', 'hello': 'Гарн Стакович, капитан Ñедьмого взвода. Чем обÑзан?'};
this.garn.descri = 'Командир';
this.garn.talk = [162];
this.celester = {'id': 43, 'name': 'СелеÑтер', 'hello': 'Привет, чего нужно?'};
this.celester.descri = 'Снайпер';
this.celester.talk = [163];
this.lesly = {'id': 44, 'name': 'ЛеÑли', 'hello': 'Привет, краÑавчик.'};
this.lesly.descri = 'Солдат';
this.lesly.talk = [164];
this.marcy = {'id': 45, 'name': 'МарÑи', 'hello': 'Привет!'};
this.marcy.descri = 'Pедактор газеты и хозÑйка радиоÑтанции';
this.marcy.talk = [169, 170, 171, 172];
this.biby = {'id': 46, 'name': 'Байби', 'hello': 'Приветики, мои фанаты!'};
this.biby.descri = 'Модель, певица и актриÑа';
this.biby.talk = [173, 174];
this.ibrahim = {'id': 47, 'name': 'Ибрагим', 'hello': 'Металл-аллюр. Ð’Ñтупай в мою Ñекту.'};
this.ibrahim.descri = 'Сектант';
this.ibrahim.talk = [175, 176, 177];
this.michel = {'id': 48, 'name': 'Мишель', 'hello': 'Привет. ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Мишель.'};
this.michel.descri = 'Куртизанка';
this.michel.talk = [178, 179, 180];
this.jax = {'id': 49, 'name': 'ДжакÑ', 'hello': 'Привет! Хочешь, оторву тебе руки?! Ðет?! Жаль. Рчего надо?'};
this.jax.descri = 'Шеф полиции';
this.jax.talk = [181, 182, 183, 184, 185];
this.elm = {'id': 50, 'name': 'Ðльм', 'hello': 'ЗдравÑтвуй, человек.'};
this.elm.descri = 'РежиÑÑер';
this.elm.talk = [186, 187, 188];
this.nina_x = {'id': 51, 'name': 'Nina X', 'hello': 'Привет, парень.'};
this.nina_x.descri = 'Жительница';
this.nina_x.talk = [189, 190, 191];
this.uncle_sam = {'id': 52, 'name': 'ДÑдюшка СÑм', 'hello': 'ДÑдюшка СÑм Ñлушает!'};
this.uncle_sam.descri = 'Фермер';
this.uncle_sam.talk = [192, 193];
this.stacy = {'id': 53, 'name': 'СтейÑи', 'hello': 'Привет!'};
this.stacy.descri = 'Дочь дÑдюшки СÑма';
this.stacy.talk = [194, 195, 196];
this.hell = {'id': 54, 'name': 'Ð¥Ñл', 'hello': 'ЗдравÑтвуй, котик. Ты ко мне?'};
this.hell.descri = 'ДьÑвол';
this.hell.talk = [198, 199, 200, 201, 203, 204];
this.guard = {'id': 55, 'name': 'Ðдуардо', 'hello': 'Проходи мимо. Тебе Ð½ÐµÐ»ÑŒÐ·Ñ Ð² город.'};
this.guard.descri = 'Охранник';
this.guard.talk = [];
this.mist = {'id': 56, 'name': 'МиÑÑ‚', 'hello': 'Итак, вы здеÑÑŒ...'};
this.mist.descri = 'Президент';
this.mist.talk = [205];
this.kage = {'id': 57, 'name': 'Кейдж', 'hello': '...'};
this.kage.descri = 'ÐиндзÑ';
this.kage.talk = [206, 207, 208];
this.grandin = {'id': 58, 'name': 'Грандин', 'hello': 'Мир тебе.'};
this.grandin.descri = 'Монах';
this.grandin.talk = [209, 210, 211];
this.dr_rade = {'id': 59, 'name': 'Доктор ÐÑ„ Рейд', 'hello': 'Черт... вы нашли мою тайную лабораторию...'};
this.dr_rade.descri = 'ХозÑин лаборатории';
this.dr_rade.talk = [212, 213];
this.garret = {'id': 60, 'name': 'Гаррет', 'hello': 'Привет, Ñ Ð“Ð°Ñ€Ñ€ÐµÑ‚. Я занимаюÑÑŒ изучением генной инженерии.'};
this.garret.descri = 'Генный инженер';
this.garret.talk = [214, 215, 216, 256];
this.ksenya = {'id': 61, 'name': 'КÑениÑ', 'hello': 'Привет!'};
this.ksenya.descri = 'Биолог';
this.ksenya.talk = [217, 219];
this.sir_f = {'id': 62, 'name': 'СÑÑ€ ÐФ', 'hello': 'ЗдравÑтвуй, человек Ñтой планеты.'};
this.sir_f.descri = 'Главнокомандующий операцией «ÐволюциÑ»';
this.sir_f.talk = [224, 225, 226];
this.curt = {'id': 63, 'name': 'Курт', 'hello': 'Привет. Чего надо?'};
this.curt.descri = 'Бездельник';
this.curt.talk = [227, 228, 229, 230];
this.georg = {'id': 64, 'name': 'Георг', 'hello': 'ЗдравÑтвуй, путник.'};
this.georg.descri = 'Глава города';
this.georg.talk = [231, 232, 233, 234, 235, 236];
this.john = {'id': 65, 'name': 'Джон', 'hello': 'Привет, чувак.'};
this.john.descri = 'Бездельник';
this.john.talk = [237, 238, 239, 240];
this.carl = {'id': 66, 'name': 'Карл Вакуоль', 'hello': 'ЗдравÑтвуйте.'};
this.carl.descri = 'Великий ученый и изобретатель';
this.carl.talk = [243, 244, 245, 246, 247];
this.michael = {'id': 67, 'name': 'МихаÑль Валоткрафт', 'hello': 'Добрый день, МихаÑль Валоткрафт к вашим уÑлугам.'};
this.michael.descri = 'Ученый';
this.michael.talk = [249, 248];
this.smith = {'id': 68, 'name': 'Смит Беккорд', 'hello': 'ЗдравÑтвуй, чел.'};
this.smith.descri = 'Ученый';
this.smith.talk = [250, 251, 252, 253, 254];
this.dekkis = {'id': 69, 'name': 'ДеккиÑ', 'hello': ''};
this.dekkis.descri = 'Мутант';
this.katenka = {'id': 70, 'name': 'Катенька', 'hello': ''};
this.katenka.descri = 'Сотрудник У.В.И.Ф.Ж.';
this.key = {'id': 71, 'name': 'Кей', 'hello': ''};
this.key.descri = 'Сотрудник У.В.И.Ф.Ж.';
this.feather = {'id': 72, 'name': 'Фивер', 'hello': ''};
this.feather.descri = 'Девушка-ангел';
this.karry = {'id': 73, 'name': 'Карри', 'hello': '...'};
this.karry.descri = 'Пришелец';
this.karry.talk = [257, 258, 259];
this.grid = {'id': 74, 'name': 'Грид', 'hello': ''};
this.grid.descri = 'Сотрудник У.В.И.Ф.Ж.';
this.cid = {'id': 75, 'name': 'Cид', 'hello': ''};
this.cid.descri = 'КибернетичеÑкий организм';
this.alien1a = {'id': 76, 'name': 'Пришелец'};
this.alien1a.descri = '';
this.alien2a = {'id': 77, 'name': 'Пришелец'};
this.alien2a.descri = '';
this.alien3a = {'id': 78, 'name': 'Пришелец'};
this.alien3a.descri = '';
this.house_carl = {'id': 79, 'name': 'Дом Карла ВакуолÑ', 'hello': '...'};
this.house_carl.descri = '';
this.house_carl.talk = [242];
};
_global.NPCData = v1;
var v2 = v1.prototype;
ASSetPropFlags(_global.NPCData.prototype, null, 1);
}
#endinitclip
}
movieClip 1947 __Packages.TalkData4 {
#initclip
if (!_global.TalkData4) {
var v1 = function () {
super();
this[227] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'curt', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Курт, а тебе какое дело?'}, {'npc': 'grid', 'text': 'Да... в, общем-то, никакого. ПроÑто ÑпроÑил.'}, {'npc': 'curt', 'text': 'Ð—Ñ€Ñ ÑпроÑил.'}, {'npc': 'grid', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Грид.'}, {'event': 'set_flag', 'flag': 'curt_join'}, {'npc': 'curt', 'text': 'Мне не интереÑно.'}]};
this[228] = {'theme': 'ВЗЯТЬ В ОТРЯД', 'condition': function () {
return 2 <= (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.isFlag('curt_join');
}, 'msg': [{'npc': 'grid', 'text': 'Слушай, Курт, Ñ Ñмотрю тебе нечем занÑÑ‚ÑŒÑÑ. Может, приÑоединишьÑÑ Ðº моему отрÑду? У Ð½Ð°Ñ Ð²ÐµÑело, мы вÑех убиваем и получаем за Ñто вÑÑчеÑкие награды.'}, {'npc': 'curt', 'text': 'Та ну... даже не знаю... давай так, оплатишь мой долг в банке, Ñ, так и быть, приÑоединюÑÑŒ к твоему отрÑду. Я должен €1000 меÑтному банку. ПринеÑи мне деньги – и Ñ Ñ Ð²Ð°Ð¼Ð¸.'}, {'event': 'set_flag', 'flag': 'v_paycurtdebt', 'value': 1}, {'npc': 'grid', 'text': 'ПонÑтно.'}]};
this[229] = {'theme': 'ЗÐПЛÐТИТЬ ДОЛГ КУРТÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_paycurtdebt') && (Core.Get()).game.money < 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Вот, держи.'}, {'npc': 'curt', 'text': 'Парень, Ñ‚Ñ‹ в Ñвоем уме? Ты протÑгиваешь мне пуÑтую ладонь. У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ таких денег, чувак!'}, {'npc': 'grid', 'text': 'И ведь верно...'}]};
this[230] = {'theme': 'ЗÐПЛÐТИТЬ ДОЛГ КУРТÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_paycurtdebt') && (Core.Get()).game.money >= 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Вот, держи.'}, {'npc': 'curt', 'text': 'Круто!.. Только не Ñпрашивай, как Ñ Ð¾ÐºÐ°Ð·Ð°Ð»ÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ банку денег!'}, {'event': 'set_flag', 'flag': 5000}, {'event': 'join_team', 'npc': 4}, {'npc': 'curt', 'text': 'Ðу что ж, Ñ Ð¿Ñ€Ð¸ÑоединюÑÑŒ к твоему отрÑду!'}]};
this[231] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Рвы, Ñтало быть..?'}, {'npc': 'georg', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Георг, Ñ Ð³Ð»Ð°Ð²Ð° Ñтого города.'}]};
this[232] = {'theme': 'ГИБСОÐ-СИТИ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажите мне о ГибÑон-Сити.'}, {'npc': 'georg', 'text': 'О, Ñто Ñтарый город. Давным-давно на меÑте Ñтого города проходил феÑтиваль рок-музыки, крупнейший в иÑтории. Он получил название ФаерÑток.'}, {'npc': 'georg', 'text': 'ПоÑле феÑÑ‚Ð¸Ð²Ð°Ð»Ñ ÑƒÐµÑ…Ð°Ð»Ð¸ не вÑе. Ðекоторые решили оÑтатьÑÑ Ð·Ð´ÐµÑÑŒ жить. ПоÑтепенно, здеÑÑŒ Ñ€Ð¾Ñ Ð³Ð¾Ñ€Ð¾Ð´.'}, {'npc': 'georg', 'text': 'Ðо Ñ Ñ‚ÐµÑ… пор прошло Ñтолько времени...'}, {'npc': 'georg', 'text': 'Многие забыли про музыкальные корни.'}, {'npc': 'grid', 'text': 'Рвы Ñами-то музыкант?'}, {'npc': 'georg', 'text': 'Ха-ха-ха. Ðет, мой друг. Ð’ молодоÑти Ñ Ð±Ñ‹Ð» им, а ÑÐµÐ¹Ñ‡Ð°Ñ Ñ Ð¿Ñ€Ð¾Ñто никому не нужный Ñтарик Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ от города.'}]};
this[233] = {'theme': 'ПОМОЩЬ ГОРОДУ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_gibsonquest');
}, 'msg': [{'npc': 'georg', 'text': 'Юноша, а не хотели бы вы помочь ГибÑон-Сити? РазумеетÑÑ, не беÑплатно.'}, {'npc': 'grid', 'text': 'Возможно. Что нужно делать?'}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 1}, {'event': 'add_quest', 'quest': 'raiding_raiders', 'stage': 0}, {'npc': 'georg', 'text': 'Ð’ поÑледнее Ð²Ñ€ÐµÐ¼Ñ Ð²Ð¾ÐºÑ€ÑƒÐ³ ГибÑон-Сити чаÑтенько околачиваютÑÑ Ñ€ÐµÐ¹Ð´ÐµÑ€Ñ‹. Они нападают на Ñлучайных путников. Убейте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 20 штук, и Ñ Ñ‰ÐµÐ´Ñ€Ð¾ награжу ваÑ.'}]};
this[234] = {'theme': 'ПОМОЩЬ ГОРОДУ – ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gibsonquest') && 20 <= (Core.Get()).game.getFlag('kills_raiders_georg');
}, 'msg': [{'npc': 'grid', 'text': 'Я избавил Ð²Ð°Ñ Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ от 20 рейдеров.'}, {'event': 'give_exp', 'value': 7000}, {'event': 'give_money', 'value': 25000}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 2}, {'event': 'complete_quest', 'quest': 'raiding_raiders'}, {'npc': 'georg', 'text': 'Отлично! Ðедавно к нам заезжала Ñрмарка, причем доехала без проиÑшеÑтвий. СпаÑибо вам. Вот ваша награда.'}]};
this[235] = {'theme': 'ПОМОЩЬ ГОРОДУ 2', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_gibsonquest');
}, 'msg': [{'npc': 'grid', 'text': 'Может, еще Ñ Ñ‡ÐµÐ¼-нибудь нужна помощь?'}, {'npc': 'georg', 'text': 'Увы, да...'}, {'npc': 'georg', 'text': 'ÐÐ¾Ð²Ð°Ñ Ð½Ð°Ð¿Ð°ÑÑ‚ÑŒ пришла в регион ГибÑон! С уходом рейдеров в наши земли пришли мутанты. Избавьте Ð½Ð°Ñ Ð¾Ñ‚ них... Убейте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 25 мутантов и возвращайтеÑÑŒ за наградой.'}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 3}, {'event': 'add_quest', 'quest': 'raiding_mutants', 'stage': 0}, {'npc': 'grid', 'text': 'Пойду им лица бить.'}]};
this[236] = {'theme': 'ПОМОЩЬ ГОРОДУ 2 - ВЫПОЛÐЕÐО', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_gibsonquest') && 25 <= (Core.Get()).game.getFlag('kills_mutants_georg');
}, 'msg': [{'npc': 'grid', 'text': 'Я разобралÑÑ Ñ Ð¼ÑƒÑ‚Ð°Ð½Ñ‚Ð°Ð¼Ð¸.'}, {'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 60000}, {'event': 'give_item', 'item': 30}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 4}, {'event': 'complete_quest', 'quest': 'raiding_mutants'}, {'npc': 'georg', 'text': 'Отлично! СпаÑибо вам, вы очень помогли нашему городу.'}]};
this[237] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажи о Ñебе.'}, {'npc': 'key', 'text': 'Я тебе раÑÑкажу о нем, Грид! Ðто немолодой озабоченный бездельник, который не имеет конкретного хобби и вообще Ð·Ñ€Ñ Ð¿Ñ€Ð¾Ð¶Ð¸Ð³Ð°ÐµÑ‚ Ñвою жизнь!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'john', 'text': 'Ðу Ñ Ð±Ñ‹ ответил неÑколько иначе...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'key', 'text': 'Ð Ñ Ð±Ñ‹ ответила правду! Мне приходилоÑÑŒ видетьÑÑ Ñ Ð½Ð¸Ð¼ во Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¸ÑÑии в ГибÑон Сити.', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'john', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Джон, Ñ Ð»ÑŽÐ±Ð»ÑŽ девушек и пеÑни ÐлвиÑа. Чувака круче Ð¼ÐµÐ½Ñ Ñложно найти. Вот так вот! Зацени мои Ñиние-Ñиние туфли.', 'condition': function () {
return !(Core.Get()).game.isInTeam(1);
}}]};
this[238] = {'theme': 'ЛЮБОВÐЫЙ ОХОТÐИК', 'condition': function () {
return !(Core.Get()).game.getFlag('q_lovehunter');
}, 'msg': [{'npc': 'john', 'text': 'Слушай, Ñ‚Ñ‹ не мог бы помочь мне Ñ Ð¾Ð´Ð½Ð¸Ð¼ делом? Денег у Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚, но зато полно полезного барахла, в том чиÑле и оружиÑ.'}, {'npc': 'grid', 'text': 'С чем нужна помощь?'}, {'npc': 'john', 'text': 'Ð’ городе КалиÑтер еÑÑ‚ÑŒ модель и певица по имени Байби. Мне нужно, чтобы она Ñтала моей.'}, {'npc': 'grid', 'text': 'Я не занимаюÑÑŒ любовными зельÑми. Ðто миф.'}, {'npc': 'john', 'text': 'Да, миф. Рвот чип любви – реальноÑÑ‚ÑŒ! ПомнитÑÑ Ð¼Ð½Ðµ, Смит Беккорд из деревни Раймонд должен был мне за одно дельце, и обещал такое иÑÑледование.'}, {'npc': 'john', 'text': 'Сперва возьми у Беккорда чип, затем поÑтарайÑÑ Ð½ÐµÐ·Ð°Ð¼ÐµÑ‚Ð½Ð¾ вживить его Байби.'}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 1}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 0}, {'npc': 'grid', 'text': 'Только еÑли мне будет ÑовÑем нечем занÑÑ‚ÑŒÑÑ!'}]};
this[239] = {'theme': 'ЛЮБОВÐЫЙ ОХОТÐИК', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_lovehunter');
}, 'msg': [{'npc': 'grid', 'text': 'Я плохо предÑтавлÑÑŽ зачем, но Ñ Ð²Ð¶Ð¸Ð²Ð¸Ð» чип Ñтой блондинке.'}, {'npc': 'john', 'text': 'Круто! СпаÑибо! Как и обещал, вот награда!'}, {'event': 'give_exp', 'value': 3500}, {'event': 'give_item', 'item': 54}, {'event': 'give_item', 'item': 113}, {'event': 'complete_quest', 'quest': 'love_hunter'}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 3}, {'npc': 'grid', 'text': 'Она будет ждать ваÑ.'}]};
this[240] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'npc': 'john', 'text': 'Я тут на Ñвалке нашел пару штук, не хочешь поÑмотреть?'}, {'event': 'trade', 'npc': 'john'}]};
this[241] = {'theme': 'КÐРЛ Ð’ÐКУОЛЬ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isFlag('raymonde_visit');
}, 'msg': [{'event': 'set_flag', 'flag': 'raymonde_visit'}, {'npc': 'craven', 'text': 'Вот она, Ð´ÐµÑ€ÐµÐ²Ð½Ñ Ð Ð°Ð¹Ð¼Ð¾Ð½Ð´. Что-то не вижу тут моего знакомого, Карла...'}, {'npc': 'grid', 'text': 'Ðе Ñ Ð½Ð¸Ð¼ ли приключилаÑÑŒ беда?'}, {'npc': 'smith', 'text': 'Да, именно так, чувак. Карл Вакуоль куда-то пропал прÑмо из Ñвоего дома. И мы хз, в чем дело, чувак.'}, {'npc': 'craven', 'text': 'Грид. Ðто – великий кибернетик деревни Раймонд – Смит Беккорд.'}, {'npc': 'grid', 'text': 'Говорит не как ученый.'}, {'npc': 'smith', 'text': 'Варежку запахни. Я очень крут.'}, {'npc': 'craven', 'text': 'Ðто дейÑтвительно так.'}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 1}, {'npc': 'grid', 'text': 'Ладно, давайте поÑтараемÑÑ Ð²Ñ‹ÑÑнить, в чем же дело.'}]};
this[242] = {'theme': 'КÐРЛ Ð’ÐКУОЛЬ', 'condition': function () {
return !(Core.Get()).game.getFlag('q_gotosummerg');
}, 'msg': [{'npc': 'craven', 'text': 'Ðто - дом Карла.'}, {'npc': 'grid', 'text': 'Давайте оÑмотрим его.'}, {'npc': '', 'text': '...'}, {'event': 'give_exp', 'value': 1500}, {'event': 'give_quest_item', 'item': 22}, {'event': 'give_quest_item', 'item': 23, 'count': 5}, {'event': 'set_flag', 'flag': 'q_gotosummerg', 'value': 1}, {'npc': 'grid', 'text': 'Любопытно...'}]};
this[243] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТВ', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_bigalienplan') && !(Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'npc': 'grid', 'text': 'Ðатан Ñказал мне, что Ñ Ð¼Ð¾Ð³Ñƒ воÑпользоватьÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из ваших темпоральных телевизоров.'}, {'npc': 'carl', 'text': 'Ðет, не можете.'}, {'npc': 'grid', 'text': 'Почему же?'}, {'npc': 'carl', 'text': 'Потому, что еще не раÑÑказал, как Ñто делать!'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'grid', 'text': 'То еÑÑ‚ÑŒ, проÑто уÑтановить таймер и нажать кнопку ВКЛ?'}, {'npc': 'carl', 'text': 'Ðу Ñто очень грубое изложение моей лекции, но в принципе да. Держите темпоральный телевизор и поÑтарайтеÑÑŒ его не разбить.'}, {'event': 'give_quest_item', 'item': 0}, {'npc': 'grid', 'text': 'Теперь нужно поÑетить меÑта поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†ÐµÐ²...'}]};
this[244] = {'theme': 'ÐÐУКÐ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажите о вашем вкладе в науку...'}, {'npc': 'carl', 'text': 'С радоÑтью! Ð’Ñ‹ хотите Ñто знать?'}, {'npc': 'grid', 'text': 'Знаете, Ñ Ñ‚ÑƒÑ‚ подумал... и – нет. Ð’Ñе-таки нет. Ðе хочу.'}]};
this[245] = {'theme': 'ПОДГОТОВКРВОСТÐÐИЯ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_get3parts');
}, 'msg': [{'npc': 'grid', 'text': 'ЗдравÑтвуй, Карл! Давно не виделиÑÑŒ.'}, {'npc': 'carl', 'text': 'Чем обÑзан?'}, {'npc': 'grid', 'text': 'Лина говорит, нужно помочь вам в подготовке воÑÑтаниÑ.'}, {'npc': 'carl', 'text': 'Да, верно! Ðужно! Я Ñобираю вечный двигатель, который будет крайне необходим кибернизированным Мета-Воинам. Ðо Ð´Ð»Ñ ÐµÐ³Ð¾ Ñборки мне нужно еще 3 детали.'}, {'npc': 'carl', 'text': 'Мне нужен нефритовый поршень, который можно купить на Ðефритовом ОÑтрове, Ñ‚Ð¸Ñ‚Ð°Ð½Ð¾Ð²Ð°Ñ Ñ†ÐµÐ¿ÑŒ BDX, котораÑ, говорÑÑ‚, продаетÑÑ Ð² регионе Парадарк, и гальванизатор S7, который, говорÑÑ‚, еÑÑ‚ÑŒ у кого-то то ли в КалиÑтере, то ли в Сирите.'}, {'npc': 'grid', 'text': 'ПонÑтно... а деньги на вÑе Ñто Ñ Ð³Ð´Ðµ возьму?'}, {'npc': 'carl', 'text': 'Можете продать почку.'}, {'npc': 'grid', 'text': 'Ðет, ÑпаÑибо.'}, {'npc': 'carl', 'text': 'Тогда возьмите вот Ñто.'}, {'event': 'give_quest_item', 'item': 27}, {'npc': 'carl', 'text': 'По Ñтой карте вы Ñможете купить вÑе нужные запчаÑти беÑплатно, они будут запиÑаны на Ñчет Мета-Воинов.'}, {'npc': 'grid', 'text': 'Рчто еще можно купить, пользуÑÑÑŒ Ñтой картой?'}, {'npc': 'carl', 'text': 'Больше ничего, молодой человек. Я отÑлеживаю вÑе раÑходы по ней.'}, {'event': 'set_flag', 'flag': 'q_get3parts', 'value': 1}, {'npc': 'grid', 'text': 'ПонÑтно...'}]};
this[246] = {'theme': 'СБОРДЕТÐЛЕЙ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_get3parts') && !((Core.Get()).game.hasQuestItem(24) && (Core.Get()).game.hasQuestItem(25) && (Core.Get()).game.hasQuestItem(26));
}, 'msg': [{'npc': 'carl', 'text': 'По глазам вижу, что вы еще Ñобрали не вÑе необходимые детали!'}, {'npc': 'carl', 'text': 'Вам нужен нефритовый поршень, гальванизатор S7 и Ñ‚Ð¸Ñ‚Ð°Ð½Ð¾Ð²Ð°Ñ Ñ†ÐµÐ¿ÑŒ BDX.'}]};
this[247] = {'theme': 'СБОРДЕТÐЛЕЙ - ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_get3parts') && (Core.Get()).game.hasQuestItem(24) && (Core.Get()).game.hasQuestItem(25) && (Core.Get()).game.hasQuestItem(26);
}, 'msg': [{'npc': 'grid', 'text': 'Я Ñобрал вÑе необходимое.'}, {'event': 'remove_quest_item', 'item': 24}, {'event': 'remove_quest_item', 'item': 25}, {'event': 'remove_quest_item', 'item': 26}, {'event': 'remove_quest_item', 'item': 27}, {'event': 'give_exp', 'value': 7000}, {'event': 'set_flag', 'flag': 'q_get3parts', 'value': 2}, {'npc': 'carl', 'text': 'Я знаю. Мне приходили отчеты Ñ Ð¼Ð¾ÐµÐ¹ карты. Ðто великолепно! Теперь Ñ Ñмогу Ñобрать вечный двигатель. Можете Ñмело раÑÑказать об уÑпехах Лине.'}]};
this[248] = {'theme': 'СОЮЗ С КÐЛИПСО', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'michael', 'text': 'Ðенавижу Карла ВакуолÑ!'}, {'npc': 'grid', 'text': 'Рад за ваÑ! Ðо Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ» пообщатьÑÑ Ð½Ð° другую тему...'}, {'npc': 'michael', 'text': 'Ð’Ñе Ñчитают его гением, а Ñ Ð½ÐµÐ·Ð°Ñлуженно Ñтою в его тени! Как же мне доказать, что лучший ученый деревни Раймонд – Ñто Ñ?!'}, {'npc': 'grid', 'text': 'Я пришел, чтобы предложить тебе решение Ñтой проблемы!'}, {'npc': 'michael', 'text': 'Ты убьешь ВакуолÑ?'}, {'npc': 'grid', 'text': 'Ðет, Ñ Ð·Ð½Ð°ÑŽ, как можно его обойти.'}, {'npc': 'michael', 'text': 'Я Ñлушаю и внимаю!'}, {'npc': 'grid', 'text': 'Знаешь КалипÑо, город мертвÑков?'}, {'npc': 'michael', 'text': 'РазумеетÑÑ.'}, {'npc': 'grid', 'text': 'Они хотÑÑ‚ вернуть Ñебе нормальные человечеÑкие тела, за Ñто ÑоглаÑÑÑ‚ÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ воÑÑтанию Мета-Воинов.'}, {'npc': 'grid', 'text': 'ЕÑли Ñ‚Ñ‹ Ñумеешь выполнить то, о чем они говорÑÑ‚, то во-первых, будешь на хорошем Ñчету у Лины, во-вторых – Ñовершишь революционное иÑÑледование в науке.'}, {'npc': 'michael', 'text': 'Точно! Я же когда-то занималÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ иÑÑледованиÑми, но заброÑил, когда мне запретили откапывать трупы на кладбище...'}, {'event': 'give_exp', 'value': 6000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 4}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 5}, {'npc': 'grid', 'text': 'Что ж, возобнови Ñвои иÑÑледованиÑ, у Ñ‚ÐµÐ±Ñ Ð±ÑƒÐ´ÐµÑ‚ подопытный материал. Я пойду Ñообщу об Ñтом Фие из КалипÑо.'}]};
this[249] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'michael', 'text': 'Я – МихаÑль Валоткрафт, величайший ученый в иÑтории.'}, {'npc': 'grid', 'text': 'Познавательно.'}]};
this[250] = {'theme': 'ЧТО СЛУЧИЛОСЬ?', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'smith', 'text': 'Куда-то пропал наш важный ученый, Карл Вакуоль. Мы не знаем где он, но его уже давно нет. Видимо, ÑÑ‚Ñ€ÑÑлаÑÑŒ ерундовина.'}, {'npc': 'smith', 'text': 'ОÑмотрели бы его дом, может, че-то найдете.'}]};
this[251] = {'theme': 'ЛЮБОВÐЫЙ ОХОТÐИК', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_lovehunter') && !(Core.Get()).game.isFlag('q_getchip');
}, 'msg': [{'npc': 'grid', 'text': 'Джон из ГибÑон-Сити проÑил вам напомнить, что вы обещали ему любовный чип...'}, {'npc': 'smith', 'text': 'Да. Я его Ñделал. Вот он. Забирай.'}, {'event': 'give_exp', 'value': 2500}, {'event': 'give_quest_item', 'item': 16}, {'event': 'set_flag', 'flag': 'q_getchip', 'value': 1}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 1}, {'npc': 'grid', 'text': 'И как он работает?'}, {'npc': 'smith', 'text': 'Он наÑтроен на Джона. Девушка, Ð¸Ð¼Ð¿Ð»Ð°Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð²ÑˆÐ°Ñ Ñебе Ñтот чип, влюбитÑÑ Ð² Джона. ЕÑли она никогда раньше не видела его, он начнет приходить к ней во Ñнах.'}, {'npc': 'smith', 'text': 'Ð’ общем, клаÑÑичеÑÐºÐ°Ñ Ñхема ÑвÑзи образа Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð¹ Ñмоцией, чел.'}]};
this[252] = {'theme': 'ПОДГОТОВКРВОСТÐÐИЯ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_getchips');
}, 'msg': [{'npc': 'grid', 'text': 'Лина проÑила помочь вам в подготовке воÑÑтаниÑ.'}, {'npc': 'smith', 'text': 'Да. Я хочу изобреÑти новый имплантант, уÑиливающий Ñилы Мета-Воинов. Ð”Ð»Ñ Ñтого мне нужно 3 микрочипа, идентификаторы 404, 101, 707.'}, {'npc': 'grid', 'text': 'Ð’Ñ‹ отбирали их по цифрам что ли?'}, {'npc': 'smith', 'text': 'Ðет. Совпало. Ðайдите и принеÑите.'}, {'npc': 'grid', 'text': 'Ргде их взÑÑ‚ÑŒ-то?'}, {'event': 'set_flag', 'flag': 'q_getchips', 'value': 1}, {'npc': 'smith', 'text': 'Знал бы – уже Ñобрал. Попробуйте ÑпроÑить на Ðефритовом ОÑтрове.'}]};
this[253] = {'theme': 'СБОРЧИПОВ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !((Core.Get()).game.hasQuestItem(8) && (Core.Get()).game.hasQuestItem(15) && (Core.Get()).game.hasQuestItem(19));
}, 'msg': [{'npc': 'smith', 'text': 'Где?'}, {'npc': 'grid', 'text': 'Ðету...'}]};
this[254] = {'theme': 'СБОРЧИПОВ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && (Core.Get()).game.hasQuestItem(8) && (Core.Get()).game.hasQuestItem(15) && (Core.Get()).game.hasQuestItem(19);
}, 'msg': [{'npc': 'smith', 'text': 'Где?'}, {'npc': 'grid', 'text': 'Вот.'}, {'event': 'remove_quest_item', 'item': 8}, {'event': 'remove_quest_item', 'item': 15}, {'event': 'remove_quest_item', 'item': 19}, {'event': 'give_exp', 'value': 9000}, {'event': 'set_flag', 'flag': 'q_getchips', 'value': 2}, {'npc': 'smith', 'text': 'Молодец. Хвалю. Скажи Лине, что имплантанты на вÑÑŽ армию Ñкоро будут готов.'}]};
this[255] = {'theme': 'ПРОТОТИП', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_getchips') && (Core.Get()).game.isInTeam(8) && !(Core.Get()).game.isFlag('craven_upgrade');
}, 'msg': [{'npc': 'smith', 'text': 'Крейвен, Ñ‚Ñ‹ не хочешь Ñтать иÑпытателем моего прототипа?'}, {'npc': 'grid', 'text': 'Я хочу!'}, {'npc': 'smith', 'text': 'Ðто можно имплантировать только полу-киборгу, коими и ÑвлÑÑŽÑ‚ÑÑ ÐœÐµÑ‚Ð°-Воины.'}, {'npc': 'craven', 'text': 'Давайте попробуем...'}, {'event': 'skill_up', 'npc': 8, 'skill': 'vit'}, {'event': 'skill_up', 'npc': 8, 'skill': 'def'}, {'event': 'skill_up', 'npc': 8, 'skill': 'dgr'}, {'event': 'skill_up', 'npc': 8, 'skill': 'tch'}, {'npc': 'craven', 'text': 'Ðеплохо! Ðо Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð» большего.'}, {'event': 'set_flag', 'flag': 'craven_upgrade'}, {'npc': 'smith', 'text': 'Ðеблагодарный. Идите вÑе в баню.'}]};
this[257] = {'theme': 'КÐРРИ', 'condition': function () {
return !(Core.Get()).game.getFlag('enc_karry');
}, 'msg': [{'npc': 'karry', 'text': 'Стой! Ðе ÑтрелÑй! Слушай!'}, {'npc': 'key', 'text': 'Ðечего Ñлушать его, Ñто против наших убеждений. Мочи его!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'Подожди, уÑпеетÑÑ.', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'И что Ñ‚Ñ‹ хочешь мне Ñказать, прежде чем Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÑŽ Ñ‚ÐµÐ±Ñ Ð½Ð° тот Ñвет?'}, {'npc': 'karry', 'text': 'Я знаю, Грид, Ñ‚Ñ‹ Ñобирал информацию о наÑ. Я верю в то, что Ñ‚Ñ‹ не наÑтолько твердолоб и уперт, как оÑтальные Ñотрудники K.A.U.F.O., и Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ поговришь Ñо мной.'}, {'npc': 'karry', 'text': 'Видишь ли, как Ñ‚Ñ‹ мог заметить из раÑÑказов других людей, мы – не плохие. Мы хотим помочь человечеÑтву, но далеко не каждый готов принÑÑ‚ÑŒ помощь.'}, {'npc': 'karry', 'text': 'Сами K.A.U.F.O. – из чиÑла тех, кто не примет помощь Ñам, так еще и другому не позволит ее получить. Скажи мне, в Ñамом деле, Грид, во что Ñ‚Ñ‹ веришь?'}, {'npc': 'grid', 'text': 'Ð’ любом Ñлучае, Ñ Ñ‚Ð°Ðº понимаю, что Ñ‚Ñ‹ иÑкал менÑ. Зачем?'}, {'event': 'set_flag', 'flag': 'enc_karry'}, {'npc': 'karry', 'text': 'Я хочу, чтобы Ñ‚Ñ‹ пообщалÑÑ Ñ Ð½Ð°ÑˆÐ¸Ð¼ императором. Тогда Ñ‚Ñ‹ узнаешь вÑÑŽ правду.'}, {'event': 'talk', 'npc': 'karry', 'no_bye': true}]};
this[258] = {'theme': 'ОТПРÐВИТЬСЯ С КÐРРИ', 'msg': [{'npc': 'key', 'text': 'Как?! Грид, Ñ‚Ñ‹ предатель! Я вернуÑÑŒ на базу и раÑÑкажу о том, что Ñ‚Ñ‹ предал наши идеалы и поговорил Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†ÐµÐ¼...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'key', 'text': 'Тебе лучше не возвращатьÑÑ, Грид, тебе будут не рады...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'event': 'leave_team', 'npc': 1, 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'event': 'give_exp', 'value': 15000}, {'event': 'set_flag', 'flag': 'q_kaufo_betrayal'}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 0}, {'event': 'leave_team', 'npc': 8, 'condition': function () {
return (Core.Get()).game.isInTeam(8);
}}, {'event': 'fail_quest', 'quest': 'ufo_visit', 'condition': function () {
return (Core.Get()).game.inQuest('ufo_visit');
}}, {'event': 'fail_quest', 'quest': 'natan_plan', 'condition': function () {
return (Core.Get()).game.inQuest('natan_plan');
}}, {'event': 'reset_flag', 'flag': 'q_bigalienplan'}, {'event': 'remove_quest_item', 'item': 0, 'condition': function () {
return (Core.Get()).game.hasQuestItem(0);
}}, {'event': 'remove_quest_item', 'item': 1, 'condition': function () {
return (Core.Get()).game.hasQuestItem(1);
}}, {'event': 'remove_quest_item', 'item': 2, 'condition': function () {
return (Core.Get()).game.hasQuestItem(2);
}}, {'event': 'remove_quest_item', 'item': 3, 'condition': function () {
return (Core.Get()).game.hasQuestItem(3);
}}, {'event': 'remove_quest_item', 'item': 4, 'condition': function () {
return (Core.Get()).game.hasQuestItem(4);
}}, {'event': 'remove_quest_item', 'item': 5, 'condition': function () {
return (Core.Get()).game.hasQuestItem(5);
}}, {'event': 'remove_quest_item', 'item': 6, 'condition': function () {
return (Core.Get()).game.hasQuestItem(6);
}}, {'npc': '', 'text': '...'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[259] = {'theme': 'ОТКÐЗÐТЬСЯ ИДТИ С КÐРРИ', 'msg': [{'npc': 'grid', 'text': 'Я не предам Ñвои идеалы, Ñ Ð¾Ñ‚Ð²ÐµÑ€Ð³Ð½Ñƒ твое предложение и убью тебÑ.'}, {'npc': 'karry', 'text': 'Жаль... похоже, Ñ Ð¾ÑˆÐ¸Ð±ÑÑ Ð² тебе, Грид...'}, {'event': 'give_exp', 'value': 3000}, {'event': 'battle', 'band': 'karry'}]};
this[260] = {'theme': 'ФИВЕР', 'condition': function () {
return !(Core.Get()).game.getFlag('enc_feather');
}, 'msg': [{'npc': 'feather', 'text': 'Ой... вы кто?!'}, {'npc': 'grid', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Грид. Ðе бойÑÑ.'}, {'npc': 'feather', 'text': 'Хорошо! Ðе буду. ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Фивер, и Ñ ÑƒÐ±ÐµÐ³Ð°ÑŽ от плохих людей...'}, {'npc': 'grid', 'text': 'Плохих людей?'}, {'npc': 'feather', 'text': 'Да! Я не знаю, кто они, но поÑтоÑнно пытаютÑÑ Ð¼ÐµÐ½Ñ ÑƒÐ±Ð¸Ñ‚ÑŒ...'}, {'npc': 'grid', 'text': 'Ðто у Ñ‚ÐµÐ±Ñ Ð½Ð°ÑтоÑщие нимб и крыльÑ?'}, {'npc': 'feather', 'text': 'Да... Ñ Ð½Ðµ знаю, что Ñто и откуда. Я помню только, как проÑнулаÑÑŒ в лаборатории. Потом Ñ Ñбежала... видимо, Ñто люди из лаборатории и хотÑÑ‚ Ð¼ÐµÐ½Ñ ÑƒÐ±Ð¸Ñ‚ÑŒ.'}, {'npc': 'grid', 'text': 'Так Ñ‚Ñ‹ вообще ничего не помнишь и не знаешь?'}, {'npc': 'feather', 'text': 'Да! Мне Ñтрашно.'}, {'npc': 'grid', 'text': 'Ðичего, Ñ Ñ Ñ‚Ð¾Ð±Ð¾Ð¹. Ðе бойÑÑ. Пойдем?'}, {'event': 'give_exp', 'value': 8000}, {'event': 'join_team', 'npc': 9}, {'event': 'set_flag', 'flag': 'enc_feather'}, {'event': 'enable_screen'}, {'npc': 'feather', 'text': 'С радоÑтью!'}]};
this[261] = {'theme': 'ÐКСПЕРИМЕÐТ', 'msg': [{'npc': 'dekkis', 'text': 'Рвот и мой Ñбежавший ангел!'}, {'npc': 'feather', 'text': 'Ðто он, парень из лаборатории!'}, {'npc': 'grid', 'text': 'Ðе похож на Ð¿Ð°Ñ€Ð½Ñ Ð¸Ð· лаборатории...'}, {'npc': 'dekkis', 'text': 'Пойдем Ñо мной.'}, {'npc': 'grid', 'text': 'Ðе пойдет она. Сперва придетÑÑ Ð½Ð°Ñ Ð¿Ð¾Ð±ÐµÐ´Ð¸Ñ‚ÑŒ.'}, {'npc': 'dekkis', 'text': 'Я дратьÑÑ Ð½Ðµ умею... но они – умеют!'}, {'event': 'set_flag', 'flag': 'enc_dekkis1'}, {'event': 'battle', 'band': 'dek_shades'}]};
this[262] = {'theme': 'ÐКСПЕРИМЕÐТ', 'msg': [{'npc': 'dekkis', 'text': 'Черт! Я оплошал!'}, {'npc': 'grid', 'text': 'И не говори. Ð ÑÐµÐ¹Ñ‡Ð°Ñ Ñ Ñ‚ÐµÐ±Ñ ÑƒÐ±ÑŒÑŽ, еÑли Ñ‚Ñ‹ не объÑÑнишь мне вÑе.'}, {'npc': 'dekkis', 'text': 'Ладно... Ñ Ñын Гаррета Ñ Ðефритового ОÑтрова... однако когда он увидел мои генные ÑкÑперименты, отец вмеÑто похвалы выгнал Ð¼ÐµÐ½Ñ Ð¸Ð· дому и отрекÑÑ Ð¾Ñ‚ менÑ!'}, {'npc': 'dekkis', 'text': 'Ð Ñ Ð²ÐµÐ´ÑŒ вÑего лишь Ñкрещивал ÑельÑких детей Ñ ÑельÑкими животными, чтобы получить быкочеловека!'}, {'npc': 'dekkis', 'text': 'Ð’ Ñвоих ÑкÑпериментах Ñ Ð¿Ð¾ÑˆÐµÐ» дальше отца, и наконец Ñумел Ñоздать ангела, выÑшую форму ÑущеÑÑ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñле бога.'}, {'npc': 'dekkis', 'text': 'Я хотел Ñделать ее Ñвоей женой и произвеÑти на Ñвет новое человечеÑтво... но она Ñбежала от менÑ!'}, {'npc': 'feather', 'text': 'Я не хочу за Ñ‚ÐµÐ±Ñ Ð·Ð°Ð¼ÑƒÐ¶!'}, {'npc': 'grid', 'text': 'Ты Ñлышал ее. ОÑтавь девочку в покое.'}, {'npc': 'dekkis', 'text': 'Ðу уж нет! Я вÑе-таки Ñоздал Ñыворотку мутации, Ñ Ð²Ð¾ÑпользуюÑÑŒ ей, чтобы убить ваÑ!'}, {'npc': 'grid', 'text': 'Черт, он мутирует!'}, {'event': 'set_flag', 'flag': 'enc_dekkis2'}, {'event': 'battle', 'band': 'dekkis'}]};
this[263] = {'theme': 'ФИВЕР', 'msg': [{'npc': 'grid', 'text': 'Теперь Ñ‚Ñ‹ Ñвободна, Фивер. Ð¢ÐµÐ±Ñ Ð½Ðµ будут преÑледовать.'}, {'npc': 'feather', 'text': 'СпаÑибо тебе за вÑе, Грид... только Ñкажи... можно Ñ Ð¾ÑтануÑÑŒ Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ и дальше?'}, {'event': 'give_exp', 'value': 7500}, {'event': 'set_flag', 'flag': 'enc_dekkis3'}, {'event': 'set_flag', 'flag': 'v_killeddekkis', 'value': 1}, {'event': 'enable_screen'}, {'npc': 'grid', 'text': 'Пойдем! Я буду рад твоей компании.'}]};
};
_global.TalkData4 = v1;
_global.TalkData4 extends Array;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData4.prototype, null, 1);
}
#endinitclip
}
movieClip 1948 __Packages.TalkData3 {
#initclip
if (!_global.TalkData3) {
var v1 = function () {
super();
this[153] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Рвы кто?'}, {'npc': 'vlad_ser', 'text': 'Я – Влад! Глава Ñтой деревни!'}, {'npc': 'grid', 'text': 'Почему вы Ñто радоÑтно кричите?'}, {'npc': 'vlad_ser', 'text': 'Потому, что жизнь хороша!'}]};
this[154] = {'theme': 'Ð ÐБОТÐ', 'condition': function () {
return !(Core.Get()).game.isFlag('vlad_omelette');
}, 'msg': [{'npc': 'grid', 'text': 'Ðет ли Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹? Я бы не отказалÑÑ Ð¾Ñ‚ заработка...'}, {'npc': 'vlad_ser', 'text': 'Ðет, работы нет! Ðо еÑÑ‚ÑŒ ОМЛЕТ!'}, {'npc': 'grid', 'text': 'Что?!'}, {'event': 'set_flag', 'flag': 'vlad_omelette'}, {'npc': 'vlad_ser', 'text': 'ОМЛЕТ! Ðаш фирменный владзвильÑкий ОМЛЕТ! Попробовав его, либо умрешь, либо Ñтанешь Ñильнее. ШанÑов 50/50!'}]};
this[155] = {'theme': 'ПОПРОБОВÐТЬ ОМЛЕТ...', 'condition': function () {
return (Core.Get()).game.isFlag('vlad_omelette') && !(Core.Get()).game.isFlag('vlad_omelette_tried');
}, 'msg': [{'npc': 'grid', 'text': 'Я риÑкну попробовать ваш ОМЛЕТ!'}, {'npc': 'vlad_ser', 'text': 'Пробуй!'}, {'event': 'game_over', 'condition': function () {
return Math.random() < 0.5;
}}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Я чувÑтвую приток Ñил!'}, {'event': 'give_exp', 'value': 1000}, {'event': 'skill_up', 'npc': 0, 'skill': 'vit'}, {'event': 'skill_up', 'npc': 0, 'skill': 'def'}, {'event': 'skill_up', 'npc': 0, 'skill': 'dgr'}, {'event': 'skill_up', 'npc': 0, 'skill': 'med'}, {'event': 'set_flag', 'flag': 'vlad_omelette_tried'}, {'npc': 'vlad_ser', 'text': 'Выжил! ПоздравлÑÑŽ!'}]};
this[156] = {'theme': 'О СЕБЕ', 'msg': [{'event': 'set_flag', 'flag': 'vlad_vlad_trade'}, {'npc': 'vlad_vlad', 'text': 'Я – Влад Владович. Кузнец. Я кую холодное оружие. Хочешь, продам?'}]};
this[157] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('vlad_vlad_trade');
}, 'msg': [{'npc': 'grid', 'text': 'Покажи, что предлагаешь, кузнец.'}, {'event': 'trade', 'npc': 'vlad_vlad'}]};
this[158] = {'theme': 'ВЛÐДЗВИЛЬ', 'msg': [{'event': 'set_flag', 'flag': 'q_vladsville_visited'}, {'npc': 'grid', 'text': 'Почему ваша Ð´ÐµÑ€ÐµÐ²Ð½Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð’Ð»Ð°Ð´Ð·Ð²Ð¸Ð»ÑŒ?'}, {'npc': 'vlad_vlad', 'text': 'Потому, что вÑех его жителей зовут Влад, разве Ñто не очевидно?'}, {'npc': 'grid', 'text': 'Как? Ð’Ñе до одного Влады?!'}, {'npc': 'vlad_vlad', 'text': 'Именно. Только Влад может жить в нашей деревне.'}]};
this[159] = {'theme': 'БЕСЕДÐ', 'msg': [{'npc': 'grid', 'text': 'Доброго днÑ!'}, {'npc': 'vlada', 'text': 'ЗдравÑтвуй, Влад!'}, {'npc': 'grid', 'text': 'Я не Влад!'}, {'npc': 'vlada', 'text': 'Как?! Тогда тебе лучше покинуть нашу деревню. Только Влад может находитьÑÑ Ð² ней долго.'}, {'npc': 'grid', 'text': 'РтебÑ-то как зовут?!'}, {'npc': 'vlada', 'text': 'Влада. Ðто тоже Влад. Как видишь, здеÑÑŒ может жить только Влад.'}, {'npc': 'grid', 'text': 'Странный вы народ, жители ВладзвилÑ.'}]};
this[160] = {'theme': 'ОСÐДÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'npc': 'lesly', 'text': 'Черт! Он здеÑÑŒ!'}, {'npc': 'garn', 'text': 'Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñ Ð¸Ð· него вÑÑŽ дурь выбью. Генерал жалких мÑтежников!'}, {'npc': 'celester', 'text': 'Гарн, Ñтот парень Ñилен. Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ ÑƒÑ‚Ñ€Ð¾Ð¼ мне не удалоÑÑŒ его убить.'}, {'npc': 'grid', 'text': 'И в Ñтот раз тоже не получитÑÑ, поверь!'}, {'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 2}, {'event': 'set_flag', 'flag': 'milbase_after_battle'}, {'event': 'battle', 'band': 'garn'}]};
this[161] = {'theme': 'ОСÐДÐ', 'condition': function () {
return (Core.Get()).game.isFlag('milbase_after_battle');
}, 'msg': [{'event': 'set_flag', 'flag': 'milbase_after_battle', 'value': 0}, {'event': 'give_exp', 'value': 7500}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 12}, {'npc': 'grid', 'text': 'Ðто был Ñ‚Ñжкий бой... но, похоже, задание выполнено. Ðужно доложить Лине об уÑпехе операции...'}]};
this[162] = {'theme': 'ЧИП 404', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(15);
}, 'msg': [{'npc': 'grid', 'text': 'Мне нужен чип 404.'}, {'npc': 'garn', 'text': 'УбирайтеÑÑŒ вон. Ðто запрещенный чип.'}]};
this[163] = {'theme': 'ÐÐВЫК: СÐÐЙПЕР, ЦЕÐÐ: €5000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_learnedshot') && (Core.Get()).game.money >= 5000;
}, 'msg': [{'npc': 'grid', 'text': 'Ðаучи Ð¼ÐµÐ½Ñ Ð»ÑƒÑ‡ÑˆÐµ ÑтрелÑÑ‚ÑŒ.'}, {'npc': 'celester', 'text': 'Ðто будет Ñтоить €5000. Идет?'}, {'event': 'remove_money', 'value': 5000}, {'event': 'skill_up', 'npc': 0, 'skill': 'acc'}, {'event': 'set_flag', 'flag': 'v_learnedshot'}, {'event': 'give_exp', 'value': 500}, {'npc': 'grid', 'text': 'Хорошо, по рукам.'}]};
this[164] = {'theme': 'ЧИП 404', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(15);
}, 'msg': [{'npc': 'grid', 'text': 'Мне нужен чип 404.'}, {'npc': 'lesly', 'text': 'Ой... нам Ð½ÐµÐ»ÑŒÐ·Ñ ÐµÐ³Ð¾ давать гражданÑким!'}, {'npc': 'grid', 'text': 'Даже мне?'}, {'npc': 'lesly', 'text': 'Ðу... хорошо! Только приглаÑи Ð¼ÐµÐ½Ñ Ð¾Ð´Ð½Ð°Ð¶Ð´Ñ‹ на Ñвидание!'}, {'event': 'give_quest_item', 'item': 15}, {'event': 'give_exp', 'value': 2000}, {'npc': 'grid', 'text': 'Ðепременно!'}]};
this[165] = {'theme': 'ТРÐÐСЛЯЦИЯ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.isFlag('translation_progress');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'npc': 'marcy', 'text': 'Я ждала ваÑ!'}, {'npc': 'elm', 'text': 'Добрый день. Я волнуюÑÑŒ.'}, {'npc': 'grid', 'text': 'Ð’Ñ‹-то хоть раÑÑкажите, что проиÑходит.'}, {'npc': 'marcy', 'text': 'Мы будем транÑлировать речь СÑра ÐФ в прÑмом Ñфире. Ðачнем Ñ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ показа фильма Ðльма.'}, {'npc': 'marcy', 'text': 'Когда фильм завершитÑÑ, СÑÑ€ ÐФ обратитÑÑ Ñ Ñ€ÐµÑ‡ÑŒÑŽ к людÑм, Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ð²Ð°Ñ Ð¾Ñтальные каналы.'}, {'npc': 'karry', 'text': 'Ð¢Ð²Ð¾Ñ Ð·Ð°Ð´Ð°Ñ‡Ð° – защищать телеÑтудию от вторжениÑ. Роно обÑзательно будет.'}, {'npc': 'marcy', 'text': 'Мы начинаем транÑлÑцию фильма...'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Прошел уже Ñ‡Ð°Ñ ÐºÐ¸Ð½Ð¾... Как ÑитуациÑ?'}, {'npc': 'karry', 'text': 'К нашей базе приближаютÑÑ Ð²Ð¾Ð¹Ñка K.A.U.F.O.!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 1}, {'event': 'battle', 'band': 'tr_kaufo'}]};
this[166] = {'theme': 'ТРÐÐСЛЯЦИЯ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 1 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': 'Я прибыл.'}, {'npc': 'marcy', 'text': 'Фильм уже кончаетÑÑ. Самое времÑ.'}, {'npc': 'sir_f', 'text': 'Ðу что же... поехали...'}, {'npc': '', 'text': '...'}, {'npc': 'sir_f', 'text': 'Жители Земли! ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ ÐФ, и Ñ Ð²Ñ‹Ñтупаю от имени пришельцев! Мы уже какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ð¼ÑÑ Ñреди ваÑ, и многие знают о нашем ÑущеÑтвовании...'}, {'npc': '', 'text': '...'}, {'npc': 'sir_f', 'text': '...и Ñказанное мной – еÑÑ‚ÑŒ правда о вашем правительÑтве. Та, кого вы зовете МиÑÑ‚ – диктатор и тиран!'}, {'npc': 'karry', 'text': 'К базе приближаютÑÑ Ð²Ð¾Ð¹Ñка правительÑтва...'}, {'npc': 'mist', 'text': 'Я не позволю вам говорить про Ð¼ÐµÐ½Ñ Ð³Ð°Ð´Ð¾Ñти!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 2}, {'event': 'battle', 'band': 'tr_mist'}]};
this[167] = {'theme': 'ТРÐÐСЛЯЦИЯ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 2 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': '...и наконец, мне бы хотелоÑÑŒ раÑÑказать про «Ñекретную» организацию K.A.U.F.O., ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÐ±Ð¸Ð²Ð°ÐµÑ‚ без попытки понÑÑ‚ÑŒ то, что убивает.'}, {'npc': 'natan', 'text': 'Грид... кто бы знал, что мы закончим врагами...'}, {'npc': 'grid', 'text': 'Ðатан... оÑтанови Ñто. Ты не прав. Ты же понимаешь, что Ñ‚Ñ‹ не прав.'}, {'npc': 'natan', 'text': 'Я? Мне удалоÑÑŒ поÑтроить мощную военную организацию, приноÑÑщую кучу денег мне и моим людÑм.'}, {'npc': 'natan', 'text': 'Я Ñумел объединить людей на почве ненавиÑти, и Ñтим обеÑпечил Ñвое благополучие. Думаешь, Ñ Ð±Ñ€Ð¾ÑˆÑƒ Ñто?'}, {'npc': 'grid', 'text': 'Ðатан... Ñ‚Ñ‹ чудовище... Ñ Ð¾ÑˆÐ¸Ð±Ð°Ð»ÑÑ Ð² тебе.'}, {'npc': 'elm', 'text': 'Ð’Ð°Ñ Ñнимают, ребÑта. Какое иÑкреннее признание!'}, {'npc': 'natan', 'text': 'ПроклÑтье! Я вÑех Ð²Ð°Ñ Ð¿Ð¾ÑƒÐ±Ð¸Ð²Ð°ÑŽ!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 3}, {'event': 'battle', 'band': 'tr_nathan'}]};
this[168] = {'theme': 'ТРÐÐСЛЯЦИЯ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 3 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': '...поÑтому Ñ Ñ…Ð¾Ñ‡Ñƒ предложить нашим цивилизациÑм Ñотрудничать!'}, {'npc': 'karry', 'text': 'Готово! КажетÑÑ Ð¼Ñ‹ Ñделали Ñто...'}, {'npc': 'grid', 'text': 'Да... мы разобралиÑÑŒ и Ñ Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»ÑŒÑтвом и Ñ K.A.U.F.O.'}, {'event': 'complete_quest', 'quest': 'talks_with_aliens'}, {'npc': 'sir_f', 'text': 'Ðфир закончен, мы ждем ответов от городов и Ñтран. Грид, ÑпаÑибо тебе, что помог нам...'}, {'npc': 'grid', 'text': 'Да... правда, жизнь из-за Ñтого изменилаÑÑŒ радикальнейшим образом...'}, {'event': 'finish_game', 'ending': 3}]};
this[169] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Привет. Твой Ð³Ð¾Ð»Ð¾Ñ Ð·Ð²ÑƒÑ‡Ð¸Ñ‚ знакомо...'}, {'npc': 'marcy', 'text': 'Конечно, он будет тебе знаком! ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ МарÑи, Ñ Ð¿Ñ€ÐµÐ´ÑтавлÑÑŽ Ñвободный Ð³Ð¾Ð»Ð¾Ñ ÐšÐ°Ð»Ð¸Ñтера! Я редактор газеты и радиоÑтанции Â«ÐšÑ€Ñ‹Ð»ÑŒÑ Ð¡Ñ‚Ñ€Ð°Ð½Ñ‹Â».'}, {'npc': 'grid', 'text': 'Ðто Ñ‚Ñ‹, кажетÑÑ, периодичеÑки говоришь в Ñвоих передачах о пришельцах?'}, {'event': 'set_flag', 'flag': 'marcy_aliens'}, {'npc': 'marcy', 'text': 'Да, бывает.'}]};
this[170] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return (Core.Get()).game.isFlag('marcy_aliens') && !(Core.Get()).game.isFlag('q_alienfix1');
}, 'msg': [{'npc': 'grid', 'text': 'Тебе приходилоÑÑŒ ÑталкиватьÑÑ Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†Ð°Ð¼Ð¸?'}, {'npc': 'marcy', 'text': 'Конечно, и не раз. Они очень милые и общительные.'}, {'npc': 'grid', 'text': 'Да ну.'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_alienfix1'}, {'npc': 'marcy', 'text': 'Конечно. Они помогли мне Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð¾Ð¼ карьеры в Ñвое времÑ. Иначе Ñ Ð±Ñ‹ Ñтала Ñтриптизеркой, а не журналиÑтом. Ðо они убедили менÑ, что у Ð¼ÐµÐ½Ñ Ñ‚Ð°Ð»Ð°Ð½Ñ‚... и нет фигуры. И, видишь, были правы!'}]};
this[171] = {'theme': 'КÐЛИСТЕР', 'msg': [{'npc': 'grid', 'text': 'Что Ñ‚Ñ‹ можешь раÑÑказать мне про ваш город?'}, {'npc': 'marcy', 'text': 'КалиÑтер и Сирит находÑÑ‚ÑÑ Ð² давней вражде друг Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¼... ну, Ñкорее Ñто конкуренциÑ, чем вражда.'}, {'npc': 'marcy', 'text': 'СобÑтвенно, и иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ð² ÑтроитÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ на Ñтом: веÑÑŒ прогреÑÑ Ð½Ð°ÑƒÐºÐ¸ и культуры в городе – желание покраÑоватьÑÑ Ð¿ÐµÑ€ÐµÐ´ ÑоÑедом.'}, {'npc': 'marcy', 'text': 'Ðо вÑе равно КалиÑтер богаче Сирита. ЗдеÑÑŒ живут кинозвезды, дети богатых родителей, популÑрные певцы и так далее. Ð’ Сирите же много «подпольного» иÑкуÑÑтва и бедноты.'}, {'npc': 'marcy', 'text': 'Так что гонку Ñвно выиграл КалиÑтер.'}]};
this[172] = {'theme': 'ДИСК КИБО', 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'grid', 'text': 'Отлично, Ñ‚Ñ‹ работаешь на радио! ПоÑлушай, у Ð¼ÐµÐ½Ñ Ñ‚ÑƒÑ‚ еÑÑ‚ÑŒ один перÑпективный паренек, который хочет петь...'}, {'npc': 'marcy', 'text': 'Таких Ñ‚Ñ‹ÑÑчи. Я не могу Ñтавить пеÑни каждого.'}, {'npc': 'grid', 'text': 'Ðтот оÑобенный. ПоÑлушай. Вот наушники. Я поÑтавил трек.'}, {'npc': '', 'text': '...'}, {'npc': 'marcy', 'text': 'Что ж, Ñтот парень неплох. Он говорит правду о жизни, мне нравитÑÑ... но кто он?'}, {'npc': 'grid', 'text': 'Меценат Кибо.'}, {'npc': 'marcy', 'text': 'Да ладно?! Тот Ñамый Кибо?! Чего же он Ñебе не купит Ñтанцию или чарты?!'}, {'npc': 'grid', 'text': 'Он хочет добитьÑÑ Ð²Ñего без денег. Ð¢ÐµÐ±Ñ Ð¸Ð½Ñ‚ÐµÑ€ÐµÑует Ñтот диÑк?'}, {'event': 'remove_quest_item', 'item': 13}, {'event': 'set_flag', 'flag': 'q_kibodisc'}, {'event': 'give_exp', 'value': 500}, {'npc': 'marcy', 'text': 'Конечно! РазумеетÑÑ, Ñ Ð¿Ð¾Ñтавлю его в Ñфире. Ðто Ñ…Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ð¼ÑƒÐ·Ñ‹ÐºÐ°.'}]};
this[173] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Я не твой фанат. Ты же Байби, актриÑа, модель и певица.'}, {'npc': 'biby', 'text': 'Да. И почему Ñ‚Ñ‹ при Ñтом не мой фанат? Так разве бывает?'}, {'npc': 'grid', 'text': 'Потому что Ñ‚Ñ‹ Ð¿Ð»Ð¾Ñ…Ð°Ñ Ð°ÐºÑ‚Ñ€Ð¸Ñа и поешь плохо! Только выглÑдишь хорошо.'}, {'npc': 'biby', 'text': 'СпаÑибо!'}, {'npc': 'grid', 'text': 'Ðто не комплимент!'}]};
this[174] = {'theme': 'ЛЮБОВÐЫЙ ОХОТÐИК', 'condition': function () {
return (Core.Get()).game.hasQuestItem(16);
}, 'msg': [{'npc': 'grid', 'text': 'Байби, вами заинтереÑовалÑÑ Ð¾Ð´Ð¸Ð½ мой знакомый.'}, {'npc': 'biby', 'text': 'Мною заинтереÑованы вÑе!'}, {'npc': 'grid', 'text': 'Ðо он невероÑтно богат и краÑив!'}, {'npc': 'biby', 'text': 'Тогда он Ñможет добитьÑÑ Ð¼Ð¾ÐµÐ³Ð¾ вниманиÑ.'}, {'npc': 'grid', 'text': 'Он подарил вам Ñтот чип, который Ñделает Ð²Ð°Ñ Ð±Ð¾Ð³Ð¸Ð½ÐµÐ¹ мира.'}, {'npc': 'biby', 'text': 'Богиней – Ñто хорошо. Я доÑтойна Ñтого. Я пойду тогда имплантирую его.'}, {'npc': 'grid', 'text': 'И вÑкоре поÑле Ñтого он найдет ваÑ.'}, {'npc': 'key', 'text': 'Ðто была наиболее идиотÑÐºÐ°Ñ Ð¸ÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð· вÑех, которые Ñ Ñлышала...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'И она ведь повелаÑÑŒ!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': '', 'text': '...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'biby', 'text': 'СпаÑибо тебе, милый поÑыльный, Ñ Ð´Ð°Ð¼ тебе автограф!..'}, {'event': 'give_exp', 'value': 1500}, {'event': 'remove_quest_item', 'item': 16}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 2}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 2}, {'npc': 'grid', 'text': 'Да не нужен мне автограф!'}]};
this[175] = {'theme': 'О СЕКТЕ', 'msg': [{'npc': 'grid', 'text': 'Что еще за Ñекта?!'}, {'npc': 'ibrahim', 'text': 'Секта поÑледователей ÐрмадоÑа, кибернетичеÑкого божеÑтва. Ð’Ñтупай в нее. У Ð½Ð°Ñ Ð²ÐºÑƒÑное печенье и интереÑный доÑуг.'}, {'npc': 'grid', 'text': 'Ðет уж, ÑпаÑибо...'}]};
this[176] = {'theme': 'ÐЕВЕРÐЫЕ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_wrongones');
}, 'msg': [{'npc': 'ibrahim', 'text': 'ПоÑтой, не проходи мимо.'}, {'npc': 'ibrahim', 'text': 'Ты мог бы помочь мне в одном деле, и Ñ Ð²Ð·Ð°Ð¼ÐµÐ½ поделилÑÑ Ð±Ñ‹ Ñекретным оружием нашей Ñекты.'}, {'npc': 'grid', 'text': 'И что за дело?'}, {'npc': 'ibrahim', 'text': 'Однажды, наша Ñекта хотела покарать вÑех неверных, и изобрела Ñ Ñтой целью 13 адÑких машин. Однако потом мы передумали, но было Ñлишком поздно – машины вышли из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ (кто-то уÑтановил им программу другой веры) и бродÑÑ‚ по вÑему миру.'}, {'npc': 'ibrahim', 'text': 'Ðайди вÑе 13 машин и уничтожь их.'}, {'npc': 'grid', 'text': 'И как Ñ Ð¸Ñ… найду?!'}, {'npc': 'ibrahim', 'text': 'Я дам тебе детектор. Он обозначит вÑе машины на твоей карте краÑными точками.'}, {'event': 'set_flag', 'flag': 'q_wrongones', 'value': 1}, {'event': 'add_quest', 'quest': 'infidels', 'stage': 0}, {'event': 'spawn', 'band': 'arma_machine'}, {'npc': 'grid', 'text': 'ПонÑтно. Ðу что ж, будет Ð²Ñ€ÐµÐ¼Ñ â€“ Ñделаю.'}]};
this[177] = {'theme': 'ÐЕВЕРÐЫЕ – ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_wrongones') && 13 <= (Core.Get()).game.getFlag('kills_inferno_ibrahim');
}, 'msg': [{'npc': 'grid', 'text': 'Я уничтожил вÑе 13 адÑких машин...'}, {'npc': 'ibrahim', 'text': 'Ðаконец-то! ÐÑ€Ð¼Ð°Ð´Ð¾Ñ Ð´Ð¾Ð²Ð¾Ð»ÐµÐ½ тобой, Ñтранник.'}, {'npc': 'grid', 'text': 'Да-да-да. Рчто там Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð¾Ð¹?'}, {'event': 'give_exp', 'value': 15000}, {'event': 'set_flag', 'flag': 'q_wrongones', 'value': 2}, {'event': 'complete_quest', 'quest': 'infidels'}, {'event': 'give_item', 'item': 119}, {'npc': 'ibrahim', 'text': 'Как и обещал, вот наше тайное оружие!'}]};
this[178] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Рчем Ñ‚Ñ‹ занимаешьÑÑ Ð¿Ð¾ жизни?'}, {'npc': 'michel', 'text': 'Ðм... такой неловкий вопроÑ... Ñ Ð´Ð°Ñ€ÑŽ мужчинам любовь за деньги, еÑли уÑтроит такой ответ.'}, {'npc': 'grid', 'text': 'ПонÑтно. Ðу что же. Дело нужное. Ðе каждый может Ñебе позволить любовь за личные качеÑтва.'}, {'npc': 'michel', 'text': 'Рада, что понимаете. ОбращайтеÑÑŒ, еÑли что.'}]};
this[179] = {'theme': 'МЕДÐЛЬОРМИШЕЛЬ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_medalion');
}, 'msg': [{'npc': 'michel', 'text': 'Могу Ñ Ð¿Ð¾Ð¿Ñ€Ð¾Ñить Ð²Ð°Ñ Ð¾Ð± одолжении?'}, {'npc': 'grid', 'text': 'Ðу почему нет. ПопытатьÑÑ Ñтоит!'}, {'npc': 'michel', 'text': 'Однажды... хм... на работе Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ñла Ñвой медальон. КажетÑÑ, его подобрал тот парень, Ñ ÐºÐµÐ¼ Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð»Ð°. Он был похож на бандита...'}, {'npc': 'michel', 'text': 'Так вот, еÑли вам ÑлучитÑÑ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð±Ð¾ÐµÐ² Ñ Ð±Ð°Ð½Ð´Ð¸Ñ‚Ð°Ð¼Ð¸ найти мой медальон, то верните его мне, пожалуйÑта.'}, {'event': 'set_flag', 'flag': 'q_medalion', 'value': 1}, {'event': 'add_quest', 'quest': 'michels_medallion', 'stage': 0}, {'npc': 'grid', 'text': 'ДоговорилиÑÑŒ!'}]};
this[180] = {'theme': 'МЕДÐЛЬОРМИШЕЛЬ - ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_medalion') && (Core.Get()).game.hasQuestItem(17);
}, 'msg': [{'npc': 'michel', 'text': 'Ðто же мой медальон! СпаÑибо вам, что нашли его! Хотите, Ñ Ð²Ð°Ð¼... Ñделаю что-нибудь приÑтное?.. Рто денег у Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚...'}, {'event': 'remove_quest_item', 'item': 17}, {'npc': 'grid', 'text': 'Хм...'}, {'npc': '', 'text': '...'}, {'npc': '', 'text': '...'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Ох... СпаÑибо, Мишель!'}, {'event': 'set_flag', 'flag': 'q_medalion', 'value': 2}, {'event': 'give_exp', 'value': 1500}, {'event': 'complete_quest', 'quest': 'michels_medallion'}, {'event': 'give_item', 'item': 148}, {'event': 'give_item', 'item': 148}, {'event': 'give_item', 'item': 149}, {'npc': 'michel', 'text': 'Ð’Ñегда пожалуйÑта! Вот, возьмите в подарок еще и Ñто.'}]};
this[181] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто, и почему хочешь отрывать руки?'}, {'npc': 'jax', 'text': 'Я – ДжакÑ, шеф полиции города Сирит. Я люблю отрывать руки. Ðто воодушевлÑет.'}, {'npc': 'grid', 'text': 'Думаю, здороватьÑÑ Ð±ÑƒÐ´ÐµÐ¼ тогда в уÑтной форме...'}]};
this[182] = {'theme': 'ГОРОД СИРИТ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажи мне про город Сирит.'}, {'npc': 'jax', 'text': 'О... Сирит Ñто великий город, не то, что наш ÑоÑед – город КалиÑтер.'}, {'npc': 'jax', 'text': 'Ð’ КалиÑтере живут богатеи и зазнавшиеÑÑ ÐºÑ€ÑƒÐ¿Ð½Ñ‹Ðµ шишки, а в Сирите – живут люди. Причем, талантливые и умные.'}, {'npc': 'jax', 'text': 'Да, мы не так богаты, как хотелоÑÑŒ бы. Ðо зато выÑоко ценитÑÑ Ð½Ð°ÑˆÐµ иÑкуÑÑтво, Ñ…Ð¾Ñ‚Ñ Ð¾Ð½Ð¾ и не находит маÑÑового зрителÑ.'}, {'npc': 'jax', 'text': 'Да и вообще, лучше жить в творчеÑкой нищете, чем в бездушном богатÑтве. Ð’Ñ‹ видели, например, Байбу?'}, {'npc': 'jax', 'text': 'Ðта Ð³Ð»ÑƒÐ¿ÐµÐ½ÑŒÐºÐ°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ пошла в кино, не ÑƒÐ¼ÐµÑ Ð¸Ð³Ñ€Ð°Ñ‚ÑŒ. И в Сирите ее поÑтоÑнно Ñнимают!'}, {'npc': 'grid', 'text': 'Да, Ñ Ð²Ð¸Ð´ÐµÐ», ее фильмы ужаÑны. ПонÑл твою точку зрениÑ.'}]};
this[183] = {'theme': 'ОЧИСТКРПРИГОРОДÐ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_cityclear');
}, 'msg': [{'npc': 'jax', 'text': 'Ðе подашь ли мне руку?'}, {'npc': 'grid', 'text': 'ÐЕТ!!'}, {'npc': 'jax', 'text': 'Да не в Ñтом ÑмыÑле.'}, {'npc': 'jax', 'text': 'ПреÑтупноÑÑ‚ÑŒ в городе – Ð¼Ð¾Ñ Ð·Ð°Ð±Ð¾Ñ‚Ð°. Рв пригороде защитников нет. Рбандиты еÑÑ‚ÑŒ. ЕÑли убьешь 50 бандитов в районе ДемиенÑких Ð’Ñ‹Ñот, получишь награду.'}, {'event': 'set_flag', 'flag': 'q_cityclear', 'value': 1}, {'event': 'add_quest', 'quest': 'clean_suburbs', 'stage': 0}, {'npc': 'grid', 'text': 'ПонÑл.'}]};
this[184] = {'theme': 'ОЧИСТКРПРИГОРОДР– ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_cityclear') && 50 <= (Core.Get()).game.getFlag('kills_bandits_jax');
}, 'msg': [{'npc': 'grid', 'text': 'Я убил, наверное, Ñ Ð¿Ð¾Ð»Ñотни бандитов!'}, {'npc': 'jax', 'text': 'Именно об Ñтом Ñ Ð¸ проÑил. Вот награда. Дай пожму твою руку...'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_cityclear', 'value': 2}, {'event': 'complete_quest', 'quest': 'clean_suburbs'}, {'npc': 'grid', 'text': 'ПроÑто оÑтавь деньги на Ñтоле.'}]};
this[185] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'event': 'trade', 'npc': 'jax'}]};
this[186] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ваше лицо кажетÑÑ Ð·Ð½Ð°ÐºÐ¾Ð¼Ñ‹Ð¼...'}, {'event': 'set_flag', 'flag': 'elm_film'}, {'npc': 'elm', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Ðльм Лоттер. Я режиÑÑер документальных фильмов. Возможно, видели Ð¼ÐµÐ½Ñ Ð² телепередачах, где Ñ Ñ€Ð°ÑÑказывал о Ñвоих фильмах.'}]};
this[187] = {'theme': 'ВИДЕОКÐМЕРРПРИШЕЛЬЦЕВ', 'condition': function () {
return (Core.Get()).game.isFlag('elm_camera') && (Core.Get()).game.hasQuestItem(18);
}, 'msg': [{'npc': 'grid', 'text': 'Я тут нашел видеокамеру пришельцев, что думаете?'}, {'npc': 'elm', 'text': 'О, отлично! Я на такую и Ñнимал Ñвой документальный фильм. Реще жалел, что у Ð¼ÐµÐ½Ñ Ñ‚Ð°ÐºÐ¾Ð¹ нет! Давайте, Ñ ÐµÐµ у Ð²Ð°Ñ Ð²Ñ‹ÐºÑƒÐ¿Ð»ÑŽ?'}, {'npc': 'grid', 'text': 'Ладно. Сколько?'}, {'npc': 'elm', 'text': '2000'}, {'event': 'remove_quest_item', 'item': 18}, {'event': 'give_money', 'value': 2000}, {'event': 'give_exp', 'value': 10000}, {'npc': 'grid', 'text': 'Отлично! ДоговорилиÑÑŒ.'}]};
this[188] = {'theme': 'ФИЛЬМ О ПРИШЕЛЬЦÐÐ¥', 'condition': function () {
return (Core.Get()).game.isFlag('elm_film');
}, 'msg': [{'npc': 'grid', 'text': 'Ðто вы ÑнÑли документальный фильм о пришельцах?'}, {'npc': 'elm', 'text': 'Да. Ðто мой фильм, «Пришельцы Ñреди наÑ». Хронометраж Ñ‡Ð°Ñ Ñорок.'}, {'npc': 'grid', 'text': 'Как вы так убедительно Ñделали куклы пришельцев?'}, {'npc': 'elm', 'text': 'Какие куклы, Ñ Ð¶Ðµ документалиÑÑ‚! Ðто наÑтоÑщие пришельцы, мы поговорили Ñ Ð½Ð¸Ð¼Ð¸, они ÑоглаÑилиÑÑŒ на фильм. Ð’Ñе, что в фильме, Ñто правда. Кроме текÑтов рекламы. Они – не правда.'}, {'npc': 'grid', 'text': 'Я не думаю, что пришельцы наÑтолько дружелюбны.'}, {'npc': 'elm', 'text': 'ЗрÑ. Они не только прогреÑÑивнаÑ, но еще и дружеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ñ†Ð¸Ñ. Они ÑтараютÑÑ Ð¿Ð¾Ð¼Ð¾Ð³Ð°Ñ‚ÑŒ в чем могут, обучать чему-то еÑли видÑÑ‚ желание учитьÑÑ... и так далее.'}, {'event': 'set_flag', 'flag': 'elm_camera'}, {'event': 'give_exp', 'value': 1000, 'condition': function () {
return !(Core.Get()).game.isFlag('q_alienfix3');
}}, {'event': 'set_flag', 'flag': 'q_alienfix3'}, {'npc': 'elm', 'text': 'КÑтати, фильм ÑнималÑÑ Ð½Ð° их камеру – у них технологии покруче наших. Жаль, Ñ Ñƒ них не выкупил одну такую...'}]};
this[189] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'nina_x', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Ðина Ð¥. И Ñто не «хÑ», а «икÑ». Ð˜ÐºÑ Ñ‚Ð¸Ð¿Ð° неизвеÑтноÑÑ‚ÑŒ! Во!'}, {'npc': 'grid', 'text': 'Очень приÑтно, Ðина. Как Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´Ð¸ÑˆÑŒ?..'}, {'event': 'set_flag', 'flag': 'nina_club'}, {'npc': 'nina_x', 'text': 'Люблю клубы, люблю ÑкÑтремальный Ñпорт. Ðе люблю Ñидеть на меÑте.'}]};
this[190] = {'theme': 'ПРИГЛÐСИТЬ Ð’ КЛУБ', 'condition': function () {
return (Core.Get()).game.isFlag('nina_club');
}, 'msg': [{'npc': 'grid', 'text': 'Хочешь затуÑить?'}, {'npc': 'nina_x', 'text': 'Конечно, погнали. Ðо Ñ Ñ‚ÐµÐ±Ñ â€“ пиво!'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Ох... ну и пати...'}, {'npc': 'nina_x', 'text': 'Скукотища! Диджей отÑтой. Ðарод – Ñухари.'}, {'npc': 'grid', 'text': 'СоглаÑен. Куда веÑелее мочить людей из разных Ñтволов.'}, {'npc': 'nina_x', 'text': 'Да! Ðто круто! Ð Ñ‚Ñ‹ Ñтим занимаешьÑÑ?'}, {'npc': 'grid', 'text': 'Ðха. Мочу гадов.'}, {'event': 'set_flag', 'flag': 'nina_join'}, {'npc': 'nina_x', 'text': 'Круть!'}]};
this[191] = {'theme': 'ПРИСОЕДИÐИТЬСЯ К ОТРЯДУ', 'condition': function () {
return (Core.Get()).game.isFlag('nina_join');
}, 'msg': [{'npc': 'grid', 'text': 'КÑтати о Ñтрельбе, не хочешь Ñо мной попутешеÑтвовать?'}, {'event': 'give_exp', 'value': 1500}, {'event': 'join_team', 'npc': 10}, {'npc': 'nina_x', 'text': 'Отлично! Почему нет. Зажжем, чувак!'}]};
this[192] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажите о Ñебе.'}, {'npc': 'uncle_sam', 'text': 'О! Я проÑтой обладатель огромнейшей в мире плантации. У Ð¼ÐµÐ½Ñ Ð² жизни еÑÑ‚ÑŒ вÑе, что нужно! Деньги, еда, краÑавица-дочь! Ð Ñделал Ñ Ñвое ÑоÑтоÑние очень проÑто.'}, {'npc': 'grid', 'text': 'ФермерÑтвом?'}, {'event': 'set_flag', 'flag': 'sam_trade'}, {'npc': 'uncle_sam', 'text': 'Ðет, Ñ Ñ‚Ð¾Ñ€Ð³ÑƒÑŽ оружием!'}]};
this[193] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('sam_trade');
}, 'msg': [{'event': 'trade', 'npc': 'uncle_sam'}]};
this[194] = {'theme': 'О ДЯДЮШКЕ СÐМЕ', 'msg': [{'npc': 'stacy', 'text': 'Мой папа – Ñамый богатый в мире фермер! У Ð½Ð°Ñ Ð´Ð¾Ñтаток и мир. ДоÑтаток потому, что мы выращиваем овощи, мир потому, что у Ð½Ð°Ñ Ð¼Ð½Ð¾Ð³Ð¾ пушек!'}]};
this[195] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'stacy', 'text': 'МенÑ, кÑтати, зовут СтейÑи. ЕÑли еще не знаешь, Ñ â€“ дочка СÑма.'}, {'event': 'set_flag', 'flag': 'stacy_trade'}, {'npc': 'stacy', 'text': 'Я помогаю папе Ñ Ñ„ÐµÑ€Ð¼Ð¾Ð¹, а еще торгую провизией и девайÑами.'}]};
this[196] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('stacy_trade');
}, 'msg': [{'event': 'trade', 'npc': 'stacy'}]};
this[197] = {'theme': 'Ð¥ÐЛЛ', 'condition': function () {
return !(Core.Get()).game.isFlag('hell_greet');
}, 'msg': [{'npc': 'hell', 'text': 'ЗдравÑтвуй, котик. Ты ко мне?'}, {'npc': 'grid', 'text': 'Ты вообще кто такаÑ?'}, {'npc': 'hell', 'text': 'Я – Ð¥Ñлл. Мое Ð¸Ð¼Ñ Ð¥Ñлл.'}, {'npc': 'grid', 'text': 'Что здеÑÑŒ произошло?'}, {'npc': 'hell', 'text': 'Ðа мой дом пыталиÑÑŒ напаÑÑ‚ÑŒ. Мне пришлоÑÑŒ вÑех убить.'}, {'npc': 'grid', 'text': 'ЗдеÑÑŒ Ñотни трупов!'}, {'npc': 'hell', 'text': 'Так Ñ Ñ‚Ð°Ð»Ð°Ð½Ñ‚Ð»Ð¸Ð²Ð°!.. Хочешь, поиграем?'}, {'npc': 'grid', 'text': 'Что-то не очень хочетÑÑ...'}, {'npc': 'hell', 'text': 'Да ладно тебе, захочешь поиграть – приходи. Я хороша как в бою, так и в поÑтели.'}, {'event': 'give_exp', 'value': 2500}, {'event': 'set_flag', 'flag': 'hell_greet'}, {'npc': 'grid', 'text': 'Черт, женщина, Ñ‚Ñ‹ краÑива и опаÑна...'}]};
this[198] = {'theme': 'О СЕБЕ', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажи мне о Ñебе.'}, {'npc': 'hell', 'text': 'Да что раÑÑказывать, в моей жизни были реки крови и горы мужчин, как живых, так и тех, кому Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñла любить ÑебÑ. К Ñожалению, вÑе и из тех, и из других мертвы.'}]};
this[199] = {'theme': 'ÐЛЬФÐВИЛЬ', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Рчто Ñто за меÑто?'}, {'npc': 'hell', 'text': 'Ðльфавиль. ЗдеÑÑŒ Ñ Ñ€Ð¾Ð´Ð¸Ð»Ð°ÑÑŒ когда-то давно... Тут правда уже никто кроме Ð¼ÐµÐ½Ñ Ð½Ðµ живет, но Ñ Ð±Ñ‹Ð²Ð°ÑŽ Ñклонна к ноÑтальгии.'}, {'npc': 'grid', 'text': 'Ркуда вÑе делиÑÑŒ?'}, {'npc': 'hell', 'text': 'Когда Ñ Ñ€Ð¾Ð´Ð¸Ð»Ð°ÑÑŒ, Ð¼ÐµÐ½Ñ Ð¾ÐºÑ€ÐµÑтили проклÑтьем Ñтих меÑÑ‚ и броÑили здеÑÑŒ одну. РазумеетÑÑ, Ñ Ð²Ñем им отомÑтила позже. Тем, кого вÑпомнила.'}, {'npc': 'grid', 'text': 'ÐеприÑтно, наверное, быть не такой как вÑе...'}, {'npc': 'hell', 'text': 'Да нет же. Серые люди живут Ñерые жизни и не понимают, Ñколько вÑего терÑÑŽÑ‚ за Ñледованием чужим правилам. Я ничему не Ñледую, кроме ÑÐµÐ±Ñ Ð¸ Ñвоего Ñлова. Я Ñвободна.'}]};
this[200] = {'theme': 'ЖЕЛÐÐИЯ', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Твой вид и манера говорить пробуждают у Ð¼ÐµÐ½Ñ Ð¶ÐµÐ»Ð°Ð½Ð¸Ñ...'}, {'npc': 'hell', 'text': 'Какие бы Ð¶ÐµÐ»Ð°Ð½Ð¸Ñ Ñ‚ÐµÐ±Ñ Ð½Ðµ терзали, чтобы они ÑбылиÑÑŒ, тебе придетÑÑ Ð¿Ð¾Ð±ÐµÐ´Ð¸Ñ‚ÑŒ Ð¼ÐµÐ½Ñ Ð² бою. Ðе люблю неудачников.'}]};
this[201] = {'theme': 'ÐÐПÐСТЬ ÐРХÐЛЛ', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Ты Ñлишком опаÑна, чтобы жить.'}, {'npc': 'hell', 'text': 'Ой, Ñ‚Ñ‹ так выÑоко Ð¼ÐµÐ½Ñ Ñ†ÐµÐ½Ð¸ÑˆÑŒ! Я Ñ‚ÐµÐ±Ñ Ð¾Ð±Ð¾Ð¶Ð°ÑŽ!..'}, {'npc': 'grid', 'text': 'Я пришел убить тебÑ. Будь Ñерьезнее.'}, {'npc': 'hell', 'text': 'Ты такой Ñмешной и думаешь, что у Ñ‚ÐµÐ±Ñ Ñто получитÑÑ!'}, {'event': 'set_flag', 'flag': 'hell_after_battle'}, {'event': 'set_area_flag', 'flag': 'hell_after_battle_delay'}, {'event': 'battle', 'band': 'hell', 'level': 20}]};
this[202] = {'theme': 'Ð¥ÐЛЛ', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget') && (Core.Get()).game.isFlag('hell_after_battle') && !(Core.Get()).game.isAreaFlag('hell_after_battle_delay');
}, 'msg': [{'npc': 'hell', 'text': 'ПотрÑÑающе! Ты Ñумел удивить менÑ! Ты Ñилен и Ñ Ñ†ÐµÐ½ÑŽ Ñто. Хочешь, Ñ Ð±ÑƒÐ´Ñƒ Ñлужить тебе? Или возьми мою жизнь. Я буду рада, что Ð¼ÐµÐ½Ñ ÑƒÐ±ÑŒÐµÑ‚ Ñильнейший!'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 1}, {'event': 'talk', 'npc': 'hell', 'no_bye': true}]};
this[203] = {'theme': 'УБИТЬ Ð¥ÐЛЛ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_hellget');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 100000}, {'event': 'give_item', 'item': 118}, {'event': 'set_flag', 'flag': 'v_hellkilled'}, {'event': 'allow_bye'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 2}, {'npc': '', 'text': 'Ð’Ñ‹ убили Ð¥Ñлл!'}]};
this[204] = {'theme': 'ВЗЯТЬ Ð¥ÐЛЛ Ð’ ОТРЯД', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Пойдем Ñо мной. Только веди ÑÐµÐ±Ñ Ð¿Ñ€Ð¸Ð»Ð¸Ñ‡Ð½Ð¾.'}, {'npc': 'hell', 'text': 'Ðтого Ñ Ð½Ðµ могу обещать, дорогуша. Я очень грÑÐ·Ð½Ð°Ñ Ð´ÐµÐ²Ð¾Ñ‡ÐºÐ°!'}, {'event': 'give_exp', 'value': 5000}, {'event': 'join_team', 'npc': 11}, {'event': 'allow_bye'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 2}, {'npc': 'grid', 'text': 'Ох... чувÑтвую, Ñ ÐµÑ‰Ðµ об Ñтом пожалею...'}]};
this[205] = {'theme': 'СВЕРГÐУТЬ ПРЕЗИДЕÐТÐ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'event': 'complete_quest', 'quest': 'meta_uprise'}, {'npc': 'grid', 'text': 'Что ж, пришло Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ñтот мир.'}, {'npc': 'mist', 'text': 'Зачем?'}, {'npc': 'grid', 'text': 'Лина Ñтанет хорошим правителем. Ð¥Ð¾Ñ‚Ñ Ð¾Ð½Ð° и ÑумаÑшедший полуробот.'}, {'npc': 'mist', 'text': 'Бред. Ðароду нужен тиран, а не школьница Ñ ÐŸÐš в башке. Как вы мне вÑе надоели, людишки. Ðе понÑÑ‚ÑŒ вам менÑ, великую. УБИТЬ! УБИТЬ ИХ ВСЕХ, МОИ СОЛДÐТЫ!'}, {'event': 'battle', 'band': 'mist'}]};
this[206] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Молчаливый парень... поговори Ñо мной.'}, {'npc': 'kage', 'text': '...'}]};
this[207] = {'theme': 'ПРИСОЕДИÐИТЬСЯ К ОТРЯДУ', 'condition': function () {
return !(Core.Get()).game.isInTeam(9);
}, 'msg': [{'npc': 'grid', 'text': 'Похоже, Ñ‚Ñ‹ Ñильный. Ðе приÑоединишьÑÑ Ðº моему отрÑду?'}, {'npc': 'kage', 'text': '...'}]};
this[208] = {'theme': 'ПРИСОЕДИÐИТЬСЯ К ОТРЯДУ', 'condition': function () {
return (Core.Get()).game.isInTeam(9);
}, 'msg': [{'npc': 'grid', 'text': 'ВопроÑ, конечно, звучит нелепо, но, может, хочешь приÑоединитьÑÑ Ðº нашему отрÑду?'}, {'npc': 'kage', 'text': 'Ок.'}, {'event': 'join_team', 'npc': 6}, {'npc': 'feather', 'text': 'Ой... он, кажетÑÑ, на Ð¼ÐµÐ½Ñ Ñмотрит...'}, {'npc': 'kage', 'text': 'Ты хорошаÑ. Они – нет. Я буду защищать Ð²Ð°Ñ Ð¸ тех, кто Ñ Ð²Ð°Ð¼Ð¸.'}, {'npc': 'feather', 'text': 'СпаÑибо... Ñ Ð°Ð¶ покраÑнела!'}, {'npc': 'grid', 'text': 'Вот он Ñтранный. Человек-загадка, блин.'}, {'event': 'give_exp', 'value': 3000}, {'npc': 'kage', 'text': '...'}]};
this[209] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ кто?'}, {'npc': 'grandin', 'text': 'ÐœÐµÐ½Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾ называют Грандин. Я монах Ñтого горного городка. Ты предпочитаешь оружие, поÑтому Ñ Ð½Ðµ Ñтану Ñ‚ÐµÐ±Ñ ÑƒÑ‡Ð¸Ñ‚ÑŒ.'}, {'npc': 'grid', 'text': 'Рвон тот молчаливый тип – кто он?', 'condition': function () {
return !(Core.Get()).game.isInTeam(6);
}}, {'npc': 'grandin', 'text': 'Ðто мой ученик, Кейдж. Очень редко ему нравитÑÑ ÐºÑ‚Ð¾-либо. Только Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ¾Ð¼ по-детÑки невинным он может пойти плечом к плечу.', 'condition': function () {
return !(Core.Get()).game.isInTeam(6);
}}, {'npc': 'grid', 'text': 'Может, вы могли бы научить Ð¼ÐµÐ½Ñ Ð²Ñ‹Ð¶Ð¸Ð²Ð°Ð½Ð¸ÑŽ?'}, {'event': 'set_flag', 'flag': 'grandin_teach'}, {'npc': 'grandin', 'text': 'Что ж... за 5,000 монет мог бы. Ðам же надо на что-то монаÑтырь Ñтроить.'}]};
this[210] = {'theme': 'ГОРÐЫЙ ГОРОДОК', 'msg': [{'npc': 'grid', 'text': 'Рчто Ñто вообще за меÑто?'}, {'npc': 'grandin', 'text': 'Ðто город монахов, раÑположенный выÑоко в горах. У него нет названиÑ. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ â€“ пуÑтое. ЗдеÑÑŒ воин может познать Ñилу Ñвоего духа и Ñделать ее Ñилой Ñвоего тела.'}]};
this[211] = {'theme': 'УЧЕБÐ: ВЫЖИВÐÐИЕ, ЦЕÐÐ: €5000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_learnlive') && (Core.Get()).game.isFlag('grandin_teach') && (Core.Get()).game.money >= 5000;
}, 'msg': [{'npc': 'grid', 'text': 'Ðаучите Ð¼ÐµÐ½Ñ Ð²Ñ‹Ð¶Ð¸Ð²Ð°Ð½Ð¸ÑŽ!'}, {'event': 'remove_money', 'value': 5000}, {'event': 'skill_up', 'npc': 0, 'skill': 'vit'}, {'event': 'set_flag', 'flag': 'v_learnlive'}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grandin', 'text': '...'}]};
this[212] = {'theme': 'ДОКТОРРЕЙД', 'msg': [{'npc': 'grid', 'text': 'Ðто не вы ли тот великий ученый Ð. Ф. Рейд, Ñоздававший в Ñвое Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¿Ð°Ñнейшие Ð¾Ñ€ÑƒÐ´Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ð¼Ð¸Ð¹ разных Ñтран?'}, {'event': 'set_flag', 'flag': 'rade_trade'}, {'npc': 'dr_rade', 'text': 'Ðто Ñ. Я раÑкаиваюÑÑŒ и занимаюÑÑŒ другими иÑÑледованиÑми. Однако, у Ð¼ÐµÐ½Ñ ÐµÑ‰Ðµ оÑталоÑÑŒ кое-что из оружиÑ, могу продать – мне оно не нужно.'}]};
this[213] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('rade_trade');
}, 'msg': [{'event': 'trade', 'npc': 'dr_rade'}]};
this[214] = {'theme': 'ЧИПЫ ДЛЯ БЕККОРДÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(19);
}, 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ не знаете, где бы доÑтать чипы 404, 101 и 707?'}, {'npc': 'garret', 'text': 'Ð’Ñ‹ что, по номерам их отбирали?.. Ð’ любом Ñлучае, Ñ Ñмогу помочь вам. У Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ ненужный чип 101. Возьмите.'}, {'event': 'give_quest_item', 'item': 19}, {'npc': 'garret', 'text': 'Также мне извеÑтно, что чип 707 может быть где-то в городе Интегра, а 404... такие будут только на военной базе. Ðто же крайне опаÑÐ½Ð°Ñ ÑˆÑ‚ÑƒÐºÐ°. Ðу, удачи вам.'}, {'npc': 'grid', 'text': 'СпаÑибо, Гаррет!'}]};
this[215] = {'theme': 'ÐЕФРИТОВЫЙ ОСТРОВ', 'msg': [{'npc': 'grid', 'text': 'Что Ñто за меÑто?'}, {'npc': 'garret', 'text': 'Ðто – Ðефритовый ОÑтров, где находитÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¸Ñ Ð³ÐµÐ½Ð½Ñ‹Ñ… инженеров. Мы тут изобретаем ТаинÑтвенного МонÑтра... но вам не нужно было Ñто говорить.'}, {'npc': 'grid', 'text': 'Ðм...'}, {'npc': 'garret', 'text': 'Шучу, конечно же. Зачем нам ТаинÑтвенный МонÑÑ‚Ñ€? Ðе нужен.'}]};
this[216] = {'theme': 'ДЕККИС', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_killeddekkis');
}, 'msg': [{'npc': 'grid', 'text': 'Ðм... так ÑлучилоÑÑŒ, что Ñ Ð²Ñтретил вашего Ñына, ДеккиÑа...'}, {'npc': 'garret', 'text': 'Черт! Ðе говори о нем! Мерзавец вÑе еще жив?!'}, {'npc': 'grid', 'text': 'Ðу... когда Ñ ÐµÐ³Ð¾ видел, он какое-то Ð²Ñ€ÐµÐ¼Ñ Ð±Ñ‹Ð» жив... затем Ñтал человеком-быком и был убит... Извините.'}, {'npc': 'garret', 'text': 'Я уже давно ÑмирилÑÑ Ñ Ñ‚ÐµÐ¼, что у Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚ Ñына!.. Ðо вÑе равно больно...'}, {'npc': 'garret', 'text': 'Знаете, ведь он был даже не моим Ñыном. Я проверÑл по днк. ÐœÐ¾Ñ Ð¶ÐµÐ½Ð° изменÑла мне... но не будем об Ñтом.'}, {'npc': 'garret', 'text': 'Ð”ÐµÐºÐºÐ¸Ñ Ð±Ñ‹Ð» ÑумаÑшедшим, поÑтому Ñ Ð¸Ñпытал облегчение, узнав, что он, наконец, уÑпокоилÑÑ. Бедный парень... как хотелоÑÑŒ, чтобы он жил нормально...'}, {'event': 'give_exp', 'value': 12000}, {'event': 'give_item', 'item': 101}, {'event': 'set_flag', 'flag': 'v_killeddekkis', 'value': 2}, {'npc': 'garret', 'text': 'Вот, возьмите. Ð ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ñтавьте менÑ.'}]};
this[256] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(27) && !(Core.Get()).game.hasQuestItem(26);
}, 'msg': [{'event': 'trade', 'npc': 'garret'}]};
this[217] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто, девочка Ñ Ñ€Ð¾Ð·Ð¾Ð²Ñ‹Ð¼Ð¸ волоÑами?'}, {'event': 'set_flag', 'flag': 'xena_soils'}, {'npc': 'ksenya', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ КÑениÑ, Ñ Ð¼Ð¸ÐºÑ€Ð¾Ð±Ð¸Ð¾Ð»Ð¾Ð³! Ðа Ðефритовом ОÑтрове Ñ Ð½Ð°ÑˆÐ»Ð° нужные мне технологии... но теперь мне поÑтоÑнно не хватает материалов Ð´Ð»Ñ Ð¸ÑÑледований!'}]};
this[218] = {'theme': 'ПОИСК ÐœÐТЕРИÐЛОВ', 'condition': function () {
return (Core.Get()).game.isFlag('xena_soils') && !(Core.Get()).game.isFlag('q_gesoils');
}, 'msg': [{'npc': 'grid', 'text': 'Ðужна помощь в поиÑке материалов?'}, {'npc': 'ksenya', 'text': 'Была бы признательна! Мне нужны образцы почвы каждого региона.'}, {'event': 'give_quest_item', 'item': 20}, {'npc': 'ksenya', 'text': 'Вот, Ñто Ñобиратель почвы. Он проÑÑ‚ в иÑпользовании! ОказавшиÑÑŒ в нужном регионе, нажмите на кнопку «ВЗЯТЬ ОБРÐЗЕЦ», ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾ÑвитÑÑ Ñƒ Ð²Ð°Ñ Ð½Ð° Ñкране.'}, {'event': 'set_flag', 'flag': 'q_gesoils', 'value': 1}, {'event': 'add_quest', 'quest': 'soil_analysis', 'stage': 0}, {'npc': 'grid', 'text': 'ПонÑтно.'}]};
this[219] = {'theme': 'ПОИСК ÐœÐТЕРИÐЛОВ - ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gesoils');
}, 'msg': [{'npc': 'grid', 'text': 'Я Ñобрал вÑе образцы.'}, {'event': 'set_flag', 'flag': 'q_gesoils', 'value': 2}, {'event': 'give_exp', 'value': 15000}, {'event': 'give_item', 'item': 115}, {'event': 'complete_quest', 'quest': 'soil_analysis'}, {'npc': 'ksenya', 'text': 'Отлично! Ðто же здорово! Я вам хочу подарить кое-что...'}]};
this[220] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return 7 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Король пришельцев! СдавайÑÑ! Мы за тобой!'}, {'npc': 'sir_f', 'text': 'Мне Ñообщили о том, что вы направлÑетеÑÑŒ Ñюда Ñ Ñ†ÐµÐ»ÑŒÑŽ убить менÑ. Позвольте предÑтавитьÑÑ, Ð¼ÐµÐ½Ñ Ð½Ð° Ñтой планете называют ÑÑÑ€ ÐФ.'}, {'npc': 'grid', 'text': 'Мне Ñто Ñовершенно не интереÑно. Я здеÑÑŒ за тем, чтобы избавить планету от пришельцев.'}, {'npc': 'sir_f', 'text': 'РзадумывалÑÑ Ð»Ð¸ Ñ‚Ñ‹, Грид, над тем, наноÑим ли мы вред или приноÑим пользу?'}, {'npc': 'grid', 'text': 'Ðет, не задумывалÑÑ.'}, {'npc': 'sir_f', 'text': 'Так, может, Ñтоит?'}, {'npc': 'grid', 'text': 'Ðеа, не Ñтоит.'}, {'npc': 'sir_f', 'text': 'Как «не Ñтоит»?!'}, {'npc': 'grid', 'text': 'Ðу вот так. Ð’Ñ‹ не даете планете развиватьÑÑ ÐµÑтеÑтвенным образом, вмешиваÑÑÑŒ в нашу политику, Ñоциальную Ñтруктуру, науку и генный фонд.'}, {'npc': 'grid', 'text': 'Тем Ñамым, вы принуждаете Ð½Ð°Ñ Ð¸Ð´Ñ‚Ð¸ по вашему пути развитиÑ, Ð»Ð¸ÑˆÐ°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти прийти к чему-то Ñвоему, возможно, более великому, чем ваша цивилизациÑ, возможно, великому по-другому. Ðо главное – мы должны прийти к Ñтому Ñами.'}, {'npc': 'sir_f', 'text': 'Какой бред...'}, {'event': 'complete_quest', 'quest': 'natan_plan'}, {'npc': 'grid', 'text': 'Предлагаю аргументировать Ñвою правоту оружием!'}, {'event': 'battle', 'band': 'sir_f'}]};
this[221] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_kaufo_betrayal') && !(Core.Get()).game.isFlag('q_waitforalien') && !(Core.Get()).game.isFlag('aliens_friends');
}, 'msg': [{'event': 'set_flag', 'flag': 'aliens_friends'}, {'npc': 'karry', 'text': 'Грид, Ñто наш Император, ÑÑÑ€ ÐФ. Поговори Ñ Ð½Ð¸Ð¼...'}]};
this[222] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.getFlag('battle_key');
}, 'msg': [{'npc': 'karry', 'text': 'Да тут побоище!'}, {'npc': 'key', 'text': 'Предатель Грид! Я пришла Ñовершить возмездие и уничтожить пришельцев.'}, {'npc': 'grid', 'text': 'Как Ñ‚Ñ‹ Ð¼ÐµÐ½Ñ Ð½Ð°ÑˆÐ»Ð°?'}, {'npc': 'key', 'text': 'Ð’ твоем теле, как и у вÑех Ñотрудников У.Ð’.И.Ф.Ж., еÑÑ‚ÑŒ небольшой радио-локатор, определÑющий твое положение... что ж, даже предав наÑ, Ñ‚Ñ‹ вÑе равно помог нам...'}, {'npc': 'grid', 'text': 'Ох, Кей, зачем тебе быть наÑтолько упертой и ÑражатьÑÑ Ð½Ð° Ñтороне глупоÑти?'}, {'npc': 'key', 'text': 'Ðто Ñ‚Ñ‹ ничего не понимаешь. Цивилизации должны развиватьÑÑ ÐµÑтеÑтвенным ходом, а не при помощи инопланетных «друзей»! Кто знает, принеÑет ли в конечном Ñчете их вмешательÑтво благо или рабÑтво и завиÑимоÑÑ‚ÑŒ?!'}, {'event': 'set_flag', 'flag': 'alienbase_afterbattle'}, {'event': 'set_flag', 'flag': 'battle_key'}, {'event': 'battle', 'band': 'key'}]};
this[223] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_waitforalien') && (Core.Get()).game.isFlag('alienbase_afterbattle');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'npc': 'grid', 'text': 'ÐÑ…, Кей...'}, {'npc': 'karry', 'text': 'Она еще жива. Мы помеÑтим ее в уÑтройÑтво Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ Ð¶Ð¸Ð·Ð½Ð¸ – думаю, ее еще удаÑÑ‚ÑÑ ÑпаÑти. Ðо также заключим под Ñтражу.'}, {'npc': 'grid', 'text': 'СпаÑибо. ПроÑтите, что привел хвоÑÑ‚...'}, {'npc': 'sir_f', 'text': 'Ð’Ñе в порÑдке. Ты же не знал. К тому же, вÑе хорошо кончилоÑÑŒ.'}, {'npc': 'sir_f', 'text': 'КÑтати, Грид, вÑе готово. Я ÑобираюÑÑŒ обратитьÑÑ Ðº людÑм через СМИ. Ð’ Ñтом нам помогут МарÑи из КалиÑтера и Ðльм из Сирита.'}, {'npc': 'sir_f', 'text': 'Они уже предупреждены. ОтправлÑйÑÑ Ð² КалиÑтер, оттуда начнетÑÑ Ñ‚Ñ€Ð°Ð½ÑлÑÑ†Ð¸Ñ Ð½Ð° вÑе телеÑкраны и радиоприемники Ñтраны.'}, {'npc': 'sir_f', 'text': 'Будь оÑторожнее. Когда начнетÑÑ Ñ‚Ñ€Ð°Ð½ÑлÑциÑ, и правительÑтво и K.A.U.F.O. попытаютÑÑ Ð¿Ñ€ÐµÑ€Ð²Ð°Ñ‚ÑŒ ее.'}, {'npc': 'sir_f', 'text': 'Как только подготовка к транÑлÑции будет завершена, Ñ Ð¿Ñ€Ð¸Ð±ÑƒÐ´Ñƒ в город, и нам нужно будет продержатьÑÑ Ð´Ð¾ конца транÑлÑции.'}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 4}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 4}, {'npc': 'grid', 'text': 'Ð’Ð°Ñ Ð¿Ð¾Ð½Ñл.'}]};
this[224] = {'theme': 'ХОЧУ ЗÐÐТЬ ПРÐВДУ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_kaufo_betrayal') && !(Core.Get()).game.isFlag('alien_truth');
}, 'msg': [{'npc': 'sir_f', 'text': 'Грид, Ñ Ð¶Ð´Ð°Ð» тебÑ...'}, {'npc': 'grid', 'text': 'РаÑÑкажи мне правду о пришельцах.'}, {'npc': 'sir_f', 'text': 'Видишь ли Грид, на Ñамом деле мы – дружеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ ÐºÐ¾ÑмичеÑÐºÐ°Ñ Ñ†Ð¸Ð²Ð¸Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑтараетÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‡ÑŒ вашей, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¸Ð¼ÐµÑŽÑ‰Ð¸ÐµÑÑ Ñƒ Ð½Ð°Ñ Ð·Ð½Ð°Ð½Ð¸Ñ.'}, {'npc': 'sir_f', 'text': 'Так, например, чаÑÑ‚ÑŒ технологий, что были изобретены недавно, были Ñозданы Ñ Ð½Ð°ÑˆÐµÐ¹ помощью.'}, {'npc': 'sir_f', 'text': 'Ð’ то же времÑ, ваш мир Ñильно погрÑз в индуÑтрии, люди разучилиÑÑŒ развлекатьÑÑ. ПоÑтому мы уÑтраиваем диÑкотеки, чтобы Ñделать их жизнь полнее.'}, {'npc': 'sir_f', 'text': 'Ðедавно мы хотели Ñделать человека беÑÑмертным... но Ñто наше иÑÑледование, как и Ñ€Ñд других, были Ñорваны У.Ð’.И.Ф.Ж..'}, {'npc': 'sir_f', 'text': 'Причина их агреÑÑии к нам неÑÑна, она не поддаетÑÑ Ð»Ð¾Ð³Ð¸ÐºÐµ. Возможно, Ñто Ñтрах человека перед чужими, который порождает раÑовую вражду.'}, {'npc': 'sir_f', 'text': 'Такова правда, Грид. Мы не хотим людÑм Ñделать ничего плохо, а наоборот. ПообщавшиÑÑŒ Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ людьми, Ñ‚Ñ‹ должен был понÑÑ‚ÑŒ, что мои Ñлова иÑтинны.'}, {'npc': 'karry', 'text': 'Грид, можно Ñ Ð¿Ð¾Ð¹Ð´Ñƒ Ñ Ð²Ð°Ð¼Ð¸? Мне интереÑен окружающий мир, а по долгу Ñлужбы приходилоÑÑŒ мало там бывать...'}, {'event': 'set_flag', 'flag': 'alien_truth'}, {'event': 'give_exp', 'value': 10000}, {'event': 'join_team', 'npc': 5}, {'npc': 'grid', 'text': 'Хорошо, пойдем.'}]};
this[225] = {'theme': 'ПОМОЩЬ ПРИШЕЛЬЦÐÐœ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('alien_truth');
}, 'msg': [{'npc': 'grid', 'text': 'Я хочу помочь вам Ñделать человечеÑтво лучше.'}, {'npc': 'sir_f', 'text': 'Ðто радует! Ðам была нужна поддержка людей Ñ Ð·ÐµÐ¼Ð»Ð¸. Мы уже готовим почву Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы публично заÑвить о Ñебе.'}, {'npc': 'sir_f', 'text': 'Грид, вот тебе оÑÐ¾Ð±Ð°Ñ Ñ€Ð°Ñ†Ð¸Ñ. С помощью нее Ñ ÑвÑжуÑÑŒ Ñ Ñ‚Ð¾Ð±Ð¾Ð¹, как только мы будем готовы оÑущеÑтвить наш план.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'alien_truth', 'value': 2}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 1}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 1}, {'event': 'give_quest_item', 'item': 21}, {'npc': 'sir_f', 'text': 'Я транÑпортирую Ñ‚ÐµÐ±Ñ Ð² город Интегра, у Ð½Ð°Ñ Ñ‚Ð°Ð¼ Ñвой тайный портал. Из Ñтого города Ñ‚Ñ‹ Ñможешь вернутьÑÑ Ð½Ð° нашу базу, поговори Ñ ÐšÐ»Ð¾Ð´Ð¾Ð¼, Ñкажи, что Ñ‚Ñ‹ от ÑÑра ÐФ.'}, {'event': 'move_to_area', 'area': 'integra', 'enter': true}]};
this[226] = {'theme': 'ПОКИÐУТЬ БÐЗУ', 'condition': function () {
return (Core.Get()).game.isFlag('q_waitforalien');
}, 'msg': [{'npc': 'grid', 'text': 'Я хочу вернутьÑÑ Ð½Ð° континент.'}, {'npc': 'sir_f', 'text': 'Хорошо, ÑÐµÐ¹Ñ‡Ð°Ñ Ð¼Ñ‹ телепортируем тебÑ.'}, {'event': 'move_to_area', 'area': 'integra'}]};
};
_global.TalkData3 = v1;
_global.TalkData3 extends TalkData4;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData3.prototype, null, 1);
}
#endinitclip
}
movieClip 1949 __Packages.TalkData2 {
#initclip
if (!_global.TalkData2) {
var v1 = function () {
super();
this[75] = {'theme': 'ДОЖДЕВÐЯ ÐœÐШИÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_rainmachine');
}, 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ не знаете, как починить дождевую машину в Рейнленде?'}, {'npc': 'sarahata', 'text': 'Рчто, она у них ÑломалаÑÑŒ?'}, {'npc': 'grid', 'text': 'Да. Ð’Ñ‹ знаете о ней?'}, {'npc': 'sarahata', 'text': 'Конечно, Ñто здеÑÑŒ ее Ñобирали. Они купили ее у наших предков 99 лет назад... им повезло. Ðаши люди дали им гарантию на 100 лет, так что мы предоÑтавим им новую машину беÑплатно.'}, {'event': 'give_exp', 'value': 1500}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 2}, {'event': 'add_quest', 'quest': 'rain_machine', 'stage': 1}, {'npc': 'grid', 'text': 'Отлично!'}]};
this[76] = {'theme': 'СОЮЗ С МЕТÐ-ВОИÐÐМИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'grid', 'text': 'Я – поÑланник киберчуваков, гипер-воинов.'}, {'npc': 'craven', 'text': 'Мета-Воинов!'}, {'npc': 'grid', 'text': 'Ðу да. Они предлагают вам Ñотрудничать.'}, {'npc': 'sarahata', 'text': 'Я Ñлышала о Мета-Воинах и их выÑоких технологиÑÑ…. Ðо нам нужно подтверждение ваших благих намерений.'}, {'npc': 'grid', 'text': 'И какого же рода подтверждение?'}, {'npc': 'sarahata', 'text': 'Во-первых, нам нужен водный фильтр. Во-вторых, Интернет.'}, {'npc': 'grid', 'text': 'Интернет?'}, {'npc': 'sarahata', 'text': 'Да. У Ð½Ð°Ñ Ñ‚ÑƒÑ‚ не ловит. ПриходитÑÑ Ð² город караваны отправлÑÑ‚ÑŒ. За меÑÑц ÑобираетÑÑ ÑпиÑок того, что нужно поÑмотреть и Ñкачать в Интернете, затем караваны отправлÑÑŽÑ‚ÑÑ (тут довольно опаÑно путешеÑтвовать в одиночку) и приноÑÑÑ‚ информацию.'}, {'npc': 'craven', 'text': 'Мы можем поÑтавить вам вышки и уÑилители. Будет у Ð²Ð°Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚. Также проведем ÑиÑтему водоÑÐ½Ð°Ð±Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· КонÑкого МорÑ. Ðа Ñтих уÑловиÑÑ… вы готовы Ñотрудничать?'}, {'npc': 'sarahata', 'text': 'РазумеетÑÑ. Ðаше правительÑтво не думает о наÑ, поÑтому Ñ Ð»ÑƒÑ‡ÑˆÐµ буду на Ñтороне тех, кому еÑÑ‚ÑŒ до Ð½Ð°Ñ Ð´ÐµÐ»Ð¾.'}, {'event': 'give_exp', 'value': 750}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_oasis', 'stage': 1}, {'npc': 'grid', 'text': 'Ðу вот и Ñлавно! Побежали к Лине, датчики Ñнимать!'}]};
this[77] = {'theme': 'ОÐЗИС', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажите мне про ОазиÑ.'}, {'npc': 'sarahata', 'text': 'Ðто отличное меÑто. ЗдеÑÑŒ еÑÑ‚ÑŒ вода, еда – вÑе, что нужно Ð´Ð»Ñ Ð¶Ð¸Ð·Ð½Ð¸. Реще компьютеры, роботы-уборщики и маÑÑажные креÑла.'}, {'npc': 'grid', 'text': 'ПрогреÑÑивно.'}]};
this[78] = {'theme': 'ГÐРТТ', 'condition': function () {
return !(Core.Get()).game.isFlag('');
}, 'msg': [{'npc': 'grid', 'text': 'Что такое «Гартт»?'}, {'npc': 'mihel', 'text': 'Гартт – Ñто Ð²Ð¾ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ°, ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð°Ñ Ð½Ð° добровольных началах и тирании. Мы ненавидим вÑе, что Ð½Ð°Ñ Ð±ÐµÑит, и ÑражаемÑÑ Ð¿Ñ€Ð¾Ñ‚Ð¸Ð² Ñтого.'}, {'npc': 'grid', 'text': 'Рчто Ð²Ð°Ñ Ð±ÐµÑит?..'}, {'npc': 'mihel', 'text': 'Да практичеÑки ВСЕ!!!'}]};
this[79] = {'theme': 'О СЕБЕ', 'condition': function () {
return !(Core.Get()).game.isFlag('');
}, 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'mihel', 'text': 'Я тот, кто поломает тебе ноÑ, еÑли не заткнешьÑÑ.'}]};
this[80] = {'theme': 'ЛЮБОВÐÐЯ ЗÐПИСКРОТ ЛИЗ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(9);
}, 'msg': [{'npc': 'grid', 'text': 'Ðм... Мигель... у Ð¼ÐµÐ½Ñ Ð´Ð»Ñ Ð²Ð°Ñ Ð»ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка от девушки...'}, {'event': 'remove_quest_item', 'item': 9}, {'npc': 'mihel', 'text': 'Ðу-ка дай ее Ñюда!.. Черт, Ñто правда! Ðто Ñ€ÐµÐ°Ð»ÑŒÐ½Ð°Ñ Ð´ÐµÐ²ÑƒÑˆÐºÐ°! Я же начал вÑÑŽ Ñту вражду потому, что девушки не обращали на Ð¼ÐµÐ½Ñ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ...'}, {'npc': 'mihel', 'text': 'Она так прекраÑна, так Ñмоциональна, ÑÑƒÐ´Ñ Ð¿Ð¾ Ñтилю пиÑьма! Передай ей, пуÑÑ‚ÑŒ Ñобирает вещи и переезжает ко мне!'}, {'event': 'give_exp', 'value': 2500}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 6}, {'event': 'add_quest', 'quest': 'love_story_2', 'stage': 1}, {'npc': 'grid', 'text': 'Ðм... хорошо...'}]};
this[81] = {'theme': 'ВЫБИВÐÐИЕ ДОЛГОВ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Служить – Ñто хорошо, а долги надо возвращать.'}, {'npc': 'vermut', 'text': 'Что за бред?!'}, {'npc': 'grid', 'text': 'Ты занимал у ÐйÑа денег, и теперь должен их вернуть.'}, {'npc': 'vermut', 'text': 'Черт! Я убью тебÑ!'}, {'event': 'set_flag', 'flag': 'q_vermut_after_battle'}, {'event': 'set_area_flag', 'flag': 'vermut_battle'}, {'event': 'battle', 'band': 'vermut'}]};
this[82] = {'theme': 'ВЫБИВÐÐИЕ ДОЛГОВ', 'condition': function () {
return (Core.Get()).game.isFlag('q_vermut_after_battle') && !(Core.Get()).game.isAreaFlag('vermut_battle');
}, 'msg': [{'npc': 'vermut', 'text': 'Ладно, убедил... Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ что перечиÑлил на его Ñчет нужную Ñумму.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 2}, {'event': 'set_flag', 'flag': 'q_vermut_after_battle', 'value': 0}, {'event': 'add_quest', 'quest': 'debt_collection', 'stage': 1}, {'npc': 'grid', 'text': 'Хорошо, еÑли так. Иначе Ñ Ð²ÐµÑ€Ð½ÑƒÑÑŒ.'}]};
this[83] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'npc': 'grid', 'text': 'ЕÑÑ‚ÑŒ, что продать мне?!'}, {'npc': 'zoid', 'text': 'Конечно, еÑÑ‚ÑŒ! ÐичтожеÑтво! Ð”Ð»Ñ Ð½Ð¸Ñ‡Ñ‚Ð¾Ð¶ÐµÑтв – Ñкидки!'}, {'event': 'trade', 'npc': 'zoid'}]};
this[84] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'РраÑÑкажи-ка о Ñебе, прекраÑÐ½Ð°Ñ Ð´ÐµÐ²Ð°.'}, {'npc': 'bristol', 'text': 'О... Ñ... Ñ Ð»ÑŽÐ±Ð»ÑŽ риÑовать, Ñ Ñ…ÑƒÐ´Ð¾Ð¶Ð½Ð¸Ñ†Ð°. Реще люблю позировать без одежды. Почему-то за Ñто Ñ Ð±Ð¾Ð»ÐµÐµ извеÑтна, Ñ…Ð¾Ñ‚Ñ Ñ€Ð¸Ñую лучше, чем раздеваюÑÑŒ.'}, {'npc': 'grid', 'text': 'КажетÑÑ, Ñ Ð²Ñпоминаю картины Ñ Ñ‚Ð¾Ð±Ð¾Ð¹...'}, {'npc': 'bristol', 'text': 'Ðу-ка.'}, {'npc': 'grid', 'text': 'Черт! Ты задрала блузу! Точно, Ñ ÑƒÐ·Ð½Ð°ÑŽ тебÑ.'}, {'npc': 'bristol', 'text': 'Ðу да.'}]};
this[85] = {'theme': 'ПОМОЩЬ БРИСТОЛ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_helpbrisol');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 1}, {'npc': 'grid', 'text': 'Может, тебе нужно помочь? Ðе могу быть равнодушен к твоей краÑоте... хочетÑÑ Ñ‡Ñ‚Ð¾-нибудь Ñделать Ð´Ð»Ñ Ð½ÐµÐµ.'}, {'npc': 'bristol', 'text': 'Ðу, еÑли Ð²Ð°Ñ Ð½Ðµ затруднит, не могли бы вы пойти к Сету в город КаÑтеда и передать ему повеÑтку в Ñуд, а то он адвокатов не подпуÑкает к Ñебе.'}, {'npc': 'grid', 'text': 'Видимо, он возжелал твоей краÑоты?'}, {'event': 'add_quest', 'quest': 'bristol_divorce', 'stage': 0}, {'npc': 'bristol', 'text': 'Хуже. ЖенилÑÑ Ð½Ð° мне. Ðо больше недели Ñ Ð½Ð¸Ð¼ Ñ Ð½Ðµ выдержала. Жуткий тип!'}]};
this[86] = {'theme': 'ПОМОЩЬ БРИСТОЛ – ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_helpbrisol');
}, 'msg': [{'npc': 'grid', 'text': 'Документы переданы. Рзачем Ñ‚Ñ‹ изначально-то пошла за него замуж?'}, {'npc': 'bristol', 'text': 'РазумеетÑÑ, из-за денег.'}, {'npc': 'grid', 'text': 'Да уж...'}, {'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 3}, {'event': 'complete_quest', 'quest': 'bristol_divorce'}, {'event': 'give_exp', 'value': 2000}, {'event': 'give_quest_item', 'item': 10}, {'npc': 'bristol', 'text': 'Я подарю вам Ñто за ÑтараниÑ!'}]};
this[87] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'stan', 'text': 'Я, чувак, Стен! ÐœÑÑ€ города КÑмерон.'}, {'npc': 'grid', 'text': 'Кроме шуток?! ÐœÑÑ€?'}, {'npc': 'stan', 'text': 'Отвечаю за базар, чувак. ÐœÑÑ€.'}]};
this[88] = {'theme': 'ЛЮБОВÐÐЯ ЗÐПИСКРОТ ЛИЗ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(11);
}, 'msg': [{'npc': 'grid', 'text': 'ÐœÐµÐ½Ñ Ð¿Ð¾Ð¿Ñ€Ð¾Ñили передать тебе вот Ñто пиÑьмо.'}, {'npc': 'stan', 'text': 'Ух Ñ‚Ñ‹, Ð»ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка, чувак! Девченочка как, ÑимпотнаÑ?'}, {'npc': 'grid', 'text': 'МилаÑ.'}, {'npc': 'stan', 'text': 'Отлично! Передай ей, что завтра Ñ Ð·Ð° ней заеду. Я буду в маÑке и на байке, чтобы никто Ð¼ÐµÐ½Ñ Ð½Ðµ узнал. Я ж вÑе-таки мÑÑ€, мужик!'}, {'event': 'give_exp', 'value': 2500}, {'event': 'remove_quest_item', 'item': 11}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 2}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 3}, {'npc': 'grid', 'text': 'Хорошо, передам...'}]};
this[89] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'viola', 'text': 'Я Виола. Ð’Ñ‹, наверное, Ñлышали обо мне.'}, {'npc': 'grid', 'text': 'Ðет, чеÑтно говорÑ.'}, {'npc': 'viola', 'text': 'Как так можно?! Я – Ð²ÐµÐ»Ð¸ÐºÐ°Ñ Ð’Ð¸Ð¾Ð»Ð°, извеÑтна Ñвоими непревзойденными навыками игры на Ñкрипке.'}]};
this[90] = {'theme': 'О КÐМЕРОÐ', 'msg': [{'npc': 'grid', 'text': 'Что Ñ‚Ñ‹ знаешь об Ñтом городе?'}, {'npc': 'viola', 'text': 'О, КÑмерон – Ñто Ñтолица. ЗдеÑÑŒ много приезжих, в оÑновном они здеÑÑŒ вÑе работают. У Ð½Ð°Ñ ÐµÑÑ‚ÑŒ меценаты, музыканты, художники... а наш мÑÑ€...'}, {'npc': 'viola', 'text': 'Ðу, он не такой, как другие мÑры...'}]};
this[91] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'ace', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ ÐйÑ, Ñ ÐºÑ€ÑƒÑ‚ и богат. ЕÑли хочешь, дам тебе в долг денег. Ðо учти, не вернешь в течение двух чаÑов – за тобой будут охотитьÑÑ Ð½Ð°ÐµÐ¼Ð½Ð¸ÐºÐ¸ Ñо вÑей Ñтраны.'}]};
this[92] = {'theme': 'ЗÐÐЯТЬ €1,000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_credit');
}, 'msg': [{'npc': 'grid', 'text': 'ÐйÑ, займи мне штуку.'}, {'event': 'give_money', 'value': 1000}, {'event': 'set_flag', 'flag': 'v_credit'}, {'npc': 'ace', 'text': 'Ðе вопроÑ! Держи!'}]};
this[93] = {'theme': 'ВЕРÐУТЬ €1,000', 'condition': function () {
return (Core.Get()).game.isFlag('v_credit') && (Core.Get()).game.money < 1000;
}, 'msg': [{'npc': 'grid', 'text': '...Сколько, говоришь, Ñ Ñ‚ÐµÐ±Ðµ должен?..'}, {'npc': 'ace', 'text': 'Штуку. ТоропиÑÑŒ, чаÑики тикают. Ðе отдашь вовремÑ, на Ñ‚ÐµÐ±Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ñезон охоты!'}, {'npc': 'grid', 'text': 'Заметано. Деньги будут.'}]};
this[94] = {'theme': 'ВЕРÐУТЬ €1,000', 'condition': function () {
return (Core.Get()).game.isFlag('v_credit') && (Core.Get()).game.money >= 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Вот деньги, забирай.'}, {'event': 'set_flag', 'flag': 'v_credit', 'value': 0}, {'event': 'remove_money', 'value': 1000}, {'npc': 'ace', 'text': 'Молоток! Ценю чеÑтных людей. Убиваю нечеÑтных! До новых вÑтреч!'}]};
this[95] = {'theme': 'ВЫБИВÐÐИЕ ДОЛГОВ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Рне найдетÑÑ Ð»Ð¸ Ð´Ð»Ñ Ð¼ÐµÐ½Ñ ÐºÐ°ÐºÐ¾Ð¹-либо работы?'}, {'npc': 'ace', 'text': 'Да еÑÑ‚ÑŒ одно дело. Чувак по имени Вермут из военизированной фракции «Гартт» занÑл у Ð¼ÐµÐ½Ñ Ð±Ð°Ð±Ð»Ð°. Пойди разбериÑÑŒ и верни мне деньги.'}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 1}, {'event': 'add_quest', 'quest': 'debt_collection', 'stage': 0}, {'npc': 'grid', 'text': 'УÑек.'}]};
this[96] = {'theme': 'ВЫБИВÐÐИЕ ДОЛГОВ - ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Он Ñказал, что перечиÑлил их на твой Ñчет.'}, {'event': 'give_exp', 'value': 2500}, {'event': 'give_money', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 3}, {'event': 'complete_quest', 'quest': 'debt_collection'}, {'npc': 'ace', 'text': 'Так... да, деньги поÑтупили. Ðа, возьми Ñебе за работу.'}]};
this[97] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ меÑтный?'}, {'event': 'set_flag', 'flag': 'about_rain_machine', 'condition': function () {
return !(Core.Get()).game.isFlag('about_rain_machine');
}}, {'npc': 'shell', 'text': 'Ðет, Ñ ÑтранÑтвующий путешеÑтвенник и иÑÑледователь. Прибыл Ñюда, чтобы выÑÑнить, почему ÑломалаÑÑŒ Ð´Ð¾Ð¶Ð´ÐµÐ²Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð°.'}]};
this[98] = {'theme': 'ДОЖДЕВÐЯ ÐœÐШИÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('about_rain_machine');
}, 'msg': [{'npc': 'grid', 'text': 'Что еще за Ð´Ð¾Ð¶Ð´ÐµÐ²Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð°?'}, {'npc': 'shell', 'text': 'Ðу Ñто же Рейнленд. Город дождÑ. Ð’Ñ‹ видите дождь?'}, {'npc': 'grid', 'text': 'Ðеа.'}, {'npc': 'shell', 'text': 'Вот. РРейнленд получил Ñвое название именно за то, что дождь здеÑÑŒ ÑоздавалÑÑ Ð¾Ñобой машиной, «Вододелом-3000». Без него тут заÑуха и вÑем плохо.'}, {'npc': 'grid', 'text': 'И как, что уже удалоÑÑŒ выÑÑнить?'}, {'event': 'set_flag', 'flag': 'about_rain_machine', 'value': 2}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 1}, {'event': 'add_quest', 'quest': 'rain_machine', 'stage': 0}, {'npc': 'shell', 'text': 'Да пока мало что... вот еÑли бы Ñ‚Ñ‹ знал кого-то из ОазиÑа, Ñто могло бы помочь... У них там вÑегда влажно и хорошо, Ñ…Ð¾Ñ‚Ñ Ð¾Ð½Ð¸ и находÑÑ‚ÑÑ Ð¿Ð¾Ñреди пуÑтыни...'}]};
this[99] = {'theme': 'ДОЖДЕВÐЯ ÐœÐШИÐР– ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_rainmachine');
}, 'msg': [{'npc': 'grid', 'text': 'ÐžÐ°Ð·Ð¸Ñ Ñкоро доÑтавит Ñюда новую дождевую машину. Ðто будет беÑплатно, она находитÑÑ Ð½Ð° гарантии.'}, {'event': 'give_exp', 'value': 3500}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 3}, {'event': 'complete_quest', 'quest': 'rain_machine'}, {'npc': 'shell', 'text': 'Отлично! Теперь дождь вернетÑÑ Ð² Ñти земли!'}]};
this[100] = {'theme': 'О СЕБЕ', 'condition': function () {
return 3 > (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'grid', 'text': 'Привет! О чем вы вздыхаете?'}, {'npc': 'liz', 'text': 'Скорее, не «о чем», а «о ком»...'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 1, 'condition': function () {
return !(Core.Get()).game.isFlag('q_lizandsten');
}}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 0, 'condition': function () {
return !(Core.Get()).game.isFlag('q_lizandsten');
}}, {'npc': 'liz', 'text': 'Я влюблена в одного человека... его зовут Стен... но он мÑÑ€ города КÑмерон, и нам не быть вмеÑте!'}]};
this[101] = {'theme': 'ЛЮБОВÐÐЯ ЗÐПИСКÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'grid', 'text': 'Может, Ñ Ð¼Ð¾Ð³Ñƒ как-то вам помочь?'}, {'npc': 'liz', 'text': 'Мне никто не поможет!.. ХотÑ... можете передать ему любовную запиÑку от менÑ? Очень Ð²Ð°Ñ Ð¿Ñ€Ð¾ÑˆÑƒ!'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 2}, {'event': 'give_quest_item', 'item': 11}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 1}, {'npc': 'grid', 'text': 'Хорошо. Конечно, передам.'}]};
this[102] = {'theme': 'ЛЮБОВÐÐЯ ЗÐПИСКР- ВЫПОЛÐЕÐО', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'liz', 'text': 'Как уÑпехи?!'}, {'npc': 'grid', 'text': 'Я передал пиÑьмо.'}, {'npc': 'liz', 'text': 'И?!!'}, {'npc': 'grid', 'text': 'Он предлагает вÑтретитьÑÑ Ð·Ð°Ð²Ñ‚Ñ€Ð°. Он заедет за вами на мотоцикле, на лице его будет маÑка, чтобы его не узнали.'}, {'event': 'give_exp', 'value': 2000}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 4}, {'event': 'complete_quest', 'quest': 'love_story'}, {'event': 'start_timer', 'timer': 't_lizstendate'}, {'npc': 'liz', 'text': 'Здорово! СпаÑибо! Целую!'}]};
this[103] = {'theme': 'КÐК ПРОШЛО СВИДÐÐИЕ?', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_lizandsten') && (Core.Get()).game.timers.t_lizstendate >= 1500;
}, 'msg': [{'event': 'kill_timer', 'timer': 't_lizstendate'}, {'npc': 'grid', 'text': 'Как прошло Ñвидание?'}, {'npc': 'liz', 'text': 'Он Ð¼ÐµÐ½Ñ Ð±Ñ€Ð¾Ñил! Сказал, Ñ Ñлишком ÑÐ¼Ð¾Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð¸ нервнаÑ! Я так рыдала, так рыдала...'}, {'npc': 'grid', 'text': 'СочувÑтвую...'}, {'npc': 'liz', 'text': 'Ðу ничего! ЕÑÑ‚ÑŒ лекарÑтво от неÑчаÑтной влюбленноÑти. Я Ñнова влюблена! Ðа Ñтот раз в МигелÑ, лидера фашиÑÑ‚Ñкого Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð“Ð°Ñ€Ñ‚Ñ‚!'}, {'npc': 'grid', 'text': 'Девочка, тебе Ñвно нравÑÑ‚ÑÑ Ð¿Ð»Ð¾Ñ…Ð¸Ðµ парни...'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 5}, {'event': 'give_quest_item', 'item': 9}, {'event': 'add_quest', 'quest': 'love_story_2', 'stage': 0}, {'npc': 'liz', 'text': 'Что поделать! Вот Ð½Ð¾Ð²Ð°Ñ Ð»ÑŽÐ±Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñка. ДоÑтавь ее Мигелю в Бетавилль.'}]};
this[104] = {'theme': 'ЛЮБОВÐÐЯ ЗÐПИСКР2 - ВЫПОЛÐЕÐО', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'liz', 'text': 'Ðу?!'}, {'npc': 'grid', 'text': 'Твое пиÑьмо тронуло его, Лиз. Он хочет, чтобы Ñ‚Ñ‹ Ñобрала вещи и переехала к нему.'}, {'npc': 'liz', 'text': 'Ура! Уже бегу!!'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 7}, {'event': 'complete_quest', 'quest': 'love_story_2'}, {'npc': 'grid', 'text': 'Ох, надолго ли...'}]};
this[105] = {'theme': 'О СЕБЕ', 'msg': [{'event': 'set_flag', 'flag': 'alice_trade'}, {'npc': 'alice', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ ÐлиÑ, Ñ Ñ‚Ð¾Ñ€Ð³ÑƒÑŽ полезными различными штуками, которые могли бы тебе пригодитÑÑ, краÑавчик!'}]};
this[106] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('alice_trade');
}, 'msg': [{'event': 'trade', 'npc': 'alice'}]};
this[107] = {'theme': 'БÐЗРПРИШЕЛЬЦЕВ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Хм... Капитан ХаркоÑ. Рне могли бы вы помочь мне отправитьÑÑ Ð½Ð° один объект в глубине морÑ...'}, {'npc': 'harcos', 'text': 'Я вÑе могу! Другое дело – Ñтану ли!'}, {'npc': 'key', 'text': 'РеÑли мы *очень* попроÑим?', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'harcos', 'text': 'То пойдете далеко и надолго!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'Как Ð²Ð°Ñ ÑƒÐ±ÐµÐ´Ð¸Ñ‚ÑŒ?'}, {'npc': 'harcos', 'text': 'Деньги мне не нужны!'}, {'npc': 'grid', 'text': 'Тогда отдайте их мне.'}, {'npc': 'harcos', 'text': 'Очень Ñмешно! Докажи мне делом, что Ñ‚Ñ‹ доÑтоин взойти на борт «ÐеизбежноÑти»! Топай на Юго-Запад отÑюда в район равнин ЛаÑÑ‚ Стенд. Регион извеÑтен за то, что там обитают опаÑнейшие ÑущеÑтва Грабберы.'}, {'npc': 'grid', 'text': 'И что Ñ Ð½Ð¸Ð¼Ð¸?'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 5}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 4}, {'npc': 'harcos', 'text': 'Ð’ общем, еÑли Ñ‚Ñ‹ Ñможешь отправить на тот Ñвет Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 3Ñ… из них, то Ñ Ð¿Ð¾Ñчитаю, что Ñ‚Ñ‹ доÑтоин того, чтобы взойти на бор «ÐеизбежноÑти».'}]};
this[108] = {'theme': 'ГРÐББЕРЫ', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Что за Грабберы?'}, {'npc': 'harcos', 'text': 'ЕÑÑ‚ÑŒ нежить, Ñто те, кто воÑÐºÑ€ÐµÑ ÐºÐ¸Ð±ÐµÑ€Ð½ÐµÑ‚Ð¸Ñ‡ÐµÑким путем. ЕÑÑ‚ÑŒ мутанты – Ñто генетичеÑки измененные люди. Оба ÑпоÑоба – богомерзкие издевательÑтва. Ðо грабберы – Ñто мутанты-нежить. ГенетичеÑки измененный Ñолдат, которого вернули обратно к жизни.'}]};
this[109] = {'theme': 'ЗÐДÐÐИЕ КÐПИТÐÐÐ', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan') && 3 > (Core.Get()).game.getFlag('kills_grabbers_harcos');
}, 'msg': [{'npc': 'harcos', 'text': 'Убил трех Грабберов?'}, {'npc': 'grid', 'text': 'Да!'}, {'npc': 'harcos', 'text': 'Чего Ñ‚Ñ‹ мне врешь, Ñ Ð·Ð½Ð°ÑŽ, что не убил! Иди и убивай!'}]};
this[110] = {'theme': 'ЗÐДÐÐИЕ КÐПИТÐÐÐ - ВЫПОЛÐЕÐО', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan') && 3 <= (Core.Get()).game.getFlag('kills_grabbers_harcos');
}, 'msg': [{'npc': 'harcos', 'text': 'Убил трех Грабберов?'}, {'npc': 'grid', 'text': 'Да!'}, {'npc': 'harcos', 'text': 'Верю. По глазам вижу, что не врешь.'}, {'event': 'give_exp', 'value': 7000}, {'npc': 'grid', 'text': 'Поплыли!'}, {'npc': 'harcos', 'text': 'Притормози коней. У Ð¼ÐµÐ½Ñ ÐµÑÑ‚ÑŒ еще одно задание...'}, {'npc': 'grid', 'text': 'Мы так не договаривалиÑÑŒ! Речь шла об одном! Так, ну-ка поплыли...'}, {'npc': 'harcos', 'text': 'Ð’Ñе равно мы далеко не уплывем... Тут пока Ñ‚ÐµÐ±Ñ Ð½Ðµ было, неÑколько Мета-Воинов украли важную деталь ÐºÐ¾Ñ€Ð°Ð±Ð»Ñ Â«ÐеизбежноÑть» - вакуумный мотор. Думаю, воры еще находÑÑ‚ÑÑ Ð³Ð´Ðµ-то в районе плато Страт на западе отÑюда. Догони их и отбери мой мотор!'}, {'npc': 'grid', 'text': 'Ладно... вÑе равно же выбора нет. Лучше бы не проходил дурацкое иÑпытание...'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 6}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 5}, {'npc': 'harcos', 'text': 'Да, похоже, Ñ‚Ñ‹ прав. Ðо уже ничего не изменить. Иди ищи мотор.'}]};
this[111] = {'theme': 'Ð’ÐКУУМÐЫЙ МОТОР', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_bigalienplan') && !(Core.Get()).game.hasQuestItem(12);
}, 'msg': [{'npc': 'harcos', 'text': 'Где мой вакуумный мотор?'}, {'npc': 'grid', 'text': 'Видимо, вÑе еще бегает где-то в районе Страт.'}, {'npc': 'harcos', 'text': 'Так беги догонÑй! Чего ждешь?'}]};
this[112] = {'theme': 'Ð’ÐКУУМÐЫЙ МОТОР', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.hasQuestItem(12);
}, 'msg': [{'npc': 'harcos', 'text': 'Где мой вакуумный мотор?'}, {'npc': 'grid', 'text': 'Вот он!'}, {'event': 'remove_quest_item', 'item': 12}, {'event': 'give_exp', 'value': 5000}, {'npc': 'harcos', 'text': 'Отлично! Теперь мы Ñможем отправитьÑÑ Ñ‚ÑƒÐ´Ð°, куда вы там хотели.'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 7}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 6}, {'npc': 'grid', 'text': 'Замечательно!'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[113] = {'theme': 'ÐЕИЗБЕЖÐОСТЬ', 'msg': [{'npc': 'grid', 'text': 'Что еще за «неизбежноÑть»?'}, {'npc': 'harcos', 'text': '«ÐеизбежноÑть», презренный, - Ñто лучшее Ñудно в мире, Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ него можно попаÑÑ‚ÑŒ куда угодно в море!'}]};
this[114] = {'theme': 'ÐЕФРИТОВЫЙ ОСТРОВ', 'msg': [{'npc': 'grid', 'text': 'Что Ñто за оÑтров там виднеетÑÑ?'}, {'npc': 'yax', 'text': 'Ðто Ðефритовый ОÑтров. Я могу отвезти Ð²Ð°Ñ Ñ‚ÑƒÐ´Ð°. Ð’Ñего за 50 монет.'}, {'event': 'set_flag', 'flag': 'v_knowjade'}, {'npc': 'grid', 'text': 'ПонÑтно.'}]};
this[115] = {'theme': 'ОТПРÐВИТЬСЯ ÐРОСТРОВ – €50', 'condition': function () {
return (Core.Get()).game.isFlag('v_knowjade') && (Core.Get()).game.money < 50;
}, 'msg': [{'npc': 'grid', 'text': 'Вези Ð½Ð°Ñ Ð½Ð° Ðефритовый ОÑтров!'}, {'npc': 'yax', 'text': 'Хорошо. Как только заработаете €50 на билет.'}]};
this[116] = {'theme': 'ОТПРÐВИТЬСЯ ÐРОСТРОВ – €50', 'condition': function () {
return (Core.Get()).game.isFlag('v_knowjade') && (Core.Get()).game.money >= 50;
}, 'msg': [{'npc': 'grid', 'text': 'Вези Ð½Ð°Ñ Ð½Ð° Ðефритовый ОÑтров!'}, {'event': 'remove_money', 'value': 50}, {'npc': 'yax', 'text': 'Ок. Поплыли.'}, {'event': 'weaken_fog', 'x': 36, 'y': 13, 'w': 1, 'h': 2}, {'event': 'move_to_area', 'area': 'jade'}]};
this[117] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'cij', 'text': 'Я - ветер! Перед тобой капитан ÐºÐ¾Ñ€Ð°Ð±Ð»Ñ Ð˜ÑтериÑ! Лучшего в мире крылатого кораблÑ!'}, {'npc': 'grid', 'text': 'Ð Ñ Ð¼Ð¾Ð³ бы воÑпользоватьÑÑ ÑƒÑлугами ИÑтерии?'}, {'npc': 'cij', 'text': 'Йоху! Конечно же, нет! Ðто мой корабль, а Ñ Ð½Ðµ беру на борт только потому, что кому-то Ñтого хочетÑÑ! Деньги мне не нужны. Деньги – пуÑтое. Свобода – вÑе.'}]};
this[118] = {'theme': 'ИСТЕРИЯ', 'condition': function () {
return (Core.Get()).game.stats[0].level < 20;
}, 'msg': [{'npc': 'grid', 'text': 'Что мне нужно Ñделать, чтобы воÑпользоватьÑÑ ÑƒÑлугами ИÑтерии?'}, {'npc': 'cij', 'text': 'Ð’Ñе проÑто! Ты должен быть не менее 20 уровнÑ!'}, {'npc': 'grid', 'text': 'И вÑе?'}, {'npc': 'cij', 'text': 'И вÑе!'}]};
this[119] = {'theme': 'ИСТЕРИЯ', 'condition': function () {
return (Core.Get()).game.stats[0].level >= 20;
}, 'msg': [{'npc': 'grid', 'text': 'Я хочу воÑпользоватьÑÑ ÑƒÑлугами великого летающего кораблÑ, ИÑтериÑ!'}, {'event': 'set_flag', 'flag': 'hysterie'}, {'event': 'give_exp', 'value': 5000}, {'event': 'no_talk'}, {'npc': 'cij', 'text': 'Хорошо! По рукам! Ты доÑтаточно Ñилен, и Ñ ÑоглаÑен!'}]};
this[120] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ðто что, ушки?'}, {'npc': 'kippa', 'text': 'Да, мÑу! Кошачьи ушки!'}]};
this[121] = {'theme': 'О ÐЕВЕРМОР', 'msg': [{'npc': 'grid', 'text': 'Что Ñто за городок?'}, {'npc': 'kippa', 'text': 'Ðто Ðевермор. Городок Ð´Ð»Ñ Ð²Ñех отверженных, мÑу! Ð”Ð»Ñ Ñ‚ÐµÑ…, кто Ñтранно выглÑдит, Ñтранно говорит... люди таких боÑÑ‚ÑÑ. РздеÑÑŒ им комфортно и уютно. ÐœÑу!'}, {'npc': 'kippa', 'text': 'ЗдеÑÑŒ, например, живет Лютик. Ð¡Ð¿Ð¾Ñ€Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¿Ð°Ð½Ð´Ð°. Он очень популÑрен у женщин потому, что Ñпортивен и потому... что панда. Панды нравÑÑ‚ÑÑ Ð²Ñем.'}, {'npc': 'kippa', 'text': 'Рвон то – паренек по имени Гаймон. У него нет никаких генных отклонений, но он проÑто Ñлишком Ñтранный Ð´Ð»Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ñ… людей.'}]};
this[122] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'npc': 'grid', 'text': 'Ру кого бы тут можно было купить, подÑкажи?'}, {'npc': 'kippa', 'text': 'У менÑ!'}, {'event': 'trade', 'npc': 'kippa'}]};
this[123] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты еще кто?'}, {'npc': 'lexic', 'text': 'Я – ЛекÑик!'}, {'npc': 'grid', 'text': 'Ты – ПÐÐДÐ!'}, {'event': 'set_flag', 'flag': 'panda_talk1'}, {'npc': 'lexic', 'text': 'Ðу да. Я знаю!'}]};
this[124] = {'theme': 'ЧЕМ ЗÐÐИМÐЕШЬСЯ', 'condition': function () {
return (Core.Get()).game.isFlag('panda_talk1');
}, 'msg': [{'npc': 'grid', 'text': 'Чем Ñ‚Ñ‹ обычно занимаешьÑÑ?'}, {'npc': 'lexic', 'text': 'Я занимаюÑÑŒ Ñпортом, люблю девушек и активный отдых!'}, {'npc': 'grid', 'text': 'Рдевушки как?'}, {'npc': 'lexic', 'text': 'Девушки хорошо! Панды нравÑÑ‚ÑÑ Ð²Ñем!'}, {'event': 'set_flag', 'flag': 'panda_talk2'}, {'npc': 'grid', 'text': 'Ох...'}]};
this[125] = {'theme': 'ПРИСОЕДИÐИТЬСЯ К ОТРЯДУ', 'condition': function () {
return (Core.Get()).game.isFlag('panda_talk2');
}, 'msg': [{'npc': 'grid', 'text': 'Слушай, панда, не хочешь приÑоединитьÑÑ Ðº моему отрÑду?'}, {'event': 'give_exp', 'value': 1000}, {'event': 'join_team', 'npc': 7}, {'npc': 'lexic', 'text': 'Конечно, почему нет!'}]};
this[126] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто?'}, {'npc': 'gaimon', 'text': 'Гаймон...'}, {'npc': 'grid', 'text': 'И?..'}, {'event': 'set_flag', 'flag': 'gaimon_aliens'}, {'npc': 'gaimon', 'text': 'И вÑе. ПроÑто Гаймон.'}]};
this[127] = {'theme': 'О ÐЕВЕРМОР', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажи мне об Ñтом городе.'}, {'npc': 'gaimon', 'text': 'Хороший. Спокойно.'}, {'npc': 'grid', 'text': 'И?..'}, {'npc': 'gaimon', 'text': 'И вÑе. Хороший и Ñпокойный. Мне тут рады. ÐœÐµÐ½Ñ Ñ‚ÑƒÑ‚ понимают.'}, {'npc': 'grid', 'text': 'Ох, Ñтранный Ñ‚Ñ‹ парень...'}]};
this[128] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return (Core.Get()).game.isFlag('gaimon_aliens') && !(Core.Get()).game.isFlag('q_alienfix2');
}, 'msg': [{'npc': 'grid', 'text': 'Ты, Ñлучаем, не пришелец ли?'}, {'npc': 'gaimon', 'text': 'Ðет... но мне Ñ Ð½Ð¸Ð¼Ð¸ почти также хорошо, как здеÑÑŒ. Они ÑтараютÑÑ Ð¿Ð¾Ð½ÑÑ‚ÑŒ каждого человека, общатьÑÑ Ñ Ð½Ð¸Ð¼Ð¸ на их же Ñзыке и в той манере, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ð¼ комфортна.'}, {'npc': 'grid', 'text': 'ЕÑли они Ñ‚ÐµÐ±Ñ Ð½Ðµ убили, то видимо потому, что принÑли за Ñвоего.'}, {'npc': 'gaimon', 'text': 'Ðет. Они никого не убивают, еÑли от Ñтого не завиÑит их жизнь. Я наблюдал за ними. Ðо потом они улетели. ÐœÐµÐ½Ñ Ð½Ðµ взÑли...'}, {'event': 'give_exp', 'value': 750}, {'event': 'set_flag', 'flag': 'q_alienfix2'}, {'npc': 'grid', 'text': 'ПонÑтно.'}]};
this[129] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ кто такой или что такое?!'}, {'npc': 'chivax', 'text': 'ЕÑли будешь грубо общатьÑÑ Ñ Ð¼Ñром города Ðевермор, то мÑÑ€ города вытащит твою печень и ÑъеÑÑ‚ ее, ибо мÑÑ€ Ðевермор – Ñто Ñ. Я хочу печень. Ðе уважай менÑ.'}, {'npc': 'grid', 'text': 'ПроÑтите, мÑÑ€... Ваша внешноÑÑ‚ÑŒ Ñперва неÑколько озадачивает.'}, {'npc': 'chivax', 'text': 'Знаю. Знаю.'}]};
this[130] = {'theme': 'ИЗВИÐЕÐИЕ ГИДРЫ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'grid', 'text': 'Скажите, какие аÑÑоциации у Ð²Ð°Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚ Ñлово «Гидра»?'}, {'npc': 'chivax', 'text': 'ÐЕТ!!! ТОЛЬКО ÐЕ ГИДРÐ!!! ÐЕТ!!!!!!!!'}, {'npc': 'chivax', 'text': 'ПроÑтите мне мой Ñрыв, недавно девочка Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уÑтроила в нашем городе жеÑтокую бойню.'}, {'npc': 'grid', 'text': 'Ð’Ñ‹, конечно, не поверите, но ей очень Ñтыдно за Ñвое поведение, и она желает знать, как бы ей загладить Ñвою вину.'}, {'npc': 'chivax', 'text': 'ВеритÑÑ Ñ Ñ‚Ñ€ÑƒÐ´Ð¾Ð¼... но... наверное, каждый доÑтоин второго шанÑа... даже она. Ðашему городу ничего не надо, Ñ Ð¿Ñ€Ð¾Ñ‰Ð°ÑŽ ее. Только пуÑÑ‚ÑŒ больше никогда не приходит Ñюда...'}, {'event': 'give_exp', 'value': 1500}, {'event': 'set_flag', 'flag': 'q_hydranevermore', 'value': 2}, {'npc': 'grid', 'text': 'Хорошо.'}]};
this[131] = {'theme': 'ЧТО С ТОБОЙ?', 'msg': [{'npc': 'ken', 'text': 'Я – результат ÑкÑперимента по получению Ñверхчеловека... так нам Ñперва говорили... а теперь мы – зомби! Дурацкие зеленые зомби, которые не могут даже умереть.'}]};
this[132] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'event': 'trade', 'npc': 'goman'}]};
this[133] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты кто? И что Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ произошло?'}, {'npc': 'fea', 'text': 'Ох... Ð´Ð¾Ð»Ð³Ð°Ñ Ñто иÑториÑ. Ð”Ð¾Ð»Ð³Ð°Ñ Ð¸ печальнаÑ.'}, {'npc': 'fea', 'text': 'Когда-то Ñ Ð±Ñ‹Ð»Ð° ученым, автором военного проекта «беÑÑмертный Ñолдат»... однако в результате мы получили то, что Ñ‚Ñ‹ видишь в городе.'}, {'npc': 'fea', 'text': 'Ð¥Ð¾Ñ‚Ñ Ð¼Ñ‹ и не могли умереть, но могли получать физичеÑкие повреждениÑ, а кожа начала медленно отмирать... мы Ñтали зомби, каких опиÑывают в Ñтарых кинофильмах.'}, {'npc': 'fea', 'text': 'И Ñто ужаÑно! Я хочу ходить на ÑÐ²Ð¸Ð´Ð°Ð½Ð¸Ñ Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ мальчиками, но почему-то далеко не каждому нравитÑÑ Ð·ÐµÐ»ÐµÐ½Ð°Ñ ÐºÐ¾Ð¶Ð° и шрамы по вÑему телу.'}, {'npc': 'fea', 'text': 'Я так неÑчаÑтна...'}, {'npc': 'grid', 'text': 'СочувÑтвую...'}]};
this[134] = {'theme': 'СОЮЗ С МЕТÐ-ВОИÐÐМИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'Мета-Воины хотÑÑ‚ заключить Ñоюз Ñ Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ð¼ КалипÑо Ð´Ð»Ñ ÑÐ¾Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑтаниÑ.'}, {'npc': 'fea', 'text': 'Зачем нам воÑÑтание? Мы Ñвое отвоевали, и вот что Ñтало Ñ Ð½Ð°ÑˆÐ¸Ð¼Ð¸ телами. Ðам нужно только одно – нормальное человечеÑкое тело. ЕÑли придумаете, как Ñто Ñделать, поможем Ñ Ñ‡ÐµÐ¼ угодно.'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 3}, {'npc': 'grid', 'text': 'Хм... нужно поговорить Ñ Ð›Ð¸Ð½Ð¾Ð¹.'}]};
this[135] = {'theme': 'ПОМОЩЬ МИХÐÐЛЯ', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'Я нашел лучшего ученого континента, он занималÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ иÑÑледованиÑми и Ñможет помочь вам, еÑли проведет Ñ€Ñд иÑÑледований непоÑредÑтвенно Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ телами.'}, {'npc': 'fea', 'text': 'Отлично! Я так давно ждала Ñтого днÑ. Думаю, вмеÑте Ñ Ð½Ð¸Ð¼ мы найдем решение проблемы.'}, {'npc': 'grid', 'text': 'Значит, Ñ Ð¼Ð¾Ð³Ñƒ доложить начальÑтву, что КалипÑо поможет в воÑÑтании Мета-Воинов?'}, {'event': 'give_exp', 'value': 4500}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 5}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 6}, {'npc': 'fea', 'text': 'Да! Мы поможем! Боже... наконец-таки у Ð¼ÐµÐ½Ñ Ð±ÑƒÐ´ÐµÑ‚ нормальный живой парень...!'}]};
this[136] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'keabo', 'text': 'Кибо Ð¼ÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚, ÑпроÑи любого, Ñ Ð±ÐµÐ·Ð¼ÐµÑ€Ð½Ð¾ крут. Торгую Ñ Ð¾Ñ€ÑƒÐ¶Ð¸ÐµÐ¼, и денег загребаю тонны. Во мне внутри живет душа Платона.'}, {'npc': 'grid', 'text': 'Очень Ñомнительный реп.'}, {'npc': 'keabo', 'text': 'Возможно, чувак! Ðо Ñ Ñ‚Ð¾Ñ€Ð³ÑƒÑŽ пушками, так что подумай еще раз!'}, {'npc': 'grid', 'text': 'Хм... отлично читаешь, чувак! Ты талант!'}, {'event': 'set_flag', 'flag': 'keabo_trade'}, {'npc': 'keabo', 'text': 'То-то же. Смышленый попалÑÑ. Ðужно будет оружие, приходи.'}]};
this[137] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('keabo_trade');
}, 'msg': [{'event': 'trade', 'npc': 'keabo'}]};
this[138] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'grid', 'text': 'Слушай, Кибо, а не интереÑно ли тебе изменить мир к лучшему?'}, {'npc': 'keabo', 'text': 'Говори, друг. Ты же вÑегда помнишь, что еÑли мне что-то не понравитÑÑ, Ñ Ð¿Ñ€Ð¾Ñто убью тебÑ.'}, {'npc': 'grid', 'text': 'Ðе хочешь ÑпонÑировать революцию?'}, {'npc': 'keabo', 'text': 'Рчто Ñ Ñ Ñтого получу? Деньги у Ð¼ÐµÐ½Ñ ÑƒÐ¶Ðµ еÑÑ‚ÑŒ.'}, {'npc': 'grid', 'text': 'Под ваше чтение будет вершитьÑÑ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ñ, а ваше оружие Ñтанет брендом революции. ИнтереÑно?'}, {'npc': 'keabo', 'text': 'Звучит позитивно! «Что убило твоего ÑоÑеда? – ПУШКИ КИБО. Пушки Кибо, и шуметь за Ñтеной переÑтанут». Как тебе Ñлоган?..'}, {'npc': 'keabo', 'text': '...Ðо Ñперва мне нужно доказательÑтво – вот вам мой компакт-диÑк, поÑтавьте его на каком-нибудь радио. Только не иÑпользуйте деньги. Ðе хочу быть как Ñта Байба из КалиÑтера.'}, {'event': 'give_quest_item', 'item': 13}, {'event': 'add_quest', 'quest': 'keabo_style', 'stage': 0}, {'npc': 'grid', 'text': 'Ох... ну ладно.'}]};
this[139] = {'theme': 'ДИСК КИБО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && (Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'keabo', 'text': 'Я что-то пока не Ñлышал Ñвоих пеÑен ни на одном радио.'}, {'npc': 'grid', 'text': 'Я еще работаю над Ñтим.'}]};
this[140] = {'theme': 'ДИСК КИБО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && 1 == (Core.Get()).game.getFlag('q_kibodisc');
}, 'msg': [{'npc': 'keabo', 'text': 'Слушал Ñ Ð²Ñ‡ÐµÑ€Ð° радио... и что же Ñ Ñлышу, друг мой?! Свой великий трек! Ты молодец, Ñ Ð³Ð¾Ñ€Ð¶ÑƒÑÑŒ тобой. Я вложу Ñвои деньги в твою революцию, чувак!'}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'give_exp', 'value': 4500}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'event': 'set_flag', 'flag': 'q_kibodisc', 'value': 2}, {'event': 'complete_quest', 'quest': 'keabo_style'}, {'npc': 'grid', 'text': 'Отлично, ÑпаÑибо!'}]};
this[141] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Привет, Сет, ну как дела?'}, {'npc': 'seth', 'text': 'Ð’Ñе также. Я безобразно богат, недоволен миром и уверен, что Ð¼ÐµÐ½Ñ Ð²Ñе хотÑÑ‚ убить.'}]};
this[142] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'grid', 'text': 'Сет, возможно, Ñ‚ÐµÐ±Ñ Ð·Ð°Ð¸Ð½Ñ‚ÐµÑ€ÐµÑует инвеÑтирование в одну террориÑтичеÑкую организацию?'}, {'npc': 'seth', 'text': 'Ð¡Ð¼Ð¾Ñ‚Ñ€Ñ Ð¾ чем идет речь.'}, {'npc': 'grid', 'text': 'Мета-Воины.'}, {'npc': 'seth', 'text': 'Да, Ñ Ð½Ð°Ñлышан о них. Ðо что получу Ñ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ð¸ Ñ? Ðе похоже, чтобы Мета-Воины были заинтереÑованы в том, чтобы Ñ Ð²Ð¾Ð·Ð³Ð»Ð°Ð²Ð¸Ð» их.'}, {'npc': 'grid', 'text': 'Да ладно тебе, Сет. У Ñ‚ÐµÐ±Ñ Ñтих денег... к тому же, Ñмотри, еÑли вÑе получитÑÑ -правительÑтво будет Ñвергнуто.'}, {'npc': 'seth', 'text': 'Да не хочу Ñ Ð¸Ð½Ð²ÐµÑтировать твои революции. Забудь об Ñтом.'}]};
this[143] = {'theme': 'ПОМОЩЬ БРИСТОЛ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_helpbrisol');
}, 'msg': [{'npc': 'grid', 'text': 'Тебе повеÑтка в Ñуд!'}, {'npc': 'seth', 'text': 'Оп-па. Ðто от кого же?'}, {'npc': 'grid', 'text': 'От твоей ÑкÑ-жены. Она уверена, что Ñ‚Ñ‹ избегаешь юриÑтов.'}, {'npc': 'seth', 'text': 'БриÑтол, что ли? Я избегаю юриÑтов, но Ñто предоÑторожноÑÑ‚ÑŒ на опаÑные Ñлучаи в работе. Ð Ñто – мелочь. Девочка, похоже, вышла за Ð¼ÐµÐ½Ñ Ð¸Ð·-за денег. Ðу вот и уÑтроил ей тиранию, чтобы Ñбежала. Рденег не получит, юриÑÑ‚Ñ‹ уже позаботилиÑÑŒ.'}, {'event': 'give_exp', 'value': 3500}, {'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 2}, {'event': 'add_quest', 'quest': 'bristol_divorce', 'stage': 1}, {'npc': 'grid', 'text': 'Я так и подумал. Мое дело – передать повеÑтку.'}]};
this[144] = {'theme': 'ФОТОГРÐФИИ БРИСТОЛ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(10);
}, 'msg': [{'npc': 'seth', 'text': 'Что Ñто у Ñ‚ÐµÐ±Ñ Ñ‚Ð°Ð¼?.. Ðльбом фотографий моей ÑкÑ-Ñупруги?'}, {'npc': 'grid', 'text': 'Ðу да, он Ñамый.'}, {'npc': 'seth', 'text': 'Черт, а продай его мне.'}, {'npc': 'grid', 'text': 'Ð’Ñе-таки Ñ‚Ñ‹ любил ее?'}, {'npc': 'seth', 'text': 'Ðет, конечно. Ðо тело у нее что надо. 1,000$ уÑтроит?'}, {'event': 'give_money', 'value': 1000}, {'event': 'give_exp', 'value': 5000}, {'event': 'remove_quest_item', 'item': 10}, {'npc': 'grid', 'text': 'Вполне!'}]};
this[145] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ðто Ñ‚Ñ‹ - Гидра, единÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð´Ð¾Ñ‡ÑŒ Ñлитной Ñемьи ФендерÑов? Я узнал Ñ‚ÐµÐ±Ñ Ð¿Ð¾ теÑаку в руках и малому количеÑтву одежды.'}, {'npc': 'hydra', 'text': 'Да, дружочек, Ñто Ñ! Ðе хочешь Ñо мной побегать за горожанами Ñ Ð¾Ñ€ÑƒÐ¶Ð¸ÐµÐ¼?'}, {'npc': 'grid', 'text': 'Ðет, ÑпаÑибо, пока откажуÑÑŒ.'}]};
this[146] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_hydranevermore');
}, 'msg': [{'npc': 'grid', 'text': 'Ты никогда не думала вложить родительÑкие деньги во что-нибудь ÑтоÑщее, например революцию Мета-Воинов?'}, {'npc': 'hydra', 'text': 'И что тут веÑелого?'}, {'npc': 'grid', 'text': 'Везде будут дратьÑÑ Ð»ÑŽÐ´Ð¸, кровь будет течь реками... ну и так далее.'}, {'npc': 'hydra', 'text': 'Ой, круть! Хочу... однако, так легко мне родители на Ñто денег не дадут, они не понимают моих увлечений...'}, {'npc': 'hydra', 'text': 'Я наказана за прошлый раз, когда уÑтроила бойню в городе Ðевермор...'}, {'npc': 'hydra', 'text': 'Вот еÑли Ñ‚Ñ‹ Ñходишь к мÑру города и извинишьÑÑ Ð¿ÐµÑ€ÐµÐ´ ними от моего имени, они Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¾ÑÑ‚ÑÑ‚, и Ñ Ñмогу ÑпонÑировать революцию!'}, {'npc': 'grid', 'text': 'Рчто Ñама не Ñходишь?'}, {'event': 'set_flag', 'flag': 'q_hydranevermore', 'value': 1}, {'event': 'add_quest', 'quest': 'feel_of_guilty', 'stage': 0}, {'npc': 'hydra', 'text': 'Думаю, они не Ñтанут Ñлушать, и откроют огонь, а мне придетÑÑ ÑƒÐ±Ð¸Ñ‚ÑŒ их вÑех. И вÑе, карманных денег не будет больше никогда.'}]};
this[147] = {'theme': 'ПЕРЕГОВОРЫ С ÐЕВЕРМОР', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'hydra', 'text': 'Ðе забудь поговорить Ñ Ð¼Ñром города Ðевермор.'}]};
this[148] = {'theme': 'ПЕРЕГОВОРЫ С ÐЕВЕРМОР', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && 2 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'hydra', 'text': 'Как прошли переговоры?'}, {'npc': 'grid', 'text': 'Похоже, Ñ‚ÐµÐ±Ñ Ð¿Ñ€Ð¾Ñтили.'}, {'npc': 'hydra', 'text': 'Пока вы ходили, родители и так уже Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¾Ñтили. Они не могут долго злитьÑÑ Ð½Ð° менÑ. Давайте Ñ Ñ‚ÐµÐ¿ÐµÑ€ÑŒ ÑпонÑирую вашу революцию.'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'give_exp', 'value': 4000}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'complete_quest', 'quest': 'feel_of_guilty'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'npc': 'grid', 'text': 'Давай. Будет круто.'}]};
this[149] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Кто вы, ÑÑÑ€?'}, {'npc': 'heraldio', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Геральдио. Я владелец замка, что находитÑÑ Ð¿Ñ€Ñмо в центре Ñтого города.'}, {'npc': 'grid', 'text': 'Я Ñмотрю, вы до Ð±ÐµÐ·Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ Ð±Ð¾Ð³Ð°Ñ‚Ñ‹...'}, {'npc': 'heraldio', 'text': 'СÑÑ€! Как верно вы подметили! Деньги – Ñто определенно зло.'}, {'npc': 'grid', 'text': 'Так избавьтеÑÑŒ от него, дайте их мне. Я могу боротьÑÑ Ñ ÑобÑтвенным злом.'}, {'npc': 'heraldio', 'text': 'СÑÑ€, Ñ Ð½Ð¸ при каких уÑловиÑÑ… не позволю вам так риÑковать Ñобой.'}]};
this[150] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_getcastlekey');
}, 'msg': [{'npc': 'grid', 'text': 'Скажите, благородный ÑÑÑ€, а не хотите ли вы помочь Ñвоим капиталом великому делу?'}, {'npc': 'heraldio', 'text': 'Какому же делу?'}, {'npc': 'grid', 'text': 'Мировой революции.'}, {'npc': 'heraldio', 'text': 'Мне не по душе Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸Ñ‡ÐµÑÐºÐ°Ñ ÑитуациÑ. Президент МиÑÑ‚ в моем понимании... глупа и амбициозна, как Ñнег поÑреди лета.'}, {'npc': 'grid', 'text': 'Отлично!'}, {'npc': 'heraldio', 'text': '...Только вот одно.'}, {'npc': 'grid', 'text': 'Так и знал...'}, {'npc': 'heraldio', 'text': 'Я потерÑл ключ от Ñвоего замка на равнинах ЛаÑÑ‚ Стенд. Ðайдите его, и тогда Ñ Ñразу же помогу вам.'}, {'npc': 'grid', 'text': 'Рвы не боитеÑÑŒ, что Ñ Ð²Ð¾Ð·ÑŒÐ¼Ñƒ ключ и обворую ваÑ?'}, {'npc': 'heraldio', 'text': 'РазумеетÑÑ, нет.'}, {'npc': 'heraldio', 'text': 'Мой баÑтион защищен не только обычным замком, но еще и Ñканером Ñетчатки глаза, отпечатков пальцев и универÑальной идентификации Ð±Ð¸Ð¾Ð¿Ð¾Ð»Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°.'}, {'npc': 'grid', 'text': 'Черт, зачем вам тогда ключ?'}, {'npc': 'heraldio', 'text': 'Без него не войти. Мне хотелоÑÑŒ Ñохранить Ñлемент античноÑти, поÑтому и Ñделал такую ÑиÑтему... правда, Ñ ÑƒÐ¶Ðµ не первый раз его терÑÑŽ.'}, {'npc': 'grid', 'text': 'ЯÑно, поброжу по равнинам ЛаÑÑ‚ Стенд, может, и найду чего.'}, {'event': 'set_flag', 'flag': 'q_getcastlekey', 'value': 1}, {'npc': 'heraldio', 'text': 'Будьте оÑторожнее! ЛаÑÑ‚ Стенд – крайне опаÑный район. Иначе Ñ Ð±Ñ‹ уже давно Ñходил туда Ñам.'}]};
this[151] = {'theme': 'ПОИСК КЛЮЧÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getcastlekey') && !(Core.Get()).game.hasQuestItem(14);
}, 'msg': [{'npc': 'grid', 'text': 'Я вÑе еще не нашел ключ от вашего замка на равнинах ЛаÑÑ‚ Стенд.'}, {'npc': 'heraldio', 'text': 'Тогда зачем вы мне об Ñтом говорите, ÑÑÑ€?'}]};
this[152] = {'theme': 'ПОИСК КЛЮЧР– ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getcastlekey') && (Core.Get()).game.hasQuestItem(14);
}, 'msg': [{'npc': 'grid', 'text': 'Вот ваш ключ!'}, {'event': 'remove_quest_item', 'item': 14}, {'event': 'give_exp', 'value': 5000}, {'npc': 'heraldio', 'text': 'Теперь Ñ Ñмогу, наконец, вернутьÑÑ Ð´Ð¾Ð¼Ð¾Ð¹. ПуÑÑ‚ÑŒ ваш лидер мне позвонит, мы ÑоглаÑуем ÑпонÑорÑтво.'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'set_flag', 'flag': 'q_getcastlekey', 'value': 2}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'npc': 'grid', 'text': 'СпаÑибо!'}]};
};
_global.TalkData2 = v1;
_global.TalkData2 extends TalkData3;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData2.prototype, null, 1);
}
#endinitclip
}
movieClip 1950 __Packages.TalkData {
#initclip
if (!_global.TalkData) {
var v1 = function () {
super();
this[-1] = {'theme': '[ ПОПРОЩÐТЬСЯ ]', 'msg': []};
this[0] = {'theme': 'СЛЕД ПРИШЕЛЬЦЕВ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_game_start');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_game_start'}, {'npc': 'natan', 'text': 'Грид! Ты один из наших лучших Ñотрудников и только тебе Ñ Ð¼Ð¾Ð³Ñƒ поручить Ñто задание...'}, {'npc': 'natan', 'text': 'Грид! Ты хоть Ñлушаешь менÑ?!'}, {'npc': 'grid', 'text': 'ПроÑти, Ðатан. Забыл вытащить наушники.'}, {'npc': 'natan', 'text': 'И как Ñ‚ÐµÐ±Ñ ÐµÑ‰Ðµ Ñ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ жизненными позициÑми еще пришельцы не убили?.. Ладно, Грид. Слушай менÑ. Ðа воÑтоке от нашей базы видели ÐЛО. ОтправлÑйÑÑ Ñ‚ÑƒÐ´Ð° и разузнай вÑе.'}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 0}, {'event': 'weaken_fog', 'x': 3, 'y': 1, 'w': 14, 'h': 1}, {'event': 'mark', 'area': 'ufo1'}, {'event': 'add_guide', 'area': 'ufo1'}, {'event': 'limit_map', 'tl_x': 0, 'tl_y': 0, 'br_x': 1140, 'br_y': 480}, {'npc': 'grid', 'text': 'Ок.'}]};
this[1] = {'theme': 'У.Ð’.И.Ф.Ж.', 'msg': [{'npc': 'natan', 'text': 'Ты Ñпрашиваешь Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¾ У.Ð’.И.Ф.Ж.?! Ты же Ñ Ð½Ð°Ð¼Ð¸ работаешь уже 5 лет. Странный Ñ‚Ñ‹ человек, Грид.'}, {'npc': 'grid', 'text': 'Повторение – мать учениÑ.'}, {'npc': 'natan', 'text': 'Ох... Ðапоминаю тебе, У.Ð’.И.Ф.Ж. (что означает «Убить Ð’Ñе Инопланетные Формы Жизни») занимаетÑÑ Ñ‚ÐµÐ¼, что убивает вÑех пришельцев без выÑÑÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… намерений и целей. ПоÑтому, увидев пришельца, Ñ Ð½Ð¸Ð¼ не надо разговаривать – ибо речи их лживы. Их надо Ñразу убивать.'}, {'npc': 'grid', 'text': 'Я знал Ñто.'}, {'npc': 'natan', 'text': 'Тогда зачем Ñпрашивал?!'}, {'npc': 'grid', 'text': 'Думал, может, нового чего Ñкажешь.'}]};
this[2] = {'theme': 'Ð ÐССКÐЗÐТЬ О ПРИШЕЛЬЦÐÐ¥', 'condition': function () {
return (Core.Get()).game.getFlag('q_raymondehelp') == 3 && !(Core.Get()).game.isFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Ðатан, Ñ‚Ñ‹ не поверишь...'}, {'npc': 'grid', 'text': '...'}, {'event': 'complete_quest', 'quest': 'ufo_visit'}, {'event': 'give_exp', 'value': 250}, {'npc': 'natan', 'text': 'Вот оно что! ÐевероÑтно! Мне нужно времÑ, чтобы ÑоÑтавить план. Между тем, мне пришла Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¼Ñ‹Ñль. Что, в общем-то, не удивительно, ведь Ñ Ð¶Ðµ гениален.'}, {'npc': 'natan', 'text': 'Мне нужен чаÑ, чтобы продумать вÑе детали. Приходи через чаÑ.'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 0}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 1}, {'event': 'start_timer', 'timer': 't_bigplantimer'}, {'npc': 'grid', 'text': 'Ðу вот... чем же еще мне целый Ñ‡Ð°Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°Ñ‚ÑŒÑÑ?!'}, {'npc': 'katenka', 'text': 'Пойдем гулÑÑ‚ÑŒ и иÑкать приключений.'}]};
this[3] = {'theme': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer < 18000;
}, 'msg': [{'npc': 'grid', 'text': 'Ðатан, ну что там Ñ Ð¿Ð»Ð°Ð½Ð¾Ð¼?!'}, {'npc': 'natan', 'text': 'Еще рано. Он пока в разработке. Приходи позже! Ðайди Ñебе занÑтие.'}]};
this[4] = {'theme': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer >= 18000;
}, 'msg': [{'npc': 'natan', 'text': 'Сколько можно Ñ‚ÐµÐ±Ñ Ð¶Ð´Ð°Ñ‚ÑŒ, Грид? Я уже давно придумал Ñвой великий план!'}, {'npc': 'grid', 'text': 'РаÑÑказывай же, Ðатан. Мы вÑе в величайшем возбуждении и хотим знать твой план.'}, {'npc': 'natan', 'text': 'Отчего-то Ñ Ñлышу нотки Ñарказма в твоих Ñловах.'}, {'npc': 'grid', 'text': 'Оттого, быть может, что они там еÑÑ‚ÑŒ?..'}, {'npc': 'natan', 'text': 'Ðу да не важно! Слушайте менÑ, верные мои Ñотрудники. Я вышел на Карла ВакуолÑ, великого ученого. Он предоÑтавит нам один ÑкземплÑÑ€ Ñвоего Ð¸Ð·Ð¾Ð±Ñ€ÐµÑ‚ÐµÐ½Ð¸Ñ â€“ темпорального телевизора, который показывает прошлое того района, куда уÑтановлен.'}, {'npc': 'grid', 'text': 'РеÑли пробратьÑÑ Ð½Ð¾Ñ‡ÑŒÑŽ в женÑкую душевую? Или уÑтановить в комнате, например, Ñвоей девушки?..'}, {'npc': 'natan', 'text': 'Ðто Ñлишком низкие цели Ð´Ð»Ñ Ð½Ð°Ñ. С Ñтим телевизором вы поÑетите 6 меÑÑ‚, где были обнаружены пришельцы. Полученное видео принеÑете мне. Думаю, Ñто поможет нам узнать их текущее меÑтоположение или другие важные Ñекреты.'}, {'npc': 'grid', 'text': 'Мне больше нравитÑÑ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚ Ñ Ð´ÑƒÑˆÐµÐ²Ñ‹Ð¼Ð¸.'}, {'npc': 'natan', 'text': 'ОтправлÑйтеÑÑŒ к Вакуолю за телевизором. Я отметил на вашей карте вÑе меÑта, где видели пришельцев. ДейÑтвуйте ÑоглаÑно моему великому плану.'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 2}, {'event': 'kill_timer', 'timer': 't_bigplantimer'}, {'event': 'mark', 'area': 'ufo2'}, {'event': 'mark', 'area': 'ufo3'}, {'event': 'mark', 'area': 'ufo4'}, {'event': 'mark', 'area': 'ufo5'}, {'event': 'mark', 'area': 'ufo6'}, {'event': 'add_guide', 'area': 'ufo2'}, {'event': 'add_guide', 'area': 'ufo3'}, {'event': 'add_guide', 'area': 'ufo4'}, {'event': 'add_guide', 'area': 'ufo5'}, {'event': 'add_guide', 'area': 'ufo6'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 1}, {'npc': 'grid', 'text': 'Ок.'}, {'npc': 'katenka', 'text': 'КÑтати, Грид. Я Ñ‚ÐµÐ±Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ покину – у Ð½Ð°Ñ Ñ ÐšÐµÐ¹ миÑÑÐ¸Ñ Ð² ГибÑон-Сити.'}, {'event': 'leave_team', 'npc': 1}, {'event': 'leave_team', 'npc': 2}, {'npc': 'grid', 'text': 'Да, припоминаю.'}]};
this[5] = {'theme': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐР– ИÐФОРМÐЦИЯ СОБРÐÐÐ', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.isFlag('q_ufotele6');
}, 'msg': [{'npc': 'grid', 'text': 'Ðатан, Ñ Ñобрал вÑÑŽ информацию.'}, {'event': 'remove_quest_item', 'item': 0}, {'event': 'remove_quest_item', 'item': 1}, {'event': 'remove_quest_item', 'item': 2}, {'event': 'remove_quest_item', 'item': 3}, {'event': 'remove_quest_item', 'item': 4}, {'event': 'remove_quest_item', 'item': 5}, {'event': 'remove_quest_item', 'item': 6}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 3}, {'event': 'start_timer', 'timer': 't_bigplantimer2'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 2}, {'npc': 'natan', 'text': 'Отлично! Дай мне времÑ, и Ñ Ð¿Ñ€Ð¾Ñмотрю ее.'}, {'npc': 'grid', 'text': 'Как?! ОпÑÑ‚ÑŒ ждать?!'}, {'npc': 'natan', 'text': 'Ðу вÑего каких-то полчаÑика. Ðайди Ñебе занÑтие. Ðто не так Ñложно.'}]};
this[6] = {'theme': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐÐ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer2 < 9000;
}, 'msg': [{'npc': 'grid', 'text': 'Ðатан, ну Ñ‚Ñ‹ поÑмотрел уже?'}, {'npc': 'natan', 'text': 'Я еще в процеÑÑе. ЕÑли Ñ‚Ñ‹ будешь мне мешать, Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не поÑмотрю.'}]};
this[7] = {'theme': 'ВЕЛИКИЙ ПЛÐÐ ÐÐТÐÐÐ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer2 >= 9000;
}, 'msg': [{'npc': 'natan', 'text': 'Итак, Ñ Ð²Ñе поÑмотрел и теперь вÑе знаю!'}, {'npc': 'grid', 'text': 'РаÑÑказывай.'}, {'npc': 'natan', 'text': 'По траекториÑм, заметным на видео, Ñ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶Ð¸Ð», где находитÑÑ Ñ‚Ð°Ð¹Ð½Ð°Ñ Ð±Ð°Ð·Ð° пришельцев. Их Ñ‚Ð°Ð¹Ð½Ð°Ñ Ð±Ð°Ð·Ð° – в КонÑком Море. ПрÑмо в Ñамом море, где-то под водой.'}, {'npc': 'natan', 'text': 'Кей и Катенька вернулиÑÑŒ Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ, и тоже пойдут Ñ Ñ‚Ð¾Ð±Ð¾Ð¹. ОтправлÑйтеÑÑŒ в город-порт и ÑнарÑдите ÑкÑпедицию в координаты, которые Ñ Ð²Ð°Ð¼ указал.'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 4}, {'event': 'kill_timer', 'timer': 't_bigplantimer2'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 3}, {'npc': 'key', 'text': 'Привет, Ðатан. Ðе поверишь, где мы были и что делали...'}, {'npc': 'natan', 'text': 'Ðу, вообще-то, Ñ Ð²Ñе видел.'}, {'event': 'join_team', 'npc': 1}, {'event': 'join_team', 'npc': 2}, {'npc': 'key', 'text': 'Ðу и зрÑ. Я интереÑно раÑÑказываю.'}]};
this[8] = {'theme': 'ÐЛО', 'condition': function () {
return !(Core.Get()).game.isFlag('v_ufo1visit');
}, 'msg': [{'event': 'set_flag', 'flag': 'v_ufo1visit'}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 1}, {'npc': 'grid', 'text': 'Что ж, похоже, что здеÑÑŒ дейÑтвительно было ÐЛО... Ð¿Ñ€Ð¾Ð¶Ð¶ÐµÐ½Ð½Ð°Ñ Ð·ÐµÐ¼Ð»Ñ, кольца на полÑÑ… и Ñледы недавней диÑкотеки говорÑÑ‚ об Ñтом.'}, {'npc': 'grid', 'text': 'ÐœÐµÐ½Ñ Ð²Ñегда интереÑовало, почему пришельцы так любÑÑ‚ уÑтраивать на нашей планете диÑкотеки. Ðо ÑпроÑить об Ñтом Ñ Ð¸Ñ… никогда не мог, ведь мы – УВИФЖ, организациÑ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ‚ÑÑ Ð±Ð¾Ñ€ÑŒÐ±Ð¾Ð¹ Ñ Ð½Ð¸Ð¼Ð¸ без выÑÑÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… намерений и целей.'}, {'npc': 'grid', 'text': 'Думаю, в ближайшей деревне должны что-то знать об Ñтих пришельцах.'}]};
this[9] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele1'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 1}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Пришельцы прилетели Ñюда, уÑтроили диÑкотеку, на которую прибежали жители деревни. По окончании диÑкотеки вмеÑте Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†Ð°Ð¼Ð¸ почему-то на летающую тарелку ушло пару жителей из деревни...'}]};
this[10] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[11] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele1') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele1_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[12] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele2'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 2}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Тарелка пришельцев оÑтановилаÑÑŒ здеÑÑŒ. Похоже, пришельцы предпринÑли попытку торговать хотдогами... пара жителей ВладÑÐ²Ð¸Ð»Ñ Ð¿Ð¾Ð¿Ñ€Ð¾Ð±Ð¾Ð²Ð°Ð»Ð¸ ÑоÑиÑки пришельцев... интереÑно, что Ñ Ð½Ð¸Ð¼Ð¸ поÑле Ñтого Ñтало...'}]};
this[13] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[14] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele2') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele2_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[15] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele3'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 3}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Ð’ Ñтих пшеничных полÑÑ… какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ð»Ð°ÑÑŒ тарелка пришельцев... Потом на тарелку проникли Кей и Катенька и разгромили ее.'}]};
this[16] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[17] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele3') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele3_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[18] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele4'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 4}, {'event': 'give_exp', 'value': 1000}, {'event': 'give_quest_item', 'item': 18}, {'npc': 'grid', 'text': 'Ð’ пуÑтыне пришельцы Ñнимали какое-то кино, ÑÑƒÐ´Ñ Ð¿Ð¾ наличию причудливых видеокамер и коÑтюмов. Жанр подобного кино вам непонÑтен, поÑкольку вÑе Ñъемки они о чем-то беÑедовали, ÑÐ¾Ð²ÐµÑ€ÑˆÐ°Ñ Ð¿Ð°Ñ„Ð¾Ñные жеÑÑ‚Ñ‹.'}]};
this[19] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[20] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele4') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele4_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[21] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele5'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 5}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'ЗдеÑÑŒ пришельцы также пыталиÑÑŒ провеÑти диÑкотеку, однако никто не пришел – видимо, меÑто было выбрано не очень удачно.'}]};
this[22] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[23] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele5') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele5_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[24] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele6') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele6'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ладно, уÑтановим темпоральный телевизор и поÑмотрим шоу...'}, {'event': 'give_quest_item', 'item': 6}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'ЗдеÑÑŒ пришельцы, видимо, выÑадилиÑÑŒ Ñпонтанно – из тарелки вышло двое пришельцев, они подралиÑÑŒ и вернулиÑÑŒ обратно.'}]};
this[25] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele6') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ðто меÑто, где были обнаружены пришельцы. Однако без темпорального телевизора Ñ Ð·Ð´ÐµÑÑŒ ничего не могу предпринÑÑ‚ÑŒ.'}]};
this[26] = {'theme': 'ТЕМПОРÐЛЬÐЫЙ ТЕЛЕВИЗОР', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele6') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele6_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Я уже получил здеÑÑŒ необходимую информацию.'}]};
this[27] = {'theme': 'ÐЛО', 'condition': function () {
return (Core.Get()).game.isFlag('v_ufo1visit');
}, 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ тут недавно ничего Ñтранного не видели?'}, {'npc': 'halisted', 'text': 'Я? Ðет, вроде не видел. Рчто, например, Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ был видеть?'}, {'npc': 'grid', 'text': 'Ðапример, летающую тарелку Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†Ð°Ð¼Ð¸.'}, {'npc': 'halisted', 'text': 'Ð, такую видел.'}, {'npc': 'grid', 'text': 'И вам Ñто не показалоÑÑŒ Ñтранным?'}, {'npc': 'halisted', 'text': 'Да как-то нет.'}, {'npc': 'grid', 'text': '...'}, {'npc': 'grid', 'text': 'Ладно. Ðе видели ли вы, куда отправилаÑÑŒ потом Ñта тарелка?'}, {'npc': 'halisted', 'text': 'Ðет. Ðо один из пришельцев говорил...'}, {'npc': 'grid', 'text': 'Один из пришельцев?!'}, {'npc': 'halisted', 'text': 'Ðу да. Мы вÑе пошли на диÑкотеку, что они уÑтроили. Там один из них Ñказал мне, что они направлÑÑŽÑ‚ÑÑ Ð² район города Интегра.'}, {'event': 'give_exp', 'value': 50, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 2, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'limit_map', 'tl_x': 0, 'tl_y': 0, 'br_x': 1560, 'br_y': 480, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'set_flag', 'flag': 'q_go2integra', 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'npc': 'grid', 'text': 'СпаÑибо за информацию, отправлюÑÑŒ туда.'}]};
this[28] = {'theme': 'ПРОПÐВШИЕ ЖИТЕЛИ', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele1');
}, 'msg': [{'npc': 'grid', 'text': 'Рвы не заметили, что из деревни пропало неÑколько жителей?'}, {'npc': 'halisted', 'text': 'КÑтати, да. Ума не приложу, куда они делиÑÑŒ.'}, {'npc': 'grid', 'text': 'Во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ диÑкотеки Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†Ð°Ð¼Ð¸ их заманили на тарелку пришельцев и увезли.'}, {'event': 'set_flag', 'flag': 'q_findnikkyvillagers', 'condition': function () {
return !(Core.Get()).game.isFlag('q_findnikkyvillagers');
}}, {'npc': 'halisted', 'text': 'Вот так дела ! Ðу, еÑли вдруг найдете их, дайте мне знать.'}]};
this[29] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'event': 'trade', 'npc': 'halisted'}]};
this[30] = {'theme': 'Ð ÐБОТÐ', 'condition': function () {
return (Core.Get()).game.isFlag('q_ho_job') && !(Core.Get()).game.isFlag('v_astralflower');
}, 'msg': [{'npc': 'grid', 'text': 'ЕÑÑ‚ÑŒ ли работа Ð´Ð»Ñ Ð¼ÐµÐ½Ñ?'}, {'npc': 'ho', 'text': 'Работа? Тут вÑегда полно работы. Ðапример, мне нужны Ñемена моих чудо-цветов!'}, {'npc': 'grid', 'text': 'Где же их брать-то?'}, {'npc': 'ho', 'text': 'Побродите в окреÑтноÑÑ‚ÑÑ… фермы, они обычно выпадают из различных врагов. Добудете 10 ÑемÑн, возвращайтеÑÑŒ.'}, {'event': 'set_flag', 'flag': 'v_astralflower', 'value': 1}, {'event': 'add_quest', 'quest': 'astral_flowers', 'stage': 0}, {'npc': 'grid', 'text': 'Ðу хорошо...'}]};
this[31] = {'theme': 'СЕМЕÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_astralflower') && !(Core.Get()).game.hasQuestItems(7, 10);
}, 'msg': [{'npc': 'grid', 'text': '...\nЧто вы там говорите нужно?..'}, {'npc': 'ho', 'text': '10 аÑтральных ÑемÑн! Что тут Ñложного?'}, {'npc': 'grid', 'text': 'Ðичего. Скоро будет.'}]};
this[32] = {'theme': 'СЕМЕÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_astralflower') && (Core.Get()).game.hasQuestItems(7, 10);
}, 'msg': [{'event': 'remove_quest_item', 'item': 7}, {'event': 'give_money', 'value': 1000}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'v_astralflower', 'value': 2}, {'event': 'complete_quest', 'quest': 'astral_flowers'}, {'npc': 'ho', 'text': 'Отлично! 10 аÑтральных ÑемÑн! Возьмите в награду неÑколько аÑтральных цветков...'}]};
this[33] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ð’Ñ‹ кто такой и чем занимаетеÑÑŒ?'}, {'npc': 'ho', 'text': 'Я-то? Я - фермер. Выращиваю здеÑÑŒ волшебные цветы!'}, {'npc': 'grid', 'text': 'Волшебные? Что же в них такого волшебного?'}, {'event': 'set_flag', 'flag': 'q_ho_job'}, {'npc': 'ho', 'text': 'О, они унеÑут Ñ‚ÐµÐ±Ñ Ð² волшебную Ñтрану, где еÑÑ‚ÑŒ феи, единороги и нет индуÑтриального общеÑтва и Ñтих тупых киборгов!'}]};
this[34] = {'theme': 'ОБМÐÐ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gotosummerg') && (Core.Get()).game.isFlag('q_sg1') && (Core.Get()).game.isFlag('q_sg2') && (Core.Get()).game.isFlag('q_sg3');
}, 'msg': [{'npc': 'grid', 'text': 'Мне кажетÑÑ, или вÑе в Ñтом городке как-то Ñтранно одеваютÑÑ?'}, {'npc': 'katenka', 'text': 'По мне, так нормально.'}, {'npc': 'craven', 'text': 'Смотрите! Ð’ окне дома виден ÑвÑзанный Карл! У него во рту клÑп!'}, {'npc': 'carl', 'text': 'Ðœ-м! Ðœ-м-м м-м, м-м! Ðœ-Ðœ!'}, {'npc': 'alien1', 'text': 'Черт! ÐÐ°Ñ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶Ð¸Ð»Ð¸! Снимаем личины!'}, {'npc': 'grid', 'text': 'Пришельцы!'}, {'npc': 'alien1a', 'text': 'Позвольте, Ñ Ð²Ñе вам объÑÑню...'}, {'event': 'set_flag', 'flag': 'q_gotosummerg', 'value': 2}, {'event': 'set_area_flag', 'flag': 'q_sg_battle'}, {'npc': 'katenka', 'text': 'Мочи!'}, {'event': 'battle', 'band': 'sg_aliens'}]};
this[35] = {'theme': 'СТРÐÐÐОСТИ', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg1');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg1'}, {'npc': 'grid', 'text': 'Черт, он Ð¼ÐµÐ½Ñ Ð¿ÑƒÐ³Ð°ÐµÑ‚. Ðе хочу Ñ Ð½Ð¸Ð¼ общатьÑÑ...'}]};
this[36] = {'theme': 'СТРÐÐÐОСТИ', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg2');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg2'}, {'npc': 'grid', 'text': 'Ðе надо так поÑтупать! Лучше выучите Ñзык. Понаехали тут иноÑтранцы...'}, {'npc': 'alien2', 'text': 'Ðет. Мы – меÑтные. Мы жить Ñтрана Ñта давно. 250 лет!'}, {'npc': 'grid', 'text': 'Как Ñкажете! Побегу-ка Ñ Ð¾Ñ‚Ñюда!..'}]};
this[37] = {'theme': 'СТРÐÐÐОСТИ', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg3');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg3'}, {'npc': 'grid', 'text': 'Какой-то ненормальный городок...'}]};
this[38] = {'theme': 'КÐРЛ Ð’ÐКУОЛЬ', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_gotosummerg') && 1 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isAreaFlag('q_sg_battle');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg3'}, {'npc': 'craven', 'text': 'Дай-ка Ñ Ñ‚ÐµÐ±Ñ Ñ€Ð°Ð·Ð²Ñжу, Карл...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': 'Ох... наконец-таки. Ðти Ñтранные ÑущеÑтва пыталиÑÑŒ объÑÑнить мне, что наука в жизни не главное и надо уметь веÑелитьÑÑ... пыталиÑÑŒ заÑтавить танцевать, еÑÑ‚ÑŒ вредную пищу и знакомитьÑÑ Ñ Ð¶ÐµÐ½Ñ‰Ð¸Ð½Ð°Ð¼Ð¸... Я чуть не поÑедел.'}, {'event': 'remove_quest_item', 'item': 22}, {'event': 'remove_quest_item', 'item': 23}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 2}, {'event': 'leave_team', 'npc': 8}, {'npc': 'craven', 'text': 'Я провожу Ð²Ð°Ñ Ð² Раймонд, а оттуда полечу на нашу базу. Грид, Ñ‚Ñ‹ отправлÑйÑÑ Ðº Лине. Я буду ждать Ð²Ð°Ñ Ñ‚Ð°Ð¼. И... ÑпаÑибо за помощь!'}]};
this[39] = {'theme': 'ИÐТЕГРÐ', 'condition': function () {
return (Core.Get()).game.isFlag('q_go2integra') && !(Core.Get()).game.isFlag('integra_noone');
}, 'msg': [{'event': 'set_flag', 'flag': 'integra_noone'}, {'npc': 'grid', 'text': 'ÐевероÑтно! Ð’ городе нет ни единой души! Похоже, вÑе куда-то иÑчезли... Ñпорим, к Ñтому имеют отношение пришельцы!..'}, {'npc': 'katenka', 'text': 'Я тоже так думаю. ХотÑ, возможно, дело в атмоÑферном давлении.'}, {'npc': 'grid', 'text': 'Ðеужели Ñто Ð¼Ð¾Ñ Ñоратница по У.Ð’.И.Ф.Ж., Катенька?'}, {'npc': 'katenka', 'text': 'Да, во вÑÑком Ñлучае, Ñто на Ð¼ÐµÐ½Ñ Ð¿Ð¾Ñ…Ð¾Ð¶Ðµ!'}, {'npc': 'grid', 'text': '...Ты как обычно очень Ñтранно говоришь...'}, {'npc': 'grid', 'text': 'Ð’ любом Ñлучае, что Ñ‚Ñ‹ здеÑÑŒ делаешь?'}, {'npc': 'katenka', 'text': 'Я хотела прикупить здеÑÑŒ парочку новых девайÑов.'}, {'npc': 'grid', 'text': 'ДевайÑов?'}, {'npc': 'katenka', 'text': 'Ðу да, уÑтройÑтв, которые ÑкипируютÑÑ, чтобы получить новые возможноÑти или улучшить боевые параметры... Ðо не похоже, чтобы кто-то мог мне что-то продать здеÑÑŒ – в виду отÑутÑÑ‚Ð²Ð¸Ñ Ð·Ð´ÐµÑÑŒ кого-либо.'}, {'npc': 'grid', 'text': 'Хм...'}, {'event': 'give_money', 'value': 50}, {'npc': 'katenka', 'text': 'Ðехорошо воровать!'}, {'npc': 'grid', 'text': 'Ðе похоже, чтобы кто возражал. Думаю, имеет ÑмыÑл доложить Ðатану в У.Ð’.И.Ф.Ж.'}, {'event': 'give_exp', 'value': 100}, {'event': 'join_team', 'npc': 2}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 3}, {'event': 'set_flag', 'flag': 'v_kaufo_plot', 'value': 1}, {'event': 'set_flag', 'flag': 'btl_int_meta'}, {'npc': 'katenka', 'text': 'Я Ñ Ñ‚Ð¾Ð±Ð¾Ð¹.'}]};
this[40] = {'theme': 'СИД', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_waitforalien');
}, 'msg': [{'npc': 'craven', 'text': 'Грид! Я везде иÑкал тебÑ!'}, {'npc': 'grid', 'text': 'Что ÑлучилоÑÑŒ?'}, {'npc': 'craven', 'text': 'Чертов пÑих по имени Сид убил Лину и захватил контроль над Мета-Воинами...'}, {'npc': 'craven', 'text': 'Он пришел, как обычный техник, предложил вживить вÑем чипы Ñилы, а оказалоÑÑŒ Ñто было уÑтройÑтво Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ñ€Ð°Ð·ÑƒÐ¼Ð°!'}, {'event': 'fail_quest', 'quest': 'meta_uprise', 'condition': function () {
return (Core.Get()).game.inQuest('meta_uprise');
}}, {'event': 'reset_flag', 'flag': 'q_metatechnicans'}, {'event': 'reset_flag', 'flag': 'q_getchips'}, {'event': 'reset_flag', 'flag': 'q_get3parts'}, {'event': 'remove_quest_item', 'item': 24, 'condition': function () {
return (Core.Get()).game.hasQuestItem(24);
}}, {'event': 'remove_quest_item', 'item': 25, 'condition': function () {
return (Core.Get()).game.hasQuestItem(25);
}}, {'event': 'remove_quest_item', 'item': 26, 'condition': function () {
return (Core.Get()).game.hasQuestItem(26);
}}, {'event': 'remove_quest_item', 'item': 27, 'condition': function () {
return (Core.Get()).game.hasQuestItem(27);
}}, {'event': 'remove_quest_item', 'item': 8, 'condition': function () {
return (Core.Get()).game.hasQuestItem(8);
}}, {'event': 'remove_quest_item', 'item': 15, 'condition': function () {
return (Core.Get()).game.hasQuestItem(15);
}}, {'event': 'remove_quest_item', 'item': 19, 'condition': function () {
return (Core.Get()).game.hasQuestItem(19);
}}, {'event': 'reset_flag', 'flag': 'q_allycalipso'}, {'event': 'reset_flag', 'flag': 'q_getinvestor'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'reset_flag', 'flag': 'q_startrevolution'}, {'npc': 'grid', 'text': 'Мы уничтожим Сида.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'join_team', 'npc': 8}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 2}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 2}, {'npc': 'craven', 'text': 'СпаÑибо!'}]};
this[41] = {'theme': 'ЧИП 707', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(8);
}, 'msg': [{'npc': 'grid', 'text': 'Мне нужен чип 707. Что-нибудь знаешь?'}, {'npc': 'clod', 'text': 'Конечно, вот. Бери. У Ð½Ð°Ñ Ñ‚ÑƒÑ‚ много их, а девать некуда.'}, {'event': 'give_quest_item', 'item': 8}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'СпаÑибо.'}]};
this[42] = {'theme': 'ОТКУДРВЫ ВЗЯЛИСЬ?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_clod');
}, 'msg': [{'npc': 'grid', 'text': 'Я какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð·Ð°Ð´ был в Ñтом городе... ЗдеÑÑŒ не было ни одного человека! Ð’ чем тут дело?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_clod'}, {'npc': 'clod', 'text': 'Мы гоÑтили у пришельцев на их тарелке. ГотовÑÑ‚ у них не очень хорошо, да и Ñ Ð½Ð°ÑˆÐ¸Ð¼ Ñзыком у них проблемы... но в целом довольно приÑтные люди. Только пришельцы.'}]};
this[43] = {'theme': 'ПОРТÐЛ Ð’ БÐЗУ ПРИШЕЛЬЦЕВ', 'condition': function () {
return 0 < (Core.Get()).game.getFlag('q_waitforalien');
}, 'msg': [{'npc': 'grid', 'text': 'Мне нужно попаÑÑ‚ÑŒ на базу пришельцев. ÐœÐµÐ½Ñ Ð¿Ñ€Ð¸Ñлал ÑÑÑ€ ÐФ.'}, {'npc': 'clod', 'text': 'Ок!'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[44] = {'theme': 'ОТКУДРВЫ ВЗЯЛИСЬ?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_jake');
}, 'msg': [{'npc': 'grid', 'text': 'Я какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð·Ð°Ð´ был в Ñтом городе... ЗдеÑÑŒ не было ни одного человека! Ð’ чем тут дело?'}, {'npc': 'jake', 'text': 'Та Ð½Ð°Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†Ñ‹ похитили. Интегра – город математиков и Ñтроителей. Они учили наÑ, как оптимизировать технологии, чтобы увеличить производительноÑÑ‚ÑŒ.'}, {'npc': 'jake', 'text': 'Правда, в мое отÑутÑтвие кто-то Ñпер у Ð¼ÐµÐ½Ñ â‚¬50. Обидно!'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_jake'}, {'npc': 'grid', 'text': 'ПонÑÑ‚Ð¸Ñ Ð½Ðµ имею, кто Ñто мог быть.'}]};
this[45] = {'theme': 'ТОРГОВЛЯ', 'msg': [{'event': 'trade', 'npc': 'jake'}]};
this[46] = {'theme': 'ОТКУДРВЫ ВЗЯЛИСЬ?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_alexa');
}, 'msg': [{'npc': 'grid', 'text': 'Я какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð·Ð°Ð´ был в Ñтом городе... ЗдеÑÑŒ не было ни одного человека! Ð’ чем тут дело?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_alexa'}, {'npc': 'alexa', 'text': 'ÐÐ°Ñ Ñ‚ÑƒÑ‚ немного похитили пришельцы. ЧеÑтно Ñкажу, их кинематограф не на уровне, но вÑе равно ÑпаÑибо, что развлекали наÑ.'}]};
this[47] = {'theme': 'ОТКУДРВЫ ВЗЯЛИСЬ?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_lindwid');
}, 'msg': [{'npc': 'grid', 'text': 'Я какое-то Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð·Ð°Ð´ был в Ñтом городе... ЗдеÑÑŒ не было ни одного человека! Ð’ чем тут дело?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_lindwid'}, {'npc': 'lindwid', 'text': 'Да Ñ Ð¿Ð¾Ñ‡Ñ‚Ð¸ и не заметила. Я когда занимаюÑÑŒ проектированием, вообще ничего не замечаю вокруг. Ðо говорÑÑ‚, Ð½Ð°Ñ Ð¿Ð¾Ñ…Ð¸Ñ‰Ð°Ð»Ð¸ пришельцы. Возможно, Ñто один из них помог мне Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð¼ альфатауÑÑ€. Ðо Ñ Ð½Ðµ Ñмотрела, кто.'}]};
this[48] = {'theme': 'ЧЕМ ТЫ ЗÐÐИМÐЕШЬСЯ?', 'msg': [{'npc': 'grid', 'text': 'Ðто чем же Ñ‚Ñ‹ занÑта таким?'}, {'npc': 'lindwid', 'text': 'Я проектирую зданиÑ, моÑÑ‚Ñ‹, вÑе, что угодно. Я архитектор выÑшего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð›Ð¸Ð½Ð´Ð²Ð¸Ð´ БелаÑÑ‚Ñ€.'}]};
this[49] = {'theme': 'МЕТÐ-ВОИÐЫ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_meta_intro');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_integra_people'}, {'npc': 'micrasm', 'text': 'Добро пожаловать, жалкие людишки.'}, {'npc': 'vladimir', 'text': 'Мик, хватит пафоÑа. Зачем вы опÑÑ‚ÑŒ поймали Ñтранников?'}, {'npc': 'micrasm', 'text': 'Приказ Лидера. Они выглÑдели подозрительно... к тому же, воровали деньги.'}, {'event': 'set_flag', 'flag': 'q_meta_intro', 'value': 1}, {'npc': 'katenka', 'text': 'Вот видишь! Я же говорила, нехорошо Ñто!'}]};
this[50] = {'theme': 'МЕТÐ-ВОИÐЫ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_meta_intro');
}, 'msg': [{'npc': 'leena', 'text': 'ЗдравÑтвуйте.'}, {'npc': 'grid', 'text': 'Кто же Ñта Ð¼Ð¸Ð»Ð°Ñ Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ°Ñ Ð´ÐµÐ²Ð¾Ñ‡ÐºÐ° в больших очках и майке Ñ Ñ‡ÐµÑ€ÐµÐ¿Ð¾Ð¼?'}, {'npc': 'micrasm', 'text': 'ÐичтожеÑтва! Как Ñмеете вы Ñтоль приземлено отзыватьÑÑ Ð¾ нашем лидере!'}, {'npc': 'leena', 'text': 'Ð’Ñе в порÑдке, Мик. Они не Ñказали ничего обидного, проÑто озвучили некоторые очевидные вÑем факты. ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñ… винить в их глупоÑти.'}, {'npc': 'micrasm', 'text': 'ПроÑтите, Лидер!'}, {'npc': 'leena', 'text': 'Официальное приветÑтвие: Ñ - Лина БренниÑ, Ð¼Ð¾Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ÑÑ‚ÑŒ - лидер неформальной военизированной организации извеÑтной как «Мета-Воины». ПредоÑтавьте мне личную информацию.'}, {'npc': 'katenka', 'text': 'Чего?..'}, {'npc': 'grid', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Грид Ð’Ñйк, Ñо мной Кей Макфилд и Екатерина ÐтревиÑ. Мы наемные воины.'}, {'npc': 'leena', 'text': 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñта. Хотите ли вы, чтобы Ð²Ð°Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°Ð»Ð¸ полным именем и фамилией, либо только именем?'}, {'npc': 'grid', 'text': 'Ðазывай Ð¼ÐµÐ½Ñ Â«ÐºÑ€Ð¾ÑˆÐºÐ°Â», детка.'}, {'npc': 'leena', 'text': 'Грид Ð’Ñйк теперь извеÑтен как крошка-детка. Крошка-детка, цель вашего Ð¿Ñ€ÐµÐ±Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð² городе Интегра?'}, {'npc': 'katenka', 'text': 'Что Ñ Ð½ÐµÐ¹ такое?'}, {'npc': 'micrasm', 'text': 'Говори Ñ Ð¿Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸ÐµÐ¼! Лидер, когда училаÑÑŒ в школе, имплантировала Ñебе в мозг неÑколько нанопроцеÑÑоров.'}, {'npc': 'grid', 'text': 'Так вот, про цели. Мы обнаружили, что город Интегра пуÑÑ‚. Ðто не могло не привлечь наÑ.'}, {'npc': 'leena', 'text': 'Значит, вы - мародеры?'}, {'npc': 'grid', 'text': 'Да нет же! Мы что-то воде чаÑтных Ñыщиков.'}, {'npc': 'leena', 'text': 'Из вашего Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñледует, что вы врете. Ðо Ð¼ÐµÐ½Ñ Ñто ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ должно волновать. Ðам нужны руки...'}, {'npc': 'grid', 'text': 'Ð, не, Ñвои не отдам!'}, {'npc': 'leena', 'text': 'Уточнение: нам нужны люди, умеющие работать руками Ñ Ð¾Ñ€ÑƒÐ¶Ð¸ÐµÐ¼. Я Ñделаю вам предложение, от которого вы не Ñможете отказатьÑÑ. Буквально.'}, {'npc': 'leena', 'text': 'Стоит заметить, что к вашим ногам привÑзан датчик движениÑ. При попытке ÑнÑÑ‚ÑŒ датчик или покинуть зону его дейÑтвиÑ, он взорветÑÑ. ПоÑтому Ñтрою предположение, что вы ужаÑно желаете помочь нашему делу.'}, {'npc': 'grid', 'text': 'Да, Ñ‚Ñ‹ умеешь мотивировать!'}, {'event': 'set_flag', 'flag': 'q_meta_intro', 'value': 2}, {'event': 'set_flag', 'flag': 'v_gotooasis', 'value': 1}, {'event': 'limit_map', 'tl_x': 1140, 'tl_y': 0, 'br_x': 2400, 'br_y': 600}, {'npc': 'leena', 'text': 'Как будете готовы выполнить задание, Ñообщите мне.'}]};
this[51] = {'theme': 'СИД', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.getFlag('battle_cid');
}, 'msg': [{'npc': 'grid', 'text': 'Ðто Ñ‚Ñ‹ – Сид?!'}, {'npc': 'cid', 'text': 'Ðтот идентификатор характерен Ð´Ð»Ñ Ð¼ÐµÐ½Ñ. Ваше дело ко мне?'}, {'npc': 'grid', 'text': 'Я пришел мÑтить за Лину!'}, {'npc': 'cid', 'text': 'ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñ„Ñ€Ð°Ð·Ð°. Верный вариант: «Я пришел попытатьÑÑ Ð¾Ñ‚Ð¾Ð¼Ñтить за Лину». Также подойдет вариант «Я пришел за верной Ñмертью»...'}, {'event': 'set_flag', 'flag': 'q_afterbattle_cid'}, {'event': 'set_flag', 'flag': 'battle_cid'}, {'event': 'battle', 'band': 'cid'}]};
this[52] = {'theme': 'ПРИШЕЛЬЦЫ', 'condition': function () {
return (Core.Get()).game.isFlag('q_afterbattle_cid');
}, 'msg': [{'npc': 'craven', 'text': 'СпаÑибо, Грид... Ñ‚Ñ‹ помог мне... но от Ñтого не легче. Мета-Воинов больше нет, Лины нет... Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ñл Ñвои цели в жизни.'}, {'npc': 'grid', 'text': 'Пойдем Ñ Ð½Ð°Ð¼Ð¸.'}, {'npc': 'craven', 'text': 'Пожалуй, Ñто лучшее, что Ñ Ð¼Ð¾Ð³Ñƒ Ñделать...'}, {'npc': 'grid', 'text': 'Что Ñто за звук?.. КажетÑÑ, Ñто Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ»ÑŒÑ†ÐµÐ²...'}, {'npc': 'sir_f', 'text': 'Грид, как можно Ñкорее возвращайÑÑ Ð½Ð° нашу базу. У.Ð’.И.Ф.Ж. обнаружили наше меÑтоположение, и ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾ вÑей базе кипит Ñражение.'}, {'npc': 'grid', 'text': 'Хорошо. Скоро буду.'}, {'event': 'give_exp', 'value': 10000}, {'event': 'set_flag', 'flag': 'q_afterbattle_cid', 'value': 0}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 3}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 3}, {'npc': 'grid', 'text': 'Портал находилÑÑ Ð² городе Интегра...'}]};
this[53] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'ЗдравÑтвуйте. Кто же вы, товарищ?'}, {'npc': 'vladimir', 'text': 'ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Владимир. Я – техник Мета-Воинов. Ðто должноÑÑ‚ÑŒ не из легких, ведь Мета-Воины требуют Ñамых выÑоких технологий.'}]};
this[54] = {'theme': 'ВЛÐДСВИЛЬ', 'condition': function () {
return (Core.Get()).game.isFlag('q_vladsville_visited');
}, 'msg': [{'npc': 'grid', 'text': 'Слушай, твое Ð¸Ð¼Ñ Ð’Ð»Ð°Ð´Ð¸Ð¼Ð¸Ñ€... Ñ‚Ñ‹ Ñлучаем не из ВладзвилÑ?'}, {'npc': 'vladimir', 'text': 'Да, Ñ Ñбежал оттуда. Мне там не нравитÑÑ. Ð’Ñе какие-то нетехничные ÑовÑем. И опÑÑ‚ÑŒ же, Ñта Ð¶ÑƒÑ‚ÐºÐ°Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾ÑÑ‚ÑŒ Ñ Ð±ÐµÑконечными Владами...'}, {'npc': 'vladimir', 'text': 'Ð’ общем, Ñ Ñ€ÐµÑˆÐ¸Ð» быть одним Владимиром в большом мире, чем очередным Владом маленькой деревни.'}]};
this[55] = {'theme': 'ТОРГОВЛЯ', 'condition': function () {
return (Core.Get()).game.isFlag('v_metafight_ally');
}, 'msg': [{'event': 'trade', 'npc': 'vladimir'}]};
this[56] = {'theme': 'МЕТÐ-ВОИÐЫ', 'msg': [{'npc': 'grid', 'text': 'РаÑÑкажи мне о Мета-Воинах.'}, {'npc': 'leena', 'text': 'ÐÐµÑ„Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐœÐµÑ‚Ð°-Воины Ñтавит Ñвоей целью проведение мировой революции Ñ Ñ†ÐµÐ»ÑŒÑŽ ÑпаÑти медленно загнивающее от ÑобÑтвенного невежеÑтва общеÑтво и уÑтановить «влаÑÑ‚ÑŒ умных» вмеÑто «влаÑти удачливых» или «влаÑти Ñильных».'}, {'npc': 'grid', 'text': 'Ðичего так Ñебе цели.'}, {'npc': 'leena', 'text': 'Мы также активно поддерживаем модификацию человечеÑких тел Ñверхточными технологиÑми. Только когда человечеÑкие Ñмоции контролируютÑÑ ÐºÐ¸Ð±ÐµÑ€-чипами, человек Ñможет дейÑтвительно чего-то добитьÑÑ.'}]};
this[57] = {'theme': 'ЗÐДÐÐИЕ', 'condition': function () {
return (Core.Get()).game.isFlag('v_gotooasis');
}, 'msg': [{'npc': 'grid', 'text': 'Ðу что там за задание? Рто Ñти ваши датчики Ð¼ÐµÐ½Ñ Ð½ÐµÑ€Ð²Ð¸Ñ€ÑƒÑŽÑ‚.'}, {'npc': 'leena', 'text': 'Ðа Ñеверо-воÑтоке от города еÑÑ‚ÑŒ ОазиÑ. Ðто Ð²Ð°Ð¶Ð½Ð°Ñ ÑтратегичеÑÐºÐ°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° Ð´Ð»Ñ ÐœÐµÑ‚Ð°-Воинов. Так что отправлÑйтеÑÑŒ туда Ñ ÐšÑ€ÐµÐ¹Ð²ÐµÐ½Ð¾Ð¼ Ñ Ð´Ð¸Ð¿Ð»Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой миÑÑией.'}, {'npc': 'grid', 'text': 'Крейвен – Ñто еще кто?'}, {'npc': 'craven', 'text': 'Крейвен – Ñто еще Ñ.'}, {'npc': 'grid', 'text': 'ÐÑ… вот оно что. Летун.'}, {'npc': 'leena', 'text': 'Крейвен модифицирован кибер-крыльÑми. Ðто дает ему преимущеÑтво в бою.'}, {'event': 'join_team', 'npc': 8}, {'event': 'set_flag', 'flag': 'v_gotooasis', 'value': 0}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_oasis', 'stage': 0}, {'npc': 'grid', 'text': 'Что ж, Крейвен, пойдем в Ñтот ОазиÑ.'}]};
this[58] = {'theme': 'ОÐЗИС', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'leena', 'text': 'Готово?'}, {'npc': 'grid', 'text': 'Ðет!'}, {'npc': 'leena', 'text': 'Причина?'}, {'npc': 'grid', 'text': 'Я забыл, что надо Ñделать.'}, {'npc': 'leena', 'text': 'ОтправлÑйÑÑ Ð² ÐžÐ°Ð·Ð¸Ñ Ð¸ убеди их Ñотрудничать Ñ ÐœÐµÑ‚Ð°-Воинами.'}, {'npc': 'grid', 'text': 'Точно! СпаÑибо.'}]};
this[59] = {'theme': 'ОÐЗИС - ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'leena', 'text': 'Готово?'}, {'npc': 'craven', 'text': 'Да. Мы заключили Ñоюз в обмен на уÑтановку им Интернет-вышки и дополнительной подачи воды из КонÑкого морÑ.'}, {'event': 'complete_quest', 'quest': 'meta_oasis'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 3}, {'npc': 'leena', 'text': 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ. Крошка-детка, твое Ñледующее задание...'}, {'npc': 'grid', 'text': 'Стоп! Какое задание?! Мы же уже выполнили одно! ОтпуÑти наÑ!'}, {'npc': 'leena', 'text': 'Ðто невозможно. Ðам вÑе еще нужна помощь, а у Ð²Ð°Ñ Ð½Ð° ногах вÑе еще находÑÑ‚ÑÑ Ð´Ð°Ñ‚Ñ‡Ð¸ÐºÐ¸. Я думаю, Ñто вполне убедительно. И, как факт, неоÑпоримо.'}, {'npc': 'grid', 'text': 'Сильные диктуют влаÑÑ‚ÑŒ... не против Ñтого ли ваше движение?..'}, {'npc': 'leena', 'text': 'Клин клином вышибают, - Ð½Ð°Ñ€Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾Ð³Ð¾Ð²Ð¾Ñ€ÐºÐ°.'}, {'npc': 'grid', 'text': 'Что там за задание?'}, {'npc': 'leena', 'text': 'Ð’ Ñоюзной Мета-Воинам деревушке Раймонд что-то ÑлучилоÑÑŒ. Мы крайне дорожим ими, поÑкольку Раймонд – меÑто жительÑтва умнейших ученых Ñтой Ñтраны. ОтправлÑйтеÑÑŒ туда, выÑÑните, в чем дело, и помогите им.'}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 0}, {'npc': 'grid', 'text': 'ЯÑно...'}]};
this[60] = {'theme': 'Ð ÐЙМОÐД ВИЛЬ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'leena', 'text': 'Готово?'}, {'npc': 'grid', 'text': 'Ðет!'}, {'npc': 'leena', 'text': 'Причина?'}, {'npc': 'grid', 'text': 'Я забыл, что надо Ñделать.'}, {'npc': 'leena', 'text': 'ОтправлÑйÑÑ Ð² деревню Раймонд, выÑÑни, Ñ Ñ‡ÐµÐ¼ им нужно помочь и помоги им.'}, {'npc': 'grid', 'text': 'Точно! СпаÑибо.'}]};
this[61] = {'theme': 'Ð ÐЙМОÐД ВИЛЬ - ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'leena', 'text': 'Крейвен уже раÑÑказал мне, что вы уÑпешно выполнили задание.'}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 3}, {'event': 'give_exp', 'value': 5000}, {'event': 'complete_quest', 'quest': 'meta_raimonde'}, {'npc': 'grid', 'text': 'Да. ПоÑтому отпуÑти наÑ.'}, {'npc': 'leena', 'text': 'Ðе хочетÑÑ... но ладно. Ðежелательно вÑе Ð²Ñ€ÐµÐ¼Ñ ÑкÑплуатировать проÑÑ‚Ñ‹Ñ… людей, пуÑÑ‚ÑŒ даже и в целÑÑ… нового мирового порÑдка.'}, {'npc': '', 'text': 'Датчики Ñ Ð´ÐµÑ‚Ð¾Ð½Ð°Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ были ÑнÑÑ‚Ñ‹!'}, {'npc': 'grid', 'text': 'Вот так мне нравитÑÑ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ больше!'}, {'npc': 'leena', 'text': 'Ðу, еÑли вдруг захотите помочь нам уÑтроить новый мировой порÑдок, то Ñто ÑотрудничеÑтво будет воÑпринÑто нами положительно.'}, {'event': 'unlimit_map'}, {'npc': 'grid', 'text': 'Так... а нам, кажетÑÑ, надо вернутьÑÑ Ðº Ðатану.'}]};
this[62] = {'theme': 'ПРОДОЛЖИТЬ СОТРУДÐИЧЕСТВО', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isFlag('q_metatechnicans');
}, 'msg': [{'npc': 'leena', 'text': 'Я понимаю по вашему взглÑду, что вы прониклиÑÑŒ нашей идеологией и желаете продолжить ÑотрудничеÑтво Ñ Ð½Ð°Ð¼Ð¸? Мы в Ñвою очередь оплатим ваш труд ÑоглаÑно трудовому договору.'}, {'npc': 'grid', 'text': 'Чем Ñ Ð¼Ð¾Ð³Ñƒ помочь?'}, {'npc': 'leena', 'text': 'Отлично. Тогда возвращайтеÑÑŒ в деревню Раймонд и поговорите Ñ ÐšÐ°Ñ€Ð»Ð¾Ð¼ Вакуолем и Смитом Бекордом. Они ведут подготовку к нашему воÑÑтанию.'}, {'event': 'set_flag', 'flag': 'q_metatechnicans'}, {'event': 'set_flag', 'flag': 'v_metafight_ally'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 0}, {'event': 'give_exp', 'value': 1500}, {'event': 'join_team', 'npc': 8}, {'npc': 'craven', 'text': 'Я пойду Ñ Ð²Ð°Ð¼Ð¸.'}]};
this[63] = {'theme': 'ПОМОЩЬ Ð’ÐКУОЛЮ И БЕККОРДУ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && (2 > (Core.Get()).game.getFlag('q_get3parts') || 2 > (Core.Get()).game.getFlag('q_getchips'));
}, 'msg': [{'npc': 'leena', 'text': 'Ð’Ñ‹ помогли Беккорду и Вакуолю подготовить воÑÑтание?'}, {'npc': 'grid', 'text': 'Пока еще нет.'}]};
this[64] = {'theme': 'ПОМОЩЬ Ð’ÐКУОЛЮ И БЕККОРДУ - ВЫПОЛÐЕÐО', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && 2 == (Core.Get()).game.getFlag('q_get3parts') && 2 == (Core.Get()).game.getFlag('q_getchips');
}, 'msg': [{'npc': 'grid', 'text': 'Беккорд и Вакуоль готовы к воÑÑтанию.'}, {'event': 'give_exp', 'value': 7000}, {'event': 'give_money', 'value': 25000}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 1}, {'event': 'set_flag', 'flag': 'q_metatechnicans', 'value': 2}, {'npc': 'leena', 'text': 'Отлично. Вот ваша награда.'}, {'npc': 'leena', 'text': 'Когда будешь готов, Грид, Ñ Ñ€Ð°ÑÑкажу тебе Ñледующее задание.'}]};
this[65] = {'theme': 'ПЕРЕГОВОРЫ С КÐЛИПСО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'Я готов. Что за Ñледующее задание?'}, {'npc': 'leena', 'text': 'Крошка-детка. Знаешь ли Ñ‚Ñ‹ город мертвых, КалипÑо? Ðто меÑто, где обитают жертвы военного ÑкÑперимента по получению беÑÑмертного человека.'}, {'npc': 'leena', 'text': 'ПотребноÑÑ‚ÑŒ: заключить Ñ Ð½Ð¸Ð¼Ð¸ Ñоюз, чтобы мы получили важного Ñоюзника в нашем воÑÑтании. Мне не извеÑтно, как Ñ‚Ñ‹ Ñто Ñделаешь, мне важен результат.'}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 2}, {'npc': 'grid', 'text': 'Да, Лина, Ñ‚Ñ‹ умеешь мотивировать людей...'}]};
this[66] = {'theme': 'УСЛОВИЯ КÐЛИПСО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'leena', 'text': 'КалипÑо предоÑтавил нам Ñвои кадры?'}, {'npc': 'grid', 'text': 'Ðе ÑовÑем. Они отказываютÑÑ Ð¿Ð¾Ð¼Ð¾Ð³Ð°Ñ‚ÑŒ, пока им не вернут «человечеÑкое тело». Так что Ñ ÑƒÐ¼Ñ‹Ð²Ð°ÑŽ руки...'}, {'npc': 'leena', 'text': 'Ðе логично. Вернуть им тело – теоретичеÑки возможно.'}, {'npc': 'grid', 'text': 'Да?..'}, {'npc': 'leena', 'text': 'КажетÑÑ, МихаÑль из деревни Раймонд Вилль занималÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ‹Ð¼Ð¸ иÑÑледованиÑ.'}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 3}, {'event': 'give_exp', 'value': 1500}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 4}, {'npc': 'grid', 'text': 'ПонÑтно. Пойду пообщаюÑÑŒ Ñ Ð½Ð¸Ð¼...'}]};
this[67] = {'theme': 'ПЕРЕГОВОРЫ С КÐЛИПСО – ВЫПОЛÐЕÐО', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'Я заключил Ñоюз Ñ Ð³Ð¾Ñ€Ð¾Ð´Ð¾Ð¼ КалипÑо. Они помогут вам в воÑÑтании.'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 6}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 7}, {'npc': 'leena', 'text': 'Отличные новоÑти, крошка-детка! ВозвращайÑÑ, когда будешь готов Ð´Ð»Ñ Ñледующего заданиÑ. Вот Ñ‚Ð²Ð¾Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°.'}]};
this[68] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return !(Core.Get()).game.isFlag('q_getinvestor') && 6 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 1}, {'npc': 'leena', 'text': 'Плохие новоÑти. РаÑходы на маÑÑовое производÑтво имплантантов, Ñоздание вечного Ð´Ð²Ð¸Ð³Ð°Ñ‚ÐµÐ»Ñ Ð¸ иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ñ‹Ñ… воинов КалипÑо превышают ожидаемый порог, а доходы Ñ Ð²Ð¾Ð¾Ñ€ÑƒÐ¶ÐµÐ½Ð½Ñ‹Ñ… нападений ÑократилиÑÑŒ...'}, {'npc': 'grid', 'text': 'Ð ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÑетÑÑ Ð¸Ð·-за нерентабельноÑти?'}, {'npc': 'leena', 'text': 'Ðе верно. Революции нужен инвеÑтор.'}, {'npc': 'grid', 'text': 'Даже так?'}, {'npc': 'leena', 'text': 'Крошка-детка, отправлÑйÑÑ Ð² город богачей КаÑтедо и заручиÑÑŒ там поддержкой одного из меценатов на Ñвое уÑмотрение. ÐœÐµÐ½Ñ Ð¸Ð½Ñ‚ÐµÑ€ÐµÑуют только деньги.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 8}, {'npc': 'grid', 'text': 'ÐÐ»Ñ‡Ð½Ð°Ñ Ð²Ñ‹, Лина!'}, {'npc': 'leena', 'text': 'Юмор: понÑÑ‚ и оценен. Оценка: 3 балла.'}]};
this[69] = {'theme': 'ИÐВЕСТИЦИИ', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'leena', 'text': 'Следует напомнить, что Ñ‚Ñ‹ должен отправлÑÑ‚ÑŒÑÑ Ð² город КаÑтедо и найти там мецената, который Ñовершит инвеÑтирование в дело революции.'}, {'npc': 'grid', 'text': 'Я помню Ñто!'}, {'npc': 'leena', 'text': 'Тогда почему не делаешь?'}, {'npc': 'grid', 'text': 'Хороший вопроÑ! Ушел делать.'}]};
this[70] = {'theme': 'ИÐВЕСТИЦИИ - ВЫПОЛÐЕÐО', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'grid', 'text': 'Я нашел революции ÑпонÑора.'}, {'npc': 'leena', 'text': 'Ðто Ñ…Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ð½Ð¾Ð²Ð¾ÑÑ‚ÑŒ. Мой воÑторг – 85% из 100.'}, {'npc': 'leena', 'text': 'РаÑÑчитана награда за ваши уÑлуги. РаÑпишитеÑÑŒ в получении.'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 100000}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 3}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 10}, {'npc': 'leena', 'text': 'Крошка-детка. Ты очень помог нам. У Ð½Ð°Ñ Ð²Ñе готово Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° воÑÑтаниÑ. Как Ñледует подумай, хочешь ли Ñ‚Ñ‹ продолжать помогать нам. Ðазад дороги уже не будет.'}]};
this[71] = {'theme': 'ÐÐЧÐЛО ВОССТÐÐИЯ', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_startrevolution');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 1}, {'npc': 'leena', 'text': 'Итак, крошка-детка, Ñ‚Ñ‹ вÑе же решил быть Ñ Ð½Ð°Ð¼Ð¸ до конца. Я очень ценю Ñто. Потому что Ñ‚Ñ‹ – Ñ†ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ñ…Ð¾Ð´ÐºÐ° Ð´Ð»Ñ ÐœÐµÑ‚Ð°-Воинов.'}, {'npc': 'leena', 'text': 'Помни, Ñтупив на Ñту тропу, Ñ‚ÐµÐ±Ñ Ð±ÑƒÐ´ÑƒÑ‚ ненавидеть. ВероÑтно, за тобой начнетÑÑ Ð¾Ñ…Ð¾Ñ‚Ð°, ведь Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡Ñƒ Ñ‚ÐµÐ±Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ð»Ð¾Ð¼.'}, {'npc': 'leena', 'text': 'Твое Ñледующее задание – разгромить военную базу. ВмеÑте Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ на базу нападут войÑка, которые уже выдвинулиÑÑŒ к ней. Ð¢Ð²Ð¾Ñ Ð¶Ðµ задача – вынеÑти командующего базы – Гарна Стаковича и его отрÑд.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 11}, {'npc': 'grid', 'text': 'Ты как-то по-другому заговорила.'}, {'event': 'set_flag', 'flag': 'btl_celester'}, {'npc': 'leena', 'text': 'Включен режим ÑмулÑции командира из компьютерной игры «УправлÑй и Захватывай». Удачи, генерал!'}]};
this[72] = {'theme': 'УÐИЧТОЖЕÐИЕ ВОЕÐÐОЙ БÐЗЫ', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 3}, {'npc': 'leena', 'text': 'Разведка уже доложила о вашем уÑпехе, генерал.'}, {'npc': 'leena', 'text': 'Пока вы занималиÑÑŒ одним из опаÑнейших командующих армией, да еще и вкупе Ñ Ð»ÑƒÑ‡ÑˆÐ¸Ð¼ Ñнайпером – СелеÑтером, наши войÑка захватили военную базу.'}, {'npc': 'grid', 'text': 'Круто!'}, {'npc': 'leena', 'text': 'ПоÑле Ñтого многие города, не желавшие Ñотрудничать Ñ Ð½Ð°Ð¼Ð¸ ранее, перешли на нашу Ñторону, увидев, как легко мы разобралиÑÑŒ Ñ Ð°Ñ€Ð¼Ð¸ÐµÐ¹.'}, {'npc': 'leena', 'text': 'Однако Ñто еще не конец. Ðужно захватить главный оплот правительÑтва – Ñтолицу Дарк, - и Ñвергнуть президента МиÑÑ‚.'}, {'npc': 'leena', 'text': 'Генерал, вы поведете наши войÑка и уничтожите главу правительÑтва. Мы верим в ваÑ.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 13}, {'npc': 'leena', 'text': 'Удачи.'}]};
this[73] = {'theme': 'О ЛИÐЕ', 'msg': [{'npc': 'grid', 'text': 'Ркто Ñта Лина?'}, {'npc': 'craven', 'text': 'Лина – Ñто лидер Мета-Воинов, девочка невероÑтного ума, уÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ð²ÑˆÐ°Ñ Ñебе в голову микропроцеÑÑоры еще будучи в Ñредней школе.'}, {'npc': 'grid', 'text': 'Ð’Ñегда Ñчитал, что молодежь забивает голову вÑÑкой ерундой.'}]};
this[74] = {'theme': 'О СЕБЕ', 'msg': [{'npc': 'grid', 'text': 'Ты почему Ñ ÐºÑ€Ñ‹Ð»ÑŒÑми?'}, {'npc': 'craven', 'text': 'Ðу вот захотелоÑÑŒ.'}, {'npc': 'grid', 'text': 'Как они крепÑÑ‚ÑÑ?'}, {'npc': 'craven', 'text': 'Ðто кибер-имплантанты. Мета-Воины Ñчитают, что человек рождаетÑÑ Ð½ÐµÑовершенным, поÑтому надо доработать его поÑредÑтвом выÑоких технологий.'}, {'npc': 'craven', 'text': 'Ð”Ð»Ñ Ð¼ÐµÐ½Ñ ÐºÑ€Ñ‹Ð»ÑŒÑ â€“ Ñто не только удобÑтво и превоÑходÑтво над врагом, но еще и Ñимвол Ñвободы.'}]};
};
_global.TalkData = v1;
_global.TalkData extends TalkData2;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData.prototype, null, 1);
}
#endinitclip
}
movieClip 1951 __Packages.TalkData4En {
#initclip
if (!_global.TalkData4En) {
var v1 = function () {
super();
this[227] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'curt', 'text': 'The name\'s Curt, what business of yours is it?'}, {'npc': 'grid', 'text': 'None, I guess. Just asking.'}, {'npc': 'curt', 'text': 'Well you shouldn\'t.'}, {'npc': 'grid', 'text': 'My name\'s Grid.'}, {'event': 'set_flag', 'flag': 'curt_join'}, {'npc': 'curt', 'text': 'Like I care.'}]};
this[228] = {'theme': 'RECRUIT', 'condition': function () {
return 2 <= (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.isFlag('curt_join');
}, 'msg': [{'npc': 'grid', 'text': 'Hey, Curt, wanna join our group? We just have fun and kill for money.'}, {'npc': 'curt', 'text': 'Whatever... maybe... I\'ll tell you what - pay my debt to the bank and I\'ll join you. I owe 1000$.'}, {'event': 'set_flag', 'flag': 'v_paycurtdebt', 'value': 1}, {'npc': 'grid', 'text': 'I see.'}]};
this[229] = {'theme': 'PAY CURT\'S DEBT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_paycurtdebt') && (Core.Get()).game.money < 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Here, take it.'}, {'npc': 'curt', 'text': 'Buddy, are you crazy? That\'s just your empty hand. You don\'t have the money, do you?'}, {'npc': 'grid', 'text': 'Oh, I guess not...'}]};
this[230] = {'theme': 'PAY CURT\'S DEBT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_paycurtdebt') && (Core.Get()).game.money >= 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Here, take it.'}, {'npc': 'curt', 'text': 'Cool! Don\'t bother asking why I owe this to the bank!'}, {'event': 'set_flag', 'flag': 5000}, {'event': 'join_team', 'npc': 4}, {'npc': 'curt', 'text': 'Well, okay!'}]};
this[231] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'And you would be..?'}, {'npc': 'georg', 'text': 'I\'m Georg, the head of this city.'}]};
this[232] = {'theme': 'GIBSON CITY', 'msg': [{'npc': 'grid', 'text': 'Tell me \'bout Gibson City.'}, {'npc': 'georg', 'text': 'Gibson City has a rich history. Long ago, a great rock festival took place on these plains. It was named the Firestock Festival.'}, {'npc': 'georg', 'text': 'Not all the guests left after the festival. Some stayed behind and started to build a small settlement. It later grew into a town.'}, {'npc': 'georg', 'text': 'And time passed...'}, {'npc': 'georg', 'text': 'There are only a few left who remember the musical history of their home.'}, {'npc': 'grid', 'text': 'Could it be that you\'re a musician yourself?'}, {'npc': 'georg', 'text': 'Ha-ha-ha. No, my friend, though I used to be. Now I\'m just the useless old man with the keys to the city gates.'}]};
this[233] = {'theme': 'HELP THE CITY', 'condition': function () {
return !(Core.Get()).game.isFlag('q_gibsonquest');
}, 'msg': [{'npc': 'georg', 'text': 'Young man! How would you like to help our city? You\'ll be well rewarded.'}, {'npc': 'grid', 'text': 'I may do. What kind of help do you need?'}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 1}, {'event': 'add_quest', 'quest': 'raiding_raiders', 'stage': 0}, {'npc': 'georg', 'text': 'Loads of raiders have recently settled in near the town. They attack everyone, coming or going. Kill at least 20 of them and I\'ll reward you handsomely.'}]};
this[234] = {'theme': 'HELP THE CITY - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gibsonquest') && 20 <= (Core.Get()).game.getFlag('kills_raiders_georg');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve dealt with those raiders for you.'}, {'event': 'give_exp', 'value': 7000}, {'event': 'give_money', 'value': 25000}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 2}, {'event': 'complete_quest', 'quest': 'raiding_raiders'}, {'npc': 'georg', 'text': 'Great! We\'re holding a foreign fair and everyone\'s made it here safely. You did well.'}]};
this[235] = {'theme': 'HELP THE CITY 2', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_gibsonquest');
}, 'msg': [{'npc': 'grid', 'text': 'Is the city safe now?'}, {'npc': 'georg', 'text': 'I\'m afraid not...'}, {'npc': 'georg', 'text': 'There\'s a new threat! Now we\'ve dealt with the raiders, mutants have taken their place. Could you please kill them as well? At least 25 mutants. You\'ll be well rewarded.'}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 3}, {'event': 'add_quest', 'quest': 'raiding_mutants', 'stage': 0}, {'npc': 'grid', 'text': 'I\'ll sort them out, don\'t worry.'}]};
this[236] = {'theme': 'HELP THE CITY 2 - DONE', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_gibsonquest') && 25 <= (Core.Get()).game.getFlag('kills_mutants_georg');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve slain the mutants.'}, {'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 60000}, {'event': 'give_item', 'item': 30}, {'event': 'set_flag', 'flag': 'q_gibsonquest', 'value': 4}, {'event': 'complete_quest', 'quest': 'raiding_mutants'}, {'npc': 'georg', 'text': 'Great! Than you so much, you\'ve helped our city a lot!.'}]};
this[237] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'And who are you?'}, {'npc': 'key', 'text': 'I\'ll tell you who this man is! He\'s a perverted, good-for-nothing, loiterer busy wasting his life!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'john', 'text': 'Well, I see it a little differently...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'key', 'text': 'And I see the truth! I met him during my mission in Gibson City.', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'john', 'text': 'My name\'s John. I love meeting the girls and listening to Elvis Presley. You\'d be hard pressed to find a cooler man than me. Check out my blue suede shoes!', 'condition': function () {
return !(Core.Get()).game.isInTeam(1);
}}]};
this[238] = {'theme': 'LOVE HUNTER', 'condition': function () {
return !(Core.Get()).game.getFlag('q_lovehunter');
}, 'msg': [{'npc': 'john', 'text': 'Listen, could you help me out? I\'ve got no money but I do have lots of useful stuff. You\'ll like it!'}, {'npc': 'grid', 'text': 'What\'s the matter?'}, {'npc': 'john', 'text': 'This girl Biby... she\'s a model, an actress and a singer. I want her to love me.'}, {'npc': 'grid', 'text': 'Love potions only exist in fairytales.'}, {'npc': 'john', 'text': 'Yes. But the love chip is a reality! Smith Becord from Raymond Village owes me one for the data I gathered for his research.'}, {'npc': 'john', 'text': 'First take the chip from Becord, then convince Biby to implant it.'}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 1}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 0}, {'npc': 'grid', 'text': 'Like I have nothing better to do!..'}]};
this[239] = {'theme': 'LOVE HUNTER - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_lovehunter');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve implanted the chip in Biby for you.'}, {'npc': 'john', 'text': 'Awesome! Here\'s your reward, like I promised.'}, {'event': 'give_exp', 'value': 3500}, {'event': 'give_item', 'item': 54}, {'event': 'give_item', 'item': 113}, {'event': 'complete_quest', 'quest': 'love_hunter'}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 3}, {'npc': 'grid', 'text': 'She\'ll be waiting for you.'}]};
this[240] = {'theme': 'TRADE', 'msg': [{'npc': 'john', 'text': 'I\'ve found some great stuff in the junkyard. Wanna take a look?'}, {'event': 'trade', 'npc': 'john'}]};
this[241] = {'theme': 'CARL VACCUOL', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isFlag('raymonde_visit');
}, 'msg': [{'event': 'set_flag', 'flag': 'raymonde_visit'}, {'npc': 'craven', 'text': 'Here it is, Raymonde Village. But I don\'t see my friend Carl anywhere...'}, {'npc': 'grid', 'text': 'Is something wrong with him?'}, {'npc': 'smith', 'text': 'Correct, dude. Carl\'s disappeared right out of his mansion. We\'ve no idea what the hell is going on.'}, {'npc': 'craven', 'text': 'Grid, this is the gifted cybernetic scientist of Raymonde, Smith Becord.'}, {'npc': 'grid', 'text': 'He doesn\'t talk like a scientist.'}, {'npc': 'smith', 'text': 'Shut the hell up. I\'m damn good.'}, {'npc': 'craven', 'text': 'That\'s true.'}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 1}, {'npc': 'grid', 'text': 'Okay, let\'s try to find some clues.'}]};
this[242] = {'theme': 'CARL VACCUOL', 'condition': function () {
return !(Core.Get()).game.getFlag('q_gotosummerg');
}, 'msg': [{'npc': 'craven', 'text': 'This is Carl\'s house.'}, {'npc': 'grid', 'text': 'Let\'s search for clues.'}, {'npc': '', 'text': '...'}, {'event': 'give_exp', 'value': 1500}, {'event': 'give_quest_item', 'item': 22}, {'event': 'give_quest_item', 'item': 23, 'count': 5}, {'event': 'set_flag', 'flag': 'q_gotosummerg', 'value': 1}, {'npc': 'grid', 'text': 'Interesting...'}]};
this[243] = {'theme': 'TEMPORAL TV', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_bigalienplan') && !(Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'npc': 'grid', 'text': 'Nathan said I could use your temporal TV...'}, {'npc': 'carl', 'text': 'No, you can\'t!'}, {'npc': 'grid', 'text': 'Why not?'}, {'npc': 'carl', 'text': 'Just because someone says you can use something, doesn\'t mean it\'s so! Someone must explain to you how to use that something. Then you can use the thing. Let me explain it you...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'grid', 'text': 'So just set up the date and press the \'Start\' button?'}, {'npc': 'carl', 'text': 'That\'s rather a rude summation of my explanation but, basically, you\'re right. Here\'s your temporal TV, try not to break it.'}, {'event': 'give_quest_item', 'item': 0}, {'npc': 'grid', 'text': 'Now I need to visit the U.F.O. sites...'}]};
this[244] = {'theme': 'SCIENCE', 'msg': [{'npc': 'grid', 'text': 'Tell me about your contribution to science...'}, {'npc': 'carl', 'text': 'Nothing would please me more! Shall I begin?..'}, {'npc': 'grid', 'text': 'Erm... no. I\'ve thought about it and... no.'}]};
this[245] = {'theme': 'PREPARATIONS FOR THE REBELLION', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_get3parts');
}, 'msg': [{'npc': 'grid', 'text': 'Greetings, Carl! Long time no see.'}, {'npc': 'carl', 'text': 'What can I do for you?'}, {'npc': 'grid', 'text': 'Lina mentioned that you need my help preparing for the Rebellion.'}, {'npc': 'carl', 'text': 'That\'s right! I\'m creating the infinite engine that\'ll be used by Meta-base, but I lack 3 vital components.'}, {'npc': 'carl', 'text': 'A jade piston, which you can buy on Jade Island, a titan chain BDX, currently sold somewhere in the Paradark Region, and a galvanizator S7 - someone in Kalister or Sirith might have one.'}, {'npc': 'grid', 'text': 'Where am I supposed to get the money for all this stuff? It sounds really expensive!'}, {'npc': 'carl', 'text': 'You can sell your kidneys.'}, {'npc': 'grid', 'text': 'I\'ll pass.'}, {'npc': 'carl', 'text': 'Very well, then take this with you.'}, {'event': 'give_quest_item', 'item': 27}, {'npc': 'carl', 'text': 'You can buy all the components with that credit card.'}, {'npc': 'grid', 'text': 'And what else can I buy using this card?..'}, {'npc': 'carl', 'text': 'Nothing, young man. I\'ll be receiving reports of any activity on that card. The moment you buy something I don\'t need, I\'ll know about it and freeze the service.'}, {'event': 'set_flag', 'flag': 'q_get3parts', 'value': 1}, {'npc': 'grid', 'text': 'I see...'}]};
this[246] = {'theme': 'ASSEMLING INF. ENGINE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_get3parts') && !((Core.Get()).game.hasQuestItem(24) && (Core.Get()).game.hasQuestItem(25) && (Core.Get()).game.hasQuestItem(26));
}, 'msg': [{'npc': 'carl', 'text': 'I can see it in your eyes - you don\'t have all the necessary components!'}, {'npc': 'carl', 'text': 'I repeat: one jade piston, one titan chain BDX and one galvanizator S7. '}]};
this[247] = {'theme': 'ASSEMLING INF. ENGINE - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_get3parts') && (Core.Get()).game.hasQuestItem(24) && (Core.Get()).game.hasQuestItem(25) && (Core.Get()).game.hasQuestItem(26);
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve collected all the components.'}, {'event': 'remove_quest_item', 'item': 24}, {'event': 'remove_quest_item', 'item': 25}, {'event': 'remove_quest_item', 'item': 26}, {'event': 'remove_quest_item', 'item': 27}, {'event': 'give_exp', 'value': 7000}, {'event': 'set_flag', 'flag': 'q_get3parts', 'value': 2}, {'npc': 'carl', 'text': 'I know, I saw the report on every purchase. Let\'s celebrate! Now I can finally complete my infinity engine. You may tell Lina you\'ve done all I need.'}]};
this[248] = {'theme': 'ALLIANCE WITH CALIPSO', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'michael', 'text': 'I hate Carl Vaccuol!'}, {'npc': 'grid', 'text': 'Good for you! But I came to you about a different matter...'}, {'npc': 'michael', 'text': 'Everyone considers him to be a genius and I\'m stuck living in his shadow! How can I prove that I\'m the better scientist?!'}, {'npc': 'grid', 'text': 'I could help you with that problem!'}, {'npc': 'michael', 'text': 'Will you kill Carl?'}, {'npc': 'grid', 'text': 'No, but I know a way you could surpass his reputation.'}, {'npc': 'michael', 'text': 'I\'m listening!'}, {'npc': 'grid', 'text': 'Do you know Calipso, the city of the dead?'}, {'npc': 'michael', 'text': 'Of course.'}, {'npc': 'grid', 'text': 'They want to return to normal human bodies. Only then will they help with the Meta-Warriors\' Rebellion.'}, {'npc': 'grid', 'text': 'If you were able to do that for them, Lina would heap more praise on you than Carl and you\'d have made a revolutionary discovery!'}, {'npc': 'michael', 'text': 'Excellent! I once started this kind of research but had to give it up after the prohibition of graverobbing...'}, {'event': 'give_exp', 'value': 6000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 4}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 5}, {'npc': 'grid', 'text': 'Than restart your research! You\'ll have the material now. I\'ll go tell Fia about your cooperation.'}]};
this[249] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'michael', 'text': 'My name\'s Mikhael Valotkraft, the greatest scientist ever.'}, {'npc': 'grid', 'text': 'Very impressive.'}]};
this[250] = {'theme': 'WHAT HAPPENED HERE?', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'smith', 'text': 'Our most important scientist, Carl Vaccuol, has dissappeared. We have no idea what happened to him.'}, {'npc': 'smith', 'text': 'Check his house, maybe you\'ll find something.'}]};
this[251] = {'theme': 'LOVE HUNTER', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_lovehunter') && !(Core.Get()).game.isFlag('q_getchip');
}, 'msg': [{'npc': 'grid', 'text': 'John, from Gibson City, mentioned that you owe him a chip...'}, {'npc': 'smith', 'text': 'Yeah, I\'ve made it already. Piece of cake. Take it and get out of my sight.'}, {'event': 'give_exp', 'value': 2500}, {'event': 'give_quest_item', 'item': 16}, {'event': 'set_flag', 'flag': 'q_getchip', 'value': 1}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 1}, {'npc': 'grid', 'text': 'Wait! How does it work?'}, {'npc': 'smith', 'text': 'It has John\'s image in it. The girl who implants that chip will fall hopelessly in love. Even if she never saw him in reality, he\'d appear in her dreams.'}, {'npc': 'smith', 'text': 'Just a basic emotional attachment model, really.'}]};
this[252] = {'theme': 'PREPARATIONS FOR THE REBELLION', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_getchips');
}, 'msg': [{'npc': 'grid', 'text': 'Lina told me to help with your preparations for the Rebellion.'}, {'npc': 'smith', 'text': 'Yeah. I want to invent a new enforcer implant exclusively for Meta-Warriors. I need 3 chips for the prototype: models 404, 101 and 707.'}, {'npc': 'grid', 'text': 'Was that choice just based on how the numbers look?'}, {'npc': 'smith', 'text': 'No, it\'s pure coincidence. Now go!'}, {'npc': 'grid', 'text': 'Wait! Where would I get those? '}, {'event': 'set_flag', 'flag': 'q_getchips', 'value': 1}, {'npc': 'smith', 'text': 'If I knew that I\'d already have them, idiot. Try asking on Jade Island.'}]};
this[253] = {'theme': 'COLLECT THE CHIPS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !((Core.Get()).game.hasQuestItem(8) && (Core.Get()).game.hasQuestItem(15) && (Core.Get()).game.hasQuestItem(19));
}, 'msg': [{'npc': 'smith', 'text': 'Where are they?'}, {'npc': 'grid', 'text': 'Not here yet...'}]};
this[254] = {'theme': 'COLLECT THE CHIPS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && (Core.Get()).game.hasQuestItem(8) && (Core.Get()).game.hasQuestItem(15) && (Core.Get()).game.hasQuestItem(19);
}, 'msg': [{'npc': 'smith', 'text': 'Where are they?'}, {'npc': 'grid', 'text': 'Here.'}, {'event': 'remove_quest_item', 'item': 8}, {'event': 'remove_quest_item', 'item': 15}, {'event': 'remove_quest_item', 'item': 19}, {'event': 'give_exp', 'value': 9000}, {'event': 'set_flag', 'flag': 'q_getchips', 'value': 2}, {'npc': 'smith', 'text': 'Well done! Tell Lina I\'ll soon start mass production.'}]};
this[255] = {'theme': 'PROTOTYPE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_getchips') && (Core.Get()).game.isInTeam(8) && !(Core.Get()).game.isFlag('craven_upgrade');
}, 'msg': [{'npc': 'smith', 'text': 'Kraven, wanna try out my prototype enforcer chip?'}, {'npc': 'grid', 'text': 'Bring it on!'}, {'npc': 'smith', 'text': 'This thing can only be implanted in half-cyborgs.'}, {'npc': 'craven', 'text': 'That\'d be me. Let\'s do it!'}, {'event': 'skill_up', 'npc': 8, 'skill': 'vit'}, {'event': 'skill_up', 'npc': 8, 'skill': 'def'}, {'event': 'skill_up', 'npc': 8, 'skill': 'dgr'}, {'event': 'skill_up', 'npc': 8, 'skill': 'tch'}, {'npc': 'craven', 'text': 'Not bad, but I expected something better.'}, {'event': 'set_flag', 'flag': 'craven_upgrade'}, {'npc': 'smith', 'text': 'So ungrateful...'}]};
this[257] = {'theme': 'KARRY', 'condition': function () {
return !(Core.Get()).game.getFlag('enc_karry');
}, 'msg': [{'npc': 'karry', 'text': 'Wait! Don\'t shoot! Just listen to me!'}, {'npc': 'key', 'text': 'Don\'t listen to him, it\'s against the rules. Just kill him!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'Wait, calm down.', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'So, any last words before I send you to your alien heaven?'}, {'npc': 'karry', 'text': 'Grid. I know you\'ve collected information about our race. I think you\'re less stupid than the other K.A.U.F.O. members and might speak to me.'}, {'npc': 'karry', 'text': 'You\'ve probably noticed that people say we\'re not villains. All we want is to help people but they don\'t understand that.'}, {'npc': 'karry', 'text': 'Do you really believe there\'s no need to communicate with other races? That negotiations are useless?'}, {'npc': 'grid', 'text': 'So you\'ve sought me out, eh?'}, {'event': 'set_flag', 'flag': 'enc_karry'}, {'npc': 'karry', 'text': 'I want you to meet our Emperor, he\'ll explain everything to you.'}, {'event': 'talk', 'npc': 'karry', 'no_bye': true}]};
this[258] = {'theme': 'GO WITH HIM', 'msg': [{'npc': 'key', 'text': 'What?! Grid, you traitor! First speaking to an alien, then taking his side... I despise you!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'key', 'text': 'You\'d better never come back, K.A.U.F.O. won\'t be glad to see you again...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'event': 'leave_team', 'npc': 1, 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'event': 'give_exp', 'value': 15000}, {'event': 'set_flag', 'flag': 'q_kaufo_betrayal'}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 0}, {'event': 'leave_team', 'npc': 8, 'condition': function () {
return (Core.Get()).game.isInTeam(8);
}}, {'event': 'fail_quest', 'quest': 'ufo_visit', 'condition': function () {
return (Core.Get()).game.inQuest('ufo_visit');
}}, {'event': 'fail_quest', 'quest': 'natan_plan', 'condition': function () {
return (Core.Get()).game.inQuest('natan_plan');
}}, {'event': 'reset_flag', 'flag': 'q_bigalienplan'}, {'event': 'remove_quest_item', 'item': 0, 'condition': function () {
return (Core.Get()).game.hasQuestItem(0);
}}, {'event': 'remove_quest_item', 'item': 1, 'condition': function () {
return (Core.Get()).game.hasQuestItem(1);
}}, {'event': 'remove_quest_item', 'item': 2, 'condition': function () {
return (Core.Get()).game.hasQuestItem(2);
}}, {'event': 'remove_quest_item', 'item': 3, 'condition': function () {
return (Core.Get()).game.hasQuestItem(3);
}}, {'event': 'remove_quest_item', 'item': 4, 'condition': function () {
return (Core.Get()).game.hasQuestItem(4);
}}, {'event': 'remove_quest_item', 'item': 5, 'condition': function () {
return (Core.Get()).game.hasQuestItem(5);
}}, {'event': 'remove_quest_item', 'item': 6, 'condition': function () {
return (Core.Get()).game.hasQuestItem(6);
}}, {'npc': '', 'text': '...'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[259] = {'theme': 'REFUSE TO GO', 'msg': [{'npc': 'grid', 'text': 'Don\'t try your lies on me. Know that you\'ll die at my hands!'}, {'npc': 'karry', 'text': 'That\'s sad... I guess I was wrong about you...'}, {'event': 'give_exp', 'value': 3000}, {'event': 'battle', 'band': 'karry'}]};
this[260] = {'theme': 'FEATHER', 'condition': function () {
return !(Core.Get()).game.getFlag('enc_feather');
}, 'msg': [{'npc': 'feather', 'text': 'Kyaa... who\'re you?!'}, {'npc': 'grid', 'text': 'My name\'s Grid. Don\'t be scared'}, {'npc': 'feather', 'text': 'Fine! I won\'t be. My name\'s Feather and I\'m tring to escape from the bad people...'}, {'npc': 'grid', 'text': 'Bad people?'}, {'npc': 'feather', 'text': 'Yes! I don\'t know who they are but they\'re always trying to kill me...'}, {'npc': 'grid', 'text': 'Hm... are that halo and those wings real?!'}, {'npc': 'feather', 'text': 'Yes... I don\'t know what they are. I only remember waking up in the lab, then I ran away... Maybe those bad people are from the lab.'}, {'npc': 'grid', 'text': 'You don\'t remember anything before that?'}, {'npc': 'feather', 'text': 'No! It\'s frightening me.'}, {'npc': 'grid', 'text': 'Don\'t worry, I\'m with you. Wanna come with me?'}, {'event': 'give_exp', 'value': 8000}, {'event': 'join_team', 'npc': 9}, {'event': 'set_flag', 'flag': 'enc_feather'}, {'event': 'enable_screen'}, {'npc': 'feather', 'text': 'I\'d love to! You seem to be a good person.'}]};
this[261] = {'theme': 'EXPERIMENT', 'msg': [{'npc': 'dekkis', 'text': 'Here\'s my runaway angel!'}, {'npc': 'feather', 'text': 'It\'s him! The bad guy from the lab!'}, {'npc': 'grid', 'text': 'He doesn\'t look much like a scientist...'}, {'npc': 'dekkis', 'text': 'Come with me!'}, {'npc': 'grid', 'text': 'No can do. First you\'ll have to defeat me.'}, {'npc': 'dekkis', 'text': 'I\'m hopeless at fighting... but these guy aren\'t!'}, {'event': 'set_flag', 'flag': 'enc_dekkis1'}, {'event': 'battle', 'band': 'dek_shades'}]};
this[262] = {'theme': 'EXPERIMENT', 'msg': [{'npc': 'dekkis', 'text': 'Damn! I\'ve failed!'}, {'npc': 'grid', 'text': 'You said it. Now you\'ll die unless you explain everything to me.'}, {'npc': 'dekkis', 'text': 'Fine, you won... I\'m the son of Garreth from Jade Island... I tried to make a genetic revolution but, when my father saw my experiments, he exiled me!'}, {'npc': 'dekkis', 'text': 'All I did was mix the genes of humans and animals to create a new life form!'}, {'npc': 'dekkis', 'text': 'I was better than my father and finally created an angel, a messenger of God.'}, {'npc': 'dekkis', 'text': 'I wanted to marry her to create a new human race... but she escaped!'}, {'npc': 'feather', 'text': 'I don\'t want to marry you!'}, {'npc': 'grid', 'text': 'You heard her. Leave her alone.'}, {'npc': 'dekkis', 'text': 'No! I can\'t! I won\'t! With this new gene formula I\'ll get her back from you!'}, {'npc': 'grid', 'text': 'Damn! He\'s mutating!'}, {'event': 'set_flag', 'flag': 'enc_dekkis2'}, {'event': 'battle', 'band': 'dekkis'}]};
this[263] = {'theme': 'FEATHER', 'msg': [{'npc': 'grid', 'text': 'Now you\'re free, Feather. Noone will chase you anymore.'}, {'npc': 'feather', 'text': 'Thankyou for everything, Grid... but... please tell me I can stay with you a little longer.'}, {'event': 'give_exp', 'value': 7500}, {'event': 'set_flag', 'flag': 'enc_dekkis3'}, {'event': 'set_flag', 'flag': 'v_killeddekkis', 'value': 1}, {'event': 'enable_screen'}, {'npc': 'grid', 'text': 'Sure you can! Traveling with you is a pleasure.'}]};
};
_global.TalkData4En = v1;
_global.TalkData4En extends Array;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData4En.prototype, null, 1);
}
#endinitclip
}
movieClip 1952 __Packages.TalkData3En {
#initclip
if (!_global.TalkData3En) {
var v1 = function () {
super();
this[153] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'vlad_ser', 'text': 'I\'m Vlad!! The head of this village!!!'}, {'npc': 'grid', 'text': 'Why are you shouting?'}, {'npc': 'vlad_ser', 'text': 'Because life is beautiful!'}]};
this[154] = {'theme': 'JOB', 'condition': function () {
return !(Core.Get()).game.isFlag('vlad_omelette');
}, 'msg': [{'npc': 'grid', 'text': 'Got any jobs for me? I\'m always looking to earn some money.'}, {'npc': 'vlad_ser', 'text': 'No, no jobs! But we do have the OMELETTE!'}, {'npc': 'grid', 'text': 'The what?!'}, {'event': 'set_flag', 'flag': 'vlad_omelette'}, {'npc': 'vlad_ser', 'text': 'The omelette! Our famous Vladsville Omelette! If you eat it you\'ll gain great strength! Either that or you\'ll die... There\'s no way to be sure!'}]};
this[155] = {'theme': 'EAT OMELET...', 'condition': function () {
return (Core.Get()).game.isFlag('vlad_omelette') && !(Core.Get()).game.isFlag('vlad_omelette_tried');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ll try your Omelette!'}, {'npc': 'vlad_ser', 'text': 'Good man! Eat up!'}, {'event': 'game_over', 'condition': function () {
return Math.random() < 0.5;
}}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'I feel like I\'ve evolved into something new and better!'}, {'event': 'give_exp', 'value': 1000}, {'event': 'skill_up', 'npc': 0, 'skill': 'vit'}, {'event': 'skill_up', 'npc': 0, 'skill': 'def'}, {'event': 'skill_up', 'npc': 0, 'skill': 'dgr'}, {'event': 'skill_up', 'npc': 0, 'skill': 'med'}, {'event': 'set_flag', 'flag': 'vlad_omelette_tried'}, {'npc': 'vlad_ser', 'text': 'You\'ve survived! Congratulations!'}]};
this[156] = {'theme': 'ABOUT YOURSELF', 'msg': [{'event': 'set_flag', 'flag': 'vlad_vlad_trade'}, {'npc': 'vlad_vlad', 'text': 'I\'m Vlad, son of Vlad. The blacksmith of Vladsville. I make excellent weapons, if you\'re interested!'}]};
this[157] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('vlad_vlad_trade');
}, 'msg': [{'npc': 'grid', 'text': 'Show me what you\'ve got, blacksmith.'}, {'event': 'trade', 'npc': 'vlad_vlad'}]};
this[158] = {'theme': 'VLADSVILLE', 'msg': [{'event': 'set_flag', 'flag': 'q_vladsville_visited'}, {'npc': 'grid', 'text': 'Why is this village called Vladsville?'}, {'npc': 'vlad_vlad', 'text': 'Because everybody here\'s called Vlad. Didn\'t you know that?'}, {'npc': 'grid', 'text': 'What?! Every last one of you?!'}, {'npc': 'vlad_vlad', 'text': 'Of course! Only Vlads are allowed to live here.'}]};
this[159] = {'theme': 'HAVE A CHAT', 'msg': [{'npc': 'grid', 'text': 'Good day to you!'}, {'npc': 'vlada', 'text': 'Hello there, Vlad!'}, {'npc': 'grid', 'text': 'I\'m not a Vlad!'}, {'npc': 'vlada', 'text': 'What?! Than you\'d better leave our village immediately. Only Vlads are allowed here.'}, {'npc': 'grid', 'text': 'What\'s your name then?'}, {'npc': 'vlada', 'text': 'Vlada. It\'s considered to be Vlad as well. Only Vlads live here.'}, {'npc': 'grid', 'text': 'You Vlads are really odd people...'}]};
this[160] = {'theme': 'SIEGE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'npc': 'lesly', 'text': 'Damn! Their general\'s here!'}, {'npc': 'garn', 'text': 'I\'ll beat the trash out of him. Worthless general of a worthless band of rebels!'}, {'npc': 'celester', 'text': 'Garn, this guy\'s really strong! I fought him just this morning and even I wasn\'t able to kill him.'}, {'npc': 'grid', 'text': 'This time he won\'t be so lucky, believe me.'}, {'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 2}, {'event': 'set_flag', 'flag': 'milbase_after_battle'}, {'event': 'battle', 'band': 'garn'}]};
this[161] = {'theme': 'SIEGE', 'condition': function () {
return (Core.Get()).game.isFlag('milbase_after_battle');
}, 'msg': [{'event': 'set_flag', 'flag': 'milbase_after_battle', 'value': 0}, {'event': 'give_exp', 'value': 7500}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 12}, {'npc': 'grid', 'text': 'This has been a hard war but... it seems we\'ve won. I should report our success to Lina.'}]};
this[162] = {'theme': 'CHIP 404', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(15);
}, 'msg': [{'npc': 'grid', 'text': 'I need a chip. Model 404.'}, {'npc': 'garn', 'text': 'Get the hell out of here. That\'s a forbidden chip.'}]};
this[163] = {'theme': 'SKILL: SNIPER, COST: $5000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_learnedshot') && (Core.Get()).game.money >= 5000;
}, 'msg': [{'npc': 'grid', 'text': 'Would you teach me how to shoot as well as you?'}, {'npc': 'celester', 'text': 'It\'ll cost you $5000. Deal?'}, {'event': 'remove_money', 'value': 5000}, {'event': 'skill_up', 'npc': 0, 'skill': 'acc'}, {'event': 'set_flag', 'flag': 'v_learnedshot'}, {'event': 'give_exp', 'value': 500}, {'npc': 'grid', 'text': 'Fine. Here\'s your money.'}]};
this[164] = {'theme': 'CHIP 404', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(15);
}, 'msg': [{'npc': 'grid', 'text': 'Hi there, gorgeous. I need a chip, model 404.'}, {'npc': 'lesly', 'text': 'Oh... we\'re not allowed to give those to civilians!'}, {'npc': 'grid', 'text': 'Even to me?'}, {'npc': 'lesly', 'text': 'Well... okay. But only if you\'ll take me on a date some day!'}, {'event': 'give_quest_item', 'item': 15}, {'event': 'give_exp', 'value': 2000}, {'npc': 'grid', 'text': 'Definitely!'}]};
this[165] = {'theme': 'BROADCAST', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.isFlag('translation_progress');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'npc': 'marcy', 'text': 'Grid! I\'ve been expecting you!'}, {'npc': 'elm', 'text': 'Hey there! I\'m so excited.'}, {'npc': 'grid', 'text': 'At least tell me what\'s going on.'}, {'npc': 'marcy', 'text': 'We\'re going to broadcast Sir F\'s speech. We\'ll start by showing Elm\'s movie about the aliens.'}, {'npc': 'marcy', 'text': 'After that, Sir F\'s address to the people of the world will be broadcast over every station.'}, {'npc': 'karry', 'text': 'Your task is to protect the studio from intrusion.. and you can count on being busy. The Government and K.A.U.F.O. will both be trying to stop us.'}, {'npc': 'marcy', 'text': 'Okay, we\'re starting the broadcast...'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'We\'ve been on air for an hour already... what\'s the situation?'}, {'npc': 'karry', 'text': 'K.A.U.F.O. forces are approaching!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 1}, {'event': 'battle', 'band': 'tr_kaufo'}]};
this[166] = {'theme': 'BROADCAST', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 1 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': 'Right, I have arrived.'}, {'npc': 'marcy', 'text': 'You\'re just in time. The movie\'s almost ended.'}, {'npc': 'sir_f', 'text': 'Alright... here we go...'}, {'npc': '', 'text': '...'}, {'npc': 'sir_f', 'text': 'People of Earth! My name is F and I\'m speaking to you as the representative of the alien civilization! Some of you already know of our existence...'}, {'npc': '', 'text': '...'}, {'npc': 'sir_f', 'text': '...and all I\'m telling you is the sad truth about your government. Myst is a tyrant and will lead you all to disaster!'}, {'npc': 'karry', 'text': 'The government\'s army is approaching...'}, {'npc': 'mist', 'text': 'How dare you spout such insolence!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 2}, {'event': 'battle', 'band': 'tr_mist'}]};
this[167] = {'theme': 'BROADCAST', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 2 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': '...and finally, I must expose the «secret» organization known as \'K.A.U.F.O.\' which is busily destroying everything it doesn\'t understand.'}, {'npc': 'natan', 'text': 'Grid... who would\'ve thought we\'d end up as enemies...'}, {'npc': 'grid', 'text': 'Nathan... please stop this. You\'re wrong. You know you\'re wrong.'}, {'npc': 'natan', 'text': 'Wrong? You think I\'m wrong?! I was able to create an organization that brings great wealth to me and those who stand with me.'}, {'npc': 'natan', 'text': 'I was able to unite people in hatred to further my agenda. You think I would give all that up?'}, {'npc': 'grid', 'text': 'Nathan... you\'re a monster... it was me that was wrong. I was wrong to think you were a great leader. I was wrong to think you were a friend.'}, {'npc': 'elm', 'text': 'Guys! Don\'t you know you\'re on the air?!'}, {'npc': 'natan', 'text': 'Damnit! I\'ll kill you all!!!'}, {'event': 'set_flag', 'flag': 'translation_progress', 'value': 3}, {'event': 'battle', 'band': 'tr_nathan'}]};
this[168] = {'theme': 'BROADCAST', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_waitforalien') && 3 == (Core.Get()).game.getFlag('translation_progress');
}, 'msg': [{'npc': 'sir_f', 'text': '...and that is why I propose that our races cooperate, in order to evolve and progress together!'}, {'npc': 'karry', 'text': 'DONE! I think we made it...'}, {'npc': 'grid', 'text': 'Yeah... we dealt with both the government and K.A.U.F.O.. Kind of sad, you know, but I don\'t regret any of this.'}, {'event': 'complete_quest', 'quest': 'talks_with_aliens'}, {'npc': 'sir_f', 'text': 'So now we\'re just waiting for replies from other counties. Grid, thank you so much for all you\'ve done for us. All you\'ve done for the sake of the planet...'}, {'npc': 'grid', 'text': 'Yeah... it\'s really changed my life aswell... I feel an emptiness.'}, {'event': 'finish_game', 'ending': 3}]};
this[169] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Hi. Your voice sounds familiar...'}, {'npc': 'marcy', 'text': 'Oh, hi! My name\'s Marcy and I\'m the voice of freedom here! Chief editor of the \'Wings of the Country\' TV, radiostation and magazine.'}, {'npc': 'grid', 'text': 'So it\'s you who usually speaks about the aliens?'}, {'event': 'set_flag', 'flag': 'marcy_aliens'}, {'npc': 'marcy', 'text': 'Yeah, about them too.'}]};
this[170] = {'theme': 'ALIENS', 'condition': function () {
return (Core.Get()).game.isFlag('marcy_aliens') && !(Core.Get()).game.isFlag('q_alienfix1');
}, 'msg': [{'npc': 'grid', 'text': 'Have you ever encountered a real alien?'}, {'npc': 'marcy', 'text': 'Sure, many times. They\'re kind and cheerful.'}, {'npc': 'grid', 'text': 'No way.'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_alienfix1'}, {'npc': 'marcy', 'text': 'It\'s true! They helped me with my career choice. I was going to be an exotic dancer but they showed me my gift was for writing... and that I was a really bad dancer. And you see, they were right!'}]};
this[171] = {'theme': 'KALISTER', 'msg': [{'npc': 'grid', 'text': 'What can you tell me about this city?'}, {'npc': 'marcy', 'text': 'Kalister and Sirith are rival cities... Each wants to surpass its neighbor.'}, {'npc': 'marcy', 'text': 'In fact, all cities through history are based on this. The progress of science and culture in a city is just from the desire to show off to their neighbours.'}, {'npc': 'marcy', 'text': 'But Kalister is much richer than Sirith, regardless. We have movie stars, wealthy heirs and popular singers. Sirith just has \'outsider art\' and loads of poor people.'}, {'npc': 'marcy', 'text': 'So Kalister\'s clearly won the race.'}]};
this[172] = {'theme': 'KIBO\'S CD', 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'grid', 'text': 'Oh, great! You work on the radio. I have a track you have to hear...'}, {'npc': 'marcy', 'text': 'There are thousands of people who want their songs on the radio. We can\'t listen to just anybody.'}, {'npc': 'grid', 'text': 'This guy is special, really. Listen, you can hear him right now in my earphones.'}, {'npc': '', 'text': '...'}, {'npc': 'marcy', 'text': 'Well, this guy\'s not that bad. I like the way he looks at the world... who is he?'}, {'npc': 'grid', 'text': 'Kibo.'}, {'npc': 'marcy', 'text': 'No kidding?! THE Kibo?! Why didn\'t he just buy his own radio station?!'}, {'npc': 'grid', 'text': 'He wants his music to speak for itself, not buy his way in. So, will you take his disc?'}, {'event': 'remove_quest_item', 'item': 13}, {'event': 'set_flag', 'flag': 'q_kibodisc'}, {'event': 'give_exp', 'value': 500}, {'npc': 'marcy', 'text': 'Of course! This\'ll be great on my show. It\'s good music.'}]};
this[173] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'I\'m no fan of yours. You\'re Biby, aren\'t you? Actress, model and singer.'}, {'npc': 'biby', 'text': 'Even knowing all that, you\'re still not my fan? How could that be?'}, {'npc': 'grid', 'text': 'Because your acting and singing is awful! You\'re just a pretty face.'}, {'npc': 'biby', 'text': 'Thanks!'}, {'npc': 'grid', 'text': 'It\'s not a compliment!'}]};
this[174] = {'theme': 'LOVE HUNTER', 'condition': function () {
return (Core.Get()).game.hasQuestItem(16);
}, 'msg': [{'npc': 'grid', 'text': 'Biby, a friend of mine is interested in you.'}, {'npc': 'biby', 'text': 'Everybody\'s interested in me!'}, {'npc': 'grid', 'text': 'But he\'s rich and beautiful!'}, {'npc': 'biby', 'text': 'Then maybe he has a chance with me.'}, {'npc': 'grid', 'text': 'He\'s sent you this chip that\'ll make you a goddess.'}, {'npc': 'biby', 'text': 'A goddess? How nice! I really deserve this. I\'ll go and implant it at once.'}, {'npc': 'grid', 'text': 'Sure. Have a nice day.'}, {'npc': 'key', 'text': 'That was the most ridiculous story I ever heared...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'But it worked!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': '', 'text': '...', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'biby', 'text': 'Thankyou, delivery boy. I\'ll let you have an autograph!..'}, {'event': 'give_exp', 'value': 1500}, {'event': 'remove_quest_item', 'item': 16}, {'event': 'set_flag', 'flag': 'q_lovehunter', 'value': 2}, {'event': 'add_quest', 'quest': 'love_hunter', 'stage': 2}, {'npc': 'grid', 'text': 'I don\'t need one!'}]};
this[175] = {'theme': 'ABOUT SECT', 'msg': [{'npc': 'grid', 'text': 'What is this sect?!'}, {'npc': 'ibrahim', 'text': 'We are the followers of Armados, our cybernetic god. Join us. We have cookies!'}, {'npc': 'grid', 'text': 'No thanks...'}]};
this[176] = {'theme': 'UNFAITHUL', 'condition': function () {
return !(Core.Get()).game.isFlag('q_wrongones');
}, 'msg': [{'npc': 'ibrahim', 'text': 'Don\'t just walk past. Hear me out.'}, {'npc': 'ibrahim', 'text': 'Could you help our cult with just one case? Not for free, of course, I\'ll reward you with our Faith\'s secret weapon.'}, {'npc': 'grid', 'text': 'What\'s the case?'}, {'npc': 'ibrahim', 'text': 'Our cult once wanted to punish all the unfaithul. To that end we made 13 hell machines of destruction. We later changed our minds but it was too late. The machines proved vulnerable to trojans and now they\'re wandering across the world destroying everything.'}, {'npc': 'ibrahim', 'text': 'You must find all 13 machines and destroy them.'}, {'npc': 'grid', 'text': 'And how can I find them?!'}, {'npc': 'ibrahim', 'text': 'I\'ll give you this holy detector. It\'ll show you the location of every machine.'}, {'event': 'set_flag', 'flag': 'q_wrongones', 'value': 1}, {'event': 'add_quest', 'quest': 'infidels', 'stage': 0}, {'event': 'spawn', 'band': 'arma_machine'}, {'npc': 'grid', 'text': 'I see. If I have enough free time I\'ll see what I can do.'}]};
this[177] = {'theme': 'UNFAITHUL - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_wrongones') && 13 <= (Core.Get()).game.getFlag('kills_inferno_ibrahim');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve destroyed all 13 of the hell machines...'}, {'npc': 'ibrahim', 'text': 'Finally! Armados smiles upon you, stranger.'}, {'npc': 'grid', 'text': 'Yeah, yeah, yeah. Where\'s my reward?'}, {'event': 'give_exp', 'value': 15000}, {'event': 'set_flag', 'flag': 'q_wrongones', 'value': 2}, {'event': 'complete_quest', 'quest': 'infidels'}, {'event': 'give_item', 'item': 119}, {'npc': 'ibrahim', 'text': 'As promised, here is the holy weapon!'}]};
this[178] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'What do you do?'}, {'npc': 'michel', 'text': 'Well... that\'s a slightly embarrassing question... I offer love for money, if you see what I mean.'}, {'npc': 'grid', 'text': 'I see. Well, it\'s a good thing to do. Not everyone can afford free love.'}, {'npc': 'michel', 'text': 'Glad you understand. If you\'re ever in need of a little love, just ask.'}]};
this[179] = {'theme': 'MICHELLE\'S PENDANT', 'condition': function () {
return !(Core.Get()).game.isFlag('q_medalion');
}, 'msg': [{'npc': 'michel', 'text': 'Could I ask you a favor?'}, {'npc': 'grid', 'text': 'Sure, you can always ask.'}, {'npc': 'michel', 'text': 'Once... hmm... while working... I lost my pendant. I think my client took it, he looked like a bandit...'}, {'npc': 'michel', 'text': 'So if you ever find my pendant on a bandit, please return it to me.'}, {'event': 'set_flag', 'flag': 'q_medalion', 'value': 1}, {'event': 'add_quest', 'quest': 'michels_medallion', 'stage': 0}, {'npc': 'grid', 'text': 'Will do!'}]};
this[180] = {'theme': 'MICHELLES\'S PENDANT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_medalion') && (Core.Get()).game.hasQuestItem(17);
}, 'msg': [{'npc': 'michel', 'text': 'Hey! It\'s my pendant! Thank you so much! I don\'t have any cash but I\'m sure I could offer some kinda... reward..'}, {'event': 'remove_quest_item', 'item': 17}, {'npc': 'grid', 'text': 'Hm...'}, {'npc': '', 'text': '...'}, {'npc': '', 'text': '...'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Thanks, Michelle!..'}, {'event': 'set_flag', 'flag': 'q_medalion', 'value': 2}, {'event': 'give_exp', 'value': 1500}, {'event': 'complete_quest', 'quest': 'michels_medallion'}, {'event': 'give_item', 'item': 148}, {'event': 'give_item', 'item': 148}, {'event': 'give_item', 'item': 149}, {'npc': 'michel', 'text': 'Always welcome. Take this as a bonus.'}]};
this[181] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who are you and why do you want to detach people\'s arms?'}, {'npc': 'jax', 'text': 'I\'m Jax, the police chief of Sirith. I enjoy detaching arms. I\'ve become quite attached to it.'}, {'npc': 'grid', 'text': 'I think I\'ll not shake your hand...'}]};
this[182] = {'theme': 'ABOUT SIRITH', 'msg': [{'npc': 'grid', 'text': 'Tell me about Sirith.'}, {'npc': 'jax', 'text': 'Well... Sirith is a great city. Unlike our neighbor, Kalister.'}, {'npc': 'jax', 'text': 'Kalister is full of spoiled, inhuman money-bags, but here you can meet real people. Gifted and intelligent.'}, {'npc': 'jax', 'text': 'Yeah, we\'re not as rich as them. It\'s the art that\'s important here, not the money.'}, {'npc': 'jax', 'text': 'It\'s better to live in poverty than in mediocrity like that Biby from Kalister. Don\'t you agree?'}, {'npc': 'jax', 'text': 'That stupid model has no talent for acting or singing!'}, {'npc': 'grid', 'text': 'Yeah, her movies suck. I see your point.'}]};
this[183] = {'theme': 'CLEARING THE SUBURB', 'condition': function () {
return !(Core.Get()).game.isFlag('q_cityclear');
}, 'msg': [{'npc': 'jax', 'text': 'Would you give me a hand?'}, {'npc': 'grid', 'text': 'NO WAY!!'}, {'npc': 'jax', 'text': 'I don\'t mean literally.'}, {'npc': 'jax', 'text': 'I deal with criminals in the city but there\'s noone to protect suburbs - they\'re crawling with bandits. If you kill at least 50 bandits in the Demien Heights I\'ll make it worth your while.'}, {'event': 'set_flag', 'flag': 'q_cityclear', 'value': 1}, {'event': 'add_quest', 'quest': 'clean_suburbs', 'stage': 0}, {'npc': 'grid', 'text': 'Got it.'}]};
this[184] = {'theme': 'CLEARING THE SUBURB - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_cityclear') && 50 <= (Core.Get()).game.getFlag('kills_bandits_jax');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve killed at least 50 of the bandits!'}, {'npc': 'jax', 'text': 'That\'s all I was asking you to do! Here\'s your reward. Let me shake that manly hand of yours...'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_cityclear', 'value': 2}, {'event': 'complete_quest', 'quest': 'clean_suburbs'}, {'npc': 'grid', 'text': 'Could you please just leave the money on the table?..'}]};
this[185] = {'theme': 'TRADE', 'msg': [{'event': 'trade', 'npc': 'jax'}]};
this[186] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'YOur face seems familiar...'}, {'event': 'set_flag', 'flag': 'elm_film'}, {'npc': 'elm', 'text': 'I\'m Elm Lotter, a director of documentaries. You might have seen me on television.'}]};
this[187] = {'theme': 'ALIEN\'S VIDEOCAM', 'condition': function () {
return (Core.Get()).game.isFlag('elm_camera') && (Core.Get()).game.hasQuestItem(18);
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve found this alien video camera. What do you think?'}, {'npc': 'elm', 'text': 'Oh, great! It\'s just like the one I used to shoot my last movie. I\'ve been regretting not asking for one when I had the chance! Could you please sell it to me?'}, {'npc': 'grid', 'text': 'Maybe. How much is it worth to you?'}, {'npc': 'elm', 'text': '2000'}, {'event': 'remove_quest_item', 'item': 18}, {'event': 'give_money', 'value': 2000}, {'event': 'give_exp', 'value': 10000}, {'npc': 'grid', 'text': 'Deal.'}]};
this[188] = {'theme': 'MOVIE ABOUT ALIENS', 'condition': function () {
return (Core.Get()).game.isFlag('elm_film');
}, 'msg': [{'npc': 'grid', 'text': 'Was it you who directed that \'Real Aliens\' movie?'}, {'npc': 'elm', 'text': 'Yes. That was my greatest movie.'}, {'npc': 'grid', 'text': 'How did you manage to create such realistic dummies of aliens?'}, {'npc': 'elm', 'text': 'Dummies?! I shoot documentaries! Those were real aliens who agreed to let me film them. Everything in the movie is real. Except for the advertisments, they\'re a pack of lies.'}, {'npc': 'grid', 'text': 'I didn\'t think aliens were that friendly.'}, {'npc': 'elm', 'text': 'They are. A very progressive and friendly race. They try to help people who want to learn something... you couldn\'t be more wrong.'}, {'event': 'set_flag', 'flag': 'elm_camera'}, {'event': 'give_exp', 'value': 1000, 'condition': function () {
return !(Core.Get()).game.isFlag('q_alienfix3');
}}, {'event': 'set_flag', 'flag': 'q_alienfix3'}, {'npc': 'elm', 'text': 'By the way, \'Real Aliens\' was shot with one of their own cameras. It was much better quality than any of our tech. I\'ve regretted not asking them for one back then.'}]};
this[189] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'nina_x', 'text': 'My name\'s Nina X. That\'s X to you! Terra incognita! Yeah!'}, {'npc': 'grid', 'text': 'Nice to meet you, Nina. How do you spend your time?..'}, {'event': 'set_flag', 'flag': 'nina_club'}, {'npc': 'nina_x', 'text': 'I like clubs and extreme sports, and I hate to sit still.'}]};
this[190] = {'theme': 'INVITE TO CLUB', 'condition': function () {
return (Core.Get()).game.isFlag('nina_club');
}, 'msg': [{'npc': 'grid', 'text': 'Wanna hang out with me?'}, {'npc': 'nina_x', 'text': 'Sure, just buy me a beer!'}, {'npc': '', 'text': '...'}, {'npc': 'grid', 'text': 'Oh... that party kind of...'}, {'npc': 'nina_x', 'text': 'Yeah, kinda sucks. The DJ\'s lame and the people are so dull.'}, {'npc': 'grid', 'text': 'I agree. It\'s much more fun to just shoot random targets with a gun.'}, {'npc': 'nina_x', 'text': 'Awesome! That\'s really cool! You really do that?'}, {'npc': 'grid', 'text': 'Yep. All the time.'}, {'event': 'set_flag', 'flag': 'nina_join'}, {'npc': 'nina_x', 'text': 'Spacing!'}]};
this[191] = {'theme': 'JOIN THE GROUP', 'condition': function () {
return (Core.Get()).game.isFlag('nina_join');
}, 'msg': [{'npc': 'grid', 'text': 'Wanna travel with me then?'}, {'event': 'give_exp', 'value': 1500}, {'event': 'join_team', 'npc': 10}, {'npc': 'nina_x', 'text': 'I\'d like that! We\'ll rock, people!'}]};
this[192] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Tell me about yourself.'}, {'npc': 'uncle_sam', 'text': 'Oh! I\'m just the simple owner of the greatest farm in the world. I have everything I need in life! Food, money, a beautiful daughter! And I\'ve achieved all that thanks to just one thing.'}, {'npc': 'grid', 'text': 'Farming?'}, {'event': 'set_flag', 'flag': 'sam_trade'}, {'npc': 'uncle_sam', 'text': 'Nope, I sell weapons!'}]};
this[193] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('sam_trade');
}, 'msg': [{'event': 'trade', 'npc': 'uncle_sam'}]};
this[194] = {'theme': 'ABOUT UNCLE SAM', 'msg': [{'npc': 'stacy', 'text': 'My father is the richest farmer in the world! I love this place, it\'s so peaceful! Probably because we have so many guns.'}]};
this[195] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'stacy', 'text': 'Hi, my name\'s Stacy. I\'m Sam\'s daughter.'}, {'event': 'set_flag', 'flag': 'stacy_trade'}, {'npc': 'stacy', 'text': 'I help my father with the farm and sell the supplies and devices. Do you need some devices?'}]};
this[196] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('stacy_trade');
}, 'msg': [{'event': 'trade', 'npc': 'stacy'}]};
this[197] = {'theme': 'HELL', 'condition': function () {
return !(Core.Get()).game.isFlag('hell_greet');
}, 'msg': [{'npc': 'hell', 'text': 'How\'s tricks, cat? What brings you to my place?'}, {'npc': 'grid', 'text': 'Who\'re you anyway?'}, {'npc': 'hell', 'text': 'The name\'s Hell, cutie.'}, {'npc': 'grid', 'text': 'What happened here?'}, {'npc': 'hell', 'text': 'My place was attacked. I had to kill all the intruders.'}, {'npc': 'grid', 'text': 'But there are hundreds of dead bodies!'}, {'npc': 'hell', 'text': 'What can I say, I\'m gifted!.. Wanna play with me?'}, {'npc': 'grid', 'text': 'I\'d rather not...'}, {'npc': 'hell', 'text': 'Ah, you\'re boring! If you ever wanna play, just drop by. I\'m good in battle and in bed.'}, {'event': 'give_exp', 'value': 2500}, {'event': 'set_flag', 'flag': 'hell_greet'}, {'npc': 'grid', 'text': 'Damn, woman, you\'re dangerous...'}]};
this[198] = {'theme': 'ABOUT YOURSELF', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Tell me about yourself.'}, {'npc': 'hell', 'text': 'I had lots of men but they\'re all dead now. How sad.'}]};
this[199] = {'theme': 'ALPHA VILLAGE', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'What is this place?'}, {'npc': 'hell', 'text': 'Alpha Village, the place I was born, long ago now... It\'s abandoned these days but sometimes I get nostalgic.'}, {'npc': 'grid', 'text': 'Where did everyone go?'}, {'npc': 'hell', 'text': 'When I was born, they called me cursed and cast me away. I avenged myself later, like I always do.'}, {'npc': 'grid', 'text': 'It\'s probably hard being different to everyone else...'}, {'npc': 'hell', 'text': 'Not at all. Ordinary, boring people don\'t know what they\'re missing by following someone else\'s rules. I don\'t follow anybody, so I\'m my own master.'}]};
this[200] = {'theme': 'WISHES', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'You\'re stirring forbidden desires in me...'}, {'npc': 'hell', 'text': 'To satisfy those desires you\'ll have to fight me. I can\'t be having with losers.'}]};
this[201] = {'theme': 'ATTACK HELL', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'You\'re too dangerous to be left alive.'}, {'npc': 'hell', 'text': 'Thanks for the compliment! I kinda like you, pretty boy..'}, {'npc': 'grid', 'text': 'Come on, I came to kill you. Please take this seriously!'}, {'npc': 'hell', 'text': 'But you\'re so funny! You honestly seem to think you could do it!'}, {'event': 'set_flag', 'flag': 'hell_after_battle'}, {'event': 'set_area_flag', 'flag': 'hell_after_battle_delay'}, {'event': 'battle', 'band': 'hell', 'level': 20}]};
this[202] = {'theme': 'HELL', 'condition': function () {
return !(Core.Get()).game.isFlag('v_hellget') && (Core.Get()).game.isFlag('hell_after_battle') && !(Core.Get()).game.isAreaFlag('hell_after_battle_delay');
}, 'msg': [{'npc': 'hell', 'text': 'Excellent! You surprised me! You\'re strong and I appreciate that. Want me to serve you? Or you can take my life. It would be a honor for me to die by your hand!'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 1}, {'event': 'talk', 'npc': 'hell', 'no_bye': true}]};
this[203] = {'theme': 'KILL HELL', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_hellget');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 100000}, {'event': 'give_item', 'item': 118}, {'event': 'set_flag', 'flag': 'v_hellkilled'}, {'event': 'allow_bye'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 2}, {'npc': '', 'text': 'You\'ve killed Hell!'}]};
this[204] = {'theme': 'LET HELL JOIN', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_hellget');
}, 'msg': [{'npc': 'grid', 'text': 'Come with me then, but please behave yourself!'}, {'npc': 'hell', 'text': 'I can\'t promise that, darling! I\'m a wicked girl, you know.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'join_team', 'npc': 11}, {'event': 'allow_bye'}, {'event': 'set_flag', 'flag': 'v_hellget', 'value': 2}, {'npc': 'grid', 'text': 'I think I\'m gonna regret this...'}]};
this[205] = {'theme': 'OTHERTHROW THE PRESIDENT', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'event': 'complete_quest', 'quest': 'meta_uprise'}, {'npc': 'grid', 'text': 'The time has come to change the world.'}, {'npc': 'mist', 'text': 'Why?'}, {'npc': 'grid', 'text': 'Lina will make a good ruler, even if she is a half-crazed, computer-modified nerd.'}, {'npc': 'mist', 'text': 'Nonsense. This country need a tyrant, not some school girl with a PC in her skull. I\'m getting tired of you fools. You just can\'t appreciate my brilliance. KILL THEM! KILL THEM ALL, MY SOLDIERS!'}, {'event': 'battle', 'band': 'mist'}]};
this[206] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Hey, quiet one, talk to me.'}, {'npc': 'kage', 'text': '...'}]};
this[207] = {'theme': 'JOIN THE GROUP', 'condition': function () {
return !(Core.Get()).game.isInTeam(9);
}, 'msg': [{'npc': 'grid', 'text': 'You seem pretty strong. Wanna join my quest?'}, {'npc': 'kage', 'text': '...'}]};
this[208] = {'theme': 'JOIN THE GROUP', 'condition': function () {
return (Core.Get()).game.isInTeam(9);
}, 'msg': [{'npc': 'grid', 'text': 'This might sound stupid, but do you want to join my team?'}, {'npc': 'kage', 'text': 'Оkay.'}, {'event': 'join_team', 'npc': 6}, {'npc': 'feather', 'text': 'Oh... why is he staring at me?..'}, {'npc': 'kage', 'text': 'You are kind and innocent. They are not. Still, I will protect you all.'}, {'npc': 'feather', 'text': 'Well, thanks... I\'m blushing!..'}, {'npc': 'grid', 'text': 'Damn, that quiet guy is really strange.'}, {'event': 'give_exp', 'value': 3000}, {'npc': 'kage', 'text': '...'}]};
this[209] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'grandin', 'text': 'I\'m usually called Grandin. I\'m the monk of this highland town. Since you prefer to use weapons there\'s probably nothing I can teach you.'}, {'npc': 'grid', 'text': 'And who is the quiet guy over there?', 'condition': function () {
return !(Core.Get()).game.isInTeam(6);
}}, {'npc': 'grandin', 'text': 'That\'s my student, Kage. He rarely takes a liking to anyone. Only a pure and innocent person can soothe his troubled heart.', 'condition': function () {
return !(Core.Get()).game.isInTeam(6);
}}, {'npc': 'grid', 'text': 'Maybe you could tech me how to improve my body?'}, {'event': 'set_flag', 'flag': 'grandin_teach'}, {'npc': 'grandin', 'text': 'Well... for €5,000 I\'ll do it. The monastery is in need of donations.'}]};
this[210] = {'theme': 'HIGHLAND Village', 'msg': [{'npc': 'grid', 'text': 'What is this place?'}, {'npc': 'grandin', 'text': 'It\'s a town of monks, hidden high in the mountains. It has no name. One can learn here how to use one\'s body to it\'s fullest.'}]};
this[211] = {'theme': 'LEARN: SURVIVAL, COST: €5000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_learnlive') && (Core.Get()).game.isFlag('grandin_teach') && (Core.Get()).game.money >= 5000;
}, 'msg': [{'npc': 'grid', 'text': 'Teach me survival skils!'}, {'event': 'remove_money', 'value': 5000}, {'event': 'skill_up', 'npc': 0, 'skill': 'vit'}, {'event': 'set_flag', 'flag': 'v_learnlive'}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grandin', 'text': '...'}]};
this[212] = {'theme': 'DOCTOR RADE', 'msg': [{'npc': 'grid', 'text': 'Aren\'t you the great A. F. Rade, infamous weapon designer?'}, {'event': 'set_flag', 'flag': 'rade_trade'}, {'npc': 'dr_rade', 'text': 'That\'s me, but I regret everything I\'ve done. Still, I can sell you something from my stock. I certainly don\'t need them anymore.'}]};
this[213] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('rade_trade');
}, 'msg': [{'event': 'trade', 'npc': 'dr_rade'}]};
this[214] = {'theme': 'BECCORD\'S CHIP', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(19);
}, 'msg': [{'npc': 'grid', 'text': 'Do you know where I can find chip models 404, 101 and 707?'}, {'npc': 'garret', 'text': 'Did you just choose them by the numbers?.. Well, I think I can help you out. I have a spare chip 101. Here, take it.'}, {'event': 'give_quest_item', 'item': 19}, {'npc': 'garret', 'text': 'Chip 707 is frequntly used in Integra-City and 404... that\'s a forbidden military chip... Anyway, good luck.'}, {'npc': 'grid', 'text': 'Thanks, Garret!'}]};
this[215] = {'theme': 'JADE ISLAND', 'msg': [{'npc': 'grid', 'text': 'What is this place?'}, {'npc': 'garret', 'text': 'This is Jade Island, a settlement of genetic engineers. We\'re tring to create a Mystic Monster here... but you shouldn\'t know that.'}, {'npc': 'grid', 'text': 'Erm...'}, {'npc': 'garret', 'text': 'Relax, I\'m kidding. Why would we need a Mystic Monster? We don\'t, really.'}]};
this[216] = {'theme': 'DEKKIS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_killeddekkis');
}, 'msg': [{'npc': 'grid', 'text': 'I\'m sorry to bring it up but... we\'ve occasionally run into your son Dekkis...'}, {'npc': 'garret', 'text': 'Damn! Don\'t talk to me about him! Is the bastard still alive?!'}, {'npc': 'grid', 'text': 'Well... he was when we first spoke to him... but then he turned into a minotaur and we had to kill him... We\'re sorry.'}, {'npc': 'garret', 'text': 'I\'ve thought of him as dead to me... but it still hurts...'}, {'npc': 'garret', 'text': 'You know, he wasn\'t even my son in the first place. I tested his DNA and found out my wife had cheated on me... but never mind.'}, {'npc': 'garret', 'text': 'Dekkis was insane, so a part of me feels relieved to know he\'s finally at rest. Poor fellow... Oh, how I wished he was normal...'}, {'event': 'give_exp', 'value': 12000}, {'event': 'give_item', 'item': 101}, {'event': 'set_flag', 'flag': 'v_killeddekkis', 'value': 2}, {'npc': 'garret', 'text': 'Here, take this. And please, leave me be for a while.'}]};
this[256] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.hasQuestItem(27) && !(Core.Get()).game.hasQuestItem(26);
}, 'msg': [{'event': 'trade', 'npc': 'garret'}]};
this[217] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you, pink-haired girl?'}, {'event': 'set_flag', 'flag': 'xena_soils'}, {'npc': 'ksenya', 'text': 'The name\'s Xenya, I\'m a microbiologist! I\'ve found useful technologies for my research on Jade Island... but now I lack the materials to study!'}]};
this[218] = {'theme': 'SEARCH OF MATERIALS', 'condition': function () {
return (Core.Get()).game.isFlag('xena_soils') && !(Core.Get()).game.isFlag('q_gesoils');
}, 'msg': [{'npc': 'grid', 'text': 'Do you need help collecting your research materials?'}, {'npc': 'ksenya', 'text': 'That would be great! I need soil samples from every region of the continent.'}, {'event': 'give_quest_item', 'item': 20}, {'npc': 'ksenya', 'text': 'Take this, it\'s a soil collector. It\'s really easy to use! Just press [TAKE SOIL SAMPLE] when it appears on your screen in each region.'}, {'event': 'set_flag', 'flag': 'q_gesoils', 'value': 1}, {'event': 'add_quest', 'quest': 'soil_analysis', 'stage': 0}, {'npc': 'grid', 'text': 'Obviously.'}]};
this[219] = {'theme': 'SEARCH OF MATERIALS - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gesoils');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve collected your soil samples.'}, {'event': 'set_flag', 'flag': 'q_gesoils', 'value': 2}, {'event': 'give_exp', 'value': 15000}, {'event': 'give_item', 'item': 115}, {'event': 'complete_quest', 'quest': 'soil_analysis'}, {'npc': 'ksenya', 'text': 'Great! I\'ve got something to give you for your help...'}]};
this[220] = {'theme': 'ALIEN', 'condition': function () {
return 7 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Hey, Alien King! Give it up! We\'ve come for you!'}, {'npc': 'sir_f', 'text': 'I already know you came all this way to kill me. First, let me introduce myself. My name is sir F.'}, {'npc': 'grid', 'text': 'Not interested. I\'m here to get rid of all the aliens.'}, {'npc': 'sir_f', 'text': 'Grid. Haven\'t you ever wondered whether we\'re good or evil?'}, {'npc': 'grid', 'text': 'No, I haven\'t.'}, {'npc': 'sir_f', 'text': 'Well maybe you should have.'}, {'npc': 'grid', 'text': 'Nah, I shouldn\'t.'}, {'npc': 'sir_f', 'text': 'What do you mean you shouldn\'t?! Why?'}, {'npc': 'grid', 'text': 'You\'re disrupting the development of this planet by interfering in our politics, science and culture.'}, {'npc': 'grid', 'text': 'You\'re preventing us from discovering our own way which could be even better than yours. Well, maybe not better but our own. Unique.'}, {'npc': 'sir_f', 'text': 'What nonsense...'}, {'event': 'complete_quest', 'quest': 'natan_plan'}, {'npc': 'grid', 'text': 'Forget it. I\'ll do my reasoning with a gun!'}, {'event': 'battle', 'band': 'sir_f'}]};
this[221] = {'theme': 'ALIEN RACE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_kaufo_betrayal') && !(Core.Get()).game.isFlag('q_waitforalien') && !(Core.Get()).game.isFlag('aliens_friends');
}, 'msg': [{'event': 'set_flag', 'flag': 'aliens_friends'}, {'npc': 'karry', 'text': 'Grid, this is our Emperor, sir F. Please, talk to him...'}]};
this[222] = {'theme': 'ALIENS', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.getFlag('battle_key');
}, 'msg': [{'npc': 'karry', 'text': 'There is a huge battle!'}, {'npc': 'key', 'text': 'You betrayer, Grid! I\'ve come to do what you were supposed to.'}, {'npc': 'grid', 'text': 'How did you find us?'}, {'npc': 'key', 'text': 'There\'s a locator implanted under your skin. All K.A.U.F.O. members have one. The truth of it is that you led us here...'}, {'npc': 'grid', 'text': 'Key, why are you so stubborn?! Why won\'t you stop fighting for the wrong side?'}, {'npc': 'key', 'text': 'It\'s you who\'s wrong, Grid! The planet must develop in it\'s own way, not through their interference. You can\'t know whether this cooperation will lead to peace or to slavery!'}, {'event': 'set_flag', 'flag': 'alienbase_afterbattle'}, {'event': 'set_flag', 'flag': 'battle_key'}, {'event': 'battle', 'band': 'key'}]};
this[223] = {'theme': 'ALIENS', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_waitforalien') && (Core.Get()).game.isFlag('alienbase_afterbattle');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'npc': 'grid', 'text': 'Key...'}, {'npc': 'karry', 'text': 'She\'s still alive. We\'ll put her into the life-support cell - I think we can save her.'}, {'npc': 'grid', 'text': 'Thanks. Sorry for leading them here...'}, {'npc': 'sir_f', 'text': 'It\'s fine, you didn\'t know. Anyway, we\'re all still alive so there\'s no harm done.'}, {'npc': 'sir_f', 'text': 'By the way, Grid, everything\'s ready for the plan. I\'m going to broadcast my message to the world. Marcy in Kalister and Elm in Sirith will help us with that.'}, {'npc': 'sir_f', 'text': 'They\'re expecting you. Go to Kalister, from there we\'ll start our broadcast across all the world\'s channels.'}, {'npc': 'sir_f', 'text': 'Be careful. When our TV-show begins the government and K.A.U.F.O. will do all they can to stop us.'}, {'npc': 'sir_f', 'text': 'After the preparations for transmission are done, I\'ll join you.'}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 4}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 4}, {'npc': 'grid', 'text': 'Got it.'}]};
this[224] = {'theme': 'I WANNA KNOW THE TRUTH', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_kaufo_betrayal') && !(Core.Get()).game.isFlag('alien_truth');
}, 'msg': [{'npc': 'sir_f', 'text': 'Grid, I\'ve been expecting you...'}, {'npc': 'grid', 'text': 'Tell me the truth about the aliens.'}, {'npc': 'sir_f', 'text': 'You see, Grid, the fact is we\'re a peaceful civilization, and we want to help your planet by sharing our knowledge with you.'}, {'npc': 'sir_f', 'text': 'Some of your current technologies are already made with our help.'}, {'npc': 'sir_f', 'text': 'Yet, at the same time, you people gives too much of your lives over to material things. That\'s why we\'re holding discos from time to time, to save people from drowning in routine.'}, {'npc': 'sir_f', 'text': 'Recently, we tried to make humans immortal... but that research was interrupted by K.A.U.F.O.'}, {'npc': 'sir_f', 'text': 'Their hatred is unreasonable, although fear of anything foreign seems to be normal on your planet.'}, {'npc': 'sir_f', 'text': 'That\'s the truth, Grid. You see, we\'re not doing any harm, only trying to improve things. You should understand that now, with everything you\'ve seen already.'}, {'npc': 'karry', 'text': 'Grid, may I travel with you? I\'m interested in studying your world but I still don\'t have enough information.'}, {'event': 'set_flag', 'flag': 'alien_truth'}, {'event': 'give_exp', 'value': 10000}, {'event': 'join_team', 'npc': 5}, {'npc': 'grid', 'text': 'Okay. Come with us.'}]};
this[225] = {'theme': 'HELP ALIENS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('alien_truth');
}, 'msg': [{'npc': 'grid', 'text': 'I want to help you improve humanity.'}, {'npc': 'sir_f', 'text': 'That\'s good. We need support from the people of this planet, else our efforts are futile. We\'re going to demonstrate our intentions to the public.'}, {'npc': 'sir_f', 'text': 'Grid, take this radio. With this I\'ll be able to contact you when we\'re ready to make our declaration.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'alien_truth', 'value': 2}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 1}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 1}, {'event': 'give_quest_item', 'item': 21}, {'npc': 'sir_f', 'text': 'I\'ll teleport you to Integra City. When you\'re ready to come back, talk to Claude there and tell him Sir F sent you.'}, {'event': 'move_to_area', 'area': 'integra', 'enter': true}]};
this[226] = {'theme': 'LEAVE THE BASE', 'condition': function () {
return (Core.Get()).game.isFlag('q_waitforalien');
}, 'msg': [{'npc': 'grid', 'text': 'I want to return to the continent.'}, {'npc': 'sir_f', 'text': 'No problem, I\'ll teleport you there.'}, {'event': 'move_to_area', 'area': 'integra'}]};
};
_global.TalkData3En = v1;
_global.TalkData3En extends TalkData4En;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData3En.prototype, null, 1);
}
#endinitclip
}
movieClip 1953 __Packages.TalkData2En {
#initclip
if (!_global.TalkData2En) {
var v1 = function () {
super();
this[75] = {'theme': 'RAINMACHINE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_rainmachine');
}, 'msg': [{'npc': 'grid', 'text': 'Do you know how to fix the rainmachine in Rainland?'}, {'npc': 'sarahata', 'text': 'What? It\'s broken?'}, {'npc': 'grid', 'text': 'Yes. D\'you know about it?'}, {'npc': 'sarahata', 'text': 'Sure. Our ancestors made it 99 years ago and sold it to them... Man, they\'re lucky our grandfathers gave them a 100-year warranty. We\'ll deliver the new one for free in 10 working days.'}, {'event': 'give_exp', 'value': 1500}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 2}, {'event': 'add_quest', 'quest': 'rain_machine', 'stage': 1}, {'npc': 'grid', 'text': 'Great news!'}]};
this[76] = {'theme': 'ALLIANCE WITH META-WARRIORS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'grid', 'text': 'I am the messenger of cyberdudes - Hyper-Warriors!..'}, {'npc': 'craven', 'text': 'Meta-Warriors!'}, {'npc': 'grid', 'text': 'Yeah, them. They suggest cooperation.'}, {'npc': 'sarahata', 'text': 'I\'ve heared of the Meta-Warriors and their hi-tech force but we\'ll need proof of your intentions.'}, {'npc': 'grid', 'text': 'Like what?'}, {'npc': 'sarahata', 'text': 'Firstly, we need a water filter. Secondly - the Internet.'}, {'npc': 'grid', 'text': 'Internet?'}, {'npc': 'sarahata', 'text': 'Yes. We don\'t recieve the signal here so we have to send caravans to the nearby towns. We keep a list of the requests we need of the Web and periodically send our men to take care of them.'}, {'npc': 'craven', 'text': 'We can install the Enforcers by MWtech here. You\'ll get your signal then. And we can dig a tunnel to the Horse Sea for your water. Will that be enough for you?'}, {'npc': 'sarahata', 'text': 'Sure. Since our government doesn\'t care about our problems we need somebody on our side.'}, {'event': 'give_exp', 'value': 750}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_oasis', 'stage': 1}, {'npc': 'grid', 'text': 'Okay! Let\'s hurry back to Lina and get these transducers off.'}]};
this[77] = {'theme': 'OASIS', 'msg': [{'npc': 'grid', 'text': 'Tell me about this place.'}, {'npc': 'sarahata', 'text': 'Oh, it\'s great here. There\'s water, food, everything you could need. We even have computers, robo-workers and massaging chairs!'}, {'npc': 'grid', 'text': 'Very progressive.'}]};
this[78] = {'theme': 'GARTH', 'condition': function () {
return !(Core.Get()).game.isFlag('');
}, 'msg': [{'npc': 'grid', 'text': 'What is «Garth»?'}, {'npc': 'mihel', 'text': 'Garth is a military organization, based on good intentions and tyranny. We hate everythig that pisses us off and fight against it.'}, {'npc': 'grid', 'text': 'What pisses you off?..'}, {'npc': 'mihel', 'text': 'EVERYTHING!!!'}]};
this[79] = {'theme': 'ABOUT YOURSELF', 'condition': function () {
return !(Core.Get()).game.isFlag('');
}, 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'mihel', 'text': 'I\'m the one who\'ll be breaking your nose if you don\'t shut the hell up.'}]};
this[80] = {'theme': 'LOVE LETTER FROM LIZ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(9);
}, 'msg': [{'npc': 'grid', 'text': 'Hm... Migel! I have a love-letter for you...'}, {'event': 'remove_quest_item', 'item': 9}, {'npc': 'mihel', 'text': 'GIVE IT TO ME!.. It\'s a real one, damn! A real girl! I only started the Garth beause noone loved me...'}, {'npc': 'mihel', 'text': 'She\'s smart and beautiful if her handwriting\'s anything to go by! Tell her to grab her stuff and move here!'}, {'event': 'give_exp', 'value': 2500}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 6}, {'event': 'add_quest', 'quest': 'love_story_2', 'stage': 1}, {'npc': 'grid', 'text': 'Ok... Sure...'}]};
this[81] = {'theme': 'ACE\'S DEBT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Yeah, yeah. War is fun, but it\'s time to pay your debt.'}, {'npc': 'vermut', 'text': 'What the heck?!'}, {'npc': 'grid', 'text': 'You owe Ace, so you\'d better pay up.'}, {'npc': 'vermut', 'text': 'Hell no! I\'ll waste you!'}, {'event': 'set_flag', 'flag': 'q_vermut_after_battle'}, {'event': 'set_area_flag', 'flag': 'vermut_battle'}, {'event': 'battle', 'band': 'vermut'}]};
this[82] = {'theme': 'ACE\'S DEBT', 'condition': function () {
return (Core.Get()).game.isFlag('q_vermut_after_battle') && !(Core.Get()).game.isAreaFlag('vermut_battle');
}, 'msg': [{'npc': 'vermut', 'text': 'Alright, alright, I was wrong. I\'m making the money transfer right now. Done. Money returned.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 2}, {'event': 'set_flag', 'flag': 'q_vermut_after_battle', 'value': 0}, {'event': 'add_quest', 'quest': 'debt_collection', 'stage': 1}, {'npc': 'grid', 'text': 'You\'d best be telling the truth, otherwise I\'ll be back.'}]};
this[83] = {'theme': 'TRADE', 'msg': [{'npc': 'grid', 'text': 'D\'you have anything you could sell me?!'}, {'npc': 'zoid', 'text': 'Sure I do, nonentity! We even have special discounts for nonenities!'}, {'event': 'trade', 'npc': 'zoid'}]};
this[84] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Tell me about yourself, oh embodiment of beauty!'}, {'npc': 'bristol', 'text': 'Oh, well I like to draw... I also enjoy posing naked. For some reason I\'m better known for my posing than my drawings. It\'s odd, I draw much better than I undress.'}, {'npc': 'grid', 'text': 'Might I have I seen pictures of you?..'}, {'npc': 'bristol', 'text': 'Take a look.'}, {'npc': 'grid', 'text': 'Oh my god! You\'ve pulled of your blouse! Oh... now I remember you.'}, {'npc': 'bristol', 'text': 'No doubt.'}]};
this[85] = {'theme': 'HELP BRISTOL', 'condition': function () {
return !(Core.Get()).game.isFlag('q_helpbrisol');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 1}, {'npc': 'grid', 'text': 'Maybe you could use some help? If there\'s anything I could do to help - anything - I\'d be...'}, {'npc': 'bristol', 'text': 'Could you deliver this citation papper to Seth in Casteda? He\'s managed to avoid all the lawyers I\'ve sent.'}, {'npc': 'grid', 'text': 'Did he desire you because of your beauty?'}, {'event': 'add_quest', 'quest': 'bristol_divorce', 'stage': 0}, {'npc': 'bristol', 'text': 'It\'s worse than that, he married me. We\'ve been married for a week now and I\'ve had all I can take.'}]};
this[86] = {'theme': 'HELP BRISTOL – DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_helpbrisol');
}, 'msg': [{'npc': 'grid', 'text': 'The pappers are delivered. Why did you marry him anyway?'}, {'npc': 'bristol', 'text': 'Because of the money. Why else?'}, {'npc': 'grid', 'text': 'Sure thing...'}, {'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 3}, {'event': 'complete_quest', 'quest': 'bristol_divorce'}, {'event': 'give_exp', 'value': 2000}, {'event': 'give_quest_item', 'item': 10}, {'npc': 'bristol', 'text': 'Please, take this for your help!'}]};
this[87] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'stan', 'text': 'Dude, I\'m Stan, the mayor of this town! S\'up?'}, {'npc': 'grid', 'text': 'No kidding? The mayor?!'}, {'npc': 'stan', 'text': 'Knock yourself out, dude! The mayor!'}]};
this[88] = {'theme': 'LOVE LETTER FROM LIZ', 'condition': function () {
return (Core.Get()).game.hasQuestItem(11);
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve been asked to deliver this letter.'}, {'npc': 'stan', 'text': 'Cool, man! A love-letter! Is the chick smooth?'}, {'npc': 'grid', 'text': 'She\'s fine.'}, {'npc': 'stan', 'text': 'Sweet! Tell I\'ll pick her up tomorow. I\'ll be wearing a mask and riding a bike, so I\'m not recognised. I\'ve got a reputation to uphold. I am the mayor, you know!'}, {'event': 'give_exp', 'value': 2500}, {'event': 'remove_quest_item', 'item': 11}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 2}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 3}, {'npc': 'grid', 'text': 'I\'ll pass your message on to her...'}]};
this[89] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'viola', 'text': 'I\'m Viola. You probably heared about me.'}, {'npc': 'grid', 'text': 'Nope. Not a word.'}, {'npc': 'viola', 'text': 'How could you?! I\'m the unequalled musician known for her unsurpassed performing skills!'}]};
this[90] = {'theme': 'ABOUT KAMERON', 'msg': [{'npc': 'grid', 'text': 'What do you know about this town?'}, {'npc': 'viola', 'text': 'Kameron is the capital city. We have lots of guests from other cities, mostly here trying to find work. We have everything - musicians, artists, godfathers... and our mayor...'}, {'npc': 'viola', 'text': 'Well, he\'s like no other...'}]};
this[91] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'ace', 'text': 'Name\'s Ace, I\'m both awesome and rich. If you want I could offer you credit. But be sure to return it in 2 hours or every headhunter in the city will will be chasing you down.'}]};
this[92] = {'theme': 'LOAN €1,000', 'condition': function () {
return !(Core.Get()).game.isFlag('v_credit');
}, 'msg': [{'npc': 'grid', 'text': 'Ace, give me a 1000$.'}, {'event': 'give_money', 'value': 1000}, {'event': 'set_flag', 'flag': 'v_credit'}, {'npc': 'ace', 'text': 'No problem! Just be sure to return it in 2 hours.'}]};
this[93] = {'theme': 'RETURN €1,000', 'condition': function () {
return (Core.Get()).game.isFlag('v_credit') && (Core.Get()).game.money < 1000;
}, 'msg': [{'npc': 'grid', 'text': '...and how much do I owe you?..'}, {'npc': 'ace', 'text': '1000$. Hurry it up or you\'ll be hunted down!'}, {'npc': 'grid', 'text': 'Got it. I\'ll find the money.'}]};
this[94] = {'theme': 'RETURN €1,000', 'condition': function () {
return (Core.Get()).game.isFlag('v_credit') && (Core.Get()).game.money >= 1000;
}, 'msg': [{'npc': 'grid', 'text': 'Here\'s your money, pal.'}, {'event': 'set_flag', 'flag': 'v_credit', 'value': 0}, {'event': 'remove_money', 'value': 1000}, {'npc': 'ace', 'text': 'Excellent! I do admire the honest ones... and I kill the liars! Come again!'}]};
this[95] = {'theme': 'DISCIPLINE THE DEBTOR', 'condition': function () {
return !(Core.Get()).game.isFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Got any work for me?'}, {'npc': 'ace', 'text': 'Yeah, I\'ve got something for you. There\'s a member of Garth named Vermuth who owes me money. Get him to think his situation over.'}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 1}, {'event': 'add_quest', 'quest': 'debt_collection', 'stage': 0}, {'npc': 'grid', 'text': 'Got it.'}]};
this[96] = {'theme': 'DISCIPLINE THE DEBTOR - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_acedebt');
}, 'msg': [{'npc': 'grid', 'text': 'Has the payment arrived?'}, {'event': 'give_exp', 'value': 2500}, {'event': 'give_money', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_acedebt', 'value': 3}, {'event': 'complete_quest', 'quest': 'debt_collection'}, {'npc': 'ace', 'text': 'Yeah, I\'ve been notified of it. Here. For your work.'}]};
this[97] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Are you a local?'}, {'event': 'set_flag', 'flag': 'about_rain_machine', 'condition': function () {
return !(Core.Get()).game.isFlag('about_rain_machine');
}}, {'npc': 'shell', 'text': 'No, I\'m a wandering adventurer. I\'m here to find out what\'s wrong with the rainmachine.'}]};
this[98] = {'theme': 'RAINMACHINE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('about_rain_machine');
}, 'msg': [{'npc': 'grid', 'text': 'What is this rainmachine?'}, {'npc': 'shell', 'text': 'Look, this town\'s called Rainland, right? Do you see any rain here?'}, {'npc': 'grid', 'text': 'Nope.'}, {'npc': 'shell', 'text': 'That\'s what\'s wrong! Rainland got it\'s name \'cause it was equipped with a Watermaker-3000 machine. Without it this place is dry and unpleasant.'}, {'npc': 'grid', 'text': 'What were you able to find out?'}, {'event': 'set_flag', 'flag': 'about_rain_machine', 'value': 2}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 1}, {'event': 'add_quest', 'quest': 'rain_machine', 'stage': 0}, {'npc': 'shell', 'text': 'Well, it\'s broken but there\'s a note on the machine "Made in Oasis". That\'s all I know.'}]};
this[99] = {'theme': 'RAINMACHINE - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_rainmachine');
}, 'msg': [{'npc': 'grid', 'text': 'Oasis will deliver the new rainmachine for free in 2 week\'s time.'}, {'event': 'give_exp', 'value': 3500}, {'event': 'set_flag', 'flag': 'q_rainmachine', 'value': 3}, {'event': 'complete_quest', 'quest': 'rain_machine'}, {'npc': 'shell', 'text': 'You\'re good! I really admire you! Now the rain will finally return to this land.'}]};
this[100] = {'theme': 'ABOUT YOURSELF', 'condition': function () {
return 3 > (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'grid', 'text': 'Hi! Why so sad and demotivated?'}, {'npc': 'liz', 'text': 'I\'m in love with a man...'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 1, 'condition': function () {
return !(Core.Get()).game.isFlag('q_lizandsten');
}}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 0, 'condition': function () {
return !(Core.Get()).game.isFlag('q_lizandsten');
}}, {'npc': 'liz', 'text': 'This man... his name is Stan... he\'s the mayor of Kameron and my love for him is hopeless!'}]};
this[101] = {'theme': 'LOVE LETTER', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'grid', 'text': 'Maybe I could help you somehow?'}, {'npc': 'liz', 'text': 'Noone can help me!.. Unless! Maybe you can deliver a love letter to him?.. Could you?'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 2}, {'event': 'give_quest_item', 'item': 11}, {'event': 'add_quest', 'quest': 'love_story', 'stage': 1}, {'npc': 'grid', 'text': 'Sure, why not?'}]};
this[102] = {'theme': 'LOVE LETTER - DONE', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'liz', 'text': 'How did it go?!'}, {'npc': 'grid', 'text': 'I\'ve delivered the letter.'}, {'npc': 'liz', 'text': 'And?!!'}, {'npc': 'grid', 'text': 'He said he\'ll meet you tomorrow. He\'ll be riding a bike and wearing a mask.'}, {'event': 'give_exp', 'value': 2000}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 4}, {'event': 'complete_quest', 'quest': 'love_story'}, {'event': 'start_timer', 'timer': 't_lizstendate'}, {'npc': 'liz', 'text': 'Great! Thanks! Now I\'m much happier!'}]};
this[103] = {'theme': 'HOW DID THE DATE GO?', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_lizandsten') && (Core.Get()).game.timers.t_lizstendate >= 1500;
}, 'msg': [{'event': 'kill_timer', 'timer': 't_lizstendate'}, {'npc': 'grid', 'text': 'How did your date go?'}, {'npc': 'liz', 'text': 'He dumped me! He said I\'m too emotional! I was only crying and then sort of tried to kill him...'}, {'npc': 'grid', 'text': 'Poor thing...'}, {'npc': 'liz', 'text': 'Nevermind that now! There\'s one sure cure for tragic love. I\'m in love again! This time my sweetheart is the fascist Miguel of Garth!'}, {'npc': 'grid', 'text': 'Girl, you have really bad taste in men...'}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 5}, {'event': 'give_quest_item', 'item': 9}, {'event': 'add_quest', 'quest': 'love_story_2', 'stage': 0}, {'npc': 'liz', 'text': 'It\'s nothing like that! Please deliver this letter to Miguel in Beta Village.'}]};
this[104] = {'theme': 'LOVE LETTER 2 - DONE', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_lizandsten');
}, 'msg': [{'npc': 'liz', 'text': 'Well?!'}, {'npc': 'grid', 'text': 'Your letter touched his heart. He wants you to move to Beta Village with him.'}, {'npc': 'liz', 'text': 'Yay! I\'m already on my way!!'}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_lizandsten', 'value': 7}, {'event': 'complete_quest', 'quest': 'love_story_2'}, {'npc': 'grid', 'text': 'I can\'t see this lasting...'}]};
this[105] = {'theme': 'ABOUT YOURSELF', 'msg': [{'event': 'set_flag', 'flag': 'alice_trade'}, {'npc': 'alice', 'text': 'My name\'s Alice. I sell things round here. Whatcha need, handsome?'}]};
this[106] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('alice_trade');
}, 'msg': [{'event': 'trade', 'npc': 'alice'}]};
this[107] = {'theme': 'ALIEN BASE', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Hmm... Captain Harkos, could you get me to a place deep in the Sea bank?'}, {'npc': 'harcos', 'text': 'I can do anything! But why should I?'}, {'npc': 'key', 'text': 'Because we\'re asking you politely?', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'harcos', 'text': 'That\'ll just motivate me to punch you in the face!', 'condition': function () {
return (Core.Get()).game.isInTeam(1);
}}, {'npc': 'grid', 'text': 'Would some money convince you?'}, {'npc': 'harcos', 'text': 'I don\'t need the money!'}, {'npc': 'grid', 'text': 'Then why not give me all yours?'}, {'npc': 'harcos', 'text': 'A joker, eh? I hate jokers! Prove to me that you\'re strong enough to ride «Inevitability»! Go to Last Stand Plains, South-West of here. A bunch of grabbers are lurking around there.'}, {'npc': 'grid', 'text': 'What\'s wrong with them?'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 5}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 4}, {'npc': 'harcos', 'text': 'They\'re dangerous creatures. If you can kill at least 3 of them I\'ll consider you strong enough.'}]};
this[108] = {'theme': 'GRABBERS', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'What are these \'grabbers\'?'}, {'npc': 'harcos', 'text': 'Well you see, the undead are those returned to life by technology and mutants are people who\'ve been changed by radiation. Each of them are a disgrace before God but grabbers... the grabbers are BOTH at the same time! Soldiers killed and mutated by radiation then returned to life...'}]};
this[109] = {'theme': 'CAPTAIN\'S TASK', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan') && 3 > (Core.Get()).game.getFlag('kills_grabbers_harcos');
}, 'msg': [{'npc': 'harcos', 'text': 'So, have you killed 3 grabbers?'}, {'npc': 'grid', 'text': 'Sure!'}, {'npc': 'harcos', 'text': 'You have the nerve to lie to me?! I can tell that you haven\'t! Get on and kill them!'}]};
this[110] = {'theme': 'CAPTAIN\'S TASK - DONE', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_bigalienplan') && 3 <= (Core.Get()).game.getFlag('kills_grabbers_harcos');
}, 'msg': [{'npc': 'harcos', 'text': 'So, have you killed 3 grabbers?'}, {'npc': 'grid', 'text': 'Sure!'}, {'npc': 'harcos', 'text': 'I believe you. I can see the truth in your eyes.'}, {'event': 'give_exp', 'value': 7000}, {'npc': 'grid', 'text': 'Let\'s DIVE!'}, {'npc': 'harcos', 'text': 'Hold the horses. I have one more task.'}, {'npc': 'grid', 'text': 'That\'s unfair! You told me there would only be ONE task! Let\'s DIVE!!!'}, {'npc': 'harcos', 'text': 'Erm... we\'re not able to... While you were away some Meta-Warriors stole an important part of my ship - the vacuum engine. I think those thieves are still somewhere around the Strat plateau to our West. Chase them down and bring me back my engine!'}, {'npc': 'grid', 'text': 'I guess I have no choice then... We can\'t get under way until I finish your stupid task!'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 6}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 5}, {'npc': 'harcos', 'text': 'Yeah, it\'s as you say. Go find those thieves.'}]};
this[111] = {'theme': 'VACUUM ENGINE', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_bigalienplan') && !(Core.Get()).game.hasQuestItem(12);
}, 'msg': [{'npc': 'harcos', 'text': 'Where\'s my vacuum engine?'}, {'npc': 'grid', 'text': 'Apparently running around the Strat plateau somewhere.'}, {'npc': 'harcos', 'text': 'Then what are you waiting for? Go get them!'}]};
this[112] = {'theme': 'VACUUM ENGINE - DONE', 'condition': function () {
return 6 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.hasQuestItem(12);
}, 'msg': [{'npc': 'harcos', 'text': 'Where\'s my vacuum engine?'}, {'npc': 'grid', 'text': 'Right here!'}, {'event': 'remove_quest_item', 'item': 12}, {'event': 'give_exp', 'value': 5000}, {'npc': 'harcos', 'text': 'Great! We can finally set off for your destination.'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 7}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 6}, {'npc': 'grid', 'text': 'Great!'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[113] = {'theme': 'IMPENDENCE', 'msg': [{'npc': 'grid', 'text': 'What is this «Impendence»?'}, {'npc': 'harcos', 'text': '«Impendence» is the greatest ship in the world, you worm, able to reach any place on water!'}]};
this[114] = {'theme': 'JADE ISLAND', 'msg': [{'npc': 'grid', 'text': 'What\'s that island I can see?'}, {'npc': 'yax', 'text': 'That\'s the Jade Island. I can get you there for only €50.'}, {'event': 'set_flag', 'flag': 'v_knowjade'}, {'npc': 'grid', 'text': 'Got it.'}]};
this[115] = {'theme': 'TRAVEL TO JADE ISLAND – €50', 'condition': function () {
return (Core.Get()).game.isFlag('v_knowjade') && (Core.Get()).game.money < 50;
}, 'msg': [{'npc': 'grid', 'text': 'We wanna go to the Jade Island!'}, {'npc': 'yax', 'text': 'No problem. I\'ll get you there in no time. As soon as you have at least €50.'}]};
this[116] = {'theme': 'TRAVEL TO JADE ISLAND – €50', 'condition': function () {
return (Core.Get()).game.isFlag('v_knowjade') && (Core.Get()).game.money >= 50;
}, 'msg': [{'npc': 'grid', 'text': 'We wanna go to the Jade Island!'}, {'event': 'remove_money', 'value': 50}, {'npc': 'yax', 'text': 'No problem. I\'ll get you there in no time.'}, {'event': 'weaken_fog', 'x': 36, 'y': 13, 'w': 1, 'h': 2}, {'event': 'move_to_area', 'area': 'jade'}]};
this[117] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'cij', 'text': 'I am the embodiment of the wind itself! Behold me, captain of \'Hysteria\'! The world\'s greatest winged ship!'}, {'npc': 'grid', 'text': 'Could I travel somewhere on \'Hysteria\'?'}, {'npc': 'cij', 'text': 'Whayya?! You Can\'t! CAN\'T! She\'s my ship and I won\'t let just anybody aboard! And I don\'t need money. Money is meaningless. Freedom is the only true value! I\'ll assist only the greatest adventurers!'}]};
this[118] = {'theme': 'HYSTERIA', 'condition': function () {
return (Core.Get()).game.stats[0].level < 20;
}, 'msg': [{'npc': 'grid', 'text': 'How can I prove to you that I\'m a great adventurer?'}, {'npc': 'cij', 'text': 'Couldn\'t be simpler! You need to be at least level 20!'}, {'npc': 'grid', 'text': 'That\'s the only condition?'}, {'npc': 'cij', 'text': 'Yes! Then I\'ll know you\'re a great adventurer and will take you aboard.'}]};
this[119] = {'theme': 'HYSTERIA', 'condition': function () {
return (Core.Get()).game.stats[0].level >= 20;
}, 'msg': [{'npc': 'grid', 'text': 'I want to step aboard the greatest flying ship, the \'Hysteria\'!'}, {'event': 'set_flag', 'flag': 'hysterie'}, {'event': 'give_exp', 'value': 5000}, {'event': 'no_talk'}, {'npc': 'cij', 'text': 'The pleasure is all mine! Welcome! You are a great adventurer indeed! I can smell it on you.'}]};
this[120] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'What are these? Cat\'s ears?'}, {'npc': 'kippa', 'text': 'Of course, meow! Cat\'s ears!'}]};
this[121] = {'theme': 'ABOUT NEVERMORE TOWN', 'msg': [{'npc': 'grid', 'text': 'What is this place?'}, {'npc': 'kippa', 'text': 'It\'s Nevermore town. A place for outcasts and freaks, meow! If you\'re somehow different... people are afraid of you. But here everyone\'s met with understanding. Meow!'}, {'npc': 'kippa', 'text': 'Just look at Lexik. He\'s a sportsman and a panda. Because of that he\'s very successful with the women. Everyone likes pandas.'}, {'npc': 'kippa', 'text': 'And this is Gaimon. He doesn\'t have any physical defects, he\'s just too weird for normal people.'}]};
this[122] = {'theme': 'TRADE', 'msg': [{'npc': 'grid', 'text': 'And where can I restock here?'}, {'npc': 'kippa', 'text': 'Right here! I\'m the vendor you\'re looking for!'}, {'event': 'trade', 'npc': 'kippa'}]};
this[123] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?!'}, {'npc': 'lexic', 'text': 'I\'m Lexik!'}, {'npc': 'grid', 'text': 'But you\'re a PANDA!'}, {'event': 'set_flag', 'flag': 'panda_talk1'}, {'npc': 'lexic', 'text': 'Well, yeah! I already knew that.'}]};
this[124] = {'theme': 'ABOUT FREE TIME', 'condition': function () {
return (Core.Get()).game.isFlag('panda_talk1');
}, 'msg': [{'npc': 'grid', 'text': 'What do you do in your free time?'}, {'npc': 'lexic', 'text': 'Mostly sports and meeting women, and I like to travel a lot!'}, {'npc': 'grid', 'text': 'Are you successful with the women?'}, {'npc': 'lexic', 'text': 'Sure I am! Everyone like pandas.'}, {'event': 'set_flag', 'flag': 'panda_talk2'}, {'npc': 'grid', 'text': 'Oh dear...'}]};
this[125] = {'theme': 'JOIN ME', 'condition': function () {
return (Core.Get()).game.isFlag('panda_talk2');
}, 'msg': [{'npc': 'grid', 'text': 'Hey, panda, wanna travel with me?'}, {'event': 'give_exp', 'value': 1000}, {'event': 'join_team', 'npc': 7}, {'npc': 'lexic', 'text': 'Well... why not! I\'ll travel with you for a while.'}]};
this[126] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you?'}, {'npc': 'gaimon', 'text': 'Gaimon...'}, {'npc': 'grid', 'text': 'And?..'}, {'event': 'set_flag', 'flag': 'gaimon_aliens'}, {'npc': 'gaimon', 'text': 'And that\'s all. I\'m Gaimon. I am what I am. Nevermind the rest. Nevermind the spoon. Nevermind asking about the spoon'}]};
this[127] = {'theme': 'ABOUT NEVERMORE', 'msg': [{'npc': 'grid', 'text': 'Tell me about this town.'}, {'npc': 'gaimon', 'text': 'Nice. Calm.'}, {'npc': 'grid', 'text': 'And?..'}, {'npc': 'gaimon', 'text': 'And that\'s all. Nice and calm. Those two words describe the totality of my feelings. This town doesn\'t make me want to kill myself.'}, {'npc': 'grid', 'text': 'You\'re a weird fellow...'}]};
this[128] = {'theme': 'ALIENS', 'condition': function () {
return (Core.Get()).game.isFlag('gaimon_aliens') && !(Core.Get()).game.isFlag('q_alienfix2');
}, 'msg': [{'npc': 'grid', 'text': 'Are you sure you\'re not an alien?'}, {'npc': 'gaimon', 'text': 'No, they and I are not one... though I feel right in their company. Just like here. They try to understand a person, speak to a person in a way he\'s comfortable with.'}, {'npc': 'grid', 'text': 'They probably just didn\'t kill because they thought you were one of them.'}, {'npc': 'gaimon', 'text': 'No. They never kill unless they feel menace. I\'ve observed them. But then they left. Didn\'t take me with them...'}, {'event': 'give_exp', 'value': 750}, {'event': 'set_flag', 'flag': 'q_alienfix2'}, {'npc': 'grid', 'text': 'I see.'}]};
this[129] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who or what are you?!'}, {'npc': 'chivax', 'text': 'If you address the mayor of Nevermore impolitely then the mayor of Nevermore will tear out your liver and eat it. I am the mayor of Nevermore and I want some liver. You think I\'d answer something like that?.. But I do really like liver. That\'s true.'}, {'npc': 'grid', 'text': 'Sorry, mayor... Your appearance is a little confusing at first sight.'}, {'npc': 'chivax', 'text': 'I know. I know.'}]};
this[130] = {'theme': 'HYDRA\'S APOLOGIZE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'grid', 'text': 'Tell me, what do you associate with the word \'Hydra\'?'}, {'npc': 'chivax', 'text': 'NO!!! NOT THE HYDRA!!! NO!!!!!!!!.'}, {'npc': 'chivax', 'text': 'Something like that. A girl with that name recently commited a terrible slaughter in our town.'}, {'npc': 'grid', 'text': 'Erm... she\'s now feeling ashamed of her behavior and she\'d like to know how to relieve her guilt.'}, {'npc': 'chivax', 'text': 'It\'s hard to believe... but, probably... everyone deserves a second chance... even her. I forgive her on the condition she promises never to visit this town again.'}, {'event': 'give_exp', 'value': 1500}, {'event': 'set_flag', 'flag': 'q_hydranevermore', 'value': 2}, {'npc': 'grid', 'text': 'Then it\'s settled.'}]};
this[131] = {'theme': 'WHAT\'S WRONG WITH YOU?!', 'msg': [{'npc': 'ken', 'text': 'I am the result of an experiment to create a supreme being... or that\'s what I was told. But now we\'re zombies! Rotting bodies unable to die.'}]};
this[132] = {'theme': 'TRADE', 'msg': [{'event': 'trade', 'npc': 'goman'}]};
this[133] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who are you? What happened to you?'}, {'npc': 'fea', 'text': 'Oh... that\'s a long sad story...'}, {'npc': 'fea', 'text': 'Once I was a scientist, the creator of the «Immortal Soldier» project... but you can see the result. This is what I caused.'}, {'npc': 'fea', 'text': 'We can\'t die but we can still be injured, then our skin started to rot... we became just like those zombies in the movies.'}, {'npc': 'fea', 'text': 'It\'s terrible! And I can\'t date normal guys \'cause they don\'t like all the scars... or the smell...'}, {'npc': 'fea', 'text': 'I\'m so unhappy!'}, {'npc': 'grid', 'text': 'I\'m sorry for you...'}]};
this[134] = {'theme': 'ALLIANCE WITH META-WARRIORS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'The Meta-Warriors want Calipso to ally with them in their upcoming Revolution.'}, {'npc': 'fea', 'text': 'Do you really think we need help from a band of rebels? We fought for what we believed and this is what we got for it. There\'s only one thing we need - normal human bodies again. If your Meta-Warriors can help with that, we\'ll do anything they want.'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 3}, {'npc': 'grid', 'text': 'Hmm... I\'ll have to ask Lina about that.'}]};
this[135] = {'theme': 'MIKHAEL\'S HELP', 'condition': function () {
return 4 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve found the greatest scientist on the continent. He\'s interested in working with you to make your bodies live again. He\'s conducted research on something like this before but it was forbidden \'cause he couldn\'t get permission to dig up the bodies he needed.'}, {'npc': 'fea', 'text': 'I\'ve waited for this day far too long! We\'d be able to live again!'}, {'npc': 'grid', 'text': 'Does this also mean you\'ll help with the Rebellion?'}, {'event': 'give_exp', 'value': 4500}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 5}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 6}, {'npc': 'fea', 'text': 'Yes! We\'ll do as you say! My God, finally I\'ll be able to date a living guy...!'}]};
this[136] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'keabo', 'text': 'Kibo\'s my name, Ask around about my fame. I\'m sellin\' weapons to you, To make all your dream come true.'}, {'npc': 'grid', 'text': 'That rap is pretty lame.'}, {'npc': 'keabo', 'text': 'You might think that now but I\'ve got loads of guns, so think it over!'}, {'npc': 'grid', 'text': 'Wow! You rock! The best rap I ever heard!'}, {'event': 'set_flag', 'flag': 'keabo_trade'}, {'npc': 'keabo', 'text': 'Smart man. If you ever need guns - just ask me!'}]};
this[137] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('keabo_trade');
}, 'msg': [{'event': 'trade', 'npc': 'keabo'}]};
this[138] = {'theme': 'INVESTMENT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'grid', 'text': 'Hey, Kibo, wanna make the world a better place?'}, {'npc': 'keabo', 'text': 'Speak, friend. And if you say something wrong - don\'t worry. I\'ll forgive you. Right after I shoot you.'}, {'npc': 'grid', 'text': 'How would you like to invest in the upcoming Revolution?'}, {'npc': 'keabo', 'text': 'And what do I get back? I\'ll need more than just money!'}, {'npc': 'grid', 'text': 'Your weapons would be the official guns of the Revolution, and you\'d get to write all the battlecries?'}, {'npc': 'keabo', 'text': 'Sounds cool, man! «What killed your neighbor? – KIBO GUNS. KIBO GUNS - No more noisy neighbors!». How do you like the slogan?..'}, {'npc': 'keabo', 'text': '...But first I need some proof – here\'s my CD, I want to hear it on the radio. Don\'t bribe them, though. They should really appreciate my skill as an MC.'}, {'event': 'give_quest_item', 'item': 13}, {'event': 'add_quest', 'quest': 'keabo_style', 'stage': 0}, {'npc': 'grid', 'text': 'Sure, whatever.'}]};
this[139] = {'theme': 'KIBA\'S CD', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && (Core.Get()).game.hasQuestItem(13);
}, 'msg': [{'npc': 'keabo', 'text': 'Hey! I haven\'t heared my song on the radio yet.'}, {'npc': 'grid', 'text': 'I\'m still working on it.'}]};
this[140] = {'theme': 'KIBA\'S CD - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && 1 == (Core.Get()).game.getFlag('q_kibodisc');
}, 'msg': [{'npc': 'keabo', 'text': 'I was listening to the radio yesterday and what did I hear, my friend?! The greatest song ever! My song! I\'m proud of you, you did well! I\'ll invest in your Rebellion.'}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'give_exp', 'value': 4500}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'event': 'set_flag', 'flag': 'q_kibodisc', 'value': 2}, {'event': 'complete_quest', 'quest': 'keabo_style'}, {'npc': 'grid', 'text': 'Good to know!'}]};
this[141] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Hey, Seth, how are you doing?'}, {'npc': 'seth', 'text': 'The same as always. I\'m filthy rich, I hate people and I\'m certain someone\'s trying to kill me.'}]};
this[142] = {'theme': 'INVESTMENT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'grid', 'text': 'Set, would you be interested in investing in a radical organization?'}, {'npc': 'seth', 'text': 'Which radical organization.'}, {'npc': 'grid', 'text': 'Meta-Warriors.'}, {'npc': 'seth', 'text': 'Yeah, I\'ve heard of them but what will I get from this Revolution? Will they agree to serve me as puppets?'}, {'npc': 'grid', 'text': 'No. Come on, Seth, you have loads of unused money. Why not help the rebels? They\'ll only depose the government a little.'}, {'npc': 'seth', 'text': 'I don\'t want to invest in your revolution. Forget it.'}]};
this[143] = {'theme': 'HELP BRISTOL', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_helpbrisol');
}, 'msg': [{'npc': 'grid', 'text': 'Here\'s a citation for you!'}, {'npc': 'seth', 'text': 'What the?! From who?!'}, {'npc': 'grid', 'text': 'Your wife. She\'s sick of you hiding from all the lawyers.'}, {'npc': 'seth', 'text': 'You mean Bristol? Yes, I avoid lawyers but only for money cases which this isn\'t. Certainly, she wanted the money when married me! I put up with everything she tried on me so she ran away. She won\'t get any of my money, I made preparations before the wedding. Don\'t ever betray me again!'}, {'event': 'give_exp', 'value': 3500}, {'event': 'set_flag', 'flag': 'q_helpbrisol', 'value': 2}, {'event': 'add_quest', 'quest': 'bristol_divorce', 'stage': 1}, {'npc': 'grid', 'text': 'Well, my job\'s done. No hard feelings.'}]};
this[144] = {'theme': 'BRISTOL\'S PHOTO', 'condition': function () {
return (Core.Get()).game.hasQuestItem(10);
}, 'msg': [{'npc': 'seth', 'text': 'What do you have here? My ex-wife\'s photo album?'}, {'npc': 'grid', 'text': 'Yep.'}, {'npc': 'seth', 'text': 'Please, give it to me.'}, {'npc': 'grid', 'text': 'So you did love her?'}, {'npc': 'seth', 'text': 'Of course not but she did have a great body. Is $1,000 enough?'}, {'event': 'give_money', 'value': 1000}, {'event': 'give_exp', 'value': 5000}, {'event': 'remove_quest_item', 'item': 10}, {'npc': 'grid', 'text': 'Okay, take it.'}]};
this[145] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'You\'re Hydra, the only daughter of the Fenders family, aren\'t you? I recognized you because of the outfit and the big knife.'}, {'npc': 'hydra', 'text': 'Yes, friend, that\'s me! Wanna run after the civilians with weapons together?'}, {'npc': 'grid', 'text': 'I\'ll have to refuse this time.'}]};
this[146] = {'theme': 'INVESTMENT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_hydranevermore');
}, 'msg': [{'npc': 'grid', 'text': 'Say... did you ever wanted to invest your parents money in something fun... like a Revolution, for example?'}, {'npc': 'hydra', 'text': 'Where\'s the fun in that?'}, {'npc': 'grid', 'text': 'People fighting, rivers of blood and so on'}, {'npc': 'hydra', 'text': 'Oh, I\'m loving it! I\'d like to... but my parents won\'t give me money for that now...'}, {'npc': 'hydra', 'text': 'I\'m being punished for the slaughter in Nevermore town...'}, {'npc': 'hydra', 'text': 'Maybe if you went to the town\'s mayor and asked him to forgive me, then my parents would forgive me as well!'}, {'npc': 'grid', 'text': 'Why don\'t you go yourself?'}, {'event': 'set_flag', 'flag': 'q_hydranevermore', 'value': 1}, {'event': 'add_quest', 'quest': 'feel_of_guilty', 'stage': 0}, {'npc': 'hydra', 'text': 'Something tells me they won\'t listen to me in person. Most likely they\'d start shooting on sight, then I\'d have to kill them all and the situation would get even worse.'}]};
this[147] = {'theme': 'NEGOTIATIONS WITH NEVERMORE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'hydra', 'text': 'Don\'t forget to talk to the mayor of Nevermore town.'}]};
this[148] = {'theme': 'NEGOTIATIONS WITH NEVERMORE - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && 2 == (Core.Get()).game.getFlag('q_hydranevermore');
}, 'msg': [{'npc': 'hydra', 'text': 'How are the negotiations going?'}, {'npc': 'grid', 'text': 'It seem you\'re forgiven, somehow.'}, {'npc': 'hydra', 'text': 'Well... while you were away my parents already forgave me. They never stay angry at me for long. Now I\'d be happy to invest in your Revolution.'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'give_exp', 'value': 4000}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'complete_quest', 'quest': 'feel_of_guilty'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'npc': 'grid', 'text': 'Good, you won\'t regret it.'}]};
this[149] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who\'re you, sir?'}, {'npc': 'heraldio', 'text': 'My name\'s Heraldio. I own the castle in the middle of this city.'}, {'npc': 'grid', 'text': 'So you must be as rich as hell!'}, {'npc': 'heraldio', 'text': 'Sir, you\'re exactly right! Money - it\'s the Devil\'s own burden.'}, {'npc': 'grid', 'text': 'Maybe I could carry your burden for you? I can live with my own evil.'}, {'npc': 'heraldio', 'text': 'Sir, there is no way I\'d let you take such a risk.'}]};
this[150] = {'theme': 'INVESTMENTS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_getcastlekey');
}, 'msg': [{'npc': 'grid', 'text': 'Tell me, noble sir, whould you like to use your money to do something good?'}, {'npc': 'heraldio', 'text': 'What kind of deed do you mean, friend?'}, {'npc': 'grid', 'text': 'World revolution.'}, {'npc': 'heraldio', 'text': 'Well, I don\'t much like the present political situation. President Myst, in my opinion, is... stupid and ambitious, like snow in the middle of summer.'}, {'npc': 'grid', 'text': 'Good! I mean, the thing with snow is kind of lame, but it\'s good that you realize the world needs changes!'}, {'npc': 'heraldio', 'text': '...There\'s only one thing.'}, {'npc': 'grid', 'text': 'I knew there\'d be a catch...'}, {'npc': 'heraldio', 'text': 'I\'ve lost the key to my castle somewhere in Last Stand plains. Find it and I\'ll be able to help you.'}, {'npc': 'grid', 'text': 'Aren\'t you afraid that I\'ll use the key to steal all your money?'}, {'npc': 'heraldio', 'text': 'Not at all.'}, {'npc': 'heraldio', 'text': 'My castle isn\'t only protected by the lock but also by modern biometric scanners checking eyes, fingerprints and genes.'}, {'npc': 'grid', 'text': 'Then why the hell do you need a key!?'}, {'npc': 'heraldio', 'text': 'I can\'t enter without it. I wanted to remain authentic in the design of my castle... Though it\'s not the first time I\'ve lost a key.'}, {'npc': 'grid', 'text': 'I see. So I\'ll go and wander around Last Stand plains.'}, {'event': 'set_flag', 'flag': 'q_getcastlekey', 'value': 1}, {'npc': 'heraldio', 'text': 'Please be careful! Last Stand is a dangerous region. I\'d go there myself otherwise.'}]};
this[151] = {'theme': 'ABOUT THE KEY', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getcastlekey') && !(Core.Get()).game.hasQuestItem(14);
}, 'msg': [{'npc': 'grid', 'text': 'I\'m still looking for your key in the Last Stand plains.'}, {'npc': 'heraldio', 'text': 'Then what are you talking to me for? Just find it already.'}]};
this[152] = {'theme': 'RETURN THE KEY', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getcastlekey') && (Core.Get()).game.hasQuestItem(14);
}, 'msg': [{'npc': 'grid', 'text': 'Here\'s your key!'}, {'event': 'remove_quest_item', 'item': 14}, {'event': 'give_exp', 'value': 5000}, {'npc': 'heraldio', 'text': 'Now, finally, I can return home. Have your leader call me, we\'ll arrange the details.'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'set_flag', 'flag': 'q_getcastlekey', 'value': 2}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 9}, {'npc': 'grid', 'text': 'Thanks!'}]};
};
_global.TalkData2En = v1;
_global.TalkData2En extends TalkData3En;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkData2En.prototype, null, 1);
}
#endinitclip
}
movieClip 1954 __Packages.TalkDataEn {
#initclip
if (!_global.TalkDataEn) {
var v1 = function () {
super();
this[-1] = {'theme': '[ END DIALOGUE ]', 'msg': []};
this[0] = {'theme': 'ALIEN TRACE', 'condition': function () {
return !(Core.Get()).game.isFlag('q_game_start');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_game_start'}, {'npc': 'natan', 'text': 'Grid! You\'re our best man, so you\'re the only one I can entrust with this task ...'}, {'npc': 'natan', 'text': 'Grid! Are you listening to me?!'}, {'npc': 'grid', 'text': 'Sorry, Nathan. Forgot to pull off my earphones.'}, {'npc': 'natan', 'text': 'I\'m surprised you\'re still alive after all these years actually. Anyway, Grid. There\'ve been sightings of a UFO to the east of our base. Get out there and check what\'s going on.'}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 0}, {'event': 'weaken_fog', 'x': 3, 'y': 1, 'w': 14, 'h': 1}, {'event': 'mark', 'area': 'ufo1'}, {'event': 'add_guide', 'area': 'ufo1'}, {'event': 'limit_map', 'tl_x': 0, 'tl_y': 0, 'br_x': 1140, 'br_y': 480}, {'npc': 'grid', 'text': 'Ок.'}]};
this[1] = {'theme': 'K.A.U.F.O.', 'msg': [{'npc': 'natan', 'text': 'You\'re asking about KAUFO?! But you\'ve been working here for 5 years already! You\'re really weird, my friend.'}, {'npc': 'grid', 'text': 'I\'d like to hear it again.'}, {'npc': 'natan', 'text': 'Ok, whatever... KAUFO stands for "Kill All Unindentified Flying Objects". So we kill aliens without wasting our time talking to them. They speak only lies so whenever you see an alien, just kill it.'}, {'npc': 'grid', 'text': 'I knew that!'}, {'npc': 'natan', 'text': 'Then why did you ask?!'}, {'npc': 'grid', 'text': 'I thought you\'d say something new.'}]};
this[2] = {'theme': 'TELL ABOUT ALIENS', 'condition': function () {
return (Core.Get()).game.getFlag('q_raymondehelp') == 3 && !(Core.Get()).game.isFlag('q_bigalienplan');
}, 'msg': [{'npc': 'grid', 'text': 'Nathan, you wouldn\'t believe...'}, {'npc': 'grid', 'text': '...'}, {'event': 'complete_quest', 'quest': 'ufo_visit'}, {'event': 'give_exp', 'value': 250}, {'npc': 'natan', 'text': 'So that\'s how it is... I\'ve had a brilliant idea! It\'s just like me to have a timely flash of inspiration. I\'m gifted, actually.'}, {'npc': 'natan', 'text': 'I need some time to refine the details of my plan. Return in one hour.'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 0}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 1}, {'event': 'start_timer', 'timer': 't_bigplantimer'}, {'npc': 'grid', 'text': 'I hate waiting! How will we kill this time?'}, {'npc': 'katenka', 'text': 'Let\'s walk around and look for an adventure.'}]};
this[3] = {'theme': 'NATHAN\'S GREAT PLAN', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer < 18000;
}, 'msg': [{'npc': 'grid', 'text': 'Nathan, how\'s that brilliant plan coming along?'}, {'npc': 'natan', 'text': 'Not done yet, these things take time. Come back later. Can\'t you find some way to occupy yourself?.'}]};
this[4] = {'theme': 'NATHAN\'S GREAT PLAN', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer >= 18000;
}, 'msg': [{'npc': 'natan', 'text': 'Where have you been all this time, Grid? I perfected my great plan long ago!'}, {'npc': 'grid', 'text': 'Oh, Nathan, please do tell us. We\'re just dying to know your ultimate plan.'}, {'npc': 'natan', 'text': 'For some reason I detect a hint of sarcasm in your words.'}, {'npc': 'grid', 'text': 'Possibly because it\'s pouring off them in torrents?..'}, {'npc': 'natan', 'text': 'It\'s not important now. Hear me out, my loyal men! I have a contact with Carl Vaccuol. He\'s not fond of the aliens now. He\'ll help us by providing the temporal TV which can show the past of the area it\'s turned upon.'}, {'npc': 'grid', 'text': 'So you can set it up in the girls\' bathroom after the gym\'s closed?.. Or you can spy your girlfriend?'}, {'npc': 'natan', 'text': 'That kind of prank is useless to us! Get this TV and visit the 6 areas where the UFO was seen. Bring the video to me and I\'ll be able to find the aliens\' whereabouts.'}, {'npc': 'grid', 'text': 'I like the bathroom option more.'}, {'npc': 'natan', 'text': 'Meet Vaccuol and visit the UFO Sites. Then return to me'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 2}, {'event': 'kill_timer', 'timer': 't_bigplantimer'}, {'event': 'mark', 'area': 'ufo2'}, {'event': 'mark', 'area': 'ufo3'}, {'event': 'mark', 'area': 'ufo4'}, {'event': 'mark', 'area': 'ufo5'}, {'event': 'mark', 'area': 'ufo6'}, {'event': 'add_guide', 'area': 'ufo2'}, {'event': 'add_guide', 'area': 'ufo3'}, {'event': 'add_guide', 'area': 'ufo4'}, {'event': 'add_guide', 'area': 'ufo5'}, {'event': 'add_guide', 'area': 'ufo6'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 1}, {'npc': 'grid', 'text': 'Ок.'}, {'npc': 'katenka', 'text': 'By the way, Grid, I\'ll have to leave you temporarily. Key and I have a mission in Gibson City.'}, {'event': 'leave_team', 'npc': 1}, {'event': 'leave_team', 'npc': 2}, {'npc': 'grid', 'text': 'Sure, see ya.'}]};
this[5] = {'theme': 'NATHAN\'S GREAT PLAN - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.isFlag('q_ufotele6');
}, 'msg': [{'npc': 'grid', 'text': 'Nathan, I\'ve collected the data.'}, {'event': 'remove_quest_item', 'item': 0}, {'event': 'remove_quest_item', 'item': 1}, {'event': 'remove_quest_item', 'item': 2}, {'event': 'remove_quest_item', 'item': 3}, {'event': 'remove_quest_item', 'item': 4}, {'event': 'remove_quest_item', 'item': 5}, {'event': 'remove_quest_item', 'item': 6}, {'event': 'give_exp', 'value': 5000}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 3}, {'event': 'start_timer', 'timer': 't_bigplantimer2'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 2}, {'npc': 'natan', 'text': 'Great, now give me some time to watch all these tapes.'}, {'npc': 'grid', 'text': 'I\'ll have to wait again?!'}, {'npc': 'natan', 'text': 'It\'s only for 30 minutes. Just give me a little time, that\'s not so hard.'}]};
this[6] = {'theme': 'NATHAN\'S GREAT PLAN - NEXT', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer2 < 9000;
}, 'msg': [{'npc': 'grid', 'text': 'Nathan, are you done with the tapes?'}, {'npc': 'natan', 'text': 'Not yet, and if you keep interrupting me I never will be.'}]};
this[7] = {'theme': 'NATHAN\'S GREAT PLAN - NEXT', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_bigalienplan') && (Core.Get()).game.timers.t_bigplantimer2 >= 9000;
}, 'msg': [{'npc': 'natan', 'text': 'I\'ve watched all the tapes and now know everything!'}, {'npc': 'grid', 'text': 'Please, tell me.'}, {'npc': 'natan', 'text': 'By keeping a count while watching I\'ve figured out where their base is. It\'s in the Horse Sea! Not near it, right in the sea!'}, {'npc': 'natan', 'text': 'Key and Katenka have finished their task and will join you for this mission. Go to the port and find a way to get to that base. I\'ve marked it\'s location on your map.'}, {'event': 'set_flag', 'flag': 'q_bigalienplan', 'value': 4}, {'event': 'kill_timer', 'timer': 't_bigplantimer2'}, {'event': 'add_quest', 'quest': 'natan_plan', 'stage': 3}, {'npc': 'key', 'text': 'Nathan, you wouldn\'t believe what we\'ve seen and done...'}, {'npc': 'natan', 'text': 'I\'ve already watched it on the television.'}, {'event': 'join_team', 'npc': 1}, {'event': 'join_team', 'npc': 2}, {'npc': 'key', 'text': 'Too bad. I\'m good at telling stories.'}]};
this[8] = {'theme': 'U.F.O.', 'condition': function () {
return !(Core.Get()).game.isFlag('v_ufo1visit');
}, 'msg': [{'event': 'set_flag', 'flag': 'v_ufo1visit'}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 1}, {'npc': 'grid', 'text': 'It seems some aliens were here. Scorched earth, drawings in the fields, the remains of a disco stage - everything points to that fact.'}, {'npc': 'grid', 'text': 'I always wondered why aliens love disco so much but I\'ve never had a chance to ask them. I\'ve just killed them on sight, just as KAUFO\'s rules state.'}, {'npc': 'grid', 'text': 'I\'ll have to ask someone from the nearest village about the incident. They might know something.'}]};
this[9] = {'theme': 'ТEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele1'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn on the temporal TV and watch the show...'}, {'event': 'give_quest_item', 'item': 1}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Aliens appeared here and had a disco. Some of the villagers joined in then, when the disco ended, the aliens departed. Some villagers went with them for some reason...'}]};
this[10] = {'theme': 'ТEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele1') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[11] = {'theme': 'ТEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele1') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele1_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[12] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele2'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn on the temporal TV and watch the show...'}, {'event': 'give_quest_item', 'item': 2}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Aliens made a stop here and tried to sell hotdogs...'}]};
this[13] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele2') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[14] = {'theme': 'TEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele2') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele2_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[15] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele3'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn the temporal TV on and watch the show...'}, {'event': 'give_quest_item', 'item': 3}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'There was an alien ship hidden in the fields of wheat. Katenka and Key came across it and made a huge mess.'}]};
this[16] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele3') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[17] = {'theme': 'TEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele3') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele3_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[18] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele4'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn the temporal TV on and watch the show...'}, {'event': 'give_quest_item', 'item': 4}, {'event': 'give_exp', 'value': 1000}, {'event': 'give_quest_item', 'item': 18}, {'npc': 'grid', 'text': 'Aliens disembarked here to shoot themselves on videocams. The genre of this movie is anyone\'s guess. All they did was wave their hands around at random. It seems one of the cameras has been left here.'}]};
this[19] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele4') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[20] = {'theme': 'TEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele4') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele4_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[21] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele5'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn the temporal TV on and watch the show...'}, {'event': 'give_quest_item', 'item': 5}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'The aliens tried to start a disco here too but no-one came. Probably a bad location.'}]};
this[22] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele5') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[23] = {'theme': 'TEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele5') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele5_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[24] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele6') && (Core.Get()).game.hasQuestItem(0);
}, 'msg': [{'event': 'set_flag', 'flag': 'q_ufotele6'}, {'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Ok, let\'s turn the temporal TV on and watch the show...'}, {'event': 'give_quest_item', 'item': 6}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Aliens disembarked here for a short period of time but don\'t appear to have done anything significant.'}]};
this[25] = {'theme': 'TEMPORAL TV', 'condition': function () {
return !(Core.Get()).game.isFlag('q_ufotele6') && (Core.Get()).game.getFlag('q_bigalienplan') == 2 && !(Core.Get()).game.hasQuestItem(0) && !(Core.Get()).game.isAreaFlag('ufo_tele');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'Aliens were spotted here but without the temporal TV there\'s nothing I can do.'}]};
this[26] = {'theme': 'TEMPORAL TV', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele6') && !(Core.Get()).game.isAreaFlag('ufo_tele') && !(Core.Get()).game.isFlag('q_ufotele6_x');
}, 'msg': [{'event': 'set_area_flag', 'flag': 'ufo_tele'}, {'npc': 'grid', 'text': 'I\'ve already collected the information I need here.'}]};
this[27] = {'theme': 'UFO', 'condition': function () {
return (Core.Get()).game.isFlag('v_ufo1visit');
}, 'msg': [{'npc': 'grid', 'text': 'Have you seen anything strange recently?'}, {'npc': 'halisted', 'text': 'Me? No, haven\'t seen anything. What should I have seen anyway?'}, {'npc': 'grid', 'text': 'Something like a ship full of aliens?'}, {'npc': 'halisted', 'text': 'Oh, that. Yes, I saw them.'}, {'npc': 'grid', 'text': 'Didn\'t you think that was strange?'}, {'npc': 'halisted', 'text': 'Nope.'}, {'npc': 'grid', 'text': '...'}, {'npc': 'grid', 'text': 'Anyway, did you see where that ship was headed?'}, {'npc': 'halisted', 'text': 'No, but one of the aliens said...'}, {'npc': 'grid', 'text': 'One of the aliens?!'}, {'npc': 'halisted', 'text': 'Well, yeah. The whole village went to the disco they made. And one of the aliens mentioned they were heading to Integra City.'}, {'event': 'give_exp', 'value': 50, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 2, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'limit_map', 'tl_x': 0, 'tl_y': 0, 'br_x': 1560, 'br_y': 480, 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'event': 'set_flag', 'flag': 'q_go2integra', 'condition': function () {
return !(Core.Get()).game.isFlag('q_go2integra');
}}, {'npc': 'grid', 'text': 'Thanks for the information.'}]};
this[28] = {'theme': 'MISSED CITIZENS', 'condition': function () {
return (Core.Get()).game.isFlag('q_ufotele1');
}, 'msg': [{'npc': 'grid', 'text': 'Haven\'t you noticed some of the villagers have been missing since the disco?'}, {'npc': 'halisted', 'text': 'Now you mention it, yeah! But I\'ve no idea where they are.'}, {'npc': 'grid', 'text': 'During that disco the aliens took some of your villager into their ship and left.'}, {'event': 'set_flag', 'flag': 'q_findnikkyvillagers', 'condition': function () {
return !(Core.Get()).game.isFlag('q_findnikkyvillagers');
}}, {'npc': 'halisted', 'text': 'Who\'d have imagined that! If you find them, please let me know.'}]};
this[29] = {'theme': 'TRADE', 'msg': [{'event': 'trade', 'npc': 'halisted'}]};
this[30] = {'theme': 'WORK', 'condition': function () {
return (Core.Get()).game.isFlag('q_ho_job') && !(Core.Get()).game.isFlag('v_astralflower');
}, 'msg': [{'npc': 'grid', 'text': 'Have any jobs for me?'}, {'npc': 'ho', 'text': 'Jobs? There\'re plenty of jobs here! For example, I need seeds for my astral flower!'}, {'npc': 'grid', 'text': 'Where can I find them?'}, {'npc': 'ho', 'text': 'Walk nearby my garden, they occasionally drop from various enemies. Get me 10 seeds and return here.'}, {'event': 'set_flag', 'flag': 'v_astralflower', 'value': 1}, {'event': 'add_quest', 'quest': 'astral_flowers', 'stage': 0}, {'npc': 'grid', 'text': 'I see...'}]};
this[31] = {'theme': 'SEEDS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_astralflower') && !(Core.Get()).game.hasQuestItems(7, 10);
}, 'msg': [{'npc': 'grid', 'text': '...\nSo what did you say I need?..'}, {'npc': 'ho', 'text': '10 astral seeds! Why is that so hard to remember?'}, {'npc': 'grid', 'text': 'Nevermind. I\'ll bring them soon.'}]};
this[32] = {'theme': 'SEEDS - DONE', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('v_astralflower') && (Core.Get()).game.hasQuestItems(7, 10);
}, 'msg': [{'event': 'remove_quest_item', 'item': 7}, {'event': 'give_money', 'value': 1000}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'v_astralflower', 'value': 2}, {'event': 'complete_quest', 'quest': 'astral_flowers'}, {'npc': 'ho', 'text': 'Great! Astral seeds! Take some astral flowers for your efforts...'}]};
this[33] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Who are you and what are you doing here?'}, {'npc': 'ho', 'text': 'Me? I\'m Ho the Farmer! I\'m planting magical flowers!'}, {'npc': 'grid', 'text': 'Magical? What\'s so magical about them?'}, {'event': 'set_flag', 'flag': 'q_ho_job'}, {'npc': 'ho', 'text': 'Oh, they can carry you away from this damned post-industrial society and those stupid cyborgs to the land of fairies and unicorns!'}]};
this[34] = {'theme': 'CHEAT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_gotosummerg') && (Core.Get()).game.isFlag('q_sg1') && (Core.Get()).game.isFlag('q_sg2') && (Core.Get()).game.isFlag('q_sg3');
}, 'msg': [{'npc': 'grid', 'text': 'Is it just me or do the people here dress really weird?'}, {'npc': 'katenka', 'text': 'I think it\'s normal.'}, {'npc': 'craven', 'text': 'Look! There\'s Carl in the window of that house! There\'s a gag in his mouth!'}, {'npc': 'carl', 'text': 'M-m! M-m-m-m, m-m-m, MMMM!'}, {'npc': 'alien1', 'text': 'Oh no! We\'ve been spoted! Let\'s turn off the holo-masks!'}, {'npc': 'grid', 'text': 'Aliens!'}, {'npc': 'alien1a', 'text': 'Let me explain you everything...'}, {'event': 'set_flag', 'flag': 'q_gotosummerg', 'value': 2}, {'event': 'set_area_flag', 'flag': 'q_sg_battle'}, {'npc': 'katenka', 'text': 'Fight!'}, {'event': 'battle', 'band': 'sg_aliens'}]};
this[35] = {'theme': 'WEIRD STUFF', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg1');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg1'}, {'npc': 'grid', 'text': 'He\'s really starting to scare me. I don\'t much want to talk to him...'}]};
this[36] = {'theme': 'WEIRD STUFF', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg2');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg2'}, {'npc': 'grid', 'text': 'Don\'t do that! Better learn the language of the country you\'re in. Damn foreigners...'}, {'npc': 'alien2', 'text': 'No. We - locals. We long here live. 250 years!'}, {'npc': 'grid', 'text': 'Alright!.. I\'d best get out of here!..'}]};
this[37] = {'theme': 'WEIRD STUFF', 'condition': function () {
return !(Core.Get()).game.getFlag('q_sg3');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg3'}, {'npc': 'grid', 'text': 'This city is definitely not normal...'}]};
this[38] = {'theme': 'CARL VACCUOL', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_gotosummerg') && 1 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isAreaFlag('q_sg_battle');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_sg3'}, {'npc': 'craven', 'text': 'Let me untie you, Carl...'}, {'npc': 'carl', 'text': '...'}, {'npc': 'carl', 'text': 'Oh... finally. Those weird creatures tried to tell me that science isn\'t everything in life and I must have fun... they forced me to dance, eat fast food and meet women... That horrible experience almost turned my hair grey!'}, {'event': 'remove_quest_item', 'item': 22}, {'event': 'remove_quest_item', 'item': 23}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 2}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 2}, {'event': 'leave_team', 'npc': 8}, {'npc': 'craven', 'text': 'I\'ll walk you to Raymonde Village and then fly to the base. Grid, you should set off immediately since you can\'t fly. I\'ll be there waiting for you, and... thanks for your help!'}]};
this[39] = {'theme': 'INTEGRA', 'condition': function () {
return (Core.Get()).game.isFlag('q_go2integra') && !(Core.Get()).game.isFlag('integra_noone');
}, 'msg': [{'event': 'set_flag', 'flag': 'integra_noone'}, {'npc': 'grid', 'text': 'Impossible! There\'s no-one in the whole city! It seems like all the citizens just disappeared!.. It must be aliens\' doing.'}, {'npc': 'katenka', 'text': 'Yeah, I think so too. Though maybe it\'s because of the air-pressure.'}, {'npc': 'grid', 'text': 'Well if it isn\'t my K.A.U.F.O. colleague Katenka'}, {'npc': 'katenka', 'text': 'Yep. At least it looks like!'}, {'npc': 'grid', 'text': '...And as usual you\'re talking funny...'}, {'npc': 'grid', 'text': 'Anyway what are you doing here?'}, {'npc': 'katenka', 'text': 'I wanted to buy some new devices.'}, {'npc': 'grid', 'text': 'Devices?'}, {'npc': 'katenka', 'text': 'Yep, those devices that you equip to get new abilities or improve your skills. But it seems there\'s no-one around to sell me anything... since there\'s no-one around.'}, {'npc': 'grid', 'text': 'Hm...'}, {'event': 'give_money', 'value': 50}, {'npc': 'katenka', 'text': 'Hey, stealing is wrong!'}, {'npc': 'grid', 'text': 'I don\'t see anyone here to take issue with it. I think we should report to Nathan.'}, {'event': 'give_exp', 'value': 100}, {'event': 'join_team', 'npc': 2}, {'event': 'add_quest', 'quest': 'ufo_visit', 'stage': 3}, {'event': 'set_flag', 'flag': 'v_kaufo_plot', 'value': 1}, {'event': 'set_flag', 'flag': 'btl_int_meta'}, {'npc': 'katenka', 'text': 'I\'ll go with you.'}]};
this[40] = {'theme': 'CID', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_waitforalien');
}, 'msg': [{'npc': 'craven', 'text': 'Grid! I\'ve been looking for you everywhere!'}, {'npc': 'grid', 'text': 'What happened?'}, {'npc': 'craven', 'text': 'Some madman named Cid has killed Lina and taken control of the Meta-Warriors...'}, {'npc': 'craven', 'text': 'We thought at first that he was a gifted engineer willing to help us. Now it turns out the chips he was implanting in us were to give him control!'}, {'event': 'fail_quest', 'quest': 'meta_uprise', 'condition': function () {
return (Core.Get()).game.inQuest('meta_uprise');
}}, {'event': 'reset_flag', 'flag': 'q_metatechnicans'}, {'event': 'reset_flag', 'flag': 'q_getchips'}, {'event': 'reset_flag', 'flag': 'q_get3parts'}, {'event': 'remove_quest_item', 'item': 24, 'condition': function () {
return (Core.Get()).game.hasQuestItem(24);
}}, {'event': 'remove_quest_item', 'item': 25, 'condition': function () {
return (Core.Get()).game.hasQuestItem(25);
}}, {'event': 'remove_quest_item', 'item': 26, 'condition': function () {
return (Core.Get()).game.hasQuestItem(26);
}}, {'event': 'remove_quest_item', 'item': 27, 'condition': function () {
return (Core.Get()).game.hasQuestItem(27);
}}, {'event': 'remove_quest_item', 'item': 8, 'condition': function () {
return (Core.Get()).game.hasQuestItem(8);
}}, {'event': 'remove_quest_item', 'item': 15, 'condition': function () {
return (Core.Get()).game.hasQuestItem(15);
}}, {'event': 'remove_quest_item', 'item': 19, 'condition': function () {
return (Core.Get()).game.hasQuestItem(19);
}}, {'event': 'reset_flag', 'flag': 'q_allycalipso'}, {'event': 'reset_flag', 'flag': 'q_getinvestor'}, {'event': 'remove_quest_item', 'item': 13, 'condition': function () {
return (Core.Get()).game.hasQuestItem(13);
}}, {'event': 'fail_quest', 'quest': 'keabo_style', 'condition': function () {
return (Core.Get()).game.inQuest('keabo_style');
}}, {'event': 'reset_flag', 'flag': 'q_hydranevermore'}, {'event': 'fail_quest', 'quest': 'feel_of_guilty', 'condition': function () {
return (Core.Get()).game.inQuest('feel_of_guilty');
}}, {'event': 'reset_flag', 'flag': 'q_getcastlekey'}, {'event': 'remove_quest_item', 'item': 14, 'condition': function () {
return (Core.Get()).game.hasQuestItem(14);
}}, {'event': 'reset_flag', 'flag': 'q_startrevolution'}, {'npc': 'grid', 'text': 'Then we\'ll destroy Cid.'}, {'event': 'give_exp', 'value': 5000}, {'event': 'join_team', 'npc': 8}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 2}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 2}, {'npc': 'craven', 'text': 'Thanks!'}]};
this[41] = {'theme': 'CHIP 707', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getchips') && !(Core.Get()).game.hasQuestItem(8);
}, 'msg': [{'npc': 'grid', 'text': 'I need a chip 707. Do you know where I could find one?'}, {'npc': 'clod', 'text': 'Sure, here. Take it. We have all we need and plenty spare as well.'}, {'event': 'give_quest_item', 'item': 8}, {'event': 'give_exp', 'value': 1000}, {'npc': 'grid', 'text': 'Thanks.'}]};
this[42] = {'theme': 'DISAPPEARANCE?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_clod');
}, 'msg': [{'npc': 'grid', 'text': 'I visited this city some time ago and there was no-one here. What happened?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_clod'}, {'npc': 'clod', 'text': 'The aliens invited us onto their ship as guests. Their cooking isn\'t much good, but they\'re all really nice people.'}]};
this[43] = {'theme': 'PORTAL TO ALIEN BASE', 'condition': function () {
return 0 < (Core.Get()).game.getFlag('q_waitforalien');
}, 'msg': [{'npc': 'grid', 'text': 'Sir F said you could help me teleport to the alien base.'}, {'npc': 'clod', 'text': 'Yeah, I can do that!'}, {'event': 'move_to_area', 'area': 'alienbase'}]};
this[44] = {'theme': 'DISAPPEARANCE?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_jake');
}, 'msg': [{'npc': 'grid', 'text': 'I visited this city some time ago and there was no-one here. What happened?'}, {'npc': 'jake', 'text': 'We were kidnapped by aliens. They taught us how to improve our building and planning skills.'}, {'npc': 'jake', 'text': 'The only bad thing about it is that someone stole my €50 while I was away. I was so sad! Have you seen this person on your visit?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_jake'}, {'npc': 'grid', 'text': 'I have no idea who that could be. Must be a terrible person.'}]};
this[45] = {'theme': 'TRADE', 'msg': [{'event': 'trade', 'npc': 'jake'}]};
this[46] = {'theme': 'DISAPPEARANCE?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_alexa');
}, 'msg': [{'npc': 'grid', 'text': 'I visited this city some time ago and there was no-one here. What happened?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_alexa'}, {'npc': 'alexa', 'text': 'We were kind of kidnapped by aliens. They tried to entertain us but their movies really suck.'}]};
this[47] = {'theme': 'DISAPPEARANCE?!', 'condition': function () {
return !(Core.Get()).game.isFlag('q_integra_talk_lindwid');
}, 'msg': [{'npc': 'grid', 'text': 'I visited this city some time ago and there was no-one here. What happened?'}, {'event': 'give_exp', 'value': 500}, {'event': 'set_flag', 'flag': 'q_integra_talk_lindwid'}, {'npc': 'lindwid', 'text': 'Really? Maybe. I had\'t noticed, I was so busy with my architectural project. But you say we were kidnapped by aliens? Maybe it was an alien who helped me with the Nerotower project but I don\'t remember. I didn\'t look at him while he was talking.'}]};
this[48] = {'theme': 'WHAT ARE YOU DOING?', 'msg': [{'npc': 'grid', 'text': 'Hey, what are you doing? You look so busy...'}, {'npc': 'lindwid', 'text': 'I\'m designing buildings, bridges, statues - everything. I\'m Lindwid Bellaster, architect first class.'}]};
this[49] = {'theme': 'META-WARRIORS', 'condition': function () {
return !(Core.Get()).game.isFlag('q_meta_intro');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_integra_people'}, {'npc': 'micrasm', 'text': 'Welcome to our realm, pathetic mortals...'}, {'npc': 'vladimir', 'text': 'Micr, you really should change the greeting speach. Why did you catch these strangers again?'}, {'npc': 'micrasm', 'text': 'The Leader\'s orders. Besides, they looked suspicious... I caught them stealing money.'}, {'event': 'set_flag', 'flag': 'q_meta_intro', 'value': 1}, {'npc': 'katenka', 'text': 'You see! I told you stealing was wrong!'}]};
this[50] = {'theme': 'META-WARRIORS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_meta_intro');
}, 'msg': [{'npc': 'leena', 'text': 'Greetings.'}, {'npc': 'grid', 'text': 'Who\'s that cute little girl with the big glasses and skull on her t-shirt?'}, {'npc': 'micrasm', 'text': 'Silence! How dare you to speak with such insolence to our leader!'}, {'npc': 'leena', 'text': 'Everything\'s okay, Micr. They didn\'t insult me, just pointed out some obvious facts. You can\'t blame them for their poor level of evolution, they don\'t have any soft installed in them.'}, {'npc': 'micrasm', 'text': 'Sorry, leader!'}, {'npc': 'leena', 'text': 'Official greeting: I am Lina Brennis, occupation: leader of the informal military organization \'Meta-Warriors\'. Please give me your personal data.'}, {'npc': 'katenka', 'text': 'What?..'}, {'npc': 'grid', 'text': 'Grid Wake, with me are Key McField and Ekaterina Atrevis. We\'re both mercenaries and bounty-hunters.'}, {'npc': 'leena', 'text': 'Information accepted. Whould you like to be known under your second and first name or just a single name?'}, {'npc': 'grid', 'text': 'Call me \'Godlike\', baby.'}, {'npc': 'leena', 'text': 'Grid Wake is now known as \'Godlike Baby\'. Godlike Baby, name your objectives in Integra City.'}, {'npc': 'katenka', 'text': 'Man, what\'s wrong with her?'}, {'npc': 'micrasm', 'text': 'Speak with respect! While in junior high the leader implanted a few nanoprocessors to her head.'}, {'npc': 'grid', 'text': 'We found out the city is empty. That caught our attention.'}, {'npc': 'leena', 'text': 'So you are looters?'}, {'npc': 'grid', 'text': 'No! We decided to investigate this abnormality.'}, {'npc': 'leena', 'text': 'Your behavior shows me you\'re lying. But this holds no interest for me now. We need your hands...'}, {'npc': 'grid', 'text': 'I won\'t give you mine!'}, {'npc': 'leena', 'text': 'Elaboration: we need people who are good at using guns with their hands. I\'ll make you a proposal that you can\'t refuse. Literally.'}, {'npc': 'leena', 'text': 'Let me draw your attention to the fact there are transducers on your legs. If you try to remove them or leave the radius of our locator they will detonate. So I assume that you are willing to help our organization.'}, {'npc': 'grid', 'text': 'Surely you can reason with a person!'}, {'event': 'set_flag', 'flag': 'q_meta_intro', 'value': 2}, {'event': 'set_flag', 'flag': 'v_gotooasis', 'value': 1}, {'event': 'limit_map', 'tl_x': 1140, 'tl_y': 0, 'br_x': 2400, 'br_y': 600}, {'npc': 'leena', 'text': 'When you\'re ready to listen to my task please talk to me again.'}]};
this[51] = {'theme': 'CID', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_waitforalien') && !(Core.Get()).game.getFlag('battle_cid');
}, 'msg': [{'npc': 'grid', 'text': 'Are you Cid?!'}, {'npc': 'cid', 'text': 'That name is used to call my attention, so yes. What is your buisiness with me?'}, {'npc': 'grid', 'text': 'I came to avenge Lina!'}, {'npc': 'cid', 'text': 'That prase is incorrect. The corrected phrase is: «I came to try to avenge Lina». «I came to die here» would do as well...'}, {'event': 'set_flag', 'flag': 'q_afterbattle_cid'}, {'event': 'set_flag', 'flag': 'battle_cid'}, {'event': 'battle', 'band': 'cid'}]};
this[52] = {'theme': 'ALIENS', 'condition': function () {
return (Core.Get()).game.isFlag('q_afterbattle_cid');
}, 'msg': [{'npc': 'craven', 'text': 'Thanks for your help Grid... but it doesn\'t solve anything. The Meta-Warriors are no more, Lina\'s dead... I\'ve lost the meaning in my life.'}, {'npc': 'grid', 'text': 'Come with us.'}, {'npc': 'craven', 'text': 'I suppose, there\'s nothing better I can do...'}, {'npc': 'grid', 'text': 'What\'s that sound?.. Is that an alien radio?..'}, {'npc': 'sir_f', 'text': 'Grid! Return to our base immediately. K.A.U.F.O. has discovered our location and begun an assault. We\'re currently taking heavy fire.'}, {'npc': 'grid', 'text': 'I\'m on my way...'}, {'event': 'give_exp', 'value': 10000}, {'event': 'set_flag', 'flag': 'q_afterbattle_cid', 'value': 0}, {'event': 'set_flag', 'flag': 'q_waitforalien', 'value': 3}, {'event': 'add_quest', 'quest': 'talks_with_aliens', 'stage': 3}, {'npc': 'grid', 'text': 'The portal is in Integra City...'}]};
this[53] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Hello! Who are you, comrade?'}, {'npc': 'vladimir', 'text': 'My name\'s Vladimir. Lead artificer of the Meta-Warriors. The Meta-Warriors need the very best tech.'}]};
this[54] = {'theme': 'VLADSVILLE', 'condition': function () {
return (Core.Get()).game.isFlag('q_vladsville_visited');
}, 'msg': [{'npc': 'grid', 'text': 'So, your name is Vladimir... could it be you\'re from Vladsville?'}, {'npc': 'vladimir', 'text': 'Yeah, but I left my hometown. I didn\'t like it there. So little technology and all that confusion with Vlads...'}, {'npc': 'vladimir', 'text': 'I\'d rather be the only Vlad in the open world than one Vlad among many.'}]};
this[55] = {'theme': 'TRADE', 'condition': function () {
return (Core.Get()).game.isFlag('v_metafight_ally');
}, 'msg': [{'event': 'trade', 'npc': 'vladimir'}]};
this[56] = {'theme': 'META-WARRIORS', 'msg': [{'npc': 'grid', 'text': 'Tell me about the Meta-Warriors.'}, {'npc': 'leena', 'text': 'The informal organization named \'Meta-Warriors\' aims for Global Revolution. To save this slowly dying society from rotting in its own ignorance by enabling the rule of the smartest, not the strongest.'}, {'npc': 'grid', 'text': 'Not bad.'}, {'npc': 'leena', 'text': 'We\'re also fond of modifyng human bodies with modern cybernetic tech. Only PC-controlled chips can allow a normal human to use 100% of his abilities.'}]};
this[57] = {'theme': 'TASK', 'condition': function () {
return (Core.Get()).game.isFlag('v_gotooasis');
}, 'msg': [{'npc': 'grid', 'text': 'So what\'s the task? These transducers are really making me nervous.'}, {'npc': 'leena', 'text': 'North-East from here there is a place called Oasis. It\'s an important strategic location for the Meta-Warriors. Please go there with Kraven to persuade them of our good intentions.'}, {'npc': 'grid', 'text': 'Kraven? Kraven who?'}, {'npc': 'craven', 'text': 'Kraven me.'}, {'npc': 'grid', 'text': 'Oh, the flying one. I see.'}, {'npc': 'leena', 'text': 'Kraven is modified with cybernetic wings - they are advantageous in combat.'}, {'event': 'join_team', 'npc': 8}, {'event': 'set_flag', 'flag': 'v_gotooasis', 'value': 0}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_oasis', 'stage': 0}, {'npc': 'grid', 'text': 'Okay, Kraven, let\'s get to this Oasis.'}]};
this[58] = {'theme': 'OASIS', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'leena', 'text': 'Done?'}, {'npc': 'grid', 'text': 'No.'}, {'npc': 'leena', 'text': 'Explain!'}, {'npc': 'grid', 'text': 'I\'ve forgotten what I need to do.'}, {'npc': 'leena', 'text': 'Go to Oasis and convince them to cooperate with us.'}, {'npc': 'grid', 'text': 'Thanks.'}]};
this[59] = {'theme': 'OASIS - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_oasispeace');
}, 'msg': [{'npc': 'leena', 'text': 'Done?'}, {'npc': 'craven', 'text': 'Yes. If we provide them with water and Internet access they will ally with us.'}, {'event': 'complete_quest', 'quest': 'meta_oasis'}, {'event': 'give_exp', 'value': 1000}, {'event': 'set_flag', 'flag': 'q_oasispeace', 'value': 3}, {'npc': 'leena', 'text': 'That arrangement is considered to be acceptable. Your next task is as follows, Godlike Baby...'}, {'npc': 'grid', 'text': 'Wait! Another one?! We\'ve already completed your task! Let us go!'}, {'npc': 'leena', 'text': 'Impossible. We still need help and you still wear your transducer. This leaves just one clear course of action.'}, {'npc': 'grid', 'text': 'To stop the rule of the strong... wasn\'t that your purpose!?..'}, {'npc': 'leena', 'text': 'People say: \'Fight fire with fire\'.'}, {'npc': 'grid', 'text': 'So what\'s your damn task?'}, {'npc': 'leena', 'text': 'Something has happened to our allies in Raymonde Village. Since Raymonde is a village of the country\'s most brilliant minds it is critically important to us. Go there and help them with their problem.'}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_raimonde', 'stage': 0}, {'npc': 'grid', 'text': 'Got it...'}]};
this[60] = {'theme': 'RAYMOND Village', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'leena', 'text': 'Done?'}, {'npc': 'grid', 'text': 'No.'}, {'npc': 'leena', 'text': 'Reason?'}, {'npc': 'grid', 'text': 'I\'ve forgotten what I need to do.'}, {'npc': 'leena', 'text': 'Go to Raymonde Village and help them with their problem.'}, {'npc': 'grid', 'text': 'Now I remember! Thanks.'}]};
this[61] = {'theme': 'RAYMONDE Village - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_raymondehelp');
}, 'msg': [{'npc': 'leena', 'text': 'Kraven has already informed me of your success.'}, {'event': 'set_flag', 'flag': 'q_raymondehelp', 'value': 3}, {'event': 'give_exp', 'value': 5000}, {'event': 'complete_quest', 'quest': 'meta_raimonde'}, {'npc': 'grid', 'text': 'Good. Now please let us go.'}, {'npc': 'leena', 'text': 'I\'d rather not... but I will comply. Even in the name of world order it is wrong to use people.'}, {'npc': '', 'text': 'Transducers were removed!'}, {'npc': 'grid', 'text': 'This is more like it!'}, {'npc': 'leena', 'text': 'If you ever decide to help us found the New World Order, we\'d appreciate your support.'}, {'event': 'unlimit_map'}, {'npc': 'grid', 'text': 'Okay, but we have to return to Nathan for now.'}]};
this[62] = {'theme': 'CONTINUE THE PARTNERSHIP', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_raymondehelp') && !(Core.Get()).game.isFlag('q_metatechnicans');
}, 'msg': [{'npc': 'leena', 'text': 'I see it in your eyes - you\'re ready to help us further the cause. That\'s good! You will be compensated for your future help.'}, {'npc': 'grid', 'text': 'What can I do for you?'}, {'npc': 'leena', 'text': 'Smith Becord and Carl Vaccuol are making preparations for the Rebellion. Assist them in any way you can.'}, {'event': 'set_flag', 'flag': 'q_metatechnicans'}, {'event': 'set_flag', 'flag': 'v_metafight_ally'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 0}, {'event': 'give_exp', 'value': 1500}, {'event': 'join_team', 'npc': 8}, {'npc': 'craven', 'text': 'I\'ll go with you.'}]};
this[63] = {'theme': 'HELP VACCUOL AND BECORD', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && (2 > (Core.Get()).game.getFlag('q_get3parts') || 2 > (Core.Get()).game.getFlag('q_getchips'));
}, 'msg': [{'npc': 'leena', 'text': 'Did you help Carl and Smith to prepare for the Rebellion?'}, {'npc': 'grid', 'text': 'I\'m still working on that.'}]};
this[64] = {'theme': 'HELP VACCUOL AND BECORD', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_metatechnicans') && 2 == (Core.Get()).game.getFlag('q_get3parts') && 2 == (Core.Get()).game.getFlag('q_getchips');
}, 'msg': [{'npc': 'grid', 'text': 'Vaccuol and Becord are ready for the Rebellion.'}, {'event': 'give_exp', 'value': 7000}, {'event': 'give_money', 'value': 25000}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 1}, {'event': 'set_flag', 'flag': 'q_metatechnicans', 'value': 2}, {'npc': 'leena', 'text': 'Excellent. Here is your reward.'}, {'npc': 'leena', 'text': 'When you\'re ready I have a further task for you.'}]};
this[65] = {'theme': 'NEGOTIATIONS WITH CALIPSO', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_metatechnicans') && !(Core.Get()).game.isFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'I\'m ready. What\'s my new task?'}, {'npc': 'leena', 'text': 'Godlike baby. Do you know the city of the dead, Calipso? It\'s the home of the forgotten victims of failed genetic experiments.'}, {'npc': 'leena', 'text': 'Requirements: they must ally themselves to us, no matter the cost. I don\'t care how you achieve it, I just need it done.'}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 1}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 2}, {'npc': 'grid', 'text': 'Have I mentioned that you have a unique way of reasoning with people?..'}]};
this[66] = {'theme': 'CALIPSO\'S DEMANDS', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'leena', 'text': 'So we are already allied with Calipso?'}, {'npc': 'grid', 'text': 'They refuse to help us unless we can restore their \'human\' bodies, so I\'m out of here...'}, {'npc': 'leena', 'text': 'Illogical. There are, in theory, ways to restore their human bodies.'}, {'npc': 'grid', 'text': 'Really?..'}, {'npc': 'leena', 'text': 'I think Michael from Raymonde Village conducted some research into this problem some time ago.'}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 3}, {'event': 'give_exp', 'value': 1500}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 4}, {'npc': 'grid', 'text': 'I see. Then I\'ll talk to Michael...'}]};
this[67] = {'theme': 'NEGOTIATIONS WITH CALIPSO - DONE', 'condition': function () {
return 5 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'npc': 'grid', 'text': 'We have the walking dead behind us. They\'ll assist us in the Rebellion.'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_allycalipso', 'value': 6}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 7}, {'npc': 'leena', 'text': 'Excellent news, Godlike Baby! Here is your reward. Return to me when you\'re ready for the next task.'}]};
this[68] = {'theme': 'INVESTMENT', 'condition': function () {
return !(Core.Get()).game.isFlag('q_getinvestor') && 6 == (Core.Get()).game.getFlag('q_allycalipso');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 1}, {'npc': 'leena', 'text': 'Bad news. The cost of our preparations have been greater than expected. We\'re now out of funds...'}, {'npc': 'grid', 'text': 'The Revolution is bankrupt?'}, {'npc': 'leena', 'text': 'I\'d rather say, the Revolution lacks a sponsor.'}, {'npc': 'grid', 'text': 'It seems money is the key to any door.'}, {'npc': 'leena', 'text': 'Go to Castedo City, Godlike Baby, and persuade one of the city\'s big shots to invest in our organization. Just get me the money, I don\'t care how.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 8}, {'npc': 'grid', 'text': 'You\'re so avid, Lina!'}, {'npc': 'leena', 'text': 'Humour: understood. Rated: 3/10.'}]};
this[69] = {'theme': 'INVESTMENT', 'condition': function () {
return 1 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'leena', 'text': 'Let me remind you that you should depart for Castedo City and persuade any of it\'s big shots to invest in us.'}, {'npc': 'grid', 'text': 'I remember that!'}, {'npc': 'leena', 'text': 'Then why are you not doing so?'}, {'npc': 'grid', 'text': 'A good question. I\'m off to do it right now.'}]};
this[70] = {'theme': 'INVESTMENT - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_getinvestor');
}, 'msg': [{'npc': 'grid', 'text': 'I\'ve found a sponsor for the Rebellion.'}, {'npc': 'leena', 'text': 'Good news! My excitement: 85 parts in 100.'}, {'npc': 'leena', 'text': 'Please take your reward.'}, {'event': 'give_exp', 'value': 10000}, {'event': 'give_money', 'value': 100000}, {'event': 'set_flag', 'flag': 'q_getinvestor', 'value': 3}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 10}, {'npc': 'leena', 'text': 'The preparations for the Rebellion are all done, Godlike Baby. Consider carefully whether you wish to continue. There will be no further opportunity to reconsider.'}]};
this[71] = {'theme': 'START THE REBELLION', 'condition': function () {
return 3 == (Core.Get()).game.getFlag('q_getinvestor') && !(Core.Get()).game.isFlag('q_startrevolution');
}, 'msg': [{'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 1}, {'npc': 'leena', 'text': 'So, Godlike Baby, you\'ve decided to continue with us. In truth I\'m glad. You\'re a valuable asset.'}, {'npc': 'leena', 'text': 'Since you\'re ready to commit I shall award you the honorary rank of General.'}, {'npc': 'leena', 'text': 'Your first mission is to destroy the military base. Our forces are heading there and your task is to take down their leader - Gran Stakovich - and his squadron.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 11}, {'npc': 'grid', 'text': 'You\'re speaking differently now.'}, {'event': 'set_flag', 'flag': 'btl_celester'}, {'npc': 'leena', 'text': 'The \'battle commander\' plugin from the game \'Guide and Dominate\' has been installed. Good luck, General!'}]};
this[72] = {'theme': 'DESTROYING THE MILITARY BASE - DONE', 'condition': function () {
return 2 == (Core.Get()).game.getFlag('q_startrevolution');
}, 'msg': [{'event': 'give_exp', 'value': 15000}, {'event': 'give_money', 'value': 50000}, {'event': 'set_flag', 'flag': 'q_startrevolution', 'value': 3}, {'npc': 'leena', 'text': 'Our scout has already notified me of your success.'}, {'npc': 'leena', 'text': 'While you engaged the most dangerous squadron our forces succesfully captured the base.'}, {'npc': 'grid', 'text': 'Cool!'}, {'npc': 'leena', 'text': 'After seeing how efficiently we eliminated the regular army many people have decided to join our side.'}, {'npc': 'leena', 'text': 'But this is not yet the end. President Myst still has a lot of followers. You will need to enter Dark Capitol City to overthrow both her and her government as well.'}, {'npc': 'leena', 'text': 'Lead our forces and destroy our enemies, General. We all have faith in you.'}, {'event': 'add_quest', 'quest': 'meta_uprise', 'stage': 13}, {'npc': 'leena', 'text': 'Good luck.'}]};
this[73] = {'theme': 'ABOUT LINA', 'msg': [{'npc': 'grid', 'text': 'Who is Lina?'}, {'npc': 'craven', 'text': 'Lina is a prodigy who implanted some nanoprocessors into her own head while still in high school. She began this movement and is our honorable leader.'}, {'npc': 'grid', 'text': 'I\'d heard kids stuffed their heads with computers, but...'}]};
this[74] = {'theme': 'ABOUT YOURSELF', 'msg': [{'npc': 'grid', 'text': 'Why are you winged?'}, {'npc': 'craven', 'text': 'Because I wished to be.'}, {'npc': 'grid', 'text': 'How are they attached?'}, {'npc': 'craven', 'text': 'They are cyber implants. Meta-Warriors believe that a human is born imperfect. He needs to implant cybernetic parts to improve himself.'}, {'npc': 'craven', 'text': 'For me these wings are not only helpers in battle but also a symbol of freedom.'}]};
};
_global.TalkDataEn = v1;
_global.TalkDataEn extends TalkData2En;
var v2 = v1.prototype;
ASSetPropFlags(_global.TalkDataEn.prototype, null, 1);
}
#endinitclip
}
movieClip 1955 __Packages.NPCDataEn {
#initclip
if (!_global.NPCDataEn) {
var v1 = function () {
this.natan = {'id': 0, 'name': 'Nathan', 'hello': 'Finally, Grid. Why are you late again?'};
this.natan.descri = 'Head of K.A.U.F.O.';
this.natan.talk = [1, 2, 3, 4, 5, 6, 7];
this.halisted = {'id': 1, 'name': 'Galisted', 'hello': 'Greetings young man!'};
this.halisted.descri = 'Elder of the village';
this.halisted.talk = [27, 28, 29];
this.ho = {'id': 2, 'name': 'Farmer Ho', 'hello': 'Hello there, what do you want?'};
this.ho.descri = 'Greatest farmer of this region.';
this.ho.talk = [33, 30, 31, 32];
this.alien1 = {'id': 3, 'name': 'Citizen of Summer Garden', 'hello': 'Welcome to the garden of summer, human. We are humans. I am just like you. Why don\'t you put a bear on your head?'};
this.alien1.descri = 'Ordinary human';
this.alien1.talk = [35];
this.alien2 = {'id': 4, 'name': 'Citizen of Summer Garden', 'hello': 'I want to have you in our town!'};
this.alien2.descri = 'Ordinary human';
this.alien2.talk = [36];
this.alien3 = {'id': 5, 'name': 'Citizen of Summer Garden', 'hello': 'I work as a waitress. I don\'t know why my boss says I\'m no good at it and dress badly.'};
this.alien3.descri = 'Ordinary human';
this.alien3.talk = [37];
this.clod = {'id': 6, 'name': 'Claude', 'hello': 'Hello. Welcome to Integra City.'};
this.clod.descri = 'Neoproletarian';
this.clod.talk = [41, 42, 43];
this.jake = {'id': 7, 'name': 'Jake', 'hello': 'Hey!'};
this.jake.descri = 'Proletarian';
this.jake.talk = [44, 45];
this.alexa = {'id': 8, 'name': 'Alexa', 'hello': 'Hello, scut.'};
this.alexa.descri = 'Local';
this.alexa.talk = [46];
this.lindwid = {'id': 9, 'name': 'Lindwid', 'hello': 'Don\'t distract me! I\'m very busy.'};
this.lindwid.descri = 'The architect';
this.lindwid.talk = [47, 48];
this.vladimir = {'id': 10, 'name': 'Vladimir', 'hello': 'Hello, comrade.'};
this.vladimir.descri = 'Meta-warrior\'s lead artificer';
this.vladimir.talk = [53, 54, 55];
this.micrasm = {'id': 11, 'name': 'Micrasm', 'hello': 'If you offend Lina, I\'ll kill you.'};
this.micrasm.descri = 'Lina\'s bodyguard';
this.leena = {'id': 12, 'name': 'Lina', 'hello': 'Official greeting: Good day to you.'};
this.leena.descri = 'Meta-Warriors leader';
this.leena.talk = [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72];
this.craven = {'id': 13, 'name': 'Kraven', 'hello': 'I think you\'d better talk to Lina if you need something.'};
this.craven.descri = 'Winged Meta-warrior';
this.craven.talk = [73, 74];
this.sarahata = {'id': 14, 'name': 'Sarahata', 'hello': 'Welcome to my Oasis. I\'m in charge here. Sarahata is my name.'};
this.sarahata.descri = 'Ruler of the Oasis\' tribe';
this.sarahata.talk = [75, 76, 77];
this.mihel = {'id': 15, 'name': 'Miguel', 'hello': 'What?! Get lost!'};
this.mihel.descri = 'Garth\'s leader';
this.mihel.talk = [78, 79, 80];
this.vermut = {'id': 16, 'name': 'Vermuth', 'hello': 'I serve Garth!'};
this.vermut.descri = 'Soldier of Garth';
this.vermut.talk = [81];
this.zoid = {'id': 17, 'name': 'Zoid', 'hello': 'Hail, Garth!'};
this.zoid.descri = 'Soldier of Garth';
this.zoid.talk = [83];
this.bristol = {'id': 18, 'name': 'Bristol', 'hello': 'Hi there.'};
this.bristol.descri = 'An artist and a nudie';
this.bristol.talk = [84, 85, 86];
this.stan = {'id': 19, 'name': 'Stan', 'hello': 'Hi, man. Be cool. All\'s fine.'};
this.stan.descri = 'Mayor of the town';
this.stan.talk = [87, 88];
this.viola = {'id': 20, 'name': 'Viola', 'hello': 'Hello, potential friend.'};
this.viola.descri = 'Musician';
this.viola.talk = [89, 90];
this.ace = {'id': 21, 'name': 'Ace', 'hello': 'Yo.'};
this.ace.descri = 'Money-lender';
this.ace.talk = [91, 93, 94, 95, 96];
this.shell = {'id': 22, 'name': 'Shell', 'hello': 'Greetings, traveler!'};
this.shell.descri = 'A noble warrior and explorer';
this.shell.talk = [97, 98, 99];
this.liz = {'id': 23, 'name': 'Liz', 'hello': '(sighs)'};
this.liz.descri = 'Sad girl';
this.liz.talk = [100, 101, 102, 103, 104];
this.alice = {'id': 24, 'name': 'Alice', 'hello': 'Good day.'};
this.alice.descri = 'Owner of the store';
this.alice.talk = [105, 106];
this.harcos = {'id': 25, 'name': 'Harkos', 'hello': 'Harkos, captain of \'Impendence\', welcomes you!'};
this.harcos.descri = 'Captain of \'Impendence\'';
this.harcos.talk = [107, 108, 109, 110, 111, 112, 113];
this.yax = {'id': 26, 'name': 'Yax', 'hello': 'Hello there.'};
this.yax.descri = 'Veteran sailor';
this.yax.talk = [114, 115, 116];
this.cij = {'id': 27, 'name': 'C. I. J.', 'hello': 'Yahoo!'};
this.cij.descri = 'Captain of flying ship \'Hysteria\'';
this.cij.talk = [117, 118, 119];
this.kippa = {'id': 28, 'name': 'Kippa', 'hello': 'Hi!'};
this.kippa.descri = 'Girl with cat\'s ears';
this.kippa.talk = [120, 121, 122];
this.lexic = {'id': 29, 'name': 'Leksik', 'hello': 'Good to meet you!'};
this.lexic.descri = 'A panda';
this.lexic.talk = [123, 124, 125];
this.gaimon = {'id': 30, 'name': 'Gaimon', 'hello': 'Greetings.'};
this.gaimon.descri = 'A weird person';
this.gaimon.talk = [126, 127, 128];
this.chivax = {'id': 31, 'name': 'Chivax', 'hello': 'How can I help you?'};
this.chivax.descri = 'The mayor';
this.chivax.talk = [129, 130];
this.ken = {'id': 32, 'name': 'Ken', 'hello': 'Damn! I went to war believing I was making a better future but it all ended in a gloomy present...'};
this.ken.descri = 'Dead soldier';
this.ken.talk = [131];
this.goman = {'id': 33, 'name': 'Goman', 'hello': 'Normal girls don\'t look at me, and even Fia only wants living men. What do you think should I do?! Die? I can\'t!!'};
this.goman.descri = 'Dead soldier';
this.goman.talk = [132];
this.fea = {'id': 34, 'name': 'Fia', 'hello': 'Greetings, living one...'};
this.fea.descri = 'Dead scientist';
this.fea.talk = [133, 134, 135];
this.keabo = {'id': 35, 'name': 'Kibo', 'hello': 'Peace, friendship and bubble gum, friend. Take it easy. Be cool.'};
this.keabo.descri = 'Weapons dealer';
this.keabo.talk = [136, 137, 138, 139, 140];
this.seth = {'id': 36, 'name': 'Seth', 'hello': '...'};
this.seth.descri = 'A gloomy and angry rich man';
this.seth.talk = [141, 142, 143, 144];
this.hydra = {'id': 37, 'name': 'Hydra', 'hello': 'Hi!'};
this.hydra.descri = 'A maniacal daughter of a rich family';
this.hydra.talk = [145, 146, 147, 148];
this.heraldio = {'id': 38, 'name': 'Heraldio', 'hello': 'Greetings, sir.'};
this.heraldio.descri = 'An aristocrat';
this.heraldio.talk = [149, 150, 151, 152];
this.vlad_ser = {'id': 39, 'name': 'Vlad', 'hello': 'Welcome to Vladsville!'};
this.vlad_ser.descri = 'Head of the village';
this.vlad_ser.talk = [153, 154, 155];
this.vlad_vlad = {'id': 40, 'name': 'Vlad', 'hello': 'Nice to meet you, Vlad.'};
this.vlad_vlad.descri = 'A blacksmith';
this.vlad_vlad.talk = [156, 157, 158];
this.vlada = {'id': 41, 'name': 'Vlada', 'hello': 'Welcome to my house!'};
this.vlada.descri = 'Hostess';
this.vlada.talk = [159];
this.garn = {'id': 42, 'name': 'Garn Stakovich', 'hello': 'Garn Stakovich, captain of the 7th Squadron. What do you want with me, citizen?'};
this.garn.descri = 'Captain of the 7th squadron';
this.garn.talk = [162];
this.celester = {'id': 43, 'name': 'Selester', 'hello': 'Hello, what do you want?'};
this.celester.descri = 'A legendary sniper';
this.celester.talk = [163];
this.lesly = {'id': 44, 'name': 'Lesley', 'hello': 'Hello there, handsome.'};
this.lesly.descri = 'A soldier';
this.lesly.talk = [164];
this.marcy = {'id': 45, 'name': 'Marcy', 'hello': 'Hi!'};
this.marcy.descri = 'Chief editor';
this.marcy.talk = [169, 170, 171, 172];
this.biby = {'id': 46, 'name': 'Biby', 'hello': 'Hello to you, my fans!'};
this.biby.descri = 'A model, a singer and an actress';
this.biby.talk = [173, 174];
this.ibrahim = {'id': 47, 'name': 'Ibrahim', 'hello': 'Metal-Allure. Join our cult.'};
this.ibrahim.descri = 'A cultist';
this.ibrahim.talk = [175, 176, 177];
this.michel = {'id': 48, 'name': 'Michelle', 'hello': 'Hello, my name\'s Michelle.'};
this.michel.descri = 'A courtesan';
this.michel.talk = [178, 179, 180];
this.jax = {'id': 49, 'name': 'Jax', 'hello': 'Hi! Want me to tear off your hands?! No?! Too bad. What do you want then?'};
this.jax.descri = 'Chief of police';
this.jax.talk = [181, 182, 183, 184, 185];
this.elm = {'id': 50, 'name': 'Elm', 'hello': 'Good day, human.'};
this.elm.descri = 'A film maker';
this.elm.talk = [186, 187, 188];
this.nina_x = {'id': 51, 'name': 'Nina X', 'hello': 'Hi, boy.'};
this.nina_x.descri = 'A person';
this.nina_x.talk = [189, 190, 191];
this.uncle_sam = {'id': 52, 'name': 'Uncle Sam', 'hello': 'Uncle Sam is all yours!'};
this.uncle_sam.descri = 'Farmer';
this.uncle_sam.talk = [192, 193];
this.stacy = {'id': 53, 'name': 'Stacy', 'hello': 'Hi!'};
this.stacy.descri = 'Uncle Sam\'s daughter';
this.stacy.talk = [194, 195, 196];
this.hell = {'id': 54, 'name': 'Hell', 'hello': 'Hello, tom-kat. Did you come to see me?'};
this.hell.descri = 'Probably a devil itself';
this.hell.talk = [198, 199, 200, 201, 203, 204];
this.guard = {'id': 55, 'name': 'Eduardo', 'hello': 'Move on. You\'re not allowed to enter this city.'};
this.guard.descri = 'A guard';
this.guard.talk = [];
this.mist = {'id': 56, 'name': 'Myst', 'hello': 'So, you came here...'};
this.mist.descri = 'The president';
this.mist.talk = [205];
this.kage = {'id': 57, 'name': 'Kage', 'hello': '...'};
this.kage.descri = 'A silent ninja';
this.kage.talk = [206, 207, 208];
this.grandin = {'id': 58, 'name': 'Grandin', 'hello': 'Peace to your heart, stranger.'};
this.grandin.descri = 'A monk';
this.grandin.talk = [209, 210, 211];
this.dr_rade = {'id': 59, 'name': 'Doctor A. F. Rade', 'hello': 'This is bad, you\'ve discovered my secret lab...'};
this.dr_rade.descri = 'An ascetic genious scientis';
this.dr_rade.talk = [212, 213];
this.garret = {'id': 60, 'name': 'Garret', 'hello': 'Hello, I\'m Garret. I\'m a gene engineer.'};
this.garret.descri = 'A gene engineer';
this.garret.talk = [214, 215, 216, 256];
this.ksenya = {'id': 61, 'name': 'Xenya', 'hello': 'Hi!'};
this.ksenya.descri = 'A biologist';
this.ksenya.talk = [217, 219];
this.sir_f = {'id': 62, 'name': 'Sir F', 'hello': 'Greetings, human of the planet.'};
this.sir_f.descri = 'An alien\'s emperor';
this.sir_f.talk = [224, 225, 226];
this.curt = {'id': 63, 'name': 'Curt', 'hello': 'Hi. What is it?'};
this.curt.descri = 'A loafer';
this.curt.talk = [227, 228, 229, 230];
this.georg = {'id': 64, 'name': 'Georg', 'hello': 'Hello, traveler.'};
this.georg.descri = 'The head of city';
this.georg.talk = [231, 232, 233, 234, 235, 236];
this.john = {'id': 65, 'name': 'John', 'hello': 'Hello, man.'};
this.john.descri = 'An idler';
this.john.talk = [237, 238, 239, 240];
this.carl = {'id': 66, 'name': 'Carl Vaccuol', 'hello': 'I hear you.'};
this.carl.descri = 'A great scientist and an inventor';
this.carl.talk = [243, 244, 245, 246, 247];
this.michael = {'id': 67, 'name': 'Mikhael Valotkraft', 'hello': 'Good day. Mikhael Valotkraft, at your service.'};
this.michael.descri = 'A scientist';
this.michael.talk = [249, 248];
this.smith = {'id': 68, 'name': 'Smith Becord', 'hello': 'Yo, man.'};
this.smith.descri = 'A great scientist';
this.smith.talk = [250, 251, 252, 253, 254];
this.dekkis = {'id': 69, 'name': 'Dekkis', 'hello': ''};
this.dekkis.descri = 'A mutant';
this.katenka = {'id': 70, 'name': 'Katenka', 'hello': ''};
this.katenka.descri = 'K.A.U.F.O. member';
this.key = {'id': 71, 'name': 'Key', 'hello': ''};
this.key.descri = 'K.A.U.F.O. member';
this.feather = {'id': 72, 'name': 'Feather', 'hello': ''};
this.feather.descri = 'A girl that looks like an angel';
this.karry = {'id': 73, 'name': 'Curry', 'hello': ''};
this.karry.descri = 'An alien';
this.karry.talk = [257, 258, 259];
this.grid = {'id': 74, 'name': 'Grid', 'hello': ''};
this.grid.descri = 'K.A.U.F.O. member';
this.cid = {'id': 75, 'name': 'Cid', 'hello': ''};
this.cid.descri = 'A cybernetic person';
this.alien1a = {'id': 76, 'name': 'Alien'};
this.alien1a.descri = '';
this.alien2a = {'id': 77, 'name': 'Alien'};
this.alien2a.descri = '';
this.alien3a = {'id': 78, 'name': 'Alien'};
this.alien3a.descri = '';
this.house_carl = {'id': 79, 'name': 'Carl\'s house', 'hello': '...'};
this.house_carl.descri = '';
this.house_carl.talk = [242];
};
_global.NPCDataEn = v1;
var v2 = v1.prototype;
ASSetPropFlags(_global.NPCDataEn.prototype, null, 1);
}
#endinitclip
}
movieClip 1956 __Packages.GameData {
#initclip
if (!_global.GameData) {
var v1 = function () {
this.unit_pos = new Pair(108, 97);
this.unit_tile = new Pair(-1, -1);
this.scroll = new Pair(0, 0);
this.map_tl = new Pair(0, 0);
this.map_br = new Pair((Core.Get()).cfg.map_size.x, (Core.Get()).cfg.map_size.y);
this.cur_region = -1;
var v6 = (Core.Get()).cfg.fog_size;
this.fog_data = new Array(v6.x);
var v5 = 0;
while (v5 < v6.x) {
this.fog_data[v5] = new Array(v6.y);
var v3 = 0;
while (v3 < v6.y) {
this.fog_data[v5][v3] = 100;
++v3;
}
++v5;
}
var v7 = (Core.Get()).world.areas.length;
this.areas_shown = new Array(v7);
this.areas_marked = new Array(v7);
var v2 = 0;
while (v2 < v7) {
this.areas_shown[v2] = false;
this.areas_marked[v2] = false;
++v2;
}
var v8 = (Core.Get()).world;
this.areas_marked[v8.area_to_id.kaufo] = true;
this.areas_marked[v8.area_to_id.kameron] = true;
this.areas_marked[v8.area_to_id.integra] = true;
this.areas_marked[v8.area_to_id.gibson] = true;
this.areas_marked[v8.area_to_id.capitol] = true;
this.in_area = v8.area_to_id.kaufo;
this.traders = new Object();
this.traders.halisted = [1, 3, 5, 11, 23, 24, 31, 53, 58, 69, 81, 90, 108, 122, {'item': 139, 'count': 3}, {'item': 146, 'count': 5}, {'item': 147, 'count': 3}];
this.traders.jake = [5, 11, 12, 13, 14, 15, 16, 24, 27, 38, 55, 70, 73, 80, 96, 100, 102, 123, {'item': 140, 'count': 2}, {'item': 148, 'count': 3}, {'item': 155, 'count': 5}];
this.traders.vladimir = [6, 19, 38, 40, 41, 42, 43, 45, 46, 48, 50, 56, 78, 79, 81, 84, 94, 96, 108, 123, {'item': 141, 'count': 3}, {'item': 149, 'count': 2}, {'item': 151, 'count': 3}, {'item': 152, 'count': 2}, {'item': 155, 'count': 1}];
this.traders.zoid = [2, 3, 15, 28, 32, 47, 60, 61, 76, 82, 144, {'item': 155, 'count': 3}];
this.traders.alice = [1, 2, 4, 8, 39, 49, 56, 58, 60, 69, 85, 93, 102, 103, 104, 107, 108, 109, 110, {'item': 140, 'count': 2}, {'item': 148, 'count': 2}];
this.traders.goman = [7, 24, 25, 33, 48, 49, 50, 51, 52, 78, 83, 97, 98, 99, 106, {'item': 142, 'count': 2}, 154];
this.traders.kippa = [4, 8, 53, 100, 109, 110, 112, {'item': 146, 'count': 5}, {'item': 147, 'count': 5}, {'item': 148, 'count': 4}, {'item': 149, 'count': 4}, {'item': 150, 'count': 3}, {'item': 151, 'count': 5}, {'item': 152, 'count': 3}, {'item': 153, 'count': 2}];
this.traders.keabo = [13, 16, 17, 27, 32, 33, 34, 36, 39, 40, 62, 63, 74, 75, 106, 113, 114, 130, {'item': 141, 'count': 2}, {'item': 150, 'count': 2}, 154];
this.traders.vlad_vlad = [10, 40, 45, 71, {'item': 148, 'count': 2}, {'item': 149, 'count': 2}, {'item': 150, 'count': 1}, {'item': 155, 'count': 2}];
this.traders.uncle_sam = [6, 7, 18, 21, 35, 36, 37, 54, 56, 57, 79];
this.traders.stacy = [86, 89, 95, 105];
this.traders.dr_rade = [9, 22, 29, 37, 44, 64, 65, 66, 67, 68, 115, 116, 117, 132, 135, 136, 137];
this.traders.jax = [25, 26, 27, 28, 31, 35, 41, 43, 55, 59, 60, 61, 70, 71, 72, 73, 87, 91, 92, {'item': 141, 'count': 4}, {'item': 142, 'count': 4}, {'item': 149, 'count': 2}, {'item': 155, 'count': 3}];
this.traders.john = [7, 17, 18, 20, 28, 34, 35, 42, 46, 47, 54, 59, 62, 63, 77, 88, 111, 118, 131, {'item': 142, 'count': 1}, 144, {'item': 150, 'count': 1}, {'item': 151, 'count': 1}, {'item': 152, 'count': 1}];
this.traders.garret = [];
this.team = [0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
this.stats = [{'level': 1, 'exp': 0, 'ups': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}, {'level': 1, 'exp': 0}];
var v13 = this.stats.length;
v2 = 0;
while (v2 < v13) {
var v4 = (Core.Get()).world.chars[v2];
this.stats[v2].vit = v4.vit;
this.stats[v2].def = v4.vit;
this.stats[v2].acc = v4.vit;
this.stats[v2].dgr = v4.vit;
this.stats[v2].tch = v4.vit;
this.stats[v2].med = v4.vit;
this.stats[v2].lck = v4.vit;
this.stats[v2].level_up = false;
this.stats[v2].perk_unlocked = false;
this.stats[v2].bonus_points = false;
++v2;
}
this.equipment = [{'weapon': 11, 'armor': 69, 'device': -1}, {'weapon': 12, 'armor': 69, 'device': -1}, {'weapon': 24, 'armor': 69, 'device': -1}, {'weapon': -1, 'armor': -1, 'device': -1}, {'weapon': -1, 'armor': 69, 'device': -1}, {'weapon': 66, 'armor': 69, 'device': 116}, {'weapon': -1, 'armor': 69, 'device': -1}, {'weapon': -1, 'armor': 69, 'device': -1}, {'weapon': 58, 'armor': 69, 'device': -1}, {'weapon': -1, 'armor': 69, 'device': -1}, {'weapon': -1, 'armor': 69, 'device': -1}, {'weapon': -1, 'armor': 69, 'device': -1}];
this.inventory = [{'item': 1, 'count': 1}, {'item': 139, 'count': 3}, {'item': 146, 'count': 5}, {'item': 147, 'count': 2}];
this.money = 300;
this.quests = [];
this.quest_progress = {};
this.flags = [];
this.area_flags = [];
this.timers = new Object();
this.quest_items = [];
this.exchange = null;
this.resetEncounterDelay();
this.guides = [];
this.enemy_data = [];
};
_global.GameData = v1;
var v2 = v1.prototype;
v2.addEnemy = function (x_, y_, band_) {
this.enemy_data.push({'x': x_, 'y': y_, 'band': band_});
};
v2.isInParty = function (npc_) {
if (npc_ < 0) {
return false;
}
var v3 = 4;
var v2 = 0;
while (v2 < v3) {
if (this.team[v2] == npc_) {
return true;
}
++v2;
}
return false;
};
v2.isInTeam = function (npc_) {
if (npc_ < 0) {
return false;
}
var v3 = this.team.length;
var v2 = 0;
while (v2 < v3) {
if (this.team[v2] == npc_) {
return true;
}
++v2;
}
return false;
};
v2.joinTeam = function (npc_) {
if (this.isInTeam(9) && npc_ == 11 || this.isInTeam(11) && npc_ == 9) {
(Core.Get()).unlockMedal('Heaven and Hell');
}
if (npc_ < 0) {
return undefined;
}
var v4 = this.team.length;
var v2 = 0;
while (v2 < v4) {
if (this.team[v2] == -1) {
this.team[v2] = npc_;
return undefined;
}
++v2;
}
};
v2.leaveTeam = function (npc_) {
if (npc_ < 0) {
return undefined;
}
if (this.equipment[npc_].weapon > 0) {
this.putInventory(this.equipment[npc_].weapon);
this.equipment[npc_].weapon = -1;
}
if (this.equipment[npc_].armor > 0) {
this.putInventory(this.equipment[npc_].armor);
this.equipment[npc_].armor = -1;
}
if (this.equipment[npc_].device > 0) {
this.putInventory(this.equipment[npc_].device);
this.equipment[npc_].device = -1;
}
var v4 = this.team.length;
var v2 = 0;
while (v2 < v4) {
if (this.team[v2] == npc_) {
this.team[v2] = -1;
return undefined;
}
++v2;
}
};
v2.isFlag = function (fl_) {
return undefined != this.flags[fl_] && this.flags[fl_];
};
v2.setFlag = function (fl_) {
this.flags[fl_] = 1;
};
v2.incFlag = function (fl_) {
if (undefined == this.flags[fl_]) {
this.flags[fl_] = 1;
} else {
++this.flags[fl_];
}
};
v2.resetFlag = function (fl_) {
this.flags[fl_] = 0;
};
v2.setFlagTo = function (fl_, value_) {
this.flags[fl_] = value_;
};
v2.getFlag = function (fl_) {
if (undefined == this.flags[fl_]) {
return 0;
} else {
return this.flags[fl_];
}
};
v2.setAreaFlag = function (fl_) {
this.area_flags[fl_] = 1;
};
v2.isAreaFlag = function (fl_) {
return undefined != this.area_flags[fl_] && this.area_flags[fl_];
};
v2.resetAreaFlags = function () {
this.area_flags = [];
};
v2.progressQuest = function (quest_, stage_) {
var v2 = this.quest_progress[quest_];
if (v2 != undefined) {
v2[v2.length - 1].state = EQuest.COMPLETE;
v2.push({'stage': stage_, 'state': EQuest.NORMAL});
} else {
this.quests.push({'quest': quest_, 'state': EQuest.NORMAL});
this.quest_progress[quest_] = [{'stage': stage_, 'state': EQuest.NORMAL}];
}
};
v2.completeQuest = function (quest_) {
if (quest_ == 'ufo_visit') {
(Core.Get()).unlockMedal('Alien Trace');
}
var v5 = this.quest_progress[quest_];
if (v5 != undefined) {
v5[v5.length - 1].state = EQuest.COMPLETE;
}
var v4 = this.quests.length;
var v2 = 0;
while (v2 < v4) {
if (this.quests[v2].quest == quest_) {
this.quests[v2].state = EQuest.COMPLETE;
return undefined;
}
++v2;
}
this.quests.push({'quest': quest_, 'state': EQuest.COMPLETE});
};
v2.isQuestComplete = function (quest_) {
return this.getQuestState(quest_) == EQuest.COMPLETE;
};
v2.inQuest = function (quest_) {
return this.getQuestState(quest_) == EQuest.NORMAL;
};
v2.getQuestState = function (quest_) {
var v3 = this.quests.length;
var v2 = 0;
while (v2 < v3) {
if (this.quests[v2].quest == quest_) {
return this.quests[v2].state;
}
++v2;
}
return EQuest.NONE;
};
v2.failQuest = function (quest_) {
var v5 = this.quest_progress[quest_];
if (v5 != undefined) {
v5[v5.length - 1].state = EQuest.FAILED;
}
var v3 = this.quests.length;
var v2 = 0;
while (v2 < v3) {
if (this.quests[v2].quest == quest_) {
this.quests[v2].state = EQuest.FAILED;
return undefined;
}
++v2;
}
this.quests.push({'quest': quest_, 'state': EQuest.FAILED});
};
v2.sellItem = function (trader_, item_) {
this.money += (Core.Get()).world.getSellPrice(item_);
var v5 = trader_.length;
var v2 = 0;
while (v2 < v5) {
if (trader_[v2] instanceof Object) {
if (trader_[v2].item == item_) {
++trader_[v2].count;
if (undefined == trader_[v2].buy_back) {
trader_[v2].buy_back = 1;
} else {
++trader_[v2].buy_back;
}
return undefined;
}
} else {
if (trader_[v2] == item_) {
trader_[v2] = {'item': item_, 'count': 2, 'buy_back': 1};
return undefined;
}
}
++v2;
}
trader_.push({'item': item_, 'count': 1, 'buy_back': 1});
};
v2.buyItem = function (trader_, item_) {
if (item_ == 22) {
(Core.Get()).unlockMedal('Zero Void');
}
var v5 = trader_.length;
var v2 = 0;
while (v2 < v5) {
if (trader_[v2] instanceof Object) {
if (trader_[v2].item == item_) {
--trader_[v2].count;
if (undefined == trader_[v2].buy_back || 0 == trader_[v2].buy_back) {
this.money -= (Core.Get()).world.getBuyPrice(item_);
} else {
--trader_[v2].buy_back;
this.money -= (Core.Get()).world.getSellPrice(item_);
}
if (0 == trader_[v2].count) {
trader_.splice(v2, 1);
}
return undefined;
}
} else {
if (trader_[v2] == item_) {
this.money -= (Core.Get()).world.getBuyPrice(item_);
trader_.splice(v2, 1);
return undefined;
}
}
++v2;
}
};
v2.traderHasItem = function (name_, item_) {
var v3 = this.traders[name_];
var v5 = v3.length;
var v2 = 0;
while (v2 < v5) {
if (v3[v2] instanceof Object) {
if (v3[v2].item == item_) {
return true;
}
} else {
if (v3[v2] == item_) {
return true;
}
}
++v2;
}
return false;
};
v2.putInventoryArray = function (items_) {
var v4 = items_.length;
var v2 = 0;
while (v2 < v4) {
this.putInventory(items_[v2].item, items_[v2].count);
++v2;
}
};
v2.putInventory = function (item_, count_) {
if (undefined == count_) {
count_ = 1;
}
if (EItem.QUEST == (Core.Get()).world.getItemType(item_)) {
this.giveQuestItems((Core.Get()).world.items[item_].quest_item, count_);
return undefined;
}
var v5 = this.inventory.length;
var v2 = 0;
while (v2 < v5) {
if (this.inventory[v2].item == item_) {
this.inventory[v2].count += count_;
return undefined;
}
++v2;
}
this.inventory.push({'item': item_, 'count': count_});
};
v2.putInventoryAt = function (item_, to_) {
if (EItem.QUEST == (Core.Get()).world.getItemType(item_)) {
this.giveQuestItems((Core.Get()).world.items[item_].quest_item, 1);
return undefined;
}
var v5 = this.inventory.length;
var v2 = 0;
while (v2 < v5) {
if (this.inventory[v2].item == item_) {
++this.inventory[v2].count;
return undefined;
}
++v2;
}
var v4 = {'item': item_, 'count': 1};
if (to_ < 0) {
this.inventory.push(v4);
} else {
this.inventory.splice(to_, 0, v4);
}
};
v2.takeInventory = function (item_) {
var v3 = this.inventory.length;
var v2 = 0;
while (v2 < v3) {
if (this.inventory[v2].item == item_) {
--this.inventory[v2].count;
if (this.inventory[v2].count < 1) {
this.inventory.splice(v2, 1);
}
return undefined;
}
++v2;
}
Log.Err('Item not found!');
};
v2.equip = function (char_, type_, item_) {
switch (type_) {
case EItem.WEAPON:
this.equipment[char_].weapon = item_;
break;
case EItem.ARMOR:
this.equipment[char_].armor = item_;
break;
case EItem.DEVICE:
this.equipment[char_].device = item_;
}
};
v2.moveInventoryItem = function (from_, to_) {
if (to_ < 0) {
to_ = this.inventory.length - 1;
}
if (from_ == to_) {
return undefined;
}
var v3 = this.inventory[from_];
this.inventory.splice(from_, 1);
this.inventory.splice(to_, 0, v3);
};
v2.sortInventory = function () {
this.inventory.sortOn('item', Array.NUMERIC);
};
v2.getUseableItems = function () {
var v6 = new Array();
var v4 = this.inventory.length;
var v2 = 0;
while (v2 < v4) {
var v3 = (Core.Get()).world.getItemType(this.inventory[v2].item);
if (EItem.USE == v3 || EItem.HEAL == v3) {
v6.push({'item': this.inventory[v2].item, 'count': this.inventory[v2].count});
}
++v2;
}
return v6;
};
v2.giveQuestItems = function (item_, count_) {
var v5 = this.quest_items.length;
var v2 = 0;
while (v2 < v5) {
if (this.quest_items[v2].item == item_) {
this.quest_items[v2].count += count_;
return undefined;
}
++v2;
}
this.quest_items.push({'item': item_, 'count': count_});
};
v2.removeQuestItems = function (item_) {
var v3 = this.quest_items.length;
var v2 = 0;
while (v2 < v3) {
if (this.quest_items[v2].item == item_) {
this.quest_items.splice(v2, 1);
return undefined;
}
++v2;
}
};
v2.hasQuestItem = function (item_) {
var v3 = this.quest_items.length;
var v2 = 0;
while (v2 < v3) {
if (this.quest_items[v2].item == item_) {
return this.quest_items[v2].count > 0;
}
++v2;
}
return false;
};
v2.hasQuestItems = function (item_, count_) {
var v3 = this.quest_items.length;
var v2 = 0;
while (v2 < v3) {
if (this.quest_items[v2].item == item_) {
return this.quest_items[v2].count >= count_;
}
++v2;
}
return false;
};
v2.getTeamLevel = function () {
var v4 = 1;
var v2 = 0;
while (v2 < 4) {
if (this.team[v2] >= 0) {
var v3 = this.stats[this.team[v2]].level;
if (v4 < v3) {
v4 = v3;
}
}
++v2;
}
return v4;
};
v2.syncCharStats = function (char_) {
var v3 = this.stats[char_].level;
var v5 = (Core.Get()).world.chars[char_];
if (char_ == 0) {
this.stats[char_].vit = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].def = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].acc = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].dgr = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].tch = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].med = Math.round(5 + 2.857142857142857 * (v3 - 1));
this.stats[char_].lck = Math.round(5 + 2.857142857142857 * (v3 - 1));
} else {
this.stats[char_].vit = Math.round(v5.vit * (1 + v3) / 2);
this.stats[char_].def = Math.round(v5.def * (1 + v3) / 2);
this.stats[char_].acc = Math.round(v5.acc * (1 + v3) / 2);
this.stats[char_].dgr = Math.round(v5.dgr * (1 + v3) / 2);
this.stats[char_].tch = Math.round(v5.tch * (1 + v3) / 2);
this.stats[char_].med = Math.round(v5.med * (1 + v3) / 2);
this.stats[char_].lck = Math.round(v5.lck * (1 + v3) / 2);
if (char_ == 8 && this.isFlag('craven_upgrade')) {
this.stats[char_].vit += 5;
this.stats[char_].def += 5;
this.stats[char_].dgr += 5;
this.stats[char_].tch += 5;
}
}
this.stats[char_].perk1 = v3 >= 6;
this.stats[char_].perk2 = v3 >= 12;
this.stats[char_].perk3 = v3 >= 18;
this.stats[char_].perk4 = v3 >= 24;
this.stats[char_].perk5 = v3 >= 30;
var v4 = 0;
if (this.stats[char_].perk4) {
v4 += 5;
}
if (this.stats[char_].perk5) {
v4 += 10;
}
this.stats[char_].vit += v4;
this.stats[char_].def += v4;
this.stats[char_].acc += v4;
this.stats[char_].dgr += v4;
this.stats[char_].tch += v4;
this.stats[char_].med += v4;
this.stats[char_].lck += v4;
};
v2.giveExp = function (char_, amount_) {
var v2 = this.stats[char_];
if (v2.level == 30) {
return undefined;
}
var v6 = (Core.Get()).world.level_exp;
v2.exp += amount_;
while (v6[v2.level] < v2.exp) {
v2.exp -= v6[v2.level];
var v5 = ++v2.level;
v2.level_up = true;
if (char_ == 0) {
v2.ups += 4;
if (v5 == 24) {
var v4 = 5;
this.stats[char_].vit += v4;
this.stats[char_].def += v4;
this.stats[char_].acc += v4;
this.stats[char_].dgr += v4;
this.stats[char_].tch += v4;
this.stats[char_].med += v4;
this.stats[char_].lck += v4;
}
if (v5 == 30) {
v4 = 10;
this.stats[char_].vit += v4;
this.stats[char_].vit += v4;
this.stats[char_].def += v4;
this.stats[char_].acc += v4;
this.stats[char_].dgr += v4;
this.stats[char_].tch += v4;
this.stats[char_].med += v4;
this.stats[char_].lck += v4;
(Core.Get()).unlockMedal('Supremacy');
}
} else {
this.syncCharStats(char_);
}
if (v5 == 6) {
v2.perk1 = true;
v2.perk_unlocked = true;
}
if (v5 == 12) {
v2.perk2 = true;
v2.perk_unlocked = true;
}
if (v5 == 18) {
v2.perk3 = true;
v2.perk_unlocked = true;
}
if (v5 == 24) {
v2.perk4 = true;
v2.bonus_points = true;
}
if (v5 == 30) {
v2.perk5 = true;
v2.bonus_points = true;
v2.exp = 0;
}
}
};
v2.giveExpTeam = function (amount_) {
var v4 = 0;
var v2 = 0;
while (v2 < 4) {
if (this.team[v2] >= 0) {
++v4;
}
++v2;
}
var v3 = Math.round(amount_ / v4);
v2 = 0;
while (v2 < 4) {
if (this.team[v2] >= 0) {
this.giveExp(this.team[v2], v3);
}
++v2;
}
v3 = Math.round(amount_ / 4);
v2 = 4;
while (v2 < 12) {
if (this.team[v2] >= 0) {
this.giveExp(this.team[v2], v3);
}
++v2;
}
};
v2.getDropModifier = function () {
var v3 = 0;
var v4 = 0;
var v2 = 0;
while (v2 < 4) {
if (this.team[v2] >= 0) {
++v4;
v3 += this.stats[this.team[v2]].lck / this.stats[this.team[v2]].level;
}
++v2;
}
v3 /= v4;
return 1 + v3 / 5;
};
v2.resetEncounterDelay = function () {
this.enc_delay = Math.round(60 * (2 + 3 * Math.random()));
};
v2.addGuide = function (area_) {
this.guides.push(area_);
};
v2.getBattleRegion = function () {
return this.cur_region < 0 ? 4 : (Core.Get()).world.regions[this.cur_region].terrain;
};
v2.checkMedals = function () {
if (this.isQuestComplete('ufo_visit')) {
(Core.Get()).unlockMedal('Alien Trace');
}
if (this.isInTeam(9) && this.isInTeam(11)) {
(Core.Get()).unlockMedal('Heaven and Hell');
}
if (this.areas_shown[32]) {
(Core.Get()).unlockMedal('Pilgrimage');
}
if (!this.traderHasItem('dr_rade', 22)) {
(Core.Get()).unlockMedal('Zero Void');
}
if (this.stats[0].level == 30) {
(Core.Get()).unlockMedal('Supremacy');
}
if (this.isQuestComplete('natan_plan')) {
(Core.Get()).unlockMedal('Space Crusade');
}
if (this.isQuestComplete('meta_uprise')) {
(Core.Get()).unlockMedal('Technolize');
}
if (this.isQuestComplete('talks_with_aliens')) {
(Core.Get()).unlockMedal('Alien Plan');
}
};
ASSetPropFlags(_global.GameData.prototype, null, 1);
}
#endinitclip
}
movieClip 1957 __Packages.EQuest {
#initclip
if (!_global.EQuest) {
var v1 = function () {};
_global.EQuest = v1;
var v2 = v1.prototype;
v1.NONE = 0;
v1.NORMAL = 1;
v1.COMPLETE = 2;
v1.FAILED = 3;
ASSetPropFlags(_global.EQuest.prototype, null, 1);
}
#endinitclip
}
movieClip 1958 __Packages.Log {
#initclip
if (!_global.Log) {
var v1 = function () {};
_global.Log = v1;
var v2 = v1.prototype;
v1.Msg = function (s_) {};
v1.Wrn = function (s_) {};
v1.Err = function (s_) {};
ASSetPropFlags(_global.Log.prototype, null, 1);
}
#endinitclip
}
movieClip 1959 __Packages.EScreenState {
#initclip
if (!_global.EScreenState) {
var v1 = function () {};
_global.EScreenState = v1;
var v2 = v1.prototype;
v1.NONE = 0;
v1.DELAY_TRANS = 1;
v1.TRANS = 2;
v1.DELAY_POPUP = 3;
v1.POPUP = 4;
ASSetPropFlags(_global.EScreenState.prototype, null, 1);
}
#endinitclip
}
movieClip 1960 __Packages.mx.utils.Delegate {
#initclip
if (!_global.mx) {
_global.mx = new Object();
}
if (!_global.mx.utils) {
_global.mx.utils = new Object();
}
if (!_global.mx.utils.Delegate) {
var v1 = function (f) {
super();
this.func = f;
};
mx.utils.Delegate = v1;
mx.utils.Delegate extends Object;
var v2 = v1.prototype;
v1.create = function (obj, func_) {
var v2 = function () {
var v2 = arguments.callee.target;
var v3 = arguments.callee.func;
return v3.apply(v2, arguments);
};
v2.target = obj;
v2.func = func_;
return v2;
};
v2.createDelegate = function (obj) {
return mx.utils.Delegate.create(obj, this.func);
};
ASSetPropFlags(mx.utils.Delegate.prototype, null, 1);
}
#endinitclip
}
movieClip 1961 __Packages.Locale {
#initclip
if (!_global.Locale) {
var v1 = function () {
this.btn = new Object();
this.skill_descri = new Object();
this.text = new Object();
this.talk = new Object();
};
_global.Locale = v1;
var v2 = v1.prototype;
ASSetPropFlags(_global.Locale.prototype, null, 1);
}
#endinitclip
}
movieClip 1962 __Packages.LocaleEn {
#initclip
if (!_global.LocaleEn) {
var v1 = function () {
super();
this.name = 'en';
this.btn.intro = 'PLAY!';
this.btn.load = 'LOAD';
this.btn.save = 'SAVE';
this.btn.back = 'BACK';
this.btn.play = 'PLAY!';
this.btn.help = 'HELP';
this.btn.quit = 'QUIT';
this.btn.sound = 'Sound';
this.btn.music = 'Music';
this.btn.game = 'Game';
this.btn.inventory = 'Inventory';
this.btn.team = 'Team';
this.btn.quests = 'Quest';
this.btn.map = 'World';
this.btn.options = '!';
this.btn.sort = 'Sort';
this.btn.items = 'Items';
this.btn.tasks = 'Tasks';
this.btn.done = 'Done';
this.btn.go_on = 'Go on';
this.btn.leave = 'Leave';
this.btn.ok = 'OK';
this.btn.up = '+5!';
this.btn.reset = 'Reset';
this.skill_descri.vit = 'Vitality skill increases HP\n( amount of damage your character can withstand before knock-out )';
this.skill_descri.acc = 'Accuracy skill increases chance to hit and critical hit chance';
this.skill_descri.def = 'Defence skill increases DR\n( amount of damage avoided when your character is hit )';
this.skill_descri.dgr = 'Danger skill increases damage inflicted to enemies with weapons';
this.skill_descri.tch = 'Technics skill increases EP reserves and also increases damage of devices';
this.skill_descri.med = 'Medicine skill determines how many HP your character can restore with medikits';
this.skill_descri.lck = 'Luck skill improves evasion chance, slightly increases critical hit chance and improves battle loot';
this.text.intro = ' Alien lifeforms...\n When I was a child, I dreamt of\nbecoming an astronaut, to reach distant stars\nand search for alien races.\nWell, in part my dreams have come true,\nthough now I\'m looking for aliens\nonly to destroy them.\n My name is Grid, I am a member of KAUFO.\nAgents of our organization locate aliens\nand eliminate them.\n I have joined them to find adventures and\nbecome a hero. But I could never have \nimagined what it would all turn into...\n';
this.text.outro = new Array();
this.text.outro[0] = ' Life is a sequence of choices.\nOnce I made a choice that I follow to this day.\nAfter victory over Sir F, K.A.U.F.O. focused on\nobtaining unsurpassable political power.\nI became the Director of K.A.U.F.O. and\nNathan, who overthrew President Mist\'s regime,\nfounded the United Empire of Nathan,\nunifying the whole world in hatred of aliens.\nNow humanity actively explores outer space,\nin order to cleanse it of other races.\nK.A.U.F.O. has much work to do.';
this.text.outro[1] = ' Life is a sequence of choices.\nOnce I made a choice only to find that\neverything I came to believe was mistaken.\nAfter that realisation, I was able to help\nothers... And especially her - cyborg girl.\nIt\'s wonderous, how she taught us that we can\nchange everything in the world ourselves!\nMeta-Warriors (reformed to Meta-Government)\nand all of humanity entered a new epoch -\na golden age of technology and harmony...\nUntil one brilliant hacker claimed control\nover the minds of nearly all implant users\nby infecting the communication network.\nBut that is already another story...';
this.text.outro[2] = 'Sir F changed the life of mankind forever.\nAdmiration of the advanced technology of\naliens quickly grew into slavish devotion\nto this race.\nThe aliens quickly grew tired of the blind,\nobsessive worship, and one day they just\ndisappeared, leaving our planet forever.\nHumans, having became reliant on alien support,\nfound themselves unable to survive on their\nown dulled wits and forgotten abilities.\nI don\'t know how this world will end now.';
this.talk.exp = 'Got experience: ';
this.talk.money = 'Got money: €';
this.talk.item = 'Got item: ';
this.talk.journal = 'Journal updated: ';
this.talk.items_lost = 'Items lost: ';
this.talk.item_lost = 'Item lost: ';
this.talk.join = ' joins your team.';
this.talk.leave = ' leaves your team.';
this.talk.money_lost = 'Lost money: €';
this.talk.skill_up = ' improves ';
this.talk.have_items_1 = 'You have ';
this.talk.have_items_2 = ' of them.';
this.talk.kills = 'Killed: ';
this.talk.quest_complete = 'TASK COMPLETE';
this.talk.quest_failed = 'TASK FAILED';
};
_global.LocaleEn = v1;
_global.LocaleEn extends Locale;
var v2 = v1.prototype;
ASSetPropFlags(_global.LocaleEn.prototype, null, 1);
}
#endinitclip
}
movieClip 1963 __Packages.LocaleRu {
#initclip
if (!_global.LocaleRu) {
var v1 = function () {
super();
this.name = 'ru';
this.btn.intro = 'ИГРÐ';
this.btn.load = 'ЗÐГР';
this.btn.save = 'СОХР';
this.btn.back = 'ÐÐЗÐД';
this.btn.play = 'ИГРÐ';
this.btn.help = 'ПОМОЩЬ';
this.btn.quit = 'ВЫХОД';
this.btn.sound = 'Звук';
this.btn.music = 'Музыка';
this.btn.game = 'Игра';
this.btn.inventory = 'Инвентарь';
this.btn.team = 'Команда';
this.btn.quests = 'Журнал';
this.btn.map = 'Мир';
this.btn.options = '!';
this.btn.sort = 'Сорт';
this.btn.items = 'Вещи';
this.btn.tasks = 'Текущ';
this.btn.done = 'Ðрхив';
this.btn.go_on = 'Дальше';
this.btn.leave = 'Уйти';
this.btn.ok = 'ОК';
this.btn.up = '+5!';
this.btn.reset = 'СброÑ';
this.skill_descri.vit = 'ЖивучеÑÑ‚ÑŒ ( Vit ) увеличивает HP\n( макÑимальное количеÑтво полученного вреда, которое перÑонаж может вынеÑти )';
this.skill_descri.acc = 'МеткоÑÑ‚ÑŒ ( Acc ) уменьшает ÑˆÐ°Ð½Ñ Ð¿Ñ€Ð¾Ð¼Ð°Ñ…Ð° и увеличивает ÑˆÐ°Ð½Ñ ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑкого попадениÑ';
this.skill_descri.def = 'Защита ( Def ) увеличивает DR\n( количеÑтво вреда, которое поглощаетÑÑ Ð¿Ñ€Ð¸ попадении )';
this.skill_descri.dgr = 'ОпаÑноÑÑ‚ÑŒ ( Dgr ) увеличивает повреждение, наноÑимое врагам при помощи оружиÑ';
this.skill_descri.tch = 'Техника ( Tch ) увеличивает EP ( запаÑÑ‹ Ñнергии ) и улучшает повреждение, наноÑимое девайÑами';
this.skill_descri.med = 'Медицина ( Med ) ограничивает количеÑтво HP, которое перÑонаж может воÑÑтановить, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð°Ð¿Ñ‚ÐµÑ‡ÐºÐ¸';
this.skill_descri.lck = 'Удача ( Lck ) увеличивает ÑˆÐ°Ð½Ñ ÑƒÐ²Ð¾Ñ€Ð¾Ñ‚Ð°, немного увеличивает ÑˆÐ°Ð½Ñ ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑкого Ð¿Ð¾Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸ делает получение добычи в бою более вероÑтным';
this.text.intro = ' Иные формы жизни…\n Ð’ детÑтве Ñ Ð¼ÐµÑ‡Ñ‚Ð°Ð» Ñтать коÑмонавтом,\nлететь к звездам, иÑкать пришельцев…\nСобÑтвенно говорÑ, чаÑÑ‚ÑŒ мечты оÑущеÑтвилаÑÑŒ,\nтолько теперь пришельцев надо не только\nнаходить, но еще и убивать.\n ÐœÐµÐ½Ñ Ð·Ð¾Ð²ÑƒÑ‚ Грид, и Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽ в У.Ð’.И.Ф.Ж. -\nорганизации, в чьи задачи входит убивать\nпришельцев без Ñ€Ð°Ð·Ð¼Ñ‹ÑˆÐ»ÐµÐ½Ð¸Ñ Ð¸ не вÑтупаÑ\nÑ Ð½Ð¸Ð¼Ð¸ в беÑеды.\n Я уÑтроилÑÑ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ñ‚ÑŒ Ñюда, так как иÑкал\nоÑтрых ощущений. Мне хотелоÑÑŒ Ñтать героем.\nОднако Ñ Ð¸ предÑтавить не мог, что ждало\nÐ¼ÐµÐ½Ñ Ð²Ð¿ÐµÑ€ÐµÐ´Ð¸â€¦';
this.text.outro = new Array();
this.text.outro[0] = ' Жизнь – Ñто вечный выбор. Сделав Ñвой\nоднажды, Ñ Ð¾ÑталÑÑ Ð²ÐµÑ€ÐµÐ½ ему. ПоÑле победы\nнад СÑром ÐÑ„, У.Ð’.И.Ф.Ж. получила невиданное\nранее влиÑние и политичеÑкую Ñилу.\nЧерез какое-то Ð²Ñ€ÐµÐ¼Ñ Ñ Ð·Ð°Ð½Ñл поÑÑ‚ управлÑющего\nУ.Ð’.И.Ф.Ж., а Ðатан… Ðатан отÑтранил\nпрезидента МиÑÑ‚ от Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (разумеетÑÑ, она\nбыла против и мне пришлоÑÑŒ убить ее), а затем\nÑоздал Единую Империю Ðатана, котораÑ\nобъединила вÑех людей в ненавиÑти к пришельцам.\nÐачалоÑÑŒ активное изучение коÑмоÑа Ñ Ñ†ÐµÐ»ÑŒÑŽ\nзахватить его, убив вÑех, кроме людей.\nÐу что же, еÑÑ‚ÑŒ куда ÑтремитьÑÑ!';
this.text.outro[1] = ' Жизнь – Ñто вечный выбор. Сделав Ñвой однажды,\nÑ Ð¿Ð¾Ð·Ð¶Ðµ изменил его и понÑл - то, чем занималÑÑ\nранее, было неправильно.\nТеперь Ñ Ñмог дейÑтвительно помочь людÑм и ей...\nдевочке-компьютеру. Удивительно, но она дала\nмне понÑÑ‚ÑŒ, что Ñ Ð² Ñилах изменить – нет,\nне что-то! абÑолютно вÑе. Под руководÑтвом\nМета-Воинов (Ñтавших Мета-ПравительÑтвом)\nчеловечеÑтво пришло к новой Ñре технологий и\nгармонии Ñ Ð¾ÐºÑ€ÑƒÐ¶Ð°ÑŽÑ‰Ð¸Ð¼ миром... пока технологии\nне вывел из ÑÑ‚Ñ€Ð¾Ñ Ð³ÐµÐ½Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¹ хакер, который\nпоработил больше половины человечеÑтва,\nимплантировавших Ñебе много Ñлектроники.\nÐо Ñто уже Ð´Ñ€ÑƒÐ³Ð°Ñ Ð¸ÑториÑ.';
this.text.outro[2] = ' СÑÑ€ ÐÑ„ Ñтал тем, кто изменил человечеÑтво.\nПродвинутые технологии пришельцев внеÑли в\nжизнь людей нечто Ñовершенно новое...\nравно как и культ Ñтой раÑÑ‹. С пришельцев\nфанатели вÑе – взроÑлые, дети, киборги.\nУÑтав от такого Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð¾Ð´Ð½Ð°Ð¶Ð´Ñ‹ они вÑе\nиÑчезли, оÑтавив нашу планету. ОказалоÑÑŒ,\nчто человечеÑтво уже теперь не ÑпоÑобно\nвыживать ÑамоÑтоÑтельно, так как вÑе\nпривыкли полагатьÑÑ Ð½Ð° пришельцев...\nЯ не знаю, что ÑлучитÑÑ Ñ Ð¼Ð¸Ñ€Ð¾Ð¼ теперь.';
this.talk.exp = 'Получен опыт: ';
this.talk.money = 'Получено: €';
this.talk.item = 'Получено: ';
this.talk.journal = 'Журнал обновлён: ';
this.talk.items_lost = 'ПотерÑно: ';
this.talk.item_lost = 'ПотерÑно: ';
this.talk.join = ' приÑоединÑетÑÑ Ðº команде.';
this.talk.leave = ' покидает команду.';
this.talk.money_lost = 'ПотерÑно: €';
this.talk.skill_up = ' улучшает ';
this.talk.have_items_1 = 'В наличии ';
this.talk.have_items_2 = ' штук.';
this.talk.kills = 'Убито: ';
this.talk.quest_complete = 'ЗÐДÐÐИЕ ВЫПОЛÐЕÐО';
this.talk.quest_failed = 'ЗÐДÐÐИЕ ПРОВÐЛЕÐО';
};
_global.LocaleRu = v1;
_global.LocaleRu extends Locale;
var v2 = v1.prototype;
ASSetPropFlags(_global.LocaleRu.prototype, null, 1);
}
#endinitclip
}
movieClip 101 __Packages.com.newgrounds.Medal {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Medal) {
var v1 = function (id, name, value, difficulty, unlocked, _icon_url) {
if (id == undefined || name == undefined || value == undefined || difficulty == undefined) {
com.newgrounds.API.fatalError('Medal instances require an id, name, value and difficulty');
}
this._medal_id = id;
this._medal_name = name;
this._medal_value = value;
this._medal_difficulty = difficulty;
if (unlocked) {
this._medal_unlocked = true;
}
if (_icon_url) {
this._icon_url = _icon_url;
}
};
com.newgrounds.Medal = v1;
var v2 = v1.prototype;
v2.__get__difficulty = function () {
return com.newgrounds.Medal.difficulty_names[this._medal_difficulty];
};
v2.__get__difficultyId = function () {
return this._medal_difficulty;
};
v2.__get__icon_url = function () {
return this._icon_url;
};
v2.__get__id = function () {
return this._medal_id;
};
v2.__get__name = function () {
return this._medal_name;
};
v2.__get__unlocked = function () {
return this._medal_unlocked;
};
v2.__get__value = function () {
return this._medal_value;
};
v2.isUnlocked = function () {
return this._medal_unlocked;
};
v2.unlock = function () {
if (!this.isUnlocked()) {
com.newgrounds.API.unlockMedal(this);
}
};
v2.setUnlocked = function (u) {
this._medal_unlocked = u;
};
v2.attachIcon = function (target, depth) {
if (!depth) {
depth = target.getNextHighestDepth();
}
var v3 = target.createEmptyMovieClip('Asset_Medal_Icon_' + this.getID(), depth);
if (this._icon_url) {
v3.loadMovie(this._icon_url);
} else {
var v4 = flash.display.BitmapData.loadBitmap('Asset_default_medal_icon_' + this.getDifficulty(), depth);
v3.attachBitmap(v4, depth, true);
}
};
v2.getID = function () {
return this._medal_id;
};
v2.getName = function () {
return this._medal_name;
};
v2.getValue = function () {
return this._medal_value;
};
v2.getDifficulty = function (as_string) {
if (as_string) {
return com.newgrounds.Medal.difficulty_names[this._medal_difficulty];
} else {
return this._medal_difficulty;
}
};
v2._medal_unlocked = false;
v2._icon_loaded = false;
v2._icon_width = 50;
v2._icon_height = 50;
v2._icon_url = null;
v1.difficulty_names = new Array(null, 'Easy', 'Moderate', 'Challenging', 'Difficult', 'Brutal');
v2.addProperty('difficulty', v2.__get__difficulty, function () {});
v2.addProperty('difficultyId', v2.__get__difficultyId, function () {});
v2.addProperty('icon_url', v2.__get__icon_url, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('unlocked', v2.__get__unlocked, function () {});
v2.addProperty('value', v2.__get__value, function () {});
ASSetPropFlags(com.newgrounds.Medal.prototype, null, 1);
}
#endinitclip
}
movieClip 88 __Packages.com.newgrounds.API {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.API) {
var v1 = function () {};
com.newgrounds.API = v1;
var v2 = v1.prototype;
v1.setVersion = function (v) {
com.newgrounds.API.version = v;
};
v1.setUserEmail = function (e) {
com.newgrounds.API.user_email = e;
};
v1.setFakeSession = function (fake) {
com.newgrounds.API.fake_session = fake;
};
v1.setPreload = function (p) {
com.newgrounds.API.preload = p;
};
v1.getPercentLoaded = function () {
var v2;
if (com.newgrounds.API.preload && com.newgrounds.API.preload_items > 0) {
v2 = 80;
var v4 = Math.round((com.newgrounds.API.preload_items_loaded / com.newgrounds.API.preload_items) * 20);
var v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2) + v4;
return v3;
}
v2 = 100;
v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2);
return v3;
};
v1.reportNewAsset = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items;
}
};
v1.reportAssetLoaded = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items_loaded;
}
};
v1.populateMedals = function (medal_list) {
if (com.newgrounds.API.medals === null) {
com.newgrounds.API.medals = new Array();
var v2 = 0;
while (v2 < medal_list.length) {
var v1 = medal_list[v2];
com.newgrounds.API.medals.push(new com.newgrounds.Medal(v1.medal_id, v1.medal_name, v1.medal_value, v1.medal_difficulty, v1.medal_unlocked, v1.medal_icon));
++v2;
}
}
};
v1.populateSaveGroups = function (save_group_list, file_path, image_path) {
com.newgrounds.SaveFile.setFilePath(file_path);
com.newgrounds.SaveFile.setImagePath(image_path);
com.newgrounds.API.save_groups = new Array();
var v6 = 0;
while (v6 < save_group_list.length) {
var v2 = save_group_list[v6];
var v5 = new com.newgrounds.SaveGroup(v2.group_id, v2.group_name, v2.group_type);
var v4 = 0;
while (v4 < v2.keys.length) {
var v3 = v2.keys[v4];
v5.addKey(v3.id, v3.name, v3.type);
++v4;
}
v4 = 0;
while (v4 < v2.ratings.length) {
var v1 = v2.ratings[v4];
v5.addRating(v1.id, v1.name, v1.min, v1.max, v1.float);
++v4;
}
com.newgrounds.API.save_groups.push(v5);
++v6;
}
};
v1.populateScoreBoards = function (score_boards) {
com.newgrounds.API.scoreboards = new Array();
var v1 = 0;
while (v1 < score_boards.length) {
com.newgrounds.API.scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[v1].id, score_boards[v1].name));
++v1;
}
};
v1.getOfficialURL = function () {
var v1 = com.newgrounds.API.GATEWAY_URL + '?tracker_id=' + com.newgrounds.API.movie_id + '&command_id=loadOfficalVersion&seed=' + Math.random();
if (com.newgrounds.API.debug) {
v1 += '&debug=1';
}
return v1;
};
v1.loadOfficialURL = function () {
getURL(com.newgrounds.API.getOfficialURL(), '_blank');
};
v1.hasUserSession = function () {
if (com.newgrounds.API.session_id && com.newgrounds.API.publisher_id) {
return true;
return false;
}
if (_root.NewgroundsAPI_PublisherID && _root.NewgroundsAPI_SessionID) {
return true;
}
return false;
};
v1.hostIsCompatible = function () {
return _root.NewgroundsAPI_PublisherID !== undefined;
};
v1.isNewgrounds = function () {
return com.newgrounds.API.publisher_id == 1 || _root.NewgroundsAPI_PublisherID == 1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('ungrounded.net') > -1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('newgrounds.com') > -1;
};
v1.hasPublisher = function () {
return com.newgrounds.API.publisher_id || _root.NewgroundsAPI_PublisherID;
};
v1.hasUserEmail = function () {
if (com.newgrounds.API.user_email) {
return true;
}
return false;
};
v1.isConnected = function () {
return com.newgrounds.API.connected;
};
v1.getID = function () {
return com.newgrounds.API.getTrackerID();
};
v1.getTrackerID = function () {
return com.newgrounds.API.tracker_id;
};
v1.getUserID = function () {
return com.newgrounds.API.user_id;
};
v1.getUserName = function () {
return com.newgrounds.API.user_name;
};
v1.connectionTimeOut = function () {
com.newgrounds.API.reportAssetLoaded();
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, new com.newgrounds.APIError('CONNECTION_FAILED', 'Connection to API gateway timed out.'));
};
v1.connect = function (m_id, encrypt_key, debug_mode) {
if (com.newgrounds.API.connected) {
return undefined;
}
com.newgrounds.API.sendMessage('Connecting to the Newgrounds API Gateway...');
var v2 = function () {
com.newgrounds.API.connectionTimeOut();
};
com.newgrounds.API.timeout = setInterval(v2, 10000, null);
if (!m_id) {
com.newgrounds.API.fatalError('API.connect() - missing required movie_id parameter', 'connect');
}
com.newgrounds.API.movie_id = String(m_id);
com.newgrounds.API.tracker_id = Number(com.newgrounds.API.movie_id.substring(0, com.newgrounds.API.movie_id.indexOf(':')));
com.newgrounds.API.encryption_key = encrypt_key;
com.newgrounds.API.debug = debug_mode;
com.newgrounds.API.user_id = 0;
com.newgrounds.API.user_name = 'Guest';
if (_root.NewgroundsAPI_PublisherID) {
com.newgrounds.API.publisher_id = _root.NewgroundsAPI_PublisherID;
if (_root.NewgroundsAPI_SessionID) {
com.newgrounds.API.session_id = _root.NewgroundsAPI_SessionID;
}
} else {
if (com.newgrounds.API.fake_session) {
com.newgrounds.API.publisher_id = 1;
com.newgrounds.API.session_id = 'D3bu64p1U53R';
com.newgrounds.API.user_id = 10;
com.newgrounds.API.user_name = 'API-Debugger';
} else {
if (com.newgrounds.API.debug) {
com.newgrounds.API.publisher_id = 1;
}
com.newgrounds.API.session_id = null;
}
}
if (_root.NewgroundsAPI_UserName) {
com.newgrounds.API.user_name = _root.NewgroundsAPI_UserName;
}
if (_root.NewgroundsAPI_UserID) {
com.newgrounds.API.user_id = _root.NewgroundsAPI_UserID;
}
if (_root.NewgroundsAPI_UserpageFormat) {
com.newgrounds.API.userpage_format = _root.NewgroundsAPI_UserpageFormat;
}
com.newgrounds.API.reportNewAsset();
com.newgrounds.API.connected = true;
com.newgrounds.API.sendCommand('connectMovie', {'host': com.newgrounds.API.getHost(), 'movie_version': com.newgrounds.API.version});
};
v1.getHost = function () {
if (!com.newgrounds.API.host) {
var v1 = _url;
if ((v1.toLowerCase()).indexOf('http://') > -1 or (v1.toLowerCase()).indexOf('https://') > -1) {
if ((v1.toLowerCase()).indexOf(com.newgrounds.API.NEWGROUNDS_PREVIEW) > -1) {
com.newgrounds.API.host = com.newgrounds.API.NEWGROUNDS_PREVIEW;
} else {
com.newgrounds.API.host = (v1.split('/'))[2].toLowerCase();
}
return com.newgrounds.API.host;
}
com.newgrounds.API.host = com.newgrounds.API.LOCAL_HOST;
}
return com.newgrounds.API.host;
};
v1.isPublishedHost = function () {
for (var v1 in com.newgrounds.API.PREVIEW_HOSTS) {
if (com.newgrounds.API.getHost() == com.newgrounds.API.PREVIEW_HOSTS[v1]) {
return false;
}
}
return true;
};
v1.loadUserPage = function (u_id, u_name) {
if (u_id == undefined && u_name == undefined) {
if (com.newgrounds.API.hasUserSession()) {
u_id = com.newgrounds.API.user_id;
u_name = com.newgrounds.API.user_name;
} else {
return false;
}
}
if (com.newgrounds.API.publisher_id == 1) {
var v1 = 'http://' + com.newgrounds.API.user_name.toLowerCase() + '.newgrounds.com';
getURL(v1, '_blank');
return true;
return false;
}
if (com.newgrounds.API.userpage_format) {
v1 = com.newgrounds.API.userpage_format;
v1 = (v1.split(':user_id:')).join(u_id.toString());
v1 = (v1.split(':user_name:')).join(escape(u_name));
getURL(v1, '_blank');
return true;
}
return false;
};
v1.loadNewgrounds = function () {
com.newgrounds.API.sendCommand('loadNewgrounds', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadMySite = function () {
com.newgrounds.API.sendCommand('loadMySite', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadCustomLink = function (link) {
com.newgrounds.API.sendCommand('loadCustomLink', {'host': com.newgrounds.API.getHost(), 'link': link}, true);
};
v1.logCustomEvent = function (event) {
com.newgrounds.API.sendCommand('logCustomEvent', {'host': com.newgrounds.API.getHost(), 'event': event});
};
v1.getScoreBoard = function (board) {
if (!com.newgrounds.API.scoreboards || com.newgrounds.API.scoreboards.length < 1) {
com.newgrounds.API.sendWarning('You do not have any scoreboards configured in your API setup.');
return null;
}
for (var v2 in com.newgrounds.API.scoreboards) {
if (typeof board == 'string' && com.newgrounds.API.scoreboards[v2].name == board) {
return com.newgrounds.API.scoreboards[v2];
} else {
if (typeof board == 'number' && com.newgrounds.API.scoreboards[v2].id == board) {
return com.newgrounds.API.scoreboards[v2];
}
}
}
com.newgrounds.API.sendWarning('Could not find any scoreboards named \'' + board + '\'.');
return null;
};
v1.postScore = function (board_name, value, tag) {
var v3 = com.newgrounds.API.getScoreBoard(board_name);
if (tag === undefined) {
tag = '';
}
if (!v3) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to post score. Check the spelling of your board name.'));
return undefined;
}
if (value == undefined) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('MISSING_PARAM', 'Missing score value'));
return undefined;
}
com.newgrounds.API.sendSecureCommand('postScore', {'user_name': com.newgrounds.API.user_name, 'board': v3.id, 'value': value, 'tag': tag, 'publisher_id': com.newgrounds.API.publisher_id});
};
v1.loadScores = function (board_name, period, tag) {
var v3 = 'loadScores';
var v2 = com.newgrounds.API.getScoreBoard(board_name);
if (!v2) {
com.newgrounds.API.sendError({'command_id': v3}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to load scores. Check the spelling of your board name.'));
return undefined;
}
var v1 = {};
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.board = v2.id;
v1.num_results = v2.num_results;
v1.page = v2.page;
if (period === undefined) {
v1.period = v2.period;
} else {
v1.period = period;
}
if (tag === undefined) {
v1.tag = v2.tag;
} else {
v1.tag = tag;
}
com.newgrounds.API.sendCommand(v3, v1);
};
v1.unlockMedal = function (medal, x, y) {
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('MISSING_PARAM', 'missing required medal name'));
return undefined;
}
if (typeof medal != 'object') {
medal = com.newgrounds.API.getMedal(medal);
}
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('INVALID_MEDAL', 'medal unlock failed, check your medal name for correct spelling.'));
return undefined;
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {'medal': medal, 'x': x, 'y': y});
if (com.newgrounds.API.hasUserSession() or com.newgrounds.API.debug) {
com.newgrounds.API.sendMessage('Attempting to unlock \'' + medal.getName() + '\'');
var v3 = new Object();
v3.medal_id = medal.getID();
com.newgrounds.API.sendSecureCommand('unlockMedal', v3);
} else {
com.newgrounds.API.sendMessage('Unlocking \'' + medal.getName() + '\'');
medal.setUnlocked(true);
var v2 = com.newgrounds.API.loadLocal('medals_unlocked');
if (!v2) {
v2 = new Object();
}
v2[medal.getID()] = true;
com.newgrounds.API.saveLocal('medals_unlocked', v2);
}
};
v1.loadMedals = function () {
if (com.newgrounds.API.medals) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {'medals': com.newgrounds.API.medals});
return undefined;
}
var v1 = new Object();
if (com.newgrounds.API.hasUserSession()) {
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('getMedals', v1);
};
v1.getMedals = function () {
return com.newgrounds.API.medals;
};
v1.getMedal = function (identifier) {
if (!com.newgrounds.API.medals || com.newgrounds.API.medals.length < 1) {
com.newgrounds.API.sendWarning('You do not have any medals configured on your API setup!');
return false;
}
for (var v3 in com.newgrounds.API.medals) {
var v1 = com.newgrounds.API.medals[v3];
if (typeof identifier == 'string' && v1.getName() == identifier) {
return v1;
} else {
if (v1.getID() == identifier) {
return v1;
}
}
}
com.newgrounds.API.sendWarning('Could not find any medals named \'' + identifier + '\'.');
return false;
};
v1.saveLocal = function (save_id, save_data, size_allocation) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].data[save_id] = com.newgrounds.API.encodeData(save_data);
com.newgrounds.API.sharedObjects[save_id].flush();
};
v1.loadLocal = function (save_id) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].flush();
com.newgrounds.API.echo('sharedobject ' + save_id + ' is: ' + com.newgrounds.API.sharedObjects[save_id].data[save_id]);
if (com.newgrounds.API.sharedObjects[save_id].data[save_id]) {
com.newgrounds.API.echo('decoded: ' + com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]));
return com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]);
} else {
return null;
}
};
v1.encodeData = function (data) {
return com.newgrounds.API.compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), com.newgrounds.API.encryption_key));
};
v1.decodeData = function (base) {
return com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(com.newgrounds.API.uncompressHex(base), com.newgrounds.API.encryption_key));
};
v1.compressHex = function (hex_value) {
var v6 = hex_value.length % 6;
var v4 = '';
var v5 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v1 = 0;
while (v1 < hex_value.length) {
var v2 = Number('0x' + hex_value.substr(v1, 6));
v4 += v5.encode(v2, 4);
v1 += 6;
}
return v6 + v4;
};
v1.uncompressHex = function (base_value) {
var v9 = Number(base_value.charAt(0));
var v7 = '';
var v3;
var v8 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v2 = 1;
while (v2 < base_value.length) {
var v6 = base_value.substr(v2, 4);
var v5 = v8.decode(v6);
var v1 = com.newgrounds.API.dec2hex(v5);
if (v2 + 4 < base_value.length) {
v3 = 6;
} else {
v3 = v9;
}
while (v1.length < v3) {
v1 = '0' + v1;
}
v7 += v1;
v2 += 4;
}
return v7;
};
v1.dec2hex = function (dec) {
var v4 = '0123456789ABCDEF';
var v3 = '';
while (dec > 0) {
var v2 = dec % 16;
v3 = v4.charAt(v2) + v3;
dec = (dec - v2) / 16;
}
return v3;
};
v1.getSaveGroup = function (group) {
if (com.newgrounds.API.save_groups == null || com.newgrounds.API.save_groups.length < 1) {
com.newgrounds.API.sendWarning('You do not have any save groups configured in your API setup!');
return null;
}
var v1 = 0;
while (v1 <= com.newgrounds.API.save_groups.length) {
if (typeof group == 'number' or (Number(group)).toString() == String(group)) {
if (com.newgrounds.API.save_groups[v1].getID() == Number(group)) {
return com.newgrounds.API.save_groups[v1];
}
} else {
if (typeof group == 'string') {
if ((com.newgrounds.API.save_groups[v1].getName()).toLowerCase() == group.toLowerCase()) {
return com.newgrounds.API.save_groups[v1];
}
}
}
++v1;
}
com.newgrounds.API.sendWarning('Could not find any save groups named \'' + group + '\'.');
return null;
};
v1.getCurrentSaveFile = function () {
return com.newgrounds.API.save_file;
};
v1.setCurrentSaveFile = function (current) {
com.newgrounds.API.save_file = current;
};
v1.loadSaveFile = function (save_id, get_contents) {
if (get_contents === undefined) {
get_contents = true;
}
var v1 = 'loadSaveFile';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'save_id': save_id, 'get_contents': get_contents};
com.newgrounds.API.save_file = null;
com.newgrounds.API.sendCommand(v1, v2);
};
v1.loadFilesByDate = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByDate'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('CREATED_ON', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByViews = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByViews'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('TOTAL_VIEWS', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByRating = function (group_name, rating_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByRating'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOnRating(rating_name, sort_descending ? 'DESC' : 'ASC', 'score');
v1.execute();
};
v1.lookupSaveFiles = function (save_group) {
var v1 = 'lookupSaveFiles';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'group_id': save_group.getID(), 'query': com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))};
com.newgrounds.API.sendCommand(v1, v2);
};
v1.newSaveFile = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newFile();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', 'You can not create new files in invalid groups.');
com.newgrounds.API.sendError({'command_id': 'newSaveFile'}, v2);
}
};
v1.newSaveQuery = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newQuery();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', '\'' + group + '\' is not a valid save group.');
com.newgrounds.API.sendError({'command_id': 'newSaveQuery'}, v2);
}
};
v1.checkFilePrivs = function (file) {
if (com.newgrounds.API.user_id) {
var v1 = com.newgrounds.API.user_id;
} else {
var v1 = 0;
}
var v2 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'user_id': v1, 'publisher_id': com.newgrounds.API.publisher_id};
com.newgrounds.API.sendCommand('checkFilePrivs', v2);
};
v1.saveFile = function (file, overwrite) {
var v1;
v1 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'description': file.getDescription(), 'draft': file.__get__draft(), 'user_name': com.newgrounds.API.user_name};
if (overwrite) {
v1.overwrite = overwrite;
}
if (file.getDuplicateID()) {
v1.save_id = file.getDuplicateID();
}
if ((file.getKeys()).length > 0) {
v1.keys = file.getKeys();
}
var v3;
v3 = {'file': file.getRawContents()};
if (file.getThumbnailImageScan()) {
v3.thumbnail = file.getThumbnailImageScan();
}
com.newgrounds.API.save_file = file;
com.newgrounds.API.sendSecureCommand('saveFile', v1, null, v3);
};
v1.rateSaveFile = function (file, rating, vote) {
var v1 = {'group': (file.getGroup()).getID(), 'save_id': file.getID(), 'rating_id': rating.rating_id, 'vote': vote, 'user_id': com.newgrounds.API.user_id};
com.newgrounds.API.sendSecureCommand('rateSaveFile', v1);
};
v1.getConfirmation = function (command_name, event, msg, target, confirm, cancel) {
var v1 = new com.newgrounds.APIError('CONFIRM_REQUEST', msg);
v1.confirm = function () {
target[confirm]();
};
v1.cancel = function () {
target[cancel]();
};
v1.command = command_name;
com.newgrounds.API.callListener(event, false, v1);
};
v1.onRemoteAuthentication = function (auth_result) {
var v1 = com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(auth_result, com.newgrounds.API.encryption_key));
delete com.newgrounds.API.remote_auth;
com.newgrounds.API.user_id = v1.NewgroundsAPI_UserID;
com.newgrounds.API.user_name = v1.NewgroundsAPI_UserName;
com.newgrounds.API.session_id = v1.NewgroundsAPI_SessionID;
com.newgrounds.API.publisher_id = v1.NewgroundsAPI_PublisherID;
};
v1.doEvent = function (e) {
switch (e.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.sendMessage('You have successfully connected to the Newgrounds API Gateway');
com.newgrounds.API.sendMessage('Movie identified as "' + e.movie_name + '"');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, e.success, {'title': e.movie_name});
var v7 = false;
if (e.ad_status === -1) {
var v11 = 'This movie was not approved to run Flash Ads.';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('visit ' + com.newgrounds.API.AD_TERMS_URL + ' to view our approval guidelines');
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
} else {
if (e.ad_status === 0) {
var v11 = 'Flash Ads are currently awaiting approval.';
com.newgrounds.API.sendNotice(v11);
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
}
}
if (e.ad_url) {
com.newgrounds.API.ad_url = unescape(e.ad_url);
if (!v7) {
com.newgrounds.API.sendMessage('This movie has been approved to run Flash Ads!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, true);
}
if (e.deny_host) {
v11 = com.newgrounds.API.getHost() + ' does not have permission to run this movie!';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('\tUpdate your API configuration to unblock ' + com.newgrounds.API.getHost());
com.newgrounds.API.callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
} else {
if (e.movie_version) {
com.newgrounds.API.sendWarning('According to your API Configuration, this version is out of date.');
if (com.newgrounds.API.version) {
com.newgrounds.API.sendWarning('\tThe this movie is version ' + com.newgrounds.API.version);
}
com.newgrounds.API.sendWarning('\tThe most current version is ' + e.movie_version);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {'version': e.movie_version, 'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
}
}
if (e.request_portal_url) {
com.newgrounds.API.sendCommand('setPortalID', {'portal_url': _url});
}
if (com.newgrounds.API.preload) {
com.newgrounds.API.reportNewAsset();
var v8 = {};
if (com.newgrounds.API.hasUserSession()) {
v8.publisher_id = com.newgrounds.API.publisher_id;
v8.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('preloadSettings', v8);
}
com.newgrounds.API.reportAssetLoaded();
break;
case 'preloadSettings':
if (e.medals) {
com.newgrounds.API.populateMedals(e.medals);
if (!com.newgrounds.API.hasUserSession() and !com.newgrounds.API.debug) {
com.newgrounds.API.echo('checking for sharedobject medals...');
var v4 = com.newgrounds.API.loadLocal('medals_unlocked');
if (v4) {
for (var v32 in v4) {
v32 = Number(v32);
if (v4[v32]) {
var v3 = com.newgrounds.API.getMedal(v32);
com.newgrounds.API.echo('now unlocking ' + v3.getName());
v3.setUnlocked(true);
}
}
}
}
}
if (e.save_groups) {
com.newgrounds.API.populateSaveGroups(e.save_groups, e.save_file_path);
}
if (e.score_boards) {
com.newgrounds.API.populateScoreBoards(e.score_boards);
}
if (_root.NewgroundsAPI_SaveFileID && _root.NewgroundsAPI_SaveGroupID) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_REQUESTED, true, {'save_id': _root.NewgroundsAPI_SaveFileID, 'group': com.newgrounds.API.getSaveGroup(_root.NewgroundsAPI_SaveGroupID)});
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.METADATA_LOADED, true);
com.newgrounds.API.reportAssetLoaded();
break;
case 'logCustomEvent':
if (e.success) {
com.newgrounds.API.sendMessage('Event \'' + e.event + '\' was logged.');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {'event': e.event});
break;
case 'postScore':
var v9;
if (e.success) {
var v5 = 'User';
if (com.newgrounds.API.user_email) {
v5 = com.newgrounds.API.user_email;
} else {
if (com.newgrounds.API.user_name) {
v5 = com.newgrounds.API.user_name;
}
}
var v19 = com.newgrounds.API.getScoreBoard(e.board);
com.newgrounds.API.sendMessage(v5 + ' posted ' + e.value + ' to \'' + v19.name + '\'');
v9 = {'board': v19, 'value': e.value, 'username': v5};
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, v9);
break;
case 'loadScores':
var v9 = new Object();
var v19 = com.newgrounds.API.getScoreBoard(e.board);
if (v19.exists()) {
v19.setScores(e.scores, e.period, e.page, e.num_results);
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {'board': v19});
break;
case 'unlockMedal':
var v24 = com.newgrounds.API.getMedal(e.medal_name);
v24.setUnlocked(true);
com.newgrounds.API.sendMessage('Successfuly unlocked \'' + v24.getName() + '\'');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {'medal_id': v24.id, 'medal': v24});
break;
case 'getMedals':
com.newgrounds.API.populateMedals(e.medals);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {'medals': com.newgrounds.API.medals});
break;
case 'loadSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = new com.newgrounds.SaveFile(v16);
v14.id = e.file.save_id;
v14.name = e.file.filename;
v14.fileUrl = e.file.file;
v14.thumbnailUrl = e.file.thumb;
v14.authorName = e.file.user_name;
v14.authorId = e.file.user_id;
v14.description = e.file.description;
v14.setPermissions(e.file.status, e.file.locked);
for (var v6 in e.file.keys) {
v14.setKey(e.file.keys[v6].id, e.file.keys[v6].value);
}
for (v6 in e.file.ratings) {
v14.setRating(e.file.ratings[v6].id, e.file.ratings[v6].votes, e.file.ratings[v6].score);
}
if (e.get_contents) {
v14.loadContents();
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_INITIALIZED, e.success, {'save_id': v14.id, 'file': v14});
com.newgrounds.API.save_file = v14;
break;
case 'lookupSaveFiles':
var v12 = (com.newgrounds.API.getSaveGroup(e.group_id)).getQuery();
v12.onExecuted(e.files);
break;
case 'rateSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = v16.getFile(e.save_id);
if (e.already_voted) {
var v27 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v27, 'file': v14, 'save_id': v14.id});
return undefined;
} else {
if (e.success) {
var v10 = v14.onVoted(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'rating': v10, 'file': v14, 'save_id': v14.id});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'file': v14, 'save_id': v14.id});
com.newgrounds.API.sendError('Your vote was not accepted.');
}
}
break;
case 'saveFile':
if (com.newgrounds.API.save_file) {
if (!com.newgrounds.API.save_file.exists()) {
com.newgrounds.API.save_file.setID(e.save_id, true);
}
com.newgrounds.API.save_file.onSaved(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {'save_id': com.newgrounds.API.save_file.__get__id(), 'file': com.newgrounds.API.save_file});
if (e.success) {
com.newgrounds.API.sendMessage('You just saved a new file (id #' + e.save_id + ') to the \'' + (com.newgrounds.API.save_file.__get__group()).__get__name() + '\' save group.');
}
}
com.newgrounds.API.save_file = null;
break;
case 'checkFilePrivs':
var v9 = {'file': com.newgrounds.API.save_file, 'filename': e.filename, 'group': e.group, 'exists': e.exists, 'can_write': e.can_write};
if (e.duplicate_id) {
v9.duplicate_id = e.duplicate_id;
}
if (!e.success) {
com.newgrounds.API.sendWarning('You do not have permission to save this file!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, v9);
}
};
v1.getDispatcher = function () {
if (!com.newgrounds.API.eventDispatcher) {
com.newgrounds.API.eventDispatcher = new com.newgrounds.APIEventDispatcher();
}
return com.newgrounds.API.eventDispatcher;
};
v1.hasEventListener = function (event) {
return (com.newgrounds.API.getDispatcher()).hasEventListener(event);
};
v1.addEventListener = function (event, listener, target) {
com.newgrounds.API.echo('Adding a listener for \'' + event + '\'');
(com.newgrounds.API.getDispatcher()).addEventListener(event, listener, target);
};
v1.removeEventListener = function (event, target) {
(com.newgrounds.API.getDispatcher()).removeEventListener(event, target);
};
v1.callListener = function (event, success, data, target) {
com.newgrounds.API.echo('Fired Event: ' + event);
var v2 = new com.newgrounds.APIEvent(event, success, data);
(com.newgrounds.API.getDispatcher()).dispatchEvent(v2);
if (event == com.newgrounds.APIEvent.API_CONNECTED && !success) {
com.newgrounds.API.connected = false;
}
com.newgrounds.API.bridge.sendEvent(event, {'success': success, 'data': data});
};
v1.sendError = function (c, e) {
switch (c.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, {'error': e, 'response': c});
break;
case 'saveFile':
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {'error': e, 'file': com.newgrounds.API.save_file, 'response': c});
com.newgrounds.API.save_file = null;
}
var v3 = '[Newgrounds API ERROR] :: ' + c.command_id + '() - ' + e.name + ':' + '\n' + '\t\t\t\t' + e.message;
trace(v3);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v3});
};
v1.sendWarning = function (m, c) {
if (c) {
m += '\r[Newgrounds API WARNING] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
var v1 = '[Newgrounds API WARNING] :: ' + m;
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
};
v1.sendNotice = function (m, c) {
if (c) {
m += '\r[Newgrounds API NOTICE] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
trace('[Newgrounds API NOTICE] :: ' + m);
};
v1.fatalError = function (m, c) {
if (c) {
m += '\r\tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
throw '***ERROR*** frame=' + _root._currentframe + ', class=API' + '\n' + '\n' + m;
};
v1.openLoginPage = function () {
if (com.newgrounds.API.hasUserSession()) {
return undefined;
}
if (!com.newgrounds.API.remote_auth) {
var v1 = com.newgrounds.encoders.MD5.calculate(Math.random() + 'a' + com.newgrounds.API.movie_id);
v1 = 'POOPYPANTS';
com.newgrounds.API.remote_auth = new com.newgrounds.RemoteAuth(v1);
}
var v2 = com.newgrounds.encoders.RC4.encrypt(com.newgrounds.API.remote_auth.__get__token(), com.newgrounds.API.encryption_key);
trace(v2);
getURL(com.newgrounds.API.LOGIN_URL + '?api_auth_id=' + com.newgrounds.API.movie_id + '&api_auth_key=' + v2, '_blank');
};
v1.sendSecureCommand = function (command, secure_params, unsecure_params, files) {
if (!com.newgrounds.API.debug && !com.newgrounds.API.hasUserSession() && !com.newgrounds.API.hasUserEmail()) {
com.newgrounds.API.sendError({'command_id': command}, new com.newgrounds.APIError('IDENTIFICATION_REQUIRED', 'You must be logged in, or provide an e-mail address using \'API.setUserEmail("name@domain.com");\' to use ' + command + '().'));
return undefined;
}
if (!command) {
com.newgrounds.API.fatalError('Missing command', 'sendSecureCommand');
}
if (!secure_params) {
com.newgrounds.API.fatalError('Missing secure_params', 'sendSecureCommand');
}
if (!unsecure_params) {
unsecure_params = new Object();
}
var v2 = '';
var v1 = 0;
while (v1 < 16) {
v2 += com.newgrounds.API.compression_radix.charAt(Math.floor(Math.random() * com.newgrounds.API.compression_radix.length));
++v1;
}
if (com.newgrounds.API.debug && !com.newgrounds.API.fake_session && !com.newgrounds.API.session_id) {
secure_params.session_id = '';
} else {
secure_params.session_id = com.newgrounds.API.session_id;
}
secure_params.as_version = 2;
secure_params.user_email = com.newgrounds.API.user_email;
secure_params.publisher_id = com.newgrounds.API.publisher_id;
secure_params.seed = v2;
secure_params.command_id = command;
var v6 = com.newgrounds.encoders.JSON.encode(secure_params);
trace('JSON: ' + v6 + '\n');
var v9 = com.newgrounds.encoders.MD5.calculate(v2);
var v7 = com.newgrounds.encoders.RC4.encrypt(v6, com.newgrounds.API.encryption_key);
var v8 = v9 + v7;
unsecure_params.secure = com.newgrounds.API.compressHex(v8);
com.newgrounds.API.sendCommand('securePacket', unsecure_params, false, files);
};
v1.sendCommand = function (command, params, open_browser, files) {
if (!com.newgrounds.API.connected and command != 'connectMovie') {
var v12 = 'API.' + command + '() - API.connect() must be called before this command can be called' + '\n';
com.newgrounds.API.fatalError(v12, 'connect');
}
if (open_browser) {
var v2 = new Object();
} else {
var v2 = new LoadVars();
}
v2.command_id = command;
v2.tracker_id = com.newgrounds.API.movie_id;
if (com.newgrounds.API.debug) {
v2.debug = com.newgrounds.API.debug;
}
if (params) {
for (var v9 in params) {
v2[v9] = params[v9];
}
}
if (files) {
for (v9 in files) {
v2[v9] = files[v9];
}
}
if (open_browser) {
var v6 = com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random();
for (v9 in v2) {
v6 += '&' + escape(v9) + '=' + escape(v2[v9]);
}
trace('OPENING ' + v6);
getURL(v6, '_blank');
v2.removeMovieClip();
} else {
var v10 = new LoadVars();
v10.remember_command_id = v2.command_id;
v10.onData = function (data) {
com.newgrounds.API.echo('INPUT: \r' + data + '\n');
if (data) {
var v2 = com.newgrounds.encoders.JSON.decode(data);
} else {
var v2 = {'success': false};
}
if (!v2.success) {
if (!v2.error_code && !v2.error_msg) {
v2.error_code = 'CONNECTION_FAILED';
v2.error_msg = 'Could not contact the API Gateway';
v2.command_id = this.remember_command_id;
}
var v4 = new com.newgrounds.APIError(v2.error_code, v2.error_msg);
com.newgrounds.API.sendError(v2, v4);
} else {
com.newgrounds.API.doEvent(v2);
}
};
var v7 = new Array();
for (var v8 in v2) {
v7.push(v8 + '=' + escape(v2[v8]));
}
com.newgrounds.API.echo('POST ' + com.newgrounds.API.GATEWAY_URL + '?' + v7.join('&'));
v2.sendAndLoad(com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random(), v10, 'POST');
com.newgrounds.API.last_command = v2.command_id;
}
};
v1.renderAd = function (target) {
if (com.newgrounds.API.ad_swf_url) {
target.background = target.createEmptyMovieClip('background', 100);
target.background.beginFill(0);
target.background.moveTo(0, 0);
target.background.lineTo(300, 0);
target.background.lineTo(300, 250);
target.background.lineTo(0, 250);
target.background.lineTo(0, 0);
target.background.endFill();
target.mask = target.createEmptyMovieClip('mask', 101);
target.mask.beginFill(0);
target.mask.moveTo(0, 0);
target.mask.lineTo(300, 0);
target.mask.lineTo(300, 250);
target.mask.lineTo(0, 250);
target.mask.lineTo(0, 0);
target.mask.endFill();
target.clip = target.createEmptyMovieClip('clip', 102);
target.clip.ad = target.clip.createEmptyMovieClip('ad', 100);
target.clip.setMask(target.mask);
target.clip.ad._lockroot = true;
loadMovie(com.newgrounds.API.ad_swf_url, target.clip.ad);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, {'target': target});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', 'Unable to render ad'));
}
};
v1.attachFlashAd = function (target) {
if (com.newgrounds.API.checkAdFlood()) {
com.newgrounds.API.ad_swf_url = null;
} else {
if (com.newgrounds.API.checkAdCache()) {
com.newgrounds.API.reportNewAsset();
var v1 = new LoadVars();
v1.onData = function (data) {
if (data) {
com.newgrounds.API.ad_swf_url = data;
} else {
com.newgrounds.API.ad_swf_url = null;
}
com.newgrounds.API.reportAssetLoaded();
com.newgrounds.API.renderAd(target);
};
if (com.newgrounds.API.ad_url.indexOf('?') > -1) {
v1.load(com.newgrounds.API.ad_url + '&random=' + Math.random());
} else {
v1.load(com.newgrounds.API.ad_url + '?random=' + Math.random());
}
if (!com.newgrounds.API.ad_warning) {
com.newgrounds.API.ad_warning = true;
com.newgrounds.API.sendMessage('You may get a security sandbox violation from this ad. This is nothing to worry about!');
}
} else {
if (com.newgrounds.API.ad_swf_url) {
com.newgrounds.API.renderAd(target);
}
}
}
};
v1.checkAdFlood = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_flood) {
if (v1 - com.newgrounds.API.ad_flood > 1000) {
com.newgrounds.API.ad_flood = v1 + 1000;
return false;
}
com.newgrounds.API.ad_flood = v1;
com.newgrounds.API.sendWarning('This movie is attempting to load multiple ads at too high of a frequency; you may have a bad preloader loop.');
return true;
}
return false;
};
v1.checkAdCache = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_url_cache) {
com.newgrounds.API.ad_url_cache = v1 + 300000;
return true;
}
return false;
};
v1.sendMessage = function (m, r) {
var v1 = '[Newgrounds API] :: ' + m;
if (r) {
return v1;
} else {
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
}
};
v1.echo = function (m) {
if (com.newgrounds.API.do_echo) {
trace(m);
}
};
v1.LOGIN_URL = 'http://ng-local.newgrounds.com/apilogin/';
v1.do_echo = true;
v1.GATEWAY_URL = 'http://www.ngads.com/gateway_v2.php';
v1.NEWGROUNDS_PREVIEW = 'uploads.ungrounded.net/previews';
v1.AD_TERMS_URL = 'http://www.newgrounds.com/wiki/using-the-site/terms-of-use/flash-ads/';
v1.COMMANDS_WIKI_URL = 'http://www.newgrounds.com/wiki/developer-resources/flash-api/commands/';
v1.LOCAL_HOST = 'localhost';
v1.NEWGROUNDS_WWW = 'www.newgrounds.com';
v1.PREVIEW_HOSTS = new Array(com.newgrounds.API.LOCAL_HOST, com.newgrounds.API.NEWGROUNDS_PREVIEW);
v1.ad_url_cache = 0;
v1.ad_flood = 0;
v1.ad_warning = false;
v1.save_file = null;
v1.publisher_id = 1;
v1.fake_session = false;
v1.medals = null;
v1.userpage_format = null;
v1.scoreboards = new Array();
v1.save_groups = null;
v1.compression_radix = '/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X';
v1.errors = com.newgrounds.APIError.init_codes();
v1.sharedObjects = new Object();
v1.bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID);
v1.preload = true;
v1.preload_items = 0;
v1.preload_items_loaded = 0;
ASSetPropFlags(com.newgrounds.API.prototype, null, 1);
}
#endinitclip
}
movieClip 89 __Packages.com.newgrounds.Bridge {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Bridge) {
var v1 = function (id) {
this.widget_id = id;
this.receiver = new LocalConnection();
this.transmitter = new LocalConnection();
this.receiver.receiveEvent = function (event, params) {
com.newgrounds.API.callListener(event, params.success, params.data);
};
try {
this.receiver.connect('rec_' + this.widget_id);
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
} else {
throw v0;
}
}
};
com.newgrounds.Bridge = v1;
var v2 = v1.prototype;
v2.sendEvent = function (event, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendEvent', event, this.validateParams(params));
}
};
v2.sendCommand = function (command, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendCommand', command, this.validateParams(params));
}
};
v2.validateParams = function (params) {
var v2 = {};
for (var v3 in params) {
if (typeof params[v3] == 'string' || typeof params[v3] == 'number') {
v2[v3] = params[v3];
}
}
return v2;
};
ASSetPropFlags(com.newgrounds.Bridge.prototype, null, 1);
}
#endinitclip
}
movieClip 90 __Packages.com.newgrounds.SaveFile {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveFile) {
var v1 = function (_group) {
this._group = _group;
this._filename = null;
this._file_id = null;
this._contents = null;
this._thumbnail = null;
this._thumbnail_url = null;
this.raw = null;
this.img = null;
this._draft = false;
this._keys = new Array();
this._ratings = new Array();
this._file_url = null;
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, this.checkPrivs, this);
};
com.newgrounds.SaveFile = v1;
var v2 = v1.prototype;
v1.setFilePath = function (path) {
com.newgrounds.SaveFile.file_path = path + '/';
};
v1.setImagePath = function (path) {
com.newgrounds.SaveFile.image_path = path + '/';
};
v2.__get__name = function () {
return this._filename;
};
v2.__set__name = function (s) {
this._filename = s;
return this.__get__name();
};
v2.__get__id = function () {
return this._file_id;
};
v2.__get__description = function () {
return this._description;
};
v2.__set__description = function (s) {
this._description = s;
return this.__get__description();
};
v2.__get__contents = function () {
return this._contents;
};
v2.__set__contents = function (o) {
this._contents = o;
return this.__get__contents();
};
v2.__get__thumbnailUrl = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.__set__thumbnailUrl = function (s) {
this._thumbnail_url = s;
return this.__get__thumbnailUrl();
};
v2.__get__fileUrl = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.__set__fileUrl = function (s) {
this._file_url = s;
return this.__get__fileUrl();
};
v2.__get__authorID = function () {
return this._author_id;
};
v2.__set__authorID = function (i) {
this._author_id = i;
return this.__get__authorID();
};
v2.__get__authorName = function () {
return this._author_name;
};
v2.__set__authorName = function (n) {
this._author_name = n;
return this.__get__authorName();
};
v2.__get__views = function () {
return this._views;
};
v2.__get__draft = function () {
return this._draft;
};
v2.__set__draft = function (d) {
this._draft = d;
return this.__get__draft();
};
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__groupName = function () {
return this._group.getName();
};
v2.__get__groupType = function () {
return this._group.getType();
};
v2.__get__locked = function () {
return this._locked;
};
v2.__get__shared = function () {
return this._isShared();
};
v2.__get__isPrivate = function () {
return this._isPrivate();
};
v2.__get__isPublic = function () {
return this._isPublic();
};
v2.__get__approved = function () {
return this._isApproved();
};
v2.__get__keys = function () {
return this._keys;
};
v2.__get__ratings = function () {
return this._ratings;
};
v2.loadAuthorPage = function () {
com.newgrounds.API.loadUserPage(this._author_id, this._author_name);
};
v2.getID = function () {
return this._file_id;
};
v2.exists = function () {
return this._file_id !== null;
};
v2.getGroup = function () {
return this._group;
};
v2.getName = function () {
return this._filename;
};
v2._isPrivate = function () {
return this.status == com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isShared = function () {
return this.status > com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isApproved = function () {
return this.status > com.newgrounds.SaveFile.STATUS.UNAPPROVED;
};
v2._isPublic = function () {
if (this._isPrivate()) {
return false;
return false;
}
if (this._group.isType('SYSTEM') or this._group.isType('PRIVATE')) {
return false;
return false;
}
if (this._group.isType('PUBLIC')) {
return true;
return false;
}
if (this._isApproved()) {
return true;
}
return false;
};
v2.isLocked = function () {
return this._locked;
};
v2.getDescription = function () {
return this._description;
};
v2.getShared = function () {
return this._draft;
};
v2.getThumbnailImageScan = function () {
return this.img;
};
v2.getRawContents = function () {
return this.raw;
};
v2.getDuplicateID = function () {
return this.duplicate_id;
};
v2.getKeys = function () {
return this._keys;
};
v2.getKey = function (key) {
var v3 = (this.getGroup()).getKey(key);
var v2 = 0;
while (v2 < this._keys.length) {
if (this._keys[v2].id == v3.key_id) {
return this._keys[v2].value;
}
++v2;
}
};
v2.getRating = function (rating) {
var v2 = (this.getGroup()).getRating(rating);
if (this._ratings[v2.rating_id]) {
return this._ratings[v2.rating_id];
} else {
return null;
}
};
v2.overwriteAllowed = function () {
return this.overwrite;
};
v2.getFileURL = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.getThumbnailURL = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.overwriteExisting = function () {
this.overwrite = true;
};
v2.setID = function (id, add_to_group) {
this._file_id = id;
if (add_to_group) {
(this.getGroup()).addFile(this);
}
};
v2.setName = function (filename, locked) {
this._filename = filename;
this._locked = locked;
};
v2.setDescription = function (description) {
this._description = description;
};
v2.setDraft = function (draft) {
this._draft = draft;
};
v2.setContents = function (_contents) {
this._contents = _contents;
};
v2.setThumbnail = function (thumb) {
if (thumb) {
this._thumbnail = thumb;
} else {
this._thumbnail = null;
}
};
v2.setThumbnailURL = function (url) {
this._thumbnail_url = url;
};
v2.setFileURL = function (url) {
this._file_url = url;
};
v2.setPermissions = function (status, _locked) {
this._locked = _locked;
this.status = status;
};
v2.setKey = function (key, val) {
var v4 = (this.getGroup()).getKeyID(key);
var v2;
if (!v4) {
this.onError('\'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' save group', 'setKey', 'INVALID_VALUE', true);
return undefined;
}
if (!this._group.keyValueIsValid(key, val) && val !== null) {
this.onError('\'' + val + '\' is not a valid ' + this._group.getKeyType(key, true), 'setKey', 'INVALID_VALUE', true);
return undefined;
}
switch (this._group.getKeyType(key, true)) {
case 'string':
if (val) {
val = String(val);
} else {
val = undefined;
}
break;
default:
val = Number(val);
}
var v5 = {'id': v4, 'value': val};
for (var v6 in this._keys) {
v2 = this._keys[v6];
if (v2.id == v4) {
this._keys[v6] = v5;
return undefined;
}
}
this._keys.push(v5);
};
v2.setRating = function (rating, votes, score) {
var v2 = (this.getGroup()).getRating(rating);
if (!votes) {
votes = 0;
}
if (!score) {
score = 0;
}
if (!v2.is_float) {
score = Math.round(Number(score));
}
this._ratings[v2.rating_id] = {'id': Number(v2.rating_id), 'name': v2.rating_name, 'votes': Number(votes), 'score': Number(score)};
return this._ratings[v2.rating_id];
};
v2.clearBuffer = function () {
this._contents = null;
this.raw = null;
this.img = null;
this.scanner = null;
this.overwrite = false;
this.duplicate_id = null;
};
v2.onError = function (msg, funct, code) {
com.newgrounds.SaveFile.busy = false;
if (!code) {
code = 'SAVE_FILE_ERROR';
}
if (!funct) {
funct = 'unknown_function';
}
var v3 = 'getSaveGroup(\'' + this._group.getName() + '\')';
if (this.exists()) {
funct = v3 + '.getFile(\'' + this.getName() + '\').' + funct;
} else {
funct = v3 + '.getNewFile().' + funct;
}
var v5 = new com.newgrounds.APIError(code, msg);
com.newgrounds.API.sendError({'command_id': funct}, v5);
};
v2.onSaved = function (p) {
com.newgrounds.SaveFile.busy = false;
if (!this.exists()) {
this.setID(p.save_id, true);
}
this.setName(p.filename);
this.setFileURL(p.file_url);
if (p.thumbnail) {
this._thumbnail_url = p.thumbnail;
}
};
v2.onVoted = function (p) {
trace('ONVOTED WAS CALLED');
return this.setRating(p.rating_id, p.votes, p.score);
};
v2.sendRating = function (rating, vote) {
var v6 = null;
if (!com.newgrounds.API.hasUserSession()) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You must be logged in to vote on save files');
}
var v2 = this._group.getRating(rating);
if (!v2) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save group');
}
if (this.voted === true) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
}
if (vote < v2.min_value or vote > v2.max_value) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' votes must be between ' + v2.min_value + ' and ' + v2.max_value);
}
if (v6) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v6, 'file': this});
return undefined;
}
this.voted = true;
com.newgrounds.API.rateSaveFile(this, v2, vote);
};
v2.replace = function () {
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'replace');
return undefined;
}
this.overwriteExisting();
this.save();
};
v2.save = function () {
if (com.newgrounds.API.hasUserSession() && !this._author_id && !this._author_name) {
this._author_id = com.newgrounds.API.getUserID();
this._author_name = com.newgrounds.API.getUserName();
}
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'save', 'UPLOAD_IN_PROGRESS');
return undefined;
}
com.newgrounds.SaveFile.busy = true;
if (this.isLocked()) {
this.onError('This file is _locked and cannot be overwritten.', 'save', 'PERMISSION_DENIED');
return undefined;
}
if (!this._filename) {
this.onError('Please provide a name for your file.', 'save', 'MISSING_PARAM');
return undefined;
} else {
if (!this._contents) {
this.onError('The file is empty.', 'save', 'MISSING_PARAM');
return undefined;
}
}
this.img = null;
com.newgrounds.API.checkFilePrivs(this);
};
v2.checkPrivs = function (e) {
if (e.data.file.id != this.__get__id()) {
return undefined;
}
if (e.success) {
if (e.data.can_write) {
this.can_write = e.data.can_write;
if (e.data.duplicate_id) {
this.duplicate_id = e.data.duplicate_id;
}
if (e.data.exists && !this.overwriteAllowed()) {
this.onError('You already have a file named \'' + this.getName() + '\'', 'save', 'CONFIRM_REQUEST');
} else {
this.startFile();
}
} else {
this.onError('This file is _locked and cannot be overwritten', 'save', 'PERMISSION_DENIED');
}
} else {
this.onError('There was a problem looking up your file\'s details. The server may be down.', 'save', 'UNKNOWN_ERROR');
}
};
v2.startFile = function () {
if (this.can_write) {
if (this._thumbnail) {
this.scanner = new com.newgrounds.encoders.ImageScanner(this._thumbnail);
this.scanner.setCallback(this, 'encodeFile');
this.scanner.startScan(100, 100, true);
} else {
this.encodeFile();
}
} else {
this.onError('You do not have permission to save this file.', 'save', 'PERMISSION_DENIED');
}
};
v2.encodeFile = function (img) {
this.img = img;
this.raw = (com.newgrounds.encoders.SerialXML.encode(this._contents)).toString();
this.compressFile();
};
v2.compressFile = function () {
com.newgrounds.encoders.LZW2.compress(this.raw, function (s, p) {
p.file.onCompressed(s);
}, {'file': this});
};
v2.onCompressed = function (compressed) {
this.raw = escape(compressed);
this.writeFile();
};
v2.getProgress = function () {};
v2.writeFile = function () {
((this.getGroup()).getQuery()).clearCache();
com.newgrounds.API.saveFile(this);
this.clearBuffer();
};
v2.loadContents = function () {
if (this._contents) {
com.newgrounds.API.setCurrentSaveFile(this);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
return undefined;
}
if (!this.getFileURL()) {
var v4 = new com.newgrounds.APIError('FILE_NOT_FOUND', 'Attempted to load contents of an unsaved file.');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {'file': this, 'error': v4});
return undefined;
}
var v2 = new LoadVars();
v2.target = this;
var target = this;
v2.onData = function (encoded) {
target.onLoaded(encoded);
};
v2.load(this.getFileURL());
};
v2.onLoaded = function (encoded) {
if (encoded == undefined) {
var v3 = new com.newgrounds.APIError('FILE_NOT_FOUND', 'We could not find the contents for this file. It may have been deleted.');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {'file': this, 'error': v3});
return undefined;
}
com.newgrounds.encoders.LZW.setXMLSafe(true);
this._contents = com.newgrounds.encoders.SerialXML.decode(com.newgrounds.encoders.LZW.decompress(encoded));
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
};
v2.setViews = function (n) {
this._views = n;
};
v1.busy = false;
v2.can_write = false;
v2._draft = false;
v2.status = 0;
v2.voted = false;
v2._views = 0;
v2._locked = false;
v2.overwrite = false;
v2.duplicate_id = null;
v2._keys = null;
v2._ratings = null;
v2._author_id = null;
v2._author_name = null;
v1.STATUS = {'PRIVATE': 1, 'PUBLIC': 2, 'UNAPPROVED': 3, 'APPROVED': 4};
v2.addProperty('approved', v2.__get__approved, function () {});
v2.addProperty('authorID', v2.__get__authorID, v2.__set__authorID);
v2.addProperty('authorName', v2.__get__authorName, v2.__set__authorName);
v2.addProperty('contents', v2.__get__contents, v2.__set__contents);
v2.addProperty('description', v2.__get__description, v2.__set__description);
v2.addProperty('draft', v2.__get__draft, v2.__set__draft);
v2.addProperty('fileUrl', v2.__get__fileUrl, v2.__set__fileUrl);
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('groupName', v2.__get__groupName, function () {});
v2.addProperty('groupType', v2.__get__groupType, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('isPrivate', v2.__get__isPrivate, function () {});
v2.addProperty('isPublic', v2.__get__isPublic, function () {});
v2.addProperty('keys', v2.__get__keys, function () {});
v2.addProperty('locked', v2.__get__locked, function () {});
v2.addProperty('name', v2.__get__name, v2.__set__name);
v2.addProperty('ratings', v2.__get__ratings, function () {});
v2.addProperty('shared', v2.__get__shared, function () {});
v2.addProperty('thumbnailUrl', v2.__get__thumbnailUrl, v2.__set__thumbnailUrl);
v2.addProperty('views', v2.__get__views, function () {});
ASSetPropFlags(com.newgrounds.SaveFile.prototype, null, 1);
}
#endinitclip
}
movieClip 91 __Packages.com.newgrounds.SaveGroup {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroup) {
var v1 = function (group_id, group_name, group_type) {
this.group_name = group_name;
this.group_id = group_id;
this.group_type = group_type;
this.query = new com.newgrounds.SaveGroupQuery(this);
this.ratings = new Array();
this.keys = new Array();
this.files = new Array();
};
com.newgrounds.SaveGroup = v1;
var v2 = v1.prototype;
v2.__get__id = function () {
return this.group_id;
};
v2.__get__name = function () {
return this.group_name;
};
v2.__get__type = function () {
return this.group_type;
};
v2.addFile = function (file) {
var v2 = 0;
while (v2 < this.files.length) {
if (this.files[v2].getID() == file.getID()) {
this.files[v2] = file;
return undefined;
}
++v2;
}
this.files.push(file);
};
v2.getFile = function (file_id) {
trace('getting the file ' + file_id);
var v2 = 0;
while (v2 < this.files.length) {
trace('Looking up ' + file_id + ' :: ' + this.files[v2].getID() + ' || ' + this.files[v2].getName());
if (com.newgrounds.SaveGroup.isNumeric(file_id) and this.files[v2].getID() == Number(file_id)) {
return this.files[v2];
} else {
if (this.files[v2].getName() == file_id) {
return this.files[v2];
}
}
++v2;
}
return null;
};
v2.addRating = function (rating_id, rating_name, min_value, max_value, is_float) {
var v3 = {'rating_id': rating_id, 'rating_name': rating_name, 'min_value': min_value, 'max_value': max_value, 'is_float': is_float};
if (!this.getRatingID(rating_name)) {
this.ratings.push(v3);
}
};
v2.getRating = function (rating_id) {
var v2 = 0;
while (v2 < this.ratings.length) {
if (com.newgrounds.SaveGroup.isNumeric(rating_id) and this.ratings[v2].rating_id == rating_id) {
return this.ratings[v2];
} else {
if (this.ratings[v2].rating_name == rating_id) {
return this.ratings[v2];
}
}
++v2;
}
return null;
};
v2.getRatingID = function (rating_id) {
var v2 = this.getRating(rating_id);
if (v2) {
return v2.rating_id;
}
return null;
};
v2.getRatingName = function (rating_id) {
var v2 = this.getRating(rating_id);
if (v2) {
return v2.rating_name;
}
return null;
};
v2.addKey = function (key_id, key_name, key_type) {
trace('>>>>>>>>>>> ADDING KEY ' + key_id + ' ' + key_name + ' ' + key_type);
var v2 = {'key_id': key_id, 'key_name': key_name, 'key_type': key_type};
if (!this.getKey(key_name)) {
this.keys.push(v2);
}
};
v2.getKey = function (key_id) {
var v2 = 0;
while (v2 < this.keys.length) {
if (com.newgrounds.SaveGroup.isNumeric(key_id) and this.keys[v2].key_id == key_id) {
return this.keys[v2];
} else {
if (this.keys[v2].key_name == key_id) {
return this.keys[v2];
}
}
++v2;
}
return null;
};
v2.getKeyType = function (key_name, as_string) {
var v2 = this.getKey(key_name);
if (v2) {
return as_string ? com.newgrounds.SaveGroup.KEY_TYPES[v2.key_type] : v2.key_type;
}
return null;
};
v2.getKeyID = function (key_id) {
var v2 = this.getKey(key_id);
if (v2) {
return v2.key_id;
}
return null;
};
v2.getKeyName = function (key_id) {
var v2 = this.getKey(key_id);
if (v2) {
return v2.key_name;
}
return null;
};
v2.keyValueIsValid = function (key, value) {
var v4;
var v7;
if (typeof value == 'number' or (Number(value)).toString() == String(value)) {
value = Number(value);
v4 = (Math.round(value) === value) ? 'integer' : 'float';
} else {
v4 = typeof value;
if (v4 == 'string') {
var v6 = '01234567890.-';
var v5 = true;
var v2 = 0;
while (v2 < value.length) {
if (v6.indexOf(value.charAt(v2)) < 0) {
v5 = false;
break;
}
++v2;
}
if (v5) {
value = Number(value);
v4 = 'float';
}
}
}
switch (this.getKeyType(key, true)) {
case 'integer':
v7 = v4 == 'integer' or v4 == 'boolean';
return v7;
case 'float':
v7 = v4 == 'float' or v4 == 'integer' or v4 == 'boolean';
return v7;
case 'string':
v7 = v4 == 'string' or v4 == 'float' or v4 == 'integer' or v4 == 'boolean';
return v7;
case 'boolean':
v7 = v4 == 'boolean' or value == 1 or value == 0 or value == '';
return v7;
}
v7 = false;
return v7;
};
v2.isType = function (type) {
return this.group_type == com.newgrounds.SaveGroup.TYPES[type.toUpperCase()];
};
v2.getID = function () {
return this.group_id;
};
v2.getName = function () {
return this.group_name;
};
v2.getType = function () {
return this.group_type;
};
v2.isSystem = function () {
return undefined;
};
v2.getQuery = function (as_object) {
if (as_object) {
return this.query.toObject();
}
return this.query;
};
v2.newQuery = function () {
this.query.reset();
return this.query;
};
v2.clearQuery = function () {
this.query.reset();
};
v2.newFile = function () {
var v2 = new com.newgrounds.SaveFile(this);
return v2;
};
v1.isNumeric = function (value) {
return typeof value == 'number' or (Number(value)).toString() == String(value);
};
v1.KEY_TYPES = [null, 'float', 'integer', 'string', 'boolean'];
v1.TYPES = {'SYSTEM': 0, 'PRIVATE': 1, 'PUBLIC': 2, 'MODERATED': 3};
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.SaveGroup.prototype, null, 1);
}
#endinitclip
}
movieClip 94 __Packages.com.newgrounds.SaveGroupQuery {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroupQuery) {
var v1 = function (_group) {
this._group = _group;
this.reset();
};
com.newgrounds.SaveGroupQuery = v1;
var v2 = v1.prototype;
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__resultsPerPage = function () {
return this._num_results;
};
v2.__set__resultsPerPage = function (n) {
this._num_results = n;
return this.__get__resultsPerPage();
};
v2.__get__pages = function () {
return this._pages;
};
v2.__get__page = function () {
return this._page;
};
v2.__set__page = function (n) {
this._page = n;
return this.__get__page();
};
v2.__get__randomize = function () {
return this._randomize_results;
};
v2.__set__randomize = function (b) {
this._randomize_results = b;
return this.__get__randomize();
};
v2.__get__results = function () {
return this._results;
};
v2.clearCache = function () {
this._results = [];
};
v2.reset = function () {
this.file_conditions = new Array();
this.key_conditions = new Array();
this.rating_conditions = new Array();
this.sort_conditions = new Array();
this.lookup_keys = new Object();
this.lookup_ratings = new Object();
this._num_results = 20;
this._page = 1;
this._randomize_results = false;
this._group_by = new Array();
this.clearCache();
};
v2.getGroup = function () {
return this._group;
};
v2.getGroupID = function () {
return this._group.getID();
};
v2.isRandomized = function () {
return this._randomize_results;
};
v2.toObject = function () {
var v2;
var v11 = {'page': this._page, 'num_results': this._num_results};
if (this._randomize_results) {
v11.randomize = 1;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.file_conditions)) {
var v12 = [];
v2 = 0;
while (v2 < this.file_conditions.length) {
var v6 = this.file_conditions[v2];
v12.push({'field': com.newgrounds.SaveGroupQuery.file_fields[v6.field.toUpperCase()].id, 'operator': v6.operator, 'value': v6.value});
++v2;
}
v11.file_conditions = v12;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.key_conditions)) {
v11.key_conditions = this.key_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.rating_conditions)) {
v11.rating_conditions = this.rating_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.sort_conditions)) {
var v14 = [];
v2 = 0;
while (v2 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v2];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
var v8 = com.newgrounds.SaveGroupQuery.file_fields[v3.field.toUpperCase()].id;
} else {
var v8 = v3.field;
}
var v5 = {'field': v8, 'table': v3.table};
if (v3.desc) {
v5.desc = 1;
}
if (v3.extra) {
v5.extra = v3.extra;
}
v14.push(v5);
++v2;
}
v11.sort_conditions = v14;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_keys)) {
var v15 = [];
for (v2 in this.lookup_keys) {
v15.push(v2);
}
v11.lookup_keys = v15;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_ratings)) {
var v13 = [];
for (v2 in this.lookup_ratings) {
v13.push(v2);
}
v11.lookup_ratings = v13;
}
if (!com.newgrounds.ValidationTools.isEmpty(this._group_by)) {
var v16 = [];
v2 = 0;
while (v2 < this._group_by.length) {
var v4 = this._group_by[v2];
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
v8 = com.newgrounds.SaveGroupQuery.file_fields[v4.field.toUpperCase()].id;
} else {
v8 = v4.field;
}
v16.push({'field': v8, 'table': v4.table});
++v2;
}
v11.group_by = v16;
}
return v11;
};
v2.toString = function () {
var v9;
var v2;
var v11 = [];
v9 = 'Lookup:\r';
var v14 = [];
for (var v6 in com.newgrounds.SaveGroupQuery.file_fields) {
v14.push(' ' + v6);
v2 = true;
}
v9 += v14.join('\n');
v11.push(v9);
v9 = '';
v2 = false;
var v16 = [];
for (v6 in this.lookup_keys) {
v16.push(' KEY \'' + this._group.getKeyName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v16.join('\n');
v11.push(v9);
}
v9 = '';
v2 = false;
var v15 = [];
for (v6 in this.lookup_ratings) {
v15.push(' RATING \'' + this._group.getRatingName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v15.join('\n');
v11.push(v9);
}
v9 = 'Where:\r';
v2 = false;
var v8 = [];
v6 = 0;
while (v6 < this.file_conditions.length) {
var v7 = this.file_conditions[v6];
var v10 = ' ' + v7.field + ' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.key_conditions.length) {
v7 = this.key_conditions[v6];
v10 = ' KEY \'' + this._group.getKeyName(v7.key_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.rating_conditions.length) {
v7 = this.rating_conditions[v6];
v10 = ' RATING \'' + this._group.getRatingName(v7.rating_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
if (v2) {
v9 += v8.join('\n');
v11.push(v9);
}
v9 = 'Group By:\r';
v2 = false;
var v13 = [];
v6 = 0;
while (v6 < this._group_by.length) {
var v4 = this._group_by[v6];
var v5;
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v4.field) + '\'';
} else {
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v4.field) + '\'';
} else {
v5 = ' ' + v4.field;
}
}
v13.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v13.join('\n');
v11.push(v9);
}
v9 = 'Order By:\r';
v2 = false;
var v12 = [];
if (this.isRandomized()) {
v12.push(' RANDOM');
v2 = true;
}
v6 = 0;
while (v6 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v6];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v3.field) + '\'';
} else {
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v3.field) + '\' ' + ((v3.extra == 'votes') ? 'VOTES' : 'SCORE');
} else {
v5 = ' ' + v3.field;
}
}
v5 += v3.desc ? ' (DESCENDING)' : '';
v12.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v12.join('\n');
v11.push(v9);
}
v11.push('Page:\r ' + this._page);
v11.push('Results Per Page:\r ' + this._num_results);
return v11.join('\n');
};
v2.setResultsPerPage = function (r) {
this._num_results = r;
this.clearCache();
};
v2.setPage = function (p) {
this._page = p;
this.clearCache();
};
v2.setRandomize = function (bool) {
this._randomize_results = (bool === false) ? false : true;
};
v2.includeKey = function (key) {
if (!this._group.getKeyID(key)) {
trace('[SaveGroupQuery Error] :: \'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_keys[this._group.getKeyID(key)] = 1;
this.clearCache();
};
v2.includeRating = function (rating) {
if (!this._group.getRatingID(rating)) {
trace('[SaveGroupQuery Error] :: \'' + rating + '\' is not a valid rating for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_ratings[this._group.getRatingID(rating)] = 1;
this.clearCache();
};
v2.groupBy = function (field) {
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_FILES, field);
};
v2.groupByKey = function (key) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key));
};
v2.groupByRating = function (rating) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating));
};
v2.addGroupItem = function (table, field) {
this._group_by.push({'table': table, 'field': field});
this.clearCache();
};
v2.excludeKey = function (key) {
delete this.lookup_keys[this._group.getKeyID(key)];
this.clearCache();
};
v2.excludeRating = function (rating) {
delete this.lookup_ratings[this._group.getRatingID(rating)];
this.clearCache();
};
v2.addCondition = function (field, operator, value) {
if (field == 'FILE_STATUS' && typeof value == 'string' && com.newgrounds.SaveFile.STATUS[value.toUpperCase()] !== undefined) {
value = com.newgrounds.SaveFile.STATUS[value.toUpperCase()];
}
if (operator == '==') {
operator = '=';
}
if (!this.validateOperator(operator) or !this.validateValue(field, value)) {
return undefined;
}
this.file_conditions.push({'field': field, 'operator': operator, 'value': value});
this.clearCache();
};
v2.addKeyCondition = function (key, operator, value) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator) or !this.validateKeyValue(key, value)) {
return undefined;
}
}
this.key_conditions.push({'key_id': this._group.getKeyID(key), 'operator': operator, 'value': value});
this.clearCache();
};
v2.addRatingCondition = function (rating, operator, value, column) {
if (!column) {
column = 'SCORE';
}
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator)) {
return undefined;
} else {
if (!com.newgrounds.ValidationTools.isNumber(value)) {
this.error('Expected numeric value for rating \'' + rating + '\'');
return undefined;
}
}
}
if (!com.newgrounds.SaveGroupQuery.rating_columns[column]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.rating_columns) {
v2.push(v3);
}
this.error('Invalid rating column \'' + column + '\'. Valid columns are ' + v2.join(', '));
return undefined;
}
this.rating_conditions.push({'rating_id': this._group.getRatingID(rating), 'operator': operator, 'value': value, 'column': com.newgrounds.SaveGroupQuery.rating_columns[column]});
this.clearCache();
};
v2.sortOn = function (field, order) {
if (!com.newgrounds.SaveGroupQuery.file_fields[field]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v3);
}
this.error('\'' + field + '\' is not a valid sort field. Valid fields are: ' + v2.join(', '));
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_FILES, field, order);
};
v2.sortOnKey = function (key, order) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key), order);
};
v2.sortOnRating = function (rating, order, column) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
if (!column) {
column = 'score';
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating), order, column);
};
v2.sortOnRatingScore = function (rating, order) {
this.sortOnRating(rating, order, 'score');
};
v2.sortOnRatingVotes = function (rating, order) {
this.sortOnRating(rating, order, 'votes');
};
v2.addSortCondition = function (table, field, order, extra) {
var v7;
if (!order or order == '' or order.toUpperCase() == 'ASC') {
v7 = false;
} else {
if (order.toUpperCase() == 'DESC') {
v7 = true;
} else {
this.error('\'' + order + '\' is not a valid sort order!');
return undefined;
}
}
var v3 = {'table': table, 'field': field, 'desc': v7};
if (extra) {
v3.extra = extra;
}
this.sort_conditions.push(v3);
this.clearCache();
};
v2.onExecuted = function (results) {
this._results = [];
var v6 = 0;
while (v6 < results.length) {
var v2 = results[v6];
var v3 = new com.newgrounds.SaveFile(this._group);
v3.setName(v2.filename);
v3.setID(v2.save_id);
v3.setDescription(v2.description);
v3.setThumbnailURL(v2.thumb);
v3.setFileURL(v2.file);
if (v2.views) {
v3.setViews(v2.views);
}
v3.setPermissions(v2.status, v2.locked);
v3.authorName = v2.user_name;
v3.authorID = v2.user_id;
var v5 = 0;
while (v5 < v2.keys.length) {
v3.setKey(v2.keys[v5].id, v2.keys[v5].value);
++v5;
}
var v4 = 0;
while (v4 < v2.ratings.length) {
v3.setRating(v2.ratings[v4].id, v2.ratings[v4].votes, v2.ratings[v4].score);
++v4;
}
(this.getGroup()).addFile(v3);
this._results.push(v3);
++v6;
}
this.callEventDispatcher();
};
v2.hasResults = function () {
return this._results && this._results.length > 0;
};
v2.callEventDispatcher = function () {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.QUERY_COMPLETE, true, {'query': this});
};
v2.execute = function () {
if (this.hasResults() && !this.isRandomized()) {
this.callEventDispatcher();
return undefined;
}
this._group.query = this;
com.newgrounds.API.lookupSaveFiles(this._group);
};
v2.processResults = function (files) {
return null;
};
v2.validateKeyValue = function (key, value) {
var v3 = this._group.getKeyType(key);
if (v3) {
var v2 = com.newgrounds.SaveGroup.KEY_TYPES[v3];
if (v2 == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (v2 == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (v2 == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
}
}
}
this.error('Expected type ' + v2 + ' for key \'' + key + '\'');
}
return false;
};
v2.validateValue = function (field, value) {
if (com.newgrounds.SaveGroupQuery.file_fields[field]) {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
} else {
this.error('Expecting ' + com.newgrounds.SaveGroupQuery.file_fields[field].type + ' value on \'' + field + '\' condition');
}
}
}
return false;
}
var v2 = [];
for (var v4 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v4);
}
this.error('\'' + field + '\' is not a searchable field. Valid fields are: ' + v2.join(', '));
return false;
};
v2.validateOperator = function (operator) {
var v2 = 0;
while (v2 < com.newgrounds.SaveGroupQuery.valid_operators.length) {
if (operator == com.newgrounds.SaveGroupQuery.valid_operators[v2]) {
return true;
}
++v2;
}
this.error('\'' + operator + '\' is not a valid lookup operation. Valid operations are: ' + com.newgrounds.SaveGroupQuery.valid_operators.join(', '));
return false;
};
v2.error = function (msg) {
trace('[QUERY ERROR] :: ' + msg);
};
v1.TABLE_FILES = 1;
v1.TABLE_KEYS = 2;
v1.TABLE_RATINGS = 3;
v2._results = [];
v1.file_fields = {'FILE_ID': {'id': 0, 'field': 'file_id', 'type': 'integer'}, 'AUTHOR_ID': {'id': 1, 'field': 'user_id', 'type': 'integer'}, 'AUTHOR_NAME': {'id': 2, 'field': 'user_name', 'type': 'string'}, 'FILE_NAME': {'id': 3, 'field': 'file_name', 'type': 'string'}, 'CREATED_ON': {'id': 4, 'field': 'created', 'type': 'string'}, 'UPDATED_ON': {'id': 5, 'field': 'last_update', 'type': 'string'}, 'TOTAL_VIEWS': {'id': 6, 'field': 'views', 'type': 'integer'}, 'FILE_STATUS': {'id': 7, 'field': 'status', 'type': 'integer'}};
v1.rating_columns = {'TOTAL_VOTES': 'votes', 'SCORE': 'score'};
v1.valid_operators = ['=', '<', '>', '!=', '<>', '<=', '>=', '*', '!*', '!*=', '!=*', '*=', '=*'];
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('page', v2.__get__page, v2.__set__page);
v2.addProperty('pages', v2.__get__pages, function () {});
v2.addProperty('randomize', v2.__get__randomize, v2.__set__randomize);
v2.addProperty('results', v2.__get__results, function () {});
v2.addProperty('resultsPerPage', v2.__get__resultsPerPage, v2.__set__resultsPerPage);
ASSetPropFlags(com.newgrounds.SaveGroupQuery.prototype, null, 1);
}
#endinitclip
}
movieClip 96 __Packages.com.newgrounds.encoders.ImageScanner {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.ImageScanner) {
var v1 = function (the_source) {
if (the_source) {
this.image_source = the_source;
} else {
this.image_source = _root;
}
this.reset();
if (typeof this.image_source == 'movieclip') {
if (this.image_source == _root) {
this.source_width = Stage.width;
this.source_height = Stage.height;
} else {
this.source_width = Math.floor(this.image_source._width);
this.source_height = Math.floor(this.image_source._height);
}
this.sourceBitmap = new flash.display.BitmapData(this.source_width, this.source_height, false, 4294967295.0);
this.sourceBitmap.draw(_root);
} else {
if (this.image_source.width) {
this.source_width = this.image_source.width;
this.source_height = this.image_source.height;
this.sourceBitmap = this.image_source;
} else {
this.error('You can only use BitMaptData and MovieClip objects to create images');
}
}
};
com.newgrounds.encoders.ImageScanner = v1;
var v2 = v1.prototype;
v2.setCallback = function (target, funct) {
if (target && funct) {
this.callback_target = target;
this.callback_function = funct;
}
};
v2.reset = function () {
this.callback_target = null;
this.callback_function = null;
this.debug.bad_pixels = 0;
this.hash = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&';
var v3 = Math.pow(this.hash.length, 2);
trace('MAX COLORS: ' + v3);
var v2 = Math.floor(Math.pow(v3, 0.3333333333333333)) - 1;
var v4 = Math.pow(v2, 3);
this.cube = v2;
this.basen = new com.newgrounds.encoders.BaseN(this.hash);
this.xpos = 0;
this.ypos = 0;
this.pixels = 0;
this.busy = false;
};
v2.startScan = function (w, h, s) {
if (w) {
this.image_width = w;
}
if (h) {
this.image_height = h;
}
if (s != undefined) {
this.crop = s;
}
var v7 = _root.getNextHighestDepth();
var v6 = _root.createEmptyMovieClip('API_image_container_' + v7, v7);
var v5 = v6.createEmptyMovieClip('canvas', 100);
v5.attachBitmap(this.sourceBitmap, 100);
if (this.crop) {
if (this.image_width / this.source_width > this.image_height / this.source_height) {
this.canvas_width = this.image_width;
this.canvas_height = Math.ceil(this.source_height * (this.image_width / this.source_width));
} else {
this.canvas_height = this.image_height;
this.canvas_width = Math.ceil(this.source_width * (this.image_height / this.source_height));
}
} else {
this.canvas_width = this.image_width;
this.canvas_height = this.image_height;
}
v5._x = Math.round((this.image_width - this.canvas_width) / 2);
v5._width = this.canvas_width;
v5._height = this.canvas_height;
this.resizedBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
this.resizedBitmap.draw(v6);
v6.removeMovieClip();
this.copyBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
var v3 = '' + this.image_width;
while (v3.length < 3) {
v3 = '0' + v3;
}
var v4 = '' + this.image_height;
while (v4.length < 3) {
v4 = '0' + v4;
}
this.output = v3 + v4;
this.draw_interval = setInterval(this, 'drawChunk', 10);
this.busy = false;
return this.resizedBitmap;
};
v2.getBitmapData = function () {
return this.copyBitmap;
};
v2.getBytesTotal = function () {
return this.image_width * this.image_height * 2;
};
v2.getBytesScanned = function () {
return this.pixels * 2;
};
v2.getProgress = function () {
return Math.round((this.getBytesScanned() / this.getBytesTotal()) * 100);
};
v2.drawChunk = function () {
if (!this.busy) {
this.busy = true;
var v2 = 0;
while (v2 < this.pixels_per_chunk) {
if (!this.nextPixel()) {
clearInterval(this.draw_interval);
this.callback_interval = setInterval(this, 'doCallback', 25);
this.busy = true;
break;
}
++v2;
}
this.busy = false;
}
};
v2.doCallback = function () {
this.busy = false;
clearInterval(this.callback_interval);
if (this.callback_target and this.callback_function) {
this.callback_target[this.callback_function](this.output);
} else {
this.onScanComplete(this.output);
}
};
v2.onScanComplete = function (packet) {
this.sendMessage('packet size: ' + this.output.length + ' bytes', 'onScanComplete');
};
v2.nextPixel = function () {
var v15 = this.xpos;
var v14 = this.ypos;
var v7 = this.resizedBitmap.getPixel(v15, v14);
var v17 = v7 >> 16 & 255;
var v20 = v7 >> 8 & 255;
var v16 = v7 >> 0 & 255;
var v11 = Math.round(((v17 + 1) / 256) * this.cube);
var v10 = Math.round(((v20 + 1) / 256) * this.cube);
var v13 = Math.round(((v16 + 1) / 256) * this.cube);
var v12 = v11 * (this.cube + 1) * (this.cube + 1) + v10 * (this.cube + 1) + v13;
var v6 = this.basen.encode(v12, 2);
this.output += v6;
if (v6.length != 2) {
trace('bad pixel ' + v6);
}
var v5 = this.basen.decode(v6);
var v18 = v5;
var v8 = v5 % (this.cube + 1);
v5 = (v5 - v8) / (this.cube + 1);
var v9 = v5 % (this.cube + 1);
var v19 = (v5 - v9) / (this.cube + 1);
if (v13 != v8 and v10 != v9 and v11 != v10) {
++this.debug.bad_pixels;
trace('BAD PIXEL ' + this.debug.bad_pixels + ') ' + v12 + ' != ' + v18 + ' ' + v6);
trace(this.basen.debug.lastencode);
}
var v2 = (Math.round((v19 / this.cube) * 255)).toString(16);
var v4 = (Math.round((v9 / this.cube) * 255)).toString(16);
var v3 = (Math.round((v8 / this.cube) * 255)).toString(16);
while (v2.length < 2) {
v2 = '0' + v2;
}
while (v4.length < 2) {
v4 = '0' + v4;
}
while (v3.length < 2) {
v3 = '0' + v3;
}
this.copyBitmap.setPixel(v15, v14, Number('0x' + v2 + v4 + v3));
++this.pixels;
if (this.pixels >= this.image_width * this.image_height) {
return false;
}
++this.xpos;
if (this.xpos >= this.image_width) {
this.xpos = 0;
++this.ypos;
}
return true;
};
v2.error = function (e, f) {
this.sendMessage(e, f, 'ERROR');
};
v2.sendMessage = function (msg, func, type) {
var v1 = 'ImageScanner';
if (func) {
v1 += '.' + func + '()';
}
if (type) {
v1 = type + ' in ' + v1;
}
v1 += ' :: ' + msg;
trace(v1);
};
v2.image_width = 100;
v2.image_height = 100;
v2.crop = true;
v2.pixels_per_chunk = 500;
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.ImageScanner.prototype, null, 1);
}
#endinitclip
}
movieClip 95 __Packages.com.newgrounds.encoders.BaseN {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.BaseN) {
var v1 = function (hash) {
this.ceiling = 100000000000000.0;
if (hash) {
this.hashIndex = hash;
} else {
this.hashIndex = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/';
}
this.bitSize = this.hashIndex.length;
this.hashVal = new Object();
this.i = 0;
while (this.i < this.bitSize) {
this.hashVal[this.hashIndex.charAt(this.i)] = this.i;
++this.i;
}
};
com.newgrounds.encoders.BaseN = v1;
var v2 = v1.prototype;
v2.verify = function (s) {
if (this.hashVal[s] != undefined) {
return true;
} else {
return false;
}
};
v2.encode = function (n, minchars) {
this.debug.lastencode = '';
if (typeof this.i != 'string') {
n = n.toString();
}
if (n.charAt(0) == '-') {
var v3 = '-';
n = n.substring(1);
} else {
var v3 = '';
}
if ((String(n)).indexOf('.') > -1) {
var v4 = (String(n)).split('.', 2);
return v3 + this.baseNEncoder(v4[0], minchars) + '.' + this.baseNEncoder(v4[1]);
} else {
this.debug.lastencode += '\tNo decimal\r';
return v3 + this.baseNEncoder(n, minchars);
}
};
v2.decode = function (s) {
var v4 = 1;
if (s.charAt(0) == '-') {
v4 = -1;
s = s.substring(1, s.length);
}
var v3 = s.indexOf('.');
if (v3 > -1) {
var v5 = Math.pow(10, this.baseNDecoder(s.substring(v3 + 1, s.length)));
return (this.baseNDecoder(s.substring(0, v3)) / v5) * v4;
} else {
return this.baseNDecoder(s) * v4;
}
};
v2.baseNEncoder = function (n, minchars) {
if (!minchars) {
minchars = 1;
}
var v4 = '';
while (n != 0) {
n = Math.round(n);
var v3 = n % this.bitSize;
if (Math.round(v3) != v3) {
trace('BaseN failed on ' + n + '%' + this.bitSize + ' = ' + v3 + ' ' + int(n) + ' ' + int(this.bitSize));
}
v4 = this.hashIndex.charAt(v3) + v4;
this.debug.lastencode += '\t-> n:' + n + ' % bitSize:' + this.bitSize + ' = ' + v3 + ', final char=' + v4 + '\n';
n -= v3;
n /= this.bitSize;
}
if (minchars) {
while (v4.length < minchars) {
v4 = this.hashIndex.charAt(0) + v4;
}
}
return v4;
};
v2.baseNDecoder = function (s) {
var v2 = 0;
var v6 = 0;
this.i = 0;
while (this.i < s.length) {
var v3 = s.charAt(s.length - this.i - 1);
if (v3 == this.hashIndex.charAt(0)) {
var v5 = 0;
} else {
var v5 = this.hashVal[v3] * Math.pow(this.bitSize, this.i);
}
v2 += v5;
if (v2 >= this.ceiling) {
v6 += (v2 - v2 % this.ceiling) / this.ceiling;
v2 %= this.ceiling;
}
++this.i;
}
if (v6 > 0) {
v2 = '' + v2;
while (v2.length < (this.ceiling.toString()).length - 1) {
v2 = '0' + v2;
}
v2 = '' + v6 + v2;
}
return v2;
};
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.BaseN.prototype, null, 1);
}
#endinitclip
}
movieClip 106 __Packages.com.newgrounds.APIEventDispatcher {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEventDispatcher) {
var v1 = function () {};
com.newgrounds.APIEventDispatcher = v1;
var v2 = v1.prototype;
v2.addEventListener = function (event, callback, target) {
if (!target) {
throw 'Attempted to create a listener without providing a target object.';
}
if (!this.listeners[event]) {
this.listeners[event] = [];
} else {
this.removeEventListener(event, target);
}
this.listeners[event].push({'target': target, 'callback': callback});
};
v2.removeEventListener = function (event, target) {
if (!target) {
throw 'Attempted to remove a listener without providing a target object.';
}
if (!this.listeners[event] || this.listeners[event].length < 1) {
return undefined;
}
var v4 = [];
var v2 = 0;
while (v2 < this.listeners[event].length) {
if (this.listeners[event][v2].target != target) {
v4.push(this.listeners[event][v2]);
}
++v2;
}
this.listeners[event] = v4;
};
v2.dispatchEvent = function (event) {
if (!this.hasEventListener(event.__get__type())) {
return false;
}
this.collectGarbage(event.__get__type());
var v2 = 0;
while (v2 < this.listeners[event.__get__type()].length) {
var v4 = this.listeners[event.__get__type()][v2].callback;
if (this.listeners[event.__get__type()][v2].target) {
var v5 = this.listeners[event.__get__type()][v2].target;
v4.call(v5, event);
} else {
v4(event);
}
++v2;
}
return true;
};
v2.hasEventListener = function (event) {
return this.listeners[event] != undefined && this.listeners[event].length > 0;
};
v2.collectGarbage = function (event) {
var v5 = [];
if (!this.hasEventListener) {
return undefined;
}
var v2 = 0;
while (v2 < this.listeners[event].length) {
var v4 = this.listeners[event][v2].target;
if (v4) {
v5.push(this.listeners[event][v2]);
}
++v2;
}
this.listeners[event] = v5;
};
v2.listeners = {};
ASSetPropFlags(com.newgrounds.APIEventDispatcher.prototype, null, 1);
}
#endinitclip
}
movieClip 93 __Packages.com.newgrounds.APIEvent {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEvent) {
var v1 = function (type, success, data) {
this._type = type;
this._success = success;
if (data.isError()) {
this._error = data;
this.data = null;
} else {
if (data.error && data.error.isError()) {
this._error = data.error;
this.data = data;
} else {
this.data = data;
this._error = null;
}
}
};
com.newgrounds.APIEvent = v1;
var v2 = v1.prototype;
v2.__get__error = function () {
return this._error;
};
v2.__get__type = function () {
return this._type;
};
v2.__get__success = function () {
return this._success;
};
v1.API_CONNECTED = 'apiConnected';
v1.ADS_APPROVED = 'adsApproved';
v1.AD_ATTACHED = 'adAttached';
v1.HOST_BLOCKED = 'hostBlocked';
v1.NEW_VERSION_AVAILABLE = 'newVersionAvailable';
v1.EVENT_LOGGED = 'eventLogged';
v1.SCORE_POSTED = 'scorePosted';
v1.SCORES_LOADED = 'scoresLoaded';
v1.UNLOCK_MEDAL = 'unlockMedal';
v1.MEDAL_UNLOCKED = 'medalUnlocked';
v1.MEDALS_LOADED = 'medalsLoaded';
v1.METADATA_LOADED = 'metadataLoaded';
v1.FILE_PRIVS_LOADED = 'filePrivsLoaded';
v1.FILE_SAVED = 'fileSaved';
v1.FILE_LOADED = 'fileLoaded';
v1.FILE_INITIALIZED = 'fileInitialized';
v1.FILE_REQUESTED = 'fileRequested';
v1.QUERY_COMPLETE = 'queryComplete';
v1.VOTE_COMPLETE = 'voteComplete';
v1.API_ERROR = 'apiError';
v1.UNCAUGHT_EVENT = 'uncaughtEvent';
v2.addProperty('error', v2.__get__error, function () {});
v2.addProperty('success', v2.__get__success, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.APIEvent.prototype, null, 1);
}
#endinitclip
}
movieClip 87 __Packages.com.newgrounds.APIError {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIError) {
var v1 = function (error, msg) {
if ((Number(error)).toString() == String(error)) {
error = Number(error);
} else {
if (com.newgrounds.APIError.error_codes[String(error)]) {
error = com.newgrounds.APIError.error_codes[String(error)];
} else {
error = 0;
}
}
this.code = error;
this.message = msg;
this.name = com.newgrounds.APIError.error_names[error];
this.alias = com.newgrounds.APIError.aliases[error];
};
com.newgrounds.APIError = v1;
var v2 = v1.prototype;
v1.init_codes = function () {
var v2 = new Object();
var v1 = 0;
while (v1 < com.newgrounds.APIError.aliases.length) {
v2[com.newgrounds.APIError.aliases[v1]] = v1;
++v1;
}
return v2;
};
v1.init_names = function () {
var v5 = new Array();
var v3 = 0;
while (v3 < com.newgrounds.APIError.aliases.length) {
var v2 = (com.newgrounds.APIError.aliases[v3].toLowerCase()).split('_');
var v1 = 0;
while (v1 < v2.length) {
v2[v1] = (v2[v1].substr(0, 1)).toUpperCase() + v2[v1].substr(1, v2[v1].length);
for (var v4 in com.newgrounds.APIError.always_caps) {
if (v2[v1].toUpperCase() == com.newgrounds.APIError.always_caps[v4]) {
v2[v1] = v2[v1].toUpperCase();
}
}
++v1;
}
v5[v3] = v2.join(' ');
++v3;
}
return v5;
};
v2.isError = function () {
return true;
};
v1.aliases = new Array('UNKNOWN_ERROR', 'INVALID_API_ID', 'MISSING_PARAM', 'INVALID_STAT_ID', 'INVALID_COMMAND_ID', 'FLASH_ADS_NOT_APPROVED', 'PERMISSION_DENIED', 'IDENTIFICATION_REQUIRED', 'INVALID_EMAIL_ADDRESS', 'BANNED_USER', 'SESSION_EXPIRED', 'INVALID_SCORE', 'INVALID_MEDAL', 'INVALID_SAVE_GROUP', 'FILE_NOT_FOUND', 'SITE_ID_REQUIRED', 'UPLOAD_IN_PROGRESS', 'USER_CANCELLED', 'CONFIRM_REQUEST', 'ILLEGAL_REQUEST', 'CONNECTION_FAILED', 'QUERY_INCOMPLETE', 'SAVE_FILE_ERROR', 'INVALID_VALUE', 'SERVER_ERROR', 'INVALID_SCOREBOARD');
v1.always_caps = new Array('API', 'URL', 'ID');
v1.error_codes = com.newgrounds.APIError.init_codes();
v1.error_names = com.newgrounds.APIError.init_names();
v2.code = 0;
ASSetPropFlags(com.newgrounds.APIError.prototype, null, 1);
}
#endinitclip
}
movieClip 100 __Packages.com.newgrounds.RemoteAuth {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.RemoteAuth) {
var v1 = function (id) {
this.auth_token = id;
System.security.allowDomain('*');
this.receiver = new LocalConnection();
this.receiver.allowDomain = function () {
return true;
};
this.receiver.onAuth = function (auth_result) {
trace('remote login is a success! ' + auth_result);
com.newgrounds.API.onRemoteAuthentication(auth_result);
};
this.receiver.connect('_' + this.auth_token);
};
com.newgrounds.RemoteAuth = v1;
var v2 = v1.prototype;
v2.__get__token = function () {
return this.auth_token;
};
v2.addProperty('token', v2.__get__token, function () {});
ASSetPropFlags(com.newgrounds.RemoteAuth.prototype, null, 1);
}
#endinitclip
}
movieClip 1964 __Packages.ButtonMenu {
#initclip
if (!_global.ButtonMenu) {
var v1 = function () {
super();
this.btn.onRollOver = mx.utils.Delegate.create(this, this.onMouseEnter);
this.btn.onRollOut = mx.utils.Delegate.create(this, this.onMouseLeave);
this.btn.onRelease = mx.utils.Delegate.create(this, this.onClick);
this.btn.onReleaseOutside = mx.utils.Delegate.create(this, this.onMouseLeave);
this.pushed = false;
this.hover = false;
this.onMouseLeave();
};
_global.ButtonMenu = v1;
_global.ButtonMenu extends MovieClip;
var v2 = v1.prototype;
v2.setCaption = function (text_) {
this.caption.text = text_;
};
v2.setOnClick = function (handler_) {
this.onClickExt = handler_;
};
v2.onMouseEnter = function () {
this.hover = true;
this.hilite();
};
v2.onMouseLeave = function () {
this.hover = false;
if (!this.pushed) {
this.dehilite();
}
};
v2.hilite = function () {
var v2 = new flash.filters.GlowFilter(5259863, 1, 5, 5, 5, 2, false, false);
this.caption.filters = [v2];
this.caption.textColor = 16777215;
this.eff.gotoAndPlay(1);
this.eff._visible = true;
};
v2.dehilite = function () {
var v2 = new flash.filters.GlowFilter(16777215, 1, 3, 3, 2, 2, false, false);
this.caption.filters = [v2];
this.caption.textColor = 6575979;
this.eff.stop();
this.eff._visible = false;
};
v2.onClick = function () {
(Core.Get()).playSound('button_click');
if (this.onClickExt != undefined) {
}
this.onClickExt();
};
v2.isPushed = function () {
return this.pushed;
};
v2.push = function () {
this.pushed = true;
if (!this.hover) {
this.hilite();
}
};
v2.unpush = function () {
this.pushed = false;
if (!this.hover) {
this.dehilite();
}
};
v2.enable = function () {
this.enabled = true;
this.btn.enabled = true;
this.btn.useHandCursor = true;
};
v2.disable = function () {
this.enabled = false;
this.btn.enabled = false;
this.btn.useHandCursor = false;
};
ASSetPropFlags(_global.ButtonMenu.prototype, null, 1);
}
#endinitclip
}
movieClip 1965 __Packages.ScreenMap {
#initclip
if (!_global.ScreenMap) {
var v1 = function () {
super();
Log.Msg('ScreenMap::ScreenMap()');
this.cfg = (Core.Get()).cfg;
this.world = (Core.Get()).world;
this.game = (Core.Get()).game;
this.base = new Pair(this.map._x, this.map._y);
this.scroll = this.game.scroll;
this.unit_pos = this.game.unit_pos;
this.unit_tile = this.game.unit_tile;
this.initDark();
this.fog_data = this.game.fog_data;
this.has_target = false;
this.target_pos = new Pair(this.unit_pos.x, this.unit_pos.y);
this.cur_vel = this.cfg.min_vel;
this.initAreas();
this.select = this.map.select;
this.select.stop();
this.map.target.stop();
this.battle_mark = this.map.battle_mark;
this.battle_mark.stop();
this.battle_mark._visible = false;
this.map.target_bad.stop();
this.map.target_bad._visible = false;
this.water = this.map.water;
this.water._visible = false;
this.mounts = this.map.mounts;
this.mounts._visible = false;
this.syncLimits();
this.checkPosition();
this.syncRegion();
if (this.unit_tile.x < 0) {
this.unit_tile.x = Math.floor(this.unit_pos.x / this.cfg.map_grid.x);
this.unit_tile.y = Math.floor(this.unit_pos.y / this.cfg.map_grid.y);
this.observeFog();
} else {
this.syncAreas();
}
if (this.game.in_area >= 0) {
this.enterArea(this.game.in_area);
}
this.checkAreas();
this.syncData();
this.onEnterFrame = this.onUpdate;
this.onMouseMove();
this.ui.onMouseDown = mx.utils.Delegate.create(this, this.onUIClick);
this.enemy_data = new Array();
this.stealth_mode = false;
this.hysterie_on = false;
this.guide_data = [];
Key.addListener(this);
};
_global.ScreenMap = v1;
_global.ScreenMap extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_game.setCaption((Core.Get()).locale.btn.game);
this.btn_game.setOnClick(mx.utils.Delegate.create(this, this.onGameClick));
this.btn_inventory.setCaption((Core.Get()).locale.btn.inventory);
this.btn_inventory.setOnClick(mx.utils.Delegate.create(this, this.onItemsClick));
this.btn_team.setCaption((Core.Get()).locale.btn.team);
this.btn_team.setOnClick(mx.utils.Delegate.create(this, this.onTeamClick));
this.btn_quests.setCaption((Core.Get()).locale.btn.quests);
this.btn_quests.setOnClick(mx.utils.Delegate.create(this, this.onTasksClick));
this.btn_map.setCaption((Core.Get()).locale.btn.map);
this.btn_map.setOnClick(mx.utils.Delegate.create(this, this.onMapClick));
this.btn_options.setCaption((Core.Get()).locale.btn.options);
this.btn_options.setOnClick(mx.utils.Delegate.create(this, this.onOptionsClick));
this.btn_game.push();
this.map.captions.filters = [Filters.Alpha(70)];
this.btn_atk.setCaption('Fight');
this.btn_inv.setCaption('Hide');
this.btn_atk.setOnClick(mx.utils.Delegate.create(this, this.onAtkClick));
this.btn_inv.setOnClick(mx.utils.Delegate.create(this, this.onInvClick));
if (!(Core.Get()).debug_mode) {
this.btn_atk._visible = false;
this.btn_inv._visible = false;
}
this.hysterie_on = (Core.Get()).game.isFlag('hysterie');
this.syncGuides();
this.updateGuides();
var v3 = 0;
while (v3 < this.game.enemy_data.length) {
var v2 = this.game.enemy_data[v3];
this.addEnemy(v2.x, v2.y, v2.band);
++v3;
}
};
v2.onAtkClick = function () {
if (this.game.cur_region >= 0 && this.game.in_area < 0) {
this.encounterBattle();
}
};
v2.onInvClick = function () {
if (this.btn_inv.isPushed()) {
this.btn_inv.unpush();
} else {
this.btn_inv.push();
}
this.stealth_mode = this.btn_inv.isPushed();
};
v2.syncData = function () {
this.map._x = this.base.x - this.scroll.x;
this.map._y = this.base.y - this.scroll.y;
this.map.unit._x = this.unit_pos.x;
this.map.unit._y = this.unit_pos.y;
this.map.target._x = this.target_pos.x;
this.map.target._y = this.target_pos.y;
this.map.target._visible = this.has_target;
this.syncDark();
this.checkRegion();
};
v2.onKeyDown = function () {
if (Key.isDown(ex.ord('I'))) {
this.onItemsClick();
} else {
if (Key.isDown(ex.ord('P')) || Key.isDown(ex.ord('T'))) {
this.onTeamClick();
} else {
if (Key.isDown(ex.ord('J')) || Key.isDown(ex.ord('Q'))) {
this.onTasksClick();
} else {
if (Key.isDown(ex.ord('M'))) {
this.onMapClick();
} else {
if (Key.isDown(ex.ord('O'))) {
this.onOptionsClick();
} else {
if (Key.isDown(27)) {
this.unpopup();
}
}
}
}
}
}
};
v2.onUpdate = function () {
if (!this.enabled) {
return undefined;
}
this.updateTimers();
if (this.has_target) {
var v5 = this.cur_vel;
if (this.hysterie_on) {
v5 *= 2;
}
var v4 = this.target_pos.x - this.unit_pos.x;
var v3 = this.target_pos.y - this.unit_pos.y;
var v8 = Math.sqrt(v4 * v4 + v3 * v3);
if (v5 >= v8) {
this.unit_pos.x = this.target_pos.x;
this.map.unit._x = this.unit_pos.x;
this.unit_pos.y = this.target_pos.y;
this.map.unit._y = this.unit_pos.y;
this.has_target = false;
this.map.target._visible = this.has_target;
} else {
v4 *= v5;
v4 /= v8;
v3 *= v5;
v3 /= v8;
var v7 = this.unit_pos.x + v4;
var v6 = this.unit_pos.y + v3;
var v2 = new Pair(v7, v6);
this.map.localToGlobal(v2);
if (this.water.hitTest(v2.x, v2.y, true) || this.mounts.hitTest(v2.x, v2.y, true) && !this.hysterie_on) {
this.map.target_bad._x = v7;
this.map.target_bad._y = v6;
this.map.target_bad._visible = true;
this.map.target_bad.gotoAndPlay(1);
this.has_target = false;
this.map.target._visible = this.has_target;
return undefined;
}
this.unit_pos.x = v7;
this.map.unit._x = this.unit_pos.x;
this.unit_pos.y = v6;
this.map.unit._y = this.unit_pos.y;
this.cur_vel *= this.cfg.accel;
if (this.cur_vel > this.cfg.max_vel) {
this.cur_vel = this.cfg.max_vel;
}
}
this.syncScroll();
var v10 = Math.floor(this.unit_pos.x / this.cfg.map_grid.x);
var v9 = Math.floor(this.unit_pos.y / this.cfg.map_grid.y);
if (this.unit_tile.x != v10 || this.unit_tile.y != v9) {
this.unit_tile.x = v10;
this.unit_tile.y = v9;
this.observeFog();
this.checkRegion();
}
this.checkAreas();
this.syncDark();
this.updateGuides();
this.checkEnemies();
updateAfterEvent();
}
};
v2.syncScroll = function () {
var v3 = this.unit_pos.x - this.scroll.x;
var v2 = this.unit_pos.y - this.scroll.y;
if (v3 < this.cfg.min_walk.x) {
var v5 = this.cfg.min_walk.x - v3;
this.scroll.x -= v5;
v3 += v5;
}
if (v3 > this.cfg.max_walk.x) {
v5 = this.cfg.max_walk.x - v3;
this.scroll.x -= v5;
v3 += v5;
}
if (v2 < this.cfg.min_walk.y) {
var v4 = this.cfg.min_walk.y - v2;
this.scroll.y -= v4;
v2 += v4;
}
if (v2 > this.cfg.max_walk.y) {
v4 = this.cfg.max_walk.y - v2;
this.scroll.y -= v4;
v2 += v4;
}
this.scroll.x = Math.round(this.scroll.x);
this.scroll.y = Math.round(this.scroll.y);
if (this.scroll.x < this.min_scroll.x) {
this.scroll.x = this.min_scroll.x;
}
if (this.scroll.x > this.max_scroll.x) {
this.scroll.x = this.max_scroll.x;
}
if (this.scroll.y < this.min_scroll.y) {
this.scroll.y = this.min_scroll.y;
}
if (this.scroll.y > this.max_scroll.y) {
this.scroll.y = this.max_scroll.y;
}
this.map._x = this.base.x - this.scroll.x;
this.map._y = this.base.y - this.scroll.y;
};
v2.onMouseMove = function () {
if (!this.enabled) {
return undefined;
}
this.cross_x._x = this._xmouse;
this.cross_y._y = this._ymouse;
var v2 = this._ymouse >= this.base.y;
this.cross_x._visible = v2;
this.cross_y._visible = v2;
updateAfterEvent();
};
v2.onUIClick = function () {
if (this.ui.hitTest(this._xmouse, this._ymouse, true)) {
return undefined;
}
if (this.btn_atk._visible && this.btn_atk.hitTest(this._xmouse, this._ymouse, true)) {
return undefined;
}
if (this.btn_inv._visible && this.btn_inv.hitTest(this._xmouse, this._ymouse, true)) {
return undefined;
}
this.onInMapClick();
};
v2.onInMapClick = function () {
if (!this.enabled) {
return undefined;
}
(Core.Get()).playSound('button_click');
var v5 = this.target_pos.clone();
this.target_pos.x = this._xmouse - this.base.x + this.scroll.x;
this.target_pos.y = this._ymouse - this.base.y + this.scroll.y;
if (this.target_pos.x < this.min_travel.x) {
this.target_pos.x = this.min_travel.x;
}
if (this.target_pos.y < this.min_travel.y) {
this.target_pos.y = this.min_travel.y;
}
if (this.target_pos.x > this.max_travel.x) {
this.target_pos.x = this.max_travel.x;
}
if (this.target_pos.y > this.max_travel.y) {
this.target_pos.y = this.max_travel.y;
}
if (this.game.in_area >= 0) {
var v7 = this.world.areas[this.game.in_area].name;
var v6 = this.map.areas[v7];
var v4 = this.target_pos.x - v6._x;
var v2 = this.target_pos.y - v6._y;
var v3 = this.world.areas[this.game.in_area].r;
if (v4 * v4 + v2 * v2 < v3 * v3) {
return undefined;
}
}
if (this.water.hitTest(this._xmouse, this._ymouse, true) || this.mounts.hitTest(this._xmouse, this._ymouse, true) && !this.hysterie_on) {
this.map.target_bad._x = this._xmouse - this.base.x + this.scroll.x;
this.map.target_bad._y = this._ymouse - this.base.y + this.scroll.y;
this.map.target_bad._visible = true;
this.map.target_bad.gotoAndPlay(1);
this.target_pos.x = v5.x;
this.target_pos.y = v5.y;
return undefined;
}
this.map.target._x = this.target_pos.x;
this.map.target._y = this.target_pos.y;
this.has_target = true;
this.map.target._visible = this.has_target;
this.map.target.gotoAndPlay(1);
this.cur_vel = this.cfg.min_vel;
updateAfterEvent();
};
v2.initDark = function () {
var v3 = 0;
this.dark_tiles = new Array(this.cfg.dark_size.x);
var v5 = 0;
while (v5 < this.cfg.dark_size.x) {
this.dark_tiles[v5] = new Array(this.cfg.dark_size.y);
var v4 = 0;
while (v4 < this.cfg.dark_size.y) {
var v2 = this.map.dark.attachMovie('dark_tile', '', v3);
v2._x = v5 * this.cfg.map_grid.x;
v2._y = v4 * this.cfg.map_grid.y;
this.dark_tiles[v5][v4] = v2;
++v3;
++v4;
}
++v5;
}
v3 = 0;
v5 = 1;
while (v5 <= this.cfg.dark_size.x) {
var v6 = this.map.grid.attachMovie('mapgrid_x', '', v3);
v6._x = v5 * this.cfg.map_grid.x - 1;
v6._y = 0;
++v3;
++v5;
}
v4 = 1;
while (v4 <= this.cfg.dark_size.y) {
v6 = this.map.grid.attachMovie('mapgrid_y', '', v3);
v6._x = 0;
v6._y = v4 * this.cfg.map_grid.y - 1;
++v3;
++v4;
}
};
v2.syncDark = function () {
var v6 = Math.floor(this.scroll.x / this.cfg.map_grid.x);
var v9 = this.scroll.x % this.cfg.map_grid.x;
var v5 = Math.floor(this.scroll.y / this.cfg.map_grid.y);
var v8 = this.scroll.y % this.cfg.map_grid.y;
this.map.dark._x = this.scroll.x - v9;
this.map.dark._y = this.scroll.y - v8;
this.map.grid._x = this.scroll.x - v9;
this.map.grid._y = this.scroll.y - v8;
var v7 = this.cfg.dark_size.x;
var v4 = this.cfg.dark_size.y;
if (v6 + this.cfg.dark_size.x > this.cfg.fog_size.x) {
--v7;
}
if (v5 + this.cfg.dark_size.y > this.cfg.fog_size.y) {
--v4;
}
var v3 = 0;
while (v3 < v7) {
var v2 = 0;
while (v2 < v4) {
this.dark_tiles[v3][v2]._alpha = this.fog_data[v6 + v3][v5 + v2];
++v2;
}
++v3;
}
};
v2.observeFog = function () {
var v9 = this.unit_tile.x;
var v8 = this.unit_tile.y;
this.fog_data[v9][v8] = 0;
var v6 = v9 - 1;
var v4 = v8 - 1;
var v7 = v9 + 1;
var v5 = v8 + 1;
if (v6 < 0) {
++v6;
}
if (v6 == this.cfg.fog_size.x) {
--v6;
}
if (v4 < 0) {
++v4;
}
if (v4 == this.cfg.fog_size.y) {
--v4;
}
var v3 = v6;
while (v3 <= v7) {
var v2 = v4;
while (v2 <= v5) {
if (this.fog_data[v3][v2] > 50) {
this.fog_data[v3][v2] = 50;
}
++v2;
}
++v3;
}
};
v2.syncAreas = function () {
var v3 = ['milbase', 'alpha', 'sarreno', 'highland'];
var v2 = 0;
while (v2 < v3.length) {
this.map.areas[v3[v2]]._visible = false;
++v2;
}
var v4 = this.game.areas_shown.length;
v2 = 0;
while (v2 < v4) {
if (this.game.areas_shown[v2]) {
this.showArea(v2);
}
++v2;
}
};
v2.showArea = function (id) {
var v3 = this.world.areas[id].name;
var v4 = this.map.areas[v3];
if (v4 != undefined) {
v4._visible = true;
var v5 = this.map.captions.attachMovie('mapmark', '', this.map.captions.getNextHighestDepth());
v5._x = v4._x;
v5._y = v4._y;
v5.caption.text = this.world.areas[id].caption;
var v2 = 0;
while (v2 < this.game.guides.length) {
if (this.game.guides[v2] == v3) {
this.game.guides.splice(v2, 1);
this.syncGuides();
break;
}
++v2;
}
} else {
Log.Err('ScreenMap::showArea() : area not found');
}
};
v2.checkAreas = function () {
var v8 = this.world.areas.length;
var v2 = 0;
while (v2 < v8) {
var v7 = this.world.areas[v2].name;
var v6 = this.map.areas[v7];
var v5 = this.unit_pos.x - v6._x;
var v3 = this.unit_pos.y - v6._y;
var v4 = this.world.areas[v2].r;
if (v5 * v5 + v3 * v3 < v4 * v4) {
if (!this.game.areas_shown[v2]) {
if (v2 == 32) {
(Core.Get()).unlockMedal('Pilgrimage');
}
this.showArea(v2);
this.game.areas_shown[v2] = true;
this.game.areas_marked[v2] = true;
}
if (this.game.in_area < 0) {
this.enterArea(v2);
this.game.in_area = v2;
}
return undefined;
}
++v2;
}
if (this.game.in_area >= 0) {
this.leaveArea(this.game.in_area);
this.game.in_area = -1;
}
};
v2.initAreas = function () {
var v5 = this.world.areas.length;
var v2 = 0;
while (v2 < v5) {
var v4 = this.world.areas[v2].name;
var v3 = this.map.areas[v4];
v3.btn.enabled = false;
v3.btn.onRelease = mx.utils.Delegate.create(this, this.onAreaClick);
++v2;
}
};
v2.leaveArea = function (id) {
var v2 = this.world.areas[id].name;
var v3 = this.map.areas[v2];
v3.btn.enabled = false;
this.select.stop();
this.select._visible = false;
};
v2.enterArea = function (id) {
var v3 = this.world.areas[id].name;
var v2 = this.map.areas[v3];
v2.btn.enabled = true;
this.select._x = v2._x;
this.select._y = v2._y;
this.select._visible = true;
this.select.gotoAndPlay(1);
};
v2.onAreaClick = function () {
if (!this.enabled) {
return undefined;
}
(Core.Get()).goArea();
};
v2.checkPosition = function () {
if (this.game.in_area >= 0) {
var v6 = this.world.areas[this.game.in_area].name;
var v2 = this.map.areas[v6];
var v5 = this.unit_pos.x - v2._x;
var v3 = this.unit_pos.y - v2._y;
var v4 = this.world.areas[this.game.in_area].r;
if (v5 * v5 + v3 * v3 >= v4 * v4) {
this.unit_pos.x = v2._x + ex.randomInt(20) - 10;
this.unit_pos.y = v2._y + ex.randomInt(20) - 10;
this.unit_tile.x = Math.floor(this.unit_pos.x / this.cfg.map_grid.x);
this.unit_tile.y = Math.floor(this.unit_pos.y / this.cfg.map_grid.y);
this.centerView();
this.observeFog();
}
}
};
v2.centerView = function () {
this.scroll.x = this.unit_pos.x - (Core.Get()).cfg.scr_size.x / 2;
this.scroll.y = this.unit_pos.y - (Core.Get()).cfg.scr_size.y / 2;
this.syncScroll();
};
v2.markBattle = function () {
this.battle_mark._x = this.unit_pos.x;
this.battle_mark._y = this.unit_pos.y;
this.battle_mark._visible = true;
this.battle_mark.gotoAndPlay(1);
(Core.Get()).playSound('siren');
};
v2.beginBattle = function () {
this.cancelTarget();
this.markBattle();
(Core.Get()).goBattle(60);
};
v2.addEnemy = function (x_, y_, band_) {
var v2 = this.map.enemies.attachMovie('map_enemy', '', this.map.enemies.getNextHighestDepth());
v2._x = x_;
v2._y = y_;
this.enemy_data.push({'clip': v2, 'band': band_});
};
v2.randomLevel = function () {
var v2 = this.game.getTeamLevel();
if (v2 >= 5) {
v2 += ex.randomIntIn(-2, 2);
}
return v2;
};
v2.checkEvents = function () {
if ((Core.Get()).game.isFlag('enc_dekkis1') && !(Core.Get()).game.isFlag('enc_dekkis2')) {
this.game.exchange = {'npc': 'dekkis', 'talk': 262};
this.disable();
(Core.Get()).popupTalk();
return undefined;
}
if ((Core.Get()).game.isFlag('enc_dekkis2') && !(Core.Get()).game.isFlag('enc_dekkis3')) {
this.game.exchange = {'npc': 'feather', 'talk': 263};
this.disable();
(Core.Get()).popupTalk();
return undefined;
}
};
v2.checkEnemies = function () {
var v6 = this.enemy_data.length;
var v2 = 0;
while (v2 < v6) {
var v5 = this.enemy_data[v2].clip;
var v4 = v5._x - this.unit_pos.x;
var v3 = v5._y - this.unit_pos.y;
if (v4 * v4 + v3 * v3 <= 100) {
this.game.exchange = {'band': this.enemy_data[v2].band, 'level': this.randomLevel()};
this.enemy_data.splice(v2, 1);
this.game.enemy_data.splice(v2, 1);
this.beginBattle();
return undefined;
}
++v2;
}
if (this.game.cur_region >= 0 && this.game.in_area < 0) {
this.game.enc_delay -= this.cur_vel;
if (this.game.enc_delay < 0) {
this.game.resetEncounterDelay();
if ((Core.Get()).game.isFlag('btl_int_meta')) {
this.game.exchange = {'band': 'int_meta', 'level': 30};
this.game.resetFlag('btl_int_meta');
this.beginBattle();
return undefined;
}
if ((Core.Get()).game.isFlag('btl_celester')) {
this.game.exchange = {'band': 'celester', 'level': (Core.Get()).game.getTeamLevel()};
this.game.resetFlag('btl_celester');
this.beginBattle();
return undefined;
}
if (!this.game.getFlag('enc_karry')) {
var v7 = true;
v7 = v7 && (this.game.cur_region == 7 || this.game.cur_region == 12 || this.game.cur_region == 13);
v7 = v7 && this.game.isFlag('q_alienfix1');
v7 = v7 && this.game.isFlag('q_alienfix2');
v7 = v7 && this.game.isFlag('q_alienfix3');
v7 = v7 && this.game.isFlag('q_integra_talk_clod');
v7 = v7 && this.game.isFlag('q_integra_talk_jake');
v7 = v7 && this.game.isFlag('q_integra_talk_alexa');
v7 = v7 && this.game.isFlag('q_integra_talk_lindwid');
v7 = v7 && this.game.getTeamLevel() > 20;
v7 = v7 && ex.testChance(0.1);
if (v7) {
this.game.exchange = {'npc': 'karry', 'talk': 257, 'no_bye': true};
this.disable();
(Core.Get()).popupTalk();
return undefined;
}
}
if (!this.game.getFlag('enc_feather')) {
v7 = true;
v7 = v7 && (this.game.cur_region == 17 || this.game.cur_region == 18);
v7 = v7 && this.game.getTeamLevel() > 15;
v7 = v7 && ex.testChance(0.1);
if (v7) {
this.game.exchange = {'npc': 'feather', 'talk': 260};
this.disable();
(Core.Get()).popupTalk();
return undefined;
}
}
if (this.game.getFlag('enc_feather') && !this.game.getFlag('enc_dekkis1')) {
v7 = true;
v7 = v7 && this.game.cur_region != 17 && this.game.cur_region != 18;
v7 = v7 && ex.testChance(0.2);
if (v7) {
this.game.exchange = {'npc': 'dekkis', 'talk': 261};
this.disable();
(Core.Get()).popupTalk();
return undefined;
}
}
if (this.stealth_mode) {
return undefined;
}
this.encounterBattle();
}
}
};
v2.encounterBattle = function () {
var v3 = this.world.regions[this.game.cur_region].enemy;
if (v3.length > 0) {
var v4 = [];
var v2 = 0;
while (v2 < v3.length) {
var v6 = v3[v2];
if (v6 instanceof Object) {
} else {
v6 = v6.enemy;
if (v6.condition == undefined || v6.condition()) {
} else {}
v4.push(v6);
}
++v2;
}
v6 = ex.selectRandom(v4);
if (undefined != (Core.Get()).world.bands[v6]) {
this.game.exchange = {'band': v6, 'level': this.randomLevel()};
this.beginBattle();
}
}
};
v2.cancelTarget = function () {
this.has_target = false;
this.map.target._visible = this.has_target;
};
v2.unpushAll = function () {
this.btn_game.unpush();
this.btn_inventory.unpush();
this.btn_team.unpush();
this.btn_quests.unpush();
this.btn_map.unpush();
this.btn_options.unpush();
};
v2.onItemsClick = function () {
if (!this.btn_inventory.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_inventory.isPushed()) {
this.unpushAll();
this.btn_inventory.push();
(Core.Get()).popupItems();
} else {
this.btn_inventory.unpush();
this.btn_game.push();
(Core.Get()).unpopup();
}
};
v2.onTeamClick = function () {
if (!this.btn_team.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_team.isPushed()) {
this.unpushAll();
this.btn_team.push();
(Core.Get()).popupTeam();
} else {
this.btn_team.unpush();
this.btn_game.push();
(Core.Get()).unpopup();
}
};
v2.onTasksClick = function () {
if (!this.btn_quests.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_quests.isPushed()) {
this.unpushAll();
this.btn_quests.push();
(Core.Get()).popupTasks();
} else {
this.btn_quests.unpush();
this.btn_game.push();
(Core.Get()).unpopup();
}
};
v2.onGameClick = function () {
if (!this.btn_game.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_game.isPushed()) {
this.unpushAll();
this.btn_game.push();
if (!this.enabled) {
(Core.Get()).unpopup();
}
}
};
v2.onMapClick = function () {
if (!this.btn_map.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_map.isPushed()) {
this.unpushAll();
this.btn_map.push();
(Core.Get()).popupMinimap();
} else {
this.btn_map.unpush();
this.btn_game.push();
(Core.Get()).unpopup();
}
};
v2.onOptionsClick = function () {
if (!this.btn_options.enabled) {
return undefined;
}
(Core.Get()).playSound('tab_switch');
if (!this.btn_options.isPushed()) {
this.unpushAll();
this.btn_options.push();
(Core.Get()).popupOptions();
} else {
this.btn_options.unpush();
this.btn_game.push();
(Core.Get()).unpopup();
}
};
v2.unpopup = function () {
if (this.btn_inventory.isPushed()) {
this.onItemsClick();
}
if (this.btn_team.isPushed()) {
this.onTeamClick();
}
if (this.btn_quests.isPushed()) {
this.onTasksClick();
}
if (this.btn_map.isPushed()) {
this.onMapClick();
}
if (this.btn_options.isPushed()) {
this.onOptionsClick();
}
};
v2.fade = function () {
this.map.filters = [Filters.Desaturator()];
this.overlay.filters = [Filters.Desaturator()];
};
v2.unfade = function () {
this.map.filters = [];
this.overlay.filters = [];
};
v2.disable = function () {
this.btn_game.disable();
this.btn_inventory.disable();
this.btn_team.disable();
this.btn_quests.disable();
this.btn_map.disable();
this.btn_options.disable();
this.lock();
};
v2.enable = function () {
this.btn_game.enable();
this.btn_inventory.enable();
this.btn_team.enable();
this.btn_quests.enable();
this.btn_map.enable();
this.btn_options.enable();
this.game.resetAreaFlags();
this.unlock();
if (!this.busy) {
this.checkEvents();
}
};
v2.lock = function () {
this.enabled = false;
this.cancelTarget();
if (this.game.in_area != -1) {
this.leaveArea(this.game.in_area);
}
this.guides._visible = false;
this.cross_x._visible = false;
this.cross_y._visible = false;
this.map.unit.stop();
var v2 = 0;
while (v2 < this.enemy_data.length) {
this.enemy_data[v2].clip.stop();
++v2;
}
this.btn_atk.disable();
this.btn_inv.disable();
this.ui.btn_enkord.enabled = false;
};
v2.unlock = function () {
this.enabled = true;
if (this.game.in_area != -1) {
this.enterArea(this.game.in_area);
}
this.guides._visible = true;
this.onMouseMove();
this.map.unit.play();
var v2 = 0;
while (v2 < this.enemy_data.length) {
this.enemy_data[v2].clip.play();
++v2;
}
this.btn_atk.enable();
this.btn_inv.enable();
this.ui.btn_enkord.enabled = true;
};
v2.checkRegion = function () {
var v2 = this.world.getRegion(this.unit_tile);
if (v2 != this.game.cur_region) {
this.game.cur_region = v2;
this.syncRegion();
}
};
v2.syncRegion = function () {
if (this.game.cur_region < 0) {
this.overlay.region_caption._visible = false;
this.overlay.region._visible = false;
} else {
this.overlay.region_caption._visible = true;
this.overlay.region._visible = true;
this.overlay.region.text = this.world.regions[this.game.cur_region].name;
}
};
v2.syncLimits = function () {
this.min_travel = new Pair(this.game.map_tl.x + 20, this.game.map_tl.y + 20);
this.max_travel = new Pair(this.game.map_br.x - 20, this.game.map_br.y - 20);
this.min_scroll = new Pair(this.game.map_tl.x, this.game.map_tl.y);
var v2 = (Core.Get()).cfg.scr_size;
this.max_scroll = new Pair(this.game.map_br.x - v2.x, this.game.map_br.y - v2.y + 35);
};
v2.updateTimers = function () {
for (var v2 in this.game.timers) {
++this.game.timers[v2];
}
};
v2.syncGuides = function () {
var v2 = 0;
while (v2 < this.guide_data.length) {
var v4 = this.guide_data[v2].clip;
v4.removeMovieClip();
++v2;
}
this.guide_data = [];
v2 = 0;
while (v2 < this.game.guides.length) {
v4 = this.guides.attachMovie('map_guide', '', this.guides.getNextHighestDepth());
var v3 = this.map.areas[this.game.guides[v2]];
this.guide_data.push({'pos': new Pair(v3._x, v3._y), 'clip': v4});
++v2;
}
};
v2.updateGuides = function () {
var v3 = new Pair(240, 162.5);
var v5 = Math.atan2(v3.y, v3.x);
var v10 = new Pair();
v10.x = this.scroll.x + v3.x;
v10.y = this.scroll.y + v3.y;
var v8 = 0;
while (v8 < this.guide_data.length) {
var v2 = this.guide_data[v8].clip;
var v9 = this.guide_data[v8].pos;
var v7 = v10.x - v9.x;
var v6 = v10.y - v9.y;
if (Math.abs(v7) < v3.x && Math.abs(v6) < v3.y) {
v2._visible = false;
} else {
v2._visible = true;
var v4 = Math.atan2(v6, v7);
v2._rotation = v4 * 180 / Math.PI;
if (-v5 <= v4 && v4 < v5) {
v2._x = 0;
v2._y = v3.y - v3.x * v6 / v7;
} else {
if (v5 <= v4 && v4 < Math.PI - v5) {
v2._y = 0;
v2._x = v3.x - v3.y * v7 / v6;
} else {
if (Math.PI - v5 <= v4 || v4 < -Math.PI + v5) {
v2._x = 2 * v3.x;
v2._y = v3.y + v3.x * v6 / v7;
} else {
if (-Math.PI + v5 <= v4 && v4 < v5) {
v2._y = 2 * v3.y;
v2._x = v3.x + v3.y * v7 / v6;
}
}
}
}
}
++v8;
}
};
ASSetPropFlags(_global.ScreenMap.prototype, null, 1);
}
#endinitclip
}
movieClip 1966 __Packages.ex {
#initclip
if (!_global.ex) {
var v1 = function () {};
_global.ex = v1;
var v2 = v1.prototype;
v1.randomInt = function (sup_) {
return Math.floor(Math.random() * sup_);
};
v1.randomIntIn = function (inf_, sup_) {
return inf_ + ex.randomInt(sup_ - inf_ + 1);
};
v1.randomFloatIn = function (inf_, sup_) {
return inf_ + Math.random() * (sup_ - inf_);
};
v1.selectRandom = function (arr_) {
if (arr_.length == 0) {
return undefined;
}
return arr_[ex.randomInt(arr_.length)];
};
v1.formatNumberCommas = function (src_) {
var v2 = String(src_);
if (v2.length < 4) {
return v2;
}
var v1 = v2.length % 3;
if (0 == v1) {
v1 = 3;
}
var v3 = v2.slice(0, v1);
while (v1 < v2.length) {
v3 += ',';
v3 += v2.slice(v1, v1 + 3);
v1 += 3;
}
return v3;
};
v1.testChance = function (chance_) {
return Math.random() < chance_;
};
v1.ord = function (s_) {
return s_.charCodeAt(0);
};
ASSetPropFlags(_global.ex.prototype, null, 1);
}
#endinitclip
}
movieClip 1967 __Packages.ScreenHelp {
#initclip
if (!_global.ScreenHelp) {
var v1 = function () {
super();
Log.Msg('ScreenHelp::ScreenHelp()');
this.btn_back = this.btn_back;
this.onEnterFrame = this.onUpdate;
this.drops = new Array();
var v4 = 0;
while (v4 < 400) {
var v3 = this.attachMovie('drop', '', this.getNextHighestDepth());
var v6 = random(550);
var v5 = random(440);
v3._x = v6;
v3._y = v5;
this.drops.push(v3);
++v4;
}
};
_global.ScreenHelp = v1;
_global.ScreenHelp extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_back.setCaption('BACK');
this.btn_back.setOnClick(this.onBtnBackClick);
};
v2.onBtnBackClick = function () {
(Core.Get()).goIntro();
};
v2.onUpdate = function () {
var v4 = this.drops.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.drops[v2]._y;
v3 += 4 + random(6);
v3 %= 440;
this.drops[v2]._y = v3;
++v2;
}
};
v2.enable = function () {
this.enabled = true;
this.btn_back.enable();
};
v2.disable = function () {
this.enabled = false;
this.btn_back.disable();
};
v1.cfg_time_before_spawn = 1;
ASSetPropFlags(_global.ScreenHelp.prototype, null, 1);
}
#endinitclip
}
movieClip 1968 __Packages.ScreenMain {
#initclip
if (!_global.ScreenMain) {
var v1 = function () {
super();
Log.Msg('ScreenMain::ScreenMain()');
};
_global.ScreenMain = v1;
_global.ScreenMain extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_intro.setCaption((Core.Get()).locale.btn.intro);
this.btn_intro.setOnClick(this.onBtnIntroClick);
this.btn_load.setCaption((Core.Get()).locale.btn.load);
this.btn_load.setOnClick(this.onBtnLoadClick);
this.btn_music.setCaption((Core.Get()).locale.btn.music);
if ((Core.Get()).isMusicOn()) {
this.btn_music.push();
}
this.btn_music.setOnClick(mx.utils.Delegate.create(this, this.onBtnMusicClick));
this.btn_sound.setCaption((Core.Get()).locale.btn.sound);
if ((Core.Get()).isSoundOn()) {
this.btn_sound.push();
}
this.btn_sound.setOnClick(mx.utils.Delegate.create(this, this.onBtnSoundClick));
this.btn_en.setCaption('EN');
this.btn_en.setOnClick(mx.utils.Delegate.create(this, this.onBtnEnClick));
this.btn_ru.setCaption('RU');
this.btn_ru.setOnClick(mx.utils.Delegate.create(this, this.onBtnRuClick));
if ('en' == (Core.Get()).locale.name) {
this.btn_en.push();
} else {
if ('ru' == (Core.Get()).locale.name) {
this.btn_ru.push();
}
}
};
v2.onBtnIntroClick = function () {
(Core.Get()).goIntro();
};
v2.onBtnLoadClick = function () {
(Core.Get()).popupLoad();
};
v2.onBtnEnClick = function () {
if (!this.btn_en.isPushed()) {
this.btn_ru.unpush();
this.btn_en.push();
(Core.Get()).localEn();
this.localize();
}
};
v2.onBtnRuClick = function () {
if (!this.btn_ru.isPushed()) {
this.btn_en.unpush();
this.btn_ru.push();
(Core.Get()).localRu();
this.localize();
}
};
v2.enable = function () {
this.enabled = true;
this.btn_intro.enable();
if ((Core.Get()).canLoad()) {
this.btn_load.enable();
} else {
this.btn_load.disable();
}
this.btn_en.enable();
this.btn_ru.enable();
this.btn_music.enable();
this.btn_sound.enable();
this.btn_logo.enabled = true;
this.btn_embed.enabled = true;
(Core.Get()).switchMusic(5);
};
v2.disable = function () {
this.enabled = false;
this.btn_intro.disable();
this.btn_load.disable();
this.btn_en.disable();
this.btn_ru.disable();
this.btn_music.disable();
this.btn_sound.disable();
this.btn_logo.enabled = false;
this.btn_embed.enabled = false;
};
v2.localize = function () {
this.btn_intro.setCaption((Core.Get()).locale.btn.intro);
this.btn_load.setCaption((Core.Get()).locale.btn.load);
this.btn_music.setCaption((Core.Get()).locale.btn.music);
this.btn_sound.setCaption((Core.Get()).locale.btn.sound);
};
v2.onBtnMusicClick = function () {
if (this.btn_music.isPushed()) {
this.btn_music.unpush();
} else {
this.btn_music.push();
}
(Core.Get()).setMusic(this.btn_music.isPushed());
};
v2.onBtnSoundClick = function () {
if (this.btn_sound.isPushed()) {
this.btn_sound.unpush();
} else {
this.btn_sound.push();
}
(Core.Get()).setSound(this.btn_sound.isPushed());
};
ASSetPropFlags(_global.ScreenMain.prototype, null, 1);
}
#endinitclip
}
movieClip 1969 __Packages.ScreenIntro {
#initclip
if (!_global.ScreenIntro) {
var v1 = function () {
super();
Log.Msg('ScreenIntro::ScreenIntro()');
this.message.text = '';
};
_global.ScreenIntro = v1;
_global.ScreenIntro extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_back.setCaption((Core.Get()).locale.btn.back);
this.btn_back.setOnClick(this.onBtnBackClick);
this.btn_play.setCaption((Core.Get()).locale.btn.play);
this.btn_play.setOnClick(this.onBtnPlayClick);
this.msg_text = (Core.Get()).locale.text.intro;
this.letter = 0;
};
v2.onEnterFrame = function () {
if (this.enabled && this.letter < this.msg_text.length) {
this.letter += 1;
this.message.text = this.msg_text.slice(0, Math.floor(this.letter));
}
};
v2.onBtnBackClick = function () {
(Core.Get()).goMain();
};
v2.onBtnPlayClick = function () {
(Core.Get()).startGame();
if ((Core.Get()).game.in_area > -1) {
(Core.Get()).goArea();
} else {
(Core.Get()).goMap();
}
};
v2.onBtnHelpClick = function () {
(Core.Get()).goHelp();
};
v2.enable = function () {
this.enabled = true;
this.btn_back.enable();
this.btn_play.enable();
};
v2.disable = function () {
this.enabled = false;
this.btn_back.disable();
this.btn_play.disable();
};
ASSetPropFlags(_global.ScreenIntro.prototype, null, 1);
}
#endinitclip
}
movieClip 1970 __Packages.ButtonTeamSlot {
#initclip
if (!_global.ButtonTeamSlot) {
var v1 = function () {
super();
this.stop();
this.hilited = false;
this.hover = false;
this.syncState();
};
_global.ButtonTeamSlot = v1;
_global.ButtonTeamSlot extends MovieClip;
var v2 = v1.prototype;
v2.disable = function () {
this.enabled = false;
this.useHandCursor = false;
this.syncState();
};
v2.enable = function () {
this.enabled = true;
this.useHandCursor = true;
this.syncState();
};
v2.enter = function () {
this.hover = true;
this.syncState();
};
v2.leave = function () {
this.hover = false;
this.syncState();
};
v2.hilite = function () {
this.hilited = true;
this.syncState();
};
v2.dehilite = function () {
this.hilited = false;
this.syncState();
};
v2.syncState = function () {
this.filters = [];
if (this.hilited) {
if (this.hover) {
this.hiliter._alpha = 40;
} else {
this.hiliter._alpha = 20;
}
} else {
if (this.enabled) {
if (this.hover) {
this.hiliter._alpha = 40;
} else {
this.hiliter._alpha = 0;
}
} else {
this.hiliter._alpha = 0;
this.filters = [Filters.Desaturator()];
}
}
};
ASSetPropFlags(_global.ButtonTeamSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1971 __Packages.NPCSlot {
#initclip
if (!_global.NPCSlot) {
var v1 = function () {
super();
this.npc.inner.stop();
this.id = -1;
this._visible = false;
this.btn = this.btn;
};
_global.NPCSlot = v1;
_global.NPCSlot extends MovieClip;
var v2 = v1.prototype;
v2.init = function (id_, cb_) {
this.id = id_;
this.btn.onRelease = function () {
cb_(id_);
};
};
v2.setNPC = function (npc_) {
var v2 = (Core.Get()).world;
this.npc_id = npc_;
this._visible = true;
this.npc.inner.gotoAndStop(1 + v2.npc[npc_].id);
this.name.text = v2.npc[npc_].name;
this.descri.text = (undefined != v2.npc[npc_].descri) ? v2.npc[npc_].descri : '';
};
v2.resetNPC = function () {
this.npc_id = '';
this._visible = false;
};
v2.getNPC = function () {
return this.npc_id;
};
v2.isHit = function (x_, y_) {
return this.btn.hitTest(x_, y_);
};
v2.enter = function () {
this.btn.enter();
};
v2.leave = function () {
this.btn.leave();
};
v2.hilite = function () {
this.btn.hilite();
};
v2.dehilite = function () {
this.btn.dehilite();
};
v2.enable = function () {
this.btn.enable();
};
v2.disable = function () {
this.btn.disable();
};
ASSetPropFlags(_global.NPCSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1972 __Packages.ScreenArea {
#initclip
if (!_global.ScreenArea) {
var v1 = function () {
super();
Log.Msg('ScreenArea::ScreenArea()');
this.world = (Core.Get()).world;
this.game = (Core.Get()).game;
this.area_id = this.game.in_area;
if (this.world.areas[this.area_id].caption2 != undefined) {
this.caption.text = this.world.areas[this.area_id].caption2;
} else {
this.caption.text = this.world.areas[this.area_id].caption;
}
this.inner.back.gotoAndStop(this.world.areas[this.area_id].img);
this.npc_slots = new Array();
this.npc_slots.push(this.inner.npc1);
this.npc_slots.push(this.inner.npc2);
this.npc_slots.push(this.inner.npc3);
this.npc_slots.push(this.inner.npc4);
this.btn_back = this.inner.btn_back;
this.hover_slot = -1;
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
this.gibson._visible = this.area_id == this.world.area_to_id.gibson;
this.tooltip._visible = false;
};
_global.ScreenArea = v1;
_global.ScreenArea extends Screen;
var v2 = v1.prototype;
v2.init = function () {
var v5 = mx.utils.Delegate.create(this, this.onNPCClick);
var v4 = this.npc_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.npc_slots[v2];
v3.init(v2, v5);
++v2;
}
this.syncNPCList();
this.btn_back.setCaption((Core.Get()).locale.btn.leave);
this.btn_back.setOnClick(mx.utils.Delegate.create(this, this.onBtnBackClick));
};
v2.syncNPCList = function () {
var v4 = 0;
var v6 = this.world.area_data[this.area_id];
if (v6 != undefined && v6.npc != undefined) {
var v7 = this.world.area_data[this.area_id].npc.length;
var v3 = 0;
while (v3 < v7) {
var v5 = this.npc_slots[v4];
var v2 = v6.npc[v3];
if (v2 instanceof Object) {
if (undefined == v2.condition || v2.condition()) {
v5.setNPC(v2.npc);
++v4;
}
} else {
v5.setNPC(v2);
++v4;
}
++v3;
}
}
var v8 = this.npc_slots.length;
v3 = v4;
while (v3 < v8) {
v5 = this.npc_slots[v3];
v5.resetNPC();
++v3;
}
};
v2.onBtnBackClick = function () {
(Core.Get()).saveGame(0);
if (this.area_id == this.world.area_to_id.jade) {
this.game.in_area = this.world.area_to_id.port;
}
(Core.Get()).goMap();
};
v2.onNPCClick = function (id_) {
(Core.Get()).playSound('button_click');
this.game.exchange = {'npc': this.npc_slots[id_].getNPC()};
(Core.Get()).popupTalk();
};
v2.disable = function () {
this.enabled = false;
var v4 = this.npc_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.npc_slots[v2];
v3.disable();
++v2;
}
this.btn_back.disable();
this.gibson.enabled = false;
};
v2.enable = function () {
this.enabled = true;
var v4 = this.npc_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.npc_slots[v2];
v3.enable();
++v2;
}
this.btn_back.enable();
this.syncNPCList();
if (!this.busy) {
this.checkLevelUp();
if (this.enabled) {
this.checkAreaTalk();
}
}
this.onMouse();
if (this.enabled) {
this.gibson.enabled = true;
}
};
v2.checkLevelUp = function () {
var v3 = 0;
while (v3 < 4) {
var v4 = this.game.team[v3];
if (v4 >= 0) {
var v2 = this.game.stats[v4];
if (v2.level_up) {
v2.level_up = false;
}
if (v2.perk_unlocked) {
v2.perk_unlocked = false;
}
}
++v3;
}
if ((Core.Get()).game.stats[0].ups) {
(Core.Get()).game.exchange = {'no_switch': true};
(Core.Get()).popupSkillsUp();
}
};
v2.checkAreaTalk = function () {
var v7 = this.world.area_data[this.area_id];
if (v7.talk != undefined) {
var v8 = v7.talk.length;
var v2 = 0;
while (v2 < v8) {
var v3 = v7.talk[v2];
var v4 = this.world.talk[v3.talk].condition;
if (undefined == v4 || v4()) {
this.game.exchange = {'npc': v3.npc, 'talk': v3.talk};
(Core.Get()).popupTalk(30);
return undefined;
}
++v2;
}
}
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
var v4 = -1;
var v5 = this.npc_slots.length;
var v2 = 0;
while (v2 < v5) {
var v3 = this.npc_slots[v2];
if (v3.isHit(this._xmouse, this._ymouse)) {
v4 = v2;
break;
}
++v2;
}
if (this.hover_slot == v4) {
return undefined;
}
if (this.hover_slot != -1) {
this.npc_slots[this.hover_slot].leave();
}
this.hover_slot = v4;
this.npc_slots[this.hover_slot].enter();
};
v2.fade = function () {
this.inner.filters = [Filters.Desaturator()];
};
v2.unfade = function () {
this.inner.filters = [];
};
ASSetPropFlags(_global.ScreenArea.prototype, null, 1);
}
#endinitclip
}
movieClip 1973 __Packages.TaskSlot {
#initclip
if (!_global.TaskSlot) {
var v1 = function () {
super();
this.back.hiliter._visible = false;
this.back.stop();
this.selector.stop();
this.selector._visible = false;
this.onRollOver = mx.utils.Delegate.create(this, function () {
this.hilite();
});
this.onDragOver = this.onRollOver;
this.onRollOut = this.dehilite;
this.onDragOut = this.onRollOut;
this.selected = false;
this.hilited = false;
};
_global.TaskSlot = v1;
_global.TaskSlot extends MovieClip;
var v2 = v1.prototype;
v2.init = function (id_, cb_) {
this.onRelease = function () {
if (this.enabled) {
(Core.Get()).playSound('button_click');
}
cb_(id_);
};
};
v2.setCaption = function (text_) {
this.caption.text = text_;
};
v2.setState = function (state_) {
this.back.gotoAndStop(state_);
};
v2.hilite = function () {
this.hilited = true;
this.back.hiliter._visible = true;
};
v2.dehilite = function () {
this.hilited = false;
this.back.hiliter._visible = false;
};
v2.select = function () {
this.selector.gotoAndPlay(1);
this.selector._visible = true;
this.selected = true;
};
v2.deselect = function () {
this.selector.stop();
this.selector._visible = false;
this.selected = false;
};
v2.disable = function () {
if (!this.enabled) {
return undefined;
}
if (this.selected) {
this.back.hiliter._visible = true;
} else {
this.filters = [Filters.Blur()];
}
this.enabled = false;
};
v2.enable = function () {
if (this.enabled) {
return undefined;
}
if (this.selected) {
this.back.hiliter._visible = false;
} else {
this.filters = [];
}
this.enabled = true;
};
ASSetPropFlags(_global.TaskSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1974 __Packages.BattleSlot {
#initclip
if (!_global.BattleSlot) {
var v1 = function () {
super();
this.enemy = false;
this.max_hp = 1;
this.cur_hp = 0;
this.max_action = 1;
this.cur_action = 0;
this.max_energy = 1;
this.cur_energy = 0;
this.action.stop();
this.energy.stop();
this.shadow._visible = false;
this.attacking = false;
this.dying = false;
this.running = false;
this.running_back = false;
this.animation = 0;
this.hideStats();
this.hideControls();
this.weapon = 0;
this.armor = -1;
this.device = -1;
this.data = null;
this.id = -1;
this.char_id = -1;
this.defending = false;
this.base_pos = new Pair(this._x, this._y);
this.run_to = null;
this.exp = 0;
this.band = '';
this.level = 1;
this.hilited = false;
this.buff = {};
this.debuff = {};
this.timed_buff = {};
this.timed_debuff = {};
this.device_mp = 0;
};
_global.BattleSlot = v1;
_global.BattleSlot extends MovieClip;
var v2 = v1.prototype;
v2.initPlayer = function (id_, onAtk_, onDef_, onDev_, onInv_, onCancel_) {
this.id = id_;
this.controls.attack.onRelease = function () {
onAtk_(id_);
};
this.controls.defend.onRelease = function () {
onDef_(id_);
};
this.controls.device.onRelease = function () {
onDev_(id_);
};
this.controls.useitem.onRelease = function () {
onInv_(id_);
};
this.controls.cancel.onRelease = function () {
onCancel_(id_);
};
this.onKeyDown = mx.utils.Delegate.create(this, this.onKeyDown);
Key.addListener(this);
};
v2.onKeyDown = function () {
if (this.isEnemy() || !this.hilited) {
return undefined;
}
if (Key.isDown(ex.ord('A')) && this.controls.attack._visible && this.controls.attack.enabled) {
this.controls.attack.onRelease();
}
if (Key.isDown(32) && this.controls.defend._visible && this.controls.defend.enabled) {
this.controls.defend.onRelease();
}
if (Key.isDown(ex.ord('D')) && this.controls.device._visible && this.controls.device.enabled) {
this.controls.device.onRelease();
}
if ((Key.isDown(ex.ord('U')) || Key.isDown(ex.ord('I'))) && this.controls.useitem._visible && this.controls.useitem.enabled) {
this.controls.useitem.onRelease();
}
if (Key.isDown(27) && this.controls.cancel._visible && this.controls.cancel.enabled) {
this.controls.cancel.onRelease();
}
};
v2.initSlot = function (id_, onEnter_, onLeave_, onClick_) {
this.unit.onRollOver = function () {
onEnter_(id_);
};
this.unit.onDragOver = this.unit.onRollOver;
this.unit.onRollOut = function () {
onLeave_(id_);
};
this.unit.onDragOut = this.unit.onRollOut;
this.unit.onRelease = function () {
onClick_(id_);
};
this.id = id_;
this.disable();
};
v2.initStats = function (src_) {
this.data = {};
this.data.vit = src_.vit;
this.data.acc = src_.acc;
this.data.def = src_.def;
this.data.dgr = src_.dgr;
this.data.tch = src_.tch;
this.data.med = src_.med;
this.data.lck = src_.lck;
};
v2.setPlayer = function (id_) {
this.enemy = false;
if (id_ == -1) {
return undefined;
}
this.initStats((Core.Get()).game.stats[id_]);
this.level = (Core.Get()).game.stats[id_].level;
var v2 = (Core.Get()).game.equipment[id_];
if (v2.weapon != -1) {
this.weapon = v2.weapon;
}
this.armor = v2.armor;
if (v2.device >= 0) {
var v4 = (Core.Get()).world.items[v2.device];
if (v4.type2 != EWeapon.PASSIVE) {
this.device = v2.device;
this.device_mp = v4.energy;
} else {
this.addPassiveDeviceEffect(v2.device);
}
}
this.setUnit('bu_char', id_ + 1);
this.shadow._visible = true;
if ((Core.Get()).world.items[this.weapon].type3 != EItemType.PSI) {
this.unit.setWeapon(this.weapon);
} else {
this.unit.setWeapon(0);
}
this.initData();
this.char_id = id_;
this.initPerkEffect();
this.hideNumbers();
};
v2.setEnemy = function (id_, level_) {
this.enemy = true;
if (!id_.length) {
return undefined;
}
var v3 = (Core.Get()).world.enemy[id_];
if (v3 == undefined) {
Log.Err('Invalid Enemy Code');
return undefined;
}
this.creature = id_;
this.band = id_.charAt(0);
this.level = level_;
this.initStats(v3);
this.data.vit += Math.round((Math.min(10, this.data.vit) / 2) * (level_ - 1));
this.data.def += Math.round((Math.min(10, this.data.def) / 2) * (level_ - 1));
this.data.acc += Math.round((Math.min(10, this.data.acc) / 2) * (level_ - 1));
this.data.dgr += Math.round((Math.min(10, this.data.dgr) / 2) * (level_ - 1));
this.data.tch += Math.round((Math.min(10, this.data.tch) / 2) * (level_ - 1));
this.data.med += Math.round((Math.min(10, this.data.med) / 2) * (level_ - 1));
this.data.lck += Math.round((Math.min(10, this.data.lck) / 2) * (level_ - 1));
this.exp = 0;
this.exp += this.data.vit;
this.exp += this.data.def;
this.exp += this.data.acc;
this.exp += this.data.dgr;
this.exp += this.data.tch;
this.exp += this.data.med;
this.exp += this.data.lck;
this.weapon = this.chooseWeapon(v3.weapon, level_);
if (v3.device >= 0) {
var v4 = (Core.Get()).world.items[v3.device];
if (level_ >= v4.level) {
if (v4.type2 != EWeapon.PASSIVE) {
this.device_mp = v4.energy;
if (v4.energy <= this.data.tch * 2) {
this.device = v3.device;
}
} else {
this.addPassiveDeviceEffect(v3.device);
}
}
}
this.setUnit('bu_enemy', v3.frame);
this.shadow._visible = true;
this.unit.setWeapon(this.weapon);
this.initData();
this.hideNumbers();
};
v2.hideNumbers = function () {
this.hp.caption._visible = false;
this.hp.def_caption._visible = false;
this.action.caption._visible = false;
this.energy.caption._visible = false;
};
v2.chooseWeapon = function (type_, level_) {
if (level_ >= 10) {
level_ -= 2;
}
var v3 = [];
switch (type_) {
case EItemType.MELEE:
if (21 <= level_) {
v3.push(9);
}
if (18 <= level_) {
v3.push(8);
}
if (12 <= level_ && level_ < 21) {
v3.push(7);
}
if (10 <= level_ && level_ < 15) {
v3.push(6);
}
if (5 <= level_ && level_ < 10) {
v3.push(5);
}
if (4 <= level_ && level_ < 10) {
v3.push(4);
}
if (3 <= level_ && level_ < 8) {
v3.push(3);
}
if (level_ < 4) {
v3.push(2);
}
if (level_ < 3) {
v3.push(1);
}
break;
case EItemType.PISTOL:
if (20 <= level_) {
v3.push(21);
}
if (18 <= level_) {
v3.push(20);
}
if (15 <= level_ && level_ < 20) {
v3.push(19);
}
if (13 <= level_ && level_ < 18) {
v3.push(18);
}
if (10 <= level_ && level_ < 15) {
v3.push(17);
}
if (8 <= level_ && level_ < 13) {
v3.push(16);
}
if (7 <= level_ && level_ < 12) {
v3.push(15);
}
if (5 <= level_ && level_ < 10) {
v3.push(14);
}
if (4 <= level_ && level_ < 9) {
v3.push(13);
}
if (level_ < 7) {
v3.push(12);
}
if (level_ < 7) {
v3.push(11);
}
break;
case EItemType.SMG:
if (15 <= level_) {
v3.push(29);
}
if (14 <= level_) {
v3.push(28);
}
if (12 <= level_ && level_ < 17) {
v3.push(27);
}
if (10 <= level_ && level_ < 15) {
v3.push(26);
}
if (7 <= level_ && level_ < 12) {
v3.push(25);
}
if (3 <= level_ && level_ < 8) {
v3.push(24);
}
if (level_ < 7) {
v3.push(23);
}
break;
case EItemType.SHOTGUN:
if (22 <= level_) {
v3.push(36);
}
if (18 <= level_ && level_ < 23) {
v3.push(35);
}
if (14 <= level_ && level_ < 19) {
v3.push(34);
}
if (10 <= level_ && level_ < 15) {
v3.push(33);
}
if (8 <= level_ && level_ < 13) {
v3.push(32);
}
if (level_ < 9) {
v3.push(31);
}
break;
case EItemType.HEAVY:
if (20 <= level_) {
v3.push(43);
}
if (18 <= level_ && level_ < 23) {
v3.push(42);
}
if (15 <= level_ && level_ < 20) {
v3.push(41);
}
if (12 <= level_ && level_ < 17) {
v3.push(40);
}
if (9 <= level_ && level_ < 14) {
v3.push(39);
}
if (level_ < 10) {
v3.push(38);
}
break;
case EItemType.ASSAULT:
if (19 <= level_) {
v3.push(49);
}
if (14 <= level_ && level_ < 21) {
v3.push(48);
}
if (10 <= level_ && level_ < 16) {
v3.push(47);
}
if (level_ < 12) {
v3.push(46);
}
if (level_ < 12) {
v3.push(45);
}
break;
case EItemType.GLAUNCHER:
if (14 <= level_) {
v3.push(52);
}
if (level_ < 14) {
v3.push(51);
}
break;
case EItemType.RLAUNCHER:
if (21 <= level_) {
v3.push(57);
}
if (level_ < 21) {
v3.push(54);
}
break;
case EItemType.SNIPER:
if (level_ >= 19) {
return 63;
}
if (16 <= level_ && level_ < 21) {
v3.push(62);
}
if (13 <= level_ && level_ < 18) {
v3.push(61);
}
if (10 <= level_ && level_ < 15) {
v3.push(60);
}
if (5 <= level_ && level_ < 10) {
v3.push(59);
}
if (level_ < 6) {
v3.push(58);
}
break;
case EItemType.PSI:
if (this.level >= 25) {
return 166;
}
if (this.level >= 20) {
return 165;
}
if (this.level >= 10) {
return 164;
}
return 163;
}
if (v3.length) {
return ex.selectRandom(v3);
} else {
return 0;
}
};
v2.setUnit = function (name_, id_) {
this.unit_ori.attachMovie(name_, 'body', 1);
this.unit = this.unit_ori.body;
this.unit.setUnit(id_);
this.unit.switchToStand();
};
v2.initData = function () {
this.calcSecondaryStats();
this.initHP(this.max_hp);
this.initAction((Core.Get()).world.items[this.weapon].ap);
if (this.device != -1) {
this.initEnergy(this.max_energy, Math.round(this.max_energy / 2));
}
this.syncAC();
};
v2.calcSecondaryStats = function () {
this.max_hp = 20 + this.data.vit;
this.base_dr = this.data.def * 0.1;
if (this.armor >= 0) {
this.base_dr += (Core.Get()).world.items[this.armor].dr;
}
this.to_hit = (70 + this.data.acc) / 100;
this.crit_chance = this.data.acc * 0.4 / 100;
this.dmg_k = (100 + this.data.dgr) / 100;
this.energy_regen = 1;
this.dev_dmg_k = this.data.tch;
this.heal_power = this.data.med;
this.heal_power_device = this.data.tch;
this.drop_chance = this.data.lck * 0.25 / 100;
this.crit_chance += this.data.lck * 0.2 / 100;
this.evasion_chance = (10 + this.data.lck * 0.2) / 100;
if (this.device != -1) {
this.max_energy = 2 * this.data.tch;
}
};
v2.initHP = function (max_hp_, cur_hp_) {
this.hp._visible = true;
this.max_hp = max_hp_;
if (cur_hp_ == undefined) {
cur_hp_ = max_hp_;
}
this.cur_hp = cur_hp_;
this.syncHP();
};
v2.syncHP = function () {
this.hp.green_bar._xscale = 100 * this.cur_hp / this.max_hp;
var v2 = Math.round(this.cur_hp);
if (v2 == 0 && this.cur_hp > 0) {
v2 = 1;
}
this.hp.caption.text = v2;
if (0 == this.cur_hp) {
this.hp.caption._visible = false;
this.hp.def_caption._visible = false;
}
};
v2.calcDR = function () {
var v2 = this.base_dr;
v2 *= 1 + this.getBuff('perk_feather_dr');
v2 += this.getBuff('dev_dr');
v2 -= this.getDebuff('dev_minus_dr');
v2 -= this.getDebuff('dev_minus_dr_alien');
v2 -= this.getDebuff('dev_minus_dr_hell');
v2 += this.getBuff('perk_lexic_dr');
if (v2 < 0) {
v2 = 0;
}
v2 *= 1 - this.getBuff('perk_hell_minus_dr');
v2 *= 1 + this.getBuff('dev_dr2');
v2 *= 1 + this.getBuff('dev_dr_alien');
if (this.defending) {
v2 *= 1.3;
v2 += this.getBuff('dev_defend');
}
return v2;
};
v2.syncAC = function () {
this.hp.def_caption.text = Math.round(this.calcDR());
};
v2.initAction = function (max_ap_) {
this.action._visible = true;
this.max_action = max_ap_;
this.cur_action = 0;
this.syncAction();
};
v2.syncAction = function () {
var v2 = this.cur_action;
if (v2 > this.max_action) {
v2 = this.max_action;
}
var v3 = 1 + Math.floor(10 * v2 / this.max_action);
this.action.gotoAndStop(v3);
this.action.caption.text = this.cur_action;
};
v2.isReady = function () {
return this.cur_action >= this.max_action;
};
v2.initEnergy = function (max_mp_, cur_mp_) {
this.energy._visible = true;
this.max_energy = max_mp_;
this.cur_energy = cur_mp_;
this.syncEnergy();
};
v2.syncEnergy = function () {
var v2 = 1 + Math.floor(10 * this.cur_energy / this.max_energy);
this.energy.gotoAndStop(v2);
this.energy.caption.text = this.cur_energy;
};
v2.startTurn = function () {
this.defending = false;
this.removeBuff('dev_defend');
this.syncAC();
if (this.getBuff('perk_key_double_atk')) {
this.incBuffEffect('repeat_attack');
}
if (this.getBuff('dev_dbl_atk')) {
this.incBuffEffect('repeat_attack');
}
if (this.getBuff('repeat_attack')) {
this.incBuffEffect('repeat_attack');
}
if (this.getBuff('dev_charge_dmg')) {
this.buff.charge_dmg = this.buff.dev_charge_dmg;
this.removeBuff('dev_charge_dmg');
}
if (this.getBuff('perk_kage_extra_turn') && ex.testChance(this.getBuff('perk_kage_extra_turn'))) {
this.incBuffEffect('extra_turn');
}
if (this.getBuff('perk_nina_rage') && this.cur_hp < 0.3 * this.max_hp) {
this.buff.perk_nina_sure_crit = 1;
}
};
v2.endTurn = function () {
this.removeBuff('repeat_attack');
this.removeBuff('charge_dmg');
this.removeBuff('perk_nina_sure_crit');
};
v2.attack = function () {
if (!this.isAlive) {
Log.Err('BattleSlot::attack() : Is dead!');
}
this.unit.switchToAttack();
(Core.Get()).playSound((Core.Get()).world.items[this.weapon].snd, this.enemy ? 1 : -1);
this.attacking = true;
this.animation = BattleSlot.time_attack;
};
v2.defend = function () {
(Core.Get()).playSound('snd_dev_buff', this.enemy ? 1 : -1);
this.doEffect('effect_defend');
this.animation = BattleSlot.time_defend;
this.removeBuff('extra_turn');
this.defending = true;
this.syncAC();
this.resetAction();
this.endTurn();
};
v2.defendNoReset = function () {
this.doEffect('effect_defend');
this.animation = BattleSlot.time_defend;
this.defending = true;
this.syncAC();
this.endTurn();
};
v2.useItem = function (item_) {
switch ((Core.Get()).world.items[item_].type3) {
case EItemType.GRENADE:
(Core.Get()).playSound('snd_wp_grenade', this.enemy ? 1 : -1);
break;
case EItemType.MEDIKIT:
(Core.Get()).playSound('snd_wp_medikit', this.enemy ? 1 : -1);
}
this.resetAction();
this.endTurn();
};
v2.checkDevice = function () {
if (this.max_energy < this.device_mp) {
this.energy._visible = false;
this.device = -1;
}
};
v2.useDevice = function () {
this.animation = BattleSlot.time_use_device;
(Core.Get()).playSound((Core.Get()).world.items[this.device].snd, this.enemy ? 1 : -1);
this.doEffect('effect_use_device');
this.cur_energy -= this.device_mp;
this.syncEnergy();
if (this.device == 121 || this.device == 124 || this.device == 138) {
return undefined;
}
this.resetAction();
this.endTurn();
};
v2.canUseDevice = function () {
return this.cur_energy >= this.device_mp;
};
v2.tryHitDevice = function (device_) {
switch (device_) {
return true;
case 128:
return ex.testChance(0.5);
case 129:
return ex.testChance(0.6);
}
return true;
};
v2.getDeviceDamage = function () {
var v2 = 0;
var v4 = 0;
var v3 = 0;
switch (this.device) {
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 80:
v2 = 20;
v4 = 0.4;
v3 = 0.8;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 81:
v2 = 15;
v4 = 0.2;
v3 = 0.4;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 82:
v2 = 5;
v4 = 0.2;
v3 = 0.4;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 83:
v2 = 5;
v4 = 0.05;
v3 = 0.15;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 114:
v2 = 30;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 116:
v2 = 15;
v4 = 0.4;
v3 = 0.6;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 117:
v2 = 30;
v4 = 0.7;
v3 = 1.3;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 128:
v2 = 20;
v4 = 0.4;
v3 = 0.8;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 135:
v2 = 25;
v4 = 0.7;
v3 = 1.3;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 136:
v2 = 20;
v4 = 0.2;
v3 = 0.4;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 137:
v2 = 150;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
case 138:
v2 = 0;
v4 = 0.8;
v3 = 1;
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
}
var v5 = v2 + ex.randomFloatIn(v4, v3) * this.dev_dmg_k;
v5 *= 1 + this.getBuff('perk_karry_dmg_device');
return v5;
};
v2.getDeviceHeal = function () {
var v2 = 0;
var v3 = 0;
switch (this.device) {
var v4 = ex.randomIntIn(v2, v3);
return Math.min(this.heal_power_device, v4);
case 108:
v2 = 10;
v3 = 30;
var v4 = ex.randomIntIn(v2, v3);
return Math.min(this.heal_power_device, v4);
case 109:
v2 = 40;
v3 = 80;
var v4 = ex.randomIntIn(v2, v3);
return Math.min(this.heal_power_device, v4);
case 110:
v2 = 80;
v3 = 120;
var v4 = ex.randomIntIn(v2, v3);
return Math.min(this.heal_power_device, v4);
}
var v4 = ex.randomIntIn(v2, v3);
return Math.min(this.heal_power_device, v4);
};
v2.doEffect = function (effect_) {
this.attachMovie(effect_, '', this.getNextHighestDepth());
};
v2.tick = function () {
var v3 = 1;
v3 *= 1 + this.getBuff('dev_ap_regen');
v3 *= 1 + this.getBuff('perk_kat_ap_regen');
if (this.getBuff('perk_nina_aggr') && this.cur_hp < 0.5 * this.max_hp) {
v3 *= 1 + this.getBuff('perk_nina_aggr');
}
v3 *= 1 + this.getBuff('perk_hell_ap_regen');
v3 *= 1 - this.getDebuff('dev_minus_ap_regen');
v3 *= 1 - this.getDebuff('dev_minus_ap_regen_alien');
this.cur_action += v3;
this.syncAction();
if (this.device != -1 && this.cur_energy < this.max_energy) {
var v5 = this.energy_regen;
v5 *= 1 + this.getBuff('perk_feather_ep_regen');
this.cur_energy += v5;
this.syncEnergy();
}
for (var v4 in this.timed_buff) {
--this.timed_buff[v4];
if (0 >= this.timed_buff[v4]) {
this.timed_buff[v4] = undefined;
this.buff[v4] = undefined;
}
}
for (v4 in this.timed_debuff) {
--this.timed_debuff[v4];
if (0 >= this.timed_debuff[v4]) {
if (v4 == 'dev_venom_hit') {
this.takeDamage(ex.randomIntIn(3, 5), EHit.POISON);
this.syncHP();
var v2 = this.getDebuff('dev_venom');
if (v2) {
this.timed_debuff.dev_venom_hit = v2;
}
continue;
}
if (v4 == 'dev_venom2_hit') {
this.takeDamage(ex.randomIntIn(10, 20), EHit.POISON);
this.syncHP();
v2 = this.getDebuff('dev_venom2');
if (v2) {
this.timed_debuff.dev_venom2_hit = v2;
}
continue;
}
if (v4 == 'dev_venom3_hit') {
this.takeDamage(ex.randomIntIn(3, 5), EHit.POISON);
this.syncHP();
v2 = this.getDebuff('dev_venom3');
if (v2) {
this.timed_debuff.dev_venom3_hit = v2;
}
continue;
}
if (v4 == 'dev_fire_hit') {
this.takeDamage(ex.randomIntIn(5, 10), EHit.POISON);
this.syncHP();
v2 = this.getDebuff('dev_fire');
if (v2) {
this.timed_debuff.dev_fire_hit = v2;
}
continue;
}
this.timed_debuff[v4] = undefined;
this.debuff[v4] = undefined;
}
}
this.cur_hp += this.getBuff('perk_kurt_hp_regen');
this.syncHP();
};
v2.updateAnimation = function () {
if (0 == this.animation) {
return false;
}
--this.animation;
if (this.running && !this.attacking || this.running_back) {
var v3 = this.run_to.x + (this.run_from.x - this.run_to.x) * this.animation / BattleSlot.time_run;
var v2 = this.run_to.y + (this.run_from.y - this.run_to.y) * this.animation / BattleSlot.time_run;
this._x = v3;
this._y = v2;
}
if (this.dying) {
this.unit.updateDying(1 - this.animation / BattleSlot.time_die);
}
if (0 == this.animation) {
if (this.attacking) {
this.attacking = false;
this.unit.switchToStand();
if (this.getBuff('repeat_attack')) {
this.decBuffEffect('repeat_attack');
}
if (!this.getBuff('repeat_attack')) {
this.resetAction();
if (this.running) {
this.running = false;
this.runBack();
} else {
this.endTurn();
}
}
return 0 < this.animation;
}
if (this.running) {
return 0 < this.animation;
}
if (this.running_back) {
this.running_back = false;
this.unhideStats();
this.endTurn();
return 0 < this.animation;
}
if (this.dying) {
this.dying = false;
this.unit.switchToDead();
this.hp._visible = false;
return 0 < this.animation;
}
this.unit.switchToStand();
this.syncHP();
}
return 0 < this.animation;
};
v2.isEnemy = function () {
return this.enemy;
};
v2.spawnHit = function (type_, value_) {
var v3 = (EHit.HEAL == type_) ? 'bs_heal' : 'bs_hit';
var v4 = this.hit_ori.attachMovie(v3, '', this.hit_ori.getNextHighestDepth());
var v2 = v4.inner;
switch (type_) {
case EHit.DAMAGE:
v2.crit._visible = false;
case EHit.CRITICAL:
v2.miss._visible = false;
v2.dodge._visible = false;
v2.immune._visible = false;
v2.damage.text = value_;
break;
case EHit.MISS:
v2.crit._visible = false;
v2.damage._visible = false;
v2.dodge._visible = false;
v2.immune._visible = false;
break;
case EHit.DODGE:
v2.crit._visible = false;
v2.damage._visible = false;
v2.miss._visible = false;
v2.immune._visible = false;
break;
case EHit.HEAL:
v2.damage.text = value_;
break;
case EHit.IMMUNE:
v2.crit._visible = false;
v2.damage._visible = false;
v2.miss._visible = false;
v2.dodge._visible = false;
}
};
v2.takeDamage = function (amount_, crit_) {
switch (crit_) {
case EHit.IMMUNE:
this.spawnHit(crit_, Math.round(amount_));
return 0;
case EHit.HEAL:
this.spawnHit(crit_, Math.round(amount_));
this.cur_hp += amount_;
if (this.cur_hp > this.max_hp) {
this.cur_hp = this.max_hp;
}
this.animation = BattleSlot.time_hit;
return amount_;
case EHit.DISCHARGE:
if (this.device >= 0) {
this.cur_energy -= amount_;
if (this.cur_energy < 0) {
this.cur_energy = 0;
}
this.syncEnergy();
}
return amount_;
case EHit.RECHARGE:
if (this.device >= 0) {
this.cur_energy += amount_;
if (this.cur_energy > this.max_energy) {
this.cur_energy = this.max_energy;
}
this.syncEnergy();
}
return amount_;
case EHit.DRAIN_AP:
this.cur_action -= amount_;
if (this.cur_action < 0) {
this.cur_action = 0;
}
this.syncAction();
return amount_;
case EHit.POISON:
this.spawnHit(EHit.DAMAGE, Math.round(amount_));
break;
case EHit.DAMAGE:
case EHit.CRITICAL:
var v4 = this.calcDR();
if (EHit.CRITICAL == crit_) {
v4 /= 2;
}
amount_ -= v4;
if (amount_ < 0) {
amount_ = 0;
}
this.spawnHit(crit_, Math.round(amount_));
break;
default:
Log.Err('Invalid damage');
}
this.cur_hp -= amount_;
if (this.cur_hp < 0) {
this.cur_hp = 0;
}
if (!this.cur_hp) {
if (this.getBuff('perk_lexic_extra_life') && ex.testChance(this.getBuff('perk_lexic_extra_life'))) {
(Core.Get()).playSound('snd_dev_heal', this.enemy ? 1 : -1);
this.cur_hp = this.max_hp / 2;
this.syncHP();
this.cur_action = this.max_action;
this.syncAction();
}
}
if (crit_ != EHit.POISON) {
this.unit.switchToHurt();
this.animation = BattleSlot.time_hit;
}
return amount_;
};
v2.regenHP = function (heal_) {
this.takeDamage(heal_, EHit.HEAL);
this.syncHP();
};
v2.isAlive = function () {
return this.cur_hp > 0;
};
v2.die = function () {
if (this.animation) {
Log.Err('BattleSlot::die() : Is in animation');
}
this.unit.switchToDying();
(Core.Get()).playSound('die', this.enemy ? 1 : -1);
this.dying = true;
this.animation = BattleSlot.time_die;
this.shadow._visible = false;
this.action._visible = false;
this.energy._visible = false;
};
v2.showControls = function () {
this.resetControls();
this.controls._visible = true;
};
v2.hideControls = function () {
this.controls._visible = false;
};
v2.activateControls = function () {
this.controls.attack._visible = false;
this.controls.defend._visible = false;
this.controls.device._visible = false;
this.controls.useitem._visible = false;
this.controls.cancel._visible = true;
};
v2.resetControls = function () {
this.controls.attack._visible = true;
this.controls.defend._visible = true;
if (this.device != -1) {
this.controls.device._visible = true;
var v2 = this.canUseDevice();
this.controls.device.enabled = v2;
this.controls.device._alpha = v2 ? 100 : 50;
} else {
this.controls.device._visible = false;
}
this.controls.useitem._visible = true;
this.controls.cancel._visible = false;
};
v2.select = function () {
this.showControls();
this.hilite();
};
v2.deselect = function () {
this.hideControls();
};
v2.hilite = function () {
this.unit.filters = [Filters.Glow(this.enemy ? 16711680 : 65280)];
this.hilited = true;
};
v2.dehilite = function () {
this.unit.filters = [];
this.hilited = false;
};
v2.hiliteHeal = function () {
if (!this.enemy) {
if (this.hilited) {
this.unit.filters = [Filters.GlowMedium(65280), Filters.GlowMedium(16711833)];
} else {
this.unit.filters = [Filters.Glow(16711833)];
}
}
};
v2.dehiliteHeal = function () {
if (!this.enemy) {
if (this.hilited) {
this.unit.filters = [Filters.Glow(65280)];
} else {
this.unit.filters = [];
}
}
};
v2.enable = function () {
this.unit.enabled = true;
this.unit.useHandCursor = true;
Mouse.hide();
Mouse.show();
if (this.unit.hitTest(_root._xmouse, _root._ymouse, true)) {
this.unit.onRollOver();
}
};
v2.disable = function () {
this.unit.enabled = false;
this.unit.useHandCursor = false;
Mouse.hide();
Mouse.show();
this.dehilite();
if (this.controls._visible) {
this.hilite();
}
};
v2.resetAction = function () {
if (this.getBuff('extra_turn')) {
this.decBuffEffect('extra_turn');
return undefined;
}
this.cur_action -= this.max_action;
if (this.cur_action < 0) {
this.cur_action = 0;
}
this.syncAction();
};
v2.resetEnergy = function () {
this.cur_energy = 0;
this.syncEnergy();
};
v2.tryAttack = function () {
if (this.getBuff('dev_sure_hit')) {
return true;
}
var v2 = true;
if (this.getBuff('dekkis_special')) {
v2 = true;
} else {
v2 = Math.random() < this.to_hit;
}
if (!v2) {
this.spawnHit(EHit.MISS);
}
return v2;
};
v2.tryHit = function () {
var v2 = this.evasion_chance;
v2 += this.getBuff('dev_eva');
v2 += this.getBuff('perk_kat_eva');
v2 += this.getBuff('perk_kraven_eva_1');
v2 += this.getBuff('perk_kraven_eva_2');
if (v2 > 0.75) {
v2 = 0.75;
}
var v3 = Math.random() < v2;
if (v3) {
this.spawnHit(EHit.DODGE);
}
return !v3;
};
v2.getDamage = function () {
if (this.getBuff('dekkis_special')) {
return this.getDeviceDamage();
}
if (this.weapon < 0) {
Log.Err('BattleSlot::getDamage() : No Weapon');
}
var v3 = (Core.Get()).world.items[this.weapon];
var v2 = ex.randomIntIn(v3.dmg_min, v3.dmg_max);
v2 += this.getBuff('perk_lexic_bonus_dmg');
v2 *= this.dmg_k;
v2 *= 1 + this.getBuff('dev_dmg');
v2 *= 1 + this.getBuff('charge_dmg');
v2 *= 1 - this.getBuff('vr_attack_minus_dmg');
v2 *= 1 + this.getBuff('perk_grid_dmg');
v2 *= 1 + this.getBuff('perk_key_dmg');
v2 *= 1 + this.getBuff('perk_kurt_accum_dmg_bonus');
v2 *= 1 + this.getBuff('perk_kurt_dmg');
v2 *= 1 + this.getBuff('perk_karry_dmg_weapon');
v2 *= 1 + this.getBuff('perk_kage_dmg');
v2 *= 1 + this.getBuff('perk_nina_dmg');
v2 *= 1 + this.getBuff('perk_hell_dmg');
return v2;
};
v2.getCritDamage = function () {
if (this.getBuff('dekkis_special')) {
return this.getDeviceDamage();
}
if (this.weapon < 0) {
Log.Err('BattleSlot::getDamage() : No Weapon');
}
var v3 = (Core.Get()).world.items[this.weapon];
var v2 = ex.randomIntIn((v3.dmg_min + v3.dmg_max) / 2, v3.dmg_max);
v2 += this.getBuff('perk_lexic_bonus_dmg');
v2 *= this.dmg_k;
v2 *= 1 + this.getBuff('dev_dmg');
v2 *= 1 + this.getBuff('charge_dmg');
v2 *= 1 - this.getBuff('vr_attack_minus_dmg');
v2 *= 1 + this.getBuff('perk_grid_dmg');
v2 *= 1 + this.getBuff('perk_key_dmg');
v2 *= 1 + this.getBuff('perk_kurt_accum_dmg_bonus');
v2 *= 1 + this.getBuff('perk_kurt_dmg');
v2 *= 1 + this.getBuff('perk_karry_dmg_weapon');
v2 *= 1 + this.getBuff('perk_kage_dmg');
v2 *= 1 + this.getBuff('perk_nina_dmg');
v2 *= 1 + this.getBuff('perk_hell_dmg');
v2 += this.getBuff('perk_grid_crit_dmg');
return v2;
};
v2.getBestDamage = function () {
if (this.weapon < 0) {
Log.Err('BattleSlot::getDamage() : No Weapon');
}
var v3 = (Core.Get()).world.items[this.weapon];
var v2 = v3.dmg_max;
v2 += this.getBuff('perk_lexic_bonus_dmg');
v2 *= this.dmg_k;
v2 *= 1 + this.getBuff('dev_dmg');
v2 *= 1 + this.getBuff('charge_dmg');
v2 *= 1 - this.getBuff('vr_attack_minus_dmg');
v2 *= 1 + this.getBuff('perk_grid_dmg');
v2 *= 1 + this.getBuff('perk_key_dmg');
v2 *= 1 + this.getBuff('perk_kurt_accum_dmg_bonus');
v2 *= 1 + this.getBuff('perk_kurt_dmg');
v2 *= 1 + this.getBuff('perk_karry_dmg_weapon');
v2 *= 1 + this.getBuff('perk_kage_dmg');
v2 *= 1 + this.getBuff('perk_nina_dmg');
v2 *= 1 + this.getBuff('perk_hell_dmg');
return v2;
};
v2.getItemDamage = function (item_) {
var v2 = (Core.Get()).world.items[item_];
var v3 = ex.randomIntIn(v2.dmg_min, v2.dmg_max);
if (v2.type3 == EItemType.GRENADE) {
v3 *= 1 + this.getBuff('dev_gren');
}
return v3;
};
v2.getItemHeal = function (item_) {
var v3 = (Core.Get()).world.items[item_];
var v2 = v3.heal;
if (v3.recharge) {
return v2;
}
v2 *= 1 + this.getBuff('perk_feather_heal');
return Math.min(this.heal_power, v2);
};
v2.isCritical = function () {
var v2 = this.crit_chance;
v2 += this.getBuff('perk_grid_crit_chance');
return Math.random() < v2;
};
v2.runTo = function (trg_) {
this.running = true;
this.run_from = this.base_pos.clone();
this.run_to = trg_.base_pos.clone();
var v2 = 40;
if (this.enemy) {
this.run_to.x += v2;
} else {
this.run_to.x -= v2;
}
this.animation = BattleSlot.time_run;
this.hideStats();
};
v2.runBack = function () {
this.running_back = true;
var v2 = this.run_from;
this.run_from = this.run_to;
this.run_to = v2;
this.animation = BattleSlot.time_run_back;
};
v2.hideStats = function () {
this.hp._visible = false;
this.action._visible = false;
this.energy._visible = false;
};
v2.unhideStats = function () {
this.hp._visible = true;
this.action._visible = true;
if (this.device != -1) {
this.energy._visible = true;
}
};
v2.isRunning = function () {
return this.running;
};
v2.explodeGrenade = function () {
(Core.Get()).playSound('snd_wp_grenade1', this.enemy ? 1 : -1);
this.animation = 10;
};
v2.addPassiveDeviceEffect = function (device_) {
var v2 = '';
var v3 = 1;
switch (device_) {
case 84:
v2 = 'dev_gren';
v3 = 0.25;
break;
case 85:
v2 = 'dev_gren';
v3 = 0.5;
break;
case 86:
v2 = 'dev_gren';
v3 = 1;
break;
case 87:
v2 = 'dev_ap_regen';
v3 = 0.1;
break;
case 88:
v2 = 'dev_ap_regen';
v3 = 0.25;
break;
case 89:
v2 = 'dev_ap_regen';
v3 = 0.5;
break;
case 96:
v2 = 'dev_dmg';
v3 = 0.1;
break;
case 97:
v2 = 'dev_dmg';
v3 = 0.25;
break;
case 98:
v2 = 'dev_dmg';
v3 = 0.5;
break;
case 99:
v2 = 'dev_vr';
v3 = 0.1;
break;
case 101:
v2 = 'dev_dbl_atk';
break;
case 102:
v2 = 'dev_eva';
v3 = 0.3;
break;
case 111:
v2 = 'dev_counter';
break;
case 123:
v2 = 'dev_sure_hit';
break;
case 126:
v2 = 'dev_mass_hp_regen';
v3 = 0.1;
break;
case 127:
v2 = 'dev_hp_regen';
v3 = 0.3;
}
if (v2.length) {
this.buff[v2] = v3;
}
};
v2.addDeviceEffect = function (device_) {
switch (device_) {
case 90:
this.buff.dev_defend = 1;
return undefined;
case 91:
this.buff.dev_defend = 2;
return undefined;
case 92:
this.buff.dev_defend = 5;
return undefined;
case 93:
this.incDebuffEffect('dev_minus_dr', 2);
this.syncAC();
return undefined;
case 94:
this.incDebuffEffect('dev_minus_dr', 2);
this.syncAC();
return undefined;
case 95:
this.incDebuffEffect('dev_minus_dr', 4);
this.syncAC();
return undefined;
case 100:
this.incBuffEffect('dev_dr', 2);
this.syncAC();
this.device_mp *= 2;
this.checkDevice();
return undefined;
case 103:
if (this.getBuff('dev_eva')) {
return undefined;
}
this.buff.dev_eva_2 = 0.3;
this.timed_buff.dev_eva_2 = 30;
return undefined;
case 104:
this.debuff.dev_venom = 3;
this.timed_debuff.dev_venom = 30;
if (undefined == this.timed_debuff.dev_venom_hit) {
this.timed_debuff.dev_venom_hit = this.debuff.dev_venom;
}
return undefined;
case 105:
this.debuff.dev_venom2 = 3;
this.timed_debuff.dev_venom2 = 30;
if (undefined == this.timed_debuff.dev_venom2_hit) {
this.timed_debuff.dev_venom2_hit = this.debuff.dev_venom2;
}
return undefined;
case 106:
this.debuff.dev_venom3 = 3;
this.timed_debuff.dev_venom3 = 20;
if (undefined == this.timed_debuff.dev_venom3_hit) {
this.timed_debuff.dev_venom3_hit = this.debuff.dev_venom3;
}
return undefined;
case 107:
this.debuff = {};
this.timed_debuff = {};
return undefined;
case 112:
this.buff.dev_dr2 = 0.3;
this.timed_buff.dev_dr2 = 60;
return undefined;
case 113:
this.debuff.dev_minus_ap_regen = 0.25;
this.timed_debuff.dev_minus_ap_regen = 60;
return undefined;
case 115:
if (this.getBuff('dev_dr_alien') < 0.6) {
this.incBuffEffect('dev_dr_alien', 0.2);
}
return undefined;
case 116:
if (this.getDebuff('dev_minus_ap_regen_alien') < 1) {
this.incDebuffEffect('dev_minus_ap_regen_alien', 0.1);
}
return undefined;
case 117:
this.incDebuffEffect('dev_minus_dr_alien', 2);
return undefined;
case 119:
this.debuff.dev_fire = 5;
if (undefined == this.timed_debuff.dev_fire_hit) {
this.timed_debuff.dev_fire_hit = this.debuff.dev_fire;
}
return undefined;
case 121:
this.buff.sure_crit = 1;
return undefined;
case 122:
this.buff.dev_charge_dmg = 1;
return undefined;
case 124:
this.buff.vr_attack = 1;
this.buff.vr_attack_minus_dmg = 0;
return undefined;
case 125:
if (this.device != 125) {
this.cur_action = this.max_action;
this.syncAction();
}
return undefined;
case 132:
var v2 = 25;
this.data.vit += v2;
this.data.acc += v2;
this.data.def += v2;
this.data.dgr += v2;
this.data.tch += v2;
this.data.med += v2;
this.data.lck += v2;
this.calcSecondaryStats();
this.cur_hp += v2;
this.syncHP();
this.syncAC();
this.syncEnergy();
return undefined;
case 136:
this.incDebuffEffect('dev_minus_dr_hell', 4);
return undefined;
case 138:
this.buff.dekkis_special = 1;
return undefined;
}
};
v2.getBuff = function (eff_) {
return (this.buff[eff_] != undefined) ? this.buff[eff_] : 0;
};
v2.getDebuff = function (eff_) {
return (this.debuff[eff_] != undefined) ? this.debuff[eff_] : 0;
};
v2.removeBuff = function (eff_) {
this.buff[eff_] = undefined;
};
v2.incDebuffEffect = function (eff_, value_) {
if (this.debuff[eff_] == undefined) {
this.debuff[eff_] = 0;
}
this.debuff[eff_] += value_;
};
v2.incBuffEffect = function (eff_, value_) {
if (undefined == value_) {
value_ = 1;
}
if (this.buff[eff_] == undefined) {
this.buff[eff_] = 0;
}
this.buff[eff_] += value_;
};
v2.decBuffEffect = function (eff_, value_) {
if (undefined == value_) {
value_ = 1;
}
if (this.buff[eff_] == undefined) {
Log.Err('Invalid Buff');
}
this.buff[eff_] -= value_;
};
v2.initPerkEffect = function () {
var v2 = (Core.Get()).game.stats[this.char_id];
if (v2.perk1) {
this.addPerkEffect(this.char_id, 0);
}
if (v2.perk2) {
this.addPerkEffect(this.char_id, 1);
}
if (v2.perk3) {
this.addPerkEffect(this.char_id, 2);
}
};
v2.addPerkEffect = function (char_, level_) {
switch (char_) {
case 0:
switch (level_) {
case 0:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.PISTOL) {
this.buff.perk_grid_dmg = 0.2;
}
return undefined;
case 1:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.PISTOL) {
this.buff.perk_grid_crit_dmg = 10;
}
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.PISTOL) {
this.buff.perk_grid_crit_chance = 20;
}
return undefined;
}
break;
case 1:
switch (level_) {
case 0:
this.buff.perk_key_crit_chance = 1;
return undefined;
case 1:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.PISTOL) {
this.buff.perk_key_dmg = 0.3;
}
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.PISTOL) {
this.buff.perk_key_double_atk = 1;
}
return undefined;
}
break;
case 2:
switch (level_) {
case 0:
this.buff.perk_kat_eva = 0.15;
return undefined;
case 1:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.SMG) {
this.buff.perk_kat_mass_atk = 1;
}
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.SMG) {
this.buff.perk_kat_ap_regen = 0.5;
}
return undefined;
}
break;
case 3:
break;
case 4:
switch (level_) {
case 0:
this.buff.perk_kurt_accum_dmg = 0.1;
return undefined;
case 1:
this.buff.perk_kurt_hp_regen = 1;
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.SHOTGUN) {
this.buff.perk_kurt_dmg = 0.3;
}
return undefined;
}
break;
case 5:
switch (level_) {
case 0:
return undefined;
case 1:
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].alien) {
this.buff.perk_karry_dmg_weapon = 0.2;
}
if (this.device >= 0 && (Core.Get()).world.items[this.device].alien) {
this.buff.perk_karry_dmg_device = 0.2;
}
return undefined;
}
break;
case 6:
switch (level_) {
case 0:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.MELEE) {
this.buff.perk_kage_drain_ap = 1;
}
return undefined;
case 1:
this.buff.perk_kage_extra_turn = 0.15;
return undefined;
case 2:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.MELEE) {
this.buff.perk_kage_dmg = 0.5;
}
return undefined;
}
break;
case 7:
switch (level_) {
case 0:
this.buff.perk_lexic_dr = 2;
this.syncAC();
return undefined;
case 1:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.RLAUNCHER || (Core.Get()).world.items[this.weapon].type3 == EItemType.GLAUNCHER) {
this.buff.perk_lexic_bonus_dmg = 10;
}
return undefined;
case 2:
this.buff.perk_lexic_extra_life = 0.5;
return undefined;
}
break;
case 8:
switch (level_) {
case 0:
this.buff.perk_kraven_eva_1 = 0.15;
return undefined;
case 1:
if ((Core.Get()).world.items[this.weapon].type3 == EItemType.SNIPER) {
this.max_action -= 3;
}
return undefined;
case 2:
this.buff.perk_kraven_eva_2 = 0.15;
this.buff.melee_immune = 1;
return undefined;
}
break;
case 9:
switch (level_) {
case 0:
this.buff.perk_feather_heal = 0.3;
return undefined;
case 1:
if (this.weapon == 0) {
this.buff.perk_feather_dr = 1;
this.syncAC();
}
return undefined;
case 2:
this.buff.perk_feather_ep_regen = 0.5;
return undefined;
}
break;
case 10:
switch (level_) {
case 0:
this.buff.perk_nina_anger = 0.15;
return undefined;
case 1:
this.buff.perk_nina_aggr = 0.1;
return undefined;
case 2:
this.buff.perk_nina_rage = 1;
return undefined;
}
break;
case 11:
switch (level_) {
case 0:
if (this.char_id != 11) {
this.buff.perk_hell_minus_dr = 0.15;
this.syncAC();
}
return undefined;
case 1:
this.buff.perk_hell_dmg = 0.1;
return undefined;
case 2:
this.buff.perk_hell_ap_regen = 0.25;
return undefined;
}
}
};
v1.time_run = 10;
v1.time_attack = 20;
v1.time_run_back = 10;
v1.time_hit = 15;
v1.time_die = 20;
v1.time_use_device = 10;
v1.time_defend = 10;
ASSetPropFlags(_global.BattleSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1975 __Packages.BattleUnit {
#initclip
if (!_global.BattleUnit) {
var v1 = function () {
super();
this.stop();
this.weapon_id = 0;
this.body.stop();
this.hand.stop();
};
_global.BattleUnit = v1;
_global.BattleUnit extends MovieClip;
var v2 = v1.prototype;
v2.switchToStand = function () {
this.gotoAndStop(1);
this.weapon.gotoAndStop(1 + this.weapon_id);
};
v2.switchToAttack = function () {
this.gotoAndStop('attack');
this.weapon.gotoAndStop(1 + this.weapon_id);
};
v2.switchToHurt = function () {
this.gotoAndStop('hurt');
this.hit.gotoAndPlay('hit' + Math.floor(1 + Math.random() * 5));
};
v2.switchToDying = function () {
this.gotoAndStop('dying');
var v2 = new flash.filters.BlurFilter(0, 0, 1);
this.body.filters = [v2];
};
v2.updateDying = function (phase) {
var v2 = this.body.filters[0];
v2.blurX = 64 * phase;
this.body.filters = new Array(v2);
};
v2.switchToDead = function () {
this.gotoAndStop('dead');
};
v2.setUnit = function (i_) {
this.body.gotoAndStop(i_);
this.hand.gotoAndStop(i_);
};
v2.setWeapon = function (i_) {
this.weapon_id = i_;
this.weapon.gotoAndStop(1 + i_);
};
ASSetPropFlags(_global.BattleUnit.prototype, null, 1);
}
#endinitclip
}
movieClip 1976 __Packages.EHit {
#initclip
if (!_global.EHit) {
var v1 = function () {};
_global.EHit = v1;
var v2 = v1.prototype;
v1.DAMAGE = 0;
v1.CRITICAL = 1;
v1.MISS = 2;
v1.DODGE = 3;
v1.HEAL = 4;
v1.POISON = 5;
v1.DISCHARGE = 6;
v1.RECHARGE = 7;
v1.DRAIN_AP = 8;
v1.IMMUNE = 9;
ASSetPropFlags(_global.EHit.prototype, null, 1);
}
#endinitclip
}
movieClip 1977 __Packages.Inventory {
#initclip
if (!_global.Inventory) {
var v1 = function () {
super();
var v3 = (Core.Get()).game;
this.level = (Core.Get()).game.getTeamLevel();
};
_global.Inventory = v1;
_global.Inventory extends MovieClip;
var v2 = v1.prototype;
v2.init = function (npc_, size_, onSlotDrag_, onSlotDrop_, level_) {
this.size = size_;
if (undefined != level_) {
this.level = level_;
}
this.src = (npc_ == '') ? (Core.Get()).game.inventory : (Core.Get()).game.traders[npc_];
this.slots = new Array(this.size.y * this.size.x);
var v12 = (Core.Get()).cfg;
var v9 = v12.inventory_grid;
var v7 = 0;
var v10 = 0;
var v4 = 0;
var v6 = 0;
while (v6 < this.size.y) {
v7 = 0;
var v3 = 0;
while (v3 < this.size.x) {
var v5 = 'slot' + v3 + v6;
this.attachMovie('itemslot_btn', v5, v4);
var v2 = this[v5];
v2.init(v4, onSlotDrag_, onSlotDrop_, onSlotDrop_);
v2.setItem(-1);
v2._x = v7;
v2._y = v10;
this.slots[v4] = v2;
++v4;
++v3;
v7 += v9.x;
}
++v6;
v10 += v9.y;
}
this.offs = 0;
this.sync();
};
v2.initFromSource = function (src_, size_, onRelease_) {
this.size = size_;
this.src = src_;
this.slots = new Array(this.size.y * this.size.x);
var v11 = (Core.Get()).cfg;
var v8 = v11.inventory_grid;
var v7 = 0;
var v9 = 0;
var v4 = 0;
var v6 = 0;
while (v6 < this.size.y) {
v7 = 0;
var v3 = 0;
while (v3 < this.size.x) {
var v5 = 'slot' + v3 + v6;
this.attachMovie('itemslot_btn', v5, v4);
var v2 = this[v5];
v2.init(v4, undefined, onRelease_);
v2.setItem(-1);
v2._x = v7;
v2._y = v9;
this.slots[v4] = v2;
++v4;
++v3;
v7 += v8.x;
}
++v6;
v9 += v8.y;
}
this.offs = 0;
this.sync();
};
v2.sync = function () {
var v9 = this.size.y * this.size.x;
var v8 = v9;
var v10 = this.src.length - this.offs;
if (v10 < v8) {
v8 = v10;
}
var v2 = 0;
while (v2 < v8) {
if (this.src[v2 + this.offs] instanceof Object) {
this.slots[v2].setItem(this.src[v2 + this.offs].item);
this.slots[v2].setCount(this.src[v2 + this.offs].count);
} else {
this.slots[v2].setItem(this.src[v2 + this.offs]);
this.slots[v2].setCount(1);
}
var v3 = (Core.Get()).world.items[this.slots[v2].getItem()];
var v6 = v3.level;
var v7 = this.level;
this.slots[v2].setUsable(v6 <= v7 && EItem.QUEST != v3.type);
++v2;
}
var v4 = this.offs + v8;
v2 = v8;
while (v2 < v9) {
this.slots[v2].setItem(-1);
var v5 = Math.floor(v4 / this.size.x) % 2 == v4 % this.size.x % 2;
this.slots[v2].setEven(v5);
++v2;
++v4;
}
};
v2.evalCell = function (x_, y_) {
return this.offs + x_ + y_ * this.size.x;
};
v2.getPosFromCell = function (i_) {
return i_ + this.offs;
};
v2.getPosAt = function (x_, y_) {
var v2 = {'x': x_, 'y': y_};
this.globalToLocal(v2);
var v5 = (Core.Get()).cfg;
var v4 = this.size;
var v3 = v5.inventory_grid;
v2.x = Math.floor(v2.x / v3.x);
v2.y = Math.floor(v2.y / v3.y);
if (v2.x < 0 || v2.x >= v4.x) {
return -1;
}
if (v2.y < 0 || v2.y >= v4.y) {
return -1;
}
var v6 = this.evalCell(v2.x, v2.y);
return v6;
};
v2.getItemFromCell = function (i_) {
if (this.src[i_ + this.offs] instanceof Object) {
return this.src[i_ + this.offs].item;
} else {
return this.src[i_ + this.offs];
}
};
v2.getPriceFromCell = function (i_) {
var v2 = this.src[i_ + this.offs];
if (v2 instanceof Object) {
var v3 = v2.item;
if (undefined == v2.buy_back || 0 == v2.buy_back) {
return (Core.Get()).world.getBuyPrice(v3);
} else {
return (Core.Get()).world.getSellPrice(v3);
}
} else {
return (Core.Get()).world.getBuyPrice(v2);
}
};
v2.scrollTo = function (val_) {
this.offs = this.size.x * val_;
this.sync();
};
v2.getMaxScroll = function () {
var v3 = Math.ceil(this.src.length / this.size.x) + Math.floor(this.size.y / 2);
var v2 = v3 - this.size.y;
if (v2 < 0) {
v2 = 0;
}
return v2;
};
ASSetPropFlags(_global.Inventory.prototype, null, 1);
}
#endinitclip
}
movieClip 1978 __Packages.ButtonItem {
#initclip
if (!_global.ButtonItem) {
var v1 = function () {
super();
this.item.stop();
this.back.stop();
this.fixed_type = 0;
this.item_id = -1;
this.dehilite();
this.even = true;
};
_global.ButtonItem = v1;
_global.ButtonItem extends MovieClip;
var v2 = v1.prototype;
v2.setItem = function (id_, default_) {
this.item_id = id_;
if (id_ < 0) {
this.item._visible = false;
this.count._visible = false;
if (!this.fixed_type) {
this.back.gotoAndStop(this.even ? 7 : 8);
}
this.enabled = false;
if (undefined == default_ || default_) {
if (this.fixed_type !== EItem.WEAPON) {
} else {
this.item._visible = true;
this.item.gotoAndStop(1);
}
}
} else {
this.item._visible = true;
this.item.gotoAndStop(1 + id_);
var v3 = (Core.Get()).world;
var item = v3.items[id_];
this.back.gotoAndStop(item.type);
this.enabled = true;
}
};
v2.getItem = function () {
return this.item_id;
};
v2.setCount = function (count_) {
this.count.text = count_;
this.count._visible = count_ != 1;
};
v2.setFixed = function (t_) {
this.fixed_type = t_;
this.back.gotoAndStop(t_);
};
v2.init = function (id_, cb1_, cb2_, cb3_) {
this.onPress = function () {
cb1_(id_);
};
this.onRelease = function () {
cb2_(id_);
};
this.onReleaseOutside = function () {
cb3_(id_);
};
if (undefined == cb2_) {
this.useHandCursor = false;
}
};
v2.setEven = function (even_) {
this.even = even_;
if (this.item_id < 0 && !this.fixed_type) {
this.back.gotoAndStop(this.even ? 7 : 8);
}
};
v2.hilite = function () {
this.hilition._visible = true;
};
v2.dehilite = function () {
this.hilition._visible = false;
};
v2.setGlow = function (color_) {
this.item.filters = [Filters.GlowLight(color_)];
};
v2.setUsable = function (useable_) {
this.item.filters = useable_ ? [] : [Filters.GlowLight(16711680)];
};
ASSetPropFlags(_global.ButtonItem.prototype, null, 1);
}
#endinitclip
}
movieClip 1979 __Packages.TooltipItem {
#initclip
if (!_global.TooltipItem) {
var v1 = function () {
super();
this.id = -1;
this._visible = false;
this.type_icon.stop();
this.target.stop();
this.stop();
};
_global.TooltipItem = v1;
_global.TooltipItem extends MovieClip;
var v2 = v1.prototype;
v2.setItem = function (id_, sell_price) {
if (this.id == id_) {
return undefined;
}
this.id = id_;
if (id_ < 0) {
this._visible = false;
} else {
this._visible = true;
this.id_value.text = id_;
if (!(Core.Get()).debug_mode) {
this.id_value._visible = false;
}
var v2 = (Core.Get()).world.items[this.id];
var v9 = v2.type;
if (v2.spam) {
this.gotoAndStop(7);
} else {
this.gotoAndStop(v9);
}
this.name.text = v2.name;
var v4 = 16777215;
switch (v2.type) {
case EItem.WEAPON:
v4 = 8340291;
break;
case EItem.ARMOR:
v4 = 3033902;
break;
case EItem.DEVICE:
v4 = 2579575;
break;
case EItem.USE:
v4 = 7828263;
break;
case EItem.HEAL:
v4 = 8407436;
break;
case EItem.QUEST:
v4 = 2586475;
}
this.name.textColor = v4;
this.name.filters = [Filters.GlowMedium(16777215)];
if (undefined != sell_price && sell_price) {
this.price.text = '€' + (Core.Get()).world.getSellPrice(id_);
} else {
this.price.text = '€' + v2.cost;
}
var v8 = v2.type3;
this.type_icon.gotoAndStop(v8);
var v3 = '';
switch (v8) {
case EItemType.MELEE:
v3 = 'Melee weapon';
break;
case EItemType.PISTOL:
v3 = v2.alien ? 'Alien weapon' : 'Pistol';
break;
case EItemType.SMG:
v3 = v2.alien ? 'Alien weapon' : 'Submachine-gun';
break;
case EItemType.SHOTGUN:
v3 = 'Shotgun';
break;
case EItemType.HEAVY:
v3 = 'Heavy weapon';
break;
case EItemType.ASSAULT:
v3 = 'Assault rifle';
break;
case EItemType.RLAUNCHER:
v3 = v2.alien ? 'Alien weapon' : 'Rocket launcher';
break;
case EItemType.GLAUNCHER:
v3 = 'Grenade launcher';
break;
case EItemType.SNIPER:
v3 = v2.alien ? 'Alien weapon' : 'Sniper rifle';
break;
case EItemType.ARMOR:
v3 = 'Armor';
break;
case EItemType.DEVICE:
v3 = v2.alien ? 'Alien device' : 'Device';
break;
case EItemType.GRENADE:
v3 = 'Grenade';
break;
case EItemType.MEDIKIT:
v3 = 'Medikit';
break;
case EItemType.QUEST:
v3 = 'Quest item';
}
this.type_name.text = v3;
var v7 = v2.type2;
if (v7 == EWeapon.PASSIVE) {
this.target.gotoAndStop(2);
} else {
this.target.gotoAndStop(1);
var v5 = '';
switch (v7) {
case EWeapon.MELEE:
case EWeapon.SINGLE:
v5 = 'Single';
break;
case EWeapon.BURST:
v5 = 'Line';
break;
case EWeapon.SHOT:
v5 = 'Row';
break;
case EWeapon.SPLASH:
v5 = 'Area';
break;
case EWeapon.MASSIVE:
v5 = 'Mass';
break;
case EWeapon.SELF:
v5 = 'Self';
}
this.target.target.text = v5;
}
if (v2.spam) {
} else {
switch (v9) {
case EItem.WEAPON:
this.power.text = v2.dmg_min + '-' + v2.dmg_max;
this.reload.text = v2.ap;
break;
case EItem.ARMOR:
this.power.text = v2.dr;
break;
case EItem.DEVICE:
this.descri.text = v2.descri;
this.reload.text = v2.energy ? v2.energy : '-';
break;
case EItem.USE:
this.power.text = v2.dmg_min + '-' + v2.dmg_max;
break;
case EItem.HEAL:
if (v2.recharge) {
this.power._visible = false;
this.power_hp._visible = false;
this.power2._visible = true;
this.power_ep._visible = true;
this.power2.text = '+' + v2.heal;
} else {
this.power._visible = true;
this.power_hp._visible = true;
this.power2._visible = false;
this.power_ep._visible = false;
this.power.text = v2.heal;
}
}
}
this.level.text = v2.level;
this.level._visible = v2.level > 1;
this.level_caption._visible = this.level._visible;
this.aliens_only._visible = true == v2.alien;
this.hell_only._visible = true == v2.hell;
}
};
ASSetPropFlags(_global.TooltipItem.prototype, null, 1);
}
#endinitclip
}
movieClip 1980 __Packages.ScreenBattle {
#initclip
if (!_global.ScreenBattle) {
var v1 = function () {
super();
Log.Msg('ScreenBattle::ScreenBattle()');
(Core.Get()).playSound('start');
this.player_slots = new Array();
this.player_slots.push(this.slotA);
this.player_slots.push(this.slotB);
this.player_slots.push(this.slotC);
this.player_slots.push(this.slotD);
this.player_alive = new Array();
this.enemy_slots = new Array();
this.enemy_slots.push(this.slot5);
this.enemy_slots.push(this.slot6);
this.enemy_slots.push(this.slot7);
this.enemy_slots.push(this.slot8);
this.enemy_slots.push(this.slot1);
this.enemy_slots.push(this.slot2);
this.enemy_slots.push(this.slot3);
this.enemy_slots.push(this.slot4);
this.enemy_alive = new Array();
this.animation = false;
this.need_sync_alive_player = false;
this.need_sync_alive_enemy = false;
this.player_turn = false;
this.current_slot = null;
this.current_targets = [];
this.enemy_has_first_rank = false;
this.enemy_has_second_rank = false;
this.state = EBattle.NONE;
this.exp = 0;
this.drop = [];
this.int_meta = false;
this.aliens = false;
this.back.stop();
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
};
_global.ScreenBattle = v1;
_global.ScreenBattle extends Screen;
var v2 = v1.prototype;
v2.init = function () {
var v14 = (Core.Get()).game;
var v19 = mx.utils.Delegate.create(this, this.onPlayerAttack);
var v16 = mx.utils.Delegate.create(this, this.onPlayerDefend);
var v15 = mx.utils.Delegate.create(this, this.onPlayerDevice);
var v22 = mx.utils.Delegate.create(this, this.onPlayerUseItem);
var v21 = mx.utils.Delegate.create(this, this.onPlayerCancel);
var v18 = mx.utils.Delegate.create(this, this.onFriendTargeted);
var v25 = mx.utils.Delegate.create(this, this.onFriendUntargeted);
var v23 = mx.utils.Delegate.create(this, this.onFriendHealed);
var v10 = false;
var v11 = false;
var v6 = this.player_slots.length;
var v3 = 0;
while (v3 < v6) {
var v2 = this.player_slots[v3];
var v5 = v14.team[v3];
v2.setPlayer(v5);
if (v2.isAlive()) {
this.player_alive.push(v3);
v2.initSlot(v3, v18, v25, v23);
v2.initPlayer(v3, v19, v16, v15, v22, v21);
}
if (v5 == 7 && (Core.Get()).game.stats[7].perk1) {
v10 = true;
}
if (v5 == 11 && (Core.Get()).game.stats[11].perk1) {
v11 = true;
}
++v3;
}
v6 = this.player_alive.length;
v3 = 0;
while (v3 < v6) {
if (v10) {
this.player_slots[v3].addPerkEffect(7, 0);
}
if (v11) {
this.player_slots[v3].addPerkEffect(11, 0);
}
++v3;
}
var v20 = mx.utils.Delegate.create(this, this.onEnemyTargeted);
var v17 = mx.utils.Delegate.create(this, this.onEnemyUntargeted);
var v24 = mx.utils.Delegate.create(this, this.onEnemyAttacked);
var v8 = (Core.Get()).game.exchange;
this.int_meta = v8.band == 'int_meta';
(Core.Get()).game.exchange = null;
var v7 = (Core.Get()).world.bands[v8.band];
var v13 = [];
v6 = v7.length;
v3 = 0;
while (v3 < v6) {
if (v7[v3].lvl_min != undefined) {
if (v8.level < v7[v3].lvl_min) {
} else {
if (v7[v3].lvl_max != undefined) {
if (v8.level > v7[v3].lvl_max) {
} else {
v13.push(v3);
}
}
}
}
++v3;
}
if (!v13.length) {
Log.Err('No suitable band found! ' + v8.band);
return undefined;
}
var v12 = v7[ex.selectRandom(v13)].layout;
var v4 = v12.slice(0, 4);
var v9 = [];
while (v4.length) {
v9.push((v4.splice(Math.floor(Math.random() * v4.length), 1))[0]);
}
v4 = v12.slice(4, 8);
while (v4.length) {
v9.push((v4.splice(Math.floor(Math.random() * v4.length), 1))[0]);
}
v12 = v9;
v6 = this.enemy_slots.length;
v3 = 0;
while (v3 < v6) {
v2 = this.enemy_slots[v3];
v2.setEnemy(v12[v3], v8.level);
if ('A' == v2.band) {
this.aliens = true;
}
if (v2.isAlive()) {
this.enemy_alive.push(v3);
v2.initSlot(v3, v20, v17, v24);
this.exp += v2.exp;
this.addDrop(v2);
this.addKillEvents(v2);
if (this.isFirstRank(v3)) {
this.enemy_has_first_rank = true;
} else {
this.enemy_has_second_rank = true;
}
}
++v3;
}
this.btn_skip.setCaption('Skip');
this.btn_skip.setOnClick(mx.utils.Delegate.create(this, this.onSkipClick));
if (!(Core.Get()).debug_mode) {
this.btn_skip._visible = false;
}
this.back.gotoAndStop((Core.Get()).game.getBattleRegion());
this.use_items = v14.getUseableItems();
this.inventory.initFromSource(this.use_items, (Core.Get()).cfg.useitem_size, mx.utils.Delegate.create(this, this.onInventoryUse));
this.inventory._visible = false;
};
v2.addDrop = function (slot_) {
var v5 = (Core.Get()).game;
var v4 = v5.getDropModifier();
if (v5.getTeamLevel() > 20) {
v4 /= 4;
} else {
if (v5.getTeamLevel() > 10) {
v4 /= 2;
}
}
if (slot_.weapon > 0 && (Core.Get()).world.items[slot_.weapon].type3 != EItemType.PSI) {
if (ex.testChance(v4 * 10 / 100)) {
this.addItemToDrop(slot_.weapon);
}
}
var v6 = -1;
var v3 = [false, false, false, false, false];
switch (slot_.band) {
case 'M':
v3[0] = true;
v3[1] = true;
v3[3] = true;
v3[4] = true;
break;
case 'U':
v3[1] = true;
v3[4] = true;
break;
case 'G':
v3[0] = true;
v3[2] = true;
v3[3] = true;
break;
case 'B':
v3[0] = true;
v3[2] = true;
break;
case 'D':
v3[0] = true;
v3[1] = true;
v3[2] = true;
break;
case 'S':
v3[0] = true;
v3[2] = true;
v3[3] = true;
break;
case 'A':
v3[0] = true;
v3[1] = true;
v3[4] = true;
break;
case 'K':
v3[0] = true;
v3[2] = true;
break;
case 'X':
v3[4] = true;
}
if (slot_.level >= 23 && v3[4]) {
v6 = 4;
} else {
if (slot_.level >= 18 && v3[3]) {
v6 = 3;
} else {
if (slot_.level >= 13 && v3[2]) {
v6 = 2;
} else {
if (slot_.level >= 8 && v3[1]) {
v6 = 1;
} else {
if (slot_.level >= 1 && v3[0]) {
v6 = 0;
}
}
}
}
}
switch (v6) {
case 0:
if (ex.testChance(0.1)) {
if (slot_.level >= 5) {
if (ex.testChance(0.4)) {
this.addItemToDrop(69);
} else {
if (ex.testChance(0.5)) {
this.addItemToDrop(70);
} else {
this.addItemToDrop(71);
}
}
} else {
if (slot_.level >= 3) {
if (ex.testChance(0.6)) {
this.addItemToDrop(69);
} else {
this.addItemToDrop(70);
}
} else {
this.addItemToDrop(69);
}
}
}
break;
case 1:
if (ex.testChance(0.07000000000000001)) {
if (slot_.level >= 10) {
if (ex.testChance(0.6)) {
this.addItemToDrop(72);
} else {
this.addItemToDrop(73);
}
} else {
this.addItemToDrop(72);
}
}
break;
case 2:
if (ex.testChance(0.05)) {
if (slot_.level >= 15) {
if (ex.testChance(0.6)) {
this.addItemToDrop(74);
} else {
this.addItemToDrop(75);
}
} else {
this.addItemToDrop(75);
}
}
break;
case 3:
if (ex.testChance(0.03)) {
if (slot_.level >= 20) {
if (ex.testChance(0.6)) {
this.addItemToDrop(76);
} else {
this.addItemToDrop(77);
}
} else {
this.addItemToDrop(77);
}
}
break;
case 4:
if (ex.testChance(0.02)) {
this.addItemToDrop(78);
}
}
if (slot_.device >= 0 && !(Core.Get()).world.items[slot_.device].no_use && 'Q' != slot_.band) {
if (ex.testChance(v4 * 3 / 100)) {
this.addItemToDrop(slot_.device);
}
}
if (1 <= slot_.level && slot_.level < 8 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(139);
}
if (8 <= slot_.level && slot_.level < 15 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(140);
}
if (15 <= slot_.level && slot_.level < 22 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(141);
}
if (22 <= slot_.level && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(142);
}
if ('X' == slot_.band && ex.testChance(v4 * 0.5 / 100)) {
this.addItemToDrop(143);
}
if ('U' == slot_.band && ex.testChance(v4 * 0.1 / 100)) {
this.addItemToDrop(143);
}
if (1 <= slot_.level && slot_.level < 8 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(146);
}
if (3 <= slot_.level && slot_.level < 13 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(147);
}
if (8 <= slot_.level && slot_.level < 18 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(148);
}
if (13 <= slot_.level && slot_.level < 23 && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(149);
}
if (18 <= slot_.level && slot_.level && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(150);
}
if (23 <= slot_.level && slot_.level && ex.testChance(v4 * 5 / 100)) {
this.addItemToDrop(150);
}
if (3 <= slot_.level && slot_.level < 13 && ex.testChance(v4 * 3 / 100)) {
this.addItemToDrop(151);
}
if (13 <= slot_.level && slot_.level < 23 && ex.testChance(v4 * 3 / 100)) {
this.addItemToDrop(152);
}
if (23 <= slot_.level && slot_.level && ex.testChance(v4 * 3 / 100)) {
this.addItemToDrop(153);
}
if (6 <= slot_.level && slot_.level && ex.testChance(v4 * 2 / 100)) {
this.addItemToDrop(155);
}
if (1 == v5.getFlag('v_astralflower') && 10 > v5.getFlag('drop_astralflower') && 0 == v5.cur_region) {
v5.incFlag('drop_astralflower');
this.addItemToDrop(156);
}
if ('M' == slot_.band && 12 == v5.cur_region && !v5.getFlag('drop_vacuumengine')) {
v5.setFlag('drop_vacuumengine');
this.addItemToDrop(157);
}
if (1 == v5.getFlag('q_getcastlekey') && 16 == v5.cur_region && !v5.getFlag('drop_castlekey')) {
if (ex.testChance(0.05)) {
v5.setFlag('drop_castlekey');
this.addItemToDrop(158);
}
}
if (1 == v5.getFlag('q_medalion') && 'B' == slot_.band && !v5.getFlag('drop_medallion')) {
if (ex.testChance(0.01)) {
v5.setFlag('drop_medallion');
this.addItemToDrop(159);
}
}
};
v2.addItemToDrop = function (item_) {
var v4 = this.drop.length;
var v2 = 0;
while (v2 < v4) {
if (this.drop[v2].item == item_) {
++this.drop[v2].count;
return undefined;
}
++v2;
}
this.drop.push({'item': item_, 'count': 1});
};
v2.addKillEvents = function (slot_) {
var v1 = (Core.Get()).game;
if (5 == v1.getFlag('q_bigalienplan') && 'X' == slot_.band) {
v1.incFlag('kills_grabbers_harcos');
}
if ('QCYB' == slot_.creature) {
v1.incFlag('kills_inferno_ibrahim');
}
if (1 == v1.getFlag('q_cityclear') && 'B' == slot_.band && v1.cur_region == 9) {
v1.incFlag('kills_bandits_jax');
}
if (1 == v1.getFlag('q_gibsonquest') && 'D' == slot_.band && v1.cur_region == 11) {
v1.incFlag('kills_raiders_georg');
}
if (3 == v1.getFlag('q_gibsonquest') && 'U' == slot_.band && v1.cur_region == 11) {
v1.incFlag('kills_mutants_georg');
}
};
v2.onSkipClick = function () {
this.btn_skip._visible = false;
var v4 = this.enemy_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.enemy_slots[v2];
if (v3.isAlive()) {
v3.takeDamage(999, EHit.DAMAGE);
}
++v2;
}
if (this.player_turn) {
this.current_slot.deselect();
this.current_slot.dehilite();
this.state = EBattle.NONE;
this.player_turn = false;
}
this.syncAliveEnemy();
};
v2.onEnterFrame = function () {
if (!this.enabled) {
return undefined;
}
if (this.player_turn) {
return undefined;
}
if (this.animation) {
this.animation = false;
var v2 = this.player_slots.length;
var v3 = 0;
while (v3 < v2) {
var v4 = this.player_slots[v3];
this.animation = v4.updateAnimation() || this.animation;
if (v4.running_back && v4.animation == BattleSlot.time_run_back) {
this.effectRunBack(v4);
}
++v3;
}
v2 = this.enemy_slots.length;
v3 = 0;
while (v3 < v2) {
v4 = this.enemy_slots[v3];
this.animation = v4.updateAnimation() || this.animation;
if (v4.running_back && v4.animation == BattleSlot.time_run_back) {
this.effectRunBack(v4);
}
++v3;
}
}
if (this.animation) {
return undefined;
}
this.syncAliveEnemy();
this.syncAlivePlayer();
if (this.animation) {
return undefined;
}
if (!this.player_alive.length) {
if (this.int_meta) {
(Core.Get()).game.in_area = 6;
(Core.Get()).goArea();
} else {
(Core.Get()).goLose();
}
return undefined;
}
if (!this.enemy_alive.length) {
(Core.Get()).game.resetAreaFlags();
(Core.Get()).game.exchange = {'exp': this.exp, 'drop': this.drop};
(Core.Get()).popupWinBattle();
return undefined;
}
v2 = 0;
v2 = this.player_alive.length;
v3 = 0;
while (v3 < v2) {
v4 = this.player_slots[this.player_alive[v3]];
if (v4.isReady()) {
this.playerTurn(v4);
return undefined;
}
++v3;
}
v2 = this.enemy_alive.length;
v3 = 0;
while (v3 < v2) {
v4 = this.enemy_slots[this.enemy_alive[v3]];
if (v4.isReady()) {
this.enemyTurn(v4);
return undefined;
}
++v3;
}
v2 = this.player_alive.length;
v3 = 0;
while (v3 < v2) {
v4 = this.player_slots[this.player_alive[v3]];
v4.tick();
++v3;
}
v2 = this.enemy_alive.length;
v3 = 0;
while (v3 < v2) {
v4 = this.enemy_slots[this.enemy_alive[v3]];
v4.tick();
++v3;
}
};
v2.enemyTurn = function (slot_) {
if (slot_.getBuff('repeat_attack')) {
this.doAttack(slot_, this.current_targets);
return undefined;
}
if (slot_.isRunning()) {
this.doAttack(slot_, this.current_targets);
return undefined;
}
this.startTurn(slot_);
if (slot_.device >= 0 && slot_.cur_energy >= slot_.device_mp) {
var v3 = (Core.Get()).world.items[slot_.device];
this.atk_mode = v3.type2;
if (v3.heal) {
this.selectEnemyHealTargets(this.atk_mode);
} else {
this.selectEnemyTargets(this.atk_mode);
}
if (this.aiDevice(slot_.device, this.current_targets)) {
this.useDevice(slot_, this.current_targets);
return undefined;
}
}
this.atk_mode = (Core.Get()).world.items[slot_.weapon].type2;
this.selectEnemyTargets(this.atk_mode);
this.doAttack(slot_, this.current_targets);
};
v2.aiDevice = function (device_, targets_) {
if (!targets_.length) {
return false;
}
switch (device_) {
return true;
case 93:
var v3 = targets_[0].calcDR();
if (v3 > targets_[0].level / 2) {
return true;
}
return false;
case 94:
case 95:
var v5 = 0;
var v8 = targets_.length;
var v2 = 0;
while (v2 < v8) {
var v3 = targets_[0].calcDR();
if (v3 > targets_[0].level / 2) {
++v5;
}
++v2;
}
return v5 > 1;
case 106:
var v5 = 0;
var v8 = targets_.length;
var v2 = 0;
while (v2 < v8) {
if (!targets_[v2].getDebuff('dev_venom3')) {
++v5;
}
++v2;
}
return v5 > 1;
case 108:
case 109:
case 110:
var v9 = targets_[0];
return v9.cur_hp < v9.max_hp * 2 / 3;
case 113:
return !targets_[0].getDebuff('dev_minus_ap_regen');
case 115:
return targets_[0].getBuff('dev_dr_alien') < 0.6;
case 120:
var v6 = false;
var v8 = targets_.length;
var v2 = 0;
while (v2 < v8) {
if (targets_[v2].cur_hp < targets_[v2].max_hp) {
v6 = true;
break;
}
++v2;
}
return v6;
case 121:
return !targets_[0].getBuff('sure_crit');
case 122:
return !targets_[0].getBuff('dev_charge_dmg') && !targets_[0].getBuff('charge_dmg') && ex.testChance(0.5);
case 124:
return !targets_[0].getBuff('vr_attack') && targets_[0].cur_hp < 0.7 * targets_[0].max_hp;
case 125:
var v7 = 0;
var v4 = 0;
var v8 = targets_.length;
var v2 = 0;
while (v2 < v8) {
if (targets_[v2].device != 125) {
++v4;
if (targets_[v2].cur_action < targets_[v2].max_action / 2) {
++v7;
}
}
++v2;
}
return v4 > 0 && v7 >= v4 / 2;
case 138:
return !targets_[0].getBuff('dekkis_special');
}
return true;
};
v2.selectEnemyHealTargets = function (atk_type) {
var v6 = [];
switch (atk_type) {
case EWeapon.SINGLE:
var v5 = 999;
var v7 = -1;
var v8 = this.enemy_alive.length;
var v2 = 0;
while (v2 < v8) {
var v3 = this.enemy_alive[v2];
var v4 = this.enemy_slots[v3];
if (v4.cur_hp < v5) {
v5 = v4.cur_hp;
v7 = v3;
}
++v2;
}
if (v7 > 0) {
v6.push(v7);
}
break;
case EWeapon.SELF:
v6 = [this.current_slot.id];
break;
case EWeapon.MASSIVE:
v6 = this.enemy_alive.slice(0);
}
this.current_targets = [];
var v8 = v6.length;
var v2 = 0;
while (v2 < v8) {
var v3 = v6[v2];
if (this.enemy_slots[v3].isAlive()) {
this.current_targets.push(this.enemy_slots[v3]);
}
++v2;
}
};
v2.selectEnemyTargets = function (atk_type) {
var v4 = [];
switch (atk_type) {
case EWeapon.MELEE:
case EWeapon.SINGLE:
case EWeapon.BURST:
v4 = [this.player_alive[ex.randomInt(this.player_alive.length)]];
break;
case EWeapon.SHOT:
case EWeapon.MASSIVE:
v4 = this.player_alive.slice(0);
break;
case EWeapon.SPLASH:
var v6 = this.testPlayerSplash();
switch (v6) {
case 0:
v4 = [0, 1];
break;
case 1:
v4 = [0, 1, 2];
break;
case 2:
v4 = [1, 2, 3];
break;
case 3:
v4 = [2, 3];
}
}
this.current_targets = [];
var v5 = v4.length;
var v2 = 0;
while (v2 < v5) {
var v3 = v4[v2];
if (this.player_slots[v3].isAlive()) {
this.current_targets.push(this.player_slots[v3]);
}
++v2;
}
};
v2.testPlayerSplash = function () {
var v3 = [0, 0, 0, 0];
if (this.player_slots[0].isAlive()) {
++v3[0];
++v3[1];
}
if (this.player_slots[1].isAlive()) {
++v3[0];
++v3[1];
++v3[2];
}
if (this.player_slots[2].isAlive()) {
++v3[1];
++v3[2];
++v3[3];
}
if (this.player_slots[3].isAlive()) {
++v3[2];
++v3[3];
}
var v2 = 0;
while (v2 < 4) {
if (!this.player_slots[v2].isAlive()) {
v3[v2] = 0;
}
++v2;
}
var v5 = [];
var v4 = 0;
v2 = 0;
while (v2 < 4) {
if (v3[v2] > v4) {
v4 = v3[v2];
v5 = [];
}
if (v3[v2] == v4) {
v5.push(v2);
}
++v2;
}
return v5[ex.randomInt(v5.length)];
};
v2.doAttack = function (atk_, targets_) {
this.animation = true;
if (!atk_.isRunning() && (Core.Get()).world.items[atk_.weapon].type2 == EWeapon.MELEE) {
if (targets_.length != 1) {
Log.Err('Melee attack targeting error');
}
atk_.runTo(targets_[0]);
this.effectRun(atk_);
return undefined;
}
atk_.attack();
if (atk_.tryAttack()) {
var v12 = 0;
var v11 = targets_.length;
var v7 = 0;
while (v7 < v11) {
var v3 = targets_[v7];
if (!v3.isAlive()) {
} else {
if (this.atk_mode == EWeapon.MELEE && v3.getBuff('melee_immune')) {
v3.takeDamage(0, EHit.IMMUNE);
} else {
if (v3.getBuff('dev_counter')) {
switch (this.atk_mode) {
if (this.atk_mode !== EWeapon.BURST) {
} else {
case EWeapon.MELEE:
case EWeapon.SINGLE:
atk_.takeDamage(ex.randomIntIn(10, 12), EHit.POISON);
atk_.syncHP();
}
}
}
var v9 = 1 == v11 && ((Core.Get()).world.items[atk_.weapon].type3 == EItemType.RLAUNCHER || (Core.Get()).world.items[atk_.weapon].type3 == EItemType.GLAUNCHER);
if (!v9 && !v3.tryHit()) {
} else {
if (atk_.getBuff('perk_kat_mass_atk')) {
}
var v4 = atk_.isCritical() ? EHit.CRITICAL : EHit.DAMAGE;
var v5 = (EHit.CRITICAL == v4) ? atk_.getCritDamage() : atk_.getDamage();
if (atk_.getBuff('sure_crit') || atk_.getBuff('perk_nina_sure_crit') || atk_.getBuff('perk_key_crit_chance') && this.aliens) {
if (EHit.CRITICAL == v4) {
v5 = atk_.getBestDamage();
} else {
v4 = EHit.CRITICAL;
v5 = atk_.getCritDamage();
}
}
var v8 = atk_.getBuff('perk_kage_drain_ap');
if (EHit.CRITICAL == v4) {
v8 *= 2;
}
if (v8) {
v3.takeDamage(v8, EHit.DRAIN_AP);
}
if (EHit.CRITICAL == v4 && v3.getBuff('perk_nina_anger')) {
v3.buff.perk_nina_dmg = v3.getBuff('perk_nina_anger');
}
if (!atk_.isEnemy() && this.atk_mode == EWeapon.BURST) {
if (!this.isFirstRank(v3.id)) {
var v6 = 1;
switch (targets_.length) {
case 3:
v6 = 0.75;
break;
case 2:
v6 = 1;
}
v5 *= v6;
}
}
if (EHit.CRITICAL == v4) {
(Core.Get()).playSound('crit_hit', v3.isEnemy() ? 1 : -1);
}
v12 += v3.takeDamage(v5, v4);
}
}
}
++v7;
}
if (atk_.getBuff('dev_vr')) {
atk_.takeDamage(atk_.getBuff('dev_vr') * v12, EHit.HEAL);
}
if (atk_.getBuff('vr_attack')) {
atk_.takeDamage(atk_.getBuff('vr_attack') * v12, EHit.HEAL);
}
if (atk_.isEnemy()) {
this.need_sync_alive_player = true;
} else {
this.need_sync_alive_enemy = true;
}
}
atk_.removeBuff('sure_crit');
atk_.removeBuff('vr_attack');
atk_.removeBuff('vr_attack_minus_dmg');
atk_.removeBuff('dekkis_special');
};
v2.useItem = function (atk_, targets_, item_) {
this.animation = true;
this.current_slot.useItem(item_);
var v9 = (Core.Get()).world.items[item_].type3;
if (v9 == EItemType.GRENADE) {
targets_[0].explodeGrenade();
var v7 = targets_.length;
var v2 = 0;
while (v2 < v7) {
var v3 = targets_[v2];
v3.doEffect('grenade_explosion');
var v6 = atk_.getItemDamage(item_);
v3.takeDamage(v6, EHit.DAMAGE);
++v2;
}
this.need_sync_alive_enemy = true;
} else {
if (v9 == EItemType.MEDIKIT) {
var v6 = atk_.getItemHeal(item_);
var v7 = targets_.length;
var v2 = 0;
while (v2 < v7) {
var v3 = targets_[v2];
if ((Core.Get()).world.items[item_].recharge) {
v3.takeDamage(v6, EHit.RECHARGE);
} else {
v3.takeDamage(v6, EHit.HEAL);
}
++v2;
}
}
}
v7 = this.use_items.length;
v2 = 0;
while (v2 < v7) {
if (this.use_items[v2].item == item_) {
--this.use_items[v2].count;
if (0 == this.use_items[v2].count) {
this.use_items.splice(v2, 1);
}
break;
}
++v2;
}
(Core.Get()).game.takeInventory(item_);
};
v2.syncAlivePlayer = function () {
var v4 = new Array();
var v5 = this.player_alive.length;
var v2 = 0;
while (v2 < v5) {
var v3 = this.player_slots[this.player_alive[v2]];
if (v3.isAlive()) {
v4.push(this.player_alive[v2]);
} else {
v3.die();
this.animation = true;
}
++v2;
}
this.player_alive = v4;
this.need_sync_alive_player = false;
};
v2.syncAliveEnemy = function () {
this.enemy_has_first_rank = false;
this.enemy_has_second_rank = false;
var v5 = new Array();
var v6 = this.enemy_alive.length;
var v3 = 0;
while (v3 < v6) {
var v2 = this.enemy_alive[v3];
var v4 = this.enemy_slots[v2];
if (v4.isAlive()) {
v5.push(v2);
if (this.isFirstRank(v2)) {
this.enemy_has_first_rank = true;
} else {
this.enemy_has_second_rank = true;
}
} else {
v4.die();
this.animation = true;
this.addKillsEffects();
}
++v3;
}
this.enemy_alive = v5;
this.need_sync_alive_enemy = false;
};
v2.addKillsEffects = function () {
var v4 = this.player_alive.length;
var v3 = 0;
while (v3 < v4) {
var v2 = this.player_slots[this.player_alive[v3]];
if (v2.getBuff('perk_kurt_accum_dmg')) {
v2.incBuffEffect('perk_kurt_accum_dmg_bonus', v2.getBuff('perk_kurt_accum_dmg'));
}
++v3;
}
};
v2.isFirstRank = function (id_) {
return id_ < 4;
};
v2.playerTurn = function (slot_) {
if (slot_.isRunning()) {
if (slot_ != this.current_slot) {
Log.Err('playerTurn() : Melee attack sequence error');
}
this.doAttack(slot_, this.current_targets);
return undefined;
}
if (slot_.getBuff('repeat_attack')) {
this.doAttack(slot_, this.current_targets);
return undefined;
}
this.current_slot = slot_;
this.player_turn = true;
slot_.select();
this.startTurn(slot_);
};
v2.startTurn = function (slot_) {
this.current_slot = slot_;
if (slot_.getBuff('dev_mass_hp_regen')) {
var v5 = slot_.isEnemy() ? this.enemy_alive : this.player_alive;
var v6 = slot_.isEnemy() ? this.enemy_slots : this.player_slots;
var v7 = v5.length;
var v2 = 0;
while (v2 < v7) {
var v3 = v6[v5[v2]];
var v8 = v3.max_hp * slot_.getBuff('dev_mass_hp_regen');
v3.regenHP(v8);
++v2;
}
(Core.Get()).playSound('snd_dev_heal', slot_.enemy ? 1 : -1);
}
if (slot_.getBuff('dev_hp_regen')) {
v8 = slot_.max_hp * slot_.getBuff('dev_hp_regen');
slot_.regenHP(v8);
(Core.Get()).playSound('snd_dev_heal', slot_.enemy ? 1 : -1);
}
slot_.startTurn();
};
v2.playerTurnEnd = function () {
this.current_slot.deselect();
this.current_slot.dehilite();
this.state = EBattle.NONE;
if (!this.current_slot.isRunning()) {
this.current_slot = null;
}
this.player_turn = false;
this.animation = true;
};
v2.onPlayerAttack = function (i_) {
(Core.Get()).playSound('button_click');
this.state = EBattle.ATTACK;
this.atk_mode = (Core.Get()).world.items[this.current_slot.weapon].type2;
if (this.current_slot.getBuff('perk_kat_mass_atk')) {
this.atk_mode = EWeapon.MASSIVE;
}
this.current_slot.activateControls();
this.enableEnemies();
};
v2.onPlayerDefend = function (i_) {
(Core.Get()).playSound('button_click');
this.current_slot.defend();
this.playerTurnEnd();
};
v2.onPlayerDevice = function (i_) {
(Core.Get()).playSound('button_click');
this.state = EBattle.USE_DEVICE;
this.atk_mode = (Core.Get()).world.items[this.current_slot.device].type2;
if (undefined == (Core.Get()).world.items[this.current_slot.device].heal) {
this.enableEnemies();
} else {
this.enableFriends();
}
this.current_slot.activateControls();
};
v2.onPlayerUseItem = function (i_) {
(Core.Get()).playSound('button_click');
this.state = EBattle.INVENTORY;
this.current_slot.activateControls();
this.inventory._visible = true;
this.inventory.level = this.current_slot.level;
this.inventory.sync();
(Core.Get()).playSound('popup');
};
v2.onInventoryUse = function (id_) {
var v3 = this.inventory.getItemFromCell(id_);
var v2 = (Core.Get()).world.items[v3];
var v4 = v2.level;
if (v4 <= this.current_slot.level) {
(Core.Get()).playSound('item_take');
} else {
(Core.Get()).playSound('item_put');
return undefined;
}
this.state = EBattle.USE_ITEM;
this.active_item = v3;
this.atk_mode = v2.type2;
this.inventory._visible = false;
if (undefined == v2.heal) {
this.enableEnemies();
} else {
this.enableFriends();
}
};
v2.onPlayerCancel = function (i_) {
(Core.Get()).playSound('button_click');
switch (this.state) {
case EBattle.ATTACK:
this.disableEnemies();
break;
case EBattle.INVENTORY:
this.inventory._visible = false;
break;
case EBattle.USE_ITEM:
this.disableEnemies();
this.disableFriends();
break;
case EBattle.USE_DEVICE:
this.disableEnemies();
this.disableFriends();
}
this.state = EBattle.NONE;
this.current_slot.resetControls();
};
v2.onEnemyTargeted = function (i_) {
if (this.state == EBattle.ATTACK || this.state == EBattle.USE_ITEM || this.state == EBattle.USE_DEVICE) {
this.dehiliteTargets();
var v2 = [];
switch (this.atk_mode) {
case EWeapon.MELEE:
if (this.enemy_has_first_rank == this.isFirstRank(i_)) {
v2 = [i_];
}
break;
case EWeapon.SINGLE:
v2 = [i_];
break;
case EWeapon.BURST:
switch (this.current_slot.id) {
case 0:
switch (i_) {
case 0:
case 4:
v2 = [0, 4];
break;
case 1:
case 5:
case 6:
if (this.enemy_slots[1].isAlive()) {
v2 = [1, 5, 6];
} else {
v2 = [i_];
}
break;
case 2:
case 7:
v2 = [2, 7];
break;
case 3:
v2 = [3];
}
break;
case 1:
switch (i_) {
case 0:
case 4:
v2 = [0, 4];
break;
case 1:
case 5:
v2 = [1, 5];
break;
case 2:
case 6:
case 7:
if (this.enemy_slots[2].isAlive()) {
v2 = [2, 6, 7];
} else {
v2 = [i_];
}
break;
case 3:
v2 = [3];
}
break;
case 2:
switch (i_) {
case 0:
v2 = [0];
break;
case 1:
case 4:
case 5:
if (this.enemy_slots[1].isAlive()) {
v2 = [1, 4, 5];
} else {
v2 = [i_];
}
break;
case 2:
case 6:
v2 = [2, 6];
break;
case 3:
case 7:
v2 = [3, 7];
}
break;
case 3:
switch (i_) {
case 0:
v2 = [0];
break;
case 1:
case 4:
v2 = [1, 4];
break;
case 2:
case 5:
case 6:
v2 = [2, 5, 6];
break;
if (this.enemy_slots[2].isAlive()) {
v2 = [2, 5, 6];
} else {
v2 = [i_];
}
break;
case 3:
case 7:
v2 = [3, 7];
}
}
break;
case EWeapon.SHOT:
if (this.enemy_has_first_rank) {
v2 = [0, 1, 2, 3];
} else {
v2 = [4, 5, 6, 7];
}
break;
case EWeapon.SPLASH:
switch (i_) {
case 0:
case 4:
v2 = [0, 1, 4, 5];
break;
case 1:
case 5:
v2 = [0, 1, 2, 4, 5, 6];
break;
case 2:
case 6:
v2 = [1, 2, 3, 5, 6, 7];
break;
case 3:
case 7:
v2 = [2, 3, 6, 7];
}
break;
case EWeapon.MASSIVE:
v2 = [0, 1, 2, 3, 4, 5, 6, 7];
}
this.current_targets = [];
var v6 = v2.length;
var v4 = 0;
while (v4 < v6) {
var v3 = v2[v4];
if (this.enemy_slots[v3].isAlive()) {
this.current_targets.push(this.enemy_slots[v3]);
this.enemy_slots[v3].hilite();
}
++v4;
}
}
};
v2.onEnemyUntargeted = function (i_) {
if (this.state == EBattle.ATTACK || this.state == EBattle.USE_ITEM || this.state == EBattle.USE_DEVICE) {
this.dehiliteTargets();
}
};
v2.dehiliteTargets = function () {
var v3 = this.enemy_slots.length;
var v2 = 0;
while (v2 < v3) {
if (this.enemy_slots[v2].isAlive()) {
this.enemy_slots[v2].dehilite();
}
++v2;
}
};
v2.onEnemyAttacked = function (i_) {
if (this.current_targets.length) {
if (this.state == EBattle.ATTACK) {
this.disableEnemies();
this.dehiliteTargets();
this.doAttack(this.current_slot, this.current_targets);
this.playerTurnEnd();
} else {
if (this.state == EBattle.USE_ITEM) {
this.disableEnemies();
this.dehiliteTargets();
this.useItem(this.current_slot, this.current_targets, this.active_item);
this.playerTurnEnd();
} else {
if (this.state == EBattle.USE_DEVICE) {
this.disableEnemies();
this.dehiliteTargets();
this.useDevice(this.current_slot, this.current_targets);
this.playerTurnEnd();
}
}
}
}
};
v2.enableEnemies = function () {
var v3 = this.enemy_alive.length;
var v2 = 0;
while (v2 < v3) {
this.enemy_slots[this.enemy_alive[v2]].enable();
++v2;
}
};
v2.disableEnemies = function () {
var v3 = this.enemy_alive.length;
var v2 = 0;
while (v2 < v3) {
this.enemy_slots[this.enemy_alive[v2]].disable();
++v2;
}
};
v2.enableFriends = function () {
var v3 = this.player_alive.length;
var v2 = 0;
while (v2 < v3) {
this.player_slots[this.player_alive[v2]].enable();
++v2;
}
};
v2.disableFriends = function () {
var v3 = this.player_alive.length;
var v2 = 0;
while (v2 < v3) {
this.player_slots[this.player_alive[v2]].disable();
++v2;
}
};
v2.onFriendTargeted = function (i_) {
if (this.state == EBattle.USE_ITEM || this.state == EBattle.USE_DEVICE) {
this.dehiliteHealTargets();
var v4 = [];
switch (this.atk_mode) {
case EWeapon.MELEE:
case EWeapon.SINGLE:
case EWeapon.BURST:
v4 = [i_];
break;
case EWeapon.SHOT:
case EWeapon.MASSIVE:
v4 = [0, 1, 2, 3];
break;
case EWeapon.SPLASH:
switch (i_) {
case 0:
v4 = [0, 1];
break;
case 1:
v4 = [0, 1, 2];
break;
case 2:
v4 = [1, 2, 3];
break;
case 3:
v4 = [2, 3];
}
break;
case EWeapon.SELF:
v4 = [this.current_slot.id];
}
this.current_targets = [];
var v5 = v4.length;
var v3 = 0;
while (v3 < v5) {
var v2 = v4[v3];
if (this.player_slots[v2].isAlive()) {
this.current_targets.push(this.player_slots[v2]);
this.player_slots[v2].hiliteHeal();
}
++v3;
}
}
};
v2.onFriendUntargeted = function (i_) {
if (this.state == EBattle.USE_ITEM || this.state == EBattle.USE_DEVICE) {
this.dehiliteHealTargets();
}
};
v2.dehiliteHealTargets = function () {
var v3 = this.player_slots.length;
var v2 = 0;
while (v2 < v3) {
if (this.player_slots[v2].isAlive()) {
this.player_slots[v2].dehiliteHeal();
}
++v2;
}
};
v2.onFriendHealed = function (i_) {
if (this.current_targets.length) {
if (this.state == EBattle.USE_ITEM) {
this.disableFriends();
this.dehiliteHealTargets();
this.useItem(this.current_slot, this.current_targets, this.active_item);
this.playerTurnEnd();
} else {
if (this.state == EBattle.USE_DEVICE) {
this.disableFriends();
this.dehiliteHealTargets();
this.useDevice(this.current_slot, this.current_targets);
this.playerTurnEnd();
}
}
}
};
v2.effectRun = function (atk_) {
var v2 = this.land_eff_ori.attachMovie('run_trace', '', this.land_eff_ori.getNextHighestDepth());
v2._x = atk_.run_to.x;
v2._y = atk_.run_to.y;
var v4 = v2._x - atk_.base_pos.x;
var v3 = v2._y - atk_.base_pos.y;
var v6 = Math.sqrt(v4 * v4 + v3 * v3);
v2._xscale = (v6 / 200) * 100;
v2._rotation = 180 + Math.atan2(v3, v4) * 180 / Math.PI;
v2.blendMode = 'add';
v2.gotoAndPlay('run');
};
v2.effectRunBack = function (atk_) {
var v2 = this.land_eff_ori.attachMovie('run_trace', '', this.land_eff_ori.getNextHighestDepth());
v2._x = atk_.run_from.x;
v2._y = atk_.run_from.y;
var v4 = v2._x - atk_.run_to.x;
var v3 = v2._y - atk_.run_to.y;
var v6 = Math.sqrt(v4 * v4 + v3 * v3);
v2._xscale = (v6 / 200) * 100;
v2._rotation = 180 + Math.atan2(v3, v4) * 180 / Math.PI;
v2.blendMode = 'add';
v2.gotoAndPlay('run_back');
};
v2.useDevice = function (atk_, targets_) {
this.animation = true;
atk_.useDevice();
switch (atk_.device) {
case 80:
case 81:
case 82:
case 83:
case 114:
case 118:
case 128:
case 129:
case 135:
case 137:
var v8 = targets_.length;
var v3 = 0;
while (v3 < v8) {
var v6 = targets_[v3];
if (v6.tryHitDevice(atk_.device)) {
var v7 = 0;
switch (atk_.device) {
case 118:
v7 = v6.cur_hp * ex.randomIntIn(30, 60) / 100;
break;
case 129:
v7 = 999;
break;
default:
v7 = atk_.getDeviceDamage();
}
if (114 == atk_.device) {
v6.takeDamage(v7, EHit.DISCHARGE);
} else {
v6.takeDamage(v7, EHit.POISON);
}
if (137 == atk_.device) {
atk_.takeDamage(50, EHit.POISON);
atk_.syncHP();
}
v6.syncHP();
}
++v3;
}
break;
case 90:
case 91:
case 92:
atk_.addDeviceEffect(atk_.device);
atk_.defendNoReset();
break;
case 108:
case 109:
case 110:
case 120:
var v8 = targets_.length;
var v3 = 0;
while (v3 < v8) {
var v6 = targets_[v3];
var v4 = 0;
switch (atk_.device) {
case 120:
v4 = v6.max_hp * 20 / 100;
break;
default:
v4 = atk_.getDeviceHeal();
}
v6.takeDamage(v4, EHit.HEAL);
++v3;
}
break;
case 116:
case 117:
case 136:
var v8 = targets_.length;
var v3 = 0;
while (v3 < v8) {
var v6 = targets_[v3];
var v7 = atk_.getDeviceDamage();
v6.takeDamage(v7, EHit.POISON);
v6.addDeviceEffect(atk_.device);
v6.syncHP();
++v3;
}
break;
default:
var v8 = targets_.length;
var v3 = 0;
while (v3 < v8) {
var v6 = targets_[v3];
v6.addDeviceEffect(atk_.device);
++v3;
}
}
this.need_sync_alive_player = true;
this.need_sync_alive_enemy = true;
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
if (this.inventory._visible && this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v2 = this.inventory.getPosAt(this._xmouse, this._ymouse);
var v3 = this.inventory.src;
var v4 = (0 <= v2 && v2 < v3.length) ? v3[v2].item : -1;
this.tooltip.setItem(v4, true);
if (-1 != v4) {
this.placeTooltip();
}
return undefined;
}
this.tooltip.setItem(-1);
};
v2.placeTooltip = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip._x = this._xmouse - 32;
this.tooltip._y = this._ymouse + 16;
var v3 = this.tooltip._x + this.tooltip._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip._x -= v3;
}
var v4 = this.tooltip._y + this.tooltip._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip._y = this._ymouse - 8 - this.tooltip._height;
}
};
v2.enable = function () {
this.enabled = true;
this.btn_skip.enable();
this.btn_enkord.enabled = true;
};
v2.disable = function () {
this.enabled = false;
this.btn_skip.disable();
this.btn_enkord.enabled = false;
};
ASSetPropFlags(_global.ScreenBattle.prototype, null, 1);
}
#endinitclip
}
movieClip 1981 __Packages.EBattle {
#initclip
if (!_global.EBattle) {
var v1 = function () {};
_global.EBattle = v1;
var v2 = v1.prototype;
v1.NONE = 0;
v1.ATTACK = 1;
v1.INVENTORY = 2;
v1.USE_ITEM = 3;
v1.USE_DEVICE = 4;
ASSetPropFlags(_global.EBattle.prototype, null, 1);
}
#endinitclip
}
movieClip 1982 __Packages.TeamSlot {
#initclip
if (!_global.TeamSlot) {
var v1 = function () {
super();
this.char.stop();
this.btn = this.btn;
this.back.stop();
};
_global.TeamSlot = v1;
_global.TeamSlot extends MovieClip;
var v2 = v1.prototype;
v2.init = function (id_, onPress_, onRelease_) {
onPress_.id = id_;
this.btn.onPress = onPress_;
onRelease_.id = id_;
this.btn.onRelease = onRelease_;
this.btn.onReleaseOutside = onRelease_;
};
v2.setChar = function (id) {
if (id >= 0) {
var v6 = (Core.Get()).world;
var v8 = v6.chars[id];
var v5 = (Core.Get()).game;
var v2 = v5.stats[id];
this.name.text = v8.name;
this.char.gotoAndStop(id + 1);
this.char._visible = true;
var v9 = 20 + v2.vit;
var v4 = v2.def * 0.1;
var v7 = v5.equipment[id].armor;
if (v7 >= 0) {
v4 += v6.items[v7].dr;
}
var v10 = 2 * v2.tch;
this.hp.text = v9;
this.dr.text = Math.round(v4);
this.ep.text = v10;
this.btn.enable();
} else {
this.name.text = '---';
this.char._visible = false;
this.hp.text = '-';
this.dr.text = '-';
this.ep.text = '-';
this.btn.disable();
}
};
v2.flip = function () {
this.char._xscale = -100;
};
v2.isHit = function (x_, y_) {
return this.btn.hitTest(x_, y_);
};
v2.enter = function () {
this.btn.enter();
};
v2.leave = function () {
this.btn.leave();
};
v2.hilite = function () {
this.btn.hilite();
};
v2.dehilite = function () {
this.btn.dehilite();
};
v2.setBack = function (frame_) {
this.back.gotoAndStop(frame_);
};
v2.setGlow = function (color_) {
this.char.filters = [Filters.GlowLight(color_)];
};
ASSetPropFlags(_global.TeamSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1983 __Packages.TooltipChar {
#initclip
if (!_global.TooltipChar) {
var v1 = function () {
super();
this.id = -1;
this._visible = false;
};
_global.TooltipChar = v1;
_global.TooltipChar extends MovieClip;
var v2 = v1.prototype;
v2.setChar = function (id_) {
if (this.id == id_) {
return undefined;
}
this.id = id_;
if (id_ < 0) {
this._visible = false;
} else {
this._visible = true;
var v4 = (Core.Get()).world.chars[this.id];
var v2 = (Core.Get()).game.stats[this.id];
this.level.text = v2.level;
this.exp._visible = v2.level < 30;
this.exp._xscale = 100 * v2.exp / (Core.Get()).world.level_exp[v2.level];
this.name.text = v4.name;
this.vit.text = v2.vit;
this.acc.text = v2.acc;
this.def.text = v2.def;
this.dgr.text = v2.dgr;
this.tch.text = v2.tch;
this.med.text = v2.med;
this.lck.text = v2.lck;
var v3 = (Core.Get()).world.perks[this.id];
this.perk1.caption.text = v3[0].name;
this.perk1.descri.text = v3[0].descri;
this.perk2.caption.text = v3[1].name;
this.perk2.descri.text = v3[1].descri;
this.perk3.caption.text = v3[2].name;
this.perk3.descri.text = v3[2].descri;
this.perk1.caption.filters = v2.perk1 ? [] : [Filters.BlurDeep()];
this.perk1.descri.filters = v2.perk1 ? [] : [Filters.BlurDeep()];
this.perk2.caption.filters = v2.perk2 ? [] : [Filters.BlurDeep()];
this.perk2.descri.filters = v2.perk2 ? [] : [Filters.BlurDeep()];
this.perk3.caption.filters = v2.perk3 ? [] : [Filters.BlurDeep()];
this.perk3.descri.filters = v2.perk3 ? [] : [Filters.BlurDeep()];
}
};
ASSetPropFlags(_global.TooltipChar.prototype, null, 1);
}
#endinitclip
}
movieClip 1984 __Packages.ScreenTeam {
#initclip
if (!_global.ScreenTeam) {
var v1 = function () {
super();
Log.Msg('ScreenTeam::ScreenTeam()');
this.game = (Core.Get()).game;
this.team_slots = new Array();
this.team_slots.push(this.slotA);
this.team_slots.push(this.slotB);
this.team_slots.push(this.slotC);
this.team_slots.push(this.slotD);
this.team_slots.push(this.slot1);
this.team_slots.push(this.slot2);
this.team_slots.push(this.slot3);
this.team_slots.push(this.slot4);
this.team_slots.push(this.slot5);
this.team_slots.push(this.slot6);
this.team_slots.push(this.slot7);
this.team_slots.push(this.slot8);
this.drag_obj = null;
this.hover_slot = -1;
this.tooltip = this.tooltip;
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
};
_global.ScreenTeam = v1;
_global.ScreenTeam extends Screen;
var v2 = v1.prototype;
v2.init = function () {
(Core.Get()).switchMusic(0);
var v4 = this.team_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.team_slots[v2];
v3.init(v2, mx.utils.Delegate.create(this, this.onSlotDrag), mx.utils.Delegate.create(this, this.onSlotDrop));
v3.setChar(this.game.team[v2]);
if (v2 < 4) {
v3.flip();
v3.setBack(1 + v2 % 2);
v3.setGlow(13434828);
} else {
v3.setBack(3 + (v2 % 2 + Math.floor((v2 - 4) / 4)) % 2);
v3.setGlow(16777215);
}
++v2;
}
this.tooltip.setChar(-1);
this.btn_lvl_up.setCaption('+lvl');
this.btn_lvl_down.setCaption('-lvl');
this.btn_lvl_max.setCaption('30');
this.btn_all.setCaption('ALL');
this.btn_lvl_up.setOnClick(mx.utils.Delegate.create(this, this.onLevelUp));
this.btn_lvl_down.setOnClick(mx.utils.Delegate.create(this, this.onLevelDown));
this.btn_lvl_max.setOnClick(mx.utils.Delegate.create(this, this.onLevelMax));
this.btn_all.setOnClick(mx.utils.Delegate.create(this, this.onAll));
if (!(Core.Get()).debug_mode) {
this.btn_lvl_up._visible = false;
this.btn_lvl_down._visible = false;
this.btn_lvl_max._visible = false;
this.btn_all._visible = false;
}
};
v2.sync = function () {
var v4 = this.team_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.team_slots[v2];
v3.setChar(this.game.team[v2]);
++v2;
}
};
v2.onLevelUp = function () {
var v3 = this.game.stats.length;
var v2 = 0;
while (v2 < v3) {
if (this.game.stats[v2].level < 30) {
++this.game.stats[v2].level;
this.game.stats[v2].exp = 0;
this.game.syncCharStats(v2);
}
++v2;
}
this.sync();
};
v2.onLevelDown = function () {
var v3 = this.game.stats.length;
var v2 = 0;
while (v2 < v3) {
if (this.game.stats[v2].level > 1) {
--this.game.stats[v2].level;
this.game.stats[v2].exp = 0;
this.game.syncCharStats(v2);
}
++v2;
}
this.sync();
};
v2.onLevelMax = function () {
var v3 = this.game.stats.length;
var v2 = 0;
while (v2 < v3) {
this.game.stats[v2].level = 30;
this.game.stats[v2].exp = 0;
this.game.syncCharStats(v2);
++v2;
}
this.sync();
};
v2.onAll = function () {
var v3 = (Core.Get()).game;
var v4 = v3.stats.length;
var v2 = 0;
while (v2 < v4) {
if (!v3.isInTeam(v2)) {
v3.joinTeam(v2);
}
++v2;
}
this.sync();
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
var v4 = -1;
var v5 = this.team_slots.length;
var v2 = 0;
while (v2 < v5) {
var v3 = this.team_slots[v2];
if (v3.isHit(this._xmouse, this._ymouse)) {
v4 = v2;
break;
}
++v2;
}
if (this.drag_obj || -1 == v4) {
this.tooltip.setChar(-1);
} else {
this.tooltip.setChar(this.game.team[v4]);
this.placeTooltip();
}
if (this.hover_slot == v4) {
return undefined;
}
if (this.hover_slot != -1) {
this.team_slots[this.hover_slot].leave();
}
this.hover_slot = v4;
this.team_slots[this.hover_slot].enter();
};
v2.onSlotDrag = function () {
this.hiliteAllSlots(arguments.caller.id);
var v3 = 1 + this.game.team[arguments.caller.id];
this.drag_obj = this.attachMovie('char_drag', 'drag_obj', this.getNextHighestDepth());
this.drag_obj.gotoAndStop(v3);
this.drag_obj.startDrag(false, 0, 0, 480, 320);
this.drag_obj._x = this._xmouse;
this.drag_obj._y = this._ymouse;
this.drag_obj.filters = [Filters.Shadow()];
this.tooltip.setChar(-1);
(Core.Get()).playSound('button_click');
};
v2.onSlotDrop = function () {
if (this.drag_obj) {
this.dehiliteAllSlots();
this.exchangeSlots(arguments.caller.id, this.hover_slot);
this.drag_obj.stopDrag();
this.drag_obj.removeMovieClip();
this.drag_obj = null;
this.onMouse();
(Core.Get()).playSound('button_click');
}
};
v2.exchangeSlots = function (from_, to_) {
if (to_ < 0 || from_ == to_) {
return undefined;
}
if (this.game.team[from_] == 0 && to_ > 3 || this.game.team[to_] == 0 && from_ > 3) {
return undefined;
}
var v4 = this.game.team[from_];
this.game.team[from_] = this.game.team[to_];
this.game.team[to_] = v4;
this.team_slots[from_].setChar(this.game.team[from_]);
this.team_slots[to_].setChar(this.game.team[to_]);
};
v2.hiliteAllSlots = function (dragged_) {
var v6 = 0 == this.game.team[dragged_];
var v4 = this.team_slots.length;
if (v6) {
v4 = 4;
}
var v2 = 0;
while (v2 < v4) {
if (v2 < 4) {
if (0 == this.game.team[v2]) {
if (dragged_ > 3) {
} else {
var v3 = this.team_slots[v2];
v3.hilite();
}
}
}
++v2;
}
};
v2.dehiliteAllSlots = function () {
var v4 = this.team_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.team_slots[v2];
v3.dehilite();
++v2;
}
};
v2.placeTooltip = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip._x = this._xmouse - 32;
this.tooltip._y = this._ymouse + 16;
var v3 = this.tooltip._x + this.tooltip._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip._x -= v3;
}
var v4 = this.tooltip._y + this.tooltip._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip._y = this._ymouse - 8 - this.tooltip._height;
}
};
ASSetPropFlags(_global.ScreenTeam.prototype, null, 1);
}
#endinitclip
}
movieClip 1985 __Packages.EquipSlot {
#initclip
if (!_global.EquipSlot) {
var v1 = function () {
super();
this.char.stop();
this.char.filters = [Filters.GlowLight(13434828)];
this.slotW = this.slotW;
this.slotA = this.slotA;
this.slotD = this.slotD;
this.char_id = -1;
};
_global.EquipSlot = v1;
_global.EquipSlot extends MovieClip;
var v2 = v1.prototype;
v2.init = function (i_, cb1_, cb2_) {
this.slotW.init(100 * i_ + EItem.WEAPON, cb1_, cb2_, cb2_);
this.slotW.setFixed(EItem.WEAPON);
this.slotW.setItem(-1);
this.slotA.init(100 * i_ + EItem.ARMOR, cb1_, cb2_, cb2_);
this.slotA.setFixed(EItem.ARMOR);
this.slotA.setItem(-1);
this.slotD.init(100 * i_ + EItem.DEVICE, cb1_, cb2_, cb2_);
this.slotD.setFixed(EItem.DEVICE);
this.slotD.setItem(-1);
};
v2.getItem = function (ty_) {
var v2 = null;
switch (ty_) {
return v2.getItem();
case EItem.WEAPON:
v2 = this.slotW;
return v2.getItem();
case EItem.ARMOR:
v2 = this.slotA;
return v2.getItem();
case EItem.DEVICE:
v2 = this.slotD;
}
return v2.getItem();
};
v2.setChar = function (id_) {
this.char_id = id_;
if (id_ >= 0) {
var v5 = (Core.Get()).world;
var v4 = v5.chars[id_];
this.name.text = v4.name;
this.char.gotoAndStop(id_ + 1);
this.char._visible = true;
this.filters = [];
var v3 = (Core.Get()).game;
this.slotW.setItem(v3.equipment[id_].weapon);
this.slotA.setItem(v3.equipment[id_].armor);
this.slotD.setItem(v3.equipment[id_].device);
} else {
this.name.text = '---';
this.char._visible = false;
this.filters = [Filters.Desaturator()];
this.slotW.setItem(-1, false);
this.slotA.setItem(-1);
this.slotD.setItem(-1);
}
};
v2.flip = function () {
this.char._xscale = -100;
};
v2.giveItem = function (id_) {
if (-1 == this.char_id || !this.acceptItem(id_)) {
return id_;
}
var v6 = (Core.Get()).world;
var v4 = v6.getItemType(id_);
var v2 = null;
switch (v4) {
case EItem.WEAPON:
v2 = this.slotW;
var v5 = v2.getItem();
v2.setItem(id_);
(Core.Get()).game.equip(this.char_id, v4, id_);
return v5;
case EItem.ARMOR:
v2 = this.slotA;
var v5 = v2.getItem();
v2.setItem(id_);
(Core.Get()).game.equip(this.char_id, v4, id_);
return v5;
case EItem.DEVICE:
v2 = this.slotD;
var v5 = v2.getItem();
v2.setItem(id_);
(Core.Get()).game.equip(this.char_id, v4, id_);
return v5;
}
return id_;
var v5 = v2.getItem();
v2.setItem(id_);
(Core.Get()).game.equip(this.char_id, v4, id_);
return v5;
};
v2.acceptItem = function (item_) {
if (-1 == this.char_id) {
return false;
}
var v2 = (Core.Get()).world.items[item_];
if (v2.alien && this.char_id != 5) {
return false;
}
if (v2.hell && this.char_id != 11) {
return false;
}
if (v2.type == EItem.DEVICE && v2.type2 != EWeapon.PASSIVE) {
var v5 = (Core.Get()).game.stats[this.char_id].tch * 2;
if (v2.energy > v5) {
return false;
}
}
var v3 = 0;
if (v2.type == EItem.WEAPON) {
var v4 = this.slotD.getItem();
if (v4 == 130) {
v3 = 2;
var v6 = v2.level;
var v7 = (Core.Get()).game.stats[this.char_id].level + v3;
return v6 <= v7;
}
if (v4 == 131) {
v3 = 5;
}
}
var v6 = v2.level;
var v7 = (Core.Get()).game.stats[this.char_id].level + v3;
return v6 <= v7;
};
v2.removeItem = function (item_) {
var v4 = (Core.Get()).world;
var v3 = v4.getItemType(item_);
(Core.Get()).game.equip(this.char_id, v3, -1);
var v2 = null;
switch (v3) {
case EItem.WEAPON:
v2 = this.slotW;
break;
case EItem.ARMOR:
v2 = this.slotA;
break;
case EItem.DEVICE:
v2 = this.slotD;
}
v2.setItem(-1);
};
v2.hilite = function (type_) {
var v2 = null;
switch (type_) {
case EItem.WEAPON:
v2 = this.slotW;
break;
case EItem.ARMOR:
v2 = this.slotA;
break;
case EItem.DEVICE:
v2 = this.slotD;
}
v2.hilite();
};
v2.dehilite = function () {
this.slotW.dehilite();
this.slotA.dehilite();
this.slotD.dehilite();
};
v2.setBack = function (alpha_) {
this.back._alpha = alpha_;
};
v2.setGlow = function () {
this.slotW.setGlow(16777215);
this.slotA.setGlow(16777215);
this.slotD.setGlow(16777215);
};
ASSetPropFlags(_global.EquipSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1986 __Packages.ScrollBar {
#initclip
if (!_global.ScrollBar) {
var v1 = function () {
super();
this.coord_min = 0;
this.coord_max = this.btn_down._y - this.btn_up._y - 30;
this.value_min = 0;
this.value_max = 0;
this.value = 0;
this.value_inc = 1;
this.scrolling = false;
this.btn = this.btn;
this.btn.onPress = mx.utils.Delegate.create(this, this.onScrollStart);
this.btn.onReleaseOutside = mx.utils.Delegate.create(this, this.onScrollEnd);
this.btn.onRelease = this.btn.onReleaseOutside;
this.btn_up.onRelease = mx.utils.Delegate.create(this, this.onScrollUp);
this.btn_down.onRelease = mx.utils.Delegate.create(this, this.onScrollDown);
};
_global.ScrollBar = v1;
_global.ScrollBar extends MovieClip;
var v2 = v1.prototype;
v2.onMouseMove = function () {
if (this.scrolling) {
if (Math.abs(this._xmouse) > 32) {
this.scrolling = false;
}
var v3 = this.btn._y;
var v2 = this._ymouse;
v2 = Math.floor(v2 + 0.5);
if (v2 < this.coord_min) {
v2 = this.coord_min;
}
if (v2 > this.coord_max) {
v2 = this.coord_max;
}
if (v2 != v3) {
this.btn._y = v2;
this.doScroll();
}
}
};
v2.onScrollStart = function () {
this.scrolling = true;
};
v2.onScrollEnd = function () {
this.scrolling = false;
};
v2.setValueBounds = function (val1_, val2_) {
this.value_min = val1_;
this.value_max = val2_;
this.sync();
if (this.value_min == this.value_max) {
this.filters = [Filters.Desaturator()];
this.btn.enabled = false;
this.btn_up.enabled = false;
this.btn_down.enabled = false;
this.enabled = false;
} else {
this.filters = [];
this.btn.enabled = true;
this.btn_up.enabled = true;
this.btn_down.enabled = true;
this.enabled = true;
}
};
v2.setValue = function (val_) {
this.value = val_;
this.sync();
};
v2.sync = function () {
var v3 = this.value_max - this.value_min;
var v4 = (v3 != 0) ? (this.value - this.value_min) / v3 : 0;
var v2 = this.coord_min + (this.coord_max - this.coord_min) * v4;
v2 = Math.floor(v2 + 0.5);
this.btn._y = v2;
};
v2.reScroll = function () {
if (this.value < this.value_min) {
this.value = this.value_min;
this.sync();
this.cbScroll(this.value);
} else {
if (this.value > this.value_max) {
this.value = this.value_max;
this.sync();
this.cbScroll(this.value);
}
}
};
v2.doScroll = function () {
var v3 = this.value;
var v2 = this.coord_max - this.coord_min;
var v4 = (v2 != 0) ? (this.btn._y - this.coord_min) / v2 : 0;
this.value = this.value_min + (this.value_max - this.value_min) * v4;
this.value = Math.floor(this.value + 0.5);
if (v3 != this.value) {
this.cbScroll(this.value);
}
};
v2.onScrollUp = function () {
if (this.value > this.value_min) {
this.value -= this.value_inc;
if (this.value < this.value_min) {
this.value = this.value_min;
}
this.sync();
this.cbScroll(this.value);
}
};
v2.onScrollDown = function () {
if (this.value < this.value_max) {
this.value += this.value_inc;
if (this.value > this.value_max) {
this.value = this.value_max;
}
this.sync();
this.cbScroll(this.value);
}
};
v2.scrollUp = function () {
this.onScrollUp();
};
v2.scrollDown = function () {
this.onScrollDown();
};
ASSetPropFlags(_global.ScrollBar.prototype, null, 1);
}
#endinitclip
}
movieClip 1987 __Packages.ScreenItems {
#initclip
if (!_global.ScreenItems) {
var v1 = function () {
super();
Log.Msg('ScreenItems::ScreenItems()');
this.game = (Core.Get()).game;
this.equip_slots = new Array();
this.equip_slots.push(this.slot1);
this.equip_slots.push(this.slot2);
this.equip_slots.push(this.slot3);
this.equip_slots.push(this.slot4);
this.btn_sort = this.btn_sort;
this.inventory = this.inventory;
this.drag_obj = null;
this.syncMoney();
this.scroll = this.scroll;
this.tooltip = this.tooltip;
(Core.Get()).onMouseWheel = mx.utils.Delegate.create(this, this.onMouseWheel);
};
_global.ScreenItems = v1;
_global.ScreenItems extends Screen;
var v2 = v1.prototype;
v2.syncMoney = function () {
var v2 = '€' + ex.formatNumberCommas(this.game.money);
this.money.text = v2;
};
v2.init = function () {
(Core.Get()).switchMusic(0);
var v4 = this.equip_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.equip_slots[v2];
v3.init(v2 + 1, mx.utils.Delegate.create(this, this.onEquipDrag), mx.utils.Delegate.create(this, this.onEquipDrop));
v3.setChar(this.game.team[v2]);
v3.flip();
v3.setBack(40 + 20 * (1 - v2 % 2));
v3.setGlow();
++v2;
}
this.inventory.init('', (Core.Get()).cfg.inventory_size, mx.utils.Delegate.create(this, this.onInventoryDrag), mx.utils.Delegate.create(this, this.onInventoryDrop));
this.btn_sort.setCaption((Core.Get()).locale.btn.sort);
this.btn_sort.setOnClick(mx.utils.Delegate.create(this, this.sortInventory));
this.setScrollBounds();
this.scroll.cbScroll = mx.utils.Delegate.create(this, this.onScroll);
this.scroll.setValue(0);
this.tooltip.setItem(-1);
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
this.btn_all.setCaption('idkfa');
this.btn_all.setOnClick(mx.utils.Delegate.create(this, this.onAllClick));
if (!(Core.Get()).debug_mode) {
this.btn_all._visible = false;
}
};
v2.onAllClick = function () {
(Core.Get()).game.inventory.splice(0, (Core.Get()).game.inventory.length);
var v3 = (Core.Get()).world.items.length;
var v2 = 1;
while (v2 < v3) {
if (v2 != 133 && v2 != 134 && v2 != 145) {
(Core.Get()).game.inventory.push({'item': v2, 'count': 4});
}
++v2;
}
this.inventory.sync();
this.setScrollBounds();
};
v2.setScrollBounds = function () {
this.scroll.setValueBounds(0, this.inventory.getMaxScroll());
};
v2.onScroll = function (val_) {
this.inventory.scrollTo(val_);
};
v2.onInventoryDrag = function (i_) {
var v2 = this.inventory.getItemFromCell(i_);
this.dragItem(v2);
(Core.Get()).playSound('item_take');
};
v2.dragItem = function (item_) {
this.hiliteSlots(item_);
var v2 = 1 + item_;
this.drag_obj = this.attachMovie('item', 'drag_obj', this.getNextHighestDepth());
this.drag_obj.gotoAndStop(v2);
this.drag_obj.startDrag(false, 0, 0, 480, 320);
this.drag_obj._x = this._xmouse - 45;
this.drag_obj._y = this._ymouse - 27;
this.drag_obj.filters = [Filters.Shadow()];
this.tooltip.setItem(-1);
};
v2.onInventoryDrop = function (i_) {
var v6 = false;
var v7 = this.equip_slots.length;
var v5 = 0;
while (v5 < v7) {
var v2 = this.equip_slots[v5];
if (v2.hitTest(this._xmouse, this._ymouse)) {
var v3 = this.inventory.getItemFromCell(i_);
var v4 = v2.giveItem(v3);
if (v4 != v3) {
this.game.takeInventory(v3);
if (v4 != -1) {
this.game.putInventory(v4);
}
this.inventory.sync();
}
this.checkSlot(v2);
v6 = true;
break;
}
++v5;
}
if (!v6 && this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v9 = this.inventory.getPosFromCell(i_);
var v10 = this.inventory.getPosAt(this._xmouse, this._ymouse);
if (v9 != v10) {
this.game.moveInventoryItem(v9, v10);
this.inventory.sync();
}
}
this.dehiliteSlots();
this.drag_obj.stopDrag();
this.drag_obj.removeMovieClip();
this.drag_obj = null;
(Core.Get()).playSound('item_put');
this.onMouse();
};
v2.onEquipDrag = function (i_) {
var v3 = Math.floor(i_ / 100) - 1;
var v2 = this.equip_slots[v3].getItem(i_ % 100);
this.dragItem(v2);
(Core.Get()).playSound('item_take');
};
v2.onEquipDrop = function (i_) {
var v6 = Math.floor(i_ / 100) - 1;
var v5 = this.equip_slots[v6].getItem(i_ % 100);
var v7 = false;
var v8 = this.equip_slots.length;
var v4 = 0;
while (v4 < v8) {
var v3 = this.equip_slots[v4];
if (v3.hitTest(this._xmouse, this._ymouse)) {
var v2 = v3.giveItem(v5);
if (v2 != v5) {
this.equip_slots[v6].removeItem(v5);
if (v2 != -1) {
v2 = this.equip_slots[v6].giveItem(v2);
if (v2 != -1) {
this.game.putInventory(v2);
this.inventory.sync();
}
}
}
this.checkSlot(v3);
v7 = true;
break;
}
++v4;
}
if (!v7 && this.inventory.hitTest(this._xmouse, this._ymouse)) {
this.equip_slots[v6].removeItem(v5);
var v9 = this.inventory.getPosAt(this._xmouse, this._ymouse);
this.game.putInventoryAt(v5, v9);
this.inventory.sync();
}
this.checkSlot(this.equip_slots[v6]);
this.dehiliteSlots();
this.drag_obj.stopDrag();
this.drag_obj.removeMovieClip();
this.drag_obj = null;
(Core.Get()).playSound('item_put');
this.onMouse();
};
v2.checkSlot = function (slot_) {
var v2 = slot_.slotW.getItem();
if (!slot_.acceptItem(v2)) {
slot_.removeItem(v2);
if (v2 >= 0) {
this.game.putInventory(v2);
this.inventory.sync();
}
}
};
v2.hiliteSlots = function (item_) {
var v4 = (Core.Get()).world.getItemType(item_);
switch (v4) {
if (v4 !== EItem.DEVICE) {
} else {
case EItem.WEAPON:
break;
case EItem.ARMOR:
}
default:
return undefined;
}
var v5 = this.equip_slots.length;
var v2 = 0;
while (v2 < v5) {
var v3 = this.equip_slots[v2];
if (v3.acceptItem(item_)) {
v3.hilite(v4);
}
++v2;
}
};
v2.dehiliteSlots = function () {
var v4 = this.equip_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.equip_slots[v2];
v3.dehilite();
++v2;
}
};
v2.sortInventory = function () {
this.game.sortInventory();
this.inventory.sync();
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
if (this.drag_obj) {
this.tooltip.setItem(-1);
return undefined;
}
if (this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v6 = this.inventory.getPosAt(this._xmouse, this._ymouse);
var v7 = (Core.Get()).game.inventory;
var v3 = (0 <= v6 && v6 < v7.length) ? v7[v6].item : -1;
this.tooltip.setItem(v3, true);
if (-1 != v3) {
this.placeTooltip();
}
return undefined;
}
var v5 = this.equip_slots.length;
var v4 = 0;
while (v4 < v5) {
v3 = -1;
var v2 = this.equip_slots[v4];
if (v2.char_id >= 0) {
if (v2.slotW.hitTest(this._xmouse, this._ymouse)) {
v3 = v2.slotW.getItem();
if (-1 == v3) {
v3 = 0;
}
} else {
if (v2.slotA.hitTest(this._xmouse, this._ymouse)) {
v3 = v2.slotA.getItem();
} else {
if (v2.slotD.hitTest(this._xmouse, this._ymouse)) {
v3 = v2.slotD.getItem();
}
}
}
}
if (-1 != v3) {
this.tooltip.setItem(v3, true);
this.placeTooltip();
return undefined;
}
++v4;
}
this.tooltip.setItem(-1);
};
v2.placeTooltip = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip._x = this._xmouse - 32;
this.tooltip._y = this._ymouse + 16;
var v3 = this.tooltip._x + this.tooltip._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip._x -= v3;
}
var v4 = this.tooltip._y + this.tooltip._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip._y = this._ymouse - 8 - this.tooltip._height;
}
};
v2.onMouseWheel = function (value) {
if (value < 0) {
this.scroll.scrollDown();
} else {
if (value > 0) {
this.scroll.scrollUp();
}
}
this.onMouse();
};
ASSetPropFlags(_global.ScreenItems.prototype, null, 1);
}
#endinitclip
}
movieClip 1988 __Packages.QuestDescri {
#initclip
if (!_global.QuestDescri) {
var v1 = function () {
super();
this.items = [];
this.y = 0;
this.max_y = 261;
this.ori.delim._visible = false;
};
_global.QuestDescri = v1;
_global.QuestDescri extends MovieClip;
var v2 = v1.prototype;
v2.clear = function () {
var v4 = this.items.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.items[v2];
v3.removeMovieClip();
++v2;
}
this.items = [];
this.y = 0;
this.ori.delim._y = 0;
this.ori.delim._visible = false;
};
v2.push = function (text_, state_) {
var v5 = this.items.length;
var v7 = 'item' + v5;
var v4 = 'questtext_normal';
switch (state_) {
case EQuest.COMPLETE:
v4 = 'questtext_complete';
break;
case EQuest.FAILED:
v4 = 'questtext_failed';
}
var v2 = this.ori.attachMovie(v4, v7, v5);
v2._y = this.y;
this.items.push(v2);
var v3 = v2.tf;
v3.autoSize = 'left';
v3.wordWrap = true;
v3.text = text_;
var v6 = Math.round(v3._height);
v2.back._height = v6;
this.y += v6 + 1;
this.ori.delim._y = this.y;
this.ori.delim._visible = true;
};
v2.scrollTo = function (pos_) {
this.ori._y = -pos_;
};
ASSetPropFlags(_global.QuestDescri.prototype, null, 1);
}
#endinitclip
}
movieClip 1989 __Packages.ScreenTasks {
#initclip
if (!_global.ScreenTasks) {
var v1 = function () {
super();
Log.Msg('ScreenTasks::ScreenTasks()');
this.items = false;
this.list_offs = 0;
this.list_slots = new Array();
this.selected_quest = -1;
this.selected_done_quest = -1;
this.selected_item = -1;
(Core.Get()).onMouseWheel = mx.utils.Delegate.create(this, this.onMouseWheel);
};
_global.ScreenTasks = v1;
_global.ScreenTasks extends Screen;
var v2 = v1.prototype;
v2.init = function () {
(Core.Get()).switchMusic(0);
this.btn_tasks.setCaption((Core.Get()).locale.btn.tasks);
this.btn_tasks.setOnClick(mx.utils.Delegate.create(this, this.onBtnTasksClick));
this.btn_done.setCaption((Core.Get()).locale.btn.done);
this.btn_done.setOnClick(mx.utils.Delegate.create(this, this.onBtnDoneClick));
this.btn_items.setCaption((Core.Get()).locale.btn.items);
this.btn_items.setOnClick(mx.utils.Delegate.create(this, this.onBtnItemsClick));
this.btn_tasks.push();
var v9 = (Core.Get()).cfg;
var v8 = v9.tasklist_size;
var v7 = v9.tasklist_grid;
var v6 = 0;
var v5 = 0;
var v3 = 0;
while (v3 < v8.y) {
var v4 = 'slot' + v3;
this.tasklist.attachMovie('taskslot', v4, v5);
var v2 = this.tasklist[v4];
v2.init(v5, mx.utils.Delegate.create(this, this.onSlotClick));
v2._y = v6;
this.list_slots.push(v2);
++v3;
v6 += v7.y;
++v5;
}
this.initQuestLists();
this.syncListQuests();
this.scroll_list.cbScroll = mx.utils.Delegate.create(this, this.onScrollList);
this.scroll_descri.cbScroll = mx.utils.Delegate.create(this, this.onScrollDescri);
this.scroll_descri.value_inc = 12;
this.calibrateListScroll();
this.scroll_descri.setValueBounds(0, 0);
};
v2.initQuestLists = function () {
this.quest_data = [];
this.done_quest_data = [];
var v6 = (Core.Get()).game;
var v7 = v6.quests.length;
var v3 = 0;
while (v3 < v7) {
var v4 = v6.quests[v3 + this.list_offs];
var v2 = {'quest': v4.quest, 'state': v4.state};
if (v2.state == EQuest.NORMAL) {
this.quest_data.push(v2);
} else {
this.done_quest_data.push(v2);
}
++v3;
}
};
v2.getSelected = function () {
if (this.items) {
return this.selected_item;
} else {
if (this.btn_done.isPushed()) {
return this.selected_done_quest;
} else {
return this.selected_quest;
}
}
};
v2.setSelected = function (n_) {
if (this.items) {
this.selected_item = n_;
} else {
if (this.btn_done.isPushed()) {
this.selected_done_quest = n_;
} else {
this.selected_quest = n_;
}
}
};
v2.getTotalCount = function () {
var v2 = (Core.Get()).game;
if (this.items) {
return v2.quest_items.length;
} else {
if (this.btn_done.isPushed()) {
return this.done_quest_data.length;
} else {
return this.quest_data.length;
}
}
};
v2.onScrollList = function (pos_) {
if (this.list_offs == pos_) {
return undefined;
}
this.list_offs = pos_;
if (this.selected_slot != -1) {
this.deselectSlot();
var v3 = this.getSelected();
var v2 = v3;
if (v3 < this.list_offs) {
v2 = this.list_offs;
}
if (v3 > this.list_offs + this.list_slots.length - 1) {
v2 = this.list_offs + this.list_slots.length - 1;
}
if (v2 != v3) {
this.syncDescri(v2);
this.setSelected(v2);
}
this.selectSlot(v2 - this.list_offs);
}
if (this.items) {
this.syncListItems();
} else {
this.syncListQuests();
}
};
v2.onScrollDescri = function (pos_) {
this.descri.scrollTo(pos_);
};
v2.calibrateListScroll = function () {
var v4 = (Core.Get()).game;
var v3 = this.getTotalCount();
var v2 = v3 - this.list_slots.length;
if (v2 < 0) {
v2 = 0;
}
this.scroll_list.setValueBounds(0, v2);
this.scroll_list.setValue(0);
this.list_offs = 0;
};
v2.reposListScroll = function () {
var v5 = (Core.Get()).game;
var v3 = this.getSelected();
if (v3 == -1) {
return undefined;
}
var v2 = this.getTotalCount();
var v4 = this.list_slots.length;
if (v2 <= v4) {
this.list_offs = 0;
} else {
if (v3 + v4 <= v2) {
this.list_offs = v3;
} else {
this.list_offs = v2 - v4;
}
}
this.scroll_list.setValue(this.list_offs);
};
v2.changeTab = function () {
this.deselectSlot();
this.descri.clear();
this.calibrateListScroll();
this.reposListScroll();
this.syncList();
var v2 = this.getSelected();
if (v2 != -1) {
this.selectSlot(v2 - this.list_offs);
this.syncDescri(v2);
} else {
this.scroll_descri.setValueBounds(0, 0);
this.scroll_descri.setValue(0);
this.descri.scrollTo(0);
}
};
v2.onBtnDoneClick = function () {
if (!this.btn_done.isPushed()) {
this.btn_items.unpush();
this.btn_done.push();
this.btn_tasks.unpush();
this.items = false;
this.changeTab();
}
};
v2.onBtnTasksClick = function () {
if (!this.btn_tasks.isPushed()) {
this.btn_items.unpush();
this.btn_done.unpush();
this.btn_tasks.push();
this.items = false;
this.changeTab();
}
};
v2.onBtnItemsClick = function () {
if (!this.btn_items.isPushed()) {
this.btn_tasks.unpush();
this.btn_done.unpush();
this.btn_items.push();
this.items = true;
this.changeTab();
}
};
v2.syncList = function () {
if (this.items) {
this.syncListItems();
} else {
this.syncListQuests();
}
};
v2.syncListItems = function () {
var v6 = (Core.Get()).game;
var v7 = (Core.Get()).world;
var v5 = this.list_slots.length;
var v4 = v5;
var v9 = v6.quest_items;
var v8 = v9.length - this.list_offs;
if (v8 < v4) {
v4 = v8;
}
var v3 = 0;
while (v3 < v4) {
var v2 = this.list_slots[v3];
v2.setCaption(v7.getQuestItemName(v6.quest_items[v3 + this.list_offs].item));
v2.setState(EQuest.NORMAL);
v2._visible = true;
++v3;
}
v3 = v4;
while (v3 < v5) {
v2 = this.list_slots[v3];
v2.setCaption('');
v2.setState(EQuest.NORMAL);
v2._visible = false;
++v3;
}
};
v2.syncListQuests = function () {
var v10 = (Core.Get()).game;
var v8 = (Core.Get()).world;
var v6 = this.list_slots.length;
var v5 = v6;
var v7 = this.btn_done.isPushed() ? this.done_quest_data : this.quest_data;
var v9 = v7.length - this.list_offs;
if (v9 < v5) {
v5 = v9;
}
var v3 = 0;
while (v3 < v5) {
var v2 = this.list_slots[v3];
var v4 = v7[v3 + this.list_offs];
v2.setCaption(v8.getQuestTitle(v4.quest));
v2.setState(v4.state);
v2._visible = true;
++v3;
}
v3 = v5;
while (v3 < v6) {
v2 = this.list_slots[v3];
v2.setCaption('');
v2.setState(EQuest.NORMAL);
v2._visible = false;
++v3;
}
};
v2.deselectSlot = function () {
if (this.selected_slot != -1) {
this.list_slots[this.selected_slot].deselect();
this.selected_slot = -1;
}
};
v2.selectSlot = function (i_) {
this.deselectSlot();
this.list_slots[i_].select();
this.selected_slot = i_;
};
v2.syncDescri = function (i_) {
var v5 = (Core.Get()).game;
var v7 = (Core.Get()).world;
this.descri.clear();
if (this.items) {
this.descri.push(v7.getQuestItemDescri(v5.quest_items[i_].item));
var v6 = v5.quest_items[i_].count;
if (v6 > 1) {
this.descri.push((Core.Get()).locale.talk.have_items_1 + v6 + (Core.Get()).locale.talk.have_items_2);
}
} else {
var v10 = this.btn_done.isPushed() ? this.done_quest_data : this.quest_data;
var v4 = v10[i_];
var v3 = v5.quest_progress[v4.quest];
var v2 = 0;
while (v2 < v3.length) {
this.descri.push(v7.getQuestPart(v4.quest, v3[v2].stage), v3[v2].state);
++v2;
}
if (v4.state == EQuest.COMPLETE) {
this.descri.push((Core.Get()).locale.talk.quest_complete, EQuest.COMPLETE);
} else {
if (v4.state == EQuest.FAILED) {
this.descri.push((Core.Get()).locale.talk.quest_failed, EQuest.FAILED);
}
}
if (v4.state != EQuest.COMPLETE) {
var v6 = -1;
if (v4.quest == 'natan_plan' && 5 == v5.getFlag('q_bigalienplan')) {
v6 = v5.getFlag('kills_grabbers_harcos');
} else {
if (v4.quest == 'infidels') {
v6 = v5.getFlag('kills_inferno_ibrahim');
} else {
if (v4.quest == 'clean_suburbs') {
v6 = v5.getFlag('kills_bandits_jax');
} else {
if (v4.quest == 'raiding_raiders') {
v6 = v5.getFlag('kills_raiders_georg');
} else {
if (v4.quest == 'raiding_mutants') {
v6 = v5.getFlag('kills_mutants_georg');
}
}
}
}
}
if (v6 >= 0) {
this.descri.push((Core.Get()).locale.talk.kills + v6);
}
}
}
var v8 = this.descri.y - this.descri.max_y + 1;
if (v8 < 0) {
v8 = 0;
}
this.scroll_descri.setValueBounds(0, v8);
this.scroll_descri.setValue(v8);
this.descri.scrollTo(v8);
};
v2.onSlotClick = function (i_) {
if (i_ == this.selected_slot) {
return undefined;
}
this.selectSlot(i_);
var v2 = i_ + this.list_offs;
this.setSelected(v2);
this.syncDescri(v2);
};
v2.onMouseWheel = function (value) {
var v2 = this.scroll_descri;
if (!v2.enabled || this.scroll_list.enabled && this._xmouse < 240) {
v2 = this.scroll_list;
}
if (value < 0) {
v2.scrollDown();
} else {
if (value > 0) {
v2.scrollUp();
}
}
};
ASSetPropFlags(_global.ScreenTasks.prototype, null, 1);
}
#endinitclip
}
movieClip 1990 __Packages.Dialogue {
#initclip
if (!_global.Dialogue) {
var v1 = function () {
super();
this.items = [];
this.y = 0;
this.ori_offs = 0;
this.max_y = 111;
this.ori.delim._visible = false;
this.cur_id = 0;
};
_global.Dialogue = v1;
_global.Dialogue extends MovieClip;
var v2 = v1.prototype;
v2.clear = function () {
var v4 = this.items.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.items[v2];
v3.removeMovieClip();
++v2;
}
this.items = [];
this.y = 0;
this.ori_offs = 0;
this.ori.delim._y = 0;
this.ori.delim._visible = false;
this.cur_id = 0;
};
v2.push = function (npc_, text_) {
var v5 = '' == npc_;
var v7 = 'item' + this.cur_id;
var v9 = 'dialogue_item';
var v2 = this.ori.attachMovie(v9, v7, this.cur_id);
v2._y = this.y;
this.items.push(v2);
++this.cur_id;
if (!v5) {
v2.npc.inner.gotoAndStop(1 + (Core.Get()).world.npc[npc_].id);
} else {
v2.npc.inner.stop();
v2.npc._visible = false;
v2.npc_bg._visible = false;
}
var v3 = v2.tf;
v3.autoSize = 'left';
v3.wordWrap = true;
v3.text = text_;
if (v5) {
v3.textColor = 16384;
} else {
v3.textColor = 1052688;
}
var v4 = Math.round(v3._height);
if (!v5) {
v4 = Math.max(v4, v2.npc_bg._y + v2.npc_bg._height);
}
v2.back._height = v4;
this.y += v4 + 1;
this.ori.delim._y = this.y;
this.ori.delim._visible = true;
if (this.items.length > 10) {
var v6 = this.items[0];
var v8 = v6.back._height + 1;
v6.removeMovieClip();
this.items.splice(0, 1);
this.ori_offs += v8;
}
};
v2.scrollTo = function (pos_) {
this.ori._y = -pos_;
};
ASSetPropFlags(_global.Dialogue.prototype, null, 1);
}
#endinitclip
}
movieClip 1991 __Packages.ScreenTalk {
#initclip
if (!_global.ScreenTalk) {
var v1 = function () {
super();
Log.Msg('ScreenTalk::ScreenTalk()');
this.world = (Core.Get()).world;
this.game = (Core.Get()).game;
this.npc.inner.stop();
this.dialogue = this.dialogue;
this.list_offs = 0;
this.list_slots = new Array();
this.scroll_list = this.scroll_list;
this.scroll_talk = this.scroll_talk;
this.list_selection = -1;
this.cur_talk = [];
this.cur_phrase = -1;
this.force_talk = -1;
this.no_talk = false;
this.no_bye = false;
this.need_enable_screen = false;
(Core.Get()).onMouseWheel = mx.utils.Delegate.create(this, this.onMouseWheel);
};
_global.ScreenTalk = v1;
_global.ScreenTalk extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_goon.setCaption((Core.Get()).locale.btn.go_on);
this.btn_goon.setOnClick(mx.utils.Delegate.create(this, this.onGoOnClick));
this.btn_goon._visible = false;
this.cur_npc = this.game.exchange.npc;
this.data = this.world.npc[this.cur_npc];
this.npc.inner.gotoAndStop(1 + this.data.id);
this.name.text = this.data.name;
if (this.game.exchange.talk != undefined && this.game.exchange.talk != -1) {
this.force_talk = this.game.exchange.talk;
}
if (this.game.exchange.no_bye != undefined) {
this.no_bye = this.game.exchange.no_bye;
}
this.game.exchange = null;
if (this.force_talk == -1) {
this.dialogue.push(this.cur_npc, this.data.hello);
this.syncTalk();
}
var v9 = (Core.Get()).cfg;
var v8 = v9.talklist_size;
var v7 = v9.talklist_grid;
var v5 = 0;
var v4 = 0;
var v3 = 0;
while (v3 < v8.y) {
var name = 'slot' + v3;
var v6 = this.talklist.attachMovie('talkslot', name, v4);
var v2 = this.talklist[name];
v2.init(v4, mx.utils.Delegate.create(this, this.onSlotClick));
v2._y = v5;
this.list_slots.push(v2);
++v3;
v5 += v7.y;
++v4;
}
this.checkTalkAvail();
this.syncTalkList();
this.scroll_list.cbScroll = mx.utils.Delegate.create(this, this.onScrollList);
this.scroll_talk.cbScroll = mx.utils.Delegate.create(this, this.onScrollTalk);
this.scroll_talk.value_inc = 12;
this.calibrateListScroll();
this.scroll_talk.setValueBounds(0, 0);
if (this.force_talk > -1) {
this.onSlotClick(0);
}
};
v2.checkTalkAvail = function () {
this.talks_avail = new Array();
if (this.no_talk) {
} else {
if (this.force_talk > -1) {
this.talks_avail.push(this.force_talk);
} else {
var v4 = this.data.talk.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.world.talk[this.data.talk[v2]].condition;
if (undefined == v3 || v3()) {
this.talks_avail.push(this.data.talk[v2]);
}
++v2;
}
}
}
};
v2.syncTalkList = function () {
var v5 = (Core.Get()).world;
var v4 = this.list_slots.length;
var v3 = v4;
var v6 = this.talks_avail.length;
v6 -= this.list_offs;
if (v6 < v3) {
v3 = v6;
}
var v2 = 0;
while (v2 < v3) {
var v7 = this.list_slots[v2];
v7.setCaption(v5.talk[this.talks_avail[v2 + this.list_offs]].theme);
v7._visible = true;
++v2;
}
v2 = v3;
while (v2 < v4) {
v7 = this.list_slots[v2];
v7.setCaption('');
v7._visible = false;
++v2;
}
if (!this.no_bye && v3 < v4) {
v7 = this.list_slots[v4 - 1];
v7.setCaption(v5.talk[-1].theme);
v7._visible = true;
}
};
v2.onScrollList = function (pos_) {
if (this.list_offs == pos_) {
return undefined;
}
this.list_offs = pos_;
if (this.list_selection != -1) {
trace('ERROR');
return undefined;
}
this.syncTalkList();
};
v2.deselectSlot = function () {
if (this.list_selection != -1) {
this.list_slots[this.list_selection].deselect();
this.list_selection = -1;
}
};
v2.selectSlot = function (i_) {
this.deselectSlot();
this.list_slots[i_].select();
this.list_selection = i_;
};
v2.onSlotClick = function (i_) {
this.selectSlot(i_);
this.disableTalk();
this.startTalk(i_ + this.list_offs);
};
v2.startTalk = function (i) {
if (this.talks_avail.length <= i) {
this.bye();
} else {
this.cur_talk = this.world.talk[this.talks_avail[i]].msg;
if (this.cur_talk == undefined || this.cur_talk.length == 0) {
this.endTalk();
} else {
this.cur_phrase = 0;
this.btn_goon._visible = true;
this.nextPhrase();
}
}
};
v2.nextPhrase = function () {
var v5 = false;
var v2 = this.cur_talk[this.cur_phrase];
if (undefined != v2.event) {
if (undefined == v2.condition || v2.condition()) {
if (v2.event == 'set_flag') {
if (undefined == v2.value) {
this.game.setFlag(v2.flag);
} else {
this.game.setFlagTo(v2.flag, v2.value);
}
} else {
if (v2.event == 'reset_flag') {
this.game.setFlagTo(v2.flag, undefined);
} else {
if (v2.event == 'give_exp') {
this.game.giveExpTeam(v2.value);
var v9 = (Core.Get()).locale.talk.exp + v2.value;
this.dialogue.push('', v9);
} else {
if (v2.event == 'give_money') {
this.game.money += v2.value;
var v9 = (Core.Get()).locale.talk.money + v2.value;
this.dialogue.push('', v9);
} else {
if (v2.event == 'give_item') {
this.game.putInventory(v2.item);
var v9 = (Core.Get()).locale.talk.item + this.world.items[v2.item].name;
this.dialogue.push('', v9);
} else {
if (v2.event == 'add_quest') {
this.game.progressQuest(v2.quest, v2.stage);
var v9 = (Core.Get()).locale.talk.journal + this.world.getQuestTitle(v2.quest);
this.dialogue.push('', v9);
} else {
if (v2.event == 'set_area_flag') {
this.game.setAreaFlag(v2.flag);
} else {
if (v2.event == 'give_quest_item') {
var v9 = (Core.Get()).locale.talk.item + this.world.quest_items[v2.item].name;
this.dialogue.push('', v9);
if (undefined == v2.count) {
this.game.giveQuestItems(v2.item, 1);
} else {
this.game.giveQuestItems(v2.item, v2.count);
}
if (27 == v2.item) {
this.game.traders.garret.push(160);
this.game.traders.keabo.push(161);
this.game.traders.jax.push(162);
}
} else {
if (v2.event == 'remove_quest_item') {
if (this.game.hasQuestItems(v2.item, 2)) {
var v9 = (Core.Get()).locale.talk.items_lost + this.world.quest_items[v2.item].name;
} else {
var v9 = (Core.Get()).locale.talk.item_lost + this.world.quest_items[v2.item].name;
}
this.dialogue.push('', v9);
this.game.removeQuestItems(v2.item);
} else {
if (v2.event == 'trade') {
this.game.exchange = {'npc': v2.npc};
(Core.Get()).unpopupBusy();
(Core.Get()).popupTrade();
} else {
if (v2.event == 'complete_quest') {
this.game.completeQuest(v2.quest);
var v9 = (Core.Get()).locale.talk.journal + this.world.getQuestTitle(v2.quest);
this.dialogue.push('', v9);
} else {
if (v2.event == 'fail_quest') {
this.game.failQuest(v2.quest);
var v9 = (Core.Get()).locale.talk.journal + this.world.getQuestTitle(v2.quest);
this.dialogue.push('', v9);
} else {
if (v2.event == 'battle') {
var v10 = v2.level;
var v8 = this.game.getTeamLevel();
if (undefined == v10 || 0 > v10 || v10 < v8) {
v10 = v8;
}
this.game.exchange = {'band': v2.band, 'level': v10};
(Core.Get()).unpopupBusy();
(Core.Get()).goBattle(30);
} else {
if (v2.event == 'join_team') {
this.game.joinTeam(v2.npc);
var v9 = this.world.chars[v2.npc].name + (Core.Get()).locale.talk.join;
this.dialogue.push('', v9);
if (this.world.chars[v2.npc].str_id == this.cur_npc) {
this.no_talk = true;
}
var v6 = this.game.stats[0].level;
if (this.game.stats[v2.npc].level < v6) {
this.game.stats[v2.npc].level = v6;
this.game.stats[v2.npc].exp = 0;
this.game.syncCharStats(v2.npc);
}
} else {
if (v2.event == 'leave_team') {
this.game.leaveTeam(v2.npc);
var v9 = this.world.chars[v2.npc].name + (Core.Get()).locale.talk.leave;
this.dialogue.push('', v9);
} else {
if (v2.event == 'move_to_area') {
this.game.in_area = this.world.area_to_id[v2.area];
(Core.Get()).unpopupBusy();
if (v2.enter) {
(Core.Get()).goArea();
} else {
(Core.Get()).goMap();
}
} else {
if (v2.event == 'remove_money') {
this.game.money -= v2.value;
var v9 = (Core.Get()).locale.talk.money_lost + v2.value;
this.dialogue.push('', v9);
} else {
if (v2.event == 'talk') {
this.game.exchange = {'npc': v2.npc, 'no_bye': v2.no_bye};
(Core.Get()).popupTalk();
} else {
if (v2.event == 'allow_bye') {
this.no_bye = false;
} else {
if (v2.event == 'weaken_fog') {
var v4 = v2.x;
while (v4 < v2.x + v2.w) {
var v3 = v2.y;
while (v3 < v2.y + v2.h) {
if (this.game.fog_data[v4][v3] > 50) {
this.game.fog_data[v4][v3] = 50;
}
++v3;
}
++v4;
}
} else {
if (v2.event == 'mark') {
this.game.areas_marked[this.world.area_to_id[v2.area]] = true;
} else {
if (v2.event == 'add_guide') {
if (!this.game.areas_shown[this.world.area_to_id[v2.area]]) {
this.game.addGuide(v2.area);
}
} else {
if (v2.event == 'limit_map') {
this.game.map_tl = new Pair(v2.tl_x, v2.tl_y);
this.game.map_br = new Pair(v2.br_x, v2.br_y);
} else {
if (v2.event == 'unlimit_map') {
var v7 = (Core.Get()).cfg.map_size;
this.game.map_tl = new Pair(0, 0);
this.game.map_br = new Pair(v7.x, v7.y);
} else {
if (v2.event == 'start_timer') {
this.game.timers[v2.timer] = 0;
} else {
if (v2.event == 'kill_timer') {
this.game.timers[v2.timer] = undefined;
} else {
if (v2.event == 'game_over') {
(Core.Get()).unpopupBusy();
(Core.Get()).goLose();
} else {
if (v2.event == 'skill_up') {
(Core.Get()).game.stats[v2.npc][v2.skill] += 5;
var v9 = this.world.chars[v2.npc].name + (Core.Get()).locale.talk.skill_up + v2.skill.toUpperCase() + '!';
this.dialogue.push('', v9);
} else {
if (v2.event == 'finish_game') {
(Core.Get()).unpopupBusy();
(Core.Get()).game.exchange = {'ending': v2.ending};
(Core.Get()).goOutro();
} else {
if (v2.event == 'no_talk') {
this.no_talk = true;
} else {
if (v2.event == 'spawn') {
if (v2.band == 'arma_machine') {
this.game.addEnemy(213, 516, v2.band);
this.game.addEnemy(516, 1005, v2.band);
this.game.addEnemy(876, 822, v2.band);
this.game.addEnemy(1017, 345, v2.band);
this.game.addEnemy(1026, 1254, v2.band);
this.game.addEnemy(1077, 1065, v2.band);
this.game.addEnemy(1395, 573, v2.band);
this.game.addEnemy(1431, 999, v2.band);
this.game.addEnemy(1728, 72, v2.band);
this.game.addEnemy(1719, 963, v2.band);
this.game.addEnemy(1767, 1374, v2.band);
this.game.addEnemy(1941, 495, v2.band);
this.game.addEnemy(2064, 1155, v2.band);
}
} else {
if (v2.event == 'enable_screen') {
this.need_enable_screen = true;
} else {
Log.Err('Invalid event: ' + v2.event);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
v5 = true;
} else {
if (undefined == v2.condition || v2.condition()) {
this.dialogue.push(v2.npc, v2.text);
} else {
v5 = true;
}
}
this.syncTalk();
++this.cur_phrase;
if (this.cur_phrase == this.cur_talk.length) {
this.endTalk();
} else {
if (v5) {
this.nextPhrase();
}
}
};
v2.endTalk = function () {
if (this.force_talk > -1) {
this.list_slots[0]._visible = false;
} else {
this.checkTalkAvail();
this.syncTalkList();
}
this.enableTalk();
this.btn_goon._visible = false;
this.cur_talk = [];
this.cur_phrase = -1;
this.deselectSlot();
};
v2.disableTalk = function () {
var v4 = this.list_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.list_slots[v2];
if (v3._visible) {
v3.disable();
}
++v2;
}
};
v2.enableTalk = function () {
var v4 = this.list_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.list_slots[v2];
if (v3._visible) {
v3.enable();
}
++v2;
}
};
v2.onScrollTalk = function (pos_) {
this.dialogue.scrollTo(pos_);
};
v2.syncTalk = function () {
var v2 = this.dialogue.y - this.dialogue.max_y + 1;
if (v2 < 0) {
v2 = 0;
}
var v3 = this.dialogue.ori_offs;
this.scroll_talk.setValueBounds(v3, v2);
this.scroll_talk.setValue(v2);
this.dialogue.scrollTo(v2);
};
v2.calibrateListScroll = function () {
var v3 = this.talks_avail.length;
var v2 = v3 - this.list_slots.length;
if (v2 < 0) {
v2 = 0;
}
this.scroll_list.setValueBounds(0, v2);
this.scroll_list.setValue(0);
this.list_offs = 0;
};
v2.onGoOnClick = function () {
this.nextPhrase();
};
v2.bye = function () {
if (this.need_enable_screen) {
(Core.Get()).unpopupEnable();
} else {
(Core.Get()).unpopup();
}
};
v2.onMouseWheel = function (value) {
if (value < 0) {
this.scroll_talk.scrollDown();
} else {
if (value > 0) {
this.scroll_talk.scrollUp();
}
}
};
ASSetPropFlags(_global.ScreenTalk.prototype, null, 1);
}
#endinitclip
}
movieClip 1992 __Packages.ScreenTrade {
#initclip
if (!_global.ScreenTrade) {
var v1 = function () {
super();
Log.Msg('ScreenTrade::ScreenTrade()');
this.game = (Core.Get()).game;
this.trader = this.trader;
this.inventory = this.inventory;
this.btn_sort = this.btn_sort;
this.btn_leave = this.btn_leave;
this.drag_obj = null;
this.syncMoney();
this.scroll = this.scroll;
this.scroll_trader = this.scroll_trader;
this.tooltip = this.tooltip;
(Core.Get()).onMouseWheel = mx.utils.Delegate.create(this, this.onMouseWheel);
};
_global.ScreenTrade = v1;
_global.ScreenTrade extends Screen;
var v2 = v1.prototype;
v2.init = function () {
var v3 = this.game.exchange.npc;
var v2 = (Core.Get()).world.npc[v3];
this.npc.inner.gotoAndStop(1 + v2.id);
this.name.text = v2.name;
this.trader.init(v3, (Core.Get()).cfg.trader_size, mx.utils.Delegate.create(this, this.onTraderDrag), mx.utils.Delegate.create(this, this.onTraderDrop));
this.inventory.init('', (Core.Get()).cfg.inventory_size, mx.utils.Delegate.create(this, this.onInventoryDrag), mx.utils.Delegate.create(this, this.onInventoryDrop));
this.btn_sort.setCaption((Core.Get()).locale.btn.sort);
this.btn_sort.setOnClick(mx.utils.Delegate.create(this, this.sortInventory));
this.btn_leave.setCaption((Core.Get()).locale.btn.leave);
this.btn_leave.setOnClick(mx.utils.Delegate.create(this, this.onBtnLeaveClick));
this.setScrollBounds();
this.scroll.cbScroll = mx.utils.Delegate.create(this, this.onScroll);
this.scroll.setValue(0);
this.setScrollTraderBounds();
this.scroll_trader.cbScroll = mx.utils.Delegate.create(this, this.onScrollTrader);
this.scroll_trader.setValue(0);
this.tooltip.setItem(-1);
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
};
v2.recalibrateScrolls = function () {
this.setScrollBounds();
this.scroll.reScroll();
this.setScrollTraderBounds();
this.scroll_trader.reScroll();
};
v2.setScrollBounds = function () {
this.scroll.setValueBounds(0, this.inventory.getMaxScroll());
};
v2.onScroll = function (val_) {
this.inventory.scrollTo(val_);
};
v2.setScrollTraderBounds = function () {
this.scroll_trader.setValueBounds(0, this.trader.getMaxScroll());
};
v2.onScrollTrader = function (val_) {
this.trader.scrollTo(val_);
};
v2.onInventoryDrag = function (i_) {
var v2 = this.inventory.getItemFromCell(i_);
this.dragItem(v2);
(Core.Get()).playSound('item_take');
};
v2.onTraderDrag = function (i_) {
var v2 = this.trader.getPriceFromCell(i_);
if (v2 <= this.game.money) {
this.dragItem(this.trader.getItemFromCell(i_));
(Core.Get()).playSound('item_take');
} else {
(Core.Get()).playSound('item_put');
}
};
v2.dragItem = function (item_) {
var v2 = 1 + item_;
this.drag_obj = this.attachMovie('item', 'drag_obj', this.getNextHighestDepth());
this.drag_obj.gotoAndStop(v2);
this.drag_obj.startDrag(false, 0, 0, 480, 320);
this.drag_obj._x = this._xmouse - 45;
this.drag_obj._y = this._ymouse - 27;
this.drag_obj.filters = [Filters.Shadow()];
this.tooltip.setItem(-1);
};
v2.onInventoryDrop = function (i_) {
var v2 = false;
if (!v2 && this.trader.hitTest(this._xmouse, this._ymouse)) {
var v4 = this.inventory.getItemFromCell(i_);
this.game.takeInventory(v4);
this.inventory.sync();
this.game.sellItem(this.trader.src, v4);
this.trader.sync();
this.syncMoney();
this.recalibrateScrolls();
v2 = true;
(Core.Get()).playSound('trade');
}
if (!v2 && this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v3 = this.inventory.getPosFromCell(i_);
var v5 = this.inventory.getPosAt(this._xmouse, this._ymouse);
if (v3 != v5) {
this.game.moveInventoryItem(v3, v5);
this.inventory.sync();
}
}
this.drag_obj.stopDrag();
this.drag_obj.removeMovieClip();
this.drag_obj = null;
(Core.Get()).playSound('item_put');
this.onMouse();
};
v2.onTraderDrop = function (i_) {
var v4 = this.trader.getPriceFromCell(i_);
if (v4 > this.game.money) {
return undefined;
}
var v2 = false;
if (!v2 && this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v3 = this.trader.getItemFromCell(i_);
var v5 = this.inventory.getPosAt(this._xmouse, this._ymouse);
this.game.putInventoryAt(v3, v5);
this.inventory.sync();
this.game.buyItem(this.trader.src, v3);
this.trader.sync();
this.syncMoney();
this.recalibrateScrolls();
v2 = true;
(Core.Get()).playSound('trade');
}
this.drag_obj.stopDrag();
this.drag_obj.removeMovieClip();
this.drag_obj = null;
(Core.Get()).playSound('item_put');
this.onMouse();
};
v2.sortInventory = function () {
this.game.sortInventory();
this.inventory.sync();
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
if (this.drag_obj) {
this.tooltip.setItem(-1);
return undefined;
}
if (this.inventory.hitTest(this._xmouse, this._ymouse)) {
var v2 = this.inventory.getPosAt(this._xmouse, this._ymouse);
var v3 = this.inventory.src;
var v4 = (0 <= v2 && v2 < v3.length) ? v3[v2].item : -1;
this.tooltip.setItem(v4, true);
if (-1 != v4) {
this.placeTooltip();
}
return undefined;
}
if (this.trader.hitTest(this._xmouse, this._ymouse)) {
v2 = this.trader.getPosAt(this._xmouse, this._ymouse);
v3 = this.trader.src;
v4 = -1;
var v5 = false;
if (0 <= v2 && v2 < v3.length) {
if (v3[v2] instanceof Object) {
v4 = v3[v2].item;
v5 = undefined != v3[v2].buy_back && v3[v2].buy_back > 0;
} else {
v4 = v3[v2];
}
}
this.tooltip.setItem(v4, v5);
if (-1 != v4) {
this.placeTooltip();
}
return undefined;
}
this.tooltip.setItem(-1);
};
v2.placeTooltip = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip._x = this._xmouse - 32;
this.tooltip._y = this._ymouse + 16;
var v3 = this.tooltip._x + this.tooltip._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip._x -= v3;
}
var v4 = this.tooltip._y + this.tooltip._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip._y = this._ymouse - 8 - this.tooltip._height;
}
};
v2.onMouseWheel = function (value) {
var v2 = this.scroll;
if (!v2.enabled || this.scroll_trader.enabled && this._xmouse < 175) {
v2 = this.scroll_trader;
}
if (value < 0) {
v2.scrollDown();
} else {
if (value > 0) {
v2.scrollUp();
}
}
this.onMouse();
};
v2.onBtnLeaveClick = function () {
(Core.Get()).unpopup();
};
v2.syncMoney = function () {
var v2 = '€' + ex.formatNumberCommas(this.game.money);
this.money.text = v2;
};
ASSetPropFlags(_global.ScreenTrade.prototype, null, 1);
}
#endinitclip
}
movieClip 1993 __Packages.ExpSlot {
#initclip
if (!_global.ExpSlot) {
var v1 = function () {
super();
this.char.stop();
this.back.stop();
this.lvl_up._visible = false;
this.new_perk._visible = false;
this.bonus_points._visible = false;
this.hiliter.stop();
this.hiliter._visible = false;
this.id = -1;
};
_global.ExpSlot = v1;
_global.ExpSlot extends MovieClip;
var v2 = v1.prototype;
v2.setChar = function (id_) {
this.id = id_;
if (id_ >= 0) {
var v4 = (Core.Get()).world;
var v3 = v4.chars[id_];
this.name.text = v3.name;
this.char.gotoAndStop(id_ + 1);
this.char.filters = [Filters.GlowLight(13434828)];
} else {
this.name.text = '---';
this.char._visible = false;
this.filters = [Filters.Desaturator()];
this.exp._visible = false;
}
};
v2.isHit = function (x_, y_) {
return this.char_back.hitTest(x_, y_);
};
v2.setExp = function (value) {
this.exp.text = '+' + value + 'XP';
};
v2.showLevelUp = function () {
this.hiliter._visible = true;
this.hiliter.play();
this.lvl_up._visible = true;
};
v2.showNewPerk = function () {
this.new_perk._visible = true;
};
v2.showBonusPoints = function () {
this.bonus_points._visible = true;
};
ASSetPropFlags(_global.ExpSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1994 __Packages.ScreenBattleWin {
#initclip
if (!_global.ScreenBattleWin) {
var v1 = function () {
super();
Log.Msg('ScreenBattleWin::ScreenBattleWin()');
(Core.Get()).switchMusic(0);
(Core.Get()).playSound('victory');
this.team_slots = new Array();
this.team_slots.push(this.slot1);
this.team_slots.push(this.slot2);
this.team_slots.push(this.slot3);
this.team_slots.push(this.slot4);
this.onMouseMove = mx.utils.Delegate.create(this, this.onMouse);
this.drop = this.drop_outer.drop;
};
_global.ScreenBattleWin = v1;
_global.ScreenBattleWin extends Screen;
var v2 = v1.prototype;
v2.init = function () {
var v2 = (Core.Get()).game;
var v12 = v2.exchange.exp;
var v10 = v12 * (1.5 + Math.random()) / 4;
if (v2.getTeamLevel() < 5) {
v10 *= 2;
} else {
if (v2.getTeamLevel() < 10) {
v10 *= 1.5;
}
}
v10 = Math.round(v10);
this.money.text = '€' + ex.formatNumberCommas(v10);
v2.money += v10;
var v7 = [];
var v8 = this.team_slots.length;
var v5 = 0;
while (v5 < v8) {
var v6 = v2.team[v5];
var v4 = this.team_slots[v5];
v4.setChar(v6);
if (v6 >= 0) {
v7.push(v5);
}
++v5;
}
var v9 = Math.round(v12 / v7.length);
v8 = Math.floor(v7.length);
v5 = 0;
while (v5 < v8) {
v4 = this.team_slots[v7[v5]];
v4.setExp(v9);
v2.giveExp(v4.id, v9);
var v3 = v2.stats[v4.id];
if (v3.level_up) {
v4.showLevelUp();
v3.level_up = false;
}
if (v3.perk_unlocked) {
v4.showNewPerk();
v3.perk_unlocked = false;
}
if (v3.bonus_points) {
v4.showBonusPoints();
v3.bonus_points = false;
}
++v5;
}
var v11 = Math.round(v12 / 4);
v5 = 4;
while (v5 < 12) {
if (v2.team[v5] >= 0) {
v2.giveExp(v2.team[v5], v11);
v3 = v2.stats[v2.team[v5]];
if (v3.level_up) {
v3.level_up = false;
}
if (v3.perk_unlocked) {
v3.perk_unlocked = false;
}
if (v3.bonus_points) {
v3.bonus_points = false;
}
}
++v5;
}
this.btn_ok.setCaption((Core.Get()).locale.btn.ok);
this.btn_ok.setOnClick(this.onBtnOKClick);
this.drop.initFromSource(v2.exchange.drop, (Core.Get()).cfg.drop_size);
(Core.Get()).game.putInventoryArray(v2.exchange.drop);
};
v2.onBtnOKClick = function () {
(Core.Get()).unpopup();
if ((Core.Get()).game.isQuestComplete('natan_plan')) {
(Core.Get()).game.exchange = {'ending': 1};
(Core.Get()).goOutro();
return undefined;
}
if ((Core.Get()).game.isQuestComplete('meta_uprise')) {
(Core.Get()).game.exchange = {'ending': 2};
(Core.Get()).goOutro();
return undefined;
}
if ((Core.Get()).game.stats[0].ups) {
(Core.Get()).popupSkillsUp();
} else {
if ((Core.Get()).game.in_area >= 0) {
(Core.Get()).goArea();
} else {
(Core.Get()).goMap();
}
}
};
v2.onMouse = function () {
if (!this.enabled) {
return undefined;
}
var v4 = this.team_slots.length;
var v2 = 0;
while (v2 < v4) {
var v3 = this.team_slots[v2];
if (v3.isHit(this._xmouse, this._ymouse)) {
this.tooltip.setChar((Core.Get()).game.team[v2]);
this.placeTooltip();
return undefined;
}
++v2;
}
this.tooltip.setChar(-1);
if (this.drop.hitTest(this._xmouse, this._ymouse)) {
var v5 = this.drop.getPosAt(this._xmouse, this._ymouse);
var v6 = this.drop.src;
var v7 = (0 <= v5 && v5 < v6.length) ? v6[v5].item : -1;
this.tooltip_item.setItem(v7, true);
if (-1 != v7) {
this.placeTooltipItem();
}
return undefined;
}
this.tooltip_item.setItem(-1);
};
v2.placeTooltip = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip._x = this._xmouse - 32;
this.tooltip._y = this._ymouse + 16;
var v3 = this.tooltip._x + this.tooltip._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip._x -= v3;
}
var v4 = this.tooltip._y + this.tooltip._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip._y = this._ymouse - 8 - this.tooltip._height;
}
};
v2.placeTooltipItem = function () {
var v5 = (Core.Get()).cfg;
var v2 = v5.scr_size;
this.tooltip_item._x = this._xmouse - 32;
this.tooltip_item._y = this._ymouse + 16;
var v3 = this.tooltip_item._x + this.tooltip_item._width + 8 - v2.x;
if (v3 > 0) {
this.tooltip_item._x -= v3;
}
var v4 = this.tooltip_item._y + this.tooltip_item._height + 8 - v2.y;
if (v4 > 0) {
this.tooltip_item._y = this._ymouse - 8 - this.tooltip_item._height;
}
};
ASSetPropFlags(_global.ScreenBattleWin.prototype, null, 1);
}
#endinitclip
}
movieClip 1995 __Packages.ScreenLose {
#initclip
if (!_global.ScreenLose) {
var v1 = function () {
super();
Log.Msg('ScreenBattleWin::ScreenBattleWin()');
(Core.Get()).switchMusic(-1);
(Core.Get()).playSound('game_lose');
};
_global.ScreenLose = v1;
_global.ScreenLose extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_load.setCaption((Core.Get()).locale.btn.load);
this.btn_load.setOnClick(this.onBtnLoadClick);
this.btn_exit.setCaption((Core.Get()).locale.btn.quit);
this.btn_exit.setOnClick(this.onBtnExitClick);
};
v2.onBtnLoadClick = function () {
(Core.Get()).popupLoad();
};
v2.onBtnExitClick = function () {
(Core.Get()).goMain();
};
v2.enable = function () {
this.enabled = true;
this.btn_load.enable();
this.btn_exit.enable();
};
v2.disable = function () {
this.enabled = false;
this.btn_load.disable();
this.btn_exit.disable();
};
ASSetPropFlags(_global.ScreenLose.prototype, null, 1);
}
#endinitclip
}
movieClip 1996 __Packages.ScreenOptions {
#initclip
if (!_global.ScreenOptions) {
var v1 = function () {
super();
Log.Msg('ScreenOptions::ScreenOptions()');
this.adv.gotoAndPlay(1 + 120 * ex.randomInt(3));
};
_global.ScreenOptions = v1;
_global.ScreenOptions extends Screen;
var v2 = v1.prototype;
v2.init = function () {
(Core.Get()).switchMusic(5);
this.btn_save.setCaption((Core.Get()).locale.btn.save);
this.btn_save.setOnClick(mx.utils.Delegate.create(this, this.onSaveClick));
this.btn_load.setCaption((Core.Get()).locale.btn.load);
this.btn_load.setOnClick(mx.utils.Delegate.create(this, this.onLoadClick));
this.btn_music.setCaption((Core.Get()).locale.btn.music);
if ((Core.Get()).isMusicOn()) {
this.btn_music.push();
}
this.btn_music.setOnClick(mx.utils.Delegate.create(this, this.onBtnMusicClick));
this.btn_sound.setCaption((Core.Get()).locale.btn.sound);
if ((Core.Get()).isSoundOn()) {
this.btn_sound.push();
}
this.btn_sound.setOnClick(mx.utils.Delegate.create(this, this.onBtnSoundClick));
this.btn_restart.setCaption((Core.Get()).locale.btn.quit);
this.btn_restart.setOnClick(mx.utils.Delegate.create(this, this.onRestartClick));
};
v2.onSaveClick = function () {
(Core.Get()).unpopup();
(Core.Get()).popupSave();
};
v2.onLoadClick = function () {
(Core.Get()).unpopup();
(Core.Get()).popupLoad();
};
v2.onRestartClick = function () {
(Core.Get()).unpopup();
(Core.Get()).goMain();
};
v2.onBtnMusicClick = function () {
if (this.btn_music.isPushed()) {
this.btn_music.unpush();
} else {
this.btn_music.push();
}
(Core.Get()).setMusic(this.btn_music.isPushed());
};
v2.onBtnSoundClick = function () {
if (this.btn_sound.isPushed()) {
this.btn_sound.unpush();
} else {
this.btn_sound.push();
}
(Core.Get()).setSound(this.btn_sound.isPushed());
};
ASSetPropFlags(_global.ScreenOptions.prototype, null, 1);
}
#endinitclip
}
movieClip 1997 __Packages.ScreenSkillUp {
#initclip
if (!_global.ScreenSkillUp) {
var v1 = function () {
super();
Log.Msg('ScreenSkillUp::ScreenSkillUp()');
this.char_id = 0;
this.npc_id = 75;
this.ups = (Core.Get()).game.stats[this.char_id].ups;
this.skill_list = ['vit', 'acc', 'def', 'dgr', 'tch', 'med', 'lck'];
var v4 = (Core.Get()).game.stats[this.char_id];
this.old_state = new Object();
this.old_state.ups = v4.ups;
var v3 = 0;
while (v3 < this.skill_list.length) {
this.old_state[this.skill_list[v3]] = v4[this.skill_list[v3]];
++v3;
}
};
_global.ScreenSkillUp = v1;
_global.ScreenSkillUp extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.npc.inner.gotoAndStop(this.npc_id);
this.pool.text = 5 * this.ups;
var onUp = mx.utils.Delegate.create(this, this.onUpClick);
this.vit.skill.text = 'Vit:';
this.vit.btn.setCaption((Core.Get()).locale.btn.up);
this.vit.btn.setOnClick(function () {
onUp('vit');
});
this.acc.skill.text = 'Acc:';
this.acc.btn.setCaption((Core.Get()).locale.btn.up);
this.acc.btn.setOnClick(function () {
onUp('acc');
});
this.def.skill.text = 'Def:';
this.def.btn.setCaption((Core.Get()).locale.btn.up);
this.def.btn.setOnClick(function () {
onUp('def');
});
this.dgr.skill.text = 'Dgr:';
this.dgr.btn.setCaption((Core.Get()).locale.btn.up);
this.dgr.btn.setOnClick(function () {
onUp('dgr');
});
this.tch.skill.text = 'Tch:';
this.tch.btn.setCaption((Core.Get()).locale.btn.up);
this.tch.btn.setOnClick(function () {
onUp('tch');
});
this.med.skill.text = 'Med:';
this.med.btn.setCaption((Core.Get()).locale.btn.up);
this.med.btn.setOnClick(function () {
onUp('med');
});
this.lck.skill.text = 'Lck:';
this.lck.btn.setCaption((Core.Get()).locale.btn.up);
this.lck.btn.setOnClick(function () {
onUp('lck');
});
this.btn_ok._visible = false;
this.btn_ok.setCaption((Core.Get()).locale.btn.ok);
this.btn_ok.setOnClick(mx.utils.Delegate.create(this, this.onOKClick));
this.btn_reset.setCaption((Core.Get()).locale.btn.reset);
this.btn_reset.setOnClick(mx.utils.Delegate.create(this, this.onResetClick));
this.sync();
this.syncDescri();
};
v2.sync = function () {
var v2 = (Core.Get()).game.stats[this.char_id];
this.vit.value.text = v2.vit;
this.acc.value.text = v2.acc;
this.def.value.text = v2.def;
this.dgr.value.text = v2.dgr;
this.tch.value.text = v2.tch;
this.med.value.text = v2.med;
this.lck.value.text = v2.lck;
};
v2.onOKClick = function () {
var v1 = (Core.Get()).game.exchange.no_switch;
(Core.Get()).unpopup();
if ((Core.Get()).game.in_area >= 0) {
if (!v1) {
(Core.Get()).goArea();
}
} else {
(Core.Get()).goMap();
}
};
v2.onUpClick = function (skill_) {
if (!this.ups) {
this.btn_ok._visible = true;
return undefined;
}
this[skill_].btn._visible = false;
var v3 = (Core.Get()).game.stats[this.char_id];
v3[skill_] += 5;
this[skill_].value.text = v3[skill_];
--this.ups;
if (!this.ups) {
this.vit.btn._visible = false;
this.acc.btn._visible = false;
this.def.btn._visible = false;
this.dgr.btn._visible = false;
this.tch.btn._visible = false;
this.med.btn._visible = false;
this.lck.btn._visible = false;
this.btn_ok._visible = true;
(Core.Get()).game.stats[this.char_id].ups = 0;
} else {
if (0 == this.ups % 4) {
this.vit.btn._visible = true;
this.acc.btn._visible = true;
this.def.btn._visible = true;
this.dgr.btn._visible = true;
this.tch.btn._visible = true;
this.med.btn._visible = true;
this.lck.btn._visible = true;
}
}
this.pool.text = 5 * this.ups;
};
v2.onResetClick = function () {
(Core.Get()).game.stats[this.char_id].ups = 0;
var v3 = (Core.Get()).game.stats[this.char_id];
v3.ups = this.old_state.ups;
var v2 = 0;
while (v2 < this.skill_list.length) {
v3[this.skill_list[v2]] = this.old_state[this.skill_list[v2]];
++v2;
}
this.ups = v3.ups;
this.btn_ok._visible = false;
this.vit.btn._visible = true;
this.acc.btn._visible = true;
this.def.btn._visible = true;
this.dgr.btn._visible = true;
this.tch.btn._visible = true;
this.med.btn._visible = true;
this.lck.btn._visible = true;
this.pool.text = 5 * this.ups;
this.sync();
};
v2.onMouseMove = function () {
this.syncDescri();
};
v2.syncDescri = function () {
var v3 = -1;
if (this.enabled) {
var v2 = 0;
while (v2 < this.skill_list.length) {
if (this[this.skill_list[v2]].hitTest(this._xmouse, this._ymouse, true)) {
v3 = v2;
break;
}
++v2;
}
}
if (v3 < 0) {
this.descri._visible = false;
} else {
this.descri._visible = true;
this.descri.text = (Core.Get()).locale.skill_descri[this.skill_list[v3]];
}
};
ASSetPropFlags(_global.ScreenSkillUp.prototype, null, 1);
}
#endinitclip
}
movieClip 1998 __Packages.SaveSlot {
#initclip
if (!_global.SaveSlot) {
var v1 = function () {
super();
this.id = -1;
this.stop();
this.npc1.inner.stop();
this.npc2.inner.stop();
this.npc3.inner.stop();
this.npc4.inner.stop();
};
_global.SaveSlot = v1;
_global.SaveSlot extends MovieClip;
var v2 = v1.prototype;
v2.init = function (id_, on_click_) {
this.btn.setOnClick(function () {
on_click_(id_);
});
};
v2.setData = function (data_) {
if (!data_.valid) {
this.gotoAndStop(2);
} else {
this.gotoAndStop(1);
this.level.text = data_.level;
if (data_.area >= 0) {
if ((Core.Get()).world.areas[data_.area].caption2 != undefined) {
this.area.text = (Core.Get()).world.areas[data_.area].caption2;
} else {
this.area.text = (Core.Get()).world.areas[data_.area].caption;
}
} else {
if (data_.region >= 0) {
this.area.text = (Core.Get()).world.regions[data_.region].name;
} else {
this.area.text = '';
}
}
this.setNPC(this.npc1, data_.slots[0]);
this.setNPC(this.npc2, data_.slots[1]);
this.setNPC(this.npc3, data_.slots[2]);
this.setNPC(this.npc4, data_.slots[3]);
}
};
v2.setNPC = function (slot_, npc_) {
if (npc_ < 0) {
slot_.inner.stop();
slot_._visible = false;
} else {
var v2 = [74, 71, 70, 75, 63, 73, 57, 29, 13, 72, 51, 54];
slot_.inner.gotoAndStop(1 + v2[npc_]);
}
};
v2.disable = function () {
this.enabled = false;
this.btn.disable();
this.filters = [Filters.Desaturator()];
};
v2.enable = function () {
this.enabled = true;
this.btn.enable();
this.filters = [];
};
ASSetPropFlags(_global.SaveSlot.prototype, null, 1);
}
#endinitclip
}
movieClip 1999 __Packages.ScreenSaveLoad {
#initclip
if (!_global.ScreenSaveLoad) {
var v1 = function () {
super();
Log.Msg('ScreenSaveLoad::ScreenSaveLoad()');
this.save = (Core.Get()).game.exchange.save;
this.slots = new Array();
this.meta_data = (Core.Get()).meta_save;
this.back.gotoAndStop(this.save ? 'save' : 'load');
Key.addListener(this);
};
_global.ScreenSaveLoad = v1;
_global.ScreenSaveLoad extends Screen;
var v2 = v1.prototype;
v2.onKeyDown = function () {
if (Key.isDown(27)) {
(Core.Get()).unpopup();
}
};
v2.init = function () {
(Core.Get()).switchMusic(5);
this.slots.push(this.slot0);
this.slots.push(this.slot1);
this.slots.push(this.slot2);
this.slots.push(this.slot3);
var v2 = 0;
while (v2 < this.slots.length) {
this.slots[v2].init(v2, mx.utils.Delegate.create(this, this.onSlotClick));
++v2;
}
this.sync();
};
v2.sync = function () {
var v2 = 0;
while (v2 < this.slots.length) {
this.slots[v2].setData(this.meta_data[v2]);
if (!this.save && !this.meta_data[v2].valid) {
this.slots[v2].disable();
}
++v2;
}
if (this.save) {
this.slots[0].disable();
}
};
v2.onSlotClick = function (id_) {
if (this.save) {
(Core.Get()).saveGame(id_);
} else {
(Core.Get()).loadGame(id_);
}
(Core.Get()).unpopup();
(Core.Get()).goMap();
};
ASSetPropFlags(_global.ScreenSaveLoad.prototype, null, 1);
}
#endinitclip
}
movieClip 2000 __Packages.ScreenOutro {
#initclip
if (!_global.ScreenOutro) {
var v1 = function () {
super();
Log.Msg('ScreenOutro::ScreenOutro()');
(Core.Get()).switchMusic(0);
(Core.Get()).playSound('game_win');
this.message.text = '';
this.back.stop();
};
_global.ScreenOutro = v1;
_global.ScreenOutro extends Screen;
var v2 = v1.prototype;
v2.init = function () {
this.btn_quit.setCaption((Core.Get()).locale.btn.quit);
this.btn_quit.setOnClick(this.onBtnQuitClick);
var v2 = (Core.Get()).game.exchange.ending;
this.msg_text = (Core.Get()).locale.text.outro[v2 - 1];
this.back.gotoAndStop(v2);
if ((Core.Get()).game.isQuestComplete('natan_plan')) {
(Core.Get()).unlockMedal('Space Crusade');
}
if ((Core.Get()).game.isQuestComplete('meta_uprise')) {
(Core.Get()).unlockMedal('Technolize');
}
if ((Core.Get()).game.isQuestComplete('talks_with_aliens')) {
(Core.Get()).unlockMedal('Alien Plan');
}
this.letter = 0;
};
v2.onEnterFrame = function () {
if (this.enabled && this.letter < this.msg_text.length) {
this.letter += 1;
this.message.text = this.msg_text.slice(0, Math.floor(this.letter));
}
};
v2.onBtnQuitClick = function () {
(Core.Get()).goMain();
};
v2.enable = function () {
this.enabled = true;
this.btn_quit.enable();
};
v2.disable = function () {
this.enabled = false;
this.btn_quit.disable();
};
ASSetPropFlags(_global.ScreenOutro.prototype, null, 1);
}
#endinitclip
}
movieClip 73 __Packages.com.newgrounds.components.FlashAd {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.FlashAd) {
var v1 = function () {
super();
this.background._visible = this.show_background;
if (this.show_background) {
this._x = Math.round(this._x);
this._y = Math.round(this._y);
this._xscale = 100;
this._yscale = 100;
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.ADS_APPROVED, this.loadAd, this);
};
com.newgrounds.components.FlashAd = v1;
com.newgrounds.components.FlashAd extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
com.newgrounds.API.attachFlashAd(this);
};
v2.loadAd = function (event, params) {
com.newgrounds.API.attachFlashAd(this);
};
v2.onUnload = function () {
this.clip.ad.unloadMovie();
this.clip.ad.removeMovieClip();
this.clip.removeMovieClip();
this.mask.removeMovieClip();
this.background.removeMovieClip();
com.newgrounds.API.removeEventListener(com.newgrounds.APIEvent.ADS_APPROVED, this);
};
ASSetPropFlags(com.newgrounds.components.FlashAd.prototype, null, 1);
}
#endinitclip
}
movieClip 92 __Packages.com.newgrounds.ValidationTools {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.ValidationTools) {
var v1 = function () {};
com.newgrounds.ValidationTools = v1;
var v2 = v1.prototype;
v1.isNumber = function (v) {
if (typeof v == 'number') {
return true;
return false;
}
if (typeof v == 'string' and (Number(v)).toString() == v) {
return true;
}
return false;
};
v1.isInteger = function (v) {
if (com.newgrounds.ValidationTools.isNumber(v)) {
v = Number(v);
return Math.floor(v) == v;
}
return false;
};
v1.isFloat = function (v) {
return com.newgrounds.ValidationTools.isNumber(v);
};
v1.isString = function (v) {
if (typeof v == 'string' or typeof v == 'number') {
return true;
}
return false;
};
v1.isEmpty = function (o) {
for (var v2 in o) {
return false;
}
return true;
};
ASSetPropFlags(com.newgrounds.ValidationTools.prototype, null, 1);
}
#endinitclip
}
movieClip 97 __Packages.com.newgrounds.encoders.SerialXML {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.SerialXML) {
var v1 = function () {};
com.newgrounds.encoders.SerialXML = v1;
var v2 = v1.prototype;
v1.decode = function (xml) {
if (!(xml instanceof XML)) {
xml = new XML(xml);
}
var v2 = com.newgrounds.encoders.SerialXML.populateObject(xml.firstChild, {});
return v2.DATA;
};
v1.encode = function (obj) {
var v1 = new XML();
com.newgrounds.encoders.SerialXML.populateXML(v1, obj, 'DATA');
return v1;
};
v1.populateObject = function (child, object) {
var v6 = child.nodeName;
var v5 = com.newgrounds.encoders.SerialXML.getValue(v6, child.attributes.v);
var v4 = child.attributes.n;
if (object instanceof Array) {
v4 = object.length;
object.push(v5);
} else {
object[v4] = v5;
}
if (child.hasChildNodes()) {
var v1 = 0;
while (v1 < child.childNodes.length) {
com.newgrounds.encoders.SerialXML.populateObject(child.childNodes[v1], object[v4]);
++v1;
}
}
return object;
};
v1.populateXML = function (child, obj, name) {
if (obj === undefined) {
return undefined;
}
var v5 = new XML();
var v2;
if (obj instanceof Array) {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
child.appendChild(v2);
var v4 = 0;
while (v4 < obj.length) {
com.newgrounds.encoders.SerialXML.populateXML(v2, obj[v4]);
++v4;
}
} else {
if (typeof obj == 'object') {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
child.appendChild(v2);
for (var v4 in obj) {
com.newgrounds.encoders.SerialXML.populateXML(v2, obj[v4], v4);
}
} else {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
if ((com.newgrounds.encoders.SerialXML.getType(obj)).length == 1) {
v2.attributes.v = obj;
}
child.appendChild(v2);
}
}
};
v1.getValue = function (type, stringval) {
switch (type.toUpperCase()) {
case 'O':
return new Object();
break;
case 'A':
return new Array();
break;
case 'N':
return Number(stringval);
break;
case 'S':
return String(stringval);
break;
case 'TRUE':
return true;
break;
case 'FALSE':
return false;
break;
default:
return null;
}
};
v1.getType = function (obj) {
switch (obj instanceof Array ? 'array' : typeof obj) {
case 'array':
return 'A';
break;
case 'object':
return 'O';
break;
case 'string':
return 'S';
break;
case 'number':
return 'N';
case 'boolean':
return (obj === true) ? 'TRUE' : 'FALSE';
break;
default:
return 'NULL';
}
};
ASSetPropFlags(com.newgrounds.encoders.SerialXML.prototype, null, 1);
}
#endinitclip
}
movieClip 98 __Packages.com.newgrounds.encoders.LZW2 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.LZW2) {
var v1 = function () {};
com.newgrounds.encoders.LZW2 = v1;
var v2 = v1.prototype;
v1.doCompressorConfig = function () {
com.newgrounds.encoders.LZW2.comp_dict = [];
var v1 = 0;
while (v1 < 256) {
com.newgrounds.encoders.LZW2.comp_dict[String.fromCharCode(v1)] = v1;
++v1;
}
com.newgrounds.encoders.LZW2.comp_dict.< = 256;
com.newgrounds.encoders.LZW2.comp_dict.> = 257;
com.newgrounds.encoders.LZW2.comp_dict.& = 258;
com.newgrounds.encoders.LZW2.comp_dict." = 259;
com.newgrounds.encoders.LZW2.comp_dict.\' = 260;
com.newgrounds.encoders.LZW2.pos = 0;
com.newgrounds.encoders.LZW2.result = '';
com.newgrounds.encoders.LZW2.buffer = '';
com.newgrounds.encoders.LZW2.nbChar = 256 + com.newgrounds.encoders.LZW2.skipnum;
};
v1.compress = function (string, callback, callback_params) {
com.newgrounds.encoders.LZW2.doCompressorConfig();
if (com.newgrounds.encoders.LZW2.busy) {
trace('[LZW COMPRESSOR] :: Compression can not begin until previous compression or decompression is complete!');
return undefined;
}
com.newgrounds.encoders.LZW2.splitStr = string.split('');
string = '';
com.newgrounds.encoders.LZW2.len = com.newgrounds.encoders.LZW2.splitStr.length;
com.newgrounds.encoders.LZW2.local = {'delay': 30, 'callback': callback, 'callback_params': callback_params, 'compress_chunk': function () {
com.newgrounds.encoders.LZW2.compress_chunk();
}, 'busy': false, 'complete': false};
com.newgrounds.encoders.LZW2.interval = setInterval(com.newgrounds.encoders.LZW2.local, 'compress_chunk', 5);
};
v1.getProgress = function () {
return Math.round((com.newgrounds.encoders.LZW2.pos / com.newgrounds.encoders.LZW2.len) * 100);
};
v1.compress_chunk = function () {
if (com.newgrounds.encoders.LZW2.local.delay > 0) {
--com.newgrounds.encoders.LZW2.local.delay;
} else {
if (!com.newgrounds.encoders.LZW2.local.busy) {
com.newgrounds.encoders.LZW2.local.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.LZW2.max_chunk_length) {
com.newgrounds.encoders.LZW2.encode_next();
if (com.newgrounds.encoders.LZW2.local.complete) {
break;
}
++v1;
}
com.newgrounds.encoders.LZW2.local.busy = false;
}
}
if (com.newgrounds.encoders.LZW2.local.complete) {
trace('LZW2 complete ' + com.newgrounds.encoders.LZW2.nbChar + ' ' + com.newgrounds.encoders.LZW2.comp_dict.length + ' ' + com.newgrounds.encoders.LZW2.len + ' ' + com.newgrounds.encoders.LZW2.pos + ' ' + com.newgrounds.encoders.LZW2.skipnum);
clearInterval(com.newgrounds.encoders.LZW2.interval);
com.newgrounds.encoders.LZW2.local.callback(com.newgrounds.encoders.LZW2.result, com.newgrounds.encoders.LZW2.local.callback_params);
com.newgrounds.encoders.LZW2.result = '';
com.newgrounds.encoders.LZW2.buffer = '';
}
};
v1.encode_next = function () {
if (com.newgrounds.encoders.LZW2.pos <= com.newgrounds.encoders.LZW2.len) {
var v1 = com.newgrounds.encoders.LZW2.splitStr[com.newgrounds.encoders.LZW2.pos];
if (com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer + v1] !== undefined) {
com.newgrounds.encoders.LZW2.buffer += v1;
} else {
com.newgrounds.encoders.LZW2.result += String.fromCharCode(com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer]);
com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer + v1] = com.newgrounds.encoders.LZW2.nbChar;
++com.newgrounds.encoders.LZW2.nbChar;
com.newgrounds.encoders.LZW2.buffer = v1;
}
++com.newgrounds.encoders.LZW2.pos;
} else {
com.newgrounds.encoders.LZW2.local.complete = true;
return undefined;
}
};
v1.comp_config = false;
v1.skipnum = 5;
v1.busy = false;
v1.max_chunk_length = 12000;
ASSetPropFlags(com.newgrounds.encoders.LZW2.prototype, null, 1);
}
#endinitclip
}
movieClip 99 __Packages.com.newgrounds.encoders.LZW {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.LZW) {
var v1 = function () {};
com.newgrounds.encoders.LZW = v1;
var v2 = v1.prototype;
v1.setXMLSafe = function (x) {
com.newgrounds.encoders.LZW.xmlsafe = x;
};
v1.compress = function (str, escape_chars) {
var v2 = new Array();
var v11 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v5 = 0;
while (v5 < 256) {
v2[String.fromCharCode(v5)] = v5;
++v5;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
v2.< = 256;
v2.> = 257;
v2.& = 258;
v2." = 259;
v2.\' = 260;
}
var v7 = '';
var v8 = str.split('');
var v9 = v8.length;
var v6 = 256 + v11;
var v1 = '';
var v4;
v5 = 0;
while (v5 <= v9) {
var v3 = v8[v5];
if (v2[v1 + v3] !== undefined) {
v1 += v3;
} else {
v4 = String.fromCharCode(v2[v1]);
if (escape_chars and (v2[v1] < 33 or v2[v1] > 126 or v4 == '%')) {
v4 = escape(v4);
}
v7 += v4;
v2[v1 + v3] = v6;
++v6;
v1 = v3;
}
++v5;
}
return v7;
};
v1.decompress = function (str) {
var v4 = new Array();
var v10 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v6 = 0;
while (v6 < 256) {
var v9 = String.fromCharCode(v6);
v4[v6] = v9;
++v6;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
v4[256] = '<';
v4[257] = '>';
v4[258] = '&';
v4[259] = '"';
v4[260] = '\'';
}
var v11 = str;
var v13 = v11.split('');
var v12 = v13.length;
var v7 = 256 + v10;
var v1 = '';
var v2 = '';
var v8 = '';
v6 = 0;
while (v6 < v12) {
var v5 = v11.charCodeAt(v6);
var v3 = v4[v5];
if (v1 == '') {
v1 = v3;
v8 += v3;
} else {
if (v5 <= 255 + v10) {
v8 += v3;
v2 = v1 + v3;
v4[v7] = v2;
++v7;
v1 = v3;
} else {
v2 = v4[v5];
if (v2 == undefined) {
v2 = v1 + v1.slice(0, 1);
}
v8 += v2;
v4[v7] = v1 + v2.slice(0, 1);
++v7;
v1 = v2;
}
}
++v6;
}
return v8;
};
v1.compress_fp6 = function (str) {
var v3 = new Array();
var v10 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v4 = 0;
while (v4 < 256) {
v3[String(v4)] = v4;
++v4;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
var v14 = String((new String('<')).charCodeAt(0));
var v11 = String((new String('>')).charCodeAt(0));
var v13 = String((new String('&')).charCodeAt(0));
var v15 = String((new String('"')).charCodeAt(0));
var v12 = String((new String('\'')).charCodeAt(0));
v3[v14] = 256;
v3[v11] = 257;
v3[v13] = 258;
v3[v15] = 259;
v3[v12] = 260;
}
var v7 = '';
var v16 = str;
var v8 = v16.split('');
var v9 = v8.length;
var v6 = 256 + v10;
var v1 = new Array();
v4 = 0;
while (v4 <= v9) {
var v2 = v8[v4];
if (v1.length == 0) {
var v5 = String(v2.charCodeAt(0));
} else {
var v5 = v1.join('-') + '-' + String(v2.charCodeAt(0));
}
if (v3[v5] !== undefined) {
v1.push(v2.charCodeAt(0));
} else {
v7 += String.fromCharCode(v3[v1.join('-')]);
v3[v5] = v6;
++v6;
false;
v1 = new Array();
v1.push(v2.charCodeAt(0));
}
++v4;
}
return v7;
};
v1.xmlsafe = false;
ASSetPropFlags(com.newgrounds.encoders.LZW.prototype, null, 1);
}
#endinitclip
}
movieClip 102 __Packages.com.newgrounds.ScoreBoard {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.ScoreBoard) {
var v1 = function (id, name, tag) {
this._name = name;
this._id = id;
if (tag !== undefined) {
this._tag = tag;
}
};
com.newgrounds.ScoreBoard = v1;
var v2 = v1.prototype;
v2.exists = function () {
return Number(this._id) > 0;
};
v2.__get__id = function () {
return this._id;
};
v2.__get__name = function () {
return this._name;
};
v2.__get__period = function () {
return this._period;
};
v2.__get__tag = function () {
return this._tag;
};
v2.__get__page = function () {
return this._page;
};
v2.__get__num_results = function () {
return this._num_results;
};
v2.__get__scores = function () {
return this._scores;
};
v2.postScore = function (value, tag) {
if (tag !== undefined) {
this._tag = tag;
}
com.newgrounds.API.postScore(this._name, value, this._tag);
};
v2.loadScores = function (period, page, num_results, tag) {
if (period) {
this._period = period;
}
if (page) {
this._page = page;
}
if (num_results) {
this._num_results = num_results;
}
this._scores = [];
com.newgrounds.API.loadScores(this._name, this._period, tag);
};
v2.setScores = function (scores, period, page, num_results) {
if (period) {
this._period = period;
}
if (page) {
this._page = page;
}
if (num_results) {
this._num_results = num_results;
}
this._scores = [];
var v2 = 0;
while (v2 < scores.length) {
var v4 = this._num_results * (this._page - 1) + 1 + v2;
this._scores.push(new com.newgrounds.Score(this, v4, scores[v2].username, scores[v2].value, scores[v2].numeric_value));
++v2;
}
};
v2._period = 'Today';
v2._num_results = 10;
v2._page = 1;
v2._tag = '';
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('num_results', v2.__get__num_results, function () {});
v2.addProperty('page', v2.__get__page, function () {});
v2.addProperty('period', v2.__get__period, function () {});
v2.addProperty('scores', v2.__get__scores, function () {});
v2.addProperty('tag', v2.__get__tag, function () {});
ASSetPropFlags(com.newgrounds.ScoreBoard.prototype, null, 1);
}
#endinitclip
}
movieClip 103 __Packages.com.newgrounds.Score {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Score) {
var v1 = function (board, position, username, value, numeric_value) {
this._board = board;
this._position = position;
this._username = username;
this._value = value;
this._numeric_value = numeric_value;
};
com.newgrounds.Score = v1;
var v2 = v1.prototype;
v2.__get__board = function () {
return this._board;
};
v2.__get__position = function () {
return this._position;
};
v2.__get__username = function () {
return this._username;
};
v2.__get__value = function () {
return this._value;
};
v2.__get__numeric_value = function () {
return this._numeric_value;
};
v1.fromTime = function (time) {
var v1 = time.split(':');
var v2 = Math.round(Number(v1.pop()) * 1000);
if (v1.length > 0) {
v2 += Number(v1.pop()) * 60;
}
if (v1.length > 0) {
v2 += Number(v1.pop()) * 3600;
}
return v2;
};
v1.fromDistance = function (distance) {
var v1 = distance.indexOf('\'');
var v5 = distance.indexOf('"', v1);
var v3 = Number(distance.substr(0, v1));
var v4 = Number(distance.substring(v1 + 1, v5));
return Math.round(v3 * 12 + v4);
};
v2.addProperty('board', v2.__get__board, function () {});
v2.addProperty('numeric_value', v2.__get__numeric_value, function () {});
v2.addProperty('position', v2.__get__position, function () {});
v2.addProperty('username', v2.__get__username, function () {});
v2.addProperty('value', v2.__get__value, function () {});
ASSetPropFlags(com.newgrounds.Score.prototype, null, 1);
}
#endinitclip
}
movieClip 104 __Packages.com.newgrounds.encoders.RC4 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.RC4) {
var v1 = function () {};
com.newgrounds.encoders.RC4 = v1;
var v2 = v1.prototype;
v1.encrypt = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.strToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return com.newgrounds.encoders.RC4.charsToHex(v2);
};
v1.encryptbin = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.strToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return v2;
};
v1.decrypt = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.hexToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return com.newgrounds.encoders.RC4.charsToStr(v2);
};
v1.initialize = function (pwd) {
var v2 = 0;
var v3;
var v4 = pwd.length;
var v1 = 0;
while (v1 <= 255) {
com.newgrounds.encoders.RC4.mykey[v1] = pwd[v1 % v4];
com.newgrounds.encoders.RC4.sbox[v1] = v1;
++v1;
}
v1 = 0;
while (v1 <= 255) {
v2 = (v2 + com.newgrounds.encoders.RC4.sbox[v1] + com.newgrounds.encoders.RC4.mykey[v1]) % 256;
v3 = com.newgrounds.encoders.RC4.sbox[v1];
com.newgrounds.encoders.RC4.sbox[v1] = com.newgrounds.encoders.RC4.sbox[v2];
com.newgrounds.encoders.RC4.sbox[v2] = v3;
++v1;
}
};
v1.calculate = function (plaintxt, psw) {
com.newgrounds.encoders.RC4.initialize(psw);
var v1 = 0;
var v2 = 0;
var v9 = new Array();
var v7;
var v5;
var v6;
var v3 = 0;
while (v3 < plaintxt.length) {
v1 = (v1 + 1) % 256;
v2 = (v2 + com.newgrounds.encoders.RC4.sbox[v1]) % 256;
v5 = com.newgrounds.encoders.RC4.sbox[v1];
com.newgrounds.encoders.RC4.sbox[v1] = com.newgrounds.encoders.RC4.sbox[v2];
com.newgrounds.encoders.RC4.sbox[v2] = v5;
var v4 = (com.newgrounds.encoders.RC4.sbox[v1] + com.newgrounds.encoders.RC4.sbox[v2]) % 256;
v7 = com.newgrounds.encoders.RC4.sbox[v4];
v6 = plaintxt[v3] ^ v7;
v9.push(v6);
++v3;
}
return v9;
};
v1.charsToHex = function (chars) {
var v4 = new String('');
var v3 = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
var v1 = 0;
while (v1 < chars.length) {
v4 += v3[chars[v1] >> 4] + v3[chars[v1] & 15];
++v1;
}
return v4;
};
v1.hexToChars = function (hex) {
var v3 = new Array();
var v1 = (hex.substr(0, 2) == '0x') ? 2 : 0;
while (v1 < hex.length) {
v3.push(parseInt(hex.substr(v1, 2), 16));
v1 += 2;
}
return v3;
};
v1.charsToStr = function (chars) {
var v3 = new String('');
var v1 = 0;
while (v1 < chars.length) {
v3 += String.fromCharCode(chars[v1]);
++v1;
}
return v3;
};
v1.strToChars = function (str) {
var v3 = new Array();
var v1 = 0;
while (v1 < str.length) {
v3.push(str.charCodeAt(v1));
++v1;
}
return v3;
};
v1.sbox = new Array(255);
v1.mykey = new Array(255);
ASSetPropFlags(com.newgrounds.encoders.RC4.prototype, null, 1);
}
#endinitclip
}
movieClip 105 __Packages.com.newgrounds.encoders.JSON {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.JSON) {
var v1 = function () {};
com.newgrounds.encoders.JSON = v1;
var v2 = v1.prototype;
v1.encode = function (arg, noquotes) {
var v3;
var v2;
var v6;
var v1 = '';
var v4;
if (arg.isSServerVar()) {
var v8 = 'sservervariable';
} else {
var v8 = typeof arg;
}
switch (v8) {
return 'null';
case 'sservervariable':
return '?' + arg.getEncodedValue();
break;
case 'object':
if (arg) {
if (arg instanceof Array) {
v2 = 0;
while (v2 < arg.length) {
v4 = com.newgrounds.encoders.JSON.encode(arg[v2]);
if (v1) {
v1 += ',';
}
v1 += v4;
++v2;
}
return '[' + v1 + ']';
} else {
if (typeof arg.toString != 'undefined') {
for (v2 in arg) {
v4 = arg[v2];
if (typeof v4 != 'undefined' && typeof v4 != 'function') {
v4 = com.newgrounds.encoders.JSON.encode(v4);
if (v1) {
v1 += ',';
}
v1 += com.newgrounds.encoders.JSON.encode(v2) + ':' + v4;
}
}
return '{' + v1 + '}';
}
}
}
return 'null';
case 'number':
return isFinite(arg) ? String(arg) : 'null';
case 'string':
v6 = arg.length;
if (noquotes) {
var v7 = '';
} else {
var v7 = '"';
}
v1 = v7;
v2 = 0;
while (v2 < v6) {
v3 = arg.charAt(v2);
if (v3 >= ' ') {
if (v3 == '\\' || v3 == '"') {
v1 += '\\';
}
v1 += v3;
} else {
switch (v3) {
case '\b':
v1 += '\\b';
break;
case '\f':
v1 += '\\f';
break;
case '\n':
v1 += '\\n';
break;
case '\r':
v1 += '\\r';
break;
case '\t':
v1 += '\\t';
break;
default:
v3 = v3.charCodeAt();
v1 += '\\u00' + (Math.floor(v3 / 16)).toString(16) + (v3 % 16).toString(16);
}
}
v2 += 1;
}
return v1 + v7;
case 'boolean':
return String(arg);
default:
return 'null';
}
};
v1.background_encode = function (arg, callback) {
if (com.newgrounds.encoders.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping encode');
return false;
}
}
com.newgrounds.encoders.JSON.busy = true;
var v2 = new Date();
com.newgrounds.encoders.JSON.start = v2.getTime();
com.newgrounds.encoders.JSON.cache = {'busy': false, 'complete': false, 'arg': arg, 'target': arg, 'parents': [], 'encoded': '', 'callback': callback, 'encode_chunk': function () {
com.newgrounds.encoders.JSON.encode_chunk();
}};
if (com.newgrounds.encoders.JSON.getType(arg) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded = '{';
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'encode_chunk', 25);
return true;
}
if (com.newgrounds.encoders.JSON.getType(arg) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded = '[';
}
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'encode_chunk', 25);
return true;
};
v1.background_decode = function (arg, callback) {
if (com.newgrounds.encoders.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping decode');
return false;
}
}
com.newgrounds.encoders.JSON.busy = true;
var v1 = new Date();
com.newgrounds.encoders.JSON.start = v1.getTime();
com.newgrounds.encoders.JSON.cache = {'busy': false, 'callback': callback, 'complete': false, 'arg': arg, 'pos': 0, 'parents': ['root'], 'target': null, 'scratch': '', 'decode_chunk': function () {
com.newgrounds.encoders.JSON.decode_chunk();
}};
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'decode_chunk', 25);
return true;
};
v1.decode = function (text) {
var at = 0;
var ch = ' ';
var _value;
var _error = function (m) {
throw {'name': 'JSONError', 'message': m, 'at': at - 1, 'text': text};
};
var _next = function () {
ch = text.charAt(at);
at += 1;
return ch;
};
var _white = function () {
while (ch) {
if (ch <= ' ') {
_next();
} else {
if (ch == '/') {
switch (_next()) {
case '/':
for (;;) {
if (!(_next() && ch != '\n' && ch != '\r')) break;
}
break;
case '*':
_next();
for (;;) {
if (ch) {
if (ch == '*') {
if (_next() == '/') {
_next();
break;
}
} else {
_next();
}
continue;
}
_error('Unterminated comment');
}
break;
default:
_error('Syntax error');
}
} else {
break;
}
}
}
};
var _string = function () {
var v4;
var v1 = '';
var v3;
var v2;
var v5 = false;
if (ch == '"') {
while (_next()) {
if (ch == '"') {
_next();
return v1;
} else {
if (ch == '\\') {
switch (_next()) {
case 'b':
v1 += '\b';
break;
case 'f':
v1 += '\f';
break;
case 'n':
v1 += '\n';
break;
case 'r':
v1 += '\r';
break;
case 't':
v1 += '\t';
break;
case 'u':
v2 = 0;
v4 = 0;
while (v4 < 4) {
v3 = parseInt(_next(), 16);
if (!isFinite(v3)) {
v5 = true;
break;
}
v2 = v2 * 16 + v3;
v4 += 1;
}
if (v5) {
v5 = false;
} else {
v1 += String.fromCharCode(v2);
break;
default:
v1 += ch;
}
}
} else {
v1 += ch;
}
}
}
}
_error('Bad string');
};
var _array = function () {
var v1 = [];
if (ch == '[') {
_next();
_white();
if (ch == ']') {
_next();
return v1;
}
while (ch) {
v1.push(_value());
_white();
if (ch == ']') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad array');
};
var _object = function () {
var v2;
var v1 = {};
if (ch == '{') {
_next();
_white();
if (ch == '}') {
_next();
return v1;
}
while (ch) {
v2 = _string();
_white();
if (ch != ':') {
break;
}
_next();
v1[v2] = _value();
_white();
if (ch == '}') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad object');
};
var _number = function () {
var v1 = '';
var v2;
if (ch == '-') {
v1 = '-';
_next();
}
for (;;) {
if (!(ch >= '0' && ch <= '9')) break;
v1 += ch;
_next();
}
if (ch == '.') {
v1 += '.';
for (;;) {
if (!(_next() && ch >= '0' && ch <= '9')) break;
v1 += ch;
}
}
v2 = 1 * v1;
if (!isFinite(v2)) {
_error('Bad number');
} else {
return v2;
}
};
var _word = function () {
switch (ch) {
case 't':
if (_next() == 'r' && _next() == 'u' && _next() == 'e') {
_next();
return true;
}
break;
case 'f':
if (_next() == 'a' && _next() == 'l' && _next() == 's' && _next() == 'e') {
_next();
return false;
}
break;
case 'n':
if (_next() == 'u' && _next() == 'l' && _next() == 'l') {
_next();
return null;
}
}
_error('Syntax error');
};
_value = function () {
_white();
switch (ch) {
case '{':
return _object();
case '[':
return _array();
case '"':
return _string();
case '-':
return _number();
}
return (ch >= '0' && ch <= '9') ? _number() : _word();
};
return _value();
};
v1.getType = function (v) {
if (v instanceof Array) {
return 'array';
} else {
return typeof v;
}
};
v1.decode_chunk = function () {
if (!com.newgrounds.encoders.JSON.cache.busy && !com.newgrounds.encoders.JSON.cache.complete) {
com.newgrounds.encoders.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.decode_chunks) {
com.newgrounds.encoders.JSON.chunk_decoder();
if (com.newgrounds.encoders.JSON.cache.complete) {
break;
}
++v1;
}
trace(Math.round((com.newgrounds.encoders.JSON.cache.pos / com.newgrounds.encoders.JSON.cache.arg.length) * 100) + '% decoded');
com.newgrounds.encoders.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.JSON.cache.complete) {
var v2 = new Date();
com.newgrounds.encoders.JSON.busy = false;
clearInterval(com.newgrounds.encoders.JSON.interval);
com.newgrounds.encoders.JSON.cache.callback(com.newgrounds.encoders.JSON.cache.root, v2.getTime() - com.newgrounds.encoders.JSON.start);
com.newgrounds.encoders.JSON.cache.arg = '';
}
};
v1.encode_chunk = function () {
if (!com.newgrounds.encoders.JSON.cache.busy && !com.newgrounds.encoders.JSON.cache.complete) {
com.newgrounds.encoders.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.encode_chunks) {
com.newgrounds.encoders.JSON.chunk_encoder();
if (com.newgrounds.encoders.JSON.cache.complete) {
break;
}
++v1;
}
com.newgrounds.encoders.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.JSON.cache.complete) {
var v3 = new Date();
var v2 = v3.getTime();
com.newgrounds.encoders.JSON.busy = false;
clearInterval(com.newgrounds.encoders.JSON.interval);
com.newgrounds.encoders.JSON.cache.callback(com.newgrounds.encoders.JSON.cache.encoded, v2 - com.newgrounds.encoders.JSON.start);
com.newgrounds.encoders.JSON.cache.encoded = '';
}
};
v1.chunk_decoder = function () {
function _object() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = 'object';
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
_setTargetValue({});
} else {
if (v1 == ',') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
} else {
if (v1 == '}') {
_useParent();
} else {
if (v1 == '"') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != ':') {
throw 'Malformed object notation. Object keys and values must be separated by colons(:)';
}
_addParent(com.newgrounds.encoders.JSON.cache.scratch);
com.newgrounds.encoders.JSON.cache.mode = null;
} else {
if (v1 == '\\') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
}
com.newgrounds.encoders.JSON.cache.scratch += v1;
}
}
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _array() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = 'array';
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
_setTargetValue([]);
if (v1 != ']') {
_addArrayKey();
} else {
_useParent();
}
return undefined;
} else {
if (v1 == ',') {
_addArrayKey();
} else {
if (v1 == ']') {
_useParent();
}
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _boolean() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 == 't') {
_setTargetValue(true);
com.newgrounds.encoders.JSON.cache.pos += 3;
} else {
if (v1 == 'f') {
_setTargetValue(false);
com.newgrounds.encoders.JSON.cache.pos += 4;
} else {
throw 'Bool values must be true or false';
}
}
_useParent();
}
function _null() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 == 'n') {
_setTargetValue(null);
com.newgrounds.encoders.JSON.cache.pos += 2;
} else {
throw 'Null values must be null';
}
_useParent();
}
function _string() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
if (v1 != '"') {
throw 'Strings must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
com.newgrounds.encoders.JSON.cache.mode = 'string';
} else {
if (v1 == '"') {
_setTargetValue(com.newgrounds.encoders.JSON.cache.scratch);
_useParent();
} else {
if (v1 == '\\') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (v1) {
case 'n':
v1 = '\n';
break;
case 'r':
v1 = '\n';
break;
case 't':
v1 = '\t';
break;
case 'u':
v1 = '\\' + v1;
}
}
com.newgrounds.encoders.JSON.cache.scratch += v1;
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _number() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
var v2 = '01234567890.-';
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = 'number';
com.newgrounds.encoders.JSON.cache.scratch = '';
}
if (v2.indexOf(v1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.JSON.cache.scratch += v1;
++com.newgrounds.encoders.JSON.cache.pos;
}
}
function _setTargetValue(newval) {
var v2 = (_getParent()).obj;
var v1 = com.newgrounds.encoders.JSON.cache.parents[com.newgrounds.encoders.JSON.cache.parents.length - 1];
v2[v1] = newval;
}
function _useParent() {
com.newgrounds.encoders.JSON.cache.mode = com.newgrounds.encoders.JSON.getType((_getParent()).obj);
com.newgrounds.encoders.JSON.cache.parents.pop();
}
function _getParent() {
var v2 = com.newgrounds.encoders.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.cache.parents.length - 1) {
v2 = v2[com.newgrounds.encoders.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.JSON.cache.parents[v1]};
}
function _getCurrent() {
var v2 = com.newgrounds.encoders.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.cache.parents.length) {
v2 = v2[com.newgrounds.encoders.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.JSON.cache.parents[v1]};
}
function _addParent(child) {
com.newgrounds.encoders.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var v1 = (_getCurrent()).obj.length;
com.newgrounds.encoders.JSON.cache.parents.push(v1);
com.newgrounds.encoders.JSON.cache.mode = null;
}
if (com.newgrounds.encoders.JSON.cache.pos >= com.newgrounds.encoders.JSON.cache.arg.length) {
com.newgrounds.encoders.JSON.cache.complete = true;
return undefined;
} else {
if (com.newgrounds.encoders.JSON.cache.mode) {
('_' + com.newgrounds.encoders.JSON.cache.mode)();
} else {
var char = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (char) {
case '{':
_object();
break;
case '[':
_array();
break;
case '"':
_string();
break;
case 'n':
_null();
break;
case 't':
_boolean();
break;
case 'f':
_boolean();
break;
default:
_number();
}
}
}
};
v1.chunk_encoder = function () {
if (com.newgrounds.encoders.JSON.cache.complete) {
return undefined;
}
var v2 = com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target);
switch (v2) {
case 'number':
com.newgrounds.encoders.JSON.cache.encoded += com.newgrounds.encoders.JSON.cache.target;
com.newgrounds.encoders.JSON.getParent();
break;
case 'string':
com.newgrounds.encoders.JSON.cache.encoded += '"' + (com.newgrounds.encoders.JSON.cache.target.split('"')).join('\\"') + '"';
com.newgrounds.encoders.JSON.getParent();
break;
case 'boolean':
com.newgrounds.encoders.JSON.cache.encoded += (com.newgrounds.encoders.JSON.cache.target == true) ? 'true' : 'false';
com.newgrounds.encoders.JSON.getParent();
break;
case 'null':
com.newgrounds.encoders.JSON.cache.encoded += 'null';
com.newgrounds.encoders.JSON.getParent();
break;
case 'array':
if (com.newgrounds.encoders.JSON.cache.target.length < 1) {
com.newgrounds.encoders.JSON.cache.encoded += ']';
com.newgrounds.encoders.JSON.getParent();
} else {
com.newgrounds.encoders.JSON.cache.parents.push(com.newgrounds.encoders.JSON.cache.target);
com.newgrounds.encoders.JSON.cache.target = com.newgrounds.encoders.JSON.cache.target[0];
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded += '{';
}
}
}
break;
case 'object':
for (var v1 in com.newgrounds.encoders.JSON.cache.target) {
break;
}
if (v1 === undefined) {
com.newgrounds.encoders.JSON.cache.encoded += '}';
com.newgrounds.encoders.JSON.getParent();
} else {
com.newgrounds.encoders.JSON.cache.parents.push(com.newgrounds.encoders.JSON.cache.target);
com.newgrounds.encoders.JSON.cache.target = com.newgrounds.encoders.JSON.cache.target[v1];
com.newgrounds.encoders.JSON.cache.encoded += '"' + (v1.split('"')).join('\\"') + '":';
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded += '{';
}
}
}
break;
default:
com.newgrounds.encoders.JSON.cache.encoded += 'null';
com.newgrounds.encoders.JSON.getParent();
}
};
v1.getParent = function () {
if (com.newgrounds.encoders.JSON.cache.parents.length > 0) {
var v1 = com.newgrounds.encoders.JSON.cache.parents.pop();
if (com.newgrounds.encoders.JSON.getType(v1) == 'array') {
v1.shift();
} else {
for (var v3 in v1) {
delete v1[v3];
break;
}
}
if (com.newgrounds.encoders.JSON.getType(v1) == 'object' or com.newgrounds.encoders.JSON.getType(v1) == 'array') {
for (var v2 in v1) {
break;
}
if (v2 !== undefined) {
com.newgrounds.encoders.JSON.cache.encoded += ',';
}
}
com.newgrounds.encoders.JSON.cache.target = v1;
} else {
com.newgrounds.encoders.JSON.cache.complete = true;
}
};
v1.encode_chunks = 20000;
v1.decode_chunks = 20000;
v1.busy = false;
ASSetPropFlags(com.newgrounds.encoders.JSON.prototype, null, 1);
}
#endinitclip
}
movieClip 107 __Packages.com.newgrounds.encoders.MD5 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.MD5) {
var v1 = function () {};
com.newgrounds.encoders.MD5 = v1;
var v2 = v1.prototype;
v1.calculate = function (src) {
return com.newgrounds.encoders.MD5.hex_md5(src);
};
v1.hex_md5 = function (src) {
return com.newgrounds.encoders.MD5.binl2hex(com.newgrounds.encoders.MD5.core_md5(com.newgrounds.encoders.MD5.str2binl(src), src.length * 8));
};
v1.core_md5 = function (x, len) {
x[len >> 5] |= 128 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var v4 = 1732584193;
var v3 = -271733879;
var v2 = -1732584194;
var v1 = 271733878;
var v5 = 0;
while (v5 < x.length) {
var v10 = v4;
var v9 = v3;
var v8 = v2;
var v7 = v1;
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 0], 7, -680876936);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 1], 12, -389564586);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 2], 17, 606105819);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 3], 22, -1044525330);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 4], 7, -176418897);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 5], 12, 1200080426);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 6], 17, -1473231341);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 7], 22, -45705983);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 8], 7, 1770035416);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 9], 12, -1958414417);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 10], 17, -42063);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 11], 22, -1990404162);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 12], 7, 1804603682);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 13], 12, -40341101);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 14], 17, -1502002290);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 15], 22, 1236535329);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 1], 5, -165796510);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 6], 9, -1069501632);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 11], 14, 643717713);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 0], 20, -373897302);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 5], 5, -701558691);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 10], 9, 38016083);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 15], 14, -660478335);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 4], 20, -405537848);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 9], 5, 568446438);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 14], 9, -1019803690);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 3], 14, -187363961);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 8], 20, 1163531501);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 13], 5, -1444681467);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 2], 9, -51403784);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 7], 14, 1735328473);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 12], 20, -1926607734);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 5], 4, -378558);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 8], 11, -2022574463);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 11], 16, 1839030562);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 14], 23, -35309556);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 1], 4, -1530992060);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 4], 11, 1272893353);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 7], 16, -155497632);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 10], 23, -1094730640);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 13], 4, 681279174);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 0], 11, -358537222);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 3], 16, -722521979);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 6], 23, 76029189);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 9], 4, -640364487);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 12], 11, -421815835);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 15], 16, 530742520);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 2], 23, -995338651);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 0], 6, -198630844);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 7], 10, 1126891415);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 14], 15, -1416354905);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 5], 21, -57434055);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 12], 6, 1700485571);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 3], 10, -1894986606);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 10], 15, -1051523);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 1], 21, -2054922799);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 8], 6, 1873313359);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 15], 10, -30611744);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 6], 15, -1560198380);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 13], 21, 1309151649);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 4], 6, -145523070);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 11], 10, -1120210379);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 2], 15, 718787259);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 9], 21, -343485551);
v4 = com.newgrounds.encoders.MD5.safe_add(v4, v10);
v3 = com.newgrounds.encoders.MD5.safe_add(v3, v9);
v2 = com.newgrounds.encoders.MD5.safe_add(v2, v8);
v1 = com.newgrounds.encoders.MD5.safe_add(v1, v7);
v5 += 16;
}
return new Array(v4, v3, v2, v1);
};
v1.md5_cmn = function (q, a, b, x, s, t) {
return com.newgrounds.encoders.MD5.safe_add(com.newgrounds.encoders.MD5.bit_rol(com.newgrounds.encoders.MD5.safe_add(com.newgrounds.encoders.MD5.safe_add(a, q), com.newgrounds.encoders.MD5.safe_add(x, t)), s), b);
};
v1.md5_ff = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b & c | ~b & d, a, b, x, s, t);
};
v1.md5_gg = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b & d | c & ~d, a, b, x, s, t);
};
v1.md5_hh = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b ^ c ^ d, a, b, x, s, t);
};
v1.md5_ii = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(c ^ (b | ~d), a, b, x, s, t);
};
v1.bit_rol = function (num, cnt) {
return num << cnt | num >>> 32 - cnt;
};
v1.safe_add = function (x, y) {
var v1 = (x & 65535) + (y & 65535);
var v2 = (x >> 16) + (y >> 16) + (v1 >> 16);
return v2 << 16 | v1 & 65535;
};
v1.str2binl = function (str) {
var v3 = new Array();
var v4 = 255;
var v1 = 0;
while (v1 < str.length * 8) {
v3[v1 >> 5] |= (str.charCodeAt(v1 / 8) & v4) << v1 % 32;
v1 += 8;
}
return v3;
};
v1.binl2hex = function (binarray) {
var v4 = new String('');
var v3 = new String('0123456789abcdef');
var v1 = 0;
while (v1 < binarray.length * 4) {
v4 += v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 + 4 & 15) + v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 & 15);
++v1;
}
return v4;
};
ASSetPropFlags(com.newgrounds.encoders.MD5.prototype, null, 1);
}
#endinitclip
}
movieClip 108 __Packages.com.newgrounds.components.APIConnector {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.APIConnector) {
var v1 = function () {
super();
this._x = Math.round(this._x);
this._y = Math.round(this._y);
if (this.fake_session and com.newgrounds.API.getHost() == 'localhost') {
com.newgrounds.API.setFakeSession(true);
}
if (this.api_id && !com.newgrounds.API.isConnected()) {
this.nextFrame();
this._visible = false;
this.setGotoFrame('connecting');
if (this.error_screens) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, this.onNewVersion, this);
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.HOST_BLOCKED, this.onBadHost, this);
}
if (this.medal_popups) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, this.doUnlock, this);
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, this.onConnected, this);
if (com.newgrounds.API.isPublishedHost()) {
this.debug = false;
}
if (this.version) {
com.newgrounds.API.setVersion(this.version);
}
if (!com.newgrounds.API.hasUserSession()) {
var v3 = com.newgrounds.API.loadLocal('api_connector_data');
if (v3) {
this.local_data = v3;
} else {
this.local_data = {'medals_unlocked': new Array()};
}
}
com.newgrounds.API.setPreload(true);
com.newgrounds.API.connect(this.api_id, this.encryption_key, this.debug);
} else {
if (this.api_id && com.newgrounds.API.isConnected()) {
this._visible = false;
this.setGotoFrame('done');
}
}
this.stop();
};
com.newgrounds.components.APIConnector = v1;
com.newgrounds.components.APIConnector extends MovieClip;
var v2 = v1.prototype;
v2.doUnlock = function (e) {
var v5 = _root.attachMovie('NewgroundsAPIAsset_Medal_Popup', 'medal_pop_' + e.data.medal.getID(), _root.getNextHighestDepth());
if (e.data.x != undefined) {
v5._x = e.data.x + 254;
} else {
v5._x = Stage.width;
}
if (e.data.x != undefined) {
v5._y = e.data.y + 73;
} else {
v5._y = Stage.height;
}
v5.medal = e.data.medal;
var v3 = com.newgrounds.API.getMedals();
var v2 = 0;
while (v2 < v3.length) {
if (v3[v2].getID() != e.data.medal.getID() && _root['medal_pop_' + v3[v2].getID()]) {
_root['medal_pop_' + v3[v2].getID()]._y -= 70;
}
++v2;
}
};
v2.onLoginError = function () {
var v2 = _root.attachMovie('Asset_Login_Warning', 'Asset_Login_Warning', _root.getNextHighestDepth());
};
v2.onConnectionError = function () {
var v3 = _root.attachMovie('Asset_Connection_Error', 'Asset_Connection_Error', _root.getNextHighestDepth());
this.setGotoFrame('done');
};
v2.onConnected = function (event, params) {
if (event.success) {
this.setGotoFrame('connected');
if (this.error_screens && com.newgrounds.API.isPublishedHost() && com.newgrounds.API.hasPublisher() && !com.newgrounds.API.hasUserSession()) {
this.onLoginError();
}
} else {
if (this.error_screens) {
this.onConnectionError();
}
}
};
v2.onNewVersion = function () {
var v2 = _root.attachMovie('NewgroundsAsset_New_Version_Available', 'NewgroundsAsset_New_Version_Available', _root.getNextHighestDepth());
v2.official_version_url = com.newgrounds.API.getOfficialURL();
};
v2.onBadHost = function () {
var v2 = _root.attachMovie('NewgroundsAsset_Illegal_Host', 'NewgroundsAsset_Illegal_Host', _root.getNextHighestDepth());
v2.official_version_url = com.newgrounds.API.getOfficialURL();
};
v2.setGotoFrame = function (frame) {
if (this.goto_frame == null) {
this.goto_frame = frame;
this.gotoframe_interval = setInterval(this, 'gotoFrameIfLoaded', 50);
}
};
v2.gotoFrameIfLoaded = function () {
if (this.goto_frame != null && this._framesloaded == this._totalframes) {
this._visible = true;
this.gotoAndStop(this.goto_frame);
this.goto_frame = null;
clearInterval(this.gotoframe_interval);
}
};
v2.goto_frame = null;
ASSetPropFlags(com.newgrounds.components.APIConnector.prototype, null, 1);
}
#endinitclip
}
frame 6 {
function round2(num) {
return Math.round(num * 100) / 100;
}
copyright = 'Copyright (c) 2009 by Enkord';
System.security.allowDomain('www.enkord.com');
if (bannerURL == undefined) {
bannerURL = 'http://www.enkord.com/games/gunrox/banner.swf';
}
lang = 'en';
stop();
_focusrect = false;
Stage.showMenu = false;
Stage.width = 480;
Stage.height = 360;
Stage.scaleMode = 'noScale';
percent_mc._xscale = 0;
var to = _root.getBytesTotal();
var prevLo = 0;
total_txt.text = (Math.round(to / 1024)).toString() + ' KB';
var loadListener = new Object();
loadListener.onLoadError = function (target_mc, errorCode) {
preload_logo_mc._visible = true;
loaded_txt._visible = true;
total_txt._visible = true;
percent_mc._visible = true;
percent_txt._visible = true;
frame_mc._visible = true;
preload_logo_mc.onPress = function () {
getURL('http://www.enkord.com/?from=gunroxworldrevolution', '_blank');
};
};
if (downloadURL == undefined) {
preload_logo_mc._visible = false;
loaded_txt._visible = false;
total_txt._visible = false;
percent_mc._visible = false;
percent_txt._visible = false;
frame_mc._visible = false;
var mcLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
var mc = this.createEmptyMovieClip('bannerstub', this.getNextHighestDepth());
mcLoader.loadClip(bannerURL, mc);
}
ii = setInterval(function () {
var v2 = _root.getBytesLoaded();
var v4 = round2((v2 - prevLo) / 64);
speed_txt.text = v4.toString() + ' Kb/s';
loaded_txt.text = (Math.round(v2 / 1024)).toString() + ' KB';
var v3 = Math.round((v2 / to) * 100);
percent_txt.text = v3 + ' %';
percent_mc._xscale = v3;
prevLo = v2;
if (v2 == to) {
clearInterval(ii);
gotoAndPlay('StartUp');
}
}, 500);
var rootURL = 'http://www.enkord.com/';
if (moreGamesURL == undefined) {
moreGamesURL = 'http://www.enkord.com/?from=gunroxworldrevolution';
}
if (downloadURL == undefined) {
downloadURL = 'http://www.gunrox.com/?ref=yy_fl_wrap';
} else {
greatgames._visible = false;
greatgames_btn.enabled = false;
enkordgames._visible = false;
enkordgames_btn.enabled = false;
not_our_site = true;
}
if (hiscoreURL == undefined) {
hiscoreURL = rootURL + (not_our_site ? 'games/gunroxzombietown/online/hiscore-nolinks.php' : 'games/gunroxzombietown/online/hiscore.php');
}
if (addgameURL == undefined) {
addgameURL = 'http://www.enkord.com/games/gunroxworldrevolution/online/webmaster/';
}
gibsonURL = 'http://www.enkord.com/games/gunroxonceingibson/online/';
}
movieClip 188 {
}
movieClip 190 {
}
instance of movieClip 86 Flash Ad (NewgroundsAPI) {
onClipEvent (construct) {
show_background = true;
}
}
movieClip 191 {
}
movieClip 192 {
}
movieClip 197 {
frame 30 {
this.gotoAndPlay('cycle');
}
}
movieClip 205 {
frame 31 {
this.gotoAndPlay('cycle');
}
}
movieClip 208 {
}
// unknown tag 88 length 78
movieClip 212 {
}
movieClip 215 {
frame 15 {
this.stop();
}
}
movieClip 217 {
}
movieClip 219 {
}
movieClip 220 {
}
movieClip 223 {
}
// unknown tag 88 length 86
button 228 {
on (release) {
(Core.Get()).playSound('button_click');
getURL(_root.downloadURL, '_blank');
}
on (rollOver) {
(Core.Get()).playSound('button_hover');
}
}
movieClip 229 {
}
movieClip 239 {
}
movieClip 240 button_tab {
#initclip
Object.registerClass('button_tab', ButtonMenu);
#endinitclip
}
movieClip 249 {
}
movieClip 250 button_tab_s {
#initclip
Object.registerClass('button_tab_s', ButtonMenu);
#endinitclip
}
movieClip 260 {
}
movieClip 261 btn_small {
#initclip
Object.registerClass('btn_small', ButtonMenu);
#endinitclip
}
movieClip 262 mapscreen {
#initclip
Object.registerClass('mapscreen', ScreenMap);
#endinitclip
frame 1 {
init();
}
}
movieClip 272 {
frame 7 {
}
}
movieClip 273 buttonX {
#initclip
Object.registerClass('buttonX', ButtonMenu);
#endinitclip
}
movieClip 274 helpscreen {
#initclip
Object.registerClass('helpscreen', ScreenHelp);
#endinitclip
frame 1 {
init();
}
}
movieClip 280 {
frame 1 {
(Core.Get()).playSound('thunder', -1);
}
}
movieClip 283 {
frame 61 {
(Core.Get()).playSound('thunder', 1);
}
}
movieClip 287 {
frame 301 {
(Core.Get()).playSound('thunder', 0);
}
}
movieClip 291 {
}
button 294 {
on (release) {
(Core.Get()).playSound('button_click');
getURL(_root.addgameURL, '_blank');
}
on (rollOver) {
(Core.Get()).playSound('button_hover');
}
}
movieClip 297 {
}
button 298 {
on (release) {
(Core.Get()).playSound('button_click');
getURL(_root.downloadURL, '_blank');
}
on (rollOver) {
(Core.Get()).playSound('button_hover');
}
}
movieClip 299 mainscreen {
#initclip
Object.registerClass('mainscreen', ScreenMain);
#endinitclip
frame 1 {
this.init();
}
}
movieClip 303 introscreen {
#initclip
Object.registerClass('introscreen', ScreenIntro);
#endinitclip
frame 1 {
init();
}
}
movieClip 304 dark_tile {
}
movieClip 306 mapgrid_x {
}
movieClip 308 mapgrid_y {
}
movieClip 310 mapmark {
}
movieClip 315 map_enemy {
}
movieClip 319 {
}
movieClip 321 {
}
movieClip 322 map_guide {
}
movieClip 323 {
}
movieClip 380 {
}
movieClip 384 {
}
movieClip 385 teamslot_btn {
#initclip
Object.registerClass('teamslot_btn', ButtonTeamSlot);
#endinitclip
}
movieClip 539 {
}
movieClip 540 {
}
movieClip 541 char_npc {
#initclip
Object.registerClass('char_npc', NPCSlot);
#endinitclip
}
movieClip 542 {
}
button 550 {
on (rollOver) {
this.tooltip._visible = true;
(Core.Get()).playSound('button_hover');
}
on (rollOut) {
this.tooltip._visible = false;
}
on (release) {
(Core.Get()).playSound('button_click');
getURL(_root.gibsonURL, '_blank');
}
}
movieClip 554 {
}
movieClip 555 {
}
movieClip 556 areascreen {
#initclip
Object.registerClass('areascreen', ScreenArea);
#endinitclip
frame 1 {
init();
}
}
movieClip 599 {
}
movieClip 601 maskscreen {
frame 30 {
stop();
}
}
movieClip 602 maskscreen1 {
frame 30 {
stop();
}
}
movieClip 608 scroll_eff {
frame 30 {
stop();
}
}
movieClip 614 popup_eff {
}
movieClip 617 maskpopup {
}
movieClip 642 char_drag {
}
movieClip 644 {
}
movieClip 646 {
}
movieClip 650 {
}
movieClip 654 {
}
movieClip 655 taskslot {
#initclip
Object.registerClass('taskslot', TaskSlot);
#endinitclip
}
movieClip 657 {
}
movieClip 659 questtext_complete {
}
movieClip 661 questtext_failed {
}
movieClip 663 questtext_normal {
}
movieClip 665 {
}
movieClip 666 dialogue_item {
}
movieClip 667 {
}
movieClip 669 {
}
movieClip 673 {
}
movieClip 674 talkslot {
#initclip
Object.registerClass('talkslot', TaskSlot);
#endinitclip
}
movieClip 675 {
}
movieClip 684 {
}
movieClip 687 {
}
movieClip 690 {
}
movieClip 694 {
}
movieClip 707 {
}
movieClip 720 {
}
movieClip 746 {
}
movieClip 747 battle_slot {
#initclip
Object.registerClass('battle_slot', BattleSlot);
#endinitclip
}
button 748 {
on (release) {
getURL(_root.downloadURL, '_blank');
}
on (rollOver) {
(Core.Get()).playSound('button_hover');
}
}
movieClip 750 inventory_use {
#initclip
Object.registerClass('inventory_use', Inventory);
#endinitclip
}
movieClip 751 {
}
movieClip 778 {
}
// unknown tag 88 length 78
movieClip 784 {
}
// unknown tag 88 length 197
movieClip 809 {
}
movieClip 810 tooltip {
#initclip
Object.registerClass('tooltip', TooltipItem);
#endinitclip
}
movieClip 811 battlescreen {
#initclip
Object.registerClass('battlescreen', ScreenBattle);
#endinitclip
frame 1 {
init();
}
}
movieClip 836 {
}
movieClip 969 {
}
movieClip 994 {
}
movieClip 1030 {
frame 13 {
this.stop();
}
frame 26 {
this.stop();
}
frame 39 {
this.stop();
}
frame 52 {
this.stop();
}
frame 65 {
this.stop();
}
}
movieClip 1054 {
frame 10 {
stop();
this.removeMovieClip();
}
}
movieClip 1080 {
}
movieClip 1106 {
frame 10 {
this.stop();
}
}
movieClip 1126 {
}
movieClip 1148 {
frame 10 {
this.stop();
}
}
movieClip 1183 {
frame 9 {
this.stop();
}
}
movieClip 1200 {
}
movieClip 1203 bu_char {
#initclip
Object.registerClass('bu_char', BattleUnit);
#endinitclip
}
movieClip 1285 {
}
movieClip 1358 {
}
movieClip 1361 bu_enemy {
#initclip
Object.registerClass('bu_enemy', BattleUnit);
#endinitclip
}
movieClip 1364 {
}
// unknown tag 88 length 80
movieClip 1368 {
}
movieClip 1370 {
}
movieClip 1372 {
}
movieClip 1374 {
}
movieClip 1375 {
}
movieClip 1376 bs_hit {
frame 40 {
this.onEnterFrame = function () {
this._alpha -= 5;
};
}
frame 60 {
this.removeMovieClip();
}
}
movieClip 1380 run_trace {
frame 11 {
this.removeMovieClip();
}
frame 41 {
this.removeMovieClip();
}
}
movieClip 1387 {
}
movieClip 1390 grenade_explosion {
frame 13 {
this.removeMovieClip();
}
}
movieClip 1394 {
}
movieClip 1395 bs_heal {
frame 40 {
this.onEnterFrame = function () {
this._alpha -= 5;
};
}
frame 60 {
this.removeMovieClip();
}
}
movieClip 1409 {
}
movieClip 1412 {
}
movieClip 1413 {
}
movieClip 1414 effect_use_device {
frame 25 {
this.removeMovieClip();
}
}
movieClip 1416 {
}
movieClip 1418 {
}
movieClip 1419 effect_defend {
frame 26 {
this.removeMovieClip();
}
}
movieClip 1420 {
}
movieClip 1424 {
}
movieClip 1431 {
}
movieClip 1433 {
}
movieClip 1438 {
}
movieClip 1439 {
}
movieClip 1447 teamslot {
#initclip
Object.registerClass('teamslot', TeamSlot);
#endinitclip
}
movieClip 1448 {
}
movieClip 1467 {
}
movieClip 1470 {
}
movieClip 1471 tooltip_char {
#initclip
Object.registerClass('tooltip_char', TooltipChar);
#endinitclip
}
movieClip 1472 teamscreen {
#initclip
Object.registerClass('teamscreen', ScreenTeam);
#endinitclip
frame 1 {
init();
}
}
movieClip 1476 {
}
movieClip 1487 {
}
movieClip 1489 {
}
movieClip 1780 item {
}
movieClip 1782 itemslot_btn {
#initclip
Object.registerClass('itemslot_btn', ButtonItem);
#endinitclip
}
movieClip 1789 {
}
movieClip 1791 {
}
movieClip 1793 itemslotv_btn {
#initclip
Object.registerClass('itemslotv_btn', ButtonItem);
#endinitclip
}
movieClip 1795 equipslot {
#initclip
Object.registerClass('equipslot', EquipSlot);
#endinitclip
}
movieClip 1797 inventory {
#initclip
Object.registerClass('inventory', Inventory);
#endinitclip
}
movieClip 1809 scroll1 {
#initclip
Object.registerClass('scroll1', ScrollBar);
#endinitclip
}
movieClip 1810 itemsscreen {
#initclip
Object.registerClass('itemsscreen', ScreenItems);
#endinitclip
frame 1 {
init();
}
}
movieClip 1812 {
}
movieClip 1814 {
}
movieClip 1816 {
}
movieClip 1817 quest_descri {
#initclip
Object.registerClass('quest_descri', QuestDescri);
#endinitclip
}
movieClip 1818 scroll2 {
#initclip
Object.registerClass('scroll2', ScrollBar);
#endinitclip
}
movieClip 1819 tasksscreen {
#initclip
Object.registerClass('tasksscreen', ScreenTasks);
#endinitclip
frame 1 {
init();
}
}
movieClip 1821 drop {
}
movieClip 1823 {
}
movieClip 1825 {
}
movieClip 1827 {
}
movieClip 1830 {
}
movieClip 1831 {
}
movieClip 1832 dialogue {
#initclip
Object.registerClass('dialogue', Dialogue);
#endinitclip
}
movieClip 1833 {
}
movieClip 1835 scroll4 {
#initclip
Object.registerClass('scroll4', ScrollBar);
#endinitclip
}
movieClip 1836 scroll3 {
#initclip
Object.registerClass('scroll3', ScrollBar);
#endinitclip
}
movieClip 1837 talkscreen {
#initclip
Object.registerClass('talkscreen', ScreenTalk);
#endinitclip
frame 1 {
this.init();
}
}
movieClip 1839 inventory_trader {
#initclip
Object.registerClass('inventory_trader', Inventory);
#endinitclip
}
movieClip 1841 scroll5 {
#initclip
Object.registerClass('scroll5', ScrollBar);
#endinitclip
}
movieClip 1842 tradescreen {
#initclip
Object.registerClass('tradescreen', ScreenTrade);
#endinitclip
frame 1 {
init();
}
}
movieClip 1843 {
}
movieClip 1846 {
}
movieClip 1852 expslot {
#initclip
Object.registerClass('expslot', ExpSlot);
#endinitclip
}
movieClip 1855 inventory_drop {
#initclip
Object.registerClass('inventory_drop', Inventory);
#endinitclip
}
movieClip 1856 {
}
movieClip 1858 battlewinscreen {
#initclip
Object.registerClass('battlewinscreen', ScreenBattleWin);
#endinitclip
frame 1 {
init();
}
}
movieClip 1861 losescreen {
#initclip
Object.registerClass('losescreen', ScreenLose);
#endinitclip
frame 1 {
init();
}
}
movieClip 1869 {
}
movieClip 1870 {
}
movieClip 1882 {
}
movieClip 1883 button_options {
#initclip
Object.registerClass('button_options', ButtonMenu);
#endinitclip
}
movieClip 1888 button_options_red {
#initclip
Object.registerClass('button_options_red', ButtonMenu);
#endinitclip
}
button 1896 {
on (rollOver) {
(Core.Get()).playSound('button_hover');
}
on (release) {
(Core.Get()).playSound('button_click');
getURL(_root.downloadURL, '_blank');
}
}
movieClip 1897 DownloadLink {
}
movieClip 1898 optionsscreen {
#initclip
Object.registerClass('optionsscreen', ScreenOptions);
#endinitclip
frame 1 {
init();
}
}
movieClip 1901 {
}
movieClip 1906 skillupscreen {
#initclip
Object.registerClass('skillupscreen', ScreenSkillUp);
#endinitclip
frame 1 {
init();
}
}
movieClip 1909 {
}
movieClip 1916 {
}
movieClip 1917 btn_saveslot {
#initclip
Object.registerClass('btn_saveslot', ButtonMenu);
#endinitclip
}
movieClip 1918 {
}
movieClip 1923 saveslot {
#initclip
Object.registerClass('saveslot', SaveSlot);
#endinitclip
}
movieClip 1924 saveloadscreen {
#initclip
Object.registerClass('saveloadscreen', ScreenSaveLoad);
#endinitclip
frame 1 {
this.init();
}
}
movieClip 1931 {
}
movieClip 1933 outroscreen {
#initclip
Object.registerClass('outroscreen', ScreenOutro);
#endinitclip
frame 1 {
init();
}
}
frame 16 {
this.stop();
Core.Create(this);
}