Frame 1
function VisitSponsor() {
getURL (SPONSOR_URL, "_blank");
}
function _mb(b) {
return(int((b / 1048576) * 10) / 10);
}
function SetBadgeStat(name, value, type) {
_global.kongregate.stats.submit(name, value);
if (GameData.BADGESTATS == null) {
GameData.BADGESTATS = [];
}
if (GameData.BADGESTATS[GameData.CHAPTER] == null) {
GameData.BADGESTATS[GameData.CHAPTER] = {};
}
if (int(GameData.BADGESTATS[GameData.CHAPTER][name]) < value) {
GameData.BADGESTATS[GameData.CHAPTER][name] = value;
}
}
VersionNum = "v3.1.051";
THIS_CHAPTER = 1;
SPONSOR_URL = "http://www.crazymonkeygames.com";
WALKTHROUGH_URL = "http://www.fighunter.com";
CHAPTER_URLS = ["http://www.crazymonkeygames.com/Mardek.html", "http://www.crazymonkeygames.com/Mardek-2.html"];
_global.gameID = "MARDEKv3_";
Stage.showMenu = false;
stop();
loadProgress = "";
preloadBar.gotoAndStop(101);
onEnterFrame = function () {
var _local2 = int((this.getBytesLoaded() / this.getBytesTotal()) * 100);
loadProgress = ((((_mb(this.getBytesLoaded()) + "MB / ") + _mb(this.getBytesTotal())) + "MB (") + _local2) + "%)";
preloadBar.gotoAndStop(101 - _local2);
if (this.getBytesLoaded() == this.getBytesTotal()) {
gotoAndPlay (3);
onEnterFrame = null;
}
};
_global.kongregate.services.connect();
Frame 3
function SetOption(o, v) {
OPTIONS_SO.data.OBJ[o] = v;
OPTIONS_SO.flush(OPTIONS_SO.getSize());
return(v);
}
function CheckOption(o) {
return(OPTIONS_SO.data.OBJ[o]);
}
function rStat(stat, type) {
var _local1 = classStats[type][stat];
return(_local1[0] + random((_local1[1] - _local1[0]) + 1));
}
function CreateCreature(type, name, level) {
var _local6 = {STR:rStat("STR", type), VIT:rStat("VIT", type), SPR:rStat("SPR", type), AGL:rStat("AGL", type)};
var _local2 = {name:((name != null) ? (name) : (classStats[type].names[random(classStats[type].names.length)])), model:type, level:1, exp:0, hp:[120, 120], mp:[20, 20], STR:_local6.STR, VIT:_local6.VIT, SPR:_local6.SPR, AGL:_local6.AGL, Class:classStats[type].ClassName, spells:[], weapon:"none", shield:"none", helmet:"none", armour:"none", accessory:"none", accessory2:"none", BASE:_local6, element:classStats[type].element, nDef:classStats[type].nDef, nMDef:classStats[type].nMDef, ATK:0, DEF:0, learned:{}};
var _local3 = GetTechInfo(classStats[type].tech);
var _local1 = 0;
while (_local1 < _local3.length) {
_local2.learned[_local3[_local1].skill] = 0;
_local1++;
}
calculateStats(_local2);
if (level != null) {
while (_local2.level < level) {
LevelUp(_local2);
}
calculateStats(_local2);
}
return(_local2);
}
function GetMONSTER_SKILL(n) {
var _local1 = 0;
while (_local1 < MONSTER_SKILLS.length) {
if (MONSTER_SKILLS[_local1].skill == n) {
return(MONSTER_SKILLS[_local1]);
}
_local1++;
}
}
function GetTechInfo(tech) {
return(techInfo[tech]);
}
function GetSkillInfo(tech, skill) {
var _local2 = techInfo[tech].skills;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].skill == skill) {
return(_local2[_local1]);
}
_local1++;
}
}
function GetReactionInfo(type, R) {
var _local2 = reactionInfo[type];
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].skill == R) {
return(_local2[_local1]);
}
_local1++;
}
}
function HasSkillOnEquipment(stats, skill) {
slots = ["weapon", "armour", "shield", "helmet", "accessory", "accessory2"];
var _local3 = 0;
while (_local3 < slots.length) {
var _local2 = GetItemInfo(stats[slots[_local3]]);
var _local1 = 0;
while (_local1 < _local2.skills.length) {
if ((_local2.skills[_local1][1] == skill) && ((_local2.skills[_local1][0].substr(0, 2) == "R:") || (_local2.skills[_local1][0] == classStats[stats.model].tech))) {
return(true);
}
_local1++;
}
_local3++;
}
return(false);
}
function GetTechBaseDMG(dmg, user) {
if (dmg.pop == null) {
return(dmg);
}
if (dmg[0] == "c") {
if ((substring(dmg[2], 1, 2)) == "L/") {
return(dmg[1] + int(user.stats.level / int(substring(dmg[2], 3, -1))));
}
if ((substring(dmg[2], 1, 2)) == "L*") {
return(dmg[1] + int(user.stats.level * int(substring(dmg[2], 3, -1))));
}
if ((substring(dmg[2], 1, 1)) == "L") {
return(dmg[1] + user.stats.level);
}
} else if (dmg[0] == "m") {
var _local3 = 0;
var _local4 = ((user.stats.MonAtk && (user.stats.weapon == "none")) ? (user.stats.MonAtk) : (GetItemInfo(user.stats.weapon).atk));
if (user.stats.name == "Steele") {
_local4 = 3 * (user.stats.level + 1);
}
var _local5 = dmg[1];
if (dmg[3][0] == "crescendo") {
_local5 = _local5 + (dmg[3][1] * user.stats.crescendo);
}
_local3 = int(_local4 * _local5);
if (dmg[2] != null) {
_local3 = _local3 + dmg[2];
}
return(_local3);
}
}
function HasSkillAvailable(allyName, skillName) {
var _local2 = null;
var _local1 = 0;
while (_local1 < 4) {
if (PCstats[_local1].name == allyName) {
_local2 = PCstats[_local1];
}
_local1++;
}
if (_local2 == null) {
_local2 = GameData.plotVars.Allies[allyName];
}
if (_local2 == null) {
return(false);
}
var _local4 = GetSkillInfo(classStats[_local2.model].tech, skillName);
if ((int(_local2.learned[skillName]) >= _local4.AP) || (HasSkillOnEquipment(_local2, skillName))) {
return(true);
}
return(false);
}
function MasterSkills(stats, skillArray) {
var _local1 = 0;
while (_local1 < skillArray.length) {
stats.learned[skillArray[_local1]] = GetSkillInfo(classStats[stats.model].tech, skillArray[_local1]).AP;
_local1++;
}
}
function MasterReactions(stats, skillArray) {
var _local1 = 0;
while (_local1 < skillArray.length) {
stats.learned._REACTIONS[skillArray[_local1][0]][skillArray[_local1][1]] = [GetReactionInfo(skillArray[_local1][0], skillArray[_local1][1]).AP, skillArray[_local1][2]];
_local1++;
}
calculateStats(stats);
}
function HasAlly(allyName) {
var _local1 = 0;
while (_local1 < 4) {
if (PCstats[_local1].name == allyName) {
return(_local1);
}
_local1++;
}
return(false);
}
function calculateStats(stats) {
stats.getStat = function (s) {
return((int(this[s]) + int(this.BONUS[s])) + int(this.statEnhn[s]));
};
var _local20 = [];
var _local18 = {};
for (var _local26 in stats.status) {
_local20.push(stats.status[_local26]);
_local18[stats.status[_local26]] = true;
}
stats.status = _local20;
if (stats.statusCounter == null) {
stats.statusCounter = {};
}
stats.ATK = 0;
stats.DEF = 0;
slots = ["weapon", "shield", "armour", "helmet", "accessory", "accessory2"];
stats.ATK2 = 0;
if (stats.name == "Steele") {
stats.ATK = 3 + (3 * stats.level);
} else if ((stats.monStats != null) && ((stats.weapon == "none") || (stats.weapon == null))) {
stats.ATK = stats.monStats.nAtk + ((stats.monStats.atkGrowth[1] && (stats.level)) ? (stats.monStats.atkGrowth[0] * Math.floor(stats.level / stats.monStats.atkGrowth[1])) : 0);
} else {
stats.ATK = GetItemInfo(stats.weapon).atk;
}
var _local17 = 0;
var _local19 = 0;
var _local26 = 1;
while (_local26 < slots.length) {
if (stats[slots[_local26]] != "none") {
if (GetItemInfo(stats[slots[_local26]]).def != null) {
_local17 = _local17 + GetItemInfo(stats[slots[_local26]]).def;
}
if (GetItemInfo(stats[slots[_local26]]).mdef != null) {
_local19 = _local19 + GetItemInfo(stats[slots[_local26]]).mdef;
}
}
_local26++;
}
if (stats.nDef != undefined) {
_local17 = _local17 + stats.nDef;
}
if (stats.nMDef != undefined) {
_local19 = _local19 + stats.nMDef;
}
stats.DEF = _local17;
stats.MDEF = _local19;
if (stats.BASE == null) {
stats.BASE = {STR:10, VIT:10, AGL:10, SPR:10};
}
stats.evasion = int(stats.monStats.evasion);
if (stats.AutoSTFX == null) {
stats.AutoSTFX = {};
}
stats.BONUS = {STR:0, VIT:0, SPR:0, AGL:0, ATK:0, DEF:0, MDEF:0};
hpBonus = ((stats.element == "FIG") ? 10 : 0);
mpBonus = ((stats.element == "ETHER") ? 10 : 0);
stats.SPECIAL = {};
stats.RESIST = {};
stats.EMPOWER = {};
var _local11 = 0;
while (_local11 < ELEMENTS_.length) {
stats.RESIST[ELEMENTS_[_local11]] = 0;
_local11++;
}
var _local10 = 0;
while (_local10 < STATUSES_.length) {
stats.RESIST[STATUSES_[_local10]] = 0;
_local10++;
}
_local26 = 0;
while (_local26 < slots.length) {
if (stats[slots[_local26]] != "none") {
var _local7 = 0;
while (_local7 < _root.GetItemInfo(stats[slots[_local26]]).effects.length) {
var _local4 = _root.GetItemInfo(stats[slots[_local26]]).effects[_local7];
if ((((((_local4[0] == "STR") || (_local4[0] == "VIT")) || (_local4[0] == "SPR")) || (_local4[0] == "AGL")) || (_local4[0] == "DEF")) || (_local4[0] == "MDEF")) {
stats.BONUS[_local4[0]] = stats.BONUS[_local4[0]] + _local4[1];
} else if ((_local4[0] == "hp") || (_local4[0] == "mp")) {
this[_local4[0] + "Bonus"] = this[_local4[0] + "Bonus"] + _local4[1];
} else if ((_local4[0] == "R_STATUS") || (_local4[0] == "R_ELEM")) {
stats.RESIST[_local4[1]] = stats.RESIST[_local4[1]] + _local4[2];
if (stats.RESIST[_local4[1]] < -100) {
stats.RESIST[_local4[1]] = -100;
}
if ((_local4[0] == "R_STATUS") && (stats.RESIST[_local4[1]] > 100)) {
stats.RESIST[_local4[1]] = 100;
}
if ((_local4[0] == "R_ELEM") && (stats.RESIST[_local4[1]] > 200)) {
stats.RESIST[_local4[1]] = 200;
}
} else if (_local4[0] == "EMPOWER") {
if (stats.EMPOWER[_local4[1]] == null) {
stats.EMPOWER[_local4[1]] = 0;
}
stats.EMPOWER[_local4[1]] = stats.EMPOWER[_local4[1]] + _local4[2];
} else if (_local4[0] == "CHARISMATIC") {
stats.SPECIAL.CHARISMATIC = _local4[1];
}
_local7++;
}
}
_local26++;
}
for (var _local25 in stats.BASE) {
stats[_local25] = stats.BASE[_local25];
}
stats.DEF = stats.DEF + ((!isNaN(BONUS.DEF)) ? (BONUS.DEF) : 0);
stats.MDEF = stats.MDEF + ((!isNaN(BONUS.MDEF)) ? (BONUS.MDEF) : 0);
for (R in stats.mdlStats.resist) {
stats.RESIST[R] = stats.RESIST[R] + stats.mdlStats.resist[R];
}
var _local28 = 20;
stats.RESIST[stats.element] = stats.RESIST[stats.element] + _local28;
if (stats.RESIST[stats.element] > 200) {
stats.RESIST[stats.element] = 200;
}
stats.RESIST[ELEM_weak[stats.element]] = stats.RESIST[ELEM_weak[stats.element]] - _local28;
if (stats.RESIST[ELEM_weak[stats.element]] < -100) {
stats.RESIST[ELEM_weak[stats.element]] = -100;
}
if (stats.statEnhn == null) {
stats.statEnhn = {STR:0, VIT:0, AGL:0, SPR:0, ATK:0, DEF:0, MDEF:0};
}
var _local21 = [];
var _local9 = 0;
while (_local9 < INVENTORY_LENGTH) {
_local21[_local9] = ((stats.inventory[_local9][0] == null) ? null : ([stats.inventory[_local9][0], ((stats.inventory[_local9][1] == null) ? 1 : (stats.inventory[_local9][1]))]));
_local9++;
}
stats.inventory = _local21;
if (stats.learned._REACTIONS == null) {
stats.learned._REACTIONS = {};
}
if (stats.REACT == null) {
stats.REACT = {};
}
_local26 = 1;
while (_local26 < SkillTypes.length) {
if (stats.learned._REACTIONS[SkillTypes[_local26]] == null) {
stats.learned._REACTIONS[SkillTypes[_local26]] = {};
}
var _local8 = stats.learned._REACTIONS[SkillTypes[_local26]];
stats.REACT[SkillTypes[_local26]] = {};
for (var _local16 in _local8) {
var _local5 = GetReactionInfo(SkillTypes[_local26], _local16);
if (_local5 == null) {
_local8[_local16] = null;
continue;
}
if (_local8[_local16][1]) {
if ((_local8[_local16][0] < _local5.AP) && (!HasSkillOnEquipment(stats, _local16))) {
stats.learned._REACTIONS[SkillTypes[_local26]][_local16][1] = false;
} else {
for (var _local24 in _local5.effect) {
if (stats.REACT[SkillTypes[_local26]][_local24] != null) {
if (typeof(_local5.effect[_local24]) == "boolean") {
continue;
}
if (typeof(_local5.effect[_local24]) == "number") {
stats.REACT[SkillTypes[_local26]][_local24] = stats.REACT[SkillTypes[_local26]][_local24] + _local5.effect[_local24];
} else {
for (var _local12 in _local5.effect[_local24]) {
if (stats.REACT[SkillTypes[_local26]][_local24][_local12] == null) {
stats.REACT[SkillTypes[_local26]][_local24][_local12] = _local5.effect[_local24][_local12];
} else {
stats.REACT[SkillTypes[_local26]][_local24][_local12] = stats.REACT[SkillTypes[_local26]][_local24][_local12] + _local5.effect[_local24][_local12];
}
}
}
} else if (typeof(_local5.effect[_local24]) == "number") {
stats.REACT[SkillTypes[_local26]][_local24] = _local5.effect[_local24];
} else {
stats.REACT[SkillTypes[_local26]][_local24] = {};
for (var _local14 in _local5.effect[_local24]) {
stats.REACT[SkillTypes[_local26]][_local24][_local14] = _local5.effect[_local24][_local14];
}
}
}
}
}
}
_local26++;
}
var _local23 = 1;
var _local22 = 1;
for (var _local24 in stats.REACT.PASSIVE) {
var _local6 = stats.REACT.PASSIVE[_local24];
if (_local24 == "RESIST") {
for (var _local16 in _local6) {
stats.RESIST[_local16] = stats.RESIST[_local16] + _local6[_local16];
}
} else if (_local24 == "hpmult") {
_local23 = _local23 + _local6;
} else if (_local24 == "mpmult") {
_local22 = _local22 + _local6;
} else if (_local24 == "statmod") {
for (_local26 in _local6) {
stats.BONUS[_local26] = stats.BONUS[_local26] + _local6[_local26];
}
}
}
if ((stats.monStats != null) && (!stats.monStats.FAIR_STATS)) {
stats.hp[1] = int((stats.monStats.baseStats.hp + ((stats.level - 1) * stats.monStats.hpGrowth)) + hpBonus);
stats.mp[1] = (stats.true_mp ? (stats.true_mp[0]) : (int(stats.monStats.baseStats.mp)));
} else {
stats.hp[1] = int((int((((stats.getStat("VIT") * 2.5) + ((stats.level - 1) * stats.getStat("VIT"))) * 2) + hpBonus) * _local23) * ((!isNaN(stats.monStats.FAIR_STATS)) ? (stats.monStats.FAIR_STATS) : 1));
stats.mp[1] = int((((stats.getStat("SPR") * 3) + ((((stats.level - 1) / 3) * stats.getStat("SPR")) / 2)) + mpBonus) * _local22);
}
if (_local18.GST) {
var _local15 = {THAUMA:-100, NONE:100, ETHER:200, FIRE:50, WATER:50, AIR:50, EARTH:50, FIG:-100, LIGHT:-100, DARK:-100};
for (var _local27 in _local15) {
stats.RESIST[_local27] = stats.RESIST[_local27] + _local15[_local27];
}
}
if (_local18.BRK) {
stats.BONUS.DEF = int(stats.barkskin);
}
if (battling && (stats.hp[0] <= (stats.hp[1] / 5))) {
for (_local26 in stats.REACT.PASSIVE.SOS) {
AddSTFX(stats, _local26);
}
}
if (stats.hp[1] < 1) {
stats.hp[1] = 1;
}
if (stats.mp[1] < 1) {
stats.mp[1] = 1;
}
if ((stats.hp[1] > 9999) && (stats.monStats == null)) {
stats.hp[1] = 9999;
}
if (stats.mp[1] > 999) {
stats.mp[1] = 999;
}
if (stats.hp[0] > stats.hp[1]) {
stats.hp[0] = stats.hp[1];
}
if (stats.mp[0] > stats.mp[1]) {
stats.mp[0] = stats.mp[1];
}
for (R in stats.RESIST) {
var _local13 = ((STATUS_NAMES[R] != null) ? 100 : 200);
if (stats.RESIST[R] > _local13) {
stats.RESIST[R] = _local13;
}
if (stats.RESIST[R] < -100) {
stats.RESIST[R] = -100;
}
}
}
function FullHeal(stats) {
stats.hp[0] = stats.hp[1];
stats.mp[0] = stats.mp[1];
}
function HasSTFX(stats, stfx) {
var _local1 = 0;
while (_local1 < stats.status.length) {
if (stats.status[_local1] == stfx) {
return(true);
}
_local1++;
}
return(false);
}
function AddSTFX(stats, stfx, lasts) {
if (!stats.hp[0]) {
return(undefined);
}
if (stats.status[0] == null) {
stats.status = [];
}
var _local2 = 0;
while (_local2 < stats.status.length) {
if ((stats.status[_local2] == stfx) || (stats.status[_local2] == null)) {
stats.status[_local2] = stfx;
return(undefined);
}
_local2++;
}
stats.status.push(stfx);
stats.statusCounter[stfx] = lasts;
if (battling) {
if (stats.gettingSTFX == null) {
stats.gettingSTFX = [];
}
stats.gettingSTFX.push(stfx);
}
if (stfx == "BSK") {
RemoveSTFX(stats, "NUM");
}
if (stfx == "BRK") {
stats.barkskin = Math.floor(int(_root.Acting.stats.getStat("SPR")) / 4);
}
if ((stats.name == "Elwyen") && ({SLP:1, SIL:1, ZOM:1, BSK:1, CRS:1, CNF:1}[stfx])) {
_root.SONG_PLAYING = null;
}
}
function RemoveSTFX(stats, stfx) {
var _local2 = stats.status;
var _local7 = [];
var _local4 = [];
var _local1 = 0;
while (_local1 < _local2.length) {
if (((!stats.AutoSTFX[_local2[_local1]]) && (_local2[_local1])) && (((_local2[_local1] == stfx) || ((stfx == "ALL_BAD") && (!GoodSTATUSES_[_local2[_local1]]))) || (stfx == "ALL"))) {
_local4.push(_local2[_local1]);
_local2[_local1] = null;
} else {
_local7.push(_local2[_local1]);
}
_local1++;
}
stats.status = _local7;
if (battling) {
var _local3 = 0;
while (_local3 < _local4.length) {
stats.gettingSTFXheal.push(["STFX", _local4[_local3]]);
_local3++;
}
}
}
function Clone(object) {
if (((typeof(object) == "string") || (typeof(object) == "number")) || (typeof(object) == "boolean")) {
return(object);
}
var _local2 = {};
for (o in object) {
_local2[o] = ((typeof(object[o]) == "object") ? (((typeof(object[o].pop) == "function") ? (CloneA(object[o])) : (Clone(object[o])))) : (object[o]));
}
return(_local2);
}
function CloneA(array) {
if (typeof(array.pop) != "function") {
return(array);
}
var _local3 = [];
var _local1 = 0;
while (_local1 < array.length) {
_local3[_local1] = ((typeof(array[_local1].pop) == "function") ? (CloneA(array[_local1])) : (((typeof(array[_local1]) == "object") ? (Clone(array[_local1])) : (array[_local1]))));
_local1++;
}
return(_local3);
}
function NumberFormat(number) {
if ((number == null) || (isNaN(number))) {
return(0);
}
var _local4 = String(number);
var _local3 = "";
var _local2 = -1;
var _local1 = _local4.length;
while (_local1 > 0) {
_local2++;
_local3 = (_local4.substr(_local1 - 1, 1) + ((((_local2 % 3) == 0) && (_local2 != 0)) ? "," : "")) + _local3;
_local1--;
}
return(_local3);
}
function RomanNumeral(num) {
if (num == null) {
return("!");
}
Arabic = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000];
Roman = ["I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"];
var _local3 = "";
var _local1 = Arabic.length - 1;
while (_local1 >= 0) {
while (num >= Arabic[_local1]) {
num = num - Arabic[_local1];
_local3 = _local3 + Roman[_local1];
}
_local1--;
}
return(_local3);
}
function RGBtoHex(rgb) {
return(((((rgb[0] < 0) ? 0 : (rgb[0])) << 16) ^ (((rgb[1] < 0) ? 0 : (rgb[1])) << 8)) ^ ((rgb[2] < 0) ? 0 : (rgb[2])));
}
function HexToRGB(hex) {
return([(hex >> 16) & 255, (hex >> 8) & 255, hex & 255]);
}
function Flash(target, rgb, speed, endFunction) {
if (speed == null) {
speed = 10;
}
var _local2 = 72493 /* 0x011B2D */;
while (target.getInstanceAtDepth(_local2) != null) {
_local2++;
}
target.createEmptyMovieClip("__flasher", _local2);
target.__flasher.RGB = rgb;
target.__flasher.tint = new flash.geom.Transform(target);
target.__flasher.hue = new flash.geom.ColorTransform();
target.__flasher.C = 0;
target.__flasher.S = speed;
target.__flasher.endFunction = endFunction;
target.__flasher.onEnterFrame = function () {
var _local2 = this.S;
this.C++;
this.hue.redOffset = this.hue.redOffset + (int(this.RGB[0] / _local2) * ((this.C > _local2) ? -1 : 1));
this.hue.greenOffset = this.hue.greenOffset + (int(this.RGB[1] / _local2) * ((this.C > _local2) ? -1 : 1));
this.hue.blueOffset = this.hue.blueOffset + (int(this.RGB[2] / _local2) * ((this.C > _local2) ? -1 : 1));
if (this.RGB[3]) {
this.hue.alphaOffset = this.hue.alphaOffset + (int(this.RGB[3] / _local2) * ((this.C > _local2) ? -1 : 1));
}
this.tint.colorTransform = this.hue;
if (this.C >= _local2) {
this._parent[this.endFunction]();
}
if (this.C >= (_local2 * 2)) {
this.tint.colorTransform = new flash.geom.ColorTransform();
this.removeMovieClip();
}
};
}
function ElemRGB(elem_) {
var _local1 = [0, 0, 255];
switch (elem_.toUpperCase()) {
case "FIRE" :
_local1 = [255, 136, 0];
break;
case "AIR" :
_local1 = [255, 255, 100];
break;
case "EARTH" :
_local1 = [60, 208, 47];
break;
case "WATER" :
_local1 = [32, 214, 223];
break;
case "LIGHT" :
_local1 = [255, 255, 255];
break;
case "DARK" :
_local1 = [-100, -255, -40];
break;
case "ETHER" :
_local1 = [10, 245, 192];
break;
case "FIG" :
_local1 = [150, 40, 215];
break;
case "NONE" :
_local1 = [255, 0, 0];
break;
case "THAUMA" :
_local1 = [0, 0, 255];
}
return(_local1);
}
function _00(n) {
return(((n < 10) ? ("0" + n) : (n)));
}
function ClockTick() {
playtime[2]++;
if (playtime[2] >= 60) {
playtime[2] = 0;
playtime[1]++;
if (playtime[1] >= 60) {
playtime[1] = 0;
playtime[0]++;
}
}
menu.bottom.clock = (((playtime[0] + ":") + _00(playtime[1])) + ":") + _00(playtime[2]);
setTimeout(ClockTick, 1000);
}
function TraceObj(o) {
trace("{");
for (var _local2 in o) {
trace((_local2 + ": ") + o[_local2]);
}
trace("}");
}
function ColourHP(current, max) {
var _local1 = current / max;
var _local2 = ((_local1 == 0) ? "#999999" : (((_local1 <= 0.2) ? "#FF6666" : (((_local1 <= 0.4) ? "#d0E73A" : "#80E73A")))));
return([((("<font color='" + _local2) + "'>") + current) + "</font>", ((("<font color='" + _local2) + "'>") + max) + "</font>"]);
}
function InvertBitmap(bmp, except) {
var _local2 = 0;
while (_local2 < bmp.height) {
var _local1 = 0;
while (_local1 < bmp.width) {
if ((except && (_local1 < except[0])) && (_local2 < except[1])) {
} else {
bmp.setPixel(_local1, _local2, 16777215 - bmp.getPixel(_local1, _local2));
}
_local1++;
}
_local2++;
}
}
function RLE_encode(array) {
if ((typeof(array.pop) != "function") || (typeof(array[0].pop) != "function")) {
var _local5 = [];
for (var _local4 in array) {
if (int(_local4) >= 0) {
_local5[_local4] = [];
}
for (var _local1 in array[_local4]) {
if (int(_local1) >= 0) {
_local5[_local4][_local1] = array[_local4][_local1];
}
}
}
array = _local5;
}
var _local6 = ((array.length + "_") + array[0].length) + "|";
var _local2 = [];
var _local4 = 0;
while (_local4 < array.length) {
_local2 = _local2.concat(array[_local4]);
_local4++;
}
var _local1 = 0;
while (_local1 < _local2.length) {
append = 1;
while (((_local1 + 1) < _local2.length) && (_local2[_local1] == _local2[_local1 + 1])) {
append++;
_local1++;
}
_local6 = _local6 + (append + ["N", "Y"][int(_local2[_local1])]);
_local1++;
}
return(_local6);
}
function RLE_decode(string) {
var _local10 = string.split("|")[0].split("_");
var _local6 = string.split("|")[1];
var _local7 = "";
var _local12 = 0;
while (_local6.length) {
var _local3 = 0;
while (!isNaN(_local6.substr(_local3, 1))) {
_local3++;
}
var _local9 = Number(_local6.substr(0, _local3));
var _local8 = _local6.substr(_local3, 1);
var _local5 = 0;
while (_local5 < _local9) {
_local7 = _local7 + _local8;
_local5++;
}
_local6 = _local6.substr(_local3 + 1);
}
var _local4 = new Array(int(_local10[0]));
var _local1 = 0;
while (_local1 < _local4.length) {
_local4[_local1] = new Array(int(_local10[1]));
var _local2 = 0;
while (_local2 < _local4[_local1].length) {
_local4[_local1][_local2] = Boolean("NY".indexOf(_local7.substr((_local1 * _local4[_local1].length) + _local2, 1)));
_local2++;
}
_local1++;
}
return(_local4);
}
function SaveGame(slot) {
__SAVING_IN_SLOT = slot;
PCloc = [cont.PC._x / TILESIZE, cont.PC._y / TILESIZE, area];
var _local1 = 0;
while (_local1 < PCstats.length) {
if (PCstats[_local1].model != null) {
GameData.plotVars.Allies[PCstats[_local1].name] = Clone(PCstats[_local1]);
}
_local1++;
}
GameData.__RLE_MAPS = true;
__MAPS_TO_ENCODE = [];
for (var _local2 in GameData.Maps) {
__MAPS_TO_ENCODE.push(_local2);
}
__MAPS_TO_ENCODE_LENGTH = __MAPS_TO_ENCODE.length;
if (!__MAPS_TO_ENCODE.length) {
SaveGame_Finalise();
} else {
_SEL_SAVE_SLOT.SAVING_OEF = true;
}
}
function SaveGame_OEF() {
var _local1 = 0;
while ((_local1 < 8) && (__MAPS_TO_ENCODE.length)) {
var _local2 = __MAPS_TO_ENCODE.shift();
GameData.Maps[_local2] = RLE_encode(GameData.Maps[_local2]);
_local1++;
}
_SEL_SAVE_SLOT.savebar.gotoAndStop(1 + int((__MAPS_TO_ENCODE.length / __MAPS_TO_ENCODE_LENGTH) * 100));
if (!__MAPS_TO_ENCODE.length) {
SaveGame_Finalise();
}
}
function SaveGame_Finalise() {
_SEL_SAVE_SLOT.SAVING_OEF = false;
slot = __SAVING_IN_SLOT;
var _local1 = SharedObject.getLocal((gameID + "_sg_") + slot, "/");
_local1.data.PCloc = CloneA(PCloc);
_local1.data.PCstats = CloneA(PCstats);
_local1.data.GameData = Clone(GameData);
_local1.data.playtime = playtime;
_local1.data.savetime = new Date();
_local1.data.OPTIONS = null;
_local1.data.Carea = areaname;
_local1.flush(_local1.getSize());
for (o in _local1) {
delete _local1[o];
}
_local1 = null;
var _local2 = SharedObject.getLocal(gameID + "_master", "/");
_local2.data.LAST_SAVED = slot;
_local2.flush(_local2.getSize());
_SEL_SAVE_SLOT.onComplete();
_SEL_SAVE_SLOT = null;
}
function LoadGame(slot) {
var _local2 = SharedObject.getLocal((gameID + "_sg_") + slot, "/");
PCloc = _local2.data.PCloc;
_global.GameData = Clone(_local2.data.GameData);
PCstats = CloneA(_local2.data.PCstats);
playtime = _local2.data.playtime;
__LOADING_FROM_SLOT = slot;
__MAPS_TO_DECODE = [];
if (GameData.__RLE_MAPS) {
for (var _local3 in _local2.data.GameData.Maps) {
__MAPS_TO_DECODE.push(_local3);
}
__MAPS_TO_DECODE_LENGTH = __MAPS_TO_DECODE.length;
}
if (!__MAPS_TO_DECODE.length) {
LoadGame_Finalise();
} else {
_SEL_SAVE_SLOT.LOADING_OEF = true;
}
}
function LoadGame_OEF() {
var _local1 = 0;
while ((_local1 < 8) && (__MAPS_TO_DECODE.length)) {
var _local2 = __MAPS_TO_DECODE.shift();
GameData.Maps[_local2] = RLE_decode(GameData.Maps[_local2]);
_local1++;
}
_SEL_SAVE_SLOT.savebar.gotoAndStop(1 + int((__MAPS_TO_DECODE.length / __MAPS_TO_DECODE_LENGTH) * 100));
if (!__MAPS_TO_DECODE.length) {
LoadGame_Finalise();
}
}
function LoadGame_Finalise() {
slot = __LOADING_FROM_SLOT;
var _local7 = SharedObject.getLocal((gameID + "_sg_") + slot, "/");
_global.TempVars = {};
if (plotVars.ITEMS.concat == null) {
var _local4 = [];
for (var _local5 in plotVars.ITEMS) {
_local4.push(plotVars.ITEMS[_local5]);
}
plotVars.ITEMS = _local4;
}
if (PCloc[2] == "END_CHAPTER") {
PCloc[2] = "endch" + (plotVars.CHAPTER - 1);
}
if (plotVars.ZDRAGON == 1) {
_root.kongregateStats.submit("ZombieDragon", 1);
}
if (plotVars.ARENA > 20) {
_root.kongregateStats.submit("BeatenArena", 1);
}
if (plotVars.tFound != null) {
_root.kongregateStats.submit("TreasureFound", plotVars.tFound);
}
if (goingToJukebox) {
_root.FADER_.FadeTrans("JUKEBOX");
return(undefined);
}
_root.mapLoaded = false;
_root.startedGame = true;
var _local3 = 0;
while (_local3 < 4) {
calculateStats(PCstats[_local3]);
_local3++;
}
_root.DONT_DRAW_PARTY = false;
_root.freeze = false;
_root.spriteAction = null;
_local7 = null;
var _local6 = SharedObject.getLocal(gameID + "_master", "/");
_local6.data.LAST_LOADED = slot;
_local6.flush(_local6.getSize());
LATEST_LOADED_GAME = slot;
_SEL_SAVE_SLOT.onComplete();
_SEL_SAVE_SLOT = null;
AreaTrans([PCloc[2], PCloc[0], PCloc[1]]);
}
function ClearGameData() {
ClearBattlefield();
BehindBG.DREAMSCAPE.removeMovieClip();
DreamBorder.removeMovieClip();
Miasma.removeMovieClip();
battling = false;
freeze = false;
for (var _local1 in TempVars) {
TempVars[_local1] = null;
delete TempVars[_local1];
}
for (var _local1 in GameData) {
GameData[_local1] = null;
delete GameData[_local1];
}
TempVars = null;
delete TempVars;
GameVars = null;
delete GameVars;
PCstats = [];
playtime = [0, 0, 0];
MUSIC.setVolume(100);
fader.quieten = false;
boss = null;
AfterBattle = null;
END();
cont._visible = false;
for (var _local1 in cont) {
cont[_local1].removeMovieClip();
}
SPECIAL_LOOT = null;
MENU_SEL = 1;
MENU_INV_SEL = null;
menu.SKILLS_SEL_PC = null;
MENU_SHOWING = null;
CANT_CLOSE_MENU = null;
CURRENT_SHOP = null;
DoomCounter.removeMovieClip();
DragItem(null, null, true);
Snowscape.removeMovieClip();
PitchDark.removeMovieClip();
Miasma.removeMovieClip();
DreamBorder.removeMovieClip();
}
function TurnToFace(spriteA, spriteB) {
var _local2 = [cont[spriteA]._x, cont[spriteA]._y];
var _local1 = [cont[spriteB]._x, cont[spriteB]._y];
if (!((_local2[0] == _local1[0]) && (_local2[1] == _local1[1]))) {
cont[spriteA].DrawFrame(((_local2[0] > _local1[0]) ? "w" : (((_local2[0] < _local1[0]) ? "e" : (((_local2[1] < _local1[1]) ? "s" : "n"))) + "1")));
}
}
function Interjection(person, id, conv) {
if ((GameData.plotVars[(person + "_itj_") + id] == true) && (id != null)) {
return(undefined);
}
var _local4 = -1;
var _local2 = 0;
while (_local2 < 4) {
if (PCstats[_local2].name == person) {
_local4 = _local2;
}
_local2++;
}
if (_local4 == -1) {
return(undefined);
}
if (id != null) {
GameData.plotVars[(person + "_itj_") + id] = true;
}
Speak(PCstats[_local4], cont["PC" + ((_local4 == 0) ? "" : (_local4 + 1))], conv);
var _local1 = 1;
while (_local1 < 4) {
if (person == PCstats[_local1].name) {
TurnToFace("PC", "PC" + (_local1 + 1));
TurnToFace("PC" + (_local1 + 1), "PC");
}
_local1++;
}
}
function PlayCutscene(ID) {
_root.attachMovie(ID, "CUTSCENE1", 1998);
CUTSCENE1._width = STAGEW;
CUTSCENE1._height = STAGEH;
CUTSCENE1._x = STAGEW / 2;
CUTSCENE1._y = STAGEH / 2;
_quality = "MEDIUM";
}
function StartDoomCounter(mins) {
_root.attachMovie("DoomCounter", "DoomCounter", 1497);
DoomCounter.COUNTER = [mins, 0];
DoomCounter.TIMESHOWN = mins + ":00";
DoomCounter.f = 0;
DoomCounter.Tick = function () {
var _local3 = _root.DoomCounter;
if (((_local3.COUNTER == null) || (_root.menu._visible)) || (_root.conv._visible)) {
return(undefined);
}
this.f++;
if (this.f < 30) {
return(undefined);
}
this.f = 0;
_local3.COUNTER[1]--;
if ((_local3.COUNTER[1] <= 0) && (_local3.COUNTER[0] > 0)) {
_local3.COUNTER[1] = 59;
_local3.COUNTER[0]--;
}
_local3.TIMESHOWN = (_local3.COUNTER[0] + ":") + _root._00(_local3.COUNTER[1]);
if ((_local3.COUNTER[0] <= 0) && (_local3.COUNTER[1] <= 0)) {
_local3.TIMESHOWN = "0:00";
if (GameData.plotVars.FireTempleTest.current != null) {
GameData.plotVars.FireTempleTest[GameData.plotVars.FireTempleTest.current] = null;
GameData.plotVars.FireTempleTest.current = null;
_root.DoomCounter.removeMovieClip();
GameData.plotVars.NO_BATTLE_MUSIC = false;
TempVars.NO_SAVE = false;
if (!_root.battling) {
_root.playMusic("FireTemple");
}
_root.playSFX("error");
} else {
_root.fader.quieten = true;
_root.fader.NO_TRANS = true;
_root.fader.onMaxFade = function () {
_root.gotoAndStop("GameOver");
this.quieten = false;
};
_root.FadeIn(60);
}
this.onEnterFrame = null;
}
};
DoomCounter.Tick();
DoomCounter.onEnterFrame = function () {
this.Tick();
this.gotoAndStop(((_root.battling == 2) ? 2 : 1));
};
}
function RecordStat(statname, plus) {
if (GameData.RECORDS == null) {
GameData.RECORDS = {};
}
if (GameData.RECORDS[statname] == null) {
GameData.RECORDS[statname] = 0;
}
GameData.RECORDS[statname] = GameData.RECORDS[statname] + (plus ? (plus) : 1);
}
function PlotProgress(n) {
if (GameData.PLOT == null) {
GameData.PLOT = [];
}
if (GameData.PLOT[GameData.CHAPTER] == null) {
GameData.PLOT[GameData.CHAPTER] = 0;
}
GameData.PLOT[GameData.CHAPTER]++;
}
function playSFX(sfx, noPrefix) {
if (!_root.CheckOption("sfx")) {
return(undefined);
}
if (SFXList[sfx] == null) {
SFXList[sfx] = new Sound(SoundCont.createEmptyMovieClip(sfx, SoundCont.D++));
SFXList[sfx].attachSound(((!noPrefix) ? "sfx_" : "") + sfx);
}
SFXList[sfx].start();
}
function playMusic(track, offset, special) {
if (currentMusic == track) {
return(undefined);
}
__MusicSpecial = special;
MUSICList[currentMusic].stop();
if (MUSICList[track] == null) {
MUSICList[track] = new Sound(SoundCont.MusicCont.createEmptyMovieClip(track, SoundCont.MusicCont.D++));
MUSICList[track].attachSound(track);
}
MUSIC = MUSICList[track];
currentMusic = track;
MUSIC.stop();
if ((track == "none") || ((!CheckOption("music")) && (CheckOption("music") != null))) {
return(undefined);
}
mEnd = MUSIC.duration - 50;
MUSIC.setVolume(100);
MUSIC.start(0);
var _local2 = SharedObject.getLocal(gameID + "_master", "/");
if (_local2.data.music == null) {
_local2.data.music = {};
}
_local2.data.music[track] = true;
_local2.flush(_local2.getSize());
_local2 = null;
}
function mCheck() {
if ((!CheckOption("music")) && (CheckOption("music") != null)) {
return(undefined);
}
if (mCheckTimeout) {
mCheckTimeout--;
if (mCheckTimeout <= 0) {
LAST_CHECKED = null;
}
}
if (LAST_CHECKED == MUSIC.position) {
return(undefined);
}
if ((MUSIC.position >= mEnd) && (!__MusicSpecial.NOLOOP)) {
trace((MUSIC.position + "<") + MUSIC.duration);
if (MUSIC.position > MUSIC.duration) {
return(undefined);
}
trace((((((((((MLooper + " ") + MUSIC.position) + "/") + MUSIC.duration) + " ") + currentMusic) + " ") + mEnd) + " ") + new Date().getTime());
LAST_CHECKED = MUSIC.position;
mCheckTimeout = 30;
MUSIC.stop();
MUSIC.start(0.026 + ((MLoopFrom[currentMusic] == null) ? 0 : (MLoopFrom[currentMusic])));
}
}
function GetQuest(id) {
var _local1 = 0;
while (_local1 < QuestData.length) {
if (QuestData[_local1].ID == id) {
return(QuestData[_local1]);
}
_local1++;
}
return({title:"", body:""});
}
function AreaSetup(extra) {
if (EDITOR_MODE) {
gotoAndStop ("MAP_EDITOR");
return(undefined);
}
__AreaEXTRA = extra;
specBtlBG = null;
if (areaDrawn) {
return(undefined);
}
areaDrawn = true;
GLOWTILES = [];
GameData.visited[area] = 1;
if ((!extra.clearmap) && (!extra.NO_MAP)) {
if (GameData.Maps == null) {
GameData.Maps = {};
}
if (GameData.Maps[area] == null) {
GameData.Maps[area] = [];
var _local11 = 0;
while (_local11 < map.length) {
GameData.Maps[area][_local11] = [];
var _local12 = 0;
while (_local12 < map[_local11].length) {
GameData.Maps[area][_local11][_local12] = false;
_local12++;
}
_local11++;
}
}
}
cont._visible = true;
DrawMap(!Boolean(extra.noscroll));
DrawPC(DESTINATION[1], DESTINATION[2]);
if ((!TempVars.DONT_DRAW_ALLIES) && (!extra.hideparty)) {
DrawParty();
}
AREASPRITES = {};
TRANSITIONS = {};
TRIGGERS = {};
TALKTRIGGERS = {};
LOOT = [];
FLAVOUR = {};
SHOPS = {};
WARP_AVAILABLE = Boolean(extra.WARP);
LOOT_TYPE = ((extra.LOOT != null) ? (extra.LOOT) : 0);
var _local8 = 0;
for ( ; _local8 < A_sprites.length ; _local8++) {
var _local3 = A_sprites[_local8];
if (_local3.model == "_trigger") {
if (GameData.TRIGGERS[area][(("T_" + _local3.x) + "_") + _local3.y] && (_local3.triggers != -1)) {
continue;
}
if (GameData.TRIGGERS[area] == null) {
GameData.TRIGGERS[area] = {};
}
TRIGGERS[(("T_" + _local3.x) + "_") + _local3.y] = _local3;
} else if (_local3.model == "talktrigger") {
TALKTRIGGERS[(("T_" + _local3.x) + "_") + _local3.y] = _local3;
} else if (_local3.model == "shop") {
SHOPS[(("T_" + _local3.x) + "_") + _local3.y] = _local3.SHOP;
} else if (((_local3.type == "switch_orb") || (_local3.type == "switch_gate")) || (_local3.type == "switch_platform")) {
var _local5 = NewBlankSprite(_local3.name, _local3.x, _local3.y);
_local5.SPRITESHEET = flash.display.BitmapData.loadBitmap("obj_" + _local3.type);
_local5.bmp = new flash.display.BitmapData(16, 16, true);
_local5.bmp.copyPixels(_local5.SPRITESHEET, new flash.geom.Rectangle(((GameData.switches[dungeon][_local3.colour] || (_local3.type != "switch_orb")) ? (SWITCH_GEMS[_local3.colour][0] * 16) : 0), 0, 16, 16), new flash.geom.Point(0, 0));
_local5.createEmptyMovieClip("box", 100);
_local5.box.attachBitmap(_local5.bmp, 100);
_local5.stats = _local3;
if (_local3.type == "switch_orb") {
_local5.box._y = -4;
}
if (_local3.type == "switch_orb") {
_local5.Talk = function () {
if (GameData.switches == null) {
GameData.switches = {};
}
if (GameData.switches[_root.dungeon] == null) {
GameData.switches[_root.dungeon] = {};
}
GameData.switches[_root.dungeon][this.stats.colour] = !GameData.switches[_root.dungeon][this.stats.colour];
_root.playSFX("gun_empty");
this.bmp.copyPixels(this.SPRITESHEET, new flash.geom.Rectangle((GameData.switches[_root.dungeon][this.stats.colour] ? (_root.SWITCH_GEMS[this.stats.colour][0] * 16) : 0), 0, 16, 16), new flash.geom.Point(0, 0));
};
} else if (_local3.type == "switch_platform") {
_local5.onEnterFrame = function () {
if (this.SET != Boolean(GameData.switches[_root.dungeon][this.stats.colour])) {
this.SET = Boolean(GameData.switches[_root.dungeon][this.stats.colour]);
this.bmp.copyPixels(this.SPRITESHEET, new flash.geom.Rectangle(((!GameData.switches[_root.dungeon][this.stats.colour]) ? (_root.SWITCH_GEMS[this.stats.colour][0] * 16) : 0), 0, 16, 16), new flash.geom.Point(0, 0));
_root.FREESPACE[this.stats.y][this.stats.x] = !this.SET;
}
if (!this.SET) {
_root.FREESPACE[this.stats.y][this.stats.x] = true;
}
};
} else {
_local5.Talk = function () {
if (!this.SET) {
_root.Speak(this.stats, this, [["", ("It's a large golden door with an enormous $" + this.stats.colour) + "% in the centre. It won't open... nor can you steal the gem. Tsk."], ["", "There's probably some kind of switch somewhere that will cause it to open."]]);
}
};
_local5.onEnterFrame = function () {
if (this.SET != Boolean(GameData.switches[_root.dungeon][this.stats.colour])) {
this.SET = Boolean(GameData.switches[_root.dungeon][this.stats.colour]);
this.bmp.copyPixels(this.SPRITESHEET, new flash.geom.Rectangle(((!GameData.switches[_root.dungeon][this.stats.colour]) ? (_root.SWITCH_GEMS[this.stats.colour][0] * 16) : 0), 0, 16, 16), new flash.geom.Point(0, 0));
_root.FREESPACE[this.stats.y][this.stats.x] = this.SET;
}
};
}
} else if (_local3.type == "examine") {
FLAVOUR[(("T_" + _local3.x) + "_") + _local3.y] = _local3;
} else if (_local3.dest) {
DrawDoor(_local3);
} else if (_local3.model.substr(0, 2) == "o_") {
DrawObject(_local3);
} else if (_local3.model == "chalice") {
DrawChalice(_local3);
} else {
DrawSprite(_local3);
}
}
A_sprites = null;
if (GameData.looted == null) {
GameData.looted = {};
}
if (areaLoot.length > 0) {
if (GameData.looted[area] == null) {
GameData.looted[area] = new Array(areaLoot.length);
}
var _local4 = 0;
while (_local4 < areaLoot.length) {
var _local7 = ((1000 * (int(areaLoot[_local4].y) + 50)) + int(areaLoot[_local4].x)) + 300;
while (cont.getInstanceAtDepth(_local7) != null) {
_local7++;
}
var _local9 = cont.createEmptyMovieClip("LOOT" + _local4, _local7);
_local9.contents = areaLoot[_local4];
_local9._x = TILESIZE * areaLoot[_local4].x;
_local9._y = TILESIZE * areaLoot[_local4].y;
FREESPACE[areaLoot[_local4].y][areaLoot[_local4].x] = false;
_local9.bmp = new flash.display.BitmapData(16, 16, true);
_local9.bmp.copyPixels(TREASURESHEET, new flash.geom.Rectangle(16 * _root.LOOT_TYPE, 16 * int(GameData.looted[area][_local4]), 16, 16), new flash.geom.Point(0, 0));
_local9.createEmptyMovieClip("box", 100);
_local9.box.attachBitmap(_local9.bmp, 110);
_local9._width = (_local9._height = TILESIZE);
if (areaLoot[_local4].hidden) {
_local9.box._alpha = 0;
}
_local9.ID = _local4;
if (GameData.looted[area][_local4] != true) {
LOOT.push({x:areaLoot[_local4].x, y:areaLoot[_local4].y, chest:_local9});
}
_local9.Open = function () {
if (GameData.looted[_root.area][this.ID]) {
return(undefined);
}
if (this.contents.monsters) {
_root.SPECIAL_LOOT = [this.contents.item, this.contents.amount];
BATTLE(this.contents.monsters, this.contents.specialMusic);
this.OpenSuccess();
} else if (this.contents.type == "gold") {
GameData.money = GameData.money + this.contents.amount;
_root.RecordStat("GOLD_EARNED", this.contents.amount);
var _local3 = this.attachMovie("PlusGold", "PlusGold", 1740);
_local3._x = 8;
_local3._width = _local3._width * 0.5;
_local3._height = _local3._height * 0.5;
_local3.amount = "+" + this.contents.amount;
_local3.count = 0;
_local3.onEnterFrame = function () {
if (this.count < 8) {
this._y--;
}
if (this.count > 30) {
this._alpha = this._alpha - 20;
}
this.count++;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
this.OpenSuccess();
} else {
_root.AcquireItem(this.contents, this);
}
if (!this.contents.hidden) {
_root.playSFX("open1");
}
this.bmp.copyPixels(_root.TREASURESHEET, new flash.geom.Rectangle(16 * _root.LOOT_TYPE, 16, 16, 16), new flash.geom.Point(0, 0));
};
_local9.OpenSuccess = function () {
GameData.looted[_root.area][this.ID] = true;
_root.RecordStat("CHESTS");
_root.SetBadgeStat("TreasureFound", GameData.RECORDS.CHESTS, "MAX");
};
_local9.Close = function () {
this.bmp.copyPixels(_root.TREASURESHEET, new flash.geom.Rectangle(16 * _root.LOOT_TYPE, 0, 16, 16), new flash.geom.Point(0, 0));
};
_local4++;
}
}
CURRENT_AMBIENCE = null;
Sky = new Color(cont);
if (ambience != null) {
Sky.setTransform(ambience);
CURRENT_AMBIENCE = ambience;
ambience = null;
} else {
Sky.setTransform({ra:100, ga:100, ba:100, aa:100, rb:0, gb:0, bb:0, ab:0});
}
if (extra.DARK) {
_root.attachMovie("pitchblack", "PitchDark", 1011);
PitchDark.gotoAndStop((GameData.LIGHTON ? "lit" : 1));
PitchDark.onEnterFrame = function () {
this._visible = battling != 2;
};
if (!GameData.LIGHTON) {
GameData.LIGHTON = true;
_root.Speak(null, null, [["deep", "[[RM]]Hmm... It's pitch black in here; we can't see where we're going at all. I can create a piercing light to show something, but since it's magical darkness, we won't be able to see far. Even the torches don't illuminate anything."], (Do = function () {
_root.PitchDark.gotoAndPlay(2);
return(1);
})]);
}
} else {
PitchDark.removeMovieClip();
}
if (extra.SNOW) {
_root.createEmptyMovieClip("Snowscape", 1011);
Snowscape.onEnterFrame = function () {
this._visible = battling != 2;
};
Snowfall(Snowscape);
} else {
Snowscape.removeMovieClip();
}
if (extra.DREAM && (!(extra.DREAM === 2))) {
_root.createEmptyMovieClip("DreamBorder", 979);
DreamscapeSettings(DreamBorder, extra.DREAM);
} else {
DreamBorder.removeMovieClip();
}
if (extra.MIASMA) {
_root.createEmptyMovieClip("Miasma", 1011);
SetupMiasma(Miasma);
} else {
Miasma.removeMovieClip();
}
playMusic(musicTrack);
}
function DrawMap(scrolling) {
for (var _local8 in cont) {
cont[_local8].removeMovieClip();
}
_quality = "LOW";
scrollArea = scrolling;
TILESHEET = flash.display.BitmapData.loadBitmap("tilesheet_" + tileset);
LIGHTSOURCES = {};
DEFAULT_TILE = ((TILESHEET.getPixel(48, 0) == 16711935) ? 200 : 100);
var _local9 = [7, 5];
var _local6 = (-DESTINATION[1]) + Math.floor(TILES_W / 2);
var _local7 = (-DESTINATION[2]) + Math.floor(TILES_H / 2);
var _local3 = (scrolling ? ((-PADDING[1]) - int(_local7)) : 0);
while (_local3 < (scrolling ? (SHOW_H - int(_local7)) : (map.length))) {
var _local1 = (scrolling ? ((-PADDING[0]) - int(_local6)) : 0);
while (_local1 < (scrolling ? (SHOW_W - int(_local6)) : (map[_local3].length))) {
var _local4 = cont.createEmptyMovieClip((("T_" + _local1) + "_") + _local3, ((1000 * (_local3 + 50)) + _local1) + 200);
_local4._x = TILESIZE * _local1;
_local4._y = TILESIZE * _local3;
DrawTile(_local4, map[_local3][_local1]);
if ((!__AreaEXTRA.clearmap) && (!__AreaEXTRA.NO_MAP)) {
GameData.Maps[area][_local3][_local1] = true;
}
_local1++;
}
_local3++;
}
X_OFFSET = int(_local6);
Y_OFFSET = int(_local7);
cont._x = (scrolling ? (X_OFFSET * TILESIZE) : 0);
cont._y = (scrolling ? (Y_OFFSET * TILESIZE) : 0);
FREESPACE = [];
_local3 = 0;
while (_local3 < map.length) {
FREESPACE[_local3] = [];
var _local1 = 0;
while (_local1 < map[0].length) {
var _local4 = TileCoords(map[_local3][_local1]);
var _local2 = TILESHEET.getPixel(_local4[0], _local4[1]);
FREESPACE[_local3][_local1] = ((_local2 == 65280) || (_local2 == 39168)) || (_local2 == 65535);
_local1++;
}
_local3++;
}
if (ADVANCED_LIGHTING_ON) {
AreaLighting();
}
}
function RedrawMap() {
for (var _local2 in cont) {
var _local1 = _local2.split("_");
if ((_local1[0] == "T") && (_local1.length == 3)) {
DrawTile(cont[_local2], map[_local1[2]][_local1[1]]);
}
}
}
function IsValidTile(x, y) {
var _local2 = TileCoords(map[y][x]);
var _local3 = flash.display.BitmapData.loadBitmap("tilesheet_" + tileset);
var _local1 = _local3.getPixel(_local2[0], _local2[1]);
return(((_local1 == 65280) || (_local1 == 39168)) || (_local1 == 65535));
}
function DrawTile(t, tid, size) {
var _local9 = t._x / TILESIZE;
var _local8 = t._y / TILESIZE;
if (t.LIGHT) {
delete LIGHTSOURCES[(("L_" + _local9) + "_") + _local8];
}
for (var _local15 in t) {
if (_local15 != "BOX") {
t[_local15].removeMovieClip();
}
}
var _local23 = ((tid == null) ? (DEFAULT_TILE) : (tid));
var _local7 = [String(_local23).substr(0, 1), String(_local23).substr(1)];
var bmp = (new flash.display.BitmapData(16, 16 * _local7[0], true));
bmp.copyPixels(TILESHEET, new flash.geom.Rectangle(((_local7[0] - 1) * 160) + ((_local7[1] % 10) * 16), ((Math.floor(_local7[1] / 10) * _local7[0]) + 1) * 16, 16, 16 * _local7[0]), new flash.geom.Point(0, 0));
t.createEmptyMovieClip("box", 100);
t.box.attachBitmap(bmp, 100);
t.box._y = (-(size ? (size) : (TILESIZE))) * (_local7[0] - 1);
t.swapDepths(((1000 * ((t._y / TILESIZE) + 50)) + (t._x / TILESIZE)) + 200);
t.box._width = (size ? (size) : (TILESIZE));
t.box._height = (size ? (size) : (TILESIZE)) * _local7[0];
var _local24 = TileCoords(tid);
var _local20 = TILESHEET.getPixel(80 + _local24[0], _local24[1]);
if (_local20) {
var _local6 = t.box.createEmptyMovieClip("obj", 200);
_local6.bmp = flash.display.BitmapData.loadBitmap("obj_" + ((_local6.HTO = HexTileObjects["O" + _local20.toString(16)]))[0]);
_local6.show_bmp = new flash.display.BitmapData(16, _local6.HTO[3], true);
_local6.show_bmp.copyPixels(_local6.bmp, new flash.geom.Rectangle(0, _local6.HTO[2] * 16, 16, _local6.HTO[3]), new flash.geom.Point(0, 0));
_local6._y = (-(_local6.HTO[3] - 16)) + ((_local7[0] - 1) * 16);
_local6.attachBitmap(_local6.show_bmp, 217);
_local6.C = [0, 0];
_local6.onEnterFrame = function () {
this.C[0]++;
if (this.C[0] > this.HTO[1]) {
this.C[0] = 0;
this.C[1]++;
if (this.C[1] >= ((this.bmp.width - 1) / 16)) {
this.C[1] = 0;
}
this.show_bmp.copyPixels(this.bmp, new flash.geom.Rectangle(this.C[1] * 16, this.HTO[2] * 16, 16, this.HTO[3]), new flash.geom.Point(0, 0));
}
};
if ((_local6.HTO[4] && (!EDITOR_MODE)) && (_root.CheckOption("afx"))) {
if (ADVANCED_LIGHTING_ON) {
LIGHTSOURCES[(("L_" + _local9) + "_") + _local8] = [(_local9 + 0.5) * TILESIZE, (_local8 * TILESIZE) + _local6.HTO[4][1], 100, TilesetLighting[tileset]];
t.LIGHT = true;
cont.GLOOM.Refresh();
} else {
var _local12 = [t._x / TILESIZE, t._y / TILESIZE];
if (cont[(("light" + _local12[0]) + "_") + _local12[1]] == null) {
var _local16 = cont.attachMovie("torchlight", (("light" + _local12[0]) + "_") + _local12[1], (650000 + (1000 * _local12[1])) + _local12[0]);
_local16._x = t._x + 24;
_local16._y = t._y + _local6.HTO[4][1];
_local16.area = area;
_local16.gotoAndStop(_local6.HTO[4][0]);
}
}
}
}
var _local13 = TILESHEET.getPixel((10 * (_local7[0] - 1)) + (_local7[1] % 10), Math.floor(_local7[1] / 10));
if ((_local13 == 56831) || (_local13 == 65535)) {
var _local18 = TILESHEET.getPixel((10 * (int(String(map[_local8 - 1][_local9]).substr(0, 1)) - 1)) + (int(String(map[_local8 - 1][_local9]).substr(1)) % 10), Math.floor(int(String(map[_local8 - 1][_local9]).substr(1)) / 10));
DrawWater(t, (((_local18 != 56831) && (_local18 != 39168)) && (_local18 != 65535)) && (_local8 != 0));
} else if (_local13 == 16711680) {
DrawWater(t, null, true);
} else if (_local13 == 200) {
DrawWaterfall(t);
}
if ((__AreaEXTRA.GlowTiles[(("t" + _local9) + "_") + _local8] != null) || (TilesetGlowtiles[tileset]["t" + tid])) {
var _local22 = ((TilesetGlowtiles[tileset]["t" + tid] != null) ? (TilesetGlowtiles[tileset]["t" + tid]) : (__AreaEXTRA.GlowTiles[(("t" + _local9) + "_") + _local8]));
var _local11 = [String(_local22).substr(0, 1), String(_local22).substr(1)];
var _local21 = t.box.createEmptyMovieClip("glow", 210);
var bmp = (new flash.display.BitmapData(16, 16 * _local11[0], true));
bmp.copyPixels(TILESHEET, new flash.geom.Rectangle(((_local11[0] - 1) * 160) + ((_local11[1] % 10) * 16), ((Math.floor(_local11[1] / 10) * _local11[0]) + 1) * 16, 16, 16 * _local11[0]), new flash.geom.Point(0, 0));
_local21.attachBitmap(bmp, 1);
GLOWTILES.push(_local21);
if (cont.GlowController == null) {
var _local19 = cont.createEmptyMovieClip("GlowController", 70747091);
_local19.a = 0;
_local19.mod = (TilesetGlowtiles[tileset].GLOWSPEED ? (TilesetGlowtiles[tileset].GLOWSPEED) : 3);
_local19.onEnterFrame = function () {
this.a = this.a + this.mod;
if (((this.mod > 0) && (this.a >= 100)) || ((this.mod < 0) && (this.a <= 0))) {
this.mod = this.mod * -1;
}
var _local5 = [];
var _local4 = 0;
while (_local4 < _root.GLOWTILES.length) {
var _local3 = _root.GLOWTILES[_local4];
if (_local3 != null) {
_local5.push(_local3);
_local3._alpha = this.a;
}
_local4++;
}
_root.GLOWTILES = _local5;
};
}
}
}
function DrawWater(TILE, waterWall, lava) {
if (cont.Poseidon == null) {
cont.createEmptyMovieClip("Poseidon", 70747078);
cont.Poseidon.seas = [];
cont.Poseidon.delay = 0;
cont.Poseidon.count = 0;
cont.Poseidon.count2 = 0;
cont.Poseidon.tricount = 0;
cont.Poseidon.cycle = 0;
cont.Poseidon.bmps = [];
var _local3 = 0;
while (_local3 < 4) {
cont.Poseidon.bmps[_local3] = new flash.display.BitmapData(16, 16, true);
cont.Poseidon.bmps[_local3].copyPixels(TILESHEET, new flash.geom.Rectangle(160 + (16 * [0, 3, 1, 2][_local3]), 0, 16, 16), new flash.geom.Point(0, 0));
_local3++;
}
cont.Poseidon.wreverse = false;
cont.Poseidon.breverse = true;
cont.Poseidon.onEnterFrame = function () {
if ((!_root.cont._visible) || (!_root.CheckOption("afx"))) {
return(undefined);
}
this.delay++;
if ((this.delay % 4) != 0) {
return(undefined);
}
if (this.delay > 44) {
this.wreverse = !this.wreverse;
this.delay = 0;
this.cycle++;
if (this.cycle > 3) {
this.cycle = 0;
this.breverse = !this.breverse;
}
}
var _local7 = 4;
this.count = this.count + _local7;
if (this.count >= 16) {
this.count = 0;
}
this.tricount++;
if (this.tricount > 3) {
this.tricount = 0;
this.count2 = this.count2 + _local7;
if (this.count2 >= 16) {
this.count2 = 0;
}
}
var _local10 = (this.tricount ? 2 : 4);
var _local3 = 0;
while (_local3 < _local10) {
var _local6 = new flash.display.BitmapData(16, 16, true);
var _local4 = this[((_local3 < 2) ? "w" : "b") + "reverse"];
var _local5 = ((_local3 < 2) ? (this.count) : (this.count2));
_local6.copyPixels(this.bmps[_local3], new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
_local6.copyPixels(this.bmps[_local3], new flash.geom.Rectangle((_local4 ? 0 : 1), _local5, 15, _local7), new flash.geom.Point((_local4 ? 1 : 0), _local5));
_local6.copyPixels(this.bmps[_local3], new flash.geom.Rectangle((_local4 ? 15 : 0), _local5, 1, _local7), new flash.geom.Point((_local4 ? 0 : 15), _local5));
this.bmps[_local3] = _local6;
_local3++;
}
var _local8 = [];
var _local9 = this.seas.length;
_local3 = 0;
while (_local3 < _local9) {
if (this.seas[_local3] == null) {
} else {
this.seas[_local3].water.attachBitmap(this.bmps[(this.seas[_local3].lava ? 1 : 0)], 100);
if (!this.tricount) {
this.seas[_local3].waterBottom.attachBitmap(this.bmps[(this.seas[_local3].waterWall ? 3 : 2)], 100);
}
_local8.push(this.seas[_local3]);
}
_local3++;
}
this.seas = _local8;
};
}
cont.Poseidon.seas.push(TILE);
TILE.waterWall = waterWall;
TILE.lava = lava;
TILE.createEmptyMovieClip("water", 50);
TILE.water.attachBitmap(cont.Poseidon.bmps[(lava ? 1 : 0)], 100);
TILE.water._width = (TILE.water._height = TILE._width);
if (EDITOR_MODE) {
return(undefined);
}
if ((WATERMODE <= 2) && (!lava)) {
TILE.water._alpha = 30;
}
if ((WATERMODE <= 2) && (!lava)) {
TILE.createEmptyMovieClip("waterBottom", 30);
TILE.waterBottom.attachBitmap(cont.Poseidon.bmps[(waterWall ? 3 : 2)], 100);
TILE.waterBottom._width = (TILE.waterBottom._height = TILE._width);
}
}
function DrawWaterfall(TILE) {
if (cont.waterfallCounter == null) {
cont.createEmptyMovieClip("waterfallCounter", 70747075);
cont.waterfallCounter.bmp = new flash.display.BitmapData(16, 16, true);
cont.waterfallCounter.bmp.copyPixels(TILESHEET, new flash.geom.Rectangle(224, 0, 16, 16), new flash.geom.Point(0, 0));
cont.waterfallCounter.falls = [];
cont.waterfallCounter.delay = 0;
cont.waterfallCounter.onEnterFrame = function () {
if ((!_root.cont._visible) || (!_root.CheckOption("afx"))) {
return(undefined);
}
this.delay++;
if (this.delay < 3) {
return(undefined);
}
this.delay = 0;
var _local4 = new flash.display.BitmapData(16, 16, true);
_local4.copyPixels(this.bmp, new flash.geom.Rectangle(0, 0, 16, 15), new flash.geom.Point(0, 1));
_local4.copyPixels(this.bmp, new flash.geom.Rectangle(0, 15, 16, 1), new flash.geom.Point(0, 0));
this.bmp = _local4;
var _local6 = this.falls.length;
var _local5 = [];
var _local3 = 0;
while (_local3 < _local6) {
if (this.falls[_local3] == null) {
} else {
this.falls[_local3].attachBitmap(_local4, 100);
_local5.push(this.falls[_local3]);
}
_local3++;
}
this.falls = _local5;
};
}
var _local7 = TILE.createEmptyMovieClip("waterfall", 40);
_local7.attachBitmap(cont.waterfallCounter.bmp, 100);
_local7._width = (_local7._height = TILE._width);
cont.waterfallCounter.falls.push(_local7);
}
function AreaLighting() {
var LIGHTMODE = 3;
cont.createEmptyMovieClip("GLOOM", 70747074);
cont.GLOOM.Halo = function (mc, x, y, r) {
mc.beginFill(16750848, 10);
_root.drawCircle(mc, x, y, r);
mc.endFill();
};
cont.GLOOM.blendMode = "layer";
cont.GLOOM.Refresh = function () {
var colours = [0, 16750848];
var DarknessPotency = 70;
this.haloes = [];
for (var l in _root.LIGHTSOURCES) {
this.haloes.push(_root.LIGHTSOURCES[l]);
}
this.box.removeMovieClip();
this.createEmptyMovieClip("box", 100);
this.createEmptyMovieClip("box2", 1000);
with (this.box) {
beginFill(colours[0], DarknessPotency);
moveTo(-50, -50);
lineTo(STAGEW + 50, -50);
lineTo(STAGEW + 50, STAGEH + 50);
lineTo(-50, STAGEH + 50);
lineTo(-50, -50);
endFill();
_x = -_root.cont._x;
_y = -_root.cont._y;
}
var radii = [];
var checked = {};
var h = 0;
while (h < this.haloes.length) {
var colour2 = (this.haloes[h][3] ? (this.haloes[h][3]) : (colours[1]));
if (checked[(("R" + this.haloes[h][0]) + "_") + this.haloes[h][1]]) {
} else {
checked[(("R" + this.haloes[h][0]) + "_") + this.haloes[h][1]] = true;
radii[h] = int(this.haloes[h][2] + (Math.random() * (this.haloes[h][2] / 30))) * ((LIGHTMODE >= 3) ? 1.3 : 1);
this["circle" + h].removeMovieClip();
var circle = this.createEmptyMovieClip("circle" + h, 110 + h);
circle.blendMode = "erase";
if (this.haloes[h][4]) {
circle._alpha = this.haloes[h][4];
}
var r = radii[h];
var x = this.haloes[h][0];
var y = this.haloes[h][1];
with (circle) {
if (LIGHTMODE >= 3) {
var m = (new flash.geom.Matrix());
m.createGradientBox(r * 2, r * 2, 0, x - r, y - r);
beginGradientFill("radial", [colour2, colours[0], colours[0]], [100, 40, 0], [150, 220, 255], m);
} else {
beginFill(16711935, 100);
}
_root.drawCircle(circle, x, y, r);
endFill();
}
if (LIGHTMODE >= 3) {
this["glow" + h].removeMovieClip();
var glow = this.box2.createEmptyMovieClip("glow" + h, 110 + h);
with (glow) {
var m = (new flash.geom.Matrix());
m.createGradientBox(r * 2, r * 2, 0, x - r, y - r);
beginGradientFill("radial", [colour2, colours[0]], [10, 0], [150, 255], m);
_root.drawCircle(glow, x, y, r);
endFill();
}
}
if (LIGHTMODE < 3) {
this.Halo(this.box2, this.haloes[h][0], this.haloes[h][1], radii[h]);
}
}
h++;
}
};
if (LIGHTMODE < 3) {
cont.GLOOM.filters = [new flash.filters.BlurFilter(48, 48)];
}
cont.GLOOM.Refresh();
cont.GLOOM.count = 0;
if ((LIGHTMODE == 1) || (LIGHTMODE == 3)) {
cont.GLOOM.onEnterFrame = function () {
if (_root.battling) {
return(undefined);
}
this.count++;
if (this.count < 3) {
return(undefined);
}
this.count = 0;
this.Refresh();
};
}
}
function drawCircle(mc, x, y, r) {
mc.moveTo(x + r, y);
mc.curveTo(r + x, (0.414213562373095 * r) + y, (0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((0.414213562373095 * r) + x, r + y, x, r + y);
mc.curveTo((-0.414213562373095 * r) + x, r + y, (-0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((-r) + x, (0.414213562373095 * r) + y, (-r) + x, y);
mc.curveTo((-r) + x, (-0.414213562373095 * r) + y, (-0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo((-0.414213562373095 * r) + x, (-r) + y, x, (-r) + y);
mc.curveTo((0.414213562373095 * r) + x, (-r) + y, (0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo(r + x, (-0.414213562373095 * r) + y, r + x, y);
}
function TileCoords(tilecode) {
tilecode = String(tilecode);
var _local2 = int(tilecode.substr(0, 1));
return([(10 * (_local2 - 1)) + (tilecode.substr(1) % 10), Math.floor(tilecode.substr(1) / 10)]);
}
function NewBlankSprite(name, x, y) {
var _local1 = (N2 = name);
var _local3 = 1;
while (cont[_local1] != null) {
_local3++;
_local1 = N2 + _local3;
}
var _local2 = ((1000 * (int(y) + 50)) + int(x)) + 300;
while (cont.getInstanceAtDepth(_local2) != null) {
_local2++;
}
var _local4 = cont.createEmptyMovieClip(_local1, _local2);
_local4._x = TILESIZE * x;
_local4._y = TILESIZE * y;
_local4._xscale = _local4._xscale * 3;
_local4._yscale = _local4._yscale * 3;
FREESPACE[y][x] = false;
AREASPRITES[_local1] = _local4;
return(_local4);
}
function DrawSprite(sprite, altName) {
if ((sprite.BOSSCODE != null) && (GameData.bosses[sprite.BOSSCODE])) {
return(undefined);
}
var _local1 = (N2 = (altName ? (altName) : (sprite.name)));
var _local3 = 1;
while (cont[_local1] != null) {
_local3++;
_local1 = N2 + _local3;
}
var _local2 = ((1000 * (int(sprite.y) + 50)) + int(sprite.x)) + 300;
while (cont.getInstanceAtDepth(_local2) != null) {
_local2++;
}
cont.attachMovie("_sprite", _local1, _local2);
cont[_local1].stats = sprite;
cont[_local1]._x = TILESIZE * sprite.x;
cont[_local1]._y = TILESIZE * sprite.y;
FREESPACE[sprite.y][sprite.x] = false;
AREASPRITES[_local1] = cont[_local1];
if (sprite.hidden) {
cont[_local1]._visible = false;
}
return(cont[_local1]);
}
function DrawObject(obj, TILE) {
if (!TILE) {
obj.race = obj.model;
var _local4 = (N2 = obj.name);
var _local7 = 1;
while (cont[_local4] != null) {
_local7++;
_local4 = N2 + _local7;
}
var _local5 = ((1000 * (int(obj.y) + 50)) + int(obj.x)) + 300;
while (cont.getInstanceAtDepth(_local5) != null) {
_local5++;
}
}
var _local3 = (TILE ? (TILE.box.createEmptyMovieClip("OBJ", 200)) : (cont.createEmptyMovieClip(_local4, _local5)));
_local3.spritesheet = flash.display.BitmapData.loadBitmap("obj_" + obj.model.substr(2));
_local3.bmp = new flash.display.BitmapData(16, 16, true);
_local3.bmp.copyPixels(_local3.spritesheet, new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
_local3.createEmptyMovieClip("bmp_", 100);
_local3.bmp_.attachBitmap(_local3.bmp, 100);
_local3.bmp_._y = -4;
_local3.stats = obj;
if (!TILE) {
_local3._x = TILESIZE * int(obj.x);
_local3._y = TILESIZE * int(obj.y);
_local3._width = _local3._width * 3;
_local3._height = _local3._height * 3;
if (!obj.walkable) {
FREESPACE[obj.y][obj.x] = false;
}
AREASPRITES[_local4] = _local3;
}
_local3.count = 0;
_local3.F = 0;
_local3.onEnterFrame = function () {
this.count++;
if (this.count > 5) {
this.F++;
if ((this.F * 16) >= this.spritesheet.width) {
this.F = 0;
}
this.bmp.copyPixels(this.spritesheet, new flash.geom.Rectangle(this.F * 16, 0, 16, 16), new flash.geom.Point(0, 0));
this.count = 0;
}
};
if (TILE) {
return(_local3);
}
if (obj.conv != null) {
_local3.Talk = function () {
_root.TALKING = this;
_root.Speak(this.stats, this);
};
}
if (obj.hidden) {
_local3._visible = false;
}
return(_local3);
}
function DrawChalice(obj) {
obj.race = obj.model;
var _local4 = (N2 = obj.name);
var _local6 = 1;
while (cont[_local4] != null) {
_local6++;
_local4 = N2 + _local6;
}
var _local5 = ((1000 * (int(obj.y) + 50)) + int(obj.x)) + 300;
while (cont.getInstanceAtDepth(_local5) != null) {
_local5++;
}
var _local3 = cont.createEmptyMovieClip(_local4, _local5);
_local3.offset = {DARK:0, FIRE:1, WATER:2, EARTH:3}[area.toUpperCase().split("_")[1]] * 16;
_local3.spritesheet = flash.display.BitmapData.loadBitmap("miasmal_chalice");
_local3.bmp = new flash.display.BitmapData(16, 16, true);
_local3.bmp.copyPixels(_local3.spritesheet, new flash.geom.Rectangle(_local3.offset, 0, 16, 16), new flash.geom.Point(0, 0));
_local3.createEmptyMovieClip("bmp_", 100);
_local3.bmp_.attachBitmap(_local3.bmp, 100);
_local3.bmp_._y = -4;
_local3.stats = obj;
_local3._x = TILESIZE * int(obj.x);
_local3._y = TILESIZE * int(obj.y);
_local3._width = _local3._width * 3;
_local3._height = _local3._height * 3;
FREESPACE[obj.y][obj.x] = false;
AREASPRITES[_local4] = _local3;
_local3.count = 0;
_local3.I = 0;
_local3.rise = -1;
_local3.createEmptyMovieClip("sparkles", 111);
_local3.onEnterFrame = function () {
this.count++;
if (this.count > 10) {
this.I++;
if (this.I > 90) {
this.I = 0;
}
var _local3 = this.sparkles.createEmptyMovieClip("s" + this.I, this.I);
_local3.bmp = new flash.display.BitmapData(5, 5, true);
_local3.bmp.copyPixels(this.spritesheet, new flash.geom.Rectangle(this.offset + (random(3) * 5), 16, 5, 5), new flash.geom.Point(0, 0));
_local3.attachBitmap(_local3.bmp, 1);
_local3._x = random(20) - 4;
_local3._y = -4 + random(12);
_local3.onEnterFrame = function () {
this._alpha = this._alpha - 5;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
this.count = 0;
}
this.bmp_._y = this.bmp_._y + (this.rise * 0.1);
if (((this.rise == -1) && (this.bmp_._y <= -6)) || ((this.rise == 1) && (this.bmp_._y >= -4))) {
this.rise = this.rise * -1;
}
this._alpha = ((int(GameData.plotVars.CHALICES[0][_root.area.toUpperCase().split("_")[1]]) >= 100) ? 100 : 20);
};
_local3.Talk = function () {
_root.TALKING = this;
_root.Speak(this.stats, this);
};
_local3.remove = function () {
_root.FREESPACE[this.stats.y][this.stats.x] = true;
this.removeMovieClip();
};
return(_local3);
}
function DrawDoor(door) {
var _local9 = (N2 = (altName ? (altName) : (door.name)));
var _local6 = 1;
while (cont[_local9] != null) {
_local6++;
_local9 = N2 + _local6;
}
var _local4 = ((1000 * (int(door.y) + 50)) + int(door.x)) + 300;
while (cont.getInstanceAtDepth(_local4) != null) {
_local4++;
}
var _local3 = cont.createEmptyMovieClip(_local9, _local4);
TRANSITIONS[(("T_" + door.x) + "_") + door.y] = _local3;
var _local8 = door.model.substr(0, 3) == "BIG";
_local3._x = door.x * TILESIZE;
_local3._y = (door.y - (_local8 ? 1 : 0)) * TILESIZE;
_local3.DOOR = door;
if (door.model == "area_transition") {
if (door.ARROW) {
_local3.createEmptyMovieClip("img", 100);
_local3.bmp = new flash.display.BitmapData(16, 16, true);
_local3.bmp.copyPixels(flash.display.BitmapData.loadBitmap("TransArrow"), new flash.geom.Rectangle({N:0, E:1, S:2, W:3}[door.ARROW] * 16, 0, 16, 16), new flash.geom.Point(0, 0));
_local3.attachBitmap(_local3.bmp, 100);
_local3._width = _local3._width * 3;
_local3._height = _local3._height * 3;
_local3.pulse = -1;
_local3._alpha = 50;
_local3.onEnterFrame = function () {
this._alpha = this._alpha + (this.pulse * 5);
if (((this.pulse == -1) && (this._alpha <= 0)) || ((this.pulse == 1) && (this._alpha >= 75))) {
this.pulse = this.pulse * -1;
}
};
}
return(undefined);
}
_local3.bmp = new flash.display.BitmapData(16, (_local8 ? 32 : 16), true);
_local3.doortype = int(door.model.substr((_local8 ? 7 : 4)));
_local3.bmp.copyPixels(_root[(_local8 ? "BIG" : "") + "DOORSHEET"], new flash.geom.Rectangle(0, (_local8 ? 32 : 16) * _local3.doortype, 16, (_local8 ? 32 : 16)), new flash.geom.Point(0, 0));
_local3.attachBitmap(_local3.bmp, 100);
_local3._width = _local3._width * 3;
_local3._height = _local3._height * 3;
_local3.Open = function () {
if (this.DOOR.conv) {
_root.Speak(this.DOOR, this, this.DOOR.conv);
if (!this.DOOR.keepTalking) {
this.DOOR.conv = null;
}
return(undefined);
}
if (this.DOOR.lock) {
if (HASPLOTITEM(this.DOOR.key)) {
_root.playSFX("unlock");
_root.ANNOUNCEMENT.Announce("usekey");
_root.ANNOUNCEMENT.TEXT = this.DOOR.key;
_root.AddItemImg(this.DOOR.key, _root.ANNOUNCEMENT.ICON, 48, -24);
} else {
var _local3 = [];
switch (this.DOOR.lock) {
case "sealed" :
_local3 = [["", "The door has shut behind you and will not open!"]];
break;
case "tight" :
_local3 = [["", "It's locked tight. No amount of shouting at it or insulting its mother will cause it to open."]];
break;
case "lock" :
_local3 = [["", "It's locked."]];
break;
case "rust" :
_local3 = [["", "It's rusted shut and can't be opened."]];
break;
case "magic" :
_local3 = [["", "This door is sealed with powerful magic. You can't open it, or bash it down."]];
break;
case "yes" :
_local3 = [["", "Wait... this isn't a door. It's actually a wall, painted to look like a door! How misleading!"]];
break;
case "key" :
_local3 = [["", "It's locked tight, but there's a keyhole. With the right key, you'd be able to get through."]];
}
_root.Speak(this.DOOR, null, _local3);
return(undefined);
}
}
_root.lastDir = this.dir;
_root.AreaTrans(this.DOOR.dest);
this.C = 0;
this.F = 0;
this.onEnterFrame = function () {
this.C++;
if (this.C >= 2) {
this.C = 0;
this.F++;
}
var _local3 = this.DOOR.model.substr(0, 3) == "BIG";
this.bmp.copyPixels(_root[(_local3 ? "BIG" : "") + "DOORSHEET"], new flash.geom.Rectangle(16 * this.F, (_local3 ? 32 : 16) * this.doortype, 16, (_local3 ? 32 : 16)), new flash.geom.Point(0, 0));
if (this.F >= 2) {
this.onEnterFrame = null;
}
};
};
FREESPACE[door.y][door.x] = false;
}
function ScrollMap(X, Y) {
if (__AreaEXTRA.noscroll) {
return(undefined);
}
cont._x = cont._x + X;
cont._y = cont._y + Y;
map_scrolled[0] = map_scrolled[0] + X;
map_scrolled[1] = map_scrolled[1] + Y;
if (map_scrolled[0] >= TILESIZE) {
var _local1 = (-Y_OFFSET) - PADDING[1];
while (_local1 < (SHOW_H - Y_OFFSET)) {
var _local5 = cont[(("T_" + ((SHOW_W - 1) - X_OFFSET)) + "_") + _local1];
var _local4 = ((-PADDING[0]) - 1) - X_OFFSET;
_local5._x = _local4 * TILESIZE;
_local5._name = (("T_" + _local4) + "_") + _local1;
DrawTile(_local5, map[_local1][_local4]);
if (((!__AreaEXTRA.clearmap) && (!__AreaEXTRA.NO_MAP)) && (GameData.Maps[area][_local1][_local4] != null)) {
GameData.Maps[area][_local1][_local4] = true;
}
_local1++;
}
map_scrolled[0] = map_scrolled[0] - TILESIZE;
X_OFFSET++;
} else if (map_scrolled[0] <= (-TILESIZE)) {
var _local1 = (-Y_OFFSET) - PADDING[1];
while (_local1 < (SHOW_H - Y_OFFSET)) {
var _local5 = cont[(("T_" + ((-PADDING[0]) - X_OFFSET)) + "_") + _local1];
var _local4 = SHOW_W - X_OFFSET;
_local5._x = _local4 * TILESIZE;
_local5._name = (("T_" + _local4) + "_") + _local1;
DrawTile(_local5, map[_local1][_local4]);
if (((!__AreaEXTRA.clearmap) && (!__AreaEXTRA.NO_MAP)) && (GameData.Maps[area][_local1][_local4] != null)) {
GameData.Maps[area][_local1][_local4] = true;
}
_local1++;
}
map_scrolled[0] = map_scrolled[0] + TILESIZE;
X_OFFSET--;
}
if (map_scrolled[1] >= TILESIZE) {
var _local2 = (-X_OFFSET) - PADDING[0];
while (_local2 < (SHOW_W - X_OFFSET)) {
var _local5 = cont[(("T_" + _local2) + "_") + ((SHOW_H - 1) - Y_OFFSET)];
var _local3 = ((-PADDING[1]) - 1) - Y_OFFSET;
_local5._y = _local3 * TILESIZE;
_local5._name = (("T_" + _local2) + "_") + _local3;
DrawTile(_local5, map[_local3][_local2]);
if (((!__AreaEXTRA.clearmap) && (!__AreaEXTRA.NO_MAP)) && (GameData.Maps[area][_local3][_local2] != null)) {
GameData.Maps[area][_local3][_local2] = true;
}
_local2++;
}
map_scrolled[1] = map_scrolled[1] - TILESIZE;
Y_OFFSET++;
} else if (map_scrolled[1] <= (-TILESIZE)) {
var _local2 = (-X_OFFSET) - PADDING[0];
while (_local2 < (SHOW_W - X_OFFSET)) {
var _local5 = cont[(("T_" + _local2) + "_") + ((-PADDING[1]) - Y_OFFSET)];
var _local3 = SHOW_H - Y_OFFSET;
_local5._y = _local3 * TILESIZE;
_local5._name = (("T_" + _local2) + "_") + _local3;
DrawTile(_local5, map[_local3][_local2]);
if (((!__AreaEXTRA.clearmap) && (!__AreaEXTRA.NO_MAP)) && (GameData.Maps[area][_local3][_local2] != null)) {
GameData.Maps[area][_local3][_local2] = true;
}
_local2++;
}
map_scrolled[1] = map_scrolled[1] + TILESIZE;
Y_OFFSET--;
}
if (Snowscape != null) {
for (var _local8 in Snowscape) {
Snowscape[_local8]._x = Snowscape[_local8]._x + (X * 0.8);
Snowscape[_local8]._y = Snowscape[_local8]._y + (Y * 0.8);
}
}
}
function DrawPC(x, y) {
var _local1 = PCstats[0];
if (lastDir) {
_local1.dir = lastDir;
}
_local1.x = x;
_local1.y = y;
DrawSprite(_local1, "PC");
FREESPACE[y][x] = 0;
}
function DrawParty() {
if (__AreaEXTRA.DREAM && (PCstats[0].wakeup == null)) {
PCstats[0].wakeup = PCstats[0].model;
PCstats[0].model = PCstats[0].model + "_dream";
} else if ((!__AreaEXTRA.DREAM) && (PCstats[0].wakeup != null)) {
PCstats[0].model = PCstats[0].wakeup;
PCstats[0].wakeup = null;
}
var _local2 = 1;
while (_local2 <= 3) {
_root.cont["PC" + (_local2 + 1)].removeMovieClip();
if (PCstats[_local2] == null) {
} else {
var _local3 = PCstats[_local2];
_local3.x = cont.PC._x / TILESIZE;
_local3.y = cont.PC._y / TILESIZE;
_local3.ws = 30 + random(31);
_local3.conv = [["susp", "Hello! You shouldn't be able to talk to me at all, so this is a bug!"]];
var _local4 = "PC" + (_local2 + 1);
DrawSprite(_local3, _local4);
cont[_local4].swapDepths(cont.PC);
}
_local2++;
}
cont.PC.history = [];
}
function AreaTrans(trans, duration) {
DESTINATION = trans;
areaDrawn = false;
fader.onMaxFade = function () {
if (_root.OnMaxFade) {
_root.OnMaxFade();
_root.OnMaxFade = null;
}
_root.lastArea = _root.area;
_root.gotoAndStop(_root.DESTINATION[0]);
};
FadeIn((duration ? (duration) : 10));
}
function FadeIn(speed) {
fader._alpha = 0;
fader._visible = true;
fader.S = speed;
fader.onEnterFrame = function () {
if (this._alpha >= 100) {
if (this.onMaxFade != null) {
this.onMaxFade();
this.onMaxFade = null;
}
if (this.NO_TRANS) {
this.NO_TRANS = null;
} else {
_root.FadeOut(this.S);
}
} else {
this._alpha = this._alpha + (100 / this.S);
}
if (this.quieten) {
_root.MUSIC.setVolume(_root.MUSIC.getVolume() - (100 / this.S));
if (_root.MUSIC.getVolume() < 0) {
_root.MUSIC.setVolume(0);
}
}
};
}
function FadeOut(speed) {
fader._alpha = 100;
fader._visible = true;
fader.S = speed;
fader.onEnterFrame = function () {
this._alpha = this._alpha - (100 / this.S);
if (this._alpha <= 0) {
if (this.onMinFade != null) {
this.onMinFade();
this.onMinFade = null;
}
this.onEnterFrame = null;
this._visible = false;
}
};
}
function BattleFadeIn() {
fader._alpha = 0;
fader._visible = true;
fader.bCount = 0;
fader.S = 30;
fader.onEnterFrame = function () {
this.bCount++;
this._alpha = ((this.bCount >= 27) ? 100 : ((((this.bCount % 3) == 0) ? 100 : ((((this.bCount % 2) == 0) ? 50 : 0)))));
if (this.bCount >= 30) {
if (this.onMaxFade != null) {
this.onMaxFade();
this.onMaxFade = null;
}
_root.FadeOut(this.S);
}
};
}
function WarpTrans(trans) {
_CURSOR._visible = false;
warp_snapshot = new flash.display.BitmapData(STAGEW, STAGEH, true);
warp_snapshot.draw(_root);
_CURSOR._visible = true;
_root.createEmptyMovieClip("WARP_SNAP", 10071007);
WARP_SNAP.createEmptyMovieClip("image", 100);
WARP_SNAP.image.attachBitmap(warp_snapshot, 100);
WARP_SNAP.blendMode = "layer";
WARP_SNAP.accel = 1;
WARP_SNAP.attachMovie("PlainCircle", "hole", 200);
WARP_SNAP.hole.blendMode = "erase";
WARP_SNAP.hole._width = (WARP_SNAP.hole._height = 2);
WARP_SNAP.hole._x = STAGEW / 2;
WARP_SNAP.hole._y = STAGEH / 2;
WARP_SNAP.attachMovie("WarpGate", "gate", 201);
WARP_SNAP.gate.gotoAndStop(1);
WARP_SNAP.gate._width = (WARP_SNAP.gate._height = WARP_SNAP.hole._width);
WARP_SNAP.gate._x = STAGEW / 2;
WARP_SNAP.gate._y = STAGEH / 2;
WARP_SNAP.gate.gotoAndStop(2);
WARP_SNAP.onEnterFrame = function () {
this.hole._height = this.hole._height + this.accel;
this.hole._width = this.hole._width + this.accel;
this.accel = this.accel + 1;
this.gate.gotoAndStop(1);
this.gate._width = (this.gate._height = this.hole._width);
this.gate.gotoAndStop(2);
if (this.hole._height >= (STAGEW * 1.5)) {
this.removeMovieClip();
}
};
areaDrawn = false;
lastArea = area;
lastDir = cont.PC.DIR;
DESTINATION = trans;
_root.gotoAndStop(trans[0]);
}
function GenericExternalAmbience(Default) {
return(((GameData.plotVars.SUNSET == "NIGHT") ? ({ra:25, rb:0, ga:40, gb:0, ba:80, bb:0, aa:100, ab:0}) : ((GameData.plotVars.SUNSET ? ({ra:100, rb:0, ga:80, gb:0, ba:70, bb:0, aa:100, ab:0}) : ((Default ? (Default) : null))))));
}
function Snowfall(src) {
if (!_root.CheckOption("afx")) {
src.removeMovieClip();
return(undefined);
}
var _local4 = 0;
while (_local4 < 20) {
var _local3 = src.attachMovie("snowParticle", "SNOW" + _local4, 100 + _local4);
_local3.gotoAndStop(__AreaEXTRA.SNOW);
_local3.Refresh = function () {
this._x = (Math.random() * (STAGEW + 20)) - 10;
this._y = -10;
this.k = -3.14159265358979 + (Math.random() * Math.PI);
var _local2 = (Math.random() * 3) + 2;
this._width = (this._height = _local2 * 3);
this._alpha = 20 + (10 * (_local2 + 1));
this.fall = 0.5 + (Math.random() * 1);
this.rad = 0;
};
_local3.Refresh();
_local3.onEnterFrame = function () {
if (((_root.menu._visible || (_root.SavePopup._visible)) || (_root.battling)) && (this._parent._parent._name != "PARTICLE_CONT")) {
return(undefined);
}
this.rad = this.rad + ((this.k / 180) * Math.PI);
this._x = this._x - Math.cos(this.rad);
this._y = this._y + this.fall;
if (this._x > (STAGEW + 10)) {
this._x = this._x - (STAGEW + 20);
} else if (this._x < -10) {
this._x = this._x + (STAGEW + 20);
}
if (this._y > (STAGEH + 10)) {
this.Refresh();
} else if (this._y < -20) {
this._y = this._y + (STAGEH + 30);
}
};
_local3._y = Math.random() * STAGEH;
_local4++;
}
}
function DreamscapeSettings(DS, hue) {
if (tileset == "lifewood_dream") {
return(undefined);
}
DS.attachBitmap(new flash.display.BitmapData(STAGEW, STAGEH, false, ((!(hue === true)) ? (hue) : 4849778)), 0);
DS.d = 0;
DS.sheet = flash.display.BitmapData.loadBitmap("dreamshapes");
DS.capacity = 0;
DS.f = 0;
DS.CreateImage = function (force) {
if (!_root.CheckOption("afx")) {
return(undefined);
}
if (this.capacity > 28) {
return(undefined);
}
this.d++;
if (this.d > 9999) {
this.d = 1;
}
var _local3 = this.createEmptyMovieClip("s" + this.d, this.d);
var _local4 = 0;
_local3.bmp = new flash.display.BitmapData(64, 64, true);
_local3.bmp.copyPixels(this.sheet, new flash.geom.Rectangle(random(8) * 64, 0, 64, 64), new flash.geom.Point(0, 0));
_local3.createEmptyMovieClip("box", 0);
_local3.box.attachBitmap(_local3.bmp, 0);
_local3.fade = [1, false];
_local4 = 64 * ((Math.random() * 4) + 2);
_local3._width = (_local3._height = _local4);
_local3.box._x = (_local3.box._y = -32);
_local3.tint = new Color(_local3.box);
_local3._alpha = 0;
_local3.tint.setTransform({ra:int(Math.random() * 100), rb:0, ga:int(Math.random() * 100), gb:0, ba:int(Math.random() * 100), bb:0, aa:100, bb:0});
_local3.mod = [(Math.random() * 4) - 2, (Math.random() * 4) - 2, -1 + (Math.random() * 2)];
_local3._x = Math.random() * STAGEW;
_local3._y = Math.random() * STAGEH;
_local3.onEnterFrame = function () {
if (_root.menu._visible || (_root.SavePopup._visible)) {
return(undefined);
}
this._x = this._x + this.mod[0];
this._y = this._y + this.mod[1];
this._rotation = this._rotation + this.mod[2];
this._alpha = this._alpha + (Math.random() * this.fade[0]);
if ((!this.fade[1]) && (this._alpha > 20)) {
this.fade = [-1, true];
} else if (this.fade[1] && (this._alpha < 1)) {
this._parent.capacity--;
this.removeMovieClip();
}
if ((this._x < ((-this._width) - 10)) || (this._x > ((STAGEW + this._width) + 10))) {
this.removeMovieClip();
} else if ((this._y < ((-this._height) - 10)) || (this._y > ((STAGEH + this._height) + 10))) {
this.removeMovieClip();
}
};
this.capacity++;
_local3._rotation = Math.random() * 360;
};
if (!_root.CheckOption("afx")) {
return(undefined);
}
var _local3 = 0;
while (_local3 < 16) {
DS.CreateImage(true);
_local3++;
}
DS.onEnterFrame = function () {
this.f++;
if (this.f > 10) {
this.CreateImage();
this.f = 0;
}
};
}
function SetupMiasma(m) {
if (!_root.CheckOption("afx")) {
m.removeMovieClip();
return(undefined);
}
var _local3 = 0;
while (_local3 < 2) {
var _local4 = m.createEmptyMovieClip("m" + _local3, _local3);
_local4._x = STAGEW * _local3;
_local4.attachBitmap(flash.display.BitmapData.loadBitmap("miasma"), 1);
_local3++;
}
m.onEnterFrame = function () {
var _local2 = 0;
while (_local2 < 2) {
this["m" + _local2]._x = this["m" + _local2]._x - 1;
if (this["m" + _local2]._x < (STAGEW * (_local2 - 1))) {
this["m" + _local2]._x = this["m" + _local2]._x + STAGEW;
}
_local2++;
}
};
}
function FieldParticleEffect(pfx, p) {
var _local2 = p.getDepth() + 6001;
while (_root.cont.getInstanceAtDepth(_local2) != null) {
_local2++;
}
_root.ParticleEffect(pfx, p._x + (p._width / 2), (p._y + (p._height / 2)) - 12, null, _root.cont, _local2);
}
function EnterDreamrealm() {
}
function ExitDreamrealm() {
}
function CanEnterDreamrealm() {
return(HASPLOTITEM("Talisman of ONEIROS"));
}
function DeadTempleCheck() {
if (IsTempleDead()) {
tileset = tileset + "_dead";
musicTrack = "DeadTemple";
btlChance = 0;
}
}
function IsTempleDead(elem) {
var _local2 = (elem ? (elem) : (tileset.split("_")[1]));
if (_local2 == "DARK") {
return(Boolean(GameData.plotVars.DONE_CH3_INTRO));
}
var _local1 = area.split("_")[1];
return(HASPLOTITEM((_local1.substr(0, 1) + _local1.substr(1).toLowerCase()) + " Crystal of Belfan"));
}
function Speak(stats, speaker, dialogue, showLog) {
conv.gotoAndStop(1);
conv._visible = true;
conv.words = "";
conv.NAME = ((stats.name == undefined) ? "" : (stats.name));
conv.elemglyph._visible = true;
conv.elemglyph.gotoAndStop(stats.elem);
conv.stats = stats;
conv.GotItemBox._alpha = 0;
conv.GotItemBox.onEnterFrame = null;
conv.XNEXT._visible = false;
conv.XNEXT.onEnterFrame = function () {
this._visible = this._parent.toShow.length <= 0;
};
_quality = "MEDIUM";
conv._alpha = 0;
conv.blendMode = "layer";
conv.MoneyAmount.MONEY = NumberFormat(GameData.money);
conv.MoneyAmount._visible = false;
conv.avatar.mystats = stats;
if (dialogue == null) {
dialogue = stats.conv;
}
conv.attachMovie(((dialogue[0] != null) ? "c__blank" : (dialogue)), "theConv", 444);
if (dialogue[0] != null) {
_root.conv.theConv.talk = [].concat(dialogue);
}
conv.SPEAKING = _root.cont[(conv.firstSpeaker = speaker._name)];
plotVars.THS.conversations++;
conv.onEnterFrame = function () {
if (!this.AltOEF()) {
if (this._alpha <= 80) {
this._alpha = this._alpha + 20;
} else {
this._alpha = 100;
}
}
var _local2 = 3;
if (this.toShow.length > 0) {
this.words = this.words + conv.FilteredText(this.toShow.substr(0, _local2));
this.toShow = this.toShow.substr(_local2);
}
};
conv.ShowChatLog();
conv.LOG._visible = false;
}
function GetItemInfo(itemname) {
var _local1 = 0;
while (_local1 < ItemList.length) {
if (ItemList[_local1].name == itemname) {
return(ItemList[_local1]);
}
_local1++;
}
return(null);
}
function GetItemTypeList(itemtype, wpnType, includeNone) {
if (wpnType == "NONE") {
return([{name:"none", atk:0, def:0}]);
}
var _local3 = [];
var _local1 = 0;
while (_local1 < ItemList.length) {
if ((ItemList[_local1].type == itemtype) && (((wpnType == undefined) || (wpnType == null)) || (ItemList[_local1].wpnType == wpnType))) {
_local3.push(ItemList[_local1]);
}
_local1++;
}
if (includeNone == true) {
_local3.push({name:"none", atk:0, def:0});
}
return(_local3);
}
function AddItemImg(item, mc, size, offset) {
if ((item == null) || (item == "none")) {
return(undefined);
}
var _local2 = _root.GetItemInfo(item);
var _local4 = new flash.display.BitmapData(16, 16, true);
if (item == "Dreamstone") {
_local4.copyPixels(flash.display.BitmapData.loadBitmap("SoulOrb"), new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
} else {
_local4.copyPixels(_root["ITEMSHEET_" + sheetIDs[_local2.type][0]], new flash.geom.Rectangle(_local2.ID * 16, ((_local2.type == "wepn") ? (wpnIDs[_local2.wpnType]) : (((_local2.type == "armr") ? ({Ar0:1, Ar1:2, Ar2:3, Ar3:4, ArR:5, ArM:6, ArS:7}[_local2.amrType]) : (sheetIDs[_local2.type][1])))) * 16, 16, 16), new flash.geom.Point(0, 0));
}
mc.img.removeMovieClip();
mc.createEmptyMovieClip("img", 10);
mc.img.attachBitmap(_local4, 100);
mc.img._width = (mc.img._height = size);
mc.img._x = (mc.img._y = offset);
}
function DragItem(item, amount, silent) {
if ((item == null) || (item == "none")) {
if (!silent) {
playSFX("menuBlip3");
}
HELD = null;
_CURSOR.holding.img.removeMovieClip();
if (_root.MENU_IN == null) {
_root.Menu_UnhideOptions();
}
_root.CANT_CLOSE_MENU = false;
return(undefined);
}
if (!silent) {
playSFX("menuBlip4");
}
HELD = [item, amount];
var _local4 = AddItemImg(item, _CURSOR.holding, 48, -8);
_root.Menu_HideOptions();
_root.CANT_CLOSE_MENU = true;
}
function GiveItemTo(item, amount, PC) {
var _local6 = GetItemInfo(item);
if (STACKABLE_TYPES[_local6.type]) {
var _local2 = 0;
while (_local2 < INVENTORY_LENGTH) {
if (PC.inventory[_local2][0] == item) {
var _local4 = 99 - PC.inventory[_local2][1];
if (amount > _local4) {
amount = amount - _local4;
PC.inventory[_local2][1] = 99;
} else {
PC.inventory[_local2][1] = PC.inventory[_local2][1] + amount;
return(true);
}
}
_local2++;
}
}
var _local2 = 0;
while (_local2 < INVENTORY_LENGTH) {
if ((!PC.inventory[_local2][1]) || (!PC.inventory[_local2][0])) {
PC.inventory[_local2] = [item, ((amount == null) ? 1 : (amount))];
return(true);
}
_local2++;
}
return(false);
}
function FullInventory(stats) {
var _local3 = true;
var _local1 = 0;
while (_local1 < stats.inventory.length) {
if (stats.inventory[_local1] == null) {
_local3 = false;
break;
}
_local1++;
}
return(_local3);
}
function HasItem(item, specific) {
total = 0;
var _local2 = 0;
while (_local2 < 4) {
if ((specific != null) && (_local2 != specific)) {
} else if (PCstats[_local2] == null) {
} else {
var _local1 = 0;
while (_local1 < INVENTORY_LENGTH) {
if (PCstats[_local2].inventory[_local1][0] == item) {
total = total + (PCstats[_local2].inventory[_local1][1] ? (PCstats[_local2].inventory[_local1][1]) : 1);
}
_local1++;
}
}
_local2++;
}
return(total);
}
function TakeItem(item, amount) {
var _local2 = 0;
while (_local2 < 4) {
if (PCstats[_local2] == null) {
} else {
var _local1 = 0;
while (_local1 < INVENTORY_LENGTH) {
if (PCstats[_local2].inventory[_local1][0] == item) {
if (PCstats[_local2].inventory[_local1][1] > amount) {
PCstats[_local2].inventory[_local1][1] = PCstats[_local2].inventory[_local1][1] - amount;
amount = 0;
return(undefined);
}
if (PCstats[_local2].inventory[_local1][1] <= amount) {
amount = amount - PCstats[_local2].inventory[_local1][1];
PCstats[_local2].inventory[_local1] = 0;
if (amount == 0) {
return(undefined);
}
}
}
_local1++;
}
}
_local2++;
}
return(total);
}
function CanEquip(stats, item) {
var _local2 = classStats[stats.model];
var _local1 = GetItemInfo(item);
if (!{wepn:1, armr:1, shld:1, accs:1, helm:1, gems:1, invn:1, song:1}[_local1.type]) {
return(false);
}
if (((_local1.type == "wepn") && (_local2.wpnType != _local1.wpnType)) || ({armr:1, shld:1, helm:1}[_local1.type] && (!_local2.amrTypes[_local1.amrType]))) {
return(false);
}
if ((_local1.only_user != null) && (_local1.only_user != stats.name)) {
return(false);
}
return({wepn:"weapon", armr:"armour", shld:"shield", accs:["accessory", "accessory2"], helm:"helmet", gems:["accessory", "accessory2"], invn:((stats.model == "inventor") ? (["weapon", "shield"]) : null), song:((stats.model == "elwyen") ? "shield" : null)}[_local1.type]);
}
function SetupCursor() {
_CURSOR.removeMovieClip();
_root.attachMovie("_CURSOR", "_CURSOR", 7000000);
_CURSOR.startDrag(true);
_CURSOR.TOOLTIP._visible = false;
}
function BlurredSnapshot(altParent) {
var _local3 = conv._visible;
conv._visible = false;
_CURSOR._visible = false;
snapshot = new flash.display.BitmapData(STAGEW, STAGEH, true);
snapshot.draw(_root);
cont._visible = false;
_CURSOR._visible = true;
conv._visible = _local3;
var _local2 = (altParent ? (altParent) : _root);
_local2.SNAP.removeMovieClip();
_local2.createEmptyMovieClip("SNAP", 1007);
_local2.SNAP.attachBitmap(snapshot, 100);
_local2.SNAP.filters = [new flash.filters.BlurFilter(16, 16)];
}
function ClearSnapshot() {
if (_root.area != "end_chapter") {
cont._visible = true;
}
SNAP.removeMovieClip();
}
function ShowMenu() {
BlurredSnapshot();
menu.gotoAndStop(1);
menu._visible = true;
playSFX("menuOpen");
_quality = "HIGH";
options = MENU_OPTIONS;
var _local4 = 1;
while (_local4 <= 11) {
var _local3 = menu["o" + _local4];
if (_local4 > MENU_OPTIONS.length) {
_local3._visible = false;
} else {
_local3.label = options[_local4 - 1];
_local3._y = 60 + ((_local4 - 1) * ((THIS_CHAPTER < 3) ? 40 : 36));
_local3._x = _local3._width + STAGEW;
_local3.delay = _local4;
_local3.onEnterFrame = function () {
if (this.delay > 0) {
this.delay--;
return(undefined);
}
this._x = this._x - ((this._x - STAGEW) / 5);
this._x = int(this._x);
if (this._x == STAGEW) {
this.onEnterFrame = null;
}
};
_local3.gotoAndStop(((_local4 == MENU_SEL) ? 2 : 1));
_local3.X_ICON._visible = Boolean(MENU_XVIS[_local4 - 1]);
_local3._visible = !SHOPPING_MODE;
}
_local4++;
}
menu.bottom._y = STAGEH + menu.bottom._height;
menu.bottom.onEnterFrame = function () {
this._y = this._y - ((this._y - STAGEH) / 5);
this._y = int(this._y);
if (this._y == STAGEH) {
this.onEnterFrame = null;
}
};
menu.bottom.areaname = areaname;
menu.mainpanel._x = -menu.mainpanel._width;
menu.mainpanel.gotoAndStop("none");
menu.mainpanel.gotoAndStop(options[MENU_SEL - 1]);
conv.em = "norm";
_root["Menu_Show" + options[MENU_SEL - 1]]();
menu.mainpanel.onEnterFrame = function () {
this._x = this._x + ((-this._x) / 5);
this._x = int(this._x);
if (this._x == 0) {
this.onEnterFrame = null;
}
};
menu.onEnterFrame = function () {
this._alpha = this._alpha + 10;
if (this._alpha >= 100) {
this._alpha = 100;
this.onEnterFrame = null;
this.CLOSING = false;
}
};
menu.ShopPanel.gotoAndStop((SHOPPING_MODE ? (((CURRENT_SHOP == "WORKBENCH") ? "workbench" : 1)) : "empty"));
if (menu.ShopPanel.orig_x == null) {
menu.ShopPanel.orig_x = menu.ShopPanel._x;
}
menu.ShopPanel._x = STAGEW;
menu.ShopPanel.onEnterFrame = function () {
this._x = this._x - ((this._x - this.orig_x) / 5);
this._x = Math.floor(this._x);
if (this._x == this.orig_x) {
this.onEnterFrame = null;
}
};
}
function HideMenu() {
if (CURRENT_SHOP == "WORKBENCH") {
for (var _local3 in menu.ShopPanel.Components) {
if (menu.ShopPanel.Components[_local3].SLOT.ITEM != null) {
_root.playSFX("error");
return(undefined);
}
}
if (menu.ShopPanel.result_slot.ITEM != null) {
_root.playSFX("error");
return(undefined);
}
}
if (CANT_CLOSE_MENU) {
return(undefined);
}
Menu_UnhideOptions();
MENU_IN = null;
_root._CURSOR.TOOLTIP._visible = false;
SHOPPING_MODE = false;
conv.em = "norm";
menu.CLOSING = true;
menu.onEnterFrame = function () {
this._alpha = this._alpha - 10;
if (this._alpha <= 0) {
this._alpha = 0;
_root.ClearSnapshot();
_root.menu._visible = false;
this.onEnterFrame = null;
this.gotoAndStop(1);
if (_root.cont._visible) {
_quality = "LOW";
}
if (_root.onCloseMenu) {
_root.onCloseMenu();
_root.onCloseMenu = null;
}
}
};
}
function Menu_ArrowUp() {
if (MENU_IN == "SKILLS") {
if (menu.mainpanel.UseSkillOnBox._visible) {
menu.mainpanel.UseSkillOnBox.ChangeSel(0, -1);
return(undefined);
}
if (menu.VISIBLE_SKILLS == 0) {
return(undefined);
}
if (menu.mainpanel.A_List["A" + MENU_SEL_SKILL]._currentframe != 4) {
menu.mainpanel.A_List["A" + MENU_SEL_SKILL].gotoAndStop(1);
}
do {
MENU_SEL_SKILL--;
if (MENU_SEL_SKILL < 0) {
MENU_SEL_SKILL = menu.SHOWN_SKILLS - 1;
menu.mainpanel.currTop = menu.mainpanel.scrollbit.numSkills - 16;
}
} while (menu.mainpanel.A_List["A" + MENU_SEL_SKILL] == null);
if (menu.mainpanel.scrollbit._visible) {
if (MENU_SEL_SKILL < menu.mainpanel.currTop) {
menu.mainpanel.currTop--;
}
menu.mainpanel.scrollbit._y = menu.mainpanel.scrollbit.orig_y + ((menu.mainpanel.scrollbit.maxheight - menu.mainpanel.scrollbit._height) * (menu.mainpanel.currTop / (menu.mainpanel.scrollbit.numSkills - 16)));
menu.mainpanel.A_List._y = menu.mainpanel.A_List.orig_y - (25 * menu.mainpanel.currTop);
}
Menu_RolloverSkill();
playSFX("menuBlip1");
return(undefined);
}
if (((MENU_IN == "INVENTORY") || (SHOPPING_MODE)) || (_root.HELD != null)) {
do {
MENU_INV_SEL--;
if (MENU_INV_SEL < 0) {
MENU_INV_SEL = 3;
}
} while (!menu.mainpanel["P" + (MENU_INV_SEL + 1)]._visible);
Menu_ShowInventory();
Menu_RolloverItem(menu.ITEM_ROLLEDOVER[0], menu.ITEM_ROLLEDOVER[1], menu.ITEM_ROLLEDOVER[2]);
playSFX("menuSwish");
return(undefined);
}
if (MENU_IN == "QUESTS") {
menu.mainpanel.QList["Q" + menu.QUEST_SEL].gotoAndStop(1);
menu.QUEST_SEL--;
if (menu.QUEST_SEL < 0) {
menu.QUEST_SEL = 0;
}
Menu_RolloverQuest();
playSFX("menuBlip1");
return(undefined);
}
if (MENU_IN == "ENCYCLOPAEDIA") {
Menu_MoveEnCursor(-1);
return(undefined);
}
if (MENU_IN == "DREAMSTONES") {
Menu_MoveEnCursor_DS(0, -1);
return(undefined);
}
if (menu.OPTIONS_HIDDEN) {
return(undefined);
}
menu["o" + MENU_SEL].gotoAndStop(1);
MENU_SEL--;
if (MENU_SEL < 1) {
MENU_SEL = MENU_OPTIONS.length;
}
menu["o" + MENU_SEL].gotoAndStop(2);
menu["o" + MENU_SEL].X_ICON._visible = Boolean(MENU_XVIS[MENU_SEL - 1]);
playSFX("menuBlip1");
menu.mainpanel.gotoAndStop("none");
menu.mainpanel.gotoAndStop(options[MENU_SEL - 1]);
conv.em = "norm";
_root["Menu_Show" + options[MENU_SEL - 1]]();
MENU_SHOWING = MENU_SEL;
_root._CURSOR.TOOLTIP._visible = false;
}
function Menu_ArrowDown() {
if (MENU_IN == "SKILLS") {
if (menu.mainpanel.UseSkillOnBox._visible) {
menu.mainpanel.UseSkillOnBox.ChangeSel(0, 1);
return(undefined);
}
if (menu.VISIBLE_SKILLS == 0) {
return(undefined);
}
if (menu.mainpanel.A_List["A" + MENU_SEL_SKILL]._currentframe != 4) {
menu.mainpanel.A_List["A" + MENU_SEL_SKILL].gotoAndStop(1);
}
do {
MENU_SEL_SKILL++;
if (MENU_SEL_SKILL >= menu.SHOWN_SKILLS) {
MENU_SEL_SKILL = 0;
menu.mainpanel.A_List._y = menu.mainpanel.A_List.orig_y;
menu.mainpanel.scrollbit._y = menu.mainpanel.scrollbit.orig_y;
menu.mainpanel.currTop = 0;
}
} while (menu.mainpanel.A_List["A" + MENU_SEL_SKILL] == null);
if (menu.mainpanel.scrollbit._visible) {
if (MENU_SEL_SKILL >= (menu.mainpanel.currTop + 16)) {
menu.mainpanel.currTop = ((MENU_SEL_SKILL < 16) ? 0 : (MENU_SEL_SKILL - 15));
menu.mainpanel.scrollbit._y = menu.mainpanel.scrollbit.orig_y + ((menu.mainpanel.scrollbit.maxheight - menu.mainpanel.scrollbit._height) * (menu.mainpanel.currTop / (menu.mainpanel.scrollbit.numSkills - 16)));
}
menu.mainpanel.A_List._y = menu.mainpanel.A_List.orig_y - (25 * menu.mainpanel.currTop);
}
Menu_RolloverSkill();
playSFX("menuBlip1");
} else {
if (((MENU_IN == "INVENTORY") || (SHOPPING_MODE)) || (_root.HELD != null)) {
do {
MENU_INV_SEL++;
if (MENU_INV_SEL >= 4) {
MENU_INV_SEL = 0;
}
} while (!menu.mainpanel["P" + (MENU_INV_SEL + 1)]._visible);
Menu_ShowInventory();
Menu_RolloverItem(menu.ITEM_ROLLEDOVER[0], menu.ITEM_ROLLEDOVER[1], menu.ITEM_ROLLEDOVER[2]);
playSFX("menuSwish");
return(undefined);
}
if (MENU_IN == "QUESTS") {
menu.mainpanel.QList["Q" + menu.QUEST_SEL].gotoAndStop(1);
menu.QUEST_SEL++;
if (menu.QUEST_SEL >= menu.NUM_QUESTS) {
menu.QUEST_SEL = menu.NUM_QUESTS - 1;
}
Menu_RolloverQuest();
playSFX("menuBlip1");
} else {
if (MENU_IN == "ENCYCLOPAEDIA") {
Menu_MoveEnCursor(1);
return(undefined);
}
if (MENU_IN == "DREAMSTONES") {
Menu_MoveEnCursor_DS(0, 1);
return(undefined);
}
}
}
if (menu.OPTIONS_HIDDEN) {
return(undefined);
}
menu["o" + MENU_SEL].gotoAndStop(1);
MENU_SEL++;
if (MENU_SEL > MENU_OPTIONS.length) {
MENU_SEL = 1;
}
menu["o" + MENU_SEL].gotoAndStop(2);
menu["o" + MENU_SEL].X_ICON._visible = Boolean(MENU_XVIS[MENU_SEL - 1]);
playSFX("menuBlip1");
menu.mainpanel.gotoAndStop("none");
menu.mainpanel.gotoAndStop(options[MENU_SEL - 1]);
conv.em = "norm";
_root["Menu_Show" + options[MENU_SEL - 1]]();
MENU_SHOWING = MENU_SEL;
_root._CURSOR.TOOLTIP._visible = false;
}
function Menu_ArrowLeft() {
switch (MENU_OPTIONS[MENU_SEL - 1]) {
case "Party" :
Menu_ShowParty(((menu.mainpanel.P1._currentframe == 1) ? 7 : (menu.mainpanel.P1._currentframe - 1)));
playSFX("menuSwish");
return;
case "Skills" :
if (MENU_IN == "SKILLS") {
if (menu.mainpanel.UseSkillOnBox._visible) {
menu.mainpanel.UseSkillOnBox.ChangeSel(-1, 0);
return(undefined);
}
menu.mainpanel[menu.SKILL_MODES[menu.SKILLS_SEL_MODE]].gotoAndStop(1);
menu.SKILLS_SEL_MODE--;
if (menu.SKILLS_SEL_MODE < 0) {
menu.SKILLS_SEL_MODE = menu.SKILL_MODES.length - 1;
}
playSFX("menuSwish");
Menu_ShowSkills();
return(undefined);
}
do {
menu.SKILLS_SEL_PC--;
if (menu.SKILLS_SEL_PC <= 0) {
menu.SKILLS_SEL_PC = 4;
}
} while ((PCstats[menu.SKILLS_SEL_PC - 1] == null) && (menu.SKILLS_SEL_PC > 0));
playSFX("menuBlip1");
Menu_ShowSkills();
return;
case "Inventory" :
menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]].gotoAndStop(1);
menu.INV_SEL_EXAMINE--;
if (menu.INV_SEL_EXAMINE < 0) {
menu.INV_SEL_EXAMINE = menu.INV_EXAMINE_MODES.length - 1;
}
menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]].gotoAndStop(2);
menu.mainpanel.cursor2._x = menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._x + (menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._width / 2);
Menu_RolloverItem(menu.ITEM_ROLLEDOVER[0], menu.ITEM_ROLLEDOVER[1], menu.ITEM_ROLLEDOVER[2]);
playSFX("menuBlip1");
return;
case "Quests" :
if (MENU_IN == "QUESTS") {
return(undefined);
}
menu.mainpanel[MENU_QUESTMODE].gotoAndStop(1);
MENU_QUESTMODE = ((MENU_QUESTMODE == "ACTIVE") ? "COMPLETED" : "ACTIVE");
Menu_ShowQuests();
playSFX("menuSwish");
return;
case "Help" :
menu.mainpanel.HELP_PANEL.page--;
if (menu.mainpanel.HELP_PANEL.page < 1) {
menu.mainpanel.HELP_PANEL.page = 1;
} else {
menu.mainpanel.HELP_PANEL.gotoAndStop((HELP_FIRST_PAGE + menu.mainpanel.HELP_PANEL.page) - 1);
}
SetupHelpPanel(menu.mainpanel.HELP_PANEL);
return;
case "Encyclopaedia" :
if (MENU_IN == "EN2") {
return(undefined);
}
if (MENU_IN == "ENCYCLOPAEDIA") {
Menu_MoveEnCursor(-ENCYC_COLUMN);
} else if (MENU_IN == "DREAMSTONES") {
Menu_MoveEnCursor_DS(-1, 0);
} else {
menu.mainpanel["icon" + menu.ENCYC_SEC]._alpha = 20;
menu.ENCYC_SEC--;
if (menu.ENCYC_SEC < 0) {
menu.ENCYC_SEC = ENCYCLOPAEDIA_SECTIONS.length - 1;
}
menu.mainpanel["icon" + menu.ENCYC_SEC]._alpha = 100;
playSFX("menuBlip1");
menu.mainpanel.EnSection = ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC];
menu.mainpanel.EnSectionInfo = ENCYCLOPAEDIA_SECTION_INFO[menu.ENCYC_SEC];
menu.mainpanel.cursor1._x = menu.mainpanel["icon" + menu.ENCYC_SEC]._x + 24;
}
}
}
function Menu_ArrowRight() {
switch (MENU_OPTIONS[MENU_SEL - 1]) {
case "Party" :
Menu_ShowParty(((menu.mainpanel.P1._currentframe == 7) ? 1 : (menu.mainpanel.P1._currentframe + 1)));
playSFX("menuSwish");
return;
case "Skills" :
if (MENU_IN == "SKILLS") {
if (menu.mainpanel.UseSkillOnBox._visible) {
menu.mainpanel.UseSkillOnBox.ChangeSel(1, 0);
return(undefined);
}
menu.mainpanel[menu.SKILL_MODES[menu.SKILLS_SEL_MODE]].gotoAndStop(1);
menu.SKILLS_SEL_MODE++;
if (menu.SKILLS_SEL_MODE == menu.SKILL_MODES.length) {
menu.SKILLS_SEL_MODE = 0;
}
playSFX("menuSwish");
Menu_ShowSkills();
return(undefined);
}
do {
menu.SKILLS_SEL_PC++;
} while ((PCstats[menu.SKILLS_SEL_PC - 1] == null) && (menu.SKILLS_SEL_PC <= 4));
if (menu.SKILLS_SEL_PC > 4) {
menu.SKILLS_SEL_PC = 1;
}
playSFX("menuBlip1");
Menu_ShowSkills();
return;
case "Inventory" :
menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]].gotoAndStop(1);
menu.INV_SEL_EXAMINE++;
if (menu.INV_SEL_EXAMINE == menu.INV_EXAMINE_MODES.length) {
menu.INV_SEL_EXAMINE = 0;
}
menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]].gotoAndStop(2);
menu.mainpanel.cursor2._x = menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._x + (menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._width / 2);
Menu_RolloverItem(menu.ITEM_ROLLEDOVER[0], menu.ITEM_ROLLEDOVER[1], menu.ITEM_ROLLEDOVER[2]);
playSFX("menuBlip1");
return;
case "Quests" :
if (MENU_IN == "QUESTS") {
return(undefined);
}
menu.mainpanel[MENU_QUESTMODE].gotoAndStop(1);
MENU_QUESTMODE = ((MENU_QUESTMODE == "ACTIVE") ? "COMPLETED" : "ACTIVE");
Menu_ShowQuests();
playSFX("menuSwish");
return;
case "Help" :
menu.mainpanel.HELP_PANEL.page++;
if (menu.mainpanel.HELP_PANEL.page > HELP_PAGES) {
menu.mainpanel.HELP_PANEL.page = HELP_PAGES;
} else {
menu.mainpanel.HELP_PANEL.gotoAndStop((HELP_FIRST_PAGE + menu.mainpanel.HELP_PANEL.page) - 1);
}
SetupHelpPanel(menu.mainpanel.HELP_PANEL);
return;
case "Encyclopaedia" :
if (MENU_IN == "EN2") {
return(undefined);
}
if (MENU_IN == "ENCYCLOPAEDIA") {
Menu_MoveEnCursor(ENCYC_COLUMN);
} else if (MENU_IN == "DREAMSTONES") {
Menu_MoveEnCursor_DS(1, 0);
} else {
menu.mainpanel["icon" + menu.ENCYC_SEC]._alpha = 20;
menu.ENCYC_SEC++;
if (menu.ENCYC_SEC >= ENCYCLOPAEDIA_SECTIONS.length) {
menu.ENCYC_SEC = 0;
}
menu.mainpanel["icon" + menu.ENCYC_SEC]._alpha = 100;
playSFX("menuBlip1");
menu.mainpanel.EnSection = ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC];
menu.mainpanel.EnSectionInfo = ENCYCLOPAEDIA_SECTION_INFO[menu.ENCYC_SEC];
menu.mainpanel.cursor1._x = menu.mainpanel["icon" + menu.ENCYC_SEC]._x + 24;
}
}
}
function Menu_Confirm() {
trace([MENU_OPTIONS[MENU_SHOWING - 1], MENU_SHOWING]);
if ((MENU_OPTIONS[MENU_SHOWING - 1] == "Skills") && (MENU_OPTIONS[MENU_SEL - 1] == "Skills")) {
if (MENU_IN == "SKILLS") {
var _local3 = menu.mainpanel.A_List["A" + MENU_SEL_SKILL];
if (menu.mainpanel.UseSkillOnBox._visible) {
var _local18 = _local3.MP * ((menu.mainpanel.UseSkillOnBox.SEL_ALL && (_local3.TT.substr(0, 3) != "ALL")) ? 2 : 1);
if (PCstats[menu.SKILLS_SEL_PC - 1].mp[0] < _local18) {
_root.playSFX("error");
return(undefined);
}
var _local14 = [0, 0, 0, 0];
_local14[menu.mainpanel.UseSkillOnBox.SEL_PC] = 1;
if (menu.mainpanel.UseSkillOnBox.SEL_ALL) {
_local14 = [1, 1, 1, 1];
}
var _local15 = 0;
var _local7 = 0;
while (_local7 < 4) {
var _local4 = _root.PCstats[_local7];
if (_local14[_local7] && (_local4)) {
var _local8 = null;
var _local5 = true;
if (_local3.SKILL.ADD_STFX) {
for (var _local12 in _local3.SKILL.stfx) {
if (!HasSTFX(_local4, _local12)) {
_local5 = false;
AddSTFX(_local4, _local12);
_local8 = [0, 220, 255];
}
}
} else {
if (_local3.SKILL.stfx != null) {
for (var _local12 in _local3.SKILL.stfx) {
if (HasSTFX(_local4, _local12)) {
RemoveSTFX(_local4, _local12);
_local5 = false;
}
}
}
if (_local3.SKILL.DMG) {
if (_local4.hp[0] != _local4.hp[1]) {
_local5 = false;
var _local11 = int(MdmgFormula({stats:PCstats[menu.SKILLS_SEL_PC - 1]}, {stats:_local4}, _local3.SKILL.DMG) / ((menu.mainpanel.UseSkillOnBox.SEL_ALL && (_local3.TT.substr(0, 3) != "ALL")) ? 2 : 1));
_local4.hp[0] = _local4.hp[0] + _local11;
}
}
_local8 = [155, 255, 0];
}
if (!_local5) {
_local15++;
_root.Flash(menu.mainpanel.UseSkillOnBox["P" + (_local7 + 1)], _local8);
}
calculateStats(_local4);
}
_local7++;
}
if (_local15) {
_root.playSFX("Cure");
PCstats[menu.SKILLS_SEL_PC - 1].mp[0] = PCstats[menu.SKILLS_SEL_PC - 1].mp[0] - _local18;
if (PCstats[menu.SKILLS_SEL_PC - 1].mp[0] < _local18) {
_local3._alpha = 50;
}
var _local16 = PCstats[menu.SKILLS_SEL_PC - 1];
if (_local16.learned[_local3.SKILL.skill] == null) {
_local16.learned[_local3.SKILL.skill] = 0;
}
if (_local16.learned[_local3.SKILL.skill] < _local3.SKILL.AP) {
_local16.learned[_local3.SKILL.skill] = _local16.learned[_local3.SKILL.skill] + (_local16.REACT.PASSIVE.apmult ? (_local16.REACT.PASSIVE.apmult) : 1);
_local3.RefreshAPThing();
}
Menu_Skills_UpdateBarBox();
} else {
playSFX("error");
}
_local7 = 0;
while (_local7 < 4) {
menu.mainpanel.UseSkillOnBox["P" + (_local7 + 1)].Refresh();
_local7++;
}
return(undefined);
}
if (((_local3._alpha < 100) || ((!menu.SKILLS_SEL_MODE) && (!_local3.SKILL.menuse))) || (_local3._currentframe == 4)) {
_root.playSFX("error");
return(undefined);
}
if (menu.SKILLS_SEL_MODE) {
if (menu.VISIBLE_SKILLS == 0) {
return(undefined);
}
var _local17 = PCstats[menu.SKILLS_SEL_PC - 1].learned._REACTIONS[menu.SKILL_MODES[menu.SKILLS_SEL_MODE]];
if (_local17[_local3.SKILL.skill] == null) {
_local17[_local3.SKILL.skill] = [0, false];
}
var _local19 = GetRP(PCstats[menu.SKILLS_SEL_PC - 1]);
var _local20 = GetReactionInfo(menu.SKILL_MODES[menu.SKILLS_SEL_MODE], _local3.SKILL.skill);
if ((!_local17[_local3.SKILL.skill][1]) && (_local20.RP > _local19[0])) {
_root.Flash(menu.mainpanel.BarBox.bar, [255, 0, 0]);
_root.playSFX("error");
return(undefined);
}
if (_local17[_local3.SKILL.skill][1]) {
playSFX("menuBlip3");
_local3.RPtoggler.gotoAndStop(2);
} else {
playSFX("menuBlip2");
_local3.RPtoggler.gotoAndStop(1);
}
_local17[_local3.SKILL.skill][1] = _local17[_local3.SKILL.skill][1] ^ 1;
calculateStats(_local4);
Menu_Skills_UpdateBarBox();
return(undefined);
}
if (_local3.NAME == "Warp") {
PCstats[menu.SKILLS_SEL_PC - 1].mp[0] = PCstats[menu.SKILLS_SEL_PC - 1].mp[0] - _local3.MP;
CANT_CLOSE_MENU = null;
HideMenu();
onCloseMenu = function () {
_root.WarpTrans(["WORLDMAP", 0, 0]);
};
return(undefined);
}
menu.mainpanel.UseSkillOnBox.gotoAndStop(1);
menu.mainpanel.UseSkillOnBox._visible = true;
menu.mainpanel.A_List.filters = [new flash.filters.BlurFilter(16, 16)];
menu.mainpanel.cursor3._visible = false;
menu.mainpanel.UseSkillOnBox.SKILL_USING = _local3.SKILL;
menu.mainpanel.UseSkillOnBox.SEL_ALL = _local3.SKILL.TT.substr(0, 3) == "ALL";
menu.mainpanel.UseSkillOnBox.ChangeSel = function (x, y) {
if (y && (this.SEL_ALL)) {
return(undefined);
}
if (x) {
if (this.SKILL_USING.TT == "ANY") {
this.SEL_ALL = !this.SEL_ALL;
} else {
return(undefined);
}
}
this["P" + (this.SEL_PC + 1)].gotoAndStop(1);
if (y) {
do {
this.SEL_PC = this.SEL_PC + y;
if (this.SEL_PC < 0) {
this.SEL_PC = 3;
}
if (this.SEL_PC > 3) {
this.SEL_PC = 0;
}
} while (_root.PCstats[this.SEL_PC].model == null);
}
var _local4 = [0, 0, 0, 0];
_local4[this.SEL_PC] = 1;
if (this.SEL_ALL) {
_local4 = [1, 1, 1, 1];
}
trace(_local4);
var _local3 = 0;
while (_local3 < 4) {
this["P" + (_local3 + 1)].gotoAndStop(((_root.PCstats[_local3] == null) ? "empty" : (((this.SEL_ALL || (_local4[_local3])) ? "SEL" : 1))));
_local3++;
}
if (x || (y)) {
_root.playSFX("menuBlip1");
}
};
menu.mainpanel.UseSkillOnBox.SEL_PC = 0;
playSFX("menuBlip4");
var _local9 = 0;
while (_local9 < 4) {
var _local6 = menu.mainpanel.UseSkillOnBox["P" + (_local9 + 1)];
var _local4 = _root.PCstats[_local9];
if (_local4 == null) {
_local6.gotoAndStop("empty");
} else {
_local6.STATS = _local4;
_local6.gotoAndStop(1);
_local6.Refresh = function () {
var _local3 = this.STATS;
this.avatar.mystats = _local3;
this.name = _local3.name;
var _local4 = _root.ColourHP(_local3.hp[0], _local3.hp[1]);
this.HP1 = _local4[0];
this.HP2 = _local4[1];
this.MP1 = _local3.mp[0];
this.MP2 = _local3.mp[1];
this.HPbar.gotoAndStop(101 - int((_local3.hp[0] / _local3.hp[1]) * 100));
this.MPbar.gotoAndStop(101 - int((_local3.mp[0] / _local3.mp[1]) * 100));
_root.ShowSTFXCycler(this.stfx, _local3.status);
};
_local6.Refresh();
}
_local9++;
}
menu.mainpanel.UseSkillOnBox.ChangeSel(0, 0);
} else {
playSFX("menuBlip4");
Menu_HideOptions();
menu.mainpanel.cursor1._visible = false;
menu.mainpanel.cursor2._visible = true;
menu.mainpanel.cursor3._visible = true;
MENU_IN = "SKILLS";
Menu_ShowSkills();
}
return(undefined);
}
if (MENU_OPTIONS[MENU_SHOWING - 1] == "Inventory") {
if (_root.SHOPPING_MODE) {
return(undefined);
}
playSFX("menuBlip4");
Menu_HideOptions();
menu.mainpanel.cursor1._visible = true;
MENU_IN = "INVENTORY";
Menu_ShowInventory();
Menu_RolloverItem(menu.ITEM_ROLLEDOVER[0], menu.ITEM_ROLLEDOVER[1], menu.ITEM_ROLLEDOVER[2]);
return(undefined);
}
if (MENU_OPTIONS[MENU_SHOWING - 1] == "Quests") {
if (!menu.mainpanel.cursor2._visible) {
menu.QUEST_SEL = (menu.mainpanel.currTop = 0);
playSFX("menuBlip4");
Menu_HideOptions();
menu.mainpanel.cursor1._visible = false;
menu.mainpanel.cursor2._visible = true;
MENU_IN = "QUESTS";
Menu_RolloverQuest();
}
return(undefined);
}
if (MENU_OPTIONS[MENU_SHOWING - 1] == "Encyclopaedia") {
if (MENU_IN == "EN2") {
return(undefined);
}
if (MENU_IN == "ENCYCLOPAEDIA") {
Menu_EnterEnEntry();
return(undefined);
}
if (MENU_IN == "DREAMSTONES") {
if (_root.Dreamstone_Viewer != null) {
_root.Dreamstone_Viewer.onX();
} else {
Menu_ViewDreamstone();
}
return(undefined);
}
RefreshEncyclopaedia();
Menu_HideOptions(true);
playSFX("menuBlip4");
if (ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC] == "Dreamstones") {
Menu_ShowDreamstones();
MENU_IN = "DREAMSTONES";
} else {
Menu_ShowEncyclopaediaSectionList();
MENU_IN = "ENCYCLOPAEDIA";
}
return(undefined);
}
}
function Menu_Back() {
if (MENU_IN == "SKILLS") {
if (menu.mainpanel.UseSkillOnBox._visible) {
menu.mainpanel.UseSkillOnBox._visible = false;
menu.mainpanel.UseSkillOnBox.gotoAndStop("empty");
menu.mainpanel.A_List.filters = [];
menu.mainpanel.cursor3._visible = true;
playSFX("menuBlip3");
return(undefined);
}
MENU_IN = null;
Menu_ShowSkills();
playSFX("menuBlip3");
Menu_UnhideOptions();
} else if ((MENU_IN == "INVENTORY") && (!_root.SHOPPING_MODE)) {
MENU_IN = null;
playSFX("menuBlip3");
Menu_UnhideOptions();
menu.mainpanel.cursor1._visible = false;
} else if (MENU_IN == "QUESTS") {
MENU_IN = null;
playSFX("menuBlip3");
Menu_UnhideOptions();
menu.QUEST_SEL = 0;
Menu_ShowQuests();
} else if ((MENU_IN == "ENCYCLOPAEDIA") || (MENU_IN == "DREAMSTONES")) {
if (_root.Dreamstone_Viewer != null) {
_root.Dreamstone_Viewer.onZ();
return(undefined);
}
MENU_IN = null;
playSFX("menuBlip3");
Menu_UnhideOptions();
menu.mainpanel.gotoAndStop("encyclopaedia");
Menu_ShowEncyclopaedia();
} else if (MENU_IN == "EN2") {
MENU_IN = "ENCYCLOPAEDIA";
menu.mainpanel.gotoAndStop("encyclopaedia2");
playSFX("menuBlip3");
menu.mainpanel.E_List._visible = true;
menu.mainpanel.cursorEN._visible = true;
menu.mainpanel.scrollbit._visible = menu.mainpanel.scrollbit.cols > 3;
} else {
HideMenu();
}
}
function Menu_ASD(key) {
if ((MENU_IN == "SKILLS") && (menu.SKILLS_SEL_MODE != 0)) {
Menu_AssignReactionKey(key);
}
}
function Menu_HideOptions(hide) {
var _local1 = 1;
while (_local1 <= MENU_OPTIONS.length) {
if (hide) {
menu["o" + _local1]._alpha = 0;
} else {
menu["o" + _local1].filters = [new flash.filters.BlurFilter(8, 8)];
}
menu["o" + _local1].X_ICON._visible = false;
_local1++;
}
menu.OPTIONS_HIDDEN = true;
}
function Menu_UnhideOptions() {
var _local1 = 1;
while (_local1 <= MENU_OPTIONS.length) {
menu["o" + _local1]._alpha = 100;
menu["o" + _local1].filters = null;
menu["o" + _local1].X_ICON._visible = MENU_XVIS[_local1 - 1];
_local1++;
}
menu.OPTIONS_HIDDEN = false;
}
function Menu_ShowParty(frame) {
menu.bottom.gotoAndStop(1);
var _local9 = 1;
while (_local9 <= 4) {
var _local3 = menu.mainpanel["P" + _local9];
calculateStats(PCstats[_local9 - 1]);
var _local2 = PCstats[_local9 - 1];
if (_local2 == null) {
_local3.gotoAndStop("empty");
} else {
_local3.gotoAndStop((frame ? (frame) : 1));
var _local8 = 1;
while (_local8 <= 7) {
_local3["box" + _local8].gotoAndStop(2);
_local8++;
}
_local3["box" + (frame ? (frame) : 1)].gotoAndStop(1);
_local3.avatar.mystats = _local2;
_local3.elemglyph.gotoAndStop(_local2.element);
_local3.name = _local2.name;
_local3.LandJ = (("Lv " + _local2.level) + " ") + _local2.Class;
_local3.LevelN = "Level " + _local2.level;
var _local11 = _root.ColourHP(_local2.hp[0], _local2.hp[1]);
_local3.HP1 = _local11[0];
_local3.HP2 = _local11[1];
_local3.MP1 = _local2.mp[0];
_local3.MP2 = _local2.mp[1];
_local3.HPbar.gotoAndStop(101 - int((_local2.hp[0] / _local2.hp[1]) * 100));
_local3.MPbar.gotoAndStop(101 - int((_local2.mp[0] / _local2.mp[1]) * 100));
_local3.XPbar.gotoAndStop(((_local2.level == 100) ? 1 : (101 - int((_local2.exp / (_local2.level * 1000)) * 100))));
_local3.XP = int((_local2.exp / (_local2.level * 1000)) * 100) + "%";
_local3.XPnum = NumberFormat(_local2.exp);
_local3.XPnext = ((_local2.level == 100) ? "MAX" : (NumberFormat(_local2.level * 1000)));
ShowSTFXCycler(_local3.stfx, _local2.status);
var _local5 = ["STR", "VIT", "SPR", "AGL", "ATK", "DEF", "MDEF"];
var _local4 = 0;
while (_local4 < 7) {
if (_local2.BONUS[_local5[_local4]]) {
_local3[_local5[_local4]] = ((("<font color='" + ((_local2.BONUS[_local5[_local4]] > 0) ? "#99ff00" : "#cc3333")) + "'>") + _local2.getStat(_local5[_local4])) + "</font>";
_local3["b_" + _local5[_local4]] = ((_local2.BONUS[_local5[_local4]] > 0) ? "+" : "") + _local2.BONUS[_local5[_local4]];
} else {
_local3[_local5[_local4]] = ((_local2[_local5[_local4]] == undefined) ? "-" : (_local2[_local5[_local4]]));
_local3["b_" + _local5[_local4]] = "";
}
_local4++;
}
for (var _local12 in _local2.RESIST) {
_local3[_local12]._alpha = (_local2.RESIST[_local12] ? 100 : 10);
_local3["R_" + _local12] = ((_local2.RESIST[_local12] == 0) ? "" : (((("<font color='" + ((_local2.RESIST[_local12] > 100) ? "#99ff66" : (((_local2.RESIST[_local12] < 0) ? "#ffaaaa" : (((_local2.RESIST[_local12] > 0) ? "#55ddff" : "#999999")))))) + "'>") + Math.abs(_local2.RESIST[_local12])) + "%</font>"));
_local3["line_" + _local12].gotoAndStop(((_local2.RESIST[_local12] == 0) ? 1 : (((_local2.RESIST[_local12] > 100) ? 4 : (((_local2.RESIST[_local12] < 0) ? 3 : (((_local2.RESIST[_local12] > 0) ? 2 : 1))))))));
}
var _local7 = ["BATTLES", "KILLS", "KOS", "USES_P", "USES_M", "USES_I", "DMG_D", "DMG_R"];
var _local6 = 0;
while (_local6 < _local7.length) {
_local3[_local7[_local6]] = ((_local6 > 5) ? (NumberFormat(int(_local2[_local7[_local6]]))) : (int(_local2[_local7[_local6]])));
_local6++;
}
}
_local9++;
}
}
function AttachPCSprite(Pn, S, x, y, scale) {
Pn.createEmptyMovieClip("box", 100);
Pn.box.bmp = flash.display.BitmapData.loadBitmap("spritesheet_" + S.model);
var H = ((Pn.box.H = Pn.box.bmp.height));
var H2 = ((Pn.box.H2 = 0));
Pn.box.bmp2 = new flash.display.BitmapData(16, H, true);
Pn.box.bmp2.copyPixels(Pn.box.bmp, new flash.geom.Rectangle(0, H2, 16, H), new flash.geom.Point(0, 0));
Pn.box.attachBitmap(Pn.box.bmp2, 100);
Pn.box._x = x;
Pn.box._y = y - (((H - 16) > 0) ? 12 : 0);
Pn.box._height = Pn.box._height * scale;
Pn.box._width = Pn.box._width * scale;
Pn.box.C = 0;
Pn.box.F = 1;
Pn.box.onEnterFrame = function () {
this.C++;
if (this.C > 10) {
this.C = 0;
this.F = !this.F;
this.bmp2.copyPixels(this.bmp, new flash.geom.Rectangle(16 * this.F, this.H2, 16, this.H), new flash.geom.Point(0, 0));
}
};
}
function Menu_ShowSkills(keepSel) {
menu.bottom.gotoAndStop(2);
var _local4 = 0;
while (_local4 < SkillTypes.length) {
menu.mainpanel[SkillTypes[_local4]].gotoAndStop(SkillTypes[_local4]);
_local4++;
}
menu.mainpanel.RTypeName = ((MENU_IN == "SKILLS") ? (["Action Skills", "Physical Attack Reactions", "Physical Defence Reactions", "Magical Attack Reactions", "Magical Defence Reactions", "Passive Skills"][menu.SKILLS_SEL_MODE]) : "");
menu.mainpanel.UseSkillOnBox.gotoAndStop("empty");
menu.mainpanel.UseSkillOnBox._visible = false;
menu.mainpanel.elemstrip.gotoAndStop("empty");
menu.mainpanel.bigGlyph.gotoAndStop("clear");
menu.mainpanel.scrollbit._visible = false;
menu.mainpanel.scrollbit._y = menu.mainpanel.scrollbit.orig_y;
menu.SKILL_MODES = SkillTypes;
if (menu.SKILLS_SEL_MODE == null) {
menu.SKILLS_SEL_MODE = 0;
}
menu.mainpanel.MPorKey = ((menu.SKILLS_SEL_MODE == 0) ? "MP" : "RP");
if ((menu.SKILLS_SEL_PC == null) || (PCstats[menu.SKILLS_SEL_PC - 1].model == null)) {
menu.SKILLS_SEL_PC = 1;
}
calculateStats(PCstats[menu.SKILLS_SEL_PC - 1]);
var _local6 = 1;
while (_local6 <= 4) {
var _local7 = menu.mainpanel["P" + _local6];
if (PCstats[_local6 - 1] == null) {
_local7._visible = false;
} else {
_local7._visible = true;
_local7.gotoAndStop(((_local6 == menu.SKILLS_SEL_PC) ? 2 : 3));
if (_local7.box == null) {
AttachPCSprite(_local7, PCstats[_local6 - 1], 1, 1, 3);
}
}
_local6++;
}
Menu_Skills_UpdateBarBox();
var _local12 = techInfo[classStats[PCstats[menu.SKILLS_SEL_PC - 1].model].tech];
menu.mainpanel.SkillTitle = _local12.name;
menu.mainpanel.SkillDesc = _local12.desc;
menu.mainpanel.bigGlyph.gotoAndStop((_local12.elem ? (_local12.elem) : "clear"));
var _local15 = SkillBattleIcon(_local12.name);
var _local14 = menu.mainpanel.schoolIcon.createEmptyMovieClip("img", 121);
_local14.attachBitmap(_local15, 12);
_local14._width = (_local14._height = 32);
if (menu.mainpanel.A_List.orig_y == null) {
menu.mainpanel.A_List.orig_y = menu.mainpanel.A_List._y;
} else {
menu.mainpanel.A_List._y = menu.mainpanel.A_List.orig_y;
}
for (var _local13 in menu.mainpanel.A_List) {
menu.mainpanel.A_List[_local13].removeMovieClip();
}
if (MENU_IN == "SKILLS") {
var _local5 = (menu.SKILLS_SEL_MODE ? (reactionInfo[menu.SKILL_MODES[menu.SKILLS_SEL_MODE]]) : (techInfo[classStats[PCstats[menu.SKILLS_SEL_PC - 1].model].tech].skills));
trace(SkillList[menu.SKILLS_SEL_MODE]);
var _local10 = -1;
if (!keepSel) {
MENU_SEL_SKILL = null;
}
menu.VISIBLE_SKILLS = 0;
menu.mainpanel.scrollbit.numSkills = 0;
_local4 = 0;
while (_local4 < _local5.length) {
if (((menu.SKILLS_SEL_MODE == 0) && (_local5[_local4].type != menu.SKILL_MODES[menu.SKILLS_SEL_MODE])) || ((menu.SKILLS_SEL_MODE && (_local5[_local4].only != null)) && (!_local5[_local4].only[classStats[PCstats[menu.SKILLS_SEL_PC - 1].model].tech]))) {
} else {
var _local8 = (menu.SKILLS_SEL_MODE ? (PCstats[menu.SKILLS_SEL_PC - 1].learned._REACTIONS[SkillTypes[menu.SKILLS_SEL_MODE]]) : (PCstats[menu.SKILLS_SEL_PC - 1].learned))[_local5[_local4].skill];
if ((menu.SKILLS_SEL_MODE && (!_local8[0])) && (!HasSkillOnEquipment(PCstats[menu.SKILLS_SEL_PC - 1], _local5[_local4].skill))) {
} else {
_local10++;
if (MENU_SEL_SKILL == null) {
MENU_SEL_SKILL = _local10;
}
menu.mainpanel.scrollbit.numSkills++;
var _local3 = menu.mainpanel.A_List.attachMovie("AbilityEntry", "A" + _local10, _local4 + 100);
if ((!(menu.SKILLS_SEL_MODE ? (_local8[0]) : (_local8))) && (!HasSkillOnEquipment(PCstats[menu.SKILLS_SEL_PC - 1], _local5[_local4].skill))) {
_local3.gotoAndStop(4);
} else {
_local3.SKILL = _local5[_local4];
_local3.RPtoggler._visible = Boolean(menu.SKILLS_SEL_MODE);
_local3.RPtoggler.gotoAndStop((_local8[1] ? 1 : 2));
if (menu.SKILLS_SEL_MODE) {
_local3.glyph._visible = false;
} else {
_local3.glyph.gotoAndStop(((_local5[_local4].elem == "_USERS") ? (PCstats[menu.SKILLS_SEL_PC - 1].element) : (_local5[_local4].elem)));
}
_local3.NAME = _local5[_local4].skill;
_local3.MP = ((_local5[_local4].type == "ACT") ? (_local5[_local4].MP) : (_local5[_local4].RP));
if (_local3.MP == "") {
var _local9 = PCstats[menu.SKILLS_SEL_PC - 1].reactions[_local5[_local4].type.substr(2).toLowerCase()];
for (var _local11 in _local9) {
if (_local9[_local11] == _local3.NAME) {
_local3.MP = _local11;
}
}
}
_local3.RefreshAPThing = function () {
if ((_root.PCstats[_root.menu.SKILLS_SEL_PC - 1].name == "Meraeador") && (!_root.menu.SKILLS_SEL_MODE)) {
this.A.gotoAndStop("CANNOT_MASTER");
} else {
this.A.AP1 = int((_root.menu.SKILLS_SEL_MODE ? (_root.PCstats[_root.menu.SKILLS_SEL_PC - 1].learned._REACTIONS[_root.SkillTypes[_root.menu.SKILLS_SEL_MODE]][this.NAME][0]) : (_root.PCstats[_root.menu.SKILLS_SEL_PC - 1].learned[this.NAME])));
this.A.AP2 = this.SKILL.AP;
if (this.A.AP1 >= this.A.AP2) {
this.A.gotoAndStop("MASTER");
} else {
this.A.APbar.gotoAndStop(101 - int((this.A.AP1 / this.A.AP2) * 100));
if (!_root.HasSkillOnEquipment(_root.PCstats[_root.menu.SKILLS_SEL_PC - 1], this.NAME)) {
this._alpha = 20;
}
}
}
};
_local3.RefreshAPThing();
if (((!menu.SKILLS_SEL_MODE) && (int(_local3.MP) > PCstats[menu.SKILLS_SEL_PC - 1].mp[0])) && (_local3._alpha == 100)) {
_local3._alpha = 50;
}
if (((_local5[_local4].type == "ACT") && (_local3._alpha == 100)) && ((HasSTFX(PCstats[menu.SKILLS_SEL_PC - 1], "SIL") || (HasSTFX(PCstats[menu.SKILLS_SEL_PC - 1], "CRS"))) || (HasSTFX(PCstats[menu.SKILLS_SEL_PC - 1], "ZOM")))) {
_local3._alpha = 50;
}
if ((_local3.NAME == "Warp") && (!WARP_AVAILABLE)) {
_local3._alpha = 20;
}
}
_local3._y = 25 * _local10;
_local3.DESC = _local5[_local4].desc;
menu.VISIBLE_SKILLS++;
}
}
_local4++;
}
menu.SHOWN_SKILLS = _local10 + 1;
Menu_RolloverSkill();
}
menu.mainpanel.NoSkills = (((MENU_IN == "SKILLS") && (menu.VISIBLE_SKILLS == 0)) ? "No skills of this type available." : "");
menu.mainpanel.cursor1._visible = MENU_IN == "SKILLS";
menu.mainpanel.cursor1._x = menu.mainpanel[menu.SKILL_MODES[menu.SKILLS_SEL_MODE]]._x;
menu.mainpanel.cursor2._visible = MENU_IN == null;
menu.mainpanel.cursor2._x = menu.mainpanel["P" + menu.SKILLS_SEL_PC]._x + (menu.mainpanel["P" + menu.SKILLS_SEL_PC]._width / 2);
menu.mainpanel.cursor3._visible = (MENU_IN == "SKILLS") && (menu.VISIBLE_SKILLS > 0);
if ((menu.mainpanel.scrollbit.numSkills > 16) && (MENU_IN == "SKILLS")) {
menu.mainpanel.scrollbit._visible = true;
menu.mainpanel.scrollbit._height = ((menu.mainpanel.scrollbit.maxheight = STAGEH - ((menu.mainpanel.scrollbit.orig_y = menu.mainpanel.scrollbit._y)))) * (16 / menu.mainpanel.scrollbit.numSkills);
menu.mainpanel.currTop = 0;
} else {
menu.mainpanel.scrollbit._visible = false;
}
}
function Menu_RolloverSkill() {
var _local1 = menu.mainpanel.A_List["A" + MENU_SEL_SKILL];
menu.mainpanel.cursor3._y = (menu.mainpanel.A_List._y + _local1._y) + 13;
if (_local1._currentframe == 4) {
menu.mainpanel.elemstrip.gotoAndStop("empty");
menu.mainpanel.bigGlyph.gotoAndStop("clear");
menu.mainpanel.SkillTitle = "????";
menu.mainpanel.SkillDesc = "This skill has not yet been learned.";
} else {
_local1.gotoAndStop((_local1.SKILL.menuse ? "USE" : 2));
var _local2 = ((_local1.SKILL.elem == "_USERS") ? (PCstats[menu.SKILLS_SEL_PC - 1].element) : (_local1.SKILL.elem));
menu.mainpanel.elemstrip.gotoAndStop(_local2);
menu.mainpanel.bigGlyph.gotoAndStop(_local2);
menu.mainpanel.SkillTitle = (_local1.NAME ? (_local1.NAME) : "No skill");
menu.mainpanel.SkillDesc = (_local1.DESC ? (_local1.DESC) : "");
}
}
function GetRP(stats) {
var _local3 = [0, 3 + Math.floor(stats.level / 2)];
_local3[0] = _local3[1];
var _local2 = stats.learned._REACTIONS;
var _local1 = SkillTypes[menu.SKILLS_SEL_MODE];
for (var _local4 in _local2[_local1]) {
if (_local2[_local1][_local4][1]) {
_local3[0] = _local3[0] - GetReactionInfo(_local1, _local4).RP;
}
}
return(_local3);
}
function Menu_Skills_UpdateBarBox() {
var _local1 = menu.mainpanel.BarBox;
_local1.SpellCasterName = PCstats[menu.SKILLS_SEL_PC - 1].name;
var _local3 = PCstats[menu.SKILLS_SEL_PC - 1];
var _local2 = ((menu.SKILLS_SEL_MODE == 0) ? (_local3.mp) : (GetRP(_local3)));
_local1.gotoAndStop(((menu.SKILLS_SEL_MODE == 0) ? 1 : 2));
_local1.CUR = _local2[0];
_local1.MAX = _local2[1];
_local1.bar.gotoAndStop(101 - int((_local2[0] / _local2[1]) * 100));
}
function Menu_AssignReactionKey(key) {
var _local3 = menu.mainpanel.A_List["A" + MENU_SEL_SKILL];
if (_local3.SKILL == null) {
_root.playSFX("error");
return(undefined);
}
var _local2 = PCstats[menu.SKILLS_SEL_PC - 1].reactions[menu.SKILL_MODES[menu.SKILLS_SEL_MODE].substr(2).toLowerCase()];
for (var _local5 in _local2) {
if (_local5 == key) {
continue;
}
if (_local2[_local5] == _local3.NAME) {
_local2[_local5] = null;
}
}
if (_local2[key] == _local3.NAME) {
playSFX("menuBlip3");
_local2[key] = null;
} else {
_local2[key] = _local3.NAME;
playSFX("menuBlip2");
}
Menu_ShowSkills(true);
}
function Menu_ShowInventory() {
menu.bottom.gotoAndStop(4);
if ((MENU_INV_SEL == null) || (PCstats[MENU_INV_SEL].model == null)) {
MENU_INV_SEL = 0;
}
menu.mainpanel.B_DESC.label = "Description";
menu.mainpanel.B_SKILLS.label = "Skills";
menu.mainpanel.B_PROPS.label = "Properties";
menu.INV_EXAMINE_MODES = ["DESC", "SKILLS", "PROPS"];
if (menu.INV_SEL_EXAMINE == null) {
menu.INV_SEL_EXAMINE = 0;
}
menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]].gotoAndStop(2);
menu.mainpanel.cursor1._visible = MENU_IN == "INVENTORY";
menu.mainpanel.cursor1._y = menu.mainpanel["P" + (MENU_INV_SEL + 1)]._y + 22;
menu.mainpanel.cursor2._x = menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._x + (menu.mainpanel["B_" + menu.INV_EXAMINE_MODES[menu.INV_SEL_EXAMINE]]._width / 2);
menu.mainpanel.bigGlyph.gotoAndStop("clear");
for (var _local15 in menu.mainpanel.ISpace) {
menu.mainpanel.ISpace[_local15].removeMovieClip();
}
var _local6 = 0;
while (_local6 < INVENTORY_LENGTH) {
var _local11 = menu.mainpanel.ISpace.attachMovie("ItemSlot", "I" + _local6, 100 + _local6);
_local11._x = 36 * (_local6 % 8);
_local11._y = 36 * Math.floor(_local6 / 8);
_local11.ITEM = PCstats[MENU_INV_SEL].inventory[_local6][0];
_local11.AMOUNT = PCstats[MENU_INV_SEL].inventory[_local6][1];
_local6++;
}
var _local10 = 1;
while (_local10 <= 4) {
_root.calculateStats(PCstats[_local10 - 1]);
var _local4 = menu.mainpanel["P" + _local10];
var _local11 = PCstats[_local10 - 1];
if (_local11 == null) {
_local4._visible = false;
} else {
_local4._visible = true;
_local4.gotoAndStop(1);
ShowSTFXCycler(_local4.stfx, _local11.status);
_local4.NAME = _local11.name;
_local4.LEVEL = "Lv" + _local11.level;
_local4.ATK = ((_local11.ATK == undefined) ? "-" : (_local11.ATK));
_local4.DEF = _local11.DEF;
_local4.MDEF = _local11.MDEF;
_local4.STATS = _local11;
_local4.elemstrip.gotoAndStop(_local11.element);
_local4.RefreshHPMP = function () {
var _local3 = this.STATS;
var _local4 = _root.ColourHP(_local3.hp[0], _local3.hp[1]);
this.HP1 = (_local4[0] + "/") + _local4[1];
this.MP1 = (_local3.mp[0] + "/") + _local3.mp[1];
this.HPbar.gotoAndStop(101 - int((_local3.hp[0] / _local3.hp[1]) * 100));
this.MPbar.gotoAndStop(101 - int((_local3.mp[0] / _local3.mp[1]) * 100));
_root.ShowSTFXCycler(this.stfx, _local3.status);
};
_local4.RefreshHPMP();
if (_local4.box == null) {
AttachPCSprite(_local4, PCstats[_local10 - 1], 8, 8, 2);
_local4.box.onPress = function () {
if (_root.HELD != null) {
var _local3 = _root.GetItemInfo(_root.HELD[0]);
var _local7 = 0;
if (_local3.action == null) {
_root.playSFX("error");
return(undefined);
}
if (_local3.action[0] == "fullcure") {
if ((this._parent.STATS.hp[0] == this._parent.STATS.hp[1]) && (this._parent.STATS.mp[0] == this._parent.STATS.mp[1])) {
_root.playSFX("error");
return(undefined);
}
_root.playSFX("Cure");
_local7 = 1;
this._parent.STATS.hp[0] = (_local3.action[1].hp ? (_local3.action[1].hp) : (this._parent.STATS.hp[1]));
this._parent.STATS.mp[0] = (_local3.action[1].mp ? (_local3.action[1].mp) : (this._parent.STATS.mp[1]));
_root.calculateStats(this._parent.STATS);
_root.Flash(this, [255, 230, 90]);
} else if (_local3.action[0] == "milk") {
var _local5 = [];
for (var _local4 in _local3.action[2]) {
if (_root.HasSTFX(this._parent.STATS, _local4)) {
_local5.push(_local4);
}
}
if ((this._parent.STATS.hp[0] == this._parent.STATS.hp[1]) && (_local5.length == 1)) {
_root.playSFX("error");
return(undefined);
}
_root.playSFX("Cure");
_local7 = 1;
this._parent.STATS[stat][0] = this._parent.STATS[stat][0] + _local3.action[1];
var _local4 = 0;
while (_local4 < _local5.length) {
_root.RemoveSTFX(this._parent.STATS, _local5[_local4]);
_local4++;
}
_root.calculateStats(this._parent.STATS);
_root.Flash(this, ((_local3.action[0] == "r_MP") ? ([24, 240, 255]) : ([150, 255, 0])));
} else if ((_local3.action[0] == "r_HP") || (_local3.action[0] == "r_MP")) {
var stat = ((_local3.action[0] == "r_MP") ? "mp" : "hp");
if (this._parent.STATS[stat][0] == this._parent.STATS[stat][1]) {
_root.playSFX("error");
return(undefined);
}
_root.playSFX("Cure");
_local7 = 1;
this._parent.STATS[stat][0] = this._parent.STATS[stat][0] + _local3.action[1];
_root.calculateStats(this._parent.STATS);
_root.Flash(this, ((_local3.action[0] == "r_MP") ? [24, 240, 255] : [150, 255, 0]));
} else if (_local3.action[0] == "h_status") {
if (_local3.action[1].indexOf("ALL") != -1) {
this._parent.STATS.status = [];
} else if (_local3.action[1][0]) {
var _local6 = 0;
var _local4 = 0;
while (_local4 < _local3.action[1].length) {
if (HasSTFX(this._parent.STATS, _local3.action[1][_local4])) {
_local6++;
}
RemoveSTFX(this._parent.STATS, _local3.action[1][_local4]);
_local4++;
}
if (_local6 == 0) {
_root.playSFX("error");
return(undefined);
}
} else {
if (!HasSTFX(this._parent.STATS, _local3.action[1])) {
_root.playSFX("error");
return(undefined);
}
RemoveSTFX(this._parent.STATS, _local3.action[1]);
}
_local7 = 1;
_root.playSFX("Cure");
_root.calculateStats(this._parent.STATS);
_root.Flash(this, [255, 150, 0]);
} else if (_local3.action[0] == "add_status") {
var _local6 = 0;
var _local4 = 0;
while (_local4 < _local3.action[1].length) {
if (HasSTFX(this._parent.STATS, _local3.action[1][_local4])) {
_local6++;
} else {
AddSTFX(this._parent.STATS, _local3.action[1][_local4]);
}
_local4++;
}
if (_local6 == _local3.action[1].length) {
_root.playSFX("error");
return(undefined);
}
_local7 = 1;
_root.playSFX("Cure");
_root.calculateStats(this._parent.STATS);
_root.Flash(this, _local3.rgb);
}
if (_local7) {
_root.HELD[1]--;
if (_root.HELD[1] < 1) {
_root.HELD = null;
}
_root.DragItem(_root.HELD[0], _root.HELD[1]);
}
this._parent.RefreshHPMP();
}
};
}
var _local9 = ["weapon", "shield", "armour", "helmet", "accessory", "accessory2"];
_local6 = 0;
while (_local6 < 6) {
_local4["slot_" + _local9[_local6]].DrawItem((_local4["slot_" + _local9[_local6]].ITEM = _local11[_local9[_local6]]));
_local6++;
}
}
_local10++;
}
menu.mainpanel.ItemName = "";
menu.mainpanel.ItemDesc = "";
menu.mainpanel.MONEY = NumberFormat(GameData.money);
menu.mainpanel.elemstrip.gotoAndStop("empty");
menu.mainpanel["P" + (MENU_INV_SEL + 1)].gotoAndStop(2);
if (SHOPPING_MODE) {
if (CURRENT_SHOP == "WORKBENCH") {
RefreshWorkbench();
} else {
menu.ShopPanel.gotoAndStop(1);
for (var _local15 in menu.ShopPanel.WaresList) {
menu.ShopPanel.WaresList[_local15].removeMovieClip();
}
_local6 = 0;
while (_local6 < 60) {
var _local11 = menu.ShopPanel.WaresList.attachMovie("ItemSlot", "I" + _local6, 100 + _local6);
_local11._x = 36 * (_local6 % 5);
_local11._y = 36 * Math.floor(_local6 / 5);
_local11.ITEM = GameData.SHOPS[CURRENT_SHOP][_local6][0];
var _local14 = GameData.SHOPS[CURRENT_SHOP][_local6][1];
_local11.AMOUNT = (_local14 ? (_local14) : null);
_local11.SHOPSLOT = true;
_local6++;
}
}
menu.bottom.gotoAndStop(3);
} else {
menu.bottom.RubbishBin.gotoAndStop(1);
menu.bottom.RubbishBin.onRollOver = function () {
_root._CURSOR.TOOLTIP._visible = true;
_root._CURSOR.TOOLTIP.gotoAndStop(2);
_root._CURSOR.TOOLTIP.TEXT = "Discard";
if (_root.HELD) {
this.gotoAndStop(2);
}
};
menu.bottom.RubbishBin.onRollOut = function () {
_root._CURSOR.TOOLTIP._visible = false;
this.gotoAndStop(1);
};
menu.bottom.RubbishBin.onPress = function () {
if (_root.HELD) {
_root.DragItem(null);
}
};
menu.bottom.SortBtn.gotoAndStop(1);
menu.bottom.SortBtn.onRollOver = function () {
_root._CURSOR.TOOLTIP._visible = true;
_root._CURSOR.TOOLTIP.gotoAndStop(2);
_root._CURSOR.TOOLTIP.TEXT = "Sort";
this.gotoAndStop(2);
};
menu.bottom.SortBtn.onRollOut = function () {
_root._CURSOR.TOOLTIP._visible = false;
this.gotoAndStop(1);
};
menu.bottom.SortBtn.onPress = function () {
_root.playSFX("menuSwish");
_root.PCstats[_root.MENU_INV_SEL].inventory = _root.SortInventory(_root.PCstats[_root.MENU_INV_SEL].inventory, INVENTORY_LENGTH);
_root.Menu_ShowInventory();
};
}
}
function Menu_RolloverItem(item, amount, ForSale) {
var _local4 = ((SavePopup._visible && (SavePopup.MODE == "STORAGE")) ? (SavePopup) : (menu.mainpanel));
trace(_local4);
menu.ITEM_ROLLEDOVER = [item, amount, ForSale];
var _local1 = GetItemInfo(item);
for (var _local30 in _local4.I_Skills) {
_local4.I_Skills[_local30].removeMovieClip();
}
_local4.ItemDesc = "";
var _local13 = "#ff5555";
var _local14 = "#99ff00";
var _local20 = "#00ddff";
var _local17 = {};
if (SavePopup._visible && (SavePopup.MODE == "STORAGE")) {
_local17 = ((SavePopup.SEL_PC_STATS == null) ? ({}) : ({Pbox:SavePopup.SEL_PC_STATS}));
} else {
var _local12 = 0;
while (_local12 < 4) {
_local17["P" + (_local12 + 1)] = PCstats[_local12];
_local12++;
}
}
for (var _local12 in _local17) {
var _local10 = _local4[_local12];
var _local6 = _local17[_local12];
if (_local10._visible) {
var _local18 = ["ATK", "DEF", "MDEF"];
var _local2 = 0;
while (_local2 < 3) {
if (_local10[_local18[_local2]] == "-") {
} else {
var _local5 = CanEquip(_local6, item);
if (_local5[0]) {
_local5 = _local5[0];
}
if (_local5) {
var _local8 = int(_local1[_local18[_local2].toLowerCase()]);
var _local9 = int(GetItemInfo(_local6[_local5])[_local18[_local2].toLowerCase()]);
var _local15 = _local6.getStat(_local18[_local2]) - _local9;
if ((_local8 != 0) || (_local9 != 0)) {
_local10[_local18[_local2]] = ((("<font color='" + ((_local8 > _local9) ? (_local14) : (((_local8 < _local9) ? (_local13) : (_local20))))) + "'>") + (_local8 + _local15)) + "</font>";
}
} else {
_local10[_local18[_local2]] = _local6[_local18[_local2]];
}
}
_local2++;
}
}
}
menu.ShopPanel.COST = NumberFormat(int((_local1.cost / (ForSale ? 1 : 2)) * (((amount == null) || (ForSale)) ? 1 : (amount))));
if ((item == null) || (item == "none")) {
_local4.ItemName = "";
_local4.elemstrip.gotoAndStop("empty");
_local4.bigGlyph.gotoAndStop("clear");
return(undefined);
}
_local4.ItemName = _local1.name + (((amount != null) && (amount > 1)) ? (" x" + amount) : "");
_local4.elemstrip.gotoAndStop((_local1.elem ? (_local1.elem) : "empty"));
_local4.bigGlyph.gotoAndStop((_local1.elem ? (_local1.elem) : "clear"));
switch (menu.INV_SEL_EXAMINE) {
case 0 :
if (_local1.type == "wepn") {
_local4.ItemDesc = _local4.ItemDesc + (("WEAPON: " + _local1.wpnType) + "\n\n");
} else if (_local1.type == "armr") {
_local4.ItemDesc = _local4.ItemDesc + (("ARMOUR: " + {ArS:"STOLE", Ar0:"CLOTHING", Ar1:"LIGHT", Ar2:"MEDIUM", Ar3:"HEAVY", ArR:"ROBE", ArM:"R. PLATING"}[_local1.amrType]) + "\n\n");
} else if (_local1.type == "helm") {
_local4.ItemDesc = _local4.ItemDesc + (("HELMET: " + {H0:"HAT", H1:"HALF HELM", H2:"FULL HELM"}[_local1.amrType]) + "\n\n");
} else {
_local4.ItemDesc = _local4.ItemDesc + ({shld:"SHIELD", accs:"ACCESSORY", invn:"INVENTION", item:"EXPENDABLE ITEM", gems:"GEMSTONE", misc:"MISCELLANEOUS ITEM", song:"SHEET MUSIC", plot:"PLOT ITEM", gold:"GOLD"}[_local1.type] + "\n\n");
}
if (_local1.atk) {
_local4.ItemDesc = _local4.ItemDesc + (("ATK: " + _local1.atk) + newline);
}
if (_local1.def) {
_local4.ItemDesc = _local4.ItemDesc + (("DEF: " + _local1.def) + newline);
}
if (_local1.mdef) {
_local4.ItemDesc = _local4.ItemDesc + (("MDEF: " + _local1.mdef) + newline);
}
if (_local4.ItemDesc != "") {
_local4.ItemDesc = _local4.ItemDesc + newline;
}
_local4.ItemDesc = _local4.ItemDesc + _local1.desc;
break;
case 1 :
var _local21 = 0;
var _local2 = 0;
while (_local2 < _local1.skills.length) {
var _local3 = _local4.I_Skills.attachMovie("ItemAbility", "A" + _local2, 100 + _local2);
var _local6 = _local1.skills[_local2];
var _local7 = ((_local6[0].substr(0, 2) == "R:") ? (GetReactionInfo(_local6[0].substr(2), _local6[1])) : (GetSkillInfo(_local6[0], _local6[1])));
_local3._y = 52 * _local21;
_local3.NAME = _local7.skill;
_local3.School = techInfo[_local6[0]].name;
var _local16;
var _local11 = ((SavePopup.MODE == "STORAGE") ? (SavePopup.SEL_PC_STATS) : (PCstats[MENU_INV_SEL]));
if (_local6[0].substr(0, 2) == "R:") {
_local3.A.gotoAndStop((((_local7.only != null) && (!_local7.only[classStats[_local11.model].tech])) ? "CANNOT_LEARN" : (((int((_local16 = _local11.learned._REACTIONS[_local6[0].substr(2)][_local7.skill])[0]) >= _local7.AP) ? "MASTER" : 1))));
} else {
_local3.A.gotoAndStop(((_local6[0] != classStats[_local11.model].tech) ? "CANNOT_LEARN" : (((int(_local16 = _local11.learned[_local7.skill]) >= _local7.AP) ? "MASTER" : 1))));
}
_local3.A.AP1 = int(((_local6[0].substr(0, 2) == "R:") ? (_local16[0]) : (_local16)));
_local3.A.AP2 = _local7.AP;
_local3.A.APbar.gotoAndStop(101 - int((_local3.A.AP1 / _local3.A.AP2) * 100));
_local3.glyph.gotoAndStop(((_local7.elem == "_USERS") ? (((SavePopup.MODE == "STORAGE") ? ((SavePopup.SEL_PC_STATS.element ? (SavePopup.SEL_PC_STATS.element) : "THAUMA")) : (_local11.element))) : (_local7.elem)));
if (_local7.type == "ACT") {
var _local19 = SkillBattleIcon(_local3.School);
_local3.RTicon.gotoAndStop("empty");
_local3.RTicon.createEmptyMovieClip("img", 121);
_local3.RTicon.img.attachBitmap(_local19, 12);
_local3.RTicon.img._width = (_local3.RTicon.img._height = 32);
_local3.RTicon.img._x = (_local3.RTicon.img._y = -16);
} else {
_local3.RTicon._width = (_local3.RTicon._height = 32);
_local3.RTicon.gotoAndStop(_local6[0].substr(2));
}
_local21++;
_local2++;
}
break;
case 2 :
var _local18 = ["ATK", "DEF", "MDEF"];
var _local12 = 0;
while (_local12 < 3) {
if (_local1[_local18[_local12].toLowerCase()]) {
_local4.ItemDesc = _local4.ItemDesc + (((("\u2022 " + _local18[_local12]) + ": ") + _local1[_local18[_local12].toLowerCase()]) + newline);
}
_local12++;
}
if (_local1.accuracy != null) {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 Accuracy: " + _local1.accuracy) + "%\n");
}
if (_local1.critical != null) {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 Critical chance: " + _local1.critical) + "%\n");
}
if (_local1.only_user) {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 ONLY USEABLE BY " + _local1.only_user.toUpperCase()) + newline);
}
if (_local1.elem) {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 " + ELEM_ProperNames[_local1.elem]) + " Elemental\n");
}
if (_local1.typeBonus != null) {
for (var _local28 in _local1.typeBonus) {
_local4.ItemDesc = _local4.ItemDesc + ((_local1.typeBonus[_local28] > 1) ? (((("\u2022 <font color='" + _local14) + "'>Effective against ") + _local28) + "</font>\n") : (((("\u2022 <font color='" + _local13) + "'>Ineffective against ") + _local28) + "</font>\n"));
}
}
if (_local1.MP_DRAIN) {
_local4.ItemDesc = _local4.ItemDesc + "\u2022 Drains MP\n";
}
if (_local1.HP_DRAIN) {
_local4.ItemDesc = _local4.ItemDesc + "\u2022 Drains HP\n";
}
for (var _local29 in _local1.stfx) {
_local4.ItemDesc = _local4.ItemDesc + (((("\u2022 Inflicts " + _local29) + " (") + _local1.stfx[_local29]) + "%)\n");
}
_local2 = 0;
for(;;){
if (_local2 >= _local1.effects.length) {
break;
}
if ({STR:1, VIT:1, SPR:1, AGL:1, hp:1, mp:1}[_local1.effects[_local2][0]]) {
_local4.ItemDesc = _local4.ItemDesc + (((((("\u2022 <font color='" + ((_local1.effects[_local2][1] > 0) ? (_local14) : (_local13))) + "'>") + _local1.effects[_local2][0].toUpperCase()) + ((_local1.effects[_local2][1] > 0) ? " + " : " - ")) + Math.abs(_local1.effects[_local2][1])) + "</font>\n");
} else if (_local1.effects[_local2][0].substr(0, 2) == "R_") {
_local4.ItemDesc = _local4.ItemDesc + ((((((_local1.effects[_local2][2] > 0) ? ((("\u2022 <font color='" + _local14) + "'>") + ((_local1.effects[_local2][2] > 100) ? "Absorb " : "Resist ")) : (("\u2022 <font color='" + _local13) + "'>Vulnerable to ")) + ((_local1.effects[_local2][0] == "R_STATUS") ? (STATUS_NAMES[_local1.effects[_local2][1]]) : (ELEM_ProperNames[_local1.effects[_local2][1]]))) + " (") + ((_local1.effects[_local2][2] > 100) ? (_local1.effects[_local2][2] - 100) : (_local1.effects[_local2][2]))) + "%)</font>\n");
} else if (_local1.effects[_local2][0] == "EMPOWER") {
_local4.ItemDesc = _local4.ItemDesc + ((((((_local1.effects[_local2][2] > 0) ? (("\u2022 <font color='" + _local14) + "'>Empowers ") : (("\u2022 <font color='" + _local13) + "'>Weakens ")) + ELEM_ProperNames[_local1.effects[_local2][1]]) + " (") + _local1.effects[_local2][2]) + "%)</font>\n");
} else if (_local1.effects[_local2][0] == "CHARISMATIC") {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 Charismatic Performer (" + (_local1.effects[_local2][1] * 100)) + "%)\n");
} else if (_local1.effects[_local2][0] == "AUTO_STFX") {
_local4.ItemDesc = _local4.ItemDesc + (("\u2022 Auto-" + STATUS_NAMES[_local1.effects[_local2][1]]) + newline);
} else {
_local4.ItemDesc = _local4.ItemDesc + (_local1.effects[_local2] + "\n\n");
}
_local2++;
};
}
}
function SortInventory(inventory, len) {
var _local1 = {};
var _local4 = 0;
while (_local4 < len) {
var _local9 = inventory[_local4];
if (STACKABLE_TYPES[GetItemInfo(_local9[0]).type]) {
_local1[_local9[0]] = int(_local1[_local9[0]]) + (_local9[1] ? (_local9[1]) : 1);
inventory[_local4] = null;
}
_local4++;
}
for (var _local12 in _local1) {
while (_local1[_local12] > 0) {
_local4 = 0;
while ((_local4 < len) && (_local1[_local12] > 0)) {
if (!inventory[_local4][1]) {
var _local2 = ((_local1[_local12] > 99) ? 99 : (_local1[_local12]));
inventory[_local4] = [_local12, _local2];
_local1[_local12] = _local1[_local12] - _local2;
}
_local4++;
}
}
}
var _local6 = new Array(len);
_local4 = 0;
while (_local4 < len) {
_local6[_local4] = {item:inventory[_local4][0], amount:inventory[_local4][1], index:GetItemInfo(inventory[_local4][0]).index};
trace(_local6[_local4]);
_local4++;
}
_local6.sortOn(["index", "amount"], [Array.NUMERIC, Array.DESCENDING | Array.NUMERIC]);
var _local11 = new Array(len);
_local4 = 0;
while (_local4 < len) {
var _local7 = GetItemInfo(_local6[_local4].item).type;
_local11[_local4] = (((_local7 == null) || (_local7 == "none")) ? null : ([_local6[_local4].item, _local6[_local4].amount]));
_local4++;
}
return(_local11);
}
function Menu_ShowQuests() {
menu.bottom.gotoAndStop(2);
if (MENU_QUESTMODE == null) {
MENU_QUESTMODE = "ACTIVE";
}
menu.mainpanel.QuestName = "";
menu.mainpanel.QuestDesc = "";
menu.mainpanel.ACTIVE.label = "ACTIVE";
menu.mainpanel.COMPLETED.label = "COMPLETE";
menu.mainpanel[MENU_QUESTMODE].gotoAndStop(2);
menu.mainpanel.cursor1._x = menu.mainpanel[MENU_QUESTMODE]._x + (menu.mainpanel[MENU_QUESTMODE]._width / 2);
menu.mainpanel.cursor1._visible = true;
menu.mainpanel.cursor2._visible = false;
var _local2 = GameData.quests;
menu.NUM_QUESTS = 0;
for (var _local4 in menu.mainpanel.QList) {
menu.mainpanel.QList[_local4].removeMovieClip();
}
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].done != (MENU_QUESTMODE == "COMPLETED")) {
} else if ((!_local2[_local1].done) && (GetQuest(_local2[_local1].ID).ch < GameData.CHAPTER)) {
} else {
var _local3 = menu.mainpanel.QList.attachMovie("QuestEntry", "Q" + menu.NUM_QUESTS, 100 + _local1);
_local3.QuestName = GetQuest(_local2[_local1].ID).title1;
_local3._y = 31 * menu.NUM_QUESTS;
_local3._x = 10;
_local3.Quest = _local2[_local1];
menu.NUM_QUESTS++;
}
_local1++;
}
menu.QUEST_SEL = 0;
menu.mainpanel.cursor2._y = (menu.mainpanel.QList._y + menu.mainpanel.QList["Q" + menu.QUEST_SEL]._y) + 10;
menu.mainpanel.QList._y = (menu.mainpanel.QList.orig_y = 90);
MAX_QUESTS_SHOWN = 14;
if (menu.NUM_QUESTS > MAX_QUESTS_SHOWN) {
menu.mainpanel.scrollbit._visible = true;
var _local5 = (menu.mainpanel.scrollbit.maxheight = 451);
menu.mainpanel.scrollbit.orig_y = 77;
menu.mainpanel.scrollbit._height = _local5 * (MAX_QUESTS_SHOWN / menu.NUM_QUESTS);
menu.mainpanel.currTop = 0;
} else {
menu.mainpanel.scrollbit._visible = false;
}
}
function Menu_RolloverQuest() {
var _local1 = GetQuest(menu.mainpanel.QList["Q" + menu.QUEST_SEL].Quest.ID);
menu.mainpanel.QuestName = _local1.title;
menu.mainpanel.QuestDesc = _local1.body;
menu.mainpanel.QList["Q" + menu.QUEST_SEL].gotoAndStop(2);
if (menu.QUEST_SEL < menu.mainpanel.currTop) {
menu.mainpanel.currTop--;
} else if (menu.QUEST_SEL >= (menu.mainpanel.currTop + MAX_QUESTS_SHOWN)) {
menu.mainpanel.currTop++;
}
menu.mainpanel.scrollbit._y = menu.mainpanel.scrollbit.orig_y + ((menu.mainpanel.scrollbit.maxheight - menu.mainpanel.scrollbit._height) * (menu.mainpanel.currTop / (menu.NUM_QUESTS - MAX_QUESTS_SHOWN)));
menu.mainpanel.QList._y = menu.mainpanel.QList.orig_y - (31 * menu.mainpanel.currTop);
menu.mainpanel.cursor2._y = (menu.mainpanel.QList._y + menu.mainpanel.QList["Q" + menu.QUEST_SEL]._y) + 10;
}
function Menu_ShowMap() {
menu.bottom.gotoAndStop(1);
var _local18 = new flash.display.BitmapData(map[0].length, map.length, true);
var _local7 = 0;
while (_local7 < map.length) {
var _local5 = 0;
while (_local5 < map[0].length) {
var _local26 = TileCoords(map[_local7][_local5]);
var _local11 = TILESHEET.getPixel(_local26[0], _local26[1]);
var _local4 = 2003124780 /* 0x7765422C */;
if ((!__AreaEXTRA.clearmap) && (!GameData.Maps[area][_local7][_local5])) {
_local4 = 1343753738 /* 0x50180E0A */;
} else if ((!_root.PitchDark) && (!__AreaEXTRA.NO_MAP)) {
switch (_local11) {
case 65280 :
_local4 = 2010169742 /* 0x77D0C18E */;
break;
case 56831 :
_local4 = 1996510668 /* 0x770055CC */;
break;
case 16711680 :
_local4 = ((tileset == "cave5") ? 1999857152 : 2013239552);
}
}
_local18.setPixel32(_local5, _local7, _local4);
_local5++;
}
_local7++;
}
var _local25 = menu.mainpanel.MAP.createEmptyMovieClip("base", 100);
_local25.attachBitmap(_local18, 100);
var _local17 = menu.mainpanel.MAP.createEmptyMovieClip("markers", 110);
var _local16 = new flash.display.BitmapData(map[0].length, map.length, true, 0);
var _local10 = 0;
for (var _local27 in AREASPRITES) {
var _local3 = AREASPRITES[_local27];
var _local9 = _local3.GetCoords();
if ((_local9[0] == null) || (_local3.IsAlly())) {
continue;
}
if ((_local3.stats.type.substr(0, 6) == "switch") || (_local3.stats.model == "o_Crystal")) {
if ((_local3.stats.type.substr(0, 6) == "switch") && (Boolean(GameData.switches[_root.dungeon][_local3.stats.colour]) === {orb:"no", platform:true, gate:true}[_local3.stats.type.split("_")[1]])) {
continue;
}
if ((!__AreaEXTRA.clearmap) && (!GameData.Maps[area][_local3.stats.y][_local3.stats.x])) {
continue;
}
var _local13 = _local17.attachMovie("SwitchGemIcon", "gem" + _local10, 200 + _local10);
_local13.gotoAndStop(((_local3.stats.model == "o_Crystal") ? "hcrystal" : ((_local3.stats.type.split("_")[1] + "_") + _local3.stats.colour)));
_local13._x = _local3.stats.x + 0.5;
_local13._y = _local3.stats.y + 0.5;
} else if (__AreaEXTRA.clearmap || (GameData.Maps[area][_local9[1]][_local9[0]])) {
_local16.setPixel32(_local9[0], _local9[1], 4278255360);
}
_local10++;
}
var _local29 = cont.PC.GetCoords();
_local16.setPixel32(_local29[0], _local29[1], 4294967295);
for (var _local26 in TRANSITIONS) {
var _local12 = TRANSITIONS[_local26].DOOR;
if (__AreaEXTRA.clearmap || (GameData.Maps[area][_local12.y][_local12.x])) {
_local16.setPixel32(_local12.x, _local12.y, 4278255615);
}
}
var _local8 = 0;
while (_local8 < LOOT.length) {
if (GameData.looted[area][LOOT[_local8].chest.ID]) {
} else if (__AreaEXTRA.clearmap || (GameData.Maps[area][LOOT[_local8].y][LOOT[_local8].x])) {
_local16.setPixel32(LOOT[_local8].x, LOOT[_local8].y, 4294958455);
}
_local8++;
}
for (var _local28 in FLAVOUR) {
trace(FLAVOUR[_local28].name);
if (FLAVOUR[_local28].name == "Dream Circle") {
if ((!__AreaEXTRA.clearmap) && (!GameData.Maps[area][FLAVOUR[_local28].y][FLAVOUR[_local28].x])) {
continue;
}
var _local13 = _local17.attachMovie("SwitchGemIcon", "gem" + _local10, 200 + _local10);
_local13.gotoAndStop("dreamcircle");
_local13._x = FLAVOUR[_local28].x + 0.5;
_local13._y = FLAVOUR[_local28].y + 0.5;
_local10++;
}
}
_local17.attachBitmap(_local16, 100);
_local17.count = 0;
_local17.onEnterFrame = function () {
this.count++;
if (this.count >= 10) {
this.count = 0;
this._visible = !this._visible;
}
};
var _local15 = ["ruby", "amethyst", "moonstone", "emerald", "topaz", "turquoise", "sapphire"];
var _local6 = 0;
while (_local6 < _local15.length) {
menu.mainpanel["gem" + _local6].gotoAndStop(_local15[_local6]);
if (GameData.switches[_root.dungeon][_local15[_local6]] != null) {
menu.mainpanel["gem" + _local6]._visible = true;
menu.mainpanel["gem" + _local6]._alpha = (Boolean(GameData.switches[_root.dungeon][_local15[_local6]]) ? 100 : 25);
} else {
menu.mainpanel["gem" + _local6]._visible = false;
}
_local6++;
}
_local25._x = (-_local25._width) / 2;
_local25._y = (-_local25._height) / 2;
_local17._x = (-_local17._width) / 2;
_local17._y = (-_local17._height) / 2;
var _local22 = menu.mainpanel.MAP;
var _local24 = [500, 430];
_local22._width = _local22._width * 4;
_local22._height = _local22._height * 4;
if (_local22._width > _local24[0]) {
var _local30 = _local22._width / _local24[0];
_local22._width = _local24[0];
_local22._height = _local22._height / _local30;
}
if (_local22._height > _local24[1]) {
var _local30 = _local22._height / _local24[1];
_local22._height = _local24[1];
_local22._width = _local22._width / _local30;
}
var _local19 = [0, areaLoot.length];
var _local14 = 0;
while (_local14 < areaLoot.length) {
if (GameData.looted[area][_local14]) {
_local19[0]++;
}
_local14++;
}
menu.mainpanel.LOOTBAR._visible = Boolean(_local19[1]);
menu.mainpanel.LOOTBAR.NumLoot = _local19.join("/");
menu.mainpanel.LOOTBAR.LootBar.gotoAndStop(101 - (_local19[1] ? (int((_local19[0] / _local19[1]) * 100)) : 0));
}
function Menu_ShowStatus() {
menu.bottom.gotoAndStop(2);
var _local2 = ["STEPS", "GOLD_EARNED", "DMG_D", "DMG_R", "KILLS", "KOS", "USES_P", "USES_M", "USES_I", "BATTLES", "FLED", "CHESTS"];
menu.mainpanel.DATA_COLUMN = "";
var _local1 = 0;
while (_local1 < _local2.length) {
menu.mainpanel.DATA_COLUMN = menu.mainpanel.DATA_COLUMN + (NumberFormat(GameData.RECORDS[_local2[_local1]]) + newline);
_local1++;
}
var _local3 = 0;
menu.mainpanel.PERCENT_COMPLETE = _local3 + "%";
}
function Menu_ShowOptions() {
menu.bottom.gotoAndStop(2);
menu.mainpanel.HELP_PANEL.gotoAndStop("options");
SetupOptionsPanel(menu.mainpanel.HELP_PANEL);
}
function SetupOptionsPanel(P) {
P.ODESC = (P.DefaultODESC = (("Roll over a radio button to get more information about that option.\n\nYou are playing " + VersionNum) + "\n\nYour Flash Player version is ") + getVersion());
var bq_desc = "MEDIUM is recommended.\nIf you experience lag in battle, it's best to set this to LOW. Things won't look as good, but it'll run much better.\nAlso, you can change the quality in battle using the Q key.";
var _local9 = ["LOW", "MEDIUM", "HIGH"];
var _local6 = 0;
while (_local6 < 3) {
var _local3 = P["ro_bquality_" + _local9[_local6]];
_local3.onRollOver = function () {
this._parent.ODESC = bq_desc;
};
_local3.onRollOut = function () {
this._parent.ODESC = this._parent.DefaultODESC;
};
_local3.gotoAndStop(((_root.CheckOption("bquality") == _local9[_local6]) ? 2 : 1));
_local3.onPress = function () {
this._parent["ro_bquality_" + _root.CheckOption("bquality")].gotoAndStop(1);
_root.SetOption("bquality", this._name.split("_")[2]);
this.gotoAndStop(2);
};
_local6++;
}
var _local7 = {music:"All of the music in this game was composed by Pseudolonewolf (who also made the rest of the game) specifically for it, and it's an important part of the experience, composed with care. Many clues are hidden in the music, and many situations enhanced drastically by the accompanying music.\nYou can use this to turn it off, but please, it's strongly discouraged because you'll be missing out on half the experience.", sfx:"Use this to turn off the sound effects for things like hits and spells in battle, and the noises made in menus.", pfx:"Particle effects are the snazzy sparkly things that happen to show spells visually, like flames, stones dropping on heads, cure sparkles, etc.\nTurning them off will make spells look far less impressive, but on older computers, they may cause so much lag that you need to disable them for better performance.", qwertz:"Some countries use a QWERTZ rather than QWERTY layout on their keyboard, and since this game uses Z extensively, it's inconvenient for them.\nUse this option to give the Y key the functionality of Z; if you do, the Z key won't do anything. Note however that all references will still say 'Z', not 'Y'.", zwait:"In battle, you can use Z (or Y in QWERTZ compatibility mode) to issue the Wait command in battle, skipping your turn. It can be convenient for some, but annoying for others if done accidentally.\nIf this is on, Z makes you Wait, but if it's off, you can only Wait by using the Wait command manually.", afx:"Some areas have fancy effects, like fog, floaty things, 'thought soup', etc, which can cause lag on slower computers. Disabling them will improve performance. They may not be disabled/enabled until you move into another area or enter a battle though."};
for (var _local10 in _local7) {
var _local3 = P["ro_" + _local10];
_local3.gotoAndStop((_root.CheckOption(_local10) ? 2 : 1));
_local3.desc = _local7[_local10];
_local3.onRollOver = function () {
this._parent.ODESC = this.desc;
};
_local3.onRollOut = function () {
this._parent.ODESC = this._parent.DefaultODESC;
};
_local3.onPress = function () {
var _local4 = this._name.split("_")[1];
var _local3 = _root.SetOption(_local4, _root.CheckOption(_local4) ^ 1);
this.gotoAndStop(int(_local3) + 1);
if (_local4 == "qwertz") {
KEYS.Z = (_local3 ? 89 : 90);
KEYS.Y = (_local3 ? 90 : 89);
} else if (_local4 == "music") {
_root.playMusic((_local3 ? (_root.musicTrack) : "none"));
}
};
}
}
function Menu_ShowHelp() {
menu.bottom.gotoAndStop(2);
menu.mainpanel.HELP_PANEL.gotoAndStop(HELP_FIRST_PAGE);
menu.mainpanel.HELP_PANEL.page = 1;
SetupHelpPanel(menu.mainpanel.HELP_PANEL);
}
function SetupHelpPanel(P) {
var _local8 = flash.display.BitmapData.loadBitmap("AlertBalloon");
var _local1 = 0;
while (_local1 < 2) {
var _local6 = new flash.display.BitmapData(16, 16, true);
var _local5 = P["exclaim_" + _local1];
_local6.copyPixels(_local8, new flash.geom.Rectangle(16 * _local1, 0, 16, 16), new flash.geom.Point(0, 0));
_local5.attachBitmap(_local6, 1);
_local5._width = (_local5._height = 48);
_local1++;
}
_local1 = 0;
while (_local1 < ELEMENTS_.length) {
P["glyph_" + ELEMENTS_[_local1]].gotoAndStop(ELEMENTS_[_local1]);
_local1++;
}
var _local7 = ["P_ATK", "P_DEF", "M_ATK", "M_DEF"];
var _local4 = 0;
while (_local4 < _local7.length) {
P[_local7[_local4]].gotoAndStop(_local7[_local4]);
_local4++;
}
var _local2 = 0;
while (_local2 < STATUSES_.length) {
P[STATUSES_[_local2]].gotoAndStop(STATUSES_[_local2]);
_local2++;
}
for (var _local9 in P) {
if (_local9.substr(0, 7) == "mapicon") {
P[_local9].gotoAndStop(_local9.split("$")[1]);
}
}
}
function Menu_ShowMedals() {
var _local7 = flash.display.BitmapData.loadBitmap("medals");
var _local6 = 0;
var _local3 = 0;
while (_local3 < 40) {
if (!GameData.MEDALS[GameData.CHAPTER][_local3]) {
} else {
var _local4 = menu.mainpanel.MList.createEmptyMovieClip("m" + _local3, _local3);
_local4._x = 25 + (50 * (_local3 % 10));
_local4._y = 20 + (70 * Math.floor(_local3 / 10));
var _local5 = new flash.display.BitmapData(16, 24, true);
_local5.copyPixels(_local7, new flash.geom.Rectangle(16 * _local3, 0, 16, 24), new flash.geom.Point(0, 0));
_local4.attachBitmap(_local5, 1);
_local4._width = 32;
_local4._height = 48;
_local4.NAME = MEDAL_LIST[_local3][0];
_local4.DESC = MEDAL_LIST[_local3][1];
_local4.onRollOver = function () {
_root.menu.mainpanel.MedalName = this.NAME;
_root.menu.mainpanel.MedalDesc = this.DESC;
};
_local4.onRollOut = function () {
_root.menu.mainpanel.MedalName = "";
_root.menu.mainpanel.MedalDesc = "";
};
_local6++;
}
_local3++;
}
menu.mainpanel.MedalName = "";
menu.mainpanel.MedalDesc = "";
menu.mainpanel.NumMedals = _local6 + "/40";
}
function Menu_ShowEncyclopaedia() {
menu.bottom.gotoAndStop(2);
var _local4 = (ENCYCLOPAEDIA_SECTIONS = ["People", "Places", "Artefacts", "Bestiary"]);
if (THIS_CHAPTER == 3) {
ENCYCLOPADIA_SECTIONS.push("Dreamstones");
}
if (menu.ENCYC_SEC == null) {
menu.ENCYC_SEC = 0;
ENCYCLOPAEDIA_SECTION_INFO = ["A list of all of the player characters, and important NPCs you've talked to.", "All the places that you've visited in your travels are listed here.", "Some rare MacGuffins that people talk about will be added to this section; usually plot-related items.", "Whenever you defeat a monster, its information is added here. Contains stats and weaknesses/resistances, as well as descriptions for each monster and a number showing how many of that type you've defeated.", "There are some special stones that exist in the world which can contain memories, thoughts or dreams... Viewing them gives you a glimpse into someone's mind in the past."];
}
var _local3 = flash.display.BitmapData.loadBitmap("encyclopaedia_sections");
var _local2 = 0;
while (_local2 < _local4.length) {
var _local1 = menu.mainpanel["icon" + _local2];
_local1.bmp = new flash.display.BitmapData(16, 16, true);
_local1.bmp.copyPixels(_local3, new flash.geom.Rectangle(16 * _local2, 0, 16, 16), new flash.geom.Point(0, 0));
_local1.attachBitmap(_local1.bmp, 1);
_local1._width = (_local1._height = 48);
_local1._alpha = ((menu.ENCYC_SEC == _local2) ? 100 : 20);
_local2++;
}
menu.mainpanel.EnSection = ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC];
menu.mainpanel.EnSectionInfo = ENCYCLOPAEDIA_SECTION_INFO[menu.ENCYC_SEC];
menu.mainpanel.cursor1._x = menu.mainpanel["icon" + menu.ENCYC_SEC]._x + 24;
}
function Menu_ShowEncyclopaediaSectionList() {
ENCYC_COLUMN = 16;
ENCYC_COLUMN_WIDTH = 230;
menu.bottom.gotoAndStop(3);
menu.mainpanel.gotoAndStop("encyclopaedia2");
menu.mainpanel.Subsection = (E_SECTION = ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC]);
menu.mainpanel.cursorEN.EN_SEL = 0;
menu.mainpanel.E_List.orig_x = 20;
var _local3 = [];
menu.mainpanel.E_List.IDList = [];
var _local1 = 0;
while (_local1 < Encyclopaedia[E_SECTION].length) {
var _local5 = Encyclopaedia[E_SECTION][_local1];
if (_local5.CH <= GameData.CHAPTER) {
_local3.push(_local5);
menu.mainpanel.E_List.IDList.push(_local1);
}
_local1++;
}
EN_NUM_ENTRIES = _local3.length;
_local1 = 0;
while (_local1 < EN_NUM_ENTRIES) {
var _local2 = menu.mainpanel.E_List.attachMovie("E_Entry", "E" + _local1, _local1);
_local2._y = (_local1 % ENCYC_COLUMN) * 29;
_local2._x = Math.floor(_local1 / ENCYC_COLUMN) * ENCYC_COLUMN_WIDTH;
var _local6 = GameData.EN_FULL[E_SECTION][((E_SECTION == "Bestiary") ? ((_local3[_local1].model ? (_local3[_local1].model) : (_local3[_local1].name)).toLowerCase()) : (_local3[_local1].name))];
if (!_local6) {
_local2.NAME = (_local1 + 1) + ") ";
var _local4 = 0;
while (_local4 < _local3[_local1].name.length) {
_local2.NAME = _local2.NAME + "-";
_local4++;
}
_local2.NUM = "";
_local2.glyph._visible = false;
_local2.dulled = true;
_local2.gotoAndStop("dull");
} else {
_local2.NAME = ((_local1 + 1) + ") ") + _local3[_local1].name;
_local2.NUM = ((E_SECTION == "Bestiary") ? (_local6) : "");
_local2.glyph._visible = _local3[_local1].elem != null;
_local2.glyph.gotoAndStop(_local3[_local1].elem);
}
_local1++;
}
var _local7 = menu.mainpanel.scrollbit;
_local7.cols = Math.ceil(EN_NUM_ENTRIES / ENCYC_COLUMN);
_local7._height = STAGEW * (3 / _local7.cols);
_local7._rotation = -90;
_local7._visible = _local7.cols > 3;
_local7.TOP = 0;
EN_CURSOR_COLUMN = 0;
Menu_MoveEnCursor(0);
}
function Menu_ShowDreamstones() {
ENCYC_COLUMN = 8;
menu.bottom.gotoAndStop(3);
menu.mainpanel.gotoAndStop("en_dreamstones");
menu.mainpanel.Subsection = (E_SECTION = ENCYCLOPAEDIA_SECTIONS[menu.ENCYC_SEC]);
menu.mainpanel.cursorEN.EN_SEL = [0, 0];
NUM_DREAMSTONES = 17;
DREAMSTONE_ROW = 8;
var _local4 = flash.display.BitmapData.loadBitmap("SoulOrb");
var _local3 = 0;
while (_local3 < NUM_DREAMSTONES) {
var _local2 = menu.mainpanel.DSList.createEmptyMovieClip("DS" + _local3, _local3);
_local2._x = 80 * (_local3 % DREAMSTONE_ROW);
_local2._y = 120 * Math.floor(_local3 / DREAMSTONE_ROW);
_local2.bmp = new flash.display.BitmapData(16, 16, true);
_local2.bmp.copyPixels(_local4, new flash.geom.Rectangle((GameData.Dreamstones[_local3] ? 0 : 32), 0, 16, 16), new flash.geom.Point(0, 0));
_local2.createEmptyMovieClip("img", 1);
_local2.img.attachBitmap(_local2.bmp, 1);
if (GameData.Dreamstones[_local3] == 1) {
_local2.createEmptyMovieClip("NEW", 2);
_local2.NEW.bmp = new flash.display.BitmapData(16, 16, true);
_local2.NEW.bmp.copyPixels(_local4, new flash.geom.Rectangle(16, 0, 16, 16), new flash.geom.Point(0, 0));
_local2.NEW.attachBitmap(_local2.NEW.bmp, 1);
_local2.NEW.count = 0;
_local2.NEW.onEnterFrame = function () {
this.count++;
if (this.count == 10) {
this.count = 0;
this._visible = !this._visible;
}
};
}
_local2.img._alpha = 20;
_local2._width = (_local2._height = 48);
_local3++;
}
DSList._x = (620 - DSList._width) / 2;
DSList._y = (488 - DSList._height) / 2;
Menu_MoveEnCursor_DS(0, 0);
}
function Menu_MoveEnCursor_DS(X, Y) {
var _local2 = menu.mainpanel.DSList["DS" + ((menu.mainpanel.cursorEN.EN_SEL[1] * 8) + menu.mainpanel.cursorEN.EN_SEL[0])];
_local2.img._alpha = 20;
_local2.img.filters = [];
if (menu.mainpanel.cursorEN.EN_SEL[1] < 2) {
menu.mainpanel.cursorEN.EN_SEL[0] = menu.mainpanel.cursorEN.EN_SEL[0] + X;
}
if (menu.mainpanel.cursorEN.EN_SEL[0] >= ENCYC_COLUMN) {
menu.mainpanel.cursorEN.EN_SEL[0] = 0;
} else if (menu.mainpanel.cursorEN.EN_SEL[0] < 0) {
menu.mainpanel.cursorEN.EN_SEL[0] = ENCYC_COLUMN - 1;
}
menu.mainpanel.cursorEN.EN_SEL[1] = menu.mainpanel.cursorEN.EN_SEL[1] + Y;
if (menu.mainpanel.cursorEN.EN_SEL[1] > ((menu.mainpanel.cursorEN.EN_SEL[0] == 0) ? 2 : 1)) {
menu.mainpanel.cursorEN.EN_SEL[1] = 0;
} else if (menu.mainpanel.cursorEN.EN_SEL[1] < 0) {
menu.mainpanel.cursorEN.EN_SEL[1] = ((menu.mainpanel.cursorEN.EN_SEL[0] == 0) ? 2 : 1);
}
var _local3 = (menu.mainpanel.cursorEN.EN_SEL[1] * 8) + menu.mainpanel.cursorEN.EN_SEL[0];
var _local1 = menu.mainpanel.DSList["DS" + _local3];
_local1.img._alpha = 100;
_local1.img.filters = (GameData.Dreamstones[_local3] ? ([new flash.filters.GlowFilter(9174992, 1, 32, 32)]) : ([]));
menu.mainpanel.cursorEN._x = (_local1._x + 10) + menu.mainpanel.DSList._x;
menu.mainpanel.cursorEN._y = (_local1._y + 24) + menu.mainpanel.DSList._y;
if (X || (Y)) {
playSFX("menuBlip1");
}
}
function Menu_ViewDreamstone() {
var _local1 = (menu.mainpanel.cursorEN.EN_SEL[1] * 8) + menu.mainpanel.cursorEN.EN_SEL[0];
if (!GameData.Dreamstones[_local1]) {
playSFX("error");
} else {
GameData.Dreamstones[_local1] = 2;
menu.mainpanel.DSList["DS" + _local1].NEW.removeMovieClip();
trace("Dreamstone " + _local1);
DreamstoneViewer(_local1);
}
}
function Menu_MoveEnCursor(n) {
var _local1 = menu.mainpanel;
var _local3 = _local1.E_List["E" + _local1.cursorEN.EN_SEL];
_local3.gotoAndStop((_local3.dulled ? "dull" : 1));
_local1.cursorEN.EN_SEL = _local1.cursorEN.EN_SEL + n;
if (_local1.cursorEN.EN_SEL < 0) {
_local1.cursorEN.EN_SEL = EN_NUM_ENTRIES - 1;
if (_local1.scrollbit.cols > 3) {
_local1.scrollbit.TOP = _local1.scrollbit.cols - 3;
_local1.scrollbit._x = (STAGEW - _local1.scrollbit._width) * (_local1.scrollbit.TOP / (_local1.scrollbit.cols - 3));
_local1.E_List._x = _local1.E_List.orig_x - (ENCYC_COLUMN_WIDTH * _local1.scrollbit.TOP);
}
} else if (_local1.cursorEN.EN_SEL >= EN_NUM_ENTRIES) {
_local1.cursorEN.EN_SEL = 0;
_local1.E_List._x = _local1.E_List.orig_x;
_local1.scrollbit._x = 0;
_local1.scrollbit.TOP = 0;
} else {
if ((_local1.cursorEN.EN_SEL + 1) > ((_local1.scrollbit.TOP + 3) * ENCYC_COLUMN)) {
_local1.scrollbit.TOP++;
} else if (_local1.cursorEN.EN_SEL < (_local1.scrollbit.TOP * ENCYC_COLUMN)) {
_local1.scrollbit.TOP--;
}
_local1.E_List._x = _local1.E_List.orig_x - (ENCYC_COLUMN_WIDTH * _local1.scrollbit.TOP);
_local1.scrollbit._x = (STAGEW - _local1.scrollbit._width) * (_local1.scrollbit.TOP / (_local1.scrollbit.cols - 3));
}
var _local2 = _local1.E_List["E" + _local1.cursorEN.EN_SEL];
_local1.cursorEN._x = (_local2._x + 5) + _local1.E_List._x;
_local1.cursorEN._y = (_local2._y + 10) + _local1.E_List._y;
_local2.gotoAndStop("sel");
if (n) {
playSFX("menuBlip1");
}
}
function Menu_EnterEnEntry() {
if (menu.mainpanel.E_List["E" + menu.mainpanel.cursorEN.EN_SEL].dulled) {
return(undefined);
}
playSFX("menuBlip4");
MENU_IN = "EN2";
menu.mainpanel.E_List._visible = false;
menu.mainpanel.cursorEN._visible = false;
menu.mainpanel.scrollbit._visible = false;
menu.mainpanel.gotoAndStop("en_" + E_SECTION);
var _local4 = menu.mainpanel;
var _local3 = Encyclopaedia[E_SECTION][menu.mainpanel.E_List.IDList[menu.mainpanel.cursorEN.EN_SEL]];
switch (E_SECTION) {
case "People" :
_local4.avatar.mystats = _local3;
var _local5 = ["name", "bio", "elem", "Class", "origin", "weapon", "age", "race", "gender", "alignment"];
var _local2 = 0;
while (_local2 < _local5.length) {
_local4["s_" + _local5[_local2]] = _local3[_local5[_local2]];
_local2++;
}
_local4.s_elem = ELEM_ProperNames[_local3.elem];
_local4.s_name = _local4.s_name + (" " + _local3.lastname);
_local4.s_name = replaceChar(_local4.s_name, [" "], [" "]);
_local4.glyph.gotoAndStop(_local3.elem);
_root.conv.em = _local3.em;
break;
case "Places" :
_local4.s_placename = _local3.name;
_local4.s_desc = _local3.info;
_local4.BG.BG = _local3.tileset;
_local4.BG2.BG = _local3.tileset;
break;
case "Artefacts" :
_local4.img.gotoAndStop(_local3.name);
_local4.s_name = _local3.name;
_local4.s_desc = _local3.info;
break;
case "Bestiary" :
_local4.s_name = (_local3.fullname ? (_local3.fullname) : (_local3.name));
_local4.s_desc = _local3.info;
_local4.dummy.gotoAndStop(((_local4.dummy.stats = {model:(_local3.model ? (_local3.model) : (_local3.name))})).model);
_local4.glyph.gotoAndStop(_local3.elem);
}
}
function SetupSwitchSprite(Pn, stats) {
Pn.box.removeMovieClip();
if (stats != null) {
Pn.stats = stats;
AttachPCSprite(Pn, stats, 1, 1, 3);
Pn.box._alpha = (stats.UNSWITCHABLE ? 30 : 100);
Pn.onRollOver = function () {
if (this.stats.model == null) {
return(undefined);
}
var _local4 = _root.SavePopup.InfoBox;
var _local3 = this.stats;
_local4.gotoAndStop(1);
_local4.avatar.mystats = _local3;
_local4.elemglyph.gotoAndStop(_local3.element);
_local4.name = _local3.name;
_local4.LandJ = (("Lv " + _local3.level) + " ") + _local3.Class;
var _local5 = _root.ColourHP(_local3.hp[0], _local3.hp[1]);
_local4.HP1 = _local5[0];
_local4.HP2 = _local5[1];
_local4.MP1 = _local3.mp[0];
_local4.MP2 = _local3.mp[1];
_local4.HPbar.gotoAndStop(101 - int((_local3.hp[0] / _local3.hp[1]) * 100));
_local4.MPbar.gotoAndStop(101 - int((_local3.mp[0] / _local3.mp[1]) * 100));
_local4.XPbar.gotoAndStop(101 - int((_local3.exp / (_local3.level * 1000)) * 100));
_local4.XP = int((_local3.exp / (_local3.level * 1000)) * 100) + "%";
_root.ShowSTFXCycler(_local4.stfx, _local3.status);
_local4.inv.attachBitmap(InventorySquare(_local3), 0);
_local4.inv._width = (_local4.inv._height = 48);
};
Pn.onRollOut = function () {
_root.SavePopup.InfoBox.gotoAndStop("empty");
};
}
Pn.onPress = function () {
if (_root.SavePopup.CLOSING) {
return(undefined);
}
if (this.box._alpha < 100) {
_root.playSFX("error");
return(undefined);
}
if (_root.DRAGGING_PC) {
if (this.stats.name == null) {
if (this._name.substr(0, 1) == "P") {
_root.PCstats[int(this._name.substr(1) - 1)] = _root.DRAGGING_PC;
}
_root.SetupSwitchSprite(this, _root.DRAGGING_PC);
_root.DRAGGING_PC = null;
_root._CURSOR.holding.DragSprite.removeMovieClip();
return(undefined);
}
var _local3 = _root.DRAGGING_PC;
if (this._name.substr(0, 1) == "P") {
_root.PCstats[int(this._name.substr(1) - 1)] = _root.DRAGGING_PC;
}
this.DragThis();
_root.SetupSwitchSprite(this, _local3);
} else {
if (this._name.substr(0, 1) == "P") {
_root.PCstats[int(this._name.substr(1) - 1)] = null;
}
this.DragThis();
}
};
Pn.DragThis = function () {
var _local3 = new flash.display.BitmapData(16, this.box.bmp2.height, true);
_local3.copyPixels(this.box.bmp2, new flash.geom.Rectangle(0, 0, 16, this.box.bmp2.height), new flash.geom.Point(0, 0));
_root.DRAGGING_PC = this.stats;
_root._CURSOR.holding.createEmptyMovieClip("DragSprite", 107);
_root._CURSOR.holding.DragSprite.attachBitmap(_local3, 108);
_root._CURSOR.holding.DragSprite._xscale = _root._CURSOR.holding.DragSprite._xscale * 3;
_root._CURSOR.holding.DragSprite._yscale = _root._CURSOR.holding.DragSprite._yscale * 3;
_root._CURSOR.holding.DragSprite._x = -24;
_root._CURSOR.holding.DragSprite._y = -24;
this.box.removeMovieClip();
this.stats = null;
};
}
function AcquireItem(I, chest) {
SavePopup.chest = chest;
SavePopup.ITEM = I;
if (GetItemInfo(I.item).type == "plot") {
GIVEPLOTITEM(I.item);
}
if (I.item == "Dreamstone") {
GIVEDREAMSTONE(I.amount);
}
SavePopup.FadeIn("ITEM");
}
function ShowSTFXCycler(obj, stfx) {
if (stfx.length == 0) {
obj.gotoAndStop("none");
obj.onEnterFrame = null;
return(undefined);
}
obj.STFX = stfx;
obj.C = 0;
obj.pos = 0;
obj.onEnterFrame = function () {
this._visible = true;
this.gotoAndStop(this.STFX[this.pos]);
this.C++;
if (this.C >= 8) {
this.C = 0;
this.pos++;
if (this.pos >= this.STFX.length) {
this.pos = 0;
}
}
};
obj.onEnterFrame();
}
function OpenShop(shop) {
if (GameData.SHOPS == null) {
GameData.SHOPS = {};
}
if (GameData.SHOPS[shop.name] == null) {
GameData.SHOPS[shop.name] = CloneA(shop.wares);
}
MENU_SHOWING = (MENU_SEL = 3);
SHOPPING_MODE = true;
CURRENT_SHOP = shop.name;
ShowMenu();
}
function OpenWorkbench(mixes, wsname, wsbp) {
MENU_SEL = 3;
SHOPPING_MODE = true;
CURRENT_SHOP = "WORKBENCH";
CURRENT_BLUEPRINT = null;
WORKSHOP_STUFF = arguments;
ShowMenu();
}
function RefreshWorkbench(clear_components) {
if (!clear_components) {
for (var _local2 in menu.ShopPanel.Components) {
if (menu.ShopPanel.Components[_local2].SLOT.ITEM != null) {
return(undefined);
}
}
}
menu.ShopPanel.gotoAndStop("workbench");
menu.ShopPanel.WSname = WORKSHOP_STUFF[1];
menu.ShopPanel.WSbp = WORKSHOP_STUFF[2] + ":";
var _local1 = 0;
while (_local1 < 20) {
var _local3 = menu.ShopPanel.Blueprints.attachMovie("ItemSlot", "I" + _local1, 100 + _local1);
_local3._x = 36 * (_local1 % 5);
_local3._y = 36 * Math.floor(_local1 / 5);
_local3.ITEM = WORKSHOP_STUFF[0][_local1].name;
_local3.AMOUNT = WORKSHOP_STUFF[0][_local1].amount;
_local3.BLUEPRINT = _local1;
_local3.gotoAndStop(((CURRENT_BLUEPRINT == _local1) ? 4 : 1));
_local1++;
}
for (var _local2 in menu.ShopPanel.Components) {
menu.ShopPanel.Components[_local2].removeMovieClip();
}
if (CURRENT_BLUEPRINT != null) {
var _local2 = 0;
while (_local2 < WORKSHOP_STUFF[0][CURRENT_BLUEPRINT].parts.length) {
var _local5 = WORKSHOP_STUFF[0][CURRENT_BLUEPRINT].parts[_local2];
var _local4 = menu.ShopPanel.Components.attachMovie("MixItem", "MI" + _local2, 100 + _local2);
_local4.SLOT.NEEDITEM = _local5[0];
_local4.SLOT.NEEDAMOUNT = _local5[1];
_local4.iname = _local5[0];
_local4.AMOUNT = _local5[1];
_local4._y = 40 * _local2;
_local2++;
}
}
}
function InventorySquare(stats) {
var _local4 = {wepn:14712912, invn:14712912, song:14712912, shld:9556313, armr:9556313, helm:9556313, accs:13750617, gems:13750617, item:5337561, misc:12685657};
var _local3 = new flash.display.BitmapData(8, 8, false, 1576458);
var _local1 = 0;
while (_local1 < INVENTORY_LENGTH) {
var _local2 = GetItemInfo(stats.inventory[_local1][0]);
if ((_local2.type != null) && (_local2.type != "none")) {
_local3.setPixel(_local1 % 8, Math.floor(_local1 / 8), _local4[_local2.type]);
}
_local1++;
}
return(_local3);
}
function SetupCreatureAnalyser(A) {
A.gotoAndStop("empty");
A.onPress = function () {
this.Close();
};
A.Refresh = function (S) {
this.OPEN = true;
_root.playSFX("menuBlip4");
_root.calculateStats(S);
this.stats = S;
this.gotoAndStop(1);
this._alpha = 0;
this.onEnterFrame = function () {
this._alpha = this._alpha + 20;
if (this._alpha >= 100) {
this._alpha = 100;
this.stats = null;
this.onEnterFrame = null;
}
};
_root.TraceObj(S);
this.dummy.dontDoStats = true;
this.dummy.gotoAndStop(((this.dummy.stats = S)).model);
this.dummy.mdl.gotoAndPlay("idle");
this.name = S.name;
this.lvNclass = (("Level " + S.level) + " ") + S.Class;
this.TYPE = ((S.mdlStats.TYPE == null) ? "" : (S.mdlStats.TYPE));
this.elem.gotoAndStop(S.element);
this.HPMP = ((((((("<font color='#66ff00'>" + S.hp[0]) + "/") + S.hp[1]) + "</font><br /><font color='#55eeff'>") + S.mp[0]) + "/") + S.mp[1]) + "</font>";
this.HPbar.gotoAndStop(101 - int((S.hp[0] / S.hp[1]) * 100));
this.MPbar.gotoAndStop(101 - int((S.mp[0] / S.mp[1]) * 100));
var _local9 = [["STR", "VIT", "SPR", "AGL"], ["ATK", "DEF", "MDEF", "evasion"]];
var _local6 = 0;
while (_local6 < 2) {
this["statColumn" + _local6] = (this["statBonusColumn" + _local6] = "");
var _local5 = 0;
while (_local5 < _local9[_local6].length) {
var _local4 = _local9[_local6][_local5];
if (S[_local4] == null) {
this["statColumn" + _local6] = this["statColumn" + _local6] + "-<br />";
this["statBonusColumn" + _local6] = this["statBonusColumn" + _local6] + " <br />";
} else if (S.BONUS[_local4] || (S.statEnhn[_local4])) {
this["statColumn" + _local6] = this["statColumn" + _local6] + ((((("<font color='" + (((S.BONUS[_local4] + S.statEnhn[_local4]) < 0) ? "#dd3333" : "#ffcc33")) + "'>") + S.getStat(_local4)) + (((_local6 == 1) && (_local5 == 3)) ? "%" : "")) + "</font><br />");
var _local8 = S.BONUS[_local4] + S.statEnhn[_local4];
this["statBonusColumn" + _local6] = this["statBonusColumn" + _local6] + ((("<font color='" + ((_local8 < 0) ? "#dd3333'>" : "#66ff00'>+")) + _local8) + "</font><br />");
} else {
this["statColumn" + _local6] = this["statColumn" + _local6] + ((S[_local4] + (((_local6 == 1) && (_local5 == 3)) ? "%" : "")) + "<br />");
this["statBonusColumn" + _local6] = this["statBonusColumn" + _local6] + " <br />";
}
_local5++;
}
_local6++;
}
for (var _local10 in S.RESIST) {
this[_local10]._alpha = (S.RESIST[_local10] ? 100 : 10);
this["R_" + _local10] = ((S.RESIST[_local10] == 0) ? "" : (((("<font color='" + ((S.RESIST[_local10] > 100) ? "#99ff66" : (((S.RESIST[_local10] < 0) ? "#ffaaaa" : (((S.RESIST[_local10] > 0) ? "#55ddff" : "#999999")))))) + "'>") + Math.abs(S.RESIST[_local10])) + "</font>"));
}
var _local7 = ["weapon", "shield", "armour", "helmet", "accessory", "accessory2"];
_local6 = 0;
while (_local6 < _local7.length) {
if (S[_local7[_local6]] && (S[_local7[_local6]] != "none")) {
_root.AddItemImg((this[_local7[_local6]] = S[_local7[_local6]]), this["img_" + _local7[_local6]], 32, 0);
} else {
this["img_" + _local7[_local6]].img.removeMovieClip();
this[_local7[_local6]] = "-";
}
_local6++;
}
this.icon.attachBitmap(S.BMP_ICON, 1);
this.icon._width = (this.icon._height = 32);
};
A.Close = function () {
this.OPEN = false;
this.SHOWING = null;
_root.playSFX("menuBlip3");
this._alpha = 100;
this.onEnterFrame = function () {
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this._alpha = 0;
this.gotoAndStop("empty");
this.onEnterFrame = null;
}
};
};
}
function MonTypeID(type) {
var _local1 = 0;
while (_local1 < MonsterTypes.length) {
if (MonsterTypes[_local1] == type) {
return(_local1);
}
_local1++;
}
}
function BattleTrans() {
fader.onMaxFade = function () {
_root.gotoAndStop("_battle_");
_root.cont._visible = false;
_root.StartBattle();
};
BattleFadeIn();
}
function StartBattle() {
TBV = {};
_quality = CheckOption("bquality");
Target = "e1";
if (!battling) {
dmn1 = null;
dmn2 = null;
dmn3 = null;
dmn4 = null;
modded = false;
BOSSBATTLE = ((boss == null) ? 0 : 1);
}
battling = true;
Acting = null;
Target = null;
victory = false;
test2 = 0;
PCstatsE = [];
var _local9 = ((boss != undefined) ? (boss[0]) : (FOE_SEL));
FOE_POS = foePartyLayouts[((boss != null) ? (boss[3]) : (_local9[4]))];
var _local8 = 1;
while (_local8 <= 4) {
if (_local9[_local8 - 1] == null) {
PCstatsE[_local8 - 1] = {model:null};
} else {
PCstatsE[_local8 - 1] = {name:((boss[1][_local8 - 1] != undefined) ? (boss[1][_local8 - 1]) : (GetModelInfo(_local9[_local8 - 1]).names[random(GetModelInfo(_local9[_local8 - 1]).names.length)])), model:_local9[_local8 - 1], hp:[10, 10], mp:[10, 10], B_LVL:((boss != null) ? (((typeof(boss[2]) == "number") ? (boss[2]) : (boss[2][_local8 - 1]))) : (FOE_LEVELS[_local8 - 1]))};
if (GameData.EN_FULL.Bestiary[_local9[_local8 - 1].toLowerCase()] == null) {
GameData.EN_FULL.Bestiary[_local9[_local8 - 1].toLowerCase()] = 0;
}
}
var _local12 = FOE_POS;
BA["e" + _local8]._x = _local12[_local8 - 1][0] + 38;
BA["e" + _local8]._y = (_local12[_local8 - 1][1] + 48) + 30;
var _local5 = 0;
while (_local5 < 2) {
var _local6 = BA[((_local5 == 0) ? "p" : "e") + _local8];
var _local3 = _root["PCstats" + ((_local5 == 1) ? "E" : "")][_local8 - 1];
_local6._visible = _local3.model != null;
_local6.gotoAndStop(2);
_local6.gotoAndStop(((_local6.stats = _local3)).model);
_local5++;
}
_local8++;
}
GDelay = 30;
endturn = true;
turnArray = null;
DramatisPersonae = [];
LAST_TURN_ID = null;
if (!modded) {
modded = true;
_local8 = 1;
while (_local8 <= 8) {
var _local11 = ((_local8 > 4) ? (["e", _local8 - 5]) : (["", _local8 - 1]));
var _local3 = _root["PCstats" + _local11[0]][_local11[1]];
_local3.statEnhn = {STR:0, VIT:0, AGL:0, SPR:0, ATK:0, DEF:0, MDEF:0};
_local3.statusCounter = {};
_local3.crescendo = 0;
_local3.AutoSTFX = {};
var _local10 = ["weapon", "shield", "armour", "helmet", "accessory", "accessory2"];
var _local7 = 0;
while (_local7 < _local10.length) {
var _local4 = GetItemInfo(_local3[_local10[_local7]]).effects;
var _local2 = 0;
while (_local2 < _local4.length) {
if (_local4[_local2][0] == "AUTO_STFX") {
_local3.AutoSTFX[_local4[_local2][1]] = true;
AddSTFX(_local3, _local4[_local2][1]);
}
_local2++;
}
_local7++;
}
for (var _local16 in _local3.REACT.PASSIVE.autoSTFX) {
_local3.AutoSTFX[_local16] = true;
AddSTFX(_local3, _local16);
}
_local8++;
}
}
SONG_PLAYING = null;
battling = 2;
SetupBattleGUI();
BA.onEnterFrame = BattleGizmoEnterFrame;
BA.exp_stash = {};
B_SKILLS_MASTERED = [[], [], [], []];
BA.BG.cacheAsBitmap = true;
SetupCreatureAnalyser(ANALYSER);
TMD.gotoAndStop("empty");
BA.Sky = new Color(BA.BG);
BA.Sky.setTransform(((_root.CURRENT_AMBIENCE != null) ? (_root.CURRENT_AMBIENCE) : ({ra:100, ga:100, ba:100, aa:100, rb:0, gb:0, bb:0, ab:0})));
if (__AreaEXTRA.SNOW) {
Snowfall(PARTICLE_CONT.createEmptyMovieClip("SNOWFALL", 2));
}
if (__AreaEXTRA.DREAM) {
_root.DreamBorder.removeMovieClip();
DreamscapeSettings(BehindBG.createEmptyMovieClip("DREAMSCAPE", 1), __AreaEXTRA.DREAM);
}
if (__AreaEXTRA.MIASMA) {
_root.Miasma.removeMovieClip();
SetupMiasma(PARTICLE_CONT.createEmptyMovieClip("Miasma", 1));
}
}
function BattleGizmoEnterFrame() {
if (ENDING_BATTLE) {
return(undefined);
}
if (((((((KEYDOWN && (!Key.isDown(38))) && (!Key.isDown(40))) && (!Key.isDown(37))) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) && (!Key.isDown(KEYS.Z))) && (!Key.isDown(KEYS.Q))) {
KEYDOWN = false;
} else if (!KEYDOWN) {
if (Key.isDown(38)) {
_root.Battle_ArrowUp();
KEYDOWN = true;
} else if (Key.isDown(40)) {
_root.Battle_ArrowDown();
KEYDOWN = true;
} else if (Key.isDown(37)) {
_root.Battle_ArrowLeft();
KEYDOWN = true;
} else if (Key.isDown(39)) {
_root.Battle_ArrowRight();
KEYDOWN = true;
} else if (Key.isDown(KEYS.X)) {
_root.Battle_Confirm();
KEYDOWN = true;
} else if (Key.isDown(KEYS.Z)) {
_root.Battle_Back();
KEYDOWN = true;
} else if (Key.isDown(KEYS.Q) && (_root.VPiano == null)) {
KEYDOWN = true;
_quality = _root.SetOption("bquality", {LOW:"HIGH", MEDIUM:"LOW", HIGH:"MEDIUM"}[_quality]);
}
}
if (this.exp_delay > 0) {
this.exp_delay--;
if (this.exp_delay == 0) {
for (var _local5 in this.exp_stash) {
var _local4 = _root["B" + _local5.toUpperCase()];
var _local3 = _local4.attachMovie("dmgNum", "expdn", 1711);
_local3._x = 20;
_local3._y = 40;
_local3._xscale = _local3._xscale * 1.5;
_local3._yscale = _local3._yscale * 1.5;
_local3.amount = ("+" + this.exp_stash[_local5]) + " EXP";
_local3.amount2 = "";
_local3.statmod = "";
_local3.gotoAndStop(3);
_local3.c = 0;
_local3.glyph._visible = false;
_local3.onEnterFrame = function () {
this.c++;
if (this.c < 10) {
this._y = this._y + ((this.c - 5) * 2);
} else if (this.c < 16) {
this._y = this._y + ((this.c - 13) * 1);
}
if (this.c > ((this._currentframe == 3) ? 50 : 30)) {
this._alpha = this._alpha - 20;
}
if (this._alpha <= 10) {
this.removeMovieClip();
}
};
delete this.exp_stash[_local5];
}
}
}
if (_root.GDelay > 0) {
_root.GDelay--;
if ((_root.GDelay <= 0) && (_root.endturn)) {
_root.nextTurn();
}
}
}
function newRound() {
if (DramatisPersonae.length == 0) {
i = 1;
while (i <= 4) {
var _local3 = 0;
while (_local3 < 2) {
var _local2 = ["p", "e"][_local3];
var _local4 = ((int(BA[_local2 + i].stats.getStat("AGL")) * 1000) + (10 * _local3)) + (5 - i);
DramatisPersonae.push({c:_local2 + i, AGL:_local4, acted:false});
DramatisPersonae.push({c:(_local2 + i) + "H", AGL:int(_local4 * 0.7), acted:false});
_local3++;
}
i++;
}
DramatisPersonae.sortOn("AGL", 18);
} else {
var i = 0;
while (i < DramatisPersonae.length) {
DramatisPersonae[i].AGL = int((((BA[DramatisPersonae[i].c.substr(0, 2)].stats.getStat("AGL") * 1000) + (10 * {p:0, e:1}[DramatisPersonae[i].c.substr(0, 1)])) + (5 - DramatisPersonae[i].c.substr(1, 1))) * ((DramatisPersonae[i].c.substr(2) == "H") ? 0.7 : 1));
i++;
}
DramatisPersonae.sortOn("AGL", 18);
var _local12 = null;
var i = 0;
while (i < DramatisPersonae.length) {
if (!DramatisPersonae[i].acted) {
_local12 = i;
break;
}
i++;
}
if (_local12 == null) {
var i = 0;
while (i < DramatisPersonae.length) {
DramatisPersonae[i].acted = false;
i++;
}
_local12 = 0;
}
LAST_TURN_ID = DramatisPersonae[_local12].c;
}
turnArray = [];
i = 1;
while (i <= 4) {
var _local3 = 0;
while (_local3 < 2) {
var _local2 = ["p", "e"][_local3];
var _local4 = ((int(BA[_local2 + i].stats.getStat("AGL")) * 1000) + (10 * _local3)) + (5 - i);
turnArray.push({c:_local2 + i, AGL:_local4, valid:BA[_local2 + i]._visible && (Boolean(_root[["PCstats", "PCstatsE"][_local3]][i - 1].hp[0])), showanyway:(_local2 == "p") && (_root.PCstats[i - 1].hp[0] === 0)});
turnArray.push({c:(_local2 + i) + "H", AGL:int(_local4 * 0.7), valid:HasSTFX(BA[_local2 + i].stats, "HST")});
_local3++;
}
i++;
}
turnArray.sortOn("AGL", 18);
if (LAST_TURN_ID != null) {
while (turnArray[0].c != LAST_TURN_ID) {
turnArray.push(turnArray.shift());
}
}
var i = 0;
while (i < DramatisPersonae.length) {
if (DramatisPersonae[i].c == turnArray[0].c) {
DramatisPersonae[i].acted = true;
}
i++;
}
trace("\n\n===TURN ARRAY===");
var i = 0;
while (i < turnArray.length) {
trace((((((i + ": c:") + turnArray[i].c) + " AGL:") + turnArray[i].AGL) + " valid:") + turnArray[i].valid);
i++;
}
if (!turnArray[0].valid) {
newRound();
}
}
function nextTurn() {
if (BMENU._visible) {
return(undefined);
}
if (((BA.p1.IsDead() && (BA.p2.IsDead())) && (BA.p3.IsDead())) && (BA.p4.IsDead())) {
_root.fader.quieten = true;
_root.fader.NO_TRANS = true;
_root.fader.onMaxFade = function () {
_root.gotoAndStop("GameOver");
this.quieten = false;
};
_root.FadeIn(60);
return(undefined);
}
if (((BA.e1.dying && (BA.e2.dying)) && (BA.e3.dying)) && (BA.e4.dying)) {
DelayCommand(DoVictory, 40);
return(undefined);
}
Acting.act_cursor._visible = false;
Acting = null;
Target = null;
TECH_USING = null;
REACTION_USING = null;
endturn = false;
GIVEN_XP = false;
TEMP_ELEM = null;
if (COUNTER_ATTACK != null) {
COUNTER_ATTACK.user.Act(true);
return(undefined);
}
newRound();
RefreshTurnOrderList();
trace("Now Acting: " + turnArray[0].c.substr(0, 2));
BA[turnArray[0].c.substr(0, 2)].Act();
turnArray.push(turnArray.shift());
}
function RefreshTurnOrderList() {
for (var _local9 in BMENU.TurnOrderList) {
BMENU.TurnOrderList[_local9].removeMovieClip();
}
var _local5 = 0;
var _local6 = 0;
while (_local6 < 15) {
var _local2 = turnArray[_local5 % turnArray.length];
if ((!_local2.valid) && (!_local2.showanyway)) {
} else {
var _local4 = null;
var _local7 = {};
var _local1 = 0;
while (_local1 < DramatisPersonae.length) {
if (DramatisPersonae[_local1].c == _local2.c) {
_local4 = _local1;
} else if (((_local4 != null) && (_local1 > _local4)) && (DramatisPersonae[_local1].acted)) {
_local7[DramatisPersonae[_local1].c] = true;
}
_local1++;
}
if (_local7[_local2.c]) {
} else {
var _local8 = _local2.c;
var _local3 = BMENU.TurnOrderList.attachMovie("TurnOrderBox", "T" + _local5, _local5);
_local3._x = 44 * _local6;
_local3.gotoAndStop(((_local8.substr(0, 1) == "p") ? ((_local2.showanyway ? 3 : 1)) : 2));
_local3.icon.attachBitmap(BA[_local8.substr(0, 2)].BMP_ICON, 1);
_local3.icon._width = (_local3.icon._height = 32);
_local3.indicator._visible = _local6 == 0;
if (_local2.showanyway) {
_local3.icon._alpha = 20;
}
_local6++;
}
}
_local5++;
}
}
function DoVictory() {
VICTORY.swapDepths(19273);
VICTORY.gotoAndPlay(2);
if (!GameData.plotVars.NO_BATTLE_MUSIC) {
playMusic("VictoryFanfare" + ((boss == null) ? "" : "2"));
}
victory = true;
RemoveStatEnhancements();
var _local1 = 1;
while (_local1 <= 4) {
if (BA["p" + _local1].stats.hp[0] > 0) {
BA["p" + _local1].Animate("Victory");
}
_local1++;
}
}
function FinishVictory() {
var _local7 = 0;
while (_local7 < 4) {
if (PCstats[_local7].model != null) {
PCstats[_local7].BATTLES = int(PCstats[_local7].BATTLES) + 1;
var _local6 = PCstats[_local7].learned._REACTIONS.PASSIVE;
for (var _local14 in _local6) {
if ((_local6[_local14][0] < GetReactionInfo("PASSIVE", _local14).AP) && (_local6[_local14][1])) {
_local6[_local14][0] = _local6[_local14][0] + (PCstats[_local7].REACT.PASSIVE.apmult ? (PCstats[_local7].REACT.PASSIVE.apmult) : 1);
if (_local6[_local14][0] >= GetReactionInfo("PASSIVE", _local14).AP) {
B_SKILLS_MASTERED[_local7].push(["PASSIVE", _local14]);
}
}
}
}
_local7++;
}
RecordStat("BATTLES");
SetBadgeStat("NumBattlesWon", GameData.RECORDS.BATTLES, "MAX");
SPOILS = [];
REWARD_GOLD = 0;
if (SPECIAL_LOOT) {
SPOILS.push(SPECIAL_LOOT);
SPECIAL_LOOT = null;
}
var _local13 = 0;
var _local16 = 1;
_local7 = 0;
while (_local7 < 4) {
_local13 = _local13 + int(PCstats[_local7].REACT.PASSIVE.lootmod);
_local16 = _local16 + int(PCstats[_local7].REACT.PASSIVE.goldmult);
_local7++;
}
var _local10 = 0;
while (_local10 < PCstatsE.length) {
if (_root.PCstatsE[_local10].name == undefined) {
} else {
var _local4 = 0;
while (_local4 < _root.PCstatsE[_local10].loot.length) {
if ((Math.random() * 100) < (_root.PCstatsE[_local10].loot[_local4][1] + _local13)) {
var _local8 = false;
var _local5 = 0;
while (_local5 < SPOILS.length) {
if (SPOILS[_local5][0] == _root.PCstatsE[_local10].loot[_local4][0]) {
_local8 = _local5;
}
_local5++;
}
if (!(_local8 === false)) {
SPOILS[_local5][1]++;
} else {
SPOILS.push([_root.PCstatsE[_local10].loot[_local4][0], 1, _root.PCstatsE[_local10].loot[_local4][2]]);
}
}
_local4++;
}
REWARD_GOLD = REWARD_GOLD + int(random((Math.pow(_root.PCstatsE[_local10].level, 2) + 1) + random(10)) * (Math.random() + 0.5));
if (_root.PCstatsE[_local10].extra_gold != null) {
REWARD_GOLD = REWARD_GOLD + _root.PCstatsE[_local10].extra_gold;
}
}
_local10++;
}
REWARD_GOLD = int(REWARD_GOLD * _local16);
if ((SPOILS.length > 0) || (REWARD_GOLD > 0)) {
_CURSOR._visible = false;
snapshot = new flash.display.BitmapData(STAGEW, STAGEH, true);
snapshot.draw(_root);
BA._visible = false;
_CURSOR._visible = true;
_root.createEmptyMovieClip("SNAP", 1007);
SNAP.attachBitmap(snapshot, 100);
SNAP.filters = [new flash.filters.BlurFilter(8, 8)];
_root.ClearBattlefield("LeaveVictory");
SNAP.battle = true;
VICTORY.gotoAndStop("SPOILS");
VICTORY._x = (VICTORY._y = 0);
VICTORY._alpha = 0;
VICTORY.ShownMoney = GameData.money;
VICTORY.GotMoney = "+ " + REWARD_GOLD;
VICTORY.MONEY = NumberFormat(VICTORY.ShownMoney);
GameData.money = GameData.money + REWARD_GOLD;
_root.RecordStat("GOLD_EARNED", REWARD_GOLD);
VICTORY.fraction = Math.floor(REWARD_GOLD / 30);
if (VICTORY.fraction < 1) {
VICTORY.fraction = 1;
}
var _local20 = ["arduously scrounged", "stole amongst the carnage", "find where your foes once stood", "found", "have acquired", "see these items", "now have these", "find in the aftermath", "now own"];
var _local19 = ["You didn't find any items.", "You got no items this time.", "No spoils here!", "Today was not your lucky day, item-wise.", "These opponents were poor and carried nothing."];
if (SPOILS.length == 0) {
VICTORY.YouFound = _local19[random(_local19.length)];
} else {
VICTORY.YouFound = ("You " + _local20[random(_local20.length)]) + ":";
}
VICTORY.SpoilsMenu = [VICTORY._GETALL];
var _local5 = 0;
while (_local5 < SPOILS.length) {
var _local3 = VICTORY.SpoilsList.attachMovie("VictorySpoil", "SPOIL" + _local5, 100 + _local5);
_local3._y = 54 * _local5;
if (SPOILS[_local5][0] == "Dreamstone") {
_local3.gotoAndStop("dreamstone");
_local3.ItemName = "Dreamstone #" + (SPOILS[_local5][2] + 1);
var _local12 = new flash.display.BitmapData(16, 16, true);
_local12.copyPixels(flash.display.BitmapData.loadBitmap("SoulOrb"), new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
_local3.createEmptyMovieClip("img", 10);
_local3.img.attachBitmap(_local12, 1);
_local3.img._width = (_local3.img._height = 48);
_local3.SKIP = true;
_local3.NECESSARY = true;
} else {
_local3.ItemName = SPOILS[_local5][0];
_local3.ItemAmount = "x " + SPOILS[_local5][1];
_local7 = 0;
while (_local7 < 4) {
_local3[("p" + (_local7 + 1)) + "has"] = HasItem(SPOILS[_local5][0], _local7);
_local7++;
}
AddItemImg(SPOILS[_local5][0], _local3, 48, 0);
if (GetItemInfo(SPOILS[_local5][0]).type == "plot") {
_local3.gotoAndStop("plot");
_local3.SKIP = true;
_local3.NECESSARY = true;
}
}
_local3.SPOIL = SPOILS[_local5];
_local3.Acquire = function () {
if (this.SPOIL[0] == "Dreamstone") {
GIVEDREAMSTONE(this.SPOIL[2]);
} else if (_root.GetItemInfo(this.SPOIL[0]).type == "plot") {
GIVEPLOTITEM(this.SPOIL[0]);
} else {
var _local3 = _root.PCstats[((_root.VICTORY_LAST_SEL_PC = _root.VICTORY.SEL_PC)) - 1];
if (_root.FullInventory(_local3)) {
_root.playSFX("error");
_root.Flash(this, [255, 0, 0]);
_root.Flash(_root.VICTORY["inv" + _root.VICTORY.SEL_PC], [255, 0, 0]);
return(false);
}
_root.GiveItemTo(this.SPOIL[0], this.SPOIL[1], _local3);
}
_root.VICTORY["inv" + _root.VICTORY.SEL_PC].Refresh();
this.removeMovieClip();
_root.VICTORY.SpoilsMenu[this.INDEX] = null;
return(true);
};
_local3.INDEX = VICTORY.SpoilsMenu.push(_local3) - 1;
_local5++;
}
VICTORY.SpoilsMenu.push(VICTORY._END);
VICTORY._GETALL.LABEL = "GET ALL";
VICTORY._END.LABEL = "FINISH";
VICTORY._GETALL.gotoAndStop(1);
VICTORY._END.gotoAndStop(1);
if (!SPOILS.length) {
VICTORY._GETALL._alpha = 20;
VICTORY._GETALL.SKIP = true;
}
VICTORY.cursor.POS = 0;
VICTORY.cursor.Move = function (n, mute) {
var _local5 = 0;
var _local3 = 1;
while (_local3 < (this._parent.SpoilsMenu.length - 1)) {
if ((!this._parent.SpoilsMenu[_local3].SKIP) && (this._parent.SpoilsMenu[_local3].SPOIL != null)) {
_local5++;
}
_local3++;
}
if (!_local5) {
this._parent._GETALL._alpha = 20;
this._parent._GETALL.SKIP = true;
}
this._parent.SpoilsMenu[this.POS].gotoAndStop(1);
this.POS = this.POS + n;
while ((this._parent.SpoilsMenu[this.POS]._y == null) || (this._parent.SpoilsMenu[this.POS].SKIP)) {
this.POS = this.POS + (n ? (n) : 1);
if (this.POS < 0) {
this.POS = this._parent.SpoilsMenu.length - 1;
}
if (this.POS >= this._parent.SpoilsMenu.length) {
this.POS = 0;
}
}
var _local6 = this._parent.SpoilsMenu[this.POS];
_local6.gotoAndStop(2);
this._y = (_local6._y + (_local6._height / 2)) + ((_local6._parent._name == "SpoilsList") ? (this._parent.SpoilsList._y) : 0);
if (n && (!mute)) {
_root.playSFX("menuBlip1");
}
};
VICTORY.cursor.Move(0, true);
VICTORY.SEL_PC = (_root.VICTORY_LAST_SEL_PC ? (_root.VICTORY_LAST_SEL_PC) : 1);
if (_root.PCstats[VICTORY.SEL_PC - 1].model == null) {
VICTORY.SEL_PC = 1;
}
_local7 = 1;
while (_local7 <= 4) {
var _local9 = VICTORY["P" + _local7];
if (_root.PCstats[_local7 - 1] == null) {
_local9._visible = false;
} else {
_local9._visible = true;
_local9.gotoAndStop(((_local7 == VICTORY.SEL_PC) ? 2 : 3));
if (_local9.box == null) {
AttachPCSprite(_local9, _root.PCstats[_local7 - 1], 1, 1, 3);
}
VICTORY["inv" + _local7].Refresh = function () {
this.attachBitmap(_root.InventorySquare(_root.PCstats[this._name.substr(-1) - 1]), 0);
this._width = (this._height = 48);
};
VICTORY["inv" + _local7].Refresh();
}
_local7++;
}
playSFX("menuBlip4");
VICTORY.onEnterFrame = function () {
if (this._alpha < 100) {
this._alpha = this._alpha + 20;
if (this._alpha >= 100) {
this._alpha = 100;
}
return(undefined);
}
if (this.ShownMoney < GameData.money) {
var _local5 = ((_root.REWARD_GOLD < this.fraction) ? (_root.REWARD_GOLD) : (this.fraction));
this.ShownMoney = this.ShownMoney + _local5;
_root.REWARD_GOLD = _root.REWARD_GOLD - _local5;
this.MONEY = _root.NumberFormat(this.ShownMoney);
}
if ((((((!Key.isDown(38)) && (!Key.isDown(40))) && (!Key.isDown(37))) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) && (!Key.isDown(KEYS.Z))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if (Key.isDown(37)) {
this["P" + this.SEL_PC].gotoAndStop(3);
do {
this.SEL_PC--;
if (this.SEL_PC <= 0) {
this.SEL_PC = 4;
}
} while (_root.PCstats[this.SEL_PC - 1] == null);
this["P" + this.SEL_PC].gotoAndStop(2);
this.KeyDown = true;
playSFX("menuBlip1");
} else if (Key.isDown(39)) {
this["P" + this.SEL_PC].gotoAndStop(3);
do {
this.SEL_PC++;
if (this.SEL_PC > 4) {
this.SEL_PC = 1;
}
} while (_root.PCstats[this.SEL_PC - 1] == null);
this["P" + this.SEL_PC].gotoAndStop(2);
this.KeyDown = true;
playSFX("menuBlip1");
} else if (Key.isDown(40)) {
this.cursor.Move(1);
this.KeyDown = true;
} else if (Key.isDown(38)) {
this.cursor.Move(-1);
this.KeyDown = true;
} else if (Key.isDown(KEYS.X)) {
this.KeyDown = true;
if (!this.SHOW_MASTER) {
if (this.cursor.POS == 0) {
var _local4 = 0;
var _local3 = 1;
while (_local3 < (this.SpoilsMenu.length - 1)) {
if (this.SpoilsMenu[_local3].SPOIL != null) {
if (this.SpoilsMenu[_local3].Acquire()) {
_local4++;
} else {
this.cursor.POS = _local3;
this.cursor.Move(0, true);
return(false);
}
}
_local3++;
}
if (_local4) {
_root.playSFX("menuBlip4");
}
this.cursor.POS = this.SpoilsMenu.length - 1;
this.cursor.Move(0, true);
return(undefined);
}
if (this.SpoilsMenu[this.cursor.POS].SPOIL != null) {
if (this.SpoilsMenu[this.cursor.POS].Acquire()) {
this.cursor.Move(1, true);
_root.playSFX("menuBlip4");
}
return(undefined);
}
if (this.SpoilsMenu[this.cursor.POS]._name == "_END") {
var _local3 = 1;
while (_local3 < (this.SpoilsMenu.length - 1)) {
if (this.SpoilsMenu[_local3].NECESSARY) {
this.SpoilsMenu[_local3].Acquire();
}
_local3++;
}
}
if (ShowSkillsMasteredScreen()) {
return(undefined);
}
}
_root.EndBattle();
this.onEnterFrame = null;
}
}
};
} else if (!ShowSkillsMasteredScreen(true)) {
EndBattle();
}
}
function ShowSkillsMasteredScreen(zeroAlpha) {
if ((((!B_SKILLS_MASTERED[0].length) && (!B_SKILLS_MASTERED[1].length)) && (!B_SKILLS_MASTERED[2].length)) && (!B_SKILLS_MASTERED[3].length)) {
return(false);
}
VICTORY.gotoAndStop("LEARNED");
playSFX("MasterJingle");
var _local4 = 0;
while (_local4 < 4) {
var _local6 = VICTORY["p" + _local4];
if (PCstats[_local4] == null) {
_local6.gotoAndStop("empty");
} else {
_local6.gotoAndStop(2);
_local6.charname = (PCstats[_local4].name + "\nLevel ") + PCstats[_local4].level;
AttachPCSprite(_local6.sprite, _root.PCstats[_local4], 1, 1, 3);
_local6.elemstrip.gotoAndStop(PCstats[_local4].element);
var _local3 = 0;
while (_local3 < B_SKILLS_MASTERED[_local4].length) {
var _local5 = _local6.LIST.attachMovie("Afterbattle_SkillMastered", "A" + _local3, _local3);
_local5._y = 25 * _local3;
_local5.icon.gotoAndStop(B_SKILLS_MASTERED[_local4][_local3][0]);
_local5.skill = B_SKILLS_MASTERED[_local4][_local3][1];
_local3++;
}
}
_local4++;
}
VICTORY.SHOW_MASTER = true;
VICTORY._alpha = 0;
VICTORY.onEnterFrame = function () {
if (this._alpha < 100) {
this._alpha = this._alpha + 20;
if (this._alpha >= 100) {
this._alpha = 100;
}
return(undefined);
}
if ((!Key.isDown(KEYS.X)) && (!Key.isDown(KEYS.Z))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if (Key.isDown(KEYS.X) || (Key.isDown(KEYS.Z))) {
_root.EndBattle();
this.onEnterFrame = null;
}
}
};
return(true);
}
function dmgFormula(attacker, target, _atk, elem) {
var _local1 = attacker.stats;
var _local3 = target.stats;
calculateStats(_local1);
calculateStats(_local3);
var _local4 = (_atk ? (_atk) : (_local1.ATK)) + _local1.statEnhn.ATK;
var _local2 = ((_local4 - (TECH_USING.ignore_def ? 0 : (_local3.getStat("DEF")))) * (1 + (((_local1.getStat("STR") * (HasSTFX(_local1, "BSK") ? 2 : 1)) - 10) / 10))) * ((_local1.level / 5) + 1);
_local2 = _local2 * (0.9 + (Math.random() * 0.2));
if (_local2 < 0) {
_local2 = 0;
}
return(int(_local2));
}
function MdmgFormula(attacker, target, spellPower, elem, altSPR) {
var _local2 = attacker.stats;
var _local3 = target.stats;
calculateStats(_local2);
calculateStats(_local3);
var _local1 = ((spellPower - (TECH_USING.ignore_def ? 0 : (_local3.getStat("MDEF")))) * (1 + (((altSPR ? (altSPR) : (_local2.getStat("SPR"))) - 10) / 10))) * ((_local2.level / 5) + 1);
if ((spellPower > 0) && (_local1 < 0)) {
_local1 = 0;
}
_local1 = _local1 * (0.7 + (Math.random() * 0.6));
return(int(_local1));
}
function BonusModifier(R, dmg, as) {
trace(("-[R:START ~ " + as.name) + "]----------");
trace("Start DMG: " + dmg);
var _local2 = 1 + Num(R.dmgmult);
if (_local2 < 0) {
_local2 = 0;
}
var _local5 = ((dmg < 0) ? -1 : 1);
dmg = Math.abs(dmg) + Num(R.dmgadd);
if (dmg < 0) {
dmg = 0;
}
dmg = dmg * _local5;
if (Acting.SIDE == "p") {
if (R.typeBonus[Target.stats.monStats.TYPE]) {
_local2 = _local2 + R.typeBonus[Target.stats.monStats.TYPE];
}
}
if (R.smitePLUS) {
dmg = dmg + Num(as.getStat("SPR") * as.level);
}
if (R.smiteX) {
_local2 = _local2 + ((as.getStat("SPR") - 10) / 16);
}
dmg = dmg * _local2;
trace(("dmgMult=" + (_local2 * 100)) + "%");
TraceObj(R);
trace("End DMG: " + dmg);
trace("-[R:END]----------");
return(dmg);
}
function ElemModifier(target, element, dmg) {
if (HasSTFX(target.stats, ELEM_char[element] + "N1")) {
return(0);
}
if (dmg < 0) {
return(1);
}
var _local1 = 1;
var _local2 = int(target.stats.RESIST[element]) + int(REACTION_USING.RESIST[element]);
_local1 = 1 - (_local2 / 100);
trace((("Elem mod (" + element) + "): ") + _local1);
if ((_local2 > 0) && (dmg < 0)) {
_local1 = Math.abs(_local1);
}
return(_local1);
}
function GetUsingElement() {
var _local1 = GetItemInfo(Acting.stats.weapon);
return((TEMP_ELEM ? (TEMP_ELEM) : ((TECH_USING.elem ? (TECH_USING.elem) : ((((TECH_USING.MODE != "M") && (REACTION_USING.soulstrike)) ? (Acting.stats.element) : ((_local1.elem ? (_local1.elem) : ((Acting.stats.elem ? (Acting.stats.elem) : "NONE"))))))))));
}
function FinalDamage(dmg) {
var _local7 = Acting.stats;
var _local4 = Target.stats;
var _local5 = GetItemInfo(_local7.weapon);
var _local3 = ((TECH_USING.MODE == "M") ? "M" : "P");
var _local6 = GetUsingElement();
trace("Element: " + _local6);
if ((TECH_USING.MODE == "P") || (TECH_USING == null)) {
if (_local5.typeBonus[_local4.monStats.TYPE]) {
dmg = dmg * _local5.typeBonus[_local4.monStats.TYPE];
}
if (_local5.elemBonus[_local4.monStats.cElem]) {
dmg = dmg * _local5.elemBonus[_local4.monStats.cElem];
}
}
if (TECH_USING.special.COUP_DE_GRACE) {
if (target.stats.status.length == 0) {
dmg = dmg / 2;
} else {
dmg = dmg * (1 + (0.5 * target.stats.status.length));
}
}
if (REACTION_USING) {
dmg = BonusModifier(REACTION_USING, dmg, _local7);
}
dmg = dmg * (1 + ((int(Acting.stats.EMPOWER[element]) + int(REACTION_USING.EMPOWER[element])) / 100));
if (!TECH_USING.special.HEALING) {
dmg = dmg * ElemModifier(Target, _local6, dmg);
}
if (tALL && (!TECH_USING.no_dmg_split)) {
if (_num_targets > 1) {
dmg = dmg / 2;
}
}
if (_root.HasSTFX(_local4, _local3 + "SH") && (!TECH_USING.ignore_shield)) {
dmg = dmg * 0.5;
BattleParticleEffect(((_local3 == "M") ? "m" : "") + "shield", Target);
}
if (target.DEFENDING) {
dmg = dmg * 0.7;
}
if ((TECH_USING.special.HEALING && ((Target.mdlStats.TYPE == "UNDEAD") || (HasSTFX(_local4, "ZOM")))) && (!TECH_USING.special.HEALUNDEAD)) {
dmg = Math.abs(dmg);
}
if (SONG_PLAYING) {
if ((Acting.SIDE == "p") && (SONG_PLAYING.Song.DmgMult[_local3] != null)) {
dmg = dmg * (1 + (SONG_PLAYING.Song.DmgMult[_local3] * SONG_ELWYEN.stats.getStat("SPR")));
} else if ((Acting.SIDE == "e") && (SONG_PLAYING.Song.DmgResist[_local3] != null)) {
dmg = dmg * (1 - (SONG_PLAYING.Song.DmgResist[_local3] * SONG_ELWYEN.stats.getStat("SPR")));
}
}
trace("Final Damage: " + dmg);
if (dmg < -9999) {
dmg = -9999;
} else if (dmg > 9999) {
dmg = 9999;
}
return(int(dmg));
}
function AddDmgNumber(x, y) {
var _local2 = {x:x, y:y};
BA.localToGlobal(_local2);
d_d++;
if (d_d > 36000) {
d_d = 35000;
}
var _local1 = PARTICLE_CONT.attachMovie("dmgNum", "dn_" + d_d, d_d);
_local1._x = _local2.x;
_local1._y = _local2.y;
_local1._xscale = _local1._xscale * 1.5;
_local1._yscale = _local1._yscale * 1.5;
return(_local1);
}
function DamageNumber(x, y, amount, colour, statmod, frame, eglyph) {
var _local5 = AddDmgNumber(x, y);
if (isNaN(amount) || (TEMP_ELEM == "empty")) {
_local5.glyph._visible = false;
} else {
_local5.glyph.gotoAndStop((DN_GLYPH ? (DN_GLYPH) : ((eglyph ? (eglyph) : (GetUsingElement())))));
}
TEMP_ELEM = null;
if (colour != null) {
var _local3 = HexToRGB(colour);
var _local4 = HexToRGB(colour);
var _local2 = 0;
while (_local2 < 3) {
_local3[_local2] = _local3[_local2] + 80;
if (_local3[_local2] > 255) {
_local3[_local2] = 255;
}
_local4[_local2] = _local4[_local2] - 60;
if (_local4[_local2] < 0) {
_local4[_local2] = 0;
}
_local2++;
}
_local5.amount = (((_local5.colourString1 = ("<p align='center'><font color='#" + RGBtoHex(_local3).toString(16)) + "'>")) + amount) + "</font></p>";
_local5.amount0 = (((_local5.colourString2 = ("<p align='center'><font color='#" + colour.toString(16)) + "'>")) + amount) + "</font></p>";
} else {
_local5.amount = (_local5.amount0 = amount);
}
_local5.statmod = ((statmod == null) ? "" : (statmod));
if (frame != null) {
_local5.gotoAndStop(frame);
}
_local5.c = 0;
_local5.onEnterFrame = function () {
this.c++;
if (this.c < 10) {
this._y = this._y + ((this.c - 5) * 2);
} else if (this.c < 16) {
this._y = this._y + ((this.c - 13) * 1);
}
if (this.c > ((this._currentframe == 3) ? 50 : 30)) {
this._alpha = this._alpha - 10;
var _local2 = int((100 - this._alpha) * 0.2);
this.filters = [new flash.filters.BlurFilter(_local2, _local2)];
this._width = this._width * 1.1;
this._height = this._height * 0.9;
}
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
return(_local5);
}
function ShowStatusWord(x, y, stfx) {
var _local2 = DamageNumber(x, y, "", null);
var _local1 = {PSN:["#80DD46", "#60bD26", "Poison"], PAR:["#FFFD4A", "#dFdD2A", "Stun"], SLP:["#E3E3E3", "#c3c3c3", "Sleep"], CRS:["#8E61CD", "#6E41aD", "Curse"], CNF:["#C2ABE4", "#a28Bc4", "Confuse"], NUM:["#DB6B42", "#bB4B22", "Numb"], SIL:["#E6FEFF", "#c6dEdF", "Silent"], DRK:["#3934A5", "#191485", "Blind"], RGN:["#98FFB6", "#78dF96", "Regen"], HST:["#F6C261", "#d6a241", "Haste"], PSH:["#35DFE8", "#15dFc8", "Shield"], MSH:["#C540DD", "#a520bD", "M.Shield"], BSK:["#aa0000", "#880000", "Berserk"], BRK:["#aa8866", "#886644", "Barkskin"], ZOM:["#008888", "#006666", "Zombie"], GST:["#66ff99", "#44cc77", "Astral"], BLD:["#cc0000", "#990000", "Bleed"], FN1:["#ff9900", "#cc6600", "NullFire"], WN1:["#00ddff", "#00aacc", "NullWater"], AN1:["#ffff55", "#cccc22", "NullAir"], EN1:["#66ff00", "#33cc00", "NullEarth"], LN1:["#ffffff", "#ccb8cc", "NullLight"], DN1:["#55005f", "#000000", "NullDark"], SN1:["#33ff99", "#00cc66", "NullAether"], MN1:["#cf00cc", "#9f0099", "NullFig"], SHF:["#ff9900", "#cc6600", "Pyro Shell"], SHW:["#00ddff", "#00aacc", "Hydro Shell"], SHA:["#ffff55", "#cccc22", "Aero Shell"], SHE:["#66ff00", "#33cc00", "Geo Shell"], SHL:["#ffffff", "#ccb8cc", "Lumi Shell"], SHD:["#55005f", "#000000", "Umbra Shell"]};
_local2.gotoAndStop(4);
_local2.amount = ((("<font color='" + _local1[stfx][0]) + "'>") + _local1[stfx][2]) + "</font>";
_local2.amount0 = ((("<font color='" + _local1[stfx][1]) + "'>") + _local1[stfx][2]) + "</font>";
}
function ShowStatmodWord(x, y, statmod) {
var _local2 = AddDmgNumber(x, y);
if (statmod[0] == "STFX") {
_local2.gotoAndStop("stfx_recover");
_local2.icon.gotoAndStop(statmod[1]);
} else {
_local2.gotoAndStop("stat" + ((statmod[1] > 0) ? "up" : "down"));
_local2.stat = ((("<font color='" + {STR:"#ff5555", VIT:"#66dd55", SPR:"#55ddff", AGL:"#ffff55", ATK:"#ffdd88", DEF:"#aaaaaa", MDEF:"#f055ff"}[statmod[0]]) + "'>") + statmod[0]) + "</font>";
_local2.mod = ((statmod[1] > 0) ? "+" : "") + statmod[1];
}
_local2._width = _local2._width * 0.8;
_local2._height = _local2._height * 0.8;
_local2.vel = ((statmod[0] == "STFX") ? -25 : -16);
_local2.count = 0;
_local2.onEnterFrame = function () {
this._y = this._y + this.vel;
this.vel = this.vel * 0.7;
this.count++;
if (this.count > 30) {
this._alpha = this._alpha - 10;
var _local2 = int((100 - this._alpha) * 0.2);
this.filters = [new flash.filters.BlurFilter(_local2, _local2)];
this._width = this._width * 1.1;
this._height = this._height * 0.9;
}
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
}
function InflictDamage(amount, noflash, spell, affect_mp, flash_colour, coordMod, noSplit, eglyph) {
if ((!noSplit) && (SONG_PLAYING.Song.SplitDamage)) {
var _local10 = 0;
var _local2 = 0;
while (_local2 < 4) {
if (_root["PCstats" + ((Target.SIDE == "p") ? "" : "E")][_local2].hp[0]) {
_local10++;
}
_local2++;
}
oldTarget = Target;
_local2 = 0;
while (_local2 < 4) {
if (_root["PCstats" + ((Target.SIDE == "p") ? "" : "E")][_local2].hp[0]) {
Target = BA[Target.SIDE + (_local2 + 1)];
InflictDamage(int(amount / _local10), noflash, spell, affect_mp, flash_colour, coordMod, true, eglyph);
}
_local2++;
}
Target = oldTarget;
return(undefined);
}
var _local30 = (DN_GLYPH = GetUsingElement());
amount = int(amount);
if (Target.stats.hp[0] <= 0) {
amount = 0;
}
if (amount > 0) {
if (!Target.moving) {
Target.Animate("hit");
}
if (!(noflash === true)) {
Flash(Target.mdl, (flash_colour ? (flash_colour) : (ElemRGB(_local30))));
}
}
if (amount == null) {
return(undefined);
}
Target.stats.DMG_R = int(Target.stats.DMG_R) + Math.abs(amount);
Acting.stats.DMG_D = int(Acting.stats.DMG_D) + Math.abs(amount);
if (Acting.SIDE == "p") {
RecordStat("DMG_D", Math.abs(amount));
}
if (Target.SIDE == "p") {
RecordStat("DMG_R", Math.abs(amount));
}
var _local23 = (affect_mp ? "mp" : "hp");
var _local15 = _root["PCstats" + ((Target._name.substr(0, 1) == "e") ? "E" : "")][Target._name.substr(1) - 1][_local23];
var _local25 = amount;
if (Target.MY_DMG_NUM != null) {
_local25 = Target.MY_DMG_NUM.numAmount + amount;
Target.MY_DMG_NUM.removeMovieClip();
}
var _local26 = Target.mdl.HitPoint.getBounds(BA);
var _local24 = DamageNumber(_local26.xMin + int(coordMod.x), _local26.yMin + int(coordMod.y), Math.abs(_local25), ((_local25 >= 0) ? (((_local23 == "mp") ? 11950784 : ((PCRITICAL ? 15715456 : null)))) : (((_local23 == "mp") ? 7859967 : 8447802))), "", 1, eglyph);
_local24.numAmount = amount;
Target.MY_DMG_NUM = _local24;
if ((PCRITICAL && (spell != "DRAIN")) && (!DRAINING)) {
var _local28 = DamageNumber(Target._x, Target._y - 30, "<font color='#ffcc00'>CRITICAL!</font>", null, "", 3, eglyph);
_local24._xscale = _local24._xscale + 60;
_local24._yscale = _local24._yscale + 60;
_local28._xscale = _local28._xscale + 20;
_local28._yscale = _local28._yscale + 20;
}
if (((TECH_USING == null) || (TECH_USING.MODE == "P")) && (!TURN_BASED_STFX_CHECK)) {
var _local16 = {};
var _local3 = 0;
while (_local3 < Target.stats.gettingSTFX.length) {
_local16[Target.stats.gettingSTFX[_local3]] = true;
_local3++;
}
if (!_local16.SLP) {
_root.RemoveSTFX(Target.stats, "SLP");
}
if (!_local16.CNF) {
_root.RemoveSTFX(Target.stats, "CNF");
}
}
var _local29 = PCstats[0];
_local15[0] = _local15[0] - amount;
if ((_local15[0] <= 0) && (_local23 == "hp")) {
_local15[0] = 0;
Target.dying = true;
Target.onDie();
GDelay = 70;
}
if (_local15[0] > _local15[1]) {
_local15[0] = _local15[1];
}
var _local27 = ((REACTION_USING.survivor && (_local29 > 1)) ? 1 : 0);
if (_local15[0] < _local27) {
_local15[0] = _local27;
}
if ((Acting == null) || (Acting == Target)) {
return(undefined);
}
if ((GetSubCommand(Command[1], Command[0]).drain != undefined) && (spell != "DRAIN")) {
var _local7 = Target;
Target = Acting;
InflictDamage((-amount) * GetSubCommand(Command[1], Command[0]).drain, true, "DRAIN", null, null, null, null, eglyph);
Target = _local7;
}
if (((amount > 0) && (Acting != Target)) && (TECH_USING.MODE != "M")) {
var _local11 = "FWEALD";
var _local3 = 0;
while (_local3 < _local11.length) {
if (HasSTFX(Target.stats, "SH" + _local11.substr(_local3, 1))) {
trace(ELEMENTS_[_local3] + " Shield:");
TEMP_ELEM = ELEMENTS_[_local3];
var _local8 = (Target.stats.level * Target.stats.getStat("SPR")) / 3;
var _local7 = Target;
Target = Acting;
InflictDamage(FinalDamage(_local8));
Target = _local7;
BattleParticleEffect("shell_" + ELEMENTS_[_local3], Target);
}
_local3++;
}
}
var _local5 = Target.Counters[((TECH_USING == null) ? "P" : (TECH_USING.MODE))];
if (((((_local5 != null) && (Acting != null)) && (Target._name != Acting._name)) && (Target.stats.hp[0])) && (TECH_USING.MODE != "I")) {
var _local9 = ["CNF", "SLP", "CRS"];
var _local4 = 0;
while (_local4 < _local9.length) {
if (HasSTFX(Target.stats, _local9[_local4])) {
return(undefined);
}
_local4++;
}
var _local3 = 0;
while (_local3 < _local5.length) {
if ((Math.random() * 100) <= _local5[_local3][1]) {
COUNTER_ATTACK = {user:Target, tech:_local5[_local3][0], target:Acting};
break;
}
_local3++;
}
}
}
function DoStatMod(SS) {
var _local6 = {hp:Target.stats.hp[1], mp:Target.stats.mp[1]};
for (s in SS.stat_mod) {
var _local4 = (SS.stat_mod[s].pop ? (SS.stat_mod[s][0] + random((SS.stat_mod[s][1] - SS.stat_mod[s][0]) + 1)) : (SS.stat_mod[s]));
var _local3 = _local4 * (SS.special.HEALING ? 1 : -1);
Target.stats.statEnhn[s] = Target.stats.statEnhn[s] + _local3;
var _local2 = Target.stats[s] + Target.stats.BONUS[s];
if (Target.stats.statEnhn[s] > (100 - _local2)) {
Target.stats.statEnhn[s] = 100 - _local2;
}
if (Target.stats.statEnhn[s] < (-_local2)) {
Target.stats.statEnhn[s] = -_local2;
}
var _local5 = 0 + (SS.stat_mod[s] * (SS.special.HEALING ? 1 : -1));
if (Target.stats.gettingSTATMOD == null) {
Target.stats.gettingSTATMOD = [];
}
Target.stats.gettingSTATMOD.push([s, _local3]);
}
calculateStats(Target.stats);
if (Target.stats.hp[1] > _local6.hp) {
Target.stats.hp[0] = Target.stats.hp[0] + (Target.stats.hp[1] - _local6.hp);
}
if (Target.stats.mp[1] > _local6.mp) {
Target.stats.mp[0] = Target.stats.mp[0] + (Target.stats.mp[1] - _local6.mp);
}
}
function GiveEXP(amount, receiver, target) {
if ((receiver.dying || (receiver.stats == null)) || (receiver == null)) {
return(undefined);
}
var _local4 = (int(amount * (target.stats.level / receiver.stats.level)) * 2) * (1 + int(receiver.stats.REACT.PASSIVE.expmult));
if (_local4 < 0) {
_local4 = 0;
}
if (receiver._name.substr(0, 1) == "p") {
if (BA.exp_stash[receiver._name] == null) {
BA.exp_stash[receiver._name] = 0;
}
BA.exp_stash[receiver._name] = BA.exp_stash[receiver._name] + _local4;
BA.exp_delay = 2;
}
receiver.stats.exp = int(receiver.stats.exp + _local4);
var _local3 = false;
var _local5 = {hp:receiver.stats.hp[1], mp:receiver.stats.mp[1]};
if (receiver.stats.exp && (receiver.stats.level < 100)) {
while (receiver.stats.exp >= (receiver.stats.level * 1000)) {
receiver.stats.exp = receiver.stats.exp - (receiver.stats.level * 1000);
receiver.stats.level++;
_local3 = true;
}
}
if (receiver.stats.level > 100) {
receiver.stats.level = 100;
}
if (_local3) {
_root.calculateStats(receiver.stats);
receiver.stats.hp[0] = receiver.stats.hp[0] + (receiver.stats.hp[1] - _local5.hp);
receiver.stats.mp[0] = receiver.stats.mp[0] + (receiver.stats.mp[1] - _local5.mp);
_root.Flash(receiver.mdl, [255, 238, 85]);
_root.DamageNumber(receiver._x, receiver._y, "Level Up!", 16641951, "Level " + receiver.stats.level);
_root.playSFX("LevelUp");
if (receiver.stats.name == "Mardek") {
_root.SetBadgeStat("MardekLevel", receiver.stats.level, "MAX");
}
}
}
function BattleParticleEffect(pfx, target, sfx, SS) {
var _local3 = ((Acting.mdl.AltPFXSource != null) ? (Acting.mdl.AltPFXSource) : ((SS.BREATH ? (Acting.mdl.BreathSource) : ((target.mdl.HitPoint ? (target.mdl.HitPoint) : ((target.core ? (target.core) : (target))))))));
trace(_local3);
_local3 = _local3.getBounds(target._parent);
trace([_local3.xMin, _local3.yMin]);
var _local2 = ((((target._name.substr(0, 7) == "ALL_PFX") || (target._name == "BreathCentre")) || (SS.BREATH && (SS.TT.substr(0, 3) == "ALL"))) ? 10000 : (target.getDepth())) + 1;
while (target._parent.getInstanceAtDepth(_local2)) {
_local2++;
}
var _local5 = ParticleEffect(pfx, _local3.xMin, _local3.yMin, sfx, target._parent, _local2);
_local5._xscale = _local5._xscale * 0.8;
_local5._yscale = _local5._yscale * 0.8;
if ((((SS.BREATH && (target.SIDE == "e")) || ((!SS.BREATH) && (target.SIDE == "p"))) || (SS.ALL_PFX && (target._name.substr(-1, 1) == "p"))) || (SS.CENTRED && (Acting.SIDE == "p"))) {
_local5._xscale = _local5._xscale * -1;
}
}
function TechUsing_IncreaseAP() {
var _local1 = TECH_USING;
if (Acting._name.substr(0, 1) == "p") {
if (Acting.stats.learned[_local1.skill] == null) {
Acting.stats.learned[_local1.skill] = 0;
}
if (Acting.stats.learned[_local1.skill] < TECH_USING.AP) {
Acting.stats.learned[_local1.skill] = Acting.stats.learned[_local1.skill] + (Acting.stats.REACT.PASSIVE.apmult ? (Acting.stats.REACT.PASSIVE.apmult) : 1);
if (Acting.stats.learned[_local1.skill] >= TECH_USING.AP) {
MasteredSkill(TECHbar);
B_SKILLS_MASTERED[Acting.ID - 1].push(["ACT", _local1.skill]);
} else {
TECHbar.MASTER._visible = true;
TECHbar.MASTER.gotoAndStop(1);
TECHbar.MASTER.AP1 = Acting.stats.learned[_local1.skill];
TECHbar.MASTER.AP2 = TECH_USING.AP;
TECHbar.MASTER.APbar.gotoAndStop(101 - Math.floor((Acting.stats.learned[_local1.skill] / TECH_USING.AP) * 100));
}
}
}
}
function DoCastSpell(spell) {
if (_root.HasSTFX(Acting.stats, "CRS")) {
Target = Acting;
}
spellCasting = true;
TECHbar.Show(spell.name);
_root.theSpell = spell;
BG.haze.fading = 1;
if (spell.soul == "DragonSoul") {
Acting.mdl.gotoAndPlay("breath");
} else if (GetSpellStats(spell).special.PHYSICAL) {
phySpell = true;
Acting.Attack();
} else {
Acting.Animate("special");
}
}
function CastSpell(dontEndTurn) {
var _local7 = (((Target.substr(0, 3) == "ALL") && (TECH_USING.TT.indexOf("ALL") == -1)) ? 2 : 1);
if (Acting.stats.mp[0] < (TECH_USING.MP * _local7)) {
TECHbar.Show("Not enough MP!", "empty");
EndSpellCasting();
return(undefined);
}
Acting.stats.mp[0] = Acting.stats.mp[0] - (TECH_USING.MP * _local7);
var _local4 = TECH_USING;
TechUsing_IncreaseAP();
if (_local4.DMG[3][0] == "crescendo") {
Acting.stats.crescendo++;
}
CASTING_ON_ALL = null;
if (Target.substr(0, 3) == "ALL") {
tType = Target.substr(4).toLowerCase();
tALL = tType;
CASTING_ON_ALL = 1;
CASTING_TARGETS = [];
_num_targets = 0;
var _local5 = 1;
while (_local5 <= 4) {
if (BA[tALL + _local5].stats.hp[0]) {
_num_targets++;
}
_local5++;
}
var _local6 = 0;
var _local1 = 1;
while (_local1 <= 4) {
calculateStats(PCstats[_local1 - 1]);
calculateStats(PCstatsE[_local1 - 1]);
var _local3 = 0;
for ( ; _local3 < 2 ; _local3++) {
var _local2 = "pe".substr(_local3, 1);
if ((tType != _local2) && (!_local4.ARENA)) {
} else {
if (_local4.SUMMON) {
if (BA[_local2 + _local1].hp[0] || (BA[_local2 + _local1]._visible)) {
continue;
}
} else if (((!BA[_local2 + _local1]._visible) || (BA[_local2 + _local1].dying && (!_local4.special.REVIVE))) || (BA[_local2 + _local1].stats.hp[0] < 1)) {
} else {
CASTING_TARGETS.push(_local2 + _local1);
if (TECH_USING.BREATH || (TECH_USING.ALL_PFX)) {
CastSpell2();
} else {
DelayCommand(CastSpell2, _local6 * 10);
}
_local6++;
}
CASTING_TARGETS.push(_local2 + _local1);
if (TECH_USING.BREATH || (TECH_USING.ALL_PFX)) {
CastSpell2();
} else {
DelayCommand(CastSpell2, _local6 * 10);
}
_local6++;
}
}
_local1++;
}
DelayCommand(EndSpellCasting, ((CASTING_TARGETS.length * 10) + 5) + int(PFXList["pfx_" + TECH_USING.pfx].dmgdelay));
if (TECH_USING.BREATH) {
BattleParticleEffect(TECH_USING.pfx, Target, TECH_USING.sfx, TECH_USING);
}
if (TECH_USING.ALL_PFX) {
BattleParticleEffect(TECH_USING.pfx, (TECH_USING.CENTRED ? (BA.BreathCentre) : (BA["ALL_PFX_" + tType])), TECH_USING.sfx, TECH_USING);
}
return(undefined);
}
CastSpell2(dontEndTurn);
DelayCommand(EndSpellCasting, 5 + int(PFXList["pfx_" + TECH_USING.pfx].dmgdelay));
}
function EndSpellCasting(dontEndTurn) {
if ((!dontEndTurn) && (!TECH_USING.BREATH)) {
endturn = true;
GDelay = 30;
}
spellCasting = false;
tALL = false;
}
function CastSpell2(dontEndTurn) {
if (CASTING_ON_ALL) {
Target = BA[CASTING_TARGETS[CASTING_ON_ALL - 1]];
CASTING_ON_ALL++;
}
Target.EXCLAIM._visible = false;
_root.REACTION = null;
var _local2 = TECH_USING;
if (PFXList["pfx_" + _local2.pfx].dmgdelay) {
if ((!_local2.BREATH) && (!_local2.ALL_PFX)) {
BattleParticleEffect(_local2.pfx, Target, _local2.sfx, _local2);
}
DelayCommand(CastSpell2b, PFXList["pfx_" + _local2.pfx].dmgdelay, dontEndTurn, Target);
} else {
CastSpell2b(dontEndTurn, Target, true);
}
}
function CastSpell2b(dontEndTurn, t, pfx) {
var _local2 = TECH_USING;
Target = t;
if (ALL_REACTION == 2) {
REACTION_USING = Target.stats.REACT[REACTION_TYPE];
trace("REACTION_USING = " + REACTION_USING);
}
if (Target.stats.name == "Legion") {
if (GetSkillInfo("Robo", _local2.skill) != null) {
if (Target.stats.learned[_local2.skill] == null) {
Target.stats.learned[_local2.skill] = 1;
MasteredSkill(TECHbar);
DamageNumber(Target._x, Target._y - 50, "LEARNED!", 15715456, "");
}
}
}
CS_MISSED = false;
if (((!_local2.buff) && (!_local2.cannot_miss)) && ((((_local2.accuracy != null) && ((Math.random() * 100) > (_local2.accuracy + int(REACTION_USING.accuracy)))) || (((Math.random() * 100) <= int(REACTION_USING.evade)) && (!TECH_USING.BREATH))) || ((Target.mdlStats.evasion && ((Math.random() * 100) <= Target.mdlStats.evasion)) && (_local2.MODE == "P")))) {
_root.DamageNumber(Target._x, Target._y, "<p align='center'>Miss</p>", null);
_root.playSFX("Miss");
if (_local2.MODE == "P") {
CS_MISSED = true;
}
return(undefined);
}
if (endturn) {
return(undefined);
}
if ((!GIVEN_XP) && (Acting.SIDE != "e")) {
GiveEXP(50, Acting, Target);
}
GIVEN_XP = true;
var _local11 = GetUsingElement();
if (((!_local2.buff) && (!_local2.special.HEALING)) && (HasSTFX(Target.stats, ELEM_char[_local11] + "N1"))) {
RemoveSTFX(Target.stats, ELEM_char[_local11] + "N1");
_root.DamageNumber(Target._x, Target._y, "<p align='center'>Null</p>", null);
} else {
if (_local2.special.REVIVE) {
if ((Target.mdlStats.TYPE == "UNDEAD") || (HasSTFX(ts, "ZOM"))) {
_root.InflictDamage(int(Target.stats.hp[0] * _local2.special.REVIVE), false);
} else if (Target.stats.hp[0] == 0) {
Target.stats.hp[0] = 1;
Target.mdl.dead = false;
Target.dying = false;
_root.InflictDamage(-int(Target.stats.hp[1] * _local2.special.REVIVE), false, null, false, null, null, true);
Target.Animate("idle");
} else if (_local2.skill != "Repair") {
_root.DamageNumber(Target._x, Target._y, "<p align='center'>Miss</p>", null);
}
}
if (_local2.special.KILL) {
if (Math.random() <= _local2.special.KILL) {
Target.stats.hp[0] = 0;
Target.dying = true;
Target.onDie();
GDelay = 70;
} else {
_root.DamageNumber(Target._x, Target._y, "<p align='center'>Miss</p>", null);
}
}
if (_local2.elementalShift != null) {
Target.mdlStats.resist = Target.ShiftResistances[(Target.stats.element = _local2.elem)];
calculateStats(Target.stats);
}
if (_local2.DMG != null) {
var _local3;
if (_local2.DMG[0] == "SPECIAL") {
switch (_local2.DMG[1]) {
case "resistpercent" :
_local3 = int((Target.stats.RESIST[_local2.DMG[2]] / 100) * Target.stats.hp[1]);
break;
case "money" :
_local3 = Math.floor(GameData.money / 500);
break;
case "hplost" :
_local3 = Acting.stats.hp[1] - Acting.stats.hp[0];
break;
case "fullcure" :
_local3 = -Target.stats.hp[1];
InflictDamage(-Target.stats.mp[1], null, null, true, null, {x:8, y:18});
break;
case "set_dmg" :
_local3 = _local2.DMG[2];
break;
case "num_kills" :
_local3 = int((Acting.stats.KILLS * Acting.stats.level) / 16);
break;
case "HP%" :
if (Target.stats.hp[0] > 9999) {
_local3 = 0;
} else {
_local3 = int(Target.stats.hp[0] * _local2.DMG[2]);
}
if (_local3 > 9999) {
_local3 = 9999;
}
break;
case "starburst" :
_local3 = MdmgFormula(Acting, Target, _local2.DMG[((Acting._name.substr(0, 1) == Target._name.substr(0, 1)) ? 3 : 2)], _local2.elem);
break;
case "SPR_CALC" :
_local3 = int((Acting.stats.level * Acting.stats.getStat("SPR")) * _local2.DMG[2]);
break;
case "SPR_AS_DMG" :
_local3 = _root[((_local2.MODE == "M") ? "M" : "") + "dmgFormula"](Acting, Target, GetTechBaseDMG(Acting.stats.getStat("SPR") * _local2.DMG[2], Acting) * (_local2.special.HEALING ? -1 : 1), _local2.elem);
break;
case "gem" :
}
} else if (phySpell && (!_local2.USES_SPR)) {
_local3 = dmgFormula(Acting, Target, GetTechBaseDMG(_local2.DMG, Acting), _local2.elem);
} else {
_local3 = MdmgFormula(Acting, Target, GetTechBaseDMG(_local2.DMG, Acting) * (_local2.special.HEALING ? -1 : 1), _local2.elem);
}
if ((_local2.typeBonus != null) && (_local2.typeBonus[0] == Target.stats.monStats.TYPE)) {
if (_local2.typeBonus[1][0] == "m") {
_local3 = _local3 * _local2.typeBonus[1][1];
} else if (_local2.typeBonus[1][0] == "p") {
_local3 = _local3 + _local2.typeBonus[1][1];
}
}
if (_local2.elemBonus != null) {
var _local5 = 0;
while (_local5 < _local2.elemBonus.length) {
if (_local2.elemBonus[_local5][0] == Target.stats.monStats.cElem) {
if (_local2.elemBonus[_local5][1][0] == "m") {
_local3 = _local3 * _local2.elemBonus[_local5][1][1];
} else if (_local2.elemBonus[_local5][1][0] == "p") {
_local3 = _local3 + _local2.elemBonus[_local5][1][1];
}
}
_local5++;
}
}
if (_local2.stfxBonus != null) {
for (var _local5 in stfxBonus) {
if (HasSTFX(Target.stats, _local5)) {
_local3 = _local3 * _local2.stfxBonus[_local5];
}
}
}
_local3 = FinalDamage(_local3);
var _local8 = Target.stats.hp[0];
InflictDamage(_local3, null, null, _local2.affectMP);
if (_local2.special.DRAIN) {
var _local13 = Target;
Target = Acting;
DRAINING = true;
InflictDamage(-_local3, null, null, _local2.affectMP);
DRAINING = false;
Target = _local13;
}
if (REACTION_USING.drainHP) {
DRAINING = true;
var _local12 = Target;
Target = Acting;
var _local10 = int(_local3 * REACTION_USING.drainHP);
InflictDamage(-((_local10 > _local8) ? (_local8) : (_local10)));
Target = _local12;
DRAINING = false;
}
}
if (_local2.special.REPAIR) {
InflictDamage(((Target.stats.name == "Legion") ? (-Target.stats.hp[1]) : 0), false, null, false, null, null, true);
}
if (_local2.special.DISPEL) {
for (s in GoodSTATUSES_) {
_root.RemoveSTFX(Target.stats, s);
}
}
for (s in _local2.stfx) {
if (_local2.stfx[s] > 0) {
if (GoodSTATUSES_[s]) {
_root.AddSTFX(Target.stats, s, _local2.lasts);
} else if (_local2.special.HEALING) {
if (GoodSTATUSES_[s]) {
_root.AddSTFX(Target.stats, s);
} else {
_root.RemoveSTFX(Target.stats, s);
}
} else if ((Math.random() * 100) < _local2.stfx[s]) {
if ((Math.random() * 100) > (int(Target.stats.RESIST[s]) + int(REACTION_USING.RESIST[s]))) {
_root.AddSTFX(Target.stats, s);
}
}
}
}
DoStatMod(_local2);
if (_local2.remove_stfx != null) {
for (s in _local2.remove_stfx) {
if ((Math.random() * 100) <= _local2.remove_stfx[s]) {
RemoveSTFX(Target.stats, s);
}
}
}
if (_local2.SUMMON) {
var _local4 = Target._name.substr(1);
var _local7 = random(_local2.SUMMON[0].length);
var _local6 = _local2.SUMMON[0][_local7];
Target.stats = (PCstatsE[_local4 - 1] = {name:((_local2.SUMMON[2][_local7] != null) ? (_local2.SUMMON[2][_local7]) : (_local6)), model:_local6, B_LVL:_local2.SUMMON[1], hp:[10, 10]});
calculateStats(Target.stats);
var _local9 = FOE_POS;
Target._x = _local9[_local4 - 1][0] + 38;
Target._y = (_local9[_local4 - 1][1] + 48) + 30;
Target.dying = false;
Target.mdl.dead = false;
Target._visible = true;
Target._alpha = (Target.mdl._alpha = 100);
Target.DOING_SUMMAT = 3;
Target.attempted_switch = true;
Target.gotoAndStop(_local6);
Target.gotoAndStop(2);
Target.gotoAndStop(1);
_root["BE" + _local4]._alpha = 100;
_root["BE" + _local4]._visible = true;
}
if (!_local2.special.HEALING) {
for (var s in REACTION_USING.stfx_inflict) {
if ((Math.random() <= REACTION_USING.stfx_inflict[s]) && ((Math.random() * 100) >= int(Target.stats.RESIST[s]))) {
_root.AddSTFX(Target.stats, s);
}
}
}
if ((REACTION_USING.absorbMP && (int(TECH_USING.MP))) && (Acting != Target)) {
DelayCommand(AbsorbMP, 16, -int(TECH_USING.MP), Target);
}
}
calculateStats(Target.stats);
calculateStats(Acting.stats);
spelement = "" + _local2.elem;
SPELLCOLOUR = HexToRGB(_local2.pfx[1]);
Flash(Target.mdl, ElemRGB(_local2.elem));
if (PFXList["pfx_" + _local2.pfx].delayedSfx) {
playSFX(PFXList["pfx_" + _local2.pfx].delayedSfx);
}
if ((_local2.BREATH && (CASTING_ON_ALL)) || (_local2.ALL_PFX)) {
return(undefined);
}
if (!PFXList["pfx_" + _local2.pfx].dmgdelay) {
BattleParticleEffect(_local2.pfx, Target, _local2.sfx, _local2);
}
return(undefined);
}
function AbsorbMP(amount, T) {
DN_GLYPH = "THAUMA";
DRAINING = true;
var _local1 = Target;
Target = T;
InflictDamage(amount, null, null, true);
Target = _local1;
DRAINING = false;
DN_GLYPH = null;
}
function ClearBattlefield(arg) {
sky.setTransform({ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0});
sky = null;
if (arg != "no_stats") {
RemoveStatEnhancements();
}
_root.BMENU.removeMovieClip();
_root.FOG.removeMovieClip();
_root.TECHbar.removeMovieClip();
var _local2 = 1;
while (_local2 <= 4) {
_root["p" + _local2].removeMovieClip();
_root["e" + _local2].removeMovieClip();
_root["sb_" + _local2].removeMovieClip();
_root["sb_e" + _local2].removeMovieClip();
_root["menu_p" + _local2].removeMovieClip();
_local2++;
}
TECHbar.removeMovieClip();
TECHbar2.removeMovieClip();
if (arg != "LeaveVictory") {
VICTORY.removeMovieClip();
}
if ((arg != "LeaveVictory") && (SNAP.battle)) {
SNAP.removeMovieClip();
}
if (__AreaEXTRA.DREAM) {
DreamscapeSettings(_root.createEmptyMovieClip("DreamBorder", 979), __AreaEXTRA.DREAM);
}
if (__AreaEXTRA.MIASMA) {
SetupMiasma(_root.createEmptyMovieClip("Miasma", 1011));
}
}
function Flee(always) {
plvl = 0;
elvl = 0;
var _local2 = 1;
while (_local2 <= 4) {
if (BA["p" + _local2].stats.level != null) {
plvl = plvl + BA["p" + _local2].stats.level;
}
if (BA["e" + _local2].stats.level != null) {
plvl = plvl + BA["e" + _local2].stats.level;
}
_local2++;
}
chance = 80 * (plvl / elvl);
if (((Math.random() * 100) > chance) && (!always)) {
TECHbar.Show("Can't escape!", "empty");
_root.endturn = true;
_root.GDelay = 20;
return(undefined);
}
_root.playSFX("Escape");
EndBattle();
_root.RecordStat("FLED");
}
function EndBattle() {
boss = null;
RemoveStatEnhancements();
ENDING_BATTLE = true;
fader.onMaxFade = function () {
_root.ClearBattlefield();
_root.battling = false;
_root.gotoAndStop(_root.PCLOC[0]);
_root.cont._visible = true;
if ((!GameData.plotVars.NO_BATTLE_MUSIC) || (_root.area == "DL_area4")) {
_root.playMusic(_root.AREA_MUSIC);
}
_root.SNAP.removeMovieClip();
if (_root.AfterBattle != null) {
_root.AfterBattle();
_root.AfterBattle = null;
}
var _local2 = 0;
while (_local2 < 4) {
if (_root.PCstats[_local2].hp[0] < 1) {
_root.PCstats[_local2].hp[0] = 1;
}
_local2++;
}
_root.ENDING_BATTLE = false;
};
FadeIn(10);
}
function RemoveStatEnhancements() {
var _local4 = ["STR", "VIT", "AGL", "SPR", "DEF", "MDEF"];
var _local3 = 1;
while (_local3 <= 4) {
var _local2 = 0;
while (_local2 < _local4.length) {
if (((PCstats[_local3 - 1].statEnhn[_local4[_local2]] != 0) && (_local4[_local2] != "DEF")) && (_local4[_local2] != "MDEF")) {
PCstats[_local3 - 1][_local4[_local2]] = PCstats[_local3 - 1][_local4[_local2]] - PCstats[_local3 - 1].statEnhn[_local4[_local2]];
}
PCstats[_local3 - 1].statEnhn[_local4[_local2]] = 0;
if (PCstatsE[_local3 - 1].statEnhn[_local4[_local2]] != 0) {
PCstatsE[_local3 - 1][_local4[_local2]] = PCstatsE[_local3 - 1][_local4[_local2]] - PCstatsE[_local3 - 1].statEnhn[_local4[_local2]];
}
PCstatsE[_local3 - 1].statEnhn[_local4[_local2]] = 0;
_local2++;
}
var _local6 = ["CNF", "SLP"];
for (o in GoodSTATUSES_) {
if (GoodSTATUSES_[o] != 99) {
_local6.push(o);
}
}
var _local5 = 0;
while (_local5 < _local6.length) {
_root.RemoveSTFX(PCstats[_local3 - 1], _local6[_local5]);
_local5++;
}
if (PCstats[_local3 - 1].hp[1] <= 0) {
PCstats[_local3 - 1].hp[1] = 1;
}
PCstats[_local3 - 1].AutoSTFX = null;
calculateStats(PCstats[_local3 - 1]);
_local3++;
}
modded = false;
}
function Battle_BMENU_Sel(x, y) {
if (y != 0) {
if (BMENU._currentframe == 3) {
BMENU.MUSICBAR.Tempo_SEL = BMENU.MUSICBAR.Tempo_SEL + y;
if (BMENU.MUSICBAR.Tempo_SEL < 0) {
BMENU.MUSICBAR.Tempo_SEL = 2;
}
if (BMENU.MUSICBAR.Tempo_SEL > 2) {
BMENU.MUSICBAR.Tempo_SEL = 0;
}
BMENU.cursor8._y = [-48, -28, -8][BMENU.MUSICBAR.Tempo_SEL];
_root.playSFX("menuBlip1");
return(undefined);
}
if (BMENU._currentframe == 2) {
playSFX("menuBlip1");
if (BMENU.ITEMMODE) {
Battle_RolloverItem(y);
} else {
Battle_RolloverSkill(y);
}
return(undefined);
}
}
if (x != 0) {
if (BMENU._currentframe == 3) {
BMENU.MUSICBAR.Time_SEL = BMENU.MUSICBAR.Time_SEL + x;
if (BMENU.MUSICBAR.Time_SEL < 0) {
BMENU.MUSICBAR.Time_SEL = 2;
}
if (BMENU.MUSICBAR.Time_SEL > 2) {
BMENU.MUSICBAR.Time_SEL = 0;
}
BMENU.MUSICBAR.gotoAndStop(BMENU.MUSICBAR.Time_SEL + 1);
BMENU.cursor9._x = [-392, -360, -328][BMENU.MUSICBAR.Time_SEL];
_root.playSFX("menuBlip1");
return(undefined);
}
BMENU["o" + (BMENU.SEL + 1)].gotoAndStop(1);
BMENU.SEL = BMENU.SEL - x;
if (BMENU.SEL < 0) {
BMENU.SEL = BMENU.BtlOptions.length - 1;
}
if (BMENU.SEL >= BMENU.BtlOptions.length) {
BMENU.SEL = 0;
}
BMENU["o" + (BMENU.SEL + 1)].gotoAndStop(2);
_root.playSFX("menuBlip1");
Battle_BMenuReposition();
BMENU.PulseWave._x = (BMENU.cursor0._x = BMENU["o" + (BMENU.SEL + 1)]._x - 212);
}
}
function Battle_ArrowUp() {
if (_root.ANALYSER.SHOWING) {
return(undefined);
}
if (TARGET_MODE) {
Battle_MoveTarget(0, -1);
} else if (BMENU._visible) {
Battle_BMENU_Sel(0, -1);
}
}
function Battle_ArrowDown() {
if (_root.ANALYSER.SHOWING) {
return(undefined);
}
if (TARGET_MODE) {
Battle_MoveTarget(0, 1);
} else if (BMENU._visible) {
Battle_BMENU_Sel(0, 1);
}
}
function Battle_ArrowLeft() {
if (_root.ANALYSER.SHOWING) {
return(undefined);
}
if (TARGET_MODE) {
Battle_MoveTarget(-1, 0);
} else {
if (BMENU._currentframe == 2) {
return(undefined);
}
if (BMENU._visible) {
Battle_BMENU_Sel(-1, 0);
}
}
}
function Battle_ArrowRight() {
if (_root.ANALYSER.SHOWING) {
return(undefined);
}
if (TARGET_MODE) {
Battle_MoveTarget(1, 0);
} else {
if (BMENU._currentframe == 2) {
return(undefined);
}
if (BMENU._visible) {
Battle_BMENU_Sel(1, 0);
}
}
}
function Battle_Confirm() {
if (_root.ANALYSER.SHOWING) {
_root.ANALYSER.Close();
return(undefined);
}
if (REACTION || (Rbar.cursor.life)) {
Rbar.cursor.Stop();
} else if (TARGET_MODE) {
if (int(TMD.MPcost) > Acting.stats.mp[0]) {
playSFX("error");
Flash(TMD, [255, 0, 0]);
return(undefined);
}
var _local9 = false;
if (Acting.stats.name == "Elwyen") {
if (TECH_USING.Song) {
SONG_PLAYING = TECH_USING;
_root.playSFX("harpsong");
SONG_ELWYEN = Acting;
Acting.Animate("PlayMusic");
GDelay = 30;
endturn = true;
_root.TECHbar.Show(SONG_PLAYING.skill, SONG_PLAYING.elem);
TechUsing_IncreaseAP();
_local9 = true;
} else {
_root.SONG_PLAYING = null;
}
}
if (!_local9) {
switch (TECH_USING.MODE) {
case "S" :
Acting.SpecialAttack();
break;
case "M" :
Acting[(TECH_USING.BREATH ? "Attack" : "Conjurate")]();
break;
case "I" :
Acting.UseItem();
break;
case "P" :
phySpell = true;
default :
Acting.Attack();
}
}
BMENU.gotoAndStop("none");
BMENU._visible = false;
TMD.gotoAndStop("empty");
TARGET_MODE = false;
_root["BP" + Acting._name.substr(1)].gotoAndStop(1);
var _local3 = 1;
while (_local3 <= 4) {
var _local2 = 0;
while (_local2 < 2) {
BA[["p", "e"][_local2] + _local3].target_cursor._visible = false;
_local2++;
}
_local3++;
}
if (POTION_SPRAY_SEL) {
Acting.stats.inventory[POTION_SPRAY_IID][1]--;
if (Acting.stats.inventory[POTION_SPRAY_IID][1] <= 0) {
Acting.stats.inventory[POTION_SPRAY_IID] = null;
}
POTION_SPRAY_SEL = (POTION_SPRAY_IID = null);
}
var _local8 = ((TECH_USING.MODE == null) ? "P" : (TECH_USING.MODE));
Acting.stats["USES_" + _local8] = int(Acting.stats["USES_" + _local8]) + 1;
if (Acting.SIDE == "p") {
_root.RecordStat("USES_" + _local8);
}
} else if (BMENU._visible) {
if (BMENU["o" + (BMENU.SEL + 1)]._alpha < 100) {
playSFX("error");
} else if (BMENU._currentframe == 2) {
if (BMENU.A_List["A" + BTL_SEL_SKILL]._alpha < 100) {
_root.playSFX("error");
return(undefined);
}
if (POTION_SPRAY_SEL) {
var _local4 = GetItemInfo(BMENU.A_List["A" + BTL_SEL_SKILL].SKILL.skill).pspray;
for (var _local7 in _local4) {
TECH_USING[_local7] = _local4[_local7];
}
EnterTargetMode();
POTION_SPRAY_IID = BMENU.A_List["A" + BTL_SEL_SKILL].IID;
return(undefined);
}
_root.TECH_USING = BMENU.A_List["A" + BTL_SEL_SKILL].SKILL;
if (_root.TECH_USING.skill == "Gemsplosion") {
var _local5 = Clone(TECH_USING);
var _local6 = null;
if (GetItemInfo(Acting.stats.accessory).type == "gems") {
_local6 = GetItemInfo(Acting.stats.accessory);
} else if (GetItemInfo(Acting.stats.accessory2).type == "gems") {
_local6 = GetItemInfo(Acting.stats.accessory2);
}
if (_local6) {
_local5.elem = _local6.elem;
_local5.pfx = "gemsplosion" + _local6.spell[0];
_local5.DMG = _local6.spell[1];
_local5.special = _local6.spell[3];
_local5.stfx = _local6.spell[2];
} else {
_local5.DMG = Acting.stats.level;
_local5.pfx = "gemsplosion";
}
TECH_USING = _local5;
}
if (TECH_USING.skill == "Potion Spray") {
BMENU.gotoAndStop(1);
POTION_SPRAY_SEL = true;
BMENU.gotoAndStop(2);
Battle_ShowItemList();
} else {
EnterTargetMode();
}
} else {
if ((BMENU.SEL == 1) && (BMENU.BtlOptions[1] == "-")) {
_root.playSFX("error");
return(undefined);
}
if ((BMENU.SEL == 1) && (BMENU.BtlOptions[1] == "Repair")) {
TECH_USING = {skill:"Repair", type:"ACT", MP:0, stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, stat_mod:{STR:1, VIT:1, SPR:1, AGL:1}, MODE:"M", elem:"none", TT:"SINGLE", AutoTarget:"Legion", pfx:"repair", special:{REPAIR:true, HEALING:1, REVIVE:1}};
EnterTargetMode();
} else if ((BMENU.SEL == 1) || ((BMENU.BtlOptions[0] == "Inventions") && (BMENU.SEL == 0))) {
BMENU.gotoAndStop(2);
Battle_BlurBMenu();
Battle_ShowSkillList();
playSFX("menuBlip4");
} else if (BMENU.SEL == 2) {
BMENU.gotoAndStop(2);
Battle_BlurBMenu();
Battle_ShowItemList();
playSFX("menuBlip4");
} else if (BMENU.SEL == 3) {
GDelay = 30;
endturn = true;
BMENU._visible = false;
BMENU.gotoAndStop("none");
playSFX("menuBlip3");
_root["BP" + Acting._name.substr(1)].gotoAndStop(1);
} else if (BMENU.SEL == 4) {
Flee(true);
} else if (HasSTFX(Acting.stats, "NUM")) {
playSFX("error");
} else {
EnterTargetMode();
}
}
}
}
function Battle_Back() {
if (_root.ANALYSER.SHOWING) {
_root.ANALYSER.Close();
return(undefined);
}
if (TARGET_MODE) {
ExitTargetMode();
} else if (BMENU._visible) {
if (BMENU._currentframe != 1) {
if (POTION_SPRAY_SEL) {
BMENU.ITEMMODE = null;
TECH_USING = null;
BMENU.gotoAndStop(1);
POTION_SPRAY_SEL = null;
BMENU.gotoAndStop(2);
Battle_ShowSkillList();
TECH_USING = null;
} else {
if (BMENU._currentframe > 2) {
Battle_ShowBMenu();
MUSIC.setVolume(100);
}
BMENU.ITEMMODE = null;
BMENU.gotoAndStop(1);
Battle_UnblurBMenu();
}
playSFX("menuBlip3");
return(undefined);
}
if (_root.CheckOption("zwait")) {
BMENU.gotoAndStop("none");
BMENU._visible = false;
_root["BP" + Acting._name.substr(1)].gotoAndStop(1);
GDelay = 30;
endturn = true;
playSFX("menuBlip3");
}
}
}
function SetupBattleGUI() {
var _local10 = ["P", "E"];
var _local8 = 1;
while (_local8 <= 4) {
var _local4 = 0;
while (_local4 < 2) {
var _local3 = _root[("B" + _local10[_local4]) + _local8];
_local3.gotoAndStop(1);
var _local6 = _root["PCstats" + ((_local10[_local4] == "E") ? "E" : "")][_local8 - 1];
_local3._visible = _local6.model != null;
_local3.stats = _local6;
_local3.Scount = [0, 0];
_local3.blendMode = "layer";
_local3.HPbar.redbar._alpha = 0;
_local3.Refresh = function () {
var _local3 = _root["PCstats" + ((this._name.substr(1, 1) == "E") ? "E" : "")][int(this._name.substr(2)) - 1];
if (this.currentHP == null) {
this.currentHP = _local3.hp[0];
}
if (this.currentHP != _local3.hp[0]) {
if (this.redbar == null) {
this.DAMAGE_FROM = ((_local3.hp[0] > this.currentHP) ? (_local3.hp[0]) : (this.currentHP));
this.redbar = this.HPbar.attachMovie("redbox", "redbar", 10);
this.redbar.gotoAndStop(((_local3.hp[0] > this.currentHP) ? 2 : 1));
}
var _local5 = this.currentHP - _local3.hp[0];
this.currentHP = this.currentHP - (((Math.abs(_local5) > 200) ? 80 : (((Math.abs(_local5) > 20) ? 8 : (((Math.abs(_local5) > 8) ? 3 : 1))))) * ((_local5 < 1) ? -1 : 1));
var _local6 = (this.DAMAGE_FROM - this.currentHP) / _local3.hp[1];
this.redbar._width = _local6 * 100;
this.redbar._x = (this.currentHP / _local3.hp[1]) * 100;
} else if (this.redbar != null) {
this.redbar._alpha = this.redbar._alpha - 5;
if (this.redbar._alpha <= 0) {
this.redbar.removeMovieClip();
this.redbar = null;
}
}
if (this.currentMP == null) {
this.currentMP = _local3.mp[0];
}
if (this.currentMP != _local3.mp[0]) {
var _local5 = this.currentMP - _local3.mp[0];
this.currentMP = this.currentMP - (((Math.abs(_local5) > 20) ? 8 : (((Math.abs(_local5) > 8) ? 3 : 1))) * ((_local5 < 1) ? -1 : 1));
}
if (this.currentXP == null) {
this.currentXP = _local3.exp;
}
if (this.currentXP != _local3.exp) {
var _local5 = this.currentXP - _local3.exp;
this.currentXP = this.currentXP - ((_local5 > 20) ? 8 : (((_local5 > 8) ? 3 : 1)));
}
var _local4 = _root.ColourHP(this.currentHP, _local3.hp[1]);
this.HP1 = _local4[0];
this.HP2 = _local4[1];
this.MP1 = this.currentMP;
this.HPbar.gotoAndStop(101 - int((this.currentHP / _local3.hp[1]) * 100));
this.MPbar.gotoAndStop(101 - int((_local3.mp[0] / _local3.mp[1]) * 100));
this.XPbar.gotoAndStop(101 - int((_local3.exp / (_local3.level * 1000)) * 100));
this.level = "Lv" + _local3.level;
this.NAME = _local3.name;
this.glyph.gotoAndStop(_local3.element);
this.elemstrip.gotoAndStop(_local3.element);
if (_local3.status.length > 0) {
this.Scount[0]++;
if (this.Scount[0] >= 15) {
this.Scount[0] = 0;
this.Scount[1]++;
if (this.Scount[1] >= _local3.status.length) {
this.Scount[1] = 0;
}
}
}
this.stfx.gotoAndStop(((_local3.status.length != 0) ? (_local3.status[this.Scount[1]]) : "none"));
this.HPbar.redbar._visible = this.HPbar._currentframe != 1;
if (this._name.substr(1, 1) == "P") {
this._alpha = ((this.currentHP == 0) ? 20 : 100);
}
};
_local3.onEnterFrame = function () {
this.Refresh();
};
_local3.onRollOver = function () {
if ((this._alpha < 100) || (!_root.BMENU._visible)) {
return(undefined);
}
this.filters = [new flash.filters.GlowFilter(65280, 0.5, 8, 8)];
};
_local3.onRollOut = function () {
this.filters = [];
};
_local3.onPress = function () {
if ((this._alpha < 100) || (!_root.BMENU._visible)) {
return(undefined);
}
var _local3 = _root["PCstats" + ((this._name.substr(1, 1) == "E") ? "E" : "")][int(this._name.substr(2)) - 1];
if (_root.ANALYSER.SHOWING == this._name) {
_root.ANALYSER.Close();
} else {
_root.ANALYSER.SHOWING = this._name;
_root.ANALYSER.Refresh(_local3);
}
};
AttachPCSprite(_local3.box, _local6, -16, -16, 2);
_local4++;
}
_local8++;
}
BMENU.gotoAndStop("none");
BMENU._visible = false;
Battle_SetupTECHbar();
}
function Battle_SetupTECHbar() {
var _local5 = [TECHbar, Rbar];
var _local4 = 0;
while (_local4 < 2) {
var _local3 = _local5[_local4];
_local3.count = 0;
_local3._alpha = 0;
_local3.fading = 0;
_local3.Show = function (tech, element) {
this.ITEM.img.removeMovieClip();
this.glyph._visible = true;
this.gotoAndStop(_root.Acting._name.substr(0, 1));
if (element == "ITEM") {
this.glyph._visible = false;
_root.AddItemImg(tech, this.ITEM, 32, -16);
} else {
this.glyph.gotoAndStop(element);
}
this.TECH = (_root.COUNTER_ATTACK ? "REACTION: " : "") + tech;
this.fading = 1;
this.count = 50;
this.MASTER._visible = false;
};
_local3.onEnterFrame = function () {
if (this.fading != 0) {
this._alpha = this._alpha + (10 * this.fading);
if (((this.fading == 1) && (this._alpha >= 100)) || ((this.fading == -1) && (this._alpha <= 0))) {
this._alpha = ((this.fading == 1) ? 100 : 0);
this.fading = 0;
}
}
if (this.count > 0) {
this.count--;
if (this.count <= 0) {
this.fading = -1;
}
}
};
_local4++;
}
}
function SkillBattleIcon(label) {
var _local2 = ["Flee", "Items", "Wait", "Powers", "Imagination", "Magic Sword", "Spellbladery", "Elemancy", "Martial Arts", "Holy Arts", "Techniques", "Pyromancy", "Aeromancy", "Dragon Tech", "Astral Magic", "Siren Songs", "Nature Magic", "Inventions", "Repair", "Mimicry", "White Magic", "Fighter Techs", "-"];
var _local3 = 0;
i = 0;
while (i < _local2.length) {
if (_local2[i] == label) {
_local3 = i;
break;
}
i++;
}
var _local5 = new flash.display.BitmapData(16, 16, true);
_local5.copyPixels(_root.BATTLEICONS, new flash.geom.Rectangle(_local3 * 16, 0, 16, 16), new flash.geom.Point(0, 0));
return(_local5);
}
function Battle_ShowBMenu() {
BMENU.ITEMMODE = false;
BMENU._visible = true;
BMENU.gotoAndStop("test");
BMENU.name = Acting.stats.name;
BMENU.elemstrip.gotoAndStop(Acting.stats.element);
BMENU.PEglyph.gotoAndStop(Acting.stats.element);
BMENU.avatar.mystats = Acting.stats;
_root["BP" + Acting._name.substr(1)].gotoAndStop("sel");
BMENU.SEL = (((Acting.stats.model == "elwyen") && (SONG_PLAYING != null)) ? 3 : 0);
BMENU.SEL4 = 0;
BMENU.BtlOptions = ["Attack", techInfo[classStats[Acting.stats.model].tech].name, "Items", "Wait"];
if (Acting.stats.model == "inventor") {
BMENU.BtlOptions = ["Inventions", (_root.HasAlly("Legion") ? "Repair" : "-"), "Items", "Wait"];
}
if ((_root.boss == null) && (_root.DoomCounter == null)) {
BMENU.BtlOptions.push("Flee");
}
var _local6 = 1;
while (_local6 <= 5) {
var _local3 = BMENU["o" + _local6];
if (_local6 > BMENU.BtlOptions.length) {
_local3._visible = false;
} else {
_local3._visible = true;
_local3.gotoAndStop(((_local6 == (BMENU.SEL + 1)) ? 2 : 1));
_local3.label = BMENU.BtlOptions[_local6 - 1];
if ((_local6 == 1) && (HasSTFX(Acting.stats, "NUM"))) {
_local3._alpha = 30;
}
if (_local3.label == "Items") {
var _local7 = 0;
var _local4 = 0;
while (_local4 < INVENTORY_LENGTH) {
if (Acting.stats.inventory[_local4] == null) {
} else if (GetItemInfo(Acting.stats.inventory[_local4][0]).action != null) {
_local7++;
}
_local4++;
}
if (_local7 == 0) {
_local3._alpha = 30;
}
}
if ((_local6 == 2) && (_local3.label != "Repair")) {
var _local8 = 0;
var _local5 = techInfo[classStats[Acting.stats.model].tech].skills;
var _local4 = 0;
while (_local4 < _local5.length) {
if (_local5[_local4].type == "ACT") {
if (Acting.stats.learned[_local5[_local4].skill] || (HasSkillOnEquipment(Acting.stats, _local5[_local4].skill))) {
_local8++;
}
}
_local4++;
}
if (_local8 == 0) {
_local3._alpha = 30;
}
}
_local3.RefreshIcon = function () {
var _local3 = this;
if (_local3.label == "Attack") {
_root.AddItemImg(_root.Acting.stats.weapon, _local3.icon, 32, -16);
} else {
_local3.bmp = SkillBattleIcon(_local3.label);
_local3.icon.createEmptyMovieClip("img", 121);
_local3.icon.img.attachBitmap(_local3.bmp, 12);
_local3.icon.img._width = (_local3.icon.img._height = 32);
_local3.icon.img._x = (_local3.icon.img._y = -16);
}
};
_local3.RefreshIcon();
}
_local6++;
}
BMENU.MoreArrow._visible = (_root.boss == null) && (_root.DoomCounter == null);
BMENU._alpha = 0;
BMENU.onEnterFrame = function () {
this._alpha = this._alpha + 20;
if (this._alpha >= 100) {
this.onEnterFrame = null;
this._alpha = 100;
}
};
playSFX("menuSwish");
Battle_BMenuReposition();
BMENU.cursor0._x = (BMENU.PulseWave._x = BMENU["o" + (BMENU.SEL + 1)]._x - 212);
}
function Battle_BlurBMenu() {
BMENU.cursor0._visible = false;
var _local1 = 1;
while (_local1 <= BMENU.BtlOptions.length) {
if (BMENU["o" + _local1]._currentframe == 1) {
BMENU["o" + _local1].filters = [new flash.filters.BlurFilter(8, 8)];
}
_local1++;
}
}
function Battle_UnblurBMenu() {
BMENU.cursor0._visible = true;
var _local1 = 1;
while (_local1 <= BMENU.BtlOptions.length) {
BMENU["o" + _local1].filters = null;
_local1++;
}
}
function Battle_BMenuReposition() {
var _local1 = 0;
while (_local1 < 5) {
var _local2 = BMENU["o" + (_local1 + 1)];
_local2._x = (-40 - (40 * _local1)) - ((BMENU.SEL <= _local1) ? 160 : 0);
_local1++;
}
}
function Battle_ShowSkillList() {
BMENU.Title = "";
BMENU.Desc = "";
BMENU.glyph.gotoAndStop("clear");
BMENU.A._visible = false;
BMENU.LIST_SPACE = 11;
BMENU.LIST_HEIGHT = 293;
BMENU.A_List.orig_y = BMENU.A_List._y;
var _local2 = techInfo[classStats[Acting.stats.model].tech].skills;
var _local6 = 0;
BTL_SEL_SKILL = 0;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1].type != "ACT") {
} else if (_local2[_local1].menuse == "ONLY") {
} else if ((!Acting.stats.learned[_local2[_local1].skill]) && (!HasSkillOnEquipment(Acting.stats, _local2[_local1].skill))) {
} else if ((Acting.stats.learned[_local2[_local1].skill] < _local2[_local1].AP) && (!HasSkillOnEquipment(Acting.stats, _local2[_local1].skill))) {
} else {
var _local3 = BMENU.A_List.attachMovie("AbilityEntry", "A" + _local6, _local1 + 100);
_local3.glyph.gotoAndStop(_local2[_local1].elem);
_local3.RPtoggler._visible = false;
_local3.NAME = _local2[_local1].skill;
_local3.MP = (((_local2[_local1].type == "ACT") && (_local2[_local1].MP)) ? (_local2[_local1].MP) : "");
_local3.A._visible = false;
_local3._y = 25 * _local6;
_local3.DESC = _local2[_local1].desc;
_local3.SKILL = Clone(_local2[_local1]);
if (((Acting.stats.mp[0] < _local3.MP) || (HasSTFX(Acting.stats, {P:"NUM", M:"SIL"}[_local2[_local1].MODE]))) || (HasSTFX(Acting.stats, "CRS"))) {
_local3._alpha = 20;
}
if (_local3.NAME == "Potion Spray") {
var _local5 = 0;
var _local4 = 0;
while (_local4 < INVENTORY_LENGTH) {
if (Acting.stats.inventory[_local4] == null) {
} else if (GetItemInfo(Acting.stats.inventory[_local4][0]).pspray != null) {
_local5++;
}
_local4++;
}
if (_local5 == 0) {
_local3._alpha = 20;
}
}
if (_local3.NAME == "Gemsplosion") {
if ((GetItemInfo(Acting.stats.accessory).type != "gems") && (GetItemInfo(Acting.stats.accessory2).type != "gems")) {
_local3._alpha = 20;
}
}
_local6++;
}
_local1++;
}
BMENU.A_List.NUM_SKILLS = _local6;
BMENU.scrollbit._height = ((_local6 <= BMENU.LIST_SPACE) ? (BMENU.LIST_HEIGHT) : ((BMENU.LIST_SPACE / _local6) * BMENU.LIST_HEIGHT));
BMENU.scrollbit.orig_y = BMENU.scrollbit._y;
BMENU.A_List.TOPMOST = 0;
Battle_RolloverSkill();
}
function Battle_RolloverSkill(mod) {
BMENU.A_List["A" + BTL_SEL_SKILL].gotoAndStop(1);
BTL_SEL_SKILL = BTL_SEL_SKILL + mod;
if (BTL_SEL_SKILL < 0) {
BTL_SEL_SKILL = BMENU.A_List.NUM_SKILLS - 1;
BMENU.A_List.TOPMOST = BMENU.A_List.NUM_SKILLS - 11;
}
if (BTL_SEL_SKILL >= BMENU.A_List.NUM_SKILLS) {
BTL_SEL_SKILL = 0;
BMENU.A_List._y = BMENU.A_List.orig_y;
BMENU.scrollbit._y = BMENU.scrollbit.orig_y;
BMENU.A_List.TOPMOST = 0;
}
var _local1 = BMENU.A_List["A" + BTL_SEL_SKILL];
_local1.gotoAndStop(3);
BMENU.cursor1._y = (_local1._y + (_local1._height / 2)) + BMENU.A_List._y;
BMENU.Title = _local1.NAME;
BMENU.Desc = _local1.DESC;
BMENU.glyph.gotoAndStop(_local1.SKILL.elem);
BMENU.A._visible = true;
BMENU.A.AP1 = int(Acting.stats.learned[_local1.NAME]);
BMENU.A.AP2 = _local1.SKILL.AP;
BMENU.A.gotoAndStop(((Acting.stats.name == "Meraeador") ? "CANNOT_MASTER" : (((BMENU.A.AP1 >= BMENU.A.AP2) ? "MASTER" : 1))));
BMENU.A.APbar.gotoAndStop(101 - int((BMENU.A.AP1 / BMENU.A.AP2) * 100));
if ((mod > 0) && (BTL_SEL_SKILL > (BMENU.A_List.TOPMOST + 6))) {
BMENU.A_List.TOPMOST++;
} else if ((mod < 0) && (BTL_SEL_SKILL < (BMENU.A_List.TOPMOST + 4))) {
BMENU.A_List.TOPMOST--;
}
if (BMENU.A_List.TOPMOST > (BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE)) {
BMENU.A_List.TOPMOST = BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE;
}
if (BMENU.A_List.TOPMOST < 0) {
BMENU.A_List.TOPMOST = 0;
}
BMENU.A_List._y = BMENU.A_List.orig_y - (25 * BMENU.A_List.TOPMOST);
if (BMENU.scrollbit._height != BMENU.LIST_HEIGHT) {
BMENU.scrollbit._y = BMENU.scrollbit.orig_y + ((BMENU.LIST_HEIGHT - BMENU.scrollbit._height) * (BMENU.A_List.TOPMOST / (BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE)));
}
BMENU.cursor1._y = (_local1._y + (_local1._height / 2)) + BMENU.A_List._y;
}
function Battle_ShowItemList() {
BMENU.ITEMMODE = true;
BMENU.Title = "";
BMENU.Desc = "";
BMENU.glyph.gotoAndStop("clear");
BMENU.A._visible = false;
BMENU.LIST_SPACE = 11;
BMENU.LIST_HEIGHT = 293;
BMENU.A_List.orig_y = BMENU.A_List._y;
var _local5 = [];
var _local4 = 0;
while (_local4 < INVENTORY_LENGTH) {
if (Acting.stats.inventory[_local4] == null) {
} else {
var _local6 = GetItemInfo(Acting.stats.inventory[_local4][0]);
if ((_local6.action == null) || (POTION_SPRAY_SEL && (_local6.pspray == null))) {
} else {
_local5.push(_local4);
}
}
_local4++;
}
var _local7 = 0;
BTL_SEL_SKILL = 0;
var _local2 = 0;
while (_local2 < _local5.length) {
var _local1 = BMENU.A_List.attachMovie("AbilityEntry", "A" + _local7, _local2 + 100);
_local1.glyph.gotoAndStop("clear");
var _local3 = Acting.stats.inventory[_local5[_local2]];
_local1.glyph._xscale = (_local1.glyph._yscale = 100);
AddItemImg(_local3[0], _local1.glyph, 16, -8);
_local1.NAME = _local3[0];
_local1.MP = _local3[1];
_local1.A._visible = false;
_local1._y = 25 * _local7;
_local1.DESC = GetItemInfo(_local3[0]).desc;
_local1.IID = _local5[_local2];
_local1.SKILL = {skill:_local3[0], MODE:"I", item:_local3[0], ID:_local5[_local2]};
_local1.RPtoggler._visible = false;
_local7++;
_local2++;
}
BMENU.A_List.NUM_SKILLS = _local7;
BMENU.scrollbit._height = ((_local7 <= BMENU.LIST_SPACE) ? (BMENU.LIST_HEIGHT) : ((BMENU.LIST_SPACE / _local7) * BMENU.LIST_HEIGHT));
BMENU.scrollbit.orig_y = BMENU.scrollbit._y;
BMENU.A_List.TOPMOST = 0;
Battle_RolloverItem(0);
}
function Battle_RolloverItem(mod) {
BMENU.A_List["A" + BTL_SEL_SKILL].gotoAndStop(1);
BTL_SEL_SKILL = BTL_SEL_SKILL + mod;
if (BTL_SEL_SKILL < 0) {
BTL_SEL_SKILL = BMENU.A_List.NUM_SKILLS - 1;
BMENU.A_List.TOPMOST = BMENU.A_List.NUM_SKILLS - 11;
}
if (BTL_SEL_SKILL >= BMENU.A_List.NUM_SKILLS) {
BTL_SEL_SKILL = 0;
BMENU.A_List._y = BMENU.A_List.orig_y;
BMENU.scrollbit._y = BMENU.scrollbit.orig_y;
BMENU.A_List.TOPMOST = 0;
}
var _local1 = BMENU.A_List["A" + BTL_SEL_SKILL];
_local1.gotoAndStop(3);
BMENU.Title = _local1.NAME;
BMENU.Desc = _local1.DESC;
BMENU.glyph._xscale = (BMENU.glyph._yscale = 100);
BMENU.glyph.img.removeMovieClip();
AddItemImg(_local1.NAME, BMENU.glyph, 48, -24);
if ((mod > 0) && (BTL_SEL_SKILL > (BMENU.A_List.TOPMOST + 6))) {
BMENU.A_List.TOPMOST++;
} else if ((mod < 0) && (BTL_SEL_SKILL < (BMENU.A_List.TOPMOST + 4))) {
BMENU.A_List.TOPMOST--;
}
if (BMENU.A_List.TOPMOST > (BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE)) {
BMENU.A_List.TOPMOST = BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE;
}
if (BMENU.A_List.TOPMOST < 0) {
BMENU.A_List.TOPMOST = 0;
}
BMENU.A_List._y = BMENU.A_List.orig_y - (25 * BMENU.A_List.TOPMOST);
if (BMENU.scrollbit._height != BMENU.LIST_HEIGHT) {
BMENU.scrollbit._y = BMENU.scrollbit.orig_y + ((BMENU.LIST_HEIGHT - BMENU.scrollbit._height) * (BMENU.A_List.TOPMOST / (BMENU.A_List.NUM_SKILLS - BMENU.LIST_SPACE)));
}
BMENU.cursor1._y = (_local1._y + (_local1._height / 2)) + BMENU.A_List._y;
BMENU.A._visible = false;
}
function EnterTargetMode() {
var _local4 = [];
var _local2 = 1;
while (_local2 <= 4) {
_local4.push({N:"e" + _local2, Y:BA["e" + _local2]._y});
_local2++;
}
_local4.sortOn("Y", Array.NUMERIC);
_local2 = 0;
while (_local2 < 4) {
BattleTargets[_local2][1] = _local4[_local2].N;
_local2++;
}
BMENU.blendMode = "layer";
BMENU._alpha = 0;
TARGET_MODE = true;
SEL_TARGET = (((TECH_USING.special.HEALING || ((TECH_USING.MODE == "I") && (!_root.GetItemInfo(_root.TECH_USING.item).hurtful))) || (TECH_USING.buff)) ? ([2, [1, 2, 0, 3][int(Acting._name.substr(1, 1)) - 1]]) : ([1, 1]));
if (TECH_USING.AutoTarget != null) {
var _local3 = 0;
while (_local3 < 4) {
if (TECH_USING.AutoTarget == BA[BattleTargets[_local3][2]].stats.name) {
SEL_TARGET = [2, _local3];
}
_local3++;
}
} else if (TECH_USING.TT == "SELF") {
var _local3 = 0;
while (_local3 < 4) {
if (BattleTargets[_local3][2] == Acting._name) {
SEL_TARGET = [2, _local3];
}
_local3++;
}
}
Battle_BlurBMenu();
Battle_MoveTarget(((TECH_USING.TT == "ALL_p") ? (3 - SEL_TARGET[0]) : (((TECH_USING.TT == "ALL_e") ? (-SEL_TARGET[0]) : 0))), 0, true);
}
function ExitTargetMode() {
if ((_root.TECH_USING == null) || (_root.TECH_USING.skill == "Repair")) {
Battle_UnblurBMenu();
}
if (!POTION_SPRAY_SEL) {
_root.TECH_USING = null;
}
playSFX("menuBlip3");
TARGET_MODE = false;
var _local3 = 1;
while (_local3 <= 4) {
var _local2 = 0;
while (_local2 < 2) {
BA[["p", "e"][_local2] + _local3].target_cursor._visible = false;
_local2++;
}
_local3++;
}
BMENU._alpha = 100;
TMD.gotoAndStop(3);
}
function Battle_MoveTarget(xMod, yMod, force) {
if ((!force) && (((TECH_USING.TT == "SELF") || (TECH_USING.AutoTarget != null)) || ((TECH_USING.TT.indexOf("ALL") != -1) && (TECH_USING.TT.indexOf("ALL") != null)))) {
return(undefined);
}
if ((BattleTargets[SEL_TARGET[1]][SEL_TARGET[0]].indexOf("ALL") != -1) && (yMod)) {
return(undefined);
}
if ((xMod != 0) && (BattleTargets[SEL_TARGET[1] + yMod][SEL_TARGET[0] + xMod] == null)) {
return(undefined);
}
var _local8 = (BattleTargets[SEL_TARGET[1] + yMod][SEL_TARGET[0] + xMod].indexOf("ALL") != -1) && (BattleTargets[SEL_TARGET[1] + yMod][SEL_TARGET[0] + xMod] != null);
if (_local8 && (!{ANY:1, ALL:1, ALL_p:1, ALL_e:1}[_root.TECH_USING.TT])) {
return(undefined);
}
if ((xMod != 0) && (BattleTargets[SEL_TARGET[1] + yMod][SEL_TARGET[0] + xMod] == null)) {
return(undefined);
}
var _local4 = 1;
while (_local4 <= 4) {
var _local2 = 0;
while (_local2 < 2) {
BA[["p", "e"][_local2] + _local4].target_cursor._visible = false;
_local2++;
}
_local4++;
}
playSFX("menuBlip1");
SEL_TARGET[0] = SEL_TARGET[0] + xMod;
SEL_TARGET[1] = SEL_TARGET[1] + yMod;
if (SEL_TARGET[0] < 0) {
SEL_TARGET[0] = 0;
}
if (SEL_TARGET[0] > 4) {
SEL_TARGET[0] = 4;
}
if (_local8) {
var _local5 = ((Target = BattleTargets[SEL_TARGET[1]][SEL_TARGET[0]])).substr(4);
var _local3 = 1;
while (_local3 <= 4) {
if (BA[_local5 + _local3].dying || (!BA[_local5 + _local3]._visible)) {
} else {
BA[_local5 + _local3].target_cursor._visible = true;
Flash(BA[_local5 + _local3], [0, 0, 255], 6);
Flash(_root["B" + (_local5 + _local3).toUpperCase()], [0, 0, 255], 6);
}
_local3++;
}
} else {
while (((BA[BattleTargets[SEL_TARGET[1]][SEL_TARGET[0]]].dying && (GetItemInfo(TECH_USING.item).action[0] != "life")) && (!TECH_USING.special.REVIVE)) || (BA[BattleTargets[SEL_TARGET[1]][SEL_TARGET[0]]].stats.model == null)) {
SEL_TARGET[1] = SEL_TARGET[1] + ((yMod == 0) ? 1 : (yMod));
if (SEL_TARGET[1] >= 4) {
SEL_TARGET[1] = 0;
}
if (SEL_TARGET[1] < 0) {
SEL_TARGET[1] = 3;
}
}
Target = BA[BattleTargets[SEL_TARGET[1]][SEL_TARGET[0]]];
Target.target_cursor._visible = true;
Flash(Target, [0, 0, 255], 6);
Flash(_root["B" + Target._name.toUpperCase()], [0, 0, 255], 6);
}
TMD.TechName = (TECH_USING.skill ? (TECH_USING.skill) : "Attack");
TMD.gotoAndStop(((((TMD.MPcost = ((!TECH_USING.MP) ? "-" : (TECH_USING.MP * ((_local8 && (TECH_USING.TT.indexOf("ALL") == -1)) ? 2 : 1))))) > Acting.stats.mp[0]) ? 2 : 1));
TMD.glyph.gotoAndStop(GetUsingElement());
}
function StartReactionBar(type) {
if ((Acting.SIDE == "e") && ((Target.SIDE == "e") || (Target == "ALL_e"))) {
return(undefined);
}
REACTION = 1;
REACTION_USING = null;
ALL_REACTION = false;
var times = {P_ATK:[18, 4, 10], M_ATK:[16, 4, 10]}[type];
var tt = ((times[0] + times[1]) + times[2]);
REACTION_TYPE = (((TECH_USING.MODE == "M") ? "M" : "P") + "_") + ((Acting.SIDE == "e") ? "DEF" : "ATK");
REACTION_TYPE_NAME = {P_ATK:"Physical Attack", P_DEF:"Physical Defence", M_ATK:"Magical Attack", M_DEF:"Magical Defence"}[REACTION_TYPE];
trace(REACTION_TYPE_NAME);
var fx = 0;
if ((Target.substr(0, 3) == "ALL") && (Acting.SIDE == "e")) {
var p = 0;
while (p < 4) {
if (!PCstats[p].hp[0]) {
} else {
for (var i in PCstats[p].REACT[REACTION_TYPE]) {
fx++;
}
}
p++;
}
ALL_REACTION = 1;
} else {
var Reactor = _root[((Acting.SIDE == "e") ? "Target" : "Acting")];
for (var i in Reactor.stats.REACT[REACTION_TYPE]) {
fx++;
}
}
if (!fx) {
Rbar.Show(("(No " + REACTION_TYPE_NAME) + " Reactions Available!)");
Rbar.gotoAndStop("error");
return(undefined);
}
Rbar.fading = 1;
Rbar.gotoAndStop("Rbar");
Rbar.Ricon.gotoAndStop(REACTION_TYPE);
Rbar.ErrorMsg = "";
Rbar.REACT_WORD = "";
Rbar.cursor._x = Rbar.barcont._x;
Rbar.cursor.life = tt;
Rbar.cursor.rate = 600 / tt;
Rbar.cursor.two = times[0];
Rbar.cursor.window = times[1];
Rbar.cursor.onEnterFrame = function () {
if (this.two) {
this.two--;
if (!this.two) {
_root.REACTION = 2;
trace("CHANCE");
}
} else if (this.window) {
this.window--;
if (!this.window) {
_root.REACTION = null;
trace("END WINDOW");
}
}
if (this.life) {
this._x = this._x + this.rate;
_root.Rbar.barcont.flow._visible = true;
_root.Rbar.barcont.flow._width = this._x - this._parent.barcont._x;
this.life--;
if (!this.life) {
this._parent.count = 10;
}
}
};
Rbar.cursor.Stop = function () {
trace((("two: " + this.two) + ", life: ") + this.life);
this.life = 0;
this._parent.count = 30;
if (_root.REACTION != 2) {
_root.REACTION = null;
_root.playSFX("error");
_root.Rbar.ErrorMsg = "Bad Timing!";
_root.Flash(_root.Rbar.barcont, [255, 0, 0]);
} else {
_root.DoReaction();
}
};
var bar_colours = [1576458, 16763989, 16777113];
var bar_w = 600;
var bar_h = 10;
Rbar.barcont.createEmptyMovieClip("base", 0);
with (Rbar.barcont.base) {
beginFill(bar_colours[0], 80);
lineStyle(1, 13408563, 100);
lineTo(bar_w, 0);
lineTo(bar_w, bar_h);
lineTo(0, bar_h);
lineTo(0, 0);
endFill();
}
Rbar.barcont.createEmptyMovieClip("stopspot", 1);
var ss_w = (bar_w * (times[1] / tt));
var ss_x = (bar_w * (times[0] / tt));
with (Rbar.barcont.stopspot) {
beginFill(bar_colours[1], 80);
moveTo(ss_x, 0);
lineTo(ss_x + ss_w, 0);
lineTo(ss_x + ss_w, bar_h);
lineTo(ss_x, bar_h);
lineTo(ss_x, 0);
endFill();
beginFill(bar_colours[2], 80);
moveTo(ss_x, 2);
lineTo(ss_x + ss_w, 2);
lineTo(ss_x + ss_w, 6);
lineTo(ss_x, 6);
lineTo(ss_x, 2);
endFill();
}
Rbar.barcont.createEmptyMovieClip("flow", 2);
Rbar.barcont.flow._visible = false;
with (Rbar.barcont.flow) {
beginFill(bar_colours[1], 20);
lineTo(1, 0);
lineTo(1, bar_h);
lineTo(0, bar_h);
lineTo(0, 0);
endFill();
}
}
function DoReaction() {
if (REACTION_USING != null) {
return(undefined);
}
Flash(Rbar.barcont, [0, 255, 0]);
Rbar.REACT_WORD = "REACT!";
var _local6 = [];
if (ALL_REACTION) {
var _local4 = 0;
while (_local4 < 4) {
if (PCstats[_local4].hp[0]) {
_local6.push(BA["p" + (_local4 + 1)]);
}
_local4++;
}
ALL_REACTION = 2;
} else {
var _local3 = _root[((Acting.SIDE == "e") ? "Target" : "Acting")];
REACTION_USING = _local3.stats.REACT[REACTION_TYPE];
_local6 = [_local3];
}
Rbar.MASTER._visible = false;
var _local5 = 0;
while (_local5 < _local6.length) {
var _local3 = _local6[_local5];
var _local2 = _local3.stats.learned._REACTIONS[REACTION_TYPE];
for (var _local7 in _local2) {
if ((_local2[_local7][0] < GetReactionInfo(REACTION_TYPE, _local7).AP) && (_local2[_local7][1])) {
_local2[_local7][0] = _local2[_local7][0] + (_local3.stats.REACT.PASSIVE.apmult ? (_local3.stats.REACT.PASSIVE.apmult) : 1);
if (_local2[_local7][0] >= GetReactionInfo(REACTION_TYPE, _local7).AP) {
B_SKILLS_MASTERED[_local3.ID - 1].push([REACTION_TYPE, _local7]);
}
}
}
_local5++;
}
}
function MasteredSkill(bar) {
playSFX("MasterJingle");
bar.MASTER._visible = true;
bar.MASTER.gotoAndStop("MASTER");
_root.Flash(bar.MASTER, [255, 255, 100]);
}
function SetupVirtualPiano() {
_root.MUSIC_orig_volume = _root.MUSIC.getVolume();
_root.createEmptyMovieClip("VPiano", 500500);
VPiano.Keys = [81, 50, 87, 51, 69, 82, 53, 84, 54, 89, 55, 85, 73, 57, 79, 48, 80];
VPiano.KDOWN = {};
var k = 0;
while (k < VPiano.Keys.length) {
var s = ((VPiano["note" + k] = new Sound(VPiano)));
s.attachSound("note" + k);
s.setVolume(200);
k++;
}
VPiano.MUSIC = new Sound(VPiano);
VPiano.MUSIC.setVolume(200);
VPiano.onEnterFrame = function () {
var k = 0;
while (k < this.Keys.length) {
if (this.KDOWN["K" + k] && (!Key.isDown(this.Keys[k]))) {
this.KDOWN["K" + k] = null;
}
if ((!this.KDOWN["K" + k]) && (Key.isDown(this.Keys[k]))) {
this["note" + k].start();
this.KDOWN["K" + k] = true;
_root.BMENU.MUSICBAR.NOTES.D++;
var n = _root.BMENU.MUSICBAR.NOTES.attachMovie("MusicNote", "N" + _root.BMENU.MUSICBAR.NOTES.D, 100 + _root.BMENU.MUSICBAR.NOTES.D);
n.gotoAndStop((([4, 1, 4, 1, 4, 4, 1, 4, 1, 4, 1, 4, 4, 1, 4, 1, 4][k] === 1) ? 6 : 5));
n._x = (Math.floor(_root.BMENU.MUSICBAR.LINE._x / 20) * 20) + 10;
n._y = [50, 45, 45, 40, 40, 35, 30, 30, 25, 25, 20, 20, 15, 10, 10, 5, 5][k];
if (k == 0) {
with (n) {
lineStyle(1, 15715456, 100);
moveTo(-10, 0);
lineTo(10, 0);
}
}
var p = Math.floor(_root.BMENU.MUSICBAR.LINE._x / 20);
if (this.NotesPlayed == null) {
this.NotesPlayed = new Array(4 * [3, 4, 6][_root.BMENU.MUSICBAR.Time_SEL]);
}
if (this.NotesPlayed[p] == null) {
this.NotesPlayed[p] = {};
}
this.NotesPlayed[p]["K" + k] = true;
_root.BMENU.MUSICBAR.LINE.MOVING = true;
}
k++;
}
if (!_root.BMENU.MUSICBAR.LINE.MOVING) {
return(undefined);
}
_root.BMENU.MUSICBAR.LINE._x = _root.BMENU.MUSICBAR.LINE._x + [2.6, 3.4, 4][BMENU.MUSICBAR.Tempo_SEL];
var W = ([3, 4, 6][_root.BMENU.MUSICBAR.Time_SEL] * 80);
if (_root.BMENU.MUSICBAR.LINE._x > W) {
_root.BMENU.MUSICBAR.createEmptyMovieClip("NOTES", 100);
_root.BMENU.MUSICBAR.NOTES.D = 100;
_root.BMENU.MUSICBAR.LINE._x = 0;
_root.BMENU.MUSICBAR.LINE.MOVING = false;
for (var n in this.NotesPlayed) {
if (this.NotesPlayed[n] == null) {
continue;
}
this.NotesPlayed[n].LENGTH = 0;
for (var n2 in this.NotesPlayed[n]) {
if (n2.substr(0, 1) == "K") {
this.NotesPlayed[n].LENGTH++;
}
}
}
var v = null;
var s = 0;
while (s < SIREN_SONGS.length) {
var S = SIREN_SONGS[s];
if ((S.time == _root.BMENU.MUSICBAR.Time_SEL) && (S.tempo == _root.BMENU.MUSICBAR.Tempo_SEL)) {
var failed = false;
var n = 0;
while (n < S.notes.length) {
if (S.notes[n].pop != null) {
if (this.NotesPlayed[n].LENGTH != S.notes[n].length) {
failed = true;
break;
}
var i = 0;
while (i < S.notes[n].length) {
if (!this.NotesPlayed[n]["K" + S.notes[n][i]]) {
failed = true;
break;
}
i++;
}
} else if (S.notes[n] == null) {
if (this.NotesPlayed[n] != null) {
failed = true;
break;
}
} else if ((this.NotesPlayed[n].LENGTH > 1) || (!this.NotesPlayed[n]["K" + S.notes[n]])) {
failed = true;
break;
}
n++;
}
if (!failed) {
this.MUSIC.attachSound(S.tune);
this.MUSIC.onSoundComplete = function () {
_root.GDelay = 30;
_root.endturn = true;
_root.MUSIC.setVolume(_root.MUSIC_orig_volume);
};
this.MUSIC.start();
_root.BMENU.MUSICBAR.LINE.MOVING = false;
_root.BMENU._visible = false;
_root.BMENU.gotoAndStop("none");
_root["BP" + _root.Acting._name.substr(1)].gotoAndStop(1);
_root.SONG_PLAYING = _root.GetSkillInfo("Song", S.tune);
_root.SONG_ELWYEN = _root.Acting;
_root.TECH_USING = _root.SONG_PLAYING;
_root.TECHbar.Show(S.tune, _root.SONG_PLAYING.elem);
if (!_root.Acting.stats.learned[S.tune]) {
_root.Acting.stats.learned[S.tune] = 1;
_root.MasteredSkill(_root.TECHbar);
}
_root.VPiano.onEnterFrame = null;
_root.MUSIC.setVolume(0);
_root.Acting.Animate("PlayMusic");
return(undefined);
}
}
s++;
}
this.NotesPlayed = new Array(4 * [3, 4, 6][_root.BMENU.MUSICBAR.Time_SEL]);
}
};
BMENU.MUSICBAR.createEmptyMovieClip("NOTES", 100);
BMENU.MUSICBAR.NOTES.D = 100;
BMENU.MUSICBAR.createEmptyMovieClip("LINE", 130);
with (BMENU.MUSICBAR.LINE) {
lineStyle(2, 56831, 100);
moveTo(0, -10);
lineTo(0, 50);
}
BMENU.MUSICBAR.gotoAndStop(2);
BMENU.MUSICBAR.Time_SEL = 1;
BMENU.MUSICBAR.Tempo_SEL = 1;
VPiano.NotesPlayed = [];
BMENU.SheetMusic.gotoAndStop("none");
BMENU.SheetMusic.gotoAndStop(_root.Acting.stats.shield);
MUSIC.setVolume(3);
}
function MakeCreatureStats(c_name, c_model, c_Class, c_elem, c_level, c_stats, c_equips, c_items, c_skills, c_reactions) {
var _local5 = {name:c_name, model:c_model, level:c_level, exp:0, hp:[120, 120], mp:[20, 20], STR:c_stats[0], VIT:c_stats[1], SPR:c_stats[2], AGL:c_stats[3], Class:c_Class, spells:[], weapon:c_equips[0], shield:c_equips[1], helmet:c_equips[2], armour:c_equips[3], accessory:c_equips[4], accessory2:c_equips[5], learned:{}, inventory:new Array(56), BASE:{STR:c_stats[0], VIT:c_stats[1], SPR:c_stats[2], AGL:c_stats[3]}, element:c_elem, nDef:0, nMDef:0};
calculateStats(_local5);
var _local4 = 0;
while (_local4 < c_items.length) {
_local5.inventory[_local4] = c_items[_local4];
_local4++;
}
var _local3 = 0;
while (_local3 < c_skills.length) {
_local5.learned[c_skills[_local3]] = GetSkillInfo(classStats[c_model].tech, c_skills[_local3]).AP;
_local3++;
}
var _local1 = 0;
while (_local1 < c_reactions.length) {
_local5.learned._REACTIONS[c_reactions[_local1][0]][c_reactions[_local1][1]] = [((c_reactions[_local1][2] === true) ? (GetReactionInfo(c_reactions[_local1][0], c_reactions[_local1][1]).AP) : (c_reactions[_local1][2])), c_reactions[_local1][3]];
_local1++;
}
calculateStats(_local5);
FullHeal(_local5);
return(_local5);
}
function GET_PC_STATS(IDcode, extra) {
var _local2 = Clone(PChatchery[IDcode]);
if (extra != null) {
for (var _local3 in extra) {
_local2[_local3] = extra[_local3];
}
}
calculateStats(_local2);
return(_local2);
}
function ParticleEffect(pfx, x, y, sfx, Parent, d) {
if (!PFXList["pfx_" + pfx]) {
return(undefined);
}
pdepth++;
if (pdepth > 100) {
pdepth = 0;
}
var _local8 = ((Parent == null) ? (PARTICLE_CONT) : (Parent)).createEmptyMovieClip("P" + pdepth, (d ? (d) : (100 + pdepth)));
if (PFXList["pfx_" + pfx].derive != null) {
d = PFXList["pfx_" + pfx];
_local8.stats = Clone(PFXList["pfx_" + PFXList["pfx_" + pfx].derive]);
var _local5 = 0;
while (_local5 < _local8.stats.emitters.length) {
_local8.stats.emitters[_local5].type = d.newTypes[_local5];
if (d.newSheets[_local5] != null) {
_local8.stats.emitters[_local5].sheet = d.newSheets[_local5];
}
_local5++;
}
if (d.sfx) {
_local8.stats.sfx = d.sfx;
}
} else {
_local8.stats = Clone(PFXList["pfx_" + pfx]);
}
playSFX(((sfx != null) ? (sfx) : (_local8.stats.sfx)));
if (!_root.CheckOption("pfx")) {
_local8.removeMovieClip();
return(undefined);
}
if (_local8.stats.quake) {
_local8.tremor = 1;
_local8.onEnterFrame = function () {
_root._y = (((this.stats.quake[1] % 2) == 0) ? 0 : (((this.tremor = this.tremor * -1)) * this.stats.quake[0]));
this.stats.quake[0] = this.stats.quake[0] - this.stats.quake[2];
this.stats.quake[1]--;
if ((!this.stats.quake[1]) || (this.stats.quake[0] <= 0)) {
_root._y = 0;
this.onEnterFrame = null;
}
};
}
_local8._x = x;
_local8._y = y;
_local8.emitters = _local8.stats.emitters.length;
var _local5 = 0;
while (_local5 < _local8.stats.emitters.length) {
var _local6 = _local8.createEmptyMovieClip("emitter" + _local5, 100 - _local5);
_local6.S = _local8.stats.emitters[_local5];
_local6.count = 0;
_local6.pc = 0;
_local6._x = _local6.S.spawn[0];
_local6._y = _local6.S.spawn[1];
if (_local6.S.spawn[2]) {
_local6._rotation = _local6.S.spawn[2];
}
_local6.onEnterFrame = function () {
var S = this.S;
this.count++;
if (this._parent.stats.countSfx != null) {
if (this._parent.stats.countSfx[0] == this.count) {
this._parent.stats.countSfx[0].shift();
_root.playSFX(this._parent.stats.sfx);
}
}
if (this.count > (S.delay + S.dur)) {
if (this.count > ((S.delay + S.dur) + 100)) {
this._parent.emitters--;
if (this._parent.emitters <= 0) {
this._parent.removeMovieClip();
}
this.removeMovieClip();
}
return(undefined);
}
if (this.count < S.delay) {
return(undefined);
}
if ((this.count > 1) && (((this.S.ppf < 1) && (this.count % (1 / this.S.ppf))) || (this.S.skipframes && ((this.count % this.S.skipframes) != 0)))) {
return(undefined);
}
if ((this.count == S.delay) && (S.delayedSFX)) {
_root.playSFX(S.delayedSFX);
}
var _local6 = 0;
while (_local6 < S.ppf) {
var _local3 = this.createEmptyMovieClip("p" + (this.pc++), 100 + this.pc);
var _local9 = new flash.display.BitmapData(S.sheet, S.sheet, true, 0);
_local9.copyPixels(_root["PFX_SHEET" + S.sheet], new flash.geom.Rectangle((S.type % 10) * S.sheet, Math.floor(S.type / 10) * S.sheet, S.sheet, S.sheet), new flash.geom.Point(0, 0), null, new flash.geom.Point(0, 0), true);
_local3.createEmptyMovieClip("box", 7);
_local3.box.createEmptyMovieClip("box2", 7);
_local3.box.box2.attachBitmap(_local9, 100);
_local3.S = _root.Clone(this.S);
if (S.flip === true) {
_local3.box._xscale = _local3.box._xscale * -1;
}
_local3._alpha = S.alpha;
_local3._width = S.size[0];
_local3._height = S.size[1];
if (S.rsize != null) {
var _local7 = S.rsize[0] + (Math.random() * (S.rsize[1] - S.rsize[0]));
_local3._width = _local3._width * _local7;
_local3._height = _local3._height * _local7;
}
_local3._x = ((-S.area[0]) + int(S.Coffset[0])) + random((S.area[0] * 2) + 1);
_local3._y = ((-S.area[1]) + int(S.Coffset[1])) + random((S.area[1] * 2) + 1);
_local3.box.box2._x = (-_local3.box.box2._width) / 2;
_local3.box.box2._y = (-_local3.box.box2._height) / 2;
_local3.box._rotation = ((S.rot == "R") ? (Math.random() * 360) : (S.rot));
_local3.S._vel = [S.vel[0] + random((S.vel[1] - S.vel[0]) + 1), S.vel[2] + random((S.vel[3] - S.vel[2]) + 1)];
if (S.mode == RADIAL) {
var _local5 = (((S.even_spacing ? ((((_local6 + 1) / S.ppf) * 360) + ((!(S.even_spacing === true)) ? (S.even_spacing) : 0)) : (Math.random() * 360)) + int(S.start_angle)) * Math.PI) / 180;
var _local10 = S.vel[0] + (Math.random() * (S.vel[1] - S.vel[0]));
_local3.S._vel = [_local10 * Math.cos(_local5), _local10 * Math.sin(_local5)];
if (S.rot == "theta") {
_local3.box._rotation = (_local5 / (Math.PI/180)) + 90;
}
if (_local3.S.rvelmod) {
_local3.S.mod = [_local3.S.rvelmod * Math.cos(_local5), _local3.S.rvelmod * Math.sin(_local5)];
}
if (S.offset) {
var _local8 = ((typeof(S.offset.pop) == "function") ? ((Math.random() * (S.offset[1] - S.offset[0])) + S.offset[0]) : (S.offset));
_local3._x = _local8 * Math.cos(_local5);
_local3._y = _local8 * Math.sin(_local5);
}
}
_local3.onEnterFrame = function () {
this._x = this._x + this.S._vel[0];
this._y = this._y + this.S._vel[1];
this.S._vel[0] = this.S._vel[0] + this.S.mod[0];
this.S._vel[1] = this.S._vel[1] + this.S.mod[1];
this.S._vel[0] = this.S._vel[0] * this.S.accel[0];
this.S._vel[1] = this.S._vel[1] * this.S.accel[1];
this.S.life--;
if (this.S.life <= 0) {
this.removeMovieClip();
}
this._alpha = this._alpha - this.S.fade;
if (this._alpha <= 0) {
this.removeMovieClip();
}
if ((this.S.maxalpha != null) && (this._alpha > this.S.maxalpha)) {
this._alpha = this.S.maxalpha;
}
this._width = this._width * this.S.grow[0];
this._height = this._height * this.S.grow[1];
this.box._rotation = this.box._rotation + this.S.spin;
};
_local6++;
}
if (S.rotmod) {
S.rot = S.rot * S.rotmod;
}
if (S.OEFmod != null) {
for (o in S.OEFmod) {
if (S.OEFmod[o].pop) {
var _local4 = 0;
while (_local4 < S.OEFmod[o].length) {
trace((S[o][_local4] = S[o][_local4] + S.OEFmod[o][_local4]));
_local4++;
}
} else {
S[o] = S[o] + S.OEFmod[o];
}
}
}
};
_local5++;
}
return(_local8);
}
function RefreshEncyclopaedia() {
var _local2 = [0, 8, 11, 11, 11, 11, 11, 11][GameData.CHAPTER - 1];
var _local1 = GameData.CHAPTER;
Encyclopaedia = {People:[{CH:1, name:"Mardek", lastname:"Innanu El-Enkidu", model:((_local1 == 1) ? "mardek_child" : (((_local1 == 2) ? "mardek_soldier" : "mardek"))), sprite:((_local1 == 1) ? "mardek_child" : (((_local1 == 2) ? "mardek_soldier" : "mardek"))), em:((_local1 == 3) ? "deep" : "grin"), race:"Human", gender:"Male", age:10 + _local2, origin:"Goznor, Belfan", weapon:"Sword", elem:"LIGHT", Class:((_local1 == 1) ? "Wannabe Hero" : (((_local1 == 2) ? "Recruit" : "Royal Knight"))), alignment:"Lawful Good", bio:["Well, he's a young boy from Goznor, who, together with his best friend Deugan, wishes to one day become a Grand Adventurer and go on quests and save people. As it is though, all he can do is pretend until he's old enough to go on a REAL adventure.\nHe's a bit dim at times, but he's well-meaning and has a big heart.", "Well, he's a young man from Goznor, who, together with his best friend Deugan, wishes to one day become a Grand Adventurer and go on quests and save people. He's joined the Royal Guard of Goznor in the hopes that he'll be able to help people like his hero Social Fox once did.\nHe's a bit dim at times, but he's well-meaning and has a big heart.", "Well, he's a Royal Knight from Goznor, promoted in chapter 2 for his heroism in saving the whole world from Moric's saucer. The death of his best friend, Deugan, during that adventure has left him upset and somewhat more miserable than he used to be, but his temperament is the same as before, and he still approaches life with a sort of carefree cheeriness.\n\nDespite being the protagonist, Mardek prefers to follow than lead, going in whichever direction his party members, his King, and Rohoph encourage him. He generally feels that others know best, especially since he strains his mind when thinking sometimes."][_local1 - 1]}, {CH:1, name:"Deugan", lastname:"Selmae Eh-Deredu", model:((_local1 == 1) ? "deugan_child" : ((((_local1 == 2) || (_local1 == 3)) ? "deugan_soldier" : "deugan"))), sprite:((_local1 == 1) ? "deugan_child" : ((((_local1 == 2) || (_local1 == 3)) ? "deugan_soldier" : "deugan"))), em:((_local1 == 3) ? "zzz" : "norm"), race:"Human", gender:"Male", age:((_local1 == 3) ? "Deceased?" : (10 + _local2)), origin:"Goznor, Belfan", weapon:"Greatsword", elem:"EARTH", Class:((_local1 == 1) ? "Wannabe Hero" : ((((_local1 == 2) || (_local1 == 3)) ? "Recruit" : "Spellblade"))), alignment:"Neutral Good", bio:["Mardek's best friend, and 'adventuring partner'. Together, the two boys aspire to be Grand Adventurers like their hero Social Fox, going on adventures and saving people from dragons and such.\nDeugan's more level-headed and analytical than his friend, and tends to take things more seriously. Though he can become slightly exasperated by Mardek's dim-witted, carefree brashness at times, he's still very loyal to him and values their friendship deeply.", "Mardek's best friend, and 'adventuring partner'. Together, the two boys aspire to be Grand Adventurers like their hero Social Fox, going on adventures and saving people from dragons and such. Joining the Guard is the closest they've ever got to becoming mighty respected heroes who help people.\nDeugan's more level-headed and analytical than his friend, and tends to take things more seriously. Though he can become slightly exasperated by Mardek's dim-witted, carefree brashness at times, he's still very loyal to him and values their friendship deeply.", "Mardek's best friend. When last we saw him, he insisted on staying behind in Moric's saucer to prevent the Dracelon from ruining his allies' escape. Did he live or die? Who knows?!?"][_local1 - 1]}, {CH:2, name:"Emela", lastname:"Andra Wu-Jardu", model:"emela_soldier", sprite:"emela_soldier", em:"susp", race:"Human", gender:"Female", age:10 + _local2, origin:"Canonia, Belfan?", weapon:"Wand", elem:"WATER", Class:"Elemancer", alignment:"Lawful Neutral", bio:"An attractive young girl who claims she comes from Canonia. She joined the Guard at the same time as Mardek and Deugan, and the two young men have had their eyes on her since. She possesses the power to wield elemental magics.\nHer eyes are a brilliant, mesmerising shade of blue, and they almost appear to glow...\nThough she says she grew up in Canonia, Emela doesn't speak of her past or her childhood there. Suspicious?"}, {CH:2, name:"Vehrn", lastname:"Juonour El-Ganobyi", model:"vehrn", sprite:"vehrn", em:"grin", race:"Human", gender:"Male", age:17 + _local2, origin:"Belfan", weapon:"Sword", elem:"LIGHT", Class:"Paladin", alignment:"Lawful Good", bio:"A devoted Yalortian Paladin from the southern lands. He was sent on a mission to explore the mysterious outbreak of monsters in Canonia, and the missing Shaman, as the Priests that he serves sensed that Evil was afoot...\nThe typical Paladin, Vehrn is self-righteous, arrogant, blindly religious and devoted to his cause. He means well and lives to help others, but he lives to serve and merely obeys his orders rather than thinking for himself, calling those who oppose his masters 'heathens' and suchlike."}, {CH:2, name:"Zach", lastname:"Ursus Ae-Jarino", model:"zach", sprite:"zach", em:"sour", race:"Human", gender:"Male", age:22 + _local2, origin:"Belfan", weapon:"Doublesword", elem:"AIR", Class:"Mercenary", alignment:"Lawful Neutral", bio:"A battle-hardened Mercenary from lands afar. He doesn't speak much at all, so his past is a complete mystery, though it seems as if he's been scarred deeply or he's learned to supress his emotions...\nHe kills for money and will slaughter whoever his employer wishes to without remorse.\nHe wields an exotic double-bladed sword in combat with deadly skill."}, {CH:2, name:"Steele", lastname:"Brennte Du-Korey", model:"steele_soldier", sprite:"steele_soldier", em:"esmile", race:"Human", gender:"Male", age:11 + _local2, origin:"Canonia, Belfan", weapon:"Fists", elem:"DARK", Class:"Brawler", alignment:"Chaotic Evil", bio:"He's brutish, loutish, and very, very Manly. Girls love him because he tends to treat them like dirt. But he's Manly.\nHe joined the Guard when the others did, and though he tried to dominate the group and hit on the girls, the other recruits resisted and despised him.\nHe's supremely arrogant and egotistical, believing that nobody but him is deserving to lead, that violence is the answer to everything, and that girls can't get enough of him. He beats people up mainly for the fun of it, and joined the Guard just so then he could legally assault people 'and maybe pick up some chicks'..."}, {CH:2, name:"Donovan", lastname:"Gonoru Fa-Alregis", model:"donovan" + ((_local1 < 3) ? "_soldier" : ""), sprite:"donovan" + ((_local1 < 3) ? "_soldier" : ""), em:"norm", race:"Human", gender:"Male", age:10 + _local2, origin:"Goznor, Belfan", weapon:"Spear", elem:"FIRE", Class:"Pyromancer", alignment:"Lawful Good", bio:"One of the Royal Guard recruits who signed up at the same time as Mardek and Deugan. He has long hair. He's a natural leader-type, naturally taking charge on missions, but he does a good job of it and treats his teammates with respect."}, {CH:2, name:"Sharla", lastname:"Qualle Ae-Andrias", model:"sharla" + ((_local1 < 3) ? "_soldier" : ""), sprite:"sharla" + ((_local1 < 3) ? "_soldier" : ""), em:"smile", race:"Human", gender:"Female", age:10 + _local2, origin:"Belfan", weapon:"Spear", elem:"AIR", Class:"Aeromancer", alignment:"Neutral Good", bio:"A quiet girl who signed up to join the Guard at the same time as Mardek and Deugan. She's exceedingly shy and rarely speaks at all, and seems quite mild-mannered and kind of heart. She joined the Guard to help and heal people rather than to destroy. She seems to have feelings for Donovan."}, {CH:2, name:"Muriance", lastname:"Pharezos Ae-Bross", model:"muriance", sprite:"muriance", em:"esmile", race:"Human", gender:"Male", age:21 + _local2, origin:"Belfan", weapon:"Handgun", elem:"AIR", Class:"Bandit Chief", alignment:"Chaotic Evil", bio:"A rather inept and overly-dramatic Bandit Chief.\nHe searches for the Legendary Elemental Crystals, and uses people to help him find them, as he can't be bothered doing any dirty work himself. He's somewhat generically 'Evil', but in a Classical Villain kind of way; that is, he'd happily reveal his entire Evil Plan to the heroes in a monologue before attacking, and he'd never kill an adversary without a fair fight. He's cowardly though, and often flees at the first sign of real danger."}, {CH:2, name:"Bartholio", lastname:"Strongarm El-Mars", model:"bartholio", sprite:"bartholio", em:"cdgr", race:"Human", gender:"Male", age:14 + _local2, origin:"Belfan", weapon:"Greatsword", elem:"LIGHT", Class:"Fighter", alignment:"Lawful Good", bio:"A cornily generic macho Hero man who leads a group of other self-proclaimed 'Heroes' that call themselves the 'World's Saviours'.\nHe probably grew up on a farm and always wanted to be a Hero for whatever reason.\nHe and his party are searching for the Legendary Crystals, merely because that's what Heroes are meant to do. They want more power and glory."}, {CH:2, name:"Vennie", lastname:"Vidi Ae-Vicci", model:"vennie", sprite:"vennie", em:"smile", race:"Human", gender:"Male", age:14 + _local2, origin:"Belfan", weapon:"Dagger", elem:"AIR", Class:"Thief", alignment:"Chaotic Good", bio:"He's a Thief who claims to have a 'Heart of Gold'. How very original.\nHe's one of the World's Saviours, and appears to be Bartholio's closest ally, but not much else is known about him. He speaks in a bizarre accent; I have honestly no idea what it's supposed to be and I bet you don't either."}, {CH:2, name:"Aalia", lastname:"Kitregis El-Aureliae", model:"aalia", sprite:"aalia", em:"grin", race:"Human", gender:"Female", age:11 + _local2, origin:"Belfan", weapon:"Staff", elem:"LIGHT", Class:"Healer", alignment:"Neutral Good", bio:"The typical healing-magic-casting Princess of the World's Saviours. She seems a bit dim, but is also probably in love with Bartholio, because that would be just typical, wouldn't it?"}, {CH:2, name:"Bernard", lastname:"Du-Monde", model:"bernard", sprite:"bernard", em:"norm", race:"Human", gender:"Male", age:73 + _local2, origin:"Belfan", weapon:"Walkingstick", elem:"DARK", Class:"Warlock", alignment:"True Neutral", bio:"An old man who doesn't appear to fit in with the Saviours at all... He's a potent spellcaster, but is rather mysterious..."}, {CH:2, name:"Elwyen", lastname:"Sirene Wu-Nympha", model:"elwyen" + ((_local1 < 3) ? "_child" : ""), sprite:"elwyen" + ((_local1 < 3) ? "_child" : ""), em:"cdgr", race:"Human", gender:"Female", age:6 + _local2, origin:"Canonia, Belfan", weapon:"Harp", elem:"WATER", Class:((_local1 < 3) ? "Youngling" : "Siren"), alignment:"Chaotic Neutral", bio:"A young girl who lost her parents to a curse cast by the Lake Hag of Lake Qur. She likes to sing." + ((_local1 < 3) ? "" : "\n\nAfter Mardek defeated the Lake Hag, Elwyen fell for him, and the two have remained good friends since then. Mardek visits Elwyen frequently between his missions, but she tires of village life and longs to travel with him in order to partake in the exciting adventures that fill his life rather than just hearing about them in his stories.\n\nThough she is not an actual siren by blood, she likes the sound of the word and calls herself a 'Siren'. She uses harp music to significantly affect the playing field in battles.")}, {CH:2, name:"Gloria", lastname:"Eh-Korey", model:"gloria", sprite:"gloria", em:"norm", race:"Human", gender:"Female", age:6 + _local2, origin:"Canonia, Belfan", weapon:"Staff", elem:"EARTH", Class:((_local1 < 3) ? "Youngling" : "Shaman"), alignment:"Lawful Neutral", bio:"Elwyen's best friend. She's kind, caring, and mild-mannered... completely unlike her brother.\nShe was always teased by him, and considered him a negative role-model; she specifically made sure that she had none of the negative traits that he so obviously possessed.\nGloria has always felt that she was 'at one with Nature', and used to visit the Canonia Shaman regularly..." + ((_local1 < 3) ? "" : "\n\nThe position of Shaman must pass on to another person whenever a Shaman dies, and this other is chosen by the planet. Gloria was selected to take over from the old Canonia Shaman, and now spends her time in the Shaman's Cave, solving minor village disputes, brewing potions, and et cetera.")}, {CH:1, name:"Meraeador", lastname:"Dunsin Fa-Doch", model:"inventor", sprite:"inventor", em:"smile", race:"Human", gender:"Male", age:20 + _local2, origin:"Goznor, Belfan", weapon:"-", elem:"FIRE", Class:"Inventor", alignment:"Neutral Good", bio:"Goznor's resident eccentric Inventor. He s-s-speaks with a\ns-s-s-stutter. He's a skilled machinist, and spends most of his time constructing odd clockwork mechanical creatures. He claims that one day they'll be used in homes and on battlefields all over Belfan, though he despises the latter part if it's true. He's a pacifist, y'see.\nThough most of the inhabitants of Goznor shun him due to their fear of the unknown and the unnatural, Mardek and Deugan have taken an interest in his work, for which he is glad."}, {CH:3, name:"Sslen'ck", lastname:"Ea-Sslenal", model:"sslenck", sprite:"sslenck", em:"norm", race:"Reptoid", gender:"None", age:44 + _local2, origin:"Xantusia, Belfan", weapon:"Greataxe", elem:"EARTH", Class:"Warrior", alignment:"Lawful Neutral", bio:"The Twenty-Sssixth Chieftain of Xantusia. He is honourable, fair and ordered, and ssstrongly devoted to hisss people. He doesn't trussst humansss, but isss willing to put hisss own persssonal feelingsss assside for the sssake of accomplissshing a goal, which he ssseesss asss more important.\n\nHe hasss a deep fear of the undead for sssome reassson.\n\nLike all reptoidsss, Sslen'ck isss a hermaphrodite; that isss, he hasss no sssingular sssex or gender. Reptoidsss are generally referred to asss 'he' anyway, though."}, {CH:3, name:"Solaar", lastname:"- IXth of Lupidar", model:"solaar", sprite:"solaar", em:"shok", race:"Aruan", gender:"None", age:"??", origin:"Unknown", weapon:"Claws", elem:"LIGHT", Class:"Celestial Runare", alignment:"Lawful Good", bio:"Solaar is a... strange talking wolf thing. Odd. His - her? - fur seems to glow with a pleasant light, and he twitches nervously every so often. His rapid, idiosyncratic speech (which seems to echo faintly) and fidgety mannerisms suggest she's constantly anxious, almost paranoid... or maybe he's just energetic?\n\nAll you know of her is that he claims to be the Dark Crystal Guardian... Odd, considering that she's Light. After the crystal was stolen, he came along with you in order to take it back. She seems to be overly concerned with failing to protect the crystal... but what does he fear?"}, {CH:3, name:"Legion", lastname:"", model:"robot", sprite:"robot", em:"norm", race:"Construct", gender:"None", age:"-", origin:"Meraeador's Lab", weapon:"Robotic Arms", elem:"NONE", Class:"Automaton", alignment:"Mixed", bio:"Meraeador's invention, which he worked on for several years before using Dark Magic to trap a soul in it... but he accidentally summoned four souls, who now share the same body.\n\nThe 'red soul' is Baron von Doomkill; a man who seems to have once been some cruel tyrant or dictator. He's very evil, and would like nothing more than to use his new super-body to wreak destruction and cause misery to the world once more.\n\nThe 'blue soul' is a female Shaman named Deena. She is one of Gloria's predecessors, acting as the Canonia Shaman in ages past. She is wise and fair, and willing to help out where she can.\n\nThe 'purple soul' seems to be a depressive individual known as 'Miserable Ol' Martin'. He seems to be incapable of happiness, and does nothing but complain about how hopeless everything is and how hard things are for him.\n\nThere's also a strange 'yellow soul' which seems deranged, insane..."}, {CH:3, name:"Saul", lastname:"Du-Xesphthar", model:"saul", sprite:"saul", em:"evil", race:"Human", gender:"Male", age:17 + _local2, origin:"Canonia, Belfan", weapon:"-", elem:"DARK", Class:"Necromancer", alignment:"Neutral Evil", bio:"A peculiar man who lives alone in a House in the Canonia Woods. He is a Necromancer, and, typical of his sort, has a morbid fascination with death and corpses. He acquires many dead bodies from who-knows-where - perhaps from the vicitms he lures into his trap? - and animates them as undead to act as servants, warriors, and even friends... They make great listeners, but due to the whole mindlessness thing, they aren't much good at putting forward their own opinion.\n\nHe talks as if narrating his own life, though his wording is pretentious and self-aggrandising."}, {CH:1, name:"Enki", lastname:"Ea'seph El-Regis", model:"enki", sprite:"enki", em:"susp", race:"Human", gender:"Male", age:"??", origin:"Unknown", weapon:"Katana", elem:"LIGHT", Class:"Wanderer", alignment:"Lawful Good", bio:"Mardek's father. An Adventurer of great renown, known as 'Enki the Wanderer'. He left his wife and child a few years ago to go on some quest that he swore wouldn't take long. He's not returned since, and little is known about his current whereabouts; only a few rumours about sightings of him in the far, frozen Northern Wastes suggest he still lives. His family eagerly awaits his return."}, {CH:1, name:"Lilanea", lastname:"Ae-Inanna", model:"lilanea", sprite:"lilanea", em:"smile", race:"Human", gender:"Female", age:34 + _local2, origin:"Goznor, Belfan", weapon:"-", elem:"AIR", Class:"Mother", alignment:"Lawful Good", bio:"Mardek's mother. She looked after him alone since her husband, Enki, an adventurer, left on some grand adventure a few years ago. She's certain he'll return one day though, and spends her time loyally awaiting him to take her in his arms once more.\nShe's quite the dreamer, and tends to be 'away with the fairies', but she's a good parent and a kind soul nonetheless."}, {CH:1, name:"Derek", lastname:"Fa-Gardon", model:"derek", sprite:"derek", em:"norm", race:"Human", gender:"Male", age:41 + _local2, origin:"Goznor, Belfan", weapon:"-", elem:"FIRE", Class:"Shopkeeper", alignment:"Lawful Neutral", bio:"Deugan's father. He's merely a shopkeeper, unlike Mardek's Adventurer father; a fact that secretly bothers his son deep down."}, {CH:1, name:"Polly", lastname:"Eh-Selmar", model:"polly", sprite:"polly", em:"grin", race:"Human", gender:"Female", age:38 + _local2, origin:"Goznor, Belfan", weapon:"-", elem:"EARTH", Class:"Mother", alignment:"Chaotic Good", bio:"Deugan's mother. A plump, jolly woman, she's the heart of any party she's ever at, and seems to know everyone in the village on a rather personal level. She's the town's main source of gossip."}, {CH:1, name:"Mugbert", lastname:"Eh-Mugdu", model:((_local1 >= 3) ? "mugbert_adult" : "mugbert"), sprite:"mugbert", em:"evil", race:"Human", gender:"Male", age:11 + _local2, origin:"Goznor, Belfan", weapon:"Greatmace", elem:"EARTH", Class:"Grunt", alignment:"Chaotic Evil", bio:((_local1 == 1) ? "A stupid, fat boy who's picked on and teased Mardek and Deugan for as long as they can remember. Why he does it isn't really certain; he's probably just sadistic or some such thing." : "A stupid, fat boy who used to pick on and tease Mardek and Deugan when they were children. While they have joined the Royal Guard to make a difference in the world, he's stuck working in an item shop.")}, {CH:1, name:"Jacques", lastname:"Ae-Sualeux", model:"captain", sprite:"captain", em:"norm", race:"Human", gender:"Male", age:23 + _local2, origin:"Aree, Belfan", weapon:"Rapier", elem:"AIR", Class:"Guard Captain", alignment:"Lawful Good", bio:((_local1 == 1) ? "The Guard Captain of Goznor, and member of the Royal Guard. He's a skilled warrior, hence his position as Captain, but he considers the job dull, which it is, and aspires for a higher rank with more adventuring involved. Despite his annoyance with his current position though, he maintains a bright and cheery outlook on things." : "The Commander of the Royal Guard of Goznor. He commands the recruits directly. He used to be the Guard Captain of Goznor, but was promoted after surviving a particularly fierce battle somewhere at some point in time, probably.")}, {CH:2, name:"King", lastname:"Gonoroth Fa-Regis", model:"king", sprite:"king", em:"smile", race:"Human", gender:"Male", age:44 + _local2, origin:"Goznor, Belfan", weapon:"Sword", elem:"FIRE", Class:"King", alignment:"Lawful Good", bio:"The King of Goznor. His power is absolute.\nHe's a genuinely good person, and seeks to make the world a better place. He started the Royal Guard so then he could aid people and keep law and order not only in Goznor, but throughout the whole of Belfan. Currently their range includes only Hadris, but some Royal Knights are sent out further on long missions."}, {CH:1, name:"Goznor Shaman", lastname:"", model:"shaman", sprite:"shaman", em:"norm", race:"Human", gender:"Male", age:193 + _local2, origin:"Unknown", weapon:"Staff", elem:"EARTH", Class:"Shaman", alignment:"Lawful Neutral", bio:"The Shaman of the Goznor region. Being a Shaman, he has an incredibly advanced age and has protected the Goznor region for as long as he's been around, offering aid to travellers and warding away all those who seek to destroy or defile nature."}, {CH:3, name:"Aeropolis Shaman", lastname:"", model:"arabShaman", sprite:"arabShaman", em:"grin", race:"Human", gender:"Male", age:21 + _local2, origin:"Aeropolis", weapon:"-", elem:"AIR", Class:"Shaman", alignment:"True Neutral", bio:"The Aeropolis Shaman stands out amongst the shamans of Belfan for his laid-back, casual, party-loving attitude... He's younger than most of the shamans, and doesn't seem to take his duty as seriously, caring more about fun than the balance of nature. Or so it seems.\nHowever, in truth, whenever a difficult situation arises, he is quick to take up his duty and act serious to deal with it very professionally."}, {CH:3, name:"Lifewood Shaman", lastname:"", model:"shaman3", sprite:"shaman3", em:"norm", race:"Human", gender:"Female", age:300 + _local2, origin:"Belfan", weapon:"-", elem:"EARTH", Class:"Shaman", alignment:"Lawful Neutral", bio:"The shaman of the Lifewood looks like a pretty girl in her teens, but this is merely due to the vivifying magic of the Lifewood; she's actually centuries old."}, {CH:3, name:"Old Hermit", lastname:"", model:"hermit", sprite:"hermit", em:"norm", race:"Human", gender:"Male", age:62 + _local2, origin:"Belfan", weapon:"-", elem:"FIRE", Class:"Shaman", alignment:"Chaotic Neutral", bio:"An old hermit (as the name suggests) who lives in a cave deep in the Crimson Peak volcano. He used to be the shaman of the local region, but he was driven insane by the guilt of certain actions of his and secluded himself so that he could no longer be a harm to anyone.\n\nHe still watches over the volcano, continuing his duty as a shaman."}, {CH:1, name:"Gallovar", lastname:"", model:"Ypriest", sprite:"Ypriest", em:"norm", race:"Human", gender:"Male", age:27 + _local2, origin:"Goznor, Belfan", weapon:"-", elem:"WATER", Class:"Medium Priest", alignment:"Lawful Neutral", bio:"Gallovar is the Medium Priest of Yalortism in the Goznor region of Belfan. He preaches the word of the Holy Dragon to all those who will hear. He's seen as a sort of sagely father figure, and his counsel is sought by people of all ages seeking guidance. His eyes are solid, glowing green as proof of his devotion to YALORT and the reality of the power he's received from his deity."}, {CH:1, name:"Social Fox", lastname:"", model:"socialfox", sprite:"socialfox", em:"cdgr", race:"Human", gender:"Male", age:((_local1 == 1) ? 31 : "Deceased"), origin:"Unknown", weapon:"Greatsword", elem:"FIRE", Class:"Grand Adventurer", alignment:"Chaotic Neutral", bio:((_local1 == 1) ? "Ach, Social Fox is the most famous of Grand Adventurers on Belfan at the moment. His deeds are the stuff of legend, and many a town has been saved by his heroism. Mardek and Deugan, like many young people, aspire to be Grand Adventurers like Social Fox one day." : "Social Fox was the most recent of the Grand Adventurers. His deeds are the stuff of legend, and many a town was saved by his heroism. Mardek and Deugan, like many young people, aspired to be Grand Adventurers like Social Fox one day.\nHe died of critical wounds after slaying a particularly powerful dragon, and was given a Hero's burial in a large tomb within the Goznor Catacombs. His death was a huge blow on the inhabitants of Gonoroth, Mardek and Deugan particularly as he was their hero, but now that he's gone they merely aspire to try harder to replace him.")}, {CH:3, name:"Shamash", lastname:"", model:"solhp", sprite:"solhp", em:"norm", race:"Human", gender:"Male", age:58 + _local2, origin:"Aeropolis, Belfan", weapon:"-", elem:"LIGHT", Class:"High Priest", alignment:"Lawful Good", bio:"The High Priest of the SOLAK at the Sun Temple in the desert west of Aeropolis. Like the other priests, he's sworn a vow of celibacy and isolation, and spends all his time in the temple, worshipping a deity nobody's really fond of. He doesn't consider it a very fulfilling existence, but he'd never admit that, even to himself."}, {CH:3, name:"Lykel", lastname:"", model:"ncaptain", sprite:"ncaptain", em:"mad", race:"Human", gender:"Male", age:40 + _local2, origin:"Unknown", weapon:"-", elem:"LIGHT", Class:"First Officer", alignment:"True Neutral", bio:"This man could best be described as... 'eccentric'. He's one of those sorts whose mind is so brilliant that it goes above normal conventions of what's, well, normal. Despite his bizarre idiosyncrasies, he was a terrific First Officer... of something. Whatever one of those is."}, {CH:3, name:"Evil Chancellor", lastname:"", model:"snaketongue", sprite:"snaketongue", em:"angr", race:"Reptoid", gender:"None", age:60 + _local2, origin:"Xantusia, Belfan", weapon:"-", elem:"DARK", Class:"Trusted Advisor", alignment:"Lawful Evil", bio:"A shining beacon of honour, benevolence, kindness, and reliability, this reptoid is highly regarded by all in his community as the pinnacle of goodness. A hero. In his spare time, he likes giving to charity, making self-sacrifices, and playing with kittens and babies. Not that kittens live on Belfan, but oh well."}, {CH:3, name:"Vudu", lastname:"", model:"YHighPriest", sprite:"YHighPriest", em:"esmile", race:"Human", gender:"Male", age:44 + _local2, origin:"Belfan", weapon:"-", elem:"DARK", Class:"High Priest", alignment:"Lawful Evil", bio:"The High Priest of YALORT in the Aeropolis region. His solid green, glowing eyes mark his rank, and show the gift that YALORT has given him for his piety.\nHe's from a far away land, which is obvious by his appearance and accent.\nThere's something about him that you find suspicious or untrustworthy... But if he was able to ascend to the highest of positions in a religious organisation, he can't be a bad man, right?"}, {CH:3, name:"Priestess Gail", lastname:"Ae-Quall", model:"priestess", sprite:"priestess", em:"norm", race:"Human", gender:"Female", age:36 + _local2, origin:"Belfan", weapon:"-", elem:"AIR", Class:"Priestess", alignment:"Lawful Neutral", bio:"The 'Air Priestess' of the Air Temple in Aeropolis. She isn't the Guardian of the crystal, but merely serves as a defender and maintainer of the magical portal to the true Air Temple, high in the sky; a job necessary when the portal is in the middle of a heavily-populated city.\n\nShe isn't originally from Aeropolis. Instead, she was born in the north somewhere, on Hadris. She spent her early years as an adventurer, travelling with Social Fox at some point. She later settled down and had a child, who she enrolled in the Royal Guard of Goznor when she was old enough. Her husband is deceased."}, {CH:3, name:"Mystery Man", lastname:"", model:"steele", sprite:"steele", em:"esmile", race:"Human", gender:"Male", age:"Who knows??!1", origin:"A total mystery!!1!1", weapon:"Fists", elem:"DARK", Class:"Brawler", alignment:"Chaotic Evil", bio:"This man is a complete stranger who has never been in the story before. His features are distinct; you'd remember if there'd been a character with an eyepatch and a burn-like scar in the game already, wouldn't you? But there just HASN'T BEEN. He's NEW.\nBut maybe he has some SECRET identity that will be revealed in some climactic twist?!? Who knows?!??11\n\nHis motivations are COMPLETELY UNKNOWN, but he stole the Dark Crystal and fled to who-knows-where. Surely he's out of the plot for good now, isn't he? That's usually how characters leave. After taking something of great importance. Yes."}, {CH:3, name:"Clavis", lastname:"", model:"clave", sprite:"clave", em:"smile", race:"Human", gender:"Male", age:"??", origin:"Unknown", weapon:"-", elem:"ETHER", Class:"Equilibriumancer", alignment:"True Neutral", bio:"An unusual man with a fondness for using Keystones as a metaphor. He claims to be an 'Equilibriumancer' and likes to ramble in a way that almost seems like moral lecturing or something, made to make his audience think. His motives are unknown... as is basically everything about him, really."}, {CH:1, name:"Rohoph", lastname:"", model:"rm_mardek" + (((_local1 == 3) && (GameData.visited.canonia_dreamcave_d2)) ? "_dream" : (((_local1 == 2) ? "_soldier" : (((_local1 == 1) ? "_child" : ""))))), sprite:"mardek_soldier", em:"norm", race:"Annunaki", gender:"None", age:"??", origin:"Anshar", weapon:"Unknown", elem:"LIGHT", Class:"Healer", alignment:"Lawful Good", bio:"A strange being who arrived on Belfan when his 'flying chariot' came crashing down from the heavens. What he's doing here is unknown, but on arrival his original body was killed, and he came to inhabit Mardek's body alongside him."}, {CH:2, name:"Moric", lastname:"", model:"moric", sprite:"moric", em:"deep", race:"Annunaki", gender:"None", age:"??", origin:"Anshar", weapon:"Scythe", elem:"EARTH", Class:"Necromancer", alignment:"Neutral Evil", bio:"Moric was the Earth elemental member of the Governance de Magi - a powerful group of Annunaki who oversaw and ruled the world of Anshar.\nHe was a Necromancer; his powers were rather dark and centred around raising the dead as undead. These powers were used by the Governance de Magi to form a sort of unholy undead army, which, though effective, was highly controversial amongst the inhabitants of Anshar. The GdM considered it a good idea, however, because it was better than sending LIVE inhabitants to their death fighting in battles.\nMoric was 'creepy' and reclusive, spending most of his time in his lab perfecting his magic. He was quite sadistic and loved pain and death, and the Violet Crystal amplified these negative traits, leading to Moric willingly chasing after Rohoph merely to see him suffer as he perished.\nMoric was defeated by Mardek and his party."}, {CH:2, name:"Qualna", lastname:"", model:"qualna", sprite:"qualna", em:"norm", race:"Annunaki", gender:"None", age:"??", origin:"Anshar", weapon:"Aquila", elem:"ETHER", Class:"Diviner", alignment:"True Neutral", bio:"Qualna was the Aether elemental member of the Governance de Magi - a powerful group of Annunaki who oversaw and ruled the world of Anshar.\nHe was called a 'Diviner'; his ability to look into the Astral and other realms of existence allowed him to describe past and potential future events, as well as to use magical clairvoyance to track creatures, and so on. These skills were extremely useful to the government, as you can imagine.\n\nThough tainted by the Violet Crystal just like his fellow Governors, Qualna didn't have the same lust for Rohoph's blood, and instead wished to return his old colleague to Anshar. This was because he values balance and order in all things, and realises that grudges and bloodshed only lead to valuable resources being lost and balance being disrupted, with terrible consequences for those not caught directly in the fray.\n\nHe disguised himself as 'Clavis' so as to better convince Rohoph by means of analogy to see what he was doing to his homeworld, though his attempts were met with futility."}], Places:[{CH:1, name:"Belfan", tileset:"BELFAN", info:"Second planet in the Girru system. A smallish, Type B world inhabited mostly by humans, though reptoids are also known to dwell here in small numbers. It is an Undeveloped world, still stuck in its 'mediaeval' ages, barely knowing of the other worlds in its own system let alone any others elsewhere.\nThe star, Girru, is in a binary relationship with the nearby star Nusku. Nusku orbits Girru extremely quickly, and every few hundred years the two systems come close to each other and Nusku and its planets can be observed from Belfan."}, {CH:1, name:"Goznor", tileset:"rural", info:"A small village that, despite its size, is the capital of the nation of Gonoroth, on the continent of Hadris on Belfan.\nThe village of Goznor is inhabited by simple folk and mainly consists of shops. There's also a Yalortian monastery, and a barracks for the Town Guard (which get little work due to the calmness of the place).\nCastle Goznor is to the north, where the King of Goznor (and Gonoroth) rules from."}, {CH:1, name:"Heroes' Den", tileset:"rural", info:"A small abandoned hut which Mardek and Deugan have taken as their 'den'. Many of their pretend 'adventures' have taken place here, and they use the place to store items and memories."}, {CH:1, name:"Soothwood", tileset:"darkwood", info:"A forest west of Goznor. It's unremarkable and full of goblins. The regional Shaman for the Goznor region dwells within."}, {CH:1, name:"Crash Site", tileset:"CRASHSITE", info:"The place where the 'falling star' apparently crashed."}, {CH:2, name:"Castle Goznor", tileset:"castle", info:"A large castle from where the King of the Goznor region and Gonoroth reigns. The Royal Guard are trained here until they become official Guards and are assigned areas to defend."}, {CH:2, name:"Gem Mine", tileset:"cave4", info:"A large natural cave complex just northeast of Goznor, in the mountains. Sparkly gems are abundant in these caves, which are dug up by miners because they feel like it or it's their job or something."}, {CH:2, name:"Eastern Glens", tileset:"rural", info:"A boring old field full of wasps. It separates Goznor and Canonia."}, {CH:2, name:"Trilobite Cave", tileset:"cave6", info:"A peculiar cave located on the Eastern Glens. It's full of fossils, but it's hard to get into."}, {CH:2, name:"Cambria", tileset:"cave6", info:"A village of sentient Trilobites, deep within the Trilobite Cave. It's completely cut off from human civilisation and the affairs of the surface world. It has really good items for sale, and the Arena is here!"}, {CH:2, name:"Lake Qur", tileset:"rural", info:"A large lake just west of Canonia. There have been many tales over the years of mysterious magical secrets lying at its bottom..."}, {CH:2, name:"Canonia", tileset:"darkwood", info:"A calm, sleepy village located in a forest. Though tiny, it's the second biggest settlement in the whole of Gonoroth. Nothing much ever happens here... OR DOES IT?!"}, {CH:2, name:"Canonia Woods", tileset:"darkwood", info:"A vaguely enchanted forest just south of Canonia. The Shaman of the Canonia region usually dwells within..."}, {CH:2, name:"Tainted Grotto", tileset:"cave5", info:"A natural cave complex within the Canonia Woods. It's said that a great wizard cast a spell on it many years ago, which turned it into the polluted state it's currently in. A lot of poisonous monsters call this cave their home."}, {CH:1, name:"Goznor Sewers", tileset:"sewer", info:"Despite the fact that none of the houses in Goznor have plumbing of any kind, the town has an extensive underground sewer complex! It's full of vile rat monsters. The oldest parts of the sewers have long been sealed off because they became a den for vicious monsters."}, {CH:2, name:"Catacombs", tileset:"catacombs", info:"The place where the bones of Goznor's dead are stored. Many great and once-powerful Heroes and Priests are interred in these vast sepulchres. For some reason though, the only way to get to the Catacombs is through the Old Sewers of Goznor... which is a bit weird."}, {CH:2, name:"Moric's Battleship", tileset:"saucer2", info:"An Annunaki battleship, customised to Moric's liking. It's powered by magical crystals and thaumaturgy. It has enough firepower to decimate Belfan, but Moric prefers to cast spells to raise undead servants to do his bidding instead of just using big guns. He finds that more exciting."}, {CH:3, name:"Sun Temple", tileset:"suntemple", info:"A large temple of SOLAK built out in the middle of the desert west of Aeropolis. Its design is mainly subterranean, with a ground level and several levels below it. It's inhabited by priests of SOLAK, who must take a vow of celibacy and isolation, agreeing to spend their lives there praying in devotion. It's unknown why it was built where it is, or who built it."}, {CH:3, name:"Sandflow Caves", tileset:"sandcave", info:"A natural cave complex beneath the Sun Temple. Volcanic activity below causes the sands to be constantly shifting, flowing up and down the walls. What do you mean, 'volcanic activity wouldn't cause that'? Well, it must be magic, then. Yes. A wizard did it."}, {CH:3, name:"Xantusia", tileset:"sandcave", info:"An old village of reptoids, deep within the Sandflow Caves. It existed long before the Sun Temple, but the reptoids were savages; essentially just monsters, tainted by some dark energies.\nWhen the Sun Temple was built, they balanced out, and now tend to be rather on the Neutral side, and far more civilised.\nThey trade with the priests above on occasion, but both races feel each other to be an unwelcome pest in their territory."}, {CH:3, name:"Dark Temple", tileset:"temple_DARK", info:"One of the Elemental Temples that houses an Elemental Crystal. It is unknown who built these temples... Some say that an ancient race, which used to rule the world with magical technology, built them centuries ago. Others say that the Gods themselves built them to house the crystals. Others say that they just 'formed naturally', like a cliff or the crystals.\nWhatever their origin, they are places of intensely strong magical energy that few mortals ever tread in, unless they're searching specifically for the crystals.\n\nThe crystals have been taken on occasion - the Dark Crystal is usually taken by 'villains' as a part of their megalomaniacal schemes - yet they always seem to have a way of finding their way back to their temples..."}, {CH:3, name:"Aeropolis", tileset:"aeropolis", info:"The 'Jewel of the South' is the largest city on the continent of Fengue. It is said that all travellers pass through here at some point, being the nexus of trade that it is.\nAt its heart is the Air Temple, which contains the Air Crystal. The city is divided into several districts, including grand temples, palaces, museums, marketplaces, and so forth."}, {CH:3, name:"Lifewood", tileset:"lifewood", info:"A vibrant forest east of Aeropolis. It surrounds the Earth Temple, and the Earth Crystal within provides a strong, vibrant energy, which slows down ageing. The forest is said to be home to mischievous forest spirits, such as fairies. The vitality of the place is reflected in the Dreamrealm by a strong copy of the terrain, the Dreamwood, accessible via various dream circles scattered throughout the woods.\nThere is a cave deep within the Lifewood where a Serpent is said to dwell, worshipped over the ages by the Axolotls."}, {CH:3, name:"Dreamwood", tileset:"lifewood_dream", info:"The terrain within the Dreamrealm is built of thoughts thought by minds, perceptions of the material plane. However, few of these thoughts are strong and detailed, so the lands within the Dreamrealm are shifting and hazy. There are exceptions, however, where 'strong copies' of places exist in the Dreamrealm. One of these is Dreamwood; a strong copy of the Lifewood created by the familiarity of the longevous creatures within.\nIt is home to pixies, and both forms of the forest must be traversed to properly explore it."}, {CH:3, name:"Lost Monastery", tileset:"monastery_lost", info:"A Yalortian Monastery, lost to the forest a century ago. The priests who dwelt here succumbed to madness, and their very souls were bound to the crumbling ruins, to haunt it as undead and spirits."}, {CH:3, name:"Earth Temple", tileset:"temple_EARTH", info:"One of the god-built Elemental Temples, which houses the Earth Crystal. It is teeming with vitality, and the air within is thick, and smells like moist plantlife."}, {CH:3, name:"Water Temple", tileset:"temple_WATER", info:"One of the god-built Elemental Temples, which houses the Water Crystal. Pure, clear water flows throughout its halls, and the atmosphere is calm and tranquil."}, {CH:3, name:"Crimson Peak", tileset:"volcano", info:"A large volcano on the Fengue continent. Though active, it has been many millenia since the last eruption. It houses the Fire Temple."}, {CH:3, name:"Fire Temple", tileset:"temple_FIRE", info:"One of the god-built Elemental Temples, which houses the Fire Crystal. Being within it fills you with a kind of sweltering energy, almost aggressive; it makes you want to dance or fight something, or both."}, {CH:3, name:"Miasmal Citadel", tileset:"citadel", info:"An ancient ruin, deep in the Sandflow Caves. It is here that the last surviving Manta had their last stand, and where they were utterly defeated by the calamity from the skies...\nNowadays, their spectres roam its chill halls, bewailing the injustice of their demise, longing for vengeance. Or something dramatic like that. Either way, it's a secret dungeon! You should be proud to have found it!"}, {CH:3, name:"Dreamshrine", tileset:"dreamshrine", info:"The second secret dungeon!!!\nIt's a place within the Dreamrealm specifically built by 'thought mages' of the Manta, or something, to imprison the Mind of the Annihilator. Be careful!"}], Artefacts:[{CH:1, name:"Fire Crystal", elem:"FIRE", info:"One of the Elemental Crystals. It provides the essence of life and energy, of heat and of fire. Without the power of the Fire Crystal, Belfan would surely fall into an ice age.\nThe Fire Crystal is currently located in a temple in a cave south of Aeropolis on the Fengue continent."}, {CH:1, name:"Water Crystal", elem:"WATER", info:"One of the Elemental Crystals. It provides the essence of water, which is necessary for life. Without the water crystal, the waters of Belfan would stagnate, and all life in the seas would perish (as well as any animal that requires water to sustain them).\nThe Water Crystal is currently located on the Hadris continent, but its specific location is a closely-guarded secret."}, {CH:1, name:"Air Crystal", elem:"AIR", info:"One of the Elemental Crystals. It provides the essence of wind. Without the air crystal, the wind on Belfan would cease, the air would stagnate and become unbreathable.\nIt's currently held in a temple at the heart of Aeropolis."}, {CH:1, name:"Earth Crystal", elem:"EARTH", info:"One of the Elemental Crystals. It provides the essence of life to beasts and plants, and the strength of the rocks. Without the Earth crystal, plants wouldn't grow, beasts would stop breeding, and the rocks would become brittle and crumble.\nIt is currently located in the Lifewood east of Aeropolis on the Fengue continent."}, {CH:1, name:"Light Crystal", elem:"LIGHT", info:"One of the Elemental Crystals. It is the source of all the Goodness in the hearts of the inhabitants of Belfan. Together with the Dark Crystal, it maintains a delicate balance of morals that keeps men productive and happy.\nIt is currently located in the castle of the King of Goznor, on the Hadris continent."}, {CH:1, name:"Dark Crystal", elem:"DARK", info:"One of the Elemental Crystals. It is the source of all the Evil in the hearts of the inhabitants of Belfan. Together with the Light Crystal, it maintains a delicate balance of morals that keeps men productive and happy. (Without the Dark Crystal to keep the balance, civilisation would stagnate and never improve because everyone would be happy and would see no need for change.)\nThe Dark Crystal is located in a temple on the Fengue continent, but its location is unknown; it is thought to have submerged in the sands of the desert many hundreds of years ago."}, {CH:2, name:"Ether Crystal", elem:"ETHER", info:"One of the Elemental Crystals. It is the source of all the souls of every creature on Belfan; it serves as a passage for souls between the Soulplanes and the Material Plane, causing souls to be born as creatures on Belfan. Without this crystal, there would be no more births of any creatures on Belfan, and all those born from the crystal's energy would be weakened considerably."}, {CH:3, name:"Dreamstones", elem:"ETHER", info:"Sometimes, an odd magical phenomenon occurs where a person's thoughts or dreams leave a sort of physical residue because of 'cracks' in the dreamrealm, which crystallises into perfect, flawless orbs which sort of resemble precious stones. Someone who knows the mind that created the crystallised thoughts can relive them himself by holding the orb and concentrating.\n\nThey used to be willingly created by great wizards to store thoughts and feelings of significant occasions in the same way that we'd use diaries."}, {CH:3, name:"Miasmal Chalice", elem:"ETHER", info:"Monsters are not living creatures as such, but more like apparitions made of an invisible but omnipresent substance known as 'the Dark', 'Miasma', or 'Dark Matter', which exists between this plane of existence and another. They take on forms derived from thinking minds, and exist only to bring despair and conflict, it seems. They have no minds or feelings.\n\nAn ancient civilisation built these magical 'chalices' to collect the Dark or Miasma in order to utilise its power. For what purpose is not known. It is known, however, that they fill when monsters near them are slain; they attract the raw Dark Energy that the monster dissolves into before it has a chance to rejoin the rest of the Miasma in the space between planes."}], Bestiary:[{CH:1, name:"Monster", elem:"DARK", info:"These vile, brutish purple beasts are the things that parents tell tales of to scare young children. Known for their violence and ruthlessness, these Monsters will attack basically anything that moves, and won't stop until they've torn their prey to shreds."}, {CH:1, name:"The Dragon", elem:"DARK", model:"MightyDragon", info:"The Mighty The Dragon was no match for our fine Mighty Heroes!!!"}, {CH:1, name:"Fungoblin", elem:"EARTH", info:"A variety of goblin with the properties of a fungus. Though usually playful and placid, they have been known to attack small children that trespass in their territory."}, {CH:1, name:"Poshgoblin", elem:"DARK", info:"I say! These upper-class goblins enjoy lording over the other goblins merely because they don't have a monocle or fancy tophat."}, {CH:1, name:"Forest Fish", elem:"WATER", info:"A variety of fish monster that lives not in lakes or seas like its kin, but in the air of forests. They are magically able to levitate and swim through the air, it seems. Most curious."}, {CH:1, name:"Fumerat", elem:"EARTH", info:"Odd, sewer-dwelling monsters that appear to be a mix of animal and machine. They spout foul smog from the rigid iron pipe that serves as their tail. Their bite is venomous; watch out."}, {CH:1, name:"Mugbert", elem:"EARTH", info:"A foul-smelling, overweight bully with the wit of a rotting plank of cheap wood who's picked on Mardek and Deugan for many years, using his older age and massive girth to get his way and prove his 'superiority'. When defeated, he throws tantrums and makes threats."}, {CH:2, name:"Leech Bat", elem:"DARK", model:"LeechBat", info:"A blood-drinking creature that lives in caves. They tend to attack in groups, and their blood-draining attacks absorb HP!"}, {CH:2, name:"Drillion", elem:"EARTH", model:"Drillhound", info:"A peculiar type of monster that appears to be fused with digging machinery... It digs extensive tunnels with its drill 'nose', and excavates gems, which it eats."}, {CH:2, name:"Chrysophage", elem:"LIGHT", info:"A type of insect with a long tail, the end of which is a huge, magical crystal. The crystal seems to make the creature invulnerable to magic."}, {CH:2, name:"Brown Mantid", elem:"EARTH", model:"BrownMantid", info:"Large, vicious, cave-dwelling insectoid monsters. They relentlessly attack any intruders in their territory with the scythe-like appendages which are actually modified antennae."}, {CH:2, name:"Bandit", elem:"EARTH", info:"Scofflaws! Brigands! Men like these have given up the lawful life and spend their days robbing and mugging to stay alive. They're generally brash, violent and vulgar, and would slit their mother's throat for a bag o' cash."}, {CH:2, name:"Wasp", elem:"AIR", info:"Giant flying insects with a vicious, powerful sting. They live in colonies overseen by a Queen. Probably."}, {CH:2, name:"Hobgoblin", elem:"FIRE", info:"These types of goblins have a fondness for tobacco."}, {CH:2, name:"Gruul", elem:"EARTH", info:"This particular type of monster is popular amongst children, and sometimes even domesticated. The wild ones might look friendly and smiley enough, but they're aggressive and their bite is ferocious."}, {CH:2, name:"Drowned Corpse", elem:"DARK", model:"DrownedCorpse", info:"A corpse of some unfortunate soul who slipped and fell into Lake Qur. It's animated by the Lake Hag's dark magics... or maybe by some other eldritch forces?"}, {CH:2, name:"Brinary", elem:"WATER", info:"Unlike other strains of Flying Fish, Brinaries cannot actually fly, and live solely in water. Isn't that interesting?!"}, {CH:2, name:"Blade Bee", elem:"AIR", model:"BladeBee", info:"A cruel and vicious type of Wasp that stabs and slashes at creatures with its sword-like stinger merely for the fun of it."}, {CH:2, name:"Green Mantid", elem:"EARTH", model:"GreenMantid", info:"A type of forest-dwelling mantid. They're very aggressive, and tend to enter a furious rage to destroy any who dare wander into their territory."}, {CH:2, name:"Balloon", elem:"EARTH", info:"Its sac is filled with an acidic, poisonous vapour; popping it would not be a good idea!"}, {CH:2, name:"Poison Bee", elem:"EARTH", model:"PoisonBee", info:"A particularly poisonous strain of Wasp. They try to inject their prey with so much poison that they explode. It's really gory and disgusting. Ew."}, {CH:2, name:"Ooze", elem:"EARTH", info:"An amorphous, amoeboid creature. It is highly acidic and poisonous to the touch. It consumes prey by absorbing them into its transparent body and then slowly dissolving them."}, {CH:2, name:"Phage", elem:"EARTH", info:"The magical crystal on the end of this insectoid monster's tail possesses potent magic - which nullifies the effect of spells entirely - and is often used as a reagent in magical spell-forging."}, {CH:2, name:"Gryyl", elem:"FIRE", model:"Griil", info:"A particularly wild and vicious form of gruul. They can belch flames hot enough to burn rock, but rarely do, even when threatened."}, {CH:2, name:"Zombie", elem:"DARK", info:"The remains of a simple peasant, animated by dark necromantic magics. It has no mind or soul of its own; its element is determined by the magic that animates it."}, {CH:2, name:"Skeleton", elem:"DARK", info:"An ancient corpse whose flesh has long rotted away. It was animated by necromancy, and feels no emotions, especially not pain, and keeps on fighting until it is turned to dust."}, {CH:2, name:"Pestilent", elem:"EARTH", info:"The corpse of one who died by poison, be it from the stinger of a Wasp, the stagnant, filthy green waters of the sewers, or something else... They are animated by necromancy and given the power to poison others as a perverse kind of vengeance for their fate."}, {CH:2, name:"Miasmurine", elem:"DARK", info:"A large, vicious variety of fumerat that lives deep in the sewers. Their bite is more venomous and deadly than that of regular fumerats."}, {CH:2, name:"PoorGoblin", elem:"EARTH", info:"A vagrant goblin that resides in sewers. It smells really, really bad."}, {CH:2, name:"Corpse Drinker", elem:"DARK", model:"CorpseDrinker", info:"So named for their voracious thirst for blood; they prefer the blood of dead rather than live bodies, and latch onto corpses, not letting go until all of the body's blood has been completely drained."}, {CH:2, name:"Blood Clot", elem:"DARK", model:"BloodClot", info:"A massive amorphous blob of stale blood, animated by necromancy. It's sort of creepy, really."}, {CH:2, name:"Spectre", elem:"ETHER", info:"Those who are slain in this world in especially gruesome, cruel, or just unfair ways tend to linger around as spectres, forming vague, ethereal bodies with which to move about. They have no minds, and their only feelings are loathing and despair. They attack any living beings they see out of spite."}, {CH:2, name:"Security Orb", elem:"EARTH", model:"SecurityOrb", info:"A mechanical orb, animated by thaumaturgy, which serves as a defence mechanism within annunaki ships, destroying any who might try to intrude. They're generally attuned to the element of their master."}, {CH:2, name:"Droma (Moric)", elem:"EARTH", model:"Droma_Moric", info:"The droma are a slave race to the annunaki, who serve their masters without question or payment. They have a chip implanted into their head at birth to disable any rebellious thoughts. They actually ride in mechanical suits which help them perform their assigned duties better; a 'naked' droma is a frail, useless thing."}, {CH:2, name:"Trilobite", elem:"WATER", info:"A strange tribe of creatures that dwell in the Trilobite Cave. Unlike most monsters, they're sentient, but still rather barbaric, attacking all who trespass within their cave on sight."}, {CH:2, name:"Coelacanth", elem:"WATER", info:"An ancient variety of monster that's been around for hundreds of millions of years. They're said to be the first, basic type of Flying Fish from which other Flying Fishes evolved."}, {CH:2, name:"Phantom", elem:"ETHER", info:"A being of pure malice. A soul who clings to the material plane even after death, refusing to move on. They're sort of like incredibly bad guests, and are extremely angry to be told to leave the material plane after death, intending instead to make as many OTHERS as they can move on in their place."}, {CH:2, name:"Zombie Monster", elem:"DARK", info:"The corpse of a large Monster, animated by necromancy. They're as vicious as they were in life, but since they feel no pain and have no mind, they attack relentlessly without caring about their own personal well-being, and fight until their bodies are physically incapable of doing so anymore."}, {CH:2, name:"Abomination", elem:"DARK", info:"A warrior from some ancient tribe, who had his honourable burial disturbed when he was animated by foul necromancy."}, {CH:2, name:"Adventurer", elem:"WATER", model:"Adventuress", info:"A female adventurer who entered the Cambria tournament. Her motivations are unknown, and not worth thinking about anyway."}, {CH:2, name:"Muriance", elem:"AIR", info:"The chief of a group of bandits. He attacks with a handgun and various air-elemental magical attacks. When reduced to low health, he'll use an item to heal himself!"}, {CH:2, name:"Lake Hag", elem:"WATER", model:"LakeHag", info:"A creature that dwelled within a cave in Lake Qur. It used to be revered by the inhabitants of Canonia, who would drop gifts for it into the lake as thanks for the spells it would cast to keep the environment and the people safe. It was turned wild and evil, however, presumably by the same means that the other monsters around Canonia were."}, {CH:2, name:"Bartholio", model:"bartholio_e", elem:"LIGHT", info:"Leader of the World's Saviours. He's a rather generic Fighter-type. His greatsword is rather powerful, but he's too eager to swing it with power rather than accuracy. If his allies fall, he gets angry."}, {CH:2, name:"Vennie", model:"vennie_e", elem:"AIR", info:"He's a Thief. He attacks mainly with status-inflicting attacks, which can be quite annoying."}, {CH:2, name:"Aalia", model:"aalia_e", elem:"LIGHT", info:"She's a Healer and a Princess in a Fantasy setting and dresses to fit the part, eh? She supports her allies with healing spells and protective status effects."}, {CH:2, name:"Bernard", model:"bernard_e", elem:"DARK", info:"The black sheep of the World's Saviours. Why he hangs around with those generic young people is quite unknown. Maybe he's their father or something? Either way, he uses rather powerful magical spells, but seems to be intentionally limiting his power, and casts spells with a frivolous look of vague amusement and unseriousness on his face... Hmm."}, {CH:2, name:"Canonia Shaman", elem:"DARK", model:"CanoniaShaman", info:"The zombified Shaman of the Canonia region. She claims that 'the Reaper' gave her dark powers, which enhanced her already potent spellcasting abilities that she had in life. She seems to have lost her mind, however. Hm."}, {CH:2, name:"Locksmith", elem:"DARK", model:"ZombieLocksmith", info:"WHY A ZOMBIE LOCKSMITH!? WHY?! WHAT DOES THAT HAVE TO DO WITH ANYTHING?! IT DOESN'T FIT IN ANYWHERE AT ALL!! I JUST DON'T UNDERSTAND!!"}, {CH:2, name:"Zombie Warrior", elem:"DARK", model:"Zombie_Warrior", info:"This was a mighty titan of a man in life, just as he is in death, of course. He won't like it if he appears to be losing a battle."}, {CH:2, name:"Moric", elem:"EARTH", info:"Necromancer of the Governance de Magi, and leader of the Undead Army of Anshar. His specialty lies in raising the dead as servants, however; by himself, he's not all that powerful at all. Not relative to the other Governance de Magi, anyway..."}, {CH:2, name:"Dracelon", elem:"EARTH", info:"Dracelons are a kind of tripedal 'dragon' that live on Anshar, the homeworld of the Annunaki... This one, however, is mostly a cyborg; the fleshy head is all that's visibly left of its original organic body. It's also been zombified by Moric; it makes it easier to keep that way, since it doesn't need to eat and doesn't have emotions."}, {CH:2, name:"Moric", elem:"EARTH", model:"Z_SocialFox", info:"Moric took the body of the Grand Adventurer Social Fox as his own when he performed the Soul Transfer, as it seemed like the most powerful body in his immediate vicinity when his original body was killed... The Hero seems to have retained some of his power from life, but most of his abilities are still Moric's."}, {CH:2, name:"Zombie Dragon", elem:"DARK", model:"ZombieDragon", info:"After it was slain by Social Fox, the last dragon that The Hero ever slew decided that it enjoyed the battle with him so much that it'd like a rematch, just for fun. Since they'd both killed each other. It wandered deep into his tomb, but found his body missing, and waited there for him to return, or maybe for another worthy challenger to arrive...?"}, {CH:3, name:"Albino Bat", elem:"LIGHT", model:"AlbinoBat", info:"This type of pure white bat has been revered by various tribal cultures, as it was thought to be some kind of divine avatar."}, {CH:3, name:"Sekil", elem:"DARK", info:"A long-slain flying fish, risen to unlife out of sheer force of will and pure hatred for its killer."}, {CH:3, name:"Vega", elem:"LIGHT", info:"These mechanical monsters are actually spirits inhabiting man-made statues of SOLAK, God of Suns. They apparently find it amusing to make demands of priests, claiming to be their god."}, {CH:3, name:"Temperance", elem:"NONE", info:"An artificial monster shaped like a totem pole of sorts. Its four heads represent the 'Four Temperaments', types of personalities; Choleric, Sanguine, Melancholic and Phlegmatic.\nThe top head determines this monster's mode of attack."}, {CH:3, name:"Posh Gruul", elem:"DARK", model:"PoshGruul", info:"I say! This particularly wealthy gruul is at the top of gruul society. It wears a monocle, expensive shoes and tophat to show its status, and enjoys eating caviar."}, {CH:3, name:"Revenant", elem:"LIGHT", info:"These creatures are undead, but unusual in that they're positively brought to unlife by light magics. They're fallen Paladins, returned to the land of the living to smite evil, as they feel their work is not yet complete. Unfortunately, due to the rotting of their brains, they lack the reason to judge what is and isn't evil, so they try to smite everything."}, {CH:3, name:"Moonstone", elem:"LIGHT", info:"A crystalline monster made of pure living moonstone. They look like they'd be hunted quite enthusiastically, as the mass of moonstone that comprises them would surely be worth a fortune, but annoyingly enough, they fade into nothingness when slain. Damn."}, {CH:3, name:"Fire Opal", elem:"FIRE", model:"FireOpal", info:"A monster made up of a giant, pure, living fire opal gem. It lacks organic components, and perceives the world around it using magical senses unknown to we humans."}, {CH:3, name:"Topaz", elem:"AIR", info:"These magical beings are said to form when a particularly impressive lightning spell strikes a slab of rock."}, {CH:3, name:"Lupaazr", elem:"EARTH", info:"In order to counter their air-elemental predators, these earth-elemental lizards have evolved a particularly potent fiery breath weapon. Due to living in the scorching heat of the desert, they've also developed a resistance to fire."}, {CH:3, name:"Blood Lizard", elem:"FIRE", model:"BloodLizard", info:"When a Lupaazr survives for many decades in the extreme heat of lava-filled desert caves, it's said to become one of these. Though whoever said that could have been lying, and these could just be a different species altogether. Come to think of it, that guy DID have eyes that looked in opposite directions, and believed that the King of Goznor was really a reptoid in disguise..."}, {CH:3, name:"Antares", elem:"LIGHT", info:"An Idol sculpted in the guise of SOLAK, God of Suns, by Solakian Priests, which has been possessed by a destructive spirit from the elemental plane of Light."}, {CH:3, name:"Reptoid Warrior", elem:"EARTH", model:"Reptoid_Warrior", info:"Reptoids are tall, strong and nimble, making them physically superior to humans in essentially every way. However, they lack magical skills, which can put them at a disadvantage."}, {CH:3, name:"Amberystal", elem:"FIRE", info:"A type of phage insect that is most at home in scorching hot places. It uses the focus crystal on its tail to cast fire spells like a mage."}, {CH:3, name:"Antlion", elem:"EARTH", info:"A large, dangerous mantid strain that lives in sandy areas. They have counterattack reflexes when hit with physical attacks, so try magic instead!"}, {CH:3, name:"Sand Marauder", elem:"EARTH", info:"These elusive and evasive types of monster are renowned for being kleptomaniacs. Like magpies, they are drawn to and steal shiny objects to take back to their dens, diseappearing in a blur of speed before anyone has a chance to catch them."}, {CH:3, name:"Happy Johnny", elem:"EARTH", model:"HappyJohnny", info:"Hooray, huzzah, hurrah! Happy Johnny is 'in town' and he's 'having a bomb', as the hoodlums say in the slums! Rejoice!"}, {CH:3, name:"King Cuthbert", elem:"EARTH", model:"KingCuthbert", info:"This regal monarch of the Sandflow Caves has quite a sense of humour. Thrown pies, googly eyes and spinning bow ties. That sort of stuff. The ladies love him for it."}, {CH:3, name:"Punk Monster", elem:"DARK", model:"PunkMonster", info:"This hulking monster wants to overthrow The Establishment by Sticking It To The Man. It listens to deafeningly loud cacophonous music, abuses its body, and overall believes that anarchy is bliss. It'll grow out of it in a few years. Or it would, if you hadn't killed it."}, {CH:3, name:"Eyestalk", elem:"DARK", info:"It's a creepy eye on a stalk. It moves around in a jerky fashion and seems to be looking directly into your very soul... Ooooo~!"}, {CH:3, name:"Dark Elemental", elem:"DARK", info:"Elementals are beings that result from a spirit taking control of a chaotic mass of elemental energy rather than a physical body. These dark elementals are basically just pure loathing and selfishness manifest, with no purpose other than to destroy those who are happy. And those who aren't as well!!1"}, {CH:3, name:"Monochrones", elem:"DARK", model:"BlackBones", info:"The reanimated skeleton of a man who presumably died in some colour-draining accident. You know the type. Look, he has fluffy bunny slippers!!"}, {CH:3, name:"Onyx", elem:"DARK", info:"It's said that if an Elemental exists for too long without doing much, the chaotic energy that makes up its body eventually settles and succumbs to order, forming intricate crystals like this. Though that could just be a lie."}, {CH:3, name:"Obsidian Phage", elem:"DARK", info:"Phages that like dark, miserable places, where they lurk, waiting to feed on the misery and pain of all who enter their territory."}, {CH:3, name:"Molestor", elem:"DARK", info:"A negative energy demon, imprisoned in the Dark Temple as a sort of guardian. It feeds on and tries to inspire feelings such as fear, hatred, anxiety and disgust."}, {CH:3, name:"Mystery Man", model:"SteeleBoss1", elem:"DARK", info:"Who is this strange Eyepatch Man who fights viciously with his fists and talks brashly?!? Why, it is a mystery indeed!!1 It is hard to fathom why he would attack you as he did, as he surely had no prior knowledge of you, being a new character and all, but he did, and took the Dark Crystal. Which is bad."}, {CH:2, name:"Ghoul", elem:"DARK", info:"A type of undead with large, sharp claws. Beware of its paralysing touch!"}, {CH:3, name:"Ghast", elem:"DARK", info:"These undead come into being when a person is slain by particularly strong Dark-elemental energies."}, {CH:2, name:"Fallen Soldier", elem:"EARTH", model:"FallenSoldier", info:"A former soldier of the Goznor Guard, still wearing his uniform and silly hat. It makes you feel uncomfortable, seeing one of your brothers-in-arms like this."}, {CH:3, name:"Green Soul", elem:"ETHER", model:"GreenSoul", info:"The disembodied spirit of someone who was particularly mischievous and cruel in life. They tend to float around in dank places where the dead are abundant."}, {CH:3, name:"Blood Zombie", elem:"DARK", model:"BloodZombie", info:"A type of zombie that is created by a ceremony that involves smearing its body with its own blood... or something. Look, it has a beard!!1"}, {CH:3, name:"Rot Rat", elem:"DARK", model:"Rotrat", info:"Undead fumerats, which carry with them a zombie plague, passed on via their bite. Their pipe tails belch out a putrid gas that reeks of death."}, {CH:3, name:"Posh Zombie", elem:"DARK", info:"I say! These are the most extravagant of undead, what with their fancy suits, top hats and monocles. They're well-mannered, so they're likely to tip their hat to you and wish you a good day before snapping your neck and feasting on your innards. Gracious!"}, {CH:3, name:"Bone Dracelon", elem:"DARK", model:"BoneDracelon", info:"Moric's Dracelon was already a zombie before, but now it's been\nRE-reanimated as a skeleton, this time with Dark rather than Earth energies. Interesting that it managed to survive the destruction of the battleship mostly intact..."}, {CH:3, name:"Lovely Elf", elem:"LIGHT", model:"LovelyElf", info:"These elves aren't just normal, everyday elves. Ohno. They're Lovely Elves! And that's just great."}, {CH:3, name:"Purple Mantid", elem:"FIRE", model:"PurpleMantid", info:"This strain of mantid is particularly vicious and hot-tempered. Get it?! Hot?! Because it's fire elemental?!? ...Oh, never mind."}, {CH:3, name:"Roaming Axolotl", elem:"WATER", model:"RoamingAxolotl", info:"Though Axolotls, as a race, tend to dwell within caves in distinct tribes ruled by strict hierarchy, every so often there's one who feels the need to wander and go on Adventures. This is one of those."}, {CH:3, name:"Leaf Stinger", elem:"EARTH", model:"LeafStinger", info:"A type of insect/plantoid hybrid. Like all monsters of the wasp type, its stinger is venomous, which can get annoying."}, {CH:3, name:"Centaur", elem:"EARTH", model:"Centaur", info:"These centaurs are not a sentient race, but Monsters, born of the mindless, soulless darkness. Monsters are essentially created by the minds of sentient beings, made to represent their ill thoughts. Someone must have had nightmares about horse-man hybrids in order for this to have come about (probably some man's guilt from buggering a horse)."}, {CH:3, name:"Centaur", elem:"EARTH", model:"CentaurMage", info:"Centaur monsters apparently display superficial sexual dimorphism, though being Monsters, they lack the capacity and anatomy to reproduce carnally (instead, new monsters simply appear from the Dark). These horse-girls use magic, whereas their more well-muscled male counterparts tend towards physical strikes."}, {CH:3, name:"Furry Biter", elem:"EARTH", model:"FurryBiter", info:"A type of gruul variant that dwells within the Lifewood. It seems that the female centaurs train them as pets and combat allies."}, {CH:3, name:"Rogue Fairy", elem:"EARTH", model:"RogueFairy", info:"This fairy was bad.\nShunned by others of its ilk.\nIt drifts now, alone."}, {CH:3, name:"Axolotl", elem:"WATER", info:"Axolotls are a primitive kind of sentient race, barbaric in their ways and incapable of communication with the more advanced races like humans or reptoids. They tend to be organised in small tribes, each with a strict chain of command."}, {CH:3, name:"Tweed", elem:"WATER", info:"A gangling eye creature that lives in caves where water is abundant. It's attuned and immune to magic, but succumbs easily to the edge of a sword."}, {CH:3, name:"Ratbat", elem:"DARK", info:"Oh, those silly wizards and their humourous combinations of two animals into another less threatening than either!!! Though really, since monsters form from the Miasma, this is not made by wizards, but by thoughts. BIZARRE thoughts."}, {CH:3, name:"Cavefish", elem:"WATER", info:"These flying fish are blind, but their sense of smell is enhanced, or something. Their name might make you think that they live in caves, but you'd be right if you thought that. Completely correct."}, {CH:3, name:"Serpent", elem:"WATER", info:"Intelligent, powerful serpents like this usually live in the sea, but the one that you defeated was trapped in a small cave as a child, when the waters were higher. The Axolotls have regarded it as a god since then, regularly coming to its cave with offerings in exchange for blessings. Serpent headcrests are much sought after for their magical properties."}, {CH:3, name:"Pixie", elem:"ETHER", info:"Pixies are some of the few 'real' beings that make the dreamrealm their home. They are something of a cross between real live spirits and miasmal monsters; though they have minds, their shells are miasmal rather than physical. They can travel into the minds of sentients, where they play mischief."}, {CH:3, name:"Whim", elem:"FIG", info:"Though actual living beings, like pixies, make the Dreamrealm their home, more often than not anything you'd encounter there is merely a 'thoughtform', or 'figment'; a 'creature' made up purely of the thoughtstuff. They're made by particularly strong and emotional thoughts, usually. The Whim is a thought of highly chaotic malice."}, {CH:3, name:"Forgotten Face", elem:"FIG", info:"A thoughtform of memory and guilt, brought into existence every time you forget about someone you used to know. Though it is mute and its face nonexistent, it seems to be saying to you 'what, you don't remember me? I thought we were friends...'"}, {CH:3, name:"Carpioneiros", elem:"FIG", info:"Some people say that these fish of the dream realm swimming into your heads during the night is what causes you to dream. That could be utter tripe, though."}, {CH:3, name:"Fallen Cultling", elem:"DARK", model:"FallenCultling", info:"The priests within the Lost Monastery had their souls and minds trapped in their bodies as they decayed, drifting further into madness all the while... This is due to whatever magic the Stone holds."}, {CH:3, name:"Chaosoul", elem:"ETHER", info:"Some of the cultlings' bodies decayed to such a point that they were just dust, at which point the soul and mind within weren't left to go to the Afterlife, oh no. Instead, they were still bound to the place, but released in this raw form, where their insanity is even more clear."}, {CH:3, name:"Fallen Paladin", elem:"LIGHT", model:"FallenPaladin", info:"The Lost Monastery, like the Yalortian Monastery in Aeropolis, was home to several divine Paladins, who also succumbed to the insanity and bodily decay. Bald Paladins with beards are the best kind!"}, {CH:3, name:"Fallen High Priest", elem:"DARK", model:"FallenHPriest", info:"The High Priest of the Lost Monastery was a highly competent magic user, so he was a vicious opponent. His mind was the strongest in the monastery back before the Stone came, so when it did, it warped his mind less than the rest. He chose to guard the Stone by choice, to let no such tragedy befall anywhere else."}, {CH:3, name:"Axolotl Chief", elem:"WATER", model:"AxolotlChief", info:"Each Axolotl tribe has a single chieftain like this one which leads it, usually the alpha male. They wear tattoos to mark their rank."}, {CH:3, name:"Water Elemental", elem:"WATER", info:"Chaotic, mindless, writhing masses of water elemental magical energy that exist in places where that type of energy is abundant. They do not attack out of any kind of malice - they are mindless, after all - but because their 'attacks' are merely reactions to stimuli and universal laws. Sort of like how water doesn't splash 'on purpose' if you drop something into it."}, {CH:3, name:"I-Orb Spawn", elem:"WATER", model:"Iorbspawn", info:"I-Orbs are a sort of monster that generally looks like a huge, eerie, floating eye, but the floating eye stage is merely the medusa. As polyps, they look like this, anchoring themselves to the floor to drain out nutrients. Eventually, the little eye swells and pops off to float away, leaving the stalk to die."}, {CH:3, name:"I-Orb", elem:"WATER", model:"Iorb", info:"The free-moving medusa stage of the I-orb 'lifecycle' (as much as monsters can have those) is this giant, eerie, floating eye. They shoot laser beams and have the ability to cast magical spells."}, {CH:3, name:"Angry Cod", elem:"WATER", model:"Killer Cod", info:"Large, fierce fish with hard, bony armour plating. They are not particularly gentle or forgiving in their temperament."}, {CH:3, name:"Waterdrop", elem:"WATER", info:"An amoeba-like creature made up entirely of water. Probably formed by magical energy, like a lot of things that you tend to find in such close proximity to an elemental Crystal. The Crystals are so powerful that they alter the very biosphere around them, y'see."}, {CH:3, name:"Turquoise", elem:"ETHER", info:"Particularly large gemstones of the turquoise variety. Their Gemsplosion can be devastating."}, {CH:3, name:"Master Stone", elem:"ETHER", model:"MasterStone", info:"An ancient crystaloid monster that has existed in a small cave-like room of the Water Temple for many centuries. It possesses the ability to shift its element at will, interestingly enough."}, {CH:3, name:"Water Guardian", elem:"WATER", info:"The Guardian of the Water Temple is a young human female who looks suspiciously familiar, but alone, she realises that she's not much of a match for anyone who'd want to challenge her for the Crystal, so she has help from her loyal steed, which is a... uh... I have no idea what that is. But she's had it as a pet since they were both small."}, {CH:3, name:"Magmazard", elem:"FIRE", info:"A type of lizard with skin like lava, which lives in extremely hot areas. Its bony face resembles a bare skull."}, {CH:3, name:"Charred Bones", elem:"FIRE", model:"CharredBones", info:"A person who died by being cast into lava or scorched by magical flames, reanimated by his own burning fury and vengeance."}, {CH:3, name:"Wretched Soul", elem:"DARK", info:"The soul of a wickedly evil spellcaster, who sought to take the crystals for himself to conquer the world. He was trapped in a Soul Cage by the Volcano's Shaman, however, but was freed and subsequently destroyed and sent to the afterlife by Mardek."}, {CH:3, name:"Lava Blob", elem:"FIRE", model:"LavaBlob", info:"An animated globule of molten lava, OUT TO DESTROY YOU FOR SOME REASON. Truly, EVERYTHING is out to get you. That's what you get for being a protagonist!"}, {CH:3, name:"Ruby", elem:"FIRE", info:"These giant floating rubies are quite parties to quiet walks on the beach. Well, not really. That's just a lie, you see."}, {CH:3, name:"Fire Elemental", elem:"FIRE", info:"Magical essence of the fire element made material and given a vague form. Like other elementals, it is mindless, and comes into being merely as a result of the extreme levels of elemental background energy near the crystals."}, {CH:3, name:"Dankrodo", elem:"DARK", info:"A small dark bird-like thing that lives in volcanoes for no apparent reason."}, {CH:3, name:"Flame Soul", elem:"FIRE", model:"FlameSoul", info:"These souls were trapped in Soul Cages within the Fire Temple, to serve as protectors, of a sort. It could be that they willingly sacrificed themselves for this duty when the temple was erected, or that they are bound there and cursed to forever burn by sinister and eldritch magicks..."}, {CH:3, name:"Fire Guardian", elem:"FIRE", info:"The Guardian of the Fire Temple is a large... creature... that goes by the name of 'Girru'. It is wise and deeply devoted to its duty, but fair, and graciously steps down when bested in order to grant the victor what they rightfully earned."}, {CH:3, name:"Emerald", elem:"EARTH", info:"There's really very little to say about these that hasn't already been said about the other gemstone-type monsters!"}, {CH:3, name:"Rexaurus", elem:"EARTH", info:"These big, dim-witted dinosauroid monsters used to be kept as pets and mounts by big, dim-witted soldiers back in the days of old. The world has changed since then, and they are extinct in most places... but the Earth Temple harbours a lot of life once thought lost."}, {CH:3, name:"Tibore", elem:"EARTH", info:"A relative of the drillion, but larger and fiercer. Their drill nose is powerful enough to drill through solid diamond."}, {CH:3, name:"Earth Elemental", elem:"EARTH", info:"Chaotic Earth essence given form. As with the other elementals, they are mindless, and more akin to explosions, waterfalls or aurorae than they are to beings."}, {CH:3, name:"Witchdoctor", elem:"EARTH", info:"Though they superficially resemble reptoids, these shaman-like reptilian spellcasters are merely mindless monsters. They possess the ability to conjure up soul-type monsters."}, {CH:3, name:"Golem", elem:"EARTH", info:"Huge, ambling humanoid constructs hewn from living stone. They used to be used as enchanted guardians for the Earth Temple, and they still serve that purpose even though the temple has fallen largely to ruin. They have no mind of their own, and are merely magically programmed; they will continue to carry out their assigned task all hours of every day until turned to dust."}, {CH:3, name:"Earth Guardian", elem:"EARTH", info:"Moo! The Earth Guardian is a Rock Mole, it would seem, though obviously it's not the same one that Kerah and Tattoo faced because this one has a beard! A beard made of grass, yes.\nIt seems to be a bit... simple in the head, and not as serious about its duty as the other guardians."}, {CH:3, name:"Thug", model:"AeropolisThug", elem:"AIR", info:"These scoundrels reside in the Aeropolis slums, making a living by attacking or stealing from foreigners or rival gangs."}, {CH:3, name:"Bandit", model:"Bandit3", elem:"AIR", info:"Before the gem mine incident, Muriance was an accomplished bandit back in his hometown of Aeropolis. He lead his own gang of bandits, who remained loyal to him even during his absence. With his return, they follow him once more in his search for the crystals."}, {CH:3, name:"Muriance", model:"Muriance2", elem:"AIR", info:"He's back! The Bandit Chief that you defeated in Chapter 2 seems to have made himself some kind of recurring villain... but wasn't that obvious from the fact that he had his own battle music?\nHe still searches for the crystals, and swears that one day, ONE DAY, he'll get them."}, {CH:3, name:"Griffin", elem:"AIR", info:"A wise magical beast, with the body of a lion, the head of an eagle, and a snake for a tail. In the days of old, they used to be used by grand wizards as aerial steeds."}, {CH:3, name:"Apparition", elem:"ETHER", info:"A humanoid phantom that lurks in the Miasmal Citadel. The dead look in its pinprick eyes belies any indication of its motives or how it came to be as it is."}, {CH:3, name:"Skelizard", elem:"DARK", info:"The remains of a lizard-like creature that the Manta civilisation trained as pets, animated by the thick miasma."}, {CH:3, name:"Blue Soul", elem:"ETHER", info:"These souls resemble the lacrimose severed heads of goblinoid creatures of unknown origin. They are obviously full of grief about their deaths."}, {CH:3, name:"Black Eye", elem:"DARK", info:"It can see right into the very core of your soul, and when it does so, it judges you, and looks for your fears and weaknesses. It doesn't really do anything with any of this knowledge though."}, {CH:3, name:"Mythril Golem", elem:"NONE", info:"These automatons were constructed by the advanced Manta civilisation before they were wiped out. They're extremely hardy; taking one down is quite a challenge."}, {CH:3, name:"Furious Eye", elem:"FIRE", info:"Monsters of the dreamrealm, formed from ideas of fury and hatred. Their mere glare seems to burn your skin."}, {CH:3, name:"Yellow Soul", elem:"AIR", info:"An electrically-charged wandering soul. They have a nasty disposition and seem to shock things for kicks."}, {CH:3, name:"Oneironaut", elem:"EARTH", info:"A type of monster witchdoctor that travels the dreamrealm via astral projection, for reasons unknown. It is able to rally souls from the dreamstuff to fight alongside it."}, {CH:3, name:"SOLAK Spirit", elem:"LIGHT", info:"This is the type of light spirit which normally possesses the Vega idols in the Sun Temple. In the Dreamrealm, its form is more fluid and ethereal. It takes on the guise of SOLAK, formed by ideas of Solakian priests; a perverse mockery of their Sun God."}, {CH:3, name:"Dreamfish", elem:"ETHER", info:"A type of lifeform that uses an astral body rather than a physical one as its primary mode of existence. They are no threat to living creatures, as they cannot enter the material realm, but astral travellers must beware, as these 'fish' have a tendency to nibble on and sever silver cords."}, {CH:3, name:"King of Goznor", model:"KingOfGoznor", elem:"FIRE", info:"The Monarch of Goznor who gave Mardek his knighthood and missions had been like a father to him, so having to fight against him - even though he was possessed - was traumatic and painful."}, {CH:3, name:"Qualna", elem:"ETHER", info:"Qualna is actually a reluctant fighter; he specialises in talking. As such, he's rather timid and anxious and doesn't seem to fight with his full force. He wields an odd weapon named 'Aquila'."}, {CH:3, name:"Red Dragon", elem:"FIRE", info:"Despite its enormous size, this proud, vicious variety of fire-elemental dragon can actually fit inside a small treasure chest. Which is an interesting fact. It can be quite a challenge to defeat one of these, but their scales can be used to make high-quality weapons."}, {CH:3, name:"Bone Demon", elem:"EARTH", info:"A terrible skeletal demon, sealed in a treasure chest by wizards long ago to keep its evil from the world. It was thought at the time to be immortal, but its bones had become brittle over the centuries, leaving it vulnerable to destruction."}, {CH:3, name:"A:Karnos", fullname:"Annihilator:Karnos", model:"Kdestralan", elem:"LIGHT", info:"A terrible monstrosity that fell from the sky eons ago and destroyed all in its path. The Manta civilisation battled it, but were wiped out. They did manage before they went, however, to magically separate its body and soul; this body, 'Karnos', is mindless but still rampages if attacked."}, {CH:3, name:"A:Animus", fullname:"Annihilator:Animus", model:"Kdestralan_Mind", elem:"ETHER", info:"The Annihilator's soul was banished to the dreamrealm by the Manta, but they couldn't destroy it. As long as it existed, it could have potentially formed itself a new physical body to destroy all life on Belfan... but you put a stop to that before it became a problem! Hooray for you!"}]};
E_LAST_SEL = 0;
}
function SetupGameAndTempVars() {
_global.GameData = {money:0, steps:0, visited:{}, bosses:{}, plotVars:{Allies:{}}, TRIGGERS:{}, OPTIONS:Clone(DefaultOPTIONS), CHAPTER:1, EN_FULL:{People:{}, Places:{}, Artefacts:{}, Bestiary:{}}};
_global.TempVars = {};
_global.CheatVars = {};
PCstats = [];
}
DefaultOPTIONS = {bquality:"MEDIUM", music:true, sfx:true, pfx:true, qwertz:false, zwait:true, afx:true};
OPTIONS_SO = SharedObject.getLocal(gameID + "_options", "/");
if (OPTIONS_SO.data.OBJ.bquality == null) {
OPTIONS_SO.data.OBJ = Clone(DefaultOPTIONS);
OPTIONS_SO.flush(OPTIONS_SO.getSize());
}
SkillTypes = ["ACT", "P_ATK", "P_DEF", "M_ATK", "M_DEF", "PASSIVE"];
classStats = {dummy:{ClassName:"Peasant", tech:"PsntMg", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1, H0:1}}, mardek:{ClassName:"Royal Knight", tech:"MSwd", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, Sh:1, H0:1, H1:1, H2:1}}, mardek_dream:{ClassName:"Royal Knight", tech:"MSwd", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, Sh:1, H0:1, H1:1, H2:1}}, soldier:{ClassName:"Expendable Soldier", tech:"Sldr", wpnType:"SPEAR", amrTypes:{ArS:1, Ar0:1, H0:1}}, mardek_hero:{ClassName:"Hero", tech:"Hero", wpnType:"SWORD", amrTypes:{ArS:1, Sh:1, Ar3:1, H2:1}}, deugan_hero:{ClassName:"Hero", tech:"Hero", wpnType:"GREATSWORD", amrTypes:{ArS:1, Ar1:1, Ar2:1}}, mardek_child:{ClassName:"Commoner", tech:"Child", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1}}, deugan_child:{ClassName:"Commoner", tech:"Child", wpnType:"GREATSWORD", amrTypes:{ArS:1, Ar0:1}}, mardek_soldier:{ClassName:"Recruit", tech:"MSwd", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, Sh:1, H0:1, H1:1, H2:1}}, deugan_soldier:{ClassName:"Recruit", tech:"SSwd", wpnType:"GREATSWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, H0:1, H1:1, H2:1}}, donovan:{ClassName:"Pyromancer", tech:"Pyro", wpnType:"SPEAR", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1, H1:1}}, steele_soldier:{ClassName:"Brawler", tech:"Brawl", wpnType:"none", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, H1:1, H2:1}}, emela_soldier:{ClassName:"Elemancer", tech:"Elem", wpnType:"ROD", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, Sh:1, H0:1}}, sharla:{ClassName:"Aeromancer", tech:"Aero", wpnType:"SPEAR", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1, H1:1}}, zach:{ClassName:"Mercenary", tech:"Merc", wpnType:"DOUBLESWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, H0:1, H1:1}}, vehrn:{ClassName:"Paladin", tech:"Holy", wpnType:"SWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, Sh:1, H0:1, H1:1, H2:1}}, sslenck:{ClassName:"Warrior", tech:"Chief", wpnType:"GREATAXE", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, H0:1, H1:1, H2:1}}, inventor:{ClassName:"Inventor", tech:"Inv", wpnType:"none", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1}}, solaar:{ClassName:"Runare", tech:"Sol", wpnType:"CLAW", amrTypes:{ArS:1, H0:1}}, elwyen:{ClassName:"Siren", tech:"Song", wpnType:"HARP", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1}}, gloria17:{ClassName:"Shaman", tech:"Shm", wpnType:"STAFF", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1}}, robot:{ClassName:"Automaton", tech:"Robo", wpnType:"ROBOTARM", amrTypes:{ArM:1, H0:1, H1:1, H2:1}}, bartholio:{ClassName:"Fighter", tech:"Fight", wpnType:"GREATSWORD", amrTypes:{ArS:1, Ar0:1, Ar1:1, Ar2:1, Ar3:1, Sh:1, H0:1, H1:1, H2:1}}, aalia:{ClassName:"Healer", tech:"WhMag", wpnType:"STAFF", amrTypes:{ArS:1, Ar0:1, Ar1:1, ArR:1, H0:1}}};
MONSTER_SKILLS = [{skill:"Dark Claw", type:"ACT", DMG:["m", 1.2], MP:10, accuracy:100, stfx:{DRK:10}, AP:1, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw", desc:"A powerful Dark-elemental physical attack, which sometimes blinds the target."}, {skill:"Blood Claw", type:"ACT", DMG:["m", 1.2], MP:20, stfx:{BLD:100}, stat_mod:{VIT:[1, 2]}, accuracy:100, AP:1, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"bloodclaw", desc:"A ripping slash that causes damage from bleeding even after the initial attack."}, {skill:"Money Attack!", type:"ACT", DMG:["SPECIAL", "money"], MP:10, accuracy:100, AP:1, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"money", desc:"An expensive attack, based on the power of money! It deals damage based on the amount of gold that you have."}, {skill:"Blood Drain", type:"ACT", DMG:["m", 0.8], MP:10, accuracy:100, AP:1, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"blooddrain", special:{DRAIN:1}, desc:"A dark elemental attack which drains the blood of the target, and converts it into energy for the user."}, {skill:"Gemsplosion", type:"ACT", DMG:["SPECIAL", "gem"], MP:10, accuracy:100, AP:1, MODE:"M", elem:"THAUMA", TT:"SINGLE", pfx:"gemsplosion", desc:"A special spell that has its element and power based on the value and element of an equipped gemstone. If two gemstones are equipped, it uses the one in the first slot."}, {skill:"Fire Breath", type:"ACT", DMG:50, MP:10, stfx:{NUM:5}, accuracy:100, AP:1, MODE:"M", BREATH:1, elem:"FIRE", TT:"SINGLE", pfx:"firebreath", desc:"A basic fire-elemental spell-like ability, which inflicts damage and, rarely, numbness."}, {skill:"Bubble Breath", type:"ACT", DMG:50, MP:10, stfx:{SIL:5}, accuracy:100, AP:1, MODE:"M", BREATH:1, elem:"WATER", TT:"SINGLE", pfx:"bubblebreath", desc:"A basic water-elemental spell-like ability, which inflicts damage and, rarely, silence."}, {skill:"Curse", type:"ACT", MP:10, accuracy:100, stfx:{CRS:80}, AP:1, MODE:"M", elem:"DARK", TT:"SINGLE", pfx:"curse", desc:"Inflicts the Curse status effect on a target."}, {skill:"Addle Gas", type:"ACT", MP:6, stfx:{CNF:80}, accuracy:100, AP:1, MODE:"M", elem:"AIR", TT:"ANY", pfx:"smoke", desc:"A mind-affecting gas. It confuses those who breathe it in."}, {skill:"Revenge Strike", type:"ACT", DMG:["SPECIAL", "hplost"], MP:5, accuracy:100, AP:1, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"soulstrike_fire", sfx:"Slam", desc:"Deals damage equal to HP that the user has lost."}, {skill:"1000 Needles", type:"ACT", DMG:["SPECIAL", "set_dmg", 1000], MP:20, accuracy:100, AP:1, MODE:"M", elem:"NONE", TT:"SINGLE", pfx:"1000needles", desc:"Deals 1000 damage to a single target. Totally original!"}, {skill:"Rage Chord", type:"ACT", stfx:{BSK:100}, MP:5, accuracy:100, AP:1, MODE:"M", elem:"FIRE", TT:"SINGLE", pfx:"noteshock_red", desc:"Causes one target to be Berserked."}, {skill:"Poison Sting", type:"ACT", DMG:["m", 0.75], stfx:{PSN:50}, MP:5, accuracy:100, AP:1, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"sting_psn", desc:"Sometimes inflicts Poison on a target."}, {skill:"Spectral Touch", type:"ACT", DMG:["m", 0.5], stfx:{PAR:50}, stat_mod:{STR:[1, 4]}, MP:10, accuracy:100, AP:1, MODE:"P", elem:"ETHER", TT:"SINGLE", pfx:"spectralclaw", desc:"Inflicts aether damage on a target and lowers its STR. There's also a chance of it causing paralysis."}, {skill:"Ripping Slash", type:"ACT", DMG:["m", 1], ignore_def:true, MP:10, accuracy:100, AP:1, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"slash_crescent", desc:"A slash attack which ignores defences."}, {skill:"Acid", type:"ACT", DMG:30, stfx:{PSN:30, NUM:6}, stat_mod:{DEF:[1, 6]}, MP:5, accuracy:100, critical:0, AP:1, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"acid", desc:"Scalding acid covers a target, inflicting earth damage, lowering defence, and sometimes inflicting Poison or Numbness."}, {skill:"Morbid Fondle", type:"ACT", DMG:["m", 0.8], stfx:{DRK:10}, stat_mod:{VIT:[1, 3]}, MP:10, accuracy:100, AP:1, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"morbidfondle", desc:"A deathly undead touch which inflicts dark damage, lowers vitality, and sometimes causes Blindness."}, {skill:"Viscous Ooze", type:"ACT", DMG:30, stat_mod:{AGL:[1, 6]}, MP:10, accuracy:100, AP:1, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"vooze", desc:"Sticky ooze covers a target, inflicting Earth damage and lowering agility."}, {skill:"Spirit Nova", type:"ACT", DMG:["SPECIAL", "HP%", 0.5], MP:20, accuracy:100, AP:1, MODE:"M", elem:"ETHER", TT:"SINGLE", pfx:"soulflare", desc:"Halves a target's current HP. Doesn't work if the opponent's level is too high."}, {skill:"Sombre Tears", type:"ACT", DMG:30, remove_stfx:{BSK:100}, MP:10, accuracy:100, AP:1, MODE:"M", elem:"WATER", TT:"SINGLE", pfx:"tears", desc:"Inflicts water damage and removes the Berserk status effect."}, {skill:"Needleflare", type:"ACT", DMG:60, MP:10, accuracy:100, stfx:{PSN:50}, AP:0, MODE:"M", elem:"NONE", TT:"SINGLE", dmgdelay:20, delayedSfx:"hit_POLEARMS", pfx:"needleflare", desc:"A flurry of needles inflict non-elemental damage, and sometimes poison, on a single target."}, {skill:"Fairy Dust", type:"ACT", stfx:{SLP:60}, stat_mod:{STR:[1, 3], SPR:[1, 3]}, MP:10, accuracy:100, AP:1, MODE:"M", elem:"EARTH", TT:"ALL_e", pfx:"fairydust", desc:"A magical dust is sprinkled over all targets, lowering their STR and SPR and sometimes lulling them to sleep."}, {skill:"Heavy Blow", type:"ACT", DMG:["m", 2], MP:20, accuracy:80, AP:1, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"powerhit", sfx:"punch", desc:"Deals big, non-elemental physical damage. Sometimes misses."}, {skill:"Raging Inferno", type:"ACT", DMG:100, MP:16, critical:0, accuracy:100, AP:0, MODE:"M", elem:"FIRE", TT:"ALL_e", pfx:"firestorm", ALL_PFX:true, CENTRED:true, ARENA:false, desc:"Inflicts fire damage on all targets."}, {skill:"Tsunami", type:"ACT", DMG:100, MP:16, critical:0, accuracy:100, AP:0, MODE:"M", elem:"WATER", TT:"ALL_e", pfx:"tsunami", ALL_PFX:true, CENTRED:true, ARENA:false, desc:"Inflicts water damage on all targets."}, {skill:"Earthquake", type:"ACT", DMG:100, MP:16, critical:0, accuracy:100, AP:0, MODE:"M", elem:"EARTH", TT:"ALL_e", pfx:"earthquake", ALL_PFX:true, CENTRED:true, ARENA:false, desc:"Inflicts earth damage on all targets."}, {skill:"Thunderstorm", type:"ACT", DMG:100, MP:10, critical:0, accuracy:100, AP:0, MODE:"M", elem:"AIR", TT:"ALL_e", pfx:"thunderstorm", desc:"Inflicts air damage on all targets."}];
techInfo = {Hero:{name:"Powers", desc:"The mighty powers of a True Hero!", skills:[{skill:"Smite Evil", type:"ACT", DMG:["m", 1.6], MP:10, accuracy:100, AP:20, MODE:"P", elem:"LIGHT", TT:"SINGLE", pfx:"smiteevil", desc:"Holy physical attack."}, {skill:"Shock", type:"ACT", DMG:["m", 2], stfx:{PAR:10}, MP:10, accuracy:100, AP:20, MODE:"P", elem:"AIR", TT:"SINGLE", pfx:"shock", desc:"Thunderous slash that causes Air elemental damage."}, {skill:"Sunder", type:"ACT", DMG:["m", 2.2], MP:10, accuracy:100, AP:20, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"sunder", desc:"A mighty gash in the fabric of space that causes Earth elemental damage."}, {skill:"Pyromagia", type:"ACT", DMG:150, MP:18, accuracy:100, AP:20, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"pyromagia", desc:"Fire Magic attack."}, {skill:"Frostasia", type:"ACT", DMG:150, MP:18, accuracy:100, AP:20, MODE:"M", elem:"WATER", TT:"ANY", pfx:"frostasia", desc:"Water Magic attack."}, {skill:"Recover", type:"ACT", DMG:9999, stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, MP:20, AP:20, MODE:"M", elem:"LIGHT", TT:"SELF", pfx:"cure2", desc:"Fully restores own HP and recovers from all negative status effects.", special:{HEALING:1}, menuse:0}]}, Child:{name:"Imagination", desc:"Pretend, using childish imagination, that one is a Mighty Hero to perform special skills!", skills:[{skill:"Strike", type:"ACT", DMG:["m", 2], MP:0, accuracy:60, AP:5, MODE:"P", elem:"NONE", TT:"SINGLE", sfx:"punch", pfx:"powerhit", desc:"Attack fiercely. More powerful than an average attack, but less accurate."}, {skill:"Huff-Puff", type:"ACT", DMG:["c", 0, "L*12"], MP:4, accuracy:100, AP:5, MODE:"S", anim:"huffpuff", elem:"NONE", TT:"SELF", pfx:null, desc:"Take a few deep breaths to regain your wind and carry on fighting.", special:{HEALING:1}, menuse:0}]}, MSwd:{name:"Magic Sword", desc:"Using Rohoph's magic and Mardek's skill, execute various physical and magical techniques.", skills:[{skill:"Heal", type:"ACT", DMG:50, MP:6, AP:20, MODE:"M", elem:"LIGHT", TT:"ANY", pfx:"cure1", desc:"Use Rohoph's magic to restore the HP of a single target.", special:{HEALING:1}, menuse:1}, {skill:"Regen", type:"ACT", MP:6, buff:true, AP:20, stfx:{RGN:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"regen", desc:"Grants the target the Regen status, which restores HP every turn."}, {skill:"Remove Taint", type:"ACT", stfx:{PSN:100, DRK:100, CRS:100, ZOM:100}, MP:4, AP:5, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"cleanse", desc:"Use Rohoph's magic to remove poison, darkness, curses and zombification from someone's body.", special:{HEALING:1}, menuse:1}, {skill:"Remove Evil", type:"ACT", stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, MP:9, AP:30, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"cleanse", desc:"Use Rohoph's magic to remove all negative status effects from someone's body.", special:{HEALING:1}, menuse:1}, {skill:"Shield", type:"ACT", MP:6, buff:true, AP:10, stfx:{PSH:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"shield", desc:"Gives a target the Physical Shield status, which reduces physical damage by half."}, {skill:"M. Shield", type:"ACT", MP:6, buff:true, AP:10, stfx:{MSH:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"mshield", desc:"Gives a target the Magical Shield status, which reduces magical damage by half."}, {skill:"Morality Block", type:"ACT", MP:8, buff:true, AP:10, stfx:{LN1:100, DN1:100}, MODE:"M", elem:"LIGHT", TT:"ANY", pfx:"null_moral", desc:"Gives the target(s) the NullLight and NullDark status effects, protecting from a single light and a single dark attack."}, {skill:"Fire Slash", type:"ACT", DMG:["m", 1.25], elemBonus:[["AIR", ["m", 1.5]]], MP:12, accuracy:100, AP:20, MODE:"P", elem:"FIRE", TT:"SINGLE", pfx:"slash_fire", desc:"Magically enchant your sword to inflict Fire elemental damage."}, {skill:"Water Slash", type:"ACT", DMG:["m", 1.25], elemBonus:[["FIRE", ["m", 1.5]]], MP:12, accuracy:100, AP:20, MODE:"P", elem:"WATER", TT:"SINGLE", pfx:"slash_water", desc:"Magically enchant your sword to inflict Water elemental damage."}, {skill:"Air Slash", type:"ACT", DMG:["m", 1.25], elemBonus:[["EARTH", ["m", 1.5]]], MP:12, accuracy:100, AP:20, MODE:"P", elem:"AIR", TT:"SINGLE", pfx:"slash_air", desc:"Magically enchant your sword to inflict Air elemental damage."}, {skill:"Earth Slash", type:"ACT", DMG:["m", 1.25], elemBonus:[["WATER", ["m", 1.5]]], MP:12, accuracy:100, AP:20, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"slash_earth", desc:"Magically enchant your sword to inflict Earth elemental damage."}, {skill:"Warp", type:"ACT", MP:10, accuracy:100, AP:1, MODE:"P", elem:"LIGHT", TT:"SINGLE", pfx:null, desc:"Use this spell (from the menu) to teleport to the world map. Sometimes, however, the use of this spell is disabled.", menuse:"ONLY"}]}, SSwd:{name:"Spellbladery", desc:"Execute various combat techniques and some magic spells.", skills:[{skill:"Power Attack", type:"ACT", DMG:["m", 1.5], MP:0, accuracy:75, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", sfx:"hit_2HSWORDS", pfx:"powerhit", desc:"Attack fiercly. 50% more powerful than an average attack, but less accurate."}, {skill:"Earth Slash", type:"ACT", DMG:["m", 1], elemBonus:[["WATER", ["m", 1.5]]], MP:8, accuracy:100, AP:10, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"slash_earth", desc:"Functions as a normal attack, but with an Earth affinity. Especially powerful against water opponents."}, {skill:"Boost", type:"ACT", MP:5, accuracy:100, AP:20, stat_mod:{STR:[1, 6]}, MODE:"S", elem:"FIRE", TT:"SELF", pfx:"boost", desc:"Focus energy to increase strength for the duration of the battle.", special:{HEALING:1}}, {skill:"Barrier Break", type:"ACT", DMG:["m", 1], MP:10, accuracy:100, remove_stfx:{PSH:100}, AP:10, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"shieldbreak", desc:"An attack that destroys the Physical Shield status effect."}, {skill:"Spiritblade", type:"ACT", DMG:["m", 1], MP:8, accuracy:100, USES_SPR:1, AP:10, MODE:"P", elem:"ETHER", TT:"SINGLE", pfx:"slash_ether", desc:"A slash that damages with soul energy rather than physical strength. It uses SPR rather than STR, and is useful against foes with a high DEF but low MDEF."}]}, Elem:{name:"Elemancy", desc:"Cast magic that utilises the power of all of the elements.", skills:[{skill:"Flame", type:"ACT", DMG:20, MP:6, accuracy:255, AP:20, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"flame1", desc:"Makes a target erupt in flames, inflicting fire damage."}, {skill:"Lightning Bolt", type:"ACT", DMG:20, MP:6, accuracy:255, AP:20, MODE:"M", elem:"AIR", TT:"ANY", pfx:"bolt1", desc:"An electric heavenly zap that inflicts air damage."}, {skill:"Stonesplosion", type:"ACT", DMG:20, MP:6, accuracy:255, AP:20, MODE:"M", elem:"EARTH", TT:"ANY", pfx:"stonesplosion", desc:"An explosion of stones that inflicts earth damage."}, {skill:"Bubble", type:"ACT", DMG:20, MP:6, accuracy:255, AP:20, MODE:"M", elem:"WATER", TT:"ANY", pfx:"bubble1", desc:"The target is barraged with bubbles of water, which inflicts water damage."}, {skill:"Aqualung", type:"ACT", MP:1, accuracy:255, AP:1, stfx:{UWB:100}, MODE:"M", elem:"WATER", TT:"ANY", desc:"An unusual spell that grants the target the ability to breathe underwater.", special:{HEALING:1}, menuse:"ONLY", ADD_STFX:true}]}, Brawl:{name:"Martial Arts", desc:"Perform various unarmed combat moves.", skills:[{skill:"Fierce Strike", type:"ACT", DMG:["m", 2], MP:0, accuracy:70, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", sfx:"punch", pfx:"powerhit", desc:"Attack fiercly. Twice as powerful as an average attack, but less accurate."}, {skill:"Chakra", type:"ACT", DMG:100, MP:0, accuracy:255, AP:20, MODE:"M", elem:"FIRE", TT:"SELF", pfx:"chakra", desc:"Channel the energy of the body to restore own HP.", special:{HEALING:1}}]}, Merc:{name:"Techniques", desc:"Various battle techniques, used by resourceful and powerful warriors.", skills:[{skill:"Berserk", type:"ACT", MP:0, accuracy:255, stfx:{BSK:100}, AP:20, MODE:"S", elem:"FIRE", TT:"SELF", pfx:"chakra", desc:"Enter a berserker rage, doubling STR but becoming impossible to control."}, {skill:"Crescendo Slash", type:"ACT", DMG:["m", 1, null, ["crescendo", 0.25]], MP:0, accuracy:100, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"crescendoslash", desc:"An attack that increases in power when used in succession in a battle. The first attack does 100% damage, the next does 125%, then 150%, 175%, etc."}, {skill:"Sure Slash", type:"ACT", DMG:["m", 0.5], MP:0, accuracy:10000, cannot_miss:true, AP:10, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"slash_crescent", desc:"Inflicts only half the damage of a normal attack, but it never misses."}, {skill:"Coup de Grace", type:"ACT", DMG:["m", 1], special:{COUP_DE_GRACE:1}, MP:0, accuracy:100, AP:10, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"generic_slam_fire", desc:"Damage increases based on the number of status effects on the target."}, {skill:"Sinstrike", type:"ACT", DMG:["SPECIAL", "num_kills"], MP:0, accuracy:100, AP:20, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"sinstrike", desc:"Inflicts damage based on the number of foes that Zach has slain."}, {skill:"Immoral Injustice", type:"ACT", DMG:["m", 1], elemBonus:[["DARK", ["m", 2]], ["LIGHT", ["m", 2]]], MP:10, accuracy:100, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"immoral", desc:"Deals great damage to both Light and Dark elemental opponents."}]}, Holy:{name:"Holy Arts", desc:"Use various combat skills and spells granted by the power of YALORT.", skills:[{skill:"Smite Evil", type:"ACT", DMG:["m", 1.2], elemBonus:[["DARK", ["m", 2]]], MP:5, accuracy:100, AP:20, MODE:"P", elem:"LIGHT", TT:"SINGLE", pfx:"smiteevil", desc:"Channel divine power into your blade while attacking to deal extra damage to Dark-elemental creatures."}, {skill:"Disrupt Undead", type:"ACT", DMG:["m", 1], typeBonus:["UNDEAD", ["m", 2.5]], MP:5, accuracy:100, AP:20, MODE:"P", elem:"LIGHT", TT:"SINGLE", pfx:"smiteevil", desc:"Channel divine power into your blade while attacking to deal extra damage to Undead creatures."}, {skill:"Divine Glory", type:"ACT", DMG:["SPECIAL", "SPR_CALC", 1], ignore_def:true, MP:25, accuracy:100, AP:30, MODE:"P", elem:"LIGHT", TT:"SINGLE", pfx:"smiteevil", desc:"Deals holy damage based on Vehrn's level and SPR stat."}, {skill:"Lay on Hands", type:"ACT", DMG:["SPECIAL", "SPR_CALC", -2], ignore_def:true, stfx:{CRS:100, ZOM:100}, MP:10, AP:30, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"purecure", desc:"Channel divine magic through the hands to heal wounds, and to cure curses and zombification. Potency is based on level and SPR stat. It can only be used in battle.", special:{HEALING:1}}, {skill:"Green Lightning", type:"ACT", DMG:["SPECIAL", "SPR_AS_DMG", 2], MP:8, accuracy:255, stfx:{PAR:5}, AP:30, MODE:"M", elem:"EARTH", TT:"ANY", pfx:"boltg", desc:"A signature spell of all devoted Yalortians. It deals EARTH elemental damage and sometimes stuns the target(s)."}, {skill:"Emerald Shock", type:"ACT", DMG:["m", 2], stfx:{PAR:50}, MP:32, accuracy:100, AP:20, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"shock_green", desc:"Vehrn channels the Green Lightning power of YALORT into his blade, resulting in a mighty thundrous burst. Sometimes inflicts paralysis."}]}, Pyro:{name:"Pyromancy", desc:"Spellcasting abilities specifically drawing from the elemental power of Fire.", skills:[{skill:"Flame", type:"ACT", DMG:26, MP:6, accuracy:255, AP:10, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"flame1", desc:"Makes a target erupt in flames, inflicting fire damage."}, {skill:"Blaze", type:"ACT", DMG:64, MP:12, accuracy:255, AP:30, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"flame2", desc:"This is Flame's older brother. He rides a large motorbike and does things with girls that Flame is too young to understand."}, {skill:"Burn", type:"ACT", DMG:35, MP:10, accuracy:255, AP:20, stfx:{NUM:10}, stat_mod:{DEF:[1, 6]}, MODE:"M", elem:"FIRE", TT:"SINGLE", pfx:"burn", desc:"Burns the target's skin, lowering defence. The damaged tissue may also cause numbness."}, {skill:"Null Fire Once", type:"ACT", MP:5, buff:true, AP:10, stfx:{FN1:100}, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"null_fire", desc:"Fully protects the target(s) from the Fire element. This status wears off after absorbing one attack."}, {skill:"Remove Numbness", type:"ACT", MP:2, AP:5, stfx:{NUM:100}, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"cleanse", desc:"Removes the Numbness status effect.", special:{HEALING:1}, menuse:true}, {skill:"Pyro Shell", type:"ACT", MP:14, buff:true, AP:10, stfx:{SHF:100}, lasts:5, MODE:"M", elem:"FIRE", TT:"SINGLE", pfx:"shell_FIRE", desc:"Gives a target the Pyro Shell status, which nullifies FIRE damage, and damages attackers."}, {skill:"Strength Boost", type:"ACT", MP:8, AP:10, stat_mod:{STR:[2, 8]}, MODE:"M", elem:"FIRE", TT:"SINGLE", pfx:"boost", desc:"Raises a target's Strength by a few points.", special:{HEALING:1}}]}, Aero:{name:"Aeromancy", desc:"Spellcasting abilities specifically drawing from the elemental power of Air.", skills:[{skill:"Lightning Bolt", type:"ACT", DMG:26, MP:6, accuracy:255, AP:10, MODE:"M", elem:"AIR", TT:"ANY", pfx:"bolt1", desc:"An electric heavenly zap that inflicts air damage."}, {skill:"Thunderbolt", type:"ACT", DMG:64, MP:12, accuracy:255, AP:30, MODE:"M", elem:"AIR", TT:"ANY", pfx:"bolt2", desc:"This is Lightning Bolt's older sister. She wears makeup and has these strange things on her chest that she uses to fight crime, Lightning Bolt imagines."}, {skill:"Healing Wind", type:"ACT", DMG:50, MP:9, stfx:{CNF:100}, AP:20, MODE:"M", elem:"AIR", TT:"ANY", pfx:"windcure", desc:"Pleasant, refreshing winds restore HP and cure confusion.", special:{HEALING:1}, menuse:1}, {skill:"Null Air Once", type:"ACT", MP:5, buff:true, AP:10, stfx:{AN1:100}, MODE:"M", elem:"AIR", TT:"ANY", pfx:"null_air", desc:"Fully protects the target(s) from the Air element. This status wears off after absorbing one attack."}, {skill:"Remove Paralysis", type:"ACT", MP:2, AP:5, stfx:{PAR:100}, MODE:"M", elem:"AIR", TT:"ANY", pfx:"cleanse", desc:"Removes the Paralysis status effect.", special:{HEALING:1}, menuse:true}, {skill:"Aero Shell", type:"ACT", MP:14, buff:true, AP:10, stfx:{SHA:100}, lasts:5, MODE:"M", elem:"AIR", TT:"SINGLE", pfx:"shell_AIR", desc:"Gives a target the Aero Shell status, which nullifies AIR damage, and damages attackers."}, {skill:"Gust Shield", type:"ACT", MP:12, AP:10, stat_mod:{DEF:[3, 6]}, special:{HEALING:1}, MODE:"M", elem:"AIR", TT:"SINGLE", pfx:"gustshield", desc:"Raises a target's Physical Defence by a few points."}, {skill:"Agility Boost", type:"ACT", MP:8, AP:10, stat_mod:{AGL:[2, 8]}, MODE:"M", elem:"AIR", TT:"SINGLE", pfx:"boost_AIR", desc:"Raises a target's Agility by a few points."}]}, Chief:{name:"Dragon Tech", desc:"Various power-oriented combat skills drawing from draconic heritage.", skills:[{skill:"Fire Breath", type:"ACT", DMG:["c", 30, "L*2"], MP:8, accuracy:255, AP:10, MODE:"M", BREATH:true, elem:"FIRE", TT:"SINGLE", pfx:"firebreath", desc:"Breathes fire like a dragon at an enemy, causing fire-elemental magical damage."}, {skill:"Fire Stream", type:"ACT", DMG:["c", 50, "L*3"], MP:16, accuracy:255, AP:10, MODE:"M", BREATH:true, elem:"FIRE", TT:"ALL_e", pfx:"invn_flamethrower", desc:"Breathes fire like a dragon at all enemies, causing fire-elemental magical damage."}, {skill:"Perforate", type:"ACT", DMG:["m", 1.5], MP:10, accuracy:90, stat_mod:{DEF:[1, 6]}, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"generic_slam", desc:"A powerful attack that rends through armour, lowering defence."}, {skill:"Boost", type:"ACT", MP:3, accuracy:100, AP:20, stat_mod:{STR:[3, 8]}, MODE:"S", elem:"FIRE", TT:"SELF", pfx:"boost", desc:"Focus energy to increase strength for the duration of the battle.", special:{HEALING:1}}, {skill:"Earth Slash", type:"ACT", DMG:["m", 1], elemBonus:[["WATER", ["m", 1.5]]], MP:4, accuracy:100, AP:10, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"slash_earth", desc:"Functions as a normal attack, but with an Earth affinity. Especially powerful against water opponents."}]}, Sol:{name:"Astral Magic", desc:"Magic that draws on the power of the sun and the stars.", skills:[{skill:"Solar Flare", type:"ACT", DMG:40, MP:12, accuracy:255, AP:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"sunflare", desc:"A small, localised sun flare which inflicts light elemental damage. "}, {skill:"Galaxy Burst", type:"ACT", DMG:50, MP:50, accuracy:255, AP:10, MODE:"M", elem:"LIGHT", TT:"ALL_e", pfx:"galaxy", ALL_PFX:true, desc:"Galactic particles damage all enemies with the power of a quadrillion tiny, tiny stars."}, {skill:"Pleasant Sunbeam", type:"ACT", DMG:80, MP:12, stfx:{SLP:100, DRK:100}, AP:20, MODE:"M", elem:"LIGHT", TT:"ALL_p", pfx:"suncure", desc:"Pleasant, refreshing light shines on the party, restoring their HP. The intensity of the light also wakes any who are sleeping, and cures Blindness.", special:{HEALING:1}, menuse:1}, {skill:"Resurrect", type:"ACT", MP:32, AP:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"resurrect", desc:"A bright light draws the target back into consciousness, reviving them from KO.", special:{HEALING:1, REVIVE:0.5}}, {skill:"Spirit Graft", type:"ACT", MP:8, accuracy:100, AP:10, stat_mod:{SPR:[2, 8]}, MODE:"M", elem:"ETHER", TT:"SINGLE", pfx:"boost_ETHER", desc:"Increases a single target's SPR.", special:{HEALING:1}}, {skill:"Purify", type:"ACT", stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, MP:9, AP:15, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"cleanse", desc:"Removes all negative status effects from a character.", special:{HEALING:1}, menuse:1}, {skill:"Astral Form", type:"ACT", stfx:{GST:100}, lasts:3, MP:20, accuracy:100, AP:10, MODE:"M", elem:"ETHER", TT:"SELF", pfx:"astralform", desc:"Shifts the body to a different level of existence, where it becomes ethereal. Non-elemental damage is nullified, ether-elemental damage is absorbed as HP, and natural elements do only half damage."}, {skill:"Lunatic Howl", type:"ACT", stfx:{BSK:100}, lasts:3, MP:20, accuracy:100, AP:10, MODE:"M", elem:"LIGHT", TT:"ALL_p", pfx:"bloodmoon", ALL_PFX:true, CENTRED:true, desc:"The light from the moon causes everyone to go all funny, becoming berserked. Risky!"}]}, Inv:{name:"Inventions", desc:"Use Inventions, equipped in accessory slots. Action skills can't be learned; only used when the Invention is equipped.", skills:[{skill:"Thermal Spanner", type:"ACT", DMG:["c", 10, "L*2"], MP:0, accuracy:100, critical:5, stat_mod:{DEF:[1, 6]}, stfx:{NUM:10}, sfx:"punch", AP:-1, MODE:"P", elem:"FIRE", TT:"SINGLE", pfx:"firespanner", desc:"Inflicts fire damage on a single foe. Also lowers DEF by 1 and sometimes causes Numbness."}, {skill:"Silver Mirror", type:"ACT", MP:0, accuracy:100, stfx:{PSH:100}, lasts:5, AP:-1, MODE:"S", anim:"MIRROR", elem:"LIGHT", TT:"ALL_p", pfx:"shield", desc:"Gives all allies the Physical Shield status."}, {skill:"Golden Mirror", type:"ACT", MP:0, accuracy:100, stfx:{MSH:100}, lasts:5, AP:-1, MODE:"S", anim:"MIRROR", elem:"LIGHT", TT:"ALL_p", pfx:"mshield", desc:"Gives all allies the Magical Shield status."}, {skill:"Flamethrower", type:"ACT", DMG:["c", 10, "L*2"], no_dmg_split:true, MP:0, accuracy:100, AP:-1, MODE:"M", BREATH:true, elem:"FIRE", TT:"ALL_e", pfx:"invn_flamethrower", pfx2:"flame1", desc:"Engulfs all enemies in flames. Mwahahah! Meraeador's such a pacifist."}, {skill:"Gas-O-Matic", type:"ACT", DMG:["c", 0, "L"], no_dmg_split:true, MP:0, accuracy:100, stfx:{PSN:100}, AP:-1, MODE:"M", BREATH:true, elem:"EARTH", TT:"ALL_e", pfx:"invn_psngas", desc:"Spews toxic gas, which inflicts Poison upon all enemies. Oh, and some damage."}, {skill:"Sleep-O-Matic", type:"ACT", MP:0, accuracy:100, stfx:{SLP:100}, AP:-1, MODE:"M", BREATH:true, elem:"AIR", TT:"ALL_e", pfx:"invn_sleep", desc:"Spews gases which cause all enemies to fall into a deep slumber."}, {skill:"Potion Spray", type:"ACT", DMG:["SPECIAL", "potion"], special:{HEALING:1}, ignore_shield:true, MP:0, accuracy:100, AP:-1, MODE:"S", anim:"potionspray", elem:"WATER", TT:"ALL_p", pfx:"potion", desc:"Converts a potion to vapour, which becomes a cloud that engulfs the party. It requires potions as ammo. Whichever potion you choose to use will have its power halved. Status-curing items work as they should, but on all allies."}, {skill:"Drill-O-Matic", type:"ACT", DMG:["c", 0, "L*2"], MP:0, accuracy:100, ignore_def:true, stat_mod:{DEF:[1, 6]}, AP:-1, MODE:"P", anim:"DRILL", elem:"NONE", TT:"SINGLE", pfx:"generic_slam_fire", desc:"Deals non-elemental damage to a single foe, ignoring defence. It lowers DEF, too."}]}, Song:{name:"Siren Songs", desc:"Play lovely harp music to bolster the party's morale, or lower the enemies'.", skills:[{skill:"Spirit Song", type:"ACT", MP:0, accuracy:100, AP:20, Song:{DmgMult:{M:0.02}}, MODE:"M", elem:"WATER", TT:"SELF", pfx:null, desc:"A motivational song that increases all damage from magical attacks by a factor based on Elwyen's SPR."}, {skill:"Vigorous March", type:"ACT", MP:0, accuracy:100, AP:20, Song:{DmgMult:{P:0.02}}, MODE:"M", elem:"FIRE", TT:"SELF", pfx:null, desc:"A motivational march that increases all damage from physical attacks by a factor based on Elwyen's SPR."}, {skill:"Solid Sonata", type:"ACT", MP:0, accuracy:100, AP:20, Song:{DmgResist:{P:0.01}}, MODE:"M", elem:"EARTH", TT:"SELF", pfx:null, desc:"A motivational sonata that decreases all damage from physical attacks by a factor based on Elwyen's SPR."}, {skill:"Runic Rhapsody", type:"ACT", MP:0, accuracy:100, AP:20, Song:{DmgResist:{M:0.01}}, MODE:"M", elem:"THAUMA", TT:"SELF", pfx:null, desc:"A motivational rhapsody that decreases all damage from magical attacks by a factor based on Elwyen's SPR."}, {skill:"Dolorous Dirge", type:"ACT", MP:0, accuracy:100, AP:20, Song:{Hurt_e:8, LvlMod:0.08}, MODE:"M", elem:"DARK", TT:"SELF", pfx:"noteshock_black", desc:"A tragic, melancholy piece of music that causes damage to ALL creatures in battle as it plays. Potentially risky. Damage is based on Elwyen's SPR."}, {skill:"Requiem", type:"ACT", MP:0, accuracy:100, AP:10, Song:{HurtType:{UNDEAD:10}, LvlMod:1}, MODE:"M", elem:"LIGHT", TT:"SELF", pfx:"noteshock_white", desc:"A piece of music that greatly harms undead foes. Damage is based on Elwyen's SPR."}, {skill:"Ballad of Life", type:"ACT", MP:0, accuracy:100, AP:20, Song:{RestoreHP:10, LvlMod:0.2}, MODE:"M", elem:"LIGHT", TT:"SELF", pfx:"noteshock_white", desc:"A piece of music that restores HP to all allies while it plays. HP restored is based on Elwyen's SPR."}, {skill:"Ballad of Balance", type:"ACT", MP:0, accuracy:100, AP:20, Song:{SplitDamage:true}, MODE:"M", elem:"ETHER", TT:"SELF", desc:"A powerful piece of music that maintains balance by splitting all damage between the target's whole party."}]}, Shm:{name:"Nature Magic", desc:"Channel the powers of Nature, for various effects.", skills:[{skill:"Wildfire", type:"ACT", DMG:36, MP:8, accuracy:255, stat_mod:{STR:[1, 3]}, AP:20, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"wildfire", desc:"Conjures up a small forest fire to inflict FIRE damage on one or more target(s). STR is also lowered."}, {skill:"Whirlpool", type:"ACT", DMG:36, MP:8, accuracy:255, stat_mod:{SPR:[1, 3]}, AP:20, MODE:"M", elem:"WATER", TT:"ANY", pfx:"whirlpool", desc:"Conjures up a small whirlpool to inflict WATER damage on one or more target(s). SPR is also lowered."}, {skill:"Twister", type:"ACT", DMG:36, MP:8, accuracy:255, stat_mod:{AGL:[1, 3]}, AP:20, MODE:"M", elem:"AIR", TT:"ANY", pfx:"twister", desc:"Conjures up a small tornado to inflict AIR damage on one or more target(s). AGL is also lowered."}, {skill:"Razor Leaf", type:"ACT", DMG:36, MP:8, accuracy:255, stat_mod:{VIT:[1, 3]}, AP:20, MODE:"M", elem:"EARTH", TT:"ANY", pfx:"razorleaf", desc:"Conjures up a flurry of razor-sharp leaves to inflict EARTH damage on one or more target(s). VIT is also lowered."}, {skill:"Earth Heal", type:"ACT", DMG:66, stfx:{PSN:100}, MP:14, accuracy:100, AP:10, MODE:"M", elem:"EARTH", TT:"ALL_p", pfx:"leafcure", desc:"Restores HP to the entire party, and also cures poison.", special:{HEALING:1}, menuse:1}, {skill:"Barkskin", type:"ACT", stfx:{BRK:100}, buff:true, MP:10, accuracy:100, AP:10, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"leafcure", desc:"Gives the Barkskin status effect to a single target. This status grants a bonus to defence based on the caster's SPR stat."}, {skill:"Cleanse", type:"ACT", stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, MP:9, AP:30, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"leafcure", desc:"Channels the power of the Earth to cure most negative status effects from one ally.", special:{HEALING:1}, menuse:1}, {skill:"Mass Cleanse", type:"ACT", stfx:{PSN:100, DRK:100, CRS:100, PAR:100, NUM:100, SIL:100, CNF:100, SLP:100, ZOM:100, BLD:100}, MP:34, AP:15, MODE:"M", elem:"EARTH", TT:"ALL_p", pfx:"leafcure", desc:"Channels the power of the Earth to cure most negative status effects from all allies.", special:{HEALING:1}, menuse:1}, {skill:"Null Fire Once", type:"ACT", MP:7, buff:true, AP:10, stfx:{FN1:100}, MODE:"M", elem:"FIRE", TT:"ANY", pfx:"null_fire", desc:"Fully protects the target(s) from fire. This status wears off after absorbing one attack."}, {skill:"Null Water Once", type:"ACT", MP:7, buff:true, AP:10, stfx:{WN1:100}, MODE:"M", elem:"WATER", TT:"ANY", pfx:"null_water", desc:"Fully protects the target(s) from water. This status wears off after absorbing one attack."}, {skill:"Null Air Once", type:"ACT", MP:7, buff:true, AP:10, stfx:{AN1:100}, MODE:"M", elem:"AIR", TT:"ANY", pfx:"null_air", desc:"Fully protects the target(s) from air. This status wears off after absorbing one attack."}, {skill:"Null Earth Once", type:"ACT", MP:7, buff:true, AP:10, stfx:{EN1:100}, MODE:"M", elem:"EARTH", TT:"ANY", pfx:"null_earth", desc:"Fully protects the target(s) from earth. This status wears off after absorbing one attack."}]}, Robo:{name:"Mimicry", desc:"Recall notable monster skills that have been observed.", skills:MONSTER_SKILLS.concat([])}, Fight:{name:"Fighter Techs", desc:"Perform various combat moves.", skills:[{skill:"Power Attack", type:"ACT", DMG:["m", 1.5], MP:0, accuracy:65, AP:20, MODE:"P", elem:"NONE", TT:"SINGLE", sfx:"hit_2HSWORDS", pfx:"powerhit", desc:"Attack fiercly. 50% more powerful than an average attack, but less accurate."}]}, WhMag:{name:"White Magic", desc:"A school of magic consisting of healing and protective spells.", skills:[{skill:"Cure", type:"ACT", DMG:30, MP:4, AP:20, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"cure1", desc:"Restores a small amount of HP to a single target.", special:{HEALING:1}, menuse:1}, {skill:"Cura", type:"ACT", DMG:60, MP:16, AP:20, MODE:"M", elem:"LIGHT", TT:"ANY", pfx:"cure2", desc:"Restores a moderate amount of HP to one target, or the whole party.", special:{HEALING:1}, menuse:1}, {skill:"Regen", type:"ACT", MP:6, buff:true, AP:20, stfx:{RGN:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"regen", desc:"Grants the target the Regen status, which restores HP every turn."}, {skill:"Shield", type:"ACT", MP:6, buff:true, AP:10, stfx:{PSH:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"shield", desc:"Gives a target the Physical Shield status, which reduces physical damage by half."}, {skill:"M. Shield", type:"ACT", MP:6, buff:true, AP:10, stfx:{MSH:100}, lasts:10, MODE:"M", elem:"LIGHT", TT:"SINGLE", pfx:"mshield", desc:"Gives a target the Magical Shield status, which reduces magical damage by half."}]}};
reactionInfo = {P_ATK:[{skill:"Stunstrike", effect:{stfx_inflict:{PAR:100}}, MODE:"P", AP:20, RP:5, elem:"AIR", desc:"This reaction has a 100% chance of inflicting Paralysis.", only:{Hero:true}}, {skill:"Snakebite", effect:{stfx_inflict:{PSN:100}}, MODE:"P", AP:20, RP:5, elem:"EARTH", desc:"This reaction has a 100% chance of inflicting Poison.", only:{Hero:true}}, {skill:"Smite +", effect:{smitePLUS:true}, MODE:"P", AP:20, RP:5, elem:"LIGHT", desc:"Adds an amount of damage based on Vehrn's SPR and level.\nOnly Vehrn can use this skill.", only:{Holy:true}}, {skill:"Smite X", effect:{smiteX:true}, MODE:"P", AP:20, RP:5, elem:"LIGHT", desc:"Multiplies damage based on Vehrn's SPR.\nOnly Vehrn can use this skill.", only:{Holy:true}}, {skill:"DMG+1", effect:{dmgadd:1}, AP:5, RP:1, elem:"NONE", desc:"Adds an additional point of damage to your attack.", only:{Child:true}}, {skill:"DMG+10%", effect:{dmgmult:0.1}, AP:10, RP:1, elem:"NONE", desc:"Increases inflicted physical damage by 10%."}, {skill:"DMG+20%", effect:{dmgmult:0.2}, AP:20, RP:3, elem:"NONE", desc:"Increases inflicted physical damage by 20%."}, {skill:"DMG+30%", effect:{dmgmult:0.3}, AP:30, RP:5, elem:"NONE", desc:"Increases inflicted physical damage by 30%."}, {skill:"DMG+40%", effect:{dmgmult:0.4}, AP:40, RP:7, elem:"NONE", desc:"Increases inflicted physical damage by 40%."}, {skill:"DMG+50%", effect:{dmgmult:0.5}, AP:50, RP:9, elem:"NONE", desc:"Increases inflicted physical damage by 50%."}, {skill:"Critical+20%", effect:{critical:20}, AP:20, RP:5, elem:"AIR", desc:"Increases the chance of a critical hit by 20%."}, {skill:"Accuracy+50%", effect:{accuracy:50}, AP:20, RP:4, elem:"AIR", desc:"Increases the chance of scoring a hit by 50%."}, {skill:"Soulstrike", type:"R_PATK", effect:{soulstrike:true}, AP:20, RP:1, elem:"_USERS", desc:"Standard Attack commands become the element of the user."}, {skill:"Quarry: BEAST", effect:{typeBonus:{BEAST:0.5}}, AP:20, RP:3, elem:"DARK", desc:"Increases damage by 50% against beasts."}, {skill:"Quarry: DRAGON", effect:{typeBonus:{DRAGON:0.5}}, AP:20, RP:5, elem:"DARK", desc:"Increases damage by 50% against dragons."}, {skill:"Quarry: UNDEAD", effect:{typeBonus:{UNDEAD:0.5}}, AP:20, RP:3, elem:"DARK", desc:"Increases damage by 50% against the undead."}, {skill:"Quarry: HUMAN", effect:{typeBonus:{HUMAN:0.5}}, AP:20, RP:2, elem:"DARK", desc:"Increases damage by 50% against humans."}, {skill:"Quarry: INSECT", effect:{typeBonus:{INSECT:0.5}}, AP:20, RP:3, elem:"DARK", desc:"Increases damage by 50% against insects."}, {skill:"Quarry: SPIRIT", effect:{typeBonus:{SPIRIT:0.5}}, AP:20, RP:4, elem:"DARK", desc:"Increases damage by 50% against spirits."}, {skill:"Shield Break 10%", effect:{stfx_remove:{PSH:0.1}}, AP:40, RP:8, elem:"DARK", desc:"This reaction has a 10% chance of removing the P.Shield status."}, {skill:"Degeneration 10%", effect:{stfx_remove:{RGN:0.1}}, AP:40, RP:4, elem:"DARK", desc:"This reaction has a 10% chance of removing the Regen status."}, {skill:"Drain HP 10%", effect:{drainHP:0.1}, AP:10, RP:4, elem:"DARK", desc:"Drains HP equal to 10% of damage dealt."}, {skill:"Drain HP 20%", effect:{drainHP:0.2}, AP:20, RP:6, elem:"DARK", desc:"Drains HP equal to 20% of damage dealt."}, {skill:"Drain HP 30%", effect:{drainHP:0.3}, AP:30, RP:8, elem:"DARK", desc:"Drains HP equal to 30% of damage dealt."}, {skill:"P+Poison 20%", effect:{stfx_inflict:{PSN:0.2}}, AP:20, RP:5, elem:"EARTH", desc:"This reaction has a 20% chance of inflicting Poison."}, {skill:"P+Stun 20%", effect:{stfx_inflict:{PAR:0.2}}, AP:20, RP:5, elem:"AIR", desc:"This reaction has a 20% chance of inflicting Paralysis."}, {skill:"P+Sleep 20%", effect:{stfx_inflict:{SLP:0.2}}, AP:20, RP:5, elem:"AIR", desc:"This reaction has a 20% chance of inflicting Sleep."}, {skill:"P+Confuse 20%", effect:{stfx_inflict:{CNF:0.2}}, AP:20, RP:5, elem:"FIG", desc:"This reaction has a 20% chance of inflicting Confusion."}, {skill:"P+Blind 20%", effect:{stfx_inflict:{DRK:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting Blindness."}, {skill:"P+Silence 20%", effect:{stfx_inflict:{SIL:0.2}}, AP:20, RP:5, elem:"THAUMA", desc:"This reaction has a 20% chance of inflicting Silence."}, {skill:"P+Numb 20%", effect:{stfx_inflict:{NUM:0.2}}, AP:20, RP:5, elem:"FIRE", desc:"This reaction has a 20% chance of inflicting Numbness."}, {skill:"P+Curse 20%", effect:{stfx_inflict:{CRS:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting a Curse."}, {skill:"P+Bleed 20%", effect:{stfx_inflict:{BLD:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting Bleed."}], P_DEF:[{skill:"Nullify Physical", effect:{dmgmult:-10}, AP:20, RP:10, elem:"NONE", desc:"Resists physical damage completely.", only:{Hero:true}}, {skill:"Block", effect:{dmgadd:-1}, AP:5, RP:1, elem:"NONE", desc:"Subtracts a single point of damage from any physical attacks.", only:{Child:true}}, {skill:"DMG-10%", effect:{dmgmult:-0.1}, AP:10, RP:1, elem:"NONE", desc:"Decreases inflicted physical damage by 10%."}, {skill:"DMG-20%", effect:{dmgmult:-0.2}, AP:20, RP:3, elem:"NONE", desc:"Decreases inflicted physical damage by 20%."}, {skill:"DMG-30%", effect:{dmgmult:-0.3}, AP:30, RP:5, elem:"NONE", desc:"Decreases inflicted physical damage by 30%."}, {skill:"DMG-40%", effect:{dmgmult:-0.4}, AP:40, RP:7, elem:"NONE", desc:"Decreases inflicted physical damage by 40%."}, {skill:"DMG-50%", effect:{dmgmult:-0.5}, AP:50, RP:9, elem:"NONE", desc:"Decreases inflicted physical damage by 50%."}, {skill:"DMG Soak 10", effect:{dmgadd:-10}, AP:10, RP:2, elem:"NONE", desc:"Subtracts 10 points of damage from any physical attack."}, {skill:"DMG Soak 20", effect:{dmgadd:-20}, AP:20, RP:4, elem:"NONE", desc:"Subtracts 20 points of damage from any physical attack."}, {skill:"DMG Soak 30", effect:{dmgadd:-30}, AP:30, RP:6, elem:"NONE", desc:"Subtracts 30 points of damage from any physical attack."}, {skill:"DMG Soak 100", effect:{dmgadd:-100}, AP:30, RP:8, elem:"NONE", desc:"Subtracts 100 points of damage from any physical attack."}, {skill:"DMG Soak 200", effect:{dmgadd:-200}, AP:40, RP:10, elem:"NONE", desc:"Subtracts 200 points of damage from any physical attack."}, {skill:"FIRE-50%", effect:{RESIST:{FIRE:50}}, AP:25, RP:6, elem:"FIRE", desc:"Increases FIRE resistance by 50%."}, {skill:"WATER-50%", effect:{RESIST:{WATER:50}}, AP:25, RP:6, elem:"WATER", desc:"Increases WATER resistance by 50%."}, {skill:"AIR-50%", effect:{RESIST:{AIR:50}}, AP:25, RP:6, elem:"AIR", desc:"Increases AIR resistance by 50%."}, {skill:"EARTH-50%", effect:{RESIST:{EARTH:50}}, AP:25, RP:6, elem:"EARTH", desc:"Increases EARTH resistance by 50%."}, {skill:"LIGHT-50%", effect:{RESIST:{LIGHT:50}}, AP:25, RP:6, elem:"LIGHT", desc:"Increases LIGHT resistance by 50%."}, {skill:"DARK-50%", effect:{RESIST:{DARK:50}}, AP:25, RP:6, elem:"DARK", desc:"Increases DARK resistance by 50%."}, {skill:"AETHER-50%", effect:{RESIST:{ETHER:50}}, AP:25, RP:6, elem:"ETHER", desc:"Increases DAETHERARK resistance by 50%."}, {skill:"FIG-50%", effect:{RESIST:{FIG:50}}, AP:25, RP:6, elem:"FIG", desc:"Increases FIG resistance by 50%."}, {skill:"Evasion 20%", effect:{evade:20}, AP:20, RP:3, elem:"AIR", desc:"Adds a 20% chance of evading physical attacks entirely."}, {skill:"Evasion 50%", effect:{evade:50}, AP:50, RP:7, elem:"AIR", desc:"Adds a 50% chance of evading physical attacks entirely."}, {skill:"Survivor", effect:{survivor:true}, AP:40, RP:10, elem:"DIVINE", desc:"Always survive any killing blow with 1 HP remaining, unless you're already at 1 HP, in which case you die."}], M_ATK:[{skill:"M DMG+10%", effect:{dmgmult:0.1}, AP:10, RP:1, elem:"THAUMA", desc:"Increases inflicted magical damage by 10%."}, {skill:"M DMG+20%", effect:{dmgmult:0.2}, AP:20, RP:3, elem:"THAUMA", desc:"Increases inflicted magical damage by 20%."}, {skill:"M DMG+30%", effect:{dmgmult:0.3}, AP:30, RP:5, elem:"THAUMA", desc:"Increases inflicted magical damage by 30%."}, {skill:"M DMG+40%", effect:{dmgmult:0.4}, AP:40, RP:7, elem:"THAUMA", desc:"Increases inflicted magical damage by 40%."}, {skill:"M DMG+50%", effect:{dmgmult:0.5}, AP:50, RP:9, elem:"THAUMA", desc:"Increases inflicted magical damage by 50%."}, {skill:"M FIRE+20%", effect:{EMPOWER:{FIRE:20}}, AP:20, RP:3, elem:"FIRE", desc:"Increases fire-elemental magical damage by 20%."}, {skill:"M WATER+20%", effect:{EMPOWER:{WATER:20}}, AP:20, RP:3, elem:"WATER", desc:"Increases water-elemental magical damage by 20%."}, {skill:"M AIR+20%", effect:{EMPOWER:{AIR:20}}, AP:20, RP:3, elem:"AIR", desc:"Increases air-elemental magical damage by 20%."}, {skill:"M EARTH+20%", effect:{EMPOWER:{EARTH:20}}, AP:20, RP:3, elem:"EARTH", desc:"Increases earth-elemental magical damage by 20%."}, {skill:"M LIGHT+20%", effect:{EMPOWER:{LIGHT:20}}, AP:20, RP:3, elem:"LIGHT", desc:"Increases light-elemental magical damage by 20%."}, {skill:"M DARK+20%", effect:{EMPOWER:{DARK:20}}, AP:20, RP:3, elem:"DARK", desc:"Increases dark-elemental magical damage by 20%."}, {skill:"M Shield Break 10%", effect:{stfx_remove:{MSH:0.1}}, AP:40, RP:8, elem:"DARK", desc:"This reaction has a 10% chance of removing the M.Shield status."}, {skill:"M Drain HP 10%", effect:{drainHP:0.1}, AP:10, RP:4, elem:"DARK", desc:"Drains HP equal to 10% of damage dealt."}, {skill:"M Drain HP 20%", effect:{drainHP:0.2}, AP:20, RP:6, elem:"DARK", desc:"Drains HP equal to 20% of damage dealt."}, {skill:"M Drain HP 30%", effect:{drainHP:0.3}, AP:30, RP:8, elem:"DARK", desc:"Drains HP equal to 30% of damage dealt."}, {skill:"M+Poison 20%", effect:{stfx_inflict:{PSN:0.2}}, AP:20, RP:5, elem:"EARTH", desc:"This reaction has a 20% chance of inflicting Poison."}, {skill:"M+Stun 20%", effect:{stfx_inflict:{PAR:0.2}}, AP:20, RP:5, elem:"AIR", desc:"This reaction has a 20% chance of inflicting Paralysis."}, {skill:"M+Sleep 20%", effect:{stfx_inflict:{SLP:0.2}}, AP:20, RP:5, elem:"AIR", desc:"This reaction has a 20% chance of inflicting Sleep."}, {skill:"M+Confuse 20%", effect:{stfx_inflict:{CNF:0.2}}, AP:20, RP:5, elem:"FIG", desc:"This reaction has a 20% chance of inflicting Confusion."}, {skill:"M+Blind 20%", effect:{stfx_inflict:{DRK:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting Blindness."}, {skill:"M+Silence 20%", effect:{stfx_inflict:{SIL:0.2}}, AP:20, RP:5, elem:"THAUMA", desc:"This reaction has a 20% chance of inflicting Silence."}, {skill:"M+Numb 20%", effect:{stfx_inflict:{NUM:0.2}}, AP:20, RP:5, elem:"FIRE", desc:"This reaction has a 20% chance of inflicting Numbness."}, {skill:"M+Curse 20%", effect:{stfx_inflict:{CRS:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting a Curse."}, {skill:"M+Bleed 20%", effect:{stfx_inflict:{BLD:0.2}}, AP:20, RP:5, elem:"DARK", desc:"This reaction has a 20% chance of inflicting Bleed."}], M_DEF:[{skill:"Nullify Magic", effect:{dmgmult:-1}, AP:20, RP:10, elem:"THAUMA", desc:"Resists magical damage completely.", only:{Hero:true}}, {skill:"M DMG-10%", effect:{dmgmult:-0.1}, AP:10, RP:1, elem:"THAUMA", desc:"Decreases inflicted magical damage by 10%."}, {skill:"M DMG-20%", effect:{dmgmult:-0.2}, AP:20, RP:3, elem:"THAUMA", desc:"Decreases inflicted magical damage by 20%."}, {skill:"M DMG-30%", effect:{dmgmult:-0.3}, AP:30, RP:5, elem:"THAUMA", desc:"Decreases inflicted magical damage by 30%."}, {skill:"M DMG-40%", effect:{dmgmult:-0.4}, AP:40, RP:7, elem:"THAUMA", desc:"Decreases inflicted magical damage by 40%."}, {skill:"M DMG-50%", effect:{dmgmult:-0.5}, AP:50, RP:9, elem:"THAUMA", desc:"Decreases inflicted magical damage by 50%."}, {skill:"M DMG Soak 10", effect:{dmgadd:-10}, AP:10, RP:2, elem:"THAUMA", desc:"Subtracts 10 points of damage from any magical attack."}, {skill:"M DMG Soak 20", effect:{dmgadd:-20}, AP:20, RP:4, elem:"THAUMA", desc:"Subtracts 20 points of damage from any magical attack."}, {skill:"M DMG Soak 30", effect:{dmgadd:-30}, AP:30, RP:6, elem:"THAUMA", desc:"Subtracts 30 points of damage from any magical attack."}, {skill:"M FIRE-50%", effect:{RESIST:{FIRE:50}}, AP:25, RP:6, elem:"FIRE", desc:"Increases FIRE resistance by 50%."}, {skill:"M WATER-50%", effect:{RESIST:{WATER:50}}, AP:25, RP:6, elem:"WATER", desc:"Increases WATER resistance by 50%."}, {skill:"M AIR-50%", effect:{RESIST:{AIR:50}}, AP:25, RP:6, elem:"AIR", desc:"Increases AIR resistance by 50%."}, {skill:"M EARTH-50%", effect:{RESIST:{EARTH:50}}, AP:25, RP:6, elem:"EARTH", desc:"Increases EARTH resistance by 50%."}, {skill:"M LIGHT-50%", effect:{RESIST:{LIGHT:50}}, AP:25, RP:6, elem:"LIGHT", desc:"Increases LIGHT resistance by 50%."}, {skill:"M DARK-50%", effect:{RESIST:{DARK:50}}, AP:25, RP:6, elem:"DARK", desc:"Increases DARK resistance by 50%."}, {skill:"Spell Resist: 30%", effect:{evade:30}, AP:30, RP:6, elem:"THAUMA", desc:"Adds a 30% chance of taking no damage at all from spells."}, {skill:"Absorb MP", effect:{absorbMP:1}, AP:50, RP:10, elem:"THAUMA", desc:"When hit by a spell, the MP that the enemy used to cast it is added to your own."}, {skill:"The One Who Lived", effect:{survivor:true}, AP:40, RP:10, elem:"DIVINE", desc:"Always survive any killing blow with 1 HP remaining."}], PASSIVE:[{skill:"Nature's Favour", effect:{RESIST:{PSN:20, SIL:20, SLP:20, PAR:20}}, AP:5, RP:4, elem:"EARTH", desc:"Nature's power grants a 20% resistance to Poison, Silence, Sleep and Paralysis.", only:{Shm:true}}, {skill:"Dragon's Blood", effect:{RESIST:{PSN:20, NUM:20, SLP:20, PAR:20}}, AP:5, RP:4, elem:"EARTH", desc:"Draconic heritage gives a 20% resistance bonus to Poison, Numbness, Sleep and Paralysis.", only:{Chief:true}}, {skill:"Mechanical Body", effect:{RESIST:{PSN:100, BLD:100, ZOM:100}}, AP:5, RP:4, elem:"NONE", desc:"Due to being artificially constructed, Legion's body is immune to Poison, Zombification and Bleeding... as long as this ability is equipped.", only:{Robo:true}}, {skill:"HP+10%", effect:{hpmult:0.1}, AP:20, RP:4, elem:"EARTH", desc:"Increases Max HP by 10%."}, {skill:"HP+20%", effect:{hpmult:0.2}, AP:40, RP:6, elem:"EARTH", desc:"Increases Max HP by 20%."}, {skill:"HP+30%", effect:{hpmult:0.3}, AP:60, RP:8, elem:"EARTH", desc:"Increases Max HP by 30%."}, {skill:"HP+40%", effect:{hpmult:0.4}, AP:80, RP:10, elem:"EARTH", desc:"Increases Max HP by 40%."}, {skill:"HP+50%", effect:{hpmult:0.5}, AP:100, RP:12, elem:"EARTH", desc:"Increases Max HP by 50%."}, {skill:"MP+10%", effect:{mpmult:0.1}, AP:20, RP:4, elem:"THAUMA", desc:"Increases Max MP by 10%."}, {skill:"MP+20%", effect:{mpmult:0.2}, AP:40, RP:6, elem:"THAUMA", desc:"Increases Max MP by 20%."}, {skill:"MP+30%", effect:{mpmult:0.3}, AP:60, RP:8, elem:"THAUMA", desc:"Increases Max MP by 30%."}, {skill:"MP+40%", effect:{mpmult:0.4}, AP:80, RP:10, elem:"THAUMA", desc:"Increases Max MP by 40%."}, {skill:"MP+50%", effect:{mpmult:0.5}, AP:100, RP:12, elem:"THAUMA", desc:"Increases Max MP by 50%."}, {skill:"Antibody", effect:{RESIST:{PSN:100}}, AP:40, RP:6, elem:"EARTH", desc:"Grants immunity to Poison."}, {skill:"Locquacity", effect:{RESIST:{SIL:100}}, AP:40, RP:6, elem:"WATER", desc:"Grants immunity to Silence."}, {skill:"Suppleness", effect:{RESIST:{NUM:100}}, AP:40, RP:6, elem:"FIRE", desc:"Grants immunity to Numbness."}, {skill:"Insomnia", effect:{RESIST:{SLP:100}}, AP:40, RP:6, elem:"THAUMA", desc:"Grants immunity to Sleep."}, {skill:"Clarity", effect:{RESIST:{CNF:100}}, AP:40, RP:6, elem:"FIG", desc:"Grants immunity to Confusion."}, {skill:"Locomotion", effect:{RESIST:{PAR:100}}, AP:40, RP:6, elem:"AIR", desc:"Grants immunity to Paralysis."}, {skill:"Bright Eyes", effect:{RESIST:{DRK:100}}, AP:40, RP:6, elem:"LIGHT", desc:"Grants immunity to Blindness."}, {skill:"Purity", effect:{RESIST:{CRS:100}}, AP:40, RP:6, elem:"LIGHT", desc:"Grants immunity to Curses."}, {skill:"Vim", effect:{RESIST:{ZOM:100}}, AP:40, RP:6, elem:"LIGHT", desc:"Grants immunity to Zombification."}, {skill:"STR+1", effect:{statmod:{STR:1}}, AP:15, RP:2, elem:"FIRE", desc:"Increases Strength by 1 point."}, {skill:"STR+2", effect:{statmod:{STR:2}}, AP:30, RP:4, elem:"FIRE", desc:"Increases Strength by 2 points."}, {skill:"STR+3", effect:{statmod:{STR:3}}, AP:45, RP:6, elem:"FIRE", desc:"Increases Strength by 3 points."}, {skill:"VIT+1", effect:{statmod:{VIT:1}}, AP:15, RP:2, elem:"EARTH", desc:"Increases Vitality by 1 point."}, {skill:"VIT+2", effect:{statmod:{VIT:2}}, AP:30, RP:4, elem:"EARTH", desc:"Increases Vitality by 2 points."}, {skill:"VIT+3", effect:{statmod:{VIT:3}}, AP:45, RP:6, elem:"EARTH", desc:"Increases Vitality by 3 points."}, {skill:"SPR+1", effect:{statmod:{SPR:1}}, AP:15, RP:2, elem:"WATER", desc:"Increases Spirit by 1 point."}, {skill:"SPR+2", effect:{statmod:{SPR:2}}, AP:30, RP:4, elem:"WATER", desc:"Increases Spirit by 2 points."}, {skill:"SPR+3", effect:{statmod:{SPR:3}}, AP:45, RP:6, elem:"WATER", desc:"Increases Spirit by 3 points."}, {skill:"AGL+1", effect:{statmod:{AGL:1}}, AP:15, RP:2, elem:"AIR", desc:"Increases Agility by 1 point."}, {skill:"AGL+2", effect:{statmod:{AGL:2}}, AP:30, RP:4, elem:"AIR", desc:"Increases Agility by 2 points."}, {skill:"AGL+3", effect:{statmod:{AGL:3}}, AP:45, RP:6, elem:"AIR", desc:"Increases Agility by 3 points."}, {skill:"Resist FIRE", effect:{RESIST:{FIRE:50}}, AP:50, RP:8, elem:"FIRE", desc:"Increases FIRE resistance by 50%."}, {skill:"Resist WATER", effect:{RESIST:{WATER:50}}, AP:50, RP:8, elem:"WATER", desc:"Increases WATER resistance by 50%."}, {skill:"Resist AIR", effect:{RESIST:{AIR:50}}, AP:50, RP:8, elem:"AIR", desc:"Increases AIR resistance by 50%."}, {skill:"Resist EARTH", effect:{RESIST:{EARTH:50}}, AP:50, RP:8, elem:"EARTH", desc:"Increases EARTH resistance by 50%."}, {skill:"Resist LIGHT", effect:{RESIST:{LIGHT:50}}, AP:50, RP:8, elem:"LIGHT", desc:"Increases LIGHT resistance by 50%."}, {skill:"Resist DARK", effect:{RESIST:{DARK:50}}, AP:50, RP:8, elem:"DARK", desc:"Increases DARK resistance by 50%."}, {skill:"Resist AETHER", effect:{RESIST:{ETHER:50}}, AP:50, RP:8, elem:"ETHER", desc:"Increases AETHER resistance by 50%."}, {skill:"Resist FIG", effect:{RESIST:{FIG:50}}, AP:50, RP:8, elem:"FIG", desc:"Increases FIG resistance by 50%."}, {skill:"Resist PHYSICAL", effect:{RESIST:{NONE:50}}, AP:50, RP:8, elem:"NONE", desc:"Increases PHYSICAL resistance by 50%."}, {skill:"Resist THAUMA", effect:{RESIST:{THAUMA:50}}, AP:50, RP:8, elem:"THAUMA", desc:"Increases THAUMA resistance by 50%."}, {skill:"Rainbow Aura Lv.1", effect:{RESIST:{FIRE:20, WATER:20, AIR:20, EARTH:20, LIGHT:20, DARK:20, ETHER:20, FIG:20}}, AP:50, RP:10, elem:"LIGHT", desc:"Increases resistance to the natural, moral and spiritual elements by 20%."}, {skill:"Auto-P.Shield", effect:{autoSTFX:{PSH:1}}, AP:50, RP:10, elem:"LIGHT", desc:"Grants P.Shield at all times."}, {skill:"Auto-M.Shield", effect:{autoSTFX:{MSH:1}}, AP:50, RP:10, elem:"LIGHT", desc:"Grants M.Shield at all times."}, {skill:"Auto-Regen", effect:{autoSTFX:{RGN:1}}, AP:50, RP:10, elem:"LIGHT", desc:"Grants Regen at all times."}, {skill:"Auto-Haste", effect:{autoSTFX:{HST:1}}, AP:50, RP:10, elem:"AIR", desc:"Grants Haste at all times."}, {skill:"Auto-Berserk", effect:{autoSTFX:{BSK:1}}, AP:50, RP:10, elem:"FIRE", desc:"Grants Berserk at all times."}, {skill:"SOS Regen", effect:{SOS:{RGN:1}}, AP:20, RP:6, elem:"LIGHT", desc:"The Regen status effect triggers when the character is at 20% HP or less."}, {skill:"SOS Berserk", effect:{SOS:{BSK:1}}, AP:20, RP:3, elem:"FIRE", desc:"The Berserk status effect triggers when the character is at 20% HP or less."}, {skill:"EXP+20%", effect:{expmult:0.2}, AP:40, RP:4, elem:"DIVINE", desc:"Increases all Experience earned by 20%."}, {skill:"EXP+40%", effect:{expmult:0.4}, AP:80, RP:6, elem:"DIVINE", desc:"Increases all Experience earned by 40%."}, {skill:"EXP+60%", effect:{expmult:0.6}, AP:120, RP:8, elem:"DIVINE", desc:"Increases all Experience earned by 60%."}, {skill:"EXP+80%", effect:{expmult:0.8}, AP:160, RP:10, elem:"DIVINE", desc:"Increases all Experience earned by 80%."}, {skill:"EXP+100%", effect:{expmult:1}, AP:200, RP:12, elem:"DIVINE", desc:"Increases all Experience earned by 100%."}, {skill:"Double AP", effect:{apmult:2}, AP:200, RP:10, elem:"DIVINE", desc:"Doubles AP earned for all skills."}, {skill:"Double Gold", effect:{goldmult:2}, AP:100, RP:10, elem:"DIVINE", desc:"Doubles gold earned from battle."}, {skill:"Loot Finder Lv.1", effect:{lootmod:5}, AP:25, RP:4, elem:"DIVINE", desc:"Adds 5% to the chance of acquiring any item after battle."}, {skill:"Loot Finder Lv.2", effect:{lootmod:5}, AP:25, RP:4, elem:"DIVINE", desc:"Adds an addtional 5% to the chance of acquiring any item after battle."}, {skill:"Loot Finder Lv.3", effect:{lootmod:5}, AP:25, RP:4, elem:"DIVINE", desc:"Adds an addtional 5% to the chance of acquiring any item after battle."}]};
SIREN_SONGS = [{tune:"Vigorous March", time:1, tempo:1, notes:[12, null, 5, null, 12, null, 5, null, 14, null, null, null, 11, null, null, null]}, {tune:"Spirit Song", time:2, tempo:2, notes:[9, null, null, null, 11, null, null, null, 7, null, null, null, 9, null, null, null, 11, null, null, null, 12, null, null, null]}, {tune:"Ballad of Life", time:2, tempo:1, notes:[7, null, 12, null, null, null, 5, null, 11, null, null, null, 7, null, 9, null, null, null, 5, null, null, null, null, null]}, {tune:"Dolorous Dirge", time:1, tempo:0, notes:[[0, 5], null, null, null, [0, 5], null, null, 1, [0, 5], null, null, 1, 0, null, null, null]}, {tune:"For a Hero", time:2, tempo:0, notes:[11, null, null, null, null, null, null, null, 9, null, null, null, 13, null, null, null, 11, null, null, 4, 4, null, null, null]}, {tune:"Ballad of Balance", time:2, tempo:1, notes:[7, null, 10, null, 14, null, null, null, 7, null, null, null, 16, null, 12, null, 14, null, null, null, null, null, null, null]}];
_global.KEYS = {};
var k = 65;
while (k <= 90) {
KEYS[String.fromCharCode(k)] = k;
k++;
}
KEYS.Z = (CheckOption("qwertz") ? 89 : 90);
KEYS.Y = (CheckOption("qwertz") ? 90 : 89);
_global.ELEMENTS_ = ["FIRE", "WATER", "EARTH", "AIR", "DARK", "LIGHT", "ETHER", "FIG", "NONE", "THAUMA", "DIVINE"];
_global.ELEM_bonus = {FIRE:"STR", WATER:"SPR", AIR:"AGL", EARTH:"VIT", DARK:"DEF", LIGHT:"MDEF", ETHER:"mp", FIG:"hp"};
_global.ELEM_char = {FIRE:"F", WATER:"W", AIR:"A", EARTH:"E", DARK:"D", LIGHT:"L", ETHER:"S", FIG:"M", NONE:"N", THAUMA:"T"};
_global.ELEM_weak = {FIRE:"WATER", WATER:"EARTH", EARTH:"AIR", AIR:"FIRE", DARK:"LIGHT", LIGHT:"DARK", FIG:"ETHER", ETHER:"FIG"};
_global.ELEM_ProperNames = {FIRE:"FIRE", WATER:"WATER", EARTH:"EARTH", AIR:"AIR", DARK:"DARK", LIGHT:"LIGHT", FIG:"FIG", ETHER:"AETHER", NONE:"PHYSICAL", THAUMA:"THAUMA", DIVINE:"DIVINE"};
_global.STATUSES_ = ["PSN", "CNF", "CRS", "DRK", "SIL", "SLP", "PAR", "NUM", "ZOM", "GST", "BRK", "BLD", "RGN", "PSH", "MSH", "BSK", "HST", "UWB", "FN1", "WN1", "AN1", "EN1", "LN1", "DN1", "SN1", "MN1", "SHF", "SHW", "SHA", "SHE", "SHL", "SHD"];
_global.GoodSTATUSES_ = {RGN:1, PSH:1, MSH:1, BSK:1, HST:1, UWB:99, GST:1, BRK:1, FN1:1, WN1:1, AN1:1, EN1:1, LN1:1, DN1:1, SN1:1, MN1:1, SHF:1, SHW:1, SHA:1, SHE:1, SHL:1, SHD:1};
CHAPTERS = ["A Fallen Star", "A New Hero", "Keystones"];
STATUS_NAMES = {PSN:"Poison", CNF:"Confusion", CRS:"Curse", DRK:"Blindness", SIL:"Silence", SLP:"Sleep", PAR:"Paralysis", NUM:"Numbness", RGN:"Regen", PSH:"Shield", MSH:"M.Shield", BSK:"Berserk", HST:"Haste", UWB:"Aqualung", ZOM:"Zombie", GST:"Astral", BRK:"Barkskin", BLD:"Bleed"};
_global.replaceChar = function (text, findArray, replaceArray) {
var _local1 = 0;
var _local2 = findArray.length;
while (_local1 < _local2) {
text = text.split(findArray[_local1]).join(replaceArray[_local1]);
_local1++;
}
return(text);
};
_global.Num = function (n) {
return(((!n) ? 0 : (n)));
};
__dcd = 1;
_root.createEmptyMovieClip("dcommands", 117);
_global.DelayCommand = function (f, delay, a1, a2, a3, a4) {
__dcd++;
if (__dcd > 10000) {
__dcd = 1;
}
var _local4 = _root.dcommands.createEmptyMovieClip("dc" + __dcd, __dcd);
_local4.args = arguments;
_local4.delay = delay;
_local4.onEnterFrame = function () {
this.delay--;
if (this.delay <= 0) {
this.args[0](this.args[2], this.args[3], this.args[4], this.args[5]);
this.removeMovieClip();
}
};
};
playtime = [0, 0, 0];
setTimeout(ClockTick, 1000);
_global.DO_ACTIONS = function (actions, target, freeze) {
var _local2 = ((target != undefined) ? (_root.cont[target]) : (_root.conv.SPEAKING));
if (freeze) {
_root.freeze = true;
}
_local2.actions = ((_local2.actions == null) ? (actions) : (_local2.actions.concat(actions)));
};
_root.createEmptyMovieClip("SoundCont", 36267);
SFXList = {};
SoundCont.D = 10;
MLoopFrom = {battle:0.35, BossBattle:1.28, VictoryFanfare:3.66, VictoryFanfare2:3.4, Dungeon3:12, GameOver:6.85, GdM:16, Castle:16.8, Memory:12, MurianceBattle:1.4, SavioursBattle:2.95, GdMBattle:4, Saviours:0.25, Steele:5.47, SteeleBattle:1.35, ArenaBattle:0.751, Vehrn:1.05, Crystals:22.114, GrandBoss:5.787, SecretBoss:3.562};
MUSICList = {};
currentMusic = null;
MUSIC_orig_volume = MUSIC.getVolume();
SoundCont.createEmptyMovieClip("MusicCont", 0);
SoundCont.MusicCont.D = 1;
MLooper = setInterval(mCheck, 3);
mCheckTimeout = 0;
DefaultShops = {ACCESSORY_L1:[["CopperRing", -1], ["RingOfSTR", -1], ["RingOfVIT", -1], ["RingOfSPR", -1], ["RingOfAGL", -1], ["SilverPendant", -1], ["Gauntlet", -1]], MAGIC_L1:[["Water Rod", -1], ["Fire Rod", -1], ["Earth Rod", -1], ["Mage Robe", -1], ["Hempen Robe", -1], ["Body Crystal", -1], ["Mind Crystal", -1], ["RingOfSPR", -1], ["Manaberry", -1], ["Ether", -1]], ITEMS_L1:[["Potion", -1], ["BetterPotion", -1], ["Antidote", -1], ["MotionPotion", -1], ["HolyWater", -1], ["LiquidSound", -1], ["LiquidLight", -1], ["BalloonJuice", -1], ["Manaberry", -1], ["PhoenixDown", -1], ["CopperRing", -1]], ITEMS_L2:[["BetterPotion", -1], ["MugwortJuice", -1], ["Antidote", -1], ["MotionPotion", -1], ["HolyWater", -1], ["LiquidSound", -1], ["LiquidLight", -1], ["BalloonJuice", -1], ["Remedy", -1], ["Manaberry", -1], ["Ether", -1], ["PhoenixDown", -1]], WEAPONS_L1:[["Longsword", -1], ["Bronze Sword", -1], ["Greatsword", -1], ["Tectonic Sword", 1], ["Water Rod", 0], ["Fire Rod", 1]], ARMOUR_L1:[["Leather Armour", -1], ["Chainmail", -1], ["Copper Breastplate", -1], ["Hat", -1], ["Leather Helm", -1], ["Wooden Shield", -1], ["Bronze Shield", 1], ["CopperRing", 5], ["SilverRing", 3], ["GoldRing", 1]], CANONIA_EQUIPMENT:[["Iron Sword", -1], ["Iron Greatblade", -1], ["Bronze Shield", -1], ["Copper Breastplate", -1], ["Breastplate", -1], ["CopperRing", 3], ["RingOfSTR", 3], ["RingOfVIT", 3], ["RingOfSPR", 3], ["RingOfAGL", 3], ["Gauntlet", 1]], TRILOBITE_WEAPONS:[["Shadowblade", -1], ["MythrilGreatblade", -1], ["Twin Trilobites", 1], ["Longsword", -1], ["Bronze Sword", -1], ["Silver Sword", -1], ["Iron Sword", -1], ["Mace", -1], ["Greatsword", -1], ["Tectonic Sword", 1], ["Iron Greatblade", 1], ["Ancient Sword", 1], ["Shashiik", 1], ["Boneslicer", 1], ["Water Rod", -1], ["Fire Rod", -1], ["Earth Rod", 1], ["Lightning Rod", 1]], TRILOBITE_ARMOUR:[["Trilobite Armour", 5], ["Green Robe", 5], ["Leather Armour", -1], ["Bandit Leather", 1], ["Chainmail", -1], ["Copper Breastplate", -1], ["Bonemail", 1], ["Breastplate", -1], ["Mage Robe", -1], ["Hempen Robe", -1], ["Hat", -1], ["Leather Helm", -1], ["Kettle Hat", 4]], TRILOBITE_ACCESSORY:[["RingOfSTR+2", 10], ["RingOfVIT+2", 10], ["RingOfSPR+2", 10], ["RingOfAGL+2", 10], ["Gauntlet", 10], ["SilverRing", 10], ["OnyxRing", 10], ["MoonstoneRing", 10], ["GreenBeads", -1], ["Snakestone", 1], ["Body Crystal", -1], ["Mind Crystal", -1], ["Belt of Movement", -1]], SUN_TEMPLE_PRIEST:[["BetterPotion", -1], ["HolyWater", -1], ["Antidote", -1], ["BalloonJuice", -1], ["LiquidLight", -1], ["MotionPotion", -1], ["LiquidSound", -1], ["Remedy", -1], ["Mace", 1], ["Alchemist's Fire", 5], ["Really Cold Water", 5], ["Liquid Lightning", 5], ["Bottle O' Acid", 5]], XANTUSIA_EQUIPMENT:[["Xantusian Scimitar", -1], ["Iron Spear", -1], ["Iron Axe", -1], ["Bronze Shield", -1], ["Reinforced Leather", -1]], AERO_WEAPONS:[["Aeropolitan Scimitar", -1], ["Desert Spear", -1], ["Mighty Axe", -1], ["Two Moons", -1], ["Air Staff", -1]], AERO_ARMOUR:[["Magic Shirt", -1], ["Iron Armour", -1], ["Gold Shield", -1]], AERO_BAZAAR:[["Elixir", 1], ["MugwortJuice", 16], ["Xantusian Scimitar", 1], ["Pike", -1], ["Magic Poker", 1], ["Starmetal Blade", 1], ["Snakemail", -1], ["Night Jacket", 1], ["FirePendant", -1], ["WaterPendant", -1], ["AirPendant", -1], ["EarthPendant", -1], ["Amethyst Earring", -1]], AERO_ITEMS_T:[["Elixir", 10], ["FigJuice", 20], ["FirequillDown", 5], ["Speedy Juice", 10], ["Healthy Juice", 10], ["Angry Juice", 10], ["Alchemist's Fire", 30], ["Really Cold Water", 30], ["Bottle O' Acid", 30], ["Liquid Lightning", 30], ["Noxious Bomb", 5]], AERO_MAGIC:[["Azure Stole +2", -1], ["Azure Stole +4", -1], ["Azure Stole +6", -1], ["Green Stole +2", -1], ["Green Stole +4", -1], ["Green Stole +6", -1], ["Scarlet Stole +2", -1], ["Scarlet Stole +4", -1], ["Scarlet Stole +6", -1], ["Fire Essence", 3], ["Water Essence", 1], ["Air Essence", 10], ["Earth Essence", 2], ["Dark Essence", 3], ["Light Essence", 2], ["Aether Essence", 1], ["Fig Essence", 1], ["Candriathope", 1], ["Sheet Music VI", 1]], FAIRY_SALESMAN:[["Yellow Fairy", 1], ["Green Fairy", 1], ["Blue Fairy", 1], ["Purple Fairy", 1], ["Red Fairy", 1], ["Eldritch Key", 1]], CHAPTER_2_LOST:[["Trilobite Key I", 1], ["Trilobite Key II", 1], ["Trilobite Key III", 1], ["Trilobite Key IV", 1], ["Burial Sword", 1]], GOPE:[["BetterPotion", -1], ["FigJuice", -1], ["Ether", -1], ["Remedy", -1], ["PhoenixDown", -1], ["Alchemist's Fire", -1], ["Really Cold Water", -1], ["Liquid Lightning", -1], ["Bottle O' Acid", -1], ["Elixir", 3], ["Emerald Bangle", 1], ["Sapphire Bangle", 1]], FAIRY:[["Fairy Harp", 1], ["Pixie Dust", 3], ["MugwortJuice", -1], ["FigJuice", 10], ["Remedy", -1]], SECRET_SHOP:[["FigJuice", -1], ["Chocolate Milk", -1], ["God Piss", -1], ["Ether of Queens", 10], ["Ether of Kings", 10], ["Elixir", 1], ["Sheet Music VII", 1], ["Sheet Music VIII", 1], ["Purple Conch", 3], ["Golden Conch", 3], ["P Runestone", 1], ["M Runestone", 1], ["Candriathope", 1]]};
QuestData = [{ID:"HEROES", ch:1, title1:"Hero Quest!", title:"Slay The Mighty Dragon!", body:"A Mighty Dragon has captured a Princess from some kingdom or another, and it's your duty as Mighty Heroes to slay the dragon and rescue her! So get to it!"}, {ID:"FUMERATS", ch:1, title1:"LeadPipes", title:"Collect 5 LeadPipes", body:"Meraeador, the inventor, has asked you to bring him five LeadPipes, which he needs for his latest invention. You can get LeadPipes from fumerats in the Goznor sewers."}, {ID:"FALLENSTAR", ch:1, title1:"The Fallen Star", title:"The Fallen Star", body:"Deugan says he saw a strange 'star' in the sky this morning, and that it apparently fell down to Belfan and crashed just on the other side of the Soothwood. You have to travel through the Soothwood to find out what it was!"}, {ID:"MISSION", ch:2, title1:"Gem Mines", title:"Mission in the Gem Mines", body:"You are to report to the Gem Mines, just northeast of Goznor, where bandits are apparently harassing miners and stealing gems or some such thing. You are to stop the Bandit Chief there."}, {ID:"MISSINGSHAMAN", ch:2, title1:"Missing Shaman", title:"Missing Shaman", body:"The Shaman of Canonia has gone missing! It's your mission to go to Canonia - which is to the East of Goznor - and speak to the Guard Captain there, who'll tell you what to do next."}, {ID:"ELWYEN", ch:2, title1:"Lake Hag", title:"The Lake Hag", body:"A young, blue-haired girl's parents have apparently been crystallised by the magic of the 'Lake Hag'... You need to go down into the lake from the pier to get to the Hag, but you can only do this if you cast Emela's Aqualung spell on everyone from the menu, to allow them to breathe underwater."}, {ID:"SAVEGOZNOR", ch:2, title1:"Save Goznor!", title:"Save Goznor!", body:"Goznor is being attacked by Moric and his undead! You must travel there at once and try to stop Moric once and for all. He's probably in the Catacombs."}, {ID:"SAVECANONIA", ch:2, title1:"Save Canonia!", title:"Save Canonia!", body:"After having his natural body destroyed, Moric's soul has taken on another form just as Rohoph's did, and he's returned to his Battleship, which hangs over Canonia. You must find a way of boarding the ship and stopping him once and for all! Again!"}, {ID:"SUNTEMPLE", ch:3, title1:"Sun Temple", title:"The Sun Temple", body:"Mardek has been a Royal Knight now for three years, and his colleagues Donovan and Sharla were just recently promoted to Knights following acts of bravery and competence in various Guard missions.\nThe three of you have been sent to the Sun Temple, in a huge desert in the southern lands, to assist some priests of SOLAK who contacted the Guard for help after dark monsters started appearing in the lower levels.\n\nYou must do all that you can to solve whatever problems you find before returning to the King."}, {ID:"WARDINGSTONE", ch:3, title1:"Warding Stone", title:"Warding Stone", body:"There's a disturbance at the Sun Temple!\nThe priests report monsters swarming through the lower levels of the temple, including dark types that they've never seen before. You're to find what's responsible, and fix or stop it.\n\nThe Solakian Priest who gave you your quest, Shamash, suspects that an ancient device called the 'Warding Stone' may be broken and in need of replacing. He gave you a spare one for this purpose."}, {ID:"CH3PLOT", ch:3, title1:"Elemental Crystals", title:"Find the Elemental Crystals!", body:"For some bizarre reason, the King of Goznor has ordered you to find and retrieve the Elemental Crystals.\nThis is no casual feat! The Crystals are the planet's 'organs', in a way; immensely powerful and priceless natural formations which are sort of like the sources of all magic and life on the planet.\nThe king has been acting very oddly, so you've decided not to give him the crystals. But you will collect them, just so then he can't send other Knights to get them for himself."}, {ID:"CH3AQUALUNG", ch:3, title1:"Shaman's Brew", title:"Shaman's Brew", body:"The Goznor Shaman can brew you up a concoction which will allow you to breathe underwater, allowing you to reach the Water Temple under Lake Qur, but you must first bring him the necessary ingredients, which are:\n\n - Water Essence x4\n - Fish Scales x6\n - Pixie Dust x1\n - Serpent Crest x1\n - Aquamarine x1\n\nThese can likely be found in Aeropolis, to the south."}, {ID:"NECROTOME", ch:3, title1:"Necromantic Tome", title:"The Necromantic Tome", body:"Meraeador, the Inventor, has been working on his Metal Man for years now, but it cannot come to life without a soul. There is a grimoire of arcane spells that he onec read which contained the power to bind souls, but he thinks it's in the Aeropolis Library..."}, {ID:"LEGION", ch:3, title1:"Soul Cage", title:"The Soul Cage", body:"You found the Necromantic tome which you can use to bind a soul to Meraeador's Metal Man, but it seems that to cast the spell you need the following reagents:\n\n - Crystal Rose\n - Skull of a Truly Wicked Mortal\n - Silver Cord"}, {ID:"CH3MURIANCE", ch:3, title1:"Earth Runestone", title:"The Fragmented Earth Runestone", body:"Muriance - the bandit chief you fought in chapter 2 - says that he's now become a benevolent adventurer... though there's something about him that makes you doubt that.\n\nHe says that he wants to enter the Earth Temple, but needs a Runestone Fragment to get inside. Perhaps you should return this to him so then YOU can get inside.\n\nIts location is unknown. As usually happens with items like this, though, it will likely make its way into your hands eventually if you just keep going about your business."}, {ID:"CH3VEHRN", ch:3, title1:"Lost Monastery", title:"The Lost Monastery", body:"Vehrn has been given the quest of retrieving a mysterious 'Stone' from a lost monastery that used to exist in the Lifewood, but hasn't been heard from in a century. You may not be able to get in when you find it, but you will find a way in in time."}, {ID:"CH3SQ1", ch:3, title1:"Save the Priests!", title:"Save the Priests!", body:"When monsters appeared in the Sun Temple, the priests on the lower levels escaped to the uppermost level... but four of them unfortunately didn't make it out in time. You have to take a Warp Stone to each of them, then return to the priest who gave you the quest."}, {ID:"CH3SQ2", ch:3, title1:"Missing Gizmo", title:"Missing Gizmo", body:"An... eccentric... man in Xantusia spoke of a 'temple' of sorts that he and his colleagues used to be 'priests' of, which is missing a certain 'Holy Icon' of sorts. A monster stole it and took it deep within the Sandflow Caves. If you happen to find it, bring it back to Lykel for a reward."}, {ID:"CH3SQ4", ch:3, title1:"Crime Control", title:"Crime Control", body:"Defeat at least 20 bandits in the Aeropolis slums for a prize! That's it. No more explanation needed... right?!?"}, {ID:"CH3SQ5", ch:3, title1:"Lost Fairies", title:"Lost Fairies", body:"The Leader of a small group of Fairies in a glade in the Lifewood spoke of a party of bandits that recently ravaged the woods, heading for the Earth Temple. Along their way, they caught five fairies from the glade, and took them who-knows-where.\n\nThe Fairy Leader would reward you fairly if you bring all five of them back, to live in peace once more."}, {ID:"MUSEUM", ch:3, title1:"Ancient Artefacts", title:"Ancient Artefacts", body:"The Curator of the Aeropolis Museum seems upset that his museum doesn't have many Ancient Artefacts to show. He hinted that he'd pay well for any that you could bring to him from your dungeon crawls."}];
_global.GIVEQUEST = function (id) {
if (GameData.quests == null) {
GameData.quests = [];
}
var _local1 = 0;
while (_local1 < GameData.quests.length) {
if (GameData.quests[_local1].ID == id) {
return(undefined);
}
_local1++;
}
GameData.quests.push({ID:id, done:false});
};
_global.DONEQUEST = function (id) {
var _local1 = 0;
while (_local1 < GameData.quests.length) {
if (GameData.quests[_local1].ID == id) {
GameData.quests[_local1].done = true;
}
_local1++;
}
};
MEDAL_LIST = [["New Hero", "Awarded for saving Belfan from Moric in Chapter II, and experiencing Mardek's childhood in Chapter I."], ["Commander", "Awarded for training all 11 playable characters to at least level 20."], ["Knight", "Awarded for training Mardek to at least level 30."], ["Clerical Assistant", "Awarded for helping the four lost priests in the Sun Temple."], ["Sun Badge", "Awarded for completing your mission at the Sun Temple."], ["Ambassador", "Awarded for helping out the reptoids in the Sandflow Caves, improving relations between your two races."], ["Empath of Fey", "Awarded for the selfless altruism that motivated you to return the fairies to their home instead of keeping them for your own benefit."], ["Archaeologist", "Awarded for gifting 10 valuable artefacts to the Aeropolis museum."], ["Policeman", "Awarded for helping out against the crime in the Aeropolis Slums."], ["Saviour", "Awarded for saving Belfan again, this time from Qualna."], ["Celebrated Veteran", "Awarded for acquiring all of the other 39 medals."], ["Traveller", "Awarded for walking 100,000 or more steps."], ["Millionaire", "Awarded for earning at least 1,000,000 generic gold coins in total over the course of your adventures."], ["Attacker", "Awarded for inflicting a total of at least 1,000,000 damage between all of your allies."], ["Defender", "Awarded for enduring a total of at least 1,000,000 damage from enemy attacks between all of your allies."], ["Cleanser", "Awarded for ridding the world of at least 100 miasmal apparitions (that is, monsters)."], ["Vanquisher", "Awarded for ridding the world of at least 1000 monsters."], ["Millennial Warrior", "Awarded for using a total of at least 1000 physical attacks, between all party members."], ["Millennial Mage", "Awarded for using a total of at least 1000 magical attacks, between all party members."], ["Medicine Man", "Awarded for using a total of at least 100 items, between all party members."], ["Victor", "Awarded for winning at least 100 battles in total."], ["Vae Victis", "Awarded for winning at least 1000 battles in total."], ["Collector", "Awarded for opening 100 treasure chests."], ["Treasure Hunter", "Awarded for opening 400 treasure chests."], ["Cataloguer", "Awarded for filling all Encyclopaedia sections."], ["Astonishing Warrior", "Awarded for defeating Annihiliator:Karnos in the Miasmal Citadel."], ["Saviour of the Manta", "Awarded for defeating Annihilator:Animus in the Dreamshrine, ridding Belfan of the annihilator once and for all. Though it won't bring the Manta back, it means that no others will share their fate."], ["Champion", "Awarded for beating the Champion Tournament at the Cambria Arena."], ["M Medal", "Awarded for finishing Mardek's Survival tournament at the Arena."], ["Flame Medal", "Awarded for finishing Donovan's Survival tournament at the Arena."], ["Feather Medal", "Awarded for finishing Sharla's Survival tournament at the Arena."], ["Dragon Medal", "Awarded for finishing Sslen'ck's Survival tournament at the Arena."], ["Star Medal", "Awarded for finishing Solaar's Survival tournament at the Arena."], ["Song Medal", "Awarded for finishing Elwyen's Survival tournament at the Arena."], ["Leaf Medal", "Awarded for finishing Gloria's Survival tournament at the Arena."], ["Spanner Medal", "Awarded for finishing Meraeador's Survival tournament at the Arena."], ["Cog Medal", "Awarded for finishing Legion's Survival tournament at the Arena."], ["Bear Medal", "Awarded for finishing Zach's Survival tournament at the Arena."], ["YALORT Medal", "Awarded for finishing Vehrn's Survival tournament at the Arena."], ["Survivors", "Awarded for finishing all 11 Survival tournaments, with every character."]];
_root.createEmptyMovieClip("cont", 1000);
TILESIZE = 48;
_global.STAGEW = 720;
_global.STAGEH = 528;
TILES_W = STAGEW / TILESIZE;
TILES_H = STAGEH / TILESIZE;
PADDING = [2, 3];
SHOW_W = TILES_W + PADDING[0];
SHOW_H = TILES_H + PADDING[1];
ADVANCED_LIGHTING_ON = false;
WATERMODE = 1;
TREASURESHEET = flash.display.BitmapData.loadBitmap("TreasureChests");
SWITCH_GEMS = {ruby:[1, "red"], amethyst:[2, "purple"], moonstone:[3, "white"], emerald:[4, "green"], topaz:[5, "yellow"], turquoise:[6, "turquoise"], sapphire:[7, "blue"]};
_root.createEmptyMovieClip("_BlackBorder", 1002);
with (_BlackBorder) {
beginFill(0);
moveTo(-200, -200);
lineTo(STAGEW + 200, -200);
lineTo(STAGEW + 200, STAGEH + 200);
lineTo(-200, STAGEH + 200);
lineTo(-200, 0);
lineTo(0, 0);
lineTo(0, STAGEH);
lineTo(STAGEW, STAGEH);
lineTo(STAGEW, 0);
lineTo(-200, 0);
lineTo(-200, -200);
endFill();
}
MovieClip.prototype.GetCoords = function () {
return([Math.floor(this._x / _root.TILESIZE), Math.floor(this._y / _root.TILESIZE)]);
};
HexTileObjects = {Off0000:["torch", 3, 2, 16, ["deepred", 12]], O3b3349:["SkullBrazier", 3, 0, 32, ["deepred", -37]], Off9900:["torch", 3, 0, 16, [1, 12]], Offff71:["torch", 3, 1, 16, ["yellow", 12]], Obcaf71:["solakStatue", 9, 0, 32], Occ00:["YBrazier", 3, 0, 32, ["green", -37]], O4f3e67:["torch", 3, 3, 16, ["purple2", 12]], O4aff66:["torch", 3, 4, 16, ["green", 12]], O66ff66:["GreenScreen", 12, 0, 16], O27de1a:["GreenCrystal", 3, 0, 24, ["green", 0]], Offed82:["YellowBrazier", 3, 0, 32, ["yellow", -37]], Off:["torch", 3, 5, 16, ["blue3", 12]], Off9933:["fierybrazier", 3, 0, 32, ["brazier", -6]], O264f4a:["CyanBrazier", 3, 0, 32, ["cyan", -37]]};
TilesetGlowtiles = {saucer2:{t118:128, t11:131, t12:132, t13:133, t14:134, t16:136, t17:137, t110:140, t111:141, t112:142, t113:143, t114:144, t115:145, t116:146, t117:147, t119:149, t120:150, t121:151, t122:152}, suntemple:{t123:126, t124:127, t125:128, t133:136, t134:137, t135:138, t143:146, t144:147, t145:148, t28:29}, temple_WATER:{t123:113}, citadel:{t20:21}, dreamshrine:{t20:21}, astral:{t12:13}, cave2_dream:{t113:113, t120:120, t121:121, t122:122, t123:123, t124:124, t125:125, t126:126, t127:127}, catacombs:{GLOWSPEED:10, t24:25}};
TilesetLongGrass = {darkwood:[0, 13], darkwood_dream:[1, 13], lifewood:[2, 14], lifewood_dream:[3, 14], rural:[4, 15]};
TilesetExamineTiles = {aeropolis:{phrases:["It's a stall, containing various kinds of fruit."], t31:0, t32:0, t33:0}, cave_aqua:{phrases:["Though exquisitely beautiful, this crystal formation is of no use to you."], t20:0}, deadhouse:{phrases:["Here lie the grimy skeletal remains of a human. Whoever they once belonged to most probably did not die of natural causes.", "This bookshelf is full of grim tomes about Necromancy, which really aren't worth looking twice at. What use would raising the dead ever be to you?", "A dusty, cracked old pot, completely empty. Whoever owns this place obviously doesn't take care of it at all.", "A human skull, placed inauspiciously on a table. It looks like it serves either as a morbid ornament, or was at one point studied scrutinously.", "A large tome - about Necromancy, of course - is laid out on the table. You can't make sense of all the dark glyphs and runes, but they're surrounded by skulls and crossbones and it all looks rather pretentious.", "A human skeleton is laid out on the table, its bones spread to make it appear much taller than it would have been in life. Whoever did this has zero respect for the dead... as if that's not obvious from everything else in the house."], t13:0, t14:0, t114:0, t115:0, t116:0, t117:0, t118:0, t119:0, t20:1, t21:2, t22:3, t23:4, t24:5, t25:5}, goldfish:{phrases:[""], tx:0}, interior1:{phrases:["A pile of sketches lies here, showing various different designs for clockwork automatons.", "It's a book about engineering, specifically the construction of clockwork automatons. It's expert stuff; well above your comprehension level.", "A spanner is strewn haphazardly on the table, along with a smattering of nuts and bolts."], t28:0, t211:1, t212:2}, monastery:{phrases:["A large statue of YALORT, the Omnidragon, scuplted from pure onyx, with emeralds for eyes."], t31:0}, monastery_lost:{phrases:["A large statue of YALORT, the Omnidragon, scuplted from pure onyx, with emeralds for eyes.", "A large statue of YALORT... or at least, it used to be. The years have not been kind to it, and it is not crumbled and overgrown with vines."], t31:0, t34:1}, saucer2:{phrases:["It appears to be some kind of computer console... Not that you have any idea what one of those is, since computers haven't been invented yet on Belfan. It doesn't seem to be doing anything other than just flashing pointlessly. But why?!?", "This thing is an impassable forcefield. It blocks your path, obviously."], t18:0, t21:1}, suntemple:{phrases:["I bet you wish you could read this book, don't you? Well, you can't. You simply can't. Why not? Because it's too hard for you. That's why.", "It's supposed to be a cactus of some description, with yellow flowers."], t24:0, t25:0, t214:0, t215:0, t26:1}, temple_EARTH:{phrases:["It appears to be some kind of plant bud. It looks eager to flower, but not yet capable of it.", "This bud has flowered, apparently. It's not really a very impressive flower though, is it? It should be all gloriously vibrant petals and everything, but it's simply not. How disappointing."], t20:0, t21:1}, warport:{phrases:["It contains a strictly-written list of Rules of Conduct in this warport, and reminders about various things in case you forget. As if you're going to read it, though!", "It's an advert for Potions. Ogling it instills within you the desire to purchase and then imbibe one. After all, they're only 30 gold pieces. What a bargain! The advert also claims that they enhance the splendour of one's manhood. Whatever that even means, it makes you want one all the more!", "COMEING fOON TO A THEATRE NEARE YOU!! \"M\" THE PLAYE ~ A THRILLINGE ADVENTURE AWATEf! FIND OUT WHAT HAPPENEDE WHEN A KNITE FROM THE NORTH fAVED THE WORLDE FROM A fKY fAUCRE FROM THE fKYE! ~ AEROPOLIf THEATRE"], t16:0, t131:1, t132:1, t133:2, t134:2}};
TilesetLighting = {dragonlair:16671073, catacombs:5729963};
BIGDOORSHEET = flash.display.BitmapData.loadBitmap("BIGDOORSHEET");
DOORSHEET = flash.display.BitmapData.loadBitmap("DOORSHEET");
map_scrolled = [0, 0];
_root.createEmptyMovieClip("fader", 20070);
with (fader) {
lineStyle(0, 0, 0);
beginFill(0, 100);
moveTo(-10, -10);
lineTo(STAGEW + 20, -10);
lineTo(STAGEW + 20, STAGEH + 20);
lineTo(-10, STAGEH + 20);
lineTo(-10, -10);
endFill();
}
fader._visible = false;
fader.Loaded = 0;
_root.attachMovie("conv", "conv", 20080);
conv.as = {};
conv.gotoAndStop("none");
conv._visible = false;
_global.SET_SPEAKER = function (speaker) {
if (speaker == "RM") {
_root.conv.SPEAKING = {stats:{model:"rm_" + PCstats[0].model, name:(TempVars.NoRohophName ? "????" : "Rohoph"), elem:"LIGHT"}};
} else if (_root.CUTSCENE1.CUTSPEAKERS[speaker] != null) {
_root.conv.SPEAKING = _root.CUTSCENE1.CUTSPEAKERS[speaker];
} else {
_root.conv.SPEAKING = ((_root.HasAlly(speaker) && (_root.cont["PC" + (_root.HasAlly(speaker) + 1)] != null)) ? (_root.cont["PC" + (_root.HasAlly(speaker) + 1)]) : (_root.cont[speaker]));
}
};
_global.Say = function (altSpeaker, em, msg) {
if (_root.FLAVOUR_SPEAKER && (altSpeaker == "")) {
_root.conv.NAME = ((_root.conv.stats = _root.FLAVOUR_SPEAKER)).name;
_root.conv.SPEAKING = null;
} else {
SET_SPEAKER(((altSpeaker == "") ? (_root.conv.firstSpeaker) : (altSpeaker)));
if (_root.conv.SPEAKING != null) {
_root.conv.SetupSpeaker();
}
}
if (_root.conv.NAME == null) {
_root.conv.NAME = "";
}
_root.conv.em = em;
_root.conv.StartTalking(msg);
_root.conv.MoneyAmount._visible = false;
};
conv.SetupSpeaker = function () {
this.gotoAndStop("none");
this.stats = this.SPEAKING.stats;
this.gotoAndStop(1);
this.words = "";
this.NAME = _root.conv.stats.name;
this.elemglyph.gotoAndStop(this.stats.elem);
this.avatar.mystats = this.stats;
};
conv.Forward = function (force) {
if (this.theConv == null) {
return(undefined);
}
if (conv.toShow.length > 0) {
conv.words = conv.words + this.FilteredText(conv.toShow);
conv.toShow = "";
if (!force) {
return(undefined);
}
}
if (conv.CHOICES) {
if (force) {
return(undefined);
}
this.AddToLog(this.NAME, (this.stats.element ? (this.stats.element) : (this.stats.elem)), conv.CHOICES[conv.CHOICE_SEL].T);
conv.OPTION_CHOSEN = _root.Clone(conv.CHOICES[conv.CHOICE_SEL]);
conv.theConv.gotoAndStop(conv.CHOICES[conv.CHOICE_SEL].goto);
conv.CHOICE_SEL = (conv.CHOICES = null);
} else {
this.AddToLog(this.NAME, (this.stats.element ? (this.stats.element) : (this.stats.elem)), this.words);
conv.theConv.nextFrame();
}
};
conv.pic.FadeIn = function (scene) {
this._alpha = 0;
this.gotoAndStop(scene);
this.onEnterFrame = function () {
this._alpha = this._alpha + 10;
if (this._alpha >= 100) {
this.onEnterFrame = null;
}
};
};
conv.pic.FadeOut = function () {
this.onEnterFrame = function () {
this._alpha = this._alpha - 10;
if (this._alpha <= 0) {
this.gotoAndStop(1);
this.onEnterFrame = null;
}
};
};
conv.FilteredText = function (text) {
return(replaceChar(text, ["&", "@", "#", "$", "%", "\u00AC"], ["<font color='#00cccc'>", "<font color='#00ff00'>", "<font color='#ff0000'>", "<font color='#FEDB74'>", "</font>", "%"]));
};
conv.ShowOptions = (conv.as.ShowOptions = function (options) {
SET_SPEAKER("PC");
_root.conv.SetupSpeaker();
_root.conv.CHOICES = options;
if (_root.conv.CHOICE_SEL == null) {
_root.conv.CHOICE_SEL = 0;
}
_root.conv.words = "";
var _local2 = 0;
while (_local2 < options.length) {
_root.conv.words = _root.conv.words + ((((("<font color='" + ((_local2 == _root.conv.CHOICE_SEL) ? "#A5CDFE" : "#444444")) + "'>\u2022 ") + options[_local2].T) + "</font>") + newline);
_local2++;
}
_root.conv.em = options[_root.conv.CHOICE_SEL].em;
});
conv.StartTalking = function (speech) {
if ((substring(speech, 1, 2)) == "[[") {
var _local4 = 0;
var _local2 = 1;
while ((_local2 <= speech.length) && (_local4 == 0)) {
if ((substring(speech, _local2, 2)) == "]]") {
_local4 = _local2;
}
_local2++;
}
var _local5 = substring(speech, 3, _local4 - 3);
speech = substring(speech, _local4 + 2, -1);
SET_SPEAKER(_local5);
this.SetupSpeaker();
}
if ((substring(speech, 1, 2)) == "<<") {
var _local4 = 0;
var _local2 = 1;
while ((_local2 <= speech.length) && (_local4 == 0)) {
if ((substring(speech, _local2, 2)) == ">>") {
_local4 = _local2;
}
_local2++;
}
var _local5 = substring(speech, 3, _local4 - 3);
speech = substring(speech, _local4 + 2, -1);
this.stats.VOICE = ((_local5 == "none") ? null : (_local5));
}
this.gotoAndStop("none");
this.gotoAndStop(1);
this.toShow = (((substring(speech, 1, 3)) == "PC:") ? (substring(speech, 4, -1)) : (speech));
this.words = "";
this.NAME = this.stats.name;
this.elemglyph.gotoAndStop(this.stats.elem);
this.avatar.mystats = this.stats;
};
conv.EndDialogue = function () {
this.theConv.removeMovieClip();
_root.FLAVOUR_SPEAKER = null;
this.onEnterFrame = function () {
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this._alpha = 0;
this.gotoAndStop("none");
this._visible = false;
if (!_root.SavePopup._visible) {
_quality = "LOW";
}
_root.conv.em = "norm";
this.onEnterFrame = null;
}
};
};
conv.ShowGetItem = function (label, icon, f, extra) {
this.GotItemBox.life = 120;
this.GotItemBox.ITEMNAME = label;
this.GotItemBox.gotoAndStop((f ? (f) : 1));
if (icon == "Medal") {
var _local5 = new flash.display.BitmapData(16, 24, true);
_local5.copyPixels(flash.display.BitmapData.loadBitmap("medals"), new flash.geom.Rectangle(extra * 16, 0, 16, 24), new flash.geom.Point(0, 0));
this.GotItemBox.img.createEmptyMovieClip("img", 10);
this.GotItemBox.img.img.attachBitmap(_local5, 1);
this.GotItemBox.img.img._width = 48;
this.GotItemBox.img.img._height = 72;
this.GotItemBox.img.img._y = -12;
this.AddToLog(("You got the Medal '" + _root.MEDAL_LIST[extra][0]) + "'");
} else if ((icon == "Gold") || (icon == "Dreamstone")) {
var _local5 = new flash.display.BitmapData(16, 16, true);
_local5.copyPixels(flash.display.BitmapData.loadBitmap(((icon == "Dreamstone") ? "SoulOrb" : "gold2")), new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
this.GotItemBox.img.createEmptyMovieClip("img", 10);
this.GotItemBox.img.img.attachBitmap(_local5, 1);
this.GotItemBox.img.img._width = (this.GotItemBox.img.img._height = 48);
this.AddToLog(((icon == "Dreamstone") ? (("Acquired " + label) + ".") : ((((label.substr(0, 4) != "Lost") ? "You got " : "") + label) + ".")));
} else {
_root.AddItemImg(icon, this.GotItemBox.img, 48, 0);
this.AddToLog((((label.substr(0, 4) != "Lost") && (label.substr(0, 6) != "Nobody")) ? "Acquired " : "") + label);
}
this.GotItemBox.onEnterFrame = function () {
if (this.life > 110) {
this._alpha = this._alpha + 10;
} else if (this.life < 10) {
this._alpha = this._alpha - 10;
} else {
this._alpha = 100;
}
this.life--;
if (this.life == 0) {
this._alpha = 0;
this.onEnterFrame = null;
}
};
};
conv.AddToLog = function (name, elem, text) {
if (TempVars.CHAT_LOG == null) {
TempVars.CHAT_LOG = [];
}
if (TempVars.CHAT_LOG.length >= 20) {
TempVars.CHAT_LOG.pop();
}
TempVars.CHAT_LOG.unshift(((text == null) ? (name) : ([name, elem, text])));
this.ShowChatLog();
};
conv.ShowChatLog = function () {
this.LOG.TEXTBOX.html = true;
this.LOG.TEXTBOX.htmlText = "";
var _local2 = 0;
while (_local2 < TempVars.CHAT_LOG.length) {
if (TempVars.CHAT_LOG[_local2].pop == null) {
this.LOG.TEXTBOX.htmlText = this.LOG.TEXTBOX.htmlText + (("<font color='#ffef50'>" + TempVars.CHAT_LOG[_local2]) + "</font>\n\n");
} else {
this.LOG.TEXTBOX.htmlText = this.LOG.TEXTBOX.htmlText + (((((("<font color='" + {FIRE:"#ff9900", WATER:"#00ddff", AIR:"#ffff66", EARTH:"#88ff00", LIGHT:"#ffffff", DARK:"#70007f", ETHER:"#66ffcc", FIG:"#ff00dd"}[TempVars.CHAT_LOG[_local2][1]]) + "'>") + TempVars.CHAT_LOG[_local2][0]) + "</font>: ") + TempVars.CHAT_LOG[_local2][2]) + "\n\n");
}
_local2++;
}
var _local3 = 0;
while (_local3 < 4) {
this.LOG.TEXTBOX.htmlText = this.LOG.TEXTBOX.htmlText + newline;
_local3++;
}
};
_global.END = function () {
conv.EndDialogue();
};
_global.CLOSE_AND_DELAY = function (d) {
_root.conv.waitdelay = [0, d];
_root.freeze = true;
_root.conv.fade = -1;
_root.conv.AltOEF = function () {
this.waitdelay[0]++;
if (this.waitdelay[0] == this.waitdelay[1]) {
this.fade = 1;
_root.freeze = false;
this.theConv.nextFrame();
}
if (this.fade) {
this._alpha = this._alpha + (20 * this.fade);
if ((this.fade == -1) && (this._alpha <= 0)) {
this._alpha = 0;
this.fade = 0;
} else if ((this.fade == 1) && (this._alpha >= 100)) {
this._alpha = 100;
this.AltOEF = null;
}
}
return(true);
};
};
_global.SAVE_MENU = function () {
_root.SavePopup.FadeIn("SAVE");
};
_global.SWITCH_MENU = function () {
_root.SavePopup.FadeIn("SWITCH");
};
_global.STORAGE_MENU = function () {
_root.SavePopup.FadeIn("STORAGE");
};
_global.HEAL = function () {
_root.playSFX("Healing1");
_root.Flash(_root, [0, 255, 255]);
var _local2 = 0;
while (_local2 < 8) {
_root.PCstats[_local2].hp[0] = _root.PCstats[_local2].hp[1];
_root.PCstats[_local2].mp[0] = _root.PCstats[_local2].mp[1];
_root.PCstats[_local2].status = [];
_local2++;
}
};
_global.BATTLE = function (foes, music, killfade, OneShotBoss) {
var _local2 = _root.cont.PC.GetCoords();
_root.PCLOC = [_root._currentframe, _local2[0], _local2[1]];
_root.boss = foes;
_root.AREA_MUSIC = _root.currentMusic;
if (!GameData.plotVars.NO_BATTLE_MUSIC) {
_root.playMusic((music ? (music) : "battle"));
}
_root.BattleTrans();
if (killfade) {
_root._KILL_AFTER_BATTLE = _root.conv.SPEAKING;
_root.AfterBattle = function () {
_root._KILL_AFTER_BATTLE.FadeAway();
_root._KILL_AFTER_BATTLE = null;
};
}
if (OneShotBoss) {
if (GameData.bosses == null) {
GameData.bosses = {};
}
GameData.bosses[_root.conv.SPEAKING.stats.BOSSCODE] = true;
}
};
_global.MAKEPARTY = function (make, nopopup) {
if (make != null) {
var _local2 = 0;
while (_local2 < 4) {
GameData.plotVars.Allies[_root.PCstats[_local2].name] = _root.PCstats[_local2];
_root.PCstats[_local2] = null;
_local2++;
}
_local2 = 0;
while (_local2 < 4) {
if (make[_local2]) {
_root.PCstats[_local2] = GameData.plotVars.Allies[make[_local2]];
}
_local2++;
}
}
if (!nopopup) {
_root.SavePopup.FadeIn("SWITCH");
}
};
_global.JOINPARTY = function (noRedraw, noFormParty) {
var _local5 = _root.conv.SPEAKING;
var _local3 = (GameData.plotVars.Allies[_local5.stats.name] = _local5.stats.PC_STATS);
_root.calculateStats(_local3);
_root.FullHeal(_local3);
_local3.ON_PARTY = true;
var _local2 = 1;
while ((_root.PCstats[_local2] != null) && (_local2 < 4)) {
_local2++;
}
if (_local2 < 4) {
_root.PCstats[_local2] = _local3;
} else if (!noFormParty) {
_root.SavePopup.FadeIn("SWITCH");
}
if (!TempVars.DONT_DRAW_PARTY) {
var _local4 = _root.conv.SPEAKING.GetCoords();
_root.FREESPACE[_local4[1]][_local4[0]] = true;
_root.conv.SPEAKING.remove();
if (!noRedraw) {
_root.DrawParty();
}
}
};
_global.LEAVEPARTY = function (nom, no_redraw) {
var _local3 = -1;
var _local2 = 0;
while (_local2 < 4) {
if (_root.PCstats[_local2].name == nom) {
_local3 = _local2;
break;
}
_local2++;
}
if (_local3 == -1) {
return(undefined);
}
_root.PCstats[_local3].ON_PARTY = false;
GameData.plotVars.Allies[nom] = _root.PCstats[_local3];
_root.PCstats.splice(_local3, 1);
if (!no_redraw) {
root.DrawParty();
}
};
_global.EXEUNT = function () {
_root.freeze = true;
_root.FadeIn(10);
_root.fader.onMaxFade = function () {
var _local2 = _root.conv.SPEAKING.GetCoords();
_root.FREESPACE[_local2[1]][_local2[0]] = true;
_root.conv.SPEAKING.remove();
};
_root.fader.onMinFade = function () {
_root.freeze = false;
};
};
_global.EXEUNT_AND_LEAVEPARTY = function (nom) {
EXEUNT();
LEAVEPARTY(nom, true);
};
_global.GIVEITEM = function (item, amount) {
if (amount == null) {
amount = 1;
}
var _local2 = 0;
while (_local2 < 4) {
if (_root.PCstats[_local2].model == null) {
} else if (_root.GiveItemTo(item, amount, _root.PCstats[_local2])) {
_root.conv.ShowGetItem(item + ((amount > 1) ? (" x" + amount) : ""), item, 1);
return(true);
}
_local2++;
}
_root.playSFX("error");
_root.conv.ShowGetItem(("Nobody had any room for the " + item) + ", so it was discarded!", item, 1);
};
_global.TAKEITEM = function (item, amount) {
if (amount == null) {
amount = 1;
}
_root.TakeItem(item, amount);
_root.conv.ShowGetItem(("Lost " + item) + ((amount > 1) ? (" x" + amount) : ""), item, 1);
};
_global.GIVEPLOTITEM = function (item) {
if (GameData.plotItems == null) {
GameData.plotItems = [];
}
GameData.plotItems.push(item);
_root.conv.ShowGetItem(item, item, 2);
};
_global.HASPLOTITEM = function (item) {
var _local1 = 0;
while (_local1 < GameData.plotItems.length) {
if (GameData.plotItems[_local1] == item) {
return(true);
}
_local1++;
}
return(false);
};
_global.TAKEPLOTITEM = function (item) {
var _local2 = 0;
while (_local2 < GameData.plotItems.length) {
if (GameData.plotItems[_local2] == item) {
GameData.plotItems.splice(_local2, 1);
_root.conv.ShowGetItem("Lost " + item, item, 2);
return(true);
}
_local2++;
}
return(false);
};
_global.GIVEGOLD = function (amount) {
GameData.money = GameData.money + amount;
_root.RecordStat("GOLD_EARNED", amount);
_root.conv.ShowGetItem(_root.NumberFormat(amount) + " Gold", "Gold", 1);
_root.conv.MoneyAmount.MONEY = NumberFormat(GameData.money);
};
_global.TAKEGOLD = function (amount) {
GameData.money = GameData.money - amount;
_root.playSFX("buy");
_root.conv.ShowGetItem(("Lost " + _root.NumberFormat(amount)) + " Gold", "Gold", 1);
_root.conv.MoneyAmount.MONEY = NumberFormat(GameData.money);
};
_global.GIVEDREAMSTONE = function (did) {
if (GameData.Dreamstones == null) {
GameData.Dreamstones = new Array(16);
}
GameData.Dreamstones[did] = 1;
_root.conv.ShowGetItem("Dreamstone #" + (did + 1), "Dreamstone", 1);
EN_ADD("Artefacts", "Dreamstones");
};
_global.GIVEMEDAL = function (mid) {
GameData.MEDALS[GameData.CHAPTER][mid] = true;
_root.conv.ShowGetItem(_root.MEDAL_LIST[mid][0], "Medal", 1, mid);
var _local3 = 0;
var _local2 = 0;
while (_local2 < 40) {
if (GameData.MEDALS[GameData.CHAPTER][_local2]) {
_local3++;
}
_local2++;
}
_root.SetBadgeStat("MedalsEarned", _local3, "MAX");
};
_global.SHOWMONEYAMOUNT = function () {
_root.conv.MoneyAmount._visible = true;
};
ARMOUR_TYPES = {Ar0:"CLOTHING", Ar1:"LIGHT ARMOUR", Ar2:"MEDIUM ARMOUR", Ar3:"HEAVY ARMOUR", ArR:"ROBE", Sh:"SHIELD", H0:"HAT", H1:"HELMET", H2:"FULL HELM"};
ItemList = [{name:"Longsword", type:"wepn", wpnType:"SWORD", atk:10, critical:4, hit:97, cost:50, desc:"A basic iron sword.", skills:[["R:P_ATK", "DMG+20%"]]}, {name:"Bronze Sword", type:"wepn", wpnType:"SWORD", atk:14, critical:4, hit:97, cost:350, desc:"A sturdy longsword made of bronze.", skills:[["Holy", "Smite Evil"], ["R:P_ATK", "Smite +"]]}, {name:"Silver Sword", type:"wepn", wpnType:"SWORD", atk:16, critical:4, hit:97, cost:1000, typeBonus:{UNDEAD:2}, elem:"LIGHT", desc:"An ornate sword made of silver. It's magically imbued with the power of light, and inflicts double damage on undead targets.", skills:[["Holy", "Disrupt Undead"], ["R:P_ATK", "Quarry: UNDEAD"]]}, {name:"Iron Sword", type:"wepn", wpnType:"SWORD", atk:20, critical:4, hit:97, cost:600, desc:"A generic longsword made of iron. It's got a small lapis lazuli in the hilt that doesn't do anything at all!", skills:[["R:P_ATK", "DMG+10%"]]}, {name:"Mace", type:"wepn", wpnType:"SWORD", atk:22, critical:4, hit:97, cost:800, desc:"A weapon consisting of a metal shaft with a spiked metal ball at the end. Used for bludgeoning.", skills:[["R:P_ATK", "DMG+10%"]]}, {name:"Mythril Sword", type:"wepn", wpnType:"SWORD", atk:26, critical:4, hit:97, cost:2000, desc:"A sword forged from the highly unique-to-this-setting metal called 'mythril'. It's not an especially exciting sword. Its favourite colour is probably grey.", skills:[["R:P_ATK", "DMG+10%"]]}, {name:"Shadowblade", type:"wepn", wpnType:"SWORD", atk:25, critical:4, hit:97, cost:4000, elem:"DARK", desc:"A Dark-elemental sword, imbued with eldritch powers, probably.", skills:[["R:P_ATK", "Degeneration 10%"]]}, {name:"Sun Sword", type:"wepn", wpnType:"SWORD", atk:28, critical:4, hit:97, cost:600, elem:"LIGHT", desc:"A holy blade blessed by SOLAK, God of Suns. It inflicts Light elemental damage.", skills:[["R:P_ATK", "DMG+20%"]]}, {name:"Xantusian Scimitar", type:"wepn", wpnType:"SWORD", atk:33, critical:10, hit:97, effects:[["STR", 1]], cost:7000, desc:"These curved swords are forged specially in the reptoid village of Xantusia. They score critical hits more often that straighter swords.", skills:[["R:P_ATK", "Critical+20%"]]}, {name:"Champion Sword", type:"wepn", wpnType:"SWORD", atk:32, critical:10, hit:97, cost:10000, elem:"LIGHT", desc:"A finely-crafted sword awarded to the Champion of the Arena. It serves as a decorative trophy AND a powerful weapon with a high critical hit chance!", skills:[["R:P_ATK", "DMG+30%"]]}, {name:"M Blade", type:"wepn", wpnType:"SWORD", elem:"LIGHT", atk:100, critical:10, hit:255, cost:1, effects:[["STR", 5]], desc:"A mighty sword wielded by heroes.", skills:[["Hero", "Smite Evil"], ["R:P_ATK", "DMG+50%"], ["R:P_ATK", "Stunstrike"]]}, {name:"Stick", type:"wepn", wpnType:"SWORD", atk:3, critical:1, hit:90, cost:0, hit_sfx:"punch", desc:"A large, sturdy stick, found on the gr- no! It's a Mighty Hero's Magic Sword, of course! It's short and light enough to wield in one hand like a sword.", skills:[["Child", "Strike"], ["R:P_ATK", "DMG+1"], ["R:P_DEF", "Block"]]}, {name:"Keyblade", type:"wepn", wpnType:"SWORD", atk:26, critical:4, hit:97, cost:2000, desc:"No, this doesn't have anything to do with Kingdom Hearts. Nothing at all. It's not even a reference to it or anything."}, {name:"Aeropolitan Scimitar", type:"wepn", wpnType:"SWORD", atk:36, critical:10, hit:97, elem:"AIR", elemBonus:{EARTH:1.5}, effects:[["AGL", 1]], cost:12000, desc:"A type of scimitar made exclusively in Aeropolis. It's of the Air element.", skills:[["MSwd", "Air Slash"]]}, {name:"Flametongue", type:"wepn", wpnType:"SWORD", atk:39, critical:3, hit:97, elem:"FIRE", elemBonus:{AIR:1.5}, effects:[["STR", 1]], cost:24000, desc:"A semi-legendary sword said to have been used in some great battle thousands of years ago or somesuch.", skills:[["MSwd", "Fire Slash"]]}, {name:"Fishslayer", type:"wepn", wpnType:"SWORD", atk:37, critical:3, hit:97, elem:"WATER", elemBonus:{FIRE:1.5}, effects:[["SPR", 1]], cost:24000, desc:"A semi-legendary sword apparently made from some kind of magically stunned fish, with skin like steel razors. How eccentric. It WOULD be strong against Fish-type creatures, except that'd be pointless because they usually absorb Water.", skills:[["MSwd", "Water Slash"]]}, {name:"Blood Sword", type:"wepn", wpnType:"SWORD", atk:30, critical:3, hit:97, elem:"DARK", HP_DRAIN:true, typeBonus:{UNDEAD:-1}, cost:13000, desc:"A dark, evil sword with vampiric properties. It sucks the blood from the wounds it causes, and uses it to heal the wielder.", skills:[["R:P_ATK", "Drain HP 10%"]]}, {name:"Righteous Justice", type:"wepn", wpnType:"SWORD", atk:40, critical:3, hit:97, elem:"LIGHT", only_user:"Vehrn", effects:[["STR", 2], ["SPR", 3], ["mp", 20]], typeBonus:{UNDEAD:2}, cost:13000, desc:"A holy sword, forged for and wielded by a legendary Yalortian Paladin of some sort. It is meant to be used to bring justice to evil beings.", skills:[["Holy", "Divine Glory"], ["R:P_ATK", "Smite X"], ["R:P_ATK", "Soulstrike"]]}, {name:"Clerical Mace", type:"wepn", wpnType:"SWORD", atk:35, critical:4, hit:97, cost:2800, desc:"A simple but deadly weapon which is essentially an ornate bronze block on a stick. They're often used by priests for some reason.", skills:[["R:P_ATK", "Smite +"]]}, {name:"Forest Edge", type:"wepn", wpnType:"SWORD", atk:40, critical:3, hit:97, elem:"EARTH", effects:[["VIT", 1]], cost:24000, desc:"A semi-legendary sword used by some great Shaman Hero eons ago. It is said that when he died, a forest grew around his grave, and his sword was lost deep within it. Or something to that effect.", skills:[["MSwd", "Earth Slash"]]}, {name:"Sword of Goznor", type:"wepn", wpnType:"SWORD", atk:46, critical:3, hit:97, effects:[["STR", 4]], cost:70000, desc:"A sword once wielded by the King of Goznor.", skills:[]}, {name:"Champion Sword II", type:"wepn", wpnType:"SWORD", atk:50, critical:10, hit:97, cost:40000, elem:"LIGHT", effects:[["STR", 2], ["SPR", 2], ["mp", 100], ["EMPOWER", "LIGHT", 20]], desc:"A finely-crafted sword awarded to the Champion of the Arena. It serves as a decorative trophy AND a powerful weapon with a high critical hit chance!", skills:[["R:P_ATK", "Soulstrike"]]}, {name:"Cursed Blade", type:"wepn", wpnType:"SWORD", atk:45, critical:10, hit:97, cost:3000, elem:"DARK", stfx:{CRS:100}, HP_DRAIN:true, effects:[["STR", 5], ["VIT", -5], ["SPR", -5], ["AUTO_STFX", "CRS"], ["AUTO_STFX", "BLD"]], desc:"An ancient blade, cursed by some powerful wizard. Whoever wields it is afflicted with the Curse status effect, but so are any enemies that it strikes. It also drains the energy of its victims, but causes its wielder to bleed constantly.", skills:[["R:P_ATK", "P+Bleed 20%"]]}, {name:"Pike", type:"wepn", wpnType:"SPEAR", atk:9, critical:2, hit:94, cost:50, desc:"A simple spear often used by generic, expendable soldiers.", skills:[]}, {name:"Ember Spear", type:"wepn", wpnType:"SPEAR", atk:22, critical:2, hit:94, elem:"FIRE", effects:[["EMPOWER", "FIRE", 20]], cost:500, desc:"An ornate spear containing a fire opal.", skills:[["Pyro", "Flame"], ["R:M_ATK", "M FIRE+20%"], ["R:P_ATK", "Soulstrike"]]}, {name:"Wing Spear", type:"wepn", wpnType:"SPEAR", atk:22, critical:2, hit:94, elem:"AIR", effects:[["EMPOWER", "AIR", 20]], cost:500, desc:"An ornate spear containing topaz gems.", skills:[["Aero", "Lightning Bolt"], ["R:M_ATK", "M AIR+20%"], ["R:P_ATK", "Soulstrike"]]}, {name:"Iron Spear", type:"wepn", wpnType:"SPEAR", atk:28, critical:2, hit:94, cost:500, desc:"A simple metal spear with no magical enchantments whatsoever.", skills:[["Aero", "Null Air Once"], ["Aero", "Remove Paralysis"], ["Pyro", "Remove Numbness"]]}, {name:"Desert Spear", type:"wepn", wpnType:"SPEAR", atk:32, critical:2, hit:94, cost:8500, desc:"A type of ornate spear forged in Aeropolis.", skills:[["Pyro", "Burn"], ["Aero", "Gust Shield"]]}, {name:"Stingstick", type:"wepn", wpnType:"SPEAR", atk:30, critical:2, hit:94, stfx:{PSN:50}, cost:10000, desc:"A spear with a venomous wasp stinger stuck on the end. It has a chance of poisoning creatures that it strikes.", skills:[["R:P_ATK", "DMG+10%"], ["R:P_ATK", "P+Poison 20%"]]}, {name:"Firefang", type:"wepn", wpnType:"SPEAR", atk:36, critical:2, hit:94, stfx:{NUM:5}, elem:"FIRE", effects:[["EMPOWER", "FIRE", 25], ["R_ELEM", "FIRE", 50], ["SPR", 2]], cost:23000, desc:"A fire elemental spear, tipped with a fang of the Fire Guardian of the Fire Temple. Awarded for defeating that Guardian.", skills:[["Pyro", "Blaze"], ["Pyro", "Null Fire Once"], ["R:P_ATK", "DMG+20%"]]}, {name:"Magic Poker", type:"wepn", wpnType:"SPEAR", atk:20, critical:2, hit:94, cost:36000, effects:[["SPR", 3], ["EMPOWER", "FIRE", 40], ["EMPOWER", "WATER", 40], ["EMPOWER", "AIR", 40], ["EMPOWER", "EARTH", 40]], desc:"A simple, magically enchanted spear. Its design is closer to that of a magic staff than a war spear, and as such, it's great for boosting the power of spells, but relatively weak at physical strikes.", skills:[["Aero", "Thunderbolt"], ["R:M_ATK", "M DMG+20%"]]}, {name:"Obelisk", type:"wepn", wpnType:"SPEAR", atk:40, critical:2, hit:94, effects:[["mp", 50], ["STR", 2], ["SPR", 5], ["EMPOWER", "FIRE", 50], ["EMPOWER", "AIR", 50]], cost:15000, desc:"A powerful, ancient spear with an obelisk-shaped pokey bit.", skills:[["Pyro", "Pyro Shell"], ["Aero", "Aero Shell"]]}, {name:"Greatsword", type:"wepn", wpnType:"GREATSWORD", atk:12, critical:4, hit:95, cost:50, desc:"A basic greatsword.", skills:[["SSwd", "Power Attack"], ["R:P_ATK", "DMG+20%"]]}, {name:"Tectonic Sword", type:"wepn", wpnType:"GREATSWORD", atk:16, critical:4, hit:95, cost:400, desc:"A greatsword made of bronze. It's strong enough to rend rocks in twain.", skills:[["SSwd", "Earth Slash"]]}, {name:"Iron Greatblade", type:"wepn", wpnType:"GREATSWORD", atk:20, critical:4, hit:95, cost:650, desc:"A simple but powerful greatsword made of iron.", skills:[["SSwd", "Barrier Break"]]}, {name:"MythrilGreatblade", type:"wepn", wpnType:"GREATSWORD", atk:22, critical:4, hit:95, cost:3500, desc:"A large, shiny sword made of mythril.", skills:[["SSwd", "Power Attack"], ["R:P_ATK", "DMG+20%"]]}, {name:"Ancient Sword", type:"wepn", wpnType:"GREATSWORD", atk:26, critical:4, hit:95, cost:1200, desc:"An old sword that was probably used by some Hero in the days of old. It has runes engraved on it.", skills:[["SSwd", "Spiritblade"], ["R:M_DEF", "M DMG-20%"]]}, {name:"Burial Sword", type:"wepn", wpnType:"GREATSWORD", atk:32, critical:4, hit:95, cost:6000, elem:"LIGHT", effects:[["STR", 2]], desc:"A decorative but powerful sword that was buried with Social Fox in his tomb. It may or may not have belonged to him at some point.", skills:[["SSwd", "Boost"], ["R:P_ATK", "DMG+30%"]]}, {name:"Wolfblade", type:"wepn", wpnType:"GREATSWORD", atk:40, critical:4, hit:95, cost:50000, elem:"EARTH", desc:"The sword of Social Fox.", skills:[]}, {name:"Balmung", type:"wepn", wpnType:"GREATSWORD", elem:"EARTH", atk:100, critical:8, hit:95, cost:1, effects:[["STR", 5]], desc:"The sword of a legendary hero.", skills:[["Hero", "Sunder"], ["R:P_ATK", "DMG+50%"], ["R:P_ATK", "Snakebite"]]}, {name:"Big Stick", type:"wepn", wpnType:"GREATSWORD", atk:3, critical:1, hit:95, cost:0, hit_sfx:"punch", desc:"A large, sturdy stick, found on the gr- no! It's a Mighty Hero's Magic Sword, of course! This one is large enough for a child to wield in both hands, like a greatsword.", skills:[["Child", "Strike"], ["R:P_ATK", "DMG+1"], ["R:P_DEF", "Block"]]}, {name:"Starmetal Blade", type:"wepn", wpnType:"GREATSWORD", atk:48, critical:4, hit:95, cost:50000, effects:[["STR", 2]], desc:"A powerful blade made of a metal that fell to Belfan in a meteor.", skills:[]}, {name:"Greataxe", type:"wepn", wpnType:"GREATAXE", atk:34, critical:4, hit:95, cost:500, hit_sfx:"hit_2HSWORDS", desc:"A basic greataxe.", skills:[["R:P_ATK", "DMG+10%"]]}, {name:"Sun Axe", type:"wepn", wpnType:"GREATAXE", atk:35, critical:4, hit:95, cost:5000, hit_sfx:"hit_2HSWORDS", desc:"A greataxe blessed by Solak, deity of Suns.", elem:"LIGHT", skills:[["R:P_ATK", "DMG+20%"]]}, {name:"Iron Axe", type:"wepn", wpnType:"GREATAXE", atk:38, critical:4, hit:95, cost:5000, hit_sfx:"hit_2HSWORDS", desc:"A greataxe made of... well, you can probably work it out somehow.", skills:[["R:P_ATK", "DMG+20%"], ["R:P_ATK", "Quarry: HUMAN"]]}, {name:"Mighty Axe", type:"wepn", wpnType:"GREATAXE", atk:42, critical:4, hit:95, cost:9000, hit_sfx:"hit_2HSWORDS", desc:"A solid, powerful axe made for rending armour.", skills:[["Chief", "Boost"], ["R:P_ATK", "Quarry: INSECT"]]}, {name:"Bone Axe", type:"wepn", wpnType:"GREATAXE", atk:40, critical:4, hit:95, cost:1000, hit_sfx:"hit_2HSWORDS", desc:"A primitive but effective axe, made from the thigh bone of a large beast and the pelvis-type thing of some probably different beast, maybe.", skills:[["Chief", "Perforate"], ["R:P_ATK", "Quarry: BEAST"]]}, {name:"Silver Axe", type:"wepn", wpnType:"GREATAXE", atk:46, critical:4, hit:95, cost:12000, typeBonus:{UNDEAD:2}, elem:"LIGHT", hit_sfx:"hit_2HSWORDS", desc:"A delicately ornate axe forged from the shiniest silver. Like all silver weapons, it's effective against undead.", skills:[["R:P_ATK", "Quarry: UNDEAD"]]}, {name:"Rending Eye", type:"wepn", wpnType:"GREATAXE", atk:50, critical:4, hit:95, cost:12000, elem:"LIGHT", effects:[["SPR", 2], ["R_ELEM", "DARK", 20]], hit_sfx:"hit_2HSWORDS", desc:"An axe shaped like the Eye of YALORT. It's designed for ceremonial purposes, but it still packs a whallop if used in real combat.", skills:[]}, {name:"Stone Axe", type:"wepn", wpnType:"GREATAXE", atk:52, critical:4, hit:95, cost:10000, hit_sfx:"hit_2HSWORDS", desc:"Though it may look very primitive, there's no denying the power of this axe!", skills:[["Chief", "Earth Slash"]]}, {name:"Drackal Crescent", type:"wepn", wpnType:"GREATAXE", atk:60, critical:10, hit:95, elem:"FIRE", cost:30000, effects:[["STR", 3], ["VIT", 3], ["EMPOWER", "FIRE", 50]], hit_sfx:"hit_2HSWORDS", desc:"A powerful axe, forged from Red Dragon Scales, traditionally used by the most powerful of Reptoid Chieftains.", skills:[["Chief", "Fire Stream"], ["R:P_ATK", "Quarry: DRAGON"], ["R:P_ATK", "Soulstrike"]]}, {name:"Dagger", type:"wepn", wpnType:"DAGGER", atk:16, critical:10, hit:100, cost:50, hit_sfx:"hit_POLEARMS", desc:"A basic iron dagger.", skills:[]}, {name:"Curved Dagger", type:"wepn", wpnType:"DAGGER", atk:40, critical:10, hit:100, cost:5000, hit_sfx:"hit_POLEARMS", desc:"A curved dagger.", skills:[]}, {name:"Shashiik", type:"wepn", wpnType:"DOUBLESWORD", atk:18, critical:7, hit:97, cost:600, hit_sfx:"hit_MARTIAL", desc:"A double-bladed sword from lands afar.", skills:[["Merc", "Berserk"], ["R:P_ATK", "DMG+20%"], ["R:P_ATK", "Soulstrike"]]}, {name:"Boneslicer", type:"wepn", wpnType:"DOUBLESWORD", atk:22, critical:7, hit:97, cost:2000, typeBonus:{UNDEAD:2}, hit_sfx:"hit_MARTIAL", desc:"A double-bladed sword made of the bones of some great dead beast, meant for slicing the bones of other great beasts. It's especially effective versus undead.", skills:[["Merc", "Crescendo Slash"], ["R:P_ATK", "Quarry: UNDEAD"]]}, {name:"Twin Trilobites", type:"wepn", wpnType:"DOUBLESWORD", atk:26, critical:7, hit:97, cost:6000, hit_sfx:"hit_MARTIAL", desc:"A doublesword fashioned in the shape of trilobites for some reason.", skills:[["Merc", "Sure Slash"], ["R:P_ATK", "Quarry: INSECT"]]}, {name:"Two Moons", type:"wepn", wpnType:"DOUBLESWORD", atk:34, critical:7, hit:97, cost:11000, hit_sfx:"hit_MARTIAL", desc:"An exotic weapon with crescent hook-like blades at either end.", skills:[["Merc", "Coup de Grace"], ["R:P_ATK", "Critical+20%"]]}, {name:"Eagle Wings", type:"wepn", wpnType:"DOUBLESWORD", atk:40, critical:7, hit:97, cost:16000, elem:"AIR", hit_sfx:"hit_MARTIAL", desc:"A doublesword with a bird wing motif. It's air elemental.", skills:[["R:P_ATK", "Soulstrike"], ["R:PASSIVE", "AGL+2"]]}, {name:"Yin and Yang", type:"wepn", wpnType:"DOUBLESWORD", atk:46, critical:7, hit:97, cost:20000, elemBonus:{DARK:1.5, LIGHT:1.5}, effects:[["STR", 2], ["VIT", 2], ["AGL", 2]], hit_sfx:"hit_MARTIAL", desc:"A powerful doublesword which inflicts bonus damage against Moral elemental opponents.", skills:[["Merc", "Immoral Injustice"], ["R:P_DEF", "Evasion 50%"]]}, {name:"Branch Club", type:"wepn", wpnType:"GREATMACE", atk:4, critical:1, hit:90, cost:0, hit_sfx:"punch", desc:"A large branch, used as a club.", skills:[]}, {name:"Revolver", type:"wepn", wpnType:"GUN", atk:20, critical:0, hit:999, cost:0, desc:"The most basic gun.", skills:[]}, {name:"Taurus", type:"wepn", wpnType:"GUN", atk:60, critical:0, hit:999, cost:0, desc:"A simple but powerful gun.", skills:[]}, {name:"Water Rod", type:"wepn", wpnType:"ROD", atk:5, critical:5, hit:80, cost:1000, hit_sfx:"punch", MP_DRAIN:true, elem:"WATER", desc:"A magical rod imbued with the elemental power of water. It increases the power of water spells, and absorbs any damage it inflicts as MP.", effects:[["SPR", 1], ["EMPOWER", "WATER", 25]], skills:[["Elem", "Bubble"], ["R:M_ATK", "M DMG+20%"]]}, {name:"Earth Rod", type:"wepn", wpnType:"ROD", atk:6, critical:5, hit:80, cost:1000, hit_sfx:"punch", MP_DRAIN:true, elem:"EARTH", desc:"A magical rod imbued with the elemental power of earth. It increases the power of earth spells, and absorbs any damage it inflicts as MP.", effects:[["SPR", 1], ["EMPOWER", "EARTH", 25]], skills:[["Elem", "Stonesplosion"], ["R:M_ATK", "M+Poison 20%"]]}, {name:"Fire Rod", type:"wepn", wpnType:"ROD", atk:7, critical:5, hit:80, cost:1000, hit_sfx:"punch", MP_DRAIN:true, elem:"FIRE", desc:"A magical rod imbued with the elemental power of fire. It increases the power of fire spells, and absorbs any damage it inflicts as MP.", effects:[["SPR", 1], ["EMPOWER", "FIRE", 25]], skills:[["Elem", "Flame"]]}, {name:"Lightning Rod", type:"wepn", wpnType:"ROD", atk:8, critical:5, hit:80, cost:3000, hit_sfx:"punch", MP_DRAIN:true, elem:"AIR", desc:"A magical rod imbued with the elemental power of air. It increases the power of air spells, and absorbs any damage it inflicts as MP.", effects:[["SPR", 1], ["EMPOWER", "AIR", 25]], skills:[["R:M_ATK", "M+Stun 20%"], ["R:M_ATK", "M DMG+10%"]]}, {name:"Sage's Wand", type:"wepn", wpnType:"ROD", atk:10, critical:5, hit:80, cost:800, hit_sfx:"punch", desc:"A magical rod that was once used by some great sage or something. It boosts the power of the four natural elements slightly.", effects:[["SPR", 2], ["EMPOWER", "FIRE", 10], ["EMPOWER", "WATER", 10], ["EMPOWER", "AIR", 10], ["EMPOWER", "EARTH", 10]], skills:[]}, {name:"HeartStaff", type:"wepn", wpnType:"STAFF", atk:10, critical:1, hit:80, cost:100, hit_sfx:"punch", elem:"LIGHT", desc:"It has a love heart on the end!", effects:[["SPR", 1]], skills:[]}, {name:"Earth Staff", type:"wepn", wpnType:"STAFF", atk:16, critical:1, hit:80, cost:200, hit_sfx:"punch", elem:"EARTH", effects:[["SPR", 1], ["EMPOWER", "EARTH", 20]], desc:"A two-handed staff with an elemental gem on the head, infused with the powers of Earth.", skills:[["Shm", "Razor Leaf"], ["Shm", "Earth Heal"], ["R:P_ATK", "Soulstrike"]]}, {name:"Polemace", type:"wepn", wpnType:"STAFF", atk:20, critical:5, hit:80, cost:400, hit_sfx:"punch", desc:"A metal staff with a macehead on the end, used by those magic users that prefer to bludgeon things as well as cast spells.", skills:[["R:P_ATK", "DMG+20%"]]}, {name:"Air Staff", type:"wepn", wpnType:"STAFF", atk:24, critical:1, hit:80, cost:8200, hit_sfx:"punch", elem:"AIR", effects:[["SPR", 1]], desc:"A two-handed staff with an elemental gem on the head, infused with the powers of Air.", skills:[["Shm", "Twister"], ["Shm", "Null Air Once"], ["R:M_ATK", "M DMG+20%"]]}, {name:"Fire Staff", type:"wepn", wpnType:"STAFF", atk:26, critical:1, hit:80, cost:8200, hit_sfx:"punch", elem:"FIRE", effects:[["SPR", 1]], desc:"A two-handed staff with an elemental gem on the head, infused with the powers of Fire.", skills:[["Shm", "Wildfire"], ["Shm", "Null Fire Once"], ["R:P_ATK", "DMG+20%"]]}, {name:"Yggdrasil's Finger", type:"wepn", wpnType:"STAFF", atk:35, critical:1, hit:80, cost:24000, hit_sfx:"punch", elem:"EARTH", effects:[["SPR", 3], ["EMPOWER", "EARTH", 20], ["EMPOWER", "AIR", 20], ["EMPOWER", "FIRE", 20], ["EMPOWER", "WATER", 20]], desc:"A branch from a mighty, legendary, celestial tree, crafted into a magical staff.", skills:[["Shm", "Mass Cleanse"], ["R:M_ATK", "M DMG+30%"], ["R:PASSIVE", "MP+20%"]]}, {name:"Trilobite Staff", type:"wepn", wpnType:"STAFF", atk:30, critical:5, hit:90, cost:10000, hit_sfx:"punch", elem:"WATER", effects:[["STR", 1], ["SPR", 1], ["VIT", 1], ["AGL", 1]], desc:"A sturdy staff with a trilobite-shaped knob on the end. It is a status symbol, granted to Trilobite Warriors when they prove themselves to be the best of the best.", skills:[["Shm", "Whirlpool"], ["Shm", "Null Water Once"]]}, {name:"Mahogany Staff", type:"wepn", wpnType:"STAFF", atk:28, critical:5, hit:90, cost:16000, hit_sfx:"punch", elem:"DARK", effects:[], desc:"An expensive staff crafted from a fine wood. It has a creepy, unsettling aura to it; it feels like it might suddenly hit you on the head when you're not looking.", skills:[["R:M_ATK", "M Drain HP 10%"]]}, {name:"WalkingStick", type:"wepn", wpnType:"WALKINGSTICK", atk:8, critical:0, hit:80, cost:100, hit_sfx:"punch", desc:"A stick to assist the elderly in walking.", effects:[["SPR", 1]], skills:[]}, {name:"Silver Claw", type:"wepn", wpnType:"CLAW", atk:25, critical:5, hit:100, cost:1000, typeBonus:{UNDEAD:2}, elem:"LIGHT", hit_sfx:"hit_MARTIAL", desc:"It's a type of claw weapon, but it doesn't look like it's designed for human use... This particular one is particularly effective against undead.", skills:[["R:M_ATK", "M DMG+20%"], ["R:P_ATK", "Quarry: UNDEAD"]]}, {name:"Raptor Claw", type:"wepn", wpnType:"CLAW", atk:34, critical:5, hit:100, cost:10000, hit_sfx:"hit_MARTIAL", effects:[["STR", 1]], desc:"A sharp claw-like weapon, fashioned after the ferocious talons of mighty birds of prey.", skills:[["R:P_ATK", "DMG+20%"], ["R:P_ATK", "Critical+20%"]]}, {name:"Viper Claw", type:"wepn", wpnType:"CLAW", atk:28, critical:5, hit:100, cost:2600, stfx:{PSN:50}, elem:"EARTH", hit_sfx:"hit_MARTIAL", desc:"But vipers don't even HAVE claws!!1", skills:[["Sol", "Purify"], ["R:P_ATK", "P+Poison 20%"]]}, {name:"Guardian Claw", type:"wepn", wpnType:"CLAW", atk:42, critical:5, hit:100, cost:20000, elem:"LIGHT", effects:[["mp", 100], ["STR", 3], ["SPR", 3], ["EMPOWER", "LIGHT", 50]], hit_sfx:"hit_MARTIAL", desc:"A powerful claw weapon designed for a mighty Guardian.", skills:[["Sol", "Galaxy Burst"], ["R:M_ATK", "M DMG+30%"], ["R:M_ATK", "M LIGHT+20%"]]}, {name:"Silver Harp", type:"wepn", wpnType:"HARP", atk:20, critical:1, hit:90, cost:1000, typeBonus:{UNDEAD:2}, elem:"LIGHT", hit_sfx:"punch", desc:"A delicate silver harp. It's more effective for playing music on than it is for attacking with.", skills:[["R:P_ATK", "DMG+10%"], ["R:P_DEF", "DARK-50%"]]}, {name:"Wave Harp", type:"wepn", wpnType:"HARP", atk:26, critical:1, hit:90, cost:12000, effects:[["SPR", 6]], elem:"WATER", hit_sfx:"punch", desc:"A harp reminiscent of the sea. It's said that these are the types of instruments played by true Sirens to lure men to their deaths. Or maybe they just use their voices...? Either way, it's water elemental. Yay.", skills:[["R:P_ATK", "Soulstrike"], ["R:P_DEF", "WATER-50%"]]}, {name:"Fairy Harp", type:"wepn", wpnType:"HARP", atk:24, critical:1, hit:90, cost:6000, effects:[["SPR", 3], ["AGL", 2]], elem:"EARTH", hit_sfx:"punch", desc:"A delicate harp made by forest spirits, out of forest spirits!", skills:[["R:P_ATK", "DMG+20%"], ["R:P_DEF", "EARTH-50%"]]}, {name:"Astral Harp", type:"wepn", wpnType:"HARP", atk:36, mdef:10, critical:1, hit:90, cost:20000, effects:[["SPR", 10], ["AGL", 5]], elem:"ETHER", hit_sfx:"punch", desc:"A harp with strings made from silver cords which used to harness souls to their corporeal shells. It has a haunting echoey effect when played, as if the sound is coming from another realm of existence entirely.", skills:[["R:P_ATK", "DMG+30%"], ["R:P_DEF", "AETHER-50%"], ["R:PASSIVE", "EXP+20%"]]}, {name:"Mortus", type:"wepn", wpnType:"SCYTHE", atk:24, critical:15, hit:100, cost:25000, hit_sfx:"hit_2HSWORDS", elem:"EARTH", desc:"Moric's scythe.", skills:[]}, {name:"Aquila", type:"wepn", wpnType:"SCYTHE", atk:40, critical:15, hit:100, cost:25000, hit_sfx:"hit_2HSWORDS", elem:"ETHER", desc:"Qualna's weapon.", skills:[]}, {name:"Clasping Claws", type:"wepn", wpnType:"ROBOTARM", atk:30, critical:2, hit:100, cost:500, hit_sfx:"punch", desc:"Mechanical arms, designed for picking things up, but also very useful for causing harm to things in combat.", skills:[["R:P_ATK", "DMG+10%"], ["R:P_ATK", "Accuracy+50%"]]}, {name:"Hammerfist", type:"wepn", wpnType:"ROBOTARM", atk:40, critical:2, hit:100, effects:[["STR", 2], ["SPR", 2]], cost:500, hit_sfx:"punch", desc:"Mechanical arms, fashioned into hammers specifically for bludgeoning use in combat.", skills:[["R:P_ATK", "DMG+20%"], ["R:P_ATK", "Shield Break 10%"]]}, {name:"Buzzsaw Arm", type:"wepn", wpnType:"ROBOTARM", atk:50, critical:5, hit:100, effects:[["STR", 4], ["SPR", 4]], cost:500, hit_sfx:"punch", desc:"Mechanical arms, fashioned into whirring buzzsaws to slice into foes.", skills:[["R:P_ATK", "DMG+30%"], ["R:P_ATK", "Critical+20%"]]}, {name:"Wooden Shield", type:"shld", def:1, mdef:0, eva:5, cost:20, amrType:"Sh", desc:"A round shield made of wood. Pretty light, but offers only some small protection. Good for poor people!", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"Bronze Shield", type:"shld", def:2, mdef:0, eva:7, cost:250, amrType:"Sh", desc:"A shield made of bronze.", skills:[["R:P_DEF", "DMG Soak 10"]]}, {name:"Kite Shield", type:"shld", def:3, mdef:0, eva:10, cost:2000, amrType:"Sh", desc:"An iron shield fashioned in a kite shape for some reason. These are often used by knights.", skills:[]}, {name:"Hero's Shield", type:"shld", def:10, mdef:50, eva:30, cost:1, amrType:"Sh", desc:"A silver shield used by a mighty hero."}, {name:"Rune Shield", type:"shld", def:1, mdef:5, eva:10, cost:5000, elem:"THAUMA", amrType:"Sh", desc:"A wooden shield engraved with magical runes. It's not too useful against physical strikes, but it wards magic quite well.", skills:[["MSwd", "M. Shield"], ["R:M_DEF", "M DMG-20%"]]}, {name:"Rune Shield +", type:"shld", def:1, mdef:10, eva:10, cost:16000, elem:"THAUMA", amrType:"Sh", desc:"An improved version of the Rune Shield. It offers greater protection against magic.", skills:[["MSwd", "M. Shield"], ["R:M_DEF", "M DMG Soak 20"]]}, {name:"Gold Shield", type:"shld", def:4, mdef:0, eva:15, cost:8000, amrType:"Sh", desc:"This shield ISN'T made of solid gold, because it'd be ludicrously expensive and rather soft and useless if it was. Instead, it's merely gold-plated.", skills:[["MSwd", "Shield"], ["R:P_DEF", "DMG Soak 20"]]}, {name:"Shield of Darkness", type:"shld", def:3, mdef:3, eva:15, cost:5000, effects:[["SPR", 1], ["R_ELEM", "DARK", 30], ["EMPOWER", "DARK", 20]], elem:"DARK", amrType:"Sh", desc:"A shield elementally attuned to the power of Darkness.", skills:[["R:P_DEF", "DARK-50%"], ["R:M_DEF", "M DARK-50%"]]}, {name:"Shield of Light", type:"shld", def:3, mdef:3, eva:15, cost:5000, effects:[["SPR", 1], ["R_ELEM", "LIGHT", 30], ["EMPOWER", "LIGHT", 20]], elem:"LIGHT", amrType:"Sh", desc:"A shield elementally attuned to the power of Light.", skills:[["R:P_DEF", "LIGHT-50%"], ["R:M_DEF", "M LIGHT-50%"]]}, {name:"Glyph Shield", type:"shld", def:1, mdef:6, eva:15, cost:8000, effects:[["R_ELEM", "FIRE", 16], ["R_ELEM", "WATER", 16], ["R_ELEM", "AIR", 16], ["R_ELEM", "EARTH", 16]], elem:"EARTH", amrType:"Sh", desc:"This shield is decorated with an enchanted glyph which protects against the natural elements, and magic in general.", skills:[["R:M_DEF", "Spell Resist: 30%"]]}, {name:"Wing Shield", type:"shld", def:4, mdef:0, eva:30, cost:4000, effects:[["AGL", 1], ["R_ELEM", "AIR", 50], ["R_ELEM", "EARTH", 25]], amrType:"Sh", desc:"A type of shield made in Aeropolis, with a sort of 'feather rune' motif. It increases agility, and protects against AIR and EARTH.", skills:[["R:P_DEF", "AIR-50%"], ["R:M_DEF", "M AIR-50%"]]}, {name:"Azure Stole +2", type:"armr", def:2, mdef:2, cost:17800, amrType:"ArS", effects:[["SPR", 2]], desc:"It's a blue stole. You know... a stole.\nThis type enhances magical abilities.", skills:[["R:PASSIVE", "SPR+1"]]}, {name:"Azure Stole +4", type:"armr", def:4, mdef:4, cost:34000, amrType:"ArS", effects:[["SPR", 4]], desc:"It's a blue stole. You know... a stole.\nThis type enhances magical abilities.", skills:[["R:PASSIVE", "SPR+2"]]}, {name:"Azure Stole +6", type:"armr", def:6, mdef:6, cost:68000, amrType:"ArS", effects:[["SPR", 6]], desc:"It's a blue stole. You know... a stole.\nThis type enhances magical abilities.", skills:[["R:PASSIVE", "SPR+3"]]}, {name:"Green Stole +2", type:"armr", def:2, mdef:2, cost:17800, amrType:"ArS", effects:[["VIT", 2]], desc:"It's a green stole. You know... a stole.\nThis type enhances health.", skills:[["R:PASSIVE", "VIT+1"]]}, {name:"Green Stole +4", type:"armr", def:4, mdef:4, cost:34000, amrType:"ArS", effects:[["VIT", 4]], desc:"It's a green stole. You know... a stole.\nThis type enhances health.", skills:[["R:PASSIVE", "VIT+2"]]}, {name:"Green Stole +6", type:"armr", def:6, mdef:6, cost:68000, amrType:"ArS", effects:[["VIT", 6]], desc:"It's a green stole. You know... a stole.\nThis type enhances health.", skills:[["R:PASSIVE", "VIT+3"]]}, {name:"Scarlet Stole +2", type:"armr", def:2, mdef:2, cost:17800, amrType:"ArS", effects:[["STR", 2]], desc:"It's a red stole. You know... a stole.\nThis type enhances strength.", skills:[["R:PASSIVE", "STR+1"]]}, {name:"Scarlet Stole +4", type:"armr", def:4, mdef:4, cost:34000, amrType:"ArS", effects:[["STR", 4]], desc:"It's a red stole. You know... a stole.\nThis type enhances strength.", skills:[["R:PASSIVE", "STR+2"]]}, {name:"Scarlet Stole +6", type:"armr", def:6, mdef:6, cost:68000, amrType:"ArS", effects:[["STR", 6]], desc:"It's a red stole. You know... a stole.\nThis type enhances strength.", skills:[["R:PASSIVE", "STR+3"]]}, {name:"Steel Stole", type:"armr", def:10, mdef:0, cost:20000, amrType:"ArS", effects:[["R_ELEM", "NONE", 50]], desc:"A stole made of a sort of metal so thin and flexible it's almost like cloth, only several hundred times stronger and more protective. It increases DEF a lot, and also protects against non-elemental attacks.", skills:[["R:P_DEF", "DMG-20%"], ["R:P_DEF", "DMG Soak 30"]]}, {name:"Tunic", type:"armr", def:0, mdef:0, cost:1, amrType:"Ar0", desc:"A 'stylish', vomit-green Commoner Tunic. Worn by Commoners.", skills:[["Child", "Huff-Puff"]]}, {name:"Magic Blouse", type:"armr", def:2, mdef:0, cost:1000, amrType:"Ar0", desc:"This piece of everyday clothing is magically enchanted to provide enhanced defence. But why?!?", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"Magic Shirt", type:"armr", def:5, mdef:0, cost:10000, amrType:"Ar0", desc:"An enchanted shirt, usually worn by nobles who want the protection of armour without the unsightly bulk of it.", skills:[["R:P_DEF", "DMG-20%"]]}, {name:"LesserRainbowShirt", type:"armr", def:6, mdef:3, cost:10000, amrType:"Ar0", effects:[["R_ELEM", "FIRE", 10], ["R_ELEM", "WATER", 10], ["R_ELEM", "AIR", 10], ["R_ELEM", "EARTH", 10], ["R_ELEM", "LIGHT", 10], ["R_ELEM", "DARK", 10]], desc:"A rather psychadelically-fabulous-looking garment, worn more for its protection against all manner of elements than for its looks.", skills:[["R:PASSIVE", "Rainbow Aura Lv.1"]]}, {name:"Expensive Suit", type:"armr", def:0, mdef:0, cost:20000, amrType:"Ar0", effects:[], desc:"Though it's no good for combat, this snazzy suit IS, as its name implies, exorbitantly expensive! People will think that you're classy indeed if you wear it, surely.", skills:[]}, {name:"Hero's Coat", type:"armr", def:45, mdef:80, cost:1, amrType:"Ar1", effects:[["SPR", 3], ["hp", 400]], desc:"An emerald-green greatcoat, worn by a mighty hero."}, {name:"Leather Armour", type:"armr", def:1, mdef:0, cost:100, amrType:"Ar1", desc:"A suit of armour made of leather. More protective than clothing, but still pretty weak.", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"Bandit Leather", type:"armr", def:2, mdef:2, cost:1000, amrType:"Ar1", effects:[["AGL", 2], ["R_ELEM", "AIR", 25], ["R_STATUS", "PAR", 50]], elem:"AIR", desc:"A suit of armour made of leather, often worn by bandit leaders. It is infused with the power of air, giving a bonus to agility, air resistance, and resistance to paralysis.", skills:[["R:P_DEF", "Evasion 20%"], ["R:PASSIVE", "AGL+1"]]}, {name:"Spiked Hide Armour", type:"armr", def:3, mdef:0, cost:400, amrType:"Ar1", desc:"A tough, durable suit of light armour made from the hide of some large, hardy beast. The spikes give it a rather barbaric look.", skills:[["R:P_DEF", "DMG-20%"], ["R:P_DEF", "DMG Soak 20"]]}, {name:"Geojacket", type:"armr", def:0, mdef:0, cost:10000, amrType:"Ar1", effects:[["VIT", 1], ["hp", 20], ["R_ELEM", "EARTH", 120]], desc:"An earthy green jacket, imbued with the powers of nature. Though it offers nothing in the way of physical or magical defence, it allows the wearer to absorb a percentage of any Earth damage inflicted on them as HP. It increases max HP as a bonus, too!", skills:[["R:PASSIVE", "Resist EARTH"]]}, {name:"Night Jacket", type:"armr", def:0, mdef:0, cost:10000, amrType:"Ar1", effects:[["R_ELEM", "DARK", 120], ["R_ELEM", "FIRE", 20], ["R_ELEM", "WATER", 20], ["R_ELEM", "AIR", 20], ["R_ELEM", "EARTH", 20]], desc:"A dark purple iridescent jacket that seems to emanate a feeling of unease. It protects against the elements, dark particularly.", skills:[["R:PASSIVE", "Resist DARK"]]}, {name:"Reinforced Leather", type:"armr", def:4, mdef:0, cost:5000, amrType:"Ar1", desc:"A suit of leather armour with metal plates underneath for added protection, or something.", skills:[["R:P_DEF", "DMG Soak 20"]]}, {name:"Bandit Leather +5", type:"armr", def:7, mdef:7, cost:18000, amrType:"Ar1", effects:[["AGL", 7], ["R_ELEM", "AIR", 50], ["R_STATUS", "PAR", 100]], elem:"AIR", desc:"A suit of armour made of leather, often worn by bandit leaders. It is infused with the power of air, giving a bonus to agility, air resistance, and resistance to paralysis. \nThis variation has enhanced enchantments."}, {name:"Snakemail", type:"armr", def:6, mdef:2, cost:21000, amrType:"Ar1", effects:[["VIT", 2], ["AGL", 2], ["R_STATUS", "PSN", 100]], elem:"EARTH", desc:"Armour made from the scales of a large, desert-dwelling snake. It protects against poison.", skills:[["Merc", "Sinstrike"], ["R:P_DEF", "DMG-10%"], ["R:PASSIVE", "Antibody"]]}, {name:"Astral Wanderer's Garb", type:"armr", def:6, mdef:6, cost:26000, amrType:"Ar1", effects:[["SPR", 2], ["R_ELEM", "ETHER", 50]], elem:"ETHER", desc:"Light armour worn by those who walk in the realm of spirits. It protects against the aether element.", skills:[["R:PASSIVE", "Resist AETHER"]]}, {name:"Chainmail", type:"armr", def:2, mdef:0, cost:250, amrType:"Ar2", desc:"A simple suit of armour made of interlocking metal chains. Worn by soldiers.", skills:[["R:P_DEF", "DMG-20%"]]}, {name:"Green Chainmail", type:"armr", def:3, mdef:0, cost:500, amrType:"Ar2", effects:[["R_ELEM", "LIGHT", 25]], desc:"Vehrn's custom-made armour. It's essentially just painted chainmail with some minor magical enchantments, such as small protection against Light-elemental damage.", skills:[["R:P_DEF", "DMG-10%"], ["R:M_DEF", "M DMG-10%"]]}, {name:"Copper Breastplate", type:"armr", def:3, mdef:0, cost:400, amrType:"Ar2", desc:"A simple copper breastplate often worn by soldiers.", skills:[["R:P_DEF", "DMG-20%"]]}, {name:"Bonemail", type:"armr", def:4, mdef:0, cost:2500, amrType:"Ar2", effects:[["R_ELEM", "DARK", 50], ["R_ELEM", "LIGHT", -100], ["R_STATUS", "CRS", 100]], elem:"DARK", desc:"A suit of armour made from the bones of dead warriors. It protects from blindness and curses, but makes the wearer vulnerable to the Light element.", skills:[["R:PASSIVE", "Purity"]]}, {name:"Trilobite Armour", type:"armr", def:5, mdef:0, cost:5000, amrType:"Ar2", effects:[["R_ELEM", "WATER", 110], ["hp", 20]], elem:"WATER", desc:"A suit of medium armour made from Trilobite... scales...? It absorbs water damage as HP, and boosts the wearer's max hp, too!", skills:[["R:PASSIVE", "Resist WATER"]]}, {name:"Breastplate", type:"armr", def:4, mdef:0, cost:1000, amrType:"Ar2", desc:"A simple iron breastplate often worn by soldiers.", skills:[["R:P_DEF", "DMG Soak 20"]]}, {name:"Flamemail", type:"armr", def:7, mdef:0, cost:15000, amrType:"Ar2", effects:[["R_ELEM", "FIRE", 110]], elem:"FIRE", desc:"Armour interlaced with magical runes, attuned to the element of fire. It constantly feels warm, and as such is rather cosy to wear!", skills:[["R:PASSIVE", "Resist FIRE"]]}, {name:"Hero's Armour", type:"armr", def:50, mdef:0, cost:1, amrType:"Ar3", effects:[["VIT", 3], ["hp", 600]], amrType:3, desc:"Armour made of the strongest and most lustrous of metals, worn by a mighty hero."}, {name:"Rusty Armour", type:"armr", def:4, mdef:0, cost:1000, amrType:"Ar3", desc:"A full suit of armour, made of bronze. It's rusted though from overuse, and isn't as durable as it once was.", skills:[["R:P_DEF", "DMG-20%"]]}, {name:"Bronze Armour", type:"armr", def:6, mdef:0, cost:4000, amrType:"Ar3", desc:"A full suit of armour, made of bronze.", skills:[["MSwd", "Morality Block"]]}, {name:"Iron Armour", type:"armr", def:8, mdef:0, cost:8000, amrType:"Ar3", desc:"A full suit of armour, made of iron.", skills:[["R:P_DEF", "DMG-30%"]]}, {name:"Solakian Platemail", type:"armr", def:9, mdef:0, cost:44000, amrType:"Ar3", elem:"LIGHT", effects:[["SPR", 2], ["EMPOWER", "LIGHT", 25], ["R_ELEM", "LIGHT", 50], ["R_ELEM", "AIR", 50], ["R_STATUS", "CRS", 100]], desc:"A suit of golden armour blessed by the Sun God, SOLAK. You can feel the holiness just radiating off it, like a warm sandwich.", skills:[["MSwd", "Morality Block"], ["R:P_DEF", "LIGHT-50%"], ["R:PASSIVE", "Purity"]]}, {name:"Righteous Honour", type:"armr", def:8, mdef:0, cost:20000, amrType:"Ar3", only_user:"Vehrn", elem:"LIGHT", effects:[["SPR", 3], ["hp", 100], ["EMPOWER", "LIGHT", 25], ["R_ELEM", "LIGHT", 200]], desc:"A suit of heavy armour, forged for and worn by a legendary Paladin of YALORT. It's meant to represent the rigidity and... protection of the Paladin Code or something?", skills:[["Holy", "Lay on Hands"], ["R:P_DEF", "DMG-20%"], ["R:M_DEF", "M DMG-20%"], ["R:PASSIVE", "Purity"]]}, {name:"Turquoise Armour", type:"armr", def:10, mdef:5, cost:90000, amrType:"Ar3", elem:"ETHER", effects:[["STR", 1], ["SPR", 3], ["mp", 40], ["R_ELEM", "ETHER", 20]], desc:"A shimmering suit of platemail that seems to be made from an almost immaterial substance, which gives an impression of flowing water even though it's not actually, y'know, flowing. Or water.", skills:[["R:M_DEF", "M DMG-20%"], ["R:PASSIVE", "SPR+2"]]}, {name:"Mythril Platemail", type:"armr", def:15, mdef:5, cost:100000, amrType:"Ar3", elem:"LIGHT", effects:[["STR", 2], ["SPR", 2], ["mp", 80], ["R_ELEM", "ETHER", 20], ["R_ELEM", "LIGHT", 20], ["EMPOWER", "LIGHT", 20]], desc:"Heavy armour forged from the extremely rare metal called mythril. It's lightweight and incredibly durable.", skills:[["R:P_DEF", "DMG-30%"], ["R:P_DEF", "DMG Soak 30"]]}, {name:"Mage Robe", type:"armr", def:0, mdef:2, cost:100, amrType:"ArR", desc:"A simple blue robe worn by mages. It works as defence against magical rather than physical attacks.", skills:[["R:M_DEF", "M DMG-10%"]]}, {name:"Hempen Robe", type:"armr", def:0, mdef:4, cost:400, amrType:"ArR", effects:[["SPR", 1], ["mp", 10]], desc:"A mage's robe made from 'hemp'. It has 'mind enhancing effects'.", skills:[["R:M_DEF", "M DMG-20%"]]}, {name:"Green Robe", type:"armr", def:0, mdef:6, cost:4000, amrType:"ArR", effects:[["SPR", 2], ["mp", 20], ["R_ELEM", "EARTH", 50]], desc:"A green mage's robe. It allows its wearer to resist Earth damage.", skills:[["R:M_DEF", "M DMG-30%"]]}, {name:"Jasper Robe", type:"armr", def:1, mdef:5, cost:3000, amrType:"ArR", effects:[["SPR", 1], ["mp", 15]], desc:"A mage's robe, adorned with jaspers.", skills:[["R:M_DEF", "M DMG-20%"]]}, {name:"Dark Robe", type:"armr", def:3, mdef:6, cost:30000, amrType:"ArR", effects:[["SPR", 2], ["mp", 20], ["R_ELEM", "DARK", 50], ["R_STATUS", "DRK", 100]], desc:"A black robe, woven with eldritch magicks of darkness and all that sort of stuff. It protects against the Dark element and Blindness status effects. Some mages can also use it to avoid spells entirely.", skills:[["R:M_DEF", "Spell Resist: 30%"]]}, {name:"Shaman's Vestment", type:"armr", def:3, mdef:5, cost:10000, amrType:"ArR", elem:"EARTH", effects:[["SPR", 1], ["mp", 20], ["R_ELEM", "EARTH", 50], ["R_STATUS", "PSN", 50]], desc:"A long robe worn by shamans. It's probably made of the skins of animals that were ritually sacrificed or something.", skills:[["R:P_DEF", "DMG-10%"], ["R:M_DEF", "M DMG-20%"], ["R:PASSIVE", "Nature's Favour"]]}, {name:"Inventing Coat", type:"armr", def:5, mdef:2, cost:10000, amrType:"ArR", effects:[["hp", 50], ["R_ELEM", "FIRE", 50], ["R_STATUS", "CNF", 100]], desc:"A sturdy longcoat made from leather, perfect for use in a laboratory but also adequate as protection in battle too.", skills:[["R:P_DEF", "DMG-20%"]]}, {name:"Yalortian Robe", type:"armr", def:4, mdef:2, cost:22000, amrType:"ArR", effects:[["hp", 100], ["R_ELEM", "DARK", 50], ["R_ELEM", "LIGHT", 50], ["SPR", 2]], desc:"A black robe worn by Yalortian priests. It has a green Eye of YALORT symbol emlazoned upon the chest area.", skills:[["R:PASSIVE", "Purity"]]}, {name:"Copper Plating", type:"armr", def:10, mdef:0, cost:1000, amrType:"ArM", desc:"Body plating for a metal man, made from copper. It's rather resilient to physical attacks.", skills:[["R:P_DEF", "DMG-10%"], ["R:PASSIVE", "HP+10%"]]}, {name:"Steel Plating", type:"armr", def:15, mdef:5, cost:2000, effects:[["VIT", 2]], amrType:"ArM", desc:"Body plating for a metal man, made from steel. It's rather resilient to physical attacks.", skills:[["R:P_DEF", "DMG-20%"], ["R:PASSIVE", "HP+20%"]]}, {name:"Titan Plating", type:"armr", def:20, mdef:10, cost:3000, effects:[["VIT", 4]], amrType:"ArM", desc:"Body plating for a metal man, made from titanium. It's rather resilient to physical attacks.", skills:[["R:P_DEF", "DMG-30%"], ["R:PASSIVE", "HP+30%"]]}, {name:"Hat", type:"helm", def:1, mdef:0, cost:90, amrType:"H0", desc:"This seems to be some sort of hat."}, {name:"Leather Helm", type:"helm", def:1, mdef:0, cost:50, amrType:"H1", desc:"A light helmet made of leather."}, {name:"Rusty Helm", type:"helm", def:2, mdef:0, cost:50, amrType:"H2", desc:"This helmet was once probably rather strong and valuable, but ages has worn down its effectiveness considerably."}, {name:"Kettle Hat", type:"helm", def:2, mdef:0, cost:200, amrType:"H1", desc:"A wide-brimmed metal helm-hat thing. Trendy!"}, {name:"Bronze Circlet", type:"helm", def:1, mdef:1, cost:1300, amrType:"H0", effects:[["mp", 15]], desc:"A sort of small, thin crown, set with a jasper gem, and made of bronze. They're often worn by mages who can't wear full helmets.", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"Silver Circlet", type:"helm", def:2, mdef:2, cost:3000, amrType:"H0", effects:[["mp", 30]], desc:"A sort of small, thin crown, set with a sapphire gem, and made of silver. They're often worn by mages who can't wear full helmets.", skills:[["R:M_DEF", "M DMG-10%"]]}, {name:"Golden Circlet", type:"helm", def:3, mdef:3, cost:10000, amrType:"H0", effects:[["mp", 50]], desc:"A sort of small, thin crown, set with a turquoise gem, and made of gold. They're often worn by mages who can't wear full helmets.", skills:[["R:PASSIVE", "Absorb MP"]]}, {name:"Black Hat", type:"helm", def:1, mdef:0, cost:900, amrType:"H0", effects:[["R_ELEM", "DARK", 50]], desc:"It's a stylish black hat that protects against the Dark element somewhat.", skills:[["R:M_DEF", "M DARK-50%"]]}, {name:"Horned Helm", type:"helm", def:3, mdef:0, cost:15000, amrType:"H1", desc:"It's either intimidating or incredibly silly, depending on who's wearing it, and where. I mean, an axe-wielding man with a huge beard and frothing mouth could use this to further scare his foes, but if, say, a lawyer wore it, it wouldn't work so well. But maybe...", skills:[["R:PASSIVE", "SOS Berserk"]]}, {name:"Regal Crown", type:"helm", def:1, mdef:1, cost:5000, amrType:"H0", effects:[["STR", 1], ["VIT", 1], ["SPR", 1], ["AGL", 1]], desc:"A golden crown that once belonged to some kind of monarch. Looks expensive!", skills:[["R:PASSIVE", "Double Gold"]]}, {name:"Minstrel's Tiara", type:"helm", def:2, mdef:5, cost:20000, amrType:"H0", only_user:"Elwyen", effects:[["CHARISMATIC", 0.5]], desc:"A special magical tiara worn by musical performers in battle. It causes even monsters to be enamoured by the performer's music, such that there's a chance that they'll neglect to attack them, leaving the performer to continue their playing.", skills:[["R:P_DEF", "Survivor"]]}, {name:"Feather Crest", type:"helm", def:1, mdef:4, cost:6000, amrType:"H0", effects:[["SPR", 1], ["EMPOWER", "FIRE", 10], ["EMPOWER", "WATER", 10], ["EMPOWER", "AIR", 10], ["EMPOWER", "EARTH", 10]], desc:"A simple charm made of feathers of a sacred bird, to be worn in the hair. It increases the potency of Natural-elemental spells.", skills:[["R:M_ATK", "M DMG+20%"]]}, {name:"Scoping Lens", type:"helm", def:1, mdef:1, cost:6000, amrType:"H0", effects:[["AGL", 1], ["R_STATUS", "DRK", 100], ["R_STATUS", "CRS", 100]], desc:"An elaborate yet delicate headset made by Meraeador for examining his inventions closely. It can be used to increase his accuracy in battle.", skills:[["R:M_ATK", "M DMG+10%"], ["R:P_ATK", "Accuracy+50%"]]}, {name:"Elf Cap", type:"helm", def:3, mdef:3, cost:6000, amrType:"H0", elem:"EARTH", effects:[["R_ELEM", "EARTH", 20]], desc:"A lovely green cap thing worn by lovely elves, and sometimes by young heroes out to save their worlds from evil pig men.", skills:[["R:M_DEF", "M DMG Soak 10"]]}, {name:"Cursed Beret", type:"helm", def:5, mdef:5, cost:12000, amrType:"H0", elem:"DARK", effects:[["AUTO_STFX", "CRS"], ["AUTO_STFX", "PSH"], ["AUTO_STFX", "MSH"], ["R_ELEM", "DARK", 200]], desc:"A cursed item. Though wearing it will grant you a physical and magical shield throughout battle, it'll also render you uncurably cursed until you take it off, meaning that you won't be able to use any skills.", skills:[]}, {name:"Skull Helm", type:"helm", def:4, mdef:2, cost:9000, amrType:"H1", elem:"DARK", effects:[["VIT", 2]], desc:"A rather morbid helmet made from a human skull.", skills:[["R:P_DEF", "DMG Soak 20"]]}, {name:"Golden M Helm", type:"helm", def:6, mdef:3, cost:20000, amrType:"H2", elem:"LIGHT", effects:[["STR", 1], ["VIT", 1], ["SPR", 1], ["AGL", 1], ["R_ELEM", "LIGHT", 30], ["EMPOWER", "LIGHT", 20]], only_user:"Mardek", desc:"A golden helmet fashioned specifically for Mardek. The M-shaped visor looks sort of silly, but Mardek insists on it because he doesn't take life too seriously anyway and thinks it's rather fitting. ON HIS HEAD!!! ...Get it?!?1 Never mind.", skills:[["R:M_ATK", "M DMG+20%"], ["R:PASSIVE", "Bright Eyes"]]}, {name:"Dragon Amulet", type:"accs", def:0, mdef:10, cost:100, effects:[["R_ELEM", "FIRE", 50], ["STR", 1], ["VIT", 1], ["SPR", 1], ["AGL", 1]], elem:"FIRE", desc:"A powerful amulet shaped like a dragon. It protects against fire and boosts bodily energy output.", skills:[["R:P_DEF", "Nullify Physical"], ["R:M_DEF", "Nullify Magic"]]}, {name:"Cog Necklace", type:"accs", def:0, mdef:0, cost:100, effects:[["R_STATUS", "SLP", 100]], desc:"A necklace, with a simple gear attached. It was enchanted by Meraeador to protect the wearer from being put to sleep.", skills:[["R:PASSIVE", "Insomnia"]]}, {name:"SilverPendant", type:"accs", def:0, mdef:3, cost:100, effects:[["R_ELEM", "LIGHT", 15]], elem:"LIGHT", desc:"A delicate silver piece of jewellery. Wear it around your neck.", skills:[]}, {name:"Lapis Lily", type:"accs", def:0, mdef:1, cost:4000, effects:[["R_ELEM", "WATER", 50], ["R_STATUS", "SIL", 50], ["R_STATUS", "CRS", 50]], elem:"WATER", desc:"A delicate brooch made of lapis lazuli and silver, fashioned in the shape of a water lily. It was given to Mardek by Elwyen to show her gratitude.", skills:[["MSwd", "M. Shield"], ["R:PASSIVE", "MP+10%"]]}, {name:"Body Crystal", type:"accs", def:1, mdef:0, cost:1000, effects:[["VIT", 1], ["hp", 10], ["R_STATUS", "NUM", 20], ["R_STATUS", "PSN", 20], ["R_STATUS", "SLP", 20], ["R_STATUS", "PAR", 20]], desc:"A green crystal which is attuned to the physical wavelengths and body chakras such that it enhances the potential of the body of its wearer. Or something like that.", skills:[["R:PASSIVE", "HP+10%"]]}, {name:"Mind Crystal", type:"accs", def:0, mdef:1, cost:1000, effects:[["SPR", 1], ["mp", 10], ["R_STATUS", "SIL", 20], ["R_STATUS", "CNF", 20], ["R_STATUS", "CRS", 20], ["R_STATUS", "DRK", 20]], desc:"A blue crystal which is attuned to the mental wavelengths and mind chakras such that it enhances the potential of the mind of its wearer. Or something like that.", skills:[["R:PASSIVE", "MP+10%"]]}, {name:"Pickaxe Pendant", type:"accs", def:1, mdef:0, cost:1000, effects:[["STR", 1]], desc:"A tiny little pickaxe on a chain. It was a gift from the miners, for saving them.", skills:[["R:P_DEF", "DMG Soak 10"]]}, {name:"Yellow Fairy", type:"accs", def:0, mdef:0, cost:40000, elem:"AIR", effects:[["AUTO_STFX", "HST"]], desc:"A small magical fairy, bound immobile by a powerful spell. Its magic can be used to grant the user Auto-Haste, but it's highly unethical as the fairy is still alive...", skills:[]}, {name:"Green Fairy", type:"accs", def:0, mdef:0, cost:40000, elem:"EARTH", effects:[["AUTO_STFX", "RGN"]], desc:"A small magical fairy, bound immobile by a powerful spell. Its magic can be used to grant the user Auto-Regen, but it's highly unethical as the fairy is still alive...", skills:[]}, {name:"Blue Fairy", type:"accs", def:0, mdef:0, cost:40000, elem:"WATER", effects:[["AUTO_STFX", "PSH"]], desc:"A small magical fairy, bound immobile by a powerful spell. Its magic can be used to grant the user Auto-P.Shield, but it's highly unethical as the fairy is still alive...", skills:[]}, {name:"Purple Fairy", type:"accs", def:0, mdef:0, cost:40000, elem:"LIGHT", effects:[["AUTO_STFX", "MSH"]], desc:"A small magical fairy, bound immobile by a powerful spell. Its magic can be used to grant the user Auto-M.Shield, but it's highly unethical as the fairy is still alive...", skills:[]}, {name:"Red Fairy", type:"accs", def:0, mdef:0, cost:40000, elem:"FIRE", effects:[["AUTO_STFX", "BSK"]], desc:"A small magical fairy, bound immobile by a powerful spell. Its magic can be used to grant the user Auto-Berserk, but it's highly unethical as the fairy is still alive...", skills:[]}, {name:"Eclipse Amulet", type:"accs", def:2, mdef:5, cost:10000, elem:"LIGHT", effects:[["SPR", 2], ["R_ELEM", "LIGHT", 50], ["R_ELEM", "DARK", 50]], desc:"An amulet shaped like a hollow half-ball, gold on the outside, pitch black on the inside.", skills:[["Sol", "Resurrect"], ["R:P_DEF", "Evasion 20%"]]}, {name:"FirePendant", type:"accs", def:0, mdef:2, cost:300, effects:[["R_ELEM", "FIRE", 50], ["R_ELEM", "WATER", -50]], elem:"FIRE", desc:"An amulet imbued with the Fire element. It reduces all fire damage inflicted on its wearer by half.", skills:[["R:M_DEF", "M FIRE-50%"]]}, {name:"WaterPendant", type:"accs", def:0, mdef:2, cost:300, effects:[["R_ELEM", "WATER", 50], ["R_ELEM", "EARTH", -50]], elem:"WATER", desc:"An amulet imbued with the Water element. It reduces all water damage inflicted on its wearer by half.", skills:[["R:M_DEF", "M WATER-50%"]]}, {name:"EarthPendant", type:"accs", def:0, mdef:2, cost:300, effects:[["R_ELEM", "EARTH", 50], ["R_ELEM", "AIR", -50]], elem:"EARTH", desc:"An amulet imbued with the Earth element. It reduces all earth damage inflicted on its wearer by half.", skills:[["R:M_DEF", "M EARTH-50%"]]}, {name:"AirPendant", type:"accs", def:0, mdef:2, cost:300, effects:[["R_ELEM", "AIR", 50], ["R_ELEM", "FIRE", -50]], elem:"AIR", desc:"An amulet imbued with the Air element. It reduces all air damage inflicted on its wearer by half.", skills:[["R:M_DEF", "M AIR-50%"]]}, {name:"YalortianAmulet", type:"accs", def:1, mdef:2, cost:5000, elem:"DARK", effects:[["SPR", 2], ["R_ELEM", "DARK", 10]], desc:"An amulet shaped like the Eye of YALORT. Increases Spirit.", skills:[["Holy", "Green Lightning"]]}, {name:"RingOfSTR", type:"accs", def:0, mdef:0, cost:100, effects:[["STR", 1]], desc:"This little ring, set with a red gem, magically enhances its wearer's physical strength."}, {name:"RingOfVIT", type:"accs", def:0, mdef:0, cost:100, effects:[["VIT", 1], ["hp", 10]], desc:"This little ring, set with a green gem, magically enhances its wearer's physical endurance."}, {name:"RingOfAGL", type:"accs", def:0, mdef:0, cost:100, effects:[["AGL", 1]], desc:"This little ring, set with a yellow gem, magically enhances its wearer's speed."}, {name:"RingOfSPR", type:"accs", def:0, mdef:0, cost:100, effects:[["SPR", 1]], desc:"This little ring, set with a blue gem, magically enhances its wearer's mental acuity."}, {name:"RingOfSTR+2", type:"accs", def:0, mdef:0, cost:400, effects:[["STR", 2]], desc:"This little ring, set with a red gem, magically enhances its wearer's physical strength."}, {name:"RingOfVIT+2", type:"accs", def:0, mdef:0, cost:400, effects:[["VIT", 2], ["hp", 20]], desc:"This little ring, set with a green gem, magically enhances its wearer's physical endurance."}, {name:"RingOfAGL+2", type:"accs", def:0, mdef:0, cost:400, effects:[["AGL", 2]], desc:"This little ring, set with a yellow gem, magically enhances its wearer's speed."}, {name:"RingOfSPR+2", type:"accs", def:0, mdef:0, cost:400, effects:[["SPR", 2]], desc:"This little ring, set with a blue gem, magically enhances its wearer's mental acuity."}, {name:"CopperRing", type:"accs", def:1, mdef:0, cost:100, desc:"This tiny ring somehow raises Defence by a whole point.", skills:[]}, {name:"SilverRing", type:"accs", def:2, mdef:0, cost:600, desc:"This tiny ring somehow raises Defence by a whole two points.", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"GoldRing", type:"accs", def:3, mdef:0, cost:2000, desc:"This tiny ring somehow raises Defence by a whole three points.", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"OnyxRing", type:"accs", def:0, mdef:3, cost:800, elem:"DARK", effects:[["STR", 1], ["R_ELEM", "DARK", 50], ["R_STATUS", "DRK", 100]], desc:"A ring set with an onyx stone. It channels the powers of darkness, protecting its wearer from both the Dark element and the Blindness status effect.", skills:[["R:PASSIVE", "Bright Eyes"]]}, {name:"MoonstoneRing", type:"accs", def:0, mdef:3, cost:800, elem:"LIGHT", effects:[["SPR", 1], ["R_ELEM", "LIGHT", 50], ["R_STATUS", "SLP", 100]], desc:"A ring set with a moonstone. It channels the power of light, protecting its wearer from offensive light-elemental spells, and the status effect Sleep, for some reason.", skills:[["MSwd", "Shield"], ["R:PASSIVE", "Insomnia"]]}, {name:"Gauntlet", type:"accs", def:1, mdef:0, cost:500, effects:[["STR", 2]], desc:"A metal glove-type thing that increases strength and defence.", skills:[["R:P_DEF", "DMG-10%"]]}, {name:"Golden Gauntlet", type:"accs", def:5, mdef:0, cost:50000, effects:[["STR", 5]], desc:"A golden glove-type thing that increases strength and defence.", skills:[["R:P_DEF", "DMG-30%"]]}, {name:"GreenBeads", type:"accs", def:0, mdef:4, cost:400, elem:"EARTH", effects:[["R_ELEM", "EARTH", 20], ["VIT", 1]], desc:"A necklace made of green, earthy beads.", skills:[["Shm", "Null Earth Once"]]}, {name:"Snakestone", type:"accs", def:0, mdef:1, cost:2000, elem:"EARTH", effects:[["R_STATUS", "PSN", 100]], desc:"A magical green stone that protects against poison if worn.", skills:[["MSwd", "Remove Taint"], ["R:PASSIVE", "Antibody"]]}, {name:"Dragonblood Charm", type:"accs", def:0, mdef:5, cost:12000, elem:"FIRE", effects:[["R_STATUS", "NUM", 100], ["R_ELEM", "FIRE", 20]], desc:"A vial of dragon's blood, hung around one's neck like a pendant. It still possesses some magical power even in this state, and protects the wearer from Numbness.", skills:[["Pyro", "Strength Boost"], ["R:M_DEF", "M FIRE-50%"], ["R:PASSIVE", "Suppleness"]]}, {name:"FirestoneRing", type:"accs", def:2, mdef:2, cost:18000, elem:"FIRE", effects:[["STR", 1], ["R_ELEM", "FIRE", 20], ["R_STATUS", "NUM", 50]], desc:"A ring set with a fire opal, and enchanted by a skilled pyromancer.", skills:[["Pyro", "Null Fire Once"]]}, {name:"Boots of Celerity", type:"accs", def:0, mdef:0, cost:10000, elem:"AIR", effects:[["AGL", 10]], desc:"A pair of finely-crafted golden boots, which make the wearer's feet far more nimble than usual.", skills:[["R:PASSIVE", "AGL+2"]]}, {name:"Boots of Speed", type:"accs", def:0, mdef:0, cost:330000, elem:"AIR", effects:[["AUTO_STFX", "HST"]], desc:"These these magical boots are invaluably powerful, they're a rather unsightly shade of lime green.", skills:[["R:PASSIVE", "AGL+3"]]}, {name:"Lapis Beads", type:"accs", def:1, mdef:4, cost:8000, only_user:"Elwyen", effects:[["R_ELEM", "WATER", 50], ["R_STATUS", "SIL", 50], ["R_STATUS", "CRS", 50]], elem:"WATER", desc:"A set of beads made from lapis lazuli. Elwyen's had them all her life; they were gifted to her upon her birth from a mysterious grandmother.", skills:[["R:P_DEF", "Evasion 50%"]]}, {name:"Emerald Bangle", type:"accs", def:3, mdef:3, cost:25000, effects:[["R_ELEM", "EARTH", 50], ["VIT", 3], ["hp", 30]], elem:"EARTH", desc:"A finely-crafted bangle set with a valuable, magically enchanted Emerald. Boosts vitality.", skills:[["Shm", "Barkskin"], ["R:PASSIVE", "HP+20%"]]}, {name:"Sapphire Bangle", type:"accs", def:3, mdef:3, cost:25000, effects:[["R_ELEM", "WATER", 50], ["SPR", 3], ["mp", 30]], elem:"WATER", desc:"A finely-crafted bangle set with a valuable, magically enchanted Sapphire. Boosts spirit.", skills:[["Shm", "Null Water Once"], ["R:PASSIVE", "MP+20%"]]}, {name:"SolakianAmulet", type:"accs", def:1, mdef:2, cost:500, elem:"LIGHT", effects:[["SPR", 2], ["R_ELEM", "LIGHT", 10]], desc:"An amulet shaped like the Generic Sun Symbol, the holy icon of the deity SOLAK. Increases Spirit.", skills:[["R:PASSIVE", "Bright Eyes"]]}, {name:"Amethyst Earring", type:"accs", def:2, mdef:2, cost:3000, elem:"FIG", effects:[["R_STATUS", "CNF", 100]], desc:"This magical pendant wards the mind against confusion.", skills:[["R:PASSIVE", "Clarity"]]}, {name:"Bonestone", type:"accs", def:2, mdef:2, cost:3000, elem:"DARK", effects:[["R_STATUS", "ZOM", 100]], desc:"A gemstone, cut into a typical 'bone' shape and worn as a brooch. It protects against zombification.", skills:[["R:PASSIVE", "Vim"]]}, {name:"Lucky Coin", type:"accs", def:0, mdef:0, cost:5000, effects:[], desc:"A coin that supposedly lands more often on its heads side than its tails side when flipped, which is rather superstitiously said to grant its holder improved luck.", skills:[["R:PASSIVE", "Loot Finder Lv.1"]]}, {name:"Belt of Movement", type:"accs", def:2, mdef:0, cost:5000, elem:"EARTH", effects:[["AGL", 3], ["R_STATUS", "PAR", 100]], desc:"This belt protects against paralysis and boosts agility.", skills:[["R:PASSIVE", "Locomotion"]]}, {name:"Scarab of Protection", type:"accs", def:5, mdef:5, cost:170000, elem:"WATER", effects:[["AUTO_STFX", "PSH"], ["AUTO_STFX", "MSH"], ["R_ELEM", "FIRE", 20], ["R_ELEM", "WATER", 20], ["R_ELEM", "AIR", 20], ["R_ELEM", "EARTH", 20], ["R_ELEM", "LIGHT", 10], ["R_ELEM", "DARK", 10]], desc:"A legendary artefact with amazing power. It grants the wearer the power of both physical and magical shields constantly, and defends against the elements."}, {name:"Scarab of Health", type:"accs", def:5, mdef:5, cost:220000, elem:"EARTH", effects:[["AUTO_STFX", "RGN"], ["VIT", 5], ["R_STATUS", "PSN", 10], ["R_STATUS", "CNF", 10], ["R_STATUS", "DRK", 10], ["R_STATUS", "CRS", 10], ["R_STATUS", "PAR", 10], ["R_STATUS", "NUM", 10], ["R_STATUS", "SIL", 10], ["R_STATUS", "SLP", 10]], desc:"A legendary artefact with amazing power. It grants the wearer the power of regeneration constantly, and wards against status effects."}, {name:"Scarab of Fury", type:"accs", def:5, mdef:5, cost:130000, elem:"FIRE", effects:[["AUTO_STFX", "BSK"], ["AUTO_STFX", "HST"]], desc:"A legendary artefact with amazing power. It turns the wearer into a raging warrior, who attacks with speed and power, but without thought or control."}, {name:"Kind Star", type:"accs", def:0, mdef:0, cost:27000, elem:"LIGHT", effects:[["AUTO_STFX", "RGN"]], desc:"It is traditional for Knights to pray to stars for fortune before a quest. It is said that those of pure heart who prayed with the most selfless intentions and the most passion would meet amongst the crowds of peasants who saw them off a mysterious little white-haired girl, who, with an innocent smile, would wish him luck and present him with this delicate little amulet.", skills:[["R:PASSIVE", "SOS Regen"]]}, {name:"Rainbow Disc", type:"accs", def:0, mdef:0, cost:48000, elem:"LIGHT", effects:[["R_ELEM", "FIRE", 40], ["R_ELEM", "WATER", 40], ["R_ELEM", "AIR", 40], ["R_ELEM", "EARTH", 40], ["R_ELEM", "LIGHT", 40], ["R_ELEM", "DARK", 40], ["R_ELEM", "ETHER", 40], ["R_ELEM", "FIG", 40]], desc:"An ancient, golden plate with a rainbow motif. It offers significant protection against all of the elements.", skills:[["R:PASSIVE", "Rainbow Aura Lv.1"]]}, {name:"Sorcerer's Soul", type:"accs", def:0, mdef:0, cost:50000, effects:[["SPR", 8], ["mp", 100]], desc:"In life, this soul was a great sorcerer who possessed the power to move the stars themselves, yet he was never satisfied because his mortality loomed over him. In seeking immortality, he managed to magically remove his soul and preserve it in this state (it feels sort of like a ball of cotton). He grants a fraction of his spiritual power to whoever equips him.", skills:[["R:PASSIVE", "Locquacity"]]}, {name:"Warlord's Soul", type:"accs", def:0, mdef:0, cost:50000, effects:[["STR", 8], ["hp", 500]], desc:"This is the sword of a mighty warrior, sealed in stasis by a sorcerer who wished to gain strength in battle by absorption rather than by developing his own physical fitness.", skills:[["R:PASSIVE", "Suppleness"]]}, {name:"M Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Mardek", elem:"LIGHT", effects:[["STR", 3], ["SPR", 3], ["R_ELEM", "LIGHT", 30], ["R_ELEM", "DARK", 20]], desc:"A special item that Mardek won from the arena; only he can equip it.", skills:[["MSwd", "Remove Evil"]]}, {name:"Flame Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Donovan", elem:"FIRE", effects:[["SPR", 4], ["VIT", 2], ["R_ELEM", "FIRE", 30], ["R_ELEM", "WATER", 20]], desc:"A special item that Donovan won from the arena; only he can equip it."}, {name:"Feather Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Sharla", elem:"AIR", effects:[["SPR", 3], ["AGL", 3], ["R_ELEM", "AIR", 30], ["R_ELEM", "FIRE", 20]], desc:"A special item that Sharla won from the arena; only she can equip it.", skills:[["R:M_ATK", "M+Stun 20%"]]}, {name:"Dragon Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Sslen'ck", elem:"EARTH", effects:[["STR", 3], ["VIT", 3], ["R_ELEM", "EARTH", 30], ["R_ELEM", "AIR", 20]], desc:"A special item that Sslen'ck won from the arena; only he can equip it."}, {name:"Star Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Solaar", elem:"LIGHT", effects:[["SPR", 4], ["AGL", 2], ["R_ELEM", "LIGHT", 30], ["R_ELEM", "DARK", 20]], desc:"A special item that Solaar won from the arena; only he can equip it.", skills:[["Sol", "Lunatic Howl"]]}, {name:"Song Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Elwyen", elem:"WATER", effects:[["SPR", 3], ["AGL", 3], ["R_ELEM", "WATER", 30], ["R_ELEM", "EARTH", 20]], desc:"A special item that Elwyen won from the arena; only she can equip it."}, {name:"Leaf Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Gloria", elem:"EARTH", effects:[["SPR", 3], ["VIT", 3], ["R_ELEM", "EARTH", 30], ["R_ELEM", "AIR", 20]], desc:"A special item that Gloria won from the arena; only she can equip it.", skills:[["Shm", "Cleanse"]]}, {name:"Spanner Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Meraeador", elem:"FIRE", effects:[["SPR", 3], ["VIT", 3], ["R_ELEM", "FIRE", 30], ["R_ELEM", "WATER", 20]], desc:"A special item that Meraeador won from the arena; only he can equip it."}, {name:"Cog Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Legion", elem:"NONE", effects:[["STR", 4], ["VIT", 2], ["SPR", 2], ["AGL", 2]], desc:"A special item that Legion won from the arena; only s/he can equip it."}, {name:"Bear Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Zach", elem:"AIR", effects:[["STR", 3], ["AGL", 3], ["R_ELEM", "AIR", 30], ["R_ELEM", "FIRE", 20]], desc:"A special item that Zach won from the arena; only he can equip it."}, {name:"YALORT Charm", type:"accs", def:4, mdef:4, cost:5000, only_user:"Vehrn", elem:"LIGHT", effects:[["STR", 3], ["SPR", 3], ["R_ELEM", "LIGHT", 30], ["R_ELEM", "DARK", 20]], desc:"A special item that Vehrn won from the arena; only he can equip it.", skills:[["Holy", "Emerald Shock"]]}, {name:"Thermal Spanner", type:"invn", def:0, mdef:0, cost:1000, effects:[["STR", 1]], elem:"FIRE", desc:"An Invention for use by an Inventor. It's a large spanner, the end of which is kept super-heated by some kind of special gizmobob, or something. It can be used as a fire-elemental physical attack on a single foe, which lowers defence. It also sometimes causes Numbness.", skills:[["Inv", "Thermal Spanner"]]}, {name:"Silver Mirror", type:"invn", def:5, mdef:0, cost:1000, effects:[["VIT", 2]], elem:"LIGHT", desc:"An Invention for use by an Inventor. It's a mirror made from magical crystal, which can be used to give the entire party the Physical Shield status.", skills:[["Inv", "Silver Mirror"]]}, {name:"Golden Mirror", type:"invn", def:0, mdef:5, cost:1000, effects:[["SPR", 2]], elem:"LIGHT", desc:"An Invention for use by an Inventor. It's a mirror made from magical crystal, which can be used to give the entire party the Magical Shield status.", skills:[["Inv", "Golden Mirror"]]}, {name:"Gas-O-Matic", type:"invn", def:0, mdef:0, cost:1000, effects:[["R_STATUS", "PSN", 100]], elem:"EARTH", desc:"An Invention for use by an Inventor. It sprays out a noxious gas which inflicts poison on all foes.", skills:[["Inv", "Gas-O-Matic"]]}, {name:"Flamethrower", type:"invn", def:0, mdef:0, cost:1000, effects:[["R_ELEM", "FIRE", 75]], elem:"FIRE", desc:"An Invention for use by an Inventor. It belches flames like a dragon, inflicting fire damage on all foes.", skills:[["Inv", "Flamethrower"]]}, {name:"Drill-O-Matic", type:"invn", def:2, mdef:0, cost:1000, effects:[["STR", 1]], desc:"An Invention for use by an Inventor. It's a drill mounted on a spear, which can be used to inflict defence-ignoring non-elemental damage on a single foe.", skills:[["Inv", "Drill-O-Matic"]]}, {name:"Sleep-O-Matic", type:"invn", def:0, mdef:2, cost:1000, effects:[["R_STATUS", "SLP", 100]], elem:"AIR", desc:"An Invention for use by an Inventor. It sprays out a thick gas which puts all foes to sleep.", skills:[["Inv", "Sleep-O-Matic"]]}, {name:"Potion Spray", type:"invn", def:0, mdef:0, cost:1000, effects:[], elem:"WATER", desc:"An Invention for use by an Inventor. It's a device that turns potion liquid into vapour, which is then sprayed at the entire party, restoring their HP.", skills:[["Inv", "Potion Spray"]]}, {name:"Potion", type:"item", cost:30, action:["r_HP", 100], pfx:"potion", rgb:[100, 160, 220], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -50]}, desc:"A concoction made from bleach, vinegar, urine, and a pinch of brown sugar. Its aroma alone can melt steel, but fortunately for you, all it does in this game is restore 100HP."}, {name:"BetterPotion", type:"item", cost:120, action:["r_HP", 200], pfx:"potion", rgb:[100, 210, 250], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -100]}, desc:"It's better than a normal potion because it restores 200HP, and has more friends, listens to trendier music, and gets invited to more parties. As well as more sex. Ohyes."}, {name:"MugwortJuice", type:"item", cost:250, action:["r_HP", 500], pfx:"potion2", rgb:[100, 150, 70], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -250]}, desc:"A potion made from the Mugwort herb, which has some sort of healing properties, apparently. It restores 500HP. And causes seizures."}, {name:"FigJuice", type:"item", cost:1000, action:["r_HP", 2000], pfx:"potion3", rgb:[130, 40, 180], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -1000]}, desc:"A thick, gloopy, purple concoction made of figs. No, not THOSE kind of figs! You and your dirty mind! Behave!\nIt restores 2000 HP, and causes acute feelings of distaste towards women. Yes, even for women; the self-loathing makes it worse for them."}, {name:"Chocolate Milk", type:"item", cost:900, action:["milk", 1000, {PSN:1, PAR:1, SLP:1, CNF:1, DRK:1, NUM:1, SIL:1, CRS:1}], pfx:"potion4", rgb:[200, 150, 100], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -500], stfx:{ALL_BAD:100}}, desc:"This 'chocolate milk' restores 1000HP and cures the eight common negative status effects.\nThe name is, of course, a euphemism."}, {name:"God Piss", type:"item", cost:600, action:["fullcure", {hp:600, mp:60}], pfx:"potion5", rgb:[255, 220, 20], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "fullcure", {hp:600, mp:60}]}, desc:"This exciting potion restores 600HP and 60MP. The name is misleading, you'll be glad to know; it's never been anywhere NEAR a REAL god."}, {name:"Manaberry", type:"item", cost:200, action:["r_MP", 50], pfx:"potion_etherberry", rgb:[100, 255, 255], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -25], affectMP:true}, desc:"When consumed, this plump, succulent, juicy, glowing cyan berry instantly restores 50 of your precious Mana Points. Or Magic Points, if you think they're called that. They also cause severe diarrhoea, nausea, hallucinations, and malignant tumours, but that's not relevant."}, {name:"Ether", type:"item", cost:600, action:["r_MP", 100], pfx:"potion_ether1", rgb:[100, 255, 255], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -50], affectMP:true}, desc:"This magical draught restores 100 MP, and is probably made from liquefied fairies, or something. Who knows? But does it MATTER? You'll drink it anyway, even if you just found it lying around in some manky cave."}, {name:"Ether of Queens", type:"item", cost:3000, action:["r_MP", 200], pfx:"potion_ether2", rgb:[100, 255, 255], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -100], affectMP:true}, desc:"A higher quality ether, infused with the blood of a fairy queen or something like that. It restores 200MP."}, {name:"Ether of Kings", type:"item", cost:6000, action:["r_MP", 1000], pfx:"potion_ether3", rgb:[100, 255, 255], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -500], affectMP:true}, desc:"The highest quality ether, infused with the urine of some great King of olden times, or something like that. It restores 1000MP."}, {name:"Antidote", type:"item", cost:20, action:["h_status", "PSN"], pfx:"cleanse", rgb:[200, 255, 200], pspray:{pfx:"sprayfall", DMG:null, stfx:{PSN:100}}, desc:"This tiny vial of green liquid can cure most poisons when imbibed. Unfortunately though, it also tastes like poison itself. Oh well."}, {name:"LiquidLight", type:"item", cost:20, action:["h_status", "DRK"], pfx:"cleanse", rgb:[255, 255, 255], pspray:{pfx:"sprayfall", DMG:null, stfx:{DRK:100}}, desc:"A magical potion which can restore the sight of magically blinded eyes somehow. Maybe it's made from eye juice?!?"}, {name:"LiquidSound", type:"item", cost:20, action:["h_status", "SIL"], pfx:"cleanse", rgb:[100, 0, 155], pspray:{pfx:"sprayfall", DMG:null, stfx:{PSN:SIL}}, desc:"This vial contains a vaguely liquid-like substance that cures silence when drunk. And even when sober! Wow!\nIf you put it to your ear, you can hear a neverending tune."}, {name:"MotionPotion", type:"item", cost:20, action:["h_status", "PAR"], pfx:"cleanse", rgb:[255, 255, 100], pspray:{pfx:"sprayfall", DMG:null, stfx:{PAR:100}}, desc:"This type of potion cures Paralysis. They're also useful for cheating at sport, perhaps?!"}, {name:"HolyWater", type:"item", cost:20, action:["h_status", ["CRS", "ZOM"]], pfx:"cleanse", rgb:[200, 255, 255], pspray:{pfx:"sprayfall", DMG:null, stfx:{CRS:100, ZOM:100}}, desc:"Holy water blessed by YALORT, used to cure curses and zombification. Being blessed by YALORT as it is, it burns the mouth of pretty much anyone when they drink it. It burns skin even if you just rub it on, too."}, {name:"BalloonJuice", type:"item", cost:20, action:["h_status", "NUM"], pfx:"cleanse", rgb:[162, 237, 38], pspray:{pfx:"sprayfall", DMG:null, stfx:{NUM:100}}, desc:"If you drink this bodily juice from a Balloon monster, you'll be cured of numbness. You'll also be really disgusting. Ew."}, {name:"Remedy", type:"item", cost:500, action:["h_status", "ALL_BAD"], pfx:"cleanse", rgb:[255, 200, 50], pspray:{pfx:"sprayfall", DMG:null, stfx:{ALL_BAD:100}}, pfx:"Remedy", desc:"This potent potion can remove any and all status effects. Probably because it's orange. It's not made of oranges though, unfortunately. Does that make you cry? I bet it does."}, {name:"PhoenixDown", type:"item", cost:500, action:["life", 0.5], pfx:"phoenixdown", rgb:[255, 200, 50], desc:"A soft, warm feather from the underbelly of a phoenix. It glows with a pleasant orange light. Pressing it to the forehead of a KO'd ally will cause them to be revived with half HP."}, {name:"PhoenixPinion", type:"item", cost:9999, action:["life", 1], pfx:"phoenixdown", rgb:[255, 233, 128], desc:"A large, warm feather from the wing of a phoenix. It glows with a pleasant orange light. Pressing it to the forehead of a KO'd ally will cause them to be revived with full HP."}, {name:"Elixir", type:"item", cost:9999, action:["fullcure"], pfx:"potion5", rgb:[255, 220, 20], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "fullcure"]}, desc:"An amazing brew made from the tears of a goddess, or something astounding like that. It restores all HP and MP."}, {name:"Mirrilixir", type:"item", cost:5000, action:["spell", {pow:0, SPR:15, elem:"LIGHT", stfx:{PSH:100, MSH:100}, pfx:"shield"}], rgb:[220, 220, 220], pspray:{pfx:"sprayfall", DMG:null, stfx:{PSH:100, MSH:100}, lasts:3, special:null}, desc:"A potent potion with a silvery, reflective texture, like liquid mercury. Drinking it gives the imbiber P.Shield and M.Shield status effects."}, {name:"Speedy Juice", type:"item", cost:2500, action:["spell", {pow:0, SPR:15, elem:"AIR", stfx:{HST:100}, pfx:"haste"}], rgb:[255, 255, 20], pspray:{pfx:"sprayfall", DMG:null, stfx:{HST:100}, special:null}, desc:"A great new energy drink from JuiceCorp! This juice is great for on-the-go go-getters in this fast-paced modern world! It gives you HASTE."}, {name:"Healthy Juice", type:"item", cost:2500, action:["spell", {pow:0, SPR:15, elem:"EARTH", stfx:{RGN:100}, pfx:"regen"}], rgb:[120, 255, 20], pspray:{pfx:"sprayfall", DMG:null, stfx:{RGN:100}, special:null}, desc:"A great new energy drink from JuiceCorp! With this juice, you won't need medical attention ever again! It gives you REGEN."}, {name:"Angry Juice", type:"item", cost:2500, action:["spell", {pow:0, SPR:15, elem:"FIRE", stfx:{BSK:100}, pfx:"chakra"}], rgb:[200, 0, 0], pspray:{pfx:"sprayfall", DMG:null, stfx:{BSK:100}, special:null}, desc:"A great new energy drink from JuiceCorp! This juice is great for letting out all that bottled-up torment! It puts you into BERSERKER RAGE."}, {name:"Alchemist's Fire", type:"item", elem:"FIRE", cost:500, hurtful:true, action:["spell", {pow:50, SPR:20, elem:"FIRE", pfx:"flame1"}], rgb:[255, 200, 0], desc:"A magical potion that explodes if under stress. Throwing it at an enemy will inflict fire damage."}, {name:"Really Cold Water", type:"item", elem:"WATER", cost:500, hurtful:true, action:["spell", {pow:50, SPR:20, elem:"WATER", pfx:"splash"}], rgb:[240, 255, 255], desc:"This water is so frigid that it causes potent water-type damage when it comes into contact with anything."}, {name:"Bottle O' Acid", type:"item", cost:500, hurtful:true, elem:"EARTH", action:["spell", {pow:50, SPR:20, elem:"EARTH", pfx:"acid"}], rgb:[100, 255, 0], desc:"A good ol' fashioned bottle of scalding acid, just like mother used to make. Lob it at summat."}, {name:"Liquid Lightning", type:"item", elem:"AIR", cost:500, hurtful:true, action:["spell", {pow:50, SPR:20, elem:"AIR", pfx:"shock"}], rgb:[255, 255, 0], desc:"Lightning, magically converted to liquid form. It reverts to its true form when under stress, so throw it in something's face for kicks, you sadist. Gods, you deserve to be in prison."}, {name:"Noxious Bomb", type:"item", elem:"DARK", cost:1000, hurtful:true, action:["spell", {pow:0, SPR:20, elem:"DARK", stfx:{DRK:50, CNF:100, SLP:50, PSN:100}, pfx:"smoke_vile"}], rgb:[160, 140, 40], desc:"A bomb filled with powdered chemicals, which explodes on impact. The resulting smoke induces drowsiness, confusion, blindness and poison."}, {name:"Oxyale", type:"item", cost:0, action:["add_status", ["UWB"]], elem:"WATER", rgb:[0, 200, 255], desc:"A potent concoction that allows the drinker to breathe normally underwater for a time."}, {name:"Potted Cactus", type:"item", cost:100, hurtful:true, action:["spell", {pow:50, SPR:20, elem:"NONE", pfx:"needleflare"}], rgb:[0, 255, 0], desc:"A miniature cactus in a tiny little pot. How quaint! Try lobbing it at something for spiny, non-elemental damage."}, {name:"Rainbow Juice", type:"item", cost:10000, action:["spell", {pow:0, SPR:15, elem:"LIGHT", stfx:{FN1:100, WN1:100, AN1:100, EN1:100, LN1:100, DN1:100, SN1:100, MN1:100}, pfx:"rainbow"}], rgb:[180, 255, 20], pspray:{pfx:"sprayfall", DMG:null, stfx:{FN1:100, WN1:100, AN1:100, EN1:100, LN1:100, DN1:100, SN1:100, MN1:100}, special:null}, desc:"A special shaman's brew, which grants protection from a single attack of all eight elements."}, {name:"Power Drink", type:"item", cost:2000, action:["spell", {set_dmg:-1000, SPR:15, elem:"FIRE", stat_mod:{STR:10}, special:{HEALING:1}, pfx:"boost"}], rgb:[255, 100, 0], pspray:{pfx:"sprayfall", DMG:["SPECIAL", "set_dmg", -500], stat_mod:{STR:5}}, desc:"A special shaman's brew, which restores 1000 HP and increases STR by 10 for the duration of the battle."}, {name:"Magic Drink", type:"item", cost:2000, action:["spell", {set_dmg:-200, SPR:15, affectMP:true, elem:"WATER", stat_mod:{SPR:10}, special:{HEALING:1}, pfx:"boost_ETHER"}], rgb:[255, 100, 0], pspray:{pfx:"sprayfall", affectMP:true, DMG:["SPECIAL", "set_dmg", -100], stat_mod:{SPR:5}}, desc:"A special shaman's brew, which restores 200 MP and increases SPR by 10 for the duration of the battle."}, {name:"Zombie Juice", type:"item", cost:5000, elem:"DARK", action:["spell", {pow:0, SPR:15, elem:"DARK", stfx:{ZOM:100}, pfx:"zombify"}], rgb:[0, 100, 80], pspray:{pfx:"sprayfall", DMG:null, stfx:{ZOM:100}, special:null}, desc:"A terrible, cursed potion which makes any flesh it touches necrotic, effectively turning a person into a zombie. Best used against foes, not friends."}, {name:"Ruby", type:"gems", cost:20000, elem:"FIRE", effects:[["STR", 3]], spell:["_ruby", 60], desc:"Rubies are extremely valuable red gemstones, a variety of the mineral corundum. They're mystically associated with strength, passion, power, fire.", skills:[["R:PASSIVE", "STR+2"]]}, {name:"Emerald", type:"gems", cost:16000, elem:"EARTH", effects:[["VIT", 2]], reagent:[["stat", "VIT", 5]], spell:["_emerald", 60], desc:"Emeralds are rather valuable green gemstones, a variety of the mineral beryl. They're mystically associated with vitality, constitution, health, earth.", skills:[["R:PASSIVE", "VIT+2"]]}, {name:"Sapphire", type:"gems", cost:11000, elem:"WATER", effects:[["SPR", 2]], reagent:[["stat", "SPR", 3]], spell:["_sapphire", 60], desc:"Sapphires are corundum gems of any colour other than red, the most popular and powerful colour being deep blue. They're mystically associated with mind and spirit, magic, intellect, water.", skills:[["R:PASSIVE", "SPR+2"]]}, {name:"Moonstone", type:"gems", mdef:1, cost:800, elem:"LIGHT", effects:[["R_ELEM", "LIGHT", 10]], spell:["_moonstone", 50, null], desc:"Moonstones are quite common, so they aren't very valuable. However, they contain the potential of Healing, and the Light element.", skills:[["MSwd", "Regen"], ["R:PASSIVE", "Insomnia"]]}, {name:"Onyx", type:"gems", mdef:1, cost:800, elem:"DARK", effects:[["R_ELEM", "DARK", 10]], spell:["_onyx", 30], desc:"Onyx is a type of black gem imbued with the power of Darkness. They're common, so they aren't worth much. They contain the potential of Destruction.", skills:[["R:P_ATK", "Degeneration 10%"]]}, {name:"BloodOpal", type:"gems", def:1, cost:3000, elem:"DARK", effects:[["R_STATUS", "BLD", 50]], reagent:[["DRAIN"]], spell:["_ruby", 30, null, {DRAIN:1}], desc:"A common but powerful gemstone that's said to be the crystallised blood of a warrior of some ancient race, slain in some horrendous bloody battle in the distant past.", skills:[["R:P_ATK", "Drain HP 10%"]]}, {name:"Turquoise", type:"gems", mdef:5, cost:12000, elem:"ETHER", effects:[["SPR", 2], ["R_ELEM", "ETHER", 10], ["EMPOWER", "ETHER", 10]], reagent:[["stat", "SPR", 4], ["stat", "MDEF", 20]], spell:["_turquoise", 50], desc:"A rather rare gem that's said to be the crystallised soul of some ancient creature that lived before the world began. While this may not be at all true, turquoise gems do contain the Ether element.", skills:[["Sol", "Spirit Graft"], ["R:PASSIVE", "Resist AETHER"]]}, {name:"FireOpal", type:"gems", cost:800, elem:"FIRE", effects:[["R_ELEM", "FIRE", 10], ["EMPOWER", "FIRE", 10]], spell:["_fire", 30], desc:"A variety of opal that glows orange, due to being instilled with raw fire elemental essence. It is warm to the touch.", skills:[["Shm", "Wildfire"], ["R:PASSIVE", "STR+1"]]}, {name:"Aquamarine", type:"gems", cost:800, elem:"WATER", effects:[["R_ELEM", "WATER", 10], ["EMPOWER", "WATER", 10]], spell:["_turquoise", 30], desc:"Being a form of beryl, aquamarine is related to emeralds. However, whereas emeralds contain earth-elemental essence, aquamarine is brimming with the essence of the water element. It feels somehow wet...", skills:[["Shm", "Whirlpool"], ["R:PASSIVE", "SPR+1"]]}, {name:"Jade", type:"gems", cost:800, elem:"EARTH", effects:[["R_ELEM", "EARTH", 10], ["EMPOWER", "EARTH", 10]], spell:["_emerald", 30], desc:"This gem sparkles with a myriad beautiful shades of green.", skills:[["Shm", "Razor Leaf"], ["R:PASSIVE", "VIT+1"]]}, {name:"Topaz", type:"gems", cost:800, elem:"AIR", effects:[["R_ELEM", "AIR", 10], ["EMPOWER", "AIR", 10]], spell:["_topaz", 30], desc:"This gemstone seems to have no weight at all...", skills:[["Aero", "Healing Wind"], ["Shm", "Twister"], ["R:PASSIVE", "AGL+1"]]}, {name:"Amethyst", type:"gems", cost:1400, elem:"AIR", effects:[["R_STATUS", "CNF", 30]], reagent:[["stfx", "CNF", 15]], spell:["_amethyst", 40, {CNF:50}], desc:"A coloured variety of quartz, usually used to adorn jewellery or armour. It's superstitiously believed to protect from intoxication, but this has never been proven in the slightest.", skills:[["R:PASSIVE", "Clarity"]]}, {name:"Viper's Eye", type:"gems", cost:1000, elem:"EARTH", effects:[["R_STATUS", "PSN", 30]], reagent:[["stfx", "PSN", 70]], spell:["_emerald", 40, {PSN:100}], desc:"Viper's Eye is a green gem with a distinct black streak that makes it resemble a staring reptilian eye. It's said to be formed when quartz is infused with magical poison.", skills:[["R:PASSIVE", "Antibody"]]}, {name:"Candriathope", type:"gems", def:1, elem:"FIG", mdef:1, cost:12000, effects:[["STR", 1], ["VIT", 1], ["SPR", 1], ["AGL", 1]], spell:["_amethyst", 70], desc:"Candriathope is basically will in physical form. Whenever sentient beings show great devotion to a cause, or great mental discipline, candriathope crystallises somewhere in far-off mountains.", skills:[["R:PASSIVE", "EXP+20%"]]}, {name:"Wispstone", type:"gems", cost:5000, elem:"ETHER", effects:[["R_ELEM", "ETHER", 10], ["EMPOWER", "ETHER", 10]], spell:["_turquoise", 30], desc:"This sliver of a gem is very light, almost without substance. It seems to be made from crystallised ectoplasm.", skills:[["R:P_ATK", "Quarry: SPIRIT"]]}, {name:"EveningStar", type:"gems", cost:40000, elem:"THAUMA", def:1, mdef:1, effects:[["R_STATUS", "PAR", 10], ["R_STATUS", "SLP", 10], ["R_STATUS", "CNF", 10], ["R_STATUS", "PSN", 10], ["R_STATUS", "DRK", 10], ["R_STATUS", "CRS", 10], ["R_STATUS", "NUM", 10], ["R_STATUS", "SIL", 10]], spell:["_sapphire", 80], desc:"A gem that's said to have come from a rock that fell from the sky.", skills:[["R:PASSIVE", "Double AP"]]}, {name:"SoulStone", type:"gems", cost:30000, elem:"ETHER", effects:[["SPR", 5]], spell:["_turquoise", 100], desc:"A mysterious stone, said to be made of crystallised life energy.", skills:[["Sol", "Astral Form"], ["R:PASSIVE", "MP+20%"]]}, {name:"LeadPipe", type:"misc", cost:25, desc:"A lead pipe that used to be the 'tail' of a fumerat. It reeks of sewage."}, {name:"Fire Essence", type:"misc", elem:"FIRE", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Water Essence", type:"misc", elem:"WATER", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Air Essence", type:"misc", elem:"AIR", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Earth Essence", type:"misc", elem:"EARTH", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Light Essence", type:"misc", elem:"LIGHT", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Dark Essence", type:"misc", elem:"DARK", cost:1000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Aether Essence", type:"misc", elem:"ETHER", cost:2000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Fig Essence", type:"misc", elem:"FIG", cost:2000, desc:"A glowing, syrup-like substance made from partially crystalised elemental energy. It's generally used as a reagent in spells and concoctions."}, {name:"Monster Fang", type:"misc", elem:"DARK", cost:500, desc:"A massive, sharp fang from the mouth of a Monster-type, uh, monster. Useful as a reagent, as it retains some of the Monster's ferocity or something."}, {name:"Fish Scales", type:"misc", elem:"WATER", cost:50, desc:"A handful of iridescent scales from a fish."}, {name:"Goblin Earwax", type:"misc", cost:5, desc:"This is rather unpleasant. Why did you pick it up? Ew."}, {name:"Poison Stinger", type:"misc", elem:"EARTH", cost:50, desc:"A giant insect stinger, still full of deadly poison."}, {name:"Ectoplasm", type:"misc", elem:"ETHER", cost:500, desc:"A strange, formless, cottony substance which ghosts tend to be composed of."}, {name:"Bat Wing", type:"misc", elem:"AIR", cost:50, desc:"A leathery wing from a bat-type monster. Used in potions and things."}, {name:"Sturdy Drill", type:"misc", cost:600, desc:"This shiny metal drill was once stuck to the nose of a Drillhound. It's amazing what can evolve naturally, don't you think?"}, {name:"Mantid Wing", type:"misc", elem:"AIR", cost:600, desc:"A clear, veiny insect wing from a Mantid. It's a lot more durable than it looks."}, {name:"Phage Crystal", type:"misc", elem:"LIGHT", cost:400, desc:"A large, magical crystal from the tail of a phage. The phages use these to protect themselves from magic."}, {name:"Zombie Dust", type:"misc", elem:"DARK", cost:150, desc:"It's uh... zombie dust. From a zombie. Y'know... zombie dust."}, {name:"Old Bone", type:"misc", elem:"DARK", cost:100, desc:"An old bone from some kind of creature that presumably had a skeleton."}, {name:"Human Skull", type:"misc", elem:"DARK", cost:300, desc:"'Alas, poor Yorick!' It feels rather morbid to hold one of these things."}, {name:"Slime Jam", type:"misc", elem:"EARTH", cost:150, desc:"A thick, viscous ooze, just like mama used to make!"}, {name:"Lizard Tail", type:"misc", elem:"EARTH", cost:220, desc:"The severed tail of a Lizard-type monster. Lizards can regenerate these things if they're cut off, but it's unlikely that the one that this tail is from is in any state to regenerate anything."}, {name:"Big Creepy Eye", type:"misc", elem:"DARK", cost:400, desc:"A large, squishy eyeball from an Eyestalk monster. It seems to be constantly watching you..."}, {name:"Pixie Dust", type:"misc", elem:"EARTH", cost:1200, desc:"A rare type of magical dust which pixies naturally produce. It doesn't allow you to fly, unfortunately, but it is very useful in potions!"}, {name:"Acid Seed", type:"misc", elem:"EARTH", cost:80, desc:"A large pod from some kind of plantoid monster, full of a sticky, poisonous, acidic liquid."}, {name:"Crystal Tears", type:"misc", elem:"WATER", cost:600, desc:"These monster tears are infused with elemental energy."}, {name:"Golden Conch", type:"misc", elem:"WATER", cost:10000, desc:"A large, iridescently golden shell, from some kind of water creature, probably. They sell for a high price."}, {name:"Griffin Feather", type:"misc", elem:"AIR", cost:2600, desc:"A large pinion from a Griffin-type monster. They're highly sought after for their magical properties."}, {name:"Leaf of Life", type:"misc", elem:"EARTH", cost:300, desc:"It's some kind of giant leaf, possessing the essence of lifeforce."}, {name:"M Runestone", type:"misc", elem:"WATER", cost:2000, desc:"An ordinary brown rock, with a magical glowing rune carved into it. It feels like silk, not stone... It contains magical potential."}, {name:"P Runestone", type:"misc", elem:"FIRE", cost:2000, desc:"An ordinary brown rock, with a magical glowing rune carved into it. It feels far heavier than it should, and you get the impression that it could explode at any time... It contains physical potential."}, {name:"O Runestone", type:"misc", elem:"DIVINE", cost:60000, desc:"A brown rock, with the symbol for 'god' carved into it. It contains immense power, and was likely carved personally by a deity."}, {name:"Nightcap", type:"misc", elem:"EARTH", cost:80, desc:"A type of mushroom known for its sleep-inducing spores."}, {name:"Purple Conch", type:"misc", elem:"WATER", cost:4000, desc:"This shell is from the same type of creature that possesses the popular Golden Conch, but a much younger specimen. As the creature grows older, its shell changes from purple to gold."}, {name:"Drak Fang", type:"misc", elem:"FIRE", cost:1200, desc:"Though this fang is tiny, it comes from a drak, the smallest variety of dragon, and as such contains much power."}, {name:"Dead Hand", type:"misc", elem:"DARK", cost:300, desc:"It's, uh, a zombie's hand... What would you want THAT for? Practical jokes, probably. You sicken me."}, {name:"Mugwort", type:"misc", elem:"EARTH", cost:600, desc:"A type of herb which is often used in shamanic brews and potions. It has curative properties."}, {name:"Bitterleaf", type:"misc", elem:"EARTH", cost:600, desc:"A stinking, bitter herb, often used in poisons and acids."}, {name:"Silver Ore", type:"misc", elem:"LIGHT", cost:9000, desc:"A lump of rock, containing silver. The silver would have to be extracted and refined to be useful, but even so, ore like this is worth quite a bit."}, {name:"Gold Ore", type:"misc", elem:"LIGHT", cost:20000, desc:"A lump of rock, containing gold. The gold would have to be extracted and refined to be useful, but even so, ore like this is worth quite a lot."}, {name:"Mythril Ore", type:"misc", elem:"LIGHT", cost:20000, desc:"A lump of rock, containing the extremely rare mineral called mythril. The mythril would have to be extracted and refined to be useful, but even so, ore like this is worth quite a lot."}, {name:"Warp Stone", type:"misc", cost:100, desc:"A type of magical stone that can somehow allow a person to travel as if casting the Warp spell. You can't use it, though. Why? Because. Shut up."}, {name:"Fishin' Stick", type:"rods", cost:50, pull:1, pow:1, desc:"It's the simplest rod available; basically just a long stick found on the ground with some string attached to it. Something a respectable Mighty Hero would use in front of people, surely."}, {name:"Worm", type:"bait", cost:1, desc:"An earthworm, which you'll surely end up cruelly sticking a hook through and then lowering it into water to be drowned and/or eaten. As if impaling wasn't enough! Tsk, you humans. I'm glad I'm just a box with text in it. Life is so much simpler. Not that I know what it's like to be a human, so I can hardly compare... Oh, and this item is bait. Used fer fishin'."}, {name:"Wetfish", type:"fish", cost:10, desc:"These fish tend to dwell in water. Funny, that, isn't it? They're really common and nigh worthless, but a staple of most commoners' diets."}, {name:"Sheet Music I", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Spirit Song', which boosts the magic power of all allies while it plays.", skills:[["Song", "Spirit Song"]]}, {name:"Sheet Music II", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Vigorous March', which boosts the physical power of all allies while it plays.", skills:[["Song", "Vigorous March"]]}, {name:"Sheet Music III", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Solid Sonata', which boosts the physical defence of all allies while it plays.", skills:[["Song", "Solid Sonata"]]}, {name:"Sheet Music IV", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Runic Rhapsody', which boosts the magic defence of all allies while it plays.", skills:[["Song", "Runic Rhapsody"]]}, {name:"Sheet Music V", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Dolorous Dirge', which gradually damages all enemies in battle over time.", skills:[["Song", "Dolorous Dirge"]]}, {name:"Sheet Music VI", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Requiem', which deals heavy damage to undead opponents.", skills:[["Song", "Requiem"]]}, {name:"Sheet Music VII", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Ballad of Life', which heals allies when they take their turns.", skills:[["Song", "Ballad of Life"]]}, {name:"Sheet Music VIII", type:"song", cost:10000, desc:"Sheet music for a piece titled 'Ballad of Balance', which splits damage across the whole party whenever anyone is hit.", skills:[["Song", "Ballad of Balance"]]}, {name:"SewerKey", type:"plot", cost:-1, desc:"A large, rusty key. It opens a door in the sewers."}, {name:"CatacombsKey", type:"plot", cost:-1, desc:"A dark, heavy key shaped like a skull. It opens a door in the catacombs."}, {name:"Trilobite Key I", type:"plot", cost:1000, desc:"A key shaped like... a trilobite?"}, {name:"Trilobite Key II", type:"plot", cost:1000, desc:"A key shaped like... a trilobite?"}, {name:"Trilobite Key III", type:"plot", cost:1000, desc:"A key shaped like... a trilobite?"}, {name:"Trilobite Key IV", type:"plot", cost:1000, desc:"A key shaped like... a trilobite?"}, {name:"Sun Key", type:"plot", cost:-1, desc:"An extravagantly ornate golden key, with a sun motif. It's clearly for use on a door in the Sun Temple."}, {name:"Necromantic Tome", type:"plot", elem:"DARK", cost:-1, desc:"An ancient book full of Forbidden Black Magic, which Meraeador wants to use to bind a soul to his Metal Man for the sake of Science."}, {name:"Fire Crystal of Belfan", type:"plot", elem:"FIRE", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all heat and fire on Belfan, so handle it with care!"}, {name:"Water Crystal of Belfan", type:"plot", elem:"WATER", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all liquids on Belfan, so handle it with care!"}, {name:"Earth Crystal of Belfan", type:"plot", elem:"EARTH", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all plant and animal life on Belfan, so handle it with care!"}, {name:"Air Crystal of Belfan", type:"plot", elem:"AIR", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all gases on Belfan, so handle it with care!"}, {name:"Light Crystal of Belfan", type:"plot", elem:"LIGHT", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all justice and kindess on Belfan."}, {name:"Dark Crystal of Belfan", type:"plot", elem:"DARK", cost:-1, desc:"An Artefact of the Gods. It is essentially crystalised elemental energy, and one of the planet's 'organs', of a sort. This particular crystal is the source of all malice and greed on Belfan."}, {name:"Serpent Crest", type:"plot", elem:"WATER", cost:-1, desc:"This regal headcrest is from some kind of immense sea serpent. They're quite rare, and contain a lot of magical energy."}, {name:"Crystal Rose", type:"plot", elem:"ETHER", cost:-1, desc:"A delicate, elaborate crystal formation that resembles the flower of a rose. Like most things in this world, it contains quite a bit of magical power."}, {name:"Wretched Skull", type:"plot", elem:"DARK", cost:-1, desc:"The skull of a powerful undead spellcaster. It still retains a lot of the magical power that he kept in his head in life and in undeath, and it reeks of evil."}, {name:"Silver Cord", type:"plot", elem:"ETHER", cost:-1, desc:"An aethereal silver cord that can be usually seen linking an astrally wandering spirit to its body. Severing it causes that person to be unable to return to their body; that is, they die."}, {name:"Monastery Stone", type:"plot", elem:"FIG", cost:-1, desc:"It's a small rock... small enough to fit comfortably in your hand. It's actually a gem, covered in hardened earth from when it fell from the sky."}, {name:"Runestone Fragment", type:"plot", elem:"EARTH", cost:-1, desc:"It's just one of your everyday Runestone Fragments."}, {name:"Warding Stone", type:"plot", elem:"LIGHT", cost:-1, desc:"This spare Warding Stone is like a smooth, pearly pebble that fits snugly into the palm of your hand. Its magic is only activated when it's on its corresponding pedestal."}, {name:"Gizmometer", type:"plot", cost:-1, desc:"It's some kind of gizmobob or doodah; you aren't sure which."}, {name:"Warport Ticket", type:"plot", cost:100, desc:"A ticket for the Warport portal, to travel across the continents. Good for only one use, but it is valid for the whole party and not just an individual."}, {name:"Gold Warport Pass", type:"plot", cost:-1, desc:"A special golden-coloured Warport Pass, which you earned due to your Frequent Warping. It allows you to pass through without the bother of buying a ticket or talking to security."}, {name:"Bandit Key", type:"plot", cost:-1, desc:"A key dropped by a bandit. What could it be for?"}, {name:"Eldritch Key", type:"plot", elem:"DARK", cost:8000, desc:"A strange, pitch-black slither of a thing that seems to be a key. It's frigidly cold to the touch, and seems to be eerily iridescent."}, {name:"Water Temple Key", type:"plot", elem:"WATER", cost:-1, desc:"A little key accidentally dropped by the Water Guardian during the battle against her. It doesn't take a genius to work out that it opens a door in the Water Temple."}, {name:"Talisman of ONEIROS", type:"plot", elem:"ETHER", cost:-1, desc:"A little idol of ONEIROS, the Dreamweaver, which is enchanted to allow even the uninitiated to walk in the Dreamrealm. With it in your possession, any of your allies can use Dream Circles."}, {name:"Miasmal Chalice (DARK)", type:"plot", elem:"DARK", cost:-1, desc:"A rather morbid ancient artefact, full to the brim with the essence of monsters. It exudes a sense of dread."}, {name:"Miasmal Chalice (FIRE)", type:"plot", elem:"FIRE", cost:-1, desc:"A rather morbid ancient artefact, full to the brim with the essence of monsters. It exudes a sense of fury."}, {name:"Miasmal Chalice (WATER)", type:"plot", elem:"WATER", cost:-1, desc:"A rather morbid ancient artefact, full to the brim with the essence of monsters. It exudes a sense of serenity."}, {name:"Miasmal Chalice (EARTH)", type:"plot", elem:"EARTH", cost:-1, desc:"A rather morbid ancient artefact, full to the brim with the essence of monsters. It exudes a sense of wisdom."}, {name:"Sun Idol", type:"plot", elem:"LIGHT", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt dates back from the Sun Temple's construction. The style of SOLAK idols has changed since then, making this quite a valuable relic. A collector would surely be interested in it."}, {name:"Reptoid Spearhead", type:"plot", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's primitive and made of flint, dating back to when the reptoids were still barbaric savages, living like hunter-gatherers. A collector would pay a high price for it."}, {name:"Talisman of SHUMBRA", type:"plot", elem:"DARK", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's a HOLY TALISMAN, formed personally by the deity SHUMBRA, The Dark God, when he made the Dark Temple. Very valuable, certainly!"}, {name:"Talisman of CRYSOOSUNA", type:"plot", elem:"WATER", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's a HOLY TALISMAN, formed personally by the deity CRYSOOSUNA, The Graceful Mermaid, when she made the Water Temple. Very valuable, certainly!"}, {name:"Talisman of VOLKOS", type:"plot", elem:"FIRE", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's a HOLY TALISMAN, formed personally by the deity VOLKOS, The Everburning Flame, when he made the Fire Temple. Very valuable, certainly!"}, {name:"Talisman of KROGHMM", type:"plot", elem:"EARTH", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's a HOLY TALISMAN, formed personally by the deity KROGHMM, The Stalwart Titan, when he made the Earth Temple. Very valuable, certainly!"}, {name:"Ancient Pot", type:"plot", cost:1000, desc:"An ANCIENT ARTEFACT.\nIt's a rather nondescript clay pot, but due to its age and the fact that it's from some likely long-dead civilisation, a collector would probably have great interest in it."}, {name:"Tiki Mask", type:"plot", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt appears to be a sort of stone mask, probably worn by some ancient long-gone tribe. It's likely worth quite a bit to a collector of such things."}, {name:"Droma Arm", type:"plot", cost:-1, desc:"An arm from one of Moric's Droma, found at the bottom of Lake Qur. It surely fell into the lake when the battleship dissolved. Perhaps someone somewhere would find it interesting?"}, {name:"Ancient Runestone", type:"plot", cost:-1, desc:"An ANCIENT ARTEFACT.\nIt's a particularly rare example of an etched runestone. It's lost all of its magical power, but it might be of interest to a collector of ancient relics."}, {name:"Sand Fruit", type:"plot", cost:-1, desc:"A type of fruit that grows on the 'trees' in the sandflow caves. It takes years for a single fruit to ripen, and they only stay ripe for a few days, during which time they glow with a pleasant pink aura."}, {name:"Special Ointment", type:"plot", cost:-1, desc:"A type of ointment made from Sand Fruit. It can be used to cure or relieve many embarrassing ailments."}, {name:"Hair Tonic", type:"plot", cost:-1, desc:"This hair tonic is designed to make already long hair shiny any beautiful; it can do nothing about growing new hair!"}, {name:"Romance Novel", type:"plot", cost:-1, desc:"A thin tome full of rather sordid fantasies, written in rather amateur flowery prose. Trite. Still, some people like reading these sorts of things, it seems."}, {name:"Scrumptious Cake", type:"plot", cost:-1, desc:"A lovely chocolate cake, whatever one of those is. It looks very delicious... probably."}, {name:"Little Wooden Key", type:"plot", cost:-1, desc:"A small key, made of wood. Its design is crude, and it looks like it's seen many years."}, {name:"Red Dragon Scales", type:"plot", cost:-1, elem:"FIRE", desc:"The scales from a Red Dragon. They're extremely durable - harder than many metals - and are great to use as a material when forging weapons or armour."}, {name:"Moric's Soul Jewel", type:"plot", cost:-1, elem:"EARTH", desc:"The Soul Seal spell crystallises a soul, converting it from an aethereal form into a physical one, which resembles an elegant jewel. This one contains the soul of Moric, the Necromancer of the Governance de Magi, who Rohoph sealed after his defeat in Chapter 2!"}, {name:"Qualna's Soul Jewel", type:"plot", cost:-1, elem:"ETHER", desc:"The Soul Seal spell crystallises a soul, converting it from an aethereal form into a physical one, which resembles an elegant jewel. This one contains the soul of Qualna, the Diviner of the Governance de Magi, who Rohoph sealed after his defeat in Chapter 3!"}, {name:"Gold", type:"gold", cost:1, desc:"The Generic Gold Coin seems to be some sort of magic currency that is accepted everywhere. How useful."}, {name:"none", type:"none", atk:0, pow:0, def:0, cost:0, desc:"-"}];
var TID = 0;
var LastType = ["wepn", "SWORD"];
var i = 0;
while (i < ItemList.length) {
if (ItemList[i].type != LastType[0]) {
LastType[0] = ItemList[i].type;
TID = 0;
}
if ((ItemList[i].type == "wepn") && (ItemList[i].wpnType != LastType[1])) {
LastType[1] = ItemList[i].wpnType;
TID = 0;
}
if ((ItemList[i].type == "armr") && (ItemList[i].amrType != LastType[1])) {
LastType[1] = ItemList[i].amrType;
TID = 0;
}
ItemList[i].ID = TID;
ItemList[i].index = i;
TID++;
i++;
}
ITEMSHEET_A = flash.display.BitmapData.loadBitmap("itemsheet_armour");
ITEMSHEET_W = flash.display.BitmapData.loadBitmap("itemsheet_weapons");
ITEMSHEET_M = flash.display.BitmapData.loadBitmap("itemsheet_misc");
ITEMSHEET_F = flash.display.BitmapData.loadBitmap("itemsheet_fishin");
wpnIDs = {SWORD:0, SPEAR:1, GREATSWORD:2, GREATAXE:3, DAGGER:4, DOUBLESWORD:5, GREATMACE:6, GUN:7, ROD:8, STAFF:9, WALKINGSTICK:10, CLAW:11, HARP:12, SCYTHE:13, ROBOTARM:14};
sheetIDs = {wepn:["W", 0], shld:["A", 0], helm:["A", 8], armr:["A", 1], accs:["M", 0], item:["M", 2], plot:["M", 4], gems:["M", 3], misc:["M", 5], song:["M", 6], fish:["F", 2], rods:["F", 0], bait:["F", 1], invn:["M", 1]};
STACKABLE_TYPES = {item:1, gems:1, bait:1, fish:1, gold:1, misc:1};
_global.INVENTORY_LENGTH = 64;
WeaponSFXType = {SWORD:"MARTIAL", DAGGER:"MARTIAL", AXE:"MARTIAL", GREATSWORD:"2HSWORDS", SPEAR:"POLEARMS", STAFF:"STAVES", WAND:"MARTIAL", GUN:"GUNS", BLASTER:"GUNS", CLAW:"POLEARMS"};
MIX_INVENTIONS = [{name:"Silver Mirror", parts:[["Phage Crystal", 2], ["Moonstone", 4], ["Light Essence", 1], ["Fish Scales", 5], ["Silver Ore", 1]]}, {name:"Golden Mirror", parts:[["Phage Crystal", 2], ["Candriathope", 1], ["Light Essence", 1], ["Golden Conch", 1], ["Gold Ore", 1]]}, {name:"Gas-O-Matic", parts:[["LeadPipe", 3], ["Acid Seed", 2], ["Viper's Eye", 1], ["Poison Stinger", 5]]}, {name:"Flamethrower", parts:[["Fire Essence", 5], ["LeadPipe", 3], ["FireOpal", 3], ["Drak Fang", 1]]}, {name:"Drill-O-Matic", parts:[["Sturdy Drill", 1], ["LeadPipe", 2], ["Monster Fang", 2], ["P Runestone", 1], ["Golden Conch", 1]]}, {name:"Sleep-O-Matic", parts:[["LeadPipe", 3], ["Nightcap", 1], ["Pixie Dust", 1]]}, {name:"Potion Spray", parts:[["LeadPipe", 3], ["Mugwort", 1], ["Air Essence", 1], ["Leaf of Life", 1], ["BetterPotion", 30]]}, {name:"Clasping Claws", parts:[["Bronze Sword", 1], ["Bronze Sword", 1], ["Copper Breastplate", 1]]}, {name:"Hammerfist", parts:[["Emerald", 1], ["Fire Essence", 5], ["Earth Essence", 2], ["P Runestone", 1]]}, {name:"Buzzsaw Arm", parts:[["Gold Ore", 1], ["Silver Ore", 1], ["Monster Fang", 8], ["EveningStar", 1]]}, {name:"Copper Plating", parts:[["Copper Breastplate", 1], ["Breastplate", 1]]}, {name:"Steel Plating", parts:[["Copper Plating", 1], ["Iron Armour", 1], ["SilverRing", 1], ["Golden Conch", 3]]}, {name:"Titan Plating", parts:[["Steel Plating", 1], ["Gold Ore", 1], ["Silver Ore", 1], ["Candriathope", 1]]}];
MIX_BREWS = [{name:"BetterPotion", parts:[["Potion", 2]]}, {name:"MugwortJuice", amount:10, parts:[["Mugwort", 1], ["Water Essence", 1]]}, {name:"FigJuice", amount:10, parts:[["Fig Essence", 1], ["Water Essence", 1], ["Light Essence", 1]]}, {name:"Remedy", amount:5, parts:[["Big Creepy Eye", 1], ["Leaf of Life", 1], ["Purple Conch", 1]]}, {name:"Ether", amount:3, parts:[["Manaberry", 1], ["Ectoplasm", 1]]}, {name:"Elixir", parts:[["FigJuice", 1], ["Ether", 1], ["Crystal Tears", 1], ["Light Essence", 1]]}, {name:"Speedy Juice", parts:[["Griffin Feather", 1], ["Mantid Wing", 3]]}, {name:"Healthy Juice", parts:[["Lizard Tail", 1], ["Human Skull", 1], ["Slime Jam", 1]]}, {name:"Angry Juice", parts:[["Old Bone", 1], ["Goblin Earwax", 1], ["Bitterleaf", 1]]}, {name:"Mirrilixir", parts:[["Phage Crystal", 1], ["Big Creepy Eye", 1], ["Crystal Tears", 1]]}, {name:"Noxious Bomb", parts:[["Zombie Dust", 1], ["Bat Wing", 1], ["Acid Seed", 1]]}, {name:"Power Drink", parts:[["Monster Fang", 1], ["Mantid Wing", 1]]}, {name:"Magic Drink", parts:[["Human Skull", 1], ["Crystal Tears", 1]]}, {name:"Rainbow Juice", parts:[["Fire Essence", 1], ["Water Essence", 1], ["Air Essence", 1], ["Earth Essence", 1], ["Light Essence", 1]]}, {name:"Zombie Juice", parts:[["Zombie Dust", 1], ["Dead Hand", 1], ["Old Bone", 1], ["Human Skull", 1], ["Bat Wing", 1]]}];
MIX_BLACKSMITH = [{name:"Blood Sword", parts:[["Shadowblade", 1], ["BloodOpal", 1]]}, {name:"Stingstick", parts:[["Poison Stinger", 1], ["Goblin Earwax", 1], ["Iron Spear", 1]]}, {name:"Silver Axe", parts:[["Silver Ore", 1], ["Monster Fang", 1], ["HolyWater", 10]]}, {name:"Eagle Wings", parts:[["PhoenixPinion", 2], ["Gold Ore", 1], ["Air Essence", 1], ["Griffin Feather", 1]]}, {name:"Steel Stole", parts:[["Silver Ore", 1], ["Ectoplasm", 3], ["P Runestone", 1], ["Slime Jam", 3]]}, {name:"Regal Crown", parts:[["Gold Ore", 1], ["Candriathope", 1]]}, {name:"Skull Helm", parts:[["Human Skull", 1], ["Dark Essence", 1], ["Old Bone", 2], ["Onyx", 1]]}, {name:"Golden M Helm", parts:[["Gold Ore", 1], ["Light Essence", 1], ["Candriathope", 2], ["Golden Conch", 1]]}, {name:"Astral Wanderer's Garb", parts:[["Ectoplasm", 2], ["Aether Essence", 1], ["Phage Crystal", 1], ["Human Skull", 2]]}, {name:"Mythril Platemail", parts:[["Mythril Ore", 1], ["Purple Conch", 1], ["Mirrilixir", 3], ["EveningStar", 1]]}, {name:"Rune Shield +", parts:[["Rune Shield", 1], ["M Runestone", 1]]}, {name:"Glyph Shield", parts:[["Wooden Shield", 1], ["FireOpal", 1], ["Aquamarine", 1], ["Topaz", 1], ["Jade", 1]]}, {name:"Shield of Light", parts:[["Kite Shield", 1], ["Light Essence", 1]]}, {name:"Shield of Darkness", parts:[["Kite Shield", 1], ["Dark Essence", 1]]}];
_root.attachMovie("menu", "menu", 1500);
menu._visible = false;
menu.gotoAndStop(1);
menu.mainpanel.gotoAndStop("none");
menu._alpha = 0;
_root.attachMovie("ESC_thing", "ESC_thing", 150052);
ESC_thing._visible = false;
ESC_thing.gotoAndStop("empty");
_root.attachMovie("ANNOUNCEMENT", "ANNOUNCEMENT", 20074);
ANNOUNCEMENT.gotoAndStop("empty");
ANNOUNCEMENT._alpha = 0;
ANNOUNCEMENT.Announce = function (f) {
this.gotoAndStop(f);
this._alpha = 0;
this.count = 0;
this.onEnterFrame = function () {
if (this.count < 10) {
this._alpha = this._alpha + 10;
} else if (this.count > 60) {
this._alpha = this._alpha - 10;
} else {
this._alpha = 100;
}
this.count++;
if (this._alpha <= 0) {
this.onEnterFrame = null;
this.gotoAndStop("empty");
}
};
};
MENU_OPTIONS = ["Party", "Skills", "Inventory", "Map", "Quests", "Plot Items", "Status", "Medals", "Encyclopaedia", "Options", "Help"];
MENU_XVIS = [0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0];
if (THIS_CHAPTER < 3) {
MENU_OPTIONS.splice(7, 1);
MENU_XVIS.splice(7, 1);
}
MENU_SEL = 1;
this["Menu_ShowPlot Items"] = function () {
menu.bottom.gotoAndStop(2);
for (var _local8 in menu.mainpanel.ISpace) {
menu.mainpanel.ISpace[_local8].removeMovieClip();
}
var _local7 = {};
var _local3 = 0;
while (_local3 < GameData.plotItems.length) {
_local7[GameData.plotItems[_local3]] = true;
_local3++;
}
var _local6 = -1;
_local3 = 0;
while (_local3 < ItemList.length) {
if (ItemList[_local3].type != "plot") {
} else if (!_local7[ItemList[_local3].name]) {
} else {
_local6++;
var _local4 = menu.mainpanel.ISpace.createEmptyMovieClip("I" + _local3, 100 + _local3);
_local4._x = 40 * (_local6 % 12);
_local4._y = 40 * Math.floor(_local6 / 12);
_local4.ITEM = ItemList[_local3].name;
_local4.AMOUNT = 1;
AddItemImg(ItemList[_local3].name, _local4, 32, 0);
_local4.onRollOver = function () {
var _local3 = _root.GetItemInfo(this.ITEM);
_root.menu.mainpanel.ItemName = _local3.name;
_root.menu.mainpanel.ItemDesc = _local3.desc;
_root.menu.mainpanel.elemstrip._visible = _local3.elem != null;
_root.menu.mainpanel.elemstrip.gotoAndStop(_local3.elem);
};
_local4.onRollOut = function () {
_root.menu.mainpanel.ItemName = "";
_root.menu.mainpanel.ItemDesc = "";
_root.menu.mainpanel.elemstrip._visible = false;
};
}
_local3++;
}
menu.mainpanel.ItemName = "";
menu.mainpanel.ItemDesc = "";
menu.mainpanel.elemstrip._visible = false;
};
HELP_PAGES = 25;
HELP_FIRST_PAGE = 5;
_root.attachMovie("SavePopup", "SavePopup", 1501);
SavePopup._visible = false;
SavePopup.gotoAndStop("none");
SavePopup._alpha = 0;
SavePopup.CLICKCATCHER.onPress = function () {
return(undefined);
};
SavePopup.FadeIn = function (MODE) {
if (_root.SAVEMENUPAGE == null) {
_root.SAVEMENUPAGE = ((MODE == "LOAD") ? -1 : 0);
}
if ((MODE == "SAVE") && (_root.SAVEMENUPAGE == -1)) {
var _local7 = LATEST_LOADED_GAME;
if (_local7 == null) {
_root.SAVEMENUPAGE = (root.SEL_SAVE_SLOT = 0);
} else {
_root.SAVEMENUPAGE = Math.floor(_local7 / 7);
_root.SEL_SAVE_SLOT = _local7 % 7;
}
}
_quality = "MEDIUM";
this.TITLE = ((MODE == "LOAD") ? "Load Game" : "Save Game");
_root.BlurredSnapshot();
this._alpha = 0;
this.gotoAndStop(((MODE == "SHOP") ? "transaction" : (((MODE == "STORAGE") ? "Storage" : (((MODE == "SWITCH") ? "PartySwitch" : (((MODE == "ITEM") ? "GetItem" : 1))))))));
this._visible = true;
if (MODE == "ITEM") {
this.RefreshItemGetThing();
} else if (MODE == "SWITCH") {
this.RefreshPartySwitch();
} else if (MODE == "STORAGE") {
this.RefreshStorage();
} else if (MODE == "SHOP") {
this.RefreshTransaction();
} else {
this.Refresh();
}
_root.playSFX("menuBlip4");
this.MODE = MODE;
this.SL_MODE = ((MODE == "LOAD") ? "Load" : "Save");
this.onEnterFrame = function () {
this._alpha = this._alpha + 20;
if (this._alpha >= 100) {
this._alpha = 100;
this.onEnterFrame = function () {
if (this.MODE == "SHOP") {
if ((((((!Key.isDown(38)) && (!Key.isDown(40))) && (!Key.isDown(37))) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) && (!Key.isDown(KEYS.Z))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if (this.arrowR._visible) {
var _local4 = 99;
if (this.TRANSACTION.type == "BUY") {
if (this.TRANSACTION.slot.AMOUNT != -1) {
_local4 = this.TRANSACTION.slot.AMOUNT;
}
var _local7 = Math.floor(GameData.money / _root.GetItemInfo(this.TRANSACTION.ITEM).cost);
if (_local7 < _local4) {
_local4 = _local7;
}
} else {
_local4 = this.TRANSACTION.max - ((this.TRANSACTION.slot.AMOUNT == -1) ? 0 : (int(this.TRANSACTION.slot.AMOUNT)));
}
if (Key.isDown(37)) {
if (this.ItemAmount > 1) {
this.ItemAmount--;
}
this.KeyDown = true;
} else if (Key.isDown(39)) {
if (this.ItemAmount < _local4) {
this.ItemAmount++;
}
this.KeyDown = true;
} else if (Key.isDown(40)) {
this.ItemAmount = this.ItemAmount - 10;
if (this.ItemAmount < 1) {
this.ItemAmount = 1;
}
this.KeyDown = true;
} else if (Key.isDown(38)) {
this.ItemAmount = this.ItemAmount + 10;
if (this.ItemAmount > _local4) {
this.ItemAmount = _local4;
}
this.KeyDown = true;
}
if (this.KeyDown) {
this.RefreshTransaction(this.ItemAmount);
return(undefined);
}
}
if (Key.isDown(KEYS.X)) {
this.KeyDown = true;
var _local3 = this.TRANSACTION;
if ((_local3.type == "BUY") && (this.PRICETAG > GameData.money)) {
_root.playSFX("error");
return(undefined);
}
var _local9 = _root.GetItemInfo(_local3.ITEM);
GameData.money = GameData.money + (this.PRICETAG * ((_local3.type == "BUY") ? -1 : 1));
menu.mainpanel.MONEY = _root.NumberFormat(GameData.money);
_root.playSFX("buy");
if (_local3.type == "BUY") {
if (_local9.type == "plot") {
this.KeyDown = true;
_root.AcquireItem({item:_local3.ITEM});
_local3.slot.ITEM = (_local3.slot.AMOUNT = (GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID] = null));
_local3.slot.DrawItem();
return(undefined);
}
_root.DragItem(_local3.ITEM, this.ItemAmount, true);
if (GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID][1] != -1) {
GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID][1] = GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID][1] - this.ItemAmount;
if (GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID][1] == 0) {
_local3.slot.ITEM = (_local3.slot.AMOUNT = (GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID] = null));
}
}
} else {
_root.RecordStat("GOLD_EARNED", this.PRICETAG);
GameData.SHOPS[_root.CURRENT_SHOP][_local3.slot.NID] = [(_local3.slot.ITEM = _local3.ITEM), ((_local3.slot.AMOUNT == -1) ? -1 : (int(_local3.slot.AMOUNT) + this.ItemAmount))];
if ((_local3.max - this.ItemAmount) < 1) {
_root.DragItem((_root.HELD = null), null, true);
} else {
_root.DragItem(_local3.ITEM, _local3.max - this.ItemAmount, true);
}
}
_local3.slot.DrawItem();
_root.Menu_ShowInventory();
this.FadeOut();
_root.cont.PC.XDOWN = true;
} else if (Key.isDown(KEYS.Z)) {
this.FadeOut();
this.KeyDown = true;
_root.cont.PC.ZDOWN = true;
_root.Menu_ShowInventory();
}
}
} else if (this.MODE == "ITEM") {
if ((((((!Key.isDown(38)) && (!Key.isDown(40))) && (!Key.isDown(37))) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) && (!Key.isDown(KEYS.Z))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if ((_root.GetItemInfo(this.ITEM.item).type != "plot") && (this.ITEM.item != "Dreamstone")) {
if (Key.isDown(37)) {
this["P" + this.SEL_PC].gotoAndStop(3);
do {
this.SEL_PC--;
if (this.SEL_PC <= 0) {
this.SEL_PC = 4;
}
} while (_root.PCstats[this.SEL_PC - 1] == null);
this["P" + this.SEL_PC].gotoAndStop(2);
this.KeyDown = true;
playSFX("menuBlip1");
} else if (Key.isDown(39)) {
this["P" + this.SEL_PC].gotoAndStop(3);
do {
this.SEL_PC++;
if (this.SEL_PC > 4) {
this.SEL_PC = 1;
}
} while (_root.PCstats[this.SEL_PC - 1] == null);
this["P" + this.SEL_PC].gotoAndStop(2);
this.KeyDown = true;
playSFX("menuBlip1");
}
}
if (Key.isDown(KEYS.X)) {
if ((_root.GetItemInfo(this.ITEM.item).type == "plot") || (this.ITEM.item == "Dreamstone")) {
this.FadeOut();
} else {
this[this.BUTTON_SEL + "Button"].Action();
}
this.KeyDown = true;
}
if (Key.isDown(KEYS.Z)) {
this.chest.Close();
this.KeyDown = true;
this.FadeOut();
}
}
} else if (this.MODE == "SWITCH") {
if ((!Key.isDown(KEYS.X)) && (!Key.isDown(KEYS.Z))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if (Key.isDown(KEYS.X) || (Key.isDown(KEYS.Z))) {
this.KeyDown = true;
if (_root.DRAGGING_PC != null) {
_root.playSFX("error");
return(undefined);
}
if ((_root.PCstats[2] == null) && (_root.PCstats[3] != null)) {
_root.PCstats.splice(2, 1);
}
if ((_root.PCstats[1] == null) && (_root.PCstats[2] != null)) {
_root.PCstats.splice(1, 1);
}
this.FadeOut();
_root.DrawParty();
}
}
} else if (this.MODE == "STORAGE") {
if ((((!Key.isDown(KEYS.X)) && (!Key.isDown(KEYS.Z))) && (!Key.isDown(37))) && (!Key.isDown(39))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
if (Key.isDown(KEYS.X) || Key.isDown(KEYS.Z)) {
this.KeyDown = true;
if ((_root.DRAGGING_PC != null) || _root.HELD) {
_root.playSFX("error");
return(undefined);
}
this.FadeOut();
} else if (Key.isDown(39)) {
this.StorageLR(1);
this.KeyDown = true;
} else if (Key.isDown(37)) {
this.StorageLR(-1);
this.KeyDown = true;
}
}
this.StorageLR = function (x) {
this["B_" + _root.menu.INV_EXAMINE_MODES[_root.menu.INV_SEL_EXAMINE]].gotoAndStop(1);
_root.menu.INV_SEL_EXAMINE = _root.menu.INV_SEL_EXAMINE + x;
if (_root.menu.INV_SEL_EXAMINE < 0) {
_root.menu.INV_SEL_EXAMINE = _root.menu.INV_EXAMINE_MODES.length - 1;
} else if (_root.menu.INV_SEL_EXAMINE >= _root.menu.INV_EXAMINE_MODES.length) {
_root.menu.INV_SEL_EXAMINE = 0;
}
this["B_" + _root.menu.INV_EXAMINE_MODES[_root.menu.INV_SEL_EXAMINE]].gotoAndStop(2);
_root.Menu_RolloverItem(_root.menu.ITEM_ROLLEDOVER[0], _root.menu.ITEM_ROLLEDOVER[1], _root.menu.ITEM_ROLLEDOVER[2]);
_root.playSFX("menuBlip1");
};
} else {
if (_root._SEL_SAVE_SLOT != null) {
if (_root._SEL_SAVE_SLOT.SAVING_OEF) {
_root.SaveGame_OEF();
} else if (_root._SEL_SAVE_SLOT.LOADING_OEF) {
_root.LoadGame_OEF();
}
return(undefined);
}
if (((((((!Key.isDown(38)) && (!Key.isDown(40))) && (!Key.isDown(37))) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) && (!Key.isDown(KEYS.Z))) && (!Key.isDown(46))) {
this.KeyDown = false;
}
if (!this.KeyDown) {
var _local8 = this.MODE == "LOAD";
if (Key.isDown(40)) {
this["SLOT" + _root.SEL_SAVE_SLOT].gotoAndStop((this["SLOT" + _root.SEL_SAVE_SLOT].empty ? "empty" : 1));
_root.SEL_SAVE_SLOT++;
if (_root.SEL_SAVE_SLOT > ((_root.SAVEMENUPAGE == -1) ? 1 : 6)) {
_root.SEL_SAVE_SLOT = 0;
}
this["SLOT" + _root.SEL_SAVE_SLOT].gotoAndStop((this["SLOT" + _root.SEL_SAVE_SLOT].empty ? "selempty" : 2));
this.cursor._y = this["SLOT" + _root.SEL_SAVE_SLOT]._y + 25;
_root.playSFX("menuBlip1");
this.KeyDown = true;
} else if (Key.isDown(38)) {
this["SLOT" + _root.SEL_SAVE_SLOT].gotoAndStop((this["SLOT" + _root.SEL_SAVE_SLOT].empty ? "empty" : 1));
_root.SEL_SAVE_SLOT--;
if (_root.SEL_SAVE_SLOT < 0) {
_root.SEL_SAVE_SLOT = ((_root.SAVEMENUPAGE == -1) ? 1 : 6);
}
this["SLOT" + _root.SEL_SAVE_SLOT].gotoAndStop((this["SLOT" + _root.SEL_SAVE_SLOT].empty ? "selempty" : 2));
this.cursor._y = this["SLOT" + _root.SEL_SAVE_SLOT]._y + 25;
_root.playSFX("menuBlip1");
this.KeyDown = true;
} else if (Key.isDown(39) && (_root.SAVEMENUPAGE < 9)) {
_root.SAVEMENUPAGE++;
this.Refresh();
this.KeyDown = true;
} else if (Key.isDown(37) && (_root.SAVEMENUPAGE > (_local8 ? -1 : 0))) {
_root.SAVEMENUPAGE--;
this.Refresh();
this.KeyDown = true;
} else if (Key.isDown(KEYS.X)) {
var _local5 = this["SLOT" + _root.SEL_SAVE_SLOT];
if (((_local5._currentframe == 4) || (_local5._currentframe == 7)) || (this.MODE == "LOAD")) {
this["SLOT" + _root.SEL_SAVE_SLOT].onSELECT();
} else {
_local5.gotoAndStop((_local5.empty ? 7 : 4));
}
this.KeyDown = true;
} else if (Key.isDown(46)) {
var _local5 = this["SLOT" + _root.SEL_SAVE_SLOT];
if (!_local5.empty) {
if (_local5._currentframe == 3) {
var _local6 = SharedObject.getLocal((gameID + "_sg_") + _local5.SlotNum, "/");
_local6.clear();
_local6 = null;
this.Refresh();
_root.Flash(_local5, [255, 0, 0]);
} else {
_local5.gotoAndStop(3);
}
}
this.KeyDown = true;
} else if (Key.isDown(KEYS.Z)) {
this.FadeOut();
}
}
}
};
}
};
};
SavePopup.FadeOut = function () {
this._alpha = 100;
playSFX("menuBlip3");
this.CLOSING = true;
var _local4 = 1;
while (_local4 <= 4) {
var _local3 = this["B" + _local4];
_local3.onRollOver = (_local3.onRollOut = (_local3.onPress = null));
_local4++;
}
this.onEnterFrame = function () {
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this._alpha = 0;
this.onEnterFrame = null;
this.gotoAndStop("none");
this._visible = false;
if (_root.cont._visible) {
_quality = "LOW";
}
if (!_root.SHOPPING_MODE) {
_root.ClearSnapshot();
}
this.CLOSING = false;
this.MODE = null;
}
};
};
SavePopup.Refresh = function () {
var _local7 = this.MODE == "LOAD";
this.gotoAndStop("none");
this.gotoAndStop(((_root.SAVEMENUPAGE == -1) ? 2 : 1));
this.L_ARROW._visible = _root.SAVEMENUPAGE != (_local7 ? -1 : 0);
this.R_ARROW._visible = _root.SAVEMENUPAGE != 9;
var _local3 = 1;
while (_local3 <= 10) {
this["page_" + _local3].gotoAndStop((((_root.SAVEMENUPAGE + 1) == _local3) ? 2 : 1));
this["page_" + _local3].onPress = function () {
if (_root._SEL_SAVE_SLOT != null) {
return(undefined);
}
_root.SAVEMENUPAGE = int(this._name.split("_")[1]) - 1;
_root.SEL_SAVE_SLOT = 0;
this._parent.Refresh();
};
_local3++;
}
if (_root.SAVEMENUPAGE == -1) {
var _local5 = SharedObject.getLocal(gameID + "_master", "/");
if (_local5.data.LAST_SAVED != null) {
this.SetupSlot(this.SLOT0, _local5.data.LAST_SAVED);
} else {
this.SLOT0.gotoAndStop("empty");
this.SLOT0.empty = true;
}
if (_local5.data.LAST_LOADED != null) {
this.SetupSlot(this.SLOT1, _local5.data.LAST_LOADED);
} else {
this.SLOT1.gotoAndStop("empty");
this.SLOT1.empty = true;
}
} else {
var _local4 = 0;
while (_local4 < 7) {
this.SetupSlot(this["SLOT" + _local4], (7 * _root.SAVEMENUPAGE) + _local4);
_local4++;
}
}
if (_root.SEL_SAVE_SLOT == null) {
_root.SEL_SAVE_SLOT = 0;
}
var _local6 = this["SLOT" + _root.SEL_SAVE_SLOT];
this.cursor._y = _local6._y + 25;
_local6.gotoAndStop(((_local6._currentFrame == 1) ? 2 : "selEmpty"));
this.PageNumber = ((_root.SAVEMENUPAGE == -1) ? "" : (RomanNumeral(_root.SAVEMENUPAGE + 1)));
this.KeyDown = true;
};
SavePopup.SetupSlot = function (SLOT, slot_id) {
SLOT.blendMode = "layer";
var _local4 = SharedObject.getLocal((gameID + "_sg_") + slot_id, "/");
SLOT.gotoAndStop("empty");
SLOT.empty = true;
SLOT.SlotNum = slot_id;
SLOT.IS_A_SAVE_SLOT = true;
if (_local4.data.PCstats != null) {
SLOT.empty = false;
SLOT.gotoAndStop(1);
var _local3 = 1;
while (_local3 <= 4) {
SLOT["a" + _local3].mystats = ((_local4.data.GameData.CHAPTER != _root.THIS_CHAPTER) ? null : (_local4.data.PCstats[_local3 - 1]));
_local3++;
}
SLOT.name = _local4.data.GameData.GAME_NAME;
SLOT.Level = "Lv " + _local4.data.PCstats[0].level;
SLOT.DateSaved = ((((((((((["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][_local4.data.savetime.getDay()] + " ") + _local4.data.savetime.getDate()) + "/") + ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][_local4.data.savetime.getMonth()]) + "/") + _local4.data.savetime.getFullYear()) + " - ") + (_local4.data.savetime.getHours() % 12)) + ":") + _00(_local4.data.savetime.getMinutes())) + ((_local4.data.savetime.getHours() < 12) ? "am" : "pm");
SLOT.Playtime = (_00(_local4.data.playtime[0]) + ":") + _00(_local4.data.playtime[1]);
SLOT.Chapter = "Ch " + RomanNumeral(_local4.data.GameData.CHAPTER);
SLOT.SavedArea = _local4.data.Carea;
SLOT.SlotNumeral = slot_id + 1;
SLOT.LATER_CHAPTER = ((_local4.data.GameData.CHAPTER != _root.THIS_CHAPTER) ? "FROM ANOTHER CHAPTER" : "");
}
SLOT.onSELECT = function () {
if (this._parent.MODE == "LOAD") {
if (this.empty || (this.LATER_CHAPTER != "")) {
_root.playSFX("error");
return(undefined);
}
this.gotoAndStop("now_loading");
this.savebar.gotoAndStop(101);
_root._SEL_SAVE_SLOT = this;
this.onComplete = function () {
this._parent.FadeOut();
};
_root.LoadGame(this.SlotNum);
} else {
this.gotoAndStop("now_saving");
this.savebar.gotoAndStop(101);
_root._SEL_SAVE_SLOT = this;
this.onComplete = function () {
this._parent.Refresh();
_root.Flash(this, [255, 248, 160]);
};
_root.SaveGame(this.SlotNum);
}
};
};
SavePopup.SEL_PC = 1;
SavePopup.RefreshItemGetThing = function () {
this.BUTTON_SEL = "Get";
this.cursor._y = this[this.BUTTON_SEL + "Button"]._y + 14;
if (this.ITEM.item == "Dreamstone") {
this.gotoAndStop("GetDreamstone");
var _local9 = flash.display.BitmapData.loadBitmap("SoulOrb");
var _local8 = new flash.display.BitmapData(16, 16, true);
_local8.copyPixels(_local9, new flash.geom.Rectangle(0, 0, 16, 16), new flash.geom.Point(0, 0));
this.img.createEmptyMovieClip("img", 1);
this.img.img.attachBitmap(_local8, 1);
this.img.img._width = (this.img.img._height = 48);
this.ItemName = "Dreamstone #" + (this.ITEM.amount + 1);
} else {
var _local7 = _root.GetItemInfo(this.ITEM.item);
this.ItemName = _local7.name;
this.ItemDesc = _local7.desc;
this.ItemAmount = "x " + this.ITEM.amount;
_root.AddItemImg(_local7.name, this.img, 48, 0);
this.elemstrip.gotoAndStop((_local7.elem ? (_local7.elem) : "empty"));
}
if (_local7.type == "plot") {
this.gotoAndStop("GetPlotItem");
this.clickbox.onPress = function () {
this._parent.FadeOut();
};
_root.playSFX("PlotItem");
return(undefined);
}
if (_root.PCstats[this.SEL_PC - 1] == null) {
this.SEL_PC = 1;
}
var _local3 = 1;
while (_local3 <= 4) {
var _local5 = this["P" + _local3];
if (_root.PCstats[_local3 - 1] == null) {
_local5._visible = false;
this["Has" + _local3] = "";
} else {
_local5._visible = true;
_local5.gotoAndStop(((_local3 == this.SEL_PC) ? 2 : 3));
if (_local5.box == null) {
_root.AttachPCSprite(_local5, _root.PCstats[_local3 - 1], 1, 1, 3);
this["inv" + (_local3 - 1)].attachBitmap(_root.InventorySquare(_root.PCstats[_local3 - 1]), 0);
this["inv" + (_local3 - 1)]._width = (this["inv" + (_local3 - 1)]._height = 48);
}
var _local6 = 0;
var _local4 = 0;
while (_local4 < INVENTORY_LENGTH) {
if (_root.PCstats[_local3 - 1].inventory[_local4][0] == this.ITEM.item) {
_local6 = _local6 + _root.PCstats[_local3 - 1].inventory[_local4][1];
}
_local4++;
}
this["Has" + _local3] = _local6;
}
_local3++;
}
this.GetButton.label = "Acquire";
this.GetButton.gotoAndStop(2);
this.GetButton.Action = function () {
if (_root.FullInventory(_root.PCstats[this._parent.SEL_PC - 1])) {
_root.playSFX("error");
_root.Flash(this._parent["inv" + (this._parent.SEL_PC - 1)], [255, 0, 0]);
return(undefined);
}
_root.GiveItemTo(this._parent.ITEM.item, this._parent.ITEM.amount, _root.PCstats[this._parent.SEL_PC - 1]);
this._parent["Has" + this._parent.SEL_PC] = this._parent["Has" + this._parent.SEL_PC] + this._parent.ITEM.amount;
this._parent.FadeOut();
this._parent.chest.OpenSuccess();
};
this.EquipButton.label = "Equip";
this.EquipButton.gotoAndStop(1);
};
SavePopup.RefreshPartySwitch = function () {
var _local3 = 1;
while (_local3 <= 4) {
var _local8 = this["P" + _local3];
_root.SetupSwitchSprite(_local8, _root.PCstats[_local3 - 1]);
GameData.plotVars.Allies[_root.PCstats[_local3 - 1].name] = PCstats[_local3 - 1];
GameData.plotVars.Allies[_root.PCstats[_local3 - 1].name].ON_PARTY = true;
_local3++;
}
var _local9 = [];
for (var _local12 in GameData.plotVars.Allies) {
var _local5 = GameData.plotVars.Allies[_local12];
_root.calculateStats(_local5);
var _local7 = false;
_local3 = 0;
while (_local3 < 4) {
if (_root.PCstats[_local3].name == _local12) {
_local7 = true;
}
_local3++;
}
if ((_local7 || (!_local5.ON_PARTY)) || (_local5.model == null)) {
continue;
}
_local9.push({ally:_local5, level:_local5.level});
}
_local9.sortOn("level", Array.NUMERIC | Array.DESCENDING);
for (var _local13 in this.AllyList) {
this.AllyList[_local13].removeMovieClip();
}
var _local4 = 0;
while (_local4 < 33) {
var _local6 = this.AllyList.attachMovie("AllySpriteBox", "ASB" + _local4, 100 + _local4);
_local6._x = 60 * (_local4 % 11);
_local6._y = 60 * Math.floor(_local4 / 11);
_root.SetupSwitchSprite(_local6, _local9[_local4].ally);
_local4++;
}
this.InfoBox.gotoAndStop("empty");
};
SavePopup.RefreshStorage = function () {
var _local6 = 1;
while (_local6 <= 4) {
GameData.plotVars.Allies[_root.PCstats[_local6 - 1].name] = _root.PCstats[_local6 - 1];
GameData.plotVars.Allies[_root.PCstats[_local6 - 1].name].ON_PARTY = true;
_local6++;
}
var _local9 = [];
for (var _local12 in GameData.plotVars.Allies) {
var _local5 = GameData.plotVars.Allies[_local12];
_root.calculateStats(_local5);
if ((!_local5.ON_PARTY) || (_local5.model == null)) {
continue;
}
_local9.push({ally:_local5, level:_local5.level});
}
_local9.sortOn("level", Array.NUMERIC | Array.DESCENDING);
for (var _local13 in this.AllyColumn) {
this.AllyColumn[_local13].removeMovieClip();
}
var _local7 = 0;
while (_local7 < 24) {
var _local3 = this.AllyColumn.attachMovie("AllySpriteBox", "ASB" + _local7, 100 + _local7);
_local3._x = 60 * Math.floor(_local7 / 8);
_local3._y = 60 * (_local7 % 8);
_local3.box.removeMovieClip();
_local3.stats = _local9[_local7].ally;
_root.AttachPCSprite(_local3, _local3.stats, 1, 1, 3);
_local3.onRollOver = function () {
this.gotoAndStop(2);
};
_local3.onRollOut = function () {
this.gotoAndStop(1);
};
_local3.onPress = function () {
this._parent._parent.RefreshStorage2(this.stats);
};
_local7++;
}
this.Pbox.gotoAndStop(3);
this.B_DESC.label = "Description";
this.B_SKILLS.label = "Skills";
this.B_PROPS.label = "Properties";
_root.menu.INV_EXAMINE_MODES = ["DESC", "SKILLS", "PROPS"];
if (_root.menu.INV_SEL_EXAMINE == null) {
_root.menu.INV_SEL_EXAMINE = 0;
}
this["B_" + _root.menu.INV_EXAMINE_MODES[_root.menu.INV_SEL_EXAMINE]].gotoAndStop(2);
this.bigGlyph.gotoAndStop("clear");
for (var _local13 in this.ISpace) {
this.ISpace[_local13].removeMovieClip();
}
_local7 = 0;
while (_local7 < INVENTORY_LENGTH) {
var _local4 = this.ISpace.attachMovie("ItemSlot", "I" + _local7, 100 + _local7);
_local4._x = 36 * (_local7 % 8);
_local4._y = 36 * Math.floor(_local7 / 8);
_local7++;
}
this.ISpace._alpha = 30;
this.STORAGE_PAGE = 0;
if (GameData.STORAGE == null) {
GameData.STORAGE = new Array(336);
}
for (var _local13 in this.SSpace) {
this.SSpace[_local13].removeMovieClip();
}
_local7 = 0;
while (_local7 < 42) {
var _local4 = this.SSpace.attachMovie("ItemSlot", "I" + _local7, 100 + _local7);
_local4._x = 36 * (_local7 % 14);
_local4._y = 36 * Math.floor(_local7 / 14);
var _local8 = (42 * this.STORAGE_PAGE) + _local7;
_local4.ITEM = GameData.STORAGE[_local8][0];
_local4.AMOUNT = GameData.STORAGE[_local8][1];
_local4.STORAGE = _local8;
_local7++;
}
_local7 = 0;
while (_local7 < 8) {
this["rb" + _local7].gotoAndStop(1);
this["rb" + _local7].onPress = function () {
this._parent["rb" + this._parent.STORAGE_PAGE].gotoAndStop(1);
this.gotoAndStop(2);
this._parent.STORAGE_PAGE = this._name.substr(2);
this._parent.RefreshStorage2(this._parent.SEL_PC_STATS);
};
_local7++;
}
this["rb" + this.STORAGE_PAGE].gotoAndStop(2);
this.SEL_PC_STATS = null;
this.ItemName = "";
this.ItemDesc = "";
this.elemstrip.gotoAndStop("empty");
this.RubbishBin.gotoAndStop(1);
this.RubbishBin.onRollOver = function () {
_root._CURSOR.TOOLTIP._visible = true;
_root._CURSOR.TOOLTIP.gotoAndStop(2);
_root._CURSOR.TOOLTIP.TEXT = "Discard";
if (_root.HELD) {
this.gotoAndStop(2);
}
};
this.RubbishBin.onRollOut = function () {
_root._CURSOR.TOOLTIP._visible = false;
this.gotoAndStop(1);
};
this.RubbishBin.onPress = function () {
if (_root.HELD) {
_root.DragItem(null);
}
};
this.SortBtn.gotoAndStop(1);
this.SortBtn.onRollOver = function () {
_root._CURSOR.TOOLTIP._visible = true;
_root._CURSOR.TOOLTIP.gotoAndStop(2);
_root._CURSOR.TOOLTIP.TEXT = "Sort";
this.gotoAndStop(2);
};
this.SortBtn.onRollOut = function () {
_root._CURSOR.TOOLTIP._visible = false;
this.gotoAndStop(1);
};
this.SortBtn.onPress = function () {
_root.playSFX("menuSwish");
this._parent.SEL_PC_STATS.inventory = _root.SortInventory(this._parent.SEL_PC_STATS.inventory, INVENTORY_LENGTH);
GameData.STORAGE = _root.SortInventory(GameData.STORAGE, 336);
this._parent.RefreshStorage2(this._parent.SEL_PC_STATS);
};
this.RefreshStorage2(null);
};
SavePopup.RefreshStorage2 = function (stats) {
if (!(stats === 1)) {
this.SEL_PC_STATS = stats;
}
this.Pbox.gotoAndStop(1);
this.Pbox.box.removeMovieClip();
for (var _local8 in this.ISpace) {
this.ISpace[_local8].removeMovieClip();
}
var _local3 = 0;
while (_local3 < INVENTORY_LENGTH) {
var _local7 = this.ISpace.attachMovie("ItemSlot", "I" + _local3, 100 + _local3);
_local7._x = 36 * (_local3 % 8);
_local7._y = 36 * Math.floor(_local3 / 8);
_local7.ITEM = this.SEL_PC_STATS.inventory[_local3][0];
_local7.AMOUNT = this.SEL_PC_STATS.inventory[_local3][1];
_local3++;
}
this.ISpace._alpha = ((stats == null) ? 30 : 100);
for (var _local8 in this.SSpace) {
this.SSpace[_local8].removeMovieClip();
}
_local3 = 0;
while (_local3 < 42) {
var _local7 = this.SSpace.attachMovie("ItemSlot", "I" + _local3, 100 + _local3);
_local7._x = 36 * (_local3 % 14);
_local7._y = 36 * Math.floor(_local3 / 14);
var _local4 = (42 * this.STORAGE_PAGE) + _local3;
_local7.ITEM = GameData.STORAGE[_local4][0];
_local7.AMOUNT = GameData.STORAGE[_local4][1];
_local7.STORAGE = _local4;
_local3++;
}
if (this.SEL_PC_STATS) {
_root.calculateStats(this.SEL_PC_STATS);
var _local5 = this.Pbox;
var _local7 = this.SEL_PC_STATS;
if (_local7 == null) {
_local5.gotoAndStop(3);
}
_local5._visible = true;
_local5.gotoAndStop(1);
_root.ShowSTFXCycler(_local5.stfx, _local7.status);
_local5.NAME = _local7.name;
_local5.LEVEL = "Lv" + _local7.level;
_local5.ATK = ((_local7.ATK == undefined) ? "-" : (_local7.ATK));
_local5.DEF = _local7.DEF;
_local5.MDEF = _local7.MDEF;
_local5.STATS = _local7;
_local5.elemstrip.gotoAndStop(_local7.element);
_local5.RefreshHPMP = function () {
var _local3 = this.STATS;
var _local4 = _root.ColourHP(_local3.hp[0], _local3.hp[1]);
this.HP1 = (_local4[0] + "/") + _local4[1];
this.MP1 = (_local3.mp[0] + "/") + _local3.mp[1];
this.HPbar.gotoAndStop(101 - int((_local3.hp[0] / _local3.hp[1]) * 100));
this.MPbar.gotoAndStop(101 - int((_local3.mp[0] / _local3.mp[1]) * 100));
_root.ShowSTFXCycler(this.stfx, _local3.status);
};
_local5.RefreshHPMP();
if (_local5.box == null) {
_root.AttachPCSprite(_local5, this.SEL_PC_STATS, 8, 8, 2);
}
var _local6 = ["weapon", "shield", "armour", "helmet", "accessory", "accessory2"];
_local3 = 0;
while (_local3 < 6) {
_local5["slot_" + _local6[_local3]].DrawItem((_local5["slot_" + _local6[_local3]].ITEM = _local7[_local6[_local3]]));
_local3++;
}
} else {
this.Pbox.gotoAndStop(3);
}
};
SavePopup.RefreshTransaction = function (setAmount) {
this.BuyOrSell = ((this.TRANSACTION.type == "BUY") ? "Buy" : "Sell");
var _local3 = _root.GetItemInfo(this.TRANSACTION.ITEM);
this.ItemName = _local3.name;
this.ItemAmount = (setAmount ? (setAmount) : 1);
_root.AddItemImg(_local3.name, this.img, 48, 0);
this.elemstrip.gotoAndStop((_local3.elem ? (_local3.elem) : "empty"));
var _local4 = Boolean(_root.STACKABLE_TYPES[_local3.type]);
this.arrowR._visible = _local4;
this.arrowL._visible = _local4;
this.PriceTag = NumberFormat((this.PRICETAG = Math.floor(_local3.cost * ((this.TRANSACTION.type == "SELL") ? 0.5 : 1)) * this.ItemAmount));
};
foePartyLayouts = {DEFAULT:[[76, 62], [56, 109], [33, 150], [54, 23]], SOLO:[[60, 80], [0, 0], [0, 0], [0, 0]], DUO:[[56, 46], [56, 140], [0, 0], [0, 0]], TRIO:[[52, 90], [22, 154], [30, 18], [0, 0]], DRAGON:[[65, 93], [0, 0], [0, 0], [0, 0]], HUGE:[[25, 73], [0, 0], [0, 0], [0, 0]], MORIC:[[40, 80], [132, 62], [82, 140], [82, 0]]};
MonsterTypes = ["HUMAN", "BEAST", "REPTILIAN", "ICHTHYD", "GOBLINOID", "INSECT", "UNDEAD", "AERIAL", "PLANTOID", "OOZE", "CONSTRUCT", "DROMA", "CRYSTAL", "REPTOID", "ELEMENTAL", "ABERRATION", "SPIRIT", "MAGICAL BEAST", "FEY", "DEMON", "DRAGON", "ANNUNAKI", "GUARDIAN", "ILLUSION", "FIGMENT"];
MonsterTypeIconsBmp = flash.display.BitmapData.loadBitmap("creature_type_icons");
d_d = 35000;
s_d = 16000;
BATTLEICONS = flash.display.BitmapData.loadBitmap("battleicons");
BattleTargets = [["ALL_e", "e3", "p3", "ALL_p"], ["ALL_e", "e1", "p1", "ALL_p"], ["ALL_e", "e2", "p2", "ALL_p"], ["ALL_e", "e4", "p4", "ALL_p"]];
_global.GotoAptFrame = function (part, par) {
var _local1 = (par ? (par) : (part._parent));
part.gotoAndStop((_local1.skin ? (_local1.skin) : "D"));
};
MONSTER_TABLES = {SOOTHWOOD:[["Forest Fish", null, null, null, "SOLO"], ["Fungoblin", null, null, null, "SOLO"], ["Fungoblin", "Fungoblin", null, null, "DUO"], ["Fungoblin", "Fungoblin", "Fungoblin", null, "TRIO"], ["Forest Fish", "Forest Fish", null, null, "DUO"], ["Forest Fish", "Fungoblin", "Forest Fish", null, "TRIO"]], SEWER1:[["Fumerat", "Fumerat", "Fumerat", null, "DEFAULT"], ["Fumerat", "Fumerat", null, null, "DEFAULT"], ["Fumerat", null, null, null, "TRIO"]], SEWER2:[["Miasmurine", "Miasmurine", null, null, "DUO"], ["Miasmurine", "Miasmurine", "Miasmurine", null, "TRIO"], ["Pestilent", "Miasmurine", "Miasmurine", null, "TRIO"], ["PoorGoblin", "Miasmurine", null, null, "DUO"], ["PoorGoblin", "Miasmurine", "Miasmurine", null, "TRIO"], ["Ooze", "Ooze", null, null, "DUO"], ["Ooze", "Zombie", "Pestilent", null, "TRIO"], ["Ooze", "CorpseDrinker", "CorpseDrinker", null, "TRIO"], ["PoorGoblin", "PoorGoblin", null, null, "DUO"], ["Pestilent", "Pestilent", null, null, "DUO"], ["Pestilent", "Pestilent", "Pestilent", null, "TRIO"], ["Pestilent", "Zombie", "Pestilent", null, "TRIO"], ["Zombie", "Pestilent", "Zombie", null, "TRIO"], ["Zombie", "Pestilent", "Zombie", "Pestilent", "DEFAULT"], ["Zombie", "Zombie", null, null, "DUO"], ["Zombie", "Zombie", "Zombie", null, "TRIO"]], GEM_MINE:[["LeechBat", "LeechBat", null, null, "DUO"], ["LeechBat", "LeechBat", "LeechBat", null, "TRIO"], ["Drillhound", "LeechBat", "LeechBat", null, "TRIO"], ["Drillhound", null, null, null, "SOLO"], ["BrownMantid", null, null, null, "SOLO"], ["Chrysophage", null, null, null, "SOLO"], ["Chrysophage", "LeechBat", null, null, "DUO"]], GLENS:[["Wasp", "Wasp", "Wasp", "Wasp", "DEFAULT"], ["Wasp", "Wasp", "Wasp", null, "TRIO"], ["Wasp", "Wasp", null, null, "DUO"], ["Hobgoblin", "Wasp", null, null, "DUO"], ["Hobgoblin", "Hobgoblin", null, null, "DUO"], ["Gruul", "Gruul", null, null, "DUO"], ["Gruul", "Wasp", null, null, "DUO"], ["Gruul", "Wasp", "Wasp", null, "TRIO"], ["Gruul", "Wasp", "Hobgoblin", null, "TRIO"], ["Gruul", "Wasp", "Hobgoblin", "Wasp", "DEFAULT"], ["Gruul", "Hobgoblin", null, null, "DUO"], ["Hobgoblin", "Gruul", "Gruul", null, "TRIO"], ["Hobgoblin", "Wasp", "Wasp", null, "TRIO"]], LAKE_QUR:[["DrownedCorpse", "Brinary", "Brinary", null, "TRIO"], ["DrownedCorpse", "DrownedCorpse", null, null, "DUO"], ["DrownedCorpse", "DrownedCorpse", "Brinary", "Brinary", "DEFAULT"], ["Brinary", "Brinary", "Brinary", null, "TRIO"], ["Brinary", "Brinary", null, null, "DUO"], ["Brinary", "Brinary", "Brinary", "Brinary", "DEFAULT"]], CANONIA_WOODS:[["GreenMantid", null, null, null, "SOLO"], ["GreenMantid", "GreenMantid", null, null, "DUO"], ["GreenMantid", "BladeBee", "BladeBee", null, "TRIO"], ["Phage", null, null, null, "SOLO"], ["Balloon", "Balloon", "Balloon", null, "TRIO"], ["BladeBee", "Griil", "BladeBee", null, "TRIO"], ["BladeBee", "BladeBee", "BladeBee", "BladeBee", "DEFAULT"], ["BladeBee", "PoisonBee", "BladeBee", null, "TRIO"], ["BladeBee", "BladeBee", "BladeBee", null, "TRIO"]], TAINTED_GROTTO:[["GreenMantid", null, null, null, "SOLO"], ["Phage", null, null, null, "SOLO"], ["Phage", "Phage", null, null, "DUO"], ["Phage", "Phage", "Phage", null, "TRIO"], ["PoisonBee", "PoisonBee", "PoisonBee", null, "TRIO"], ["PoisonBee", "PoisonBee", "PoisonBee", "PoisonBee", "DEFAULT"], ["PoisonBee", "PoisonBee", "Balloon", "Ooze", "DEFAULT"], ["PoisonBee", "Balloon", "Griil", null, "TRIO"], ["Balloon", "Balloon", null, null, "DUO"], ["Balloon", "Balloon", "Balloon", null, "TRIO"], ["Ooze", "Balloon", "Balloon", null, "TRIO"], ["Ooze", "Ooze", null, null, "DUO"], ["Phage", "Ooze", "Ooze", null, "TRIO"], ["Phage", "Balloon", "Balloon", null, "TRIO"], ["Phage", "Phage", "Balloon", "Balloon", "DEFAULT"], ["Griil", "Phage", "Balloon", "PoisonBee", "DEFAULT"], ["Griil", "Griil", "Griil", "Griil", "DEFAULT"], ["Griil", "Griil", "Griil", null, "TRIO"], ["Griil", "Griil", null, null, "DUO"]], CATACOMBS:[["Pestilent", "CorpseDrinker", "CorpseDrinker", null, "TRIO"], ["Zombie", "Skeleton", "CorpseDrinker", "CorpseDrinker", "DEFAULT"], ["CorpseDrinker", "CorpseDrinker", "CorpseDrinker", "CorpseDrinker", "DEFAULT"], ["Zombie", "Zombie", null, null, "DUO"], ["Spectre", "Spectre", null, null, "DUO"], ["Zombie", "Zombie", "Zombie", null, "TRIO"], ["Zombie", "Zombie", "Zombie", "Zombie", "DEFAULT"], ["Zombie", "Zombie", "BloodClot", "Pestilent", "DEFAULT"], ["Zombie", "Spectre", "BloodClot", "Pestilent", "DEFAULT"], ["Zombie", "CorpseDrinker", "BloodClot", "Pestilent", "DEFAULT"], ["BloodClot", "Zombie", "Zombie", null, "TRIO"], ["BloodClot", "Pestilent", "Skeleton", null, "TRIO"], ["Pestilent", "BloodClot", "BloodClot", null, "TRIO"], ["Pestilent", "Pestilent", null, null, "DUO"], ["Pestilent", "Pestilent", "Pestilent", null, "TRIO"], ["Spectre", "Skeleton", "Zombie", null, "TRIO"], ["Skeleton", "Skeleton", "Skeleton", null, "TRIO"], ["Skeleton", "Skeleton", "Skeleton", "Skeleton", "DEFAULT"], ["CorpseDrinker", "Spectre", "CorpseDrinker", "Skeleton", "DEFAULT"], ["Pestilent", "Zombie", "Pestilent", "Zombie", "DEFAULT"], ["Skeleton", "Zombie", "Pestilent", "Skeleton", "DEFAULT"], ["Pestilent", "Skeleton", "Spectre", "Zombie", "DEFAULT"], ["Pestilent", "Skeleton", "Zombie", "Zombie", "DEFAULT"]], SFCRYPT:[["Phantom", null, null, null, "SOLO"], ["Abomination", "Abomination", "Abomination", "Abomination", "DEFAULT"], ["Zombie Monster", "Zombie Monster", "Zombie Monster", null, "TRIO"], ["Zombie Monster", "Abomination", "Abomination", null, "TRIO"]], MORIC_SAUCER:[["SecurityOrb", "SecurityOrb", "SecurityOrb", null, "TRIO"], ["SecurityOrb", "Zombie", "Zombie", null, "TRIO"], ["SecurityOrb", "Droma_Moric", "Droma_Moric", null, "TRIO"], ["SecurityOrb", "Zombie", "SecurityOrb", "Zombie", "TRIO"], ["Droma_Moric", "Droma_Moric", "Droma_Moric", null, "TRIO"], ["Droma_Moric", "Droma_Moric", "Droma_Moric", "Droma_Moric", "DEFAULT"]], TRILOBITE_CAVE:[["Trilobite", "Trilobite", "Trilobite", null, "TRIO"], ["LeechBat", "LeechBat", "LeechBat", "LeechBat", "DEFAULT"], ["Coelacanth", "Coelacanth", "Coelacanth", null, "TRIO"], ["Trilobite", "Coelacanth", "Coelacanth", null, "TRIO"], ["Trilobite", "Coelacanth", "Trilobite", "Coelacanth", "DEFAULT"]], SUN_TEMPLE:[["Temperance", null, null, null, "SOLO"], ["Temperance", null, null, null, "SOLO"], ["Revenant", null, null, null, "SOLO"], ["Lupaazr", "Lupaazr", "Lupaazr", null, "TRIO"], ["Sekil", "Sekil", "Sekil", null, "TRIO"], ["AlbinoBat", "AlbinoBat", "AlbinoBat", null, "TRIO"], ["Moonstone", "Topaz", null, null, "DUO"], ["Vega", "PoshGruul", "PoshGruul", null, "TRIO"], ["Chrysophage", "PoshGruul", "Onyx", null, "TRIO"], ["Vega", "Lupaazr", "PoshGruul", "Sekil", "DEFAULT"], ["Topaz", "Sekil", "Sekil", null, "TRIO"], ["Lupaazr", "Lupaazr", null, null, "DUO"]], SANDCAVE:[["HappyJohnny", null, null, null, "SOLO"], ["HappyJohnny", "HappyJohnny", null, null, "DUO"], ["HappyJohnny", "HappyJohnny", "HappyJohnny", null, "TRIO"], ["Temperance", null, null, null, "SOLO"], ["Temperance", "Temperance", null, null, "DUO"], ["Antlion", null, null, null, "SOLO"], ["Antlion", "Lupaazr", "Lupaazr", null, "TRIO"], ["Lupaazr", "Lupaazr", "Lupaazr", "Lupaazr", "DEFAULT"], ["FireOpal", "Topaz", "Topaz", null, "TRIO"], ["Amberystal", "Amberystal", null, null, "DUO"], ["BloodLizard", "BloodLizard", "BloodLizard", null, "TRIO"], ["BloodLizard", "BloodLizard", null, null, "DUO"]], DARK_TEMPLE:[["PunkMonster", "Eyestalk", "Eyestalk", null, "TRIO"], ["Eyestalk", "Eyestalk", "Eyestalk", null, "TRIO"], ["Eyestalk", "Eyestalk", null, null, "DUO"], ["Dark Elemental", null, null, null, "SOLO"], ["PunkMonster", "PunkMonster", null, null, "DUO"], ["Dark Elemental", "Dark Elemental", null, null, "DUO"], ["Dark Elemental", "Dark Elemental", "Dark Elemental", null, "TRIO"], ["BlackBones", "BlackBones", "BlackBones", "BlackBones", "DEFAULT"], ["Onyx", "BlackBones", "BlackBones", null, "TRIO"], ["Obsidian Phage", "Obsidian Phage", null, null, "DUO"], ["PunkMonster", "Obsidian Phage", "Obsidian Phage", null, "TRIO"], ["Dark Elemental", "BlackBones", "BlackBones", null, "TRIO"]], LIFEWOOD:[["RogueFairy", null, null, null, "DEFAULT"], ["Centaur", "Centaur", "Centaur", null, "TRIO"], ["Centaur", "CentaurMage", "FurryBiter", "FurryBiter", "DEFAULT"], ["CentaurMage", "FurryBiter", "FurryBiter", "FurryBiter", "DEFAULT"], ["CentaurMage", "FurryBiter", "FurryBiter", null, "TRIO"], ["FurryBiter", "FurryBiter", "FurryBiter", null, "TRIO"], ["LovelyElf", "FurryBiter", "FurryBiter", null, "TRIO"], ["PurpleMantid", "LeafStinger", "LeafStinger", null, "TRIO"], ["PurpleMantid", "PurpleMantid", "LeafStinger", "LeafStinger", "DEFAULT"], ["PurpleMantid", "LovelyElf", "LovelyElf", null, "TRIO"], ["PurpleMantid", "RoamingAxolotl", null, null, "DUO"], ["LovelyElf", "LovelyElf", "LovelyElf", "LovelyElf", "DEFAULT"], ["GreenSoul", "GreenSoul", "GreenSoul", "GreenSoul", "DEFAULT"], ["GreenSoul", "GreenSoul", "LeafStinger", "LeafStinger", "DEFAULT"], ["RoamingAxolotl", "LeafStinger", "LeafStinger", null, "TRIO"], ["RoamingAxolotl", "LeafStinger", "LeafStinger", "LeafStinger", "DEFAULT"]], SERPENT_DEN:[["Axolotl", "Axolotl", "Axolotl", null, "TRIO"], ["Tweed", "Tweed", "Tweed", null, "TRIO"], ["Ratbat", "Ratbat", "Ratbat", null, "TRIO"], ["Axolotl", "Ratbat", "Ratbat", null, "TRIO"], ["Ratbat", "Ratbat", "Ratbat", "Ratbat", "DEFAULT"], ["Axolotl", "Axolotl", "Cavefish", "Cavefish", "DEFAULT"], ["Tweed", "Axolotl", "Cavefish", "Ratbat", "DEFAULT"], ["Axolotl", "Axolotl", "Tweed", "Tweed", "DEFAULT"], ["Tweed", "Cavefish", "Cavefish", null, "TRIO"], ["Cavefish", "Cavefish", "Cavefish", null, "TRIO"]], SAUL_DUNGEON:[["Rotrat", "Rotrat", "Rotrat", null, "TRIO"], ["Rotrat", "Rotrat", "Rotrat", "Rotrat", "DEFAULT"], ["Zombie", "Zombie", "Zombie", "Zombie", "DEFAULT"], ["BloodZombie", "BloodZombie", "BloodZombie", "BloodZombie", "DEFAULT"], ["BloodZombie", "BloodZombie", "BloodZombie", null, "TRIO"], ["BloodZombie", "Rotrat", "Rotrat", null, "TRIO"], ["BloodZombie", "BloodZombie", "Rotrat", "Rotrat", "DEFAULT"], ["Skeleton", "Skeleton", "Skeleton", "Skeleton", "DEFAULT"], ["Ghoul", "Ghoul", "Ghoul", "Ghoul", "DEFAULT"], ["Ghast", "Ghast", "Ghast", null, "TRIO"], ["Ghast", "Rotrat", "Rotrat", null, "TRIO"], ["FallenSoldier", "FallenSoldier", "FallenSoldier", "FallenSoldier", "DEFAULT"], ["FallenSoldier", "FallenSoldier", "FallenSoldier", "FallenSoldier", "DEFAULT"], ["GreenSoul", "GreenSoul", "GreenSoul", null, "TRIO"], ["Posh Zombie", null, null, null, "SOLO"], ["Posh Zombie", "GreenSoul", "GreenSoul", null, "TRIO"], ["Ghast", "Ghoul", "GreenSoul", "GreenSoul", "DEFAULT"], ["GreenSoul", "BloodZombie", "BloodZombie", null, "DEFAULT"]], DREAMWOOD:[["Carpioneiros", null, null, null, "SOLO"], ["Carpioneiros", "Carpioneiros", null, null, "DUO"], ["Pixie", null, null, null, "SOLO"], ["Forgotten Face", null, null, null, "SOLO"], ["Whim", "Whim", null, null, "DUO"], ["Whim", "Whim", "Whim", null, "TRIO"], ["Forgotten Face", "Whim", "Whim", null, "TRIO"], ["Forgotten Face", "Forgotten Face", "Forgotten Face", null, "TRIO"]], WATER_TEMPLE:[["Water Elemental", "Water Elemental", "Water Elemental", null, "TRIO"], ["Water Elemental", "Killer Cod", "Killer Cod", null, "TRIO"], ["AxolotlChief", "Water Elemental", "Water Elemental", null, "TRIO"], ["Killer Cod", "Killer Cod", "Killer Cod", "Killer Cod", "DEFAULT"], ["Killer Cod", "Killer Cod", "Killer Cod", null, "TRIO"], ["Iorbspawn", "Iorbspawn", "Iorbspawn", null, "TRIO"], ["AxolotlChief", "AxolotlChief", "Iorbspawn", "Iorbspawn", "DEFAULT"], ["AxolotlChief", "Axolotl", "Axolotl", null, "TRIO"], ["Axolotl", "Axolotl", "Axolotl", "Axolotl", "DEFAULT"], ["Axolotl", "Axolotl", "Waterdrop", "Waterdrop", "DEFAULT"], ["Killer Cod", "Killer Cod", "Waterdrop", "Waterdrop", "DEFAULT"], ["Iorb", null, null, null, "SOLO"], ["Iorb", "Iorbspawn", "Iorbspawn", null, "TRIO"], ["Turquoise", "Iorbspawn", "Iorbspawn", null, "TRIO"], ["Turquoise", null, null, null, "SOLO"]], VOLCANO:[["CharredBones", "CharredBones", "CharredBones", null, "TRIO"], ["CharredBones", "CharredBones", "CharredBones", "CharredBones", "DEFAULT"], ["Magmazard", "CharredBones", "CharredBones", null, "TRIO"], ["CharredBones", "CharredBones", "Magmazard", "Magmazard", "DEFAULT"], ["Magmazard", "Magmazard", "Magmazard", "Magmazard", "DEFAULT"], ["Temperance", "Temperance", "Temperance", null, "TRIO"], ["Amberystal", "FireOpal", "FireOpal", null, "TRIO"], ["LavaBlob", "LavaBlob", "LavaBlob", null, "TRIO"], ["Magmazard", "Amberystal", "LavaBlob", "FireOpal", "DEFAULT"], ["Temperance", "LavaBlob", "LavaBlob", null, "TRIO"], ["Magmazard", "Magmazard", "Amberystal", "Amberystal", "DEFAULT"]], FIRE_TEMPLE:[["CharredBones", "CharredBones", "CharredBones", null, "TRIO"], ["CharredBones", "CharredBones", "CharredBones", "CharredBones", "DEFAULT"], ["Magmazard", "CharredBones", "CharredBones", null, "TRIO"], ["CharredBones", "CharredBones", "Magmazard", "Magmazard", "DEFAULT"], ["Magmazard", "Dankrodo", "Dankrodo", null, "TRIO"], ["Dankrodo", "Dankrodo", "Dankrodo", "Dankrodo", "DEFAULT"], ["Fire Elemental", null, null, null, "SOLO"], ["Fire Elemental", "Fire Elemental", null, null, "DUO"], ["Fire Elemental", "Fire Elemental", "Fire Elemental", null, "TRIO"], ["Fire Elemental", "Ruby", "Ruby", null, "TRIO"], ["Magmazard", "Magmazard", "Ruby", "Magmazard", "DEFAULT"], ["Amberystal", "Ruby", "Ruby", null, "TRIO"], ["LavaBlob", "LavaBlob", "LavaBlob", null, "TRIO"]], LOST_MONASTERY:[["Rotrat", "Rotrat", "Rotrat", null, "TRIO"], ["Rotrat", "Rotrat", "Rotrat", "Rotrat", "DEFAULT"], ["FallenCultling", "FallenCultling", "FallenCultling", null, "TRIO"], ["FallenCultling", "FallenCultling", "FallenCultling", "FallenCultling", "DEFAULT"], ["FallenCultling", "FallenCultling", "Rotrat", "Rotrat", "DEFAULT"], ["Chaosoul", "Chaosoul", "Chaosoul", "Chaosoul", "DEFAULT"], ["FallenCultling", "FallenCultling", "Chaosoul", "Chaosoul", "DEFAULT"], ["Chaosoul", "Chaosoul", "Chaosoul", null, "TRIO"], ["Rotrat", "Chaosoul", "Chaosoul", null, "TRIO"], ["Chaosoul", "Rotrat", "Rotrat", null, "TRIO"]], EARTH_TEMPLE:[["Witchdoctor", null, null, null, "MORIC"], ["Witchdoctor", "Earth Elemental", "Earth Elemental", null, "DEFAULT"], ["Golem", null, null, null, "SOLO"], ["Golem", null, null, null, "SOLO"], ["Golem", null, null, null, "SOLO"], ["Centaur", "Centaur", "Centaur", "CentaurMage", "DEFAULT"], ["Centaur", "CentaurMage", "FurryBiter", "FurryBiter", "DEFAULT"], ["Centaur", "Centaur", "Emerald", "Emerald", "DEFAULT"], ["Rexaurus", null, null, null, "SOLO"], ["Rexaurus", "Rexaurus", null, null, "DUO"], ["Bandit3", "Tibore", null, null, "DUO"], ["CentaurMage", "Tibore", null, null, "DUO"], ["Rexaurus", "Emerald", "Emerald", null, "TRIO"], ["Emerald", "Emerald", "Emerald", null, "TRIO"], ["Tibore", "Tibore", "Tibore", null, "TRIO"], ["Tibore", "Tibore", "Tibore", "Tibore", "DEFAULT"], ["RogueFairy", null, null, null, "SOLO"], ["Bandit3", "Bandit3", "Bandit3", null, "TRIO"], ["Earth Elemental", "Earth Elemental", "Earth Elemental", null, "TRIO"], ["Earth Elemental", "Earth Elemental", "Earth Elemental", "Earth Elemental", "DEFAULT"]], ASTRAL:[["Dreamfish", null, null, null, "SOLO"], ["Oneironaut", null, null, null, "MORIC"], ["Oneironaut", "Dreamfish", null, null, "DEFAULT"], ["Dreamfish", "Dreamfish", null, null, "DUO"], ["Dreamfish", "Dreamfish", "Dreamfish", null, "TRIO"], ["Dreamfish", "Dreamfish", "Dreamfish", "Dreamfish", "DEFAULT"]], MIASMAL_CITADEL:[["Mythril Golem", null, null, null, "SOLO"], ["Black Eye", null, null, null, "SOLO"], ["Apparition", "Apparition", "Apparition", null, "TRIO"], ["Black Eye", "Skelizard", "Skelizard", null, "TRIO"], ["Skelizard", "Skelizard", "Skelizard", null, "TRIO"], ["Blue Soul", "Blue Soul", "Blue Soul", null, "TRIO"], ["Skelizard", "Skelizard", null, null, "DUO"], ["Skelizard", "Skelizard", "Skelizard", "Skelizard", "DEFAULT"], ["Skelizard", "Skelizard", "Blue Soul", "Blue Soul", "DEFAULT"]], DREAMSHRINE:[["Oneironaut", null, null, null, "MORIC"], ["Oneironaut", "Dreamfish", null, null, "DEFAULT"], ["Oneironaut", "Yellow Soul", "Yellow Soul", null, "DEFAULT"], ["Dreamfish", "Dreamfish", "Dreamfish", null, "TRIO"], ["Dreamfish", "Dreamfish", "Dreamfish", "Dreamfish", "DEFAULT"], ["Yellow Soul", "Yellow Soul", "Yellow Soul", null, "TRIO"], ["SOLAK Spirit", "Yellow Soul", "Yellow Soul", null, "TRIO"], ["SOLAK Spirit", "Furious Eye", "Furious Eye", null, "TRIO"], ["SOLAK Spirit", "Monster", "Monster", null, "TRIO"], ["SOLAK Spirit", "SOLAK Spirit", null, null, "DUO"], ["Furious Eye", "Furious Eye", "Furious Eye", null, "TRIO"], ["Dreamfish", "Dreamfish", "Furious Eye", "Furious Eye", "DEFAULT"], ["Monster", "Monster", "Monster", null, "TRIO"], ["Monster", "Monster", "Monster", "Monster", "DEFAULT"], ["Monster", "Monster", "Furious Eye", "Furious Eye", "DEFAULT"], ["Monster", "Monster", "Yellow Soul", "Yellow Soul", "DEFAULT"]]};
MONSTER_LEVELS = {DRAGON_LAIR:[30, 36], SOOTHWOOD:[1, 1], SEWER1:[1, 1], GEM_MINE:[2, 4], GLENS:[2, 4], LAKE_QUR:[3, 5], CANONIA_WOODS:[3, 6], TAINTED_GROTTO:[4, 7], SEWER2:[5, 8], CATACOMBS:[7, 9], SFCRYPT:[13, 15], MORIC_SAUCER:[10, 13], TRILOBITE_CAVE:[7, 12], SUN_TEMPLE:[9, 13], SANDCAVE:[12, 15], DARK_TEMPLE:[13, 17], SAUL_DUNGEON:[13, 20], LIFEWOOD:[14, 19], SERPENT_DEN:[15, 21], WATER_TEMPLE:[18, 22], VOLCANO:[16, 22], FIRE_TEMPLE:[19, 23], LOST_MONASTERY:[20, 25], EARTH_TEMPLE:[21, 28], ASTRAL:[20, 25], MIASMAL_CITADEL:[28, 34], DREAMSHRINE:[30, 35]};
PChatchery = {Mardek_Hero:MakeCreatureStats("Mardek", "mardek_hero", "Hero", "LIGHT", 50, [20, 18, 10, 12], ["M Blade", "Hero's Shield", "none", "Hero's Armour", "Dragon Amulet", "none"], [["Elixir", 9]], ["Shock", "Smite Evil", "Recover"], [["P_ATK", "Stunstrike", true, true], ["P_ATK", "DMG+50%", true, true], ["P_ATK", "Quarry: BEAST", true, true], ["P_ATK", "Quarry: DRAGON", true, true], ["P_DEF", "Nullify Physical", true, true], ["M_DEF", "Nullify Magic", true, true], ["M_DEF", "Absorb MP", true, true], ["PASSIVE", "HP+50%", true, true], ["PASSIVE", "EXP+40%", true, true], ["PASSIVE", "Auto-Regen", true, true]]), Deugan_Hero:MakeCreatureStats("Deugan", "deugan_hero", "Hero", "EARTH", 50, [16, 16, 12, 15], ["Balmung", "none", "none", "Hero's Coat", "Dragon Amulet", "none"], [["Elixir", 9]], ["Shock", "Pyromagia", "Frostasia", "Sunder", "Recover"], [["P_ATK", "Snakebite", true, true], ["P_ATK", "DMG+50%", true, true], ["P_ATK", "Quarry: BEAST", true, true], ["P_ATK", "Quarry: DRAGON", true, true], ["P_DEF", "Nullify Physical", true, true], ["M_ATK", "M DMG+30%", true, true], ["M_DEF", "Nullify Magic", true, true], ["M_DEF", "Absorb MP", true, true], ["PASSIVE", "HP+50%", true, true], ["PASSIVE", "EXP+40%", true, true], ["PASSIVE", "Auto-Regen", true, true]]), Mardek_Child:MakeCreatureStats("Mardek", "mardek_child", "Commoner", "LIGHT", 1, [10, 10, 10, 13], ["Stick", "none", "none", "Tunic", "none", "none"], [], [], []), Deugan_Child:MakeCreatureStats("Deugan", "deugan_child", "Commoner", "EARTH", 1, [10, 9, 11, 12], ["Big Stick", "none", "none", "Tunic", "none", "none"], [], [], []), Mardek_Recruit:MakeCreatureStats("Mardek", "mardek_soldier", "Recruit", "LIGHT", 3, [17, 15, 12, 9], ["Longsword", "Wooden Shield", "none", "Chainmail", "none", "none"], [], ["Heal", "Warp"], []), Deugan_Recruit:MakeCreatureStats("Deugan", "deugan_soldier", "Recruit", "EARTH", 3, [16, 14, 14, 12], ["Greatsword", "none", "none", "Chainmail", "none", "none"], [], [], []), Emela_Recruit:MakeCreatureStats("Emela", "emela_soldier", "Elemancer", "WATER", 3, [9, 11, 20, 16], ["Water Rod", "none", "none", "Mage Robe", "CopperRing", "none"], [["Potion", 3], ["PhoenixDown", 1]], ["Lightning Bolt", "Aqualung"], [["M_ATK", "M DMG+20%", 0, true], ["M_DEF", "M DMG-10%", 0, true], ["P_DEF", "DMG-20%", true, true]]), Steele_Recruit:MakeCreatureStats("Steele", "steele_soldier", "Brawler", "DARK", 3, [20, 18, 5, 13], ["none", "none", "none", "Chainmail", "CopperRing", "RingOfSTR"], [["Potion", 3], ["PhoenixDown", 1]], ["Fierce Strike", "Chakra"], [["P_ATK", "DMG+30%", true, true], ["P_DEF", "DMG-30%", true, true]]), Zach:MakeCreatureStats("Zach", "zach", "Mercenary", "AIR", 5, [16, 13, 8, 17], ["Shashiik", "none", "none", "Spiked Hide Armour", "RingOfAGL", "RingOfSTR"], [["Potion", 3], ["PhoenixDown", 1]], [], [["P_ATK", "DMG+20%", 0, true], ["P_DEF", "DMG-20%", 0, true]]), Vehrn:MakeCreatureStats("Vehrn", "vehrn", "Paladin", "LIGHT", 5, [17, 14, 10, 11], ["Bronze Sword", "Bronze Shield", "none", "Green Chainmail", "SilverPendant", "RingOfSTR"], [["Potion", 3], ["PhoenixDown", 1], ["HolyWater", 10]], [], [["P_ATK", "Smite +", 0, true], ["P_DEF", "DMG-10%", 0, true], ["M_DEF", "M DMG-10%", 0, true]]), Mardek_Ch3:MakeCreatureStats("Mardek", "mardek", "Royal Knight", "LIGHT", 10, [18, 16, 12, 9], ["Mythril Sword", "Bronze Shield", "Rusty Helm", "Rusty Armour", "none", "none"], [], ["Heal", "Warp"], []), Donovan:MakeCreatureStats("Donovan", "donovan", "Pyromancer", "FIRE", 9, [14, 14, 17, 13], ["Ember Spear", "none", "Bronze Circlet", "Jasper Robe", "FirePendant", "CopperRing"], [["BetterPotion", 3], ["Ether", 1], ["PhoenixDown", 3]], [], []), Sharla:MakeCreatureStats("Sharla", "sharla", "Aeromancer", "AIR", 9, [10, 12, 17, 16], ["Wing Spear", "none", "Bronze Circlet", "Jasper Robe", "AirPendant", "CopperRing"], [["BetterPotion", 3], ["Ether", 1], ["PhoenixDown", 3]], [], []), Sslen_ck:MakeCreatureStats("Sslen'ck", "sslenck", "Warrior", "EARTH", 16, [22, 19, 8, 9], ["Greataxe", "none", "none", "Bronze Armour", "RingOfSTR", "none"], [["PhoenixDown", 1]], ["Fire Breath"], [["P_ATK", "DMG+30%", 0, true], ["P_DEF", "DMG-30%", 0, true], ["PASSIVE", "Dragon's Blood", true, true]]), Solaar:MakeCreatureStats("Solaar", "solaar", "Runare", "LIGHT", 15, [14, 12, 20, 17], ["Silver Claw", "none", "none", "none", "GoldRing", "Eclipse Amulet"], [["LiquidSound", 5], ["BalloonJuice", 5], ["Remedy", 3], ["PhoenixDown", 1]], ["Solar Flare", "Pleasant Sunbeam"], [["M_ATK", "M DMG+20%", 0, true], ["P_DEF", "DMG-10%", 0, true], ["PASSIVE", "Locquacity", true, true]]), Elwyen:MakeCreatureStats("Elwyen", "elwyen", "Siren", "WATER", 9, [8, 13, 15, 19], ["Silver Harp", "Sheet Music I", "Minstrel's Tiara", "Magic Blouse", "Lapis Beads", "GoldRing"], [], [], []), Gloria:MakeCreatureStats("Gloria", "gloria17", "Shaman", "EARTH", 12, [12, 14, 15, 11], ["Earth Staff", "none", "Feather Crest", "Shaman's Vestment", "Emerald Bangle", "none"], [["MugwortJuice", 10], ["Remedy", 10], ["Rainbow Juice", 1]], [], []), Meraeador:MakeCreatureStats("Meraeador", "inventor", "Inventor", "FIRE", 10, [13, 15, 16, 12], ["Thermal Spanner", "none", "Scoping Lens", "Inventing Coat", "Cog Necklace", "none"], [], [], []), Legion:MakeCreatureStats("Legion", "robot", "Automaton", "NONE", 20, [20, 20, 10, 10], ["Clasping Claws", "none", "none", "Copper Plating", "none", "none"], [], [], [["PASSIVE", "Mechanical Body", true, true]])};
_global.LINEAR = 1;
_global.RADIAL = 2;
_global.PARTICLE_SIZE = 32;
PFX_SHEET16 = flash.display.BitmapData.loadBitmap("pfxSheet16");
PFX_SHEET32 = flash.display.BitmapData.loadBitmap("pfxSheet32");
PFX_SHEET64 = flash.display.BitmapData.loadBitmap("pfxSheet64");
PFX_SHEET128 = flash.display.BitmapData.loadBitmap("pfxSheet128");
PFXList = {pfx_flame1:{sfx:"flame1", emitters:[{type:0, sheet:32, spawn:[0, 0], vel:[-2, 2, -8, -15], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:2, dur:10, fade:10, alpha:100, grow:[0.9, 1], area:[16, 30], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:1, sheet:16, spawn:[0, 0], vel:[-4, 4, 2, 4], accel:[0.95, 0.98], mod:[0, -0.5], life:200, delay:0, ppf:2, dur:12, fade:2, alpha:100, grow:[1, 1], area:[12, 12], mode:LINEAR, size:[8, 8], rot:"R", spin:4}]}, pfx_bolt1:{sfx:"bolt1", emitters:[{type:1, sheet:128, spawn:[0, -88], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:2, ppf:1, dur:1, fade:2, alpha:60, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[256, 256], rot:0, spin:0}, {type:0, sheet:128, spawn:[0, -88], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:50, delay:0, ppf:1, dur:1, fade:16, alpha:150, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[256, 256], rot:0, spin:0}, {type:1, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:10, alpha:100, grow:[1.4, 1.4], area:[0, 0], mode:LINEAR, size:[16, 10], rot:0, spin:0}, {type:0, sheet:16, spawn:[0, 0], vel:[5, 8, 5, 8], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:10, dur:1, fade:2, alpha:80, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[6, 6], rot:0, spin:0}]}, pfx_cure1:{sfx:"Cure", emitters:[{type:1, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:14, fade:10, alpha:100, grow:[0.95, 0.95], area:[36, 36], mode:LINEAR, size:[32, 32], rsize:[1, 2], rot:0, spin:0}, {type:2, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[60, 60], mode:LINEAR, size:[8, 8], rot:"R", spin:4}]}, pfx_bubble1:{sfx:"bubble1b", dmgdelay:18, delayedSfx:"slash2", emitters:[{type:17, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:6, delay:0, ppf:1, dur:1, fade:0, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[60, 60], rot:0, spin:0}, {type:17, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:14, delay:7, ppf:1, dur:0, fade:0, alpha:100, grow:[0.8, 0.8], area:[0, 0], mode:LINEAR, size:[140, 140], rot:0, spin:0}, {type:3, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:18, ppf:1, dur:1, fade:10, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[32, 32], rot:0, spin:0}, {type:2, sheet:32, spawn:[0, 0], vel:[2, 8, 5, 8], accel:[0.96, 0.96], mod:[0, 0], life:80, delay:18, ppf:3, dur:5, fade:2, alpha:100, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[16, 16], rot:0, spin:0}, {type:2, sheet:32, spawn:[0, 0], vel:[5, 8, 5, 8], accel:[0.96, 0.96], mod:[0, 0], life:80, delay:18, ppf:3, dur:5, fade:2, alpha:100, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[8, 8], rot:0, spin:0}]}, pfx_stone1:{sfx:"stone1", dmgdelay:30, delayedSfx:"slash2", emitters:[{type:4, sheet:32, spawn:[0, -144], vel:[0, 0, 0, 0], accel:[1, 1.1], mod:[0, 0.1], life:30, delay:0, ppf:1, dur:1, fade:-20, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:1, sheet:32, spawn:[0, -144], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:20, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:5, sheet:32, spawn:[0, 0], vel:[6, 7], accel:[0.9, 0.9], mod:[0, 0], life:300, delay:30, ppf:1, dur:3, fade:2, alpha:60, grow:[1.06, 1.06], area:[0, 0], mode:RADIAL, size:[42, 42], rsize:[0.6, 1.5], rot:"R", spin:1}, {type:3, sheet:16, spawn:[0, 0], vel:[7, 8], accel:[0.99, 0.99], mod:[0, 0.4], life:100, delay:30, ppf:8, dur:1, fade:3, alpha:100, grow:[1, 1], area:[20, 20], mode:RADIAL, size:[16, 16], rsize:[0.6, 1.5], rot:"R", spin:1}]}, pfx_shield:{sfx:null, emitters:[{type:2, sheet:128, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:2, alpha:50, grow:[1, 1], area:[6, 6], mode:LINEAR, size:[180, 180], rot:0, spin:0}]}, pfx_shieldbreak:{sfx:"Thunder", emitters:[{type:12, sheet:128, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:100, alpha:100, grow:[1, 1], area:[6, 6], mode:LINEAR, size:[180, 180], rot:0, spin:0}, {type:12, sheet:128, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:7, ppf:1, dur:1, fade:20, alpha:100, grow:[1, 1], area:[6, 6], mode:LINEAR, size:[180, 180], rot:0, spin:0}]}, pfx_shield_round:{sfx:null, emitters:[{type:2, sheet:128, spawn:[0, -10], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:2, alpha:50, grow:[1, 1], area:[6, 6], mode:LINEAR, size:[80, 80], rot:0, spin:0}]}, pfx_dmgplus:{sfx:null, emitters:[{type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:1, sheet:16, spawn:[0, 0], vel:[8, 12, 8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:"R", spin:0}]}, pfx_powerhit:{sfx:null, emitters:[{type:16, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:17, alpha:200, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:7, sheet:16, spawn:[0, 0], vel:[15, 20, 15, 20], accel:[0.86, 0.86], mod:[0, 0], life:30, delay:0, ppf:3, dur:3, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rot:"R", spin:0}]}, pfx_stunstrike:{sfx:"bolt1", emitters:[{type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:5, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:100, alpha:100, grow:[1, 1], area:[100, 100], mode:LINEAR, size:[32, 32], rot:"R", spin:0}]}, pfx_smiteevil:{sfx:"Slam", emitters:[{type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.01, 1.01], area:[0, 0], mode:LINEAR, size:[200, 200], rot:0, spin:20}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[80, 80], rot:0, spin:-20}, {type:0, sheet:16, spawn:[0, 0], vel:[5, 8, 5, 8], accel:[0.99, 0.99], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[8, 8], rot:"R", spin:0}]}, pfx_shock:{sfx:"Thunder", emitters:[{type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:5, delay:0, ppf:1, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[80, 80], rot:0, spin:0}, {type:7, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:2, ppf:1, dur:1, fade:2, alpha:60, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[170, 170], rot:0, spin:150}, {type:6, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:50, delay:0, ppf:1, dur:1, fade:16, alpha:150, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[200, 200], rot:0, spin:150}, {type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:10, alpha:80, grow:[1.5, 1.5], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:5, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:100, alpha:100, grow:[1, 1], area:[100, 100], mode:LINEAR, size:[32, 32], rot:"R", spin:0}, {type:0, sheet:16, spawn:[0, 0], vel:[7, 10, 7, 10], accel:[0.96, 0.96], mod:[0, 0], life:200, delay:0, ppf:10, dur:1, fade:1, alpha:80, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[6, 6], rot:0, spin:0}]}, pfx_sunder:{sfx:"hit_2HSWORDS", emitters:[{type:6, sheet:16, spawn:[0, 0, 45], vel:[-8, 8, 0, 0], accel:[0.95, 0.95], mod:[0, 0], life:300, delay:0, ppf:20, dur:1, fade:2, alpha:100, grow:[1, 1], area:[20, 180], mode:LINEAR, size:[4, 4], rot:"R", spin:10}, {type:8, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:10, delay:0, ppf:1, dur:10, fade:100, alpha:100, grow:[1, 1], area:[6, 6], mode:LINEAR, size:[200, 200], rot:0, spin:0}, {type:8, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:10, ppf:1, dur:1, fade:10, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[200, 200], rot:0, spin:0}]}, pfx_darkclaw:{sfx:"hit_2HSWORDS", emitters:[{type:7, sheet:64, spawn:[-50, -50, -45], vel:[0, 0, 30, 30], accel:[1, 0.8], mod:[0, 0], life:30, delay:0, ppf:1, dur:3, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[88, 88], rot:0, spin:0}, {type:30, sheet:16, spawn:[-50, -50, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:30, sheet:16, spawn:[-30, -70, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:30, sheet:16, spawn:[-70, -30, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:13, sheet:16, spawn:[0, 0], vel:[6, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:3, dur:8, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.25, 1], rot:"theta", spin:0}]}, pfx_spore:{sfx:"Slam", emitters:[{type:6, sheet:32, spawn:[0, 0], vel:[3, 4], accel:[0.95, 0.95], mod:[0, 0], life:300, delay:0, ppf:12, dur:1, fade:3, alpha:60, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.8, 1.2], rot:"R", spin:13}, {type:8, sheet:16, spawn:[0, 0], vel:[4, 5], accel:[0.97, 0.97], mod:[0, 0], life:300, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.5, 1.5], rot:"R", spin:0}]}, pfx_money:{sfx:"buy", emitters:[{type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:4, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[80, 80], rot:0, spin:-20}, {type:9, sheet:16, spawn:[0, 0], vel:[-7, 7, -14, -1], accel:[1, 1], mod:[0, 0.5], life:300, delay:0, ppf:10, dur:5, fade:0, alpha:100, grow:[1, 1], area:[10, 10], mode:LINEAR, size:[16, 16], rsize:[0.5, 1.5], rot:"R", spin:8}]}, pfx_haste:{sfx:null, emitters:[{type:8, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:50, fade:18, alpha:60, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[120, 120], rot:0, spin:0}, {type:9, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:50, fade:40, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[80, 80], rot:-12, spin:-8, rotmod:1.07}, {type:9, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:50, fade:40, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[120, 120], rot:12, spin:8, rotmod:1.1}]}, pfx_chakra:{sfx:"flame1", emitters:[{type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:18, alpha:60, grow:[1.3, 1.3], area:[2, 2], mode:LINEAR, size:[80, 80], rot:"R", spin:10}, {type:11, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:14, fade:10, alpha:100, grow:[0.95, 0.95], area:[40, 60], mode:LINEAR, size:[32, 32], rot:0, spin:0}, {type:11, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:100, alpha:100, grow:[1, 1], area:[50, 70], mode:LINEAR, size:[32, 32], rot:"R", spin:0}]}, pfx_sting_psn:{sfx:"hit_POLEARMS", emitters:[{type:10, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[2, 2], mode:LINEAR, size:[16, 16], rot:0, spin:0}, {type:4, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:0, spin:0}]}, pfx_sting_drk:{sfx:"hit_POLEARMS", emitters:[{type:15, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[2, 2], mode:LINEAR, size:[16, 16], rot:0, spin:0}, {type:13, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[8, 8], rot:0, spin:0, rsize:[0.6, 1.6]}]}, pfx_sting_slp:{sfx:"hit_POLEARMS", emitters:[{type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[2, 2], mode:LINEAR, size:[16, 16], rot:0, spin:0}, {type:14, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:0, spin:0}]}, pfx_splash:{sfx:"Bubble", emitters:[{type:3, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:3, fade:10, alpha:100, grow:[1.2, 1.2], area:[10, 10], mode:LINEAR, size:[40, 40], rot:0, spin:23}, {type:11, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:2, sheet:32, spawn:[0, 0], vel:[8, 12, 8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:"R", spin:0}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:10, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:LINEAR, size:[10, 10], rot:0, spin:0}]}, pfx_stonesplosion:{sfx:"Earth1", emitters:[{type:4, sheet:32, spawn:[0, 0], vel:[9, 15], accel:[1, 1], mod:[0, 0.4], life:100, delay:0, ppf:8, dur:1, fade:2, alpha:100, grow:[1, 1], area:[10, 10], mode:RADIAL, size:[64, 64], rsize:[0.8, 1.3], rot:"R", spin:11}, {type:3, sheet:16, spawn:[0, 0], vel:[6, 13], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:16, dur:1, fade:3, alpha:100, grow:[1, 1], area:[10, 10], mode:RADIAL, size:[16, 16], rot:"R", spin:22}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:3, fade:30, alpha:100, grow:[2, 2], area:[0, 0], mode:RADIAL, size:[30, 30], rot:"R", spin:10}, {type:5, sheet:32, spawn:[0, 0], vel:[3, 3], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:0, ppf:6, dur:1, fade:1, alpha:40, grow:[1.06, 1.06], area:[0, 0], mode:RADIAL, size:[64, 64], rot:"R", spin:1}]}, pfx_darkbolt:{sfx:"Thunder", emitters:[{type:19, sheet:128, spawn:[0, -70], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:10, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[256, 256], rot:0, spin:0}, {type:15, sheet:64, spawn:[0, 40], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.4, 1.4], area:[0, 0], mode:LINEAR, size:[16, 10], rot:0, spin:0}, {type:13, sheet:16, spawn:[0, 40], vel:[5, 8, 5, 8], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:10, dur:1, fade:2, alpha:80, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.25, 1], rot:0, spin:0}]}, pfx_firebreath:{sfx:"flame1", emitters:[{type:0, sheet:32, spawn:[0, 0], vel:[8, 10, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:4, dur:20, fade:8, alpha:100, grow:[1.3, 1.3], area:[4, 4], mode:LINEAR, size:[8, 8], rot:-90, spin:0}, {type:1, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.95, 0.98], mod:[0, -0.5], life:200, delay:0, ppf:2, dur:20, fade:2, alpha:100, grow:[1, 1], area:[12, 12], mode:RADIAL, size:[8, 8], rot:"R", spin:4}]}, pfx_bubblebreath:{sfx:"Bubble", emitters:[{type:2, sheet:32, spawn:[0, 0], vel:[8, 10, -3, 3], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:2, dur:20, fade:5, alpha:100, grow:[1.05, 1.05], area:[8, 8], mode:LINEAR, size:[12, 12], rsize:[0.2, 1.5], rot:0, spin:0}, {type:3, sheet:32, spawn:[0, 0], vel:[10, 14, -1, 1], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:2, alpha:30, grow:[1.1, 1.1], area:[4, 4], mode:LINEAR, size:[48, 48], rot:"R", spin:0}, {type:2, sheet:32, spawn:[0, 0], vel:[6, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:5, alpha:100, grow:[1.05, 1.05], area:[8, 8], mode:RADIAL, size:[8, 8], rsize:[0.2, 1.5], rot:0, spin:0}]}, pfx_gemsplosion:{sfx:"Earth1", emitters:[{type:7, sheet:32, spawn:[0, 0], vel:[15, 15], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:8, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[50, 50], rot:"theta", spin:0}, {type:7, sheet:32, spawn:[0, 0], vel:[12, 12], accel:[1, 1], mod:[0, 0], life:100, delay:10, ppf:12, dur:0, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[30, 30], rot:"theta", spin:0}, {type:7, sheet:32, spawn:[0, 0], vel:[18, 18], accel:[1, 1], mod:[0, 0], life:100, delay:5, ppf:8, dur:0, fade:0, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:30, size:[15, 15], rot:"theta", spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:3, fade:10, alpha:100, grow:[1.5, 1.5], area:[0, 0], mode:RADIAL, size:[30, 30], rot:"R", spin:10}]}, pfx_sunflare:{sfx:"flame1", emitters:[{type:18, sheet:64, spawn:[0, 0], vel:[10, 10], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:8, skipframes:3, dur:20, fade:12, alpha:100, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[140, 140], rot:"theta", spin:0}, {type:13, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:15, fade:8, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:RADIAL, size:[20, 20], rot:0, spin:15}, {type:13, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:0.4, dur:15, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[170, 170], rot:0, spin:-15}, {type:0, sheet:16, spawn:[0, 0], vel:[12, 16], accel:[0.98, 0.98], mod:[0, 0], life:100, delay:0, ppf:3, dur:15, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[4, 4], rot:0, spin:0}]}, pfx_needleflare:{sfx:null, dmgdelay:20, delayedSfx:"hit_POLEARMS", emitters:[{type:15, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:0, ppf:30, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:1, delay:20, ppf:4, dur:10, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:[0, 60], mode:RADIAL, size:[32, 32], rot:0, spin:0}, {type:4, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:20, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:0, spin:0}, {type:15, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:20, ppf:13, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}]}, pfx_1000needles:{sfx:null, dmgdelay:60, delayedSfx:"hit_POLEARMS", emitters:[{type:25, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:0, ppf:30, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[16, 16], rot:"theta", spin:0}, {type:25, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:10, ppf:40, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[16, 16], rot:"theta", spin:0}, {type:25, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:20, ppf:30, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[16, 16], rot:"theta", spin:0}, {type:25, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:27, ppf:40, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[16, 16], rot:"theta", spin:0}, {type:25, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:20, delay:34, ppf:30, dur:1, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:200, mode:RADIAL, even_spacing:true, size:[16, 16], rot:"theta", spin:0}, {type:16, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:1, delay:20, ppf:4, dur:41, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:[0, 60], mode:RADIAL, size:[32, 32], rot:0, spin:0}, {type:25, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:20, ppf:13, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}, {type:25, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:27, ppf:13, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}, {type:25, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:34, ppf:13, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}, {type:25, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:40, ppf:13, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}, {type:25, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[1, 1], mod:[0, 0.5], life:100, delay:50, ppf:30, dur:1, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[22, 22], rot:"R", spin:10}]}, pfx_void:{sfx:"Curse", emitters:[{type:13, sheet:16, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:12, delay:0, ppf:3, dur:20, fade:0, alpha:100, grow:[1, 1], area:[0, 0], offset:[60, 100], mode:RADIAL, size:[16, 16], rsize:[0.25, 1], rot:"theta", spin:0}, {type:19, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:30, fade:10, alpha:100, grow:[0.9, 0.9], area:[6, 6], mode:RADIAL, size:[100, 100], rot:0, spin:0}]}, pfx_smoke:{sfx:"Slam", emitters:[{type:7, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:10, dur:1, fade:1, alpha:40, grow:[1.03, 1.03], area:[0, 0], mode:RADIAL, size:[88, 88], rot:"R", spin:1}]}, pfx_drain:{sfx:"Curse", emitters:[{type:17, sheet:16, spawn:[0, 0], vel:[-4, 8], accel:[1, 1], mod:[2, 0], life:100, delay:0, ppf:1, dur:20, fade:6, alpha:100, grow:[1, 1], area:[0, 0], offset:[0, 20], mode:RADIAL, size:[16, 16], rsize:[0.25, 1], rot:0, spin:0}, {type:11, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:30, fade:10, alpha:100, grow:[0.9, 0.9], area:[6, 6], mode:RADIAL, size:[64, 64], rot:0, spin:0}]}, pfx_catpunch:{sfx:"Slam", emitters:[{type:19, sheet:128, spawn:[0, -100], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[256, 256], rot:0, spin:0}, {type:19, sheet:128, spawn:[0, 110], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[256, 256], rot:180, spin:0}, {type:11, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:2, dur:33, fade:100, alpha:100, grow:[1, 1], area:[50, 70], mode:LINEAR, size:[32, 32], rot:"R", spin:0}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.3, 1.3], area:[2, 2], mode:LINEAR, size:[16, 16], rot:0, spin:10}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:7, alpha:100, grow:[0.9, 0.9], area:[2, 2], mode:LINEAR, size:[60, 60], rsize:[0.8, 1.2], rot:0, spin:20}, {type:13, sheet:16, spawn:[0, 0], vel:[8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:32, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[8, 8], rot:0, spin:0, rsize:[0.6, 1.6]}]}, pfx_stunpunch:{sfx:"punch", emitters:[{type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:7, alpha:100, grow:[0.7, 0.7], area:[2, 2], mode:LINEAR, size:[60, 60], rsize:[0.8, 1.2], rot:0, spin:20}, {type:5, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:100, alpha:100, grow:[1, 1], area:[60, 60], mode:LINEAR, size:[32, 32], rot:"R", spin:0}]}, pfx_suncure:{sfx:"sunbeam", dmgdelay:20, delayedSfx:"Cure", emitters:[{type:27, sheet:32, spawn:[0, 0], vel:[-2, -2], accel:[1.22, 1.22], mod:[0, 0], life:12, delay:0, ppf:2, dur:20, fade:-5, alpha:0, grow:[1, 1], area:[0, 0], offset:[80, 120], mode:RADIAL, size:[50, 50], rsize:[0.25, 1], rot:"theta", spin:0}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:-5, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:26}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:30, ppf:1, dur:1, fade:10, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:26}, {type:13, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:10, ppf:0.4, dur:20, fade:10, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[32, 32], rot:0, spin:0}]}, pfx_windcure:{sfx:"Gust", emitters:[{type:20, sheet:64, spawn:[0, 50], vel:[0, 0, -12, -18], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:10, alpha:100, grow:[1.1, 1.1], area:[8, 8], mode:LINEAR, size:[70, 50], rsize:[0.25, 1.5], rot:0, spin:0}, {type:19, sheet:16, spawn:[0, 50], vel:[-10, 10, -16, -24], accel:[0.92, 0.92], mod:[0, 0], life:20, delay:6, ppf:1, dur:16, fade:0, alpha:100, grow:[1, 1], area:[38, 18], mode:LINEAR, size:[8, 8], rsize:[0.4, 1.2], rot:0, spin:0}]}, pfx_firespanner:{sfx:"punch", emitters:[{type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[48, 48], rot:0, spin:-20}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:7, alpha:100, grow:[1.05, 1.05], area:[2, 2], mode:LINEAR, size:[60, 60], rsize:[0.8, 1.2], rot:0, spin:20}, {type:1, sheet:16, spawn:[0, 0], vel:[5, 8], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:5, dur:3, fade:5, alpha:100, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[32, 32], rot:"theta", spin:0}, {type:44, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:4, alpha:100, grow:[1.03, 1.03], area:[2, 2], mode:RADIAL, size:[100, 100], rot:"R", spin:10}]}, pfx_soulstrike:{sfx:null, emitters:[{type:0, sheet:32, spawn:[0, 0], vel:[7, 10], accel:[0.9, 0.9], mod:[0, -0.6], life:100, delay:0, ppf:4, dur:3, fade:7, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rot:"theta", spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:1, sheet:16, spawn:[0, 0], vel:[8, 12, 8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:"theta", spin:0}]}, pfx_astralwarp:{sfx:"weird", emitters:[{type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[48, 48], rot:0, spin:-20}, {type:14, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:14, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:7, alpha:100, grow:[1.05, 1.05], area:[2, 2], mode:LINEAR, size:[60, 60], rsize:[0.8, 1.2], rot:0, spin:20}]}, pfx_blooddrain:{sfx:"Bubble", emitters:[{type:17, sheet:16, spawn:[0, 0], vel:[3, 2], accel:[0.8, 1], mod:[2, 0], life:100, delay:0, ppf:1, dur:10, fade:6, alpha:100, grow:[1, 1], area:[0, 0], offset:[0, 20], mode:RADIAL, size:[16, 16], rsize:[0.25, 1], rot:0, spin:0}, {type:34, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.92, 0.92], mod:[0, 0], life:200, delay:0, ppf:3, dur:8, fade:5, alpha:70, grow:[1.03, 1.03], area:[16, 16], mode:RADIAL, size:[32, 32], rsize:[0.25, 1], rot:"R", spin:0}]}, pfx_curse:{sfx:"Curse", dmgdelay:20, emitters:[{type:23, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:18, delay:0, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:-90, spin:0}, {type:24, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:16, delay:2, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:-45, spin:0}, {type:33, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:14, delay:4, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:0, spin:0}, {type:34, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:12, delay:6, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:45, spin:0}, {type:23, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:10, delay:8, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:90, spin:0}, {type:24, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:8, delay:10, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:135, spin:0}, {type:33, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:6, delay:12, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:180, spin:0}, {type:34, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:4, delay:14, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:225, spin:0}, {type:23, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:2, delay:16, ppf:1, dur:1, fade:0, alpha:90, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, start_angle:-90, spin:0}, {type:23, sheet:16, spawn:[0, 0], vel:[-4, -4], accel:[1.2, 1.2], mod:[0, 0], life:20, delay:18, ppf:8, dur:6, fade:16, alpha:80, grow:[1, 1], area:[0, 0], offset:60, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"R", start_angle:270, spin:0}, {type:22, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:18, ppf:1, dur:1, fade:5, alpha:100, grow:[1.04, 1.04], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:0}]}, pfx_spectralclaw:{sfx:"Curse", emitters:[{type:19, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:16, delay:0, ppf:0.5, dur:10, fade:5, alpha:50, grow:[1, 1], area:[5, 5], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:9, sheet:32, spawn:[0, 0], vel:[3, 3, 5, 5], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:0, ppf:1, dur:16, fade:1, alpha:15, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[120, 120], rot:"R", spin:0}]}, pfx_acid:{sfx:"Poison", emitters:[{type:4, sheet:16, spawn:[0, 0], vel:[2, 2], accel:[0.98, 0.98], mod:[0, 0], life:100, delay:0, ppf:1, dur:14, fade:7, alpha:100, grow:[1, 1], area:[52, 72], mode:RADIAL, size:[12, 12], rsize:[1, 2], rot:0, spin:0}, {type:35, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:4, alpha:100, grow:[1.02, 1.02], area:[16, 20], mode:LINEAR, size:[20, 20], rsize:[0.5, 2], rot:"R", spin:1}, {type:35, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:4, alpha:60, grow:[1.02, 1.02], area:[32, 56], mode:LINEAR, size:[40, 40], rsize:[0.5, 2], rot:"R", spin:1}, {type:36, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:1, alpha:20, grow:[1.02, 1.02], area:[32, 56], mode:LINEAR, size:[40, 40], rsize:[0.5, 2], rot:"R", spin:1}]}, pfx_tears:{sfx:"stone1", dmgdelay:20, delayedSfx:"Bubble", emitters:[{type:10, sheet:32, spawn:[0, -86], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:1, dur:1, fade:20, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:23, sheet:64, spawn:[0, -80], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:26, fade:10, alpha:40, grow:[1.2, 1.2], area:[1, 1], mode:RADIAL, size:[48, 48], rot:0, spin:0}, {type:2, sheet:32, spawn:[0, -80], vel:[0, 0, 1, 1], accel:[1, 1.3], mod:[0, 0], life:13, delay:7, ppf:1, dur:0, fade:0, alpha:100, grow:[1.02, 1.02], area:[0, 0], mode:LINEAR, size:[22, 22], rot:0, spin:0}, {type:11, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:20, ppf:0.2, dur:12, fade:2, alpha:40, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[56, 36], rot:0, spin:0}, {type:10, sheet:32, spawn:[0, 0], vel:[1, 8], accel:[0.97, 0.97], mod:[0, 0], life:100, delay:20, ppf:0.5, dur:20, fade:7, alpha:100, grow:[1, 1], area:[12, 8], mode:RADIAL, size:[28, 28], rsize:[0.5, 1.5], rot:0, spin:0}]}, pfx_fairydust:{sfx:"Slam", emitters:[{type:26, sheet:16, spawn:[-30, -60], vel:[0, 0, 3, 5], accel:[1, 0.94], mod:[0, 0], life:300, delay:0, ppf:2, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[8, 8], rsize:[0.5, 1.5], rot:"R", spin:0}, {type:26, sheet:16, spawn:[0, -60], vel:[0, 0, 3, 5], accel:[1, 0.95], mod:[0, 0], life:300, delay:6, ppf:2, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[8, 8], rsize:[0.5, 1.5], rot:"R", spin:0}, {type:26, sheet:16, spawn:[30, -60], vel:[0, 0, 3, 5], accel:[1, 0.96], mod:[0, 0], life:300, delay:12, ppf:2, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[8, 8], rsize:[0.5, 1.5], rot:"R", spin:0}]}, pfx_vooze:{sfx:"Poison", dmgdelay:30, delayedSfx:"Bubble", emitters:[{type:35, sheet:32, spawn:[0, 0], vel:[6, 6], accel:[0.95, 0.95], mod:[0, 0], life:100, delay:0, ppf:5, dur:4, fade:2, alpha:70, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], rot:"R", spin:1}, {type:35, sheet:32, spawn:[0, 0], vel:[2, 2], accel:[0.95, 0.95], mod:[0, 0], life:100, delay:30, ppf:3, dur:4, fade:2, alpha:70, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], rot:"R", spin:1}, {type:35, sheet:32, spawn:[0, 0], vel:[-2, -2], accel:[1.1, 1.1], mod:[0, 0], life:100, delay:16, ppf:5, dur:4, fade:2, alpha:70, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], offset:80, rot:"R", spin:1}]}, pfx_soulflare:{sfx:"flame1", emitters:[{type:12, sheet:16, spawn:[0, 0], vel:[5, 4], accel:[0.96, 0.96], mod:[0, 0], life:200, delay:0, ppf:2, dur:12, fade:2, alpha:100, grow:[1, 1], area:[12, 12], mode:RADIAL, size:[8, 8], rot:"R", spin:4}, {type:8, sheet:32, spawn:[0, 0], vel:[4, 10], accel:[1, 1], mod:[0, 0], life:16, delay:0, ppf:5, dur:10, fade:5, alpha:50, grow:[1, 1], area:[5, 5], mode:RADIAL, size:[64, 64], rot:"theta", spin:0}, {type:9, sheet:32, spawn:[0, 0], vel:[5, 7], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:0, ppf:1, dur:16, fade:1, alpha:15, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[120, 120], rot:"R", spin:0}]}, pfx_paralysis_jolt:{sfx:"jolt", emitters:[{type:5, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:100, alpha:100, grow:[1, 1], area:[40, 40], mode:LINEAR, size:[16, 16], rot:"R", spin:0}]}, pfx_regen:{sfx:"Cure", emitters:[{type:18, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, -0.3], life:200, delay:0, ppf:1, dur:10, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:0}, {type:2, sheet:16, spawn:[0, 20], vel:[-2, 2, -4, -6], accel:[0.96, 0.96], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[32, 16], mode:LINEAR, size:[12, 12], rot:"R", spin:4}]}, pfx_cleanse:{sfx:"Cure", emitters:[{type:28, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:13, fade:5, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, size:[100, 100], rot:"R", spin:-10}, {type:28, sheet:32, spawn:[0, 0], vel:[4, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:5, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[80, 80], rot:"R", spin:10}, {type:0, sheet:16, spawn:[0, 0], vel:[3, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[12, 12], rsize:[1, 2], rot:"R", spin:4}]}, pfx_slash_fire:{sfx:"flame1", emitters:[{type:50, sheet:32, spawn:[45, -40], vel:[-10, -10, 4, 4], accel:[0.95, 1.1], mod:[0, 0.6], life:10, delay:0, ppf:1, dur:6, fade:-5, alpha:50, grow:[1.05, 1.05], area:[0, 0], mode:LINEAR, size:[42, 42], rot:30, spin:-7}, {type:5, sheet:64, spawn:[45, -40], vel:[-10, -10, 4, 4], accel:[0.95, 1.1], mod:[0, 0.6], life:10, delay:2, ppf:0.5, dur:6, fade:-2, alpha:10, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[64, 64], rot:10, spin:-4}, {type:1, sheet:16, spawn:[0, 0], vel:[5, 10], accel:[0.98, 0.9], mod:[0, -0.2], life:100, delay:4, ppf:4, dur:4, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rot:"theta", spin:0}]}, pfx_boost:{sfx:"flame1", emitters:[{type:28, sheet:16, spawn:[0, 0], vel:[-8, -8], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:3, alpha:70, grow:[1, 1], area:[0, 0], offset:120, mode:RADIAL, size:[24, 24], rot:"theta", spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.1, dur:20, fade:4, alpha:80, grow:[1.12, 1.12], area:[0, 0], mode:LINEAR, size:[32, 32], rot:0, spin:0}]}, pfx_crescendoslash:{sfx:"hit_2HSWORDS", emitters:[{type:24, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:3, alpha:100, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[82, 82], rot:0, spin:0}, {type:24, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:8, ppf:1, dur:6, fade:3, alpha:100, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[82, 82], rot:0, spin:0, flip:true}, {type:12, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0.6], life:10, delay:2, ppf:0.5, dur:6, fade:-2, alpha:10, grow:[1.1, 1.1], area:[12, 12], mode:LINEAR, size:[64, 64], rot:-45, spin:-25}, {type:28, sheet:16, spawn:[0, 0], vel:[3, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[12, 12], rsize:[1, 2], rot:"theta", spin:0}]}, pfx_potion:{sfx:"Cure", emitters:[{type:29, sheet:16, spawn:[0, 0], vel:[5, 9], accel:[0.95, 0.95], mod:[0, 0.2], life:200, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:4}, {type:38, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:13, fade:5, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, size:[100, 100], rot:"R", spin:-10}, {type:60, sheet:32, spawn:[0, 0], vel:[2, 4], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:4, alpha:80, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, size:[64, 64], rot:"R", spin:0}, {type:2, sheet:16, spawn:[0, 0], vel:[3, 6], accel:[0.95, 0.95], mod:[0, -0.1], life:200, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[16, 16], rsize:[1, 4], rot:"R", spin:4}]}, pfx_flame2:{sfx:"flame1", emitters:[{type:25, sheet:64, spawn:[0, 0], vel:[-2, 2, 2, 6], accel:[1, 1], mod:[0, -1], life:100, delay:0, ppf:1, dur:14, fade:6, alpha:100, grow:[1, 1], area:[16, 30], mode:LINEAR, size:[120, 120], rsize:[0.6, 1.2], rot:0, spin:0}, {type:1, sheet:16, spawn:[0, -20], vel:[-4, 4, 2, 4], accel:[0.95, 0.98], mod:[0, -0.1], life:200, delay:0, ppf:2, dur:12, fade:2, alpha:100, grow:[1, 1], area:[32, 50], mode:LINEAR, size:[16, 16], rsize:[0.1, 2], rot:"R", spin:4}, {type:26, sheet:64, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:4, dur:1, fade:2, alpha:80, grow:[1.02, 1.02], area:[12, 12], mode:RADIAL, size:[80, 80], rot:"R", spin:2}]}, pfx_burn:{sfx:"flame1", emitters:[{type:25, sheet:64, spawn:[0, 0], vel:[2, 4], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:14, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[80, 80], rsize:[0.6, 1.2], rot:"theta", spin:0}, {type:0, sheet:32, spawn:[0, 0], vel:[4, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:2, dur:8, fade:1, alpha:50, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[0.5, 2], rot:"theta", spin:0}, {type:26, sheet:64, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:4, dur:1, fade:1, alpha:60, grow:[1.02, 1.02], area:[12, 12], mode:RADIAL, size:[64, 64], rot:"R", spin:2}]}, pfx_null_fire:{sfx:"MPRestore", dmgdelay:30, delayedSfx:"stone1", emitters:[{type:40, sheet:16, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:0, OEFmod:{offset:-3, start_angle:6}}, {type:40, sheet:16, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:90, OEFmod:{offset:-3, start_angle:6}}, {type:40, sheet:16, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:180, OEFmod:{offset:-3, start_angle:6}}, {type:40, sheet:16, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:270, OEFmod:{offset:-3, start_angle:6}}, {type:40, sheet:16, spawn:[0, 0], vel:[10, 10], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:33, ppf:16, dur:0, fade:3, alpha:60, grow:[0.93, 0.93], area:[0, 0], mode:RADIAL, even_spacing:true, size:[48, 48], rot:"theta", spin:0}, {type:30, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:1, dur:1, fade:4, alpha:100, grow:[1.05, 1.05], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:0}]}, pfx_bolt2:{sfx:"Thunder", emitters:[{type:5, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:100, alpha:100, grow:[1, 1], area:[100, 100], mode:LINEAR, size:[32, 32], rot:"R", spin:0}, {type:6, sheet:64, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:15, delay:0, ppf:1, dur:10, fade:10, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[80, 80], rsize:[0.8, 1.2], rot:45, spin:0}, {type:10, sheet:128, spawn:[0, -108], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:50, delay:0, ppf:1, dur:1, fade:10, alpha:150, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[256, 256], rot:0, spin:0, flip:true}, {type:6, sheet:128, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:0.4, dur:14, fade:30, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:LINEAR, size:[128, 80], rot:"R", spin:0}, {type:12, sheet:64, spawn:[0, 20], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:0.2, dur:1, fade:10, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:LINEAR, size:[32, 22], rot:"R", spin:0}, {type:20, sheet:16, spawn:[0, 20], vel:[10, 20], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:10, dur:1, fade:2, alpha:80, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.5, 1.5], rot:"theta", spin:0}]}, pfx_gustshield:{sfx:"Gust", emitters:[{type:28, sheet:64, spawn:[0, 0], vel:[-6, -6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:4, dur:3, fade:5, alpha:100, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, offset:20, size:[100, 100], rot:"theta", spin:3}, {type:31, sheet:32, spawn:[0, 0], vel:[6, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:5, ppf:4, dur:1, fade:2, alpha:60, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, offset:0, size:[16, 16], rsize:[0.5, 2], rot:"theta", spin:0}]}, pfx_invn_flamethrower:{sfx:"flame1", dmgdelay:10, emitters:[{type:25, sheet:64, spawn:[0, 0], vel:[20, 22, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:8, alpha:100, grow:[1.3, 1.4], area:[4, 4], mode:LINEAR, size:[16, 16], rot:-90, spin:0}, {type:1, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.95, 0.98], mod:[0, -0.5], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[1, 1], area:[12, 12], mode:RADIAL, size:[16, 16], rsize:[0.5, 1], rot:"R", spin:4}]}, pfx_invn_sleep:{sfx:"Gust", dmgdelay:12, emitters:[{type:15, sheet:32, spawn:[0, 0], vel:[10, 12, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:3, alpha:100, grow:[1.13, 1.13], area:[4, 4], mode:LINEAR, size:[16, 16], rot:-90, spin:0}, {type:8, sheet:16, spawn:[0, 0], vel:[10, 15, -7, 7], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:60, grow:[1, 1], area:[12, 12], mode:LINEAR, size:[12, 12], rsize:[0.5, 1], rot:"R", spin:4}]}, pfx_potionspray:{sfx:null, dmgdelay:8, emitters:[{type:40, sheet:32, spawn:[0, 0], vel:[-8, -6, -20, -12], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:3, dur:20, fade:10, alpha:100, grow:[1.2, 1.2], area:[4, 4], mode:LINEAR, size:[8, 8], rsize:[0.5, 2], rot:"R", spin:0}]}, pfx_sprayfall:{sfx:"cure1", emitters:[{type:40, sheet:32, spawn:[-30, -60], vel:[0, 0, 3, 5], accel:[1, 0.94], mod:[0, 0], life:300, delay:0, ppf:1, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:0}, {type:40, sheet:32, spawn:[0, -60], vel:[0, 0, 3, 5], accel:[1, 0.95], mod:[0, 0], life:300, delay:6, ppf:1, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:0}, {type:40, sheet:32, spawn:[30, -60], vel:[0, 0, 3, 5], accel:[1, 0.96], mod:[0, 0], life:300, delay:12, ppf:1, dur:8, fade:2, alpha:100, grow:[1, 1], area:[40, 8], mode:LINEAR, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:0}]}, pfx_firestorm:{sfx:"flame1", dmgdelay:30, emitters:[{type:70, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.5, dur:30, fade:9, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[150, 150], rot:"R", spin:8}, {type:25, sheet:64, spawn:[0, 0], vel:[16, 22], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:2, skipframes:2, dur:30, fade:5, alpha:100, grow:[0.94, 0.94], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[120, 120], rsize:[1, 2], rot:"theta", spin:-2, OEFmod:{start_angle:16}}, {type:1, sheet:16, spawn:[0, 0], vel:[4, 22], accel:[0.95, 0.98], mod:[0, -0.2], life:200, delay:0, ppf:1, dur:30, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:4}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.2, dur:30, fade:9, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[260, 260], rot:"R", spin:8}, {type:26, sheet:64, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:0.25, dur:30, fade:2, alpha:80, grow:[1.02, 1.02], area:[20, 20], mode:RADIAL, size:[160, 160], rot:"R", spin:2, OEFmod:{area:[8, 10]}}, {type:48, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1500, 600], rot:0, spin:0}, {type:48, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:41, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1500, 600], rot:0, spin:0}]}, pfx_leafcure:{sfx:"Cure", emitters:[{type:39, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:14, fade:10, alpha:100, grow:[1, 1], area:[2, 2], mode:RADIAL, size:[80, 80], rot:"R", spin:0}, {type:49, sheet:32, spawn:[0, 0], vel:[6, 8], accel:[0.92, 0.92], mod:[0, 0], life:200, delay:0, ppf:2, dur:3, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.2], rot:"R", spin:4}, {type:39, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[60, 60], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.5], rot:0, spin:0}]}, pfx_galaxy:{sfx:"flame1", dmgdelay:30, emitters:[{type:18, sheet:64, spawn:[0, 0], vel:[10, 10], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:100, grow:[1.1, 1.1], area:[0, 0], offset:0, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:90, OEFmod:{offset:3, start_angle:12}}, {type:18, sheet:64, spawn:[0, 0], vel:[10, 10], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:100, grow:[1.1, 1.1], area:[0, 0], offset:0, mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0, start_angle:-90, OEFmod:{offset:3, start_angle:12}}, {type:6, sheet:64, spawn:[0, 0], vel:[3, 3], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:15, fade:8, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:RADIAL, size:[20, 20], rot:0, spin:15}, {type:6, sheet:64, spawn:[0, 0], vel:[3, 3], accel:[1, 1], mod:[0, 0], life:30, delay:0, ppf:0.4, dur:15, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[170, 170], rot:0, spin:-15}, {type:38, sheet:32, spawn:[0, 0], vel:[12, 24], accel:[0.95, 0.95], mod:[0, 0], life:100, delay:0, ppf:2, dur:15, fade:1, alpha:100, grow:[0.99, 0.99], area:[0, 0], mode:RADIAL, size:[4, 4], rsize:[1, 8], rot:0, spin:0}, {type:19, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:1, alpha:60, grow:[0.99, 0.99], area:[0, 0], offset:0, mode:RADIAL, size:[500, 500], rot:"theta", spin:10}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1200, 600], rot:0, spin:0}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:41, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1200, 600], rot:0, spin:0}]}, pfx_elementalshift:{sfx:"MPRestore", emitters:[{type:30, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:0, size:[32, 32], rot:0, spin:0}, {type:31, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:3, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:45, size:[32, 32], rot:0, spin:0}, {type:32, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:6, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:90, size:[32, 32], rot:0, spin:0}, {type:33, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:9, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:135, size:[32, 32], rot:0, spin:0}, {type:34, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:12, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:180, size:[32, 32], rot:0, spin:0}, {type:35, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:15, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:225, size:[32, 32], rot:0, spin:0}, {type:36, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:18, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:270, size:[32, 32], rot:0, spin:0}, {type:37, sheet:64, spawn:[0, 0], vel:[5, 5], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:21, ppf:1, dur:1, fade:3, alpha:60, grow:[1.13, 1.13], area:[0, 0], offset:50, mode:RADIAL, even_spacing:true, start_angle:315, size:[32, 32], rot:0, spin:0}]}, pfx_maelstrom:{sfx:"Curse", dmgdelay:30, emitters:[{type:37, sheet:32, spawn:[-40, 0], vel:[-5, 5], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[150, 220], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:10}, {type:29, sheet:64, spawn:[-40, 0], vel:[-8, 8], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:2, dur:16, fade:2, alpha:60, grow:[1.02, 1.02], area:[80, 150], mode:RADIAL, size:[160, 160], rsize:[0.5, 1.5], rot:"R", spin:1}]}, pfx_plasmabreath:{sfx:"bolt1", dmgdelay:22, delayedSfx:"Explosion", emitters:[{type:39, sheet:64, spawn:[240, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:10, delay:22, ppf:1, dur:20, fade:0, alpha:100, grow:[0.8, 0.8], area:[150, 220], mode:RADIAL, size:[100, 100], rsize:[0.5, 3], rot:"R", spin:10}, {type:39, sheet:64, spawn:[0, 0], vel:[20, 35, -17, 17], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:0.5, dur:20, fade:3, alpha:100, grow:[1.09, 1.09], area:[12, 12], mode:LINEAR, size:[32, 32], rsize:[0.5, 1], rot:"R", spin:135}, {type:60, sheet:32, spawn:[240, 0], vel:[2, 4], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:24, ppf:1, dur:10, fade:2, alpha:40, grow:[1.02, 1.02], area:[150, 220], mode:RADIAL, size:[200, 200], rot:"R", spin:0}]}, pfx_mindwave:{sfx:"dragon_roar", dmgdelay:10, emitters:[{type:38, sheet:64, spawn:[0, 0], vel:[20, 28, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.2, dur:20, fade:8, alpha:100, grow:[1.3, 1.4], area:[4, 4], mode:LINEAR, size:[32, 32], rot:0, spin:0}]}, pfx_astralpunch:{sfx:"punch", emitters:[{type:39, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:6, fade:10, alpha:100, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[48, 48], rot:"R", spin:-20}, {type:38, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:6, fade:10, alpha:100, grow:[1, 1], area:[2, 2], mode:LINEAR, size:[80, 80], rot:"R", spin:20}, {type:14, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:9, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:LINEAR, size:[16, 16], rot:0, spin:0}]}, pfx_ionstorm:{sfx:"bolt1", dmgdelay:22, delayedSfx:"Explosion", emitters:[{type:39, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:10, delay:0, ppf:2, dur:24, fade:0, alpha:100, grow:[0.8, 0.8], area:[150, 220], mode:RADIAL, size:[100, 100], rsize:[0.5, 3], rot:"R", spin:10}, {type:60, sheet:32, spawn:[0, 0], vel:[2, 4], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:40, grow:[1.02, 1.02], area:[150, 220], mode:RADIAL, size:[200, 200], rot:"R", spin:0}]}, pfx_one_sparkle_FIRE:{emitters:[{type:70, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, size:[42, 42], rot:"R", spin:-10}]}, pfx_benthic_pressure:{sfx:"Bubble", emitters:[{type:30, sheet:32, spawn:[0, 0], vel:[7, 10], accel:[0.9, 0.9], mod:[0, -0.6], life:100, delay:13, ppf:8, dur:6, fade:7, alpha:100, grow:[1, 1], area:[0, 0], offset:50, mode:RADIAL, size:[48, 48], rot:"theta", spin:0}, {type:3, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:3, fade:5, alpha:100, grow:[0.96, 0.96], area:[10, 10], mode:LINEAR, size:[200, 200], rot:0, spin:23}, {type:11, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:13, ppf:1, dur:1, fade:5, alpha:100, grow:[1.15, 1.15], area:[0, 0], mode:LINEAR, size:[28, 28], rot:"R", spin:20}, {type:30, sheet:32, spawn:[0, 0], vel:[-10, -20], accel:[0.9, 0.9], mod:[0, -0.6], life:100, delay:0, ppf:8, dur:6, fade:7, alpha:100, grow:[1, 1], area:[0, 0], offset:100, mode:RADIAL, size:[48, 48], rot:"theta", spin:0}, {type:2, sheet:32, spawn:[0, 0], vel:[8, 12, 8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:13, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rot:"R", spin:0}]}, pfx_dispel:{sfx:"Cure", emitters:[{type:1, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:10, alpha:100, grow:[1.17, 1.17], area:[0, 0], mode:LINEAR, size:[48, 48], rot:0, spin:0}, {type:38, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:13, fade:5, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, size:[100, 100], rot:"R", spin:-10}, {type:37, sheet:32, spawn:[0, 0], vel:[4, 6], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:5, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[80, 80], rot:"R", spin:10}, {type:0, sheet:16, spawn:[0, 0], vel:[3, 6], accel:[0.95, 0.95], mod:[0, -0.1], life:200, delay:0, ppf:16, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[12, 12], rsize:[1, 2], rot:"R", spin:4}]}, pfx_energy_burst_EARTH:{sfx:"Slam", emitters:[{type:73, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:3, alpha:100, grow:[1.02, 1.02], area:[2, 2], mode:LINEAR, size:[120, 120], rot:"R", spin:20}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.5, dur:26, fade:10, alpha:100, grow:[1.15, 1.15], area:[0, 0], mode:LINEAR, size:[80, 80], rot:"R", spin:0}, {type:73, sheet:32, spawn:[0, 0], vel:[13, 13], accel:[0.95, 0.95], mod:[0, -0.1], life:200, delay:0, ppf:5, dur:12, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[12, 12], rsize:[1, 2], rot:"R", spin:4, OEFmod:{start_angle:12}}]}, pfx_ice1:{sfx:"Bubble", emitters:[{type:30, sheet:32, spawn:[0, 0], vel:[5, 8], accel:[0.92, 0.92], mod:[0, 0], life:200, delay:0, ppf:5, dur:9, fade:5, alpha:100, grow:[1.03, 1.03], area:[16, 16], mode:RADIAL, size:[32, 32], rsize:[0.25, 1], rot:"R", spin:0}]}, pfx_chomp:{sfx:"bite", emitters:[{type:31, sheet:32, spawn:[-30, -30], vel:[0, 0, 7, 7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:180, spin:0}, {type:31, sheet:32, spawn:[-20, 37], vel:[0, 0, -7, -7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:31, sheet:32, spawn:[-10, -43], vel:[0, 0, 7, 7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:180, spin:0}, {type:31, sheet:32, spawn:[0, 50], vel:[0, 0, -7, -7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:31, sheet:32, spawn:[10, -43], vel:[0, 0, 7, 7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:180, spin:0}, {type:31, sheet:32, spawn:[20, 37], vel:[0, 0, -7, -7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:0}, {type:31, sheet:32, spawn:[30, -30], vel:[0, 0, 7, 7], accel:[0.84, 0.84], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:LINEAR, size:[28, 28], rot:180, spin:0}, {type:34, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.92, 0.92], mod:[0, 0], life:200, delay:4, ppf:3, dur:8, fade:5, alpha:70, grow:[1.03, 1.03], area:[36, 16], mode:RADIAL, size:[60, 60], rsize:[0.25, 1], rot:"R", spin:0}]}, pfx_pyromagia:{sfx:"MPRestore", dmgdelay:33, delayedSfx:"Explosion", emitters:[{type:70, sheet:32, spawn:[0, 0], vel:[20, 20], accel:[0.95, 0.95], rvelmod:-1, mod:[0, 0], life:36, delay:0, ppf:12, dur:1, fade:-3, alpha:10, maxalpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[26, 26], rot:"theta", spin:12}, {type:25, sheet:64, spawn:[0, 0], vel:[5, 8], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:3, dur:14, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[120, 120], rsize:[0.6, 1.2], rot:"theta", spin:0}, {type:0, sheet:32, spawn:[0, 0], vel:[10, 15], accel:[0.95, 0.95], mod:[0, -0.2], life:200, delay:33, ppf:2, dur:8, fade:1, alpha:50, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[0.5, 2], rot:"theta", spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:0.4, dur:16, fade:10, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[80, 80], rot:"R", spin:0}]}, pfx_frostasia:{sfx:"MPRestore", dmgdelay:33, delayedSfx:"Slam", emitters:[{type:71, sheet:32, spawn:[0, 0], vel:[20, 20], accel:[0.95, 0.95], rvelmod:-1, mod:[0, 0], life:36, delay:0, ppf:12, dur:1, fade:-3, alpha:10, maxalpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[26, 26], rot:"theta", spin:12}, {type:30, sheet:32, spawn:[0, 0], vel:[5, 8], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:3, dur:14, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[120, 120], rsize:[0.6, 1.2], rot:"theta", spin:0}, {type:76, sheet:32, spawn:[0, 0], vel:[10, 15], accel:[0.95, 0.95], mod:[0, -0.2], life:200, delay:33, ppf:2, dur:8, fade:1, alpha:50, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[0.5, 2], rot:"theta", spin:0}, {type:11, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:0.4, dur:16, fade:10, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[80, 80], rot:"R", spin:0}]}, pfx_cure2:{sfx:"MPRestore", dmgdelay:30, delayedSfx:"Cure", emitters:[{type:1, sheet:32, spawn:[0, 0], vel:[12, 12], accel:[1, 1], rvelmod:-1, mod:[0, 0], life:30, delay:0, ppf:1, dur:14, fade:-10, alpha:0, maxalpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[1, 2], rot:0, spin:0}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:30, ppf:1, dur:10, fade:5, alpha:100, grow:[1.01, 1.01], area:[0, 0], mode:LINEAR, size:[80, 80], rsize:[1, 1.5], rot:"R", spin:-8}, {type:1, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:30, ppf:1, dur:14, fade:10, alpha:100, grow:[1.06, 1.06], area:[0, 0], mode:RADIAL, size:[80, 80], rsize:[1, 2], rot:"R", spin:9}, {type:28, sheet:32, spawn:[0, 0], vel:[7, 10], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:30, ppf:1, dur:10, fade:5, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[120, 120], rot:"R", spin:10}, {type:2, sheet:16, spawn:[0, 0], vel:[10, 14], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:30, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[18, 18], rsize:[1, 2], rot:"R", spin:14}]}, pfx_grimenergy:{sfx:"Curse", emitters:[{type:39, sheet:32, spawn:[0, 0], vel:[-1, -1], accel:[1.22, 1.22], mod:[0, 0], life:16, delay:0, ppf:1, dur:20, fade:0, alpha:100, grow:[1.05, 1.05], area:[0, 0], offset:[60, 100], mode:RADIAL, size:[16, 16], rsize:[0.25, 3], rot:"theta", spin:0}, {type:19, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:30, fade:10, alpha:100, grow:[0.9, 0.9], area:[6, 6], mode:RADIAL, size:[100, 100], rot:0, spin:0}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.5, dur:26, fade:10, alpha:100, grow:[1.15, 1.15], area:[0, 0], mode:LINEAR, size:[80, 80], rot:"R", spin:0}]}, pfx_twister:{sfx:"Gust", dmgdelay:20, emitters:[{type:8, sheet:16, spawn:[50, 50], Coffset:[0, 0], vel:[-3, 10, -9, -10], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:30, fade:5, alpha:100, grow:[1, 1], area:[16, 16], mode:LINEAR, size:[8, 8], rsize:[0.25, 1.5], rot:0, spin:0, OEFmod:{Coffset:[-4, 0]}}, {type:20, sheet:64, spawn:[50, 50], Coffset:[0, 0], vel:[0, 0, -9, -10], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:3, dur:30, fade:5, alpha:100, grow:[1.14, 1.14], area:[6, 6], mode:LINEAR, size:[20, 15], rot:0, spin:0, OEFmod:{Coffset:[-4, 0]}}, {type:12, sheet:64, spawn:[50, 50], Coffset:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:30, fade:1, alpha:40, grow:[1.04, 1.04], area:[6, 6], mode:LINEAR, size:[20, 15], rsize:[0.25, 1.5], rot:0, spin:0, OEFmod:{Coffset:[-4, 0]}}]}, pfx_whirlpool:{sfx:"Bubble", emitters:[{type:71, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:6, fade:3, alpha:100, grow:[1.02, 1.02], area:[2, 2], mode:LINEAR, size:[120, 120], rot:"R", spin:20}, {type:40, sheet:32, spawn:[0, 0], vel:[4, 8], accel:[0.96, 0.96], mod:[0, 0], life:100, delay:0, ppf:1, dur:24, fade:6, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[60, 60], rsize:[0.5, 1], rot:"R", spin:5}, {type:60, sheet:32, spawn:[0, 0], vel:[8, 8], accel:[0.97, 0.97], mod:[0, 0], life:200, delay:0, ppf:2, dur:24, fade:5, alpha:100, grow:[0.93, 0.93], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[80, 80], rot:"R", spin:18, OEFmod:{start_angle:17}}]}, pfx_razorleaf:{sfx:"slash2", dmgdelay:10, countSfx:[8, 15, 22], emitters:[{type:49, sheet:32, spawn:[0, 0], vel:[-15, -12], accel:[0.93, 0.93], mod:[0, 0], life:200, delay:0, ppf:1, dur:23, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, offset:[40, 60], size:[32, 32], rsize:[0.5, 1.1], rot:"R", spin:14}, {type:24, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:5, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[10, 10], mode:RADIAL, offset:[0, 60], size:[32, 32], rsize:[0.5, 2], rot:"R", spin:0}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:8, ppf:0.5, dur:16, fade:3, alpha:20, grow:[1.2, 1.2], area:[10, 10], mode:LINEAR, size:[80, 80], rot:"R", spin:0}]}, pfx_wildfire:{sfx:"flame1", dmgdelay:16, emitters:[{type:25, sheet:64, spawn:[0, 0], Coffset:[-50, 0], vel:[-2, 2, 2, 6], accel:[1, 1], mod:[0, -1], life:100, delay:0, ppf:1, dur:24, fade:8, alpha:100, grow:[1.12, 1.12], area:[7, 3], mode:LINEAR, size:[8, 8], rsize:[0.6, 1.2], rot:0, spin:-1, OEFmod:{Coffset:[5, 0], size:[2, 2.5], mod:[0, -0.07], vel:[0, 0, 0.2, 0.2]}}, {type:1, sheet:16, spawn:[0, 0], Coffset:[-50, 0], vel:[-2, 2, 2, 6], accel:[0.99, 0.99], mod:[0, -0.4], life:100, delay:3, ppf:1, dur:24, fade:2, alpha:100, grow:[1, 1], area:[7, 3], mode:LINEAR, size:[8, 8], rsize:[1, 4], rot:"R", spin:-1, OEFmod:{Coffset:[5, 0]}}, {type:26, sheet:64, spawn:[0, 0], Coffset:[-50, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:4, ppf:1, dur:24, fade:0.5, alpha:22, grow:[1.02, 1.02], area:[24, 24], mode:LINEAR, size:[32, 32], rsize:[0.6, 1.6], rot:"R", spin:-1, OEFmod:{Coffset:[5, 0], size:[2, 2]}}]}, pfx_bloodclaw:{sfx:"hit_2HSWORDS", emitters:[{type:49, sheet:64, spawn:[-50, -50, -45], vel:[0, 0, 30, 30], accel:[1, 0.8], mod:[0, 0], life:30, delay:0, ppf:1, dur:3, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[88, 88], rot:0, spin:0}, {type:32, sheet:16, spawn:[-50, -50, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:32, sheet:16, spawn:[-30, -70, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:32, sheet:16, spawn:[-70, -30, -45], vel:[0, 0, -0.1, 0.1], accel:[1.02, 1.02], mod:[0, 0], life:30, delay:0, ppf:1, dur:10, fade:1, alpha:40, grow:[1, 1], area:[4, 4], Coffset:[0, 0], mode:LINEAR, size:[16, 48], sizemod:[0.5, 2], rot:45, spin:0, OEFmod:{Coffset:[0, 15]}}, {type:34, sheet:32, spawn:[-50, -50, -45], vel:[4, 4], accel:[0.92, 0.92], mod:[0, 0], life:200, delay:4, ppf:3, dur:10, fade:2, alpha:50, grow:[1.03, 1.03], area:[36, 16], Coffset:[0, 0], mode:RADIAL, size:[60, 60], rsize:[0.25, 1], rot:"R", spin:0, OEFmod:{Coffset:[0, 15]}}]}, pfx_zombify:{sfx:"monster_undead", emitters:[{type:47, sheet:64, spawn:[0, 0], vel:[4, 6], accel:[0.9, 0.9], mod:[0, -0.3], life:200, delay:0, ppf:1, dur:10, fade:5, alpha:100, grow:[1, 1], area:[16, 32], mode:RADIAL, size:[64, 64], rsize:[0.5, 1.5], rot:0, spin:0}, {type:14, sheet:32, spawn:[0, 0], vel:[3, 3, 5, 5], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:0, ppf:1, dur:16, fade:1, alpha:15, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[120, 120], rot:"R", spin:0}]}, pfx_bisect:{sfx:"Slam", emitters:[{type:14, sheet:64, spawn:[0, -40], Coffset:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:10, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[16, 32], rot:0, spin:0, OEFmod:{Coffset:[0, 10], size:[2, 3]}}, {type:46, sheet:64, spawn:[26, 0], vel:[6, 6, 0, 0], accel:[0.9, 0.9], mod:[0, 0.1], life:200, delay:7, ppf:1, dur:1, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[64, 100], rot:0, spin:1}, {type:46, sheet:64, spawn:[-26, 0], vel:[-6, -6, 0, 0], accel:[0.9, 0.9], mod:[0, 0.1], life:200, delay:7, ppf:1, dur:1, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[64, 100], rot:0, spin:-1, flip:true}]}, pfx_shell_FIRE:{sfx:"MPRestore", emitters:[{type:70, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:4, alpha:100, grow:[1.02, 1.02], area:[0, 0], mode:LINEAR, size:[80, 80], rot:0, spin:15}, {type:80, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[32, 32], rot:0, spin:15}, {type:80, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[32, 32], rot:45, spin:15}]}, pfx_antifire:{sfx:"MPRestore", emitters:[{type:1, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:12, ppf:1, dur:0, fade:10, alpha:100, grow:[1.17, 1.17], area:[0, 0], mode:LINEAR, size:[48, 48], rot:0, spin:0}, {type:70, sheet:32, spawn:[0, 0], vel:[-9, -9], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:36, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, offset:0, even_spacing:true, start_angle:0, size:[32, 32], rot:"R", spin:15, OEFmod:{start_angle:10}}, {type:70, sheet:32, spawn:[0, 0], vel:[-9, -9], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:36, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, offset:0, even_spacing:true, start_angle:180, size:[32, 32], rot:"R", spin:15, OEFmod:{start_angle:-10}}, {type:70, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:12, ppf:1, dur:8, fade:5, alpha:100, grow:[1.15, 1.125], area:[0, 0], mode:LINEAR, size:[32, 32], rot:"R", spin:15}]}, pfx_critical:{sfx:null, emitters:[{type:38, sheet:16, spawn:[0, 0], vel:[25, 25], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:12, dur:1, fade:3, alpha:60, grow:[1, 1], area:[0, 0], mode:RADIAL, offset:0, even_spacing:true, size:[32, 32], rot:"theta", spin:0}]}, pfx_darkside:{sfx:"Curse", dmgdelay:15, delayedSfx:"Explosion", emitters:[{type:75, sheet:32, spawn:[0, -240], vel:[0, 0, 20, 40], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[1.01, 1.01], area:[130, 0], mode:LINEAR, size:[32, 32], rsize:[0.5, 4], rot:"R", spin:10}, {type:75, sheet:32, spawn:[0, 240], vel:[0, 0, -40, -20], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[1.01, 1.01], area:[130, 0], mode:LINEAR, size:[32, 32], rsize:[0.5, 4], rot:"R", spin:10}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:15, ppf:1, dur:1, fade:2, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], rot:"R", spin:10}, {type:15, sheet:64, spawn:[0, 0], vel:[-9, 9], accel:[1, 1], mod:[0, 0], life:200, delay:15, ppf:1, dur:20, fade:4, alpha:100, grow:[1.1, 1.1], area:[160, 200], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], rot:"R", spin:10}]}, pfx_bubblerot:{sfx:"bubble1b", dmgdelay:18, delayedSfx:"Poison", emitters:[{type:45, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:6, delay:0, ppf:1, dur:1, fade:0, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[60, 60], rot:0, spin:0}, {type:45, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:14, delay:7, ppf:1, dur:0, fade:0, alpha:100, grow:[0.8, 0.8], area:[0, 0], mode:LINEAR, size:[140, 140], rot:0, spin:0}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:18, ppf:1, dur:1, fade:10, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[32, 32], rot:0, spin:0}, {type:69, sheet:32, spawn:[0, 0], vel:[2, 8, 5, 8], accel:[0.96, 0.96], mod:[0, 0], life:80, delay:18, ppf:3, dur:5, fade:2, alpha:100, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[16, 16], rsize:[0.1, 2], rot:0, spin:0}, {type:35, sheet:32, spawn:[0, 0], vel:[3, 7], accel:[0.92, 0.92], mod:[0, 0], life:80, delay:18, ppf:3, dur:5, fade:2, alpha:50, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[64, 64], rsize:[0.1, 1], rot:"R", spin:3}, {type:29, sheet:64, spawn:[0, 0], vel:[3, 7], accel:[0.92, 0.92], mod:[0, 0], life:80, delay:18, ppf:3, dur:5, fade:2, alpha:60, grow:[1, 1], area:[8, 8], mode:RADIAL, size:[64, 64], rsize:[0.1, 1.2], rot:"R", spin:3}]}, pfx_slime:{sfx:"Poison", emitters:[{type:35, sheet:32, spawn:[0, 0], vel:[4, 8], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:4, dur:8, fade:4, alpha:70, grow:[1.04, 1.04], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.5, 1], rot:"R", spin:5}, {type:21, sheet:16, spawn:[0, 0], vel:[4, 15], accel:[0.92, 0.92], mod:[0, 0.2], life:100, delay:0, ppf:2, dur:8, fade:2, alpha:70, grow:[0.98, 0.98], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.1, 1.4], rot:"theta", spin:0}]}, pfx_dark_gift:{sfx:"Curse", dmgdelay:30, delayedSfx:"MPRestore", emitters:[{type:75, sheet:32, spawn:[0, 0], vel:[15, 30], accel:[0.9, 0.9], rvelmod:-1, mod:[0, 0], life:200, delay:0, ppf:5, dur:6, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:10}, {type:75, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:30, ppf:1, dur:5, fade:8, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[80, 80], rot:"R", spin:10}, {type:19, sheet:64, spawn:[0, 0], vel:[-8, 8], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:8, dur:6, fade:2, alpha:60, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, even_spacing:true, size:[60, 60], rsize:[0.5, 1.5], rot:"R", spin:1}]}, pfx_gdmwave_earth:{sfx:"Curse", dmgdelay:30, delayedSfx:"Explosion", emitters:[{type:39, sheet:32, spawn:[0, 0], vel:[15, 30], accel:[0.9, 0.9], rvelmod:-1, mod:[0, 0], life:200, delay:0, ppf:5, dur:6, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:10}, {type:39, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:30, ppf:1, dur:30, fade:8, alpha:100, grow:[1.4, 1.3], area:[0, 0], mode:RADIAL, size:[80, 80], rot:"R", spin:10}, {type:39, sheet:32, spawn:[0, 0], vel:[15, 30], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:30, ppf:5, dur:16, fade:1, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 4], rot:"R", spin:10}, {type:39, sheet:32, spawn:[0, 0], vel:[20, 20], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:30, ppf:6, skipframes:1, dur:10, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, even_spacing:true, start_angle:0, size:[20, 20], rot:"theta", spin:0, OEFmod:{start_angle:17}}, {type:10, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:30, ppf:1, dur:0, fade:8, alpha:100, grow:[1.3, 1.3], area:[0, 0], mode:RADIAL, size:[60, 60], rot:"R", spin:8}, {type:10, sheet:64, spawn:[0, 0], vel:[-12, 12], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:8, dur:6, fade:2, alpha:60, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, even_spacing:true, size:[60, 60], rsize:[0.5, 1.5], rot:"R", spin:1}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[800, 600], rot:0, spin:0}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:41, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[800, 600], rot:0, spin:0}]}, pfx_cloudburst:{sfx:"Gust", dmgdelay:30, delayedSfx:"hit_MARTIAL", emitters:[{type:27, sheet:64, spawn:[0, 0], vel:[30, 40], rvelmod:-4, accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:8, dur:6, fade:2, alpha:60, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, size:[60, 60], rsize:[0.5, 1.5], rot:"theta", spin:1}]}, pfx_wingblade:{sfx:"Gust", dmgdelay:30, delayedSfx:"hit_MARTIAL", emitters:[{type:28, sheet:64, spawn:[0, 0], vel:[10, 30, -2, 2], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:30, fade:2, alpha:60, grow:[1.01, 1.01], area:[60, 200], mode:LINEAR, size:[60, 60], rsize:[0.5, 3], rot:-200, spin:3}]}, pfx_thoughtpulse:{sfx:"stone1", dmgdelay:22, delayedSfx:"Slam", emitters:[{type:47, sheet:16, spawn:[0, 0], vel:[20, 20], rvelmod:-2, accel:[1, 1], mod:[0, 0], life:22, delay:0, ppf:9, dur:3, fade:-3, alpha:20, grow:[1.07, 1.07], area:[0, 0], mode:RADIAL, even_spacing:true, size:[8, 8], rsize:[0.2, 1.2], rot:0, spin:0, start_angle:0, OEFmod:{start_angle:55}}, {type:37, sheet:32, spawn:[0, 0], vel:[10, 30], rvelmod:-2, accel:[0.9, 0.9], mod:[0, 0], life:200, delay:22, ppf:12, dur:1, fade:2, alpha:60, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.2, 1.5], rot:"R", spin:15}, {type:37, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:22, ppf:1, dur:10, fade:12, alpha:100, grow:[1.4, 1.4], area:[6, 6], mode:RADIAL, size:[30, 30], rot:"R", spin:8}]}, pfx_tsunami:{sfx:"menuOpen", dmgdelay:20, delayedSfx:"Bubble", emitters:[{type:13, sheet:128, spawn:[-500, 0], Coffset:[0, -100], vel:[44, 50, 0, 0], accel:[0.97, 0.97], mod:[0, 0], life:200, delay:0, ppf:1, dur:4, fade:0.5, alpha:60, grow:[1.01, 1.01], area:[0, 0], mode:LINEAR, size:[256, 256], rot:0, spin:0, OEFmod:{Coffset:[0, 100]}}, {type:60, sheet:32, spawn:[0, 0], Coffset:[-600, 0], vel:[2, 4], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:1, dur:30, fade:1, alpha:40, grow:[1.02, 1.02], area:[0, 220], mode:RADIAL, size:[200, 200], rot:"R", spin:0, OEFmod:{Coffset:[30, 0]}}, {type:40, sheet:32, spawn:[170, 0], vel:[-3, 3, -3, 3], accel:[1, 1], mod:[0, 0], life:100, delay:20, ppf:5, dur:5, fade:10, alpha:100, grow:[1.1, 1.1], area:[30, 200], mode:LINEAR, size:[80, 80], rsize:[0.5, 1.5], rot:"R", spin:0}]}, pfx_death:{sfx:"Curse", dmgdelay:28, delayedSfx:"monster_undead", emitters:[{type:47, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:28, ppf:1, dur:0, fade:3, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:0}, {type:29, sheet:64, spawn:[0, 0], vel:[1, 8], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:28, ppf:3, dur:6, fade:1, alpha:40, grow:[0.99, 0.99], area:[0, 0], mode:RADIAL, size:[64, 64], rsize:[0.5, 2], rot:"R", spin:0}, {type:23, sheet:16, spawn:[0, 0], vel:[5, 20], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:28, ppf:3, dur:6, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.5, 2], rot:"R", spin:2}, {type:35, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:28, ppf:1, dur:0, fade:1, alpha:40, grow:[1.01, 1.01], area:[0, 0], mode:RADIAL, size:[200, 200], rot:0, spin:10}, {type:24, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:30, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], offset:200, rot:"theta", spin:0, start_angle:0, even_spacing:true, OEFmod:{start_angle:30, offset:-6}}]}, pfx_phoenixdown:{sfx:"Cure", emitters:[{type:6, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:10, alpha:100, grow:[1.06, 1.06], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[1, 2], rot:"R", spin:9}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:3, alpha:30, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[50, 50], rsize:[1, 2], rot:"R", spin:5}, {type:83, sheet:32, spawn:[0, 0], vel:[-5, 5, -2, 8], accel:[0.96, 0.96], mod:[0, -0.3], life:200, delay:0, ppf:2, dur:6, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:2}, {type:70, sheet:32, spawn:[0, 0], vel:[4, 8], accel:[0.93, 0.93], mod:[0, 0], life:200, delay:0, ppf:2, dur:6, fade:1, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.2, 1], rot:"R", spin:20}]}, pfx_laserbeam:{sfx:"laserbeam", emitters:[{type:44, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.93, 0.93], mod:[0, 0], life:200, delay:0, ppf:2, dur:6, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.2, 1], rot:"theta", spin:0}, {type:44, sheet:16, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:10, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[32, 32], rot:0, spin:0}]}, pfx_perforate:{sfx:"hit_2HSWORDS", emitters:[{type:24, sheet:64, spawn:[0, 0], Coffset:[0, 0], vel:[4, 4, 2, 2], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:8, ppf:1, dur:0, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[100, 100], rot:-30, spin:1}, {type:24, sheet:64, spawn:[0, 0], Coffset:[0, 0], vel:[-4, -4, 2, 2], accel:[0.98, 0.98], mod:[0, 0], life:200, delay:8, ppf:1, dur:0, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[100, 100], rot:-60, spin:-1}, {type:48, sheet:64, spawn:[0, -40], Coffset:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:0.2, dur:10, fade:10, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:LINEAR, size:[60, 60], rot:90, spin:0, OEFmod:{Coffset:[0, 40], size:[30, 5]}}, {type:10, sheet:64, spawn:[0, -40], Coffset:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:10, fade:10, alpha:100, grow:[1.1, 1.1], area:[5, 5], mode:LINEAR, size:[16, 16], rot:0, spin:0, OEFmod:{Coffset:[0, 10], size:[4, 3]}}]}, pfx_immoral:{sfx:"Slam", emitters:[{type:41, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[0.98, 0.98], area:[0, 0], mode:RADIAL, even_spacing:true, size:[100, 100], rot:0, spin:10}, {type:44, sheet:16, spawn:[0, 0], vel:[12, 12], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:6, dur:1, fade:2, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, even_spacing:true, size:[48, 48], rot:"theta", spin:0}, {type:45, sheet:16, spawn:[0, 0], vel:[18, 18], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:9, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:6, alpha:100, grow:[1.07, 1.07], area:[0, 0], mode:RADIAL, even_spacing:true, size:[120, 120], rot:0, spin:10}]}, pfx_sinstrike:{sfx:"hit_2HSWORDS", emitters:[{type:17, sheet:16, spawn:[0, 0], vel:[5, 16], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:16, ppf:12, dur:1, fade:2, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.5, 2], rot:"theta", spin:0}, {type:29, sheet:64, spawn:[0, 0], vel:[20, 20], rvelmod:-2, accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:7, dur:1, fade:5, alpha:100, grow:[0.93, 0.93], area:[0, 0], mode:RADIAL, even_spacing:true, size:[80, 80], rot:"R", spin:0}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:6, alpha:100, grow:[1.07, 1.07], area:[0, 0], mode:RADIAL, even_spacing:true, size:[120, 120], rot:0, spin:10}, {type:11, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.05, 1.05], area:[0, 0], mode:RADIAL, even_spacing:true, size:[100, 100], rot:0, spin:20}]}, pfx_silence:{sfx:"Curse", emitters:[{type:45, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[100, 100], rot:0, spin:0}, {type:46, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:4, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[100, 100], rot:0, spin:0}, {type:47, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:8, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[100, 100], rot:0, spin:0}, {type:48, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:12, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[100, 100], rot:0, spin:0}, {type:40, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:3, alpha:100, grow:[1.03, 1.03], area:[0, 0], mode:RADIAL, size:[80, 80], rot:0, spin:-6}, {type:3, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:3, alpha:100, grow:[1.02, 1.02], area:[0, 0], mode:RADIAL, size:[140, 140], rot:0, spin:4}]}, pfx_repair:{sfx:"Cure", emitters:[{type:44, sheet:64, spawn:[0, 0], vel:[16, 16], rvelmod:-1, accel:[0.92, 0.92], mod:[0, 0], life:200, delay:0, ppf:3, dur:3, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.5, 1.2], rot:"R", spin:4}, {type:70, sheet:32, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:10, alpha:100, grow:[1.1, 1.1], area:[2, 2], mode:RADIAL, size:[80, 80], rot:"R", spin:0}, {type:44, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:16, fade:2, alpha:100, grow:[1, 1], area:[60, 60], mode:RADIAL, size:[32, 32], rsize:[0.2, 1.5], rot:0, spin:-10}, {type:44, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:1, alpha:40, grow:[1, 1], area:[2, 2], mode:RADIAL, size:[200, 200], rot:"R", spin:4}]}, pfx_gas_all_sleep:{sfx:"Slam", emitters:[{type:8, sheet:16, spawn:[0, 0], vel:[-5, 5], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:20, fade:2, alpha:100, grow:[0.95, 0.95], area:[60, 160], mode:RADIAL, size:[32, 32], rsize:[0.2, 1], rot:"R", spin:10}, {type:15, sheet:32, spawn:[0, 0], vel:[-8, 8, -14, 14], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:10, dur:2, fade:0.5, alpha:40, grow:[1.04, 1.04], area:[30, 60], mode:LINEAR, size:[88, 88], rot:"R", spin:1}]}, pfx_noteshock_black:{sfx:"harpsting", emitters:[{type:84, sheet:32, spawn:[0, 0], vel:[3, 14], accel:[0.9, 0.9], mod:[0, -0.4], life:100, delay:0, ppf:6, dur:3, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.2, 1], rot:0, spin:0}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:7, alpha:100, grow:[1.16, 1.16], area:[0, 0], mode:LINEAR, size:[28, 28], rot:0, spin:10}, {type:15, sheet:16, spawn:[0, 0], vel:[8, 12, 8, 12], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:12, dur:1, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[0.5, 1.5], rot:"theta", spin:0}]}, pfx_regen_oef:{sfx:null, emitters:[{type:18, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, -0.3], life:200, delay:0, ppf:0.5, dur:10, fade:2, alpha:50, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:0}, {type:2, sheet:16, spawn:[0, 0], vel:[5, 8], accel:[0.9, 0.9], mod:[0, -0.3], life:200, delay:0, ppf:1, dur:8, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, size:[12, 12], rot:"R", spin:4}]}, pfx_bleed_oef:{sfx:null, emitters:[{type:34, sheet:32, spawn:[0, 0], vel:[3, 8], accel:[0.9, 0.9], mod:[0, 0.2], life:100, delay:0, ppf:6, dur:3, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.1, 1], rot:"R", spin:0}]}, pfx_poison_oef:{sfx:null, emitters:[{type:4, sheet:16, spawn:[0, 0], vel:[3, 8], accel:[0.9, 0.9], mod:[0, -0.15], life:100, delay:0, ppf:6, dur:3, fade:4, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[0.1, 1], rot:"R", spin:0}]}, pfx_resurrect:{sfx:null, dmgdelay:24, delayedSfx:"Cure", emitters:[{type:54, sheet:32, spawn:[0, -200], vel:[0, 0, 8, 8], accel:[1, 1], mod:[0, 0], life:24, delay:0, ppf:1, dur:1, fade:-5, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[64, 64], rot:-40, spin:0}, {type:6, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:24, ppf:1, dur:20, fade:10, alpha:100, grow:[1.06, 1.06], area:[0, 0], mode:RADIAL, size:[32, 32], rsize:[1, 2], rot:"R", spin:9}, {type:14, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:24, ppf:1, dur:20, fade:3, alpha:30, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[50, 50], rsize:[1, 2], rot:"R", spin:5}, {type:28, sheet:32, spawn:[0, 0], vel:[-5, 5, -2, 8], accel:[0.96, 0.96], mod:[0, -0.3], life:200, delay:24, ppf:2, dur:6, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:2}, {type:19, sheet:16, spawn:[0, 0], vel:[4, 8], accel:[0.93, 0.93], mod:[0, 0], life:200, delay:24, ppf:2, dur:6, fade:1, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.2, 1], rot:"R", spin:4}]}, pfx_bloodmoon:{sfx:"wolf_howl", dmgdelay:40, emitters:[{type:15, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[200, 200], rot:0, spin:0}, {type:15, sheet:128, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:40, ppf:1, dur:1, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[200, 200], rot:0, spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:1, alpha:100, grow:[1.01, 1.01], area:[0, 0], mode:RADIAL, size:[260, 260], rot:"R", spin:9}, {type:70, sheet:32, spawn:[0, 0], vel:[20, 30], accel:[0.93, 0.93], mod:[0, 0], life:200, delay:0, ppf:1, dur:40, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[16, 16], rsize:[0.5, 1.5], rot:"theta", spin:0}, {type:48, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[800, 600], rot:0, spin:0}, {type:48, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:40, delay:41, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[800, 600], rot:0, spin:0}]}, pfx_lock1:{sfx:"unlock", emitters:[{type:42, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:3, alpha:100, grow:[0.98, 0.98], area:[0, 0], mode:RADIAL, even_spacing:true, size:[100, 100], rot:0, spin:0}, {type:33, sheet:16, spawn:[0, 0], vel:[12, 12], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:6, dur:1, fade:2, alpha:100, grow:[0.9, 0.9], area:[0, 0], mode:RADIAL, even_spacing:true, size:[48, 48], rot:"theta", spin:0}, {type:17, sheet:16, spawn:[0, 0], vel:[18, 18], accel:[0.85, 0.85], mod:[0, 0], life:200, delay:0, ppf:9, dur:1, fade:2, alpha:100, grow:[0.95, 0.95], area:[0, 0], mode:RADIAL, even_spacing:true, size:[32, 32], rot:"theta", spin:0}, {type:5, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:4, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, spin:-6}, {type:15, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:4, alpha:100, grow:[1.07, 1.07], area:[0, 0], mode:RADIAL, even_spacing:true, size:[64, 64], rot:0, spin:10}]}, pfx_generic_slam:{sfx:"Slam", emitters:[{type:43, sheet:16, spawn:[0, 0], vel:[3, 24], accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:8, dur:3, fade:2, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[8, 8], rsize:[0.2, 1], rot:"theta", spin:0}, {type:90, sheet:32, spawn:[0, 0], vel:[6, 14], accel:[0.88, 0.88], mod:[0, 0], life:100, delay:0, ppf:3, dur:8, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.5, 1.5], rot:"theta", spin:0, offset:10}, {type:73, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:6, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[64, 64], rot:0, spin:16}, {type:73, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:8, alpha:200, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, spin:20}]}, pfx_antielem:{sfx:"MPRestore", dmgdelay:30, delayedSfx:"Slam", emitters:[{type:37, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[64, 64], rot:"theta", spin:0, start_angle:0, OEFmod:{offset:-3, start_angle:6}}, {type:38, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[64, 64], rot:"theta", spin:0, start_angle:120, OEFmod:{offset:-3, start_angle:6}}, {type:39, sheet:32, spawn:[0, 0], vel:[4, 4], accel:[0.9, 0.9], mod:[0, 0], life:200, delay:0, ppf:1, dur:33, fade:5, alpha:60, grow:[0.9, 0.9], area:[0, 0], offset:100, mode:RADIAL, even_spacing:true, size:[64, 64], rot:"theta", spin:0, start_angle:240, OEFmod:{offset:-3, start_angle:6}}, {type:78, sheet:32, spawn:[0, 0], vel:[10, 10], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:33, ppf:9, dur:0, fade:3, alpha:60, grow:[0.93, 0.93], area:[0, 0], mode:RADIAL, even_spacing:true, size:[48, 48], rot:"theta", spin:0}, {type:38, sheet:32, spawn:[0, 0], vel:[15, 15], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:33, ppf:12, dur:0, fade:3, alpha:60, grow:[0.93, 0.93], area:[0, 0], mode:RADIAL, even_spacing:true, size:[48, 48], rot:"theta", spin:0}, {type:14, sheet:64, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:1, dur:0, fade:4, alpha:100, grow:[1.05, 1.05], area:[0, 0], mode:RADIAL, size:[100, 100], rot:0, spin:-10}, {type:78, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:33, ppf:1, dur:0, fade:4, alpha:100, grow:[1.05, 1.05], area:[0, 0], mode:RADIAL, size:[64, 64], rot:0, spin:30}]}, pfx_slash_crescent:{sfx:"hit_MARTIAL", emitters:[{type:92, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:10, fade:10, alpha:100, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, size:[100, 100], rot:"theta", spin:0, offset:80, start_angle:0, even_spacing:true, OEFmod:{start_angle:-30, offset:-5}}]}, pfx_thunderstorm:{sfx:"Thunder", emitters:[{type:11, sheet:128, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:0.2, dur:20, fade:10, alpha:100, grow:[1, 1], area:[30, 30], mode:RADIAL, size:[400, 400], rsize:[0.8, 1], rot:"R", spin:20}, {type:11, sheet:128, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:20, fade:10, alpha:100, grow:[1, 1], area:[40, 40], mode:RADIAL, size:[200, 200], rsize:[0.5, 1.5], rot:"R", spin:-30}, {type:20, sheet:16, spawn:[0, 0], vel:[5, 20], accel:[0.95, 0.95], mod:[0, 0], life:200, delay:0, ppf:2, dur:22, fade:2, alpha:80, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[1, 2], rot:"theta", spin:0}, {type:12, sheet:64, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:0, ppf:1, dur:1, fade:5, alpha:100, grow:[1.2, 1.2], area:[0, 0], mode:LINEAR, size:[64, 64], rot:0, spin:0}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:0, ppf:1, dur:1, fade:-20, maxalpha:100, alpha:0, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1500, 600], rot:0, spin:0}, {type:49, sheet:16, spawn:[0, 0], vel:[0, 0, 0, 0], accel:[1, 1], mod:[0, 0], life:20, delay:21, ppf:1, dur:0, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:LINEAR, size:[1500, 600], rot:0, spin:0}]}, pfx_minddrain:{sfx:"MPRestore", emitters:[{type:47, sheet:16, spawn:[0, 0], vel:[24, 34], rvelmod:-1, accel:[0.9, 0.9], mod:[0, 0], life:100, delay:0, ppf:8, dur:3, fade:3, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[12, 12], rsize:[0.2, 1], rot:"theta", spin:0}, {type:44, sheet:32, spawn:[0, 0], vel:[6, 14], accel:[0.88, 0.88], mod:[0, 0], life:100, delay:0, ppf:3, dur:8, fade:5, alpha:100, grow:[1, 1], area:[0, 0], mode:RADIAL, size:[48, 48], rsize:[0.5, 1.5], rot:"theta", spin:0, offset:10}, {type:77, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:6, alpha:150, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[64, 64], rot:0, spin:16}, {type:76, sheet:32, spawn:[0, 0], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:200, delay:0, ppf:1, dur:1, fade:8, alpha:200, grow:[1.1, 1.1], area:[0, 0], mode:RADIAL, even_spacing:true, size:[32, 32], rot:0, spin:20}]}, pfx_earthquake:{sfx:"earthquake", quake:[20, 120, 0.15], dmgdelay:80, emitters:[{type:4, sheet:32, spawn:[180, -120], vel:[9, 15], accel:[1, 1], mod:[0, 0.4], life:100, delay:38, ppf:8, dur:1, fade:2, alpha:100, grow:[1, 1], area:[10, 10], mode:RADIAL, size:[48, 48], rsize:[0.5, 1.5], rot:"R", spin:11, delayedSFX:"slash2"}, {type:10, sheet:64, spawn:[180, -120], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:38, ppf:1, dur:3, fade:30, alpha:100, grow:[2, 2], area:[0, 0], mode:RADIAL, size:[30, 30], rot:"R", spin:10}, {type:4, sheet:32, spawn:[150, -40], vel:[9, 15], accel:[1, 1], mod:[0, 0.4], life:100, delay:64, ppf:8, dur:1, fade:2, alpha:100, grow:[1, 1], area:[10, 10], mode:RADIAL, size:[64, 64], rsize:[0.5, 1.5], rot:"R", spin:11, delayedSFX:"slash2"}, {type:10, sheet:64, spawn:[150, -40], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:64, ppf:1, dur:3, fade:30, alpha:100, grow:[2, 2], area:[0, 0], mode:RADIAL, size:[30, 30], rot:"R", spin:10}, {type:4, sheet:32, spawn:[160, 70], vel:[9, 15], accel:[1, 1], mod:[0, 0.4], life:100, delay:80, ppf:8, dur:1, fade:2, alpha:100, grow:[1, 1], area:[10, 10], mode:RADIAL, size:[32, 32], rsize:[0.5, 1.5], rot:"R", spin:11, delayedSFX:"slash2"}, {type:10, sheet:64, spawn:[160, 70], vel:[0, 0], accel:[1, 1], mod:[0, 0], life:100, delay:80, ppf:1, dur:3, fade:30, alpha:100, grow:[2, 2], area:[0, 0], mode:RADIAL, size:[30, 30], rot:"R", spin:10}, {type:5, sheet:32, spawn:[200, 0], vel:[6, 7], accel:[0.9, 0.9], mod:[0, 0], life:300, delay:0, ppf:0.5, dur:100, fade:2, alpha:60, grow:[1.06, 1.06], area:[60, 100], mode:RADIAL, size:[42, 42], rsize:[0.5, 2], rot:"R", spin:1}, {type:3, sheet:16, spawn:[0, 200], vel:[0, 0, -20, -10], accel:[0.99, 0.99], mod:[0, -0.4], life:100, delay:0, ppf:1, dur:100, fade:3, alpha:100, grow:[1, 1], area:[360, 0], mode:LINEAR, size:[16, 16], rsize:[0.5, 3], rot:"R", spin:1}]}, pfx_mshield:{derive:"shield", newTypes:[3]}, pfx_flame_soul:{derive:"flame1", newTypes:[8, 16]}, pfx_flame_fey:{derive:"flame1", newTypes:[43, 21]}, pfx_flame_pixie:{derive:"flame1", newTypes:[44, 16]}, pfx_boltg:{derive:"bolt1", newTypes:[5, 4, 1, 0]}, pfx_snakebite:{derive:"dmgplus", newTypes:[10, 4]}, pfx_infect_zombie:{derive:"dmgplus", newTypes:[15, 17]}, pfx_mpcure:{derive:"cure1", newTypes:[10, 12]}, pfx_gemsplosion_ruby:{derive:"gemsplosion", newTypes:[20, 20, 20, 5]}, pfx_gemsplosion_fire:{derive:"gemsplosion", newTypes:[21, 21, 21, 5]}, pfx_gemsplosion_topaz:{derive:"gemsplosion", newTypes:[22, 22, 22, 12]}, pfx_gemsplosion_onyx:{derive:"gemsplosion", newTypes:[23, 23, 23, 15]}, pfx_gemsplosion_turquoise:{derive:"gemsplosion", newTypes:[24, 24, 24, 14]}, pfx_gemsplosion_moonstone:{derive:"gemsplosion", newTypes:[25, 25, 25, 13]}, pfx_gemsplosion_emerald:{derive:"gemsplosion", newTypes:[26, 26, 26, 10]}, pfx_gemsplosion_amethyst:{derive:"gemsplosion", newTypes:[57, 57, 57, 40]}, pfx_gemsplosion_sapphire:{derive:"gemsplosion", newTypes:[56, 56, 56, 21]}, pfx_smoke_psn:{derive:"smoke", newTypes:[12]}, pfx_smoke_vile:{derive:"smoke", newTypes:[13]}, pfx_smoke_ink:{derive:"smoke", newTypes:[14]}, pfx_smoke_air:{derive:"smoke", newTypes:[15]}, pfx_numbpunch:{derive:"stunpunch", newTypes:[5, 5, 11]}, pfx_mutepunch:{derive:"stunpunch", newTypes:[14, 16, 18]}, pfx_soulstrike_fire:{derive:"soulstrike", newTypes:[0, 5, 1]}, pfx_soulstrike_water:{derive:"soulstrike", newTypes:[30, 11, 22]}, pfx_soulstrike_air:{derive:"soulstrike", newTypes:[31, 12, 20]}, pfx_soulstrike_earth:{derive:"soulstrike", newTypes:[32, 10, 21]}, pfx_soulstrike_light:{derive:"soulstrike", newTypes:[27, 13, 0]}, pfx_soulstrike_dark:{derive:"soulstrike", newTypes:[33, 15, 13]}, pfx_bluewarp:{derive:"astralwarp", newTypes:[6, 21, 21]}, pfx_morbidfondle:{derive:"spectralclaw", newTypes:[29, 14]}, pfx_slash_water:{derive:"slash_fire", newTypes:[51, 11, 22], sfx:"Bubble"}, pfx_slash_air:{derive:"slash_fire", newTypes:[52, 12, 20], sfx:"Thunder"}, pfx_slash_earth:{derive:"slash_fire", newTypes:[53, 10, 21], sfx:"Earth1"}, pfx_slash_ether:{derive:"slash_fire", newTypes:[54, 14, 16], sfx:"slam"}, pfx_purecure:{derive:"cure1", newTypes:[28, 0]}, pfx_potion2:{derive:"potion", newTypes:[29, 39, 61, 2]}, pfx_potion3:{derive:"potion", newTypes:[29, 37, 62, 2]}, pfx_potion4:{derive:"potion", newTypes:[29, 59, 63, 2]}, pfx_potion5:{derive:"potion", newTypes:[29, 58, 64, 2]}, pfx_potion_ether1:{derive:"potion", newTypes:[29, 38, 60, 22]}, pfx_potion_ether2:{derive:"potion", newTypes:[29, 38, 65, 35]}, pfx_potion_ether3:{derive:"potion", newTypes:[29, 38, 64, 36]}, pfx_potion_etherberry:{derive:"potion", newTypes:[49, 38, 60, 22], newSheets:[32, 32, 32, 16]}, pfx_null_water:{derive:"null_fire", newTypes:[41, 41, 41, 41, 41, 31]}, pfx_null_air:{derive:"null_fire", newTypes:[42, 42, 42, 42, 42, 32]}, pfx_null_earth:{derive:"null_fire", newTypes:[43, 43, 43, 43, 43, 33]}, pfx_null_light:{derive:"null_fire", newTypes:[44, 44, 44, 44, 44, 34]}, pfx_null_dark:{derive:"null_fire", newTypes:[45, 45, 45, 45, 45, 35]}, pfx_null_ether:{derive:"null_fire", newTypes:[46, 46, 46, 46, 46, 36]}, pfx_null_fig:{derive:"null_fire", newTypes:[47, 47, 47, 47, 47, 37]}, pfx_null_tetra:{derive:"null_fire", newTypes:[40, 41, 42, 43, 44, 34]}, pfx_null_moral:{derive:"null_fire", newTypes:[44, 45, 44, 45, 45, 34]}, pfx_invn_psngas:{derive:"invn_sleep", newTypes:[12, 4]}, pfx_spiritbreath:{derive:"firebreath", newTypes:[8, 16]}, pfx_darkbreath:{derive:"firebreath", newTypes:[33, 13]}, pfx_soulstorm:{derive:"maelstrom", newTypes:[38, 9], newSheets:[32, 32]}, pfx_one_sparkle_WATER:{derive:"one_sparkle_FIRE", newTypes:[71]}, pfx_one_sparkle_AIR:{derive:"one_sparkle_FIRE", newTypes:[72]}, pfx_one_sparkle_EARTH:{derive:"one_sparkle_FIRE", newTypes:[73]}, pfx_one_sparkle_LIGHT:{derive:"one_sparkle_FIRE", newTypes:[74]}, pfx_one_sparkle_DARK:{derive:"one_sparkle_FIRE", newTypes:[75]}, pfx_one_sparkle_ETHER:{derive:"one_sparkle_FIRE", newTypes:[76]}, pfx_one_sparkle_FIG:{derive:"one_sparkle_FIRE", newTypes:[77]}, pfx_syphon:{derive:"blooddrain", newTypes:[22, 60]}, pfx_energy_burst_FIRE:{derive:"energy_burst_EARTH", newTypes:[70, 5, 70]}, pfx_energy_burst_WATER:{derive:"energy_burst_EARTH", newTypes:[71, 11, 71]}, pfx_energy_burst_AIR:{derive:"energy_burst_EARTH", newTypes:[72, 12, 72]}, pfx_energy_burst_LIGHT:{derive:"energy_burst_EARTH", newTypes:[74, 13, 74]}, pfx_energy_burst_DARK:{derive:"energy_burst_EARTH", newTypes:[75, 15, 75]}, pfx_energy_burst_ETHER:{derive:"energy_burst_EARTH", newTypes:[76, 14, 76]}, pfx_energy_burst_FIG:{derive:"energy_burst_EARTH", newTypes:[77, 40, 77]}, pfx_energy_burst_THAUMA:{derive:"energy_burst_EARTH", newTypes:[78, 21, 78]}, pfx_numb_jolt:{derive:"paralysis_jolt", newTypes:[11]}, pfx_shock_green:{derive:"shock", newTypes:[16, 17, 16, 10, 31, 43]}, pfx_firewave:{derive:"mindwave", newTypes:[48], sfx:"dragon_roar"}, pfx_shell_AIR:{derive:"shell_FIRE", newTypes:[72, 81, 81]}, pfx_boost_AIR:{derive:"boost", newTypes:[38, 12]}, pfx_boost_ETHER:{derive:"boost", newTypes:[37, 14]}, pfx_slime_blood:{derive:"slime", newTypes:[34, 32]}, pfx_slime_lava:{derive:"slime", newTypes:[66, 40]}, pfx_gdmwave_aether:{derive:"gdmwave_earth", newTypes:[76, 76, 76, 76, 14, 14, 49, 49]}, pfx_gdmwave_fire:{derive:"gdmwave_earth", newTypes:[70, 70, 70, 70, 5, 5, 49, 49]}, pfx_astralpulse:{derive:"thoughtpulse", newTypes:[46, 38, 38]}, pfx_noteshock_white:{derive:"noteshock_black", newTypes:[85, 13, 25]}, pfx_noteshock_red:{derive:"noteshock_black", newTypes:[86, 5, 50], sfx:"ragechord"}, pfx_lock2:{derive:"lock1", newTypes:[42, 34, 39, 11, 21]}, pfx_lock3:{derive:"lock1", newTypes:[42, 23, 28, 5, 40]}, pfx_lock4:{derive:"lock1", newTypes:[42, 24, 38, 10, 12]}, pfx_generic_slam_fire:{derive:"generic_slam", newTypes:[40, 91, 70, 70]}, pfx_rasp:{derive:"minddrain", newTypes:[46, 38, 71, 76]}, pfx_icy:{derive:"blooddrain", newTypes:[22, 30]}, pfx_tentacles:{derive:"energy_burst_EARTH", newTypes:[70, 0, 0, 70]}};
for (var p in PFXList) {
if (PFXList[p].derive) {
var pd = PFXList["pfx_" + PFXList[p].derive];
if (pd.dmgdelay) {
PFXList[p].dmgdelay = pd.dmgdelay;
}
if (pd.delayedSfx) {
PFXList[p].delayedSfx = pd.delayedSfx;
}
}
}
pdepth = 0;
_global.EN_ADD = function (section, specific) {
GameData.EN_FULL[section][specific] = true;
};
SetupGameAndTempVars();
PCstats = [];
return(undefined);
Frame 4
FlashVersion = getVersion();
var CV = FlashVersion.split(" ")[1].split(",");
var rec = [10, 0, 42, 34];
var CV_num = 0;
var rec_num = 0;
var i = 0;
while (i < 4) {
CV_num = CV_num + (Math.pow(1000, i) * CV[3 - i]);
rec_num = rec_num + (Math.pow(1000, i) * rec[3 - i]);
i++;
}
trace("Current: " + CV_num);
trace("Latest: " + rec_num);
if (CV_num >= rec_num) {
nextFrame();
} else {
stop();
GetLatestBtn.LABEL = "Get Latest";
GetLatestBtn.onRollOver = function () {
this.gotoAndStop(2);
};
GetLatestBtn.onRollOut = function () {
this.gotoAndStop(1);
};
GetLatestBtn.onRelease = function () {
getURL ("http://get.adobe.com/flashplayer/", "_blank");
};
}
PlayAnywayBtn.LABEL = "Continue...";
PlayAnywayBtn.onRollOver = function () {
this.gotoAndStop(2);
};
PlayAnywayBtn.onRollOut = function () {
this.gotoAndStop(1);
};
PlayAnywayBtn.onRelease = function () {
_root.nextFrame();
};
Frame 5
var SO = SharedObject.getLocal(gameID + "_master", "/");
if (SO.data.SKIP_STORAGE_CHECK) {
nextFrame();
} else {
System.showSettings(1);
PlayAnywayBtn.LABEL = "Continue...";
PlayAnywayBtn.onRollOver = function () {
this.gotoAndStop(2);
};
PlayAnywayBtn.onRollOut = function () {
this.gotoAndStop(1);
};
PlayAnywayBtn.onRelease = function () {
if (_root.RadioSkipper._currentframe == 2) {
var _local2 = SharedObject.getLocal(gameID + "_master", "/");
_local2.data.SKIP_STORAGE_CHECK = true;
_local2.flush(_local2.getSize());
_local2 = null;
}
_root.nextFrame();
};
RadioSkipper.gotoAndStop(1);
RadioSkipper.onPress = function () {
this.gotoAndStop((!(this._currentframe - 1)) + 1);
};
}
Frame 6
var SO = SharedObject.getLocal(gameID + "_master", "/");
if (SO.data.SKIP_SAVE_MESSAGE) {
nextFrame();
} else {
PlayAnywayBtn.LABEL = "Continue...";
PlayAnywayBtn.onRollOver = function () {
this.gotoAndStop(2);
};
PlayAnywayBtn.onRollOut = function () {
this.gotoAndStop(1);
};
PlayAnywayBtn.onRelease = function () {
if (_root.RadioSkipper._currentframe == 2) {
var _local2 = SharedObject.getLocal(gameID + "_master", "/");
_local2.data.SKIP_SAVE_MESSAGE = true;
_local2.flush(_local2.getSize());
_local2 = null;
}
_root.nextFrame();
};
RadioSkipper.gotoAndStop(1);
RadioSkipper.onPress = function () {
this.gotoAndStop((!(this._currentframe - 1)) + 1);
};
}
Frame 7
var SO = SharedObject.getLocal(gameID + "_master", "/");
if (SO.data.BASIC_CONTROLS_CHECK) {
nextFrame();
} else {
PlayAnywayBtn.LABEL = "Continue...";
PlayAnywayBtn.onRollOver = function () {
this.gotoAndStop(2);
};
PlayAnywayBtn.onRollOut = function () {
this.gotoAndStop(1);
};
PlayAnywayBtn.onRelease = function () {
if (_root.RadioSkipper._currentframe == 2) {
var _local2 = SharedObject.getLocal(gameID + "_master", "/");
_local2.data.BASIC_CONTROLS_CHECK = true;
_local2.flush(_local2.getSize());
_local2 = null;
}
_root.nextFrame();
};
RadioSkipper.gotoAndStop(1);
RadioSkipper.onPress = function () {
this.gotoAndStop((!(this._currentframe - 1)) + 1);
};
}
Frame 8
stop();
MAIN_TITLE.gotoAndStop(3);
SetupCursor();
ESC_thing._visible = false;
ESC_thing.gotoAndStop("empty");
if (!(_url.indexOf("file:///C|/Users/Pseudolonewolf/Documents/Flash/Projects/") === 0)) {
B5._visible = false;
}
BUTTONS = ["New Game", "Load Game", "Music Player", "Play More Games", null, "Editor"];
var b = 0;
while (b < BUTTONS.length) {
_root["B" + b].LABEL = BUTTONS[b];
_root["B" + b].onRollOver = function () {
this.gotoAndStop(2);
};
_root["B" + b].onRollOut = function () {
this.gotoAndStop(1);
};
b++;
}
TS_GameName = "";
GameNameInputBox._visible = false;
GameNameInputBox.INPUT = "";
_root.FinallyStartNewGame._visible = false;
_root.FinallyStartNewGame.LABEL = "BEGIN";
_root.FinallyStartNewGame.onRollOver = function () {
this.gotoAndStop(2);
};
_root.FinallyStartNewGame.onRollOut = function () {
this.gotoAndStop(1);
};
_root.FinallyStartNewGame.onPress = function () {
_root.SetupGameAndTempVars();
GameData.GAME_NAME = _root.GameNameInputBox.INPUT;
_root.fader.onMaxFade = function () {
_root.gotoAndStop("newgame_CHAPTER" + _root.THIS_CHAPTER);
_root.FadeOut(10);
};
_root.FadeIn(30);
};
B0.onPress = function () {
_root.TS_GameName = "Game name:";
_root.GameNameInputBox._visible = true;
_root.GameNameInputBox.onEnterFrame = function () {
_root.FinallyStartNewGame._visible = this.INPUT != "";
};
};
B1.onPress = function () {
this.gotoAndStop(1);
_root.SavePopup.FadeIn("LOAD");
};
B2.onPress = function () {
_root.fader.onMaxFade = function () {
_root.gotoAndStop("MusicPlayer");
_root.FadeOut(10);
};
_root.FadeIn(10);
};
B3.onRelease = function () {
_root.VisitSponsor();
};
B5.onPress = function () {
_root.fader.onMaxFade = function () {
_root.gotoAndStop("MAP_EDITOR");
_root.FadeOut(10);
};
_root.FadeIn(10);
};
playMusic((_root.CheckOption("music") ? "Theme" : "none"));
_quality = "MEDIUM";
MuteButton.gotoAndStop((CheckOption("music") ? 1 : 2));
MuteButton.onPress = function () {
this.gotoAndStop((_root.SetOption("music", _root.CheckOption("music") ^ 1) ? 1 : 2));
_root.playMusic((_root.CheckOption("music") ? "Theme" : "none"));
};
Frame 11
function RefreshMusicPlayer() {
var _local7 = SharedObject.getLocal(gameID + "_master", "/");
y = 0;
for (var _local8 in TrackList) {
TrackList[_local8].removeMovieClip();
}
TrackList.LIST = [];
var _local2 = 0;
while (_local2 < MPTracks.length) {
if (MType_SEL && (MPTracks[_local2][2] != MTypes[MType_SEL])) {
} else {
var _local5 = !_local7.data.music[MPTracks[_local2][1]];
var _local3 = TrackList.attachMovie("MPTrack", "T" + _local2, 100 + y);
_local3.LABEL = ((_local2 + 1) + ". ") + (_local5 ? "????" : ((_local3.LABEL2 = MPTracks[_local2][0])));
_local3.TRACK = MPTracks[_local2][1];
_local3.note.gotoAndStop(MPTracks[_local2][2]);
_local3._y = 40 * y;
if (_local5) {
_local3._alpha = 20;
}
y++;
TrackList.LIST.push(_local3);
}
_local2++;
}
TrackList.TOTAL_TRACKS = y;
var _local4 = 0;
while (_local4 < 8) {
var _local6 = _root["note" + _local4];
_local6._alpha = ((_local4 == MType_SEL) ? 100 : 20);
_local6.gotoAndStop(MTypes[_local4]);
_local4++;
}
MPTypeShown = MPType_Words[MType_SEL];
scrollbit.Refresh();
scrollbit._height = (scrollbit.maxshown / y) * scrollbit.maxheight;
if (scrollbit._height > scrollbit.maxheight) {
scrollbit._height = scrollbit.maxheight;
}
cursor.POS = 0;
cursor.Move(0);
}
_quality = "MEDIUM";
playMusic("none");
BACK.LABEL = "Back";
BuyItHere.LABEL = "Buy them Here!";
BACK.onPress = function () {
_root.fader.onMaxFade = function () {
_root.gotoAndStop("titlescreen");
_root.FadeOut(10);
};
_root.FadeIn(10);
};
BuyItHere.onRelease = function () {
getURL ("http://fighunter.bandcamp.com/", "_blank");
};
BACK.onRollOver = (BuyItHere.onRollOver = function () {
this.gotoAndStop(2);
});
BACK.onRollOut = (BuyItHere.onRollOut = function () {
this.gotoAndStop(1);
});
PlayPause_Btn.onPress = function () {
if (this._alpha < 100) {
return(undefined);
}
if (this.PAUSED != null) {
_root.MUSIC.start(this.PAUSED / 1000);
this.PAUSED = null;
this.gotoAndStop(4);
} else {
this.PAUSED = _root.MUSIC.position;
_root.MUSIC.stop();
this.gotoAndStop(6);
}
};
PlayPause_Btn.onRollOver = function () {
this.gotoAndStop(((this.PAUSED != null) ? 3 : 1) + 3);
};
PlayPause_Btn.onRollOut = function () {
this.gotoAndStop(((this.PAUSED != null) ? 3 : 1));
};
PlayPause_Btn.gotoAndStop(1);
PlayPause_Btn.onEnterFrame = function () {
this._alpha = (_root.trackbar.PLAYING ? 100 : 50);
};
MTypes = ["ALL", "AREA", "BATL", "CHAR", "DUNG", "JING", "MOOD", "MISC"];
MPType_Words = ["Showing All Tracks...", "Area Music", "Battle Music", "Character Themes", "Dungeon Music", "Jingles", "Mood Music", "Miscellaneous Pieces"];
MType_SEL = 0;
MPTracks = [["MARDEK Theme", "Theme", "MISC"], ["Slaying the Dragon", "Intro", "MISC"], ["Mighty Heroes", "MightyHeroes", "MOOD"], ["Casual Battle", "battle", "BATL"], ["Boss Battle", "BossBattle", "BATL"], ["Victory!", "VictoryFanfare", "JING"], ["VICTORY!!!", "VictoryFanfare2", "JING"], ["Game Over", "GameOver", "JING"], ["Goznor", "Goznor", "AREA"], ["Hymn of YALORT", "HymnOfYalort", "MISC"], ["Belfan Overworld", "WorldMap", "AREA"], ["Dungeon I", "Dungeon1", "DUNG"], ["Enki's Theme", "Enki", "CHAR"], ["The Woods", "Woods", "DUNG"], ["Rohoph's Theme", "Rohoph", "CHAR"], ["Governance de Magi", "GdM", "CHAR"]];
cursor.Move = function (n) {
if (((n < 0) && (this.POS == 0)) || ((n > 0) && (this.POS == (_root.TrackList.LIST.length - 1)))) {
return(undefined);
}
_root.TrackList.LIST[this.POS].gotoAndStop(1);
this.POS = this.POS + n;
_root.TrackList.LIST[this.POS].gotoAndStop(2);
if (this.POS >= (_root.scrollbit.top + _root.scrollbit.maxshown)) {
_root.scrollbit.top++;
}
if (this.POS < _root.scrollbit.top) {
_root.scrollbit.top--;
}
_root.TrackList._y = 80 - (_root.scrollbit.top * 40);
this._y = (_root.TrackList._y + (40 * this.POS)) + 23;
_root.scrollbit._y = scrollbit.orig_y + ((scrollbit.maxheight - scrollbit._height) * (_root.scrollbit.top / (_root.TrackList.TOTAL_TRACKS - _root.scrollbit.maxshown)));
};
scrollbit.Refresh = function () {
this._y = (this.orig_y = 78);
this.maxheight = 372;
this.maxshown = 9;
this.top = 0;
};
trackbar.onEnterFrame = function () {
if (PlayPause_Btn.PAUSED == null) {
this.gotoAndStop(101 - int((_root.MUSIC.position / _root.MUSIC.duration) * 100));
var _local5 = _root.MUSIC.position;
var _local4 = Math.floor((_local5 / 1000) / 60);
_root.currentPos = (isNaN(_local4) ? "" : ((_local4 + ":") + _00(int(_local5 / 1000) - (60 * _local4))));
}
if (((!Key.isDown(37)) && (!Key.isDown(39))) && (!Key.isDown(KEYS.X))) {
this.keydown = false;
}
if (!this.keydown) {
if (Key.isDown(KEYS.X)) {
this.keydown = true;
var _local3 = _root.TrackList.LIST[_root.cursor.POS];
if (_local3._alpha < 100) {
_root.playSFX("error");
} else {
_root.PlayPause_Btn.PAUSED = null;
_root.PlayPause_Btn.gotoAndStop(1);
_root.playMusic(_local3.TRACK);
_root.currentTrack = _local3.LABEL2;
this.PLAYING = true;
}
} else if (Key.isDown(39)) {
_root.MType_SEL++;
if (_root.MType_SEL >= 8) {
_root.MType_SEL = 0;
}
_root.RefreshMusicPlayer();
this.keydown = true;
} else if (Key.isDown(37)) {
_root.MType_SEL--;
if (_root.MType_SEL < 0) {
_root.MType_SEL = 7;
}
_root.RefreshMusicPlayer();
this.keydown = true;
}
if (Key.isDown(KEYS.Z)) {
_root.BACK.onPress();
_root.BACK.gotoAndStop(2);
this.onEnterFrame = null;
}
}
};
currentTrack = "";
currentPos = "";
RefreshMusicPlayer();
Instance of Symbol 1857 MovieClip "cursor" in Frame 11
on (keyPress "<Up>") {
this.Move(-1);
}
on (keyPress "<Down>") {
this.Move(1);
}
Frame 15
MUSIC.setVolume(100);
playMusic("Memory");
FadeOut(50);
_quality = "MEDIUM";
disableSpriteControls = true;
roller.gotoAndStop(GameData.CHAPTER - 1);
roller.onEnterFrame = function () {
this._y = this._y - ((Key.isDown(KEYS.Z) ? 4 : ((Key.isDown(88) ? 2 : 0.5))) * 1.6);
if ((this._y < ((-this._height) + 100)) && (this._alpha > 0)) {
this._alpha = this._alpha - (Key.isDown(KEYS.Z) ? 8 : ((Key.isDown(88) ? 4 : 1)));
if (this._alpha <= 0) {
_root.disableSpriteControls = null;
_root.AreaTrans(((GameData.CHAPTER == 3) ? (["sunTemple1", 12, 29]) : (["gc_PCdorm", 4, 2])));
}
}
};
Frame 16
playMusic("none");
ylbox._alpha = 0;
ylticker.fade = 1;
ylticker.onEnterFrame = function () {
if (this.count) {
this.count--;
return(undefined);
}
_root.ylbox._alpha = _root.ylbox._alpha + (this.fade * 5);
if (_root.ylbox._alpha >= 100) {
this.fade = -1;
this.count = 80;
} else if (_root.ylbox._alpha <= 0) {
trace("Hmm...");
_root.AreaTrans(["sunTemple1", 12, 29]);
this.onEnterFrame = null;
}
};
FadeOut(50);
Frame 24
PCstats = [GET_PC_STATS("Mardek_Hero"), GET_PC_STATS("Deugan_Hero")];
GameData.plotVars.NO_BATTLE_MUSIC = true;
GameData.quests = [{ID:"HEROES", done:false}];
GameData.visited = {goznor:1, heroes_den:1};
GameData.plotVars.NO_SWITCH = true;
gotoAndPlay ("ChapterFader");
onEndChapterFade = function () {
PlayCutscene("CUTSCENE1");
};
Frame 25
var CharLevels = {Mardek:3, Deugan:3};
var thePCstats = [PCstats[0], GameData.plotVars.Allies.Deugan];
if (GameData.plotVars.Allies.Deugan != null) {
KeptItems = [[], []];
KeptAccs = [[], []];
var p = 0;
while (p < 2) {
if (thePCstats[p].level >= 3) {
CharLevels[thePCstats[p].name] = thePCstats[p].level + 1;
}
if (thePCstats[p].accessory != null) {
KeptAccs[p] = [thePCstats[p].accessory, thePCstats[p].accessory2];
}
if (thePCstats[p].inventory != null) {
KeptItems[p] = CloneA(thePCstats[p].inventory);
} else {
KeptItems[p] = new Array(56);
}
p++;
}
}
GameData.plotVars.Allies = {};
PCstats = [(GameData.plotVars.Allies.Mardek = GET_PC_STATS("Mardek_Recruit", {level:CharLevels.Mardek, accessory:KeptAccs[0][0], accessory2:KeptAccs[0][1], inventory:KeptItems[0], UNSWITCHABLE:true})), (GameData.plotVars.Allies.Deugan = GET_PC_STATS("Deugan_Recruit", {level:CharLevels.Deugan, accessory:KeptAccs[1][0], accessory2:KeptAccs[1][1], inventory:KeptItems[1], UNSWITCHABLE:true}))];
var p = 0;
while (p < 2) {
var i = 0;
while (i < KeptItems[p].length) {
PCstats[p].inventory[i] = KeptItems[p][i];
i++;
}
p++;
}
PCstats[1] = null;
GameData.visited = {goznor:1, heroes_den:1, gc_hall:1, crashsite:1, soothwood:1};
GameData.plotVars.startedProperly = 0;
GameData.plotVars.NO_SWITCH = false;
GameData.plotVars.SUNSET = false;
GameData.CHAPTER = 2;
gotoAndPlay ("ChapterFader");
onEndChapterFade = function () {
_root.gotoAndStop("plotroll");
};
Frame 26
for (var a in GameData.plotVars.Allies) {
GameData.plotVars.Allies[a].ON_PARTY = false;
}
GameData.plotVars.Allies.Mardek.ON_PARTY = true;
var KNIGHT = GET_PC_STATS("Mardek_Ch3", {UNSWITCHABLE:true, ON_PARTY:true});
if (PCstats[0].model == "mardek_soldier") {
var stuff = ["model", "Class", "STR", "VIT", "SPR", "AGL"];
var s = 0;
while (s < stuff.length) {
PCstats[0][stuff[s]] = KNIGHT[stuff[s]];
if (KNIGHT.BASE[stuff[s]] != null) {
PCstats[0].BASE[stuff[s]] = KNIGHT.BASE[stuff[s]];
}
s++;
}
plotVars.Allies.Mardek = PCstats[0];
} else {
PCstats[0] = KNIGHT;
}
PCstats[1] = (plotVars.Allies.Donovan = GET_PC_STATS("Donovan", {UNSWITCHABLE:true, ON_PARTY:true}));
PCstats[2] = (plotVars.Allies.Sharla = GET_PC_STATS("Sharla", {UNSWITCHABLE:true, ON_PARTY:true}));
PCstats[3].model = null;
if (GameData.visited == null) {
GameData.visited = {};
}
var ch3geo = {goznor:1, heroes_den:1, gc_hall:1, guardpost:1, crashsite:1, soothwood:1, glens1:1, lakequr:1, canonia:1, canonia_woods:1, pcave1:1, warport1:1, warport2:1, DesertPath:1, sunTemple1:1, gemmine:1};
for (var o in ch3geo) {
GameData.visited[o] = 1;
}
GameData.plotVars.startedProperly = 0;
GameData.plotVars.NO_SWITCH = false;
GameData.plotVars.SUNSET = false;
GameData.plotVars.MARDEK_ALONE = false;
GameData.CHAPTER = 3;
GIVEQUEST("SUNTEMPLE");
gotoAndPlay ("ChapterFader");
onEndChapterFade = function () {
_root.gotoAndStop("plotroll");
};
Frame 33
CHAPTER_TITLE = (("Chapter " + GameData.CHAPTER) + ": ") + CHAPTERS[GameData.CHAPTER - 1];
HUGE_NUMERAL = RomanNumeral(GameData.CHAPTER);
playMusic("none");
MUSIC.setVolume(100);
Frame 173
onEndChapterFade();
onEndChapterFade = null;
stop();
Frame 183
playMusic("Theme");
area = "end_chapter";
areaname = "END OF CHAPTER " + RomanNumeral(GameData.CHAPTER);
eofcht1 = "End of Chapter " + RomanNumeral(GameData.CHAPTER);
eofcht2 = ("This is the end of Chapter " + RomanNumeral(GameData.CHAPTER)) + ".\n\nIf you save your progress here, you'll be able to load that save at the beginning of the next chapter.";
GameData.CHAPTER++;
_root.SetBadgeStat("GameComplete", 1, "MAX");
var i = 0;
while (i < 4) {
var O = _root["o" + i];
O.onRollOver = function () {
this.gotoAndStop(2);
};
O.onRollOut = function () {
this.gotoAndStop(1);
};
O.LABEL = ["Save", "Item Storage", "Main Menu", "More Games"][i];
i++;
}
o0.onPress = function () {
SAVE_MENU();
};
o1.onPress = function () {
STORAGE_MENU();
};
o2.onPress = function () {
_root.AreaTrans(["titlescreen"], 10);
_root.ClearGameData();
};
o3.onRelease = function () {
_root.VisitSponsor();
};
Frame 184
map = [[10, 10, 10, 10, 13, 13, 13, 10, 10, 10, 10], [10, 14, 14, 14, 16, 12, 16, 14, 14, 14, 10], [13, 15, 15, 15, 11, 11, 11, 15, 15, 15, 13], [16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10], [10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10], [10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10], [10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10]];
tileset = "dragonlair";
area = "DL_entr";
areaname = "Dragon's Lair";
ambience = null;
dungeon = "DragonLair";
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:3, y:3, walkspeed:-1, conv:"c_healingCrystal"}, {name:"Entrance", model:"BIGDOOR0", x:5, y:11, dest:["nowhere", 1, 1], lock:"yes"}, {name:"Exit", model:"BIGDOOR0", x:5, y:1, dest:["DL_area2", 7, 39]}, {name:"INTERJECTION", model:"_trigger", x:5, y:5, ExecuteScript:function () {
_root.Interjection("Deugan", "intro1", "c_HeroBabble");
}}, {name:"WALK_TRIGGER", model:"_trigger", x:5, y:10, triggers:1, ExecuteScript:function () {
DO_ACTIONS([["WALK", 0, -5], ["UNFREEZE"]], "PC", true);
}}];
areaLoot = [];
foes = [["monster", null, null, null, "SOLO"], ["monster", "monster", null, null, "DUO"], ["monster", "monster", "monster", null, "TRIO"]];
btlChance = 0;
levelrange = MONSTER_LEVELS.DRAGON_LAIR;
musicTrack = "MightyHeroes";
AreaSetup({clearmap:1, NoStorage:true});
Frame 185
map = [[10, 10, 10, 10, 10, 14, 13, 13, 13, 14, 10, 10, 10, 10, 10], [10, 10, 13, 14, 13, 15, 16, 12, 16, 15, 13, 14, 13, 10, 10], [10, 13, 12, 15, 16, 11, 11, 11, 11, 11, 16, 15, 12, 13, 10], [10, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16, 10], [13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 13], [12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10], [10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10], [13, 14, 14, 14, 11, 11, 11, 11, 11, 11, 11, 14, 14, 14, 13], [16, 15, 15, 15, 11, 11, 11, 11, 11, 11, 11, 15, 15, 15, 16], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10], [10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10], [14, 14, 14, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 14, 14], [15, 15, 15, 11, 11, 11, 11, 11, 11, 11, 11, 11, 15, 15, 15], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10], [10, 10, 10, 14, 11, 11, 11, 11, 11, 11, 11, 14, 10, 10, 10], [13, 14, 13, 15, 11, 11, 11, 11, 11, 11, 11, 15, 13, 14, 13], [12, 15, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16, 15, 12], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 17, 11, 11, 11, 11, 11, 11, 11, 17, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10], [10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10]];
tileset = "dragonlair";
area = "DL_area2";
areaname = "Dragon's Lair";
ambience = null;
dungeon = "DragonLair";
A_sprites = [{name:"INTERJECTION", model:"_trigger", x:7, y:38, ExecuteScript:function () {
_root.Interjection("Deugan", "intro_tut", "c_HeroBabble");
}}, {name:"N", model:"BIGDOOR0", x:7, y:1, dest:["DL_area3", 15, 34]}, {name:"S", model:"BIGDOOR0", x:7, y:40, dest:["DL_entr", 5, 2]}];
areaLoot = [];
foes = [["monster", null, null, null, "SOLO"], ["monster", "monster", null, null, "DUO"], ["monster", "monster", "monster", null, "TRIO"]];
btlChance = 10;
levelrange = MONSTER_LEVELS.DRAGON_LAIR;
musicTrack = "MightyHeroes";
AreaSetup({clearmap:1, NoStorage:true});
Frame 186
map = [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 14, 13, 13, 13, 14, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], [13, 14, 13, 14, 13, 14, 13, 13, 10, 10, 10, 13, 16, 15, 12, 12, 12, 15, 16, 13, 10, 10, 10, 13, 13, 14, 13, 14, 13, 14, 13], [12, 15, 12, 15, 16, 15, 12, 12, 13, 14, 13, 12, 11, 11, 11, 11, 11, 11, 11, 12, 13, 14, 13, 12, 12, 15, 16, 15, 12, 15, 12], [11, 11, 11, 11, 11, 11, 11, 11, 12, 15, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16, 15, 12, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [17, 11, 11, 11, 17, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 17, 11, 11, 11, 17], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 14, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 14, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 15, 16, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 16, 15, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 17, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 17, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 13, 14, 14, 14, 13, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [17, 11, 11, 11, 17, 10, 10, 10, 10, 10, 13, 14, 13, 16, 15, 15, 15, 16, 13, 14, 13, 10, 10, 10, 10, 10, 17, 11, 11, 11, 17], [11, 11, 11, 11, 11, 13, 14, 13, 14, 13, 12, 15, 12, 11, 11, 11, 11, 11, 12, 15, 12, 13, 14, 13, 14, 13, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 12, 15, 16, 15, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 15, 16, 15, 12, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 17, 11, 11, 11, 11, 11, 17, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]];
tileset = "dragonlair";
area = "DL_area3";
areaname = "Dragon's Lair";
ambience = null;
dungeon = "DragonLair";
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:13, y:3, walkspeed:-1, conv:"c_healingCrystal"}, {name:"N", model:"BIGDOOR0", x:15, y:1, dest:["DL_area4", 6, 39]}, {name:"S", model:"BIGDOOR0", x:15, y:35, dest:["DL_area2", 7, 2]}];
areaLoot = [];
foes = [["monster", null, null, null, "SOLO"], ["monster", "monster", null, null, "DUO"], ["monster", "monster", "monster", null, "TRIO"]];
btlChance = 10;
levelrange = MONSTER_LEVELS.DRAGON_LAIR;
musicTrack = "MightyHeroes";
AreaSetup({clearmap:1, NoStorage:true});
Frame 187
map = [[10, 10, 10, 10, 10, 14, 14, 14, 10, 10, 10, 10, 10], [10, 10, 10, 14, 14, 15, 15, 15, 14, 14, 10, 10, 10], [10, 10, 14, 15, 15, 11, 11, 11, 15, 15, 14, 10, 10], [10, 14, 15, 11, 17, 11, 11, 11, 17, 11, 15, 14, 10], [10, 15, 11, 11, 11, 11, 11, 11, 11, 11, 11, 15, 10], [13, 11, 17, 11, 11, 11, 11, 11, 11, 11, 17, 11, 13], [16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16], [11, 11, 11, 11, 17, 11, 11, 11, 17, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10], [10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10], [10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10], [10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 18, 10, 10, 10, 10, 10, 10]];
tileset = "dragonlair";
area = "DL_area4";
areaname = "Dragon's Lair";
ambience = null;
dungeon = "DragonLair";
A_sprites = [{name:"The Dragon", model:"dragon", x:6, y:7, walkspeed:-1, dir:"s", elem:"DARK", conv:[["", "You shouldn't be able to talk to me! REPORT THIS BUG PLEASE!"]]}, {name:"Princess", model:"princess", x:6, y:3, walkspeed:-1, dir:"s", elem:"LIGHT", conv:[["", "You shouldn't be able to talk to me! REPORT THIS BUG PLEASE!"]]}, {name:"S", model:"BIGDOOR0", x:6, y:40, dest:["DL_area3", 15, 2]}, {name:"WALK_TRIGGER", model:"_trigger", x:6, y:12, triggers:1, ExecuteScript:function () {
DO_ACTIONS([["WALK", 0, -4], ["UNFREEZE"], ["TALK", "c_HeroBabble", "PC"]], "PC", true);
}}];
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = MONSTER_LEVELS.DRAGON_LAIR;
musicTrack = (TempVars.DRAGON_SLAIN ? "VictoryFanfare" : "MightyHeroes");
AreaSetup({clearmap:1, NoStorage:true});
Frame 189
map = [[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 15, 20, 20, 20, 20, 20, 20, 20, 15, 15, 15, 20, 186, 186, 186, 20, 20], [20, 15, 20, 20, 20, 20, 20, 10, 10, 10, 10, 15, 20, 185, 185, 185, 20, 20], [20, 15, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 183, 183, 184, 20, 20], [20, 15, 20, 20, 20, 10, 117, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20], [20, 15, 15, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 117, 20], [20, 20, 15, 15, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 20], [20, 20, 15, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 20], [20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 20], [20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 15, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]];
tileset = "rural";
area = "heroes_den";
areaname = "Heroes' Den";
ambience = null;
dungeon = null;
ambience = GenericExternalAmbience();
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:10, y:2, walkspeed:-1, conv:"c_healingCrystal"}, {name:"House", model:"DOOR4", x:14, y:3, dest:["heroes_house", 2, 5]}, {name:"S", model:"area_transition", x:6, y:14, dest:["WORLDMAP", 1, 1], ARROW:"S"}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"TALK_TRIGGER", model:"_trigger", x:10, y:6, ExecuteScript:function () {
TempVars.DRAGON_SLAIN = null;
_root.cont.Deugan.Talk(null, "n");
}});
if (TempVars.DRAGON_SLAIN) {
A_sprites.push({name:"Deugan", model:"deugan_child", x:10, y:7, walkspeed:-1, dir:"n", elem:"EARTH", conv:"c_HeroBabble", PC_STATS:GET_PC_STATS("Deugan_Child")});
}
}
if ((GameData.CHAPTER == 3) && (!GameData.plotVars.CH3TRILOBITES[1][_root.area])) {
A_sprites.push({name:"Trilobite Warrior", model:"trilobite2", x:1, y:1, walkspeed:-1, dir:"s", elem:"WATER", conv:"c_ch3sq6"});
}
areaLoot = [];
musicTrack = (GameData.plotVars.SUNSET ? "crickets" : "WorldMap");
foes = [];
btlChance = 0;
levelrange = [1, 1];
AreaSetup({clearmap:1});
EN_ADD("People", "Mardek");
EN_ADD("People", "Deugan");
EN_ADD("Places", "Heroes' Den");
Frame 190
map = [[12, 12, 12, 27, 17], [22, 11, 11, 11, 11], [11, 11, 24, 25, 23], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [11, 11, 11, 11, 22]];
tileset = "interior1";
area = "heroes_house";
areaname = "Heroes' Den - Abandoned House";
dungeon = null;
ambience = {ra:66, rb:0, ga:70, gb:0, ba:63, bb:0, aa:100, ab:0};
A_sprites = [{name:"Advenshers", model:"object", x:3, y:0, type:"examine", conv:[["", "It's a scrapbook containing Mardek and Deugan's various adventures. What with its numerous spelling mistakes and rambling, puerile prose, it's not a thrilling read and is unlikely to ever be published."]]}, {name:"EXIT", model:"DOOR4", x:2, y:6, dest:["heroes_den", 14, 4]}];
areaLoot = [{x:0, y:2, type:"item", amount:3, item:"Potion"}];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = "none";
AreaSetup({clearmap:1});
Frame 192
map = [[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 182, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20, 20, 20, 116, 116, 116, 116, 20, 20], [20, 15, 15, 116, 116, 116, 116, 116, 15, 15, 20, 20, 20, 20, 20, 122, 119, 119, 123, 20, 20, 122, 119, 119, 123, 20, 20, 15, 15, 15, 15, 15, 15, 15, 115, 115, 115, 115, 20, 20], [20, 15, 117, 115, 115, 115, 115, 115, 15, 15, 122, 119, 119, 119, 119, 128, 128, 128, 128, 119, 119, 128, 128, 128, 124, 20, 20, 20, 20, 20, 15, 15, 15, 15, 113, 114, 113, 112, 20, 20], [20, 15, 15, 115, 115, 115, 115, 115, 10, 15, 118, 128, 128, 121, 121, 121, 121, 121, 128, 128, 128, 128, 128, 120, 20, 20, 20, 20, 20, 20, 20, 15, 15, 15, 150, 10, 150, 15, 20, 20], [20, 15, 15, 115, 115, 115, 115, 115, 10, 10, 118, 128, 128, 20, 20, 20, 20, 20, 125, 121, 121, 121, 128, 120, 20, 20, 20, 20, 20, 20, 20, 15, 15, 10, 10, 10, 10, 15, 15, 20], [20, 15, 15, 113, 112, 114, 112, 113, 10, 10, 118, 128, 124, 20, 20, 20, 20, 20, 20, 20, 20, 20, 125, 120, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 10, 21, 21, 21, 21, 20], [20, 15, 10, 10, 10, 132, 10, 10, 10, 10, 125, 124, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 125, 123, 20, 20, 20, 20, 20, 20, 15, 15, 10, 10, 10, 10, 15, 15, 20], [20, 20, 10, 10, 10, 132, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 116, 116, 116, 10, 10, 10, 116, 116, 116, 20], [20, 20, 20, 20, 10, 132, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 35, 36, 37, 38, 39, 20, 20, 20, 125, 123, 20, 20, 20, 20, 115, 151, 115, 10, 10, 10, 115, 152, 115, 20], [20, 20, 20, 20, 10, 132, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 35, 36, 37, 38, 39, 20, 20, 20, 20, 130, 20, 20, 20, 20, 113, 114, 112, 10, 10, 10, 112, 114, 113, 20], [20, 20, 20, 20, 10, 132, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 30, 31, 32, 33, 34, 20, 20, 20, 20, 130, 20, 20, 20, 20, 15, 137, 133, 133, 141, 133, 133, 136, 15, 20], [20, 20, 20, 20, 15, 132, 20, 116, 116, 116, 116, 20, 20, 20, 20, 15, 146, 145, 142, 145, 147, 15, 20, 20, 20, 130, 20, 116, 116, 116, 116, 10, 10, 10, 132, 10, 10, 10, 150, 20], [20, 116, 116, 116, 15, 132, 20, 115, 115, 115, 115, 20, 20, 117, 15, 15, 148, 144, 143, 144, 149, 15, 15, 20, 20, 130, 20, 115, 115, 153, 115, 21, 21, 10, 132, 116, 116, 116, 116, 20], [20, 115, 156, 115, 15, 132, 15, 112, 114, 113, 112, 15, 15, 15, 15, 10, 150, 10, 10, 10, 150, 10, 15, 15, 15, 130, 15, 112, 113, 114, 112, 117, 10, 10, 132, 115, 155, 115, 115, 20], [20, 112, 114, 113, 15, 132, 150, 150, 132, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 130, 10, 10, 10, 132, 10, 10, 10, 10, 132, 113, 114, 113, 112, 20], [20, 15, 132, 15, 15, 140, 133, 133, 139, 133, 133, 133, 133, 133, 133, 133, 133, 133, 141, 133, 133, 133, 133, 133, 133, 110, 133, 133, 133, 139, 133, 133, 141, 133, 139, 133, 136, 15, 20, 20], [20, 15, 140, 133, 133, 136, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 132, 10, 10, 10, 10, 10, 10, 130, 10, 10, 10, 10, 10, 10, 132, 10, 10, 10, 15, 15, 20, 20], [20, 122, 111, 123, 116, 116, 116, 10, 116, 116, 116, 20, 20, 20, 20, 20, 21, 10, 132, 10, 21, 20, 20, 20, 20, 130, 20, 20, 20, 10, 10, 10, 132, 10, 116, 116, 116, 116, 20, 20], [20, 118, 111, 120, 115, 115, 115, 21, 115, 115, 115, 20, 20, 20, 20, 20, 10, 10, 132, 10, 10, 20, 20, 20, 20, 130, 20, 20, 20, 10, 10, 10, 132, 10, 115, 154, 115, 115, 20, 20], [20, 125, 111, 124, 113, 114, 112, 15, 113, 114, 112, 20, 20, 20, 20, 20, 10, 10, 132, 10, 10, 20, 20, 20, 20, 130, 20, 20, 20, 20, 21, 21, 132, 21, 112, 114, 112, 113, 20, 20], [20, 10, 132, 10, 10, 132, 150, 150, 150, 132, 15, 20, 20, 20, 20, 20, 20, 10, 132, 10, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 117, 10, 132, 10, 150, 132, 15, 15, 20, 20], [20, 15, 137, 133, 133, 139, 133, 133, 133, 136, 10, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 10, 137, 133, 133, 136, 150, 15, 20, 20], [20, 15, 15, 15, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 15, 20, 20, 20], [20, 20, 20, 15, 15, 15, 15, 15, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 20, 20, 15, 15, 15, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 132, 20, 20, 20, 20, 20, 20, 130, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]];
tileset = "rural";
area = "goznor";
areaname = "Goznor";
ambience = null;
dungeon = null;
A_sprites = [{name:"Monastery", model:"BIGDOOR3", x:18, y:13, dest:["gz_monastery", 3, 9]}, {name:"Barracks", model:"DOOR0", x:5, y:6, dest:["gz_barracks", 3, 11]}, {name:"House", model:"DOOR0", x:8, y:14, dest:["gz_house01", 1, 4]}, {name:"Accessory Shop", model:"DOOR0", x:2, y:15, dest:["gz_shop_Ac", 2, 6]}, {name:"Mardek's House", model:"DOOR0", x:5, y:20, dest:["gz_Mhouse1", 4, 5]}, {name:"Deugan's House", model:"DOOR0", x:9, y:20, dest:["gz_Dhouse", 3, 6]}, {name:"Magic Shop", model:"DOOR0", x:35, y:20, dest:["gz_shop_M", 2, 6]}, {name:"Item Shop", model:"DOOR0", x:29, y:14, dest:["gz_shop_I", 2, 6]}, {name:"Inn", model:"DOOR0", x:36, y:15, dest:["gz_inn", 3, 6]}, {name:"Weapon Shop", model:"DOOR0", x:31, y:10, dest:["gz_shop_W", 2, 6], lock:((GameData.CHAPTER == 3) ? "lock" : null)}, {name:"Armour Shop", model:"DOOR0", x:37, y:10, dest:["gz_shop_Ar", 2, 6]}, {name:"House", model:"DOOR0", x:35, y:3, dest:["gz_house02", 3, 5]}, {name:"Sewers", model:"area_transition", x:21, y:1, dir:"s", dest:["sewer1", 14, 9]}, {name:"S", model:"area_transition", x:18, y:22, dest:["WORLDMAP", 1, 1], ARROW:"S"}, {name:"Save Crystal", model:"o_Crystal", x:21, y:14, walkspeed:-1, conv:"c_healingCrystal"}];
if (GameData.CHAPTER == 1) {
if ((!GameData.plotVars.startedProperly) || (GameData.plotVars.ROHOPH != null)) {
ambience = {ra:100, rb:0, ga:80, gb:0, ba:70, bb:0, aa:100, ab:0};
A_sprites = A_sprites.concat([{name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["norm", "Oy, it's like a lickle boy or summat. Shouldn' you be goin' 'ome, sonny?"]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["blah", "Everyone else is in bed (yes, before the sun's even set, I know!), and here WE are on the 'night shift', protecting these barracks from monsters, supposedly."], ["blah", "Pfft. This place has been here for years though, and in all my time here it's only been 'attacked' once, and that was by a drunken gruul that passed out after knocking on the door once anyway!"]]}, {name:"George", model:"common", x:34, y:6, walkspeed:-1, dir:"s", elem:"EARTH", conv:((GameData.plotVars.ROHOPH != null) ? ([["norm", "Hello there, boys! Back from another adventure again? I'm just, uh... just wandering the streets. Yes, there's nothing suspicious about THAT, is there?"]]) : ([["norm", "You're out late there, boys! Shouldn't you be going back home to bed? Your parents are probably worried!"], ["susp", "You... do remember where you live, right? In those little houses in the south-west part of town...?"], ["o_O", "No, I, uh... I don't know why I thought you might've forgotten! But it's useful to know anyway, innit?"]]))}]);
for (var s in A_sprites) {
if (A_sprites[s].name == "Mardek's House") {
A_sprites[s].conv = ((((!GameData.plotVars.startedProperly) || (GameData.plotVars.ROHOPH != null)) && (_root.PCstats[1].name == "Deugan")) ? "c_HeroBabble" : null);
} else if (A_sprites[s].model == "DOOR0") {
A_sprites[s].lock = "lock";
}
}
} else {
A_sprites = A_sprites.concat([{name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["norm", "Oy, it's like a lickle boy or summat. Buggroff."]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "Oh, hello there, sonny. The barracks are no place for children, but go in for all I care."]]}, {name:"George", model:"common", x:34, y:11, walkspeed:40, dir:"s", elem:"EARTH", conv:[["deep", "I, uh... I do believe I've forgotten where I live! I can't find my house anywhere! I'm sure I'll find it if I wander around this general area for a while longer though. Yes, I'm sure things will turn out well!"]]}, {name:"Bearded Man", model:"man2", x:5, y:12, walkspeed:40, dir:RDir(), elem:"FIRE", conv:[["norm", "Hey look! I have a beard! You little kiddiwinks can't grow beards, so I WIN. HELL YEH!!"]]}, {name:"Middle-aged Woman", model:"woman2", x:2, y:22, walkspeed:60, dir:RDir(), elem:"EARTH", conv:[["norm", "Did you see that weird star that seemed to fall from the sky and into the ground over across the woods? In all my years, I've never seen anything like THAT before!"]]}, {name:"Jered", model:"boy", x:9, y:16, walkspeed:10, dir:RDir(), elem:"EARTH", conv:[["norm", "'Allo, Mardek and Deugan! I bet you're going adventuring today again... I never get to go adventuring because me mum won't let me!"]]}, {name:"Adventurer", model:"woman4", x:15, y:15, walkspeed:40, dir:RDir(), elem:"AIR", conv:[["susp", "Do all the children talk to strange adults in this little village? Scarper, chum. An Adventurer like me has nothing to say to you!"]]}, {name:"Old Lady", model:"woman3", x:22, y:16, walkspeed:90, dir:RDir(), elem:"EARTH", conv:[["norm", "Back in my day, we didn't have stars falling from the heavens! Lord no! Stars were much better behaved back in the good old days, not like these rowdy, rebellious stars you kids look at these days! They'll be the death of us all, I swear!"]]}, {name:"Middle-aged Man", model:"man1", x:30, y:16, walkspeed:40, dir:RDir(), elem:"EARTH", conv:[["norm", "I'm so middle-aged that I don't care much for falling stars. I just don't get excited like you wee sprogs do, you see. You'll understand when you're older."]]}, {name:"Woman", model:"woman", x:32, y:18, walkspeed:40, dir:RDir(), elem:"WATER", conv:[["norm", "Yes? What do you want, boys? If you're after some more sweet, sweet cocoa biscuits, I'm sorry but I've got none to give to you today!"]]}, {name:"Old Man", model:"man3", x:34, y:22, walkspeed:90, dir:RDir(), elem:"AIR", conv:[["norm", "If I were any younger, I'd go and look at where that star landed meself! I just knows it's somethin' special! But since me old bones are too feeble, I'd never survive the walk through them woods..."], ["grin", "You little whippersnappers look rip-rarin' to go and explore, though! Tell me all about what you find when you get back!"]]}]);
}
musicTrack = ((GameData.plotVars.startedProperly && (GameData.plotVars.ROHOPH == null)) ? "Goznor" : "crickets");
} else if (GameData.CHAPTER == 2) {
var A_sprites2 = [];
if (GameData.plotVars.ZOMBIES == "GOZNOR") {
ambience = {ra:25, rb:0, ga:40, gb:0, ba:80, bb:0, aa:100, ab:0};
areafog = "DARK";
var ms = 0;
while (ms < 11) {
var X = 0;
var Y = 0;
do {
X = random(map[0].length);
Y = random(map.length - 7);
} while (!IsValidTile(X, Y));
A_sprites.push({name:"Zombie", model:"zombie", x:X, y:Y, walkspeed:10 + random(21), elem:"DARK", conv:[["zombie", "Muuuuuhhhhhhggghh...!"], (Do = function () {
BATTLE([["Zombie", null, null, null], ["Zombie", null, null, null], [4 + random(3), null, null, null], "SOLO"], "battle", true);
return(true);
})]});
ms++;
}
var d = 0;
while (d < A_sprites.length) {
if (A_sprites[d].model == "DOOR0") {
A_sprites[d].lock = "tight";
}
d++;
}
} else if (GameData.plotVars.ZOMBIES == "CANONIA") {
ambience = {ra:25, rb:0, ga:40, gb:0, ba:80, bb:0, aa:100, ab:0};
A_sprites2 = [{name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["norm", "Canonia looks like it's in trouble. We should be 'elpin', but we're not because it's a long way away! Bah! And what could we soldiers do anyway? We can't defeat zombies! They have all blue skin an' everythin'!"]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["grin", "I'm so glad the zombies left here and went to Canonia instead! Now they're their problem!"]]}, {name:"George", model:"common", x:34, y:11, walkspeed:40, dir:"s", elem:"EARTH", conv:[["grin", "You want magic to fly, eh?"], ["susp", "[[PC]]Well, I didn't say anything yet!"], ["grin", "I can cast a spell on you that can make you fly. Or I could, if I wasn't yanking your leg off. And by that, I mean shifting to a state of supinity and recumbence. Telling a porkie. But seriously, I don't think there are any such spells! The best magic user around here is the Shaman, so ask him! Maybe he'll be able to ask Mother Nature nicely to bend the law of gravity for you?"], ["susp", "[[PC]]What's the law of gravity?"], ["grin", "An anachronism."]]}, {name:"Bearded Man", model:"man2", x:5, y:12, walkspeed:40, dir:RDir(), elem:"FIRE", conv:[["angr", "Those zombies didn't eat my beard! By the GODS, am I relieved! Though if they'd tried, I would've sworn at them SO HARD their mothers would bleed!!"]]}, {name:"Jered", model:"common", x:9, y:16, walkspeed:10, dir:RDir(), elem:"EARTH", conv:[["sad", "A good adventurer I do not make, I've found! I just hid like everyone else when the zombies were here, and now I'm hiding from the ones in Canonia... I'm such a coward. My dead mother would be ashamed of me!"]]}];
} else if (GameData.plotVars.SUNSET && (GameData.plotVars.SUNSET != "NIGHT")) {
ambience = {ra:100, rb:0, ga:80, gb:0, ba:70, bb:0, aa:100, ab:0};
A_sprites2 = [{name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["angr", "I've been doin' this bleedin' job fer nigh on ten years now!"], ["smile", "Just fote yeh should know that, kiddo. I'm sure it'll enlighten yer life in some way or another."]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["grin", "Oh, hello there, fellow soldier! If you're looking for cheap prostitutes like most of us do at night, I'm afraid you won't find any around here! Try that Lilanea woman's house. I heard she was pretty lonely; she might let you have a go for free!"], ["o_O", "[[PC]]Well, ew!"], ["grin", "A bit too old for you, eh? Well, how about you go and raid the girls' dorms? Me and Bernie here used to do that all the time back when we were recruits!"], ["grin", "There used to be a secret passage from the Sewers that led right to underneath the girls' dorms... Heh, maybe it's still there?"]]}];
var d = 0;
while (d < A_sprites.length) {
if (A_sprites[d].model == "DOOR0") {
A_sprites[d].lock = "lock";
}
d++;
}
} else if (GameData.plotVars.SUNSET != "NIGHT") {
A_sprites2 = [{name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["norm", "I sure could eat some ham right now! But this job won't let me."]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "Hello there, fellow soldier! You're one of them ones from the castle, reyt? You won't find anything here... With Jacques gone to that better job of his, these barracks are as quiet as a grave! Uh, one that isn't haunted, anyway. By zombies or spectres. They tend to moan a lot. Usually about the weather and current political climate. Yes."]]}, {name:"George", model:"common", x:34, y:11, walkspeed:40, dir:"s", elem:"EARTH", conv:[["grin", "Hey, did you know that you can split stacks of items by holding the S key and then clicking them? I bet you totally didn't."]]}, {name:"Bearded Man", model:"man2", x:5, y:12, walkspeed:40, dir:RDir(), elem:"FIRE", conv:[["norm", "Hah! You call THAT a BEARD?! It's more like... like... a CRAPPY beard! HAHAHA! I'm still totally far way better than you by loads because I have a better beard than you! HELL YEH!"]]}, {name:"Middle-aged Woman", model:"woman2", x:2, y:22, walkspeed:60, dir:RDir(), elem:"EARTH", conv:[["norm", "Why, if it isn't Mardek! My, you've grown in these eight years that it's been since Chapter 1! Who'd've thought?!"]]}, {name:"Jered", model:"common", x:9, y:16, walkspeed:10, dir:RDir(), elem:"EARTH", conv:[["norm", "I may not have become an adventurer yet, but one day I most certainly will! Just you wait and see, Mardek and Deugan!"]]}, {name:"Middle-aged Man", model:"man1", x:30, y:16, walkspeed:40, dir:RDir(), elem:"EARTH", conv:[["grin", "There were two old people who used to wander around Goznor, but they're dead now."]]}, {name:"Middle-aged Woman", model:"woman2", x:32, y:18, walkspeed:40, dir:RDir(), elem:"WATER", conv:[["norm", "My, how middle-aged I've become in the last eight years! Soon I'll probably middle-age off the mortal coil and then will be dead!"]]}];
} else if (GameData.plotVars.SUNSET == "NIGHT") {
ambience = {ra:25, rb:0, ga:40, gb:0, ba:80, bb:0, aa:100, ab:0};
var d = 0;
while (d < A_sprites.length) {
if ((A_sprites[d].name == "Inn") && (GameData.plotVars.ZOMBIES == "CANONIA")) {
} else if (A_sprites[d].model == "DOOR0") {
A_sprites[d].lock = "tight";
}
d++;
}
}
A_sprites = A_sprites.concat(A_sprites2);
musicTrack = ((GameData.plotVars.ZOMBIES == "GOZNOR") ? "EvilStirs" : (((!GameData.plotVars.SUNSET) ? "Goznor" : "crickets")));
} else if (GameData.CHAPTER == 3) {
A_sprites = A_sprites.concat([{name:"Laddy", model:"zombie", x:22, y:1, walkspeed:-1, dir:"e", elem:"EARTH", conv:[["zombie", "Muuuuuhhhhhhggghh...!"], ["shok", "[[PC]]Wah! A zombie!"], ["smile", "[[Laddy]]Oh, I sure got you there! I'm not really a zombie though. I'm just ROLE-PLAYING. Do you know what that is? I bet you don't know what that is. It's sort of like raising a flag, except completely different in every conceivable way. Y'know."], ["smile", "Um, anyway, could you sort of stay out of the sewers now? Ever since some hero or another unlocked the door down there, we've had access to the Catacombs, so we can finally have the realistic location our LARP sessions really need!"], ["grin", "My character is a zombie guy who woke up mysteriously on some boat with anmesia, with only a strange scroll in his possession, only he couldn't read it because he forgot how to read also, and he met a blind guy, and, and...!"], ["susp", "[[RM]]That sounds like the deepest story I've ever heard."], ["grin", "[[Laddy]]Yeh, I know! Isn't it amazing?!"]]}, {name:"Bernardo", model:"soldier", x:4, y:7, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["grin", "'Ey, if it i'n't lickle Sir Mardek, our amazin' saviour! I remember back when you wuz still a lickle boy! Do you remember that? It were only two chapters ago!"], ["susp", "But the last chapter was released so bloody long ago that I'd not be surprised at all if yeh'd forgotten everythin' that 'appened in it. Bloody useless developer. Waste o' space, 'e is."]]}, {name:"Marcellus", model:"soldier", x:6, y:7, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["blah", "We've been standing guarding these barracks for, what is it now, like 11 years? More? You'd think we'd have got better jobs, but no. Instead, we just watch the children grow into Heroes while wasting our lives like this."], ["angr", "It's not like there's even anything IN the barracks! Or anyone to attack them! Agh! Sometimes I just wonder whether to... to... I don't know!"], ["smile", "But at least I have my best buddy here to keep me company. He sure is a great man, you know? Yep. A great man. Uh... Go away now."]]}, {name:"George", model:"common", x:34, y:11, walkspeed:40, dir:"s", elem:"EARTH", conv:[["susp", "Crystals, eh? What about them?"], ["deep", "[[PC]]Well, I didn't say anything..."], ["grin", "Oh, you want to know where they are, do you? Probably to save the world or something? In that case, I just simply don't know! I don't! You can torture me all you like - go on, just try it! Whip me hard, young man! 'Til I bleed streams! - but I'd still never tell you! Because I can't!"], ["blah", "I think the Goznor Shaman knows though. That damned curly-bearded old codger seems to know everything. Pfft."]]}, {name:"Bearded Man", model:"man2", x:5, y:12, walkspeed:40, dir:RDir(), elem:"FIRE", conv:[["deep", "Y'know, I'm thinking about shaving off my glorious facial hair..."], ["deep", ". . ."], ["o_O", "But then what'd be the point in living?"]]}, {name:"Middle-aged Woman", model:"woman2", x:2, y:22, walkspeed:60, dir:RDir(), elem:"EARTH", conv:[["norm", "The King's been making some rather strange rules and commands and such lately!"], ["susp", "Or so I would assume, because I've heard he's acting all iffy and off, but honestly, I don't even know what he DOES around here at the best of times. Goznor should just become an anarchy and we should all wear black and have neon green hair."]]}, {name:"Jered", model:"common", x:9, y:16, walkspeed:10, dir:RDir(), elem:"EARTH", conv:[["grin", "I'm trying to think up a good adventurer name, for when I become an adventurer, which I will one of these days! Just you wait and see, Mardek and\nD-... uhm..."], ["deep", ". . ."], ["deep", "Uh, anyway, I'm thinking of maybe calling myself 'Amiable Dingo'? Has a nice ring to it, don't you think? And it follows the trends, y'know? Social Fox, now this Lone Wolf fellow... It seems only logical!"]]}, {name:"Adventurer", model:"woman4", x:15, y:15, walkspeed:40, dir:RDir(), elem:"AIR", conv:[["blah", "And so my travels bring me back to this pissant hamlet... Wonderful. I bet no heroes ever called THIS their home!"]]}, {name:"Middle-aged Man", model:"man1", x:30, y:16, walkspeed:40, dir:RDir(), elem:"EARTH", conv:[["grin", "Sir Mardek, have you heard the rumours of that Lone Wolf fellow? You know, the new Grand Adventurer that's been waltzin' around, slaying cats and saving dragons and all that mess? Surely you must have heard!"], ["norm", "It seems he's been everywhere but Goznor, though I can't imagine why. It could be because with you here, there's nothing much to do in the area."], ["sad", "Or it could be that the town is just a woeful dump that nobody of any stature would be seen dead in!"], ["susp", "Present company excluded, of course."], ["grin", "I mean, obviously a man of my incredible feats and splendourous charisma can call from here, so there must be something to the place!"]]}, {name:"Middle-aged Woman", model:"woman2", x:32, y:18, walkspeed:40, dir:RDir(), elem:"WATER", conv:[["sad", "Hello there, Sir Mardek... How are you feeling these days? Are you alright? Coping alright by yourself?"], ["sad", "Sir Deugan's passing affected us all, but you were surely heartbroken... I worry about you a lot. You're so brave."]]}, {name:"Old Man", model:"man3", x:34, y:22, walkspeed:90, dir:RDir(), elem:"AIR", conv:[["norm", "I heard the Queen's been actin' a bit weird. Or do we have a King now? I do forget these things, for you see, I am an aged gentleman. The years I have lived are many. I am not a young person."], ["grin", "I am in my winter years. My time is fading. I'm in the final Act of the play of Life. My teeth fell out a while ago. I get back pains. I forget my name. Then I remember it is 'Old Man' by looking above the dialogue box. I am in my winter years. I heard that there was something to do with the King! Or do we have a Queen now?"], ["deep", "Back in MY day, we didn't have none o' this monarchy palaver. We just had to make it by ourselves pressed between Life's hearty bosoms of harshness and strife, selling eggshells fer a livin' and eating the moss out our toes! Give me a mossy toe these days, and I'll say 'Childs! They don't know what their mission! Is!' I'm old."]]}]);
musicTrack = "Goznor";
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
fishes = [{name:"Wetfish", type:"ITEM", chance:80, pull:5, whim:2, HP:100, wait:100}, {name:"Brinary", type:"MON", chance:20, pull:5, whim:2, HP:100, wait:80}];
AreaSetup({clearmap:1});
EN_ADD("Places", "Goznor");
Frame 193
map = [[10, 10, 14, 14, 14, 10, 10], [10, 14, 15, 15, 15, 14, 10], [10, 15, 11, 11, 11, 15, 10], [10, 11, 30, 31, 32, 11, 10], [13, 17, 11, 16, 11, 17, 13], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 16, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11]];
tileset = "monastery";
area = "gz_monastery";
areaname = "Goznor - Monastery";
ambience = null;
dungeon = null;
A_sprites = [{name:"Medium Priest Gallovar", model:"Ypriest", x:3, y:5, walkspeed:-2, dir:"s", EN:["People", "Gallovar"], elem:"WATER", conv:"c_Ypriest"}, {name:"EXIT", model:"BIGDOOR3", x:3, y:10, dest:["goznor", 18, 14]}];
if (GameData.plotVars.ZOMBIES == "GOZNOR") {
A_sprites.push({name:"WALK_TRIGGER", model:"_trigger", x:3, y:9, ExecuteScript:function () {
DO_ACTIONS([["WALK", 0, 3], ["UNFREEZE"], ["TALK", "c_Ypriest", "Medium Priest Gallovar"]], "Medium Priest Gallovar", true);
}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = "HymnOfYalort";
AreaSetup({clearmap:1});
Frame 194
map = [[110, 12, 110, 12, 110, 12, 110], [20, 11, 20, 11, 20, 22, 20], [21, 11, 21, 11, 21, 11, 21], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 16, 10, 10, 10], [10, 12, 110, 11, 110, 12, 10], [10, 22, 11, 11, 23, 11, 10], [10, 11, 11, 11, 11, 11, 10], [10, 11, 11, 11, 11, 11, 10], [10, 11, 11, 11, 11, 11, 10], [10, 11, 11, 11, 11, 11, 10]];
tileset = "interior1";
area = "gz_barracks";
areaname = "Goznor - Barracks";
ambience = null;
dungeon = null;
A_sprites = [{name:"EXIT", model:"DOOR0", x:3, y:12, dest:["goznor", 5, 7]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"Injured Guard", model:"soldier", x:2, y:1, walkspeed:-2, dir:"s", elem:"DARK", conv:[["grin", "I'm not really injured, y'know. Just lazy."], ["angr", "But don't tell anyone, or I'll rip yer bleedin' 'ead off wi' me bare 'ands, yeh little cretin!"]]});
A_sprites.push({name:"Jacques", model:"captain", x:3, y:8, walkspeed:-1, dir:"s", elem:"AIR", EN:["People", "Jacques"], conv:"c_jacques"});
}
areaLoot = [{x:0, y:2, type:"item", amount:1, item:"Potion"}, {x:2, y:2, type:"item", amount:1, item:"Potion"}, {x:4, y:2, type:"item", amount:1, item:"Potion"}, {x:6, y:2, type:"item", amount:1, item:"Potion"}];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 195
map = [[12, 12, 17, 12, 12, 12, 12], [20, 11, 11, 11, 11, 11, 22], [21, 11, 11, 24, 25, 23, 11], [22, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11]];
tileset = "interior1";
area = "gz_house01";
areaname = "Goznor - House";
ambience = null;
dungeon = null;
if (GameData.CHAPTER == 1) {
A_sprites = [{name:"Woman", model:"woman2", x:5, y:2, walkspeed:-2, dir:"w", elem:"FIRE", conv:[["blah", "Children are so rude these days! Walking into peoples' houses uninvited, all willy-nilly! And talking to the people who live there, no less! Well I never! Who do you think you are, adventurers or something?"]]}, {name:"Man", model:"man1", x:3, y:2, walkspeed:-2, dir:"e", elem:"AIR", conv:[["grin", "Hello, boys! Welcome to our humble home! Make yourselves comfortable and stay as long as you like!"], ["norm", "I'm afraid I don't have anything interesting to say, though. Everyone's talking about some weird star that fell from the sky... Of course, I didn't see it because apparently I never leave this chair!"]]}, {name:"EXIT", model:"DOOR0", x:1, y:5, dest:["goznor", 8, 15]}];
} else if (GameData.CHAPTER == 2) {
A_sprites = [{name:"Woman", model:"woman2", x:5, y:2, walkspeed:-2, dir:"w", elem:"FIRE", conv:[["blah", "Soldiers are so rude these days! Walking into peoples' houses uninvited, all willy-nilly! And talking to the people who live there, no less! Well I never! Who do you think you are, soldiers who people want in their houses or something?"]]}, {name:"Man", model:"man1", x:3, y:2, walkspeed:-2, dir:"e", elem:"AIR", conv:[["grin", "Hello, soldiers! Welcome to our humble home! Make yourselves comfortable and stay as long as you like!"], ["norm", "I'm afraid I don't have anything interesting to say, though. Everyone's talking about the death of some small mammal that got along well with people, or something. It's weird."]]}, {name:"EXIT", model:"DOOR0", x:1, y:5, dest:["goznor", 8, 15]}];
} else if (GameData.CHAPTER == 3) {
A_sprites = [{name:"Woman", model:"woman2", x:5, y:2, walkspeed:-2, dir:"w", elem:"FIRE", conv:[["blah", "Legendary Heroes who we owe our lives to are so rude these days! Walking into peoples' houses uninvited, all willy-nilly! And talking to the people who live there, no less! Well I never! Who do you think you are? The only man I ever loved, who died long before you were born? Of course you aren't. I feel very bitter now. Stop reminding me of these things."], ["sad", "[[Man]]I wish YOU wouldn't remind ME that you don't even love me, but a dead man instead!"], ["blah", "[[Woman]]What did I tell you about interrupting me when I'm talking to strangers?"], ["susp", "[[Man]]Uh... nothing?"], ["blah", "[[Woman]]That's right."]]}, {name:"Man", model:"man1", x:3, y:2, walkspeed:-2, dir:"e", elem:"AIR", conv:[["grin", "Hello, Sir Mardek! Welcome to our humble home! Make yourselves comfortable and stay as long as you like!"], ["blah", "I'm afraid I don't have anything interesting to say, though. Everyone's talking about the King acting weird. And about this solitary canine thing which I've always been confused by. You young people and your fads and loud language. You give me lines on my face, you do. LINES."]]}, {name:"EXIT", model:"DOOR0", x:1, y:5, dest:["goznor", 8, 15]}];
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 196
map = [[17, 12, 12, 12, 12], [24, 11, 11, 11, 22], [111, 111, 111, 111, 111], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [22, 11, 11, 11, 22]];
tileset = "interior1";
area = "gz_shop_Ac";
areaname = "Goznor - Accessory Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"Shopkeeper", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"AIR", EN:["People", "Social Fox"], conv:[["grin", "Lads! I know how much you like Social Fox and aspire to be like him and all, so did you hear about his latest deed? Apparently he saved Aeropolis from a dragon or something! Isn't that amazing!"], ["norm", "Oh, I love that mighty man... He's so heroic, so manly... I'd love to one day just meet him and marry him and MEAT him and-"], ["o_O", "[[PC]]. . ."], ["shok", "Lads! You're still here!? Go away! Leave me alone to my fantasies for a few moments!"], ["zzz", "Ooh, yes, you foxy man! Swing that greatsword!"]]}, {name:"EXIT", model:"DOOR0", x:2, y:7, dest:["goznor", 2, 16]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Shopkeeper", dir:"s"});
} else {
A_sprites.push({name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Goznor Accessory Shop", wares:DefaultShops.ACCESSORY_L1}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 197
map = [[17, 12, 110, 12, 12, 10, 13], [11, 11, 11, 11, 22, 10, 16], [11, 24, 25, 23, 11, 10, 16], [11, 11, 11, 11, 11, 12, 11], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11]];
tileset = "interior1";
area = "gz_Mhouse1";
areaname = "Mardek's House";
ambience = null;
dungeon = null;
A_sprites = [{name:"Stairs Up", model:"DOOR0", x:6, y:0, dest:["gz_Mhouse2", 3, 5]}, {name:"EXIT", model:"DOOR0", x:4, y:6, dest:["goznor", 5, 21]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"Lilanea", model:"lilanea", x:3, y:2, walkspeed:-2, dir:"w", elem:"AIR", EN:["People", "Lilanea"], conv:"c_lilanea"}, {name:"WALK_TRIGGER", model:"_trigger", x:4, y:5, triggers:1, ExecuteScript:function () {
DO_ACTIONS([["WALK", -1, 0], ["WALK", 0, -2], ["UNFREEZE"], ["TALK", "c_lilanea", "Lilanea"]], "PC", true);
}});
} else {
if (GameData.CHAPTER == 2) {
A_sprites.push({name:"Polly", model:"polly", x:1, y:2, walkspeed:-2, dir:"e", elem:"EARTH", EN:["People", "Polly"], conv:"c_polly"});
}
A_sprites.push({name:"Lilanea", model:"lilanea", x:3, y:2, walkspeed:-2, dir:"w", elem:"AIR", EN:["People", "Lilanea"], conv:"c_lilanea"});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 198
map = [[12, 12, 12, 17], [20, 11, 11, 23], [21, 11, 11, 11], [22, 11, 11, 11], [11, 11, 11, 11], [10, 10, 10, 16]];
tileset = "interior1";
area = "gz_Mhouse2";
areaname = "Mardek's Room";
ambience = null;
dungeon = null;
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:0, y:4, walkspeed:-1, conv:"c_healingCrystal"}, {name:"Stairs Down", model:"DOOR0", x:3, y:6, dest:["gz_Mhouse1", 6, 1]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"SLEEP_TRIGGER", model:"_trigger", x:0, y:1, triggers:1, ExecuteScript:function () {
if (GameData.plotVars.ROHOPH != null) {
_root.Speak(_root.PCstats[0], _root.cont.PC, "c_A_Rohoph");
return(undefined);
}
GameData.plotVars.startedProperly = 1;
_root.cont.PC.DrawFrame(8);
_root.freeze = true;
_root.PlayCutscene("CUTSCENE2");
_root.CUTSCENE1.AfterActions = function () {
GameData.plotVars.startedProperly = 2;
_root.DrawSprite({name:"Deugan", model:"deugan_child", x:3, y:5, walkspeed:-1, dir:"n", elem:"EARTH", conv:"c_A_Deugan", PC_STATS:GameData.plotVars.Allies.Deugan});
DO_ACTIONS([["WALK", 0, -4], ["WALK", -2, 0], ["UNFREEZE"], ["TALK", "c_A_Deugan", "Deugan"]], "Deugan", true);
};
}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 199
map = [[17, 12, 27, 27, 12, 12, 12], [11, 11, 11, 11, 11, 22, 22], [11, 24, 25, 23, 11, 11, 22], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11], [22, 11, 11, 11, 11, 11, 11]];
tileset = "interior1";
area = "gz_Dhouse";
areaname = "Deugan's House";
ambience = null;
dungeon = null;
A_sprites = [{name:"Geography of Belfan", model:"object", x:2, y:0, type:"examine", conv:[["", "There are four main continents on Belfan, as well as numerous smaller continents and archipelagos."], ["", "The continent of Hadris is the largest in the world, and most of the human cities and nations are here. Goznor is located at the southernmost point, on the northern shore of the gulf connecting Hadris and Fengue."], ["", "Fengue is south of Hadris, separated by only a small channel of water at the northernmost point. It is scarcely inhabited and the majority of its terrain is desert. Aeropolis is its capital."], ["", "Nole'Oth is a continent to the north, known colloquially as the 'Northern Wastes'. It is perpetually covered in snow and is largely unexplored."], ["", "The continent of Tharadia is said to exist across the oceans to the west, but to this date no expeditions have returned from there to verify its existence or detail its composition or population, if any."]]}, {name:"The Crystals", model:"object", x:3, y:0, type:"examine", conv:[["", "The elemental crystals were created by YALORT when He made the world, and they provide Belfan with all of its magical energy and keep it alive. They consist of pure elemental magical energy, and as such have the power to grant people extreme power; for this reason, they have been sought by Adventurers and Villains alike."], ["", "All of the crystals are located around the gulf separating Hadris and Fengue; it is said that this general area is where YALORT came down to the newly-crafted Belfan and breathed the gift of life into it."], ["", "The Fire Crystal possesses the power of heat and flames. It keeps the world warm so that things can grow and thrive, and its power is harnessed every time a flame burns, magical or natural. It is located in a temple in Fengue."], ["", "The Water Crystal keeps the waters pure and flowing and the rains pouring. It is vital for life on Belfan. It is also responsible for Man's rational thoughts, or so it has been said. It can be found in Hadris."], ["", "The Air Crystal keeps the winds blowing, and the air clean. The city of Aeropolis was built around the temple in which it can still be found."], ["", "The Earth Crystal is responsible for the lives of beasts and plants on Belfan. Its energy keeps them growing and breeding. It is held in a sacred temple within the Lifewood in Fengue."], ["", "The Light Crystal, being the physical manifestation of the Goodness in Man's heart, is the greatest treasure of Goznor, kept within the Castle of Goznor."], ["", "The location of the Dark Crystal is unknown; this is probably for the best, since it is the crystal most often sought by those who wish to inflict evil on the world."], (Do = function () {
EN_ADD("Artefacts", "Fire Crystal");
EN_ADD("Artefacts", "Water Crystal");
EN_ADD("Artefacts", "Air Crystal");
EN_ADD("Artefacts", "Earth Crystal");
EN_ADD("Artefacts", "Light Crystal");
EN_ADD("Artefacts", "Dark Crystal");
return(1);
})]}, {name:"EXIT", model:"DOOR0", x:3, y:7, dest:["goznor", 9, 21]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"Polly", model:"polly", x:1, y:2, walkspeed:-2, dir:"e", elem:"EARTH", EN:["People", "Polly"], conv:"c_polly"});
}
if (GameData.CHAPTER == 3) {
A_sprites.push({name:"Polly", model:"polly", x:1, y:2, walkspeed:-2, dir:"e", elem:"EARTH", EN:["People", "Polly"], conv:"c_polly"}, {name:"Derek", model:"derek", x:3, y:2, walkspeed:-2, dir:"w", elem:"FIRE", EN:["People", "Derek"], conv:"c_derek"});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 200
map = [[17, 12, 113, 12, 12, 10, 27, 27, 27], [11, 11, 11, 23, 22, 10, 11, 11, 11], [111, 111, 111, 111, 111, 10, 11, 19, 11], [11, 11, 11, 11, 11, 10, 11, 11, 11], [11, 11, 11, 11, 11, 12, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10]];
tileset = "interior1";
area = "gz_shop_M";
areaname = "Goznor - Magic Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"TRANSPORT_TRIGGER", model:"_trigger", x:7, y:2, triggers:-1, WALKON:true, ExecuteScript:function () {
if (!CanEnterDreamrealm()) {
return(undefined);
}
_root.EnterDreamrealm();
_root.WarpTrans(["gz_shop_M_dream", 7, 2]);
}}, {name:"The Elements", model:"object", x:6, y:0, type:"examine", conv:[["", "Everything and everyone in the world has an innate affinity to at least one of several magical elements. People and spells are all monoelemental, and their Element determines their power, potential, and, in the case of people, their personalities."], ["", "There are seven known elements, divided into three distinct groups. There are the Natural Elements, which Nature is composed largely of; there are the Moral Elements, which are born from the essence of free will and the spirit of life and choice; there is also the odd Spiritual element group, which eludes many thaumatologists to this day."], ["", "There are four Natural elements - Fire, Water, Air, and Earth - two Moral elements - Dark and Light - and only one known Spiritual element - Ether - though Ether's existence is largely considered mythical."], ["", "FIRE is the element of energy and devotion, of passion and strength. Fire people are strong-willed, opinionative, confident and powerful. They're driven, and strive to achieve goals. They can be stubborn."], ["", "WATER is the element of intellect, of calmness, of beauty. Water people are often laid-back, and 'go with the flow'. They're often good-looking, intelligent, and perceptive. Many have strong magical power, making ideal Mages or Wizards."], ["", "AIR is the element of adventure, of wandering, of drifting, of dreaming. Air people are dreamers, but they're floaty and rarely focused on one thing for long. Many travellers and wanderers and Adventurers are of the Air element, 'living on the edge of the wind'."], ["", "EARTH is the element of wisdom, common sense and hardiness. Earth people are usually tough and practical, and most certainly 'down to Earth'. They are wise and understanding, trustworthy, honest and reliable. They can be extremely devoted to a cause or way of life, and are also good at solving puzzles."], ["", "LIGHT is the elemental epitome of goodness and justice. People with this element will live to Do Good, helping people whenever they can. They live for others moreso than for themselves. They are the most helpful, kind and caring of elements, and often become Heroes."], ["", "DARK is the elemental epitome of evil. Dark people are inherently self-centred and manipulative, often violent. They only do things to benefit themselves, and care little for other people. They are the polar opposites of Light people."], ["", "ETHER is still a mystery, as it occurs so rarely as to be considered almost mythical. Not much is written about it, and what is written is not highly reliable."], ["", "There are rumours of an eighth element, but that is all they are; rumours. Myths. There's no known evidence to support such claims."], ["", "The personality traits mentioned for each element in this book are the most common for those elements, but are by no means the only personalities such people can have. Good-aligned Dark-elemental people are not unheard of (take the Adventurer Bernard Stormkiller, for example)."], ["", "Being creatures of free will, our destinies are for us to choose, not our inherent elements."]]}, {name:"Elemental Compatibility", model:"object", x:7, y:0, type:"examine", conv:[["", "Though the elements all exist in a delicate natural balance, each one has an element that opposes it, an element that it must woefully submit to, by the accord of the Magical Laws Of The Universe."], ["", "Fire consumes and feeds on Air, Air whittles away and erodes the Earth, Earth absorbs Water, and Water douses flames. Thus is the cycle of the Natural elements."], ["", "The Moral elements, being antipodes of one another, polar opposites, oppose each other in a unique way. Light floods, consumes and thus eradicates the Darkness, but in turn Darkness puts out the light. These two elements are both strong and weak against each other simultaneously."], ["", "Not much is known about the other elements' traits, if indeed they exist at all. Is Ether strong or weak against anything? We do not know."], ["", "Though these elemental traits are most often exploited on the battlefield, they can cause influence in day-to-day life too. A fire-elemental person will inherently (though unwillingly) be more submissive to a water-elemental person, and that water person will be more bossy and demanding around fire people, exuding an unwilling and unconscious dominance. Such is nature."]]}, {name:"Elements and Breeding", model:"object", x:8, y:0, type:"examine", conv:[["", "Elemental traits can also come into play when it comes to love and sexual relationships. Your elemental affinity plays a large part in determining who you're attracted to, and how well relationships with others will turn out for you."], ["", "Males, being the dominant gender, also like to be the dominant element in relationships; thus they are attracted to females of the element that they are strong against first and foremost. Females, secretly lusting being dominated and ravished, are attracted to men of the element superior to themselves. So such matches work rather well."], ["", "People of the same element can also work excellently together; similarity at the most fundamental levels has many times been the cause for a great love blossoming and flourishing."], ["", "Such things as have been mentioned apply only to people with Natural elements; for people with a Moral element, different rules apply. Naturally, they are attracted to people of the same element as themselves, but also to any and all of the Natural elements. Because of this, Morally-elemental people have more choice when it comes to finding a partner that's right for them."], ["", "A relationship between the two Moral elements - that is, a Light and Dark couple - CANNOT work, both emotionally and physically. The two people will never get along or fall in love, and even if they did, a child could never physically be conceived in such a relationship."], ["", "When a child is born to other couples, however, its element is inherited from its parents. In a dominant-element relationship, the child is of the dominant element. In same-element relationships, the child is of the element both parents share. In Moral-Natural relationships, the Moral element takes dominance."], ["", "Consider these things when looking for a partner. Asking for someone's element before anything else is a great way of quickly getting an idea of whether anything will happen or not!"]]}, {name:"Shopkeeper", model:"man2", x:2, y:1, walkspeed:-1, dir:"s", elem:"WATER", conv:[["grin", "Heh, sorry lads, but I can't legally sell you any magic until you're a wee bit older! Come back in a few years maybe?"]]}, {name:"EXIT", model:"DOOR0", x:2, y:7, dest:["goznor", 35, 21]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Shopkeeper", dir:"s"});
} else {
A_sprites.push({name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Goznor Magic Shop", wares:DefaultShops.MAGIC_L1}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 201
map = [[12, 13, 12, 13, 12, 10, 20, 20, 20], [11, 11, 11, 11, 11, 10, 11, 11, 11], [15, 15, 15, 15, 15, 10, 11, 14, 11], [11, 11, 11, 11, 11, 10, 11, 11, 11], [11, 11, 11, 11, 11, 12, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 10, 10, 10, 10]];
tileset = "interior1_dream";
area = "gz_shop_M_dream";
areaname = "Secret Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"TRANSPORT_TRIGGER", model:"_trigger", x:7, y:2, triggers:-1, WALKON:true, ExecuteScript:function () {
if (!CanEnterDreamrealm()) {
return(undefined);
}
_root.EnterDreamrealm();
_root.WarpTrans(["gz_shop_M", 7, 2]);
}}, {name:"Shopkeeper", model:"ghost", x:2, y:1, walkspeed:-1, dir:"s", elem:"WATER", conv:[["grin", "Heh, sorry lads, but I can't legally sell you any magic until you're a wee bit older! Come back in a few years maybe?"]]}, {name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Secret Magic Shop", wares:DefaultShops.SECRET_SHOP}}];
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = "SecretDungeon";
AreaSetup({clearmap:1, DREAM:true});
Frame 202
map = [[17, 12, 12, 12, 12], [24, 11, 11, 11, 22], [111, 111, 111, 111, 111], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [22, 11, 11, 11, 22]];
tileset = "interior1";
area = "gz_shop_I";
areaname = "Goznor - Item Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Goznor Item Shop", wares:DefaultShops.ITEMS_L1}}, {name:"Shopkeeper", model:((GameData.CHAPTER == 2) ? "mugbertTeen" : "man1"), x:2, y:1, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "WORDS."]]}, {name:"EXIT", model:"DOOR0", x:2, y:7, dest:["goznor", 29, 15]}];
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 203
map = [[12, 17, 113, 12, 12, 10, 12, 12, 12], [22, 11, 11, 11, 22, 10, 24, 25, 23], [111, 111, 111, 111, 111, 12, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 23, 11, 11, 24, 25, 23, 11, 11], [24, 25, 23, 11, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 24, 25, 23]];
tileset = "interior1";
area = "gz_inn";
areaname = "Goznor - Inn";
ambience = null;
dungeon = null;
if (GameData.CHAPTER == 1) {
A_sprites = [{name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Barkeep", dir:"s"}, {name:"Barkeep", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "Sorry lads, but I can't serve minors 'ere! Little kiddiwinks like you shouldn't be int'rested in booze anyway; it rots yer mind!"], ["grin", "But that doesn't stop it frum sellin' like 'ot cakes! I sleep on bags o' money at night! Myep."]]}, {name:"Young Man", model:"common", x:2, y:5, walkspeed:-2, dir:"w", EN:["People", "Social Fox"], elem:"FIRE", conv:[["grin", "Hey, little sprog! Isn't Social Fox like totally amazing? I heard that once, he was surrounded by like a million Monsters - no, a million AND FIVE! - and he managed to slay them all WITH HIS EYES SHUT using only his leather codpiece! How amazing is THAT?!"]]}, {name:"Bearded Man", model:"man2", x:1, y:4, walkspeed:-2, dir:"s", EN:["People", "Social Fox"], elem:"FIRE", conv:[["grin", "Even though Social Fox doesn't have a beard, he's totally my idol! Did you hear about that one time where he was fighting the Octopus Of Many Swords, and he got ALL HIS LIMBS CHOPPED OFF, but grew them back and used the old limbs to bludgeon the octopus to death?!?! How brilliant is THAT?!"]]}, {name:"Young Woman", model:"woman", x:0, y:5, walkspeed:-2, dir:"e", EN:["People", "Social Fox"], elem:"AIR", conv:[["mad", "social fox is hot *drools* i want 2 merry him wen i meat him adn we wil have liek 3 babys nad i will call them cory and brandon and janey-sue!!11 squee!11"]]}, {name:"Middle-Aged Man", model:"man1", x:6, y:1, walkspeed:-2, dir:"e", elem:"AIR", conv:[["susp", "It seems that there are more people in this inn than there are houses in the village! And what does the mayor do about this? NUFFIN!"], ["angr", "The fact that Goznor doesn't actually HAVE a mayor has nothing to do with it!! It needs to grow one, dammit! Off, uh... off the mayor tree! Someone needs to plant one of those, yes!"]]}, {name:"Middle-Aged Woman", model:"woman2", x:8, y:1, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["grin", "Wasn't that falling star EXCITING! It was one of the most exciting, thrilling things I ever did see!"], ["susp", "Why didn't we have any falling stars at our wedding, luv? I would've wanted falling stars at my wedding."], ["shok", "[[Middle-Aged Man]]I didn't know you wanted falling stars at our wedding, dearest!"], ["sad", "[[Middle-Aged Woman]]Well I guess you just don't love me after all then!!!"]]}, {name:"Adventurer", model:"woman4", x:8, y:6, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["blah", "The uniform for the Goznor Guard is really ugly. I mean, ew, that horrible vomit-green colour is SO ten years ago!"], ["blah", ". . ."], ["blah", "...I wear it for the retro look. Shut up."]]}, {name:"Truant Soldier", model:"soldier", x:6, y:6, walkspeed:-2, dir:"e", elem:"FIRE", conv:[["grin", "I only joined the Guard so then I could get this uniform! Chicks dig a guy in a uniform. Like this one 'ere. I'm TOTALLY scorin' and I'm so gonna get some tonight!"], ["deep", "Not that that's an appropriate thing to say to a child like yourself, mind you."]]}, {name:"EXIT", model:"DOOR0", x:3, y:7, dest:["goznor", 36, 16]}];
} else if (GameData.CHAPTER == 2) {
if (GameData.plotVars.ZOMBIES == "CANONIA") {
A_sprites = [{name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Barkeep", dir:"s"}, {name:"Barkeep", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "'Twere a shame that none o' them zombie fellers wanted a spot o' grog. If I'D just been wrenched from me eternal slumber by the eldritch magicks of the damned, I know I'D be dyin' for a pint!"]]}, {name:"Young Man", model:"common", x:2, y:5, walkspeed:-2, dir:"w", EN:["People", "Social Fox"], elem:"FIRE", conv:[["sad", "If Social Fox were here, he would have given those zombies a good, stern talking to! Then he'd have given them a stern thrashing. I bet he'd raise children like that if he had any."]]}, {name:"Bearded Man", model:"man2", x:1, y:4, walkspeed:-2, dir:"s", EN:["People", "Social Fox"], elem:"FIRE", conv:[["susp", "This is a little secret, but one of Social Fox's only fears was the thought of being risen from the dead as one o' them undeads. Horrified of the buggers, he was. Horrified."], ["grin", "I read that in his autobiography! I bet you haven't read that!"]]}, {name:"Young Woman", model:"woman", x:6, y:1, walkspeed:-2, dir:"e", elem:"WATER", conv:[["sad", "Sigh... Why are all the good men around here either bearded or undead?"]]}, {name:"Adventurer", model:"woman4", x:8, y:6, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["blah", "This soldier here is all talk. He's been bragging about himself for ages, but when those zombies came, he just hid under the table and cried."], ["blah", "Now he has a chance to redeem himself by going to Canonia and beating the ones there, like a REAL man should, but is he doing that? Of course he isn't."], ["cdgr", "Y'know, guy, you're not too pig ugly as sin yourself... Soooo, if YOU show you're the real deal by beating up those rotting men in Canonia, maybe I'll consider meeting up with you afterwards for some... *celebrations*, hm?"], ["blah", "[[Emela]](What a whore.)"]]}, {name:"Truant Soldier", model:"soldier", x:6, y:6, walkspeed:-2, dir:"e", no_turn:true, elem:"FIRE", conv:[["shok", "SWEET MERCILESS YALORT THE DEAD ARE WALKING THE STREETS WHY IS THIS HAPPENING OH GODS I FEEL SICK HOLD ME!!!"]]}, {name:"EXIT", model:"DOOR0", x:3, y:7, dest:["goznor", 36, 16]}];
} else {
A_sprites = [{name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Barkeep", dir:"s"}, {name:"Barkeep", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["norm", "Sorry, but I don't serve soldiers in 'ere! Can't be 'avin' you gettin'\n'IN-TOCK-SER-CAY-TED' on duty, now!"]]}, {name:"Young Man", model:"common", x:2, y:5, walkspeed:-2, dir:"w", EN:["People", "Social Fox"], elem:"FIRE", conv:[["sad", "Social Fox's body was buried honourably in a big tomb deep, deep in the catacombs. I bet this is important later on."]]}, {name:"Bearded Man", model:"man2", x:1, y:4, walkspeed:-2, dir:"s", EN:["People", "Social Fox"], elem:"FIRE", conv:[["sad", "Social Fox diiiieeeed! I'm SAD now because of that! But at least he went out doing what he loved: being mauled by a big vicious dragon and bleeding profusely."]]}, {name:"Young Woman", model:"woman", x:6, y:1, walkspeed:-2, dir:"e", elem:"WATER", conv:[["blah", "This guy thinks very highly of his beard. I don't. Facial hair is disgusting. Utterly foul. Not appealing at all."], ["blah", "I had a friend in a village on another planet probably who thought the same thing. Bearded guys kept trying to hit on her too. Haven't heard from her in ages. Must be the lack of communication between planets in this setting."]]}, {name:"Miner", model:"miner", x:8, y:1, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["deep", "I heard some filthy business was afoot at the Gem Mines... Bandits came and took everyone prisoner, or summat."], ["grin", "I'm just glad I was skippin' work to come here and pick up chicks! They just love me beard! It makes me look MANLY, and we all know how much the ladies love that, eh fellas?"]]}, {name:"Adventurer", model:"woman4", x:8, y:6, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["blah", "Ew, this guy just won't stop trying to hit on me! It's annoying! I keep telling him to shut up, but he just won't!"], ["cdgr", "But he's hot, so I'm not goin' anywhere! I just like complaining."]]}, {name:"Truant Soldier", model:"soldier", x:6, y:6, walkspeed:-2, dir:"e", no_turn:true, elem:"FIRE", conv:[["grin", "Hey babeh, I'm wearing a sexeh hat, babeh! I bet you like that, babeh! I'm also tough as steel and have no emotions, ever! Except coolness. And sexitude. Ooh yeah. Me mates all call me 'Sextro the Mighty'. And by 'me mates', I mean 'all the babes I get wiv all the time'. Oh yeh babeh, I know you're turned on."], ["grin", "Just like this chick 'ere!"]]}, {name:"EXIT", model:"DOOR0", x:3, y:7, dest:["goznor", 36, 16]}];
}
} else if (GameData.CHAPTER == 3) {
A_sprites = [{name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Barkeep", dir:"s"}, {name:"Barkeep", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"EARTH", conv:[["grin", "Sir Mardek, old fellow! You don't want any of the grog here, I assure you! Don't tell anyone else, BUT IT'S ACTUALLY JUST PISS. I URINATE IN THE CUPS AND SELL IT. But I won't serve it to you, nossir! That would be cruel!"], ["susp", "Unless you have particular interest in imbibing my bodily waters?"], ["o_O", "[[PC]]Well, not today."], ["angr", "WELL THAT'S YOUR LOSS, THEN. You fancy knights in your shiny armour are too GOOD for quaffin' tankards of a diseased old man's piddle, eh? IS THAT IT?! Get out of my face. You make me sick."], ["grin", "Come again some other time though!"]]}, {name:"Young Man", model:"common", x:2, y:5, walkspeed:-2, dir:"w", elem:"FIRE", conv:[["sad", "I'm unsure what to think of this 'Lone Wolf' fellow... I mean, he sounds a lot like he's as great as Social Fox was, but I just miss Social Fox so much and I don't think I can just forget and replace him so easily!!!"]]}, {name:"Bearded Man", model:"man2", x:1, y:4, walkspeed:-2, dir:"s", elem:"FIRE", conv:[["susp", "I wonder if this Lone Wolf person has a beard...? Social Fox did fine without one, but honestly, I think this time around, our Grand Adventurer needs a beard. He'd set a good example for the children, you see."]]}, {name:"Old Woman", model:"woman3", x:0, y:5, walkspeed:-2, dir:"e", elem:"EARTH", conv:[["smile", "Just once in my life, I would like to visit a village of lizards! And a village of wraiths! And a village of pixies! And a village of naked hunky men! Do you think any of these places actually exist, young man?"]]}, {name:"Middle-Aged Man", model:"man1", x:6, y:1, walkspeed:-2, dir:"e", elem:"AIR", conv:[["susp", "There's a place called Aeropolis on the contintent to the south. I went once, and all the savage brown people there were really racist, almost as if they didn't even realise that they were inferior to us! Pfft!"]]}, {name:"Middle-Aged Woman", model:"woman2", x:8, y:1, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["angr", "Travelling abroad is such a pain! The customs in those Warports are like being eaten by a giant snake shaped like a warport, only instead of being digested, you have to have security checks along the way! Then you end up on another continent! ...You know what I mean!"]]}, {name:"Adventurer", model:"woman4", x:8, y:6, walkspeed:-2, dir:"w", elem:"EARTH", conv:[["cdgr", "I sure do love men in uniforms. This priest here is such a bad boy, with his black robe. I'm going home with him tonight, whether his priestly vows allow it or not."]]}, {name:"Cultling", model:"cultling", x:6, y:6, walkspeed:-2, dir:"e", elem:"WATER", conv:[["shok", "Aah! This woman is talking to me! A WOMAN! Talking to ME! I don't know what to do!!"]]}, {name:"EXIT", model:"DOOR0", x:3, y:7, dest:["goznor", 36, 16]}];
}
if ((GameData.plotVars.GOPE != null) && (GameData.CHAPTER == 2)) {
A_sprites.push({name:"Gope", model:"bandit", x:6, y:4, walkspeed:-2, dir:"w", elem:"EARTH", conv:"c_gope"});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 204
map = [[17, 12, 110, 12, 12], [24, 11, 11, 11, 22], [111, 111, 111, 111, 111], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [22, 11, 11, 11, 22]];
tileset = "interior1";
area = "gz_shop_W";
areaname = "Goznor - Weapon Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"Derek", model:"derek", x:2, y:1, walkspeed:-1, dir:"s", elem:"FIRE", EN:["People", "Derek"], conv:"c_derek"}, {name:"EXIT", model:"DOOR0", x:2, y:7, dest:["goznor", 31, 11]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Derek", dir:"s"});
} else {
A_sprites.push({name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Goznor Weapon Shop", wares:DefaultShops.WEAPONS_L1}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 205
map = [[17, 12, 110, 12, 12], [24, 11, 11, 11, 22], [111, 111, 111, 111, 111], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [11, 11, 11, 11, 11], [22, 11, 11, 11, 22]];
tileset = "interior1";
area = "gz_shop_Ar";
areaname = "Goznor - Armour Shop";
ambience = null;
dungeon = null;
A_sprites = [{name:"Shopkeeper", model:"man1", x:2, y:1, walkspeed:-1, dir:"s", elem:"FIRE", conv:[["blah", "Oy. Lickle kiddiwinks like you lot shouldn't be in 'ere! Gerrout! Buggroff!"]]}, {name:"EXIT", model:"DOOR0", x:2, y:7, dest:["goznor", 37, 11]}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"TALKTRIGGER", model:"talktrigger", x:2, y:2, NPC:"Shopkeeper", dir:"s"});
} else {
A_sprites.push({name:"Item Shop", model:"shop", x:2, y:2, SHOP:{name:"Goznor Armour Shop", wares:DefaultShops.ARMOUR_L1}});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "none" : "Goznor");
AreaSetup({clearmap:1});
Frame 206
map = [[12, 12, 17, 12, 27, 27, 27, 12, 12], [20, 11, 11, 24, 124, 11, 125, 28, 29], [21, 11, 11, 11, 11, 11, 11, 11, 11], [212, 11, 11, 11, 123, 11, 11, 11, 126], [213, 126, 11, 11, 11, 11, 11, 11, 213], [22, 11, 11, 11, 11, 25, 23, 11, 211]];
tileset = "interior1";
area = "gz_house02";
areaname = "Goznor - Meraeador's Lab";
ambience = null;
dungeon = null;
A_sprites = [{name:"The Adventures of Social Fox, Vol. XVII", model:"object", x:4, y:0, type:"examine", EN:["People", "Social Fox"], conv:[["", "Lo! Heare these Tales of the Grand Adventurer Social Fox! The Greatest Adventurer alive in these Days that are Now! Of his deeds many Books have beene writ! He is Such a Great Guy!"], ["", "There was thise one tyme where he totally Slew this Mighty Dragonne! It was a Foule, Evile, Darke Beaste who had Capturede a Princesse - one of the Fineste in all the Landse - and only the Heroisme of Social Fox could Save her!"], ["", "We must all Sing Praises of this great Man amongst us, to whom we all owe Our Lives many Times!!!"]]}, {name:"The Cogs Of The Mind", model:"object", x:5, y:0, type:"examine", conv:[["", "It's a technical book that you'd surely not understand or enjoy reading."]]}, {name:"An Elementary Treatise on Determinants", model:"object", x:6, y:0, type:"examine", conv:[["", "It's a book, apparently about maths. You don't need to read that."]]}, {name:"Workbench", model:"object", x:8, y:1, type:"examine", conv:[["", "This is Meraeador's Workbench, where he builds inventions."], (Do = function () {
if (_root.HasAlly("Meraeador")) {
_root.OpenWorkbench(_root.MIX_INVENTIONS, "Workbench", "Blueprints");
}
return(1);
})]}, {name:"EXIT", model:"DOOR0", x:3, y:6, dest:["goznor", 35, 4]}];
if (GameData.plotVars.Allies.Meraeador == null) {
A_sprites.push({name:"Meraeador", model:"inventor", x:3, y:2, walkspeed:30, dir:"s", elem:"FIRE", EN:["People", "Meraeador"], conv:"c_inventor", PC_STATS:GET_PC_STATS("Meraeador")});
}
var ROBOT_STATS = null;
if ((((GameData.CHAPTER == 3) && (HASPLOTITEM("Necromantic Tome"))) && (HasAlly("Meraeador"))) && (!GameData.plotVars.LEGION)) {
if ((!HasAlly("Gloria")) || (GameData.plotVars.LEGION_BITS && (!((HASPLOTITEM("Crystal Rose") && (HASPLOTITEM("Wretched Skull"))) && (HASPLOTITEM("Silver Cord")))))) {
A_sprites.push({name:"TALK_TRIGGER", model:"_trigger", x:3, y:5, triggers:1, recurring:true, ExecuteScript:function () {
DO_ACTIONS([["UNFREEZE"], ["TALK", "c_inventor"]], "PC", true);
}});
} else {
TempVars.DONT_DRAW_ALLIES = true;
var OtherAlly = null;
var p = 1;
while (p < 4) {
if ((PCstats[p].name != "Meraeador") && (PCstats[p].name != "Gloria")) {
OtherAlly = PCstats[p];
break;
}
p++;
}
A_sprites.push({name:"Meraeador", model:"inventor", x:3, y:5, dir:"n", elem:"FIRE"});
A_sprites.push({name:"Gloria", model:"gloria17", x:3, y:5, dir:"n", elem:"FIRE"});
A_sprites.push({name:"OTHERALLY", model:OtherAlly.model, x:3, y:5, dir:"n", elem:OtherAlly.elem});
A_sprites.push({name:"WALK_TRIGGER", model:"_trigger", x:3, y:5, triggers:1, recurring:true, ExecuteScript:function () {
DO_ACTIONS([["WALK", 0, -4], ["WALK", 3, 0], ["GOTO", "s1"]], "Gloria", true);
DO_ACTIONS([["WAIT", 8], ["WALK", 0, -4], ["WALK", 2, 0], ["GOTO", "s1"]], "Meraeador", true);
DO_ACTIONS([["WAIT", 16], ["WALK", 0, -3], ["GOTO", "e1"]], "OTHERALLY", true);
DO_ACTIONS([["WAIT", 30], ["WALK", 0, -2], ["GOTO", "e1"], ["UNFREEZE"], ["TALK", "c_inventor"]], "PC", true);
}});
}
}
if ((GameData.CHAPTER != 1) && (GameData.plotVars.Allies.Legion == null)) {
A_sprites.push({name:"ROBOT", model:"robot", x:5, y:3, walkspeed:-2, FRAME:8, dir:"inactive", elem:"NONE", conv:[["", "..."]], silent:true, PC_STATS:GET_PC_STATS("Legion")});
A_sprites.push({name:"Metal Man", model:"object", x:5, y:3, type:"examine", conv:[["", "This is Meraeador's Metal Man - a project that he has been working on since you were a child. You're honestly surprised he's stuck with it for so long!" + ((GameData.CHAPTER == 2) ? " It doesn't look like it's close to completion yet; it seems to be lacking vital components. How you - a mere teenager with no knowledge of engineering - can come to this conclusion is perplexing and irrelevant." : " It looks almost finished as it is, though it can't yet move because it doesn't have a soul.")]]});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = "TheInventor";
AreaSetup({clearmap:1});
Frame 208
map = [[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 11, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 20, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 20, 20, 20], [20, 20, 20, 20, 20, 20, 13, 10, 10, 20, 20, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 13, 20, 20], [10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 11, 10, 11, 20, 20, 20, 20, 13, 13, 13, 13, 20, 20, 20, 13, 13, 13, 13, 20, 20, 20, 20, 20, 13, 13, 13, 13, 13, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 20, 20, 124, 124, 124, 124, 124, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 11, 10, 10, 10, 11, 20, 20, 10, 20, 20, 20, 13, 13, 10, 10, 10, 10, 10, 13, 13, 13, 20, 123, 123, 123, 123, 123, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 13, 20, 123, 123, 123, 123, 123, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 11, 20, 121, 120, 122, 120, 121, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 10, 10, 10, 10, 20, 125, 125, 126, 125, 125, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20], [20, 20, 20, 10, 10, 10, 10, 11, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20], [20, 20, 10, 11, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 13, 10, 10, 115, 112, 112, 116, 10, 10, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 13, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 11, 13, 10, 115, 110, 110, 110, 110, 116, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 115, 110, 110, 110, 110, 110, 117, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 118, 110, 110, 110, 110, 117, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 13, 118, 114, 114, 117, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 13, 20, 20, 20, 20, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 20, 13, 13, 13, 11, 20, 20, 20, 20, 20, 20, 20], [20, 13, 13, 20, 20, 20, 10, 10, 10, 13, 20, 20, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 10, 10, 13, 20, 20, 20, 13, 13, 13, 13, 10, 10, 20, 20, 20, 20, 20, 20], [20, 13, 13, 20, 20, 20, 20, 11, 10, 13, 20, 20, 20, 13, 13, 13, 13, 20, 20, 20, 20, 20, 10, 13, 13, 20, 20, 20, 13, 13, 13, 13, 10, 10, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 10, 13, 13, 20, 20, 20, 20, 20, 13, 13, 13, 13, 20, 20, 10, 10, 20, 20, 20, 20, 11, 10, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10], [20, 13, 20, 20, 20, 20, 20, 10, 13, 13, 20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 10, 10, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 10, 13, 13, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 10, 13, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 10, 10, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 10, 10, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 10, 11, 13, 20, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20], [20, 13, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 10, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 13, 13, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 10, 10, 13, 13, 13, 13, 13, 11, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 13, 13, 13, 13, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 20, 20, 20, 20, 11, 13, 13, 13, 13, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 11, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]];
tileset = "darkwood";
area = "soothwood";
areaname = "Soothwood";
ambience = null;
dungeon = "Soothwood";
ambience = GenericExternalAmbience();
A_sprites = [{name:"Shaman's House", model:"DOOR4", x:33, y:8, dest:["soothwood_shaman", 3, 6]}, {name:"E", model:"area_transition", x:36, y:22, dest:["WORLDMAP", 1, 1], ARROW:"E"}, {name:"W", model:"area_transition", x:5, y:4, dest:["WORLDMAP", 1, 1, "crashsite"], ARROW:"W"}];
if (GameData.CHAPTER == 1) {
A_sprites.push({name:"INTERJECTION", model:"_trigger", x:33, y:22, ExecuteScript:function () {
_root.Interjection("Deugan", "soothwood1", "c_A_Deugan");
}});
A_sprites.push({name:"Poshgoblin", model:"ch2bosses", x:11, y:4, walkspeed:-1, dir:"w", Static:true, elem:"DARK", BOSSCODE:"Poshgoblin", conv:[["norm", "Snee! Snee! I say! Snee! Pip-pip! Snee."], (Do = function () {
BATTLE([["PoshGoblin", null, null, null], ["Poshgoblin", null, null, null], [2, null, null, null], "SOLO", "Poshgoblin"], "battle", true, true);
return(1);
})]});
}
areaLoot = [{x:1, y:28, amount:1, item:"Potion"}, {x:35, y:32, amount:1, item:"Potion"}, {x:29, y:6, amount:1, item:"Potion"}, {x:16, y:13, amount:1, item:"Potion"}];
foes = MONSTER_TABLES.SOOTHWOOD;
btlChance = 3;
levelrange = MONSTER_LEVELS.SOOTHWOOD;
musicTrack = "Woods";
AreaSetup({WARP:1});
EN_ADD("Places", "Soothwood");
Frame 209
map = [[12, 13, 12, 110, 12, 13, 12], [18, 23, 11, 11, 11, 23, 18], [11, 15, 14, 14, 14, 16, 18], [11, 15, 14, 14, 14, 16, 11], [11, 15, 14, 14, 14, 16, 11], [11, 18, 11, 11, 11, 11, 11], [23, 11, 11, 11, 11, 11, 23]];
tileset = "interior4";
area = "soothwood_shaman";
areaname = "Soothwood - Shaman's Hut";
ambience = null;
dungeon = "Soothwood";
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:0, y:6, walkspeed:-1, conv:"c_healingCrystal"}, {name:"Cauldron", model:"miscObj", x:3, y:1, walkspeed:-2, FRAME:3, y0:true, conv:[["", "It's a magic cauldron, where the shaman makes magical brews out of various reagents."]]}, {name:"EXIT", model:"DOOR4", x:3, y:7, dest:["soothwood", 33, 9]}];
if ((GameData.plotVars.ZOMBIES == "CANONIA") && (!GameData.plotVars.CZtalkedToShaman1)) {
A_sprites.push({name:"INTERJECTION", model:"_trigger", x:3, y:6, ExecuteScript:function () {
_root.Interjection("Deugan", "CZ_GShamanMissing", "c_A_Deugan");
}});
} else {
A_sprites.push({name:"Shaman", model:"shaman", x:3, y:2, walkspeed:-2, dir:"s", EN:["People", "Goznor Shaman"], elem:"EARTH", conv:"c_shaman"});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = "Woods";
AreaSetup({clearmap:1});
Frame 211
map = [[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20], [20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20], [20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20], [20, 20, 10, 10, 157, 158, 159, 160, 161, 10, 10, 10, 20], [20, 10, 10, 10, 162, 163, 164, 165, 166, 10, 10, 10, 20], [20, 10, 10, 10, 167, 168, 169, 170, 171, 10, 10, 10, 20], [20, 10, 10, 10, 172, 173, 174, 175, 176, 10, 10, 15, 20], [20, 10, 10, 10, 177, 178, 179, 180, 181, 10, 10, 15, 20], [20, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 20], [20, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 20], [20, 15, 15, 10, 10, 10, 10, 10, 10, 10, 15, 15, 20], [20, 20, 15, 15, 10, 10, 10, 10, 10, 10, 15, 15, 20], [20, 20, 20, 15, 15, 10, 10, 10, 10, 15, 15, 20, 20], [20, 20, 20, 20, 15, 10, 10, 10, 10, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 10, 15, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 10, 10, 10, 15, 20, 20, 20, 20], [20, 20, 20, 20, 20, 10, 10, 10, 15, 15, 20, 20, 20], [20, 20, 20, 20, 20, 20, 10, 15, 15, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 10, 15, 15, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 15, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20], [20, 20, 20, 20, 20, 20, 15, 20, 20, 20, 20, 20, 20]];
tileset = "rural";
area = "crashsite";
areaname = "Crash Site";
ambience = null;
dungeon = null;
ambience = GenericExternalAmbience();
if (GameData.CHAPTER == 1) {
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:8, y:18, walkspeed:-1, conv:"c_healingCrystal"}, {name:"Into The Saucer", model:"BIGDOOR2", x:6, y:6, dest:["saucer", 2, 5]}, {name:"S", model:"area_transition", x:6, y:22, dest:["WORLDMAP", 1, 1], ARROW:"S"}, {name:"WALK_TRIGGER", model:"_trigger", x:6, y:13, ExecuteScript:function () {
DO_ACTIONS([["WALK", 0, -3], ["UNFREEZE"], ["TALK", "c_mugbert", "Mugbert"]], "PC", true);
}}];
if (!GameData.plotVars.DEFEATED_MUGBERT) {
A_sprites.push({name:"Mugbert", model:"mugbert", x:6, y:9, walkspeed:-1, dir:"s", elem:"EARTH", EN:["People", "Mugbert"], conv:"c_mugbert"});
}
} else {
if (GameData.plotVars.SUNSET) {
A_sprites = [{name:"Sign", model:"sign", sign:"words", FRAME:7, x:6, y:14, walkspeed:-1, conv:[["", "GO AWAYYE!!"]]}];
} else if (GameData.CHAPTER == 3) {
A_sprites = [{name:"Manfred", model:"saucerbrother", x:6, y:7, walkspeed:-1, dir:"s", elem:"DARK", conv:[["mad", "Stop! When the world ends, this door will open, and the Saucer Gods will whisk us away to freedom! You cannot enter!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:2, y:7, walkspeed:-1, dir:"e", elem:"AIR", conv:[["mad", "Hear us, O Saucer Gods! We give ourselves up to you!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:2, y:9, walkspeed:-1, dir:"e", elem:"AIR", conv:[["mad", "The end is coming! THE END IS COMING!!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:4, y:10, walkspeed:-1, dir:"n", elem:"AIR", conv:[["mad", "Just you wait and see, you doubters and sceptics! Before the end of the eight chapters, the world WILL end! Then you'll see! YOU'LL SEE THAT WE WERE RIGHT!!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:6, y:11, walkspeed:-1, dir:"n", elem:"AIR", conv:[["mad", "The signs! They are so obvious! First, this saucer, then the black saucer over Canonia! The second bigger, more deadly! We have upset the saucer gods, and need to appease them lest they destroy our world!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:8, y:10, walkspeed:-1, dir:"n", elem:"AIR", conv:[["mad", "DID YOU KNOW that there are tales - ANCIENT tales - of saucers just like this one and that black one dotting the skies, flying about as if at war? These saucers have been watching us since the dawn of time! They are probably our creators!!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:10, y:9, walkspeed:-1, dir:"w", elem:"AIR", conv:[["mad", "Just the other day, I was taken up into a saucer just like this one! Honest! I ascended out of my bed in a beam of light, and met with the saucer gods! They had big eyes and round heads! Honest!"]]}, {name:"Saucer Cultist", model:"saucerbrother", x:10, y:7, walkspeed:-1, dir:"w", elem:"EARTH", conv:[["deep", "Actually, I realise this whole silly cult thing is just a load of tosh. Still, it's just a bit o' fun, eh?"]]}];
} else {
A_sprites = [{name:"Manfred", model:"man1", x:7, y:13, walkspeed:-1, dir:"w", elem:"DARK", conv:"c_manfred"}, {name:"Soldier", model:"soldier", x:6, y:1, walkspeed:5, dir:"s", elem:"AIR", conv:[["mad", "THIS REMINDS ME OF MY HAT."]]}, {name:"Son", model:"man2", x:7, y:10, walkspeed:-2, dir:"n", elem:"AIR", conv:[["blah", "I hate it when my mum drags me out of my dark, lonely room to see things like this! She says it'll be 'interesting' but it never is!"]]}, {name:"Mother", model:"woman2", x:8, y:10, walkspeed:-2, dir:"n", elem:"EARTH", conv:[["susp", "[[Mother]]This is what you'll turn out lookin' like when you grow up if you don't eat more food, son."], ["shok", "[[Son]]But muuuum! I'm 35!"]]}, {name:"Boy", model:"boy", x:2, y:7, walkspeed:-1, dir:"e", elem:"EARTH", conv:[["grin", "[[Boy]]Ooh! Ooh! Daddy! Daddy! Can IIII get one of these when I grow up?!"], ["smile", "[[Man]]No, son! All you can get is a beard, and a good ol' fashioned beating!"], ["sad", "[[Boy]]Awww..."]]}, {name:"Man", model:"common", x:2, y:8, walkspeed:-2, dir:"e", elem:"EARTH", conv:[["grin", "My son is such an idiot! Hohoho!"]]}, {name:"Young Woman", model:"woman", x:10, y:5, walkspeed:100, dir:RDir(), elem:"AIR", conv:[["blah", "I travelled all the way from Canonia to see this, AND paid a whole solid gold piece to that shifty guy, but it's annoyingly disappointing! I mean, sure, it fell from the heavens, but... so what? How can we USE it? How will ogling it help me in later life? Psht."]]}, {name:"WALK_TRIGGER", model:"_trigger", x:6, y:13, triggers:-1, ExecuteScript:function () {
if (_root.conv._visible) {
return(undefined);
}
TempVars.LEAVING_CRASHSITE = true;
_root.cont.Manfred.Talk();
_root.cont.PC.DrawFrame("e1");
}}];
}
A_sprites.push({name:"Into The Saucer", model:"BIGDOOR2", x:6, y:6, lock:"rust", dest:["saucer", 2, 5]});
A_sprites.push({name:"S", model:"area_transition", x:6, y:22, dest:["WORLDMAP", 1, 1], ARROW:"S"});
}
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = (GameData.plotVars.SUNSET ? "crickets" : "WorldMap");
AreaSetup({clearmap:1});
specBtlBG = "CRASHSITE";
EN_ADD("Places", "Crash Site");
Frame 212
map = [[120, 121, 122, 123, 124], [130, 131, 132, 133, 134], [140, 141, 142, 143, 144], [150, 151, 152, 153, 154], [160, 161, 162, 163, 164], [170, 171, 172, 173, 174], [10, 10, 182, 10, 10]];
tileset = "saucer";
area = "saucer";
areaname = "Inside the Saucer";
ambience = null;
dungeon = null;
A_sprites = [{name:"Rohoph", model:"rohoph", x:2, y:2, walkspeed:-2, FRAME:1, dir:"dead", elem:"LIGHT", conv:"c_A_Rohoph"}, {name:"S", model:"area_transition", x:2, y:6, dest:["crashsite", 6, 7], ARROW:"S"}, {name:"CUT_TRIGGER", model:"_trigger", x:2, y:4, triggers:1, ExecuteScript:function () {
_root.createEmptyMovieClip("RUFOCUT", 14152);
_root.RUFOCUT.onEnterFrame = function () {
if (TempVars.PossessCut != 10) {
if (TempVars.PossessCut == 3) {
this.count++;
if (this.count >= 80) {
TempVars.PossessCut = 10;
_root.freeze = false;
_root.playMusic("Rohoph");
_root.Sky.setTransform({ra:100, ab:0, ga:100, gb:0, ba:100, rb:0, aa:100, ab:0});
_root.cont.Rohoph.Talk();
this.removeMovieClip();
return(undefined);
}
_root.Sky.setTransform({ra:20 + this.count, ab:0, ga:60 + (this.count / 2), gb:0, ba:100, rb:0, aa:100, ab:0});
} else if (TempVars.PossessCut == 2) {
_root.SOUL._y = _root.SOUL._y + 3;
if (_root.SOUL._y >= _root.cont.PC.getBounds(_root).yMin) {
_root.playSFX("Slam");
this.count = 0;
_root.SOUL.gotoAndPlay("absorb");
_root.Flash(_root.cont.PC, [255, 255, 255]);
TempVars.PossessCut = 3;
}
} else if (TempVars.PossessCut == 1) {
this.count++;
if ((this.count > 40) && (this.count < 65)) {
_root.cont.Rohoph._x = (_root.cont.Rohoph.orig_x - 3) + random(7);
_root.cont.Rohoph._y = (_root.cont.Rohoph.orig_y - 3) + random(7);
} else {
_root.cont.Rohoph._x = _root.cont.Rohoph.orig_x;
_root.cont.Rohoph._y = _root.cont.Rohoph.orig_y;
}
if (this.count == 70) {
_root.Flash(_root, [255, 255, 255]);
_root.playSFX("Slam");
_root.attachMovie("s_soul2", "SOUL", 14151);
_root.SOUL._x = _root.cont.Rohoph.getBounds(_root).xMin;
_root.SOUL._y = _root.cont.Rohoph.getBounds(_root).yMin;
_root.SOUL._width = (_root.SOUL._height = _root.TILESIZE);
_root.SOUL._alpha = 0;
}
if ((_root.SOUL != null) && (_root.SOUL._alpha < 100)) {
_root.SOUL._alpha = _root.SOUL._alpha + 20;
}
if (this.count == 80) {
_root.Flash(_root.SOUL, [255, 0, 0]);
}
if (this.count == 90) {
_root.Flash(_root.SOUL, [0, 255, 0]);
}
if (this.count == 100) {
_root.Flash(_root.SOUL, [0, 0, 255]);
}
if (this.count == 120) {
TempVars.PossessCut = 2;
}
} else if (TempVars.PossessCut == null) {
_root.cont.Rohoph.orig_x = 0 + _root.cont.Rohoph._x;
_root.cont.Rohoph.orig_y = 0 + _root.cont.Rohoph._y;
TempVars.PossessCut = 1;
_root.freeze = true;
this.frozenrunning = true;
_root.Flash(_root, [255, 255, 255]);
_root.playSFX("Slam");
_root.Sky.setTransform({ra:20, ab:0, ga:60, gb:0, ba:100, rb:0, aa:100, ab:0});
_root.cont.PC2.DrawFrame("n1");
this.count = 0;
TempVars.NoRohophName = true;
}
}
};
}}];
areaLoot = [];
foes = [];
btlChance = 0;
levelrange = [1, 1];
musicTrack = ((plotVars.PossessCut == 10) ? "Rohoph" : "none");
AreaSetup({clearmap:1});
Frame 214
map = [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 14, 12, 14, 12, 12, 12, 14, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 14, 12, 14, 12], [12, 14, 12, 15, 14, 12, 12, 14, 12, 12, 14, 12, 112, 15, 12, 15, 112, 16, 17, 15, 10, 10, 10, 10, 10, 10, 12, 15, 12, 15, 12, 15, 15, 12, 12, 12, 12, 12, 12, 15, 12, 12, 12, 12, 12, 12, 15, 112, 15, 12], [12, 15, 12, 12, 15, 12, 12, 15, 12, 12, 15, 12, 11, 11, 11, 11, 11, 18, 18, 18, 10, 10, 10, 10, 10, 10, 12, 12, 112, 12, 12, 12, 112, 12, 15, 12, 112, 12, 12, 12, 112, 12, 15, 12, 12, 11, 11, 11, 11, 11], [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 19, 19, 19, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 10, 10, 10, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 10, 13, 10, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 10, 13, 10, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 12, 14, 12, 15, 10, 10, 10, 11, 11, 11, 11, 11], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 15, 11, 12, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 12, 15, 12, 12, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 12, 12, 12, 15, 12, 12, 18, 18, 18, 18, 112, 11, 112, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 11, 11, 11, 14, 14, 10, 10, 10, 14, 14, 11, 11, 16, 17, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 15, 112, 12, 12, 112, 12, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 12, 15, 15, 12, 12, 12, 11, 11, 11, 15, 15, 10, 10, 10, 15, 15, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 11, 11, 11, 11, 11, 11, 110, 110, 110, 11, 11, 11, 11, 11, 18, 18, 18, 12, 112, 12, 12, 112, 15, 11, 11, 11, 16, 17, 10, 10, 10, 16, 17, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 10, 10, 10, 18, 18, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 12, 14, 12, 18, 18, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 14, 11, 14, 10], [11, 11, 11, 10, 10, 10, 10, 10, 10, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 12, 15, 12, 18, 18, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 15, 11, 15, 10], [11, 11, 11, 12, 12, 15, 12, 12, 12, 18, 18, 18, 19, 19, 19, 19, 111, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 19, 19, 19, 18, 18, 19, 111, 18, 18, 11, 11, 10, 10, 10, 10, 11, 11, 11, 10], [11, 11, 11, 12, 112, 12, 112, 12, 15, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 11, 11, 10, 10, 10, 10, 11, 11, 11, 10], [11, 11, 11, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 11, 11, 11, 10], [11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 11, 11, 11, 10], [11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 11, 11, 11, 11, 11, 11, 110, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 18, 11, 11, 10, 10, 10, 10, 10, 11, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 15, 12, 12, 12, 12, 12, 12, 15, 12, 11, 11, 18, 18, 11, 11, 12, 15, 12, 12, 12, 11, 12, 12], [10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 112, 12, 12, 112, 12, 12, 112, 15, 12, 112, 12, 12, 112, 12, 11, 11, 18, 18, 11, 11, 12, 12, 112, 12, 12, 11, 112, 15], [10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 10, 10, 10, 10, 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19]];
tileset = "sewer";
area = "sewer1";
areaname = "Goznor Sewer L1";
ambience = null;
dungeon = "GoznorSewer";
A_sprites = [{name:"Save Crystal", model:"o_Crystal", x:14, y:14, walkspeed:-1, conv:"c_healingCrystal"}, {name:"Big Door", model:"BIGDOOR3", x:14, y:1, lock:"lock", dir:"n", key:"SewerKey", dest:["sewer2", 39, 16]}, {name:"Exit", model:"area_transition", x:14, y:8, dir:"e", dest:["goznor", 22, 1], ARROW:"N"}];
areaLoot = [{x:7, y:24, type:"item", amount:5, item:"Antidote"}, {x:21, y:15, type:"gold", amount:74}, {x:40, y:11, type:"item", amount:2, item:"Potion"}, {x:41, y:11, type:"accs", amount:1, item:"CopperRing"}];
foes = MONSTER_TABLES.SEWER1;
btlChance = 2;
levelrange = MONSTER_LEVELS.SEWER1;
musicTrack = "Dungeon1";
AreaSetup({WARP:1});
EN_ADD("Places", "Goznor Sewers");
Frame 215
map = [[10, 10, 10, 12, 10, 10, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 12, 12], [10, 10, 10, 13, 10, 10, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 12, 12], [10, 10, 14, 13, 14, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16, 17, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11], [10, 12, 15, 13, 15, 12, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 111, 19, 18, 18, 19, 111, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 11], [10, 112, 11, 11, 11, 112, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 110, 110, 110, 110, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11], [10, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11], [10, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 14, 12, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 15, 12, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 14, 12, 14, 12, 14, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 15, 12, 15, 12, 15, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 11, 11, 110, 110, 110, 110, 110, 110, 110, 11, 11, 11, 10, 10, 10, 10, 10, 10, 19, 19, 19, 19, 19, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 11, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 11, 11, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 13, 12, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 112, 11, 11, 11, 112, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 12, 14, 14, 12, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 112, 12, 12, 12, 11, 11, 19, 11, 11, 12, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 12, 15, 15, 12, 18, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 19, 18, 19, 11, 11, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 14, 14, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 16, 113, 17, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, 19, 18, 18, 18, 19, 11, 10, 18, 18, 18, 18, 18, 18, 11], [10, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 15, 15, 10, 10, 12, 12, 12, 112, 12, 12, 12, 13, 12, 12, 12, 112, 12, 12, 10, 10, 10, 10, 10, 10, 19, 19, 19, 10, 10, 10, 10, 12, 12, 12, 12, 11, 12, 14, 14, 12, 12, 10, 11, 11, 18, 18, 18, 11, 11, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 10, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 18, 18, 18, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 19, 19, 11, 11, 10, 10, 11, 11, 18, 11, 11, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 12, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 11, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 19, 19, 19, 19, 19, 18, 18, 19, 11, 10, 10, 10, 11, 11, 11, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 12, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 11, 10, 10, 10, 10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 11, 11, 12, 12, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 11, 10, 10, 10, 10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 11, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 18, 11, 10, 10, 10, 10, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 11, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 11, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 18, 11, 12, 12, 12, 12, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [12, 12, 12, 11, 12, 12, 12, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [12, 112, 12, 11, 12, 112, 12, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 112, 12, 12, 10, 10, 10, 12, 112, 12, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 18, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 10, 10, 10, 11, 11, 11, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 14, 12, 12, 12, 14, 12, 12, 14, 12, 12, 10, 10, 10, 11, 18, 11, 10, 10, 10, 12, 12, 14, 12, 12, 14, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 11, 11, 11, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 15, 12, 12, 12, 15, 12, 12, 15, 12, 12, 12, 112, 12, 13, 18, 13, 12, 112, 12, 12, 12, 15, 12, 12, 15, 12, 12, 11, 19, 19, 19, 11, 10, 10, 10, 11, 11, 11, 10, 18, 18, 18, 18, 18, 18, 11], [11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 12, 12, 14, 12, 12, 14, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 12, 14, 12, 11, 11, 11, 12, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, 18, 18, 12, 12, 15, 12, 12, 15, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 11, 12, 15, 12, 11, 11, 11, 12, 18, 18, 18, 18, 18, 18, 11], [10, 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 19, 19, 19, 19, 19, 19, 19, 111, 19, 19, 19, 19, 19, 18, 18, 18, 19, 19, 19, 19, 19, 111, 19, 19, 18, 18, 18, 18, 18, 18, 11], [12, 112, 12, 11, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 11], [12, 12, 12, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 11], [11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 111, 18, 18, 18, 11], [11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 111, 18, 18, 18, 11], [11, 10, 12, 112, 12, 10, 12, 112, 12, 10, 12, 112, 12, 10, 10, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 111, 18, 18, 18, 18, 18, 111, 18, 18, 18, 19], [11, 10, 11, 11, 11, 10, 11, 11, 11, 10, 11, 11, 11, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 18, 18, 18, 18], [11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 10, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 111, 18, 111, 18, 18, 18, 18], [11, 14, 11, 10, 11, 14, 11, 10, 11, 14, 11, 10, 11, 10, 10, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 111, 18, 111, 18, 18, 18, 18], [11, 11, 11, 10, 11, 11, 11, 10, 11, 11, 11, 10, 11, 14, 14, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 14, 14, 14, 12, 10, 10, 10, 10, 10, 12, 14, 14, 14, 12, 10, 10, 10, 10, 10, 12, 14, 14, 14, 12, 10, 10, 10, 10, 11, 18, 18, 18, 18, 18, 18, 18, 111, 18, 111, 18, 18, 18, 18], [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 15, 15, 15, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 11, 11, 11, 11, 11], [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 16, 113, 17, 12, 11, 11, 11, 11, 11, 12, 16, 113, 17, 12, 11, 11, 11, 11, 11, 12, 16, 113, 17, 12, 11, 11, 11, 11, 11, 12, 16, 17, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 11, 11, 11, 11, 11], [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 11, 11, 11, 11, 11]];
tileset = "sewer";
area = "sewer2";
areaname = "Goznor Sewer L2";
ambience = null;
dungeon = "GoznorSewer";
A_sprites = [{name:"To Catacombs", model:"BIGDOOR3", x:3, y:0, dest:["crypt1", 19, 49]}, {name:"To L1", model:"BIGDOOR3", x:39, y:17, dir:"s", dest:["sewer1", 14, 2]}];
areaLoot = [{x:6, y:2, amount:1, item:"Silver Sword"}, {x:4, y:16, amount:5, item:"Antidote"}, {x:28, y:48, amount:8, item:"HolyWater"}, {x:60, y:33, amount:1, item:"MoonstoneRing"}, {x:52, y:22, amount:6, item:"Potion"}, {x:53, y:32, amount:1, item:"Kettle Hat"}, {x:21, y:35, amount:1, item:"RingOfSPR"}, {x:14, y:22, amount:1, item:"BalloonJuice"}, {x:13, y:22, amount:1, item:"Copper Breastplate"}, {x:14, y:32, type:"gold", amount:16}, {x:13, y:32, amount:1, item:"RingOfVIT"}];
foes = MONSTER_TABLES.SEWER2;
btlChance = 4;
levelrange = MONSTER_LEVELS.SEWER2;
musicTrack = "Dungeon1";
AreaSetup({WARP:1});
Frame 216
function WM_DrawMarkerSprite() {
marker.SPRITESHEET = flash.display.BitmapData.loadBitmap("spritesheet_" + PCstats[0].model);
marker.bmp = new flash.display.BitmapData(16, 16, true, 0);
var _local4 = marker.createEmptyMovieClip("box", 100);
_local4.attachBitmap(marker.bmp, 100);
_local4._y = -32;
_local4._x = -16;
_local4._width = (_local4._height = 32);
marker.c = 0;
marker.foot = 1;
marker.frameRef = {s1:0, s2:1, n1:2, n2:3, e1:4, e2:5, w1:6, w2:7};
marker.DrawFrame = function (f) {
this.bmp.copyPixels(this.SPRITESHEET, new flash.geom.Rectangle(16 * this.frameRef[f], 0, 16, 16), new flash.geom.Point(0, 0));
};
marker.DrawFrame("s1");
_root.WM_CURRENT_NODE = _root["area_" + lastArea];
marker._x = WM_CURRENT_NODE._x;
marker._y = WM_CURRENT_NODE._y;
marker.lastX = marker._x;
marker.onEnterFrame = function () {
this.c++;
if (this.c >= (this.moving ? 5 : 10)) {
this.c = 0;
this.foot = (!(this.foot - 1)) + 1;
}
if (this.moving) {
this.DrawFrame(this.moving + this.foot);
this._x = this._x + this.moves[0];
this._y = this._y + this.moves[1];
this.moves[2]++;
if (this.moves[2] >= this.HYPOTENUSE) {
this.moving = false;
this.DrawFrame("s1");
this._x = _root.WM_CURRENT_NODE._x;
this._y = _root.WM_CURRENT_NODE._y;
_root.WM_CURRENT_NODE.onEnter();
return(undefined);
}
} else {
if (_root.WARP_SNAP._visible || (_root.fader._visible)) {
return(undefined);
}
if (Key.isDown(KEYS.X) && (_root.WM_CURRENT_NODE.onAction != null)) {
_root.WM_CURRENT_NODE.onAction();
this.onEnterFrame = null;
return(undefined);
}
var _local3 = "";
if (Key.isDown(38)) {
_local3 = "N";
} else if (Key.isDown(39)) {
_local3 = "E";
} else if (Key.isDown(40)) {
_local3 = "S";
} else if (Key.isDown(37)) {
_local3 = "W";
}
if (_local3 != "") {
var _local5 = _root.WM_CURRENT_NODE.pathsTo[_local3];
var _local4 = _root["area_" + _local5];
if (!_local4._visible) {
return(undefined);
}
if (_local5 != null) {
_root.WM_CURRENT_NODE.onExit();
this.movingTo = _local5;
this.moving = _local3.toLowerCase();
var _local7 = _local4._x - _root.WM_CURRENT_NODE._x;
var _local6 = _local4._y - _root.WM_CURRENT_NODE._y;
this.HYPOTENUSE = int(Math.sqrt(Math.pow(_local7, 2) + Math.pow(_local6, 2)) / 3);
this.moves = [_local7 / this.HYPOTENUSE, _local6 / this.HYPOTENUSE, 0];
_root.WM_CURRENT_NODE = _local4;
this.lastX = this._x;
return(undefined);
}
}
this.DrawFrame("s" + this.foot);
}
};
}
Snowscape.removeMovieClip();
PitchDark.removeMovieClip();
Miasma.removeMovieClip();
DreamBorder.removeMovieClip();
var altNames = {glens:"glens1", sewer:"goznor", crypt:"goznor", gemmine:"gemmine", lakequr:"lakequr", Temple_WATER:"lakequr", pcave:"pcave1", trilobiteville:"cambria_exit", tv_arena:"cambria_exit", trilobite:"glens1", sunTemple:"sunTemple1", sandcave:"sunTemple1", xantusia:"sunTemple1", xn_:"sunTemple1", goldfish:"sunTemple1", Temple_Dark:"sunTemple1", citadel:"sunTemple1", aeropolis:"aeropolis", volcano:"volcano", Temple_FIRE:"volcano", DeadHouse:"HouseInWoods", desertcave:"DesertPath", lifewood:"lifewood1", serpentcave:"lifewood1", lostmonastery:"lifewood1", Temple_EARTH:"lifewood1"};
for (var a in altNames) {
if (lastArea.substr(0, a.length) == a) {
lastArea = altNames[a];
break;
}
}
if (altNames[lastArea] != null) {
lastArea = altNames[lastArea];
}
WM_lastArea = null;
WM_DrawMarkerSprite();
var LA = lastArea;
MAP_NODES = {goznor:{tag:"Goznor", dest:["goznor", 18, 21], dir:"n", pathsTo:{N:"gc_hall", E:"guardpost", S:"heroes_den", W:"soothwood"}}, heroes_den:{tag:"Heroes' Den", dest:["heroes_den", 6, 13], dir:"n", pathsTo:{N:"goznor", E:"goznor"}}, soothwood:{tag:"Soothwood", dest:["Soothwood", ((LA == "crashsite") ? 6 : 35), ((LA == "crashsite") ? 4 : 22)], dir:((LA == "crashsite") ? "e" : "w"), pathsTo:{W:"crashsite", E:"goznor", S:"crashsite"}}, crashsite:{tag:"Crash Site", dest:["crashsite", 6, 21], dir:"n", pathsTo:{N:"soothwood", E:"soothwood"}}, guardpost:{tag:"Guardpost", dest:["guardpost", 2, 9], destE:["guardpost", 13, 1], dir:"e", pathsTo:{W:"goznor", S:"warport1", E:"glens1"}}, gc_hall:{tag:"Castle Goznor", dest:["gc_hall", 10, 24], dir:"n", pathsTo:{S:"goznor", E:"gemmine"}}, gemmine:{tag:"Gem Mine", dest:["gemmine", 7, 20], dir:"n", pathsTo:{W:"gc_hall"}}, glens1:{tag:"Eastern Glens", dest:["glens1", 6, 11], destE:["glens2", 51, 3], destForce:((LA == "glens2") ? "destE" : null), dir:"e", pathsTo:{W:"guardpost", E:"lakequr", S:"cambria_exit"}}, lakequr:{tag:"Lake Qur", dest:["lakequr", 6, 36], destE:["lakequr", 32, 33], destForce:((GameData.plotVars.GET_ELWYEN == 1) ? "destE" : null), dir:"e", pathsTo:{E:"canonia", W:"glens1"}}, canonia:{tag:"Canonia", dest:["canonia", 1, 24], dir:"e", pathsTo:{S:"canonia_woods", W:"lakequr", N:"canonia_dreamcave"}}, canonia_woods:{tag:"Canonia Woods", dest:((LA == "pcave1") ? (["canonia_woods", 13, 74]) : (["canonia_woods", 39, 4])), dir:"s", pathsTo:{N:"canonia", S:"pcave1", W:"HouseInWoods"}}, canonia_dreamcave:{tag:"Dreamcave", dest:["canonia_dreamcave", 8, 20], dir:"n", pathsTo:{S:"canonia"}}, HouseInWoods:{tag:"House in the Woods", dest:["HouseInWoods", 9, 16], dir:"n", pathsTo:{E:"canonia_woods"}}, pcave1:{tag:"Tainted Grotto", dest:["pcave1", 6, 13], dir:"n", pathsTo:{N:"canonia_woods"}}, cambria_exit:{tag:"Cambria", dest:["trilobiteville", 4, 3], dir:"s", pathsTo:{N:"glens1"}}, warport1:{tag:"Warport", dest:["warport1", 11, 13], dir:"n", pathsTo:{N:"guardpost"}}, warport2:{tag:"Warport", dest:["warport2", 11, 13], dir:"n", pathsTo:{S:"DesertPath"}}, DesertPath:{tag:"Desert Path", dest:["desertpath", 27, 5], destW:["desertpath", 5, 22], destE:["desertpath", 46, 8], dir:"s", pathsTo:{W:"sunTemple1", E:"aeropolis", N:"warport2"}}, sunTemple1:{tag:"Sun Temple", dest:["suntemple1", 12, 29], dir:"n", pathsTo:{E:"DesertPath"}}, aeropolis:{tag:"Aeropolis", dest:["aeropolis_S", 23, 54], dir:"n", pathsTo:{W:"DesertPath", S:"volcano", E:"lifewood1"}}, volcano:{tag:"Volcano", dest:["volcano1", 6, 11], dir:"n", pathsTo:{N:"aeropolis", W:"aeropolis"}}, lifewood1:{tag:"Lifewood", dest:["lifewood1", 11, 15], dir:"n", pathsTo:{W:"aeropolis", N:"lifewood_dreamcave"}}, lifewood_dreamcave:{tag:"Dreamcave", dest:["lifewood1", 11, 15], dir:"n", pathsTo:{S:"lifewood1"}}};
playMusic((GameData.plotVars.SUNSET ? "crickets" : "WorldMap"));
for (o in cont) {
cont[o].removeMovieClip();
}
_quality = "MEDIUM";
CASTING_WARP = false;
_root.teleportingIN = false;
rollScroll._visible = false;
WM_SKIP_SOUND_ONCE = true;
var PathD = 100;
for (o in MAP_NODES) {
var node = _root["area_" + o];
if (!GameData.visited[o]) {
node._visible = false;
continue;
}
for (var p in MAP_NODES[o]) {
node[p] = MAP_NODES[o][p];
}
node.onEnter = function () {
_root.rollScroll._visible = true;
_root.rollScroll.AREANAME = this.tag;
if (this._currentframe != 2) {
this.gotoAndStop(4);
}
if (WM_SKIP_SOUND_ONCE) {
WM_SKIP_SOUND_ONCE = null;
} else {
_root.playSFX("menuBlip2");
}
};
node.onExit = function () {
_root.rollScroll._visible = false;
if (this._currentframe != 2) {
this.gotoAndStop(1);
}
};
node.onAction = function () {
var _local3 = this.dest;
var _local4 = this.dir;
if ((this.destW != null) && (_root.marker.lastX < this._x)) {
_local3 = this.destW;
_local4 = "e";
}
if ((this.destE != null) && (_root.marker.lastX > this._x)) {
_local3 = this.destE;
_local4 = "w";
}
if (this.destForce != null) {
_local3 = this[this.destForce];
}
_root.lastDir = _local4;
_root.AreaTrans(_local3);
};
if (GameData.plotVars.ELWYEN_DATE && (!{gc_hall:true, warport1:true, warport2:true, aeropolis:true}[o])) {
node.gotoAndStop(2);
node.onAction = null;
}
for (var p in node.pathsTo) {
if (!GameData.visited[node.pathsTo[p]]) {
continue;
}
if ((wm_paths[(o + "_TO_") + node.pathsTo[p]] == null) && (wm_paths[(node.pathsTo[p] + "_TO_") + o] == null)) {
var T = _root["area_" + node.pathsTo[p]];
var Path = wm_paths.createEmptyMovieClip((o + "_TO_") + node.pathsTo[p], PathD++);
Path.lineStyle(5, 6838585, 100);
Path.moveTo(node._x, node._y);
Path.lineTo(T._x, T._y);
Path.lineStyle(2, 12167298, 100);
Path.moveTo(node._x, node._y);
Path.lineTo(T._x, T._y);
}
}
}
WM_CURRENT_NODE.onEnter();
EN_ADD("Places", "Belfan");
Instance of Symbol 3215 MovieClip "warportStream" in Frame 216
onClipEvent (load) {
_visible = Boolean(GameData.visited.warport1 && (GameData.visited.warport2));
}
Instance of Symbol 3217 MovieClip in Frame 216
onClipEvent (load) {
_visible = (GameData.plotVars.ZOMBIES == "GOZNOR");
}
Instance of Symbol 3217 MovieClip in Frame 216
onClipEvent (load) {
_visible = (GameData.plotVars.ZOMBIES == "CANONIA");
}
Instance of Symbol 3218 MovieClip in Frame 216
onClipEvent (load) {
_visible = (GameData.plotVars.ZOMBIES == "CANONIA");
}
Instance of Symbol 3224 MovieClip "area_Underpassage" in Frame 217
onClipEvent (load) {
tag = "Castle Goznor";
dest = ["castle", 6, 13];
this.gotoAndStop(2);
}
Frame 224
ClearGameData();
playMusic("GameOver");
bobble.delay = 0;
bobble.onEnterFrame = function () {
this.delay++;
if (this.delay > 200) {
if (Key.isDown(KEYS.X)) {
_root.AreaTrans(["titlescreen"], 10);
this.onEnterFrame = null;
}
}
};
Instance of Symbol 3149 MovieClip in Frame 224
onClipEvent (load) {
this.LABEL = "More Games";
}
on (rollOver) {
this.gotoAndStop(2);
}
on (rollOut) {
this.gotoAndStop(1);
}
on (release) {
_root.VisitSponsor();
}
Frame 229
function E_NewMap(ts, w, h) {
tileset = ts;
TILESHEET = flash.display.BitmapData.loadBitmap("tilesheet_" + tileset);
DEFAULT_TILE = ((TILESHEET.getPixel(48, 0) == 16711935) ? 20 : 10);
map = new Array(h);
var _local2 = 0;
while (_local2 < h) {
map[_local2] = new Array(w);
var _local1 = 0;
while (_local1 < w) {
map[_local2][_local1] = DEFAULT_TILE;
_local1++;
}
_local2++;
}
E_DrawMap();
}
function E_DrawMap() {
TILESHEET = flash.display.BitmapData.loadBitmap("tilesheet_" + tileset);
DEFAULT_TILE = ((TILESHEET.getPixel(48, 0) == 16711935) ? 20 : 10);
for (var _local19 in Econt) {
Econt[_local19].removeMovieClip();
}
var _local7 = 0;
while (_local7 < map.length) {
var _local5 = 0;
while (_local5 < map[0].length) {
var _local3 = Econt.createEmptyMovieClip((("T_" + _local5) + "_") + _local7, (1000 * _local7) + _local5);
_local3._x = TILESIZE * _local5;
_local3._y = TILESIZE * _local7;
DrawTile(_local3, (_local3.TILE = map[_local7][_local5]));
_local3.attachMovie("ClickBox", "BOX", 207);
_local3.COORDS = [_local5, _local7];
_local3.colour = new Color(_local3);
_local3.BOX.onRollOver = function () {
if (Key.isDown(16)) {
this.onPress();
}
_root.EditorMenu.COORDS = ((this._parent._x / _root.TILESIZE) + ", ") + (this._parent._y / _root.TILESIZE);
this._parent.colour.setTransform({ra:100, rb:0, ga:100, gb:0, ba:100, bb:100, aa:100, ab:0});
};
_local3.BOX.onRollOut = function () {
this._parent.colour.setTransform({ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0});
};
_local3.BOX.onPress = function () {
this.onRollOut();
if (Key.isDown(KEYS.C)) {
_root.E_SEL_TILE = this._parent.TILE;
_root.DrawTile(_root.EditorMenu.TileSelCont, _root.E_SEL_TILE, 32);
} else {
_root.map[this._parent.COORDS[1]][this._parent.COORDS[0]] = _root.E_SEL_TILE;
_root.DrawTile(this._parent, (this._parent.TILE = _root.E_SEL_TILE));
}
};
_local5++;
}
_local7++;
}
DrawTile(EditorMenu.TileSelCont, E_SEL_TILE, 32);
EditorMenu.TileSelCont.onPress = function () {
this._parent.gotoAndStop(2);
var _local5 = 0;
while (_local5 < ((_root.TILESHEET.height / 16) * 10)) {
var _local6 = [[0, 0], [370, 0], [370, 300]];
var _local4 = 1;
while (_local4 <= ((_local5 < 30) ? 3 : 1)) {
var _local3 = this._parent.TileList.createEmptyMovieClip((("T" + _local4) + "_") + _local5, ((_local4 * 1000) + 100) + _local5);
_local3._x = (36 * (_local5 % 10)) + _local6[_local4 - 1][0];
_local3._y = (36 * Math.floor(_local5 / 10)) + _local6[_local4 - 1][1];
_root.DrawTile(_local3, (_local3.TILE = String(_local4) + _local5), 32);
_local3.attachMovie("ClickBox", "BOX", 207);
_local3.BOX._width = (_local3.BOX._height = 32);
_local3.BOX.onPress = function () {
_root.E_SEL_TILE = this._parent.TILE;
_root.DrawTile(_root.EditorMenu.TileSelCont, _root.E_SEL_TILE, 32);
_root.EditorMenu.gotoAndStop(1);
};
_local4++;
}
_local5++;
}
};
EditorMenu.ExportBtn.label = "Export";
EditorMenu.ExportBtn.onPress = function () {
var _local2 = "map=[\n";
var _local1 = 0;
while (_local1 < map.length) {
_local2 = _local2 + (((("\t[" + map[_local1].toString()) + "]") + ((_local1 == (map.length - 1)) ? "" : ",")) + newline);
_local1++;
}
_local2 = _local2 + "];";
System.setClipboard(_local2);
trace("Copied map to clipboard.");
};
}
function E_RefineEdges() {
var _local9 = [];
var _local7 = TilesetEdges[tileset];
var _local8 = 0;
while (_local8 < map.length) {
_local9[_local8] = new Array(map[0].length);
var _local6 = 0;
while (_local6 < map[0].length) {
var _local1 = null;
var _local5 = [["black", "walls"], ["water", "waterEdges"]];
var _local3 = 0;
while (_local3 < _local5.length) {
var _local2 = _local7[_local5[_local3][0]];
var _local4 = {};
for (var _local11 in _local7[_local5[_local3][1]]) {
_local4["E" + _local7[_local5[_local3][1]][_local11]] = true;
}
if ((map[_local8][_local6] == _local2) && (!_local4["E" + map[_local8][_local6]])) {
if ((((map[_local8 - 1][_local6] != _local2) && (map[_local8 - 1][_local6] != null)) && (!_local4["E" + map[_local8 - 1][_local6]])) && (_local8 != 0)) {
if (map[_local8][_local6 - 1] != _local2) {
_local1 = 0;
} else if (map[_local8][_local6 + 1] != _local2) {
_local1 = 2;
} else {
_local1 = 1;
}
}
if ((((map[_local8 + 1][_local6] != _local2) && (map[_local8 + 1][_local6] != null)) && (!_local4["E" + map[_local8 + 1][_local6]])) && (_local8 != (map.length - 1))) {
if (map[_local8][_local6 - 1] != _local2) {
_local1 = 6;
} else if (map[_local8][_local6 + 1] != _local2) {
_local1 = 4;
} else {
_local1 = 5;
}
}
if ((((map[_local8][_local6 - 1] != _local2) && (map[_local8][_local6 - 1] != null)) && (!_local4["E" + map[_local8][_local6 - 1]])) && (_local6 != 0)) {
if (map[_local8 - 1][_local6] != _local2) {
_local1 = 0;
} else if (map[_local8 + 1][_local6] != _local2) {
_local1 = 6;
} else {
_local1 = 7;
}
}
if ((((map[_local8][_local6 + 1] != _local2) && (map[_local8][_local6 + 1] != null)) && (!_local4["E" + map[_local8][_local6 + 1]])) && (_local6 != (map[0].length - 1))) {
if (map[_local8 - 1][_local6] != _local2) {
_local1 = 2;
} else if (map[_local8 + 1][_local6] != _local2) {
_local1 = 4;
} else {
_local1 = 3;
}
}
if (_local1 != null) {
_local9[_local8][_local6] = _local7[_local5[_local3][1]][_local1];
}
}
_local3++;
}
_local6++;
}
_local8++;
}
_local8 = 0;
while (_local8 < _local9.length) {
var _local6 = 0;
while (_local6 < _local9[0].length) {
if (_local9[_local8][_local6] == null) {
} else {
var _local10 = Econt[(("T_" + _local6) + "_") + _local8];
DrawTile(_local10, (_local10.TILE = (map[_local8][_local6] = _local9[_local8][_local6])));
}
_local6++;
}
_local8++;
}
}
EDITOR_MODE = true;
_CURSOR.removeMovieClip();
Mouse.show();
playMusic("none");
E_SEL_TILE = 10;
TilesetEdges = {volcano:{black:10, walls:[15, 118, 16, 117, 116, 17, 115, 18], water:126, waterEdges:[120, 133, 121, 132, 131, 122, 130, 123, 124, 134]}, temple_FIRE:{black:10, walls:[130, 133, 131, 143, 141, 142, 140, 132]}, cave_aqua:{black:10, walls:[18, 15, 19, 16, 110, 13, 17, 14], water:118, waterEdges:[123, 120, 124, 121, 125, 122, 126, 119]}};
ZOOM_LEVEL = 3;
Econt.onEnterFrame = function () {
if (this.keydown) {
if (((((((!Key.isDown(37)) && (!Key.isDown(39))) && (!Key.isDown(38))) && (!Key.isDown(40))) && (!Key.isDown(33))) && (!Key.isDown(34))) && (!Key.isDown(KEYS.R))) {
this.keydown = false;
}
return(undefined);
}
var _local3 = 16 * _root.ZOOM_LEVEL;
if (Key.isDown(37)) {
this._x = this._x + _local3;
} else if (Key.isDown(39)) {
this._x = this._x - _local3;
}
if (Key.isDown(38)) {
this._y = this._y + _local3;
} else if (Key.isDown(40)) {
this._y = this._y - _local3;
}
var _local4 = false;
if (Key.isDown(33)) {
_local4 = 1;
this.keydown = true;
}
if (Key.isDown(34)) {
_local4 = -1;
this.keydown = true;
}
if (_local4) {
_root.ZOOM_LEVEL = _root.ZOOM_LEVEL + _local4;
if (_root.ZOOM_LEVEL < 1) {
_root.ZOOM_LEVEL = 1;
}
this._width = (_root.map[0].length * 16) * _root.ZOOM_LEVEL;
this._height = (_root.map.length * 16) * _root.ZOOM_LEVEL;
}
if (Key.isDown(36)) {
this._x = (this._y = 0);
}
if (Key.isDown(KEYS.R)) {
_root.E_RefineEdges();
this.keydown = true;
}
};
if (map != null) {
E_DrawMap();
EditorMenu.LoadArea = area;
}
Symbol 174 MovieClip [s_soul_E] Frame 9
gotoAndPlay ("glow");
Symbol 174 MovieClip [s_soul_E] Frame 35
stop();
this.removeMovieClip();
Symbol 184 MovieClip [s_soul2] Frame 20
gotoAndPlay ("glow");
Symbol 184 MovieClip [s_soul2] Frame 45
stop();
this.removeMovieClip();
Symbol 194 MovieClip [s_soul] Frame 9
gotoAndPlay ("glow");
Symbol 194 MovieClip [s_soul] Frame 35
stop();
this.removeMovieClip();
Symbol 270 MovieClip Frame 1
gotoAndPlay (2);
Symbol 270 MovieClip Frame 17
stop();
Symbol 290 MovieClip [dmgNum] Frame 1
stop();
Symbol 290 MovieClip [dmgNum] Frame 4
stop();
Symbol 293 MovieClip [emitter] Frame 1
if (_root.PFXEDITOR == true) {
stop();
} else {
nextFrame();
}
Instance of Symbol 291 MovieClip "control" in Symbol 293 MovieClip [emitter] Frame 1
onClipEvent (load) {
sp = 0;
delay = 1;
time = 0;
if (_parent.rpps != undefined) {
opps = _parent.pps;
_parent.pps = (opps * Math.random()) + (opps / 2);
}
}
onClipEvent (enterFrame) {
if ((_parent.mapPart == true) && (_root.cont._visible == false)) {
return(undefined);
}
if (time > _parent.timeout) {
return(undefined);
}
if ((_parent.timeout != undefined) || (_parent.Delay != undefined)) {
time++;
}
if ((time < _parent.Delay) && (_parent.Delay != undefined)) {
return(undefined);
}
if (!_root.OPTIONS.PFX) {
return(undefined);
}
if (_parent.pps < 1) {
delay = delay + _parent.pps;
if (delay >= 1) {
if (_parent.rpps == true) {
_parent.pps = (opps * Math.random()) + (opps / 2);
}
delay = delay - 1;
} else {
return(undefined);
}
}
i = 0;
while (i < _parent.pps) {
sp++;
if (sp > 1000) {
sp = 0;
}
_parent.attachMovie("particle", "P" + sp, sp);
PARTICLE = _parent["P" + sp];
PARTICLE._x = (PARTICLE.Xoffset = (-_parent.Hs) + random((_parent.Hs * 2) + 1));
PARTICLE._y = (-_parent.Vs) + random((_parent.Vs * 2) + 1);
PARTICLE._width = (PARTICLE._height = _parent.size * (((_parent.sizevar == -1) || (_parent.sizevar == null)) ? 1 : (Math.random() + 0.6)));
PARTICLE._alpha = (_parent.alpha ? (_parent.alpha) : 100);
PARTICLE.gotoAndStop(_parent.type);
PARTICLE.stuff = [((_parent.mode == "RADIAL") ? ({x:random(_parent.mass + 1) * ((random(2) == 1) ? 1 : -1), y:random(_parent.mass + 1) * ((random(2) == 1) ? 1 : -1)}) : ({y:_parent.mass, x:0})), _parent.fade, _parent.shrink, _parent.spin];
PARTICLE.startX = _root.FOE._x;
if (_parent.rot != null) {
PARTICLE._rotation = ((_parent.rot == "R") ? (random(360)) : (_parent.rot));
}
PARTICLE.onEnterFrame = function () {
if (this._alpha <= 1) {
this.removeMovieClip();
return(undefined);
}
this._y = this._y + Number(this.stuff[0].y);
this._x = this._x + Number(this.stuff[0].x);
if (this._parent._parent._parent._name == "FOE") {
this._x = (this.startX - _root.FOE._x) + this.Xoffset;
}
this._alpha = this._alpha - ((this.stuff[1] == undefined) ? 1 : (this.stuff[1]));
if (!isNaN(this.stuff[2])) {
this._width = this._width * this.stuff[2];
this._height = this._height * this.stuff[2];
}
this._rotation = this._rotation + this.stuff[3];
};
PARTICLE.colour = new Color(PARTICLE);
if (_parent.colour != undefined) {
PARTICLE.colour.setRGB(((_parent.colour[0] == undefined) ? (_parent.colour) : (_parent.colour[random(_parent.colour.length)])));
}
if (_parent.Modify) {
_parent.Modify(PARTICLE);
}
i++;
}
}
Symbol 293 MovieClip [emitter] Frame 2
stop();
Symbol 307 MovieClip [_CURSOR] Frame 1
stop();
if (done) {
return(undefined);
}
done = true;
count = 0;
fading = 0;
cX = 0;
cY = 0;
POINTING_TO = null;
onEnterFrame = function () {
var _local2 = (_root.HELD[0] != null) || (_root.DRAGGING_PC);
Mouse.hide();
_visible = true;
gotoAndStop((_local2 ? "grab" : ((((((_root.MENU_OPTIONS[_root.MENU_SHOWING - 1] == "Inventory") && (_root.menu._visible)) || (_root.SavePopup._visible && ((_root.SavePopup.MODE == "SWITCH") || (_root.SavePopup.MODE == "STORAGE")))) || (_root.SHOPPING_MODE)) ? "arrow" : "point"))));
if (_local2) {
_alpha = 100;
count = 0;
} else {
count++;
}
if (((count >= 100) && (_x == cX)) && (_y == cY)) {
fading = 1;
}
if ((fading != 0) && (_alpha > 0)) {
_alpha = (_alpha - 10);
}
if ((_x != cX) || (_y != cY)) {
count = 0;
fading = 0;
_alpha = 100;
}
cX = _x;
cY = _y;
AMOUNT_ = (((_root.HELD[1] == null) || (_root.HELD[1] == 1)) ? "" : (_root.HELD[1]));
};
Symbol 308 MovieClip [_sprite] Frame 1
function DrawFrame(f) {
var _local2 = ((SPRITE_HEIGHT == 48) ? 48 : ((stats.w ? (stats.w) : 16)));
bmp.copyPixels(SPRITESHEET, new flash.geom.Rectangle(_local2 * (isNaN(f) ? (frameRef[f]) : (f)), ((_root.__AreaEXTRA.DREAM && (stats.model == "mardek")) ? 16 : 0), _local2, SPRITE_HEIGHT), new flash.geom.Point(0, 0));
}
function ResetMoveRate() {
MR = ((IsPC() || (IsAlly())) ? 8 : 3);
}
function FaceDir(d) {
DrawFrame(((DIR = d)) + "1");
}
function FacePC() {
var _local2 = GetCoords();
var _local3 = _root.cont.PC.GetCoords();
DrawFrame(((_local3[0] < _local2[0]) ? "w" : (((_local3[0] > _local2[0]) ? "e" : (((_local3[1] < _local2[1]) ? "n" : "s"))))) + "1");
}
function IsValidTile(x, y) {
return(_root.FREESPACE[y][x]);
}
function SetProperDepth(y) {
var _local3 = (((1000 * ((GetCoords()[1] + ((y > 0) ? 1 : 0)) + 50)) + GetCoords()[0]) + 300) + (IsPC() ? 100 : 0);
while (_parent.getInstanceAtDepth(_local3) != null) {
_local3++;
}
this.swapDepths(_local3);
}
function Move(x, y, force, noanim) {
newDir = ((x > 0) ? "e" : (((x < 0) ? "w" : (((y > 0) ? "s" : "n")))));
if ((DIR != newDir) && (!noanim)) {
DIR = newDir;
DrawFrame(DIR + 1);
if ((!IsAlly()) && (WalkPath == null)) {
return(false);
}
}
var _local5 = GetCoords();
if ((((!IsAlly()) && (!force)) && (!moving)) && (!IsValidTile(_local5[0] + ((x == 0) ? 0 : (x / Math.abs(x))), _local5[1] + ((y == 0) ? 0 : (y / Math.abs(y)))))) {
return(false);
}
if (!moving) {
STATIC_MOVEMENT = noanim;
var _local10 = [_local5[0] + ((x > 0) ? 1 : (((x < 0) ? -1 : 0))), _local5[1] + ((y > 0) ? 1 : (((y < 0) ? -1 : 0)))];
if (!IsAlly()) {
_root.FREESPACE[_local5[1]][_local5[0]] = true;
_root.FREESPACE[_local10[1]][_local10[0]] = (IsPC() ? 0 : false);
}
SetProperDepth(y);
if (_root.TilesetLongGrass[_root.tileset] != null) {
lg_box._visible = _root.map[_local10[1]][_local10[0]] == _root.TilesetLongGrass[_root.tileset][1];
}
if (IsPC()) {
history.unshift([x, y]);
if (history.length > 6) {
history.pop();
}
var _local3 = 2;
while (_local3 <= 4) {
if (history.length >= _local3) {
var _local4 = history[1 + (_local3 - 2)];
_parent["PC" + _local3].Move(_local4[0], _local4[1]);
}
_local3++;
}
}
}
if ((moved == ((MR == 12) ? 12 : (((MR == 8) ? 16 : 18)))) || (moved == ((MR == 12) ? 36 : (((MR == 8) ? 40 : 42))))) {
fr = !fr;
if (fr) {
foot = -foot;
}
FlipLongGrass();
}
if (!STATIC_MOVEMENT) {
DrawFrame(DIR + (fr + 1));
}
_x = (_x + x);
_y = (_y + y);
if ((_root.scrollArea && (IsPC())) && (!TempVars.DONT_SCROLL_MAP)) {
_root.ScrollMap(-x, -y);
}
moving = [x, y];
moved = moved + MR;
if (moved >= _root.TILESIZE) {
moved = 0;
moving = false;
_local5 = GetCoords();
if (_root.TilesetLongGrass[_root.tileset] != null) {
lg_box._visible = _root.map[_local5[1]][_local5[0]] == _root.TilesetLongGrass[_root.tileset][1];
}
SetProperDepth();
if (IsPC()) {
_root.RecordStat("STEPS");
GameData.steps++;
if ((GameData.steps % 5) == 0) {
var _local3 = 0;
while (_local3 < 4) {
if (_root.HasSTFX(_root.PCstats[_local3], "PSN")) {
_root.PCstats[_local3].hp[0] = _root.PCstats[_local3].hp[0] - Math.ceil(_root.PCstats[_local3].hp[1] * 0.02);
if (_root.PCstats[_local3].hp[0] < 1) {
_root.PCstats[_local3].hp[0] = 1;
}
_root.Flash(_root.cont["PC" + ((_local3 == 0) ? "" : (_local3 + 1))], [80, 255, 0], 6);
}
_local3++;
}
}
}
if (IsPC()) {
var _local8 = _root.TRIGGERS[(("T_" + _local5[0]) + "_") + _local5[1]];
if (((_local8 != null) && (!_local8.triggered)) && (_local8.WALKON)) {
if (_local8.triggers != -1) {
_local8.triggered = true;
}
if (!_local8.recurring) {
GameData.TRIGGERS[_root.area][(("T_" + _local5[0]) + "_") + _local5[1]] = 1;
}
_local8.ExecuteScript();
}
var _local9 = _root.TRANSITIONS[(("T_" + _local5[0]) + "_") + _local5[1]];
if (_local9 != null) {
stats.dir = (_root.lastDir = (_local9.DOOR.dir ? (_local9.DOOR.dir) : (DIR)));
_root.AreaTrans(_local9.DOOR.dest);
if (_local9.DOOR.dest[3] != null) {
GameData.visited[_local9.DOOR.dest[3]] = true;
}
return(undefined);
}
}
if ((_root.TRIGGERS[(("T_" + _local5[0]) + "_") + _local5[1]] == null) && (!actions.length)) {
TryRandomBattle();
}
}
return(true);
}
function IsPC() {
return(_name == "PC");
}
function IsAlly() {
return((!IsPC()) && (_name.substr(0, 2) == "PC"));
}
function Talk(conv, dir) {
if (stats.silent || (DYING)) {
return(undefined);
}
if (((dir != null) && (stats.FRAME == null)) && (!stats.Static)) {
DrawFrame(dir + "1");
}
if (stats.EN) {
EN_ADD(stats.EN[0], stats.EN[1]);
}
_root.Speak(stats, this, conv);
}
function CoordsInFront() {
return([C[0] + ((DIR == "e") ? 1 : (((DIR == "w") ? -1 : 0))), C[1] + ((DIR == "s") ? 1 : (((DIR == "n") ? -1 : 0)))]);
}
function TryRandomBattle() {
if (((((_root.noBattles || (!IsPC())) || (actions.length > 0)) || (_root.freeze)) || (_root.conv._visible)) || (CheatVars.BATOG)) {
return(undefined);
}
tile = getTile(_parent._x, _parent._y);
var _local9 = 30;
var _local8 = Math.random() * (150 - risk);
if ((((_local8 <= _root.btlChance) && (_root.btlChance != 0)) && (GameData.steps >= _local9)) || (_root.forceBattle)) {
if (_root.forceBattle) {
_root.forceBattle = false;
}
GameData.steps = 0;
risk = 0;
_root.FOE_LEVELS = [];
_root.FOE_SEL = _root.foes[random(_root.foes.length)];
var _local6 = 0;
var _local7 = 0;
var _local5 = {P:0, E:0};
var _local4 = 0;
while (_local4 < 4) {
_root.FOE_LEVELS[_local4] = ((_root.levelrange[0] != _root.levelrange[1]) ? (random((_root.levelrange[1] - _root.levelrange[0]) + 1) + _root.levelrange[0]) : (_root.levelrange[1]));
if (_root.FOE_SEL[_local4] != null) {
_local5.E++;
_local7 = _local7 + _root.FOE_LEVELS[_local4];
}
if (_root.PCstats[_local4].level != null) {
_local5.P++;
_local6 = _local6 + _root.PCstats[_local4].level;
}
_local4++;
}
AlertBalloon(int((_local6 / _local5.P) > ((_local7 / _local5.E) + 2)), true).onEnd = function () {
this._parent.DoBattle();
};
trace(((_local6 / _local5.P) + ">") + ((_local7 / _local5.E) + 2));
} else {
risk++;
}
}
function DoBattle() {
_root.battling = true;
_root.PCLOC = [_root._currentframe, C[0], C[1]];
_root.playSFX("Attack2");
if (!GameData.plotVars.NO_BATTLE_MUSIC) {
_root.AREA_MUSIC = _root.currentMusic;
_root.playMusic("battle");
}
_root.BattleTrans();
}
function FadeAway() {
_root.FREESPACE[C[1]][C[0]] = true;
T = new flash.geom.Transform(this);
Tint = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
T.colorTransform = Tint;
baseX = box._x;
shake = 1;
DYING = true;
onEnterFrame = function () {
box._x = baseX + shake;
shake = shake * -1;
Tint.redOffset = Tint.redOffset + 2.5;
Tint.blueMultiplier = Tint.blueMultiplier - 0.01;
Tint.greenMultiplier = Tint.greenMultiplier - 0.01;
Tint.alphaMultiplier = Tint.alphaMultiplier - 0.01;
T.colorTransform = Tint;
if (Tint.alphaMultiplier <= 0) {
this.removeMovieClip();
}
};
}
function AlertBalloon(frame, cancellable) {
_root.playSFX("bading1");
this.createEmptyMovieClip("balloon", 76);
balloon.bmp = new flash.display.BitmapData(16, 16, true);
balloon.bmp.copyPixels(flash.display.BitmapData.loadBitmap("AlertBalloon"), new flash.geom.Rectangle(frame * 16, 0, 16, 16), new flash.geom.Point(0, 0));
balloon.attachBitmap(balloon.bmp, 1);
balloon._y = -20;
balloon.air = -6;
balloon.cancellable = cancellable && (frame);
balloon.xDown = true;
balloon.onEnterFrame = function () {
if (this.xDown && (!Key.isDown(KEYS.Z))) {
this.xDown = false;
}
if (this.air <= 6) {
this._y = this._y + (this.air / 3);
}
this.air++;
if (this.air > 16) {
this.onEnd();
this.removeMovieClip();
}
if (this.cancellable) {
if (Key.isDown(KEYS.Z) && (!this.xDown)) {
this.removeMovieClip();
}
}
};
return(balloon);
}
function FlipLongGrass() {
if (!lg_box._visible) {
return(undefined);
}
lg_box._xscale = lg_box._xscale * -1;
lg_box._x = ((lg_box._x == 0) ? (lg_box._width) : 0);
}
function remove() {
_root.FREESPACE[C[1]][C[0]] = true;
this.removeMovieClip();
}
SPRITESHEET = flash.display.BitmapData.loadBitmap("spritesheet_" + stats.model);
SPRITE_HEIGHT = SPRITESHEET.height;
bmp = new flash.display.BitmapData(((SPRITE_HEIGHT == 48) ? 48 : ((stats.w ? (stats.w) : 16))), SPRITE_HEIGHT, true, 0);
this.createEmptyMovieClip("box", 100);
box.attachBitmap(bmp, 100);
box._y = (stats.y0 ? 0 : -4) - (SPRITE_HEIGHT - 16);
if ((SPRITE_HEIGHT == 48) || (stats.w)) {
box._x = -16;
}
_width = (_width * 3);
_height = (_height * 3);
c = 0;
foot = 1;
fr = false;
DIR = (stats.dir ? (stats.dir) : "s");
frameRef = {s1:0, s2:1, n1:2, n2:3, e1:4, e2:5, w1:6, w2:7};
DrawFrame((stats.FRAME ? (stats.FRAME) : (DIR + "1")));
MR = 3;
ResetMoveRate();
moving = false;
moved = 0;
history = [];
risk = 0;
if (_root.TilesetLongGrass[_root.tileset] != null) {
lg_bmp = new flash.display.BitmapData(16, 16, true, 0);
lg_bmp.copyPixels(flash.display.BitmapData.loadBitmap("long_grass"), new flash.geom.Rectangle(16 * _root.TilesetLongGrass[_root.tileset][0], 0, 16, 16), new flash.geom.Point(0, 0));
this.createEmptyMovieClip("lg_box", 120);
lg_box.attachBitmap(lg_bmp, 1);
lg_box._y = -4;
var C = GetCoords();
lg_box._visible = _root.map[C[1]][C[0]] == _root.TilesetLongGrass[_root.tileset][1];
}
(XDOWN = false);
(ZDOWN = false);
KEYDOWN = false;
KEYSDOWN = {};
if (actions == null) {
actions = [];
}
onEnterFrame = function () {
if ((((((_root.battling || (_root.SavePopup._visible)) || (_root.WARP_SNAP._visible)) || (noactions)) || (balloon != null)) || (_root.disableSpriteControls)) || (_root.cheat_console._currentframe == 1)) {
return(undefined);
}
C = GetCoords();
if (spell_casteding) {
onSpellCasted();
}
if (((actions.length > 0) && (!acting)) && (!moving)) {
var _local3 = actions[0];
LAST_ACT = _local3;
if (_local3[0] == "UNFREEZE") {
_root.freeze = false;
actions.shift();
_local3 = actions[0];
}
if (typeof(_local3) == "function") {
_local3();
actions.shift();
} else if (_local3[0] == "TALK") {
if (_local3[2] != null) {
_root.cont[_local3[2]].Talk(_local3[1]);
} else {
Talk(_local3[1]);
}
actions.shift();
} else {
if (_local3[0] == "DISAPPEAR") {
_root.FREESPACE[C[1]][C[0]] = true;
this.removeMovieClip();
_root.freeze = false;
return(undefined);
}
if (_local3[0] == "GOTO") {
if (_local3[3] != null) {
stats.dir = _local3[3];
}
box._x = (_local3[2] ? (_local3[2]) : 0);
DrawFrame(_local3[1]);
actions.shift();
return(undefined);
}
if (_local3[0] == "WAIT") {
actions[0][1]--;
if (actions[0][1] <= 0) {
actions.shift();
}
return(undefined);
}
if (_local3[0] == "ALERT") {
AlertBalloon(0, false);
actions.shift();
return(undefined);
}
if (_local3[0] == "SPELL") {
if (!doneglyphbit) {
glyph.gotoAndStop(_local3[1][2]);
glyph._visible = true;
glyph.fade = 1;
doneglyphbit = true;
}
_local3[1][3]--;
if (_local3[1][3] <= 0) {
if (_local3[1][0] != null) {
var _local11 = _root.cont[_local3[2]];
var _local7 = _local11.getDepth() + 6001;
while (_root.cont.getInstanceAtDepth(_local7) != null) {
_local7++;
}
_root.ParticleEffect(_local3[1][0], _local11._x + (_local11._width / 2), (_local11._y + (_local11._height / 2)) - 12, null, _root.cont, _local7);
_root.Flash(_local11, _root.HexToRGB(_local3[1][1]));
}
onSpellCasted();
actions.shift();
delete doneglyphbit;
}
} else if (((((_local3[0] == "WALK") || (_local3[0] == "RUN")) || (_local3[0] == "SLIDE")) || (_local3[0] == "SLOWWALK")) || (_local3[0] == "SAUNTER")) {
MR = {WALK:(IsPC() ? 8 : 6), RUN:8, SLIDE:8, SLOWWALK:3, SAUNTER:6}[_local3[0]];
acting = true;
DIR = ((_local3[1] > 0) ? "e" : (((_local3[1] < 0) ? "w" : (((_local3[2] < 0) ? "n" : "s")))));
var _local19 = (_local3[1] ? (((_local3[1] < 0) ? (-MR) : (MR))) : 0);
var _local18 = (_local3[2] ? (((_local3[2] < 0) ? (-MR) : (MR))) : 0);
Move(_local19, _local18, true, _local3[0] == "SLIDE");
if (actions[0][1] != 0) {
actions[0][1] = actions[0][1] - ((actions[0][1] < 0) ? -1 : 1);
} else if (actions[0][2] != 0) {
actions[0][2] = actions[0][2] - ((actions[0][2] < 0) ? -1 : 1);
} else {
actions.shift();
}
if ((actions[0][1] == 0) && (actions[0][2] == 0)) {
actions.shift();
}
return(undefined);
}
}
}
if (moving != false) {
Move(moving[0], moving[1]);
if ((!moving) && (acting)) {
acting = false;
}
} else {
if (_root.freeze) {
return(undefined);
}
if (IsPC()) {
if ((!_root.conv._visible) && (!_root.CUTSCENE1._visible)) {
var _local9 = _root.TRIGGERS[(("T_" + C[0]) + "_") + C[1]];
if (((_local9 != null) && (!_local9.triggered)) && (!_local9.WALKON)) {
if (_local9.triggers != -1) {
_local9.triggered = true;
}
if (!_local9.recurring) {
GameData.TRIGGERS[_root.area][(("T_" + C[0]) + "_") + C[1]] = 1;
}
if (!(_local9.ExecuteScript() === false)) {
return(undefined);
}
}
if (_root.fader._visible) {
return(undefined);
}
if ((!Key.isDown(27)) && (KEYSDOWN.ESCAPE)) {
KEYSDOWN.ESCAPE = null;
}
if (_root.menu._currentframe == 2) {
if (_root.menu._alpha == 100) {
if (Key.isDown(27) && (!KEYSDOWN.ESCAPE)) {
_root.AreaTrans(["titlescreen"], 10);
_root.HideMenu();
_root.ClearSnapshot();
_root.ClearGameData();
KEYSDOWN.ESCAPE = true;
} else if (Key.isDown(KEYS.Z)) {
_root.HideMenu();
KEYSDOWN.Z = true;
}
}
return(undefined);
}
if (_root.cont._visible) {
if ((!_root.menu._visible) && (_root.MENU_IN != "DREAMSTONES")) {
if (KEYSDOWN.L && (!Key.isDown(KEYS.L))) {
KEYSDOWN.L = null;
}
if (Key.isDown(KEYS.L) && (!KEYSDOWN.L)) {
_root.Speak(stats, this, (_root.__AreaEXTRA.DREAM ? ([["susp", "[[RM]]I am... viewing my Chat Log?"]]) : ([["grin", "I am viewing my Chat Log!"]])));
_root.conv.LOG._visible = true;
KEYSDOWN.L = true;
return(undefined);
}
if (KEYSDOWN.P && (!Key.isDown(KEYS.P))) {
KEYSDOWN.P = null;
}
if (Key.isDown(KEYS.P) && (!KEYSDOWN.P)) {
_root.Speak(stats, this, "c_ALLIES");
KEYSDOWN.P = true;
return(undefined);
}
}
if (Key.isDown(27) && (!KEYSDOWN.ESCAPE)) {
if (!_root.menu._visible) {
_root.BlurredSnapshot();
_root.menu.gotoAndStop(2);
_root.menu._visible = true;
_root.menu._alpha = 100;
KEYSDOWN.ESCAPE = true;
}
return(undefined);
}
}
if ((!Key.isDown(13)) && (KEYSDOWN.ENTER)) {
KEYSDOWN.ENTER = null;
}
if (Key.isDown(13) && (!KEYSDOWN.ENTER)) {
KEYSDOWN.ENTER = true;
if (_root.menu._visible) {
_root.Menu_Back();
} else if (_root.cont._visible) {
_root.ShowMenu();
}
return(undefined);
}
if (_root.menu._visible) {
if ((_root.menu._alpha < 100) || (_root.menu._currentframe == 2)) {
return(undefined);
}
if (((((!(KEYDOWN === false)) && (!Key.isDown(40))) && (!Key.isDown(38))) && (!Key.isDown(37))) && (!Key.isDown(39))) {
KEYDOWN = false;
} else if (!KEYDOWN) {
if (Key.isDown(40)) {
if (KEYDOWN === false) {
KEYDOWN = 16;
}
_root.Menu_ArrowDown();
} else if (Key.isDown(38)) {
if (KEYDOWN === false) {
KEYDOWN = 16;
}
_root.Menu_ArrowUp();
} else if (Key.isDown(37)) {
if (KEYDOWN === false) {
KEYDOWN = 16;
}
_root.Menu_ArrowLeft();
} else if (Key.isDown(39)) {
if (KEYDOWN === false) {
KEYDOWN = 16;
}
_root.Menu_ArrowRight();
}
} else if (KEYDOWN) {
KEYDOWN--;
}
if (XDOWN && (!Key.isDown(KEYS.X))) {
XDOWN = false;
}
if (Key.isDown(KEYS.X) && (!XDOWN)) {
XDOWN = true;
_root.Menu_Confirm();
}
if (ZDOWN && (!Key.isDown(KEYS.Z))) {
ZDOWN = false;
}
if (Key.isDown(KEYS.Z) && (!ZDOWN)) {
ZDOWN = true;
_root.Menu_Back();
}
return(undefined);
}
}
if (!_root.cont._visible) {
return(undefined);
}
if (_root.conv._visible && (Key.isDown(KEYS.Z))) {
_root.conv.Forward(true);
}
if (KEYSDOWN.L && (!Key.isDown(KEYS.L))) {
KEYSDOWN.L = false;
}
if ((_root.conv._visible && (Key.isDown(KEYS.L))) && (!KEYSDOWN.L)) {
_root.conv.LOG._visible = !_root.conv.LOG._visible;
KEYSDOWN.L = true;
}
if (XDOWN && (!Key.isDown(KEYS.X))) {
XDOWN = false;
}
if (Key.isDown(KEYS.X) && (!XDOWN)) {
XDOWN = true;
if (_root.conv._visible) {
_root.conv.Forward();
} else {
var _local5 = CoordsInFront();
var _local12 = _root.TRANSITIONS[(("T_" + _local5[0]) + "_") + _local5[1]];
if (_local12 && (_local12.DOOR)) {
stats.dir = (_local12.DOOR.dir ? (_local12.DOOR.dir) : (DIR));
_local12.Open();
return(undefined);
}
var _local8 = null;
var _local23 = false;
for (var _local24 in _root.AREASPRITES) {
var _local6 = _root.AREASPRITES[_local24].GetCoords();
if ((((_local6[0] == _local5[0]) && (_local6[1] == _local5[1])) && (!_root.AREASPRITES[_local24].moving)) && (!_root.AREASPRITES[_local24].IsAlly())) {
_local8 = _root.AREASPRITES[_local24];
break;
}
}
if (_local8) {
if ((_local8.stats.FRAME == null) && (!_local8.stats.Static)) {
_local8.DrawFrame(((_local8.DIR = {n:"s", e:"w", s:"n", w:"e"}[DIR])) + "1");
}
_local8.Talk();
return(undefined);
}
var _local13 = _root.TALKTRIGGERS[(("T_" + _local5[0]) + "_") + _local5[1]];
if (_local13 != null) {
if (_local13.SecretSwitch) {
_local13.SecretSwitch();
} else {
_root.cont[_local13.NPC].Talk();
}
return(undefined);
}
var _local17 = _root.SHOPS[(("T_" + _local5[0]) + "_") + _local5[1]];
if (_local17 != null) {
_root.OpenShop(_local17);
return(undefined);
}
var _local15 = _root.FLAVOUR[(("T_" + _local5[0]) + "_") + _local5[1]];
if (_local15 != null) {
_root.Speak((_root.FLAVOUR_SPEAKER = _local15), null, _local15.conv);
return(undefined);
}
var _local4 = 0;
while (_local4 < _root.LOOT.length) {
if ((_root.LOOT[_local4].x == _local5[0]) && (_root.LOOT[_local4].y == _local5[1])) {
_root.LOOT[_local4].chest.Open();
return(undefined);
}
_local4++;
}
var _local16 = _root.TilesetExamineTiles[_root.tileset]["t" + _root.map[_local5[1]][_local5[0]]];
if (_local16 != null) {
_root.Speak({name:""}, null, [["", _root.TilesetExamineTiles[_root.tileset].phrases[_local16]]]);
return(undefined);
}
}
}
if (_root.conv.CHOICES != null) {
if ((KEYDOWN && (!Key.isDown(40))) && (!Key.isDown(38))) {
KEYDOWN = false;
} else if (!KEYDOWN) {
var _local14 = false;
if (Key.isDown(40)) {
_root.conv.CHOICE_SEL++;
if (_root.conv.CHOICE_SEL >= _root.conv.CHOICES.length) {
_root.conv.CHOICE_SEL = 0;
}
_local14 = true;
} else if (Key.isDown(38)) {
_root.conv.CHOICE_SEL--;
if (_root.conv.CHOICE_SEL < 0) {
_root.conv.CHOICE_SEL = _root.conv.CHOICES.length - 1;
}
_local14 = true;
}
if (_local14) {
KEYDOWN = true;
_root.conv.ShowOptions(_root.conv.CHOICES);
}
}
}
var _local10 = null;
if (_root.conv._visible || (_root.CUTSCENE1._visible)) {
return(undefined);
}
if (Key.isDown(38)) {
_local10 = [0, -1];
} else if (Key.isDown(39)) {
_local10 = [1, 0];
} else if (Key.isDown(40)) {
_local10 = [0, 1];
} else if (Key.isDown(37)) {
_local10 = [-1, 0];
}
if (_local10 != null) {
ResetMoveRate();
Move(_local10[0] * MR, _local10[1] * MR);
}
} else {
if (((_root.conv._visible || (_root.menu._visible)) || (_root.SavePopup._visible)) || (_root.fader._visible)) {
return(undefined);
}
if (IsAlly()) {
return(undefined);
}
if (stats.walkspeed == -2) {
DrawFrame((stats.FRAME ? (stats.FRAME) : (stats.dir + "1")));
} else if (stats.walkspeed == -1) {
c++;
if (c >= 20) {
fr = !fr;
if (fr) {
foot = -foot;
}
DrawFrame(stats.dir + (fr + 1));
c = 0;
}
} else {
c--;
if (c <= 0) {
DIR = "nesw".substr(random(4), 1);
ResetMoveRate();
if (Move(((DIR == "w") ? (-MR) : (((DIR == "e") ? (MR) : 0))), ((DIR == "n") ? (-MR) : (((DIR == "s") ? (MR) : 0))))) {
c = random(stats.walkspeed) + (stats.walkspeed / 2);
}
}
}
}
}
};
Symbol 325 MovieClip Frame 1
stop();
Symbol 349 MovieClip [ItemAbility] Frame 1
stop();
Symbol 360 MovieClip [E_Entry] Frame 1
stop();
Symbol 372 MovieClip [AbilityEntry] Frame 1
stop();
Symbol 377 MovieClip [QuestEntry] Frame 1
stop();
Symbol 394 MovieClip [MPTrack] Frame 1
stop();
Symbol 415 MovieClip [VictorySpoil] Frame 1
stop();
Symbol 433 MovieClip [ItemSlot] Frame 1
function DrawItem() {
AMOUNT_ = (((!AMOUNT) || ((AMOUNT == 1) && (!SHOPSLOT))) ? "" : (((AMOUNT == -1) ? "\u221E" : (AMOUNT))));
icont.img.removeMovieClip();
if (ITEM == null) {
return(undefined);
}
var _local2 = _root.AddItemImg(ITEM, icont, 32, 2);
if (SHOPSLOT) {
if (int(GameData.money) < _root.GetItemInfo(ITEM).cost) {
icont.img._alpha = 20;
}
}
}
function StorageMode() {
return(_root.SavePopup._visible && (_root.SavePopup.MODE == "STORAGE"));
}
function GetPCStats() {
return((StorageMode() ? (_root.SavePopup.SEL_PC_STATS) : (_root.PCstats[((_name.substr(0, 4) == "slot") ? (int(_parent._name.substr(1)) - 1) : (_root.MENU_INV_SEL))])));
}
function EquipItem() {
var _local3 = GetPCStats();
if (_name.substr(0, 4) == "slot") {
_local3[_name.substr(5)] = ITEM;
if (StorageMode()) {
_root.SavePopup.RefreshStorage2(1);
} else {
_root.Menu_ShowInventory();
}
} else if (this.STORAGE != null) {
GameData.STORAGE[this.STORAGE] = ((ITEM == null) ? null : ([ITEM, AMOUNT]));
} else {
_local3.inventory[_name.substr(1)] = ((ITEM == null) ? null : ([ITEM, AMOUNT]));
}
_root.calculateStats(_local3);
}
function UnequipItem() {
var _local3 = GetPCStats();
if (_name.substr(0, 4) == "slot") {
_local3[_name.substr(5)] = null;
if (StorageMode()) {
_root.SavePopup.RefreshStorage2(1);
} else {
_root.Menu_ShowInventory();
}
} else if (this.STORAGE != null) {
GameData.STORAGE[this.STORAGE] = null;
} else {
_local3.inventory[_name.substr(1)] = null;
}
_root.calculateStats(_local3);
}
function CanEquipHeld() {
if ((_root.HELD == null) || (_name.substr(0, 4) != "slot")) {
return(true);
}
var _local3 = _root.CanEquip(GetPCStats(), _root.HELD[0]);
var _local4 = _name.substr(5);
if (_local3[0]) {
var _local2 = 0;
while (_local2 < _local3.length) {
if (_local4 == _local3[_local2]) {
return(true);
}
_local2++;
}
return(false);
}
return(_local4 == _local3);
}
if (done) {
return(undefined);
}
done = true;
stop();
baseDepth = this.getDepth();
DrawItem(ITEM);
onPress = function () {
if ((_root.menu.CLOSING && (!StorageMode())) || (this._parent._alpha < 100)) {
return(undefined);
}
NID = int(_name.substr(1));
if (_name == "result_slot") {
if (_root.HELD != null) {
_root.playSFX("error");
return(undefined);
}
}
if (NEEDITEM != null) {
if ((_root.HELD != null) && ((int(AMOUNT) >= NEEDAMOUNT) || (_root.HELD[0] != NEEDITEM))) {
_root.playSFX("error");
return(undefined);
}
}
if (BLUEPRINT != null) {
if (ITEM == null) {
return(undefined);
}
if (_root.menu.ShopPanel.result_slot.ITEM != null) {
_root.playSFX("error");
return(undefined);
}
for (var _local4 in _parent._parent.Components) {
if (_parent._parent.Components[_local4].SLOT.ITEM != null) {
_root.playSFX("error");
return(undefined);
}
}
_parent["I" + _root.CURRENT_BLUEPRINT].gotoAndStop(1);
gotoAndStop (4);
_root.CURRENT_BLUEPRINT = BLUEPRINT;
_root.RefreshWorkbench();
return(undefined);
}
if (SHOPSLOT) {
if (_root.HELD) {
if ((ITEM == null) || (((_root.HELD[0] == ITEM) && (_root.STACKABLE_TYPES[_root.GetItemInfo(ITEM).type])) && (AMOUNT != 99))) {
_root.SavePopup.TRANSACTION = {type:"SELL", ITEM:_root.HELD[0], slot:this, max:_root.HELD[1]};
_root.SavePopup.FadeIn("SHOP");
} else {
_root.playSFX("error");
}
return(undefined);
}
if (ITEM == null) {
_root.playSFX("error");
} else {
var _local7 = _root.GetItemInfo(ITEM).cost;
if (GameData.money < _local7) {
_root.playSFX("error");
} else {
_root.SavePopup.TRANSACTION = {type:"BUY", ITEM:ITEM, slot:this};
_root.SavePopup.FadeIn("SHOP");
}
return(undefined);
}
}
if (_root.HELD) {
if (!CanEquipHeld()) {
_root.playSFX("error");
return(undefined);
}
var _local8 = _root.GetItemInfo(_root.HELD[0]);
if ((_root.STACKABLE_TYPES[_local8.type] && (_root.HELD[0] == ITEM)) && (_name.substr(0, 4) != "slot")) {
if (Key.isDown(KEYS.S)) {
_root.HELD[1]++;
AMOUNT--;
if (AMOUNT <= 0) {
ITEM = (AMOUNT = null);
}
_root.DragItem(_root.HELD[0], _root.HELD[1]);
} else {
if (AMOUNT >= 99) {
_root.playSFX("error");
return(undefined);
}
_root.HELD[1]--;
AMOUNT++;
if (_root.HELD[1] <= 0) {
_root.HELD[0] = (_root.HELD[1] = null);
}
_root.DragItem(_root.HELD[0], _root.HELD[1]);
}
} else {
if ((_name.substr(0, 4) == "slot") && (int(_root.HELD[1]) > 1)) {
_root.playSFX("error");
return(undefined);
}
if (ITEM != null) {
var _local5 = [ITEM, AMOUNT];
UnequipItem();
} else if ((NEEDITEM != null) && (NEEDAMOUNT < _root.HELD[1])) {
var _local5 = [_root.HELD[0], _root.HELD[1] - NEEDAMOUNT];
} else {
var _local5 = [null, null];
}
ITEM = _root.HELD[0];
AMOUNT = ((NEEDAMOUNT && (_root.HELD[1] > NEEDAMOUNT)) ? (NEEDAMOUNT) : (_root.HELD[1]));
_root.DragItem(_local5[0], _local5[1]);
}
} else {
if (Key.isDown(KEYS.S) && (_root.STACKABLE_TYPES[_root.GetItemInfo(ITEM).type])) {
AMOUNT--;
_root.DragItem(ITEM, 1);
} else {
if (_name == "slot_weapon") {
_root.playSFX("error");
return(undefined);
}
_root.DragItem(ITEM, ((!AMOUNT) ? 1 : (AMOUNT)));
AMOUNT = null;
}
if (!AMOUNT) {
ITEM = null;
}
}
EquipItem();
DrawItem(ITEM);
if (NEEDAMOUNT == null) {
return(undefined);
}
if (NEEDAMOUNT) {
_parent.AMOUNT = NEEDAMOUNT - ((ITEM != null) ? (((int(AMOUNT) < 1) ? 1 : (AMOUNT))) : (int(AMOUNT)));
}
if (_parent.AMOUNT != 0) {
return(undefined);
}
if (_parent.AMOUNT == 0) {
for (var _local4 in _parent._parent) {
if (int(_parent._parent[_local4].AMOUNT) > 0) {
return(undefined);
}
}
}
_root.playSFX("Cure");
var _local6 = _root.WORKSHOP_STUFF[0][_root.CURRENT_BLUEPRINT];
_root.menu.ShopPanel.result_slot.ITEM = _local6.name;
_root.menu.ShopPanel.result_slot.AMOUNT = (_local6.amount ? (_local6.amount) : 1);
_root.menu.ShopPanel.result_slot.DrawItem();
_root.CURRENT_BLUEPRINT = null;
_root.RefreshWorkbench(true);
};
onRollOver = function () {
if (_root._CURSOR._alpha < 100) {
return(undefined);
}
if (_name.substr(0, 4) == "slot") {
_root._CURSOR.TOOLTIP._visible = true;
_root._CURSOR.TOOLTIP.gotoAndStop(1);
_root._CURSOR.TOOLTIP.TEXT = _name.substr(5, 1).toUpperCase() + _name.substr(6);
if (_root._CURSOR.TOOLTIP.TEXT == "Accessory2") {
_root._CURSOR.TOOLTIP.TEXT = "Accessory";
}
_root.ROLLED_OVER_SLOT = _name.substr(5);
} else {
_root.ROLLED_OVER_SLOT = null;
}
_root.Menu_RolloverItem(ITEM, AMOUNT, SHOPSLOT);
this.gotoAndStop(((!CanEquipHeld()) ? 3 : 2));
};
onRollOut = function () {
_root._CURSOR.TOOLTIP._visible = false;
_root.Menu_RolloverItem(null);
_root.menu.mainpanel.ItemName = "";
_root.menu.mainpanel.ItemDesc = "";
this.gotoAndStop((((BLUEPRINT != null) && (_root.CURRENT_BLUEPRINT == BLUEPRINT)) ? 4 : 1));
};
Symbol 453 MovieClip [pitchblack] Frame 1
stop();
Symbol 453 MovieClip [pitchblack] Frame 20
stop();
Symbol 466 MovieClip [alertMark] Frame 1
_root.playSFX("bading1");
Symbol 466 MovieClip [alertMark] Frame 20
stop();
this.removeMovieClip();
Symbol 494 MovieClip [castSparkle] Frame 1
nextFrame();
if ((elem == null) && (_root.TECH_USING.elem == null)) {
_visible = false;
return(undefined);
}
onEnterFrame = function () {
var _local3 = _root.ParticleEffect("one_sparkle_" + (elem ? (elem) : (_root.TECH_USING.elem)), _x, _y, null, _parent);
_local3._xscale = (_local3._yscale = _xscale);
_local3._alpha = _alpha;
};
Instance of Symbol 291 MovieClip "magic" in Symbol 494 MovieClip [castSparkle] Frame 1
onClipEvent (load) {
count = 0;
P = 0;
}
onClipEvent (enterFrame) {
if ((_parent._parent._name == "shd") || (_root.spellCasting == undefined)) {
return(undefined);
}
point = {x:_x, y:_y};
localToGlobal(point);
updateAfterEvent();
count--;
if (count <= 0) {
P++;
if (P > 20) {
P = 0;
}
var N = ("cSparkle_" + P);
_root.attachMovie("minorSparkle", N, 3423 + P);
_root[N]._x = ((0 + point.x) - 15) + random(30);
_root[N]._y = ((0 + point.y) - 15) + random(30);
_root[N].gotoAndStop((_parent.elem ? (_parent.elem) : (_root.GetSubCommand(_root.command, _root.spellCasting + "").elem)));
_root[N]._width = (_root[N]._height = 3);
_root[N].onEnterFrame = function () {
this._alpha = this._alpha - 8;
if (this._alpha <= 5) {
this.removeMovieClip();
}
};
count = 2;
}
}
Symbol 516 MovieClip [torchlight] Frame 1
this.onEnterFrame = function () {
if ((!_root.cont._visible) && (!this.inbattle)) {
return(undefined);
}
if (_root.area != this.area) {
this.removeMovieClip();
}
var _local3 = (this.noFlicker ? 0 : (random(5))) + 144;
this._width = (this._height = _local3 / (inbattle ? 2 : 1));
};
Symbol 550 MovieClip [AllySpriteBox] Frame 1
stop();
Instance of Symbol 562 MovieClip in Symbol 564 MovieClip Frame 1
onClipEvent (enterFrame) {
_x = (_x - 0.2);
if (_x <= -865) {
_x = (_x + 865);
}
}
Symbol 575 MovieClip Frame 1
onRelease = function () {
_root.VisitSponsor();
};
onRollOver = function () {
filters = [new flash.filters.GlowFilter(2267647, 0.8, 8, 8)];
};
onRollOut = function () {
filters = [];
};
stop();
Symbol 582 MovieClip Frame 1
onRelease = function () {
getURL ("http://www.fighunter.com", "_blank");
};
onRollOver = function () {
filters = [new flash.filters.GlowFilter(16750848, 0.5, 4, 4)];
};
onRollOut = function () {
filters = [];
};
stop();
Instance of Symbol 578 MovieClip in Symbol 582 MovieClip Frame 1
onClipEvent (enterFrame) {
this._rotation = this._rotation - 0.2;
}
Instance of Symbol 578 MovieClip in Symbol 582 MovieClip Frame 1
onClipEvent (enterFrame) {
this._rotation++;
}
Instance of Symbol 578 MovieClip in Symbol 582 MovieClip Frame 1
onClipEvent (enterFrame) {
this._rotation--;
}
Symbol 592 MovieClip [c__blank] Frame 1
Symbol 592 MovieClip [c__blank] Frame 2
if ((talk[0]() || (typeof(talk[0]) == "function")) || (talk[0] == null)) {
nextFrame();
} else {
Say("", talk[0][0], talk[0][1]);
}
stop();
Symbol 592 MovieClip [c__blank] Frame 3
talk.shift();
if (talk.length > 0) {
prevFrame();
} else {
END();
}
Symbol 593 MovieClip [c_A_Deugan] Frame 1
if (_root.area == "tv_arena") {
gotoAndStop ("ch3arena");
} else if (_root.area == "gemmine2") {
gotoAndStop ("minehelp");
} else if (_root.area == "moric_saucer5") {
gotoAndStop ("Farewell");
} else if (_root.area == "soothwood_shaman") {
gotoAndStop ("soothwood_shaman");
} else if (GameData.plotVars.MORIC_BEATEN == 5) {
gotoAndStop ("afterMoric5");
} else if (GameData.plotVars.MORIC_BEATEN == 4) {
gotoAndStop ("afterMoric");
} else if (_root.area == "lakequr") {
gotoAndStop ("lakequr");
} else if (_root.area == "glens2") {
gotoAndStop ("glens");
} else if (_root.area == "gc_PCdorm") {
if (GameData.plotVars.BRIEFING == 5) {
gotoAndStop ("briefing5");
} else {
gotoAndStop ("Ch2_1");
}
} else if (_root.area == "soothwood") {
gotoAndStop ("soothwood");
} else {
nextFrame();
}
Symbol 593 MovieClip [c_A_Deugan] Frame 2
Say("Deugan", "shok", "Uh, Mardek! Are you awake...? I just saw the weirdest thing!");
_root.cont.PC.DrawFrame("s1");
Symbol 593 MovieClip [c_A_Deugan] Frame 3
Say("Deugan", "norm", "There was this star in the sky, right, even though it was daytime - well, morning really, but same thing! - and I looked at it because it was weird, and then it started like getting BIGGER!");
Symbol 593 MovieClip [c_A_Deugan] Frame 4
Say("Deugan", "grin", "It was falling, Mardek! A falling star! And I saw where it landed, too! It landed with a big crash and I saw where it went!");
Symbol 593 MovieClip [c_A_Deugan] Frame 5
Say("Deugan", "deep", "It landed in a clearing just at the other side of the Soothwood, I think!");
Symbol 593 MovieClip [c_A_Deugan] Frame 6
Say("Deugan", "smile", "We should maybe go and find it, Mardek! Who knows what kind of mystery and wonders it holds? We've been looking for adventures for ages, and this might be our big chance... Let's go and find the $Fallen Star%!!");
Symbol 593 MovieClip [c_A_Deugan] Frame 7
GameData.visited.soothwood = 1;
JOINPARTY();
GIVEQUEST("FALLENSTAR");
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 10
Say("PC", "norm", "Well, this is the Soothwood.");
Symbol 593 MovieClip [c_A_Deugan] Frame 11
Say("Deugan", "norm", "Yes, we have to travel through this to get to where the thing crashed!");
Symbol 593 MovieClip [c_A_Deugan] Frame 12
Say("Deugan", "susp", "But wait, Mardek... Do we have our skills properly equipped? We should probably check from the menu!");
Symbol 593 MovieClip [c_A_Deugan] Frame 13
Say("PC", "susp", "What's a menu?");
Symbol 593 MovieClip [c_A_Deugan] Frame 14
Say("Deugan", "norm", "Uh... nevermind. Let's just continue on through the forest. It's not very big so we should be able to get to the other side pretty quickly!");
Symbol 593 MovieClip [c_A_Deugan] Frame 15
Say("PC", "grin", "Okay!");
Symbol 593 MovieClip [c_A_Deugan] Frame 16
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 20
Say("", "grin", "Oy! Mardek! Wake up! We have our test today!");
EN_ADD("People", "Mardek");
EN_ADD("People", "Deugan");
Symbol 593 MovieClip [c_A_Deugan] Frame 21
Say("PC", "zzz", "Nnngh...");
Symbol 593 MovieClip [c_A_Deugan] Frame 22
Say("", "blah", "Oh, you're hopeless! If you sleep in like this as a Guard, think of all the lives that could be lost!");
Symbol 593 MovieClip [c_A_Deugan] Frame 23
Say("PC", "susp", "Well, why didn't you wake me up earlier?");
_root.cont.PC.DrawFrame("s1");
Symbol 593 MovieClip [c_A_Deugan] Frame 24
Say("", "grin", "Eh, you looked so peaceful! And besides, it is pretty early, considering. I only managed to wake up so soon because I'm so *excited*! Aren't you? I mean, we have our final test mission today-...");
Symbol 593 MovieClip [c_A_Deugan] Frame 25
Say("PC", "deep", "Well, it's a test. I don't think tests are very exciting. More like... scary.");
Symbol 593 MovieClip [c_A_Deugan] Frame 26
Say("", "norm", "I know what you mean... but though it may be a test, it's ALSO a mission! Our first ACTUAL mission! I mean, up until now we've only had those frustratingly tame practice exercises in the training areas with targets that couldn't hurt us if they wanted to...");
Symbol 593 MovieClip [c_A_Deugan] Frame 27
Say("", "grin", "Today, though, we're actually going out into the field to fight REAL enemies, to make a REAL difference on the world! I'm too excited to be scared this time!");
Symbol 593 MovieClip [c_A_Deugan] Frame 28
Say("PC", "susp", "Well, what does the mission thing involve?");
Symbol 593 MovieClip [c_A_Deugan] Frame 29
Say("", "deep", "I'm not sure, still... I was hoping Jacques would tell me if I got up early and asked him, but he wouldn't, which was annoying. He said to wait for everyone else to get there first.");
Symbol 593 MovieClip [c_A_Deugan] Frame 30
Say("", "grin", "Oh, but hey! Guess who I ended up talking to for quite a while just now?");
Symbol 593 MovieClip [c_A_Deugan] Frame 31
Say("PC", "susp", "I don't know; who?");
Symbol 593 MovieClip [c_A_Deugan] Frame 32
Say("", "grin", "Oh, isn't it obvious, Mardek? Who else would make me beam like this just by thinking of them?");
Symbol 593 MovieClip [c_A_Deugan] Frame 33
Say("PC", "susp", "Your mother?");
Symbol 593 MovieClip [c_A_Deugan] Frame 34
Say("", "blah", "Oh, ha.");
Symbol 593 MovieClip [c_A_Deugan] Frame 35
Say("", "grin", "No, though; it was Emela!");
Symbol 593 MovieClip [c_A_Deugan] Frame 36
Say("PC", "susp", "You got to talk to Emela for a while?!");
Symbol 593 MovieClip [c_A_Deugan] Frame 37
Say("", "grin", "Yeh, I did! I mean... I bet you're pretty jealous!");
Symbol 593 MovieClip [c_A_Deugan] Frame 38
Say("PC", "susp", "Well...");
Symbol 593 MovieClip [c_A_Deugan] Frame 39
Say("", "norm", "Eh, you know I don't mean to make you jealous, though, mate. I wouldn't've talked to her behind your back like that at all normally - or, well, AT ALL normally! - but we were sort of near eachother by chance and there was this awkward silence that I felt I needed to fill...!");
Symbol 593 MovieClip [c_A_Deugan] Frame 40
Say("PC", "norm", "Well, what's she like?");
Symbol 593 MovieClip [c_A_Deugan] Frame 41
Say("", "grin", "Oh, she's... well, she's great. Just great, yes. She's clever, funny in her own way, sort of shy, which I rather like... Water... She's as good to talk to as she is to look at, that's for certain!");
Symbol 593 MovieClip [c_A_Deugan] Frame 42
Say("Deugan", "deep", "She seems sort of scared and awkward about being here though, like... she didn't quite join for the same reasons that we did, but because she had to? It's sort of concerning, actually.");
Symbol 593 MovieClip [c_A_Deugan] Frame 43
Say("PC", "deep", "Well, I hope *I* get to talk to her at length sometime...");
Symbol 593 MovieClip [c_A_Deugan] Frame 44
Say("", "smile", "Oh, I'm sure you will, mate! Tell you what... If we're ever together for any reason, all three of us, then I'll let YOU talk to her and I'll say nothing, alright?");
Symbol 593 MovieClip [c_A_Deugan] Frame 45
Say("PC", "grin", "Well, that'd be great!");
Symbol 593 MovieClip [c_A_Deugan] Frame 46
Say("", "smile", "Heh, thought you might think so.");
Symbol 593 MovieClip [c_A_Deugan] Frame 47
Say("", "angr", "Y'know who annoys me though? That Steele chap... By YALORT, he's such an insufferable IDIOT!");
Symbol 593 MovieClip [c_A_Deugan] Frame 48
Say("", "angr", "I was just talking to Emela all pleasant-like - or, uh, heh, awkwardly at least - as I said, and we were getting along well enough, but then HE comes along and basically steals her away from me! I could TELL she detests the guy, but neither of us dared stand up to him, I suppose. I mean, he's a big bloke, and he knows how to get his way. Agh, I can't stand him!");
Symbol 593 MovieClip [c_A_Deugan] Frame 49
Say("PC", "angr", "Well, I know *I'D* like to headbutt him in the crotch and spit in his hair!");
Symbol 593 MovieClip [c_A_Deugan] Frame 50
Say("", "blah", "Guh, it's just so irritating how he acts all so damned arrogant and superior all the time! He thinks he's YALORT's Gift To Women, but it's so obvious that they all despise him.");
Symbol 593 MovieClip [c_A_Deugan] Frame 51
Say("PC", "blah", "Well, except for some girls. Most, actually.");
Symbol 593 MovieClip [c_A_Deugan] Frame 52
Say("", "norm", "Psht. They're all mindless floozies though, who like 'bad boys' like that. That's why Emela's so different... His uber-machoness doesn't work on her; she's got more of a mind than that.");
Symbol 593 MovieClip [c_A_Deugan] Frame 53
Say("PC", "grin", "I bet she'd only ever really prefer clever guys like us!");
Symbol 593 MovieClip [c_A_Deugan] Frame 54
Say("", "susp", "Indeed...");
Symbol 593 MovieClip [c_A_Deugan] Frame 55
Say("", "norm", "Anyway, we're wasting so much time here, Mardek, dawdling around, gossiping like housewives! I swear I've inherited that from my mother...");
Symbol 593 MovieClip [c_A_Deugan] Frame 56
Say("", "grin", "We should go and report to Jacques though and get our mission! C'mon!");
Symbol 593 MovieClip [c_A_Deugan] Frame 57
JOINPARTY();
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 59
_root.cont.PC.DrawFrame(8);
_root.cont.Deugan.DrawFrame("s1");
Say("Deugan", "norm", "Hey, uh, Mardek... Are you awake?");
Symbol 593 MovieClip [c_A_Deugan] Frame 60
_root.cont.PC.DrawFrame("s1");
Say("PC", "norm", "Well, yeh...");
Symbol 593 MovieClip [c_A_Deugan] Frame 61
Say("Deugan", "deep", ". . .");
Symbol 593 MovieClip [c_A_Deugan] Frame 62
Say("Deugan", "norm", "Wow... A lot happened today, eh?");
Symbol 593 MovieClip [c_A_Deugan] Frame 63
Say("PC", "shok", "Well, I just can't believe that Steele's dead!");
Symbol 593 MovieClip [c_A_Deugan] Frame 64
Say("Deugan", "deep", "I know... I mean, I always WANTED him dead, I suppose, so I should be happier maybe... But I'm not. Especially after that conversation just then. I just can't stand to see Emela like that, and she made a good point, too...");
Symbol 593 MovieClip [c_A_Deugan] Frame 65
Say("Deugan", "deep", "Have you ever really thought about things like... the life of people you might kill? We fought those bandits today... Did you consider that they might've had families that'd never see them again?");
Symbol 593 MovieClip [c_A_Deugan] Frame 66
Say("PC", "deep", "Well, I don't know... I sort of know that they do, but try not to think about it...");
Symbol 593 MovieClip [c_A_Deugan] Frame 67
Say("Deugan", "deep", "Because it makes us 'no use to anyone' if we think about it too much and break down on the battlefield? Hm... That's all we are, I suppose... Tools. Don't want us breaking...");
Symbol 593 MovieClip [c_A_Deugan] Frame 68
Say("RM", "smile", "*I* am astounded that you humans even consider such things! In my limited experience with the humans of Nineveh, I saw them only to be mindlessly violent, slaying any and all who stood in their way with no consideration that they were *people* too rather than just targets!");
_root.cont.PC.DrawFrame(9);
_root.playMusic("Rohoph");
Symbol 593 MovieClip [c_A_Deugan] Frame 69
Say("PC", "susp", "Well, were you angels better than that?");
Symbol 593 MovieClip [c_A_Deugan] Frame 70
Say("RM", "deep", "Heh... Funny. We were probably worse... Maybe not violently, but we certainly treated the droma like objects rather than other sentients... I always had a problem with that, but the others never listened. And now, after that crystal arrived...");
Symbol 593 MovieClip [c_A_Deugan] Frame 71
Say("RM", "norm", "Eh, I said I'd not go on about my past or purpose, so I'll leave it at that. Vague. Mysterious. Don't ask any further, please.");
Symbol 593 MovieClip [c_A_Deugan] Frame 72
Say("RM", "susp", "But! I must bring something up!");
Symbol 593 MovieClip [c_A_Deugan] Frame 73
_root.cont.Deugan.DrawFrame("e1");
Say("Deugan", "shok", "What is it? Sounds urgent!");
Symbol 593 MovieClip [c_A_Deugan] Frame 74
Say("RM", "deep", "It might be, but I'm not sure... Since I melded with Mardek, my innate powers have sort of been on the fritz... I've been not detecting things I should, and detecting other things that turn out to be nothing.");
Symbol 593 MovieClip [c_A_Deugan] Frame 75
Say("RM", "deep", "But when we were exploring those mines, I got this overwhelming feeling that I can't ignore... I COULD be wrong, and I HOPE I am, but... I think that another of my race - another 'angel' - is here. On this world. Now.");
Symbol 593 MovieClip [c_A_Deugan] Frame 76
Say("PC", "grin", "Well, that's good! You can have a chat about old times together, and he can maybe take you home!");
Symbol 593 MovieClip [c_A_Deugan] Frame 77
Say("RM", "deep", "I doubt that greatly. You see, uh...");
Symbol 593 MovieClip [c_A_Deugan] Frame 78
Say("RM", "blah", "I've sort of refrained from telling you this before because it might frighten you and make you edgy, but, uh... Well. I'm not exactly *liked* by others of my kind.");
Symbol 593 MovieClip [c_A_Deugan] Frame 79
Say("PC", "susp", "Well, what do you mean?");
Symbol 593 MovieClip [c_A_Deugan] Frame 80
Say("RM", "deep", "I mean, uh... If that other is here, chances are he's after me. He's looking for me, yes, probably... To destroy me.");
Symbol 593 MovieClip [c_A_Deugan] Frame 81
Say("PC", "Shok", "Urk!");
Symbol 593 MovieClip [c_A_Deugan] Frame 82
Say("RM", "blah", "Ah, see, this is why I didn't mention anything before!");
Symbol 593 MovieClip [c_A_Deugan] Frame 83
Say("RM", "norm", "I don't know if he'll be able to detect me though. I can only pick up his vague magical signature, but I can't say where he is. And like I said before, I could be completely wrong, and I could've just detected a monster or something...");
Symbol 593 MovieClip [c_A_Deugan] Frame 84
Say("Deugan", "susp", "That mine WAS full of magical crystals... Maybe that had something to do with it?");
Symbol 593 MovieClip [c_A_Deugan] Frame 85
Say("RM", "smile", "Actually... you're right! That seems reasonable! Because I can't feel it anymore. I could in there, but that must've been it... The magical crystals, yes.");
Symbol 593 MovieClip [c_A_Deugan] Frame 86
Say("RM", "norm", "So, uh, it'd be best if you didn't think too much about what I've just said! The chances of them finding me here of all places are pretty low anyway, and they've probably assumed I'm dead by now since it's been so long! So please don't worry about it.");
Symbol 593 MovieClip [c_A_Deugan] Frame 87
Say("PC", "deep", "Well, okay...");
Symbol 593 MovieClip [c_A_Deugan] Frame 88
Say("Deugan", "norm", "We should go to sleep now though, Mardek. It'll probably be a big day tomorrow!");
Symbol 593 MovieClip [c_A_Deugan] Frame 89
Say("PC", "grin", "Well, okay! Night night!");
Symbol 593 MovieClip [c_A_Deugan] Frame 90
GameData.plotVars.SUNSET = null;
GameData.plotVars.BRIEFING = 6;
GameData.plotVars.NO_SWITCH = 0;
_root.cont.PC.DrawFrame(8);
_root.cont.Deugan.DrawFrame(8);
_root.FadeIn(80);
_root.fader.quieten = true;
_root.fader.onMaxFade = function () {
_root.cont.Deugan.removeMovieClip();
this.quieten = null;
_root.MUSIC.setVolume(100);
_root.playMusic("none");
this.FadeOut(80);
};
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 93
_root.cont.PC2.DrawFrame("w1");
_root.cont.PC.DrawFrame("w1");
Say("Deugan", "susp", "Hey, Emela, er... How are you feeling..?");
Symbol 593 MovieClip [c_A_Deugan] Frame 94
Say("Emela", "norm", "Hm? Oh, I'm... I'm alright... Why do you ask?");
Symbol 593 MovieClip [c_A_Deugan] Frame 95
Say("Deugan", "susp", "Oh, I was just concerned... You seemed really distressed last night after, er, what happened... Do you think you'll be okay with this mission? I mean, it might include killing...");
Symbol 593 MovieClip [c_A_Deugan] Frame 96
Say("Emela", "deep", "Yes, I'm... I've come to terms with that, I think. I realise now that killing people who put themselves at risk of death, and who act in such a way as to encourage it and make OTHERS feel bad isn't such an evil thing... No, ultimately it's a good thing because of how many people benefit from it.");
Symbol 593 MovieClip [c_A_Deugan] Frame 97
Say("Emela", "norm", "Innocents, though... That's the evil. If someone's done NOTHING and is a good person, then there's no reason to kill such a person. Not ever.");
Symbol 593 MovieClip [c_A_Deugan] Frame 98
Say("PC", "norm", "Well, obviously! But that's what these villains do, which is why it's okay to kill them for it.");
Symbol 593 MovieClip [c_A_Deugan] Frame 99
Say("Deugan", "norm", "And if you try to change them, then you can't... It's like trying to change their element. That just can't happen because it's a fundamental part of their soul. THE most fundamental part!");
Symbol 593 MovieClip [c_A_Deugan] Frame 100
Say("Emela", "susp", "I suppose... Still, killing a killer is just? A killer killer is still a killer!");
Symbol 593 MovieClip [c_A_Deugan] Frame 101
Say("PC", "susp", "...Huh?");
Symbol 593 MovieClip [c_A_Deugan] Frame 102
Say("Emela", "smile", "Heh... Let's just not talk about that and get back to what we have to do, okay? To Canonia!");
Symbol 593 MovieClip [c_A_Deugan] Frame 103
Say("Deugan", "grin", "Yes! Let us go!");
Symbol 593 MovieClip [c_A_Deugan] Frame 104
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 107
Say("Deugan", "susp", "We've passed a few of these weird statues now... Aren't they interesting? They look like they're made of crystal or glass, or something, and they're so well-made...");
Symbol 593 MovieClip [c_A_Deugan] Frame 108
Say("Emela", "deep", "They're eerie.. They look *too* real, and look at the expressions on some of them... It's like some sick artist captured peoples' last moments of shock and surprise or something.");
Symbol 593 MovieClip [c_A_Deugan] Frame 109
Say("Emela", "susp", "They've also never been here before, and certainly weren't here last time I was here... I wonder who made them, and why?");
Symbol 593 MovieClip [c_A_Deugan] Frame 110
Say("Emela", "blah", "Either way, I don't approve of them. They're creepy.");
Symbol 593 MovieClip [c_A_Deugan] Frame 111
Say("PC", "grin", "But they're sparkly!");
Symbol 593 MovieClip [c_A_Deugan] Frame 112
Say("Emela", "norm", "Yes. Now come on, Canonia's just a bit further!");
Symbol 593 MovieClip [c_A_Deugan] Frame 113
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 116
_root.cont.PC.DrawFrame(8);
Say("PC", "zzz", ". . .");
Symbol 593 MovieClip [c_A_Deugan] Frame 117
_root.cont.Deugan.DrawFrame("s1");
_root.cont.PC.DrawFrame(9);
_root.playMusic("Rohoph");
Say("RM", "deep", "Mardek... Deugan, you should probably listen too. I've been thinking...");
Symbol 593 MovieClip [c_A_Deugan] Frame 118
_root.cont.Deugan.DrawFrame("e1");
Say("Deugan", "blah", "Muh... What... what is it? What's the matter?");
Symbol 593 MovieClip [c_A_Deugan] Frame 119
Say("RM", "deep", "Well, we defeated Moric back there, yes? That much is obvious. But consider this: my body was destroyed too, and yet here I am.");
Symbol 593 MovieClip [c_A_Deugan] Frame 120
Say("PC", "susp", "...So?");
Symbol 593 MovieClip [c_A_Deugan] Frame 121
Say("Deugan", "shok", "So that other Death guy might have survived the death of his physical body too and lived on?!?");
Symbol 593 MovieClip [c_A_Deugan] Frame 122
Say("Deugan", "susp", "But wait... Wouldn't he have needed another body to go into like you did? There weren't any around apart from us, and he didn't go into any of us like you did with Mardek...");
Symbol 593 MovieClip [c_A_Deugan] Frame 123
Say("RM", "susp", "There weren't any around? Ho, how silly of you! We were in a *tomb*! There were bodies *everywhere*!");
Symbol 593 MovieClip [c_A_Deugan] Frame 124
Say("Deugan", "susp", "But... don't you need an alive body?");
Symbol 593 MovieClip [c_A_Deugan] Frame 125
Say("RM", "norm", "Not necessarily! It's preferable and easier - says I, as if I have experience transferring my soul, even though I've only done it once - but Moric's a Necromancer; I honestly think he'd *rather* have a dead body than a live one!");
Symbol 593 MovieClip [c_A_Deugan] Frame 126
Say("RM", "norm", "You're also not limited by the body's element if it's dead, anyway... I was able to share Mardek's body with him because we're both Light, but if we were different elements, it wouldn't've worked. The soul determines the element though, so evacuated bodies offer no such limitation.");
Symbol 593 MovieClip [c_A_Deugan] Frame 127
Say("RM", "susp", "(And if you're wondering why the Undead have elements, well... Their elements are determined by the necromantic energy that animates them.)");
Symbol 593 MovieClip [c_A_Deugan] Frame 128
Say("Deugan", "susp", "If that's the case, then couldn't he have re-possessed his own corpse?");
Symbol 593 MovieClip [c_A_Deugan] Frame 129
Say("RM", "smile", "Heh, you'd think so, wouldn't you? But unfortunately it doesn't work like that. It can't. As for why not... That's technical and irrelevant.");
Symbol 593 MovieClip [c_A_Deugan] Frame 130
Say("RM", "deep", "I am greatly concerned that Moric may yet perpetuate his existence on this physical plane, and you saw how he was when we battled him back in the catacombs. He seems dead set on conquering this world for his own selfish pleasures, and we must stop him!");
Symbol 593 MovieClip [c_A_Deugan] Frame 131
Say("Deugan", "susp", "But how do we know he DOES still live, or exist or whatever?");
Symbol 593 MovieClip [c_A_Deugan] Frame 132
Say("RM", "deep", "We don't, but I'd bet all your money on it. As for finding him... That should be simple. Just... well, I know you're both exhausted, but rest lightly tonight, and get what rest you can. I have a feeling something's going to happen really soon...");
Symbol 593 MovieClip [c_A_Deugan] Frame 133
GameData.plotVars.SUNSET = "NIGHT";
GameData.plotVars.MORIC_BEATEN = 5;
_root.cont.PC.DrawFrame(8);
_root.cont.Deugan.DrawFrame(8);
_root.FadeIn(100);
_root.fader.quieten = true;
_root.fader.onMaxFade = function () {
_root.cont.Deugan.removeMovieClip();
_root.DrawSprite({name:"Deugan", model:"deugan_soldier", x:3, y:2, walkspeed:-2, dir:"e", elem:"EARTH", conv:"c_A_Deugan", PC_STATS:GameData.plotVars.Allies.Deugan});
_root.DrawSprite({name:"Emela", model:"emela_soldier", x:5, y:2, walkspeed:-2, dir:"w", elem:"WATER", conv:"c_A_Deugan", PC_STATS:GameData.plotVars.Allies.Emela});
if (GameData.plotVars.Allies.Vehrn != null) {
_root.DrawSprite({name:"Vehrn", model:"vehrn", x:3, y:3, walkspeed:-2, dir:"e", elem:"EARTH", conv:"c_A_Deugan", PC_STATS:GameData.plotVars.Allies.Vehrn});
}
if (GameData.plotVars.Allies.Zach != null) {
_root.DrawSprite({name:"Zach", model:"zach", x:5, y:3, walkspeed:-2, dir:"w", elem:"AIR", conv:"c_A_Deugan", PC_STATS:GameData.plotVars.Allies.Zach});
}
DO_ACTIONS([["WAIT", 10], ["TALK", "c_A_Deugan"]], "PC");
this.quieten = false;
_root.MUSIC.setVolume(100);
_root.FadeOut(10);
_root.playMusic("none");
delete this.onMaxFade;
};
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 136
GameData.plotVars.MORIC_BEATEN = 6;
Say("Emela", "shok", "Oi! Mardek! Get up!");
Symbol 593 MovieClip [c_A_Deugan] Frame 137
Say("PC", "zzz", "...Mmm... wuh...?");
Symbol 593 MovieClip [c_A_Deugan] Frame 138
_root.cont.PC.DrawFrame("s1");
Say("Deugan", "shok", "It's happening! The thing that Rohoph predicted!");
Symbol 593 MovieClip [c_A_Deugan] Frame 139
_root.cont.PC.DrawFrame(9);
Say("RM", "susp", "What exactly has Moric done?");
Symbol 593 MovieClip [c_A_Deugan] Frame 140
Say("Deugan", "shok", "Jacques says that a black mist has appeared over Canonia, like how one appeared over Goznor! But there's not just that! Apparently this big black... solid cloud thing appeared over the village, burning with magical green fire or something!");
Symbol 593 MovieClip [c_A_Deugan] Frame 141
Say("RM", "deep", "Ah... That'd be his battleship. I'm surprised he didn't use that before, on Goznor...");
Symbol 593 MovieClip [c_A_Deugan] Frame 142
GIVEQUEST("SAVECANONIA");
Say("RM", "norm", "We must act, and quickly. Moric's battleship has power like nothing you've ever witnessed before, and though I can't imagine him putting it to quick use, the death of one's body can injure one's mind, and Moric's was fractured enough to begin with. Who knows what he'll do!");
Symbol 593 MovieClip [c_A_Deugan] Frame 143
Say("RM", "susp", "But we need some way to get to the battleship... It's suspended in the air, yes? Do you have magic on this world that can allow you to fly?");
Symbol 593 MovieClip [c_A_Deugan] Frame 144
Say("Emela", "deep", "Um... I don't think there are any spells like that - at least, none that I've ever heard of - but I suppose we could ask the best magical people around if they know anything that we could use...");
Symbol 593 MovieClip [c_A_Deugan] Frame 145
Say("Emela", "shok", "But, um! We need to act quickly! Please! Canonia's in danger, and that place isn't as well-defended as Goznor!");
Symbol 593 MovieClip [c_A_Deugan] Frame 146
Say("PC", "angr", "Well, let's go now then!");
Symbol 593 MovieClip [c_A_Deugan] Frame 147
Say("RM", "deep", "We can't just head to Canonia straight away though! First we need to find a skilled magic user capable of assisting us!");
Symbol 593 MovieClip [c_A_Deugan] Frame 148
GameData.plotVars.MORIC_BEATEN = 6;
GameData.plotVars.ZOMBIES = "CANONIA";
_root.lastDir = "s";
GameData.plotVars.NO_SWITCH = 0;
GameData.plotVars.MARDEK_ALONE = false;
SET_SPEAKER("Deugan");
JOINPARTY();
SET_SPEAKER("Emela");
JOINPARTY();
if (GameData.plotVars.LAST_P4 == "Vehrn") {
SET_SPEAKER("Vehrn");
JOINPARTY();
SET_SPEAKER("Zach");
JOINPARTY();
} else {
SET_SPEAKER("Vehrn");
JOINPARTY();
SET_SPEAKER("Zach");
JOINPARTY();
}
delete GameData.plotVars.LAST_P4;
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 150
Say("Deugan", "deep", "Damn, the Shaman's not here... And I thought it was such a good idea coming to him, too, since he IS the best magic user around...");
Symbol 593 MovieClip [c_A_Deugan] Frame 151
Say("Emela", "susp", "Maybe he's already seen the thing in the sky and gone to Canonia to help out? Y'know, since the Canonia Shaman's dead and all...");
Symbol 593 MovieClip [c_A_Deugan] Frame 152
Say("Deugan", "norm", "You're probably right! Let's go and check there!");
Symbol 593 MovieClip [c_A_Deugan] Frame 153
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 155
_root.playSFX("monster_beast");
Say("Dracelon", "", "<<ROBO>>Rrruuuuhhhh!!! -INTRUDERS ARE STILL ALIVE. KILL THEM THIS TIME I WILL.-");
Symbol 593 MovieClip [c_A_Deugan] Frame 156
Say("Emela", "shok", "Aah! We haven't got time to fight this thing again! We need to get out of here!");
Symbol 593 MovieClip [c_A_Deugan] Frame 157
Say("RM", "angr", "The escape pods are right there, but if we try to escape in them, it'll surely destroy us while we're vulnerable! The escape pod, too! It won't let us just run away!");
Symbol 593 MovieClip [c_A_Deugan] Frame 158
Say("Deugan", "deep", "No... No, it won't... But we can't fight... Not enough time...");
Symbol 593 MovieClip [c_A_Deugan] Frame 159
Say("Deugan", "angr", "I'll hold it off. The rest of you, go! Run! There isn't much time! You need to get to the escape pods!");
Symbol 593 MovieClip [c_A_Deugan] Frame 160
Say("PC", "shok", "What? You're staying behind?! No!");
Symbol 593 MovieClip [c_A_Deugan] Frame 161
Say("Deugan", "deep", "Mardek... If I don't do this, then we'll all either have to fight this thing and die when the timer runs out, or try to flee and die when it chases us down. I can't let either of those things happen.");
Symbol 593 MovieClip [c_A_Deugan] Frame 162
Say("Deugan", "norm", "The world needs a Hero, but I suppose it was never meant to be me... You've always been more successful and likable than me, Mardek... You're the better man, and it's you who should shine your light on the world and become the next Social Fox, not me.");
Symbol 593 MovieClip [c_A_Deugan] Frame 163
Say("Deugan", "grin", "So go on, mate. Be a Hero! Do it for both of us! Live our dream! You'll make a damn good Hero, I'm sure of it!");
Symbol 593 MovieClip [c_A_Deugan] Frame 164
Say("PC", "sad", "Deugan, no! You... you can't leave like this! You have to come with us! We need to be Heroes together!");
Symbol 593 MovieClip [c_A_Deugan] Frame 165
Say("Deugan", "deep", "I'm so sorry, mate... You know I'd love to, but I think this is more important. So go on, just leave, dammit!");
Symbol 593 MovieClip [c_A_Deugan] Frame 166
Say("Deugan", "deep", "And... please, look after Emela...");
Symbol 593 MovieClip [c_A_Deugan] Frame 167
Say("Emela", "sad", "Deugan...");
Symbol 593 MovieClip [c_A_Deugan] Frame 168
Say("PC", "sad", ". . .");
Symbol 593 MovieClip [c_A_Deugan] Frame 169
if (_root.PCstats[3].name != "Vehrn") {
nextFrame();
} else {
Say("Vehrn", "blah", "(Why is it just standing there not doing anything?! We've delayed for ages just talking! Aren't we supposed to be hurrying out of here?)");
}
Symbol 593 MovieClip [c_A_Deugan] Frame 170
Say("Deugan", "angr", "GO!");
Symbol 593 MovieClip [c_A_Deugan] Frame 171
Say("RM", "deep", "Come on... Deugan's made his choice, and I can see there's no changing his mind. We need to go now, quickly!");
TempVars.DONT_SCROLL_MAP = true;
DO_ACTIONS([["RUN", 6, 0], ["GOTO", "s1"], ["WAIT", 6], ["RUN", 0, -7]], "PC", true);
DO_ACTIONS([["RUN", 6, 0], ["RUN", 0, -9]], "Emela", true);
DO_ACTIONS([["RUN", 0, -1], ["RUN", 6, 0], ["RUN", 0, -9], ["UNFREEZE"]], _root.PCstats[3].name, true);
Symbol 593 MovieClip [c_A_Deugan] Frame 172
Say("Deugan", "deep", "Come on, you hideous monstrosity, you dream stealer... This is for Mardek, for Emela, for Social Fox and for Belfan...");
DO_ACTIONS([["SLOWWALK", 0, -1], ["UNFREEZE"]], "Deugan", true);
Symbol 593 MovieClip [c_A_Deugan] Frame 173
Say("Deugan", "angr", "RRRAAAAHH!");
DO_ACTIONS([["WALK", 0, -1], ["UNFREEZE"]], "Deugan", true);
_root.PlayCutscene("CUTSCENE_EndCh2");
Symbol 593 MovieClip [c_A_Deugan] Frame 174
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 177
Say("Deugan", "norm", "Hey, Mardek, I know I say this every time we go on any kind of adventure, but I'm going to remind you of the controls again!");
Symbol 593 MovieClip [c_A_Deugan] Frame 178
Say("Deugan", "grin", "You can open the menu with the $ENTER key%, and we can check our stuff from there! It'd be a good idea to sort out our $Reactions% from the $Skills menu%! Remember, we can trigger them by using the $X key% in battle just as we hit or are hit!");
Symbol 593 MovieClip [c_A_Deugan] Frame 179
Say("PC", "susp", "What are you talking about? I don't see any keys. Were we supposed to bring some for locked doors or something? And what's a 'menu'? This doesn't look like a restaurant!");
Symbol 593 MovieClip [c_A_Deugan] Frame 180
Say("Deugan", "blah", "Tsk. Every time, I swear...");
Symbol 593 MovieClip [c_A_Deugan] Frame 181
Say("Deugan", "norm", "C'mon, Mardek. Let's just get on with the mission.");
Symbol 593 MovieClip [c_A_Deugan] Frame 182
Say("Deugan", "norm", "But if you ever need me for any reason, remember that you can talk to me using the $P key%... though don't expect me to have all the answers to all our problems! I'll probably mainly just make forgettable comments about the scenery or something.");
Symbol 593 MovieClip [c_A_Deugan] Frame 183
END();
Symbol 593 MovieClip [c_A_Deugan] Frame 185
Say("PC", "susp", "...Well, that was weird.");
Symbol 593 MovieClip [c_A_Deugan] Frame 186
Say("PC", "norm", "He dropped something...");
GIVEDREAMSTONE(7);
Symbol 593 MovieClip [c_A_Deugan] Frame 187
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 1
if (GameData.plotVars.MORIC_BEATEN == 101) {
gotoAndStop ("REndCH2");
} else if (_root.area == "moric_saucer3") {
gotoAndStop ("dracelon");
} else if (_root.area == "moric_saucer2") {
gotoAndStop ("moric_saucer2");
} else if (_root.area == "moric_saucer1") {
gotoAndStop ("moric_saucer1");
} else if (_root.area == "crypt1") {
gotoAndStop ("enter_crypt");
} else if (_root.area == "pcave4") {
gotoAndStop ("pcave");
} else if (_root.area == "gz_Mhouse2") {
gotoAndStop ("time3");
} else if (!TempVars.NoRohophName) {
gotoAndStop ("time2");
} else {
nextFrame();
}
Symbol 594 MovieClip [c_A_Rohoph] Frame 2
Say("Deugan", "shok", "What the? Mardek! What just happened?!? Are you okay?");
_root.cont.PC2.DrawFrame("n1");
EN_ADD("People", "Rohoph");
Symbol 594 MovieClip [c_A_Rohoph] Frame 3
Say("PC", "zzz", ". . .");
Symbol 594 MovieClip [c_A_Rohoph] Frame 4
Say("Deugan", "susp", "...Mardek?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 5
_root.cont.PC.DrawFrame(9);
Say("RM", "deep", "Ah... Good, it worked... Unfortunate choice of body, though. But ah well. Can't be helped. It was the only compatible elemental type host around.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 6
Say("Deugan", "shok", "...Mardek?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 7
Say("RM", "norm", "Hm. I say, you there. Inhabitant. Where is this? No wait... Do you know of the Annunaki? The Lingons? The Astrostles Alliance?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 8
Say("Deugan", "shok", "Huh? What? Mardek, you're scaring me...!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 9
Say("PC", "shok", "Well, I'm starting to scare me too! I don't know what I'm doing! That's not me saying those th-");
Symbol 594 MovieClip [c_A_Rohoph] Frame 10
Say("RM", "deep", "Silence, host. So... this is not a Developed World then? Interesting... I might be safe here... at least for a little while. But at the same time, I'll be so very vulnerable...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 11
Say("Deugan", "sad", "Uhm... If you're pretending, Mardek, then stop it... It's not very funny...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 12
Say("RM", "smile", "I suppose you're pretty confused, Inhabitants! *Underdeveloped* and *HUMAN* Inhabitants, might I add...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 13
Say("RM", "norm", "I'll just be blunt and explain. You see, I happen to have crashed my ga-... uh, my 'flying chariot' on this planet of yours, and it appears my other body couldn't take the impact and died. A pity.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 14
Say("RM", "smile", "But I still have business in this plane, so I transferred my soul to this host. So now I'm sharing its body. You don't need to *understand* it; you just need to accept it, because I'm going nowhere, and you'd have to kill this creature if you wanted to get at me.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 15
Say("Deugan", "shok", "Urk!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 16
Say("RM", "deep", "But despite my prior tone, I mean you no harm at all! No... harm is what I'm against, which is why I'm here now...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 17
Say("RM", "norm", "And I'm sorry to have inconvenienced with you with my presence, but... just be glad I didn't expel this creature's soul from its body, because I COULD have done that and taken full control! I'm not cruel enough though, so I'd rather share.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 18
Say("RM", "norm", "You'll have to put up with me for a while though, I'm afraid, because I can only get out of this body when it's ter- ...Uh. Never mind that, actually.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 19
Say("RM", "smile", "I suppose I might as well try to settle in immediately. So tell me, creatures, what you call yourselves! What are your names? You're larvae, correct?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 20
Say("Deugan", "shok", "I'm not a caterpillar! And... And I don't know what's going on! I'm confused! This is... too *weird*...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 21
Say("Deugan", "susp", "But you're some kind of... thing... in Mardek's body that can talk out of his mouth, but you're not him?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 22
Say("RM", "grin", "That is correct, little creature! I'm surprised you followed what I was saying so well seeing as you're but a youngling, and an Underdeveloped one at that!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 23
Say("RM", "smile", "But my, I'm being so rude! I haven't let my host speak in ages! Do forgive me.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 24
Say("PC", "shok", "Mmph! Huh? Well, I couldn't speak! You were doing that, weren't you? Don't do that! Get out of me!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 25
Say("RM", "smile", "I'm afraid I can't do that, O Host. I need to perpetuate myself in this plane, and the bond I just made to this body is rather permanent, so you and I will be together for a long time! You'll just have to get used to having me sharing your body.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 26
TempVars.NoRohophName = false;
Say("RM", "smile", "My name's Rohoph, by the way. A pleasure it is to make your acquaintance, Larval Human Inhabitants of this world.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 27
Say("RM", "deep", "You two seem understandably distressed. If you want, I can be silent for a while? I need to mull over my thoughts anyway. I suggest you two rest a bit and calm down. We can talk more later.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 28
Say("PC", "deep", "Yeh, shut up you weird thing! I... I need to go and lie down...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 29
Say("Deugan", "deep", "Mardek, I don't know exactly what just happened or what it all means, but I think we should head back to the village now... So come on, let's go...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 30
GameData.plotVars.ROHOPH = 1;
GameData.plotVars.SUNSET = true;
GameData.TRIGGERS.gz_Mhouse2.T_0_1 = 0;
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 31
Say("RM", "deep", "Ah, the old corpse... It served me well for many hundreds of years, but alas, now it's ruined.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 32
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 35
_root.cont.PC.DrawFrame(8);
Say("PC", "zzz", ". . .");
Symbol 594 MovieClip [c_A_Rohoph] Frame 36
_root.cont.PC.DrawFrame("s1");
Say("PC", "susp", "You! You weird thing in me! Can you hear me if I talk?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 37
_root.cont.PC.DrawFrame(9);
_root.playMusic("Rohoph");
Say("RM", "smile", "Obviously. I have your ears and share your brain now, so I can detect anything that you can, including your *internal* monologues, might I add.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 38
Say("RM", "smile", "(But due to my incredible magical prowess and dominance in this 'relationship', you can know nothing of MY mental activites. Ahah.)");
Symbol 594 MovieClip [c_A_Rohoph] Frame 39
Say("PC", "susp", "Huh?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 40
Say("RM", "smile", "Nevermind. You want to ask me something though, Host? I suppose I'll do my best to explain; I mean, we WILL surely be spending years together from now on, so it'd be best to be on good terms with one another.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 41
Say("PC", "susp", "Well, I just want to know what you are! What are you?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 42
Say("RM", "deep", "Hm... Despite its apparent simplicity, that's one of the most complex of queries you could've come up with...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 43
Say("RM", "norm", "In short, I am... A Healer. Yes, that should do. I'm a magic-user of incredible skill, specialising in Light-elemental recovery magic and so on. Inhabiting your body as I am, I'll be able to lend you some of my power in any battles you may face in future. Keep that in mind.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 44
Say("RM", "susp", "But also, since I know that wasn't a satisfactory answer to your question, I am, uh... An 'Angel'? Is that what you call them here?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 45
Say("PC", "susp", "You mean one of them things from the sky?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 46
Say("RM", "smile", "Yes... I think. That's the word I got for what I am when I searched your brain's vocabulary lexicon, anyway. 'A being from the sky'. Yes, that seems apt.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 47
Say("RM", "deep", "I came here because... Hm, I don't know if I should tell you... I can't see what harm it'd do, but I also can't see what GOOD it would do, so it's better to be safe than sorry.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 48
Say("PC", "sad", "Aww! So you won't even tell me why you're in me?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 49
Say("RM", "norm", "Uh. I'm IN you, as you so nicely put it, because I had no choice. As I said, my body died when my, uh, (blast! no word for it!)... 'flying thing' crashed here, and I was so very close to having my soul wrenched from this plane of existence...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 50
Say("RM", "norm", "O, what luck!, I thought when you entered my, uh... flying thing! I do apologise, but the opportunity was just too good to ignore, and when you're in pure soulform, you don't have much reasoning capability anyway.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 51
Say("RM", "smile", "I still have a lot of business to attend to on this plane, though. Yes... Why I'm here on this planet of yours relates to that.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 52
Say("RM", "deep", "But I need time to regenerate a bit. Dying really weakened me! Which is understandable.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 53
Say("RM", "smile", "I'll lie low for a bit here before mentioning anything to you... So it's best you just accept my solemn stony silence on matters of my past, person or purpose for the next few years and don't ask questions!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 54
Say("PC", "blah", "Well, you talk too much, Thing!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 55
Say("RM", "susp", "My name's Rohoph, not 'Thing'. And hm... I do go on a bit, don't I? But I'm the only one here with knowledge enough to provide any kind of exposition! Tsk!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 56
Say("RM", "smile", "Anyway, I'm going to probably be rather silent for the next few years. I'll still be in your body, but I'll keep to myself and work on regaining some of my power.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 57
Say("RM", "smile", "During that time, I'm sure you'll get used to me though, and I to you. Yes, it'll be a veritable frenzy of family-friendly fun, I'm sure! We'll have all sorts of crazy, zany shenanigans, antics and hijinks, probably!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 58
Say("PC", "grin", "Well, sounds fun!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 59
Say("RM", "smile", "Yes indeed. But now, rest, host. We can't be having us being sleepy and lethargic tomorrow... It's probably going to be a long day...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 60
_root.cont.PC.DrawFrame(8);
DONEQUEST("FALLENSTAR");
_root.PlayCutscene("CUT_GdM");
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 62
Say("Shaman", "shok", "Nooooooooo!!!");
DONEQUEST("MISSINGSHAMAN");
Symbol 594 MovieClip [c_A_Rohoph] Frame 63
Say("PC", "angr", "That'll show you for learning to mess, uh... teach mess meddle with, uh... uh, with me! Us! Yeh!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 64
_root.cont.PC.DrawFrame(9);
Say("RM", "shok", "I think I may have dire news!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 65
Say("PC", "shok", "What?!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 66
Say("RM", "deep", "The 'Reaper' that that Shaman spoke of... The personification of Death on this world is a dark, cloaked figure that wields a scythe, correct? It's called the Evereaper, or just the Reaper, and the Shaman said that she was contacted by this Reaper personally.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 67
Say("RM", "susp", "Now, you could dismiss this as madness, but I don't believe that to be so. I believe it to be much worse, and I believe the zombified state of the woman made this clear.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 68
Say("RM", "norm", "I believe that the 'Reaper' she referred to was one of my race, my Order; one of the Annunaki, the Governance de Magi... So my suspicions from earlier proved true... This is MOST unfortunate!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 69
Say("PC", "susp", "Because they're out to kill you!?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 70
Say("RM", "deep", "Yes, most certainly, and this threatens us both, but I'm afraid that the Governance de Magi would never stop at just that. From the look of it, they've sent Moric, The Necromancer, and the Violet Crystal seemed to affect him majorly... It made him covetous of power, and it wouldn't at all surprise me if he's using this little mission to gain some of it.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 71
Say("RM", "deep", "Your world of Belfan is weak compared to the power he already wields. He could feasibly conquer it quicker than you'd like to believe, and he would, too; seems he is trying to, actually.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 72
Say("RM", "blah", "I'd guess that he asked the Shaman about the nearest populated place so then he could go there and raise as many undead servants as possible. He zombified the Shaman so then he could essentially use her to control this area... probably. Moric IS predictable.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 73
Say("Deugan", "susp", "But what are we supposed to DO?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 74
GIVEQUEST("SAVEGOZNOR");
Say("RM", "deep", "I'm pretty certain that Moric would have gone to *Goznor*, from the sound of it, and this is bad. Very bad. He didn't seem to be there when we last were, but chances are he is by now. We need to head there, and fast.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 75
Say("PC", "shok", "Well, let's stop delaying and go now then!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 76
Say("Deugan", "deep", "Yes, c'mon! To Goznor!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 77
if (_root.PCstats[3].name != "Vehrn") {
nextFrame();
} else {
Say("Vehrn", "norm", "I'll accompany you. It may have been my mission only to find the Shaman, but now I can see that there are far more significant and world-threatening things at work here, if what your demon says is true. I shall see this through until the end.");
}
Symbol 594 MovieClip [c_A_Rohoph] Frame 78
Say("Emela", "susp", "Wait... Who was just talking then? That didn't sound like Mardek!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 79
Say("Deugan", "shok", "Uh... We can explain all that later! For now, we need to go to Goznor!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 80
_root.lastArea = "pcave1";
_root.WarpTrans(["WORLDMAP", 1, 1]);
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 82
DO_ACTIONS([["WALK", 0, 1], ["GOTO", "n1"], ["UNFREEZE"]], "PC", true);
DO_ACTIONS([["WALK", 1, 0], ["GOTO", "w1"], ["UNFREEZE"]], "PC2", true);
DO_ACTIONS([["WALK", 0, -1], ["GOTO", "s1"], ["UNFREEZE"]], "PC3", true);
DO_ACTIONS([["WALK", -1, 0], ["GOTO", "e1"], ["UNFREEZE"]], "PC4", true);
Say("RM", "smile", "Well... We're here. This is Moric's Battleship. Beyond your primitive comprehension, eh humans?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 83
Say("PC", "shok", "Well, it's so WOW!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 84
Say("Emela", "shok", "Certainly different to anything I've ever seen on Belfan anywhere! How very alien!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 85
Say("RM", "norm", "We must be careful. Annunaki battleships are as dangerous to enemies on the inside as they are on the outside. They have very high-tech and effective security systems.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 86
Say("Deugan", "susp", "Security system?! What does that involve?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 87
Say("RM", "blah", "Monsters, apparently. Random battles. Because that makes sense, of course.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 88
Say("RM", "deep", "At least it's something you can handle, I suppose...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 89
Say("RM", "smile", "Anyway, there's no time for talking now. We have to get to Moric, wherever he is! Come on!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 90
DO_ACTIONS([["WALK", 0, 1], ["WALK", -1, 0]], "PC2", true);
DO_ACTIONS([["WALK", -1, 0], ["WALK", 0, 2], ["WALK", 1, 0], ["UNFREEZE"], function () {
_root.DrawParty();
}], "PC3", true);
DO_ACTIONS([["WALK", 0, 1], ["WALK", 1, 0]], "PC4", true);
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 93
Say("Moric", "", "Rohooooooph....");
Symbol 594 MovieClip [c_A_Rohoph] Frame 94
Say("RM", "shok", "Moric! Are you speaking over the intercom?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 95
Say("Moric", "", "Yeeees.... Moric... That's me... meeee.... MEEEEeeEeeEeE. I'm Moric! I'm a Necromancer, yeeees, yeeees! I'll necromance you, Rohoph, you... you festering blightering blightery... blighter, with your... your.... yeeeeees... your robe, your robe... Your words... You hurt me, Rohoph. My body, yeeees... You broke it.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 96
Say("Moric", "", "I had to do a Soul Transfer, yeees... a Soul Transfer, so humiliating... So... so gruuuhhnngh...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 97
Say("RM", "deep", "Moric... I fear the Transfer didn't go as well for you as it did for me... You appear to have lost your mind.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 98
Say("Moric", "", "My mind? My MIND? MY mind? Yeeees, yes... Yeeees, I had one of those, a mind... MY MIND. Once... once, I did. I do... Yeees... You broke that, too. You're forever breaking my things, Rohoph...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 99
Say("Moric", "", "You're a bully, Rohoph. Yeees... I would wager that you don't recall the times you annihilated my spellbooks and my reagents, Rohoph, spoke against me all the time, Rohoph, back... back in the days, the young days...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 100
Say("Moric", "", "You've done me harm, yeees... So much harm, Rohoph... So much harm... And now look. Yeees, look what you've done. You... yeeesyou flestering bitey blight... sno-, crag-, nnek'gruuuh.... My... I hurt all over... I cannot think...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 101
Say("RM", "susp", "Moric, maybe I can help you? I am a Healer, after all. Perhaps... perhaps I can save you from the Violet Crystal's Influence? Restore your mind to its former glory? Maybe... maybe I can show you how monstrous our Order has become? We can save the galaxy together if only you'll let me aid you!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 102
Say("Moric", "", "Save? SAVE the galaxy? No... nngh... I... yeees, you... that won't SAVE the... the us. Galaxy... So... so... SELF-RIGHTEOUS you always are, Rohoph, yeees... You're always RIGHT, always right... No... Yeees... I was always wrong... You always thought I was wrong... Wrong, wrong... yeees...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 103
Say("Moric", "", "I... I'll kill you, Rohoph, yeees... Come to me... Come to meee...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 104
Say("RM", "deep", "Moric...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 105
Say("RM", "norm", "He's lost his mind. That... was painful to listen to... In this state, who knows what he's capable of...? We have to go to the bridge and stop him as quickly as we can. Come on...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 106
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 107
_root.playSFX("monster_beast");
Say("Dracelon", "", "<<ROBO>>Rrrruuuhhh... -INTRUDERS DETECTED. GENERICALLY STATING THAT THEY MUST BE DESTROYED.-");
Symbol 594 MovieClip [c_A_Rohoph] Frame 108
Say("RM", "angr", "This is a Dracelon, a sort of Ansharian dragon... though this is a cyborg zombie version, apparently... You could say it's Moric's personal guard dog. It's going to try to kill us now, so get ready to fight!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 109
_root.cont.Dracelon.noactions = true;
_root.cont.Dracelon.stats.silent = true;
GameData.plotVars.SLAIN_DRACELON = 1;
_root.AfterBattle = function () {
_root.cont.Dracelon.DrawFrame(4);
};
BATTLE([["Dracelon", null, null, null], ["Dracelon", null, null, null], [18, null, null, null], "SOLO"], "BossBattle", true);
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 110
_root.cont.PC.DrawFrame(9);
_root.playMusic("Rohoph");
Say("RM", "deep", "Mardek...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 111
_root.cont.PC.DrawFrame(8);
Say("PC", "zzz", ". . .");
Symbol 594 MovieClip [c_A_Rohoph] Frame 112
_root.cont.PC.DrawFrame(9);
Say("RM", "deep", "I understand how you must feel... Not just because I can actually access your brain in such a way that I can literally feel what you do, but also because I too know the pain of loss.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 113
Say("RM", "deep", "Today, for example, I lost Moric. True, he and I never did get along well, as he said, and - though it pains me to admit it - I might have been a tad hostile towards him in the past because of his chosen field of expertise, I still considered myself close to him, and to see him do the things he did and then to end his life, twice... It was quite a potent blow to me.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 114
Say("RM", "norm", "Certainly not as much of a loss as Deugan's death was to you, but that's not all.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 115
Say("RM", "deep", "I've also lost everything and everyone I ever knew when I came here... I was forced to leave my homeworld suddenly; I didn't even get a chance to say goodbye... Though I suppose I did to the ones who I was closest to, since it was them who are now after me...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 116
Say("RM", "grin", "But we should look on the bright side, Mardek! Moric's gone now, and the Governance de Magi might take that as a hint and leave me alone... Or, at the very least, their numbers are depleted, and that's a good thing for the entire galaxy! If we keep this up and kill one of them every chapter or something, we should have saved the galaxy before the eighth chapter!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 117
Say("PC", "susp", "Huh?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 118
Say("RM", "susp", "You're also a Knight now, Mardek! Doesn't that make you feel special and empowered? You have a lot of power in the world now... Isn't this what you always wanted? The power to help people?");
Symbol 594 MovieClip [c_A_Rohoph] Frame 119
Say("PC", "sad", "Well, me and Deugan wanted that together...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 120
Say("RM", "smile", "Hm... Perhaps... Perhaps you should just sleep on it... Maybe in the morning you'll be able to feel better, and honour Deugan's sacrifice by being the best Knight you can be, living the dream for both of you!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 121
Say("PC", "zzz", "Well, he was my best friend...");
Symbol 594 MovieClip [c_A_Rohoph] Frame 122
Say("RM", "smile", "Let's rest now, Mardek... Let's rest.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 123
_root.cont.PC.DrawFrame(8);
GameData.plotVars.NO_SWITCH = 0;
_root.freeze = false;
_root.PlayCutscene("CUT_GdM");
END();
Symbol 594 MovieClip [c_A_Rohoph] Frame 126
Say("RM", "deep", "Ah, I knew it was Moric... And I'm certain of this now. I can sense him strongly. He's deep within these catacombs, apparently working on a powerful incantation that will raise all the corpses in the area as his undead slaves.");
Symbol 594 MovieClip [c_A_Rohoph] Frame 127
Say("RM", "norm", "We should be careful, but also quick; we can't allow him to finish casting that spell!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 128
Say("Deugan", "blah", "This still doesn't make sense. HOW did he get down here in the first place?!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 129
Say("RM", "angr", "We have no time to lose! We need to go now! Come along!");
Symbol 594 MovieClip [c_A_Rohoph] Frame 130
END();
Symbol 595 MovieClip [c_ALLIES] Frame 1
function BackstoryCheck(n) {
var _local1 = int(GameData.BACKSTORIES[n]);
var _local2 = GameData.plotVars.Allies[n];
trace(((((((((((((((("if(" + _local1) + "<") + backstory.length) + " && ") + GameData.CHAPTER) + ">=") + bsch[_local1]) + " && ") + _local2.level) + ">=") + bslevels[_local1]) + " && ") + int(_local2.BATTLES)) + ">=") + (_local1 * 10)) + "){");
if (((_local1 < backstory.length) && (GameData.CHAPTER >= bsch[_local1])) && (_local2.level >= bslevels[_local1])) {
toSay = backstory[_local1];
GameData.BACKSTORIES[n] = _local1 + 1;
return(_local1);
}
return(false);
}
oldMusic = _root.currentMusic;
nextFrame();
Symbol 595 MovieClip [c_ALLIES] Frame 2
if (DoomCounter != null) {
Say("", "shok", "No time for that now!!");
} else if (_root.__AreaEXTRA.DREAM) {
Say("RM", "blah", "I have better things to do than waste time with idle banter.");
} else {
Say("", "norm", "Well, who should I talk to?");
}
Symbol 595 MovieClip [c_ALLIES] Frame 3
if (_root.__AreaEXTRA.DREAM) {
END();
return(undefined);
}
if (GameData.BACKSTORIES == null) {
GameData.BACKSTORIES = {};
}
options = [];
if (GameData.CHAPTER != 1) {
options.push({em:"norm", goto:"Rohoph", T:"Talk to Rohoph."});
}
var i = 1;
while (i < 4) {
if (_root.PCstats[i].name) {
GameData.plotVars.Allies[_root.PCstats[i].name] = _root.PCstats[i];
options.push({em:"norm", goto:_root.PCstats[i].name, T:("Talk to " + _root.PCstats[i].name) + "."});
}
i++;
}
options.push({em:"norm", goto:"end", T:"...Never mind."});
_root.conv.as.ShowOptions(options);
Symbol 595 MovieClip [c_ALLIES] Frame 5
END();
Symbol 595 MovieClip [c_ALLIES] Frame 7
MyName = "RM";
toSay = [["RM", "norm", "I have nothing to say right now."]];
if (GameData.CHAPTER == 1) {
toSay = [["RM", "susp", "Hm? You wish to speak with me. Fine, but not here; let us get somewhere comfortable first."]];
} else if (GameData.plotVars.ELWYEN_DATE) {
toSay = [["RM", "susp", "A word of advice, Mardek: though allies and friends are good and fine and can help you when you are in need, try not to get too close to them, for then they have the potential to destroy you utterly. Rarely of their own accord, but they can become tools for Evil to use to toy with your emotions, to cripple you. Beware."]];
} else if (GameData.plotVars.CH3KING == 10) {
toSay = [["PC", "deep", "Rohoph, I want to know why you killed your friend and sealed his soul when he said not to... Why did you lie?"], ["RM", "sour", "...I do not wish to speak of this, Mardek; just know that it was necessary. I understand things better than you do; you would not understand. You are supposed to be relaxing now; take it easy, and do not mention this again."]];
} else if ((_root.area == "goznor") || (_root.area.substr(0, 3) == "gz_")) {
if (GameData.plotVars.ZOMBIES == "GOZNOR") {
toSay = [["RM", "angr", "Damn you, Moric..."]];
} else {
toSay = [["RM", "susp", "You know, I've always wondered why this 'town' is so SMALL... A few rural-looking houses, and this is the greatest settlement in the North? It baffles the mind, how you humans operate."]];
}
} else if ((_root.area == "canonia") || (_root.area.substr(0, 3) == "cn_")) {
toSay = [["RM", "sour", "A sleepy town like this is an easy target for the merciless forces of darkness."]];
} else if ((_root.area == "trilobiteville") || (_root.area.substr(0, 3) == "tv_")) {
toSay = [["RM", "susp", "Fascinating... A village of yet another sentient race, hidden away like this? I can perhaps understand their reasoning for wishing to remain distant... but alas. I shan't elaborate. You wouldn't like it."]];
} else if (_root.area.substr(0, 9) == "aeropolis") {
toSay = [["RM", "smile", "THIS is more like what I'd expect from a city. It reminds me of many cities on Anshar, only smaller, and far more primitive."]];
} else if ((_root.area == "xantusia") || (_root.area.substr(0, 3) == "xn_")) {
toSay = [["RM", "susp", "Your world seems to have its fair share of these villages of odd sentients, hidden deep in caves. It's most peculiar."]];
} else {
toSay = null;
if (_root.dungeon) {
switch (_root.dungeon) {
case "GoznorSewer" :
toSay = [["RM", "angr", "This primitive waste-handling system is grotesquely inefficient and offensive to all of my senses. I would like it very much if we could get out of here as soon as possible."]];
break;
case "GemMine" :
if (GameData.CHAPTER == 2) {
toSay = [["RM", "deep", "I feel a strange sensation in this place... More than mere bandits. I cannot say any more right now, but be on your guard, Mardek."]];
} else {
toSay = [["RM", "susp", "This place brings back memories, but I can't help but wonder what madness drove you to explore here again."]];
}
break;
case "LakeQur" :
if ((_root.area == "lakequr_under") && (GameData.CHAPTER == 3)) {
toSay = [["RM", "deep", "You may not be able to perceive them, but this water is full of nano-particles that used to comprise Moric's battleship... It dissolved when it 'self-destructed', but as it fell into the lake, many of its solid components, like the droma, remain largely intact."], ["RM", "susp", "And I must note that I see no human remains anywhere."], ["PC", "grin", "Then that means that Deugan could have survived!"], ["RM", "susp", "It COULD mean that, or it could just mean that somebody took his body. Or that he fell elsewhere. Do not get your hopes up."]];
} else {
toSay = [["RM", "smile", "My people have technology for travelling underwater, you know. We have built cities beneath our seas... Marvellous things, they are. Simply astounding."], ["RM", "deep", "Oh, how I miss my home... But I will return one day. We'll see to that. And when I do, an age of peace and Light will dawn."]];
}
break;
case "SaulsHouse" :
toSay = [["RM", "angr", "This place reeks of death and misery. It brings back strong memories of Moric; his study was very much like this. The same aura of doom and gloom. I hate it. It offends everything that I stand for, desecrating the deceased like this. Ugh. Let's hurry up and get out of here."]];
break;
case "TaintedGrotto" :
toSay = [["RM", "susp", "Watch out for poisonous monsters in this place. It is best, I would say, to heal poison after battle rather than during it, lest you just get poisoned again in the same battle, having wasted an item or spell."]];
break;
case "Catacombs" :
if (GameData.plotVars.MORIC_BEATEN) {
toSay = [["RM", "susp", "Though Moric is gone from here now, there are still residual traces of his necromantic thaumaturgy lingering in the air, animating the corpses here. Beware."]];
} else {
toSay = [["RM", "esmile", "Moric is close... I can sense him. We must keep going."]];
}
break;
case "MoricSaucer" :
toSay = [["RM", "smile", "Despite the dire circumstances, I can't help but feel rather chuffed to be inside a construction of my own race once more. I have been rather homesick, and this relieves that somewhat."], ["RM", "susp", "But I freely admit that this is not the time for that, and that Moric must be stopped. We must hurry, as the fate of your world hangs in the balance."]];
break;
case "TrilobiteCave" :
toSay = [["RM", "susp", "Do we really have to be in this cave? The air is so very stale, and I cannot see how this moves us any closer to our important goals."]];
break;
case "Warport" :
toSay = [["RM", "susp", "These... 'Warports' seem exceedingly inefficient... yet I must give your people credit for this. We have a similar means of transportation on my homeworld of Anshar, yet the portals are fully public and require no payment to use, and are dotted about our streets for ease of travel."]];
break;
case "SunTemple" :
if (GameData.plotVars.SUN_WARDSTONE) {
toSay = [["RM", "susp", "Is there any reason that we return to this place? I am not aware of one. Nevertheless, I rather like this temple; the Light energies are soothing and pleasant to my very soul."]];
} else {
toSay = [["RM", "susp", "Remember, Mardek; we are on a mission. There is no time for idle banter."]];
}
break;
case "sandcave" :
toSay = [["RM", "deep", "It is... stiflingly warm in here. I would prefer it if we could find a way out of here soon."]];
break;
case "Carassius" :
toSay = [["RM", "susp", "Hmm. I won't tell you what this is because your tiny mind would not be able to understand, but it is most unusual to see it here as it is. It must not have been here long, either; I can tell by its condition. We should keep a note of its location; it may become relevant in the future."]];
break;
case "DarkTemple" :
if (_root.IsTempleDead()) {
toSay = [["RM", "angr", "It is GOOD that this place is drained of power and dead. The region will flourish and thrive now that evil has been driven from the land."]];
} else {
toSay = [["RM", "angr", "I ABOMINATE this place. There's one on every world, and I hate them all. Some claim that they are 'necessary', these Dark Crystals, to maintain 'Balance', but I've always thought that's rot. Rubbish. We don't NEED Dark, only Light; all life would be better that way."]];
}
break;
case "Volcano" :
toSay = [["RM", "susp", "I have precious little to say about this furnace of the earth. Let us make a move on."]];
break;
case "FireTemple" :
case "WaterTemple" :
case "Temple_EARTH" :
if (_root.IsTempleDead()) {
toSay = [["RM", "deep", "Though it pains me to see an elemental temple in this drained state, it is a necessary and *temporary* step in our mission. Once we can make sure the King cannot acquire the Crystals, we shall return them to their rightful places and the temples will return to full vigour once more."]];
} else {
toSay = [["RM", "deep", "These Temples of Crystals on your worlds are strewn across the landscape higgledy-piggledy, hidden from prying eyes. On Anshar, there was more Order; we arranged our temples in cities, free for all to visit. Of course, this is because our morality was in check and there was no chance of villains seizing the Crystals out of powerlust."], ["RM", "deep", "At least, that is the way it USED to be. With these current circumstances, I can only wonder what has been done with the Elemental Crystals of my world."]];
}
break;
case "Lifewood" :
toSay = [["RM", "smile", "I like the feeling of this place. It's... pleasant. Full of vitality. I feel a century old again!"]];
break;
case "LostMonastery" :
toSay = [["RM", "shok", "No... I KNOW the feeling of this place. The feeling of mind-warping, of madness. It is horribly familiar. Get done with your business in here QUICKLY, then we must get out."]];
break;
case "MiasmalCitadel" :
toSay = [["RM", "deep", "We travel to so many places that reek of death and despair... I do so wish I could cleanse and cure them, purify them with brilliant Light. Alas, my ability to do so was lost with my old form."]];
}
}
if (toSay == null) {
if (GameData.plotVars.CH3HASCRYSTALS) {
toSay = [["RM", "deep", "We carry with us the power of the planet, the essence of the elements, power beyond words... Believe me when it says it takes much willpower to resist using them for our own ends. But we must not fall to that level of villainy."]];
} else {
toSay = [["RM", "susp", "Yes, Mardek? You wish to speak to me? Well, I'm afraid I have nothing to say to you right now."]];
}
}
}
var backstory = [[["RM", "smile", "I have been watching your progress recently, Mardek, since you joined the Guard, and I must say, I'm impressed. You've come a long way from the innocent, clueless young lad I bonded with all those years ago."], ["RM", "deep", "It is looking very likely that my plan will be a success after all, despite the setback... Yes, a lone Hero is more than a match for a whole faceless army in this universe..."], ["PC", "susp", "Well, what are you talking about?"], ["RM", "smile", "Hm? Oh, nevermind. I'm just thinking aloud. You'd best get back to your own business, Mardek."]], [["PC", "susp", "Hey Rohoph... What ARE you, anyway?"], ["RM", "susp", "I thought we'd been over this before? I am a Healer, an 'angel'."], ["PC", "deep", "Well, that doesn't tell me a lot... Can you tell me more about you angels?"], ["RM", "blah", "Sigh... I suppose we'll be stuck together for a while, so it's best to lighten the darkness of your ignorance early to prevent awkward questions at inconvenient times..."], ["RM", "smile", "I am of a race called the Annunaki. We hail from... another planet... called Anshar. Do you comprehend this, Mardek? Did you know that Belfan is not the only world in the universe? There are many others, each with life of their own. Some with no life at all."], ["PC", "grin", "Well, I know now!"], ["RM", "norm", "Hm, yes. We annunaki are the most advanced race in this region of space, both magically and technologically. DESPITE what the aruans might think. Hmph."], ["RM", "norm", "We are peacekeepers, traditionally, and our society is highly ordered. We feel that more primitive races can benefit from the order we keep, so we tend to educate any new races that we meet about our values, our morals, our ways, gradually accepting them into our own society."], ["RM", "susp", "However, we must wait for races to reach a certain level of development naturally before interfering; it's all part of our wonderful system of rules and protocols. This is to ensure that we don't let a bunch of savage barbarians into space, for the same reason you'd not want to give a child a sword."], ["PC", "sad", "We were never allowed swords when we were little, but I always thought we'd use them properly! We weren't as stupid as the adults seemed to think!"], ["RM", "smile", "Ah, and that's the thing. You didn't THINK you were that stupid, but that's because you were too stupid to realise that you were. You see? Looking back, do you realise now that you've matured a lot since then?"], ["PC", "ngrin", "Well..."], ["RM", "blah", "I should have thought more before asking that."], ["RM", "norm", "Anyway, we have contacted and guided Belfan in the past, but our time to officially integrate it into our society is centuries away. Your planet has a long way to go yet before it is worthy."], ["RM", "blah", "Now, I tire of this idle banter. You know more about me now, and this is good, for you at least, but can we get back to work? I'd prefer to think to myself than talk, if you don't mind."]], [["PC", "susp", "So if your planet is so great, Rohoph, why are you here?"], ["RM", "blah", "It was an accident. Believe me when I say I'd rather not be here at all. My presence here, and my current dependent state, bring me much shame."], ["RM", "susp", "But it seems that your planet has a particularly unusual gravitational field, for some reason unbeknownst to me. The craft I was in was a frail one, and couldn't fight against the pull, so I crashed here. Then I died, and you found me, and here I am."], ["PC", "susp", "Well, that still doesn't tell me why you were flying around here in the first place rather than sitting at home reading stories around a fire with your friends..."], ["RM", "blah", "Ah yes, I did fail to elaborate on that, didn't I? Sigh. I suppose I'll indulge your HUMAN curiosity; you've earned that much from me."], ["RM", "norm", "The annunaki used to be a great race, run by a high council, the Governance de Magi, of which I was a member. I and the others were overseers of our entire world... and it ran like clockwork. A society built on beautiful Order."], ["RM", "angr", "But then that Order became Chaos when a strange meteorite fell from the sky one day... It was brought to us, the council, to decide what to do with it, and as soon as they saw it, my follow governors became enraptured by it for some reason."], ["RM", "angr", "It corrupted their minds. The friends I once knew and loved gradually died, and were replaced by monsters inhabiting their shells. Perhaps not literally - they didn't LOOK any different - but it was still the same."], ["RM", "susp", "They changed their views, their policies, and became more brutal, more merciless. They became tyrants. And it seemed they were unaware that they were changing at all."], ["RM", "deep", "I had to do something, to return Anshar to Order and to Light, so I tried destroying the meteorite - the 'Violet Crystal', as we came to call it - but they caught me, and sentenced me to be executed."], ["RM", "blah", "I escaped. I fled, to consider my next move. And here I am now, years later, and no closer to my goal."], ["PC", "grin", "Well, I'd love to help you destroy the crystal thingy!"], ["RM", "susp", "Indeed, and you will be helping me too, when you are ready."], ["RM", "norm", "But that day is not yet here. Come along now; we have more immediate matters of concern to attend to."]], [["RM", "blah", "Yes, Mardek? Do you want to hear more of my terrific backstory?"], ["PC", "grin", "Well, yes please!"], ["RM", "susp", "What would you like to know?"], ["PC", "grin", "Well, tell me more about this Government of Mage's Eye that you were in! It sounds exciting, like some secret club!"], ["RM", "blah", "Sigh... As you wish. If only to rid you of your wearisome ignorance on the matter."], ["RM", "norm", "The -Governance de Magi- was not merely a 'secret club'; we were the rulers of Anshar, and the most powerful beings on the planet, too, in terms of magical ability as well as authority. Not to brag, of course."], ["RM", "blah", "You see, we annunaki were a very magical society. We focused on teaching and learning magic in very organised ways, rather than this irritating 'let's see what I pick up over the years!' approach to thaumaturgic accumulation that you people on THIS world seem to follow."], ["RM", "norm", "We had several prestigious schools, each devoted to a separate Element of magical study. I went to the Light one, for example, which taught me how to be a Healer."], ["RM", "norm", "The system is very hierarchical, based on intelligence and talent. The more skilled and experienced students teach the less skilled, and so on; there are many 'levels' of skill in each school, which we each ascend if we are competent enough."], ["PC", "susp", "Like the Knights and Guards and stuff in the Royal Guard?"], ["RM", "susp", "Yes, sort of, though none of us have actual labelled ranks; we are each individuals, rather than mere members of a specific class. We are not teachers or students, but both simultaneously."], ["RM", "norm", "The wisest, most powerful member of each school is chosen to represent that element in the Governance de Magi. This gives us seven intelligent, highly qualified members, of all of the elements that annunaki can commonly be: fire, water, air, earth, light, dark and aether."], ["RM", "susp", "We feel it is best that each 'type' of citizen gets a say in the way the world is run, so that there is no tyranny or prejudice towards any one group. Everyone has equal rights, and generally we can all come to an agreement that is satisfactory for us all."], ["RM", "angr", "(Though at times not as adequate as some of us may prefer... The road to Hell is paved with 'compromises'... bah.)"], ["PC", "susp", "What?"], ["RM", "blah", "Never mind. As I was saying..."], ["RM", "susp", "This USED to be the case, and it was wonderful. Utopian, I think. Or as close as any race can reasonably approach, at least."], ["RM", "angr", "Until that damned -Violet Crystal- ruined it all..."], ["RM", "blah", "Since then, the dark governor, Anu, has taken over as a self-proclaimed 'Master' of the GdM, as he best represents the changing minds of the others, and... ugh, it pains me to think of all this."], ["RM", "blah", "And on that note, yet again I am tired of talking of this right now. It brings back unpleasant memories. So if it's all the same to you, can we get a move on now?"]], [["RM", "susp", "Mardek. I've been noticing recently how you seem to be gathering quite a few allies together, and that you seem to be getting emotionally attached to them. I would recommend against this."], ["RM", "deep", "Keep a working relationship with them, that's fine, and will help us greatly on our mission in the end, but just do not become -emotionally- attached to them."], ["RM", "susp", "That just leaves open the possibility of emotional blackmail by your enemies. I am sure you have heard tales of a great Hero surrendering to the villain some kind of Doomsday Device that he stole, or meant to destroy, just to save the petty, insignificant life of his friend who was held hostage..."], ["RM", "susp", "I want to avoid such situations if at all possible. We gain strength from remaining stoic in relationships with others, not from dependence or irrational emotional attachments."], ["RM", "norm", "This is just my advice. Take it or leave it, but I'm telling you, you'll regret it if you think I'm wrong."]], [["RM", "smile", "We are accumulating great power these days, Mardek, we truly are. You're surely one of the finest warriors on this world now, and though you are still fragile compared to the majority of my kin, I can see their defeat at your hands becoming a more and more realistic scenario."], ["RM", "deep", "I feel that our time on this world will be coming to an end soon. You must prepare yourself, Mardek, for we are the only ones who can save Anshar."], ["PC", "sad", "Well, I want to stay here..."], ["RM", "angr", "THEY don't CARE what you WANT. What you want from life and what you GET are entirely different. I WANTED to stay on Anshar, but now I am here. But not for much longer..."], ["RM", "angr", "The other governors threaten the whole galaxy with their evil, if left to their own devices. If we stay here, they'll take away your life like they took away mine. Going after them may still rob you of many desires from life, but it is not a matter of choice."], ["RM", "smile", "We will defeat them, and we will return Anshar to Light, and to Order. This is your fate and mine, Mardek. Destiny awaits."]]];
var bslevels = [5, 9, 12, 15, 23, 30];
var bsch = [2, 2, 2, 3, 3, 3];
if (!(BackstoryCheck("Mardek") === false)) {
_root.playMusic("Rohoph");
}
gotoAndStop ("process");
Symbol 595 MovieClip [c_ALLIES] Frame 8
MyName = "Deugan";
toSay = [["Deugan", "norm", "Hm? Oh, I don't really have anything to talk about right now, sorry."]];
if (GameData.CHAPTER == 1) {
toSay = [(GameData.plotVars.ROHOPH ? (["Deugan", "sad", "Are you alright, Mardek? I hope you are..."]) : (["Deugan", "smile", (GameData.plotVars.SUNSET ? "Let's go home, Mardek." : "We're adventuring, Mardek!")]))];
} else if ((_root.area == "goznor") || (_root.area.substr(0, 3) == "gz_")) {
if (GameData.plotVars.ZOMBIES == "GOZNOR") {
toSay = [["Deugan", "shok", "Oh no! This is really bad! The walking dead all over our lovely home town!"], ["Deugan", "deep", "At least it looks like everyone's locked safely in their houses..."]];
} else {
toSay = [["Deugan", "smile", "It's always nice to be home, eh, mate? No matter how far we adventure away from it, it'll always have this pleasant feeling of familiarity for me, and I think I'll always be glad to come back to rest every so often."], ["PC", "grin", "Well, me too!"], ["Deugan", "smile", "Let's make a point, then, of coming back after every mission. I'm sure our parents would appreciate it."]];
}
} else if ((_root.area == "canonia") || (_root.area.substr(0, 3) == "cn_")) {
if (GameData.plotVars.ZOMBIES == "CANONIA") {
toSay = [["Deugan", "shok", "Zombies...!! We've got to help, Mardek!"]];
} else {
toSay = [["Deugan", "deep", "This place has such a different FEEL to Goznor. It seems like it's sunset or something, even though it's not; everything's just a little darker. Sleepier. Quieter."], ["Deugan", "smile", "I think I rather like it."]];
}
} else if ((_root.area == "trilobiteville") || (_root.area.substr(0, 3) == "tv_")) {
toSay = [["Deugan", "grin", "Ooh, there's a VILLAGE down here! How weird! And exciting and stuff too!"]];
} else {
toSay = null;
if (_root.dungeon) {
switch (_root.dungeon) {
case "GoznorSewer" :
toSay = [["Deugan", "susp", "This place doesn't half reek, eh Mardek? I don't remember it smelling this bad when we were little." + ((GameData.plotVars.ZOMBIES == "GOZNOR") ? " Must be the zombies, I s'pose." : "")]];
break;
case "GemMine" :
if (GameData.plotVars.BRIEFING < 4) {
toSay = [["Deugan", "grin", "C'mon, mate! No time for chatting. We've got to sort out this bandit problem quickly, if we want to become Guards. A good Guard does his job efficiently, right? That's what Jacques taught us."]];
} else {
toSay = [["Deugan", "smile", "I never really noticed back when we were in here before just how beautiful these crystals are..."]];
}
break;
case "LakeQur" :
toSay = [["Deugan", "shok", "We're... underwater... Walking on the bottom of a lake, yet we can breathe. We never even came up with this as an idea back when we used to write our own adventures! Truly, truth is stranger than fiction can ever be!"]];
break;
case "CanoniaWoods" :
toSay = [["Deugan", "blah", "Sorry, but can we hurry up in here? There are these strange burr things that keep getting caught on my pants, and some kind of pollen floating around in the air that's irritating my aah-... aah-..."], ["Deugan", "hurt", "ACHOO!!"], ["Deugan", "ngrin", "Sorry."]];
break;
case "TaintedGrotto" :
toSay = [["Deugan", "deep", "Urp... The air in here is making me nauseous. How about you, mate?"], ["PC", "deep", "Well, I think I know what you mean..."], ["Deugan", "deep", "I'll be glad to be out of here, that's for sure."], ["Deugan", "sour", "Still... Good adventurers must be hardy! Good Guards, too. I'll just try to ignore it."]];
break;
case "Catacombs" :
toSay = [["Deugan", "susp", "I don't feel comfortable being around so many... DEAD people... It's really creepy. Why do all these dungeons that we go into have to be objectionable in some way or another?"], ["Deugan", "smile", "Still, it's so exciting going to all these places that most people will never set foot in!"]];
break;
case "MoricSaucer" :
toSay = [["Deugan", "shok", "This place is so... I don't even know what to think of it! It seems to be made of *metal*, of all things, but like some big floating building? There's so much that I don't understand, but crave to!"], ["Deugan", "deep", "I'd love to thoroughly explore this place, every nook and cranny, and try to understand everything about it. But we've got to hurry, don't we? Aww..."]];
break;
case "TrilobiteCave" :
toSay = [["Deugan", "smile", "This reminds me of the times we found those fossils in the rocks of caves, Mardek. Oh, the endless speculation we had about what the creatures must have looked like in life!"]];
}
}
if (toSay == null) {
toSay = [["Deugan", "norm", "Let's go, Mardek."]];
}
}
var backstory = [[[MyName, "grin", "Hey, Mardek! We're still alive! Isn't that great?!"], ["PC", "susp", "Well, uh, yes? I suppose?"], [MyName, "deep", "I know it's a weird thing to say, but it's true, and it's sort of odd that it's true. I mean, I shouldn't doubt our abilities or anything, but if you think about it, we're doing what would kill so many ordinary chaps. Yet we're still alive."], [MyName, "smile", "It's very promising! Maybe we are cut out to be Heroes after all! That Guard training really paid off! Now, let's aspire to be Knights, eh, old friend? Together! We can do it! We've come this far! And other cliches to that effect!"]], [[MyName, "susp", "Hmm... You do want to become a Knight someday, don't you?"], ["PC", "grin", "Well, of course I do!"], [MyName, "susp", "Why?"], ["PC", "deep", "Well, uh... we, uh, always wanted to be Heroes? It'll allow us to be those?"], [MyName, "deep", "I see... I ask because, uh... well, I'm just wondering if it's something you really WANT."], [MyName, "norm", "I've always had this deep passion, this drive, to become a hero to help people, to make my life useful rather than just wasting it entertaining myself selfishly, but you've always been so much more... carefree than I."], [MyName, "deep", "I also sense that a lot of the time, you've just done things - like our games as Adventurers when we were little - just because you... well, you follow. I'm driven, and I do it, and you just do it because I am doing."], [MyName, "smile", "Don't think I'm criticising you though, mate. I'm just... concerned. I mean, we're in deep now, but are you willing to go all the way? I've had my heart set on this all my life, and I'm eager for it to BECOME my life, but are you sure you wouldn't just feel... held back? Imprisoned? Something like that?"], ["PC", "grin", "Well, uh... I don't mind! Helping people will be fun, and Knights get shiny armour! I'll be okay."], [MyName, "deep", "I hope so, mate, I really do... Even if our reasons aren't exactly identical, I'd at least hope that we're both really passionate about this. We can't afford to let people down when our attention runs out..."], [MyName, "smile", "Anyway, I might be getting a bit too deep, eh? Let's just carry on as we were!"]], [[MyName, "deep", "You know, Mardek, there's something, uh... Something that I've been meaning to tell you for basically all my life... Or since as long as I can remember, anyway."], [MyName, "norm", "I feel that since we're on this journey together now, you have a right to know. It's, uh, nothing bad or anything; just a bit... well, it's something I try to ignore, anyway. I don't want you thinking it influences me utterly...! Uh!"], ["PC", "susp", "Well, uh, what is it...?"], [MyName, "deep", "I'm... jealous of you."], ["PC", "susp", "Jealous? Why?"], [MyName, "deep", "Oh, loads of reasons... Silly, petty reasons, mostly. Uh, it's not really worth mentioning, actually, but I'll try to explain it anyway since I said I would."], [MyName, "deep", "Your dad, Enki... He's a great Adventurer. He always used to be this great, legendary figure in my mind, he radiated awe... I always wanted to be an Adventurer, like him. But my dad? A mere shopkeeper. He didn't inspire me at all. You have the blood of legends in your veins, I just... well."], [MyName, "deep", "And you've just sort of... always found things easier than I have. I may not let it show, but I worry. A lot. About everything. I pretend I'm not, but I do. But you... you don't look like you're covering anything up, or pretending. You just don't seem to worry at all. You're so carefree, and I envy that..."], [MyName, "deep", "You just have this natural confidence, whereas mine's a mask that's a chore to wear... A lot of planning and concentration goes into keeping up what you do without thought."], [MyName, "norm", "Everyone's always liked you more too, for some reason. They always talked to you when we were together, rather than me, and you got along with them too, all friendly-like, whereas they seemed ill at ease around me. 'Too intense', I am, I've heard people say. Whatever that even means."], [MyName, "deep", "I think things just... come easier to you, mate. Like you've been dealt a better hand, your 'Luck' stat is higher, that kind of thing. And I'm jealous of that."], [MyName, "smile", "So there. I said it. I said it wasn't worth mentioning. So, uh... don't worry about it. Really. Don't. Forget I even said anything, even. I don't want you worried; it'd ruin what I'm jealous of, after all!"]]];
var bslevels = [5, 9, 12];
var bsch = [2, 2, 2];
BackstoryCheck(MyName);
gotoAndStop ("process");
Symbol 595 MovieClip [c_ALLIES] Frame 22
if (toSay.length == 0) {
if (_root.currentMusic != oldMusic) {
_root.playMusic(oldMusic);
}
END();
} else {
var s = toSay.shift();
Say(s[0], s[1], s[2]);
}
Symbol 595 MovieClip [c_ALLIES] Frame 23
prevFrame();
Symbol 596 MovieClip [c_blabber] Frame 1
nextFrame();
Symbol 596 MovieClip [c_blabber] Frame 2
Say("", "grin", "Hey babeh. Nice boobs. Can I touch 'em?");
Symbol 596 MovieClip [c_blabber] Frame 3
Say("Woman", "grin", "Oh, you're such a charmer!");
Symbol 596 MovieClip [c_blabber] Frame 4
END();
Symbol 597 MovieClip [c_derek] Frame 1
if (GameData.CHAPTER == 3) {
gotoAndStop ("ch3");
} else {
nextFrame();
}
Symbol 597 MovieClip [c_derek] Frame 2
Say("", "smile", "Hello there, son. Out on an adventure again today, are you?");
Symbol 597 MovieClip [c_derek] Frame 3
Say("Deugan", "norm", "Yes, dad... I saw this star fall from the sky, so me and Mardek are going to look for it!");
Symbol 597 MovieClip [c_derek] Frame 4
Say("", "norm", "A star, you say? That's the thing that other people saw too, they say... Everyone's talking about it.");
Symbol 597 MovieClip [c_derek] Frame 5
Say("", "grin", "If you find it, boys, you'll have to tell me all about it!");
Symbol 597 MovieClip [c_derek] Frame 6
Say("", "norm", "As it is though, I can't come and see for myself; I have a shop to run! And speaking of which, I have customers to probably attend to! So shoo, you two!");
Symbol 597 MovieClip [c_derek] Frame 7
Say("Deugan", "blah", "But dad, you barely EVER have customers. Nobody in this little tiny village wants to buy weapons... Except us, but we're too young.");
Symbol 597 MovieClip [c_derek] Frame 8
Say("", "grin", "But someone COULD come in at any moment! A weary and battle-hardened Adventurer, just stopping by on one of his mighty quests! And he'll want good weapons, and fast! And I'll be here to supply them! And he'll tell his friends! And business will be booming in no time!");
Symbol 597 MovieClip [c_derek] Frame 9
Say("Deugan", "blah", "But dad, the weapons you sell here probably aren't very impressive to big adventurers like Social Fox... And adventurers don't usually have many friends.");
Symbol 597 MovieClip [c_derek] Frame 10
Say("", "grin", "Sure they do! They have those... wossmacallits... yes, they have those Celebrations following them around all the time! There's always joy and festivities following close behind them all the time, they say! And such festivities are always full of drunk people, and they'll buy ANYTHING!");
Symbol 597 MovieClip [c_derek] Frame 11
Say("Deugan", "norm", "Well, maybe you're right... I don't know. Uh, good luck anyway...! Now, me and Mardek have to go and, uh... go on an adventure. Yeh. So I'll be back later! Bye dad!");
Symbol 597 MovieClip [c_derek] Frame 12
Say("", "smile", "Okay boys, have fun!");
Symbol 597 MovieClip [c_derek] Frame 13
END();
Symbol 597 MovieClip [c_derek] Frame 15
Say("", "deep", "Oh, hello there, Mardek... Life just hasn't been the same since Deugan passed away. I've closed the shop; I just can't sell killing tools anymore. I don't want them to be used to kill anyone. I don't want anyone to have to be put through loss like this.");
Symbol 597 MovieClip [c_derek] Frame 16
END();
Symbol 598 MovieClip [c_doors] Frame 1
gotoAndStop(_root.area);
Symbol 598 MovieClip [c_doors] Frame 2
Say("RM", "norm", "The King - or my old friend Qualna, rather - awaits through this door. There may be $no turning back past this point%. Make sure we've done everything we need to before confronting him.");
Symbol 598 MovieClip [c_doors] Frame 3
options = [{em:"deep", goto:"gc1", T:"Well, I'm ready!"}, {em:"susp", goto:"end", T:"I have stuff to do first!"}];
_root.conv.as.ShowOptions(options);
Symbol 598 MovieClip [c_doors] Frame 5
END();
Symbol 598 MovieClip [c_doors] Frame 8
_root.cont["Throne Room"].DOOR.lock = null;
_root.cont["Throne Room"].DOOR.conv = null;
_root.playSFX("unlock");
END();
Symbol 599 MovieClip [c_GdM] Frame 1
function OnFinish(ch) {
_root.fader.onMaxFade = function () {
_root.playMusic("none");
_root.fader.quieten = null;
_root.gotoAndStop("end_chapter");
_root.FadeOut(10);
_root.CUTSCENE1.removeMovieClip();
};
_root.FadeIn(100);
_root.fader.quieten = true;
_root.cont._visible = false;
END();
}
gotoAndStop("CHAPTER" + GameData.CHAPTER);
Symbol 599 MovieClip [c_GdM] Frame 2
Say("Balthazar", "blah", "Rohoph's escaped, you know. He flew away in one of the gallopers, myes. YALORT knows where he went.");
Symbol 599 MovieClip [c_GdM] Frame 3
Say("Gaspar", "angr", "HE NEEDS TO SANGUINARY WELL BE BURNED!! LET'S BURN HIM!!! BURN HIS HEMIC FACE OFF AND ALSO HIS PRATTIN' ROBE! HIS WHITE ROBE!! HIS DETRITAL WHITEY ROBE ROBE!! IT MUST BURN!! BUUURRRNNN!!!");
Symbol 599 MovieClip [c_GdM] Frame 4
Say("Melchior", "dreamy", "I like white. I find it goes well with yellow, but only if you want it to. If you don't believe it does, then it doesn't. Just like bad smells. You only think they're bad if you're told they're bad. I don't like bad smells.");
Symbol 599 MovieClip [c_GdM] Frame 5
Say("Qualna", "susp", "Ignoring how these caterpillars uttered what they're trying to say, I do agree; Rohoph needs to be perish'd. He cannot be left to roam loose with the knowledge he possesses! If he rallies enough of a resistance - which it seems he's trying to do - then, why sirs, we're well and truly buggered twice and whenceways till sundown, sunup and then some!");
Symbol 599 MovieClip [c_GdM] Frame 6
Say("Moric", "deep", "Yes, kill him. Kill the traitor. Let his blood run free, his flesh turn cold, his motor functions degrade and cease and his entire being become uncertain, his body a shell, his soul a wanderer. Yeeess, ooohh, I do so want to see his flesh cold and crawling with a million maggots, slowly chewing, chewing, chewing on the rot, yeeess, yeeeeesss...");
Symbol 599 MovieClip [c_GdM] Frame 7
Say("Gaspar", "angr", "MORIC, YOU'RE A SMELTIN' CREEPY MAN!! AND YET I THINK I TOO MIGHT MONGIN' WELL DELIGHT IN THE SIGHT OF THE FRIGHT OF THE WHITE BLIGHT AS I FIGHT AND SMITE HIM FROM THIS PLANE!! BLOODYIN'.");
Symbol 599 MovieClip [c_GdM] Frame 8
Say("Qualna", "grin", "Why Gaspar, that's awfully poetic for you! I'm amazed!");
Symbol 599 MovieClip [c_GdM] Frame 9
Say("Gaspar", "glare", "I'LL HARRY WELL SHOW *YOU* A POETIC MAZE!! I'LL TRAP YOU IN IT AND SCREAM TOFFIN' BLOOD-CURDLIN' SCREAMS AS YOU TRY IN VAIN TO EVADE THE PAIN YOU'D BE SURE TO GAIN!! YOU'D SLOWLY GO INSANE, AND I'D JUST LAUGH!! LAUGH!!! MOGGIN' LAUGH TRIPIN' HARD!!");
Symbol 599 MovieClip [c_GdM] Frame 10
Say("Balthazar", "susp", "What ARE you talking about? Shut up anyway, it's irrelevant. But we DO need to address the Rohoph problem.");
Symbol 599 MovieClip [c_GdM] Frame 11
Say("Balthazar", "norm", "Master, what think you? We should do away with him, myes? But how do we go about it?");
Symbol 599 MovieClip [c_GdM] Frame 12
Say("Anu", "glare", "Yes, underlings. If the deserter, the traitor, Rohoph, is left to run free, though he alone could pose no serious threat to us, he could gain the alliance of others, which he's frustratingly good at doing.");
Symbol 599 MovieClip [c_GdM] Frame 13
Say("Anu", "norm", "We have to do away with him. And quickly. He's the only one who knows, so with him gone we'll be safe as long as we make nothing clear until it's too late for them.");
Symbol 599 MovieClip [c_GdM] Frame 14
Say("Balthazar", "blah", "One of us should go to stop him. But who? Any volunteers?");
Symbol 599 MovieClip [c_GdM] Frame 15
Say("Melchior", "dreamy", "I like volunteers. They taste like cherries, but only if that's what you believe. If you prefer bananas, love and luck always taste a bit bananay. 'Bananay'. That's a weird word to say. 'Bananay'. 'Bananananany'.");
Symbol 599 MovieClip [c_GdM] Frame 16
Say("Gaspar", "angr", "I'M NOT CHARLIE WELL GOIN', 'CAUSE I BOGGIN' WELL CAN'T BE ARSED!!");
Symbol 599 MovieClip [c_GdM] Frame 17
Say("Moric", "deep", "I'll go. Yeeess, if Rohoph is going to die, I would derive much perverse satisfaction from seeing the fear on his cyclopic face before he meets the Evereaper... Yeeeess, I'd drink up his shock, his horror, and it would FUEL me! It's what I live my life for, to see others end theirs!");
Symbol 599 MovieClip [c_GdM] Frame 18
Say("Moric", "grin", "I can't have enough ends. So I'll take my chances to see this one. I hope it's slow and painful; the elation I get from such kills is unmatched by anything, yeeeess... Just thinking about it makes me... oohhh...");
Symbol 599 MovieClip [c_GdM] Frame 19
Say("Anu", "blah", "Yes. You're creepy. I can't say we'll miss you while you're gone, so it'd be best if you did go. We all win that way.");
Symbol 599 MovieClip [c_GdM] Frame 20
Say("Anu", "norm", "Take a battleship and follow Rohoph's trail. It should be easy enough to detect where he went and to deal with him. Now go.");
Symbol 599 MovieClip [c_GdM] Frame 21
Say("Moric", "norm", "Yeeess, my Master...");
Symbol 599 MovieClip [c_GdM] Frame 22
Say("Anu", "glare", "When Rohoph's gone and dealt with, there'll be nothing to stop us... No... Soon, THE GALAXY WILL BE OURS!!! MWAHAHAHAHAH!!!!");
Symbol 599 MovieClip [c_GdM] Frame 23
Say("Melchior", "susp", "Don't you mean *ours*, sir? We ARE working on this together. There's not just you.");
Symbol 599 MovieClip [c_GdM] Frame 24
Say("Anu", "blah", "Yes, that's what I SAID. Weren't you listening?");
Symbol 599 MovieClip [c_GdM] Frame 25
Say("Melchior", "grin", "What? Eh? No, not at all. I had a nice pretty tune in my head. I was listening to that. It went like 'naaaah naaaah nah-nah-naaaah, naaaah naaaah naaaah naaahh...'");
Symbol 599 MovieClip [c_GdM] Frame 26
Say("Anu", "blah", "Sigh...");
Symbol 599 MovieClip [c_GdM] Frame 27
OnFinish(2);
Symbol 599 MovieClip [c_GdM] Frame 30
Say("Gaspar", "angr", "CRUMPETS. MORIC'S DEAD. I KNEW WE SHOULDN'T'VE GROPIN' WELL TRUSTED THAT LITTLE BONSOGGETTIN' MOGGABOUT TO GET THE JOB DONE!! THAT RATCHETIN' RESISTANCE IS LOOKIN' LIKE A CONFLABBLING REALITY WE'LL HAVE TO DEAL WITH SOON AT THIS FATIN' RATE!!");
Symbol 599 MovieClip [c_GdM] Frame 31
Say("Balthazar", "deep", "Myes, he did seem to do rather an atrociously terrible, terrible job. Not only did he forget about the mission initially, but then he went and tried to betray us, too. What nerve. It's as if he didn't even know we were constantly monitoring his behaviour.");
Symbol 599 MovieClip [c_GdM] Frame 32
Say("Melchior", "dreamy", "I liked Moric... He was creepy. And green and black. Green and black contrast sooo much and made him look sooo creepy! Moric said 'yeees' all the time. I liked that. It made me laugh. But now he has died. Oh well. You can't win all of them.");
Symbol 599 MovieClip [c_GdM] Frame 33
Say("Qualna", "grin", "*I* say that he just wasn't skilled and talented enough to do the job! *I* think that yours truly could come up with a much, MUCH better solution to the Rohoph problem than that old dead MORIC! HIS approach was too ham-fisted and dense; what this requires is subtlety, and I can do just that!");
Symbol 599 MovieClip [c_GdM] Frame 34
Say("Gaspar", "angr", "WHAT, WITH YOUR ERUDITIN' TRILOBITIN' *CLAIRVOYANCE* AND *POSSESSION* AND *ACTING* SKILLS, YOU TARTISH SMOKIN' *DIVINER*?");
Symbol 599 MovieClip [c_GdM] Frame 35
Say("Qualna", "blah", "Ohyes. They're good skills, thankyouverymuch. They're leagues more elegant than *your* standard 'go in and burn everything' approach, O 'Firestorm'.");
Symbol 599 MovieClip [c_GdM] Frame 36
Say("Gaspar", "angr", "WELL IF YOU LICIN' WELL THINK YER TOADIN' CAPABLE ENOUGH, WHY DON'T *YOU* ROACHIN' WELL GO AND... DO... THING? KILL... THAT GUY? CROAKIN' WELL... DIE HIM... TO DEATH. GRASPIN'. THAT.");
Symbol 599 MovieClip [c_GdM] Frame 37
Say("Balthazar", "susp", "Myes, Qualna. You can talk the talk, but can you... kill... that guy? Hmmmm?");
Symbol 599 MovieClip [c_GdM] Frame 38
Say("Melchior", "deep", "I'd go, but I need to wash my hair.");
Symbol 599 MovieClip [c_GdM] Frame 39
Say("Gaspar", "angr", "YOU DON'T FOOLIN' WELL *HAVE* ANY PRUNIN' HAIR, YOU LAGABOUTIN' SPOUTIN' POUTIN' TROUT!");
Symbol 599 MovieClip [c_GdM] Frame 40
Say("Melchior", "grin", "So it will take a very long time to wash it.");
Symbol 599 MovieClip [c_GdM] Frame 41
Say("Melchior", "norm", "You see, mathematically, since I have no hair, and dividing by zero results in infinity, it shall take an infinite amount of time to wash my hair.");
Symbol 599 MovieClip [c_GdM] Frame 42
Say("Balthazar", "blah", ". . .");
Symbol 599 MovieClip [c_GdM] Frame 43
Say("Gaspar", "susp", "...HOW IS THIS BEASTIN' WELL RELEVANT?!?!");
Symbol 599 MovieClip [c_GdM] Frame 44
Say("Melchior", "dreamy", "I like relevance. I find it goes best with a side dish of scones and onions. Onions have fresh, fresh skin. Many layers of it. They're also native to a world I've never been to, most likely, so talking of them as the alien being I am is rather unrealistic.");
Symbol 599 MovieClip [c_GdM] Frame 45
Say("Qualna", "grin", "...Soooo... Ahyes! *I* can do a much better job than that thermadore of a biscuit Moric, by Jove! I bite my thumb at him! And et ceterum!");
Symbol 599 MovieClip [c_GdM] Frame 46
Say("Qualna", "susp", "I'm, er... I'll be off now, then?");
Symbol 599 MovieClip [c_GdM] Frame 47
Say("Anu", "blah", "Don't die. We have lost one of our ranks already. We can afford to lose no more.");
Symbol 599 MovieClip [c_GdM] Frame 48
Say("Qualna", "blah", "Sure, okay. I mean, if you don't *want* me to... I'll not die! But I'm doing this for *you*, you know, so you had better remember it gratefully!");
Symbol 599 MovieClip [c_GdM] Frame 49
Say("Anu", "blah", "Sigh...");
Symbol 599 MovieClip [c_GdM] Frame 50
Say("Balthazar", "deep", "Hm... We completely failed to mention that 'our plans are coming along nicely'... It has been several years since before, so surely our plans would have progressed somewhat, myes? And they have. They have been coming along rather nicely.");
Symbol 599 MovieClip [c_GdM] Frame 51
Say("Gaspar", "angr", "WHAT ARE YOU ARSIN' WELL PRATTLIN' ON ABOUT, MAN? 'BEFORE'? WE TARTIN' WELL TALK EVERY DAY! WE WERE JUST HALKIN' WELL TALKIN' ABOUT OUR PLANS EARLIER! AND HOW THEY'VE WARTIN' WELL BEEN COMIN' ALONG DICELY NICELY!");
Symbol 599 MovieClip [c_GdM] Frame 52
Say("Balthazar", "norm", "Myes, but THEY didn't know that! We have to consider THEM! And yet we must also be mysterious, myes, myes...");
Symbol 599 MovieClip [c_GdM] Frame 53
Say("Anu", "blah", "Sigh... Let's just fade out now with an evil laugh. MWAHAHAHAHAHA, etc.");
Symbol 599 MovieClip [c_GdM] Frame 54
OnFinish(3);
Symbol 599 MovieClip [c_GdM] Frame 57
Say("Balthazar", "deep", "Oh, Qualna. Your heart was in the right place - below your squandrax and to the side of your pippopos gland - but you should have realised that the white one is beyond reasoning now. He won't listen to anyone, mno.");
Symbol 599 MovieClip [c_GdM] Frame 58
Say("Gaspar", "blah", "SEE?! SEE!! WE BEDWETTLINGLY -TOLD- HIM TO KILL THE DOGGLING WHITE PLASTROID, BUT DID HE LISTEN?! THE TENT HE DID! HE TRIED TO USE HIS BRUNNY -WORDS- TO SOLVE THE PROBLEM! HE ALMOST BROUGHT ROHOPH BACK HERE! I DON'T WANT THAT SMOGGLING CRONTON HERE! PFAH! I'M GLAD QUALNA'S DEAD! HE WAS BRINGING US DOWN.");
Symbol 599 MovieClip [c_GdM] Frame 59
Say("Melchior", "dreamy", "I liked Qualna. He had one eye. I liked that about him because I have one eye too. So does everyone in this chamber. We're like one big happy family! He also solved his problems with words. Words which weren't things like 'DIE!!' or 'I have a small peanut and I'm not afraid to use it!!'");
Symbol 599 MovieClip [c_GdM] Frame 60
Say("Balthazar", "susp", "You have a small -what-?");
Symbol 599 MovieClip [c_GdM] Frame 61
Say("Melchior", "norm", "I'm a hermaphrodite.");
Symbol 599 MovieClip [c_GdM] Frame 62
Say("Gaspar", "angr", "WE SOGGIN' WELL ALL ARE, YOU TRUMPET.");
Symbol 599 MovieClip [c_GdM] Frame 63
Say("Melchior", "norm", "That's okay. What's for tea?");
Symbol 599 MovieClip [c_GdM] Frame 64
Say("Anu", "blah", "We must address the issue at hand here. Gaspar, you said that if Qualna's peaceful approach failed, you would handle the problem. I don't know what you've got planned, but you have permission.");
Symbol 599 MovieClip [c_GdM] Frame 65
Say("Anu", "blah", "Rohoph is really becoming a threat. The number of ragtag adventurers he's accumulating, who put aside their differences to work for a common cause, is alarming; he already has enough to defeat us all if they level up enough.");
Symbol 599 MovieClip [c_GdM] Frame 66
Say("Gaspar", "angr", "I'LL SEE TO IT THAT THE ONLY CHEVELLING LEVELLING UP THEY'LL BE DOING WILL BE DONE... DEAD!!! DEADLY. WHILE CORPSES. WHICH IS TO SAY, THEY WON'T BARNEY WELL BE ABLE TO AT ALL!! CRUMBLES.");
Symbol 599 MovieClip [c_GdM] Frame 67
Say("Melchior", "susp", "But what if they all use their Soul Transfer thingy-majigs?");
Symbol 599 MovieClip [c_GdM] Frame 68
Say("Balthazar", "blah", "I keep telling you: humans cannot do that, myes. They are weak and pathetic and they can't even perceive psychic energy waves or electomagnetic radiation.");
Symbol 599 MovieClip [c_GdM] Frame 69
Say("Melchior", "dreamy", "You have to believe, Balthy. You have to believe.");
Symbol 599 MovieClip [c_GdM] Frame 70
Say("Gaspar", "blah", "CAN I GO NOW? I LOOK FORWARD TO BORTRILY BURNING SOME FAT FLATTENED FACES INTO THE COLD, HARD, SHUMBRUSOME GROUND. BWAHA.");
Symbol 599 MovieClip [c_GdM] Frame 71
Say("Anu", "deep", "Yes, yes, begone... Just... do a thorough job of it.");
Symbol 599 MovieClip [c_GdM] Frame 72
Say("Gaspar", "angr", "'THOROUGH' IS MY MIDDLE NAME'S FAVOURITE COLOUR! I'LL DO IT MORE THOROUGHLY THAN YOU'VE EVER HAD THE MISSILING TO CONOMBRIATE!");
Symbol 599 MovieClip [c_GdM] Frame 73
Say("Gaspar", "glare", "WATCH OUT THERE, ROHOPH... YOU WON'T GET AWAY FROM -ME-.");
Symbol 599 MovieClip [c_GdM] Frame 74
OnFinish(4);
Symbol 600 MovieClip [c_healingCrystal] Frame 1
if (TempVars.NO_SAVE) {
gotoAndStop ("nosave");
} else {
nextFrame();
}
Symbol 600 MovieClip [c_healingCrystal] Frame 2
stop();
HEAL();
Say("", "norm", "A soothing light washes over you... Your wounds are healed. Would you like to save?");
Symbol 600 MovieClip [c_healingCrystal] Frame 3
options = [{em:"norm", goto:"save", T:"Save..."}];
if (((((GameData.CHAPTER != 1) && (!_root.__AreaEXTRA.NoSwitch)) && (!GameData.plotVars.NO_SAVE_SWITCH)) && (!GameData.plotVars.MARDEK_ALONE)) && ((!_root.__AreaEXTRA.DREAM) || (HASPLOTITEM("Talisman of ONEIROS")))) {
options.push({em:"norm", goto:"switch", T:"Switch party members..."});
}
if (!_root.__AreaEXTRA.NoStorage) {
options.push({em:"norm", goto:"storage", T:"Item storage..."});
}
options.push({em:"norm", goto:"dont", T:"Exit..."});
_root.conv.as.ShowOptions(options);
Symbol 600 MovieClip [c_healingCrystal] Frame 5
SAVE_MENU();
END();
Symbol 600 MovieClip [c_healingCrystal] Frame 6
END();
Symbol 600 MovieClip [c_healingCrystal] Frame 8
SWITCH_MENU();
END();
Symbol 600 MovieClip [c_healingCrystal] Frame 10
STORAGE_MENU();
END();
Symbol 600 MovieClip [c_healingCrystal] Frame 12
stop();
HEAL();
Say("", "norm", "A soothing light washes over you... However, now is not a good time to save!");
Symbol 600 MovieClip [c_healingCrystal] Frame 13
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 1
if (GameData.plotVars.ROHOPH != null) {
gotoAndStop ("time6");
} else if (_root.area == "goznor") {
gotoAndStop ("time5");
} else if (_root.area == "heroes_den") {
gotoAndStop ("time4");
} else if (_root.area == "DL_area4") {
gotoAndStop((TempVars.DRAGON_SLAIN ? "time3" : "time2"));
} else if (_root.area == "DL_area2") {
gotoAndStop ("tutorial1");
} else {
nextFrame();
}
Symbol 601 MovieClip [c_HeroBabble] Frame 2
Say("PC", "norm", "Well Deugan, this is The Dragon's Lair.");
Symbol 601 MovieClip [c_HeroBabble] Frame 3
Say("Deugan", "grin", "Yes, Mardek, that it is! We have to get to the dragon and slay it to rescue the Princess! Tally-ho!");
GIVEQUEST("HEROES");
Symbol 601 MovieClip [c_HeroBabble] Frame 4
Say("PC", "susp", "What does 'tally-ho' mean?");
Symbol 601 MovieClip [c_HeroBabble] Frame 5
Say("Deugan", "deep", "Uhm... I'm not sure! But I've heard adventurers say it before maybe! It sounds like something they'd say!");
Symbol 601 MovieClip [c_HeroBabble] Frame 6
Say("PC", "grin", "Tally-ho!");
Symbol 601 MovieClip [c_HeroBabble] Frame 7
Say("Deugan", "grin", "Tally-ho! We're adventurers! En guard! Forsooth! Bloody goblins!");
Symbol 601 MovieClip [c_HeroBabble] Frame 8
Say("PC", "grin", "Tally-ho!");
Symbol 601 MovieClip [c_HeroBabble] Frame 9
Say("Deugan", "grin", "Now let's go and save that Princess! Tally-ho!");
Symbol 601 MovieClip [c_HeroBabble] Frame 10
Say("Deugan", "norm", "Oh, but Mardek, just a reminder about things! We can $open the menu with the ENTER key% to check our stats, skills and items! And we can also $open doors and talk to people and stuff with the X key%! Remember these things!");
Symbol 601 MovieClip [c_HeroBabble] Frame 11
Say("Deugan", "norm", "It might be a good idea to $read the Help section of the menu% now if you didn't read the Instructions already!");
Symbol 601 MovieClip [c_HeroBabble] Frame 12
Say("PC", "susp", "...Huh?");
Symbol 601 MovieClip [c_HeroBabble] Frame 13
Say("Deugan", "grin", "Uh, I mean... Tally-ho! Let's go and slay that dragon!");
Symbol 601 MovieClip [c_HeroBabble] Frame 14
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 15
Say("The Dragon", "norm", "HAHAHAH! HEROES! YOU ARE... (Uh... What would a dragon say..?)... YOU ARE PATHETIC MORTALS! I HAVE A PRINCESS! YOU CAN'T HAVE THIS PRINCESS! THIS PRINCESS IS MINE!");
Symbol 601 MovieClip [c_HeroBabble] Frame 16
Say("Deugan", "angr", "We will slay you, mighty The Dragon! For we are great and Mighty Heroes, even mightier than you! Tally-ho forsooth!");
Symbol 601 MovieClip [c_HeroBabble] Frame 17
Say("PC", "grin", "We'll kick your arse dragon!");
Symbol 601 MovieClip [c_HeroBabble] Frame 18
Say("Deugan", "susp", "Do dragons have arses?");
Symbol 601 MovieClip [c_HeroBabble] Frame 19
Say("PC", "grin", "I bet they do!");
Symbol 601 MovieClip [c_HeroBabble] Frame 20
Say("Deugan", "grin", "If they do, then we'll kick it like it's never been kicked before!");
Symbol 601 MovieClip [c_HeroBabble] Frame 21
Say("PC", "grin", "Yeh! With our big swords!");
Symbol 601 MovieClip [c_HeroBabble] Frame 22
Say("Deugan", "angr", "So bring it on, dragon!");
Symbol 601 MovieClip [c_HeroBabble] Frame 23
Say("The Dragon", "norm", "HAHAHAH! YOU WILL NEVER DEFEAT ME!!!");
Symbol 601 MovieClip [c_HeroBabble] Frame 24
GameData.plotVars.NO_BATTLE_MUSIC = false;
BATTLE([["MightyDragon", null, null, null], ["The Dragon", null, null, null], [40, null, null, null], "DRAGON"], "BossBattle");
_root.AfterBattle = function () {
_root.cont["The Dragon"].Talk("c_HeroBabble");
};
TempVars.DRAGON_SLAIN = true;
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 27
Say("The Dragon", "norm", "OH DEAR!! I HAVE BEEN SLAIN!!!");
DONEQUEST("HEROES");
_root.cont["The Dragon"].FadeAway();
Symbol 601 MovieClip [c_HeroBabble] Frame 28
Say("PC", "grin", "Well, we beated the dragon!");
DO_ACTIONS([["SLOWWALK", 0, 4], ["UNFREEZE"]], "Princess", true);
Symbol 601 MovieClip [c_HeroBabble] Frame 29
Say("Princess", "smile", "Oh thank you so much for saving me, mighty heroes!");
Symbol 601 MovieClip [c_HeroBabble] Frame 30
Say("PC", "grin", "Well it was really all my fault.");
Symbol 601 MovieClip [c_HeroBabble] Frame 31
Say("Deugan", "sad", "All your *fault*? Do you mean all your *doing* or something? Because that's not fair! We beat the dragon together...");
Symbol 601 MovieClip [c_HeroBabble] Frame 32
Say("PC", "blah", "Well I still get the princess.");
_root.cont.PC.DrawFrame("s1");
Symbol 601 MovieClip [c_HeroBabble] Frame 33
Say("Deugan", "susp", "You can have her! She's a *giiiirl*! Girls are headlice, I heard! They suck on your wallet and drain out all your money, that's what my dad says!");
Symbol 601 MovieClip [c_HeroBabble] Frame 34
Say("PC", "shok", "Really?!");
Symbol 601 MovieClip [c_HeroBabble] Frame 35
Say("Deugan", "grin", "Yeh, really! My dad told me so it must be true!");
Symbol 601 MovieClip [c_HeroBabble] Frame 36
Say("PC", "smile", "Now that we've beatened the dragon though, now what do we do?");
Symbol 601 MovieClip [c_HeroBabble] Frame 37
_root.PCstats = [_root.GET_PC_STATS("Mardek_Child")];
GameData.RECORDS = {};
GameData.money = 10;
GameData.plotVars.SUNSET = 1;
_root.lastDir = "s";
_root.AreaTrans(["heroes_den", 10, 6]);
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 40
Say("Deugan", "norm", "It's getting late... I suppose we should head home. I bet our parents are worried!");
Symbol 601 MovieClip [c_HeroBabble] Frame 41
Say("PC", "grin", "Okay. Let's go back to Goznor!");
Symbol 601 MovieClip [c_HeroBabble] Frame 42
GameData.visited.goznor = 1;
_root.conv.SPEAKING = _root.cont.Deugan;
JOINPARTY();
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 45
Say("Deugan", "norm", "Well, I'd better get home myself... So bye for now, Mardek! See you tomorrow for some more heroic adventures!");
Symbol 601 MovieClip [c_HeroBabble] Frame 46
EXEUNT_AND_LEAVEPARTY("Deugan");
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 49
Say("Deugan", "norm", "Phew, what a weird thing that was that happened... I need to go home now, so, uh... Bye Mardek. I hope that nothing bad happens to you because of that thing!");
Symbol 601 MovieClip [c_HeroBabble] Frame 50
EXEUNT_AND_LEAVEPARTY("Deugan");
END();
Symbol 601 MovieClip [c_HeroBabble] Frame 52
Say("Deugan", "grin", "Remember, Mardek, with our super-duper Hero Powers, we're practically invincible if we successfully use all our $Reactions% well enough with the $X key right when we attack or get attacked%! But we've got to get the timing right, so let's experiment a bit, and use these $Reactions% to our advantage!");
Symbol 601 MovieClip [c_HeroBabble] Frame 53
Say("Deugan", "blah", "(Apparently I have to mention this or else you'll probably not figure out that reaction commands exist at all.)");
Symbol 601 MovieClip [c_HeroBabble] Frame 54
Say("PC", "susp", "...Huh?");
Symbol 601 MovieClip [c_HeroBabble] Frame 55
Say("Deugan", "grin", "Let's just continue on our way, Mardek! Tally-ho!");
Symbol 601 MovieClip [c_HeroBabble] Frame 56
END();
Symbol 602 MovieClip [c_inventor] Frame 1
if (GameData.plotVars.CH3inventor == 10) {
gotoAndStop ("Tome2");
return(undefined);
}
if (GameData.plotVars.LEGION_BITS && (!((HASPLOTITEM("Crystal Rose") && (HASPLOTITEM("Wretched Skull"))) && (HASPLOTITEM("Silver Cord"))))) {
gotoAndStop ("notAllIngredients");
return(undefined);
}
if (HASPLOTITEM("Necromantic Tome")) {
gotoAndStop((_root.HasAlly("Gloria") ? ((GameData.plotVars.LEGION_BITS ? "doThisAgain" : "HasTome")) : "HasTomeButNotGloria"));
return(undefined);
}
if (GameData.plotVars.CH3inventor == 1) {
gotoAndStop ("CH3b");
return(undefined);
}
if (GameData.CHAPTER == 3) {
gotoAndStop ("CH3a");
return(undefined);
}
if (GameData.CHAPTER == 2) {
gotoAndStop ("CH2");
return(undefined);
}
if (GameData.plotVars.FUMERATS === 2) {
gotoAndStop ("time3");
} else if (GameData.plotVars.FUMERATS === 1) {
gotoAndStop ("time2");
} else {
nextFrame();
}
Symbol 602 MovieClip [c_inventor] Frame 2
Say("", "smile", "Oh, h-h-hello there, Mardek and Deugan. Off on another adventure again\nt-t-today, are you, eh?");
Symbol 602 MovieClip [c_inventor] Frame 3
Say("Deugan", "smile", "Yeh, we're off looking for a Fallen Star...!");
Symbol 602 MovieClip [c_inventor] Frame 4
Say("", "smile", "Oh, excellent! Excellent. I-I-I actually have another adventure for you again today! I-i-it won't take long; it's a sort of 'side-quest' thing. A-a-are you interested?");
Symbol 602 MovieClip [c_inventor] Frame 5
options = [{em:"grin", goto:"A1a", T:"Well, yes!"}, {em:"norm", goto:"A1b", T:"Sorry, but we're busy."}];
_root.conv.as.ShowOptions(options);
Symbol 602 MovieClip [c_inventor] Frame 7
Say("", "deep", "O-o-oh. M-m-maybe some other time, then.");
Symbol 602 MovieClip [c_inventor] Frame 8
END();
Symbol 602 MovieClip [c_inventor] Frame 10
Say("", "grin", "B-b-brilliant! I knew I could count on you two!");
Symbol 602 MovieClip [c_inventor] Frame 11
Say("", "norm", "I-I-I'm trying to make a new invention, you see, but I-I-I don't have all the parts I need. I need some more LeadPipes - a-a-about five should do - but the best place to g-g-get those is in the sewers, from the fumerats.");
Symbol 602 MovieClip [c_inventor] Frame 12
Say("", "norm", "Y-y-you know I'm incompetent when it comes to combat of a-a-any kind, and *I* know that you relish it and have f-f-fought fumerats before! So I thought this might be a g-g-good chance for you to fight things for an actual reason!");
Symbol 602 MovieClip [c_inventor] Frame 13
Say("", "norm", "Of c-c-course, I'll also give you a reward for your efforts! So what do you say?\nA-a-are you interested?");
Symbol 602 MovieClip [c_inventor] Frame 14
options = [{em:"grin", goto:"A2a", T:"Well, still yes!"}, {em:"susp", goto:"A2b", T:"What do you need the parts for?"}, {em:"norm", goto:"A1b", T:"Sorry, but we're busy."}];
_root.conv.as.ShowOptions(options);
Symbol 602 MovieClip [c_inventor] Frame 16
Say("", "grin", "Ah, i-i-interested in my inventions as always, I see! This time I'm w-w-working on something that I think will r-r-revolutionise the way we all live! I-I-I'm making a *mechanical man*... I-i-it's like a man, but made out of metal and cogs. It can do a-a-anything that a normal man can - like physical labour and (ugh) combat - but n-n-never tires or disobeys.");
Symbol 602 MovieClip [c_inventor] Frame 17
Say("", "smile", "I can s-s-see them being used to make all of our lives easier b-b-by doing all the labour for us!");
Symbol 602 MovieClip [c_inventor] Frame 18
Say("PC", "grin", "Wow! Well, it sounds amazing! I can't wait until it's made!");
Symbol 602 MovieClip [c_inventor] Frame 19
Say("", "grin", "Nor can I, b-b-but of course! B-b-but I need your help! S-s-so will you retrieve these LeadPipes for me?");
Symbol 602 MovieClip [c_inventor] Frame 20
options = [{em:"grin", goto:"A2a", T:"Well, of course!"}, {em:"norm", goto:"A1b", T:"Sorry, but we're busy."}];
_root.conv.as.ShowOptions(options);
Symbol 602 MovieClip [c_inventor] Frame 22
GIVEQUEST("FUMERATS");
Say("", "grin", "M-m-marvellous! You j-j-just have to go into the sewers and kill a few fumerats. They should drop LeadPipes. C-c-come back here when you've got five of them!");
Symbol 602 MovieClip [c_inventor] Frame 23
GameData.plotVars.FUMERATS = 1;
END();
Symbol 602 MovieClip [c_inventor] Frame 25
Say("", "susp", "D-d-did you find the five LeadPipes yet?");
Symbol 602 MovieClip [c_inventor] Frame 26
options = [];
if (_root.HasItem("LeadPipe") >= 5) {
options.push({em:"grin", goto:"B1a", T:"Well, yes!"});
} else {
options.push({em:"deep", goto:"B1b", T:"We don't have five yet..."});
}
options.push({em:"norm", goto:"B1b", T:"Not yet."});
_root.conv.as.ShowOptions(options);
Symbol 602 MovieClip [c_inventor] Frame 28
Say("", "smile", "There's n-n-no hurry, lads, so just have fun with it!");
Symbol 602 MovieClip [c_inventor] Frame 29
END();
Symbol 602 MovieClip [c_inventor] Frame 31
Say("", "grin", "G-g-great! I knew I could c-c-count on you!");
TAKEITEM("LeadPipe", 5);
DONEQUEST("FUMERATS");
_root.SetBadgeStat("LeadPipesQuest", 1, "MAX");
Symbol 602 MovieClip [c_inventor] Frame 32
Say("", "deep", "N-n-now, your reward... What c-c-can I give you...?");
Symbol 602 MovieClip [c_inventor] Frame 33
Say("", "grin", "Ah-ha! I know! You can h-h-have this Cog Necklace! It's a little necklace I had magically ench-ch-chanted to protect from Sleep, so then I could work longer hours on m-my inventions, but the health problems outweighed the\nb-b-benefits... It'd be useful in the w-w-woods, with all those pesky fungoblins around!");
GIVEITEM("Cog Necklace", 1);
Symbol 602 MovieClip [c_inventor] Frame 34
Say("PC", "grin", "Thanks!");
Symbol 602 MovieClip [c_inventor] Frame 35
Say("", "smile", "N-n-now, shouldn't you boys be getting back to your big adventure? I've held you up enough for t-t-today!");
Symbol 602 MovieClip [c_inventor] Frame 36
GameData.plotVars.FUMERATS = 2;
END();
Symbol 602 MovieClip [c_inventor] Frame 39
Say("", "norm", "H-h-hello again, boys. I've got nothing else for you to d-d-do today, I'm afraid. Maybe come back later though and I can show you my n-n-new inv-v-vention?");
Symbol 602 MovieClip [c_inventor] Frame 40
END();
Symbol 602 MovieClip [c_inventor] Frame 42
Say("", "blah", "I HAVE NO CONVERSATION YET. HOW DISAPPOINTING.");
Symbol 602 MovieClip [c_inventor] Frame 43
JOINPARTY();
END();
Symbol 602 MovieClip [c_inventor] Frame 45
Say("", "norm", ("Oh, h-h-hello there, Mardek" + (_root.HasAlly("Deugan") ? " and Deugan" : "")) + "... I'm s-s-still working on the Metal Man, as you can s-s-see, and I'm almost done...");
Symbol 602 MovieClip [c_inventor] Frame 46
Say("", "grin", "It's so b-b-brilliant! I've been working for e-e-eight years on him, and he's turning out so much b-b-better than I could ever have hoped!");
Symbol 602 MovieClip [c_inventor] Frame 47
Say("", "deep", "I h-h-hope to finish him soon... But I've not yet. I'll t-t-tell you as soon as I do!");
Symbol 602 MovieClip [c_inventor] Frame 48
END();
Symbol 602 MovieClip [c_inventor] Frame 50
Say("", "grin", "Oh, h-h-hello there, Mardek! Or sh-sh-should I say, SIR Mardek? I've not seen you in a-a-ages! How a-are you doing?");
Symbol 602 MovieClip [c_inventor] Frame 51
Say("PC", "grin", "Well, I'm fine, Meraeador! How are you?");
Symbol 602 MovieClip [c_inventor] Frame 52
Say("", "deep", "Oh, I'm, uh... I'm g-g-getting by! Though I'm a bit d-d-despondent.");
Symbol 602 MovieClip [c_inventor] Frame 53
Say("", "norm", "You see, the M-M-Metal Man... I've finished b-b-building him, but there's a\np-problem. The body is built, y-y-yes, but there's no-one IN it. It's just an\ne-e-empty shell. It has no s-s-soul. It needs a s-s-spark of life...");
Symbol 602 MovieClip [c_inventor] Frame 54
Say("PC", "susp", "Well, what are you going to do, then?");
Symbol 602 MovieClip [c_inventor] Frame 55
Say("", "deep", "I thought about this b-b-before I even started building him. Before I b-b-began, I visited a vast library somewhere, somewhere f-f-far away... They had a book, a useful book of arcane m-m-magics long forgotten. Magics of such power...");
Symbol 602 MovieClip [c_inventor] Frame 56
Say("", "norm", "One of the s-s-spells in that book was capable of s-s-snatching a soul from the Soulplane, and t-t-trapping it inside an object. N-n-normally I assume it was used for m-m-malevolent purposes, but I think I could put it to g-g-good use.");
Symbol 602 MovieClip [c_inventor] Frame 57
Say("", "deep", "Or I c-c-could, but... I don't have that book! It must still be in the l-l-library... And even if I D-D-DID have it, I couldn't CAST the spell because it n-n-needs a powerful caster, like someone as p-p-powerful as a Sh-sh-shaman...");
Symbol 602 MovieClip [c_inventor] Frame 58
GameData.plotVars.CH3inventor = 1;
if (_root.HasAlly("Gloria")) {
gotoAndStop ("hasGloria");
} else {
END();
}
Symbol 602 MovieClip [c_inventor] Frame 60
Say("", "deep", "W-w-without that book or a powerful caster, someone as powerful as a \nSh-sh-shaman, there's nothing more I can do except s-s-stand here and look at him... O, woe!");
Symbol 602 MovieClip [c_inventor] Frame 61
if (!_root.HasAlly("Gloria")) {
END();
} else {
Say("Gloria", "susp", "Um, I'm a Shaman, if that's any help...");
}
Symbol 602 MovieClip [c_inventor] Frame 62
Say("Meraeador", "shok", "Y-y-you are? Gasp! You are indeed! You're the new young Shaman of Canonia, I see! What brings you here?");
Symbol 602 MovieClip [c_inventor] Frame 63
Say("Gloria", "norm", "Oh, I'm travelling with Mardek now.");
Symbol 602 MovieClip [c_inventor] Frame 64
Say("Meraeador", "susp", "Isn't that bad for C-C-Canonia, being without a Shaman...?");
Symbol 602 MovieClip [c_inventor] Frame 65
Say("Gloria", "blah", "We already went over all this. No. No it's not. Nothing ever happens there. They don't need me. Et cetera.");
Symbol 602 MovieClip [c_inventor] Frame 66
Say("Meraeador", "susp", "I s-s-see. Err... May I ask you a question? Do you know of any arcane magics that would be c-c-capable of, say... b-b-binding a s-s-soul to a physical object?");
Symbol 602 MovieClip [c_inventor] Frame 67
Say("Gloria", "angr", "I've read about things like that... But they're Dark Magic spells! They're cruel, dragging a soul from the Soulplane to be trapped in an object, unliving, just for the perverse pleasure of some sick wizard!");
Symbol 602 MovieClip [c_inventor] Frame 68
Say("Meraeador", "sad", "B-b-but you m-m-misunderstand my m-m-motives! I know the spells are \nD-D-Dark Magic, but... but, you see, this Metal Man here... This M-M-Metal Man, I made him, I've m-m-made his body but he can't m-m-move, you see, for he is not yet alive! He n-n-needs a soul!");
Symbol 602 MovieClip [c_inventor] Frame 69
Say("Gloria", "angr", "What, you'd trap some poor, helpless soul in that metal skeleton just because YOU want that?");
Symbol 602 MovieClip [c_inventor] Frame 70
Say("Meraeador", "deep", "I-i-it would be a g-g-great experience for the soul! You see, I-I-I've constructed a very complex m-m-magical \"brain\" in which the s-s-soul could dwell... \nIt w-w-would be able to control the shell as one would a b-b-body, but it will be incarnated f-f-fully grown, and as such may even remember m-m-memories from its p-p-previous life!");
Symbol 602 MovieClip [c_inventor] Frame 71
Say("Meraeador", "grin", "If s-s-successful, it would be a t-t-tremendous breakthrough in our understanding of the very N-N-Nature of L-L-Life Itself!");
Symbol 602 MovieClip [c_inventor] Frame 72
Say("Gloria", "shok", "I... I see! That's... I'm actually astounded, honestly! That, I believe, is something a soul would love to experience, I'm sure, so, um... I highly approve of what you're doing now that I understand it more!");
Symbol 602 MovieClip [c_inventor] Frame 73
Say("Gloria", "deep", "I've always wondered what it's like in the Soulplane, too... We know people get reincarnated here if they want, but they don't really remember things because their minds as children can't handle the memories, and just discard them instead...");
Symbol 602 MovieClip [c_inventor] Frame 74
Say("Gloria", "norm", "So yes, I know of the Dark Magic spells that would be required, but I don't have them or anything. I know there was a spellbook that I read about, it's in some library somewhere... Probably in the big library in Aeropolis, if I remember correctly.");
Symbol 602 MovieClip [c_inventor] Frame 75
Say("Gloria", "susp", "But when we do find it, it'll list a whole bunch of ingredients that we'll need for the spell. That's how these powerful summoning spells work. Since it's such a potent spell, the ingredients will likely be really rare...");
Symbol 602 MovieClip [c_inventor] Frame 76
Say("Meraeador", "zzz", "I-I-I am prepared to search to the ends of the world to find them!\nMy c-c-creation... It must l-l-live!");
Symbol 602 MovieClip [c_inventor] Frame 77
Say("Meraeador", "deep", "I should, err... I-I-I should pack and set off on a journey, th-th-then...");
Symbol 602 MovieClip [c_inventor] Frame 78
Say("PC", "susp", "You plan on finding the things by yourself?");
Symbol 602 MovieClip [c_inventor] Frame 79
Say("Meraeador", "norm", "Well, I-I-I almost asked you, Mardek, but it w-w-would be a long excursion, \na l-l-long way out of your way... You are a l-l-loyal friend, but I could never ask that! It is s-s-something that I n-n-need to do myself.");
Symbol 602 MovieClip [c_inventor] Frame 80
Say("PC", "grin", "Well, how about if you just came with me and we could do it together? I don't mind!");
Symbol 602 MovieClip [c_inventor] Frame 81
Say("Meraeador", "shok", "B-b-but that would mean going into the d-d-depths of b-b-b-battle alongside you in s-s-situations for which I m-m-might be inefficient!");
Symbol 602 MovieClip [c_inventor] Frame 82
Say("Meraeador", "deep", "B-b-but if it meant finding a soul for my p-p-precious creation... \nThe idea is s-s-sound. I'll come with you, then.");
Symbol 602 MovieClip [c_inventor] Frame 83
Say("PC", "grin", "Well, great!");
GETQUEST("NECROTOME");
Symbol 602 MovieClip [c_inventor] Frame 84
Say("Gloria", "smile", "It's good to have you with us, sir! I'm really interested to get to know you better, actually; you seem really interesting!");
Symbol 602 MovieClip [c_inventor] Frame 85
Say("Meraeador", "embr", "Well, err, heh, err... Th-th-th-th-thank you, lass!");
Symbol 602 MovieClip [c_inventor] Frame 86
Say("Meraeador", "norm", "M-M-Mardek, I have been i-i-inventing a lot over these last f-f-few years, a-a-and even trying my hand at a b-b-bit of combat, a-a-actually. I've designed several \"weapons\", you see, though I-I-I'm afraid they're only usable by m-m-myself.");
Symbol 602 MovieClip [c_inventor] Frame 87
Say("Meraeador", "norm", "Many are also merely b-b-blueprints because I lack the parts I would n-n-need. Ch-ch-check my workshop over there to s-s-see. If we ever gather the parts that I need, we could c-c-come back here and I could a-a-assemble them!");
Symbol 602 MovieClip [c_inventor] Frame 88
Say("PC", "norm", "Well, I'll remember that!");
Symbol 602 MovieClip [c_inventor] Frame 89
Say("Meraeador", "grin", "N-n-now, let us set off! To a-a-a-adventure, and such!");
Symbol 602 MovieClip [c_inventor] Frame 90
SET_SPEAKER("Meraeador");
JOINPARTY();
GameData.plotVars.CH3inventor = 2;
END();
Symbol 602 MovieClip [c_inventor] Frame 93
Say("Meraeador", "deep", "Err, M-M-Mardek, we have the Tome, yes, but we need Gloria with us b-b-before we can actually USE it...");
Symbol 602 MovieClip [c_inventor] Frame 94
END();
Symbol 602 MovieClip [c_inventor] Frame 96
Say("Meraeador", "susp", "M-M-Mardek, we still don't have all the ingredients. We need:\n$1 Crystal Rose%,\n$1 Skull of a Truly Wicked Mortal%, and\n$1 Silver Cord...%");
Symbol 602 MovieClip [c_inventor] Frame 97
END();
Symbol 602 MovieClip [c_inventor] Frame 99
Say("Meraeador", "grin", "We have all of the ingredients now, so l-l-let's get to casting the s-s-spell!");
Symbol 602 MovieClip [c_inventor] Frame 100
Say("Meraeador", "deep", "But, uh... H-h-how do we go from here?");
_root.cont.Meraeador.DrawFrame(8);
Symbol 602 MovieClip [c_inventor] Frame 101
Say("Gloria", "deep", "Hmmm... Let's have a look at what we have to do with these ingredients...");
_root.cont.Gloria.DrawFrame(8);
DelayCommand(function () {
_root.cont.Gloria.DrawFrame(9);
_root.cont.Meraeador.DrawFrame(10);
}, 2);
Symbol 602 MovieClip [c_inventor] Frame 102
gotoAndStop ("continueCasting");
Symbol 602 MovieClip [c_inventor] Frame 108
DONEQUEST("NECROTOME");
Say("Meraeador", "grin", "R-r-right! Here we are, then, and we have the t-t-t-ome! Now, miss Shaman, err, can you conjure us up a soul to take part in my little e-e-experiment?");
Symbol 602 MovieClip [c_inventor] Frame 109
Say("Gloria", "norm", "Um, yes, I think... Um... Let's have a look at that tome then... You have it, right?");
Symbol 602 MovieClip [c_inventor] Frame 110
Say("Meraeador", "deep", "Yes, err, it's h-h-here...");
_root.cont.Meraeador.DrawFrame(8);
Symbol 602 MovieClip [c_inventor] Frame 111
Say("Gloria", "deep", "Hmmm... Let's see here...");
_root.cont.Gloria.DrawFrame(8);
DelayCommand(function () {
_root.cont.Gloria.DrawFrame(9);
_root.cont.Meraeador.DrawFrame(10);
}, 2);
Symbol 602 MovieClip [c_inventor] Frame 112
Say("Meraeador", "embr", "H-h-h-heh, can you, err... can you read it, because I can't!");
Symbol 602 MovieClip [c_inventor] Frame 113
Say("Meraeador", "deep", "(Also, you s-s-smell nice...)");
Symbol 602 MovieClip [c_inventor] Frame 114
Say("Gloria", "embr", "Yes, it seems to be written in the Generic Old Magic Rune Language, which the old Canonia Shaman taught to me back when I was little... It's what a lot of spells and recipes are written in.");
Symbol 602 MovieClip [c_inventor] Frame 115
if (_root.cont.OTHERALLY.stats.model == "elwyen") {
_root.cont.OTHERALLY.DrawFrame("s1");
_root.cont.OTHERALLY._name = (_root.cont.OTHERALLY.stats.name = "Elwyen");
Say("Elwyen", "grin", "(Aww, don't they look so cute together, Mardek? Doesn't it just make you feel happy inside?)");
} else {
gotoAndStop(_currentframe + 2);
}
Symbol 602 MovieClip [c_inventor] Frame 116
Say("OTHERALLY", "deep", "(But it makes me feel lonely... I wish you looked at me like that.)");
Symbol 602 MovieClip [c_inventor] Frame 117
_root.cont.Elwyen._name = "OTHERALLY";
_root.cont.OTHERALLY.DrawFrame("e1");
Say("Gloria", "norm", "The, uh, spell here mentions a list of ingredients that we need to use. We'll need to find them if we want to get the spell to work at all... Hmm. They seem pretty rare, but I suppose that's to be expected.");
Symbol 602 MovieClip [c_inventor] Frame 118
Say("Gloria", "deep", "We need:\n$1 Crystal Rose%,\n$1 Skull of a Truly Wicked Mortal%, and\n$1 Silver Cord...%");
GIVEQUEST("LEGION");
Symbol 602 MovieClip [c_inventor] Frame 119
if ((HASPLOTITEM("Crystal Rose") && (HASPLOTITEM("Wretched Skull"))) && (HASPLOTITEM("Silver Cord"))) {
gotoAndStop ("HasReagents");
} else {
Say("Gloria", "norm", "Quite rare indeed... Perhaps we'll find these things on our adventures, but until then, there's not much we can do here, sorry... We'll have to come back when we have everything.");
}
Symbol 602 MovieClip [c_inventor] Frame 120
GameData.plotVars.LEGION_BITS = 1;
Say("Meraeador", "sad", "Aww... Oh well. L-l-let's continue on our way then, Mardek. I-I-I'm sure we'll find those reagents s-s-somewhere along the way!");
Symbol 602 MovieClip [c_inventor] Frame 121
TempVars.DONT_DRAW_ALLIES = false;
_root.FadeIn(20);
_root.fader.onMaxFade = function () {
_root.cont.Gloria.remove();
_root.cont.Meraeador.remove();
_root.cont.OTHERALLY.remove();
_root.DrawParty();
};
END();
Symbol 602 MovieClip [c_inventor] Frame 123
Say("Meraeador", "grin", "W-w-we have all of the, uh, ingredients now, so l-l-let's continue!");
DONEQUEST("LEGION");
Symbol 602 MovieClip [c_inventor] Frame 124
Say("Gloria", "smile", "With the ingredients in our possession, the spell seems to be surprisingly easy to do, considering that it's Forbidden Dark Magic and everything... It seems that you might even be able to cast it yourself. In fact, it says that whoever casts the spell will become the, um... the Master of the bound soul, and I think that should be you rather than me.");
Symbol 602 MovieClip [c_inventor] Frame 125
Say("Meraeador", "susp", "So, um... w-w-what do I need to do, then?");
Symbol 602 MovieClip [c_inventor] Frame 126
Say("Gloria", "deep", "You need to concentrate on the object that you want the soul to be bound to, concentrate with all your willpower, and say these magic words, here...");
Symbol 602 MovieClip [c_inventor] Frame 127
Say("Gloria", "deep", "There's also a bit of energy manipulation, but it doesn't seem necessary for the person who says the word to do the energy pushing, so I'll do that bit while you just say the words. Right?");
Symbol 602 MovieClip [c_inventor] Frame 128
Say("Meraeador", "deep", "Y-y-yes, but, err... I c-c-can't actually read these words that I'm supposed to\ns-s-say...");
Symbol 602 MovieClip [c_inventor] Frame 129
Say("Gloria", "norm", "Oh! Right! You can't. If I speak them to you now, it might bugger something up or half-cast the spell, or who-knows-what, so, um... do you have some kind of writing implement? Like a pencil or something?");
Symbol 602 MovieClip [c_inventor] Frame 130
Say("Meraeador", "smile", "I have my l-l-lucky pencil, right here...");
Symbol 602 MovieClip [c_inventor] Frame 131
Say("Gloria", "smile", "...Okay, I've written down a phonetic translation that you should be able to read, so if you just read those out, that should be fine.");
Symbol 602 MovieClip [c_inventor] Frame 132
Say("Meraeador", "grin", "O-o-okay! Thank you! Now, err... when do we b-b-begin?");
Symbol 602 MovieClip [c_inventor] Frame 133
Say("Gloria", "smile", "First, I'll need to shape the energies appropriately, like it says in that book. It'll take a few seconds, but you won't know when I'm 'done', so, um... just wait a while, and you should be fine; once the energies are set up properly, I can hold them like that for a while, so you can't wait 'too long'.");
Symbol 602 MovieClip [c_inventor] Frame 134
Say("Gloria", "smile", "Then, you just have to say the magic words in a loud, confident voice while focusing hard on the object you want to bind to - the Metal Man here. ...Nice handiwork, by the way! That's amazing!");
Symbol 602 MovieClip [c_inventor] Frame 135
Say("Meraeador", "embr", "Th-th-thank you... It means a lot coming from you, Miss Shaman...");
Symbol 602 MovieClip [c_inventor] Frame 136
Say("Gloria", "embr", "Yes, well, um...");
Symbol 602 MovieClip [c_inventor] Frame 137
Say("Gloria", "norm", "You'll know you're speaking the magic words properly because your voice will go all magicky and dramatic. The words will sort of try to force themselves out, form themselves, so it won't be too hard even if you don't have any magical skills.");
Symbol 602 MovieClip [c_inventor] Frame 138
Say("Meraeador", "norm", "Y-y-yes, okay...");
Symbol 602 MovieClip [c_inventor] Frame 139
Say("Gloria", "smile", "Let's get started now, then, shall we? Are you ready, sir?");
_root.cont.Gloria.DrawFrame(8);
_root.cont.Meraeador.DrawFrame(8);
DelayCommand(function () {
_root.cont.Gloria.DrawFrame("s1");
}, 2);
Symbol 602 MovieClip [c_inventor] Frame 140
Say("Meraeador", "grin", "I am r-r-ready!");
Symbol 602 MovieClip [c_inventor] Frame 141
Say("Gloria", "deep", "Then please give me a few moments while I ready the energies...");
Symbol 602 MovieClip [c_inventor] Frame 142
Say("Gloria", "zzz", ". . .");
_root.cont.Gloria.DrawFrame(10);
Symbol 602 MovieClip [c_inventor] Frame 143
Say("Gloria", "zzz", ". . .");
Symbol 602 MovieClip [c_inventor] Frame 144
Say("Meraeador", "deep", ". . .");
Symbol 602 MovieClip [c_inventor] Frame 145
Say("Gloria", "zzz", ". . .");
Symbol 602 MovieClip [c_inventor] Frame 146
Say("Meraeador", "deep", "(Hmm... I h-h-hope it's been long enough, because... err...)");
Symbol 602 MovieClip [c_inventor] Frame 147
Say("Meraeador", "deep", "<<ARCANE>>AKH'ANDREL...");
_root.cont.Meraeador.DrawFrame(9);
Symbol 602 MovieClip [c_inventor] Frame 148
Say("Meraeador", "deep", "<<ARCANE>>BELAMNOTH......");
Symbol 602 MovieClip [c_inventor] Frame 149
Say("Meraeador", "deep", "<<ARCANE>>CHELISE...");
Symbol 602 MovieClip [c_inventor] Frame 150
Say("Meraeador", "shok", "<<ARCANE>>D-D-D-DEASS!!");
Symbol 602 MovieClip [c_inventor] Frame 151
_root.createEmptyMovieClip("CUTTER", 14151);
_root.CUTTER.onEnterFrame = function () {
if (this.cut == 5) {
_root.freeze = false;
_root.Sky.setTransform({ra:100, ab:0, ga:100, gb:0, ba:100, rb:0, aa:100, ab:0});
GameData.plotVars.CH3inventor = 10;
DO_ACTIONS([["WAIT", 1], ["UNFREEZE"], ["TALK", "c_inventor"]], "PC", true);
this.removeMovieClip();
return(undefined);
}
if (this.cut == 4) {
this.count++;
_root.Sky.setTransform({ra:30 + (70 * (this.count / 100)), ab:0, ga:this.count, gb:0, ba:50 + (50 * (this.count / 100)), rb:0, aa:100, ab:0});
if (this.count >= 100) {
this.cut = 5;
}
} else if (this.cut == 3) {
this.count++;
if (this.count > (30 - (10 * this.soul))) {
this.cut = 1;
this.count = 0;
}
} else if (this.cut == 2) {
this.SOUL._y = this.SOUL._y + (3 + (2 * this.soul));
if (this.SOUL._y >= _root.cont.ROBOT.getBounds(_root).yMin) {
this.SOUL.gotoAndPlay("absorb");
_root.playSFX("Slam");
this.cut = 3;
this.soul++;
if (this.soul >= 4) {
this.cut = 4;
}
}
} else if (this.cut == 1) {
var _local3 = (this.SOUL = _root.attachMovie("s_soul2", "SOUL" + this.soul, 14152 + this.soul));
_local3.colour = new Color(_local3);
_local3.colour.setTransform([{ra:100, rb:0, ga:20, gb:0, ba:20, bb:0, aa:100, ab:0}, {ra:20, rb:0, ga:80, gb:0, ba:100, bb:0, aa:100, ab:0}, {ra:30, rb:0, ga:0, gb:0, ba:70, bb:0, aa:100, ab:0}, {ra:100, rb:0, ga:100, gb:0, ba:0, bb:0, aa:100, ab:0}][this.soul]);
_local3._x = _root.cont.ROBOT.getBounds(_root).xMin;
_local3._y = _root.cont.ROBOT.getBounds(_root).yMin - (_root.TILESIZE * 7);
_local3._width = (_local3._height = _root.TILESIZE);
this.cut = 2;
} else if (this.cut == null) {
_root.freeze = true;
_root.Flash(_root, [155, 0, 155]);
_root.playSFX("Slam");
_root.playMusic("none");
_root.Sky.setTransform({ra:30, ab:0, ga:0, gb:0, ba:50, rb:0, aa:100, ab:0});
this.count = 0;
this.cut = 1;
this.soul = 0;
}
};
END();
Symbol 602 MovieClip [c_inventor] Frame 153
Say("Meraeador", "shok", "<<none>>D-d-d-did it work?!");
_root.cont.Meraeador.DrawFrame("s1");
_root.cont.Gloria.DrawFrame("s1");
_root.cont.ROBOT.stats.name = "Metal Man";
Symbol 602 MovieClip [c_inventor] Frame 154
Say("Gloria", "shok", "Um...");
Symbol 602 MovieClip [c_inventor] Frame 155
Say("Meraeador", "shok", "M-m-metal Man, can you hear me...?");
Symbol 602 MovieClip [c_inventor] Frame 156
Say("ROBOT", "dead", "...");
Symbol 602 MovieClip [c_inventor] Frame 157
Say("ROBOT", "dead", "...PROCESSING.");
_root.playMusic("Legion");
Symbol 602 MovieClip [c_inventor] Frame 158
Say("ROBOT", "red", "What the devil? Wheah in the Dread Lord's glorious name am I? WHAT am I? A blahsted kettle? I can see, feel, heah, but... You thah! What is the meaning of this?!");
_root.cont.ROBOT.DrawFrame("s1");
Symbol 602 MovieClip [c_inventor] Frame 159
Say("Meraeador", "shok", "Err... h-h-hello there...");
Symbol 602 MovieClip [c_inventor] Frame 160
Say("ROBOT", "blue", "What... is this? This isn't the afterlife. Who are you people? What is... is this thing I'm in? Who are YOU?");
Symbol 602 MovieClip [c_inventor] Frame 161
Say("ROBOT", "red", "ME? This is MY space that you aah invading thah, whoevah or whatevah you aah!");
Symbol 602 MovieClip [c_inventor] Frame 162
Say("ROBOT", "purple", "Oh, bloody wonderful, this is. Just when I thought I'd got out of this insufferably depressing world, I get wrenched right back in again by some madman. SIGH. Truly, my misery is endless. Utterly, utterly endless. The Gods despise me, I see. What a world.");
Symbol 602 MovieClip [c_inventor] Frame 163
Say("ROBOT", "yellow", "EEeeeEeEHHHEHEHEEEheeHEEEEEEE!! LIIIIIIIIIIIFFFFFFFE!!");
Symbol 602 MovieClip [c_inventor] Frame 164
Say("Meraeador", "susp", "Err... I-i-is this supposed to happen...?");
Symbol 602 MovieClip [c_inventor] Frame 165
Say("Gloria", "shok", "I don't know! Maybe it's because of the thing you're trying to put the soul into, or... or... it seems like TOO MANY souls were summoned...?");
Symbol 602 MovieClip [c_inventor] Frame 166
Say("Meraeador", "sad", "I-i-it's all my fault! My s-s-stammer! It affected the magic words!");
Symbol 602 MovieClip [c_inventor] Frame 167
Say("ROBOT", "red", "Yes, yes, very interesting and all that, but whah the HELLS is this and who are YOU, you tiny feeble little mouse?");
_root.cont.ROBOT.DrawFrame("n1");
Symbol 602 MovieClip [c_inventor] Frame 168
Say("ROBOT", "blue", "Please don't antagonise the man... This could all just be some kind of mistake or misunderstanding. I'm sure things will go back to their natural order in a few minutes, so let's savour this new experience while we can...");
Symbol 602 MovieClip [c_inventor] Frame 169
Say("ROBOT", "purple", "I bet it's just some evil wizard again, making me suffer for his own amusement. Just like the gods throughout my whole existence. Why can't it just END? SIGH.");
Symbol 602 MovieClip [c_inventor] Frame 170
Say("ROBOT", "yellow", "OOooooOOooOooOH! I'm made of METAL! METAL!! Shiiiinyyyy... MY LEGS FEEL FUNNY!! AAAAAHH!!! WHERE AM I?!?!? Not... not the PIXIES again?! THE PIXIES!! I THOUGHT I ESCAPED THEM WHEN I DRILLED THEM OUT OF MY HEAD!!! Why?! Why do they continue to TORMENT me?!? I'LL GET THEM!! COME OUT, PIXIES!!!");
Symbol 602 MovieClip [c_inventor] Frame 171
Say("Meraeador", "deep", "Err... H-h-hello there, again... I am, err, M-M-Meraeador, an inventor, and I, err, I built this thing, a m-m-metal body, truly a wonderous piece of m-m-machinery... It can be used like a l-l-living human body, but without any of the, err, bodily needs...");
Symbol 602 MovieClip [c_inventor] Frame 172
Say("Meraeador", "norm", "I, err, I have s-s-summoned your soul, or, err, souls, to ask you to h-h-help me in an experiment. You see, err... we d-d-don't know what happens after d-d-death, we aren't sure... But by s-s-summoning souls into a f-f-form that allows them to S-S-SPEAK to us and act like a living thing once more, we can l-l-learn, maybe...");
Symbol 602 MovieClip [c_inventor] Frame 173
Say("Meraeador", "deep", "I a-a-also wish to, err, create the 'ultimate man'... Your m-m-machine body is equipped with a mechanical b-b-brain that does not lose memories; e-e-every skill you learn, stays fresh in your mind, and what you can learn is n-n-nearly unlimited...");
Symbol 602 MovieClip [c_inventor] Frame 174
Say("Meraeador", "deep", "C-c-currently, you are c-c-capable of little, physically, but th-th-there is so much you can learn... to HELP us a-a-all... To assist the w-w-world in so many ways...");
Symbol 602 MovieClip [c_inventor] Frame 175
Say("ROBOT", "blue", "The 'ultimate man'? But I'm a woman...");
Symbol 602 MovieClip [c_inventor] Frame 176
Say("ROBOT", "red", "A WOMAN? I'm living in some tin can man with a ruddy WOMAN? Bah! Now I'll surely have to listen to incessant whinging inside my own head...");
Symbol 602 MovieClip [c_inventor] Frame 177
Say("ROBOT", "purple", "Depressing, isn't it...?");
Symbol 602 MovieClip [c_inventor] Frame 178
Say("ROBOT", "red", "Anyway, why in the GLORIOUS HELLS - which I was just busy trying to CONQUAH before you trapped me in your cage, you simpering cur - should I help you? What is in this for me?");
Symbol 602 MovieClip [c_inventor] Frame 179
Say("Meraeador", "susp", "You, err... w-w-would get to experience life anew with a n-n-nigh invincible body...?");
Symbol 602 MovieClip [c_inventor] Frame 180
Say("ROBOT", "purple", "SIGH. Means I can't even kill myself to be rid of the bloody miserable drudgery of it all... How depressing.");
Symbol 602 MovieClip [c_inventor] Frame 181
Say("ROBOT", "blue", "This all seems so against Nature...");
Symbol 602 MovieClip [c_inventor] Frame 182
Say("ROBOT", "red", "Invincible body, you say?");
Symbol 602 MovieClip [c_inventor] Frame 183
Say("ROBOT", "yellow", "I CANNOT DIIIIEEEE!!! Take THAT, pixie SCUM!! SCUUUUMMM!!!! EeeeEEEheHHHHEEEEehehEhEhehhee... Youcan'tgetmenowbecause I'LL GET YOOOOOUUU... I'll GET you... pixies. I HAVE A SECOND CHANCE.");
Symbol 602 MovieClip [c_inventor] Frame 184
Say("ROBOT", "red", "Hmh hmh hmh... So let me be sure of this, little toymakah. You have summoned I, the great Baron von Doomkill, from the throes of death, into a nigh-invincible ultimate death machine, and you expect me to, what, just obey you? It's quite laughable. I think I'll go on a rampage instead and conquah the world again. THE WORLD WILL KNOW FEAH.");
Symbol 602 MovieClip [c_inventor] Frame 185
Say("ROBOT", "yellow", "Know fear... NO FEEEEAAAAR!!! Aaaaahhh!! Aah...");
Symbol 602 MovieClip [c_inventor] Frame 186
Say("ROBOT", "purple", "SIGH. Now look what you've gone and done, inventor person. You should know that things always turn out exactly the way you don't want them to. It makes me so miserable just thinking about it.");
Symbol 602 MovieClip [c_inventor] Frame 187
Say("Meraeador", "shok", "E-e-err...");
Symbol 602 MovieClip [c_inventor] Frame 188
Say("ROBOT", "purple", "You should never have trust in anything, you know. You'll always end up regretting it. I always have.");
Symbol 602 MovieClip [c_inventor] Frame 189
Say("Gloria", "cdgr", "Actually, the nature of the spell that we cast is that it binds your soul - or in this case, souls - to an object, yes, but it also binds them in service to a Master. You simply have no choice but to obey Mr Meraeador here.");
Symbol 602 MovieClip [c_inventor] Frame 190
Say("ROBOT", "red", "WHAT?! I am a SLAVE!?");
Symbol 602 MovieClip [c_inventor] Frame 191
Say("ROBOT", "purple", "How depr-");
Symbol 602 MovieClip [c_inventor] Frame 192
Say("ROBOT", "yellow", "YOU'RE ONE OF THE PIXIES, AREN'T YOU!?");
Symbol 602 MovieClip [c_inventor] Frame 193
Say("ROBOT", "blue", "Slavery is not the way of Nature! This is so unnatural, and I really must insist that you listen to your conscience and set us free into the astral realm once more!");
Symbol 602 MovieClip [c_inventor] Frame 194
Say("Meraeador", "deep", "A-a-actually, err... This DOES feel wrong... Maybe we can, err, do the spell\na-a-again...?");
Symbol 602 MovieClip [c_inventor] Frame 195
Say("Gloria", "deep", "Unfortunately, um... that's not possible. I probably should have warned you about this before you cast it, but the spell is not one that can be reversed. The only way to release the soul is to destroy the object it's bound to, so unless you want to destroy the Metal Man...");
Symbol 602 MovieClip [c_inventor] Frame 196
Say("Meraeador", "sad", "I spent y-y-years of my life on making that thing...");
Symbol 602 MovieClip [c_inventor] Frame 197
Say("Meraeador", "deep", "This... th-th-this might work though... If I can c-c-control the Metal Man,\nth-th-then it won't go on any evil rampages, and having MULTIPLE souls to\ns-s-speak with, to learn, will be better all around?");
Symbol 602 MovieClip [c_inventor] Frame 198
Say("ROBOT", "purple", "GROAN. I hate it when people look on the bright side.");
Symbol 602 MovieClip [c_inventor] Frame 199
Say("ROBOT", "blue", "I see... This... this is unnatural, I realise, but you people do seem to have noble goals from it all; you don't seem to be an evil wizard, at any rate. I would be glad to help you until my time here is done; it will be a learning experience for us all, and we have an eternity to exist as souls anyway so this isn't robbing us of precious time.");
Symbol 602 MovieClip [c_inventor] Frame 200
Say("ROBOT", "red", "YOU CANNOT CONTROL ME! I REFUSE to be your slave, you damned blasted-");
Symbol 602 MovieClip [c_inventor] Frame 201
Say("ROBOT", "blue", "Interesting... It seems that we four souls are each capable of controlling this machine of yours, but only once at a time. We can stifle this 'Baron von Doomkill' if you like?");
Symbol 602 MovieClip [c_inventor] Frame 202
Say("ROBOT", "red", "Not all the time, you can't, you swine-fondling goat-buggering cretins! I'll feed you to the demons!");
Symbol 602 MovieClip [c_inventor] Frame 203
Say("ROBOT", "yellow", "Goat-buggering!! EEEEHEEEEeheheheeehehehe... Funny.");
Symbol 602 MovieClip [c_inventor] Frame 204
Say("ROBOT", "blue", "Oh! So sorry, I've not even introduced myself! I am Deena, the Shaman of a place called Canonia... do you know it? Or at least, I WAS the Shaman... It could have been hundreds of years ago though; I have no idea how long it was since I lived.");
Symbol 602 MovieClip [c_inventor] Frame 205
Say("Gloria", "grin", "Ooh, a Shaman, really? Me too! I'm the Shaman of Canonia now! There's so much you can teach me, then!");
Symbol 602 MovieClip [c_inventor] Frame 206
Say("ROBOT", "blue", "This is delightfully coincidental, then!");
Symbol 602 MovieClip [c_inventor] Frame 207
Say("ROBOT", "purple", "People knew me as Miserable Ol' Martin, though I can't imagine why...");
Symbol 602 MovieClip [c_inventor] Frame 208
Say("ROBOT", "purple", "I mean, my name's Eric, not Martin.");
Symbol 602 MovieClip [c_inventor] Frame 209
Say("Meraeador", "smile", "I-I-I am Meraeador, the Inventor... P-p-pleased to meet you all...");
Symbol 602 MovieClip [c_inventor] Frame 210
Say("ROBOT", "red", "And I am the thing your nightmahs aah made from... I ruled this world with an iron fist of dahkness once, and I shall do so again, in time. You will see. You WILL regret this, slugs.");
Symbol 602 MovieClip [c_inventor] Frame 211
Say("ROBOT", "yellow", "Me toooo... I AM NOT A PIXIE!! Eheheheh... HEHEHEEEEEHEEEEEEEE!!");
Symbol 602 MovieClip [c_inventor] Frame 212
Say("ROBOT", "blue", "It seems that we'll all have a lot to get used to in this arrangement here... It seems that the body we inhabit isn't able to move much just by our own accord... Perhaps you have to give us an order or something, uh, -Master-?");
Symbol 602 MovieClip [c_inventor] Frame 213
Say("Meraeador", "deep", "Err, okay... I o-o-order you, Metal Man, to, err... to follow me, but not k-k-kill anyone! You can m-m-ove of your own accord now, but d-d-don't attack anyone.");
Symbol 602 MovieClip [c_inventor] Frame 214
Say("ROBOT", "purple", "I bet it doesn't work and you all die painful deaths while we get trapped in here until the universe ends. SIGH.");
Symbol 602 MovieClip [c_inventor] Frame 215
Say("ROBOT", "red", "Ha! Your first and last mistake, little man! It seems I am able to move now, so I SHALL attack and you shall... shall...! Dammit all to the hells! This isn't working!");
DO_ACTIONS([["WALK", 0, -1]], "ROBOT");
Symbol 602 MovieClip [c_inventor] Frame 216
Say("ROBOT", "blue", "Yes, it seems that though we can move now, the body simply halts before it's able to strike anything... Interesting.");
Symbol 602 MovieClip [c_inventor] Frame 217
Say("ROBOT", "yellow", "But... But... THE PIXIES?! The pixies can GET us now!!!");
Symbol 602 MovieClip [c_inventor] Frame 218
Say("ROBOT", "blue", "Also, are you going to keep calling us 'Metal Man'? I don't much care for being referred to as male.");
Symbol 602 MovieClip [c_inventor] Frame 219
Say("ROBOT", "purple", "Technically, none of us are male or female at the moment due to being an artificial, sexless automaton possessed by disembodied spirits. Which is depressing, because now what do I ever have to look forward to in the evenings?");
Symbol 602 MovieClip [c_inventor] Frame 220
Say("Meraeador", "susp", "Err... What w-w-would be a better way of referring to you collectively?");
Symbol 602 MovieClip [c_inventor] Frame 221
Say("ROBOT", "red", "Just the Invincible and Utterly Grand Baron von Doomkill will suffice. You need not acknowledge the existence of these other nitwits at all.");
Symbol 602 MovieClip [c_inventor] Frame 222
Say("Gloria", "deep", "Legion.");
EN_ADD("People", "Legion");
Symbol 602 MovieClip [c_inventor] Frame 223
Say("Meraeador", "susp", "Hm? Legion?");
Symbol 602 MovieClip [c_inventor] Frame 224
Say("ROBOT", "blue", "Ah, I see the logic in that. It's the demon man, right?");
Symbol 602 MovieClip [c_inventor] Frame 225
Say("Gloria", "norm", "Yes, the, um, 'demon man'. There's this tale, you see, of a man who was possessed by a whole group of demons, so it was like he had multiple voices, multiple personalities. \"And he asked him, What is thy name? And he answered, saying, My name is Legion: for we are many\". So I thought the name fit... Do you?");
Symbol 602 MovieClip [c_inventor] Frame 226
Say("Meraeador", "smile", "Yes, i-i-it's certainly catchy and appropriate!");
_root.cont.ROBOT.stats.name = "Legion";
Symbol 602 MovieClip [c_inventor] Frame 227
Say("ROBOT", "blue", "I don't much care for essentially being called a demon though, but it will suffice.");
Symbol 602 MovieClip [c_inventor] Frame 228
Say("ROBOT", "red", "I am WORSE than demons... but being acknowledged as such will do... for now.");
Symbol 602 MovieClip [c_inventor] Frame 229
Say("PC", "grin", "Well, ooh...");
Symbol 602 MovieClip [c_inventor] Frame 230
Say("Meraeador", "deep", "Ah! M-M-Mardek! You are still h-h-here, I see! I-I-I think that now that I have, err... Legion, here, I think my t-t-travels with you are over...");
Symbol 602 MovieClip [c_inventor] Frame 231
Say("Gloria", "sad", "What? Really? But...");
Symbol 602 MovieClip [c_inventor] Frame 232
Say("Gloria", "susp", "But wait... what are you actually going to DO now that you have your Metal Man up and running? What is it for?");
Symbol 602 MovieClip [c_inventor] Frame 233
Say("Meraeador", "deep", "W-w-well, I made it so then it could L-L-LEARN things, which it can;\nw-w-watching people perform tasks, it can m-m-memorise them and use them itself...");
Symbol 602 MovieClip [c_inventor] Frame 234
Say("Meraeador", "norm", "I w-w-want it to learn a multitude of skills so then it could be useful in a-a-any situation to p-p-people everywhere; once th-th-this one has collected enough data, I would use it to make copies with the s-s-same 'memories' built in...");
Symbol 602 MovieClip [c_inventor] Frame 235
Say("Gloria", "susp", "How do you intend to teach it?");
Symbol 602 MovieClip [c_inventor] Frame 236
Say("Meraeador", "deep", "Well, err... I-I-I was just planning on showing it, err, b-b-books, maybe some\nm-m-moves of my own...?");
Symbol 602 MovieClip [c_inventor] Frame 237
Say("Gloria", "susp", "Hmm... But wouldn't that be rather slow, and its knowledge limited?");
Symbol 602 MovieClip [c_inventor] Frame 238
Say("Gloria", "deep", "What about, say... instead, you come with me - um, us, Mardek and all of us - and Legion comes too, and watches our enemies to learn THEIR skills?");
Symbol 602 MovieClip [c_inventor] Frame 239
Say("Meraeador", "deep", "B-b-but then it would only learn c-c-combat skills...");
Symbol 602 MovieClip [c_inventor] Frame 240
Say("Gloria", "grin", "Not necessarily... It could also learn other skills by watching people in our travels? Like skilled artisans or craftsmen?");
Symbol 602 MovieClip [c_inventor] Frame 241
Say("Meraeador", "deep", "W-w-well, that DOES sound like a good idea...");
Symbol 602 MovieClip [c_inventor] Frame 242
Say("Meraeador", "smile", "And t-t-to be honest, I doubt that I could s-s-stand to do this by myself anyway...");
Symbol 602 MovieClip [c_inventor] Frame 243
Say("ROBOT", "red", "If we were left alone with you, you feeble little shrew, I WOULD find a way to end you, that I sweah.");
Symbol 602 MovieClip [c_inventor] Frame 244
Say("Gloria", "smile", "Then it's decided! You and Legion here will accompany us in our journeys, right Mardek?");
Symbol 602 MovieClip [c_inventor] Frame 245
Say("PC", "susp", "What? Well, uh... okay, I think!");
Symbol 602 MovieClip [c_inventor] Frame 246
Say("Meraeador", "smile", "Th-th-thank you!");
_root.cont.Meraeador.DrawFrame("e1");
_root.cont.Gloria.DrawFrame("w1");
Symbol 602 MovieClip [c_inventor] Frame 247
Say("ROBOT", "blue", "This will be interesting! It has probably been a long time since I've seen the world, and I am very interested to see how much it has changed since I've been gone.");
_root.cont.Gloria.DrawFrame("s1");
_root.cont.Meraeador.DrawFrame("s1");
Symbol 602 MovieClip [c_inventor] Frame 248
Say("ROBOT", "purple", "I bet it's worse than ever, since it's surely descended into a hive of miserable scum and villainy, where nothing works right and the evil people rule and all that. It makes me depressed just thinking about it.");
Symbol 602 MovieClip [c_inventor] Frame 249
Say("ROBOT", "red", "Surely it cannot be as wretched as it was when -I- ruled it! But if it is - and even if it's not - I shall soon be in chahge of it once moah to reduce it to grim chaos, a living hell, oh yes...");
Symbol 602 MovieClip [c_inventor] Frame 250
Say("ROBOT", "yellow", "There will be PIXIES. PIXIIIIEEESSS!!! Aaahhhh!!!");
Symbol 602 MovieClip [c_inventor] Frame 251
Say("Gloria", "cdgr", "Anyway, let's go, then. We've talked for far too long, eh?");
Symbol 602 MovieClip [c_inventor] Frame 252
_root.cont.ROBOT.stats.name = "Legion";
_root.cont.ROBOT._name = "Legion";
_root.FLAVOUR.T_5_3 = null;
SET_SPEAKER("Legion");
DONEQUEST("LEGION");
JOINPARTY();
TempVars.DONT_DRAW_ALLIES = false;
_root.cont.Gloria.remove();
_root.cont.Meraeador.remove();
_root.cont.OTHERALLY.remove();
GameData.plotVars.LEGION = 1;
END();
delete GameData.plotVars.LEGION_BITS;
Symbol 603 MovieClip [c_jacques] Frame 1
if (GameData.CHAPTER == 3) {
gotoAndStop ("ch3");
} else if (_root.area == "gc_hall") {
if (GameData.plotVars.BRIEFING == 7) {
gotoAndStop ("briefing7");
} else if (GameData.plotVars.BRIEFING == 6) {
gotoAndStop ("briefing6");
} else if (GameData.plotVars.BRIEFING == 3) {
gotoAndStop ("briefing3");
} else if (GameData.plotVars.BRIEFING == 1) {
gotoAndStop ("briefing1b");
} else if (GameData.plotVars.BRIEFING == null) {
gotoAndStop ("briefing1");
}
} else {
nextFrame();
}
Symbol 603 MovieClip [c_jacques] Frame 2
Say("", "smile", "Ah, Mardek and Deugan! 'Ow nice it iz to see you zis day! And you come at good timing, too, as I 'ave news for you concerning your faazer!");
Symbol 603 MovieClip [c_jacques] Frame 3
Say("PC", "shok", "You know something about my dad?!?");
Symbol 603 MovieClip [c_jacques] Frame 4
Say("", "deep", "Aah, I do not know much, but I 'eard from one of zee soldiers zat he was sighted in Nole'Oth... Zee frozen Northern Wastes.");
Symbol 603 MovieClip [c_jacques] Frame 5
Say("", "grin", "Zis iz good! It means 'e still lives! 'E seems to be on some kind of epic zhournee, a quest, and knowing 'im, 'e should 'ave it finished soon and will surely be back in no time!");
Symbol 603 MovieClip [c_jacques] Frame 6
Say("PC", "grin", "Well, I hope so!");
Symbol 603 MovieClip [c_jacques] Frame 7
Say("", "grin", "We all can but 'ope... Enki was a great man, though... 'E will be back soon, I am sure of zis! And when 'e returns, I am sure 'e will 'ave many gifts to give and tales to tell!");
Symbol 603 MovieClip [c_jacques] Frame 8
END();
Symbol 603 MovieClip [c_jacques] Frame 10
Say("", "norm", "Good. You are all 'ere at last! Now zee briefing shall begin!");
_root.cont.PC.DrawFrame("n1");
_root.cont.PC2.DrawFrame("n1");
_root.playMusic("RoyalGuard");
EN_ADD("People", "Jacques");
EN_ADD("People", "Emela");
EN_ADD("People", "Sharla");
EN_ADD("People", "Donovan");
EN_ADD("People", "Steele");
Symbol 603 MovieClip [c_jacques] Frame 11
Say("", "norm", "Zis iz of course your first mission, so it won't be too 'ard. But it will test everything you 'ave been taught in your training. If you 'ave learned as you should 'ave, zen zis will be easy for you. But if you've not been paying enough attention, zis is where it will show.");
Symbol 603 MovieClip [c_jacques] Frame 12
Say("", "norm", "Zis is a real mission in zee real world, and zat means zat there iz real danger involved. You could die. You all should 'ave known the risks involved from the moment you joined. You should show no fear, but stand strong and you will be okay!");
Symbol 603 MovieClip [c_jacques] Frame 13
Say("Steele", "angr", "Just tell us about the damned mission.");
Symbol 603 MovieClip [c_jacques] Frame 14
Say("Jacques", "blah", "Patience iz a virtue... Yet another zat you lack, apparently...");
Symbol 603 MovieClip [c_jacques] Frame 15
Say("Jacques", "norm", "I am getting to zee mission now though. Ahem!");
Symbol 603 MovieClip [c_jacques] Frame 16
Say("Jacques", "norm", "To be brief about it, we 'ave received reports zat zee gem mines in zee mountains just north of 'ere 'ave been attacked by bandits. Zee bandits 'ave made camp within zee mines and are forcing zee miners to mine gems for zem. Zey don't seem to plan on staying long, but as of now zey are still there.");
Symbol 603 MovieClip [c_jacques] Frame 17
Say("Jacques", "norm", "Your mission is to enter zee mines, stop zee bandits, and free zee miners.");
GIVEQUEST("MISSION");
Symbol 603 MovieClip [c_jacques] Frame 18
Say("Emela", "susp", "Um, when you say 'stop' the bandits, what do you mean, exactly?");
Symbol 603 MovieClip [c_jacques] Frame 19
Say("Jacques", "norm", "You might sink zat I mean 'kill', but I don't. If at all necessary, you are to disband zee bandits and force zem to retreat WIZHOUT killing zem.");
Symbol 603 MovieClip [c_jacques] Frame 20
Say("Steele", "blah", "So there won't be any bloodshed? What is this, the Pansy Brigade?");
Symbol 603 MovieClip [c_jacques] Frame 21
Say("Jacques", "deep", "If it is necessary, and zere are no ozzer options, zen you are permitted to use violence, and kill if it comes to zat. Sadly, some people are beyond 'elp, and only understand the language of zee sword.");
Symbol 603 MovieClip [c_jacques] Frame 22
Say("Steele", "blah", "Right, great. Ask questions with our swords. Got it. I can do that just fine.");
Symbol 603 MovieClip [c_jacques] Frame 23
Say("Jacques", "blah", "Zat iz not what I said at all.");
Symbol 603 MovieClip [c_jacques] Frame 24
Say("Donovan", "smile", "Don't worry though, captain. The rest of us will surely do our best to not resort to violence unless absolutely necessary. Right, men?");
Symbol 603 MovieClip [c_jacques] Frame 25
Say("Emela", "deep", "You know *I'm* against unnecessary bloodshed...");
Symbol 603 MovieClip [c_jacques] Frame 26
Say("Sharla", "smile", "Y-ye-, um, of course! I mean... I wouldn't hurt anyone unless I REALLY had to!");
Symbol 603 MovieClip [c_jacques] Frame 27
Say("Deugan", "norm", "Evil people do need to be brought to justice, but by just slaughtering them mercilessly, we're no better than they are.");
Symbol 603 MovieClip [c_jacques] Frame 28
Say("PC", "grin", "Well, I'd only kill a guy if he killed me first!");
Symbol 603 MovieClip [c_jacques] Frame 29
Say("Jacques", "smile", "Good to know zat MOST of you have some sense and 'onour about you. It gladdens me to know zat we 'ave such fine recruits amongst our ranks. You will all surely make great Royal Guards!");
Symbol 603 MovieClip [c_jacques] Frame 30
Say("Steele", "angr", "You bunch of sissies...");
Symbol 603 MovieClip [c_jacques] Frame 31
Say("Emela", "angr", "Aah! I try to ignore and endure it, but I just can't stand you! Will you please just shut up with that *attitude*, y-you brutish lout?!");
Symbol 603 MovieClip [c_jacques] Frame 32
Say("Steele", "angr", "Huh, that's rich, comin' from a *girl*.");
Symbol 603 MovieClip [c_jacques] Frame 33
Say("Emela", "shok", "That doesn't even make sense!");
Symbol 603 MovieClip [c_jacques] Frame 34
Say("Jacques", "blah", "Calm, recruits! Calm! Silence! Listen to me now!");
Symbol 603 MovieClip [c_jacques] Frame 35
Say("Jacques", "norm", "You must set off on your mission now. You will go in three separate groups of two; zis will ensure you faster coverage of zee caves and allow you to complete multiple tasks at once. One team will try to save zee 'ostages, while zee ozzers will go after zee Bandit Chief. Now, form your parties!");
Symbol 603 MovieClip [c_jacques] Frame 36
Say("Donovan", "smile", "I'd be pleased if Sharla and I could work together!");
Symbol 603 MovieClip [c_jacques] Frame 37
Say("Sharla", "embr", "Uhm... heh... That'd... that'd be great, yeh!");
Symbol 603 MovieClip [c_jacques] Frame 38
Say("Deugan", "susp", "(Mardek, we both know that we both want to go with Emela, right, and, since I did sort of go behind your back earlier, I feel it's only fair to let you go with her. So go on! Speak up before-)");
Symbol 603 MovieClip [c_jacques] Frame 39
Say("Steele", "norm", "Emela and I will go together. She wouldn't want to go with any of those other weaklings.");
Symbol 603 MovieClip [c_jacques] Frame 40
Say("Emela", "susp", "I'm sorry, what? Since when have YOU been the expert on what I think and feel?");
Symbol 603 MovieClip [c_jacques] Frame 41
Say("Steele", "cdgr", "Despite what you say, you KNOW you want to come with me, babeh. I'll protect you WAY better than those other puny sissy guys, what with their long hair and all. And we wouldn't want a li'l cutiepie like you to get hurt, would we? No, can't let your gorgeous body become broken in any way...");
Symbol 603 MovieClip [c_jacques] Frame 42
Say("Emela", "angr", "Eugh, you disgust me...");
Symbol 603 MovieClip [c_jacques] Frame 43
Say("Jacques", "susp", "Unfortunately, Emela, it seems you 'ave to go wiz Steele... After all, Mardek and Deugan would be going togezzer, no?");
Symbol 603 MovieClip [c_jacques] Frame 44
Say("PC", "deep", "Well, yes, we are...");
Symbol 603 MovieClip [c_jacques] Frame 45
Say("Deugan", "susp", "(Mardek, are you sure? You aren't going to stand up to Steele and go with Emela instead?)");
Symbol 603 MovieClip [c_jacques] Frame 46
Say("PC", "deep", "(Well, I don't think he'd react too nicely to that... And I'd hate for him to be alone with you in those dark caves after I've gone off with the girl he was trying to go with...)");
Symbol 603 MovieClip [c_jacques] Frame 47
Say("Deugan", "blah", "(Yes, I suppose I see your point...)");
Symbol 603 MovieClip [c_jacques] Frame 48
Say("Jacques", "norm", "Now, enough of zis briefing! Zis 'as gone on long enough as it iz! You must go now! So go! Begone wiz you! Go on your mission! You are dismissed!");
Symbol 603 MovieClip [c_jacques] Frame 49
Say("Donovan", "norm", "We'll all make our separate ways to the cave and meet there, okay?");
Symbol 603 MovieClip [c_jacques] Frame 50
Say("Emela", "norm", "Right.");
Symbol 603 MovieClip [c_jacques] Frame 51
Say("PC", "grin", "Okay!");
Symbol 603 MovieClip [c_jacques] Frame 52
Say("Donovan", "smile", "See you there, then!");
Symbol 603 MovieClip [c_jacques] Frame 53
GameData.plotVars.BRIEFING = 1;
GameData.visited.gemmine = 1;
_root.cont.Steele.stats.FRAME = null;
DO_ACTIONS([["WALK", 1, 0], ["WALK", 0, 10], ["UNFREEZE"], ["DISAPPEAR"]], "Steele", true);
DO_ACTIONS([["WAIT", 8], ["WALK", 0, 10], ["UNFREEZE"], ["DISAPPEAR"]], "Emela", true);
DO_ACTIONS([["WALK", 0, 10], ["UNFREEZE"], ["DISAPPEAR"]], "Donovan", true);
DO_ACTIONS([["WALK", 1, 0], ["WALK", 0, 10], ["UNFREEZE"], ["DISAPPEAR"]], "Sharla", true);
END();
Symbol 603 MovieClip [c_jacques] Frame 56
Say("", "norm", "Go, now! You are dismissed!");
Symbol 603 MovieClip [c_jacques] Frame 57
Say("", "susp", "Or would you like me to remind you about zee 'istory and purpose of zee Royal Guard of Goznor?");
Symbol 603 MovieClip [c_jacques] Frame 58
options = [{em:"grin", goto:"history", T:"Yes, please educate me!"}, {em:"norm", goto:"end", T:"No, I'll get to my mission."}];
_root.conv.as.ShowOptions(options);
Symbol 603 MovieClip [c_jacques] Frame 59
END();
Symbol 603 MovieClip [c_jacques] Frame 61
Say("Jacques", "norm", "Welcome back, recruits.");
DONEQUEST("MISSION");
Symbol 603 MovieClip [c_jacques] Frame 62
Say("Jacques", "susp", "I am glad to see that most of you made it back alive. But... what 'appened to Steele?");
Symbol 603 MovieClip [c_jacques] Frame 63
Say("Emela", "deep", "Uhm, he, uh-... I...");
Symbol 603 MovieClip [c_jacques] Frame 64
Say("Donovan", "norm", "Steele regretfully fell in battle, sir. He was reckless, which was typical of him, and he rushed arrogantly into battle with the bandits and fell quickly, because he wasn't quite as strong as he believed himself to be.");
Symbol 603 MovieClip [c_jacques] Frame 65
Say("Jacques", "deep", "Zat... sounds very believable. It is a terrible loss, but zese sings 'appen... We must always be ready to face the realisation of casualties in this field of work.");
Symbol 603 MovieClip [c_jacques] Frame 66
Say("Jacques", "susp", "But 'is death was not in vain, no? You defeated the bandits, correct?");
Symbol 603 MovieClip [c_jacques] Frame 67
Say("Donovan", "norm", "We did. Though we let the Bandit Chief escape after we'd defeated him with a warning to never do that sort of thing again, lest we be less merciful!");
Symbol 603 MovieClip [c_jacques] Frame 68
Say("Jacques", "smile", "Ah, tres bon! Zat is zee kind of sinking zat Royal Guards should 'ave! I am pleased zat you did as you did!");
Symbol 603 MovieClip [c_jacques] Frame 69
Say("Jacques", "grin", "I am also pleased to announce zat you all passed zee test, and are now 'onourary members of zee Royal Guard! Bravo!");
Symbol 603 MovieClip [c_jacques] Frame 70
Say("PC", "grin", "Huzzah!");
Symbol 603 MovieClip [c_jacques] Frame 71
Say("Donovan", "smile", "I will do my duty as a Guard with honour, sir!");
Symbol 603 MovieClip [c_jacques] Frame 72
Say("Deugan", "susp", "(So our behaviour during the test isn't assessed on some special summary screen or anything...?)");
Symbol 603 MovieClip [c_jacques] Frame 73
Say("Jacques", "norm", "You are not full Guards yet, zhough. You may 'ave passed zee test, but zere iz still a ceremony before you officially gain your new ranks. Zee ceremony is carried out personally by zee king, and will begin shortly!");
Symbol 603 MovieClip [c_jacques] Frame 74
Say("Deugan", "grin", "Ooh, the King! We'll finally get to meet him! How exciting!");
Symbol 603 MovieClip [c_jacques] Frame 75
Say("PC", "grin", "Well, I can't wait!");
Symbol 603 MovieClip [c_jacques] Frame 76
Say("Jacques", "smile", "And you don't 'ave to, for the ceremony will begin in a few moments! Let us all report to the Throne Room now!");
Symbol 603 MovieClip [c_jacques] Frame 77
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "Jacques", true);
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "Deugan", true);
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "Donovan", true);
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "Emela", true);
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "Sharla", true);
DO_ACTIONS([["SLOWWALK", 0, -10], ["UNFREEZE"]], "PC", true);
_root.AreaTrans(["gc_ThroneRoom", 6, 10], 100);
GameData.plotVars.BRIEFING = 4;
END();
Symbol 603 MovieClip [c_jacques] Frame 80
_root.cont.Deugan.DrawFrame("e1");
Say("Deugan", "smile", "Mardek! There you are! You ALWAYS sleep in!");
_root.playMusic("RoyalGuard");
Symbol 603 MovieClip [c_jacques] Frame 81
Say("PC", "deep", "Well, you never wake me up!");
Symbol 603 MovieClip [c_jacques] Frame 82
Say("Deugan", "smile", "You always look so peaceful!");
Symbol 603 MovieClip [c_jacques] Frame 83
Say("Deugan", "norm", "But anyway, apparently something's happening over in Canonia, and since I was the first one up, we've got the mission to go and explore! Right, sir?");
Symbol 603 MovieClip [c_jacques] Frame 84
_root.cont.PC.DrawFrame("n1");
_root.cont.Deugan.DrawFrame("n1");
Say("Jacques", "norm", "Zat is correct! Missions are usually taken by 'ooever reports first, and since Deugan got 'ere first today, 'e 'as the mission and can choose 'oo 'e wishes to go along with 'im.");
Symbol 603 MovieClip [c_jacques] Frame 85
_root.cont.PC.DrawFrame("w1");
_root.cont.Deugan.DrawFrame("e1");
Say("Deugan", "smile", "So you're coming along with me, Mardek. You, uh, are okay with that, I hope?");
Symbol 603 MovieClip [c_jacques] Frame 86
Say("PC", "susp", "You didn't ask Emela?");
Symbol 603 MovieClip [c_jacques] Frame 87
Say("Deugan", "deep", "I didn't think she'd be up to it... I was going to ask you AND her, but considering how she was yesterday... Well.");
Symbol 603 MovieClip [c_jacques] Frame 88
Say("PC", "deep", "Well, I know what you mean...");
Symbol 603 MovieClip [c_jacques] Frame 89
Say("PC", "susp", "What's the mission?");
Symbol 603 MovieClip [c_jacques] Frame 90
_root.cont.PC.DrawFrame("n1");
_root.cont.Deugan.DrawFrame("n1");
Say("Jacques", "norm", "We 'ave received reports of strange activity near zee village of Canonia just east of 'ere. Monsters are acting wild and frenzied, and attacking more zan usual. Also, zee Canonia Shaman 'as gone missing. Zis is most odd, and we 'ave no explanation for it. So it's a sort of mystery.");
Symbol 603 MovieClip [c_jacques] Frame 91
GIVEQUEST("MISSINGSHAMAN");
Say("Jacques", "norm", "You are to go to Canonia and find out what is going on. If you find zee Shaman, surely everything will become clear zen.");
Symbol 603 MovieClip [c_jacques] Frame 92
_root.cont.PC.DrawFrame("w1");
_root.cont.Deugan.DrawFrame("e1");
Say("Deugan", "grin", "Sounds interesting, eh? The monsters around Canonia aren't very strong normally, so it should be pretty easy. So c'mon, Mardek! Let's go now, quick! Adventure, here we come!");
Symbol 603 MovieClip [c_jacques] Frame 93
Say("Emela", "shok", "Wait!");
DO_ACTIONS([["RUN", 6, 0], ["UNFREEZE"]], "Emela", true);
_root.cont.Deugan.DrawFrame("w1");
_root.cont.Jacques.DrawFrame("w1");
Symbol 603 MovieClip [c_jacques] Frame 94
Say("Emela", "deep", "Take me with you! If it's in Canonia, I want to go too!");
Symbol 603 MovieClip [c_jacques] Frame 95
Say("Deugan", "grin", "Er... I have no problem with that! Do you, Mardek? I don't think you would!");
Symbol 603 MovieClip [c_jacques] Frame 96
Say("PC", "susp", "Were you listening that whole time?");
Symbol 603 MovieClip [c_jacques] Frame 97
Say("Deugan", "grin", "So yeh, er, you can come with us, Emela! That'd be great, actually!");
Symbol 603 MovieClip [c_jacques] Frame 98
Say("Deugan", "susp", "But why, er... why particularly do you want to come with us?");
Symbol 603 MovieClip [c_jacques] Frame 99
Say("Emela", "norm", "I'm from Canonia, and, uhm... Well, I just want to know what's going on there. Since I am from there and everything. Yes.");
Symbol 603 MovieClip [c_jacques] Frame 100
Say("Deugan", "smile", "Okay then, that makes sense... So come along then. Let's go. To Canonia!");
Symbol 603 MovieClip [c_jacques] Frame 101
Say("PC", "grin", "This'll be great!");
Symbol 603 MovieClip [c_jacques] Frame 102
GameData.visited.glens1 = 1;
GameData.visited.guardpost = 1;
SET_SPEAKER("Deugan");
JOINPARTY(true);
SET_SPEAKER("Emela");
JOINPARTY();
GameData.plotVars.BRIEFING = 7;
GameData.plotVars.MARDEK_ALONE = false;
_root.playMusic("Castle");
END();
Symbol 603 MovieClip [c_jacques] Frame 105
Say("", "norm", "Good luck, soldiers. You can get to Canonia by passing zhrough zee Glens just east of here. Travel with caution and without delay!");
Symbol 603 MovieClip [c_jacques] Frame 106
_root.plotVars.visited.glens1 = 1;
_root.plotVars.SUNSET = null;
gotoAndStop ("teacher");
Symbol 603 MovieClip [c_jacques] Frame 109
Say("", "mad", "LALALAALALAAA!");
Symbol 603 MovieClip [c_jacques] Frame 110
END();
Symbol 603 MovieClip [c_jacques] Frame 112
var ch3geo = {goznor:1, heroes_den:1, gc_hall:1, guardpost:1, crashsite:1, soothwood:1, glens1:1, lakequr:1, canonia:1, canonia_woods:1, pcave1:1, warport1:1, warport2:1, DesertPath:1, sunTemple1:1};
for (var o in ch3geo) {
GameData.visited[o] = 1;
}
if (int(GameData.plotVars.CH3KING) >= 10) {
Say("", "deep", "It is truly unforunate, what has happened to zee King... I will serve Donovan just as I served His Highness, but it may be a difficult adjustment. But Mardek, you wish to receive some justly-deserved medals, no?");
} else {
Say("", "smile", "Ah, Sir Mardek, bonjour! You return from your advenzures once more, I see. As you well know, it is my duty to assess your progress, and to award you weez $medals% for your... how you say... 'admirable anteeks'.");
}
Symbol 603 MovieClip [c_jacques] Frame 113
Say("", "deep", "Euh, let us see now...");
if (GameData.MEDALS == null) {
GameData.MEDALS = [];
}
if (GameData.MEDALS[GameData.CHAPTER] == null) {
GameData.MEDALS[GameData.CHAPTER] = new Array(40);
}
MedalsToGive = [];
var charList = ["Mardek", "Donovan", "Sharla", "Sslen'ck", "Solaar", "Elwyen", "Gloria", "Meraeador", "Legion", "Zach", "Vehrn"];
var i = 0;
while (i < 4) {
if (_root.PCstats[i].model) {
GameData.plotVars.Allies[_root.PCstats[i].name] = _root.PCstats[i];
}
i++;
}
var gdm = GameData.MEDALS[GameData.CHAPTER];
if (((!gdm[0]) && (GameData.plotVars.BEATEN_MORIC)) && (GameData.plotVars.ROHOPH)) {
MedalsToGive.push([0, "smile", "Ah, I never gave you a medal for saving zee world back when zee black disc attacked! 'Ere, you must 'ave zees!"]);
}
if (!gdm[1]) {
var yes = 0;
var i = 0;
while (i < charList.length) {
if (GameData.plotVars.Allies[charList[i]].level < 20) {
yes = false;
}
i++;
}
if (yes) {
MedalsToGive.push([1, "smile", "Ah, I see zat you 'ave gazzered quite a party zere to 'elp you, Sir Mardek! And you give each of zem zeir fair chance to prove zemselves, too! Bravo! 'Ave zis!"]);
}
}
if ((!gdm[2]) && (GameData.plotVars.Allies.Mardek.level >= 30)) {
MedalsToGive.push([2, "grin", "Sir Mardek, you are becoming one of zee most powerful of our Royal Knights; maybe even ZEE most powerful! I just 'ave to give you zis for your strength!"]);
}
if ((!gdm[3]) && (GameData.plotVars.CH3SQ1[0] == 6)) {
MedalsToGive.push([3, "grin", "It always pleases me when our Knights go out of zeir way to help ozzers, even when not assigned zat specific task! For your help of zee Solakian Priests in zee Sun Temple, I reward you wiz zis."]);
}
if ((!gdm[4]) && (GameData.plotVars.SUN_WARDSTONE)) {
MedalsToGive.push([4, "smile", "I am glad to see zat you successfully completed your mission at zee Sun Temple. 'Ere, 'ave a medal."]);
}
if ((!gdm[5]) && (int(GameData.plotVars.CH3SQ3[0]) >= 4)) {
MedalsToGive.push([5, "smile", "I zhank you for 'elping several reptoids, improving zee relations between our two species. Vell done!"]);
}
if ((!gdm[6]) && (GameData.plotVars.CH3SQ5[1] == 5)) {
MedalsToGive.push([6, "grin", "I am truly proud to 'ave you as a Knight, Sir Mardek! You did what few would 'ave done. Knowing zat zee frozen fairies would grant you great benefits in combat, you willingly gave zem away so zat zey may be 'appier and free, raazer zan keeping zem for yourself. It is wiz great 'appiness zat I give you zis!"]);
}
if ((!gdm[7]) && (GameData.plotVars.MUSEUM == 10)) {
MedalsToGive.push([7, "smile", "I 'ave 'eard great sings about you from zee Curator of zee Aeropolis Museum. You saved 'is museum, 'e says; zee artefacts that you 'ave brought 'im are drawing in quite a lot of people! Zis deserves a medal!"]);
}
if ((!gdm[8]) && (GameData.plotVars.CH3SQ4[0] == 2)) {
MedalsToGive.push([8, "smile", "Zee slums of Aeropolis are well-known for zeir crime, and avoided by most. Zat you courageously ventured in and 'elped wiz zeir problems puts zee Royal Knights of Goznor in a wonderful light, and for zis you must be rewarded!"]);
}
if ((!gdm[9]) && (int(GameData.plotVars.CH3KING) >= 10)) {
MedalsToGive.push([9, "deep", "Yet again, you 'ave saved zee whole of Belfan from a threat zat zee rest of us would 'ave 'ad no 'ope of challenging. For zis, you are commended... and I am sure zat zee King would zhank you too, were 'e 'ere."]);
}
totalMedals = 0;
if (!gdm[10]) {
var i = 0;
while (i < 40) {
if (gmd[i]) {
totalMedals++;
}
i++;
}
if (mt == 39) {
totalMedals = 40;
MedalsToGive.push([10, "grin", "Excellent! You are truly a Knight amongst Knights, Sir Mardek! You 'ave done more zan I could ever 'ave wished of you, and zen some; it is wiz great 'onour zat I give you zis rarely-received medal!"]);
}
}
if ((!gdm[11]) && (int(GameData.RECORDS.STEPS) >= 100000)) {
MedalsToGive.push([11, "susp", "My, my, you 'ave walked a long way in your zhourneys, Sir Mardek! I sink zee fact zat you are still walking deserves a reward in itself!"]);
}
if ((!gdm[12]) && (int(GameData.RECORDS.GOLD_EARNED) >= 1000000)) {
MedalsToGive.push([12, "grin", "'Opefully zis medal will 'elp you understand why we pay you very little; zis job pays for itself!"]);
}
if ((!gdm[13]) && (int(GameData.RECORDS.DMG_D) >= 1000000)) {
MedalsToGive.push([13, "susp", "You 'ave seen a lot of combat in your time, Sir Knight. I only wish it was not so, and zat we could live in a world of peace, but alas, your contributions must be rewarded nonezeeless."]);
}
if ((!gdm[14]) && (int(GameData.RECORDS.DMG_R) >= 1000000)) {
MedalsToGive.push([14, "smile", "Sacre bleu, you've been zhrough zee wars, Sir Mardek! And yet still you stand, a testament to zee stalwartness of zee Royal Guard of Goznor!"]);
}
if ((!gdm[15]) && (int(GameData.RECORDS.KILLS) >= 100)) {
MedalsToGive.push([15, "susp", "Zhou I 'ave shown distaste for violence in zee past, I am aware zat monsters are not living beings, and as such zee world is a better place wiz fewer of zem in it. Zis medal is for making zee world a slightly better place."]);
}
if ((!gdm[16]) && (int(GameData.RECORDS.KILLS) >= 1000)) {
MedalsToGive.push([16, "norm", "You 'ave surely put quite an 'ole in zee miasma, Sir Mardek. Zee less monsters in zee world, zee safer we all are. Well done."]);
}
if ((!gdm[17]) && (int(GameData.RECORDS.USES_P) >= 1000)) {
MedalsToGive.push([17, "grin", "It is good to see zat you are putting your Guard training to good use, Mardek! 'Opefully this will only continue!"]);
}
if ((!gdm[18]) && (int(GameData.RECORDS.USES_M) >= 1000)) {
MedalsToGive.push([18, "smile", "Zee force of magic is an amazing sing, and a very deadly sing. It is reassuring to know zat it is firmly on our side."]);
}
if ((!gdm[19]) && (int(GameData.RECORDS.USES_I) >= 100)) {
MedalsToGive.push([19, "smile", "It is important for a good warrior to know when to put 'is expendable supplies to good use. Tool use is what sets us apart from zee mere beasts, after all. I am glad you understand zis."]);
}
if ((!gdm[20]) && (int(GameData.RECORDS.BATTLES) >= 100)) {
MedalsToGive.push([20, "smile", "You are truly doing excellent work, Sir Mardek. Your competence in combat certainly needs to be marked by a shiny beet of metal."]);
}
if ((!gdm[21]) && (int(GameData.RECORDS.BATTLES) >= 1000)) {
MedalsToGive.push([21, "grin", "You are quite zee battle-hardened warrior now, Sir Mardek! Battles are your life, it seems, and your record seems unlikely to be broken now. Excellent."]);
}
if ((!gdm[22]) && (int(GameData.RECORDS.CHESTS) >= 100)) {
MedalsToGive.push([22, "smile", "A good Knight knows when to use 'is surroundings to aid 'im. Since we leeve in a world where apparently unopened chests full of loot scatter zee landscape, zee land truly can provide. And it 'as provided you well, it seems."]);
}
if ((!gdm[23]) && (int(GameData.RECORDS.CHESTS) >= 400)) {
MedalsToGive.push([23, "grin", "You don't miss anysing, do you, Sir Mardek? Nosing gets past you! You 'ave searched zee world for its riches and left no stone unturned. Such devotion is truly commendable!"]);
}
if (!gdm[24]) {
var failed = false;
_root.RefreshEncyclopaedia();
for (var e in _root.Encyclopaedia) {
var i = 0;
while (i < _root.Encyclopaedia[e].length) {
if (!GameData.EN_FULL[e][_root.Encyclopaedia[e][i][(((e == "Bestiary") && (_root.Encyclopaedia[e][i].model != null)) ? "model" : "name")]]) {
failed = true;
break;
}
i++;
}
}
if (!failed) {
MedalsToGive.push([24, "smile", "Ah, tres bon! You 'ave seen so much in zis world, and taken note of eet to boot! Zee world will surely benefit from your extensive research!"]);
}
}
if ((!gdm[25]) && (GameData.plotVars.KDESTRALAN)) {
MedalsToGive.push([25, "susp", "You slew *what*? Zee *Annhilator*?! I 'ave only heard legends of zis sing! You are truly incredible, Sir Knight!"]);
}
if ((!gdm[26]) && (GameData.plotVars.KDESTRALAN == 2)) {
MedalsToGive.push([26, "smile", "Zhough it is truly unfortunate zat zee Manta civilisation was destroyed eons ago and cannot be brought back, at least now no ozzers can suffer zeir gruesome fate. Merci, Sir Mardek. We are all in your debt. You 'ave truly earned zis small piece of shiny metal."]);
}
if ((!gdm[27]) && (GameData.plotVars.ARENA[GameData.CHAPTER])) {
MedalsToGive.push([27, "grin", "Ah, you 'ave been partaking in zee Arena challenge, I see! And you 'ave come out victorious! Bravo! Zis will surely give zee Royal Knights quite some regard. Zhough you 'ave surely already received a reward from zee Trilobites for your feat, I will also give you zis."]);
}
var i = 0;
while (i < 11) {
var survivors = 0;
var quotes = [["grin", "Ah, Mardek, you conquered zee Survival Tournament in zee Arena alone? Well done! Your training 'as really paid off!"], ["smile", "Donovan, I always knew you would make a good Knight! It is in your blood. Zee Arena tournament was effortless for you, no?"], ["smile", "Sharla, zhough you say little, we all know zat you are as capable as zey come. Well done for your victory in zee Arena; I am sure you earned eet."], ["grin", "Ah, you 'ave a reptoid chieftain fighting alongside you, Mardek; truly, your charisma is beyond words! And he won at zee arena, too? Zis comes as no great surprise - reptoids are furiously strong - but I will congratulate zis nonezeeless!"], ["susp", "What is zis? You 'ave a... dog sing in your party? Euh, zis is most peculiar! But 'e gets a medal for 'is - or 'er? - skill at zee arena anyway. 'Ere, doggy!"], ["deep", "Miss Elwyen is 'elping you out now, Mardek? You should keep your eye on 'er; she is not a trained fighter like you, and she is very young... yet I realise zat I know not what I say, for she 'as beaten zee arena tournament? Mes felicitations!"], ["susp", "Gloria is zee Shaman of Canonia, no? You 'ave assembled quite zee party to 'elp you, Mardek! And strong zey are, it seems! 'Ere is a medal to commemorate mademoiselle's victory at zee arena."], ["grin", "It is good to see zat see 'crazed inventor' 'as finally left zee safety of 'is workshop and given up 'is silly pacifist ways! I must give 'im zis medal for showing zat even zee shy can be a force to be reckoned wiz!"], ["susp", "I 'ave little idea what zis 'Legion' sing is, but it comes to my attention zat it won at zee arena. ...'Ave a medal."], ["susp", "You 'ave 'ired a trained killer to fight alongside you? Hm... I suppose YOU are a trained killer, in a way, Sir Knight, and I did instruct you to use whatever means available to strengzen yourself. 'E won at zee arena, and shall receive zis medal."], ["smile", "Congratulations to zee Paladin at zee arena. Zhough I cannot say I personally approve of fighting in zee name of a god, it seems to be quite effective, I must admit. 'Ave a medal, mon ami."]];
if (GameData.plotVars.ARENA_SURVIVAL[GameData.CHAPTER][charList[i]]) {
survivors++;
if (!gdm[28 + i]) {
MedalsToGive.push([28 + i, quotes[i][0], quotes[i][1]]);
}
}
i++;
}
if ((!gdm[39]) && (survivors == 11)) {
MedalsToGive.push([39, "grin", "Your party's mastery at zee arena is truly phenomenal, Mardek! Zee some of such parts must be a force to be reckoned wiz indeed! 'Ere is a medal to show zee tremendous power of your party!"]);
}
Symbol 603 MovieClip [c_jacques] Frame 114
if (MedalsToGive.length == 0) {
gotoAndStop ("no_medals");
} else {
var m = MedalsToGive.shift();
GIVEMEDAL(m[0]);
Say("", m[1], m[2]);
}
Symbol 603 MovieClip [c_jacques] Frame 115
prevFrame();
Symbol 603 MovieClip [c_jacques] Frame 118
if (totalMedals == 40) {
Say("", "smile", "You 'ave earned all of zee medals that I 'ave to give. Excellent, no doubt, but I am afraid I can do no more for you for now.");
} else {
Say("", "norm", "Sorry, but I 'ave no more shiny medals to give you at zis time. Go out into zee world and do zhings to earn zem!");
}
Symbol 603 MovieClip [c_jacques] Frame 119
END();
Symbol 603 MovieClip [c_jacques] Frame 121
Say("", "susp", "You should already know all zis, but it never 'urts to learn sings again and again.");
Symbol 603 MovieClip [c_jacques] Frame 122
Say("", "norm", "Zee Royal Guard has been around for centuries now, serving as a general law enforcement group. We are called upon to solve problems ranging from rescuing old womens' cats stuck in trees to serving as protection during difficult political negotiations between nations.");
Symbol 603 MovieClip [c_jacques] Frame 123
Say("", "norm", "Zee Guard are our 'grunts', and are not generally sent outside of zee Goznor immediate region, zhough it can occasionally 'appen. Most guards are rookies, but not necessarily in terms of years of experience; some unskeelled or unmotivated Guards never advance beyond zat rank in zeir lifetime. Some are simply 'appy as Guards and do not aspire to be Knights.");
Symbol 603 MovieClip [c_jacques] Frame 124
Say("", "smile", "Zee Royal Knights are our best men and women. Zey all 'ave to earn zeir knighthood from exceptional service to zee crown, usually from completing a lot of difficult missions as Guards, or sometimes one very difficult one.");
Symbol 603 MovieClip [c_jacques] Frame 125
Say("", "norm", "You only rarely see any Knights around zee castle because zey are almost always away on important missions to foreign lands where Guards are not sent. Zey only usually report back to tell zee King zat zeir mission is complete, and to get anozzer one.");
Symbol 603 MovieClip [c_jacques] Frame 126
Say("", "grin", "You should aspire to be Knights, young recruits! And to do zat, you should start by going on to your mission now! Go!");
Symbol 603 MovieClip [c_jacques] Frame 127
END();
Symbol 604 MovieClip [c_lilanea] Frame 1
if (GameData.CHAPTER == 3) {
gotoAndStop ("ch3");
return(undefined);
}
if (GameData.CHAPTER == 2) {
gotoAndStop ("ch2");
return(undefined);
}
if (GameData.plotVars.ROHOPH != null) {
gotoAndStop ("time4");
} else if (GameData.plotVars.startedProperly != null) {
gotoAndStop ("time3");
} else if (GameData.plotVars.LILANEA == 1) {
gotoAndStop ("time2");
} else {
nextFrame();
}
Symbol 604 MovieClip [c_lilanea] Frame 2
EN_ADD("People", "Lilanea");
Say("PC", "grin", "Well, mum, I'm back!");
_root.cont.Lilanea.DrawFrame("s1");
Symbol 604 MovieClip [c_lilanea] Frame 3
Say("Lilanea", "smile", "Oh, there you are, dear... How did your 'adventure' with Deugan go?");
Symbol 604 MovieClip [c_lilanea] Frame 4
options = [{em:"grin", goto:"A1a", T:"It was great! We slew a princess and saved a dragon!"}, {em:"norm", goto:"A1b", T:"Well, it was okay."}, {em:"deep", goto:"A1c", T:"Well, I wish I could go on a REAL adventure..."}];
_root.conv.as.ShowOptions(options);
Symbol 604 MovieClip [c_lilanea] Frame 6
Say("Lilanea", "smile", "You did? That sounds... unconventional. I mean, nice. Yes, that sounds nice, dear. I'm glad you had fun.");
Symbol 604 MovieClip [c_lilanea] Frame 7
Say("Lilanea", "deep", "Sigh... You're growing up to be just like your father... Only he slew dragons and never really saved any princesses... Except me... He used to call me his 'Queen', you know? I do wonder where he is now though...");
Symbol 604 MovieClip [c_lilanea] Frame 8
gotoAndStop ("B");
Symbol 604 MovieClip [c_lilanea] Frame 10
Say("Lilanea", "smile", "That sounds nice, dear. I'm glad you had fun.");
Symbol 604 MovieClip [c_lilanea] Frame 11
Say("Lilanea", "deep", "Sigh... You're growing up to be just like your father... Always 'adventuring'... You have the same adventurous, heroic spirit. Sigh... I wonder where he is now...");
Symbol 604 MovieClip [c_lilanea] Frame 12
gotoAndStop ("B");
Symbol 604 MovieClip [c_lilanea] Frame 14
Say("Lilanea", "smile", "Hmhm, you certainly do have your father's spirit for true adventure! He was never satisfied with just the inane little fetch quests, no... He always wanted the big, epic, dragon-slaying quests...");
Symbol 604 MovieClip [c_lilanea] Frame 15
Say("Lilanea", "deep", "Sigh... You're growing up to be just like your father... You have the same adventurous, heroic spirit. Sigh... I wonder where he is now...");
Symbol 604 MovieClip [c_lilanea] Frame 16
options = [{em:"grin", goto:"B1a", T:"Well, I'm sure he'll get back soon!"}, {em:"deep", goto:"B1b", T:"When will dad get back...?"}];
_root.conv.as.ShowOptions(options);
Symbol 604 MovieClip [c_lilanea] Frame 18
Say("Lilanea", "smile", "I hope you're right, dear... It's been so long... But I am sure he'll be back eventually; I can *sense* it! Can you sense it too, dear?");
Symbol 604 MovieClip [c_lilanea] Frame 19
gotoAndStop ("B2");
Symbol 604 MovieClip [c_lilanea] Frame 21
Say("Lilanea", "smile", "I don't know, dear... He's been gone a long time. But I'm so sure he'll be back; I can *sense* it! Can you sense it too, dear?");
Symbol 604 MovieClip [c_lilanea] Frame 22
Say("PC", "norm", "Well, I can sort of feel... that he's not dead? Like he's looking over me but he's not dead?");
Symbol 604 MovieClip [c_lilanea] Frame 23
Say("Lilanea", "deep", "Yes, that's what I feel too... It must be the spiritual link that we all share, as a family. Because those exist!");
Symbol 604 MovieClip [c_lilanea] Frame 24
_root.playMusic("Enki");
_root.conv.pic.FadeIn("enki1");
EN_ADD("People", "Enki");
Say("Lilanea", "norm", "Ah... Your father... He was a great man. 'Enki The Wanderer', he used to be called, before he met me and we settled down and had you.");
Symbol 604 MovieClip [c_lilanea] Frame 25
Say("Lilanea", "smile", "He was, as I've told you many a time before now, an adventurer of great skill and renown, revered throughout the lands. Oh, I fancied him so much before I even met him!");
Symbol 604 MovieClip [c_lilanea] Frame 26
Say("Lilanea", "norm", "He was Light, so he thought about others much more than himself. All he did was for people he usually didn't even know from Adam...");
Symbol 604 MovieClip [c_lilanea] Frame 27
Say("Lilanea", "susp", "He was kind, honest... And yet... Mysterious. Did you know that he never told me about his past?");
Symbol 604 MovieClip [c_lilanea] Frame 28
Say("PC", "smile", "Well, you have told me like a million times, mum.");
Symbol 604 MovieClip [c_lilanea] Frame 29
Say("Lilanea", "norm", "Well I'll tell you again! He never did tell me about his mystery-shrouded past... But though I never knew about it, I never for one moment felt suspicious about him, like he might've been something bad once. He seemed to radiate this... this *feeling* that he was always a good man, and that he had his reasons for hiding things like he did.");
Symbol 604 MovieClip [c_lilanea] Frame 30
Say("Lilanea", "deep", "Sigh... I miss him so much...");
Symbol 604 MovieClip [c_lilanea] Frame 31
Say("PC", "deep", "Well, I do too mum... I wish he'd get back soon.");
Symbol 604 MovieClip [c_lilanea] Frame 32
Say("Lilanea", "smile", "Don't worry, dear. He'll come back one day. One day...");
Symbol 604 MovieClip [c_lilanea] Frame 33
_root.conv.pic.FadeOut();
_root.playMusic("none");
Say("Lilanea", "smile", "But it's getting pretty late now, Mardek! You should go to bed.");
Symbol 604 MovieClip [c_lilanea] Frame 34
Say("Lilanea", "smile", "Sweet dreams, dear. Sleep tight! Don't let the bedbugs randomly battle you during the night!");
Symbol 604 MovieClip [c_lilanea] Frame 35
Say("PC", "grin", "Well, night mum!");
Symbol 604 MovieClip [c_lilanea] Frame 36
GameData.plotVars.LILANEA = 1;
END();
Symbol 604 MovieClip [c_lilanea] Frame 39
Say("Lilanea", "smile", "Sweet dreams, dear.");
Symbol 604 MovieClip [c_lilanea] Frame 40
END();
Symbol 604 MovieClip [c_lilanea] Frame 45
Say("Lilanea", "norm", "Oh, good morning dear. You and Deugan are going out on another adventure again, right? Have fun with that, but mind you don't hurt yourselves!");
Symbol 604 MovieClip [c_lilanea] Frame 46
END();
Symbol 604 MovieClip [c_lilanea] Frame 49
Say("", "norm", "Hello again, dear. You're back a bit late today...");
Symbol 604 MovieClip [c_lilanea] Frame 50
Say("PC", "susp", "I am...? Well, it feels like I've barely been gone any time at all!");
Symbol 604 MovieClip [c_lilanea] Frame 51
Say("", "norm", "Oh well. Time does fly when you're having fun.");
Symbol 604 MovieClip [c_lilanea] Frame 52
Say("", "norm", "But you should go to bed, Mardek! It IS pretty late. So nighty night, dear, and sweet dreams!");
Symbol 604 MovieClip [c_lilanea] Frame 53
END();
Symbol 604 MovieClip [c_lilanea] Frame 55
Say("", "smile", "Hello, Mardek! I'm so happy that you're taking the time to visit! How are you, dear?");
Symbol 604 MovieClip [c_lilanea] Frame 56
Say("PC", "grin", "Well, I'm fine, mum!");
Symbol 604 MovieClip [c_lilanea] Frame 57
Say("", "deep", "Good, good... I worry about you, you know... It's a dangerous job, being a Guard... You could die!");
Symbol 604 MovieClip [c_lilanea] Frame 58
Say("", "zzz", "And if you did, then I'd be all alone... I'd have lost both you and your father... Sigh...");
Symbol 604 MovieClip [c_lilanea] Frame 59
Say("", "smile", "But you have your father's blood, so I'm sure you'll do fine! Better than fine, I'd say! You make me so proud, son!");
Symbol 604 MovieClip [c_lilanea] Frame 60
END();
Symbol 604 MovieClip [c_lilanea] Frame 62
Say("", "deep", "Oh, Mardek. Fancy seeing you here! It's so good to see you... You're rarely home, and I do get lonely, you know. I appreciate your visits. I just wish your father would hurry and get home... I am a patient woman, but I don't know how much longer I can wait.");
Symbol 604 MovieClip [c_lilanea] Frame 63
if (GameData.plotVars.MOTHER_SEEN == null) {
GameData.plotVars.MOTHER_SEEN = {};
}
showme = [];
var p = 1;
while (p < 4) {
if (_root.PCstats[p].model == null) {
} else if (!GameData.plotVars.MOTHER_SEEN[_root.PCstats[p].name]) {
GameData.plotVars.MOTHER_SEEN[_root.PCstats[p].name] = true;
var c = null;
switch (_root.PCstats[p].name) {
case "Donovan" :
c = [["", "smile", "Oh, you must be Donovan, from the Guard! I've heard a lot about you. Mardek really respects you, you know."], ["Donovan", "smile", "Heh, is that so? He's never told me. Good to know, though."]];
break;
case "Sharla" :
c = [["", "smile", "You've brought a girl along with you, Mardek? It's nice to see you with someone of the fairer sex. What's your name, dear?"], ["Sharla", "embr", "Oh, um. I'm Sharla. Hi."], ["", "smile", "You look after him, won't you, luv? You know how boys can be."], ["PC", "deep", "Well, she's not... like that with me, mum!"], ["", "smile", "Just friends, then? That's okay. Friends are good."]];
break;
case "Sslen'ck" :
c = [["", "shok", "What is THIS?! Is it a monster?!"], ["Sslen'ck", "susp", "Greetingsss. I am Sslen'ck Ea-Sslenal of Xantusia. I am a reptoid. Your reaction is expected and understandable, but rest assured that I mean you no harm."], ["", "susp", "My, my! I've never heard of one of those before. What friends you keep, Mardek!"]];
break;
case "Solaar" :
c = [["", "grin", "Aaawww! You've got a pet with you, Mardek! A nice lickle doggy! What's her name?"], ["Solaar", "grin", "I am calln Solaar, madam! Pleased to construct your acquintaince! Woof woof! I bet that sounds like a doggy-wog! Woof!"], ["", "susp", "Strange. I've never seen a talking dog before. Oh well, you see something new every day, I suppose."]];
break;
case "Elwyen" :
c = [["Elwyen", "grin", "Hiiii, Mardek's mum! How's things?"], ["", "smile", "Hello, Elwyen! It's nice to see you again. Things could be better..."], ["Elwyen", "sad", "Aww. I'd come around more to keep you company, but now that I'm travelling with Mardek on his adventures, I can't really get around to it, sorry."], ["", "smile", "Oh? You're finally letting her come with you, Mardek? Thank you; she's been talking about this for years. Every time she was around here, it was all she usually talked about. But you be sure to keep her safe!"], ["Elwyen", "cdgr", "I'll probably be the one keeping HIM safe."]];
break;
case "Gloria" :
c = [["", "smile", "You are... Gloria, aren't you? Yes, we met before, when Elwyen introduced us. You really must visit more often!"], ["Gloria", "deep", "Sorry! I just get so caught up in my studies and, um, don't really see many people... I don't have the need, you see."], ["", "smile", "That's fine. I can completely understand. I wasn't exactly the most chatty and social girl myself when I was younger. Still, it's nice to see you again, anyway."]];
break;
case "Meraeador" :
c = [["", "smile", "Mr Meraeador! You're always welcome here. How goes the inventing?"], ["Meraeador", "grin", "V-v-very well, thank you, Mrs Ae-Innana. B-b-but it will be sort of on hold for a while; I-I-I'm travelling with Mardek now, y-you see!"], ["", "smile", "Yes, I DO see! I'd love to hear all about it - I really would - but I assume you've got plenty of things to do, so I won't hold you up."]];
break;
case "Legion" :
c = [["", "grin", "Meraeador finally finished his Metal Man, I see! I'm wowed! It truly is an impressive piece of machinery!"], ["Legion", "red", "And you're not bad yourself, baby. That's one nice arse. Mrrow."], ["", "shok", "Well I never!"]];
break;
case "Zach" :
c = [["", "susp", "Um, Mardek? I know you're free to be your own man now that you've left home, and you don't need a mother's advice anymore, but... are you sure it's wise to associate with men like this? He could be a bad influence on you."], ["Zach", "sour", ". . ."]];
break;
case "Vehrn" :
c = [["", "susp", "Who is this man, with the purple hair? Haven't I seen you around somewhere before?"], ["Vehrn", "grin", "I am Vehrn El-Ganobyi, ma'am. I am a righteous and remarkably strong Paladin from Aeropolis. It is a pleasure to meet a charming lady such as yourself."], ["", "susp", "Yes, well... I hope you're a good ally to my son."]];
}
var j = 0;
while (j < c.length) {
showme.push(c[j]);
j++;
}
}
p++;
}
if (showme.length == 0) {
END();
} else {
Say("", "susp", "Oh? And who's this, who you've brought with you?");
}
Symbol 604 MovieClip [c_lilanea] Frame 64
if (showme.length == 0) {
END();
} else {
var s = showme.shift();
Say(s[0], s[1], s[2]);
}
Symbol 604 MovieClip [c_lilanea] Frame 65
prevFrame();
Symbol 605 MovieClip [c_manfred] Frame 1
if (TempVars.VISITNG_SAUCER != null) {
if (TempVars.LEAVING_CRASHSITE) {
TempVars.LEAVING_CRASHSITE = null;
gotoAndStop ("exiting");
} else {
gotoAndStop ("pleasure");
}
} else {
nextFrame();
}
TempVars.LEAVING_CRASHSITE = false;
Symbol 605 MovieClip [c_manfred] Frame 2
Say("", "grin", "Come one, come all, to see YALORT's Saucer! YALORT 'imself once used this thing as a saucer to rest one of 'is Divine Teacups on, but then 'e dropped it from the 'eavens in a drunken stupor, and now 'ere it is fer yer viewin' pleasure, ladies an' gentlemen!");
Symbol 605 MovieClip [c_manfred] Frame 3
Say("", "grin", "Only one generic gold piece to pass!");
Symbol 605 MovieClip [c_manfred] Frame 4
options = [{em:"norm", goto:"A1a", T:"Well, here you go. [Pay 1 gold]"}, {em:"blah", goto:"A1b", T:"I'm not paying that."}, {em:"susp", goto:"A1c", T:"We have to PAY? Why?!"}];
_root.conv.as.ShowOptions(options);
Symbol 605 MovieClip [c_manfred] Frame 6
if (GameData.money < 1) {
gotoAndStop ("poor");
return(undefined);
}
GameData.money = GameData.money - 1;
Say("", "grin", "Thank you very muchly, sir! Go right on in, and feast yer eyes on the majesty that is a saucer of a deity!");
Symbol 605 MovieClip [c_manfred] Frame 7
TempVars.VISITNG_SAUCER = 1;
DO_ACTIONS([["WALK", 0, -2], ["UNFREEZE"]], "PC", true);
END();
Symbol 605 MovieClip [c_manfred] Frame 9
Say("", "blah", "Fair enough, fair enough! But that means you have to LEAVE, sir. Good day to you.");
Symbol 605 MovieClip [c_manfred] Frame 10
DO_ACTIONS([["WALK", 0, 2], ["UNFREEZE"]], "PC", true);
END();
Symbol 605 MovieClip [c_manfred] Frame 12
Say("", "grin", "That's right, sir! Things in life are not free, you know! We all have to make a livin'! And since YALORT entrusted me with looking after his divine tea saucer, I am merely doing my duty!");
Symbol 605 MovieClip [c_manfred] Frame 13
Say("", "grin", "So, one gold piece it is to see this wondrous artefact of the Creator 'imself!");
Symbol 605 MovieClip [c_manfred] Frame 14
options = [{em:"norm", goto:"A1a", T:"Well, here you go. [Pay 1 gold]"}, {em:"blah", goto:"A1b", T:"I'm not paying that."}];
_root.conv.as.ShowOptions(options);
Symbol 605 MovieClip [c_manfred] Frame 17
Say("", "grin", "I 'ope you enjoyed your visit, sir! Come back any time!");
Symbol 605 MovieClip [c_manfred] Frame 18
TempVars.VISITNG_SAUCER = null;
DO_ACTIONS([["WALK", 0, 2], ["UNFREEZE"]], "PC", true);
END();
Symbol 605 MovieClip [c_manfred] Frame 22
Say("", "blah", "I'm afraid, sir, that you are too POOR for this. You haven't a penny on you. Are you setting your sights a little too high, perhaps? Maybe you should get back to tap-dancing on your street corner instead of trying to partake in such luxuries as this.");
Symbol 605 MovieClip [c_manfred] Frame 23
DO_ACTIONS([["WALK", 0, 2]], "PC", true);
END();
Symbol 605 MovieClip [c_manfred] Frame 25
Say("", "grin", "I 'ope you're 'avin' fun, sir!");
Symbol 605 MovieClip [c_manfred] Frame 26
END();
Symbol 606 MovieClip [c_mugbert] Frame 1
if (GameData.plotVars.DEFEATED_MUGBERT != null) {
gotoAndStop ("time2");
} else {
nextFrame();
}
Symbol 606 MovieClip [c_mugbert] Frame 2
Say("Mugbert", "mugb", "Oy! 'Oos there?");
EN_ADD("People", "Mugbert");
Symbol 606 MovieClip [c_mugbert] Frame 3
Say("Mugbert", "mugb", "Ey, it's... uuuuuuhhhhh... you! You lickle childerns frum t' village! I beated you up before!");
Symbol 606 MovieClip [c_mugbert] Frame 4
Say("PC", "angr", "Well, shut up!");
Symbol 606 MovieClip [c_mugbert] Frame 5
Say("Deugan", "angr", "Mugbert? You big bully! What are you doing here?");
Symbol 606 MovieClip [c_mugbert] Frame 6
Say("Mugbert", "mugb", "That i'n't none o' yer business!");
Symbol 606 MovieClip [c_mugbert] Frame 7
Say("PC", "angr", "Well, I bet you're here for the Fallen Star!");
Symbol 606 MovieClip [c_mugbert] Frame 8
Say("Mugbert", "mugb", "*Duh*. An' it's mine! All mine! I got 'ere first, so that lee-gully meks it mine!");
Symbol 606 MovieClip [c_mugbert] Frame 9
Say("Deugan", "angr", "No! Your hands are the wrong hands! Uh... something like this fallen star can't be in hands like yours! Wrong hands! You'd probably use it for EVIL or something!");
Symbol 606 MovieClip [c_mugbert] Frame 10
Say("Mugbert", "mugb", "Yeh, so? Wot're YOU gunna do about it, eh? Eh? Beat me up, eh? Hurhurhur. I'd like to see you try!");
Symbol 606 MovieClip [c_mugbert] Frame 11
Say("Deugan", "angr", "Alright then! C'mon, Mardek! Let's defeat this evil villain and save the world from his evil!");
Symbol 606 MovieClip [c_mugbert] Frame 12
Say("PC", "grin", "I'll kick his evil so hard it'll fall down and prob'ly die next week!");
Symbol 606 MovieClip [c_mugbert] Frame 13
Say("Mugbert", "angr", "I'll 'ave fun beatin' up you lickle gits! Again!");
Symbol 606 MovieClip [c_mugbert] Frame 14
BATTLE([["Mugbert", null, null, null], ["Mugbert", null, null, null], [3, null, null, null], "SOLO"], "BossBattle", true);
GameData.plotVars.DEFEATED_MUGBERT = true;
_root.AfterBattle = function () {
_root.cont.Mugbert.Talk("c_mugbert");
};
END();
Symbol 606 MovieClip [c_mugbert] Frame 15
Say("Mugbert", "cry", "Waaah! You idiots are so MEAN! I'm gunna tell my dad on you! I'm gunna get you done! Waaah!");
Symbol 606 MovieClip [c_mugbert] Frame 16
DO_ACTIONS([["RUN", 1, 0], ["RUN", 0, 4], ["RUN", -1, 0], ["RUN", 0, 5], ["UNFREEZE"], ["DISAPPEAR"]], "Mugbert", true);
END();
Symbol 607 MovieClip [c_none] Frame 1
nextFrame();
Symbol 607 MovieClip [c_none] Frame 2
Say("", "norm", "Apparently, I don't have a conversation! This is a bug, and should be fixed.");
Symbol 607 MovieClip [c_none] Frame 3
END();
Symbol 608 MovieClip [c_npc] Frame 1
nextFrame();
Symbol 608 MovieClip [c_npc] Frame 2
Say("", "norm", "I like stoats!");
Symbol 608 MovieClip [c_npc] Frame 3
END();
Symbol 609 MovieClip [c_polly] Frame 1
if (GameData.CHAPTER == 3) {
gotoAndStop ("ch3");
return(undefined);
}
if (GameData.CHAPTER == 2) {
gotoAndStop ("ch2");
return(undefined);
}
nextFrame();
Symbol 609 MovieClip [c_polly] Frame 2
Say("", "smile", "Eee, 'ello there, dear! Dears! An 'ow're you, Mardek?");
Symbol 609 MovieClip [c_polly] Frame 3
Say("PC", "norm", "Well, I'm alright, miss Deugan's mum!");
Symbol 609 MovieClip [c_polly] Frame 4
Say("", "smile", "You two're goin' out on an adventure today, are you? Just watch yerselves. I don't want you gettin' 'urt or scared again by doin' somethin' stupid or dangerous! Like that time where you both tried to walk over that river on that narrow fallen tree and Deugan didn't go and was so scared he crapped his pants! Did I show you those photos of when Deugan crapped his pants, Mardek?");
Symbol 609 MovieClip [c_polly] Frame 5
Say("Deugan", "shok", "Muuum!");
Symbol 609 MovieClip [c_polly] Frame 6
Say("PC", "susp", "What's a photo?");
Symbol 609 MovieClip [c_polly] Frame 7
Say("", "smile", "Anyway, 'adn't you two best be off now? You'll miss the whole day if you dilly-dally much longer!");
Symbol 609 MovieClip [c_polly] Frame 8
END();
Symbol 609 MovieClip [c_polly] Frame 15
Say("", "norm", "Eee, 'ello there, son! 'Ow nice it is to see yer visitin' yer old mum! 'Ow goes the soldierin'?");
Symbol 609 MovieClip [c_polly] Frame 16
Say("Deugan", "norm", "It goes well, mum. Neither me nor Mardek are deceased yet!");
Symbol 609 MovieClip [c_polly] Frame 17
Say("", "norm", "Well, that's nice, dear, but I do hope you eat clean underwear and wear yer greens every day. I worry about you and so on, we can assume.");
Symbol 609 MovieClip [c_polly] Frame 18
Say("Deugan", "norm", "That thing you said is probably true. I will try to be a good son.");
Symbol 609 MovieClip [c_polly] Frame 19
Say("", "grin", "Tha's right! Rise into t' sky and shine yer light on t' world, bringin' 'appiness to everyone, that's me boy!");
Symbol 609 MovieClip [c_polly] Frame 20
END();
Symbol 609 MovieClip [c_polly] Frame 22
Say("", "sad", "Oh, ayup there, Mardek... Or Sir Mardek, I think I'm supposed t' say. I'm s' glad t' see yer still carryin' on wi' t' Knight stuff. You'd make our Deugan proud.");
Symbol 609 MovieClip [c_polly] Frame 23
Say("", "sad", "I jus' can't believe 'e's really gone... Our only son!");
Symbol 609 MovieClip [c_polly] Frame 24
END();
Symbol 610 MovieClip [c_shaman] Frame 1
if (GameData.CHAPTER == 3) {
if (HASPLOTITEM("Water Crystal of Belfan") && (GameData.plotVars.GSHAMANch3 < 4)) {
gotoAndStop ("has_WaterCrystal");
} else if (int(GameData.plotVars.GSHAMANch3) >= 3) {
gotoAndStop ("morepotions");
} else {
gotoAndStop(((GameData.plotVars.GSHAMANch3 == 2) ? (((((((_root.HasItem("Water Essence") >= 4) && (_root.HasItem("Fish Scales") >= 6)) && (_root.HasItem("Pixie Dust"))) && (_root.HasItem("Aquamarine"))) && (HASPLOTITEM("Serpent Crest"))) ? "ch3hasreagents" : "ch3reminder")) : (((_root.HasAlly("Gloria") && (GameData.plotVars.GSHAMANch3 == null)) ? "ch3wGloria" : "ch3"))));
}
} else if (GameData.plotVars.ZOMBIES == "CANONIA") {
gotoAndStop((GameData.plotVars.CZtalkedToShaman1 ? "cn_zombies2" : "cn_zombies1"));
} else if (_root.area == "pcave4") {
gotoAndStop ("boss1");
} else {
nextFrame();
}
Symbol 610 MovieClip [c_shaman] Frame 2
if (_root.plotVars.CHAPTER == 1) {
Say("", "smile", "Greetings, children. Out playing in the woods again, I see... Mind yourselves, children; the beasts in the woods are not particularly dangerous, but they can get aggressive. There's a Healing Crystal there if you are wounded.");
} else {
Say("", "smile", "Mm, hello there, young ones. Nature's been treating you kindly, I take it?");
}
Symbol 610 MovieClip [c_shaman] Frame 3
END();
Symbol 610 MovieClip [c_shaman] Frame 5
Say("PC", "susp", "...Are you the missing Shaman?");
Symbol 610 MovieClip [c_shaman] Frame 6
_root.cont.Shaman.DrawFrame("s1");
Say("Shaman", "smile", "That I am, dear...");
Symbol 610 MovieClip [c_shaman] Frame 7
Say("PC", "shok", "Wah!");
Symbol 610 MovieClip [c_shaman] Frame 8
Say("Deugan", "shok", "She's a zombie!");
Symbol 610 MovieClip [c_shaman] Frame 9
Say("Shaman", "egrn", "How very observant of you, dear...");
Symbol 610 MovieClip [c_shaman] Frame 10
Say("Deugan", "susp", "Who did this to you?! And is it... curable?");
Symbol 610 MovieClip [c_shaman] Frame 11
Say("Shaman", "egrn", "Curable? My, deary, why would I want to be *cured* of this Dark Gift? I have been granted extended powers of Darkness and eternal life by the Dark Spectre, the Reaper, the Omega himself! With these powers, I am more powerful than I have ever been before!");
Symbol 610 MovieClip [c_shaman] Frame 12
Say("Emela", "susp", "You're behind all the monsters acting like they are too, aren't you?");
Symbol 610 MovieClip [c_shaman] Frame 13
Say("Shaman", "egrn", "The beasts of this region do my bidding, and are taking it for me! Too long have I merely 'protected' this region... The Reaper convinced me that I could have so much more! I could BE so much more!");
Symbol 610 MovieClip [c_shaman] Frame 14
Say("Shaman", "evil", "With ease, I can RULE this land, and all will do MY bidding for a change! All *I* had to do was tell the Reaper where he could claim the most souls...");
Symbol 610 MovieClip [c_shaman] Frame 15
Say("PC", "shok", "Well, you're MAD..!");
Symbol 610 MovieClip [c_shaman] Frame 16
Say("Shaman", "evil", "I am POWERFUL! Unstoppable! Unkillable! My dark power can overwhelm and destroy you! You want to stop me, don't you!? The Reaper told me to destroy all who would try to stop me! I must destroy YOU!");
Symbol 610 MovieClip [c_shaman] Frame 17
BATTLE([["CanoniaShaman", null, null, null], ["Shaman", null, null, null], [12, null, null, null], "SOLO"], "BossBattle", true);
GameData.plotVars.CANONIA_SHAMAN = 1;
GameData.plotVars.ZOMBIES = "GOZNOR";
_root.AfterBattle = function () {
_root.cont.Shaman.Talk("c_A_Rohoph");
_root.cont.Shaman.DrawFrame("s1");
_root.cont.Shaman.FadeAway();
};
END();
Symbol 610 MovieClip [c_shaman] Frame 20
Say("Deugan", "shok", "Shaman! We need your help! We need to get into that big evil zombie-spawning cloud thing in the sky! You're the best magic user around; can you make us fly?!");
Symbol 610 MovieClip [c_shaman] Frame 21
Say("", "smile", "Mmh? Mardek and Deugan? Mm, it's been years... You always did want to be Mighty Heroes; I should've expected YOU to come to the rescue of the world... Mm, there are some other adventurers outside, wanting to do the same, but I don't trust them...");
Symbol 610 MovieClip [c_shaman] Frame 22
Say("PC", "susp", "Well, can you help us? Do you have any spells that can make us fly?");
Symbol 610 MovieClip [c_shaman] Frame 23
Say("", "smile", "Mmh, mm-hmm, you have your father's blood, Mardek... I've watched you grow, and I'm so proud you're doing this now... I believe you can save us, mmh... I'd go myself, but I need to protect this cave with my magic so then the villagers are safe from the zombies, since the Canonia Shaman is no more...");
Symbol 610 MovieClip [c_shaman] Frame 24
Say("", "norm", "I have no spells that allow one to fly, mmh, no... There are no such spells, I'm afraid... However, I can help you. I can cast teleportation spells, you see, so I can teleport you inside the cloud, mmh-hm, yes...");
Symbol 610 MovieClip [c_shaman] Frame 25
Say("", "deep", "However, mmh, it'll be a one-way trip. I can send you in, but I can't get you out. That part would be up to you.");
Symbol 610 MovieClip [c_shaman] Frame 26
Say("Deugan", "deep", "Ah... That's... that's not so good.");
Symbol 610 MovieClip [c_shaman] Frame 27
Say("PC", "norm", "Well, we'll do it. Send us there.");
Symbol 610 MovieClip [c_shaman] Frame 28
Say("Emela", "susp", "Mardek, are you sure about this? I mean... we could all die, or get trapped there, or... or... We have no idea what to expect!");
Symbol 610 MovieClip [c_shaman] Frame 29
Say("PC", "deep", "Well, none of you need to come. I can go alone!");
Symbol 610 MovieClip [c_shaman] Frame 30
Say("Deugan", "norm", "Are you simple, mate? You think we'd abandon you and let you do this by yourself? I'm coming, and there's no way you'd stop me! We've always wanted to be Heroes together, and those dreams aren't changing today!");
Symbol 610 MovieClip [c_shaman] Frame 31
Say("PC", "grin", "Thanks, Deugan!");
Symbol 610 MovieClip [c_shaman] Frame 32
Say("Emela", "deep", "I... I feel ill, I'll admit... Not just because of all the uncertainty involved and the terrifyingly high chance of dying... No, there's something else... I know something's happened because of this. Something I can't possibly forgive, or leave alone. I have to be a part of this... I'm coming with you too, Mardek.");
Symbol 610 MovieClip [c_shaman] Frame 33
Say("PC", "grin", "Well, great!");
Symbol 610 MovieClip [c_shaman] Frame 34
if (_root.PCstats[3].name == "Vehrn") {
Say("Vehrn", "grin", "We're the Heroes, and YALORT's on our side! There's no chance of us losing, and this thing needs to be got rid of; it's a threat to everything and everyone! I'll accompany you!");
} else if (_root.PCstats[3].name == "Zach") {
Say("Zach", "blah", "Hmph. I don't fear death. And you paid me. I'm coming.");
} else {
gotoAndStop ("bypass4");
}
Symbol 610 MovieClip [c_shaman] Frame 35
Say("PC", "deep", "Well, thanks a lot, friends...");
Symbol 610 MovieClip [c_shaman] Frame 36
Say("", "smile", "Mmh, it's so heart-warming to see you young people all enthusiastic and good of heart and eager to save the world! So heart-warming... But now, I suppose you'd better get to it, mmm?");
Symbol 610 MovieClip [c_shaman] Frame 37
GameData.plotVars.CZtalkedToShaman1 = 1;
Say("", "norm", "I can teleport you into the dark cloud from here when you're ready. But you must keep in mind that $you will likely not be able to return until the deed is done%. Do whatever needs doing here before you tackle this, mmh.");
Symbol 610 MovieClip [c_shaman] Frame 38
options = [{em:"grin", goto:"CZ_GO", T:"Well, we're ready!"}, {em:"deep", goto:"CZ_DONT", T:"Well, we need to prepare... We'll be back soon!"}];
_root.conv.as.ShowOptions(options);
Symbol 610 MovieClip [c_shaman] Frame 39
Say("", "norm", "I shall wait here for you.");
Symbol 610 MovieClip [c_shaman] Frame 40
END();
Symbol 610 MovieClip [c_shaman] Frame 42
Say("", "norm", "Mmh, this is it, then... I can teleport you into the thing, but I cannot say whereabouts inside it you will end up. We leave that to Fate.");
Symbol 610 MovieClip [c_shaman] Frame 43
Say("", "grin", "I give you my blessings, mmh, and wish you as much luck as I can muster. Belfan is depending on you, my children; now is the time to live that dream of yours!");
Symbol 610 MovieClip [c_shaman] Frame 44
_root.playSFX("spellcharge");
DO_ACTIONS([["SPELL", [null, 56831, "LIGHT", 20], "PC"]], "Shaman");
Say("", "norm", "TELEPORT!");
Symbol 610 MovieClip [c_shaman] Frame 45
_root.WarpTrans(["moric_saucer1", 4, 5]);
END();
Symbol 610 MovieClip [c_shaman] Frame 47
Say("", "smile", "Why, if it isn't young Gloria, Shaman of Canonia, mmh! What brings you all the way out here?");
Symbol 610 MovieClip [c_shaman] Frame 48
Say("Gloria", "smile", "Hail, Shaman of Goznor. I hope Nature's been treating you well? And actually, I'm travelling with Mardek now. It's not exactly 'wise' to travel too far out of my appointed range, I know, I know, but I really think that this is something that I need to do. Canonia's never in danger anyway, and if it was, I'd be going there with Mardek, most likely.");
Symbol 610 MovieClip [c_shaman] Frame 49
Say("", "susp", "That... does seem likely, mmh... But just do not forget that you do have a duty to devote your life to. Trips like this are common in the early years for a shaman - I myself went on a long adventure shortly after being Chosen, a journey of Learning, mmh - but you must always return, mmh, yes... Never forget.");
Symbol 610 MovieClip [c_shaman] Frame 50
Say("", "norm", "Anyway, what can I do for you younglings this day, mmh?");
Symbol 610 MovieClip [c_shaman] Frame 51
gotoAndStop ("ch3choices");
GameData.plotVars.GSHAMANch3 = 1;
Symbol 610 MovieClip [c_shaman] Frame 53
Say("", "smile", "Mmh? Hello there, young ones! What can I do for you today?");
Symbol 610 MovieClip [c_shaman] Frame 54
if (GameData.plotVars.GSHAMANch3 == 2) {
options = [{em:"susp", goto:"ch3ingredients", T:"What were the ingredients again?"}, {em:"grin", goto:"ch3a1", T:"What's up, Shaman?"}, {em:"norm", goto:"ch3b1", T:"Well, I want to trade Shaman Reagents."}, {em:"norm", goto:"ch3bye", T:"Bye bye!"}];
} else {
options = [{em:"grin", goto:"ch3a1", T:"What's up, Shaman?"}, {em:"norm", goto:"ch3b1", T:"Well, I want to trade Shaman Reagents."}, {em:"susp", goto:"ch3c1", T:"Do you know where I can find any of the Crystals?"}, {em:"norm", goto:"ch3bye", T:"Bye bye!"}];
}
_root.conv.as.ShowOptions(options);
Symbol 610 MovieClip [c_shaman] Frame 56
Say("", "deep", "Actually, I feel weakened... I sense that something has happened to disturb Nature, mmh... The Crystals. I feel that something threatens them, or that they are being used...");
Symbol 610 MovieClip [c_shaman] Frame 57
Say("PC", "deep", "Well, the Dark Crystal's been stolen.");
Symbol 610 MovieClip [c_shaman] Frame 58
if (_root.HasAlly("Gloria")) {
Say("Gloria", "shok", "It has?! You never told me that!");
} else {
nextFrame();
}
Symbol 610 MovieClip [c_shaman] Frame 59
Say("", "shok", "Mmh?! That... that is not a good thing! It explains my feelings, mmh, but... but... the world is in danger! Balance is disrupted! Something must be done about this!");
Symbol 610 MovieClip [c_shaman] Frame 60
Say("PC", "grin", "Well, that's what we're trying to do! We're trying to stop the thief.");
Symbol 610 MovieClip [c_shaman] Frame 61
Say("", "smile", "I see... Mmh, you were certainly capable of saving the world a few years ago, Mardek, so I trust that you can do the same again this time. You are the protagonist, after all.");
Symbol 610 MovieClip [c_shaman] Frame 62
Say("PC", "grin", "I can only move at the will of my unseen master!");
Symbol 610 MovieClip [c_shaman] Frame 63
Say("", "susp", "Mmh, yes, now... is there anything else that you need?");
Symbol 610 MovieClip [c_shaman] Frame 64
gotoAndStop ("ch3choices");
Symbol 610 MovieClip [c_shaman] Frame 66
Say("", "norm", "Mmh, very well. If you have the ingredients that I want, then I shall give you some of mine in return.");
Symbol 610 MovieClip [c_shaman] Frame 67
_root.OpenShop({name:"GShamanReagents", wares:[["Acid Seed", 6], ["Leaf of Life", 3], ["Mugwort", 2], ["Bitterleaf", 2]]});
END();
Symbol 610 MovieClip [c_shaman] Frame 69
Say("", "angr", "In the hands of a thief, where they do not belong, 'twould seem, mmh! And it is there that you should be looking for and finding crystals, m'boy, for the others are sacred, and not to be disturbed. The balance of nature is offset enough.");
Symbol 610 MovieClip [c_shaman] Frame 70
Say("", "deep", "However, mmh... I sense that you have a plan, and I sense that you finding the crystals would be better for us all than the thief finding them...");
Symbol 610 MovieClip [c_shaman] Frame 71
Say("", "norm", "I will not tell you of the whereabouts of them all. Just one, but this should be sufficient for now.");
Symbol 610 MovieClip [c_shaman] Frame 72
Say("", "deep", "Mmh, I speak of the Water Crystal... which resides at the bottom of Lake Qur in the Water Temple. Mmh. Of course, you cannot get there unless you can breathe underwater...");
Symbol 610 MovieClip [c_shaman] Frame 73
Say("PC", "deep", "Well, Emela used to be able to cast a spell that did that...");
Symbol 610 MovieClip [c_shaman] Frame 74
Say("", "susp", "Allowed you to breathe underwater? Mmh... That is not a common spell. Quite a rare and potent one, in fact... There are few who can cast it.");
Symbol 610 MovieClip [c_shaman] Frame 75
Say("PC", "grin", "Well, can you?");
Symbol 610 MovieClip [c_shaman] Frame 76
Say("", "deep", "Mmh... Not... as such... BUT! I do have the means to mimic the effect, with a special shamanic brew. It must be made from rare ingredients, however, which I do not at the moment have...");
Symbol 610 MovieClip [c_shaman] Frame 77
Say("", "norm", "If you would like me to brew some of this mixture for you, to allow you to breathe beneath the waves of Lake Qur, you must bring me the ingredients that I require, which are...");
Symbol 610 MovieClip [c_shaman] Frame 78
GIVEQUEST("CH3AQUALUNG");
Say("", "blah", "Four $Water Essences%,\nSix handfuls of $Fish Scales%,\nOne bag of $Pixie Dust%,\nOne $Serpent Crest%,\nand One $Aquamarine%.");
Symbol 610 MovieClip [c_shaman] Frame 79
GameData.visited.aeropolis = 1;
Say("", "norm", "Mmh, you will be able to find many of these ingredients in the southern city of Aeropolis, I would assume; it is a very large place, full of merchants. I shall add Aeropolis to your map, and the ingredients list to your Quests.");
Symbol 610 MovieClip [c_shaman] Frame 80
Say("", "susp", "Other ingredients may not be so readily available, mmh. You may need to venture into the wilds to find the rarer ones. It is unfortunate, mmh, that I cannot give you specific locations or directions in this regard.");
Symbol 610 MovieClip [c_shaman] Frame 81
Say("", "deep", "Go now, and I will begin researching the incantations necessary for enchanting the brew, mmh...");
Symbol 610 MovieClip [c_shaman] Frame 82
GameData.plotVars.GSHAMANch3 = 2;
END();
Symbol 610 MovieClip [c_shaman] Frame 84
Say("", "smile", "Farewell, young one. And remember: a lot of people are depending on you. Serve them well.");
Symbol 610 MovieClip [c_shaman] Frame 85
END();
Symbol 610 MovieClip [c_shaman] Frame 87
Say("", "susp", "Hello again, your Sir Mardek. Do you require a reminder of the ingredients that I need you to bring, or is it something else that you need?");
Symbol 610 MovieClip [c_shaman] Frame 88
gotoAndStop ("ch3choices");
Symbol 610 MovieClip [c_shaman] Frame 91
GameData.plotVars.GSHAMANch3 = 3;
_root.TakeItem("Water Essence", 4);
_root.TakeItem("Fish Scales", 6);
_root.TakeItem("Pixie Dust", 1);
_root.TakeItem("Aquamarine", 1);
TAKEPLOTITEM("Serpent Crest");
DONEQUEST("CH3AQUALUNG");
Say("PC", "grin", "Well, Shaman, we have the ingredients!");
Symbol 610 MovieClip [c_shaman] Frame 92
Say("", "grin", "Mmh? You do? Wonderful! Wonderful. I'll take thooose, and, mmh, put them in this cauldron behind me...");
Symbol 610 MovieClip [c_shaman] Frame 93
_root.cont.Shaman.DrawFrame("n1");
Say("", "deep", "I'll now need to mix the potion, mmh, so bear with me a moment...");
Symbol 610 MovieClip [c_shaman] Frame 94
Say("", "norm", "Mmh. I am done. There is enough brew here to last a while, but I'll need to bottle it for you if you wish to take it with you, mmh. How many potions would you like?");
_root.cont.Shaman.DrawFrame("s1");
Symbol 610 MovieClip [c_shaman] Frame 95
options = [{em:"grin", goto:"ch3get4", T:"Four!"}, {em:"grin", goto:"ch3get8", T:"Eight!"}, {em:"grin", goto:"ch3get16", T:"Sixteen!"}, {em:"grin", goto:"ch3get32", T:"Thirty-two!"}];
_root.conv.as.ShowOptions(options);
Symbol 610 MovieClip [c_shaman] Frame 97
GIVEITEM("Oxyale", 4);
Say("", "susp", "Taking a risk, eh? Or are you so sure that you will succeed the first time around, young ones, mmh? No matter; you can easily return to me for more when you run out if need be.");
Symbol 610 MovieClip [c_shaman] Frame 98
gotoAndStop ("ch3gotpotions");
Symbol 610 MovieClip [c_shaman] Frame 100
GIVEITEM("Oxyale", 8);
Say("", "smile", "Wise, wise... Enough for each of your party members for one trip there and one trip back. Sensible. Mmh.");
Symbol 610 MovieClip [c_shaman] Frame 101
gotoAndStop ("ch3gotpotions");
Symbol 610 MovieClip [c_shaman] Frame 103
GIVEITEM("Oxyale", 16);
Say("", "susp", "Mmh... Excessive, perhaps? But no matter, it is better to be safe than to be sorry, and there is enough here for far more than what you ask, mmh.");
Symbol 610 MovieClip [c_shaman] Frame 104
gotoAndStop ("ch3gotpotions");
Symbol 610 MovieClip [c_shaman] Frame 106
GIVEITEM("Oxyale", 32);
Say("", "angr", "Mmmh... Your greed will be your downfall, young one; mark my words on this.");
Symbol 610 MovieClip [c_shaman] Frame 107
gotoAndStop ("ch3gotpotions");
Symbol 610 MovieClip [c_shaman] Frame 109
Say("", "norm", "Drink these potions, and you will be able to breathe water as if it were air for a limited time. This will be sufficient to travel across the bottom of Lake Qur and get into the Water Temple, which, I have heard, is not submerged itself, so you'll be able to breathe once you are there.");
Symbol 610 MovieClip [c_shaman] Frame 110
Say("", "norm", "Return to me if ever you run out of potions, and I shall see what I can do about supplying you with more.");
Symbol 610 MovieClip [c_shaman] Frame 111
Say("", "smile", "Now, mmh... Best of luck to you, young ones.");
Symbol 610 MovieClip [c_shaman] Frame 112
END();
Symbol 610 MovieClip [c_shaman] Frame 115
if (_root.HasItem("Oxyale") < 4) {
Say("", "norm", "You have run out of potions, mmh? Here, you can have these, then. Please do be more careful this time. Do not foolishly waste them.");
GIVEITEM("Oxyale", 4);
} else {
Say("", "norm", "I will give you more breathing potions if you NEED them, but it would seem that you have enough for now.");
}
Symbol 610 MovieClip [c_shaman] Frame 116
END();
Symbol 610 MovieClip [c_shaman] Frame 119
Say("", "shok", "By the gods... You have it! You hold the Water Crystal in your hands! Mmh! Such amazing power you hold there, young one. Do not forget that.");
Symbol 610 MovieClip [c_shaman] Frame 120
Say("", "norm", "If you still wish to seek out the other crystals, mmh, then you will have to travel around, asking other people about their whereabouts. It is true that I know the locations of them all, mmh, but I simply will not be more of a part of this than I already have, especially if something ill is to come of it, directly or indirectly. I am sorry, but this is the way it must be.");
Symbol 610 MovieClip [c_shaman] Frame 121
Say("", "norm", "I still have some of the Oxyale remaining, should you ever require any to go back down to the Water Temple. Merely return here and ask.");
Symbol 610 MovieClip [c_shaman] Frame 122
GameData.plotVars.GSHAMANch3 = 4;
END();
Symbol 611 MovieClip [c_Ypriest] Frame 1
if (GameData.CHAPTER == 3) {
if (HASPLOTITEM("Hair Tonic")) {
gotoAndStop ("hairtonic");
} else {
gotoAndStop ("ch3");
}
return(undefined);
}
if (GameData.CHAPTER == 1) {
gotoAndStop ("ch1");
return(undefined);
}
if ((GameData.plotVars.MORIC_BEATEN != null) && (GameData.plotVars.YPRIEST == null)) {
gotoAndStop ("zombie_reward");
} else if (GameData.plotVars.ZOMBIES == "CANONIA") {
gotoAndStop ("zombies_canonia");
} else if (GameData.plotVars.ZOMBIES == "GOZNOR") {
gotoAndStop((HASPLOTITEM("SewerKey") ? "zombies2" : "zombies1"));
} else {
gotoAndStop ("ch2");
}
Symbol 611 MovieClip [c_Ypriest] Frame 2
Say("", "smile", "Hello there, lads. May YALORT not smite you this day. ...Can I be of particular assistance?");
Symbol 611 MovieClip [c_Ypriest] Frame 3
options = [{em:"susp", goto:"A1a", T:"Well, I need healing..."}, {em:"susp", goto:"A1b", T:"Who's YALORT?"}];
_root.conv.as.ShowOptions(options);
Symbol 611 MovieClip [c_Ypriest] Frame 5
HEAL();
Say("", "smile", "By the Powers of YALORT, your wounds are gone. Fare thee well, children!");
Symbol 611 MovieClip [c_Ypriest] Frame 6
END();
Symbol 611 MovieClip [c_Ypriest] Frame 8
Say("", "susp", "Surely you jest, children? EVERYONE knows that YALORT is the One True Deity and our eternal benefactor! He is the Eternal Dragon who created the world, and grants priests such as myself magical power! You should know this, children!");
Symbol 611 MovieClip [c_Ypriest] Frame 9
Say("PC", "deep", "Well, I was just being silly...");
Symbol 611 MovieClip [c_Ypriest] Frame 10
Say("", "norm", "Yes, I thought as much. But no worry! A sense of humour is a good thing!");
Symbol 611 MovieClip [c_Ypriest] Frame 11
END();
Symbol 611 MovieClip [c_Ypriest] Frame 13
Say("", "smile", "Oh, hello there, Mardek! It's nice to see you back in Goznor again. Be sure to give your mother a visit, alright? I imagine she's rather lonely, with both you and your father gone...");
Symbol 611 MovieClip [c_Ypriest] Frame 14
Say("", "smile", "Also, may the blessings of YALORT be upon you wherever you may venture.");
Symbol 611 MovieClip [c_Ypriest] Frame 15
HEAL();
END();
Symbol 611 MovieClip [c_Ypriest] Frame 17
Say("", "angr", "Foul fiends of the night! You may have finally broken into this sacred temple of YALORT, but-");
Symbol 611 MovieClip [c_Ypriest] Frame 18
Say("", "grin", "...Wait. You're not undead. That's a great relief, Mardek!");
Symbol 611 MovieClip [c_Ypriest] Frame 19
Say("PC", "susp", "Well, no we're not, but is everyone else okay?!?");
Symbol 611 MovieClip [c_Ypriest] Frame 20
Say("Medium Priest Gallovar", "deep", "Worry not; everyone is safely locked away in their homes! The zombies are too dim-witted and feeble to force their way inside, and were slow enough when they arrived to give everyone a chance.");
Symbol 611 MovieClip [c_Ypriest] Frame 21
Say("", "norm", "But they just keep coming! I need to go and stop them! I was just about to set off...");
Symbol 611 MovieClip [c_Ypriest] Frame 22
Say("PC", "grin", "No! We can do it instead!");
Symbol 611 MovieClip [c_Ypriest] Frame 23
Say("Medium Priest Gallovar", "susp", "You... you would? I'll not object to such an offer! You're strong; you should be able to handle it... whatever it is that's causing them to rise as they are.");
Symbol 611 MovieClip [c_Ypriest] Frame 24
Say("", "norm", "Here... You'll need this generic rusted key. With it, you can unlock the big door in the sewers. Deeper in the sewers, you'll find an entrance to the old Catacombs beneath the village, where many generations of corpses are stored. I'm certain this is where the undead are swarming from!");
GIVEPLOTITEM("SewerKey");
Symbol 611 MovieClip [c_Ypriest] Frame 25
Say("Deugan", "susp", "Wait... If we need to get past a locked door to get *there*, how is it that they can come *here* freely? And why is the only way to get to the catacombs from the filthy *sewers* anyway? Is that any way to honour the dead?");
Symbol 611 MovieClip [c_Ypriest] Frame 26
Say("", "shok", "Now is not the time for questions! You need to head off and save the village!");
Symbol 611 MovieClip [c_Ypriest] Frame 27
Say("PC", "grin", "Let's go, then!");
Symbol 611 MovieClip [c_Ypriest] Frame 28
END();
Symbol 611 MovieClip [c_Ypriest] Frame 32
Say("", "norm", "You must go to the sewers and use that key I gave you on the door there. You'll reach the Catacombs, which I'm sure is where the undead are swarming from!");
Symbol 611 MovieClip [c_Ypriest] Frame 33
HEAL();
Say("", "smile", "May YALORT not decide to let you die on your venture.");
Symbol 611 MovieClip [c_Ypriest] Frame 34
END();
Symbol 611 MovieClip [c_Ypriest] Frame 37
Say("", "deep", "The zombies appear to be attacking Canonia, now... Why are you allowing this to happen, YALORT?! Surely we angered You in some way!");
Symbol 611 MovieClip [c_Ypriest] Frame 38
HEAL();
Say("", "smile", "Hopefully, though, you will be able to save us all again, Mardek and friends! You can go with YALORT's blessing!");
Symbol 611 MovieClip [c_Ypriest] Frame 39
END();
Symbol 611 MovieClip [c_Ypriest] Frame 42
Say("", "grin", "Bravo, bravo, and huzzah! Here the conquering Hero comes! I knew you could save us from those zombies, Mardek! Your father would have been very proud of you indeed!");
Symbol 611 MovieClip [c_Ypriest] Frame 43
GameData.plotVars.YPRIEST = 1;
GIVEITEM("YalortianAmulet");
Say("", "smile", "So glad am I of your success that I can't just let you walk away unrewarded... YALORT generally doesn't approve of gift-giving, but what does He care about what His priests do? So here, I'd like you to take this amulet. It's not much, but it's better than nothing!");
Symbol 611 MovieClip [c_Ypriest] Frame 44
Say("", "norm", "Now, I won't ramble on at you for ages like some other people probably would... So go now! Continue being a Hero! You could well be the next Social Fox! I'd certainly count on it! May you go with YALORT's blessings, and mine!");
Symbol 611 MovieClip [c_Ypriest] Frame 45
END();
Symbol 611 MovieClip [c_Ypriest] Frame 47
Say("", "sad", "Oh... Hello there, Sir Mardek. I hope you're doing well. Your visits are really appreciated; you're gone most of the time and your mother is all alone, and Deugan's mother moreso now. Please make sure you see them both before you leave again.");
Symbol 611 MovieClip [c_Ypriest] Frame 48
if (GameData.plotVars.TRADE_RNOVEL) {
Say("", "grin", "I really must thank you again for the $Hair Tonic%, Mardek! That stuff is like liquid magic! My hair has never felt better!");
} else {
Say("", "susp", "On an entirely unrelated note, does my hair look frazzled and flat lately? I do so care about my hair! Oh, I must look like SUCH a tramp with it in this state! I'd kill for some kind of hair product if I wasn't a priest!");
}
Symbol 611 MovieClip [c_Ypriest] Frame 49
END();
Symbol 611 MovieClip [c_Ypriest] Frame 51
Say("", "susp", "Say, Sir Mardek... Is that a $Hair Tonic% that you have with you there? I could really use that, you know. You don't need it, right? I mean, you wear that ghastly he- I mean, that... that, uh... yes, that ghastly helmet that you insist on wearing. My lovely flowing locks, on the other hand, are sick, and need that wondrous elixir! Gift it to me, oh please?");
Symbol 611 MovieClip [c_Ypriest] Frame 52
options = [{em:"grin", goto:"give", T:"Well, okay!"}, {em:"deep", goto:"dont_give", T:"I don't want to give it to you."}];
_root.conv.as.ShowOptions(options);
Symbol 611 MovieClip [c_Ypriest] Frame 54
Say("", "sad", "Oh, but you're supposed to be a Knight, Sir Mardek! Do us a favour, won't you? I need it but you don't seem to, after all! YALORT knows I've done enough for you over the years!");
Symbol 611 MovieClip [c_Ypriest] Frame 55
END();
Symbol 611 MovieClip [c_Ypriest] Frame 57
Say("", "grin", "Oh, blessed be ye, good knight! I thank you mightily for this. My self-confidence will be restored once more! I'll even be able to go out on the streets again without feeling like the worst type of vagrant!");
TAKEPLOTITEM("Hair Tonic");
Symbol 611 MovieClip [c_Ypriest] Frame 58
Say("", "smile", "I have little to give you in return, so, um, er... how about this $Romance Novel%? It's, uhm... well, it gets very lonely in here at times you see, and, uhm... it's... really saucy? Yes. Ahem. Maybe you'll enjoy it if you give it a try!");
GIVEPLOTITEM("Romance Novel");
GameData.plotVars.TRADE_RNOVEL = true;
Symbol 611 MovieClip [c_Ypriest] Frame 59
Say("PC", "susp", "Well, I didn't know you were into this sort of thing, Gallovar! I am surprised!");
Symbol 611 MovieClip [c_Ypriest] Frame 60
Say("", "embr", "Yes, er... you won't TELL anyone, will you? Please don't. Uhm. Yes. Thank you for the $Hair Tonic%. Good day. May, uh... may YALORT bless you.");
Symbol 611 MovieClip [c_Ypriest] Frame 61
END();
Symbol 631 MovieClip Frame 1
if (done) {
return(undefined);
}
done = true;
_alpha = 0;
onEnterFrame = function () {
if ((random(31) == 1) && (_alpha <= 0)) {
gotoAndStop(random(9) + 2);
_alpha = 100;
}
if (_alpha > 0) {
_alpha = (_alpha - 15);
}
};
Symbol 637 MovieClip Frame 1
gotoAndStop(GameData.CHAPTER);
Symbol 643 MovieClip [CUT_GdM] Frame 1
onEnterFrame = function () {
_root.MUSIC.setVolume(_root.MUSIC.getVolume() - 1);
};
Symbol 643 MovieClip [CUT_GdM] Frame 100
onEnterFrame = null;
_root.MUSIC.setVolume(100);
_root.playMusic("GdM");
_quality = "MEDIUM";
CUTSPEAKERS = {};
var GdM = [["Moric", "EARTH"], ["Qualna", "ETHER"], ["Gaspar", "FIRE"], ["Balthazar", "WATER"], ["Melchior", "AIR"], ["Anu", "DARK"]];
var g = 0;
while (g < GdM.length) {
CUTSPEAKERS[GdM[g][0]] = {stats:{name:GdM[g][0], model:GdM[g][0].toLowerCase(), elem:GdM[g][1], element:GdM[g][1]}};
g++;
}
count = 0;
Symbol 643 MovieClip [CUT_GdM] Frame 174
stop();
_root.Speak(CUTSPEAKERS.Balthazar.stats, "Balthazar", "c_GdM");
Symbol 648 MovieClip Frame 1
if (_root.SAUCER_FALLING_DYING) {
_visible = false;
}
Symbol 665 MovieClip [CUTSCENE_EndCh2] Frame 30
_root.playMusic("none");
_root.playSFX("hit_2HSWORDS");
GameData.plotVars.NO_BATTLE_MUSIC = false;
TempVars.NO_SAVE = false;
TempVars.DONT_DRAW_ALLIES = false;
TempVars.DONT_SCROLL_MAP = false;
_quality = "MEDIUM";
_root.cont._visible = false;
END();
Symbol 665 MovieClip [CUTSCENE_EndCh2] Frame 293
_root.playSFX("boom3");
Symbol 665 MovieClip [CUTSCENE_EndCh2] Frame 398
stop();
_root.lastDir = "n";
GameData.plotVars.MORIC_BEATEN = 99;
GameData.plotVars.SUNSET = "NIGHT";
GameData.plotVars.ZOMBIES = null;
var p = 1;
while (p < 4) {
GameData.plotVars.Allies[_root.PCstats[p].name] = _root.PCstats[p];
_root.PCstats[p] = null;
p++;
}
_root.OnMaxFade = function () {
_root.CUTSCENE1.removeMovieClip();
};
_root.AreaTrans(["gc_ThroneRoom", 6, 10], 10);
_root.cont._visible = true;
Symbol 683 Button
on (press) {
gotoAndPlay ("cut1_end");
}
Symbol 734 MovieClip [CUTSCENE1] Frame 29
_root.playMusic("none");
Symbol 734 MovieClip [CUTSCENE1] Frame 30
_root.playMusic("Intro", {NOLOOP:true});
_quality = "MEDIUM";
storytext = "There is a Dark Fortress atop a Craggy Peak in the far-off Badlands...";
Symbol 734 MovieClip [CUTSCENE1] Frame 259
storytext = "...Where few men dare tread.";
Symbol 734 MovieClip [CUTSCENE1] Frame 372
storytext = "Those that do, never return...";
Symbol 734 MovieClip [CUTSCENE1] Frame 644
storytext = "For a mighty beast...";
Symbol 734 MovieClip [CUTSCENE1] Frame 708
storytext = "...a DRAGON...";
Symbol 734 MovieClip [CUTSCENE1] Frame 755
storytext = "...makes its lair here.";
Symbol 734 MovieClip [CUTSCENE1] Frame 866
storytext = "The dragon is fond of stealing maidens from their homes...";
Symbol 734 MovieClip [CUTSCENE1] Frame 957
storytext = "...and has taken a beautiful Princess from one of Belfan's greatest Kingdoms!";
Symbol 734 MovieClip [CUTSCENE1] Frame 1214
storytext = "The Damsel in Distress desperately calls out for help!";
Symbol 734 MovieClip [CUTSCENE1] Frame 1320
storytext = "There are only two brave men who can come to her rescue...";
Symbol 734 MovieClip [CUTSCENE1] Frame 1407
storytext = "Two Mighty Heroes; the greatest in the land...";
Symbol 734 MovieClip [CUTSCENE1] Frame 1775
storytext = "And luckily, they're on their way to save the Princess right now!";
Symbol 734 MovieClip [CUTSCENE1] Frame 2007
_root.playMusic("MightyHeroes");
_root.AreaTrans(["DL_entr", 5, 10]);
stop();
_root.OnMaxFade = function () {
_root.CUTSCENE1.removeMovieClip();
};
Symbol 744 MovieClip Frame 1
stop();
Symbol 760 MovieClip [CUTSCENE2] Frame 100
_quality = "MEDIUM";
_root.cont._visible = false;
Symbol 760 MovieClip [CUTSCENE2] Frame 406
_root.playSFX("boom3");
Symbol 760 MovieClip [CUTSCENE2] Frame 470
_root.cont._visible = true;
GameData.plotVars.SUNSET = false;
AfterActions();
_root.playMusic("Goznor");
Symbol 760 MovieClip [CUTSCENE2] Frame 500
stop();
this.removeMovieClip();
Symbol 825 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.neck ? (_parent.stats.neck) : ((_parent.stats.face2 ? (_parent.stats.face2) : ((_parent.stats.face ? (_parent.stats.face) : 1))))));
}
if (donealready) {
return(undefined);
}
donealready = true;
stop();
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 889 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.armour ? (_parent.stats.armour) : "none"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 931 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? ((((_parent._parent.stats.face.length == 2) && (isNaN(_parent._parent.stats.face))) ? (substring(_parent._parent.stats.face, 1, 1)) : (_parent._parent.stats.face))) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 939 MovieClip Frame 1
function Stuff() {
var _local3 = (_parent._parent._parent.stats.ethnicity ? (_parent._parent._parent.stats.ethnicity) : ((_parent._parent.stats.ethnicity ? (_parent._parent.stats.ethnicity) : 1)));
this.gotoAndStop(_local3);
}
stop();
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1001 MovieClip Frame 1
char2lips = {a:2, b:3, c:4, d:6, e:2, f:5, g:4, h:2, i:2, j:4, k:2, l:6, m:3, n:2, o:7, p:3, q:2, r:4, s:4, t:4, u:7, v:5, w:3, x:4, y:2, z:4};
moving = 0;
onEnterFrame = function () {
if (_root.conv.toShow.length > 0) {
moving++;
if (moving < 2) {
return(undefined);
}
moving = 0;
var _local3 = (substring(_root.conv.toShow, 1, 1)).toLowerCase();
if (char2lips[_local3] != null) {
this.gotoAndStop(char2lips[_local3]);
return(undefined);
}
}
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : 1));
};
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : 1));
Symbol 1005 MovieClip Frame 1
if (this._parent._parent.NO_BLINK) {
stop();
}
Symbol 1026 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.eyes ? (_parent._parent.stats.eyes) : 2));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1060 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.eyebrows ? (_parent._parent.stats.eyebrows) : ((_parent._parent.stats.face ? ((((_parent._parent.stats.face.length == 2) && (isNaN(_parent._parent.stats.face))) ? (substring(_parent._parent.stats.face, 2, 1)) : (_parent._parent.stats.face))) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1140 MovieClip Frame 1
function Stuff() {
var _local3 = _parent._parent.stats;
this.gotoAndStop((_local3.hair ? (_local3.hair) : ((_local3.face ? (_local3.face) : 1))));
}
Stuff();
Symbol 1140 MovieClip Frame 19
if (_parent._parent._parent.transform.matrix.a < 0) {
nextFrame();
}
Symbol 1140 MovieClip Frame 25
if (GameData.CHAPTER != 1) {
nextFrame();
}
Symbol 1182 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1183 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats[0]) : ((_parent.ID ? (_root.PCstats[_parent.ID]) : ((_root.conv.as.cSpkr[2] ? ({face:_root.conv.as.cSpkr[2]}) : (_root.conv.SPEAKING.props.stats))))))));
head.hair.gotoAndStop((stats.hair ? (stats.hair) : (stats.face)));
head.face.gotoAndStop(stats.face);
torso.gotoAndStop(stats.armour);
bg.gotoAndStop((stats.elembg ? (stats.elembg) : 1));
}
Stuff();
Symbol 1215 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.armour ? (_parent.stats.armour) : "none"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1227 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1261 MovieClip Frame 1
char2lips = {a:2, b:3, c:4, d:6, e:2, f:5, g:4, h:2, i:2, j:4, k:2, l:6, m:3, n:2, o:7, p:3, q:2, r:4, s:4, t:4, u:7, v:5, w:3, x:4, y:2, z:4};
moving = 0;
onEnterFrame = function () {
if (_root.conv.toShow.length > 0) {
moving++;
if (moving < 2) {
return(undefined);
}
moving = 0;
var _local3 = (substring(_root.conv.toShow, 1, 1)).toLowerCase();
if (char2lips[_local3] != null) {
this.gotoAndStop(char2lips[_local3]);
return(undefined);
}
}
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : 1));
};
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : 1));
Symbol 1290 MovieClip Frame 1
char2lips = [["a", 2], ["b", 3], ["c", 4], ["d", 6], ["e", 2], ["f", 5], ["g", 4], ["h", 2], ["i", 2], ["j", 4], ["k", 2], ["l", 6], ["m", 3], ["n", 2], ["o", 7], ["p", 3], ["q", 2], ["r", 4], ["s", 4], ["t", 4], ["u", 7], ["v", 5], ["w", 3], ["x", 4], ["y", 2], ["z", 4]];
moving = 0;
onEnterFrame = function () {
if (_root.conv.toShow.length > 0) {
moving++;
if (moving < 2) {
return(undefined);
}
moving = 0;
var _local4 = (substring(_root.conv.toShow, 1, 1)).toLowerCase();
var _local3 = 0;
while (_local3 < 26) {
if (_local4 == char2lips[_local3][0]) {
this.gotoAndStop(char2lips[_local3][1]);
return(undefined);
}
_local3++;
}
}
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : 1));
};
Symbol 1291 MovieClip Frame 1
function Stuff() {
var _local3 = (_parent._parent._parent.stats.mouth ? (_parent._parent._parent.stats.mouth) : ((_parent._parent.stats.mouth ? (_parent._parent.stats.mouth) : 1)));
this.gotoAndStop(_local3);
}
stop();
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1310 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.eyebrows ? (_parent._parent.stats.eyebrows) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1405 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.hair ? (_parent._parent.stats.hair) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1412 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.helmet ? (_parent._parent.stats.helmet) : "none"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1491 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1491 MovieClip Frame 60
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1492 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats[0]) : ((_parent.ID ? (_root.PCstats[_parent.ID]) : ((_root.conv.as.cSpkr[2] ? ({face:_root.conv.as.cSpkr[2]}) : (_root.conv.SPEAKING.props.stats))))))));
head.hair.gotoAndStop((stats.hair ? (stats.hair) : (stats.face)));
head.face.gotoAndStop(stats.face);
torso.gotoAndStop(stats.armour);
bg.gotoAndStop((stats.elembg ? (stats.elembg) : 1));
}
Stuff();
Symbol 1498 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? ((((_parent._parent.stats.face.length == 2) && (isNaN(_parent._parent.stats.face))) ? (substring(_parent._parent.stats.face, 1, 1)) : (_parent._parent.stats.face))) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1506 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? ((((_parent._parent.stats.face.length == 2) && (isNaN(_parent._parent.stats.face))) ? (substring(_parent._parent.stats.face, 1, 1)) : (_parent._parent.stats.face))) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1526 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1527 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats_1) : ((_parent.ID ? (_root["PCstats_" + _parent.ID]) : ((_root.conv.as.cSpkr[2] ? ({face:_root.conv.as.cSpkr[2]}) : (_root.conv.SPEAKING.props.stats))))))));
head.hair.gotoAndStop(stats.face);
head.face.gotoAndStop(stats.face);
torso.gotoAndStop(stats.armour);
bg.gotoAndStop((stats.elembg ? (stats.elembg) : 1));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1539 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.robe ? (_parent.stats.robe) : "none"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1549 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face ? (_parent._parent.stats.face) : (_parent._parent.stats.robe)));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1557 MovieClip Frame 1
function Stuff() {
this.gotoAndStop(_parent._parent.stats.eye);
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1563 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1564 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats_1) : ((_parent.ID ? (_root["PCstats_" + _parent.ID]) : ((_root.conv.as.cSpkr[2] ? ({face:_root.conv.as.cSpkr[2]}) : (_root.conv.SPEAKING.props.stats))))))));
head.hair.gotoAndStop(stats.face);
head.face.gotoAndStop(stats.face);
torso.gotoAndStop(stats.armour);
bg.gotoAndStop((stats.elembg ? (stats.elembg) : 1));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1570 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.face2 ? (_parent.stats.face2) : ((_parent.stats.face ? (_parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1579 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.armour ? (_parent.stats.armour) : "none"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1585 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent._parent._parent.stats.face2 ? (_parent._parent._parent._parent.stats.face2) : ((_parent._parent._parent._parent.stats.face ? (_parent._parent._parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1586 MovieClip Frame 1
function StopCheck() {
if ((_root.conv.toShow.length == 0) || (!_root.conv._visible)) {
stop();
stopped = true;
return(undefined);
}
play();
}
stop();
stopped = false;
onEnterFrame = function () {
if (stopped && (_root.conv.toShow.length > 0)) {
stopped = false;
play();
}
};
StopCheck();
Symbol 1586 MovieClip Frame 6
StopCheck();
Symbol 1586 MovieClip Frame 11
StopCheck();
Symbol 1586 MovieClip Frame 17
StopCheck();
Symbol 1586 MovieClip Frame 30
StopCheck();
Symbol 1598 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent._parent._parent.stats.face2 ? (_parent._parent._parent._parent.stats.face2) : ((_parent._parent._parent._parent.stats.face ? (_parent._parent._parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1604 MovieClip Frame 1
if (this._parent._parent._parent._parent.NO_BLINK) {
stop();
}
Symbol 1620 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1639 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1640 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1641 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats_1) : ((_parent.ID ? (_root["PCstats_" + _parent.ID]) : ((_parent._parent.as.cSpkr[2] ? ({face:_parent._parent.as.cSpkr[2]}) : (_parent._parent.SPEAKING.props.stats))))))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1646 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent.stats.face2 ? (_parent.stats.face2) : ((_parent.stats.face ? (_parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1650 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent._parent.stats.face2 ? (_parent._parent._parent.stats.face2) : ((_parent._parent._parent.stats.face ? (_parent._parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1651 MovieClip Frame 1
function StopCheck() {
if ((_root.conv.toShow.length == 0) || (!_root.conv._visible)) {
stop();
stopped = true;
return(undefined);
}
play();
}
stop();
stopped = false;
onEnterFrame = function () {
if (stopped && (_root.conv.toShow.length > 0)) {
stopped = false;
play();
}
};
StopCheck();
Symbol 1651 MovieClip Frame 6
StopCheck();
Symbol 1651 MovieClip Frame 11
StopCheck();
Symbol 1651 MovieClip Frame 17
StopCheck();
Symbol 1657 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1662 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.eyes ? (_parent._parent.stats.eyes) : 1));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1669 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : 1))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1684 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_parent._parent.stats.face2 ? (_parent._parent.stats.face2) : ((_parent._parent.stats.face ? (_parent._parent.stats.face) : "none"))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1685 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1686 MovieClip Frame 1
function Stuff() {
stats = (_parent.STATS ? (_parent.STATS) : ((_parent.isPC ? (_root.PCstats_1) : ((_parent.ID ? (_root["PCstats_" + _parent.ID]) : ((_parent._parent.as.cSpkr[2] ? ({face:_parent._parent.as.cSpkr[2]}) : (_parent._parent.SPEAKING.props.stats))))))));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1689 MovieClip Frame 1
if (_parent._parent.IS_A_SAVE_SLOT) {
stop();
}
Symbol 1697 MovieClip Frame 1
function Stuff() {
this.gotoAndStop((_root.conv.em ? (_root.conv.em) : "norm"));
}
Stuff();
onEnterFrame = function () {
Stuff();
};
Symbol 1701 MovieClip [_portrait] Frame 1
with_avatar = {s_mardek:{t:"huM", face:"mardek", eyes:"blue", armour:"PlateMail", eyebrows:"brown"}, s_mardek_dream:{t:"Anu", robe:"platemail", face:"void", eye:"L", elembg:"LIGHT"}, s_mardek_hero:{t:"huM", face:"mardek_hero", eyes:"brown", armour:"mardek_hero"}, s_deugan_hero:{t:"huM", face:"deugan_hero", eyes:"green", armour:"deugan_hero"}, s_mardek_child:{t:"child", face:1, eyes:"brown", armour:"Tunic"}, s_deugan_child:{t:"child", face:"deugan", eyes:"green", armour:"Tunic2"}, s_rm_mardek_child:{t:"child", face:1, eyes:"purelight", armour:"Tunic", elembg:"LIGHT", voice:"GdM_LIGHT"}, s_rm_mardek_soldier:{t:"huM", hair:"mardek_soldier", face:1, eyes:"purelight", armour:"Soldier", elembg:"LIGHT", voice:"GdM_LIGHT"}, s_rm_mardek:{t:"huM", face:"mardek", eyes:"purelight", armour:"PlateMail", elembg:"LIGHT", voice:"GdM_LIGHT", eyebrows:"brown"}, s_rm_mardek_dream:{t:"Anu", robe:"platemail", face:"void", eye:"L", elembg:"LIGHT", voice:"GdM_LIGHT"}, s_mardek_soldier:{t:"huM", hair:"mardek_soldier", face:1, eyes:"brown", armour:"Soldier"}, s_deugan_soldier:{t:"huM", hair:"deugan_soldier", face:1, eyes:"green", eyebrows:"blonde", armour:"Soldier"}, s_donovan:{t:"huM", hair:"donovan_bearded", face:1, eyes:"blue", eyebrows:"brown", armour:"Pyromancer"}, s_donovan_soldier:{t:"huM", hair:"donovan", face:1, eyes:"blue", eyebrows:"brown", armour:"Soldier"}, s_steele_soldier:{t:"huM", hair:"steele", face:"manly2", eyes:"black", eyebrows:"black", armour:"Soldier"}, s_emela_soldier:{t:"huF", hair:"emela", face:"emela", eyes:"Neon_blue", eyebrows:"emela", armour:"Soldier", facemask:4}, s_emela_guardian:{t:"huF", hair:"emelaG", face:"emela", eyes:"Neon_blue", eyebrows:"emela", armour:"none", facemask:4}, s_sharla:{t:"huF", hair:"sharla", face:1, eyes:"blue", eyebrows:"blonde", armour:"Aeromancer", facemask:4}, s_sharla_soldier:{t:"huF", hair:"sharla", face:1, eyes:"blue", eyebrows:"blonde", armour:"Soldier", facemask:4}, s_muriance:{t:"huM", hair:"muriance", face:"arab", eyes:"gold", eyebrows:"black", armour:"LeatherArmour", ethnicity:3, facemask:2}, s_elwyen_child:{t:"huF", hair:"elwyen", face:1, eyes:"blue", eyebrows:"blue", armour:"babyblue"}, s_elwyen:{t:"huF", hair:"elwyen2", face:1, eyes:"blue", eyebrows:"blue", armour:"babyblue"}, s_vehrn:{t:"huM", hair:"vehrn", face:"manly3", eyes:"green", eyebrows:"vehrn", armour:"vehrn", facemask:3}, s_zach:{t:"huM", hair:"bald", face:"neegruh", eyes:"black", eyebrows:"black", armour:"hidearmour", ethnicity:2}, s_bartholio:{t:"huM", hair:"bartholio", face:"bartholio", eyes:"brown", eyebrows:"bartholio", armour:"bartholio"}, s_vennie:{t:"huM", hair:"vennie", face:"vennie", eyes:"grey", eyebrows:"brown", armour:"vennie"}, s_aalia:{t:"huF", hair:"aalia", face:"aalia", eyes:"blue", eyebrows:"blonde", armour:"aalia"}, s_bernard:{t:"huM", hair:"bernard", face:"ancient", eyes:"grey", eyebrows:"bernard", armour:"bernard"}, s_sslenck:{t:"Rep", face:"sslenck", eyes:"orange", armour:"sslenck"}, s_steele:{t:"huM", hair:"steele2", face:"steele2", eyes:"black", eyebrows:"black", armour:"steele2"}, s_solaar:{t:"Wlf", face:"solaar", eyes:"solaar", voice:"Aruan"}, s_saul:{t:"huM", face:"saul", eyes:"grey", armour:"saul", hair:4, eyebrows:"black", ethnicity:"pallid"}, s_robot:{t:"robot", voice:"ROBO"}, s_deugan_lw:{t:"huM", hair:"lonewolf", face:1, neck:"lonewolf", eyes:"green", eyebrows:"blonde", armour:"lonewolf"}, s_arab1:{t:"huM", face:"arab", hair:"arab1", eyes:"black", eyebrows:"black", armour:"arab1", ethnicity:3}, s_arab2:{t:"huM", face:"arab", hair:"arab2", eyes:"black", eyebrows:"black", armour:"arab2", ethnicity:3}, s_arabguard:{t:"huM", face:"arab", hair:"arabguard", eyes:"green", eyebrows:"black", armour:"arabguard", ethnicity:3}, s_arabf1:{t:"huF", face:"arab", hair:"arabf1", eyes:"black", eyebrows:"black", armour:"none_arab", ethnicity:3}, s_arabf2:{t:"huF", face:"arab", hair:"arabf2", eyes:"green", eyebrows:"black", armour:"arabf2", ethnicity:3}, s_arabshaman:{t:"huM", face:"arab", hair:"arabShaman", eyes:"blue", eyebrows:"black", armour:"arabShaman", ethnicity:3}, s_bandit:{t:"huM", face:1, hair:"bandit", eyes:"black", eyebrows:"brown", armour:"LeatherArmour"}, s_boy:{t:"child", face:3, eyes:"brown", eyebrows:"blonde", armour:"Tunic_brown"}, s_captain:{t:"huM", face:"1", hair:"jacques", eyes:"blue", eyebrows:"blonde", armour:"Soldier"}, s_captain2:{t:"huM", face:"middleaged", hair:"bigbeard", eyes:"brown", eyebrows:"brown", armour:"Soldier"}, s_clave:{t:"huM", face:"clave", hair:"bald", eyes:"clave", eyebrows:"clave", armour:"clave", ethnicity:"clave"}, s_common:{t:"huM", face:1, eyes:"brown", armour:"Tunic"}, s_cultling:{t:"huM", face:1, hair:4, eyes:"green", eyebrows:"brown", armour:"YalortianRobe"}, s_curator:{t:"huM", face:"curator", hair:"curator", eyes:"blue", eyebrows:"black", armour:"bernard", ethnicity:3}, s_derek:{t:"huM", face:"middleaged", hair:"derek", eyes:"grey", eyebrows:"brown", armour:"Blacksmith"}, s_enki:{t:"huM", face:1, hair:"enki", eyes:"gold", eyebrows:"brown", armour:"NinevehnGi"}, s_gloria:{t:"huF", hair:"gloria", face:1, eyes:"green", eyebrows:"orange", armour:"orangedress"}, s_gloria17:{t:"huF", hair:"gloria", face:1, eyes:"green", eyebrows:"orange", armour:"orangedress"}, s_gope:{t:"huM", face:1, hair:"gope", eyes:"black", eyebrows:"orange", armour:"gope", neck:"gope"}, s_hermit:{t:"huM", face:"oldaged_arab", hair:"hermit", eyes:"grey", eyebrows:"hermit", armour:"none_arab", ethnicity:3}, s_inventor:{t:"huM", face:1, hair:"inventor", eyes:"blue", eyebrows:"brown", armour:"inventor"}, s_lilanea:{t:"huF", face:1, eyes:"brown", eyebrows:1, hair:"lilanea", armour:"Tunic"}, s_king:{t:"huM", face:"middleaged", hair:"king", eyes:((((GameData.CHAPTER == 3) && (int(GameData.plotVars.CH3KING) < 2)) && (GameData.plotVars.DONE_CH3_INTRO)) ? "qualna" : "blue"), eyebrows:"white", armour:"King", voice:(((GameData.CHAPTER == 3) && (int(GameData.plotVars.CH3KING) < 2)) ? "GdM_ETHER" : null)}, s_man1:{t:"huM", face:"middleaged", hair:"man1", eyes:"brown", eyebrows:"brown", armour:"Tunic_Brown"}, s_man2:{t:"huM", face:2, eyes:"brown", armour:"BlackShirt"}, s_man3:{t:"huM", face:"oldaged", hair:"man3", eyes:"grey", eyebrows:"white", armour:"Tunic_Cream"}, s_miner:{t:"huM", face:"middleaged", hair:"miner", eyes:"brown", eyebrows:"black", armour:"MinerClothes"}, s_mugbert:{t:"child", face:"mugbert", eyes:"brown", eyebrows:"monobrow", armour:"mugbert"}, s_mugbert_adult:{t:"huM", face:"mugbert", eyes:"brown", eyebrows:"monobrow", armour:"mugbert2"}, s_ncaptain:{t:"huM", face:1, hair:"ncaptain", eyes:"purple", eyebrows:"blonde", armour:"SpaceUniformNC", ethnicity:3}, s_ncrew:{t:"huM", face:1, hair:"ncrew", eyes:"brown", eyebrows:"black", armour:"SpaceUniformN", ethnicity:3}, s_polly:{t:"huF", face:"fat", hair:"polly", eyes:"blue", eyebrows:"blonde", armour:"polly"}, s_priestess:{t:"huF", face:"middleaged", hair:"priestess", eyes:"blue", armour:"aalia", eyebrows:"blonde"}, s_princess:{t:"huF", face:"princess", eyes:"blue", armour:"princess"}, s_reptoid:{t:"Rep", face:1, eyes:1, armour:"none"}, s_reptoid_smith:{t:"Rep", face:4, eyes:4, armour:"leather2"}, s_reptoid_warrior:{t:"Rep", face:3, eyes:3, armour:"leatherarmour"}, s_royalknight:{t:"huM", face:1, hair:"goldknight", eyes:"blue", eyebrows:"black", armour:"platemail_gold"}, s_saucerbrother:{t:"huM", face:"middleaged", hair:"saucer", eyes:"brown", eyebrows:"grey", armour:"SaucerBrother"}, s_shaman:{t:"huM", face:"oldaged", hair:"shaman", eyes:"grey", eyebrows:"shaman", armour:"shaman"}, s_shaman2:{t:"huF", face:"zombie", hair:"shaman2", eyes:"purelight", eyebrows:"blonde", armour:"shaman2", ethnicity:"zombie", mouth:"zombie"}, s_shaman3:{t:"huF", face:1, hair:"shaman3", eyes:"green", eyebrows:"brown", armour:"shaman3"}, s_snaketongue:{t:"Rep", face:"evil", eyes:"evil", armour:"robe"}, s_socialfox:{t:"huM", face:"manly", hair:"socialfox", eyes:"green", eyebrows:"orange", armour:"HempenRobe"}, s_solakian:{t:"huM", face:"arab", hair:"solakian", eyes:"gold2", eyebrows:"blonde", armour:"Tunic_cream", ethnicity:3}, s_solhp:{t:"huM", face:"middleagedarab", hair:"solakianHP", eyes:"solak", eyebrows:"grey", armour:"Tunic_cream", ethnicity:3}, s_soldier:{t:"huM", face:"soldier", eyes:"blue", eyebrows:"black", armour:"Soldier"}, s_warpgirl:{t:"huF", face:1, hair:"luft", eyes:"blue", armour:"luft", eyebrows:"blonde"}, s_warpman:{t:"huM", face:1, eyes:"blue", hair:"luft", armour:"luft", eyebrows:"blonde"}, s_wobblescimitare:{t:"huM", face:"wobblescimitare", neck:"arab", hair:"bald", eyes:"black", eyebrows:"black", armour:"wobblescimitare", ethnicity:3}, s_woman:{t:"huF", face:1, eyes:"blue", armour:"Tunic"}, s_woman2:{t:"huF", face:"middleaged", hair:"old1", eyes:"grey", eyebrows:"mousy", armour:"Tunic"}, s_woman3:{t:"huF", face:"oldaged", hair:"old", eyes:"grey", eyebrows:"grey", armour:"HempenRobe2"}, s_woman4:{t:"huF", face:1, hair:15, eyes:"blue", eyebrows:"brown", armour:"Tunic"}, s_ypriest:{t:"huM", face:1, hair:6, eyes:"yalort", eyebrows:"brown", armour:"YalortianRobe"}, s_yhighpriest:{t:"huM", face:"vudu", hair:"vudu", eyes:"yalort", eyebrows:"green", armour:"YalortianRobe", ethnicity:2}, s_zombie:{t:"huM", face:"zombie", hair:"zombie", eyes:"purelight", eyebrows:"black", armour:"ZombieTunic", ethnicity:"zombie", mouth:"zombie"}, s_zombie_warrior:{t:"huM", face:"manly_zombie2", hair:"bald", eyes:"purelight", eyebrows:"black", armour:"ZombiePlatemail", ethnicity:"zombie", mouth:"zombie"}, s_z_socialfox:{t:"huM", face:"manly_zombie", hair:"socialfox", eyes:"yalort", eyebrows:"orange", armour:"HempenRobe", ethnicity:"zombie", mouth:"zombie", voice:"GdM_EARTH"}, s_bartholio_actor:{t:"huM", hair:"bartholio", face:"bartholio", eyes:"brown", eyebrows:"bartholio", armour:"wideshoulders"}, s_vennie_actor:{t:"huM", hair:"dougal", face:"vennie", eyes:"grey", eyebrows:"brown", armour:"Soldier"}, s_aalia_actor:{t:"huF", hair:"aalia_actor", face:"aalia", eyes:"blue", eyebrows:"blonde", armour:"aalia_actor"}, s_arabshaman_galaris:{t:"huM", face:"arab", hair:"arabShaman_galaris", eyes:"blue", eyebrows:"black", armour:"arabShaman_galaris", ethnicity:3}, s_witch:{t:"huF", face:"arab", hair:"witch", eyes:"green", eyebrows:"black", armour:"shaman2", ethnicity:3}, s_rohoph:{t:"Anu", robe:"L", eye:"L", elembg:"LIGHT", voice:"GdM_LIGHT"}, s_moric:{t:"Anu", robe:"black", eye:"green", elembg:"EARTH", voice:"GdM_EARTH"}, s_qualna:{t:"Anu", robe:"red", eye:"red", elembg:"ETHER", voice:"GdM_ETHER"}, s_balthazar:{t:"Anu", robe:"blue", eye:"blue", elembg:"WATER", voice:"GdM_WATER"}, s_gaspar:{t:"Anu", robe:"orange", eye:"orange", elembg:"FIRE", voice:"GdM_FIRE"}, s_melchior:{t:"Anu", robe:"yellow", eye:"yellow", elembg:"AIR", voice:"GdM_AIR"}, s_anu:{t:"Anu", robe:"purple", eye:"purple", elembg:"DARK", voice:"GdM_DARK"}};
stop();
this.blendMode = "layer";
_parent.elemglyph._visible = false;
if (mystats) {
var m = (mystats.monStats.portrait ? (mystats.mdlStats.portrait) : (mystats.model));
if (!with_avatar["s_" + m.toLowerCase()]) {
_visible = false;
}
STATS = with_avatar["s_" + m.toLowerCase()];
gotoAndStop ("none");
gotoAndStop(STATS.t);
if (mystats.element || (mystats.elem)) {
_parent.elemglyph._visible = true;
_parent.elemglyph.beento = true;
_parent.elemglyph.gotoAndStop((mystats.element ? (mystats.element) : (mystats.elem)));
}
_parent.elembg.gotoAndStop((STATS.elembg ? (STATS.elembg) : 1));
av.facemask.gotoAndStop((STATS.facemask ? (STATS.facemask) : 1));
} else {
gotoAndStop ("none");
}
if (_parent._name == "conv") {
_parent.gotoAndStop((_visible ? ((STATS.voice ? (STATS.voice) : ((mystats.VOICE ? (mystats.VOICE) : 1)))) : ("NoAvatar" + (mystats.VOICE ? ("_" + mystats.VOICE) : ""))));
}
if (_parent._parent._name == "SavePopup") {
this.cacheAsBitmap = true;
this.av.stop();
this.av.NO_BLINK = true;
}
Instance of Symbol 264 MovieClip [status_fx] "stfx" in Symbol 1812 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 219 MovieClip "FIRE" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "EARTH" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "WATER" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "AIR" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "LIGHT" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "DARK" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "ETHER" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "FIG" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "NONE" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "THAUMA" in Symbol 1812 MovieClip Frame 3
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PSN" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CNF" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PAR" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SLP" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "NUM" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "DRK" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SIL" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "BLD" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CRS" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "ZOM" in Symbol 1812 MovieClip Frame 4
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "FIRE" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "WATER" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "AIR" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "EARTH" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "LIGHT" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "DARK" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "ETHER" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "FIG" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PSN" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PAR" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "NUM" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SIL" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CRS" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "DRK" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CNF" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SLP" in Symbol 1812 MovieClip Frame 11
onClipEvent (load) {
this.gotoAndStop(_name);
}
Symbol 1893 MovieClip Frame 1
stop();
Symbol 1905 MovieClip Frame 1
stop();
Symbol 1905 MovieClip Frame 10
stop();
Symbol 1908 MovieClip Frame 1
stop();
Symbol 1924 MovieClip Frame 1
stop();
Symbol 2159 MovieClip Frame 1
gotoAndStop(((this.BG != null) ? (this.BG) : (((_root.specBtlBG != undefined) ? (_root.specBtlBG) : (_root.tileset)))));
Symbol 2176 MovieClip Frame 1
nextFrame();
gotoAndStop(((this.BG != null) ? (this.BG) : (((_root.specBtlBG != undefined) ? (_root.specBtlBG) : (_root.tileset)))));
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 21
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("deepred");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 21
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("deepred");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 21
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("deepred");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 22
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 28
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("green");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 28
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("green");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 31
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 31
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 34
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("blue3");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 34
onClipEvent (load) {
inbattle = true;
this.gotoAndStop("blue3");
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 37
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 37
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 38
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 41
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 41
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Instance of Symbol 516 MovieClip [torchlight] in Symbol 2176 MovieClip Frame 41
onClipEvent (load) {
inbattle = true;
this.gotoAndStop(1);
}
Symbol 2205 MovieClip Frame 1
function Setup() {
gotoAndStop (1);
_height = (_width * 0.5);
gotoAndPlay (2);
G.gotoAndStop(_root.TECH_USING.elem);
G2.gotoAndStop(_root.TECH_USING.elem);
}
_alpha = 0;
onEnterFrame = function () {
if (fading != 0) {
_alpha = (_alpha + (20 * fading));
if (((fading == 1) && (_alpha > 100)) || ((fading == -1) && (_alpha <= 0))) {
fading = 0;
}
}
};
Symbol 2205 MovieClip Frame 61
gotoAndPlay (2);
Symbol 2233 MovieClip Frame 1
function GoTo() {
this.gotoAndStop(_parent._parent.stats.weapon + (_root.OPTIONS.lineless ? "_LL" : ""));
}
GoTo();
onEnterFrame = GoTo;
Symbol 2261 MovieClip Frame 1
function GoTo() {
this.gotoAndStop(((_parent._parent.stats.shield == null) ? "none" : (_parent._parent.stats.shield)));
}
GoTo();
onEnterFrame = GoTo;
Symbol 2264 MovieClip Frame 1
stop();
Symbol 2266 MovieClip Frame 1
function CreateParticle(c, size, f, extra) {
c.d++;
if (c.d > 100000) {
c.d = 0;
}
var _local2 = c.createEmptyMovieClip("p" + c.d, c.d);
_local2.bmp = new flash.display.BitmapData(size, size, true);
_local2.bmp.copyPixels(_root["PFX_SHEET" + size], new flash.geom.Rectangle((f % 10) * size, Math.floor(f / 10) * size, size, size), new flash.geom.Point(0, 0));
_local2.createEmptyMovieClip("B", 0);
_local2.B._x = (_local2.B._y = (-size) / 2);
_local2.B.attachBitmap(_local2.bmp, 0);
if (extra == "FLIP") {
_local2.B._x = size / 2;
_local2.B._xscale = _local2.B._xscale * -1;
}
return(_local2);
}
if (!_root.CheckOption("pfx")) {
return(undefined);
}
stop();
f = 0;
ON = {};
var layers = ["PSN", "CNF", "CRS", "DRK", "SIL", "SLP", "PAR", "NUM", "UWB"];
var l = 0;
while (l < layers.length) {
this.createEmptyMovieClip("c_" + layers[l], l + 1).d = 0;
l++;
}
this.createEmptyMovieClip("c_NE", 20).d = 0;
onEnterFrame = function () {
var _local9 = _parent.mdl.StfxPoint.getBounds(_parent);
this._x = _local9.xMin;
this._y = _local9.yMin;
f++;
if (f > 64000) {
f = f - 64000;
}
if (ON.PSN) {
if ((f % 6) == 0) {
var _local3 = CreateParticle(c_PSN, 16, 4);
_local3._width = (_local3._height = 4 + random(5));
_local3._x = Math.random() * 8;
_local3._y = -2 - (Math.random() * 8);
_local3.grow = 1.3;
_local3.onEnterFrame = function () {
this._width = this._width * this.grow;
this._height = this._height * this.grow;
this.grow = this.grow - 0.05;
this._y--;
if (this._width < 1) {
this.removeMovieClip();
}
};
}
}
if (ON.CNF) {
c_CNF.rot = int(c_CNF.rot) + 10;
if (c_CNF.rot > 360) {
c_CNF.rot = c_CNF.rot - 360;
}
var _local4 = 0;
while (_local4 < 4) {
var _local3 = CreateParticle(c_CNF, 16, 27);
var _local6 = (c_CNF.rot + (_local4 * 90)) * (Math.PI/180);
_local3._x = Math.cos(_local6) * 20;
_local3._y = Math.sin(_local6) * 10;
_local3._width = (_local3._height = 8);
_local3.onEnterFrame = function () {
this._width = this._width - 1;
this._height = this._height - 1;
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
_local4++;
}
}
if (ON.CRS) {
if ((f % 10) == 0) {
var _local3 = CreateParticle(c_CRS, 64, 22);
_local3._width = (_local3._height = 16 + (Math.random() * 8));
_local3._y = -10 - (Math.random() * 4);
_local3._x = -2 + (Math.random() * 4);
_local3._alpha = 80;
_local3.onEnterFrame = function () {
this._alpha = this._alpha - 4;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
}
}
if (ON.DRK) {
if ((f % 4) == 0) {
var _local3 = CreateParticle(c_DRK, 32, 14);
_local3._width = (_local3._height = 8 + (Math.random() * 16));
_local3._alpha = 80;
_local3._x = -4 + (Math.random() * 8);
_local3._y = -2 + (Math.random() * 6);
_local3.onEnterFrame = function () {
this._alpha = this._alpha - 8;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
}
}
if (ON.SIL) {
if ((f % 8) == 0) {
c_SIL.F = int(c_SIL.F) + 1;
if (c_SIL.F > 3) {
c_SIL.F = 0;
}
var _local3 = CreateParticle(c_SIL, 32, 45 + c_SIL.F);
_local3._width = (_local3._height = 12);
_local3._x = 8;
_local3._y = -2;
_local3.count = 0;
_local3.onEnterFrame = function () {
this.count++;
if (this.count > 8) {
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
}
}
if (ON.SLP) {
if ((f % 30) == 0) {
var _local3 = CreateParticle(c_SLP, 32, 16, ((_parent.SIDE == "e") ? "FLIP" : null));
_local3._width = (_local3._height = 4 + (Math.random() * 4));
_local3._rotation = Math.random() * 30;
_local3._x = 4 + (4 * Math.random());
_local3._y = -2 - (4 * Math.random());
_local3.onEnterFrame = function () {
this._x = this._x + 0.5;
this._y = this._y - 0.6;
this._width = this._width * 1.04;
this._height = this._height * 1.04;
this._alpha = this._alpha - 2;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
}
}
if (ON.PAR) {
if ((f % 27) == 0) {
var _local3 = CreateParticle(c_PAR, 16, 5);
_local3._width = (_local3._height = 4 + (Math.random() * 12));
_local3._rotation = Math.random() * 360;
_local3._x = -16 + (Math.random() * 32);
_local3._y = -12 + (Math.random() * 32);
_local3.onEnterFrame = function () {
this.removeMovieClip();
};
}
}
if (ON.NUM) {
if ((f % 15) == 0) {
var _local3 = CreateParticle(c_NUM, 16, 11);
_local3._width = (_local3._height = 4 + (Math.random() * 12));
_local3._rotation = Math.random() * 360;
_local3._x = -16 + (Math.random() * 32);
_local3._y = -2 + (Math.random() * 32);
_local3.onEnterFrame = function () {
this.removeMovieClip();
};
}
}
if (ON.UWB) {
if ((f % 23) == 0) {
var _local3 = CreateParticle(c_UWB, 64, 17);
_local3._width = (_local3._height = 32);
_local3._x = (Math.random() * 2) - 1;
_local3._y = 7 + (Math.random() * 2);
_local3.onEnterFrame = function () {
this._alpha = this._alpha - 2;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
}
}
var _local8 = "FWAELDSM";
var _local5 = [];
var _local4 = 0;
while (_local4 < 8) {
if (ON[_local8.substr(_local4, 1) + "N1"]) {
_local5.push(_local4);
}
_local4++;
}
if (_local5.length > 0) {
NErot = int(NErot) + 10;
NErot = NErot % 360;
_local4 = 0;
while (_local4 < _local5.length) {
var _local7 = _local5[_local4];
var _local3 = CreateParticle(c_NE, 16, 40 + _local7);
var _local6 = (360 - (NErot + (_local4 * (360 / _local5.length)))) * (Math.PI/180);
_local3._x = Math.cos(_local6) * 20;
_local3._y = (Math.sin(_local6) * 10) - 10;
_local3._width = (_local3._height = 8);
_local3.onEnterFrame = function () {
this._width = this._width - 1;
this._height = this._height - 1;
this._alpha = this._alpha - 20;
if (this._alpha <= 0) {
this.removeMovieClip();
}
};
_local4++;
}
}
};
Symbol 2276 MovieClip Frame 1
if ((_root.Acting.stats.weapon == "none") && (_root.Acting._name.substr(0, 1) == "p")) {
gotoAndStop ("empty");
return(undefined);
}
var e = _root.GetItemInfo((_root.victory ? (_parent) : (_root.Acting)).stats.weapon).elem;
if (_root.victory) {
gotoAndStop(((e != null) ? (e) : 1));
} else {
gotoAndStop((((_root.REACTION_USING.MODE == "P") && (_root.REACTION_USING.effect == "soulstrike")) ? (_root.REACTION_USING.elem) : ((_root.TECH_USING.elem ? (_root.TECH_USING.elem) : (((e != null) ? (e) : 1))))));
}
Symbol 2278 MovieClip Frame 1
_alpha = 0;
Symbol 2283 MovieClip Frame 1
_visible = false;
stop();
Symbol 2289 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2296 MovieClip Frame 1
if (_parent.dreamy) {
gotoAndStop ("dream");
} else {
GotoAptFrame(this);
}
Symbol 2301 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2306 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2311 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2317 MovieClip Frame 1
if (_parent.dreamy) {
gotoAndStop ("dream");
} else {
GotoAptFrame(this);
}
Symbol 2323 MovieClip Frame 1
if (_parent.dreamy) {
gotoAndStop ("dream");
} else {
GotoAptFrame(this);
}
Symbol 2336 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2336 MovieClip Frame 58
_parent.ReactionChance();
Symbol 2336 MovieClip Frame 103
_parent.Animate("idle");
Symbol 2336 MovieClip Frame 107
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2336 MovieClip Frame 113
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2336 MovieClip Frame 122
_parent.Animate("idle");
Symbol 2336 MovieClip Frame 127
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2336 MovieClip Frame 145
stop();
dead = true;
Symbol 2336 MovieClip Frame 163
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2336 MovieClip Frame 179
_parent.ReactionChance();
Symbol 2336 MovieClip Frame 183
_root.CastSpell();
Symbol 2336 MovieClip Frame 205
_parent.mcircle.fading = -1;
Symbol 2336 MovieClip Frame 215
_parent.Animate("idle");
Symbol 2336 MovieClip Frame 233
_parent.TossItem();
Symbol 2336 MovieClip Frame 246
_parent.Animate("idle");
Symbol 2336 MovieClip Frame 295
stop();
Symbol 2339 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2355 MovieClip Frame 1
function GoTo() {
this.gotoAndStop(_parent._parent.stats.weapon + (_root.OPTIONS.lineless ? "_LL" : ""));
}
GoTo();
onEnterFrame = GoTo;
Symbol 2358 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2361 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2365 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2368 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2371 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2375 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2380 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2383 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2399 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2399 MovieClip Frame 58
_parent.ReactionChance();
Symbol 2399 MovieClip Frame 103
_parent.Animate("idle");
Symbol 2399 MovieClip Frame 110
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2399 MovieClip Frame 116
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2399 MovieClip Frame 125
_parent.Animate("idle");
Symbol 2399 MovieClip Frame 133
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2399 MovieClip Frame 151
stop();
dead = true;
Symbol 2399 MovieClip Frame 155
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2399 MovieClip Frame 171
_parent.ReactionChance();
Symbol 2399 MovieClip Frame 175
_root.CastSpell();
Symbol 2399 MovieClip Frame 197
_parent.mcircle.fading = -1;
Symbol 2399 MovieClip Frame 207
_parent.Animate("idle");
Symbol 2399 MovieClip Frame 223
_parent.TossItem();
Symbol 2399 MovieClip Frame 236
_parent.Animate("idle");
Symbol 2399 MovieClip Frame 278
stop();
Symbol 2401 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2405 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2409 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2412 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2415 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2418 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2422 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2438 MovieClip Frame 27
_parent.Animate("idle");
Symbol 2438 MovieClip Frame 32
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2438 MovieClip Frame 38
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2438 MovieClip Frame 47
gotoAndPlay((_parent.CASTING ? "c2" : "idle"));
Symbol 2438 MovieClip Frame 52
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2438 MovieClip Frame 70
stop();
dead = true;
Symbol 2438 MovieClip Frame 101
_root.CastSpell();
Symbol 2438 MovieClip Frame 126
_parent.Animate("idle");
Symbol 2438 MovieClip Frame 143
_parent.TossItem();
Symbol 2438 MovieClip Frame 156
_parent.Animate("idle");
Symbol 2438 MovieClip Frame 161
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2438 MovieClip Frame 177
_root.CastSpell();
Symbol 2438 MovieClip Frame 180
_parent.mcircle.fading = -1;
Symbol 2438 MovieClip Frame 190
_parent.Animate("idle");
Symbol 2438 MovieClip Frame 219
_parent.ReactionChance();
Symbol 2438 MovieClip Frame 264
_parent.Animate("idle");
Symbol 2438 MovieClip Frame 311
stop();
Symbol 2439 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2443 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2446 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2449 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2452 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2455 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2458 MovieClip Frame 1
GotoAptFrame(this);
stop();
Symbol 2473 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2473 MovieClip Frame 40
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2473 MovieClip Frame 46
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2473 MovieClip Frame 55
gotoAndPlay((_parent.CASTING ? "c2" : "idle"));
Symbol 2473 MovieClip Frame 60
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2473 MovieClip Frame 78
stop();
dead = true;
Symbol 2473 MovieClip Frame 108
_root.CastSpell();
Symbol 2473 MovieClip Frame 133
_parent.Animate("idle");
Symbol 2473 MovieClip Frame 150
_parent.TossItem();
Symbol 2473 MovieClip Frame 163
_parent.Animate("idle");
Symbol 2473 MovieClip Frame 186
_parent.ReactionChance();
Symbol 2473 MovieClip Frame 231
_parent.Animate("idle");
Symbol 2473 MovieClip Frame 275
stop();
Symbol 2479 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2485 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2491 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2497 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2503 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2509 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2515 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2521 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2523 MovieClip Frame 56
_parent.Animate("idle");
Symbol 2523 MovieClip Frame 79
_parent.ReactionChance();
Symbol 2523 MovieClip Frame 124
_parent.Animate("idle");
Symbol 2523 MovieClip Frame 126
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2523 MovieClip Frame 132
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2523 MovieClip Frame 141
_parent.Animate("idle");
Symbol 2523 MovieClip Frame 149
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2523 MovieClip Frame 167
stop();
dead = true;
Symbol 2523 MovieClip Frame 171
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2523 MovieClip Frame 187
_parent.ReactionChance();
Symbol 2523 MovieClip Frame 191
_root.CastSpell();
Symbol 2523 MovieClip Frame 213
_parent.mcircle.fading = -1;
Symbol 2523 MovieClip Frame 223
_parent.Animate("idle");
Symbol 2531 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2539 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2547 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2567 MovieClip Frame 1
if (_root.Acting.stats.weapon == "none") {
gotoAndStop ("empty");
return(undefined);
}
var e = _root.GetItemInfo((_root.victory ? (_parent) : (_root.Acting)).stats.weapon).elem;
if (_root.victory) {
gotoAndStop(((e != null) ? (e) : 1));
} else {
gotoAndStop((((_root.REACTION_USING.MODE == "P") && (_root.REACTION_USING.effect == "soulstrike")) ? (_root.REACTION_USING.elem) : ((_root.TECH_USING.elem ? (_root.TECH_USING.elem) : (((e != null) ? (e) : 1))))));
}
Symbol 2570 MovieClip Frame 8
stop();
Symbol 2577 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2577 MovieClip Frame 40
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2577 MovieClip Frame 46
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2577 MovieClip Frame 55
_parent.Animate("idle");
Symbol 2577 MovieClip Frame 63
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2577 MovieClip Frame 81
stop();
dead = true;
Symbol 2577 MovieClip Frame 85
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2577 MovieClip Frame 101
_parent.ReactionChance();
Symbol 2577 MovieClip Frame 105
_root.CastSpell();
Symbol 2577 MovieClip Frame 127
_parent.mcircle.fading = -1;
Symbol 2577 MovieClip Frame 137
_parent.Animate("idle");
Symbol 2577 MovieClip Frame 151
if (_root.TECH_USING.BREATH) {
gotoAndPlay ("breath");
}
Symbol 2577 MovieClip Frame 159
_parent.ReactionChance();
Symbol 2577 MovieClip Frame 204
_parent.Animate("idle");
Symbol 2577 MovieClip Frame 216
_parent.ReactionChance();
Symbol 2577 MovieClip Frame 249
gotoAndPlay ("jumpback");
Symbol 2585 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2593 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2601 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2609 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2617 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2624 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2624 MovieClip Frame 40
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2624 MovieClip Frame 47
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2624 MovieClip Frame 57
_parent.Animate("idle");
Symbol 2624 MovieClip Frame 63
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2624 MovieClip Frame 81
stop();
dead = true;
Symbol 2624 MovieClip Frame 103
_parent.ReactionChance();
Symbol 2624 MovieClip Frame 148
_parent.Animate("idle");
Symbol 2624 MovieClip Frame 152
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2624 MovieClip Frame 168
_parent.ReactionChance();
Symbol 2624 MovieClip Frame 172
_root.CastSpell();
Symbol 2624 MovieClip Frame 194
_parent.mcircle.fading = -1;
Symbol 2624 MovieClip Frame 204
_parent.Animate("idle");
Symbol 2630 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2635 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2639 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2641 MovieClip Frame 1
count = random(6);
onEnterFrame = function () {
count++;
if (count > 12) {
count = 0;
var _local4 = _parent._parent;
_local4.pd++;
var _local3 = _local4.attachMovie("fumerat_acridfog", "p" + _local4.pd, _local4.pd);
_local3._x = ((_parent._x + _x) + random(6)) - 3;
_local3._y = ((_parent._y + _y) + random(6)) - 3;
_local3._width = 5;
_local3._height = 4;
_local3.onEnterFrame = function () {
this._width = this._width + 0.5;
this._height = this._height + 0.5;
this._y = this._y - 1.4;
this._alpha = this._alpha - 2;
if (this._alpha <= 1) {
this.removeMovieClip();
}
};
}
};
nextFrame();
Symbol 2647 MovieClip Frame 35
_parent.Animate("idle");
Symbol 2647 MovieClip Frame 40
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2647 MovieClip Frame 44
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2647 MovieClip Frame 51
_parent.Animate("idle");
Symbol 2647 MovieClip Frame 63
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2647 MovieClip Frame 81
stop();
dead = true;
Symbol 2647 MovieClip Frame 85
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2647 MovieClip Frame 101
_parent.ReactionChance();
Symbol 2647 MovieClip Frame 105
_root.CastSpell();
Symbol 2647 MovieClip Frame 127
_parent.mcircle.fading = -1;
Symbol 2647 MovieClip Frame 137
_parent.Animate("idle");
Symbol 2647 MovieClip Frame 158
_parent.ReactionChance();
Symbol 2647 MovieClip Frame 203
_parent.Animate("idle");
Symbol 2653 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2659 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2665 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2671 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2677 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2683 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2689 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2695 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2701 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2707 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2713 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2719 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2724 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2730 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2736 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2742 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2746 MovieClip Frame 40
_parent.Animate("idle");
Symbol 2746 MovieClip Frame 45
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2746 MovieClip Frame 51
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2746 MovieClip Frame 60
_parent.Animate("idle");
Symbol 2746 MovieClip Frame 68
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2746 MovieClip Frame 86
stop();
dead = true;
Symbol 2746 MovieClip Frame 90
_root.playSFX("spellcharge");
_parent.mcircle.fading = 1;
_parent.mcircle.Setup();
Symbol 2746 MovieClip Frame 106
_parent.ReactionChance();
Symbol 2746 MovieClip Frame 110
_root.CastSpell();
Symbol 2746 MovieClip Frame 132
_parent.mcircle.fading = -1;
Symbol 2746 MovieClip Frame 142
_parent.Animate("idle");
Symbol 2746 MovieClip Frame 155
if (_root.TECH_USING.BREATH) {
gotoAndPlay ("breath");
}
Symbol 2746 MovieClip Frame 163
_parent.ReactionChance();
Symbol 2746 MovieClip Frame 208
_parent.Animate("idle");
Symbol 2746 MovieClip Frame 219
_parent.ReactionChance();
Symbol 2746 MovieClip Frame 252
gotoAndPlay ("jumpback");
Symbol 2749 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2752 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2755 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2758 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2761 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2764 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2767 MovieClip Frame 1
GotoAptFrame(this);
Symbol 2770 MovieClip Frame 1
function GoTo() {
this.gotoAndStop(_parent._parent.stats.weapon + (_root.OPTIONS.lineless ? "_LL" : ""));
}
GoTo();
onEnterFrame = GoTo;
Symbol 2773 MovieClip Frame 27
_parent.Animate("idle");
Symbol 2773 MovieClip Frame 32
if (_parent.CASTING) {
gotoAndPlay ("hit_casting");
}
Symbol 2773 MovieClip Frame 38
if (_parent.dying) {
gotoAndPlay ("die");
}
Symbol 2773 MovieClip Frame 47
_parent.Animate("idle");
Symbol 2773 MovieClip Frame 52
_parent.SPELL_GLYPH.fading = 1;
_parent.CASTING = false;
Symbol 2773 MovieClip Frame 70
stop();
dead = true;
Symbol 2773 MovieClip Frame 91
_parent.ReactionChance();
Symbol 2773 MovieClip Frame 136
_parent.Animate("idle");
Symbol 2774 MovieClip [B_MODEL] Frame 1
function DetermineStats() {
if (!_visible) {
return(undefined);
}
baseFilters = mdl.filters;
var _local8 = "" + stats.model;
var _local25 = stats.B_LVL;
var _local9 = (stats.name ? (stats.name) : (mdlStats.names[0]));
var _local10 = _local25;
stats = {name:_local9, model:_local8, face:mdlStats.face, level:_local10, B_LVL:stats.B_LVL, exp:0, hp:[10, 10], mp:[10, 10], STR:0, VIT:0, SPR:0, AGL:0, Class:mdlStats.Class, learned:{}, weapon:mdlStats.equip.weapon[random(mdlStats.equip.weapon.length)], shield:mdlStats.equip.shield[random(mdlStats.equip.shield.length)], helmet:mdlStats.equip.helmet[random(mdlStats.equip.helmet.length)], armour:mdlStats.equip.armour[random(mdlStats.equip.armour.length)], accessory:mdlStats.equip.accs[random(mdlStats.equip.accs.length)], accessory2:mdlStats.equip.accs2[random(mdlStats.equip.accs2.length)], BONUS:{STR:0, VIT:0, SPR:0, AGL:0}, BASE:{STR:0, VIT:0, SPR:0, AGL:0}, nAtk:mdlStats.nAtk, MonAtk:mdlStats.nAtk, nDef:mdlStats.nDef, nMDef:mdlStats.nMDef, wpnType:mdlStats.wpnType, elem:mdlStats.elem, dyn:mdlStats.dyn != undefined, body:mdlStats.body, desc:mdlStats.desc, hit:mdlStats.hit, SpellModifier:mdlStats.spellMod, commands:mdlStats.commands, TYPE:mdlStats.TYPE, element:mdlStats.cElem, monStats:mdlStats, spells:[]};
var _local5 = ["STR", "VIT", "SPR", "AGL"];
var _local7 = mdlStats.baseStats;
var _local4 = 0;
while (_local4 < 4) {
stats.BASE[_local5[_local4]] = (stats[_local5[_local4]] = _local7[_local5[_local4]]);
_local4++;
}
stats.mdlStats = mdlStats;
stats.loot = loot;
stats.extra_gold = extra_gold;
_root.calculateStats(stats);
_root.FullHeal(stats);
if (mdlStats.initialSTFX != null) {
for (_local7 in mdlStats.initialSTFX) {
_root.AddSTFX(stats, _local7);
}
}
_root.PCstatsE[int(_name.substr(1)) - 1] = stats;
_root["BE" + _name.substr(1)].Refresh();
mdl.gotoAndPlay("idle");
GenerateBMP_ICON();
if (_name == "dummy") {
if (!dontDoStats) {
_parent.statlist1 = [mdlStats.Class, mdlStats.TYPE, "", mdlStats.baseStats.hp + (mdlStats.hpGrowth ? (("+" + mdlStats.hpGrowth) + "/Lv") : ""), mdlStats.baseStats.mp, stats.STR, stats.VIT, stats.SPR, stats.AGL, "", mdlStats.EXP].join(newline);
_parent.statlist2 = [stats.ATK, stats.DEF, stats.MDEF, stats.evasion + "%"].join(newline);
var _local3 = 0;
while (_local3 < 4) {
if (loot[_local3] != null) {
_root.AddItemImg(loot[_local3][0], _parent[("loot" + _local3) + "_icon"], 32, 0);
_parent[("loot" + _local3) + "_name"] = loot[_local3][0];
_parent[("loot" + _local3) + "_rate"] = loot[_local3][1] + "%";
} else {
_parent[("loot" + _local3) + "_name"] = "";
_parent[("loot" + _local3) + "_rate"] = "";
}
_local3++;
}
for (var _local6 in stats.RESIST) {
_parent[_local6]._alpha = (stats.RESIST[_local6] ? 100 : 10);
_parent["R_" + _local6] = ((stats.RESIST[_local6] == 0) ? "" : (((("<font color='" + ((stats.RESIST[_local6] > 100) ? "#99ff66" : (((stats.RESIST[_local6] < 0) ? "#ff6666" : (((stats.RESIST[_local6] > 0) ? "#55ddff" : "#999999")))))) + "'>") + Math.abs(stats.RESIST[_local6])) + "%</font>"));
_parent["line_" + _local6].gotoAndStop(((stats.RESIST[_local6] == 0) ? 1 : (((stats.RESIST[_local6] > 100) ? 4 : (((stats.RESIST[_local6] < 0) ? 3 : (((stats.RESIST[_local6] > 0) ? 2 : 1))))))));
}
_parent.typeicon.attachBitmap(BMP_ICON, 1);
_parent.typeicon._width = (_parent.typeicon._height = 32);
}
onEnterFrame = null;
}
}
function IsDead() {
return(dying || (_root.HasSTFX(stats, "ZOM")));
}
function GenerateBMP_ICON() {
BMP_ICON = new flash.display.BitmapData(16, 16, true);
BMP_ICON.copyPixels(((mdlStats.unique_sprite != null) ? (flash.display.BitmapData.loadBitmap("spritesheet_" + mdlStats.unique_sprite)) : (((SIDE == "p") ? (flash.display.BitmapData.loadBitmap("spritesheet_" + stats.model)) : (_root.MonsterTypeIconsBmp)))), new flash.geom.Rectangle((((SIDE != "p") && (mdlStats.unique_sprite == null)) ? (16 * _root.MonTypeID(mdlStats.TYPE)) : 0), 0, 16, 16), new flash.geom.Point(0, 0));
}
function Animate(anim, Stop) {
if (_root.victory && (_name != "dummy")) {
anim = "Victory";
}
if ((anim == "idle") && (DOING_SUMMAT > 0)) {
return(undefined);
}
if (anim == "hit") {
mcircle.fading = -1;
}
mdl[(Stop ? "gotoAndStop" : "gotoAndPlay")]((dying ? "die" : (((((anim == "idle") && (_root.SONG_PLAYING != null)) && (stats.name == "Elwyen")) ? "PlayMusic" : (anim)))));
}
function SetupThings() {
jumping = 0;
c = 0;
dx = 0;
dy = 0;
x = 0;
y = 1;
orig_y = mdl._y;
orig_x = mdl._x;
moving = false;
}
function Attack() {
if (_root.HasSTFX(stats, "NUM")) {
_root.Flash(mdl, [255, 60, 60]);
_root.BattleParticleEffect("numb_jolt", this);
jolt = [6, 1];
_root.GDelay = 30;
_root.endturn = true;
return(undefined);
}
DOING_SUMMAT = 2;
if (_root.TECH_USING != null) {
_root.TECHbar.Show(_root.TECH_USING.skill, _root.TECH_USING.elem);
}
_root.StartReactionBar("P_ATK");
if (jumping != 0) {
return(undefined);
}
jumping = 1;
Jmod = 10;
Jmod2 = 8;
var _local4 = mdl[(_root.TECH_USING.BREATH ? (((_root.TECH_USING.TT.substr(0, 3) == "ALL") ? "BreathSource" : "BreathDistance")) : "StrikePoint")].getBounds(_parent);
var _local5 = ((_root.TECH_USING.BREATH && (_root.TECH_USING.TT.substr(0, 3) == "ALL")) ? (_parent.BreathCentre) : (_root.Target.mdl.HitPoint)).getBounds(_parent);
dx0 = _local4.xMin - _local5.xMin;
dy0 = ((_root.TECH_USING.BREATH && (_root.TECH_USING.TT.substr(0, 3) == "ALL")) ? (_local4.yMin - _local5.yMin) : (_y - _root.Target._y));
dx = dx0 / Jmod;
dy = dy0 / Jmod;
dx2 = dx0 / Jmod2;
dy2 = dy0 / Jmod2;
Animate((_root.TECH_USING.anim ? (_root.TECH_USING.anim) : "moveto"));
x = 0;
c = 0;
moving = true;
if (SIDE != "e") {
_root.plotVars.THS.total_atks++;
}
_root.Target.SetProperDepth();
}
function Conjurate() {
DOING_SUMMAT = 2;
if (_root.TECH_USING != null) {
_root.TECHbar.Show(_root.TECH_USING.skill, _root.TECH_USING.elem);
}
_root.StartReactionBar("M_ATK");
Animate("spellcast");
}
function SpecialAttack() {
DOING_SUMMAT = 2;
if (_root.TECH_USING != null) {
_root.TECHbar.Show(_root.TECH_USING.skill, _root.TECH_USING.elem);
}
Animate((_root.TECH_USING.anim ? (_root.TECH_USING.anim) : "spellcast"));
}
function UseItem() {
DOING_SUMMAT = 2;
_root.TECHbar.Show(_root.TECH_USING.item, "ITEM");
Animate("useitem");
}
function PhysicalStrike() {
_root.PCRITICAL = false;
var _local4 = _root.GetItemInfo(stats.weapon);
var _local8 = ((_local4.hit != null) ? (_local4.hit) : (((stats.hit != null) ? (stats.hit) : 100)));
var _local7 = _local8;
if (_root.HasSTFX(stats, "DRK")) {
_local7 = _local7 / 2;
}
if ((Math.random() * 100) <= (int(_root.Target.stats.evasion) + int(_root.REACTION_USING.evade))) {
_local7 = 0;
}
if ((Math.random() * 100) > (_local7 + int(_root.REACTION_USING.accuracy))) {
_root.DamageNumber(_root.Target._x, _root.Target._y, "<p align='center'>Miss</p>", null);
getExp = false;
_root.playSFX("Miss");
return(false);
}
if (_root.HasSTFX(_root.Target.stats, ELEM_char[_root.GetUsingElement()] + "N1")) {
_root.RemoveSTFX(_root.Target.stats, ELEM_char[_root.GetUsingElement()] + "N1");
_root.DamageNumber(_root.Target._x, _root.Target._y, "<p align='center'>Null</p>", null);
return(false);
}
for (var _local6 in _root.REACTION_USING.stfx_inflict) {
if (((Math.random() * 100) < _root.REACTION_USING.stfx_inflict[_local6]) && ((Math.random() * 100) >= int(_root.Target.stats.RESIST[_local6]))) {
_root.AddSTFX(_root.Target.stats, _local6);
}
}
_root.playSFX(((stats.weapon == "none") ? "punch" : (((_local4.hit_sfx != null) ? (_local4.hit_sfx) : ("hit_" + _root.WeaponSFXType[_local4.wpnType])))));
var _local5 = _root.dmgFormula(this, _root.Target);
if ((Math.random() * 100) < (int(_root.TECH_USING.critical) + ((_local4.critical != null) ? (_local4.critical) : (((stats.critical != null) ? (stats.critical) : 0) + int(_root.REACTION_USING.critical))))) {
_local5 = _local5 * 2;
_local5 = _local5 + 1;
_root.Quake(5);
_root.BattleParticleEffect("critical", _root.Target);
_root.playSFX("Slam");
_root.PCRITICAL = true;
}
var _local3 = {};
for (var _local6 in mdlStats.stfx_onhit) {
_local3[_local6] = mdlStats.stfx_onhit[_local6];
}
for (var _local6 in _local4.stfx) {
_local3[_local6] = _local4.stfx[_local6];
}
for (var _local6 in _local3) {
if ((Math.random() * 100) <= _local3[_local6]) {
if ((Math.random() * 100) > int(_root.Target.stats.RESIST[_local6])) {
_root.AddSTFX(_root.Target.stats, _local6, 10);
}
}
}
_local5 = _root.FinalDamage(_local5);
if (_local4.MP_DRAIN || (_local4.HP_DRAIN)) {
var _local6 = (_local4.MP_DRAIN ? "mp" : "hp");
if (_local5 > _root.Target.stats[_local6][0]) {
_local5 = _root.Target.stats[_local6][0];
}
_root.InflictDamage(_local5, null, null);
_root.DRAINING = true;
var _local9 = _root.Target;
_root.Target = _root.Acting;
_root.InflictDamage(-_local5, null, null, _local4.MP_DRAIN);
_root.Target = _local9;
_root.DRAINING = false;
} else {
_root.InflictDamage(_local5);
}
if (_root.REACTION_USING.drainHP) {
_root.DRAINING = true;
var _local9 = _root.Target;
_root.Target = _root.Acting;
_root.InflictDamage(-int(_local5 * _root.REACTION_USING.drainHP));
_root.Target = _local9;
_root.DRAINING = false;
}
_root.RemoveSTFX(_root.Target.stats, "SLP");
_root.RemoveSTFX(_root.Target.stats, "CNF");
for (var _local6 in _root.REACTION_USING.stfx_remove) {
if (Math.random() <= _root.REACTION_USING.stfx_remove[_local6]) {
_root.RemoveSTFX(_root.Target.stats, _local6);
}
}
return(true);
}
function GetTech(tech) {
var _local1 = 0;
while (_local1 < Techs.length) {
if (Techs[_local1].skill == tech) {
return(Techs[_local1]);
}
_local1++;
}
return(null);
}
function DoGambit(G) {
if (G.uses != null) {
_root.TBV[(ID + "_GambitUses_") + G.command] = G.uses;
}
if (G.target == "SELF") {
_root.Target = this;
}
if ((G.target == "ALL_p") || (G.target == "ALL_e")) {
_root.Target = G.target;
}
if (G.command == "Attack") {
Attack();
} else {
var _local3 = GetTech((LAST_TECH = G.command));
_root.TECH_USING = _local3;
OtherTurn = !OtherTurn;
if (_local3.elementalShift != null) {
var _local5 = _local3.elem;
do {
_local3.elem = _local3.elementalShift[random(_local3.elementalShift.length)];
} while (_local3.elem == _local5);
}
if (_local3.MODE == "P") {
_root.phySpell = true;
Attack();
} else if ((_local3.MODE == "M") && (_local3.BREATH)) {
Attack();
} else if (_local3.MODE == "M") {
Conjurate();
} else if (_local3.MODE == "S") {
SpecialAttack();
} else if (_local3.MODE == "I") {
UseItem();
} else {
Attack();
_root.Flash(_root, [255, 0, 0]);
trace((_root.FAILED_TECH = G.command));
}
}
}
function ReactionChance() {
return(undefined);
}
function TossItem() {
stats.inventory[_root.TECH_USING.ID][1]--;
if (stats.inventory[_root.TECH_USING.ID][1] <= 0) {
stats.inventory[_root.TECH_USING.ID] = null;
}
GameData.plotVars.THS.items_used++;
var _local4 = _root.BA.createEmptyMovieClip("Toss", 1467);
_local4.createEmptyMovieClip("img", 777);
_root.AddItemImg(_root.TECH_USING.item, _local4.img, 16, -8);
var _local7 = {x:mdl.ITEM._x, y:mdl.ITEM._y};
mdl.localToGlobal(_local7);
_root.BA.globalToLocal(_local7);
_local4._x = _local7.x;
_local4._y = _local7.y;
_local4.hVel = _x - _root.Target._x;
_local4.vVel = _y - _root.Target._y;
_local4.count = 0;
_local4.onEnterFrame = function () {
var _local4 = 18;
var _local7 = _root.GetItemInfo(_root.TECH_USING.item).action;
var _local6 = int(_root.PFXList["pfx_" + _local7[1].pfx].dmgdelay);
this.count++;
if (_local6 && (this.count == _local4)) {
_root.BattleParticleEffect(_local7[1].pfx, _root.Target);
this.img._visible = false;
}
this._x = this._x - (this.hVel / _local4);
this._y = this._y - (this.vVel / _local4);
this.img._y = this.img._y - ((_local4 / 2) - this.count);
this.img._rotation = this.img._rotation + 15;
if (this.count >= (_local4 + _local6)) {
_root.useitem = _root.GetItemInfo(_root.TECH_USING.item);
_root.TEMP_ELEM = (dmg[1].elem ? (dmg[1].elem) : ((_root.useitem.elem ? (_root.useitem.elem) : "empty")));
var dmg = _root.useitem.action;
var _local5 = (_root.Target.mdlStats.TYPE == "UNDEAD") || (_root.HasStatus(_root.Target.stats, "ZOM"));
if (dmg[0] == "spell") {
if (dmg[1].pow) {
_root.InflictDamage(_root.FinalDamage(_root.MdmgFormula(_root.Acting, _root.Target, dmg[1].pow, dmg[1].pow, dmg[1].SPR)), false, _root.useitem.name, Boolean(dmg[1].affectMP), dmg[1].pfx[1]);
}
if (dmg[1].set_dmg) {
_root.InflictDamage(dmg[1].set_dmg, null, _root.useitem.name, Boolean(dmg[1].affectMP), dmg[1].pfx[1]);
}
if (!_local6) {
_root.BattleParticleEffect(dmg[1].pfx, _root.Target);
} else {
_root.playSFX(_root.PFXList["pfx_" + _local7[1].pfx].delayedSfx);
}
if (dmg[1].stfx != null) {
for (var _local3 in dmg[1].stfx) {
if (((Math.random() * 100) <= dmg[1].stfx[_local3]) && ((Math.random() * 100) > _root.Target.stats.RESIST[_local3])) {
_root.AddSTFX(_root.Target.stats, _local3);
}
}
}
if (dmg[1].stat_mod != null) {
_root.DoStatMod(dmg[1]);
}
} else if (dmg[0] == "fullcure") {
_root.InflictDamage((_local5 ? 0 : -1) * (dmg[1].hp ? (dmg[1].hp) : (_root.Target.stats.hp[1])), false, _root.useitem.name);
_root.InflictDamage(-(dmg[1].mp ? (dmg[1].mp) : (_root.Target.stats.mp[1])), false, _root.useitem.name, true);
} else if ((dmg[0] == "r_HP") || (dmg[0] == "r_MP")) {
var _local8 = (dmg[1][0] ? ((random(Math.abs(dmg[1][1]) - Math.abs(dmg[1][0])) + Math.abs(dmg[1][0])) * ((dmg[1][0] < 0) ? 1 : 1)) : (-dmg[1]));
_root.InflictDamage((_local5 ? 0 : 1) * _local8, false, _root.useitem.name, dmg[0] == "r_MP");
} else if (dmg[0] == "milk") {
_root.InflictDamage((_local5 ? 0 : -1) * dmg[1], false);
for (var _local3 in dmg[2]) {
_root.RemoveSTFX(_root.Target.stats, _local3);
}
} else if (dmg[0] == "h_status") {
if (dmg[1][1]) {
var _local3 = 0;
while (_local3 < dmg[1].length) {
_root.RemoveSTFX(_root.Target.stats, dmg[1][_local3]);
_local3++;
}
} else {
_root.RemoveSTFX(_root.Target.stats, dmg[1]);
}
} else if (dmg[0] == "life") {
if (_local5) {
_root.InflictDamage(int(900 * Math.random()) + 100, false, _root.useitem.name);
} else if (_root.Target.stats.hp[0] <= 0) {
_root.Target.stats.hp[0] = 1;
_root.Target.mdl.dead = false;
_root.Target.dying = false;
_root.InflictDamage(-int(_root.Target.stats.hp[1] * dmg[1]), false, _root.useitem.name, false, null, null, true);
_root.Target.Animate("idle");
}
}
_root.Flash(_root.Target, _root.GetItemInfo(_root.TECH_USING.item).rgb);
_root.GDelay = 30;
_root.endturn = true;
if (_root.useitem.action[0] != "spell") {
_root.BattleParticleEffect((_root.useitem.pfx ? (_root.useitem.pfx) : (((_root.useitem.action[0] == "r_HP") ? "cure1" : "mpcure"))), _root.Target);
}
this.removeMovieClip();
}
};
}
function SetProperDepth(base, swap) {
var _local5 = {x:0, y:42};
this.localToGlobal(_local5);
_parent.globalToLocal(_local5);
var _local4 = (((_root.Acting == this) && (swap)) ? (_root.Target.getDepth() + 10) : (int(_local5.y)));
while ((_root.getInstanceAtDepth(_local4) != undefined) && (_root.getInstanceAtDepth(_local4) != this)) {
_local4++;
}
this.swapDepths(_local4);
}
function onDie() {
if (moving) {
return(undefined);
}
if (stats.name == "Elwyen") {
_root.SONG_PLAYING = null;
}
stats.KOS = int(stats.KOS) + 1;
if (SIDE == "p") {
_root.RecordStat("KOS");
}
_root.RemoveSTFX(stats, "ALL");
stats.gettingSTFX = [];
if (SIDE == "e") {
var _local5 = (stats.mdlStats.EXP ? (stats.mdlStats.EXP) : 100);
if ((_root.Acting != this) && (_root.Acting.SIDE == "p")) {
_root.GiveEXP(_local5, _root.Acting, this);
}
var _local4 = 1;
while (_local4 <= 4) {
var _local3 = _root.BA["p" + _local4];
if (_local3._visible && (_root.Acting != _local3)) {
_root.GiveEXP(_local5 / 2, _local3, _root.Target);
}
_local4++;
}
}
}
function DeathStuff() {
if (stats.name == "Zombie Dragon") {
_root.SetBadgeStat("ZombieDragon", 1, "MAX");
} else if (stats.name == "Annihilator:Karnos") {
_root.SetBadgeStat("AnnihilatedKarnos", 1, "MAX");
} else if (stats.name == "Annihilator:Animus") {
_root.SetBadgeStat("AnnihilatedAnimus", 1, "MAX");
}
if (_root.area.toLowerCase().split("_")[0] == "temple") {
var _local3 = _root.area.toUpperCase().split("_")[1];
if (GameData.plotVars.CHALICES == null) {
GameData.plotVars.CHALICES = [{}, {}];
}
if (GameData.plotVars.CHALICES[0][_local3] == null) {
GameData.plotVars.CHALICES[0][_local3] = 1;
} else {
GameData.plotVars.CHALICES[0][_local3]++;
}
}
if ((_root.area == "aeropolis_E") && (GameData.plotVars.CH3SQ4 != null)) {
GameData.plotVars.CH3SQ4[1]++;
}
if (_root.Acting != this) {
_root.Acting.stats.KILLS = int(_root.Acting.stats.KILLS) + 1;
if (SIDE == "e") {
_root.RecordStat("KILLS");
_root.SetBadgeStat("MonstersSlain", GameData.RECORDS.KILLS, "MAX");
}
}
GameData.EN_FULL.Bestiary[stats.model.toLowerCase()] = int(GameData.EN_FULL.Bestiary[stats.model.toLowerCase()]) + 1;
}
function Act(afterStfxChecks) {
_root.PCRITICAL = false;
if (stats.hp[0] <= 0) {
_root.GDelay = 1;
_root.endturn = true;
return(undefined);
}
if (!afterStfxChecks) {
_root.calculateStats(stats);
var _local13 = 1;
while (_local13 <= 4) {
var _local7 = 0;
while (_local7 < 2) {
_parent[["p", "e"][_local7] + _local13].SetProperDepth();
_local7++;
}
_local13++;
}
var _local19 = {};
var _local20 = 0;
while (_local20 < stats.status.length) {
if ((100 * Math.random()) < (int(stats.RESIST[stats.status[_local20]]) / 5)) {
_local19[stats.status[_local20]] = 1;
}
_local20++;
}
for (_local20 in _local19) {
_root.RemoveSTFX(stats, _local20);
}
for (_local20 in stats.AutoSTFX) {
if (!_root.HasSTFX(stats, _local20)) {
_root.AddSTFX(stats, _local20);
}
}
}
var _local17 = 0;
_root.TURN_BASED_STFX_CHECK = true;
ascl_old = (ascl_new ? (ascl_new) : 0);
if (afterStfxChecks == null) {
afterStfxChecks = {};
}
if (!(afterStfxChecks === true)) {
if ((_root.SONG_PLAYING != null) && (!afterStfxChecks.Song)) {
for (var _local20 in _root.SONG_PLAYING.Song) {
if ((_local20 == "RestoreHP") && (SIDE == "p")) {
_root.Target = this;
_root.TEMP_ELEM = _root.SONG_PLAYING.elem;
_root.InflictDamage((-(_root.SONG_PLAYING.Song[_local20] + (_root.SONG_ELWYEN.stats.level * _root.SONG_PLAYING.Song.LvlMod))) * _root.SONG_ELWYEN.stats.getStat("SPR"), true);
_root.Flash(_root.Target.mdl, [18, 231, 241]);
_root.BattleParticleEffect(_root.SONG_PLAYING.pfx, this);
_local17 = 800;
} else if (((_local20 == "HurtAll") || (_local20 == ("Hurt_" + SIDE))) || ((_local20 == "HurtType") && (_root.SONG_PLAYING.Song[_local20][stats.monStats.TYPE]))) {
_root.Target = this;
_root.TEMP_ELEM = _root.SONG_PLAYING.elem;
_root.InflictDamage((((_local20 == "HurtType") ? (_root.SONG_PLAYING.Song[_local20][stats.monStats.TYPE]) : (_root.SONG_PLAYING.Song[_local20])) + (_root.SONG_ELWYEN.stats.level * _root.SONG_PLAYING.Song.LvlMod)) * _root.SONG_ELWYEN.stats.getStat("SPR"), true);
_root.Flash(_root.Target.mdl, [220, 0, 0]);
_root.BattleParticleEffect(_root.SONG_PLAYING.pfx, this);
_local17 = 800;
}
}
afterStfxChecks.Song = true;
}
if (!_local17) {
if (_root.HasSTFX(stats, "PSN") && (!afterStfxChecks.PSN)) {
_root.Target = this;
var _local22 = int(stats.hp[1] * 0.05);
if (_local22 < 3) {
_local22 = 3;
}
_root.TEMP_ELEM = "EARTH";
_root.InflictDamage(((_local22 < 1) ? 1 : (_local22)), true);
_root.Flash(_root.Target.mdl, [125, 220, 80]);
_root.BattleParticleEffect("poison_oef", this);
_local17 = 800;
afterStfxChecks.PSN = true;
} else if (_root.HasSTFX(stats, "BLD") && (!afterStfxChecks.BLD)) {
_root.Target = this;
var _local22 = (((SIDE == "p") && (!isUndead)) ? (int(stats.hp[1] * 0.1)) : (stats.level * 2));
if (_local22 < 3) {
_local22 = 3;
}
_root.TEMP_ELEM = "DARK";
_root.InflictDamage(_local22, true);
_root.Flash(_root.Target.mdl, [150, 0, 0]);
_root.BattleParticleEffect("bleed_oef", this);
_local17 = 800;
afterStfxChecks.BLD = true;
} else if (_root.HasSTFX(stats, "RGN") && (!afterStfxChecks.RGN)) {
_root.Target = this;
var isUndead = ((mdlStats.TYPE == "UNDEAD") || (_root.HasStatus(_root.Target.stats, "ZOM")));
var _local22 = (((SIDE == "p") || (isUndead)) ? (int(stats.hp[1] * 0.1)) : (stats.level * 2));
_root.TEMP_ELEM = "LIGHT";
_root.InflictDamage((isUndead ? 1 : -1) * _local22, true);
_root.Flash(_root.Target.mdl, [18, 231, 241]);
_root.BattleParticleEffect("regen_oef", this);
_local17 = 800;
afterStfxChecks.RGN = true;
} else {
if (_root.HasSTFX(stats, "SLP")) {
if (random(4) == 1) {
_root.RemoveSTFX(stats, "SLP");
// unexpected jump
}
_root.GDelay = 30;
_root.endturn = true;
return(undefined);
}
if (_root.HasSTFX(stats, "PAR")) {
if (random(10) >= 6) {
_root.Flash(mdl, [255, 255, 0]);
_root.BattleParticleEffect("paralysis_jolt", this);
jolt = [6, 1];
_root.GDelay = 30;
_root.endturn = true;
return(undefined);
}
}
}
}
}
ascl_new = afterStfxChecks.length;
if (stats.hp[0] <= 0) {
onDie();
_root.GDelay = 30;
_root.endturn = true;
return(undefined);
}
if (((afterStfxChecks == null) || (ascl_new != ascl_old)) && (_local17 != 0)) {
setTimeout(this, "Act", _local17, afterStfxChecks);
return(undefined);
}
_root.TURN_BASED_STFX_CHECK = false;
SetupThings();
var _local4 = 0;
while (_local4 < Gambits.length) {
if ((Gambits[_local4].uses != null) && (_root.TBV[(ID + "_GambitUses_") + Gambits[_local4].command] != null)) {
Gambits[_local4].uses = _root.TBV[(ID + "_GambitUses_") + Gambits[_local4].command];
}
_local4++;
}
for (var _local20 in statusCounter) {
statusCounter[_local20]--;
if ((!isNaN(statusCounter[_local20])) && (statusCounter[_local20] <= 0)) {
_root.RemoveSTFX(stats, _local20);
}
}
_root.phySpell = null;
DEFENDING = false;
if (dying) {
_root.endturn = true;
_root.GDelay = 3;
return(undefined);
}
_root.Acting = this;
if (stats.name == "Meraeador") {
if ((_root.HasSTFX(stats, "CNF") || (_root.HasSTFX(stats, "ZOM"))) || (_root.HasSTFX(stats, "BSK"))) {
Animate("dawdle");
_root.endturn = true;
_root.GDelay = 50;
return(undefined);
}
}
if ((SIDE == "p") && (!_root.HasSTFX(stats, "CNF"))) {
var _local21 = _root.HasSTFX(stats, "ZOM");
if (_root.HasSTFX(stats, "BSK") || (_local21)) {
do {
_root.Target = _parent[(_local21 ? "p" : "e") + (random(4) + 1)];
} while (_root.Target.dying);
if (stats.name == "Elwyen") {
_root.SONG_PLAYING = null;
}
Attack();
return(undefined);
}
if ((stats.name == "Elwyen") && (_root.SONG_PLAYING)) {
_root.GiveEXP(100, this, this);
}
_root.Battle_ShowBMenu();
} else {
if (((_parent.p1.dying && (_parent.p2.dying)) && (_parent.p3.dying)) && (_parent.p4.dying)) {
return(undefined);
}
if (_root.COUNTER_ATTACK != null) {
_root.Target = ((_root.COUNTER_ATTACK.tech.TT == "SELF") ? this : (_root.COUNTER_ATTACK.target));
var _local5 = 0;
while (_local5 < Gambits.length) {
if (Gambits[_local5].command == _root.COUNTER_ATTACK.tech) {
DoGambit(Gambits[_local5]);
_root.COUNTER_ATTACK = null;
return(undefined);
}
_local5++;
}
_root.COUNTER_ATTACK = null;
}
FindRandomTarget();
if (_root.HasSTFX(stats, "BSK")) {
Attack();
return(undefined);
}
techs = mdlStats.Techs;
var _local23 = "-";
if (!_root.HasSTFX(stats, "CRS")) {
var _local5 = 0;
while (_local5 < Gambits.length) {
var _local9 = [];
var _local10 = [1, 2, 3, 4];
while (_local10.length > 0) {
var _local12 = random(_local10.length);
_local9.push(_local10[_local12]);
_local10.splice(_local12, 1);
}
_local4 = Gambits[_local5];
var _local16 = (Math.random() * 100) * (((_root.HasSTFX(stats, "NUM") && (GetTech(_local4.command).MODE == "M")) || (_root.HasSTFX(stats, "SIL") && (GetTech(_local4.command).MODE == "P"))) ? 2 : 1);
if ((_local4.random && (_local16 > _local4.random)) || ((_local4.OtherTurn != null) && (_local4.OtherTurn != OtherTurn))) {
} else if ((_root.HasSTFX(stats, "NUM") && (GetTech(_local4.command).MODE == "P")) || (_root.HasSTFX(stats, "SIL") && (GetTech(_local4.command).MODE == "M"))) {
} else if ((stats.mp[0] < GetTech(_local4.command).MP) || ((_local4.uses <= 0) && (!isNaN(_local4.uses)))) {
} else {
var _local7 = GetTech(_local4.command);
var _local11 = [0, 0];
if (((!_local7.special.HEALING) && (!_local7.DMG)) && (_local7.stfx)) {
for (var _local20 in _local7.stfx) {
_local11[0]++;
if (_root.HasSTFX(stats, _local20)) {
_local11[1]++;
}
}
}
if (((_local11[1] >= _local11[0]) && (_local11[0])) && (_local11[1])) {
} else {
if (_local4.criteria == null) {
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
if ((_local4.criteria[0] == "random") && (_local16 <= _local4.criteria[1])) {
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
if (_local4.criteria[0] == "FreeSlots") {
var _local14 = 0;
var _local6 = 1;
while (_local6 <= 4) {
_local7 = _parent["e" + _local6];
if (!_local7.stats.hp[0]) {
_local14++;
}
_local6++;
}
if (_local14 >= _local4.criteria[1]) {
_root.Target = "ALL_e";
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
} else if (_local4.criteria[0] == "corpse") {
var _local6 = 1;
while (_local6 <= 4) {
_local7 = _parent[_local4.criteria[1] + _local6];
if (_local7._visible && (_local7.stats.hp[0] == 0)) {
_root.Target = _local7;
DoGambit(Gambits[_local5]);
return(undefined);
}
_local6++;
}
} else if (_local4.criteria[0] == "elem=") {
if (stats.element == _local4.criteria[1]) {
if (_local4.target.substr(0, 3) == "ALL") {
_root.Target = _local4.target;
} else if (_local4.target == "SELF") {
_root.Target = this;
} else {
FindRandomTarget();
}
DoGambit(Gambits[_local5]);
return(undefined);
}
} else if (_local4.criteria[0] == "NotLastTech") {
if (LAST_TECH != _local4.command) {
if (_local4.target.substr(0, 3) == "ALL") {
_root.Target = _local4.target;
} else if (_local4.target == "SELF") {
_root.Target = this;
} else {
FindRandomTarget();
}
DoGambit(Gambits[_local5]);
return(undefined);
}
} else if (_local4.criteria[0] == "HP<") {
if (_local4.target.substr(0, 3) == "ALL") {
if ((stats.hp[0] / stats.hp[1]) <= _local4.criteria[1]) {
_root.Target = _local4.target;
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
} else {
var _local6 = 1;
while (_local6 <= 4) {
_local7 = ((_local4.target == "SELF") ? this : _parent[((_local4.target == "ANY_ALLY") ? "e" : "p") + _local6]);
if (!_local7._visible) {
} else if (((_local7.stats.hp[0] / _local7.stats.hp[1]) > _local4.criteria[1]) || (_local7.stats.hp[0] == 0)) {
} else {
_root.Target = _parent[_local7._name];
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
_local6++;
}
}
} else if (_local4.criteria[0] == "MYHP<") {
if ((stats.hp[0] / stats.hp[1]) <= _local4.criteria[1]) {
if (_local4.target.substr(0, 3) == "ALL") {
_root.Target = _local4.target;
} else {
FindRandomTarget();
}
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
} else if ((_local4.criteria[0] == "no_status") || (_local4.criteria[0] == "has_status")) {
if (_local4.target == "SELF") {
if (_root.HasSTFX(stats, _local4.criteria[1]) == (_local4.criteria[0] == "has_status")) {
_root.Target = this;
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
} else {
var _local6 = 1;
while (_local6 <= 4) {
_local7 = _parent[((_local4.target == "ANY_ALLY") ? "e" : "p") + _local9[_local6]];
if ((_local7.stats.hp[0] == 0) || (!_local7._visible)) {
} else if (_root.HasSTFX(_local7.stats, _local4.criteria[1]) == (_local4.criteria[0] == "has_status")) {
_root.Target = ((_local4.target.substr(0, 3) == "ALL") ? _local4.target : _parent[_local7._name]);
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
_local6++;
}
}
} else if (_local4.criteria[0] == "alone") {
var _local15 = 0;
var _local8 = 1;
while (_local8 <= 4) {
if ((!_parent["e" + _local8]._visible) || (_parent["e" + _local8].stats.hp[0] <= 0)) {
_local15++;
}
_local8++;
}
if (_local15 == 3) {
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
} else if (_local4.criteria[0] == "resist>") {
var _local6 = 1;
while (_local6 <= 4) {
_local7 = _parent[((_local4.target == "ANY_ALLY") ? "e" : "p") + _local9[_local6]];
if ((_local7.stats.hp[0] == 0) || (!_local7._visible)) {
} else if (int(_local7.stats.RESIST[_local4.criteria[1]]) > _local4.criteria[2]) {
_root.Target = _parent[_local7._name];
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
_local6++;
}
} else if (_local4.criteria[0] == "resist<") {
var _local6 = 1;
while (_local6 <= 4) {
_local7 = _parent[((_local4.target == "ANY_ALLY") ? "e" : "p") + _local9[_local6]];
if ((_local7.stats.hp[0] == 0) || (!_local7._visible)) {
} else if (int(_local7.stats.RESIST[_local4.criteria[1]]) < _local4.criteria[2]) {
_root.Target = _parent[_local7._name];
Gambits[_local5].uses--;
DoGambit(Gambits[_local5]);
return(undefined);
}
_local6++;
}
}
}
}
_local5++;
}
}
if (_root.HasSTFX(stats, "NUM")) {
_root.GDelay = 20;
_root.endturn = true;
return(undefined);
}
FindRandomTarget();
Attack();
}
}
function FindRandomTarget() {
do {
_root.Target = _parent[((_root.HasSTFX(stats, "CNF") && (random(101) < 50)) ? "e" : "p") + (random(4) + 1)];
if (((_root.SONG_PLAYING != null) && (_root.Target.stats.SPECIAL.CHARISMATIC)) && (Math.random() <= _root.Target.stats.SPECIAL.CHARISMATIC)) {
_root.Target = null;
}
} while (_root.Target.dying || (_root.Target == null));
}
stop();
this.gotoAndStop(stats.model);
DOING_SUMMAT = 0;
pd = 0;
if (_name != "dummy") {
Animate(((stats.hp[1] > 0) ? "idle" : "dead"));
}
SIDE = _name.substr(0, 1);
ID = _name.substr(1);
GenerateBMP_ICON();
if ((!_root.battling) || (_name == "dummy")) {
mdl.gotoAndPlay("idle");
return(undefined);
}
if (!_visible) {
dying = true;
return(undefined);
}
SetupThings();
dying = (((stats.hp[0] > 0) || (SIDE == "e")) ? false : true);
OtherTurn = 0;
pulsate = false;
pulse = new Color(mdl);
pTint = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
pMod = 1;
SetProperDepth();
stats.gettingSTFX = [];
stats.gettingSTATMOD = [];
stats.gettingSTFXheal = [];
stfxShowDelay = 5;
statmodShowDelay = 10;
stfxHealDelay = 16;
onEnterFrame = function () {
if ((_name == "dummy") || (_root.ENDING_BATTLE)) {
return(undefined);
}
if (DOING_SUMMAT > 0) {
DOING_SUMMAT--;
}
MY_DMG_NUM = null;
if (stats.gettingSTFX.length > 0) {
if (stfxShowDelay <= 0) {
stfxShowDelay = 10;
_root.ShowStatusWord(_x, _y, stats.gettingSTFX[0]);
stats.gettingSTFX.shift();
} else {
stfxShowDelay--;
}
}
if (stats.gettingSTFXheal.length > 0) {
if (stfxHealDelay <= 0) {
stfxHealDelay = 16;
_root.ShowStatmodWord(_x, _y, stats.gettingSTFXheal.shift());
} else {
stfxHealDelay--;
}
}
if (stats.gettingSTATMOD.length > 0) {
if (statmodShowDelay <= 0) {
statmodShowDelay = 10;
_root.ShowStatmodWord(_x, _y, stats.gettingSTATMOD.shift());
} else {
statmodShowDelay--;
}
}
if ((mdl.dead && (_visible)) && (SIDE == "e")) {
_alpha = (_alpha - 8);
_root["B" + _name.toUpperCase()]._alpha = _root["B" + _name.toUpperCase()]._alpha - 8;
if (_alpha <= 5) {
DeathStuff();
GameData.plotVars.THS.foes_killed++;
stats.model = null;
_root["sb_" + ID]._visible = false;
this._visible = false;
gotoAndStop (2);
if (mcirlce._alpha > 0) {
mcircle.fading = -1;
}
}
}
if (_root.gameOver) {
return(undefined);
}
act_cursor._visible = ((_root.Acting == this) && (_root.BMENU._visible)) && (SIDE == "p");
if (_root.HasSTFX(stats, "ZOM")) {
pTint.rb = -100;
pTint.gb = 0;
pTint.bb = 0;
pulse.setTransform(pTint);
isTinted = true;
} else if (_root.HasSTFX(stats, "BSK")) {
pTint.rb = 100;
pTint.gb = -100;
pTint.bb = -100;
pulse.setTransform(pTint);
isTinted = true;
} else if (_root.HasSTFX(stats, "BRK")) {
pTint.rb = 0;
pTint.gb = -50;
pTint.bb = -100;
pulse.setTransform(pTint);
isTinted = true;
} else if (isTinted) {
pTint.rb = 0;
pTint.gb = 0;
pTint.bb = 0;
pulse.setTransform(pTint);
isTinted = false;
}
var _local8 = ((typeof(baseFilters.pop) == "function") ? (baseFilters) : ([]));
if (_root.HasSTFX(stats, "GST")) {
_local8.push(new flash.filters.GlowFilter(6750105, 1, 8, 8, 2, 1, true, true));
}
mdl.filters = _local8;
var _local4 = {};
var _local3 = 0;
while (_local3 < stats.status.length) {
_local4[stats.status[_local3]] = true;
if (statusFX.ON[stats.status[_local3]] == null) {
statusFX.ON[stats.status[_local3]] = true;
}
_local3++;
}
for (var _local5 in statusFX.ON) {
if (!_local4[_local5]) {
statusFX.ON[_local5] = null;
}
}
if (jolt) {
mdl._x = orig_x + (2 * jolt[1]);
jolt[1] = jolt[1] * -1;
jolt[0]--;
if (!jolt[0]) {
jolt = null;
mdl._x = orig_x;
}
}
if (jumping == 0) {
return(undefined);
}
if (((c < Jmod) && (jumping == 1)) || ((c > (((Jmod + 30) + 6) + (_root.TECH_USING.BREATH ? 10 : 0))) && (jumping == -1))) {
var _local7 = jumping * ((SIDE == "e") ? -1 : 1);
if ((!mdlStats.RANGED_ATK) && (_root.Target != this)) {
mdl._x = mdl._x - (((jumping == -1) ? (dx2) : (dx)) * _local7);
mdl._y = mdl._y - ((jumping == 1) ? (dy) : (-dy2));
if ((jumping == 1) && (_x < (orig_x - (100 * _local7)))) {
SetProperDepth(null, true);
}
if ((jumping == -1) && (_x > (orig_x - (100 * _local7)))) {
SetProperDepth(null);
}
}
}
x = x + jumping;
c++;
if ((c == (Jmod + 13)) || (c == ((((Jmod + Jmod2) + 30) + 8) + (_root.TECH_USING.BREATH ? 10 : 0)))) {
if (jumping == 1) {
jumping = -1;
var _local6 = true;
_root.Target.EXCLAIM._visible = false;
_root.REACTION = null;
if ((_root.phySpell != undefined) || (_root.TECH_USING.BREATH)) {
_root.CastSpell(true);
_root.phySpell = null;
if (_root.CS_MISSED) {
_local6 = false;
}
} else {
_local6 = PhysicalStrike();
}
if (_local6 && (SIDE == "p")) {
_root.GiveEXP(50, this, _root.Target);
}
} else {
jumping = 0;
mdl._x = orig_x;
mdl._y = orig_y;
SetProperDepth(true);
_root.GDelay = (10 + Jmod2) + (_root.TECH_USING.BREATH ? (int(_root.PFXList["pfx_" + _root.TECH_USING.pfx].dmgdelay)) : 0);
_root.endturn = true;
moving = false;
if (!stats.hp[0]) {
Animate("hit");
onDie();
}
}
x = Jmod;
}
};
Instance of Symbol 1857 MovieClip "act_cursor" in Symbol 2774 MovieClip [B_MODEL] Frame 1
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 1857 MovieClip "target_cursor" in Symbol 2774 MovieClip [B_MODEL] Frame 1
onClipEvent (load) {
_visible = false;
}
Symbol 2774 MovieClip [B_MODEL] Frame 5
mdlStats = {model:"dummy", sprite:"common", Class:"Peasant", TYPE:"HUMAN", cElem:"EARTH", wpnType:"SPEAR", armrTypes:[], baseStats:{hp:25, mp:40, STR:11, VIT:13, SPR:7, AGL:15}, nAtk:[2, 5], nDef:0, nMDef:0, critical:0, hpGrowth:8, atkGrowth:[1, 2], equip:{weapon:["Longsword"], shield:["none"], helmet:["none"], armour:["Tunic"], accs:["none"], accs2:["none"]}, names:["Peasant"], blood:0, specChance:0, resist:{}, EXP:[50, 100], desc:"Peasant"};
Techs = [];
loot = [["Potion", 2]];
DetermineStats();
Instance of Symbol 1857 MovieClip "act_cursor" in Symbol 2774 MovieClip [B_MODEL] Frame 5
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 2336 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 6
onClipEvent (load) {
skin = "knight";
}
Instance of Symbol 2336 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 7
onClipEvent (load) {
skin = "knight";
dreamy = true;
}
Instance of Symbol 2336 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 9
onClipEvent (load) {
skin = "hero";
}
Instance of Symbol 2399 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 10
onClipEvent (load) {
skin = "hero";
}
Instance of Symbol 2336 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 15
onClipEvent (load) {
skin = "soldier";
}
Instance of Symbol 2399 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 16
onClipEvent (load) {
skin = "soldier";
}
Symbol 2774 MovieClip [B_MODEL] Frame 20
mdlStats = {names:["Monster"], model:"monster", sprite:"monster", Class:"Monster", TYPE:"BEAST", cElem:"DARK", baseStats:{hp:1200, mp:10, STR:30, VIT:24, SPR:2, AGL:8}, nAtk:50, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:28, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{DARK:30, LIGHT:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:300};
Techs = [{skill:"Dark Claw", type:"ACT", DMG:["m", 1.5], MP:10, critical:10, accuracy:100, stfx:{DRK:10}, AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw"}];
Gambits = [{command:"Dark Claw", target:"ANY_PC", criteria:["random", 30]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Monster Fang", 20]];
DetermineStats();
Symbol 2774 MovieClip [B_MODEL] Frame 21
mdlStats = {names:["Zombie Monster"], model:"monster", sprite:"monster", Class:"Monster", TYPE:"UNDEAD", cElem:"DARK", baseStats:{hp:16, mp:10, STR:25, VIT:18, SPR:2, AGL:8}, nAtk:30, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:26, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{DARK:200, LIGHT:-100, ETHER:-100, PSN:100, PAR:100, DRK:100, CNF:100, NUM:100, SIL:100, CRS:100, SLP:100, ZOM:100, BSK:100, BLD:100}, EXP:300};
Techs = [{skill:"Dark Claw", type:"ACT", DMG:["m", 1.5], MP:10, critical:10, accuracy:100, stfx:{DRK:70}, AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw"}];
Gambits = [{command:"Dark Claw", target:"ANY_PC", criteria:["random", 30]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Monster Fang", 10]];
DetermineStats();
Instance of Symbol 2523 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 21
onClipEvent (load) {
skin = "zombie";
}
Symbol 2774 MovieClip [B_MODEL] Frame 22
mdlStats = {names:["Punk Monster"], model:"punkmonster", sprite:"monster", Class:"Monster", TYPE:"BEAST", cElem:"DARK", baseStats:{hp:382, mp:10, STR:25, VIT:18, SPR:2, AGL:8}, nAtk:40, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:32, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:20, EARTH:20, LIGHT:-100, DARK:150, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:200};
Techs = [{skill:"Dark Claw", type:"ACT", DMG:["m", 1.5], MP:10, critical:10, accuracy:100, stfx:{DRK:10}, AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw"}];
Gambits = [{command:"Dark Claw", target:"ANY_PC", criteria:["random", 30]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Monster Fang", 10]];
DetermineStats();
Instance of Symbol 2523 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 22
onClipEvent (load) {
skin = "punk";
}
Symbol 2774 MovieClip [B_MODEL] Frame 23
mdlStats = {names:["Rexaurus"], model:"Rexaurus", Class:"Monster", TYPE:"BEAST", cElem:"EARTH", baseStats:{hp:1382, mp:10, STR:25, VIT:22, SPR:3, AGL:8}, nAtk:40, nDef:6, nMDef:0, critical:3, evasion:0, hpGrowth:32, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:20, AIR:-100, EARTH:30, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:220};
Techs = [{skill:"Dark Claw", type:"ACT", DMG:["m", 1.5], MP:10, critical:10, accuracy:100, stfx:{DRK:10}, AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw"}];
Gambits = [{command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Monster Fang", 10]];
DetermineStats();
Instance of Symbol 2523 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 23
onClipEvent (load) {
skin = "rex";
}
Symbol 2774 MovieClip [B_MODEL] Frame 25
mdlStats = {names:["Forest Fish"], model:"flyingfish", sprite:"forestfish", Class:"Flying Fish", TYPE:"ICHTHYD", cElem:"WATER", baseStats:{hp:6, mp:10, STR:12, VIT:12, SPR:11, AGL:10}, nAtk:4, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:6, atkGrowth:[3, 2], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{EARTH:40, AIR:-50, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [];
Gambits = [{command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 10], ["Potion", 10]];
DetermineStats();
Symbol 2774 MovieClip [B_MODEL] Frame 26
mdlStats = {names:["Brinary"], model:"brinary", sprite:"brinary", Class:"Flying Fish", TYPE:"ICHTHYD", cElem:"WATER", baseStats:{hp:42, mp:20, STR:12, VIT:12, SPR:11, AGL:10}, nAtk:16, nDef:0, nMDef:2, critical:3, evasion:0, hpGrowth:12, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{AIR:-50, WATER:200, FIRE:50, EARTH:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [];
Gambits = [{command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 20], ["Potion", 10]];
DetermineStats();
Instance of Symbol 2577 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 26
onClipEvent (load) {
skin = "t2";
}
Symbol 2774 MovieClip [B_MODEL] Frame 27
mdlStats = {names:["Coelacanth"], model:"coelacanth", sprite:"coelacanth", Class:"Flying Fish", TYPE:"ICHTHYD", cElem:"WATER", baseStats:{hp:34, mp:40, STR:16, VIT:18, SPR:12, AGL:5}, nAtk:26, nDef:3, nMDef:2, critical:3, evasion:0, hpGrowth:18, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{AIR:-50, WATER:200, FIRE:100, EARTH:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [{skill:"Splash Tackle", type:"ACT", DMG:22, MP:6, accuracy:100, stat_mod:{AGL:10}, AP:0, MODE:"P", elem:"WATER", TT:"SINGLE", pfx:"splash"}];
Gambits = [{command:"Splash Tackle", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 20], ["BetterPotion", 10]];
DetermineStats();
Instance of Symbol 2577 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 27
onClipEvent (load) {
skin = "coel";
}
Symbol 2774 MovieClip [B_MODEL] Frame 28
mdlStats = {names:["Sekil"], model:"sekil", sprite:"sekil", Class:"Flying Fish", TYPE:"UNDEAD", cElem:"DARK", baseStats:{hp:9, mp:40, STR:13, VIT:10, SPR:9, AGL:12}, nAtk:18, nDef:10, nMDef:0, critical:3, evasion:0, hpGrowth:14, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{AIR:-100, WATER:200, FIRE:50, EARTH:-100, LIGHT:-100, DARK:200, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:150};
Techs = [{skill:"Splash Tackle", type:"ACT", DMG:22, MP:6, accuracy:100, stat_mod:{AGL:10}, AP:0, MODE:"P", elem:"WATER", TT:"SINGLE", pfx:"splash"}, {skill:"Bubblerot", type:"ACT", DMG:20, MP:20, accuracy:100, stfx:{DRK:30, PSN:30, ZOM:30}, AP:0, MODE:"M", elem:"DARK", TT:"SINGLE", pfx:"bubblerot"}];
Gambits = [{command:"Bubblerot", target:"ANY_PC", criteria:["random", 70]}, {command:"Splash Tackle", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 20], ["BetterPotion", 10], ["LiquidLight", 10], ["Antidote", 10]];
DetermineStats();
Instance of Symbol 2577 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 28
onClipEvent (load) {
skin = "bone";
}
Symbol 2774 MovieClip [B_MODEL] Frame 29
mdlStats = {names:["Cavefish"], model:"cavefish", sprite:"cavefish", Class:"Flying Fish", TYPE:"ICHTHYD", cElem:"WATER", baseStats:{hp:169, mp:40, STR:16, VIT:12, SPR:9, AGL:12}, nAtk:28, nDef:5, nMDef:0, critical:3, evasion:0, hpGrowth:14, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{AIR:-100, WATER:200, FIRE:50, EARTH:-100, LIGHT:-100, DARK:50, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:150};
Techs = [{skill:"Splash Tackle", type:"ACT", DMG:28, MP:6, accuracy:100, stat_mod:{AGL:10}, AP:0, MODE:"P", elem:"WATER", TT:"SINGLE", pfx:"splash"}];
Gambits = [{command:"Splash Tackle", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 20], ["MugwortJuice", 5]];
DetermineStats();
Instance of Symbol 2577 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 29
onClipEvent (load) {
skin = "blind";
}
Symbol 2774 MovieClip [B_MODEL] Frame 30
mdlStats = {names:["Angry Cod"], model:"killercod", sprite:"killercod", Class:"Flying Fish", TYPE:"ICHTHYD", cElem:"WATER", baseStats:{hp:169, mp:40, STR:22, VIT:22, SPR:9, AGL:15}, nAtk:32, nDef:10, nMDef:0, critical:3, evasion:0, hpGrowth:24, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{AIR:-100, WATER:200, FIRE:50, EARTH:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:180};
Techs = [{skill:"Splash Tackle", type:"ACT", DMG:32, MP:6, accuracy:100, stat_mod:{AGL:10}, AP:0, MODE:"P", elem:"WATER", TT:"SINGLE", pfx:"splash"}, {skill:"Bubble Breath", type:"ACT", DMG:50, MP:6, accuracy:100, AP:0, MODE:"M", elem:"WATER", TT:"SINGLE", BREATH:true, pfx:"bubblebreath"}];
Gambits = [{command:"Bubble Breath", target:"ANY_PC", criteria:["random", 20]}, {command:"Splash Tackle", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Fish Scales", 20], ["MugwortJuice", 5]];
DetermineStats();
Instance of Symbol 2577 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 30
onClipEvent (load) {
skin = "cod";
}
Symbol 2774 MovieClip [B_MODEL] Frame 32
mdlStats = {names:["Fungoblin"], model:"fungoblin", sprite:"fungoblin", Class:"Goblin", TYPE:"GOBLINOID", cElem:"EARTH", baseStats:{hp:4, mp:6, STR:10, VIT:12, SPR:3, AGL:7}, nAtk:3, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:4, atkGrowth:[3, 2], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{EARTH:30, AIR:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [{skill:"Spore Tackle", type:"ACT", DMG:4, MP:2, accuracy:90, stfx:{SLP:80}, AP:0, MODE:"P", elem:"AIR", TT:"SINGLE", pfx:"spore"}];
Gambits = [{command:"Spore Tackle", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Goblin Earwax", 10], ["Potion", 5], ["Nightcap", 1]];
DetermineStats();
Symbol 2774 MovieClip [B_MODEL] Frame 33
mdlStats = {names:["Poshgoblin"], model:"poshgoblin", sprite:"poshgoblin", Class:"Goblin", TYPE:"GOBLINOID", cElem:"DARK", baseStats:{hp:36, mp:60, STR:10, VIT:12, SPR:5, AGL:7}, nAtk:5, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:12, atkGrowth:[3, 3], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{EARTH:20, FIRE:20, WATER:20, AIR:20, LIGHT:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:200};
Techs = [{skill:"Money Attack!", type:"ACT", DMG:10, MP:2, accuracy:100, AP:0, MODE:"P", elem:"NONE", TT:"SINGLE", pfx:"money"}, {skill:"Spore Tackle", type:"ACT", DMG:6, MP:2, accuracy:90, stfx:{SLP:80}, AP:0, MODE:"P", elem:"AIR", TT:"SINGLE", pfx:"spore"}];
Gambits = [{command:"Money Attack!", target:"ANY_PC", criteria:["random", 25]}, {command:"Spore Tackle", target:"ANY_PC", criteria:["random", 90]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Goblin Earwax", 5], ["Potion", 5]];
DetermineStats();
Instance of Symbol 2624 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 33
onClipEvent (load) {
skin = "posh";
}
Symbol 2774 MovieClip [B_MODEL] Frame 34
mdlStats = {names:["Hobgoblin"], model:"hobgoblin", sprite:"hobgoblin", Class:"Goblin", TYPE:"GOBLINOID", cElem:"FIRE", baseStats:{hp:58, mp:6, STR:13, VIT:10, SPR:1, AGL:9}, nAtk:18, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:18, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:50, WATER:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [];
Gambits = [{command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Goblin Earwax", 20], ["Potion", 5]];
DetermineStats();
Instance of Symbol 2624 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 34
onClipEvent (load) {
skin = "hob";
}
Symbol 2774 MovieClip [B_MODEL] Frame 35
mdlStats = {names:["Poorgoblin"], model:"poorgoblin", sprite:"poorgoblin", Class:"Goblin", TYPE:"GOBLINOID", cElem:"EARTH", baseStats:{hp:56, mp:6, STR:16, VIT:10, SPR:1, AGL:9}, nAtk:18, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:19, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:-20, WATER:50, EARTH:30, AIR:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [{skill:"Belch", type:"ACT", MP:0, accuracy:100, critical:0, stfx:{PSN:10, DRK:5, PAR:5, NUM:5, SLP:5, SIL:5, CRS:5, CNF:10}, AP:0, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"smoke_vile"}];
Gambits = [{command:"Belch", target:"ANY_PC", criteria:["random", 40]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Goblin Earwax", 30], ["Potion", 5]];
DetermineStats();
Instance of Symbol 2624 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 35
onClipEvent (load) {
skin = "poor";
}
Symbol 2774 MovieClip [B_MODEL] Frame 36
mdlStats = {names:["Lovely Elf"], model:"LovelyElf", Class:"Goblin", TYPE:"GOBLINOID", cElem:"LIGHT", baseStats:{hp:86, mp:604, STR:10, VIT:13, SPR:22, AGL:16}, nAtk:22, nDef:0, nMDef:16, critical:3, evasion:0, hpGrowth:16, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:50, WATER:50, AIR:50, EARTH:50, LIGHT:30, DARK:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:90, CRS:0, SLP:100, ZOM:0, BSK:0, BLD:0}, EXP:150};
Techs = [{skill:"Elf Dust Tackle", type:"ACT", DMG:24, MP:2, accuracy:90, stfx:{SLP:80}, AP:0, MODE:"P", elem:"AIR", TT:"SINGLE", pfx:"spore", desc:"Inflicts sleep."}, {skill:"Flame", type:"ACT", DMG:20, MP:6, accuracy:100, critical:0, AP:0, MODE:"M", elem:"FIRE", TT:"SINGLE", pfx:"flame1", desc:"Magic attack."}, {skill:"Bubble", type:"ACT", DMG:20, MP:6, accuracy:100, critical:0, AP:0, MODE:"M", elem:"WATER", TT:"SINGLE", pfx:"bubble1", desc:"Magic attack."}, {skill:"Lightning Bolt", type:"ACT", DMG:20, MP:6, accuracy:100, critical:0, AP:0, MODE:"M", elem:"AIR", TT:"SINGLE", pfx:"bolt1", desc:"Magic attack."}, {skill:"Stone", type:"ACT", DMG:20, MP:6, accuracy:100, critical:0, AP:0, MODE:"M", elem:"EARTH", TT:"SINGLE", pfx:"stone1", desc:"Magic attack."}];
Gambits = [{command:"Elf Dust Tackle", target:"ANY_PC", criteria:["random", 50]}, {command:"Flame", target:"ANY_PC", criteria:["random", 50]}, {command:"Bubble", target:"ANY_PC", criteria:["random", 50]}, {command:"Lightning Bolt", target:"ANY_PC", criteria:["random", 50]}, {command:"Stone", target:"ANY_PC", criteria:["random", 50]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["Goblin Earwax", 20], ["FigJuice", 5], ["Elf Cap", 1]];
DetermineStats();
Instance of Symbol 2624 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 36
onClipEvent (load) {
skin = "elf";
}
Symbol 2774 MovieClip [B_MODEL] Frame 40
mdlStats = {names:["Fumerat"], model:"fumerat", sprite:"fumerat", Class:"Rat", TYPE:"BEAST", cElem:"EARTH", baseStats:{hp:3, mp:3, STR:10, VIT:8, SPR:3, AGL:13}, nAtk:3, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:3, atkGrowth:[2, 2], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{EARTH:30, AIR:-100, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [{skill:"Infect", type:"ACT", DMG:3, MP:1, accuracy:100, stfx:{PSN:80}, sfx:"bite", AP:0, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"snakebite", desc:"Poison-inflicting bite."}];
Gambits = [{command:"Infect", target:"ANY_PC", criteria:["random", 30]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["LeadPipe", 40], ["Antidote", 30]];
DetermineStats();
Instance of Symbol 2647 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 40
onClipEvent (load) {
skin = "d";
}
Symbol 2774 MovieClip [B_MODEL] Frame 41
mdlStats = {names:["Miasmurine"], model:"fumerat", sprite:"fumerat", Class:"Rat", TYPE:"BEAST", cElem:"DARK", elem:"EARTH", baseStats:{hp:90, mp:3, STR:10, VIT:8, SPR:3, AGL:22}, nAtk:16, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:3, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, stfx_onhit:{PSN:10}, resist:{EARTH:50, LIGHT:-100, AIR:-50, PSN:100, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:100};
Techs = [{skill:"Infect", type:"ACT", DMG:13, MP:1, accuracy:100, stfx:{PSN:100}, AP:0, MODE:"P", elem:"EARTH", TT:"SINGLE", pfx:"snakebite", sfx:"bite", desc:"Poison-inflicting bite."}];
Gambits = [{command:"Infect", target:"ANY_PC", criteria:["random", 30]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["LeadPipe", 30], ["Antidote", 20]];
DetermineStats();
Instance of Symbol 2647 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 41
onClipEvent (load) {
skin = "black";
}
Symbol 2774 MovieClip [B_MODEL] Frame 42
mdlStats = {names:["Rot Rat"], model:"fumerat", sprite:"fumerat", Class:"Rat", TYPE:"UNDEAD", cElem:"DARK", elem:"DARK", baseStats:{hp:30, mp:3, STR:13, VIT:16, SPR:3, AGL:17}, nAtk:26, nDef:0, nMDef:0, critical:3, evasion:0, hpGrowth:6, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, stfx_onhit:{ZOM:10}, resist:{FIRE:-100, LIGHT:-100, DARK:200, AIR:-50, PSN:100, PAR:100, DRK:100, CNF:100, NUM:100, SIL:100, CRS:100, SLP:100, ZOM:100, BSK:100, BLD:100}, EXP:100};
Techs = [{skill:"Infect", type:"ACT", DMG:13, MP:1, accuracy:100, stfx:{ZOM:20}, sfx:"bite", AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"infect_zombie", sfx:"bite"}];
Gambits = [{command:"Infect", target:"ANY_PC", criteria:["random", 70]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [["LeadPipe", 30], ["HolyWater", 50]];
DetermineStats();
Instance of Symbol 2647 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 42
onClipEvent (load) {
skin = "rot";
}
Symbol 2774 MovieClip [B_MODEL] Frame 47
mdlStats = {names:["Dragon"], model:"MightyDragon", sprite:"MightyDragon", Class:"Dragon", TYPE:"DRAGON", cElem:"DARK", elem:"DARK", wpnType:"none", armrTypes:[], baseStats:{hp:44000, mp:999, STR:26, VIT:32, SPR:24, AGL:19}, nAtk:80, nDef:40, nMDef:40, critical:3, hpGrowth:0, atkGrowth:[0, 0], equip:{weapon:["none"], shield:["none"], helmet:["none"], armour:["none"], accs:["none"], accs2:["none"]}, resist:{FIRE:100, WATER:60, AIR:20, EARTH:20, DARK:200, LIGHT:-100, PSN:50, PAR:50, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:5000};
Techs = [{skill:"Fire Breath", type:"ACT", DMG:160, no_dmg_split:true, MP:20, accuracy:100, AP:-1, MODE:"M", BREATH:true, elem:"FIRE", TT:"ALL_e", pfx:"invn_flamethrower", pfx2:"flame1", desc:"Engulfs all enemies in flames. Mwahahah! Meraeador's such a pacifist."}, {skill:"Dark Claw", type:"ACT", DMG:["m", 1.5], MP:10, critical:10, accuracy:100, stfx:{DRK:10}, AP:0, MODE:"P", elem:"DARK", TT:"SINGLE", pfx:"darkclaw", desc:"Dark attack. More powerful than normal attack."}, {skill:"Thunderbolt", type:"ACT", DMG:120, MP:6, critical:0, accuracy:100, stfx:{PAR:10}, AP:0, MODE:"M", elem:"AIR", TT:"SINGLE", pfx:"bolt2", desc:"Standard elemental magic attack."}];
Gambits = [{command:"Fire Breath", target:"ALL_p", criteria:["random", 30]}, {command:"Thunderbolt", target:"ANY_PC", criteria:["random", 30]}, {command:"Dark Claw", target:"ANY_PC", criteria:["random", 100]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [];
DetermineStats();
Instance of Symbol 2746 MovieClip "mdl" in Symbol 2774 MovieClip [B_MODEL] Frame 47
onClipEvent (load) {
skin = "dark";
}
Symbol 2774 MovieClip [B_MODEL] Frame 48
mdlStats = {names:["Mugbert"], model:"Mugbert", unique_sprite:"mugbert", Class:"Grunt", TYPE:"HUMAN", cElem:"EARTH", wpnType:"GREATMACE", armrTypes:[], baseStats:{hp:80, mp:3, STR:13, VIT:15, SPR:6, AGL:6}, nAtk:4, nDef:0, nMDef:0, critical:3, hpGrowth:0, atkGrowth:[0, 0], equip:{weapon:["Branch Club"], shield:["none"], helmet:["none"], armour:["Tunic"], accs:["none"], accs2:["none"]}, resist:{EARTH:0, PSN:0, PAR:0, DRK:0, CNF:0, NUM:0, SIL:0, CRS:0, SLP:0, ZOM:0, BSK:0, BLD:0}, EXP:200};
Techs = [{skill:"Power Attack", type:"ACT", DMG:["m", 1.5, 5], MP:0, accuracy:70, AP:0, MODE:"P", elem:"NONE", TT:"SINGLE", sfx:"punch", pfx:"powerhit", desc:"Attack fiercly. 50% more powerful than an average attack, but less accurate."}];
Gambits = [{command:"Power Attack", target:"ANY_PC", criteria:["random", 50]}, {command:"Attack", target:"ANY_PC", criteria:null}];
loot = [];
DetermineStats();
Instance of Symbol 219 MovieClip "FIRE" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PSN" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "WATER" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PAR" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "EARTH" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "NUM" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "AIR" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SIL" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "LIGHT" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CRS" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "DARK" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CNF" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "ETHER" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SLP" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "FIG" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "DRK" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "NONE" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "BLD" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "THAUMA" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "ZOM" in Symbol 2818 MovieClip Frame 38
onClipEvent (load) {
this.gotoAndStop(_name);
}
Symbol 2827 MovieClip Frame 1
stop();
Instance of Symbol 264 MovieClip [status_fx] "stfx" in Symbol 2901 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Symbol 2923 MovieClip Frame 1
stop();
Symbol 2940 MovieClip Frame 1
stop();
Symbol 2996 MovieClip [conv] Frame 1
stop();
Symbol 3088 MovieClip Frame 1
stop();
Symbol 3107 MovieClip Frame 1
stop();
Symbol 3120 MovieClip Frame 1
stop();
Symbol 3137 MovieClip Frame 1
gotoAndStop(_root.THIS_CHAPTER);
Symbol 3149 MovieClip Frame 1
stop();
Symbol 3154 MovieClip Frame 1
stop();
Symbol 3171 MovieClip Frame 1
stop();
onRollOver = function () {
this.gotoAndStop(2);
};
onRollOut = function () {
this.gotoAndStop(1);
};
onRelease = function () {
getURL (_root.CHAPTER_URLS[int(this._name.split("_")[1])], "_blank");
};
LABEL = ["I", "II"][int(this._name.split("_")[1])];
Symbol 3224 MovieClip Frame 1
stop();
Symbol 3245 MovieClip Frame 1
stop();
Symbol 3252 MovieClip Frame 1
stop();
Instance of Symbol 264 MovieClip [status_fx] "stfx" in Symbol 3349 MovieClip Frame 5
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 219 MovieClip "FIRE" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "WATER" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "AIR" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "EARTH" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "LIGHT" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "DARK" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "ETHER" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "FIG" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PSN" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "PAR" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "NUM" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SIL" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CRS" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "DRK" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "CNF" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "SLP" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "NONE" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 219 MovieClip "THAUMA" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "ZOM" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Instance of Symbol 264 MovieClip [status_fx] "BLD" in Symbol 3408 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(_name);
}
Symbol 3436 MovieClip Frame 1
stop();
Instance of Symbol 3411 MovieClip in Symbol 3436 MovieClip Frame 44
onClipEvent (enterFrame) {
if (count == null) {
count = 0;
}
count++;
if (count == 50) {
var i = 0;
while (i < 5) {
var p = _root.P_party[i];
p.hp[1] = p.hp[1] + int(0.1 * p.hp[0]);
if (p.hp[1] > p.hp[0]) {
p.hp[1] = p.hp[0];
}
p.mp[1] = p.mp[1] + int(0.1 * p.mp[0]);
if (p.mp[1] > p.mp[0]) {
p.mp[1] = p.mp[0];
}
p.CT = 0;
i++;
}
_root.ReturnToGame(-3);
}
}
Symbol 3436 MovieClip Frame 100
stop();
_root.FinishVictory();
Symbol 3461 MovieClip Frame 1
stop();
Instance of Symbol 1815 MovieClip in Symbol 3461 MovieClip Frame 1
on (press) {
this._parent.gotoAndStop(5);
}
Instance of Symbol 1815 MovieClip in Symbol 3461 MovieClip Frame 1
on (press) {
_root.gotoAndStop(_parent.LoadArea);
}
Instance of Symbol 1815 MovieClip in Symbol 3461 MovieClip Frame 1
on (press) {
_root.E_NewMap(_parent.tileset, _parent.w, _parent.h);
}
Instance of Symbol 1815 MovieClip in Symbol 3461 MovieClip Frame 5
on (press) {
this._parent.gotoAndStop(1);
}