静态战斗画面

This commit is contained in:
草莓 2025-01-30 22:24:05 +08:00
parent 8f3c9b514f
commit 25fb914841
9 changed files with 1883 additions and 2018 deletions

View File

@ -192,7 +192,9 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"mdef": { "mdef": {
"_leaf": true, "_leaf": true,
"_type": "textarea", "_type": "textarea",
"_data": "法抗(写为小数)" "_docs": "法抗",
"_data": "百分数如10为10%法抗,怪物受到勇士的法术伤害减免比例"
}, },
"speed": { "speed": {
"_leaf": true, "_leaf": true,

View File

@ -269,7 +269,11 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_type": "textarea", "_type": "textarea",
"_data": "法强", "_data": "法强",
}, },
"spelldef": {
"_leaf": true,
"_type": "textarea",
"_data": "法抗百分比",
},
"matk": { "matk": {
"_leaf": true, "_leaf": true,
"_type": "textarea", "_type": "textarea",

View File

@ -1107,7 +1107,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"hero": { "hero": {
"image": "hero.webp", "image": "hero.webp",
"animate": false, "animate": false,
"name": "Caim", "name": "凯伊姆",
"lv": 1, "lv": 1,
"hpmax": 9999, "hpmax": 9999,
"hp": 1000, "hp": 1000,
@ -1137,7 +1137,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"followers": [], "followers": [],
"steps": 0, "steps": 0,
"matk": 0, "matk": 0,
"spell": null "spell": 0,
"spelldef": 0
}, },
"startCanvas": [ "startCanvas": [
{ {

View File

@ -1,10 +1,10 @@
var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
{ {
"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"magic":false}, "greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"magic":false,"mdef":0},
"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10,"magic":false}, "redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10,"magic":false},
"blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]}, "slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]},
"bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1]}, "bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1],"mdef":0,"speed":10},
"bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"redBat": {"name":"红蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "redBat": {"name":"红蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"vampire": {"name":"冥灵魔王","hp":888,"atk":888,"def":888,"money":888,"exp":888,"point":0,"special":[6],"n":8}, "vampire": {"name":"冥灵魔王","hp":888,"atk":888,"def":888,"money":888,"exp":888,"point":0,"special":[6],"n":8},

View File

@ -741,156 +741,156 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
]; ];
}, },
"getEnemyInfo": function (enemy, hero, x, y, floorId) { "getEnemyInfo": function (enemy, hero, x, y, floorId) {
// 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用 // 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用
// 例如:坚固、模仿、仿攻等等 // 例如:坚固、模仿、仿攻等等
// //
// 参数说明: // 参数说明:
// enemy该怪物信息 // enemy该怪物信息
// hero_hp,hero_atk,hero_def,hero_mdef勇士的生命攻防护盾数据 // hero_hp,hero_atk,hero_def,hero_mdef勇士的生命攻防护盾数据
// x,y该怪物的坐标查看手册和强制战斗时为undefined // x,y该怪物的坐标查看手册和强制战斗时为undefined
// floorId该怪物所在的楼层 // floorId该怪物所在的楼层
// 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果) // 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果)
floorId = floorId || core.status.floorId; floorId = floorId || core.status.floorId;
var hero_hp = core.getRealStatusOrDefault(hero, "hp"), var hero_hp = core.getRealStatusOrDefault(hero, "hp"),
hero_atk = core.getRealStatusOrDefault(hero, "atk"), hero_atk = core.getRealStatusOrDefault(hero, "atk"),
hero_def = core.getRealStatusOrDefault(hero, "def"), hero_def = core.getRealStatusOrDefault(hero, "def"),
hero_mdef = core.getRealStatusOrDefault(hero, "mdef"), hero_mdef = core.getRealStatusOrDefault(hero, "mdef"),
hero_speed = core.getRealStatusOrDefault(hero, "speed"); hero_speed = core.getRealStatusOrDefault(hero, "speed");
var mon_hp = core.getEnemyValue(enemy, "hp", x, y, floorId), var mon_hp = core.getEnemyValue(enemy, "hp", x, y, floorId),
mon_atk = core.getEnemyValue(enemy, "atk", x, y, floorId), mon_atk = core.getEnemyValue(enemy, "atk", x, y, floorId),
mon_def = core.getEnemyValue(enemy, "def", x, y, floorId), mon_def = core.getEnemyValue(enemy, "def", x, y, floorId),
mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId), mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId),
mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId), mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId),
mon_special = core.getEnemyValue(enemy, "special", x, y, floorId); mon_special = core.getEnemyValue(enemy, "special", x, y, floorId);
var mon_money = core.getEnemyValue(enemy, "money", x, y, floorId), var mon_money = core.getEnemyValue(enemy, "money", x, y, floorId),
mon_exp = core.getEnemyValue(enemy, "exp", x, y, floorId), mon_exp = core.getEnemyValue(enemy, "exp", x, y, floorId),
mon_point = core.getEnemyValue(enemy, "point", x, y, floorId); mon_point = core.getEnemyValue(enemy, "point", x, y, floorId);
var mon_barrier = 0, var mon_barrier = 0,
mon_absorb_damage = 0, mon_absorb_damage = 0,
mon_magic = core.getEnemyValue(enemy, "magic", x, y, floorId); mon_magic = core.getEnemyValue(enemy, "magic", x, y, floorId);
// 模仿 // 模仿
if (core.hasSpecial(mon_special, 10)) { if (core.hasSpecial(mon_special, 10)) {
mon_atk = hero_atk; mon_atk = hero_atk;
mon_def = hero_def; mon_def = hero_def;
} }
// 坚固 // 坚固
if (core.hasSpecial(mon_special, 3) && mon_def < hero_atk - 1) { if (core.hasSpecial(mon_special, 3) && mon_def < hero_atk - 1) {
mon_def = hero_atk - 1; mon_def = hero_atk - 1;
} }
var guards = []; var guards = [];
// 光环和支援检查 // 光环和支援检查
if (!core.status.checkBlock) core.status.checkBlock = {}; if (!core.status.checkBlock) core.status.checkBlock = {};
if (core.status.checkBlock.needCache) { if (core.status.checkBlock.needCache) {
// 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。 // 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。
var hp_buff = 0, var hp_buff = 0,
atk_buff = 0, atk_buff = 0,
def_buff = 0; def_buff = 0;
// 已经计算过的光环怪ID列表用于判定叠加 // 已经计算过的光环怪ID列表用于判定叠加
var usedEnemyIds = {}; var usedEnemyIds = {};
// 检查光环和支援的缓存 // 检查光环和支援的缓存
var index = x != null && y != null ? x + "," + y : floorId; var index = x != null && y != null ? x + "," + y : floorId;
if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {}; if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {};
var cache = core.status.checkBlock.cache[index]; var cache = core.status.checkBlock.cache[index];
if (!cache) { if (!cache) {
// 没有该点的缓存,则遍历每个图块 // 没有该点的缓存,则遍历每个图块
core.extractBlocks(floorId); core.extractBlocks(floorId);
core.status.maps[floorId].blocks.forEach(function (block) { core.status.maps[floorId].blocks.forEach(function (block) {
if (!block.disable) { if (!block.disable) {
// 获得该图块的ID // 获得该图块的ID
var id = block.event.id, var id = block.event.id,
enemy = core.material.enemys[id]; enemy = core.material.enemys[id];
// 检查【光环】技能数字25 // 检查【光环】技能数字25
if (enemy && core.hasSpecial(enemy.special, 25)) { if (enemy && core.hasSpecial(enemy.special, 25)) {
// 检查是否是范围光环 // 检查是否是范围光环
var inRange = enemy.haloRange == null; var inRange = enemy.haloRange == null;
if (enemy.haloRange != null && x != null && y != null) { if (enemy.haloRange != null && x != null && y != null) {
var dx = Math.abs(block.x - x), var dx = Math.abs(block.x - x),
dy = Math.abs(block.y - y); dy = Math.abs(block.y - y);
// 检查十字和九宫格光环 // 检查十字和九宫格光环
if (dx + dy <= enemy.haloRange) inRange = true; if (dx + dy <= enemy.haloRange) inRange = true;
if ( if (
enemy.haloSquare && enemy.haloSquare &&
dx <= enemy.haloRange && dx <= enemy.haloRange &&
dy <= enemy.haloRange dy <= enemy.haloRange
) )
inRange = true; inRange = true;
} }
// 检查是否可叠加 // 检查是否可叠加
if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) { if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) {
hp_buff += enemy.hpBuff || 0; hp_buff += enemy.hpBuff || 0;
atk_buff += enemy.atkBuff || 0; atk_buff += enemy.atkBuff || 0;
def_buff += enemy.defBuff || 0; def_buff += enemy.defBuff || 0;
usedEnemyIds[enemy.id] = true; usedEnemyIds[enemy.id] = true;
} }
} }
// 检查【支援】技能数字26 // 检查【支援】技能数字26
if ( if (
enemy && enemy &&
core.hasSpecial(enemy.special, 26) && core.hasSpecial(enemy.special, 26) &&
// 检查支援条件坐标存在距离为1且不能是自己 // 检查支援条件坐标存在距离为1且不能是自己
// 其他类型的支援怪,比如十字之类的话.... 看着做是一样的 // 其他类型的支援怪,比如十字之类的话.... 看着做是一样的
x != null && x != null &&
y != null && y != null &&
Math.abs(block.x - x) <= 1 && Math.abs(block.x - x) <= 1 &&
Math.abs(block.y - y) <= 1 && Math.abs(block.y - y) <= 1 &&
!(x == block.x && y == block.y) !(x == block.x && y == block.y)
) { ) {
// 记录怪物的x,yID // 记录怪物的x,yID
guards.push([block.x, block.y, id]); guards.push([block.x, block.y, id]);
} }
// TODO如果有其他类型光环怪物在这里仿照添加检查 // TODO如果有其他类型光环怪物在这里仿照添加检查
// 注新增新的类光环属性需要遍历全图的需要在特殊属性定义那里的第五项写1参见光环和支援的特殊属性定义。 // 注新增新的类光环属性需要遍历全图的需要在特殊属性定义那里的第五项写1参见光环和支援的特殊属性定义。
} }
}); });
core.status.checkBlock.cache[index] = { core.status.checkBlock.cache[index] = {
hp_buff: hp_buff, hp_buff: hp_buff,
atk_buff: atk_buff, atk_buff: atk_buff,
def_buff: def_buff, def_buff: def_buff,
guards: guards, guards: guards,
}; };
} else { } else {
// 直接使用缓存数据 // 直接使用缓存数据
hp_buff = cache.hp_buff; hp_buff = cache.hp_buff;
atk_buff = cache.atk_buff; atk_buff = cache.atk_buff;
def_buff = cache.def_buff; def_buff = cache.def_buff;
guards = cache.guards; guards = cache.guards;
} }
// 增加比例;如果要增加数值可以直接在这里修改 // 增加比例;如果要增加数值可以直接在这里修改
mon_hp *= 1 + hp_buff / 100; mon_hp *= 1 + hp_buff / 100;
mon_atk *= 1 + atk_buff / 100; mon_atk *= 1 + atk_buff / 100;
mon_def *= 1 + def_buff / 100; mon_def *= 1 + def_buff / 100;
} }
// TODO可以在这里新增其他的怪物数据变化 // TODO可以在这里新增其他的怪物数据变化
// 比如仿攻(怪物攻击不低于勇士攻击): // 比如仿攻(怪物攻击不低于勇士攻击):
// if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) { // if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) {
// mon_atk = hero_atk; // mon_atk = hero_atk;
// } // }
// 也可以按需增加各种自定义内容 // 也可以按需增加各种自定义内容
return { return {
hp: Math.floor(mon_hp), hp: Math.floor(mon_hp),
atk: Math.floor(mon_atk), atk: Math.floor(mon_atk),
def: Math.floor(mon_def), def: Math.floor(mon_def),
mdef: Math.floor(mon_mdef), mdef: Math.floor(mon_mdef),
speed: Math.floor(mon_speed), speed: Math.floor(mon_speed),
barrier: Math.floor(mon_barrier), barrier: Math.floor(mon_barrier),
absorb: Math.floor(mon_absorb_damage), absorb: Math.floor(mon_absorb_damage),
money: Math.floor(mon_money), money: Math.floor(mon_money),
exp: Math.floor(mon_exp), exp: Math.floor(mon_exp),
point: Math.floor(mon_point), point: Math.floor(mon_point),
special: mon_special, special: mon_special,
magic: mon_magic, magic: mon_magic,
guards: guards, // 返回支援情况 guards: guards, // 返回支援情况
}; };
}, },
"getDamageInfo": function (enemy, hero, x, y, floorId) { "getDamageInfo": function (enemy, hero, x, y, floorId) {
// 获得战斗伤害信息(实际伤害计算函数) // 获得战斗伤害信息(实际伤害计算函数)
// //
@ -1928,130 +1928,130 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
.sort(/*function (id1, id2) { return core.material.items[id1].name <= core.material.items[id2].name ? -1 : 1 }*/); .sort(/*function (id1, id2) { return core.material.items[id1].name <= core.material.items[id2].name ? -1 : 1 }*/);
}, },
"drawStatusBar": function () { "drawStatusBar": function () {
// 这真的是人能写出来的东西? // 这真的是人能写出来的东西?
var ctx, var ctx,
fill = function (text, x, y, style) { fill = function (text, x, y, style) {
core.ui.setFont( core.ui.setFont(
ctx, ctx,
(/\w+/.test(text) ? "italic " : "") + "bold 18px Verdana" (/\w+/.test(text) ? "italic " : "") + "bold 18px Verdana"
); );
core.ui.fillBoldText(ctx, text, x, y, style); core.ui.fillBoldText(ctx, text, x, y, style);
}; };
if (core.flags.statusCanvas) { if (core.flags.statusCanvas) {
// 系统开关「自绘状态栏」开启 // 系统开关「自绘状态栏」开启
core.ui.clearMap((ctx = core.dom.statusCanvasCtx)); // 清空状态栏 core.ui.clearMap((ctx = core.dom.statusCanvasCtx)); // 清空状态栏
core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor);
if (core.domStyle.isVertical) { if (core.domStyle.isVertical) {
// 竖屏 // 竖屏
core.drawImage(ctx, core.statusBar.icons.floor, 6, 6, 25, 25); core.drawImage(ctx, core.statusBar.icons.floor, 6, 6, 25, 25);
fill((core.status.thisMap || {}).name || "Loading", 42, 26); fill((core.status.thisMap || {}).name || "Loading", 42, 26);
core.drawImage(ctx, core.statusBar.icons.hp, 137, 6, 25, 25); core.drawImage(ctx, core.statusBar.icons.hp, 137, 6, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("hp")), 173, 26); fill(core.formatBigNumber(core.getRealStatus("hp")), 173, 26);
core.drawImage(ctx, core.statusBar.icons.atk, 268, 6, 25, 25); core.drawImage(ctx, core.statusBar.icons.atk, 268, 6, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("atk")), 304, 26); fill(core.formatBigNumber(core.getRealStatus("atk")), 304, 26);
core.drawImage(ctx, core.statusBar.icons.def, 6, 38, 25, 25); core.drawImage(ctx, core.statusBar.icons.def, 6, 38, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("def")), 42, 58); fill(core.formatBigNumber(core.getRealStatus("def")), 42, 58);
core.drawImage(ctx, core.statusBar.icons.mdef, 137, 38, 25, 25); core.drawImage(ctx, core.statusBar.icons.mdef, 137, 38, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("mdef")), 173, 58); fill(core.formatBigNumber(core.getRealStatus("mdef")), 173, 58);
core.drawImage(ctx, core.statusBar.icons.money, 268, 38, 25, 25); core.drawImage(ctx, core.statusBar.icons.money, 268, 38, 25, 25);
fill(core.formatBigNumber(core.status.hero.money), 304, 58); fill(core.formatBigNumber(core.status.hero.money), 304, 58);
core.drawImage(ctx, core.statusBar.icons.exp, 6, 70, 25, 25); core.drawImage(ctx, core.statusBar.icons.exp, 6, 70, 25, 25);
fill(core.formatBigNumber(core.status.hero.exp), 42, 90); fill(core.formatBigNumber(core.status.hero.exp), 42, 90);
} else if (!core.flags.hideLeftStatusBar) { } else if (!core.flags.hideLeftStatusBar) {
// 横屏且未隐藏状态栏 // 横屏且未隐藏状态栏
core.drawImage(ctx, core.statusBar.icons.floor, 6, 9, 25, 25); core.drawImage(ctx, core.statusBar.icons.floor, 6, 9, 25, 25);
fill((core.status.thisMap || {}).name || "Loading", 42, 29); fill((core.status.thisMap || {}).name || "Loading", 42, 29);
core.drawImage(ctx, core.statusBar.icons.hp, 6, 43, 25, 25); core.drawImage(ctx, core.statusBar.icons.hp, 6, 43, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("hp")), 42, 63); fill(core.formatBigNumber(core.getRealStatus("hp")), 42, 63);
core.drawImage(ctx, core.statusBar.icons.atk, 6, 77, 25, 25); core.drawImage(ctx, core.statusBar.icons.atk, 6, 77, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("atk")), 42, 97); fill(core.formatBigNumber(core.getRealStatus("atk")), 42, 97);
core.drawImage(ctx, core.statusBar.icons.def, 6, 111, 25, 25); core.drawImage(ctx, core.statusBar.icons.def, 6, 111, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("def")), 42, 131); fill(core.formatBigNumber(core.getRealStatus("def")), 42, 131);
core.drawImage(ctx, core.statusBar.icons.mdef, 6, 145, 25, 25); core.drawImage(ctx, core.statusBar.icons.mdef, 6, 145, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("mdef")), 42, 165); fill(core.formatBigNumber(core.getRealStatus("mdef")), 42, 165);
core.drawImage(ctx, core.statusBar.icons.money, 6, 179, 25, 25); core.drawImage(ctx, core.statusBar.icons.money, 6, 179, 25, 25);
fill(core.formatBigNumber(core.status.hero.money), 42, 199); fill(core.formatBigNumber(core.status.hero.money), 42, 199);
core.drawImage(ctx, core.statusBar.icons.exp, 6, 213, 25, 25); core.drawImage(ctx, core.statusBar.icons.exp, 6, 213, 25, 25);
fill(core.formatBigNumber(core.status.hero.exp), 42, 233); fill(core.formatBigNumber(core.status.hero.exp), 42, 233);
fill( fill(
core.setTwoDigits(core.itemCount("yellowKey")), core.setTwoDigits(core.itemCount("yellowKey")),
11, 11,
267, 267,
"#FFCCAA" "#FFCCAA"
); );
fill( fill(
core.setTwoDigits(core.itemCount("blueKey")), core.setTwoDigits(core.itemCount("blueKey")),
46, 46,
267, 267,
"#AAAADD" "#AAAADD"
); );
fill(core.setTwoDigits(core.itemCount("redKey")), 81, 267, "#FF8888"); fill(core.setTwoDigits(core.itemCount("redKey")), 81, 267, "#FF8888");
} }
} else if (core.flags.hideLeftStatusBar && !core.domStyle.isVertical) { } else if (core.flags.hideLeftStatusBar && !core.domStyle.isVertical) {
// 横屏且隐藏状态栏 // 横屏且隐藏状态栏
if (!core.dymCanvas["status"]) if (!core.dymCanvas["status"])
core.ui.createCanvas("status", 0, 0, core._PX_, core._PY_, 66); // 刚好盖过显伤层 core.ui.createCanvas("status", 0, 0, core._PX_, core._PY_, 66); // 刚好盖过显伤层
core.ui.clearMap((ctx = core.dymCanvas["status"])); core.ui.clearMap((ctx = core.dymCanvas["status"]));
core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor);
var offset = var offset =
core.status.hero.loc.x - core.bigmap.offsetX / 32 >= core._HEIGHT_ core.status.hero.loc.x - core.bigmap.offsetX / 32 >= core._HEIGHT_ ?
? 0 0 :
: core._PY_; core._PY_;
core.ui.setAlpha(ctx, 0.75); core.ui.setAlpha(ctx, 0.75);
core.ui.drawWindowSkin( core.ui.drawWindowSkin(
"winskin.webp", "winskin.webp",
ctx, ctx,
offset, offset,
0, 0,
core._PX_ - core._PY_, core._PX_ - core._PY_,
core._PY_ core._PY_
); );
core.ui.setAlpha(ctx, 1); core.ui.setAlpha(ctx, 1);
core.drawImage(ctx, core.statusBar.icons.floor, 6 + offset, 9, 25, 25); core.drawImage(ctx, core.statusBar.icons.floor, 6 + offset, 9, 25, 25);
fill((core.status.thisMap || {}).name || "Loading", 42 + offset, 29); fill((core.status.thisMap || {}).name || "Loading", 42 + offset, 29);
core.drawImage(ctx, core.statusBar.icons.hp, 6 + offset, 43, 25, 25); core.drawImage(ctx, core.statusBar.icons.hp, 6 + offset, 43, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("hp")), 42 + offset, 63); fill(core.formatBigNumber(core.getRealStatus("hp")), 42 + offset, 63);
core.drawImage(ctx, core.statusBar.icons.atk, 6 + offset, 77, 25, 25); core.drawImage(ctx, core.statusBar.icons.atk, 6 + offset, 77, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("atk")), 42 + offset, 97); fill(core.formatBigNumber(core.getRealStatus("atk")), 42 + offset, 97);
core.drawImage(ctx, core.statusBar.icons.def, 6 + offset, 111, 25, 25); core.drawImage(ctx, core.statusBar.icons.def, 6 + offset, 111, 25, 25);
fill(core.formatBigNumber(core.getRealStatus("def")), 42 + offset, 131); fill(core.formatBigNumber(core.getRealStatus("def")), 42 + offset, 131);
core.drawImage(ctx, core.statusBar.icons.mdef, 6 + offset, 145, 25, 25); core.drawImage(ctx, core.statusBar.icons.mdef, 6 + offset, 145, 25, 25);
fill( fill(
core.formatBigNumber(core.getRealStatus("mdef")), core.formatBigNumber(core.getRealStatus("mdef")),
42 + offset, 42 + offset,
165 165
); );
core.drawImage( core.drawImage(
ctx, ctx,
core.statusBar.icons.money, core.statusBar.icons.money,
6 + offset, 6 + offset,
179, 179,
25, 25,
25 25
); );
fill(core.formatBigNumber(core.status.hero.money), 42 + offset, 199); fill(core.formatBigNumber(core.status.hero.money), 42 + offset, 199);
core.drawImage(ctx, core.statusBar.icons.exp, 6 + offset, 213, 25, 25); core.drawImage(ctx, core.statusBar.icons.exp, 6 + offset, 213, 25, 25);
fill(core.formatBigNumber(core.status.hero.exp), 42 + offset, 233); fill(core.formatBigNumber(core.status.hero.exp), 42 + offset, 233);
fill( fill(
core.setTwoDigits(core.itemCount("yellowKey")), core.setTwoDigits(core.itemCount("yellowKey")),
11 + offset, 11 + offset,
267, 267,
"#FFCCAA" "#FFCCAA"
); );
fill( fill(
core.setTwoDigits(core.itemCount("blueKey")), core.setTwoDigits(core.itemCount("blueKey")),
46 + offset, 46 + offset,
267, 267,
"#AAAADD" "#AAAADD"
); );
fill( fill(
core.setTwoDigits(core.itemCount("redKey")), core.setTwoDigits(core.itemCount("redKey")),
81 + offset, 81 + offset,
267, 267,
"#FF8888" "#FF8888"
); );
} }
}, },
"drawStatistics": function () { "drawStatistics": function () {
// 浏览地图时参与的统计项目 // 浏览地图时参与的统计项目

View File

@ -315,7 +315,18 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"jumpShoes": 49, "jumpShoes": 49,
"skill1": 30, "skill1": 30,
"wand": 10, "wand": 10,
"pack": 46 "pack": 46,
"I366": 5,
"I367": 7,
"I368": 26,
"I369": 31,
"I370": 32,
"I371": 34,
"I372": 35,
"I373": 36,
"I374": 37,
"I375": 38,
"I396": 39
}, },
"autotile": { "autotile": {
"autotile": 0, "autotile": 0,

View File

@ -546,5 +546,60 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"name": "钱袋", "name": "钱袋",
"itemEffect": "core.status.hero.money += 500", "itemEffect": "core.status.hero.money += 500",
"itemEffectTip": ",金币+500" "itemEffectTip": ",金币+500"
},
"I366": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I367": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I368": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I369": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I370": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I371": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I372": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I373": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I374": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I375": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
},
"I396": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
} }
} }

View File

@ -1,670 +1,317 @@
var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = { var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
1: { {
cls: "animates", "1": {"cls":"animates","id":"yellowWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
id: "yellowWall", "2": {"cls":"animates","id":"whiteWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
canBreak: true, "3": {"cls":"animates","id":"blueWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
animate: 1, "4": {"cls":"animates","id":"star","name":"星空"},
doorInfo: { "5": {"cls":"animates","id":"lava","name":"岩浆"},
time: 160, "6": {"cls":"animates","id":"ice","doorInfo":{"time":160,"openSound":"破冰镐","closeSound":"door.opus","keys":{"icePickaxe":1}},"animate":1},
openSound: "door.opus", "7": {"cls":"terrains","id":"blueShopLeft"},
closeSound: "door.opus", "8": {"cls":"terrains","id":"blueShopRight"},
keys: {}, "9": {"cls":"terrains","id":"pinkShopLeft"},
}, "10": {"cls":"terrains","id":"pinkShopRight"},
}, "11": {"cls":"animates","id":"lavaNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 血网的伤害效果移动到 checkBlock 中处理\n\n\t// 如果要做一次性血网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();","name":"血网"},
2: { "12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'poison');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"毒网"},
cls: "animates", "13": {"cls":"animates","id":"weakNet","canPass":true,"trigger":"null","script":"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'weak');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"衰网"},
id: "whiteWall", "14": {"cls":"animates","id":"curseNet","canPass":true,"trigger":"null","script":"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'curse');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"},
canBreak: true, "15": {"cls":"animates","id":"blueLava"},
animate: 1, "16": {"cls":"animates","id":"water"},
doorInfo: { "20": {"cls":"autotile","id":"autotile"},
time: 160, "21": {"cls":"items","id":"yellowKey"},
openSound: "door.opus", "22": {"cls":"items","id":"blueKey"},
closeSound: "door.opus", "23": {"cls":"items","id":"redKey"},
keys: {}, "24": {"cls":"items","id":"greenKey"},
}, "25": {"cls":"items","id":"steelKey"},
}, "26": {"cls":"items","id":"bigKey"},
3: { "27": {"cls":"items","id":"redGem"},
cls: "animates", "28": {"cls":"items","id":"blueGem"},
id: "blueWall", "29": {"cls":"items","id":"greenGem"},
canBreak: true, "30": {"cls":"items","id":"yellowGem"},
animate: 1, "31": {"cls":"items","id":"redPotion"},
doorInfo: { "32": {"cls":"items","id":"bluePotion"},
time: 160, "33": {"cls":"items","id":"greenPotion"},
openSound: "door.opus", "34": {"cls":"items","id":"yellowPotion"},
closeSound: "door.opus", "35": {"cls":"items","id":"sword1"},
keys: {}, "36": {"cls":"items","id":"shield1"},
}, "37": {"cls":"items","id":"sword2"},
}, "38": {"cls":"items","id":"shield2"},
4: { cls: "animates", id: "star", name: "星空" }, "39": {"cls":"items","id":"sword3"},
5: { cls: "animates", id: "lava", name: "岩浆" }, "40": {"cls":"items","id":"shield3"},
6: { "41": {"cls":"items","id":"sword4"},
cls: "animates", "42": {"cls":"items","id":"shield4"},
id: "ice", "43": {"cls":"items","id":"sword5"},
doorInfo: { "44": {"cls":"items","id":"shield5"},
time: 160, "45": {"cls":"items","id":"book"},
openSound: "破冰镐", "46": {"cls":"items","id":"fly"},
closeSound: "door.opus", "47": {"cls":"items","id":"pickaxe"},
keys: { icePickaxe: 1 }, "48": {"cls":"items","id":"icePickaxe"},
}, "49": {"cls":"items","id":"bomb"},
animate: 1, "50": {"cls":"items","id":"centerFly"},
}, "51": {"cls":"items","id":"upFly"},
7: { cls: "terrains", id: "blueShopLeft" }, "52": {"cls":"items","id":"downFly"},
8: { cls: "terrains", id: "blueShopRight" }, "53": {"cls":"items","id":"coin"},
9: { cls: "terrains", id: "pinkShopLeft" }, "54": {"cls":"items","id":"freezeBadge"},
10: { cls: "terrains", id: "pinkShopRight" }, "55": {"cls":"items","id":"cross"},
11: { "56": {"cls":"items","id":"superPotion"},
cls: "animates", "57": {"cls":"items","id":"earthquake"},
id: "lavaNet", "58": {"cls":"items","id":"poisonWine"},
canPass: true, "59": {"cls":"items","id":"weakWine"},
trigger: "null", "60": {"cls":"items","id":"curseWine"},
script: "61": {"cls":"items","id":"superWine"},
"(function () {\n\t// 血网的伤害效果移动到 checkBlock 中处理\n\n\t// 如果要做一次性血网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();", "62": {"cls":"items","id":"dagger"},
name: "血网", "63": {"cls":"items","id":"pack"},
}, "64": {"cls":"items","id":"amulet"},
12: { "65": {"cls":"items","id":"hammer"},
cls: "animates", "68": {"cls":"items","id":"lifeWand"},
id: "poisonNet", "69": {"cls":"items","id":"jumpShoes"},
canPass: true, "70": {"cls":"items","id":"sword0"},
trigger: "null", "71": {"cls":"items","id":"shield0"},
script: "72": {"cls":"items","id":"skill1"},
"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'poison');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()", "73": {"cls":"items","id":"wand"},
name: "毒网", "81": {"cls":"animates","id":"yellowDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"yellowKey":1}},"name":"黄门"},
}, "82": {"cls":"animates","id":"blueDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"blueKey":1}},"name":"蓝门"},
13: { "83": {"cls":"animates","id":"redDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"redKey":1}},"name":"红门"},
cls: "animates", "84": {"cls":"animates","id":"greenDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"greenKey":1}},"name":"绿门"},
id: "weakNet", "85": {"cls":"animates","id":"specialDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"specialKey":1}},"name":"机关门"},
canPass: true, "86": {"cls":"animates","id":"steelDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"steelKey":1}},"name":"铁门"},
trigger: "null", "87": {"cls":"terrains","id":"upFloor","canPass":true},
script: "88": {"cls":"terrains","id":"downFloor","canPass":true},
"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'weak');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()", "89": {"cls":"animates","id":"portal","canPass":true},
name: "衰网", "90": {"cls":"animates","id":"starPortal","canPass":true},
}, "91": {"cls":"animates","id":"upPortal","canPass":true},
14: { "92": {"cls":"animates","id":"leftPortal","canPass":true},
cls: "animates", "93": {"cls":"animates","id":"downPortal","canPass":true},
id: "curseNet", "94": {"cls":"animates","id":"rightPortal","canPass":true},
canPass: true, "101": {"cls":"animates","id":"crystalUp"},
trigger: "null", "102": {"cls":"animates","id":"crystalBottom"},
script: "103": {"cls":"animates","id":"fire"},
"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'curse');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()", "104": {"cls":"animates","id":"switch"},
name: "咒网", "109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
}, "121": {"cls":"npcs","id":"man"},
15: { cls: "animates", id: "blueLava" }, "122": {"cls":"npcs","id":"trader"},
16: { cls: "animates", id: "water" }, "123": {"cls":"npcs","id":"thief"},
20: { cls: "autotile", id: "autotile" }, "124": {"cls":"npcs","id":"fairy"},
21: { cls: "items", id: "yellowKey" }, "125": {"cls":"npcs","id":"wizard"},
22: { cls: "items", id: "blueKey" }, "126": {"cls":"npcs","id":"recluse"},
23: { cls: "items", id: "redKey" }, "127": {"cls":"npcs","id":"king"},
24: { cls: "items", id: "greenKey" }, "128": {"cls":"npcs","id":"youngMan"},
25: { cls: "items", id: "steelKey" }, "129": {"cls":"npcs","id":"sign"},
26: { cls: "items", id: "bigKey" }, "130": {"cls":"npcs","id":"expShop"},
27: { cls: "items", id: "redGem" }, "131": {"cls":"npcs","id":"moneyShop"},
28: { cls: "items", id: "blueGem" }, "132": {"cls":"npcs","id":"princess"},
29: { cls: "items", id: "greenGem" }, "133": {"cls":"npc48","id":"npc0","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1},
30: { cls: "items", id: "yellowGem" }, "134": {"cls":"npc48","id":"npc1","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1},
31: { cls: "items", id: "redPotion" }, "135": {"cls":"npc48","id":"npc2","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1},
32: { cls: "items", id: "bluePotion" }, "136": {"cls":"npc48","id":"npc3","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1},
33: { cls: "items", id: "greenPotion" }, "137": {"cls":"npcs","id":"greenMan"},
34: { cls: "items", id: "yellowPotion" }, "138": {"cls":"npcs","id":"blueTrader"},
35: { cls: "items", id: "sword1" }, "140": {"cls":"autotile","id":"autotile4"},
36: { cls: "items", id: "shield1" }, "141": {"cls":"autotile","id":"autotile8"},
37: { cls: "items", id: "sword2" }, "142": {"cls":"autotile","id":"autotile9"},
38: { cls: "items", id: "shield2" }, "143": {"cls":"autotile","id":"autotile10"},
39: { cls: "items", id: "sword3" }, "144": {"cls":"autotile","id":"autotile12"},
40: { cls: "items", id: "shield3" }, "151": {"cls":"autotile","id":"autotile1"},
41: { cls: "items", id: "sword4" }, "152": {"cls":"autotile","id":"autotile2"},
42: { cls: "items", id: "shield4" }, "153": {"cls":"autotile","id":"autotile3"},
43: { cls: "items", id: "sword5" }, "161": {"cls":"terrains","id":"arrowUp","canPass":true,"cannotOut":["left","right","down"],"cannotIn":["up"]},
44: { cls: "items", id: "shield5" }, "162": {"cls":"terrains","id":"arrowDown","canPass":true,"cannotOut":["left","right","up"],"cannotIn":["down"]},
45: { cls: "items", id: "book" }, "163": {"cls":"terrains","id":"arrowLeft","canPass":true,"cannotOut":["up","down","right"],"cannotIn":["left"]},
46: { cls: "items", id: "fly" }, "164": {"cls":"terrains","id":"arrowRight","canPass":true,"cannotOut":["up","down","left"],"cannotIn":["right"]},
47: { cls: "items", id: "pickaxe" }, "165": {"cls":"terrains","id":"light","trigger":"null","canPass":true,"script":"(function () {\n\tcore.setBlock(core.getNumberById('darkLight'), core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();"},
48: { cls: "items", id: "icePickaxe" }, "166": {"cls":"terrains","id":"darkLight"},
49: { cls: "items", id: "bomb" }, "167": {"cls":"terrains","id":"ski","trigger":"ski","canPass":true},
50: { cls: "items", id: "centerFly" }, "168": {"cls":"terrains","id":"flower","canPass":true},
51: { cls: "items", id: "upFly" }, "169": {"cls":"terrains","id":"box","trigger":"pushBox"},
52: { cls: "items", id: "downFly" }, "170": {"cls":"terrains","id":"boxed","trigger":"pushBox"},
53: { cls: "items", id: "coin" }, "201": {"cls":"enemys","id":"greenSlime"},
54: { cls: "items", id: "freezeBadge" }, "202": {"cls":"enemys","id":"redSlime"},
55: { cls: "items", id: "cross" }, "203": {"cls":"enemys","id":"blackSlime"},
56: { cls: "items", id: "superPotion" }, "204": {"cls":"enemys","id":"slimelord"},
57: { cls: "items", id: "earthquake" }, "205": {"cls":"enemys","id":"bat"},
58: { cls: "items", id: "poisonWine" }, "206": {"cls":"enemys","id":"bigBat"},
59: { cls: "items", id: "weakWine" }, "207": {"cls":"enemys","id":"redBat"},
60: { cls: "items", id: "curseWine" }, "208": {"cls":"enemys","id":"vampire"},
61: { cls: "items", id: "superWine" }, "209": {"cls":"enemys","id":"skeleton"},
62: { cls: "items", id: "dagger" }, "210": {"cls":"enemys","id":"skeletonWarrior"},
63: { cls: "items", id: "pack" }, "211": {"cls":"enemys","id":"skeletonCaptain"},
64: { cls: "items", id: "amulet" }, "212": {"cls":"enemys","id":"ghostSoldier"},
65: { cls: "items", id: "hammer" }, "213": {"cls":"enemys","id":"zombie"},
68: { cls: "items", id: "lifeWand" }, "214": {"cls":"enemys","id":"zombieKnight"},
69: { cls: "items", id: "jumpShoes" }, "215": {"cls":"enemys","id":"rock"},
70: { cls: "items", id: "sword0" }, "216": {"cls":"enemys","id":"slimeman"},
71: { cls: "items", id: "shield0" }, "217": {"cls":"enemys","id":"bluePriest"},
72: { cls: "items", id: "skill1" }, "218": {"cls":"enemys","id":"redPriest"},
73: { cls: "items", id: "wand" }, "219": {"cls":"enemys","id":"brownWizard"},
81: { "220": {"cls":"enemys","id":"redWizard"},
cls: "animates", "221": {"cls":"enemys","id":"yellowGateKeeper"},
id: "yellowDoor", "222": {"cls":"enemys","id":"blueGateKeeper"},
trigger: "openDoor", "223": {"cls":"enemys","id":"redGateKeeper"},
animate: 1, "224": {"cls":"enemys","id":"swordsman"},
doorInfo: { "225": {"cls":"enemys","id":"soldier"},
time: 160, "226": {"cls":"enemys","id":"yellowKnight"},
openSound: "door.opus", "227": {"cls":"enemys","id":"redKnight"},
closeSound: "door.opus", "228": {"cls":"enemys","id":"darkKnight"},
keys: { yellowKey: 1 }, "229": {"cls":"enemys","id":"blackKing"},
}, "230": {"cls":"enemys","id":"yellowKing"},
name: "黄门", "231": {"cls":"enemys","id":"greenKing"},
}, "232": {"cls":"enemys","id":"blueKnight"},
82: { "233": {"cls":"enemys","id":"goldSlime"},
cls: "animates", "234": {"cls":"enemys","id":"poisonSkeleton"},
id: "blueDoor", "235": {"cls":"enemys","id":"poisonBat"},
trigger: "openDoor", "236": {"cls":"enemys","id":"ironRock"},
animate: 1, "237": {"cls":"enemys","id":"skeletonPriest"},
doorInfo: { "238": {"cls":"enemys","id":"skeletonKing"},
time: 160, "239": {"cls":"enemys","id":"skeletonPresbyter"},
openSound: "door.opus", "240": {"cls":"enemys","id":"skeletonKnight"},
closeSound: "door.opus", "241": {"cls":"enemys","id":"evilHero"},
keys: { blueKey: 1 }, "242": {"cls":"enemys","id":"devilWarrior"},
}, "243": {"cls":"enemys","id":"demonPriest"},
name: "蓝门", "244": {"cls":"enemys","id":"goldHornSlime"},
}, "245": {"cls":"enemys","id":"redKing"},
83: { "246": {"cls":"enemys","id":"blueKing"},
cls: "animates", "247": {"cls":"enemys","id":"magicMaster"},
id: "redDoor", "248": {"cls":"enemys","id":"silverSlime"},
trigger: "openDoor", "249": {"cls":"enemys","id":"blademaster"},
animate: 1, "250": {"cls":"enemys","id":"whiteHornSlime"},
doorInfo: { "251": {"cls":"enemys","id":"evilPrincess"},
time: 160, "252": {"cls":"enemys","id":"evilFairy"},
openSound: "door.opus", "253": {"cls":"enemys","id":"yellowPriest"},
closeSound: "door.opus", "254": {"cls":"enemys","id":"redSwordsman"},
keys: { redKey: 1 }, "255": {"cls":"enemys","id":"whiteSlimeman"},
}, "256": {"cls":"enemys","id":"poisonZombie"},
name: "红门", "257": {"cls":"enemys","id":"dragon"},
}, "258": {"cls":"enemys","id":"octopus"},
84: { "259": {"cls":"enemys","id":"fairyEnemy"},
cls: "animates", "260": {"cls":"enemys","id":"princessEnemy"},
id: "greenDoor", "261": {"cls":"enemy48","id":"angel"},
trigger: "openDoor", "262": {"cls":"enemy48","id":"elemental"},
animate: 1, "263": {"cls":"enemy48","id":"steelGuard"},
doorInfo: { "264": {"cls":"enemy48","id":"evilBat"},
time: 160, "265": {"cls":"enemys","id":"silverSlimelord"},
openSound: "door.opus", "266": {"cls":"enemys","id":"goldSlimelord"},
closeSound: "door.opus", "267": {"cls":"enemys","id":"grayRock"},
keys: { greenKey: 1 }, "270": {"cls":"enemys","id":"greenKnight"},
}, "271": {"cls":"enemys","id":"bowman"},
name: "绿门", "272": {"cls":"enemys","id":"purpleBowman"},
}, "275": {"cls":"enemys","id":"watcherSlime"},
85: { "277": {"cls":"enemys","id":"frostBat"},
cls: "animates", "278": {"cls":"enemys","id":"devilKnight"},
id: "specialDoor", "279": {"cls":"enemys","id":"grayPriest"},
trigger: "openDoor", "280": {"cls":"enemys","id":"greenGateKeeper"},
animate: 1, "300": {"cls":"terrains","id":"ground"},
doorInfo: { "301": {"cls":"terrains","id":"sWallT","name":"薄墙-上","cannotOut":["up"],"cannotIn":["up"]},
time: 160, "302": {"cls":"terrains","id":"sWallL","name":"薄墙-左","cannotOut":["left"],"cannotIn":["left"]},
openSound: "door.opus", "303": {"cls":"terrains","id":"sWallR","name":"薄墙-右","cannotOut":["right"],"cannotIn":["right"]},
closeSound: "door.opus", "304": {"cls":"terrains","id":"sWallB","name":"薄墙-下","cannotOut":["down"],"cannotIn":["down"]},
keys: { specialKey: 1 }, "305": {"cls":"terrains","id":"grass"},
}, "306": {"cls":"terrains","id":"sWallTL","name":"薄墙-上左","cannotOut":["up","left"],"cannotIn":["up","left"]},
name: "机关门", "307": {"cls":"terrains","id":"sWallBR","name":"薄墙-下右","cannotOut":["down","right"],"cannotIn":["down","right"]},
}, "308": {"cls":"terrains","id":"grass2"},
86: { "309": {"cls":"terrains","id":"sWallTR","name":"薄墙-上右","cannotOut":["up","right"],"cannotIn":["up","right"]},
cls: "animates", "310": {"cls":"terrains","id":"sWallBL","name":"薄墙-下左","cannotOut":["down","left"],"cannotIn":["down","left"]},
id: "steelDoor", "311": {"cls":"terrains","id":"ground2"},
trigger: "openDoor", "312": {"cls":"terrains","id":"sWallTB","name":"薄墙-上下","cannotOut":["up","down"],"cannotIn":["up","down"]},
animate: 1, "313": {"cls":"terrains","id":"ground3"},
doorInfo: { "314": {"cls":"terrains","id":"sWallLR","name":"薄墙-左右","cannotOut":["left","right"],"cannotIn":["left","right"]},
time: 160, "315": {"cls":"terrains","id":"sWallBLR","name":"薄墙-下左右","cannotOut":["down","left","right"],"cannotIn":["down","left","right"]},
openSound: "door.opus", "316": {"cls":"terrains","id":"sWallTLR","name":"薄墙-上左右","cannotOut":["up","left","right"],"cannotIn":["up","left","right"]},
closeSound: "door.opus", "317": {"cls":"terrains","id":"sWallTBR","name":"薄墙-上下右","cannotOut":["up","down","right"],"cannotIn":["up","down","right"]},
keys: { steelKey: 1 }, "318": {"cls":"terrains","id":"sWallTBL","name":"薄墙-上下左","cannotOut":["up","down","left"],"cannotIn":["up","down","left"]},
}, "319": {"cls":"npc48","id":"tallYellowDoor","trigger":"openDoor","name":"高黄门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"yellowKey":1}}},
name: "铁门", "320": {"cls":"npc48","id":"tallBlueDoor","trigger":"openDoor","name":"高蓝门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"blueKey":1}}},
}, "321": {"cls":"npc48","id":"tallRedDoor","trigger":"openDoor","name":"高红门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"redKey":1}}},
87: { cls: "terrains", id: "upFloor", canPass: true }, "322": {"cls":"npc48","id":"tallGreenDoor","trigger":"openDoor","name":"高绿门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"greenKey":1}}},
88: { cls: "terrains", id: "downFloor", canPass: true }, "323": {"cls":"npc48","id":"tallSpecialDoor","trigger":"openDoor","name":"高机关门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"specialKey":1}}},
89: { cls: "animates", id: "portal", canPass: true }, "324": {"cls":"npc48","id":"tallSteelDoor","trigger":"openDoor","name":"高铁门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"steelKey":1}}},
90: { cls: "animates", id: "starPortal", canPass: true }, "325": {"cls":"enemys","id":"keiskeiFairy"},
91: { cls: "animates", id: "upPortal", canPass: true }, "326": {"cls":"enemys","id":"tulipFairy"},
92: { cls: "animates", id: "leftPortal", canPass: true }, "327": {"cls":"enemy48","id":"bearDown"},
93: { cls: "animates", id: "downPortal", canPass: true }, "328": {"cls":"enemy48","id":"bearLeft"},
94: { cls: "animates", id: "rightPortal", canPass: true }, "329": {"cls":"enemy48","id":"bearRight"},
101: { cls: "animates", id: "crystalUp" }, "330": {"cls":"enemy48","id":"bearUp"},
102: { cls: "animates", id: "crystalBottom" }, "331": {"cls":"terrains","id":"T331"},
103: { cls: "animates", id: "fire" }, "332": {"cls":"terrains","id":"T332"},
104: { cls: "animates", id: "switch" }, "333": {"cls":"terrains","id":"T333"},
109: { "334": {"cls":"terrains","id":"T334"},
cls: "animates", "335": {"cls":"terrains","id":"T335"},
id: "magentaWall", "336": {"cls":"terrains","id":"T336"},
canBreak: true, "337": {"cls":"terrains","id":"T337"},
animate: 1, "338": {"cls":"terrains","id":"T338"},
doorInfo: { "339": {"cls":"terrains","id":"T339"},
time: 160, "340": {"cls":"terrains","id":"T340"},
openSound: "door.opus", "341": {"cls":"terrains","id":"T341"},
closeSound: "door.opus", "342": {"cls":"terrains","id":"T342"},
keys: {}, "343": {"cls":"terrains","id":"T343"},
}, "344": {"cls":"terrains","id":"T344"},
}, "345": {"cls":"terrains","id":"T345","canPass":true},
121: { cls: "npcs", id: "man" }, "346": {"cls":"terrains","id":"T346"},
122: { cls: "npcs", id: "trader" }, "347": {"cls":"terrains","id":"T347"},
123: { cls: "npcs", id: "thief" }, "348": {"cls":"terrains","id":"T348"},
124: { cls: "npcs", id: "fairy" }, "349": {"cls":"terrains","id":"T349"},
125: { cls: "npcs", id: "wizard" }, "350": {"cls":"terrains","id":"T350"},
126: { cls: "npcs", id: "recluse" }, "351": {"cls":"terrains","id":"T351"},
127: { cls: "npcs", id: "king" }, "352": {"cls":"terrains","id":"T352"},
128: { cls: "npcs", id: "youngMan" }, "353": {"cls":"terrains","id":"T353"},
129: { cls: "npcs", id: "sign" }, "354": {"cls":"terrains","id":"T354"},
130: { cls: "npcs", id: "expShop" }, "355": {"cls":"terrains","id":"T355"},
131: { cls: "npcs", id: "moneyShop" }, "356": {"cls":"terrains","id":"T356"},
132: { cls: "npcs", id: "princess" }, "357": {"cls":"terrains","id":"T357"},
133: { "358": {"cls":"terrains","id":"T358"},
cls: "npc48", "359": {"cls":"terrains","id":"T359"},
id: "npc0", "360": {"cls":"terrains","id":"T360"},
faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, "361": {"cls":"terrains","id":"T361"},
animate: 1, "362": {"cls":"terrains","id":"T362"},
}, "363": {"cls":"terrains","id":"T363"},
134: { "364": {"cls":"terrains","id":"T364"},
cls: "npc48", "365": {"cls":"terrains","id":"T365"},
id: "npc1", "366": {"cls":"items","id":"I366"},
faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, "367": {"cls":"items","id":"I367"},
animate: 1, "368": {"cls":"items","id":"I368"},
}, "369": {"cls":"items","id":"I369"},
135: { "370": {"cls":"items","id":"I370"},
cls: "npc48", "371": {"cls":"items","id":"I371"},
id: "npc2", "372": {"cls":"items","id":"I372"},
faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, "373": {"cls":"items","id":"I373"},
animate: 1, "374": {"cls":"items","id":"I374"},
}, "375": {"cls":"items","id":"I375"},
136: { "376": {"cls":"terrains","id":"T376"},
cls: "npc48", "377": {"cls":"terrains","id":"T377"},
id: "npc3", "378": {"cls":"terrains","id":"T378"},
faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, "379": {"cls":"terrains","id":"T379"},
animate: 1, "380": {"cls":"terrains","id":"T380"},
}, "381": {"cls":"terrains","id":"T381"},
137: { cls: "npcs", id: "greenMan" }, "382": {"cls":"terrains","id":"T382"},
138: { cls: "npcs", id: "blueTrader" }, "383": {"cls":"terrains","id":"T383"},
140: { cls: "autotile", id: "autotile4" }, "384": {"cls":"terrains","id":"T384"},
141: { cls: "autotile", id: "autotile8" }, "385": {"cls":"terrains","id":"T385"},
142: { cls: "autotile", id: "autotile9" }, "386": {"cls":"terrains","id":"T386"},
143: { cls: "autotile", id: "autotile10" }, "387": {"cls":"terrains","id":"T387"},
144: { cls: "autotile", id: "autotile12" }, "388": {"cls":"terrains","id":"T388"},
151: { cls: "autotile", id: "autotile1" }, "389": {"cls":"terrains","id":"T389"},
152: { cls: "autotile", id: "autotile2" }, "390": {"cls":"terrains","id":"T390"},
153: { cls: "autotile", id: "autotile3" }, "391": {"cls":"terrains","id":"T391"},
161: { "392": {"cls":"terrains","id":"T392"},
cls: "terrains", "393": {"cls":"terrains","id":"T393"},
id: "arrowUp", "394": {"cls":"terrains","id":"T394"},
canPass: true, "395": {"cls":"terrains","id":"T395"},
cannotOut: ["left", "right", "down"], "396": {"cls":"items","id":"I396"},
cannotIn: ["up"], "20034": {"cls":"tileset","id":"X20034","canPass":true},
}, "20154": {"cls":"tileset","id":"X20154","canPass":true},
162: { "20216": {"cls":"tileset","id":"X20216","canPass":true},
cls: "terrains", "20217": {"cls":"tileset","id":"X20217","canPass":true},
id: "arrowDown", "40054": {"cls":"tileset","id":"X40054","canPass":false},
canPass: true, "40090": {"cls":"tileset","id":"X40090","canPass":true},
cannotOut: ["left", "right", "up"], "50054": {"cls":"tileset","id":"X50054","canPass":false},
cannotIn: ["down"], "70505": {"cls":"tileset","id":"X70505","canPass":true},
}, "71182": {"cls":"tileset","id":"X71182","canPass":false},
163: { "71183": {"cls":"tileset","id":"X71183","canPass":false},
cls: "terrains", "71229": {"cls":"tileset","id":"X71229","canPass":true},
id: "arrowLeft", "71818": {"cls":"tileset","id":"X71818","canPass":true},
canPass: true, "71887": {"cls":"tileset","id":"X71887","canPass":true},
cannotOut: ["up", "down", "right"], "80003": {"cls":"tileset","id":"X80003","canPass":true},
cannotIn: ["left"], "80007": {"cls":"tileset","id":"X80007","canPass":true},
}, "80010": {"cls":"tileset","id":"X80010","canPass":true},
164: { "80011": {"cls":"tileset","id":"X80011","canPass":true},
cls: "terrains", "80020": {"cls":"tileset","id":"X80020","canPass":true},
id: "arrowRight", "90226": {"cls":"tileset","id":"X90226","canPass":false}
canPass: true, }
cannotOut: ["up", "down", "left"],
cannotIn: ["right"],
},
165: {
cls: "terrains",
id: "light",
trigger: "null",
canPass: true,
script:
"(function () {\n\tcore.setBlock(core.getNumberById('darkLight'), core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();",
},
166: { cls: "terrains", id: "darkLight" },
167: { cls: "terrains", id: "ski", trigger: "ski", canPass: true },
168: { cls: "terrains", id: "flower", canPass: true },
169: { cls: "terrains", id: "box", trigger: "pushBox" },
170: { cls: "terrains", id: "boxed", trigger: "pushBox" },
201: { cls: "enemys", id: "greenSlime" },
202: { cls: "enemys", id: "redSlime" },
203: { cls: "enemys", id: "blackSlime" },
204: { cls: "enemys", id: "slimelord" },
205: { cls: "enemys", id: "bat" },
206: { cls: "enemys", id: "bigBat" },
207: { cls: "enemys", id: "redBat" },
208: { cls: "enemys", id: "vampire" },
209: { cls: "enemys", id: "skeleton" },
210: { cls: "enemys", id: "skeletonWarrior" },
211: { cls: "enemys", id: "skeletonCaptain" },
212: { cls: "enemys", id: "ghostSoldier" },
213: { cls: "enemys", id: "zombie" },
214: { cls: "enemys", id: "zombieKnight" },
215: { cls: "enemys", id: "rock" },
216: { cls: "enemys", id: "slimeman" },
217: { cls: "enemys", id: "bluePriest" },
218: { cls: "enemys", id: "redPriest" },
219: { cls: "enemys", id: "brownWizard" },
220: { cls: "enemys", id: "redWizard" },
221: { cls: "enemys", id: "yellowGateKeeper" },
222: { cls: "enemys", id: "blueGateKeeper" },
223: { cls: "enemys", id: "redGateKeeper" },
224: { cls: "enemys", id: "swordsman" },
225: { cls: "enemys", id: "soldier" },
226: { cls: "enemys", id: "yellowKnight" },
227: { cls: "enemys", id: "redKnight" },
228: { cls: "enemys", id: "darkKnight" },
229: { cls: "enemys", id: "blackKing" },
230: { cls: "enemys", id: "yellowKing" },
231: { cls: "enemys", id: "greenKing" },
232: { cls: "enemys", id: "blueKnight" },
233: { cls: "enemys", id: "goldSlime" },
234: { cls: "enemys", id: "poisonSkeleton" },
235: { cls: "enemys", id: "poisonBat" },
236: { cls: "enemys", id: "ironRock" },
237: { cls: "enemys", id: "skeletonPriest" },
238: { cls: "enemys", id: "skeletonKing" },
239: { cls: "enemys", id: "skeletonPresbyter" },
240: { cls: "enemys", id: "skeletonKnight" },
241: { cls: "enemys", id: "evilHero" },
242: { cls: "enemys", id: "devilWarrior" },
243: { cls: "enemys", id: "demonPriest" },
244: { cls: "enemys", id: "goldHornSlime" },
245: { cls: "enemys", id: "redKing" },
246: { cls: "enemys", id: "blueKing" },
247: { cls: "enemys", id: "magicMaster" },
248: { cls: "enemys", id: "silverSlime" },
249: { cls: "enemys", id: "blademaster" },
250: { cls: "enemys", id: "whiteHornSlime" },
251: { cls: "enemys", id: "evilPrincess" },
252: { cls: "enemys", id: "evilFairy" },
253: { cls: "enemys", id: "yellowPriest" },
254: { cls: "enemys", id: "redSwordsman" },
255: { cls: "enemys", id: "whiteSlimeman" },
256: { cls: "enemys", id: "poisonZombie" },
257: { cls: "enemys", id: "dragon" },
258: { cls: "enemys", id: "octopus" },
259: { cls: "enemys", id: "fairyEnemy" },
260: { cls: "enemys", id: "princessEnemy" },
261: { cls: "enemy48", id: "angel" },
262: { cls: "enemy48", id: "elemental" },
263: { cls: "enemy48", id: "steelGuard" },
264: { cls: "enemy48", id: "evilBat" },
265: { cls: "enemys", id: "silverSlimelord" },
266: { cls: "enemys", id: "goldSlimelord" },
267: { cls: "enemys", id: "grayRock" },
270: { cls: "enemys", id: "greenKnight" },
271: { cls: "enemys", id: "bowman" },
272: { cls: "enemys", id: "purpleBowman" },
275: { cls: "enemys", id: "watcherSlime" },
277: { cls: "enemys", id: "frostBat" },
278: { cls: "enemys", id: "devilKnight" },
279: { cls: "enemys", id: "grayPriest" },
280: { cls: "enemys", id: "greenGateKeeper" },
300: { cls: "terrains", id: "ground" },
301: {
cls: "terrains",
id: "sWallT",
name: "薄墙-上",
cannotOut: ["up"],
cannotIn: ["up"],
},
302: {
cls: "terrains",
id: "sWallL",
name: "薄墙-左",
cannotOut: ["left"],
cannotIn: ["left"],
},
303: {
cls: "terrains",
id: "sWallR",
name: "薄墙-右",
cannotOut: ["right"],
cannotIn: ["right"],
},
304: {
cls: "terrains",
id: "sWallB",
name: "薄墙-下",
cannotOut: ["down"],
cannotIn: ["down"],
},
305: { cls: "terrains", id: "grass" },
306: {
cls: "terrains",
id: "sWallTL",
name: "薄墙-上左",
cannotOut: ["up", "left"],
cannotIn: ["up", "left"],
},
307: {
cls: "terrains",
id: "sWallBR",
name: "薄墙-下右",
cannotOut: ["down", "right"],
cannotIn: ["down", "right"],
},
308: { cls: "terrains", id: "grass2" },
309: {
cls: "terrains",
id: "sWallTR",
name: "薄墙-上右",
cannotOut: ["up", "right"],
cannotIn: ["up", "right"],
},
310: {
cls: "terrains",
id: "sWallBL",
name: "薄墙-下左",
cannotOut: ["down", "left"],
cannotIn: ["down", "left"],
},
311: { cls: "terrains", id: "ground2" },
312: {
cls: "terrains",
id: "sWallTB",
name: "薄墙-上下",
cannotOut: ["up", "down"],
cannotIn: ["up", "down"],
},
313: { cls: "terrains", id: "ground3" },
314: {
cls: "terrains",
id: "sWallLR",
name: "薄墙-左右",
cannotOut: ["left", "right"],
cannotIn: ["left", "right"],
},
315: {
cls: "terrains",
id: "sWallBLR",
name: "薄墙-下左右",
cannotOut: ["down", "left", "right"],
cannotIn: ["down", "left", "right"],
},
316: {
cls: "terrains",
id: "sWallTLR",
name: "薄墙-上左右",
cannotOut: ["up", "left", "right"],
cannotIn: ["up", "left", "right"],
},
317: {
cls: "terrains",
id: "sWallTBR",
name: "薄墙-上下右",
cannotOut: ["up", "down", "right"],
cannotIn: ["up", "down", "right"],
},
318: {
cls: "terrains",
id: "sWallTBL",
name: "薄墙-上下左",
cannotOut: ["up", "down", "left"],
cannotIn: ["up", "down", "left"],
},
319: {
cls: "npc48",
id: "tallYellowDoor",
trigger: "openDoor",
name: "高黄门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { yellowKey: 1 },
},
},
320: {
cls: "npc48",
id: "tallBlueDoor",
trigger: "openDoor",
name: "高蓝门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { blueKey: 1 },
},
},
321: {
cls: "npc48",
id: "tallRedDoor",
trigger: "openDoor",
name: "高红门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { redKey: 1 },
},
},
322: {
cls: "npc48",
id: "tallGreenDoor",
trigger: "openDoor",
name: "高绿门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { greenKey: 1 },
},
},
323: {
cls: "npc48",
id: "tallSpecialDoor",
trigger: "openDoor",
name: "高机关门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { specialKey: 1 },
},
},
324: {
cls: "npc48",
id: "tallSteelDoor",
trigger: "openDoor",
name: "高铁门",
animate: 1,
doorInfo: {
time: 160,
openSound: "door.opus",
closeSound: "door.opus",
keys: { steelKey: 1 },
},
},
325: { cls: "enemys", id: "keiskeiFairy" },
326: { cls: "enemys", id: "tulipFairy" },
327: { cls: "enemy48", id: "bearDown" },
328: { cls: "enemy48", id: "bearLeft" },
329: { cls: "enemy48", id: "bearRight" },
330: { cls: "enemy48", id: "bearUp" },
331: { cls: "terrains", id: "T331" },
332: { cls: "terrains", id: "T332" },
333: { cls: "terrains", id: "T333" },
334: { cls: "terrains", id: "T334" },
335: { cls: "terrains", id: "T335" },
336: { cls: "terrains", id: "T336" },
337: { cls: "terrains", id: "T337" },
338: { cls: "terrains", id: "T338" },
339: { cls: "terrains", id: "T339" },
340: { cls: "terrains", id: "T340" },
341: { cls: "terrains", id: "T341" },
342: { cls: "terrains", id: "T342" },
343: { cls: "terrains", id: "T343" },
344: { cls: "terrains", id: "T344" },
345: { cls: "terrains", id: "T345", canPass: true },
346: { cls: "terrains", id: "T346" },
347: { cls: "terrains", id: "T347" },
348: { cls: "terrains", id: "T348" },
349: { cls: "terrains", id: "T349" },
350: { cls: "terrains", id: "T350" },
351: { cls: "terrains", id: "T351" },
352: { cls: "terrains", id: "T352" },
353: { cls: "terrains", id: "T353" },
354: { cls: "terrains", id: "T354" },
355: { cls: "terrains", id: "T355" },
356: { cls: "terrains", id: "T356" },
357: { cls: "terrains", id: "T357" },
358: { cls: "terrains", id: "T358" },
359: { cls: "terrains", id: "T359" },
360: { cls: "terrains", id: "T360" },
361: { cls: "terrains", id: "T361" },
362: { cls: "terrains", id: "T362" },
363: { cls: "terrains", id: "T363" },
364: { cls: "terrains", id: "T364" },
365: { cls: "terrains", id: "T365" },
376: { cls: "terrains", id: "T376" },
377: { cls: "terrains", id: "T377" },
378: { cls: "terrains", id: "T378" },
379: { cls: "terrains", id: "T379" },
380: { cls: "terrains", id: "T380" },
381: { cls: "terrains", id: "T381" },
382: { cls: "terrains", id: "T382" },
383: { cls: "terrains", id: "T383" },
384: { cls: "terrains", id: "T384" },
385: { cls: "terrains", id: "T385" },
386: { cls: "terrains", id: "T386" },
387: { cls: "terrains", id: "T387" },
388: { cls: "terrains", id: "T388" },
389: { cls: "terrains", id: "T389" },
390: { cls: "terrains", id: "T390" },
391: { cls: "terrains", id: "T391" },
392: { cls: "terrains", id: "T392" },
393: { cls: "terrains", id: "T393" },
394: { cls: "terrains", id: "T394" },
395: { cls: "terrains", id: "T395" },
20034: { cls: "tileset", id: "X20034", canPass: true },
20154: { cls: "tileset", id: "X20154", canPass: true },
20216: { cls: "tileset", id: "X20216", canPass: true },
20217: { cls: "tileset", id: "X20217", canPass: true },
40054: { cls: "tileset", id: "X40054", canPass: false },
40090: { cls: "tileset", id: "X40090", canPass: true },
50054: { cls: "tileset", id: "X50054", canPass: false },
70505: { cls: "tileset", id: "X70505", canPass: true },
71182: { cls: "tileset", id: "X71182", canPass: false },
71183: { cls: "tileset", id: "X71183", canPass: false },
71229: { cls: "tileset", id: "X71229", canPass: true },
71818: { cls: "tileset", id: "X71818", canPass: true },
71887: { cls: "tileset", id: "X71887", canPass: true },
80003: { cls: "tileset", id: "X80003", canPass: true },
80007: { cls: "tileset", id: "X80007", canPass: true },
80010: { cls: "tileset", id: "X80010", canPass: true },
80011: { cls: "tileset", id: "X80011", canPass: true },
80020: { cls: "tileset", id: "X80020", canPass: true },
90226: { cls: "tileset", id: "X90226", canPass: false },
};

File diff suppressed because it is too large Load Diff