From 25fb914841a3d7421af6bb070f06f4904f2b8fbc Mon Sep 17 00:00:00 2001 From: strawberry42271 <2806566736@qq.com> Date: Thu, 30 Jan 2025 22:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=99=E6=80=81=E6=88=98=E6=96=97=E7=94=BB?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _server/table/comment.js | 4 +- _server/table/data.comment.js | 6 +- project/data.js | 5 +- project/enemys.js | 4 +- project/functions.js | 530 ++++---- project/icons.js | 13 +- project/items.js | 55 + project/maps.js | 987 +++++--------- project/plugins.js | 2297 ++++++++++++++++++--------------- 9 files changed, 1883 insertions(+), 2018 deletions(-) diff --git a/_server/table/comment.js b/_server/table/comment.js index 46e82ec..3cf5699 100644 --- a/_server/table/comment.js +++ b/_server/table/comment.js @@ -192,7 +192,9 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "mdef": { "_leaf": true, "_type": "textarea", - "_data": "法抗(写为小数)" + "_docs": "法抗", + "_data": "百分数,如10为10%法抗,怪物受到勇士的法术伤害减免比例" + }, "speed": { "_leaf": true, diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js index 8fda0a1..6698265 100644 --- a/_server/table/data.comment.js +++ b/_server/table/data.comment.js @@ -269,7 +269,11 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "_type": "textarea", "_data": "法强", }, - + "spelldef": { + "_leaf": true, + "_type": "textarea", + "_data": "法抗百分比", + }, "matk": { "_leaf": true, "_type": "textarea", diff --git a/project/data.js b/project/data.js index 1a1c452..0920725 100644 --- a/project/data.js +++ b/project/data.js @@ -1107,7 +1107,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "hero": { "image": "hero.webp", "animate": false, - "name": "Caim", + "name": "凯伊姆", "lv": 1, "hpmax": 9999, "hp": 1000, @@ -1137,7 +1137,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "followers": [], "steps": 0, "matk": 0, - "spell": null + "spell": 0, + "spelldef": 0 }, "startCanvas": [ { diff --git a/project/enemys.js b/project/enemys.js index 1989be8..f4da758 100644 --- a/project/enemys.js +++ b/project/enemys.js @@ -1,10 +1,10 @@ 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}, "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]}, - "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}, "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}, diff --git a/project/functions.js b/project/functions.js index 36fc93e..ea0a448 100644 --- a/project/functions.js +++ b/project/functions.js @@ -741,156 +741,156 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = ]; }, "getEnemyInfo": function (enemy, hero, x, y, floorId) { - // 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用 - // 例如:坚固、模仿、仿攻等等 - // - // 参数说明: - // enemy:该怪物信息 - // hero_hp,hero_atk,hero_def,hero_mdef:勇士的生命攻防护盾数据 - // x,y:该怪物的坐标(查看手册和强制战斗时为undefined) - // floorId:该怪物所在的楼层 - // 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果) - floorId = floorId || core.status.floorId; - var hero_hp = core.getRealStatusOrDefault(hero, "hp"), - hero_atk = core.getRealStatusOrDefault(hero, "atk"), - hero_def = core.getRealStatusOrDefault(hero, "def"), - hero_mdef = core.getRealStatusOrDefault(hero, "mdef"), - hero_speed = core.getRealStatusOrDefault(hero, "speed"); + // 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用 + // 例如:坚固、模仿、仿攻等等 + // + // 参数说明: + // enemy:该怪物信息 + // hero_hp,hero_atk,hero_def,hero_mdef:勇士的生命攻防护盾数据 + // x,y:该怪物的坐标(查看手册和强制战斗时为undefined) + // floorId:该怪物所在的楼层 + // 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果) + floorId = floorId || core.status.floorId; + var hero_hp = core.getRealStatusOrDefault(hero, "hp"), + hero_atk = core.getRealStatusOrDefault(hero, "atk"), + hero_def = core.getRealStatusOrDefault(hero, "def"), + hero_mdef = core.getRealStatusOrDefault(hero, "mdef"), + hero_speed = core.getRealStatusOrDefault(hero, "speed"); - var mon_hp = core.getEnemyValue(enemy, "hp", x, y, floorId), - mon_atk = core.getEnemyValue(enemy, "atk", x, y, floorId), - mon_def = core.getEnemyValue(enemy, "def", x, y, floorId), - mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId), - mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId), - mon_special = core.getEnemyValue(enemy, "special", x, y, floorId); - var mon_money = core.getEnemyValue(enemy, "money", x, y, floorId), - mon_exp = core.getEnemyValue(enemy, "exp", x, y, floorId), - mon_point = core.getEnemyValue(enemy, "point", x, y, floorId); - var mon_barrier = 0, - mon_absorb_damage = 0, - mon_magic = core.getEnemyValue(enemy, "magic", x, y, floorId); - // 模仿 - if (core.hasSpecial(mon_special, 10)) { - mon_atk = hero_atk; - mon_def = hero_def; - } - // 坚固 - if (core.hasSpecial(mon_special, 3) && mon_def < hero_atk - 1) { - mon_def = hero_atk - 1; - } + var mon_hp = core.getEnemyValue(enemy, "hp", x, y, floorId), + mon_atk = core.getEnemyValue(enemy, "atk", x, y, floorId), + mon_def = core.getEnemyValue(enemy, "def", x, y, floorId), + mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId), + mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId), + mon_special = core.getEnemyValue(enemy, "special", x, y, floorId); + var mon_money = core.getEnemyValue(enemy, "money", x, y, floorId), + mon_exp = core.getEnemyValue(enemy, "exp", x, y, floorId), + mon_point = core.getEnemyValue(enemy, "point", x, y, floorId); + var mon_barrier = 0, + mon_absorb_damage = 0, + mon_magic = core.getEnemyValue(enemy, "magic", x, y, floorId); + // 模仿 + if (core.hasSpecial(mon_special, 10)) { + mon_atk = hero_atk; + mon_def = hero_def; + } + // 坚固 + if (core.hasSpecial(mon_special, 3) && 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) { - // 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。 - var hp_buff = 0, - atk_buff = 0, - def_buff = 0; - // 已经计算过的光环怪ID列表,用于判定叠加 - var usedEnemyIds = {}; - // 检查光环和支援的缓存 - var index = x != null && y != null ? x + "," + y : floorId; - if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {}; - var cache = core.status.checkBlock.cache[index]; - if (!cache) { - // 没有该点的缓存,则遍历每个图块 - core.extractBlocks(floorId); - core.status.maps[floorId].blocks.forEach(function (block) { - if (!block.disable) { - // 获得该图块的ID - var id = block.event.id, - enemy = core.material.enemys[id]; - // 检查【光环】技能,数字25 - if (enemy && core.hasSpecial(enemy.special, 25)) { - // 检查是否是范围光环 - var inRange = enemy.haloRange == null; - if (enemy.haloRange != null && x != null && y != null) { - var dx = Math.abs(block.x - x), - dy = Math.abs(block.y - y); - // 检查十字和九宫格光环 - if (dx + dy <= enemy.haloRange) inRange = true; - if ( - enemy.haloSquare && - dx <= enemy.haloRange && - dy <= enemy.haloRange - ) - inRange = true; - } - // 检查是否可叠加 - if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) { - hp_buff += enemy.hpBuff || 0; - atk_buff += enemy.atkBuff || 0; - def_buff += enemy.defBuff || 0; - usedEnemyIds[enemy.id] = true; - } - } - // 检查【支援】技能,数字26 - if ( - enemy && - core.hasSpecial(enemy.special, 26) && - // 检查支援条件,坐标存在,距离为1,且不能是自己 - // 其他类型的支援怪,比如十字之类的话.... 看着做是一样的 - x != null && - y != null && - Math.abs(block.x - x) <= 1 && - Math.abs(block.y - y) <= 1 && - !(x == block.x && y == block.y) - ) { - // 记录怪物的x,y,ID - guards.push([block.x, block.y, id]); - } + if (core.status.checkBlock.needCache) { + // 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。 + var hp_buff = 0, + atk_buff = 0, + def_buff = 0; + // 已经计算过的光环怪ID列表,用于判定叠加 + var usedEnemyIds = {}; + // 检查光环和支援的缓存 + var index = x != null && y != null ? x + "," + y : floorId; + if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {}; + var cache = core.status.checkBlock.cache[index]; + if (!cache) { + // 没有该点的缓存,则遍历每个图块 + core.extractBlocks(floorId); + core.status.maps[floorId].blocks.forEach(function (block) { + if (!block.disable) { + // 获得该图块的ID + var id = block.event.id, + enemy = core.material.enemys[id]; + // 检查【光环】技能,数字25 + if (enemy && core.hasSpecial(enemy.special, 25)) { + // 检查是否是范围光环 + var inRange = enemy.haloRange == null; + if (enemy.haloRange != null && x != null && y != null) { + var dx = Math.abs(block.x - x), + dy = Math.abs(block.y - y); + // 检查十字和九宫格光环 + if (dx + dy <= enemy.haloRange) inRange = true; + if ( + enemy.haloSquare && + dx <= enemy.haloRange && + dy <= enemy.haloRange + ) + inRange = true; + } + // 检查是否可叠加 + if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) { + hp_buff += enemy.hpBuff || 0; + atk_buff += enemy.atkBuff || 0; + def_buff += enemy.defBuff || 0; + usedEnemyIds[enemy.id] = true; + } + } + // 检查【支援】技能,数字26 + if ( + enemy && + core.hasSpecial(enemy.special, 26) && + // 检查支援条件,坐标存在,距离为1,且不能是自己 + // 其他类型的支援怪,比如十字之类的话.... 看着做是一样的 + x != null && + y != null && + Math.abs(block.x - x) <= 1 && + Math.abs(block.y - y) <= 1 && + !(x == block.x && y == block.y) + ) { + // 记录怪物的x,y,ID + guards.push([block.x, block.y, id]); + } - // TODO:如果有其他类型光环怪物在这里仿照添加检查 - // 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。 - } - }); + // TODO:如果有其他类型光环怪物在这里仿照添加检查 + // 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。 + } + }); - core.status.checkBlock.cache[index] = { - hp_buff: hp_buff, - atk_buff: atk_buff, - def_buff: def_buff, - guards: guards, - }; - } else { - // 直接使用缓存数据 - hp_buff = cache.hp_buff; - atk_buff = cache.atk_buff; - def_buff = cache.def_buff; - guards = cache.guards; - } + core.status.checkBlock.cache[index] = { + hp_buff: hp_buff, + atk_buff: atk_buff, + def_buff: def_buff, + guards: guards, + }; + } else { + // 直接使用缓存数据 + hp_buff = cache.hp_buff; + atk_buff = cache.atk_buff; + def_buff = cache.def_buff; + guards = cache.guards; + } - // 增加比例;如果要增加数值可以直接在这里修改 - mon_hp *= 1 + hp_buff / 100; - mon_atk *= 1 + atk_buff / 100; - mon_def *= 1 + def_buff / 100; - } + // 增加比例;如果要增加数值可以直接在这里修改 + mon_hp *= 1 + hp_buff / 100; + mon_atk *= 1 + atk_buff / 100; + mon_def *= 1 + def_buff / 100; + } - // TODO:可以在这里新增其他的怪物数据变化 - // 比如仿攻(怪物攻击不低于勇士攻击): - // if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) { - // mon_atk = hero_atk; - // } - // 也可以按需增加各种自定义内容 + // TODO:可以在这里新增其他的怪物数据变化 + // 比如仿攻(怪物攻击不低于勇士攻击): + // if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) { + // mon_atk = hero_atk; + // } + // 也可以按需增加各种自定义内容 - return { - hp: Math.floor(mon_hp), - atk: Math.floor(mon_atk), - def: Math.floor(mon_def), - mdef: Math.floor(mon_mdef), - speed: Math.floor(mon_speed), - barrier: Math.floor(mon_barrier), - absorb: Math.floor(mon_absorb_damage), - money: Math.floor(mon_money), - exp: Math.floor(mon_exp), - point: Math.floor(mon_point), - special: mon_special, - magic: mon_magic, - guards: guards, // 返回支援情况 - }; - }, + return { + hp: Math.floor(mon_hp), + atk: Math.floor(mon_atk), + def: Math.floor(mon_def), + mdef: Math.floor(mon_mdef), + speed: Math.floor(mon_speed), + barrier: Math.floor(mon_barrier), + absorb: Math.floor(mon_absorb_damage), + money: Math.floor(mon_money), + exp: Math.floor(mon_exp), + point: Math.floor(mon_point), + special: mon_special, + magic: mon_magic, + guards: guards, // 返回支援情况 + }; +}, "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 }*/); }, "drawStatusBar": function () { - // 这真的是人能写出来的东西? - var ctx, - fill = function (text, x, y, style) { - core.ui.setFont( - ctx, - (/\w+/.test(text) ? "italic " : "") + "bold 18px Verdana" - ); - core.ui.fillBoldText(ctx, text, x, y, style); - }; - if (core.flags.statusCanvas) { - // 系统开关「自绘状态栏」开启 - core.ui.clearMap((ctx = core.dom.statusCanvasCtx)); // 清空状态栏 - core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); - if (core.domStyle.isVertical) { - // 竖屏 - core.drawImage(ctx, core.statusBar.icons.floor, 6, 6, 25, 25); - fill((core.status.thisMap || {}).name || "Loading", 42, 26); - core.drawImage(ctx, core.statusBar.icons.hp, 137, 6, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("hp")), 173, 26); - core.drawImage(ctx, core.statusBar.icons.atk, 268, 6, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("atk")), 304, 26); - core.drawImage(ctx, core.statusBar.icons.def, 6, 38, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("def")), 42, 58); - core.drawImage(ctx, core.statusBar.icons.mdef, 137, 38, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("mdef")), 173, 58); - core.drawImage(ctx, core.statusBar.icons.money, 268, 38, 25, 25); - fill(core.formatBigNumber(core.status.hero.money), 304, 58); - core.drawImage(ctx, core.statusBar.icons.exp, 6, 70, 25, 25); - fill(core.formatBigNumber(core.status.hero.exp), 42, 90); - } else if (!core.flags.hideLeftStatusBar) { - // 横屏且未隐藏状态栏 - core.drawImage(ctx, core.statusBar.icons.floor, 6, 9, 25, 25); - fill((core.status.thisMap || {}).name || "Loading", 42, 29); - core.drawImage(ctx, core.statusBar.icons.hp, 6, 43, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("hp")), 42, 63); - core.drawImage(ctx, core.statusBar.icons.atk, 6, 77, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("atk")), 42, 97); - core.drawImage(ctx, core.statusBar.icons.def, 6, 111, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("def")), 42, 131); - core.drawImage(ctx, core.statusBar.icons.mdef, 6, 145, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("mdef")), 42, 165); - core.drawImage(ctx, core.statusBar.icons.money, 6, 179, 25, 25); - fill(core.formatBigNumber(core.status.hero.money), 42, 199); - core.drawImage(ctx, core.statusBar.icons.exp, 6, 213, 25, 25); - fill(core.formatBigNumber(core.status.hero.exp), 42, 233); - fill( - core.setTwoDigits(core.itemCount("yellowKey")), - 11, - 267, - "#FFCCAA" - ); - fill( - core.setTwoDigits(core.itemCount("blueKey")), - 46, - 267, - "#AAAADD" - ); - fill(core.setTwoDigits(core.itemCount("redKey")), 81, 267, "#FF8888"); - } - } else if (core.flags.hideLeftStatusBar && !core.domStyle.isVertical) { - // 横屏且隐藏状态栏 - if (!core.dymCanvas["status"]) - core.ui.createCanvas("status", 0, 0, core._PX_, core._PY_, 66); // 刚好盖过显伤层 - core.ui.clearMap((ctx = core.dymCanvas["status"])); - core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); - var offset = - core.status.hero.loc.x - core.bigmap.offsetX / 32 >= core._HEIGHT_ - ? 0 - : core._PY_; - core.ui.setAlpha(ctx, 0.75); - core.ui.drawWindowSkin( - "winskin.webp", - ctx, - offset, - 0, - core._PX_ - core._PY_, - core._PY_ - ); - core.ui.setAlpha(ctx, 1); - core.drawImage(ctx, core.statusBar.icons.floor, 6 + offset, 9, 25, 25); - fill((core.status.thisMap || {}).name || "Loading", 42 + offset, 29); - core.drawImage(ctx, core.statusBar.icons.hp, 6 + offset, 43, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("hp")), 42 + offset, 63); - core.drawImage(ctx, core.statusBar.icons.atk, 6 + offset, 77, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("atk")), 42 + offset, 97); - core.drawImage(ctx, core.statusBar.icons.def, 6 + offset, 111, 25, 25); - fill(core.formatBigNumber(core.getRealStatus("def")), 42 + offset, 131); - core.drawImage(ctx, core.statusBar.icons.mdef, 6 + offset, 145, 25, 25); - fill( - core.formatBigNumber(core.getRealStatus("mdef")), - 42 + offset, - 165 - ); - core.drawImage( - ctx, - core.statusBar.icons.money, - 6 + offset, - 179, - 25, - 25 - ); - fill(core.formatBigNumber(core.status.hero.money), 42 + offset, 199); - core.drawImage(ctx, core.statusBar.icons.exp, 6 + offset, 213, 25, 25); - fill(core.formatBigNumber(core.status.hero.exp), 42 + offset, 233); - fill( - core.setTwoDigits(core.itemCount("yellowKey")), - 11 + offset, - 267, - "#FFCCAA" - ); - fill( - core.setTwoDigits(core.itemCount("blueKey")), - 46 + offset, - 267, - "#AAAADD" - ); - fill( - core.setTwoDigits(core.itemCount("redKey")), - 81 + offset, - 267, - "#FF8888" - ); - } - }, + // 这真的是人能写出来的东西? + var ctx, + fill = function (text, x, y, style) { + core.ui.setFont( + ctx, + (/\w+/.test(text) ? "italic " : "") + "bold 18px Verdana" + ); + core.ui.fillBoldText(ctx, text, x, y, style); + }; + if (core.flags.statusCanvas) { + // 系统开关「自绘状态栏」开启 + core.ui.clearMap((ctx = core.dom.statusCanvasCtx)); // 清空状态栏 + core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); + if (core.domStyle.isVertical) { + // 竖屏 + core.drawImage(ctx, core.statusBar.icons.floor, 6, 6, 25, 25); + fill((core.status.thisMap || {}).name || "Loading", 42, 26); + core.drawImage(ctx, core.statusBar.icons.hp, 137, 6, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("hp")), 173, 26); + core.drawImage(ctx, core.statusBar.icons.atk, 268, 6, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("atk")), 304, 26); + core.drawImage(ctx, core.statusBar.icons.def, 6, 38, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("def")), 42, 58); + core.drawImage(ctx, core.statusBar.icons.mdef, 137, 38, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("mdef")), 173, 58); + core.drawImage(ctx, core.statusBar.icons.money, 268, 38, 25, 25); + fill(core.formatBigNumber(core.status.hero.money), 304, 58); + core.drawImage(ctx, core.statusBar.icons.exp, 6, 70, 25, 25); + fill(core.formatBigNumber(core.status.hero.exp), 42, 90); + } else if (!core.flags.hideLeftStatusBar) { + // 横屏且未隐藏状态栏 + core.drawImage(ctx, core.statusBar.icons.floor, 6, 9, 25, 25); + fill((core.status.thisMap || {}).name || "Loading", 42, 29); + core.drawImage(ctx, core.statusBar.icons.hp, 6, 43, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("hp")), 42, 63); + core.drawImage(ctx, core.statusBar.icons.atk, 6, 77, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("atk")), 42, 97); + core.drawImage(ctx, core.statusBar.icons.def, 6, 111, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("def")), 42, 131); + core.drawImage(ctx, core.statusBar.icons.mdef, 6, 145, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("mdef")), 42, 165); + core.drawImage(ctx, core.statusBar.icons.money, 6, 179, 25, 25); + fill(core.formatBigNumber(core.status.hero.money), 42, 199); + core.drawImage(ctx, core.statusBar.icons.exp, 6, 213, 25, 25); + fill(core.formatBigNumber(core.status.hero.exp), 42, 233); + fill( + core.setTwoDigits(core.itemCount("yellowKey")), + 11, + 267, + "#FFCCAA" + ); + fill( + core.setTwoDigits(core.itemCount("blueKey")), + 46, + 267, + "#AAAADD" + ); + fill(core.setTwoDigits(core.itemCount("redKey")), 81, 267, "#FF8888"); + } + } else if (core.flags.hideLeftStatusBar && !core.domStyle.isVertical) { + // 横屏且隐藏状态栏 + if (!core.dymCanvas["status"]) + core.ui.createCanvas("status", 0, 0, core._PX_, core._PY_, 66); // 刚好盖过显伤层 + core.ui.clearMap((ctx = core.dymCanvas["status"])); + core.ui.setFillStyle(ctx, core.status.globalAttribute.statusBarColor); + var offset = + core.status.hero.loc.x - core.bigmap.offsetX / 32 >= core._HEIGHT_ ? + 0 : + core._PY_; + core.ui.setAlpha(ctx, 0.75); + core.ui.drawWindowSkin( + "winskin.webp", + ctx, + offset, + 0, + core._PX_ - core._PY_, + core._PY_ + ); + core.ui.setAlpha(ctx, 1); + core.drawImage(ctx, core.statusBar.icons.floor, 6 + offset, 9, 25, 25); + fill((core.status.thisMap || {}).name || "Loading", 42 + offset, 29); + core.drawImage(ctx, core.statusBar.icons.hp, 6 + offset, 43, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("hp")), 42 + offset, 63); + core.drawImage(ctx, core.statusBar.icons.atk, 6 + offset, 77, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("atk")), 42 + offset, 97); + core.drawImage(ctx, core.statusBar.icons.def, 6 + offset, 111, 25, 25); + fill(core.formatBigNumber(core.getRealStatus("def")), 42 + offset, 131); + core.drawImage(ctx, core.statusBar.icons.mdef, 6 + offset, 145, 25, 25); + fill( + core.formatBigNumber(core.getRealStatus("mdef")), + 42 + offset, + 165 + ); + core.drawImage( + ctx, + core.statusBar.icons.money, + 6 + offset, + 179, + 25, + 25 + ); + fill(core.formatBigNumber(core.status.hero.money), 42 + offset, 199); + core.drawImage(ctx, core.statusBar.icons.exp, 6 + offset, 213, 25, 25); + fill(core.formatBigNumber(core.status.hero.exp), 42 + offset, 233); + fill( + core.setTwoDigits(core.itemCount("yellowKey")), + 11 + offset, + 267, + "#FFCCAA" + ); + fill( + core.setTwoDigits(core.itemCount("blueKey")), + 46 + offset, + 267, + "#AAAADD" + ); + fill( + core.setTwoDigits(core.itemCount("redKey")), + 81 + offset, + 267, + "#FF8888" + ); + } +}, "drawStatistics": function () { // 浏览地图时参与的统计项目 diff --git a/project/icons.js b/project/icons.js index 8a3e33c..73914d5 100644 --- a/project/icons.js +++ b/project/icons.js @@ -315,7 +315,18 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "jumpShoes": 49, "skill1": 30, "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": 0, diff --git a/project/items.js b/project/items.js index 0507d29..95ed773 100644 --- a/project/items.js +++ b/project/items.js @@ -546,5 +546,60 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "钱袋", "itemEffect": "core.status.hero.money += 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" } } \ No newline at end of file diff --git a/project/maps.js b/project/maps.js index 67560d4..d1b42f0 100644 --- a/project/maps.js +++ b/project/maps.js @@ -1,670 +1,317 @@ -var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = { - 1: { - cls: "animates", - id: "yellowWall", - canBreak: true, - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: {}, - }, - }, - 2: { - cls: "animates", - id: "whiteWall", - canBreak: true, - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: {}, - }, - }, - 3: { - cls: "animates", - id: "blueWall", - canBreak: true, - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: {}, - }, - }, - 4: { cls: "animates", id: "star", name: "星空" }, - 5: { cls: "animates", id: "lava", name: "岩浆" }, - 6: { - cls: "animates", - id: "ice", - doorInfo: { - time: 160, - openSound: "破冰镐", - closeSound: "door.opus", - keys: { icePickaxe: 1 }, - }, - animate: 1, - }, - 7: { cls: "terrains", id: "blueShopLeft" }, - 8: { cls: "terrains", id: "blueShopRight" }, - 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: "血网", - }, - 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: "毒网", - }, - 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: "衰网", - }, - 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: "咒网", - }, - 15: { cls: "animates", id: "blueLava" }, - 16: { cls: "animates", id: "water" }, - 20: { cls: "autotile", id: "autotile" }, - 21: { cls: "items", id: "yellowKey" }, - 22: { cls: "items", id: "blueKey" }, - 23: { cls: "items", id: "redKey" }, - 24: { cls: "items", id: "greenKey" }, - 25: { cls: "items", id: "steelKey" }, - 26: { cls: "items", id: "bigKey" }, - 27: { cls: "items", id: "redGem" }, - 28: { cls: "items", id: "blueGem" }, - 29: { cls: "items", id: "greenGem" }, - 30: { cls: "items", id: "yellowGem" }, - 31: { cls: "items", id: "redPotion" }, - 32: { cls: "items", id: "bluePotion" }, - 33: { cls: "items", id: "greenPotion" }, - 34: { cls: "items", id: "yellowPotion" }, - 35: { cls: "items", id: "sword1" }, - 36: { cls: "items", id: "shield1" }, - 37: { cls: "items", id: "sword2" }, - 38: { cls: "items", id: "shield2" }, - 39: { cls: "items", id: "sword3" }, - 40: { cls: "items", id: "shield3" }, - 41: { cls: "items", id: "sword4" }, - 42: { cls: "items", id: "shield4" }, - 43: { cls: "items", id: "sword5" }, - 44: { cls: "items", id: "shield5" }, - 45: { cls: "items", id: "book" }, - 46: { cls: "items", id: "fly" }, - 47: { cls: "items", id: "pickaxe" }, - 48: { cls: "items", id: "icePickaxe" }, - 49: { cls: "items", id: "bomb" }, - 50: { cls: "items", id: "centerFly" }, - 51: { cls: "items", id: "upFly" }, - 52: { cls: "items", id: "downFly" }, - 53: { cls: "items", id: "coin" }, - 54: { cls: "items", id: "freezeBadge" }, - 55: { cls: "items", id: "cross" }, - 56: { cls: "items", id: "superPotion" }, - 57: { cls: "items", id: "earthquake" }, - 58: { cls: "items", id: "poisonWine" }, - 59: { cls: "items", id: "weakWine" }, - 60: { cls: "items", id: "curseWine" }, - 61: { cls: "items", id: "superWine" }, - 62: { cls: "items", id: "dagger" }, - 63: { cls: "items", id: "pack" }, - 64: { cls: "items", id: "amulet" }, - 65: { cls: "items", id: "hammer" }, - 68: { cls: "items", id: "lifeWand" }, - 69: { cls: "items", id: "jumpShoes" }, - 70: { cls: "items", id: "sword0" }, - 71: { cls: "items", id: "shield0" }, - 72: { cls: "items", id: "skill1" }, - 73: { cls: "items", id: "wand" }, - 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: "蓝门", - }, - 83: { - cls: "animates", - id: "redDoor", - trigger: "openDoor", - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: { redKey: 1 }, - }, - name: "红门", - }, - 84: { - cls: "animates", - id: "greenDoor", - trigger: "openDoor", - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: { greenKey: 1 }, - }, - name: "绿门", - }, - 85: { - cls: "animates", - id: "specialDoor", - trigger: "openDoor", - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: { specialKey: 1 }, - }, - name: "机关门", - }, - 86: { - cls: "animates", - id: "steelDoor", - trigger: "openDoor", - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: { steelKey: 1 }, - }, - name: "铁门", - }, - 87: { cls: "terrains", id: "upFloor", canPass: true }, - 88: { cls: "terrains", id: "downFloor", canPass: true }, - 89: { cls: "animates", id: "portal", canPass: true }, - 90: { cls: "animates", id: "starPortal", canPass: true }, - 91: { cls: "animates", id: "upPortal", canPass: true }, - 92: { cls: "animates", id: "leftPortal", canPass: true }, - 93: { cls: "animates", id: "downPortal", canPass: true }, - 94: { cls: "animates", id: "rightPortal", canPass: true }, - 101: { cls: "animates", id: "crystalUp" }, - 102: { cls: "animates", id: "crystalBottom" }, - 103: { cls: "animates", id: "fire" }, - 104: { cls: "animates", id: "switch" }, - 109: { - cls: "animates", - id: "magentaWall", - canBreak: true, - animate: 1, - doorInfo: { - time: 160, - openSound: "door.opus", - closeSound: "door.opus", - keys: {}, - }, - }, - 121: { cls: "npcs", id: "man" }, - 122: { cls: "npcs", id: "trader" }, - 123: { cls: "npcs", id: "thief" }, - 124: { cls: "npcs", id: "fairy" }, - 125: { cls: "npcs", id: "wizard" }, - 126: { cls: "npcs", id: "recluse" }, - 127: { cls: "npcs", id: "king" }, - 128: { cls: "npcs", id: "youngMan" }, - 129: { cls: "npcs", id: "sign" }, - 130: { cls: "npcs", id: "expShop" }, - 131: { cls: "npcs", id: "moneyShop" }, - 132: { cls: "npcs", id: "princess" }, - 133: { - cls: "npc48", - id: "npc0", - faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, - animate: 1, - }, - 134: { - cls: "npc48", - id: "npc1", - faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, - animate: 1, - }, - 135: { - cls: "npc48", - id: "npc2", - faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, - animate: 1, - }, - 136: { - cls: "npc48", - id: "npc3", - faceIds: { down: "npc0", left: "npc1", right: "npc2", up: "npc3" }, - animate: 1, - }, - 137: { cls: "npcs", id: "greenMan" }, - 138: { cls: "npcs", id: "blueTrader" }, - 140: { cls: "autotile", id: "autotile4" }, - 141: { cls: "autotile", id: "autotile8" }, - 142: { cls: "autotile", id: "autotile9" }, - 143: { cls: "autotile", id: "autotile10" }, - 144: { cls: "autotile", id: "autotile12" }, - 151: { cls: "autotile", id: "autotile1" }, - 152: { cls: "autotile", id: "autotile2" }, - 153: { cls: "autotile", id: "autotile3" }, - 161: { - cls: "terrains", - id: "arrowUp", - canPass: true, - cannotOut: ["left", "right", "down"], - cannotIn: ["up"], - }, - 162: { - cls: "terrains", - id: "arrowDown", - canPass: true, - cannotOut: ["left", "right", "up"], - cannotIn: ["down"], - }, - 163: { - cls: "terrains", - id: "arrowLeft", - canPass: true, - cannotOut: ["up", "down", "right"], - cannotIn: ["left"], - }, - 164: { - cls: "terrains", - id: "arrowRight", - 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 }, -}; +var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = +{ + "1": {"cls":"animates","id":"yellowWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}}, + "2": {"cls":"animates","id":"whiteWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}}, + "3": {"cls":"animates","id":"blueWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}}, + "4": {"cls":"animates","id":"star","name":"星空"}, + "5": {"cls":"animates","id":"lava","name":"岩浆"}, + "6": {"cls":"animates","id":"ice","doorInfo":{"time":160,"openSound":"破冰镐","closeSound":"door.opus","keys":{"icePickaxe":1}},"animate":1}, + "7": {"cls":"terrains","id":"blueShopLeft"}, + "8": {"cls":"terrains","id":"blueShopRight"}, + "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":"血网"}, + "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":"毒网"}, + "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":"衰网"}, + "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":"咒网"}, + "15": {"cls":"animates","id":"blueLava"}, + "16": {"cls":"animates","id":"water"}, + "20": {"cls":"autotile","id":"autotile"}, + "21": {"cls":"items","id":"yellowKey"}, + "22": {"cls":"items","id":"blueKey"}, + "23": {"cls":"items","id":"redKey"}, + "24": {"cls":"items","id":"greenKey"}, + "25": {"cls":"items","id":"steelKey"}, + "26": {"cls":"items","id":"bigKey"}, + "27": {"cls":"items","id":"redGem"}, + "28": {"cls":"items","id":"blueGem"}, + "29": {"cls":"items","id":"greenGem"}, + "30": {"cls":"items","id":"yellowGem"}, + "31": {"cls":"items","id":"redPotion"}, + "32": {"cls":"items","id":"bluePotion"}, + "33": {"cls":"items","id":"greenPotion"}, + "34": {"cls":"items","id":"yellowPotion"}, + "35": {"cls":"items","id":"sword1"}, + "36": {"cls":"items","id":"shield1"}, + "37": {"cls":"items","id":"sword2"}, + "38": {"cls":"items","id":"shield2"}, + "39": {"cls":"items","id":"sword3"}, + "40": {"cls":"items","id":"shield3"}, + "41": {"cls":"items","id":"sword4"}, + "42": {"cls":"items","id":"shield4"}, + "43": {"cls":"items","id":"sword5"}, + "44": {"cls":"items","id":"shield5"}, + "45": {"cls":"items","id":"book"}, + "46": {"cls":"items","id":"fly"}, + "47": {"cls":"items","id":"pickaxe"}, + "48": {"cls":"items","id":"icePickaxe"}, + "49": {"cls":"items","id":"bomb"}, + "50": {"cls":"items","id":"centerFly"}, + "51": {"cls":"items","id":"upFly"}, + "52": {"cls":"items","id":"downFly"}, + "53": {"cls":"items","id":"coin"}, + "54": {"cls":"items","id":"freezeBadge"}, + "55": {"cls":"items","id":"cross"}, + "56": {"cls":"items","id":"superPotion"}, + "57": {"cls":"items","id":"earthquake"}, + "58": {"cls":"items","id":"poisonWine"}, + "59": {"cls":"items","id":"weakWine"}, + "60": {"cls":"items","id":"curseWine"}, + "61": {"cls":"items","id":"superWine"}, + "62": {"cls":"items","id":"dagger"}, + "63": {"cls":"items","id":"pack"}, + "64": {"cls":"items","id":"amulet"}, + "65": {"cls":"items","id":"hammer"}, + "68": {"cls":"items","id":"lifeWand"}, + "69": {"cls":"items","id":"jumpShoes"}, + "70": {"cls":"items","id":"sword0"}, + "71": {"cls":"items","id":"shield0"}, + "72": {"cls":"items","id":"skill1"}, + "73": {"cls":"items","id":"wand"}, + "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":"蓝门"}, + "83": {"cls":"animates","id":"redDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"redKey":1}},"name":"红门"}, + "84": {"cls":"animates","id":"greenDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"greenKey":1}},"name":"绿门"}, + "85": {"cls":"animates","id":"specialDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"specialKey":1}},"name":"机关门"}, + "86": {"cls":"animates","id":"steelDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"steelKey":1}},"name":"铁门"}, + "87": {"cls":"terrains","id":"upFloor","canPass":true}, + "88": {"cls":"terrains","id":"downFloor","canPass":true}, + "89": {"cls":"animates","id":"portal","canPass":true}, + "90": {"cls":"animates","id":"starPortal","canPass":true}, + "91": {"cls":"animates","id":"upPortal","canPass":true}, + "92": {"cls":"animates","id":"leftPortal","canPass":true}, + "93": {"cls":"animates","id":"downPortal","canPass":true}, + "94": {"cls":"animates","id":"rightPortal","canPass":true}, + "101": {"cls":"animates","id":"crystalUp"}, + "102": {"cls":"animates","id":"crystalBottom"}, + "103": {"cls":"animates","id":"fire"}, + "104": {"cls":"animates","id":"switch"}, + "109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}}, + "121": {"cls":"npcs","id":"man"}, + "122": {"cls":"npcs","id":"trader"}, + "123": {"cls":"npcs","id":"thief"}, + "124": {"cls":"npcs","id":"fairy"}, + "125": {"cls":"npcs","id":"wizard"}, + "126": {"cls":"npcs","id":"recluse"}, + "127": {"cls":"npcs","id":"king"}, + "128": {"cls":"npcs","id":"youngMan"}, + "129": {"cls":"npcs","id":"sign"}, + "130": {"cls":"npcs","id":"expShop"}, + "131": {"cls":"npcs","id":"moneyShop"}, + "132": {"cls":"npcs","id":"princess"}, + "133": {"cls":"npc48","id":"npc0","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1}, + "134": {"cls":"npc48","id":"npc1","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1}, + "135": {"cls":"npc48","id":"npc2","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1}, + "136": {"cls":"npc48","id":"npc3","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1}, + "137": {"cls":"npcs","id":"greenMan"}, + "138": {"cls":"npcs","id":"blueTrader"}, + "140": {"cls":"autotile","id":"autotile4"}, + "141": {"cls":"autotile","id":"autotile8"}, + "142": {"cls":"autotile","id":"autotile9"}, + "143": {"cls":"autotile","id":"autotile10"}, + "144": {"cls":"autotile","id":"autotile12"}, + "151": {"cls":"autotile","id":"autotile1"}, + "152": {"cls":"autotile","id":"autotile2"}, + "153": {"cls":"autotile","id":"autotile3"}, + "161": {"cls":"terrains","id":"arrowUp","canPass":true,"cannotOut":["left","right","down"],"cannotIn":["up"]}, + "162": {"cls":"terrains","id":"arrowDown","canPass":true,"cannotOut":["left","right","up"],"cannotIn":["down"]}, + "163": {"cls":"terrains","id":"arrowLeft","canPass":true,"cannotOut":["up","down","right"],"cannotIn":["left"]}, + "164": {"cls":"terrains","id":"arrowRight","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"}, + "366": {"cls":"items","id":"I366"}, + "367": {"cls":"items","id":"I367"}, + "368": {"cls":"items","id":"I368"}, + "369": {"cls":"items","id":"I369"}, + "370": {"cls":"items","id":"I370"}, + "371": {"cls":"items","id":"I371"}, + "372": {"cls":"items","id":"I372"}, + "373": {"cls":"items","id":"I373"}, + "374": {"cls":"items","id":"I374"}, + "375": {"cls":"items","id":"I375"}, + "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"}, + "396": {"cls":"items","id":"I396"}, + "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} +} \ No newline at end of file diff --git a/project/plugins.js b/project/plugins.js index 9d0ecff..170978f 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -14258,508 +14258,511 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ); }, "CG回廊": function () { - // 在此增加新插件 - const CGUI = document.createElement("canvas"); //CGui画布设置 - CGUI.style.position = "absolute"; - CGUI.style.zIndex = 300; - CGUI.style.display = "none"; - CGUI.id = "CGUI"; - main.dom.gameGroup.insertAdjacentElement("afterend", CGUI); - CGUI.style.top = "50%"; - CGUI.style.left = "50%"; - CGUI.style.transform = "translate(-50%,-50%)"; - const ctx = CGUI.getContext("2d"); - main.dom.CGUI = CGUI; - let page = 0; //初始页面 - let show = false; //展示状态 - CGUI.onclick = function (e) { - try { - e.preventDefault(); - if (core.isPlaying()) return false; - const left = core.dom.gameGroup.offsetLeft; - const top = core.dom.gameGroup.offsetTop; - const px = Math.floor((e.clientX - left) / core.domStyle.scale), - py = Math.floor((e.clientY - top) / core.domStyle.scale); - core.ui.CG.onclick(px * 3, py * 3); - } catch (ee) { - main.log(ee); - } - }; + // 在此增加新插件 + const CGUI = document.createElement("canvas"); //CGui画布设置 + CGUI.style.position = "absolute"; + CGUI.style.zIndex = 300; + CGUI.style.display = "none"; + CGUI.id = "CGUI"; + main.dom.gameGroup.insertAdjacentElement("afterend", CGUI); + CGUI.style.top = "50%"; + CGUI.style.left = "50%"; + CGUI.style.transform = "translate(-50%,-50%)"; + const ctx = CGUI.getContext("2d"); + main.dom.CGUI = CGUI; + let page = 0; //初始页面 + let show = false; //展示状态 + CGUI.onclick = function (e) { + try { + e.preventDefault(); + if (core.isPlaying()) return false; + const left = core.dom.gameGroup.offsetLeft; + const top = core.dom.gameGroup.offsetTop; + const px = Math.floor((e.clientX - left) / core.domStyle.scale), + py = Math.floor((e.clientY - top) / core.domStyle.scale); + core.ui.CG.onclick(px * 3, py * 3); + } catch (ee) { + main.log(ee); + } + }; - class CG { - constructor() { - this.cgs; - //cg列表 - this.UIMx = [ - //空位用‘none’填充,当前ui至多4列6行 - [ - ["eve_010102.webp", "eve_010203.webp", "eve_010304.webp"], - ["eve_010501.webp", "eve_010601.webp", "eve_010701.webp"], - ], - [ - ["eve_010801.webp", "eve_010902.webp", "eve_011001.webp"], - ["eve_011101.webp", "eve_011202.webp", "eve_011302.webp"], - ], - [ - ["eve_011402.webp", "eve_020102.webp", "eve_020201.webp"], - ["eve_020301.webp", "eve_020401.webp", "eve_020501.webp"], - ], - [ - ["eve_020605.webp", "eve_020701.webp", "eve_020801.webp"], - ["eve_030101.webp", "eve_030206.webp", "eve_030302.webp"], - ], - [ - ["eve_030508.webp", "eve_030601.webp", "eve_030801.webp"], - ["eve_030901.webp", "eve_031002.webp", "eve_031101.webp"], - ], - [ - ["eve_040201.webp", "eve_040401.webp", "eve_040501.webp"], - ["eve_040601.webp", "eve_040702.webp", "eve_040801.webp"], - ], - [ - ["eve_050101.webp", "eve_050201.webp", "eve_050401.webp"], - ["eve_050501.webp", "eve_050601.webp", "eve_050704.webp"], - ], - [ - ["eve_050801.webp", "eve_070101.webp", "bg_1511.webp"], - ["bg_1521.webp", "bg_2011.webp", "bg_2521.webp"], - ], - [ - ["bg_3042.webp", "bg_3551.webp", "bg_3571.webp"], - ["bg_3721.webp", "bg_5033.webp", "bg_5044.webp"], - ], - ]; - } + class CG { + constructor() { + this.cgs; + //cg列表 + this.UIMx = [ + //空位用‘none’填充,当前ui3*2 + [ + ["eve_010102.webp", "eve_010203.webp", "eve_010304.webp"], + ["eve_010501.webp", "eve_010601.webp", "eve_010701.webp"], + ], + [ + ["eve_010801.webp", "eve_010902.webp", "eve_011001.webp"], + ["eve_011101.webp", "eve_011202.webp", "eve_011302.webp"], + ], + [ + ["eve_011402.webp", "eve_020102.webp", "eve_020201.webp"], + ["eve_020301.webp", "eve_020401.webp", "eve_020501.webp"], + ], + [ + ["eve_020605.webp", "eve_020701.webp", "eve_020801.webp"], + ["eve_030101.webp", "eve_030206.webp", "eve_030302.webp"], + ], + [ + ["eve_030508.webp", "eve_030601.webp", "eve_030801.webp"], + ["eve_030901.webp", "eve_031002.webp", "eve_031101.webp"], + ], + [ + ["eve_040201.webp", "eve_040401.webp", "eve_040501.webp"], + ["eve_040601.webp", "eve_040702.webp", "eve_040801.webp"], + ], + [ + ["eve_050101.webp", "eve_050201.webp", "eve_050401.webp"], + ["eve_050501.webp", "eve_050601.webp", "eve_050704.webp"], + ], + [ + ["eve_050801.webp", "eve_070101.webp", "bg_1511.webp"], + ["bg_1521.webp", "bg_2011.webp", "bg_2521.webp"], + ], + [ + ["bg_3042.webp", "bg_3551.webp", "bg_3571.webp"], + ["bg_3721.webp", "bg_5033.webp", "bg_5044.webp"], + ], + ]; + } - //更新 - update() { - this.background(); - this.drawUI(); - } - background() { - //画布大小设置 - if (core.domStyle.isVertical) { - CGUI.width = 1248; - CGUI.height = 2028; - } else { - CGUI.width = 2028; - CGUI.height = 1248; - } - core.setTextAlign(ctx, "center"); - } - onclick(px, py) { - //点击 + //更新 + update() { + this.background(); + this.drawUI(); + } + background() { + //画布大小设置 + if (core.domStyle.isVertical) { + CGUI.width = 1248; + CGUI.height = 2028; + } else { + CGUI.width = 2028; + CGUI.height = 1248; + } + core.setTextAlign(ctx, "center"); + } + onclick(px, py) { + //点击 - if (show) { - show = !show; - core.clearMap(ctx); - this.update(); - return; - } - const makeBox = ([x, y], [w, h]) => { - return [ - [x, y], - [x + w, y + h], - ]; - }; - const inRect = ([x, y], [[sx, sy], [dx, dy]]) => { - return sx <= x && x <= dx && sy <= y && y <= dy; - }; - const pos = [px, py]; - const backbox = makeBox([15, 35], [210, 90]); - if (inRect(pos, backbox)) { - //离开按钮是一致的,其余的记区分横竖屏 - CGUI.style.display = "none"; - core.clearMap(ctx); - core.restart(); - return; - } - if (core.domStyle.isVertical) { - //竖屏 - const pageupbox = makeBox([200, 1830], [200, 100]); - const pagedownbox = makeBox([900, 1830], [200, 100]); + if (show) { + show = !show; + core.clearMap(ctx); + this.update(); + return; + } + const makeBox = ([x, y], [w, h]) => { + return [ + [x, y], + [x + w, y + h], + ]; + }; + const inRect = ([x, y], [ + [sx, sy], + [dx, dy] + ]) => { + return sx <= x && x <= dx && sy <= y && y <= dy; + }; + const pos = [px, py]; + const backbox = makeBox([15, 35], [210, 90]); + if (inRect(pos, backbox)) { + //离开按钮是一致的,其余的记区分横竖屏 + CGUI.style.display = "none"; + core.clearMap(ctx); + core.restart(); + return; + } + if (core.domStyle.isVertical) { + //竖屏 + const pageupbox = makeBox([200, 1830], [200, 100]); + const pagedownbox = makeBox([900, 1830], [200, 100]); - const imagebox0 = makeBox([50, 200], [560, 420]); - const imagebox1 = makeBox([50, 750], [560, 420]); - const imagebox2 = makeBox([50, 1300], [560, 420]); + const imagebox0 = makeBox([50, 200], [560, 420]); + const imagebox1 = makeBox([50, 750], [560, 420]); + const imagebox2 = makeBox([50, 1300], [560, 420]); - const imagebox3 = makeBox([650, 200], [560, 420]); - const imagebox4 = makeBox([650, 750], [560, 420]); - const imagebox5 = makeBox([650, 1300], [560, 420]); - if (inRect(pos, pagedownbox)) { - //2代表当前最大页数-1 - if (page < this.UIMx.length - 1) { - page++; - core.clearMap(ctx); - this.update(); - } - } else if (inRect(pos, pageupbox)) { - if (page > 0) { - page--; - core.clearMap(ctx); - this.update(); - } - } else if (inRect(pos, imagebox0)) { - if (this.cgs.includes(this.UIMx[page][0][0])) { - const img = core.material.images.images[this.UIMx[page][0][0]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } else if (inRect(pos, imagebox1)) { - if (this.cgs.includes(this.UIMx[page][0][1])) { - const img = core.material.images.images[this.UIMx[page][0][1]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } else if (inRect(pos, imagebox2)) { - if (this.cgs.includes(this.UIMx[page][0][2])) { - const img = core.material.images.images[this.UIMx[page][0][2]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } else if (inRect(pos, imagebox3)) { - if (this.cgs.includes(this.UIMx[page][1][0])) { - const img = core.material.images.images[this.UIMx[page][1][0]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } else if (inRect(pos, imagebox4)) { - if (this.cgs.includes(this.UIMx[page][1][1])) { - const img = core.material.images.images[this.UIMx[page][1][1]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } else if (inRect(pos, imagebox5)) { - if (this.cgs.includes(this.UIMx[page][1][2])) { - const img = core.material.images.images[this.UIMx[page][1][2]]; - if (img) { - ctx.save(); //保存设置 - ctx.translate(1248, 0); //重新定位右上角为基准 - ctx.rotate(Math.PI / 2); //旋转90度 - ctx.drawImage(img, 0, 0, 2028, 1248); - ctx.restore(); //重置画布设置 - show = !show; - } - } - } - } else { - const pageupbox = makeBox([200, 1110], [200, 100]); - const pagedownbox = makeBox([1600, 1110], [200, 100]); - const imagebox0 = makeBox([75, 150], [600, 450]); - const imagebox1 = makeBox([725, 150], [600, 450]); - const imagebox2 = makeBox([1300, 150], [600, 450]); - const imagebox3 = makeBox([75, 650], [600, 450]); - const imagebox4 = makeBox([725, 650], [600, 450]); - const imagebox5 = makeBox([1375, 650], [600, 450]); - if (inRect(pos, pagedownbox)) { - if (page < this.UIMx.length - 1) { - page++; - core.clearMap(ctx); - this.update(); - } - } else if (inRect(pos, pageupbox)) { - if (page > 0) { - page--; - core.clearMap(ctx); - this.update(); - } - } else if (inRect(pos, imagebox0)) { - if (this.cgs.includes(this.UIMx[page][0][0])) { - const img = core.material.images.images[this.UIMx[page][0][0]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } else if (inRect(pos, imagebox1)) { - if (this.cgs.includes(this.UIMx[page][0][1])) { - const img = core.material.images.images[this.UIMx[page][0][1]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } else if (inRect(pos, imagebox2)) { - if (this.cgs.includes(this.UIMx[page][0][2])) { - const img = core.material.images.images[this.UIMx[page][0][2]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } else if (inRect(pos, imagebox3)) { - if (this.cgs.includes(this.UIMx[page][1][0])) { - const img = core.material.images.images[this.UIMx[page][1][0]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } else if (inRect(pos, imagebox4)) { - if (this.cgs.includes(this.UIMx[page][1][1])) { - const img = core.material.images.images[this.UIMx[page][1][1]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } else if (inRect(pos, imagebox5)) { - if (this.cgs.includes(this.UIMx[page][1][2])) { - const img = core.material.images.images[this.UIMx[page][1][2]]; - if (img) { - ctx.drawImage(img, 0, 0, 2028, 1248); - show = !show; - } - } - } - } - } - drawUI() { - //绘制页面 - core.clearMap(CGUI); - const bgVertical = core.material.images.images["bg_2010.webp"]; //竖屏背景 - const bg = core.material.images.images["bg_5043.webp"]; //横屏背景 + const imagebox3 = makeBox([650, 200], [560, 420]); + const imagebox4 = makeBox([650, 750], [560, 420]); + const imagebox5 = makeBox([650, 1300], [560, 420]); + if (inRect(pos, pagedownbox)) { + //2代表当前最大页数-1 + if (page < this.UIMx.length - 1) { + page++; + core.clearMap(ctx); + this.update(); + } + } else if (inRect(pos, pageupbox)) { + if (page > 0) { + page--; + core.clearMap(ctx); + this.update(); + } + } else if (inRect(pos, imagebox0)) { + if (this.cgs.includes(this.UIMx[page][0][0])) { + const img = core.material.images.images[this.UIMx[page][0][0]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } else if (inRect(pos, imagebox1)) { + if (this.cgs.includes(this.UIMx[page][0][1])) { + const img = core.material.images.images[this.UIMx[page][0][1]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } else if (inRect(pos, imagebox2)) { + if (this.cgs.includes(this.UIMx[page][0][2])) { + const img = core.material.images.images[this.UIMx[page][0][2]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } else if (inRect(pos, imagebox3)) { + if (this.cgs.includes(this.UIMx[page][1][0])) { + const img = core.material.images.images[this.UIMx[page][1][0]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } else if (inRect(pos, imagebox4)) { + if (this.cgs.includes(this.UIMx[page][1][1])) { + const img = core.material.images.images[this.UIMx[page][1][1]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } else if (inRect(pos, imagebox5)) { + if (this.cgs.includes(this.UIMx[page][1][2])) { + const img = core.material.images.images[this.UIMx[page][1][2]]; + if (img) { + ctx.save(); //保存设置 + ctx.translate(1248, 0); //重新定位右上角为基准 + ctx.rotate(Math.PI / 2); //旋转90度 + ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.restore(); //重置画布设置 + show = !show; + } + } + } + } else { + const pageupbox = makeBox([200, 1110], [200, 100]); + const pagedownbox = makeBox([1600, 1110], [200, 100]); + const imagebox0 = makeBox([75, 150], [600, 450]); + const imagebox1 = makeBox([725, 150], [600, 450]); + const imagebox2 = makeBox([1300, 150], [600, 450]); + const imagebox3 = makeBox([75, 650], [600, 450]); + const imagebox4 = makeBox([725, 650], [600, 450]); + const imagebox5 = makeBox([1375, 650], [600, 450]); + if (inRect(pos, pagedownbox)) { + if (page < this.UIMx.length - 1) { + page++; + core.clearMap(ctx); + this.update(); + } + } else if (inRect(pos, pageupbox)) { + if (page > 0) { + page--; + core.clearMap(ctx); + this.update(); + } + } else if (inRect(pos, imagebox0)) { + if (this.cgs.includes(this.UIMx[page][0][0])) { + const img = core.material.images.images[this.UIMx[page][0][0]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } else if (inRect(pos, imagebox1)) { + if (this.cgs.includes(this.UIMx[page][0][1])) { + const img = core.material.images.images[this.UIMx[page][0][1]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } else if (inRect(pos, imagebox2)) { + if (this.cgs.includes(this.UIMx[page][0][2])) { + const img = core.material.images.images[this.UIMx[page][0][2]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } else if (inRect(pos, imagebox3)) { + if (this.cgs.includes(this.UIMx[page][1][0])) { + const img = core.material.images.images[this.UIMx[page][1][0]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } else if (inRect(pos, imagebox4)) { + if (this.cgs.includes(this.UIMx[page][1][1])) { + const img = core.material.images.images[this.UIMx[page][1][1]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } else if (inRect(pos, imagebox5)) { + if (this.cgs.includes(this.UIMx[page][1][2])) { + const img = core.material.images.images[this.UIMx[page][1][2]]; + if (img) { + ctx.drawImage(img, 0, 0, 2028, 1248); + show = !show; + } + } + } + } + } + drawUI() { + //绘制页面 + core.clearMap(CGUI); + const bgVertical = core.material.images.images["bg_2010.webp"]; //竖屏背景 + const bg = core.material.images.images["bg_5043.webp"]; //横屏背景 - if (core.domStyle.isVertical) { - //竖屏 + if (core.domStyle.isVertical) { + //竖屏 - core.fillRect(ctx, 0, 0, 1248, 2028, "#000000"); //黑色背景 - ctx.globalAlpha = 0.5; //透明度 - if (bgVertical) - ctx.drawImage(bgVertical, 0, 0, 1280, 1500, 0, 0, 1248, 2028); //绘制半透明背景图片 - ctx.globalAlpha = 1; //恢复为不透明 + core.fillRect(ctx, 0, 0, 1248, 2028, "#000000"); //黑色背景 + ctx.globalAlpha = 0.5; //透明度 + if (bgVertical) + ctx.drawImage(bgVertical, 0, 0, 1280, 1500, 0, 0, 1248, 2028); //绘制半透明背景图片 + ctx.globalAlpha = 1; //恢复为不透明 - core.setTextAlign(ctx, "center"); - core.fillBoldText1( - ctx, - "◀离开", - 100, - 110, - "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); + core.setTextAlign(ctx, "center"); + core.fillBoldText1( + ctx, + "◀离开", + 100, + 110, + "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); - core.fillBoldText1( - ctx, - "上一页", - 300, - 1900, - page === 0 ? "#444444" : "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); + core.fillBoldText1( + ctx, + "上一页", + 300, + 1900, + page === 0 ? "#444444" : "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); - core.fillBoldText1( - ctx, - page + 1 + "/" + this.UIMx.length, - 650, - 1900, - "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); - core.fillBoldText1( - ctx, - "下一页", - 1000, - 1900, - page === this.UIMx.length - 1 ? "#444444" : "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); - // 添加向上翻页和向下翻页的按钮 + core.fillBoldText1( + ctx, + page + 1 + "/" + this.UIMx.length, + 650, + 1900, + "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); + core.fillBoldText1( + ctx, + "下一页", + 1000, + 1900, + page === this.UIMx.length - 1 ? "#444444" : "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); + // 添加向上翻页和向下翻页的按钮 - // 添加3*2个4:3的画框,及图片 - for (let i = 0; i < 3; i++) { - for (let j = 0; j < 2; j++) { - const img = core.material.images.images[this.UIMx[page][j][i]]; - core.strokeRect( - ctx, - 50 + j * 600, - 200 + i * 550, - 560, - 420, - "#444444", - 5 - ); - if (this.cgs.includes(this.UIMx[page][j][i])) { - if (img) - ctx.drawImage( - img, - 50 + j * 600 + 15, - 200 + i * 550 + 15, - 560 - 30, - 420 - 30 - ); - } else { - ctx.fillStyle = "#000000"; - ctx.fillRect( - 50 + j * 600 + 15, - 200 + i * 550 + 15, - 560 - 30, - 420 - 30 - ); - const img = core.material.images.images["LOGO.webp"]; - if (img) - ctx.drawImage( - img, - 50 + j * 600 + 15, - 200 + i * 550 + 15, - 560 - 30, - 420 - 30 - ); - } - } - } - } else { - //横屏 - core.fillRect(ctx, 0, 0, 2028, 1248, "#000000"); //黑色背景 - ctx.globalAlpha = 0.5; //透明度 - if (bg) ctx.drawImage(bg, 0, 0, 1280, 720, 0, 0, 2028, 1248); //绘制半透明背景图片 - ctx.globalAlpha = 1; //恢复为不透明 + // 添加3*2个4:3的画框,及图片 + for (let i = 0; i < 3; i++) { + for (let j = 0; j < 2; j++) { + const img = core.material.images.images[this.UIMx[page][j][i]]; + core.strokeRect( + ctx, + 50 + j * 600, + 200 + i * 550, + 560, + 420, + "#444444", + 5 + ); + if (this.cgs.includes(this.UIMx[page][j][i])) { + if (img) + ctx.drawImage( + img, + 50 + j * 600 + 15, + 200 + i * 550 + 15, + 560 - 30, + 420 - 30 + ); + } else { + ctx.fillStyle = "#000000"; + ctx.fillRect( + 50 + j * 600 + 15, + 200 + i * 550 + 15, + 560 - 30, + 420 - 30 + ); + const img = core.material.images.images["LOGO.webp"]; + if (img) + ctx.drawImage( + img, + 50 + j * 600 + 15, + 200 + i * 550 + 15, + 560 - 30, + 420 - 30 + ); + } + } + } + } else { + //横屏 + core.fillRect(ctx, 0, 0, 2028, 1248, "#000000"); //黑色背景 + ctx.globalAlpha = 0.5; //透明度 + if (bg) ctx.drawImage(bg, 0, 0, 1280, 720, 0, 0, 2028, 1248); //绘制半透明背景图片 + ctx.globalAlpha = 1; //恢复为不透明 - core.setTextAlign(ctx, "center"); - core.fillBoldText1( - ctx, - "◀离开", - 110, - 100, - "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); + core.setTextAlign(ctx, "center"); + core.fillBoldText1( + ctx, + "◀离开", + 110, + 100, + "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); - // 添加向上翻页和向下翻页的按钮 - core.fillBoldText1( - ctx, - "上一页", - 300, - 1180, - page === 0 ? "#444444" : "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); + // 添加向上翻页和向下翻页的按钮 + core.fillBoldText1( + ctx, + "上一页", + 300, + 1180, + page === 0 ? "#444444" : "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); - core.fillBoldText1( - ctx, - page + 1 + "/" + this.UIMx.length, - 1000, - 1180, - "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); - core.fillBoldText1( - ctx, - "下一页", - 1700, - 1180, - page === this.UIMx.length - 1 ? "#444444" : "#FFFFFF", - "#000000", - 6, - core.ui._buildFont(66, true) - ); + core.fillBoldText1( + ctx, + page + 1 + "/" + this.UIMx.length, + 1000, + 1180, + "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); + core.fillBoldText1( + ctx, + "下一页", + 1700, + 1180, + page === this.UIMx.length - 1 ? "#444444" : "#FFFFFF", + "#000000", + 6, + core.ui._buildFont(66, true) + ); - // 添加3*2个4:3的画框 - for (let i = 0; i < 2; i++) { - for (let j = 0; j < 3; j++) { - core.strokeRect( - ctx, - 75 + j * 650, - 150 + i * 500, - 600, - 450, - "#444444", - 2 - ); - if (this.cgs.includes(this.UIMx[page][i][j])) { - const img = core.material.images.images[this.UIMx[page][i][j]]; - if (img) - ctx.drawImage( - img, - 75 + j * 650 + 15, - 150 + i * 500 + 15, - 600 - 30, - 450 - 30 - ); - } else { - ctx.fillStyle = "#000000"; - ctx.fillRect( - 75 + j * 650 + 15, - 150 + i * 500 + 15, - 600 - 30, - 450 - 30 - ); - const img = core.material.images.images["LOGO.webp"]; - if (img) - ctx.drawImage( - img, - 75 + j * 650 + 15, - 150 + i * 500 + 15, - 600 - 30, - 450 - 30 - ); - } - } - } - } - } - } - this.setcgs = function (img) { - const a = core.getLocalStorage("cgs", []); - if (img) { - if (!a.includes(img)) a.push(img); - core.setLocalStorage("cgs", a); - } else core.setLocalStorage("cgs"); - }; - core.ui.CG = new CG(); - main.dom.CGMode.onclick = function () { - //点击开始页面的CG MODE进入cg回廊 - main.core.control.checkBgm(); - page = 0; - main.core.ui.CG.cgs = core.getLocalStorage("cgs", []); - CGUI.style.display = "block"; - main.core.ui.CG.update(); - }; - }, + // 添加3*2个4:3的画框 + for (let i = 0; i < 2; i++) { + for (let j = 0; j < 3; j++) { + core.strokeRect( + ctx, + 75 + j * 650, + 150 + i * 500, + 600, + 450, + "#444444", + 2 + ); + if (this.cgs.includes(this.UIMx[page][i][j])) { + const img = core.material.images.images[this.UIMx[page][i][j]]; + if (img) + ctx.drawImage( + img, + 75 + j * 650 + 15, + 150 + i * 500 + 15, + 600 - 30, + 450 - 30 + ); + } else { + ctx.fillStyle = "#000000"; + ctx.fillRect( + 75 + j * 650 + 15, + 150 + i * 500 + 15, + 600 - 30, + 450 - 30 + ); + const img = core.material.images.images["LOGO.webp"]; + if (img) + ctx.drawImage( + img, + 75 + j * 650 + 15, + 150 + i * 500 + 15, + 600 - 30, + 450 - 30 + ); + } + } + } + } + } + } + this.setcgs = function (img) { + const a = core.getLocalStorage("cgs", []); + if (img) { + if (!a.includes(img)) a.push(img); + core.setLocalStorage("cgs", a); + } else core.setLocalStorage("cgs"); + }; + core.ui.CG = new CG(); + main.dom.CGMode.onclick = function () { + //点击开始页面的CG MODE进入cg回廊 + main.core.control.checkBgm(); + page = 0; + main.core.ui.CG.cgs = core.getLocalStorage("cgs", []); + CGUI.style.display = "block"; + main.core.ui.CG.update(); + }; +}, "光标设置": function () { // 在此增加新插件 this.changeMouse = function ( @@ -18731,18 +18734,99 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let animate = Math.floor(farme / 30); core.fillRect(ctx, 64, 64, 288, 288, "rgba(0,0,0,0.5)"); core.strokeRect(ctx, 64, 64, 288, 288, "rgba(255,255,255,0.5)", 4); - core.setTextAlign(ctx, "left"); + core.setTextAlign(ctx, "center"); core.fillBoldText( ctx, hero.name, - 112, - 128, + 127, + 123, "#FFFFFF", "#000000", - core.ui._buildFont(14, true) + 'bold 14px pala' + ); + core.setTextAlign(ctx, "left"); + core.drawIcon(ctx, 'hp', 70, 190, 16, 16) + core.drawIcon(ctx, 'atk', 70, 210, 16, 16) + core.drawIcon(ctx, 'def', 70, 230, 16, 16) + core.drawIcon(ctx, 'I374', 70, 250, 16, 16) + core.drawIcon(ctx, 'I375', 70, 270, 16, 16) + core.drawIcon(ctx, 'mdef', 70, 290, 16, 16) + core.drawIcon(ctx, 'amulet', 70, 310, 16, 16) + core.drawIcon(ctx, 'jumpShoes', 70, 330, 16, 16) + core.fillBoldText( + ctx, + '生命 ' + core.formatBigNumber(heroInfo.hp, true) + " / " + core.formatBigNumber(heroInfo.hpmax, true), + 90, + 205, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + '攻击 ' + core.formatBigNumber(heroInfo.atk), + 90, + 225, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + '防御 ' + core.formatBigNumber(heroInfo.def), + 90, + 245, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + "法强 " + core.formatBigNumber(heroInfo.spell), + 90, + 265, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + "法攻 " + core.formatBigNumber(heroInfo.matk / 100 * heroInfo.spell) + "(" + heroInfo.matk + "%)", + 90, + 285, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + '护盾 ' + core.formatBigNumber(heroInfo.mdef / 100 * heroInfo.spell) + "(" + heroInfo.mdef + "%)", + 90, + 305, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + '法抗 ' + heroInfo.spelldef + "%", + 90, + 325, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + '速度 ' + core.formatBigNumber(heroInfo.speed), + 90, + 345, + "#FFFFFF", + "#000000", + 'bold 14px pala' ); - core.strokeRect(ctx, 112, 144, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 112, 139, 32, 48, "rgba(255,255,255,1)", 1); core.drawImage( ctx, "hero.webp", @@ -18751,23 +18835,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 112, - 144, + 139, 32, 48 ); - core.setTextAlign(ctx, "right"); + + core.setTextAlign(ctx, "center"); core.fillBoldText( ctx, enemyInfo.name, - 304, - 128, + 289, + 123, "#FFFFFF", "#000000", - core.ui._buildFont(14, true) + 'bold 14px pala' ); + core.setTextAlign(ctx, "right"); if (enemyInfo.cls === "enemys") { - core.strokeRect(ctx, 272, 160, 32, 32, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 155, 32, 32, "rgba(255,255,255,1)", 1); core.drawImage( ctx, @@ -18777,12 +18863,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 32, 272, - 160, + 155, 32, 32 ); } else { - core.strokeRect(ctx, 272, 144, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 139, 32, 48, "rgba(255,255,255,1)", 1); core.drawImage( ctx, @@ -18792,25 +18878,76 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 272, - 144, + 139, 32, 48 ); } + core.drawIcon(ctx, 'hp', 330, 190, 16, 16) + core.drawIcon(ctx, 'atk', 330, 210, 16, 16) + core.drawIcon(ctx, 'def', 330, 230, 16, 16) + core.drawIcon(ctx, 'amulet', 330, 250, 16, 16) + core.drawIcon(ctx, 'jumpShoes', 330, 270, 16, 16) + core.fillBoldText( + ctx, + core.formatBigNumber(enemyInfo.hp, true) + ' 生命', + 330, + 205, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + core.formatBigNumber(enemyInfo.atk) + ' 攻击', + 330, + 225, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + core.formatBigNumber(enemyInfo.def) + ' 防御', + 330, + 245, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + + core.fillBoldText( + ctx, + (enemyInfo.mdef ?? 0) * 100 + "% 法抗", + 330, + 265, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); + core.fillBoldText( + ctx, + core.formatBigNumber(enemyInfo.speed) + " 速度", + 330, + 285, + "#FFFFFF", + "#000000", + 'bold 14px pala' + ); core.fillBoldText(ctx, "V", 219, - 168, + 163, "#FFFFFF", "#000000", - core.ui._buildFont(48, true)) + 'bold 48px pala') core.fillBoldText(ctx, "s", 231, - 168, + 163, "#FFFFFF", "#000000", - core.ui._buildFont(36, true)) + 'bold 36px pala') }; this.attackAnimate = function ( @@ -18826,12 +18963,20 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let hero_hp = core.getRealStatusOrDefault(hero, "hp"), hero_atk = core.getRealStatusOrDefault(hero, "atk"), hero_def = core.getRealStatusOrDefault(hero, "def"), + hero_spell = core.getRealStatusOrDefault(hero, "spell"), + hero_matk = core.getRealStatusOrDefault(hero, "mdef"), hero_mdef = core.getRealStatusOrDefault(hero, "mdef"), - hero_speed = core.getRealStatusOrDefault(hero, "speed"); + hero_speed = core.getRealStatusOrDefault(hero, "speed"), + hero_hpmax = core.getRealStatusOrDefault(hero, "hpmax"), + hero_spelldef = core.getRealStatusOrDefault(hero, "spelldef"); const heroInfo = { hp: hero_hp, + hpmax: hero_hpmax, atk: hero_atk, def: hero_def, + spell: hero_spell, + spelldef: hero_spelldef, + matk: hero_matk, mdef: hero_mdef, speed: hero_speed, now: 0, @@ -18865,574 +19010,574 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = }; }, "剧情内容": function () { - // 在此增加新插件 - // 每项为一个数组,第一项是名字,第二项是对话内容 - // 回放只会在同一个this下回放,进入剧情前请以事件块声明进入哪个剧情数组 - // 可以自由添加,但不能与已有插件及函数名相同,可以使用中文。 - this.chapter0 = [ - ["", "这些天,街道不曾下雨。"], - ["", "所以,那浸湿地面的,定是那些女孩们流落的鲜血无疑。"], - ["", "我蹲在充斥着铁锈味般恶臭的小巷中,悠闲地如是想着。"], - ["", "扑哧。"], - ["", "耳旁再次响起象征着某个女孩子死去的声音。"], - ["", "再一次——"], - ["", "再一次。"], - ["", "女子们被肢解成单纯的肉块。"], - ["", "我任由流下的血浸满全身,屏住自己的呼吸。"], - ["", "祈求自己能拥有从猎人手中逃脱的幸运。"], - ["", "扑哧。"], - ["", "直到刚才,我们还坐在去往娼馆的马车的路上。"], - ["", "而在这之中的某些人,已经不在这个世上了。"], - ["", "不,应该把“某些”换成“几乎所有”才更为恰当吧。"], - ["", "恐怕,不久之后我也会变成小巷中血腥的装饰品。"], - ["", "我是为了得到这种死法,才辛苦苟活至今的吗?"], - ["", "来个人告诉我啊——"], - ["", "谁都好。"], - ["", "来人啊!!"], - ["少女", "「呃······!?」"], - ["", "漆黑的物体充斥了我的整个视野"], - ["", "我很快意识到,那是只很大的脚。"], - ["", "必须要出声求救。"], - ["", "可是,耳中却只能听到自己的牙关不停交战的声音。"], - ["", "我是如此的无助。"], - ["", "逃跑也好,道歉也罢。"], - ["", "就连抬头看一眼将要杀掉我的人的面孔都做不到。"], - ["少女", "「······被杀」"], - ["", "会被杀。"], - ["", "会被杀!!"], - ["", "来自内心深处的冰冷预感,渐渐地在体内蔓延开来。"], - ["少女", "「不,不要······」"], - ["", "浮游都市,《诺瓦斯·艾蒂尔》。"], - ["", "《特别受灾地区》——"], - ["", "通称,《牢狱》"], - ["", "是被险峻的峭壁环绕,与世隔绝的,都市的最底部。"], - ["年轻人", "「放开我!」"], - ["年轻人", "「我只是在帮那个女人而已!」"], - ["年轻人", "「你们没听到吗!?」"], - ["年轻人", "「她是被受骗才会被卖到娼馆来的」"], - ["年轻人", "「用肮脏的手段把钱借给她父母的,就是你们这些家伙吧!?」"], - ["年轻人", "「给我说些什么啊」"], - ["凯伊姆", "「这些话等到了娼馆再说吧」"], - ["凯伊姆", "「我来抓你,只是受雇于人而已」"], - ["", "我走进娼馆《莉莉乌姆》的接待室。"], - ["", "正在桌旁整理账簿的奥兹停下手头的工作,抬起头向我看来。"], - ["奥兹", "「这不是凯伊姆先生吗,辛苦了」"], - ["奥兹", "「委托已经完成了吗?」"], - ["凯伊姆", "「啊啊,是这家伙没错吧」"], - ["", "奥兹用只要接触到就能杀人般的眼神在男人脸上搜过。"], - ["奥兹", "「没错,就是这个人」"], - ["凯伊姆", "「是么」"], - ["年轻人", "「你,你们要对我做什么」"], - ["奥兹", "「······」"], - ["", "奥兹用一个眼神,就让男人闭上了嘴。"], - ["", "然后,向我这边转过身来。"], - ["奥兹", "「抱歉啊,总是麻烦你去做这些无聊的事」"], - ["奥兹", "「都怪我们这边的年轻人太没用」"], - ["凯伊姆", "「客套话就免了」"], - ["奥兹", "「这还真是失礼了」"], - ["奥兹", "「喂,来个人」"], - ["光头男人", "「是」"], - ["奥兹", "「凯伊姆先生做完工作回来了」"], - ["光头男人", "「是,是,那个······」"], - ["奥兹", "「我是要你拿些酒来,这个蠢材!」"], - ["", "喀!"], - ["", "奥兹扔出的烟灰缸砸中了手下的额头。"], - ["", "鲜血四溅。"], - ["凯伊姆", "「不用这么麻烦」"], - ["凯伊姆", "「我接下来要去《菲诺列塔》」"], - ["奥兹", "「喔唷」"], - ["奥兹", "「既然如此,我就不留您在这里喝难饮的劣质酒了」"], - ["", "奥兹斜眼看着正捂住额头呻吟的手下,轻描淡写地说道。"], - ["凯伊姆", "「用这些钱去买药」"], - ["", "我将几枚铜钱仍在那个手下的身前。"], - ["奥兹", "「凯伊姆先生,不用对他们这么好」"], - ["凯伊姆", "「无妨」"], - ["凯伊姆", "「话说回来,那个要落跑的女人呢?」"], - ["奥兹", "「我把她交给那些年轻人了,现在应该正在体会人生的严苛吧」"], - ["奥兹", "「正好,趁此机会凯伊姆先生也来享受一番如何?」"], - ["年轻人", "「你,你们这些家伙,要对她做什么!?」"], - ["", "咣!"], - ["", "奥兹给了他一拳。"], - ["", "一击即倒。"], - ["", "喀,咚,咯!"], - ["", "奥兹毫不留情地向男人的脸上踩去。"], - ["年轻人", "「咕······呃咳······」"], - ["", "折断的牙齿伴着血泡被吐出。"], - ["", "这份白色在鲜红色的液体中格外显眼。"], - ["年轻人", "「你们以为做出这种事······卫兵会坐视不理吗······」"], - ["奥兹", "「啊啊,不会坐视不理的」"], - ["奥兹", "「应该会拿出你的钱包,和我们商量如何瓜分吧」"], - ["年轻人", "「那,那种事······」"], - ["", "这在牢狱是理所当然的事。"], - ["奥兹", "「怎么,头一回来牢狱么?」"], - ["", "男人点了点头。"], - ["奥兹", "「为了被骗的女人而来到牢狱,真是个规矩人啊」"], - ["奥兹", "「······前提是,被骗的人不是你」"], - ["年轻人", "「你说······我被骗了?」"], - ["年轻人", "「那,那是怎么回事!?」"], - ["奥兹", "「不用急,今天晚上会好好告诉你的」"], - ["", "奥兹抓起男人的脸。"], - ["", "为引诱客人的怜悯之心而装纯,是娼妇的惯用手段。"], - ["", "双亲被骗而借钱,结果作为抵押而将自己卖到这里,这是典型的说法。"], - [ - "", - "如果只是头脑发热而成为常客也就罢了,这次的男人热血过头,居然想出了要带女人私奔的计划。", - ], - [ - "", - "虽然女人半开玩笑地予以拒绝,但不知天高地厚的这家伙还是拉着她逃跑了。", - ], - ["", "不过,想要逃脱追击本来就是不可能的任务。"], - ["", "但即便如此,这种事情还是会一再的出现。"], - ["", "说谎的女人和被骗的男人。"], - ["", "在娼馆街,这是令人看到生厌的日常的风景。"], - ["凯伊姆", "「我要走了」"], - ["奥兹", "「好的,下次再麻烦您」"], - ["奥兹", "「之后吉克先生会将谢礼交给您的」"], - ["凯伊姆", "「啊啊」"], - ["", "我背向奥兹走出娼馆。"], - ["凯伊姆", "「······?」"], - ["", "从远方传来微弱的歌声。"], - ["", "是关卡广场的方向。"], - ["", "对了。"], - ["", "今天有觐见圣女的仪式。"], - ["", "当代的圣女伊莲——"], - ["", "俗称《盲眼之圣女》,据说即使在历代的圣女中,人气也是数一数二的。"], - ["", "广场上的人估计相当多吧。"], - ["", "虽然我也想去看看她长什么样,不过要在人潮中挤来挤去就免了。"], - ["", "还是老老实实去菲诺列塔喝烧酒吧。"], - ["", "正当我这样想着的时候,一个身影自小巷的那头走来。"], - ["凯伊姆", "「艾莉斯」"], - ]; - this.chapter01 = [ - ["艾莉斯", "「啊,凯伊姆」"], - ["艾莉斯", "「正好,我还想要去找你呢」"], - ["艾莉斯", "「没想到凯伊姆会主动出现······这是命运吗?」"], - ["凯伊姆", "「显然不是吧」"], - ["艾莉斯", "「啊,是么」"], - ["", "艾莉斯挑了挑整齐的双眉,微微地哼了一声。"], - [ - "", - "虽然是个相当引人注目的美人,但她这个将亲切儿子丢入无底深渊的性格,为自己扣了不少的分", - ], - ["", "给人印象最深的,就是那潭水般的双瞳。"], - ["", "在漆黑的瞳孔中,完全看不出感情的波动。"], - ["艾莉斯", "「喜欢我的眼睛吗?」"], - ["艾莉斯", "「如果想要的话就给你吧?」"], - ["凯伊姆", "「用不着」"], - ["艾莉斯", "「阿拉,可惜」"], - ["凯伊姆", "「那么,找我有什么事」"], - ["艾莉斯", "「梅尔特的钱好像被偷了」"], - ["凯伊姆", "「钱被偷了?都几岁了还这么没用」"], - ["艾莉斯", "「不要对我说啊」"], - ["凯伊姆", "「那家伙,该不会说要让我去抓那个小偷吧?」"], - ["艾莉斯", "「就是这样」"], - ["凯伊姆", "「笨蛋吗」"], - ["凯伊姆", "「如果是小钱的话,就当做是买个教训吧」"], - ["艾莉斯", "「说起来,被盗的是这个月的上纳金」"], - ["凯伊姆", "「你说什么?」"], - ["艾莉斯", "「用这些钱买教训,也太过奢侈了呢」"], - ["凯伊姆", "「知道了,我去找」"], - ["凯伊姆", "「小偷的特征呢」"], - ["艾莉斯", "「男孩子」"], - ["艾莉斯", "「······而且,背后有翅膀」"], - ["艾莉斯", "「虽然姑且是藏在身后,但是仔细观察的话是很明显的」"], - ["凯伊姆", "「羽化病吗」"], - [ - "艾莉斯", - "「那些人可是毫不留情的,所以即使是为了那个孩子,也要赶快抓到他」", - ], - ["凯伊姆", "「注意到他逃窜的方向了吗?」"], - ["艾莉斯", "「广场那边」"], - ["艾莉斯", "「虽然刚才《不蚀金锁》的人去追了,不过多半是······」"], - ["凯伊姆", "「偏偏还是广场吗」"], - ["艾莉斯", "「今天是觐见圣女大人的日子」"], - ["凯伊姆", "「我知道」"], - ["凯伊姆", "「尽量找找看就好」"], - ]; - this.chapter02 = [ - ["不蚀金锁成员", "「凯伊姆先生,凯伊姆先生」"], - ["不蚀金锁成员", "「您已经和艾莉斯大夫见过面了吗?」"], - ["凯伊姆", "「啊啊,所以才会追过来的」"], - ["凯伊姆", "「看到小偷了吗?」"], - [ - "不蚀金锁成员", - "「没有,他向广场那边逃了过去,今天这么拥挤,我们也只能放弃了」", - ], - [ - "不蚀金锁成员", - "「不过,我也只是刚好在店里所以才追了过去,并不是受人所托」", - ], - ["不蚀金锁成员", "「我已经准备撤退了」"], - ["不蚀金锁成员", "「凯伊姆先生还要继续追吗?」"], - ["凯伊姆", "「啊啊」"], - ["", "做完情报交换之后,我跟男人道别。"], - ["凯伊姆", "「和我想的一样啊······」"], - ["", "在牢狱中最大的广场上,聚集着看不到尽头的人群。"], - ["", "就算是来参见圣女祈祷,这人数也太多了点吧。"], - ["", "自然,我也找不到逃跑的孩子。"], - ["", "是混杂到人群中了吧。"], - ["", "如果已经从广场上脱身了的话,就更难发现了。"], - ["", "只好赌他还在这里了。"], - ["", "我先移动到了一个视野良好的地方。"], - ["", "从这里,一眼就可以看到人群的变化。"], - ["", "广场还是沸腾起来。"], - ["", "抬头望去,原来是在天台之上出现了一个人影"], - ["", "但是,与周围的期待不同,现身的是一名中年的神官。"], - ["", "骂声四溢。"], - ["", "神官则是笑着摆正衣领"], - ["神官", "「从现在开始,举行谒见的仪式」"], - [ - "神官", - "「在参见那位大人之前,我希望牢狱的诸位再次思考这个《诺瓦斯·艾蒂尔》存在的意义······」", - ], - [ - "神官", - "「初代圣女伊莲大人,便是也难怪这崇高的祈祷之力,令《诺瓦斯·艾蒂尔》浮在空中,拯救了我们的祖先」", - ], - [ - "神官", - "「这之后的几百年来,传承了初代大人力量的历代圣女伊莲大人,让这里留在了空中」", - ], - [ - "神官", - "「这座都市是被圣女大人守护的人类最后的圣域,而我们则是被选召的虔诚的信徒」", - ], - ["神官", "「怀着对圣女的感激祈祷吧,感谢圣女伊莲吧!并献上祈祷!」"], - ["圣女", "「不忘感谢与祈祷,神才会拯救我们」"], - ["圣女", "「与我一起,向神虔诚地祈祷吧」"], - ["", "广场上欢声雷动。"], - ["", "圣女没有回应喧嚣的人声,而是静静地合上双眼面向广场。"], - ["", "虽然感觉有些冷淡,但总比像个傻瓜似的笑着向这群人挥手要强。"], - ["", "她掌握着这条街道,还有在这条街上生活的人的命运。"], - ["", "比起揽得人气,她更想要为了街道的继续存在而献出全力。"], - ["", "也是为了不让《大崩落》的惨剧再度发生。"], - ["", "十几年前的那场悲剧。"], - [ - "", - "虽然在我脑海中的记忆已经相当模糊,但哪怕只是稍有触及,不快的感觉都会在胸口蔓延开。", - ], - ["凯伊姆", "「······」"], - ["", "这时我才想起,现在不是我在这里看圣女的时候。"], - ["女声", "「——っ!?」"], - ["围观的女人", "「羽,羽化病人!?」"], - ["围观的中年人", "「喂,谁去叫下羽狩」"], - ["惊慌的观众", "「你这家伙不要靠近我,要是传染了可怎么办」"], - ["粗鲁的观众", "「你这小鬼赶快滚开」"], - ["凯伊姆", "「接下来」"], - ["圣女", "「发生什么事了?看上去似乎很嘈杂」"], - ["随从", "「似乎是某个人逃跑了······具体的我也不是很清楚」"], - ["神官", "「圣女大人,继续待在天台上可能会出事,请您先回到室内吧」"], - ["圣女", "「不用在意我,比起那个,我更关心究竟发生了什么事」"], - ["神官", "「对不起,我真的不知道」"], - ["圣女", "「······是吗」"], - ["男", "「恕我僭越,请准许我说明情况」"], - ["男", "「在来觐见的人群中出现了《羽化病》的患者」"], - ["男", "「围观的人群因而产生了骚动」"], - [ - "男", - "「现在,《防疫局》已经派遣了部队。我想不久之后,他们就会安静下来了」", - ], - ["圣女", "「羽化病······」"], - ["男", "「怎么了?」"], - ["圣女", "「没什么」"], - ["圣女", "「辛苦了,你的名字是?」"], - ["男", "「属下是在防疫局任职的,鲁基乌斯· 迪斯·米利尤」"], - ["神官", "「噢噢,阁下就是鲁基乌斯卿吗,我听说过你的传闻」"], - ["神官", "「阁下是在工作上相当出色的人呢」"], - ["鲁基乌斯", "「不敢当」"], - [ - "鲁基乌斯", - "「话说回来,这次是属下警备工作的失职。让圣女大人见到这不成体统的一面,请您见谅」", - ], - [ - "圣女", - "「即使是目不见物的我,也能感受到聚集于此的民众数量之多。警备工作难以展开也在情理之中」", - ], - ["鲁基乌斯", "「属下不胜惶恐」"], - ["鲁基乌斯", "「接下来属下还要回到工作岗位上,在这里就先告退了」"], - ["圣女", "「鲁基乌斯先生」"], - ["鲁基乌斯", "「属下在」"], - ["圣女", "「你是怎样看待羽狩的工作的呢?」"], - ["神官", "「圣,圣女大人」"], - [ - "鲁基乌斯", - "「防疫局的工作是国王陛下赐予的重要职务。属下非常荣幸能够为这个都市的繁荣尽一份微薄之力」", - ], - ["神官", "「不,不亏是鲁基乌斯卿,相当优秀的想法」"], - ["圣女", "「是吗。辛苦你了」"], - ["随从", "「圣女大人······」"], - ["鲁基乌斯", "「······」"], - ["鲁基乌斯", "「那么,属下就回岗位去了」"], - ]; - this.chapter03 = [ - ["", "从羽化病的少年纷乱的足音中,可以听得出相当的疲劳。"], - ["", "显然,他并没有想到我会捷足先登吧。"], - ["", "少年惶恐地回头看了一眼后,微微露出安心的表情,双手拄在膝盖上。。"], - ["凯伊姆", "「辛苦你了」"], - ["羽化病患少年", "「稀!?」"], - ["凯伊姆", "「逃到贫民区是个不错的想法」"], - ["羽化病患少年", "「你,你是,羽狩吗?」"], - ["凯伊姆", "「不是」"], - ["羽化病患少年", "「什,什么啊······混蛋,不要吓我啊」"], - ["凯伊姆", "「我对令你受惊这件事致以歉意」"], - ["凯伊姆", "「作为回报,麻烦你把从店里偷的钱交出来吧」"], - ["羽化病患少年", "「钱?你在说什么」"], - ["凯伊姆", "「你要找的腰上的东西,掉在你身后了」"], - ["羽化病患少年", "「哎?」"], - ["羽化病患少年", "「呃呀」"], - ["羽化病患少年", "「你······你这混蛋」"], - ["凯伊姆", "「······」"], - ["凯伊姆", "「把偷的钱交出来」"], - ["羽化病患少年", "「我不知道你在······咕」"], - ["羽化病患少年", "「你,你说是我偷的······有什么证据吗」"], - ["凯伊姆", "「你还挺倔的啊」"], - ["凯伊姆", "「不过,给我听好了」"], - ["凯伊姆", "「你偷的那些钱,是要上缴给《不蚀金锁》的上纳金」"], - ["凯伊姆", "「而且,钱的主人是从前和吉克颇有渊源的女人」"], - ["羽化病患少年", "「吉克?」"], - ["凯伊姆", "「他是《不蚀金锁》的主人,这么说你就明白了吧」"], - ["羽化病患少年", "「哎?哎?怎么会······」"], - ["凯伊姆", "「再问你一遍,钱在哪里?」"], - ["羽化病患少年", "「是,是,是,在我的怀里」"], - ["凯伊姆", "「你没有擅自拿掉一部分吧」"], - ["羽化病患少年", "「是,是的」"], - ["羽化病患少年", "「那,那个,您是《不蚀金锁》的人吗?」"], - ["凯伊姆", "「算是吧」"], - ["羽化病患少年", "「我什么都可以做,请您一定要帮帮我」"], - ["凯伊姆", "「抱歉,我并没有兴趣去帮助他人」"], - ["羽化病患少年", "「我什么······什么,都会做的······」"], - ["羽化病患少年", "「我一直都是生活在下层的」"], - [ - "羽化病患少年", - "「可是,不知何时染上了羽化病······背后长出了翅膀······」", - ], - ["羽化病患少年", "「被寄宿工作的店赶了出来,只得流落到牢狱这里」"], - ["羽化病患少年", "「因为独自实在是饿的不行了,所以才会偷这些钱的」"], - [ - "羽化病患少年", - "「我明明没有做任何坏事······为什么······会遇到这种事······」", - ], - ["凯伊姆", "「谁知道」"], - ["羽化病患少年", "「呜······呜呜······接下来,要对我做什么?」"], - ["凯伊姆", "「我要把你带到组织那里」"], - ["羽化病患少年", "「怎,怎么这样」"], - ["凯伊姆", "「不过,那样做的前提是你不是羽化病人」"], - ["凯伊姆", "「组织也没有笨到把羽化病人招待到家里的程度」"], - ["羽化病患少年", "「那么,是要放我逃走吗?」"], - ["凯伊姆", "「我要让你学到教训」"], - ["凯伊姆", "「如果换做是组织的制裁,至少要有断条胳膊的觉悟」"], - ["凯伊姆", "「你的运气不错」"], - ["羽化病患少年", "「唔······啊,是的······」"], - ["凯伊姆", "「滚」"], - ["羽化病患少年", "「非常感谢」"], - ["羽化病患少年", "「唔啊!?」"], - ["男", "「到这里就结束了,羽化病人」"], - ["男", "「确认他的翅膀」"], - ["", "趁还没有被卷入麻烦的事情之前,赶快离开这里吧"], - ["羽狩的队长", "「那边的那个人」"], - ["凯伊姆", "「······有什么事?」"], - ["羽狩的队长", "「可以稍微让我问几句话吗」"], - ["凯伊姆", "「······」"], - ["凯伊姆", "「啊啊,无妨」"], - ["羽狩的队长", "「感谢您的合作」"], - ["", "队长殷勤地致以谢礼。"], - ["", "而在他的眼前,少年的衣服已经被他的补下们扯破。"], - ["", "在瘦骨嶙峋的裸露后背上,长有纯白的羽翼。"], - ["红发的羽狩", "「副队长,确认翅膀的持有了」"], - ["羽狩的副队长", "「保护他」"], - ["羽化病患少年", "「不要······请原谅,我······」"], - [ - "羽狩的副队长", - "「我们只是要带你去治愈院治疗羽化病,不是什么应该感到害怕的事情」", - ], - ["羽化病患少年", "「可是,可是」"], - ["羽狩的副队长", "「没关系的」"], - ["羽化病患少年", "「······哥,哥哥」"], - ["羽狩的副队长", "「你是羽化病人的亲属吗?」"], - ["凯伊姆", "「只是路人而已」"], - ["凯伊姆", "「顺带一提,我也没有打算找你们的麻烦」"], - [ - "羽狩的副队长", - "「前几天,有个和你说了同样的话的人,在我们背向他的瞬间对我们发动了袭击」", - ], - ["羽狩的副队长", "「我的一个部下就此永久失去了半截胳膊」"], - ["凯伊姆", "「我表示同情」"], - ["凯伊姆", "「我马上就会消失的,这样就没问题了吧?」"], - ["羽狩的副队长", "「嘛,不要这么慌张」"], - ["", "副队长看着羽化的少年。"], - ["羽狩的副队长", "「你与这个人是什么关系?没有被他殴打吗?」"], - ["羽化病患少年", "「没,没有」"], - [ - "羽狩的副队长", - "「如何对我们保持合作,你就可以在治愈院得到优先的治疗」", - ], - ["羽化病患少年", "「······」"], - ["羽化病患少年", "「那个人,是《不蚀金锁》的组织成员······」"], - ["羽化病患少年", "「突然说让我拿出钱来,我刚一拒绝他就打我」"], - ["羽狩的副队长", "「原来如此······」"], - [ - "羽狩的副队长", - "「那位少年说你是《不蚀金锁》的一员,不知此事是否属实?」", - ], - ["凯伊姆", "「当然不是」"], - ["凯伊姆", "「我只是从那里接受工作而已,并不是他们的成员」"], - ["羽狩的副队长", "「你的意思是说,少年在说谎吗?」"], - ["凯伊姆", "「啊啊」"], - [ - "凯伊姆", - "「如果你们和组织有关系的话,只要问问我是不是那里的成员就能明白事实了吧」", - ], - ["羽狩的副队长", "「就算我去询问,也无法从他们那里得到事实」"], - [ - "羽狩的副队长", - "「《不蚀金锁》的那些人一向都不对我们合作,我对此深感困扰」", - ], - ["凯伊姆", "「真是辛苦啊」"], - ["羽狩的副队长", "「说的是啊」"], - ["羽狩的副队长", "「其实,砍下我部下胳膊的似乎也是组织的成员呢」"], - [ - "羽狩的副队长", - "「无需如此警戒,我只是想在看守所向你咨询一些事情而已」", - ], - [ - "羽狩的副队长", - "「如果能够知晓牢狱与组织的事情,我们也可以尽可能地对更多的羽化病人进行保护」", - ], - ["羽狩的副队长", "「那和整条街道的和平也是紧密相关的吧?」"], - ["凯伊姆", "「我知道,你们有逮捕干扰狩猎羽化病人的权力」"], - [ - "凯伊姆", - "「但是,我没有对你们做出任何干扰,为什么要对我如此纠缠不休呢」", - ], - ["羽狩的副队长", "「那些话,我们会在看守所对你详细说明的」"], - ["凯伊姆", "「······」"], - ["", "在这里起争执的话,就会被羽狩加害。"], - ["", "就算能从这里脱身,今后只要碰面就会产生纠纷也是摆明的事情。"], - ["", "就算逃跑,也没有好的结果。"], - ["", "正当我想要打圆场的时候,刚才的气氛一瞬间产生了转变。"], - ["", "发生了什么事······"], - ["???", "「我认为,那位先生是正确的」"], - ["", "羽狩们一起回头。"], - ["", "而在他们视线的焦点处,"], - ["", "伫立着一位女性。"], - ["", "在端正的容颜下,代表着强烈意志的双眉十分显眼。"], - ["", "身体的柔软与紧紧包裹在其身上的羽狩制服,两者显得十分的不搭配。"], - ["", "我还是第一次看到女性的羽狩。"], - ["羽狩的副队长", "「队长,这是获得《不蚀金锁》情报的好机会」"], - [ - "羽狩的队长", - "「兰格副队长,就算是为了获得情报,也不能做出恫吓的发言啊」", - ], - ["兰格副队长", "「我并没有打算去恫吓他······」"], - ["羽狩的队长", "「告诉我那个被砍掉胳膊的队员的名字」"], - ["羽狩的队长", "「我会去探望他的」"], - ["兰格副队长", "「那个是······」"], - ["羽狩的队长", "「我知道,你一直在为有所收获而努力工作」"], - ["羽狩的队长", "「但是,正因为我们的工作是为民众提供帮助」"], - ["羽狩的队长", "「所以就更不能损害人与人之间的信赖」"], - ["兰格副队长", "「我会铭记在心」"], - ["羽狩的队长", "「这位先生,我的部下失礼了」"], - ["凯伊姆", "「只要不对我再来一次就好」"], - ["羽狩的队长", "「请稍等」"], - ["凯伊姆", "「有什么事?」"], - ["羽狩的队长", "「我想确认一件事」"], - ["羽狩的队长", "「你真的不是《不蚀金锁》的成员吗?」"], - ["凯伊姆", "「真的」"], - ["凯伊姆", "「如果我说是的话,你有什么打算?」"], - ["羽狩的队长", "「我听过传闻,说他们是用依靠暴力而得的钱在生活」"], - ["凯伊姆", "「······这样啊」"], - ["凯伊姆", "「如果能有收获就好了啊」"], - ]; - this.chapter04 = [ - ["梅尔特", "「欢迎光临」"], - ["梅尔特", "「辛苦了」"], - ["梅尔特", "「抱歉,又拜托给你了个这么麻烦的工作」"], - ["凯伊姆", "「没什么,比想象中完成的更容易」"], - ["梅尔特", "「那就好」"], - ["梅尔特", "「这是我的一点谢意」"], - ["凯伊姆", "「味道有些变化啊」"], - ["梅尔特", "「啊,被发现了?」"], - ["梅尔特", "「最近,没能到手什么好的原料呢」"], - ["凯伊姆", "「去拜托吉克如何?」"], - [ - "梅尔特", - "「话是这么说,但是总不能用店里采购的这种小事去麻烦他吧······」", - ], - ["凯伊姆", "「那希望你也不要来麻烦我」"], - ["梅尔特", "「那 是 两 码 事」"], - ["梅尔特", "「再说,凯伊姆是靠着工作来生活的吧」"], - [ - "梅尔特", - "「而且,自己的钱被偷了这么害羞的事,向凯伊姆意外的其他人都说不出口」", - ], - ["凯伊姆", "「反正,也已经传到吉克的耳朵里了」"], - ["梅尔特", "「这是面子问题啊,面子问题」"], - ["凯伊姆", "「嘛,算了」"], - ["凯伊姆", "「这样就好了吧?」"], - ["梅尔特", "「这是钱包呢」"], - ["梅尔特", "「嗯,东西没少」"], - ["梅尔特", "「太好啦—这个月的上纳金,我可全部都放在里面了呢」"], - ["梅尔特", "「如果没有找到的话,说不定就又会被送到娼馆里了呢」"], - ["凯伊姆", "「在那边不是来钱更快吗?」"], - ["梅尔特", "「阿拉,你是在说我还能有魅力吗?」"], - ["凯伊姆", "「这是客套话而已」"], - ["梅尔特", "「欺负人」"], - ["梅尔特", "「总而言之,今天帮大忙了」"], - ["梅尔特", "「谢礼嘛······」"], - ["凯伊姆", "「就记在账单上吧」"], - ["梅尔特", "「了解—盛谢惠顾了哦?」"], - ["", "喀啷喀啷"], - ["", "门铃响起"], - ["", "喧哗瞬间安静下来。"], - ["", "进来的人是吉克。"], - ["", "是掌控着牢狱的组织之一,《不蚀金锁》的头目。"], - ["", "不仅组织的成员,就连店内一般的客人也对他以注目礼表示敬意。"], - ["吉克", "「各位继续吧」"], - ["", "仿佛停滞的时钟重新转动了一般,店内恢复了热闹的气氛。"], - ["吉克", "「抱歉,今天拜托你去做了无聊的工作」。"], - ["凯伊姆", "「不用介意」"], - ["", "吉克轻轻点了点头,在我右边坐了下来"], - ["凯伊姆", "「逃跑的男人怎么样了?」"], - ["吉克", "「嗯?已经不在这个世上了」。"], - ["吉克", "「有什么想要知道的事吗?」"], - ["凯伊姆", "「不,没什么」"], - ["吉克", "「那个无聊的家伙,完全没有趣味呢」"], - ["吉克", "「真希望他也替我负责清扫的部下也考虑考虑」"], - ["凯伊姆", "「真是灾难啊」"], - ["吉克", "「比起那个,我听说了哦。你去追羽化病人了啊」"], - ["凯伊姆", "「消息真灵通」"], - ["吉克", "「梅尔特也注意点」"], - ["吉克", "「你丢钱已经不是一回两回了」"], - ["梅尔特", "「好的—我会注意的。」"], - ["梅尔特", "「吉克还是平常的点单吧」"], - ["梅尔特", "「凯伊姆要再来一杯吗?」"], - ["", "我们用眼神点头示意后,梅尔特开始准备起酒来。"], - ["", "悠然地吐出眼圈后,吉克取出一个纸包放在柜台上。"], - ["吉克", "「这是抓捕逃跑男人的报酬」"], - ["凯伊姆", "「下次有什么事再告诉我」"], - ["梅尔特", "「来,久等了」"], - ["凯伊姆", "「话说回来梅尔特,为什么会被那种孩子偷到钱?」"], - ["吉克", "「让我猜猜看」"], - ["吉克", "「是那个吧,看某个特立独行的男人入迷了,所以就有了空隙?」"], - ["梅尔特", "「可惜—」"], - ["梅尔特", "「事实恰恰相反,是那家伙一直在纠缠我」"], - ["凯伊姆", "「完全把你当成新进的女佣了么」"], - ["梅尔特", "「我从前可是很有名的,不会被当成这种下人吧」"], - ["梅尔特", "「······而且,我没法对对我这么钟情的人发火啊」"], - ["凯伊姆&吉克", "「你傻啊」"], - ["梅尔特", "「异口同声呢,不亏是兄弟」"], - ["凯伊姆", "「别用这种称呼,怪恶心的」"], - ["吉克", "「说得没错」"], - ["吉克", "「······说起来······」"], - ["梅尔特", "「怎么了?」"], - ["吉克", "「有件事我一直很在意,我和凯伊姆,哪个是哥哥啊?」"], - ["凯伊姆", "「你也说这么无聊的话题」"], - ["吉克", "「不,这是很重要的事情」"], - ["吉克", "「梅尔特,事实是怎么样的?」"], - ["梅尔特", "「啊~是怎么样的呢~」"], - ["梅尔特", "「我忘记了」"], - ["吉克", "「骗人」"], - ]; - } + // 在此增加新插件 + // 每项为一个数组,第一项是名字,第二项是对话内容 + // 回放只会在同一个this下回放,进入剧情前请以事件块声明进入哪个剧情数组 + // 可以自由添加,但不能与已有插件及函数名相同,可以使用中文。 + this.chapter0 = [ + ["", "这些天,街道不曾下雨。"], + ["", "所以,那浸湿地面的,定是那些女孩们流落的鲜血无疑。"], + ["", "我蹲在充斥着铁锈味般恶臭的小巷中,悠闲地如是想着。"], + ["", "扑哧。"], + ["", "耳旁再次响起象征着某个女孩子死去的声音。"], + ["", "再一次——"], + ["", "再一次。"], + ["", "女子们被肢解成单纯的肉块。"], + ["", "我任由流下的血浸满全身,屏住自己的呼吸。"], + ["", "祈求自己能拥有从猎人手中逃脱的幸运。"], + ["", "扑哧。"], + ["", "直到刚才,我们还坐在去往娼馆的马车的路上。"], + ["", "而在这之中的某些人,已经不在这个世上了。"], + ["", "不,应该把“某些”换成“几乎所有”才更为恰当吧。"], + ["", "恐怕,不久之后我也会变成小巷中血腥的装饰品。"], + ["", "我是为了得到这种死法,才辛苦苟活至今的吗?"], + ["", "来个人告诉我啊——"], + ["", "谁都好。"], + ["", "来人啊!!"], + ["少女", "「呃······!?」"], + ["", "漆黑的物体充斥了我的整个视野"], + ["", "我很快意识到,那是只很大的脚。"], + ["", "必须要出声求救。"], + ["", "可是,耳中却只能听到自己的牙关不停交战的声音。"], + ["", "我是如此的无助。"], + ["", "逃跑也好,道歉也罢。"], + ["", "就连抬头看一眼将要杀掉我的人的面孔都做不到。"], + ["少女", "「······被杀」"], + ["", "会被杀。"], + ["", "会被杀!!"], + ["", "来自内心深处的冰冷预感,渐渐地在体内蔓延开来。"], + ["少女", "「不,不要······」"], + ["", "浮游都市,《诺瓦斯·艾蒂尔》。"], + ["", "《特别受灾地区》——"], + ["", "通称,《牢狱》"], + ["", "是被险峻的峭壁环绕,与世隔绝的,都市的最底部。"], + ["年轻人", "「放开我!」"], + ["年轻人", "「我只是在帮那个女人而已!」"], + ["年轻人", "「你们没听到吗!?」"], + ["年轻人", "「她是被受骗才会被卖到娼馆来的」"], + ["年轻人", "「用肮脏的手段把钱借给她父母的,就是你们这些家伙吧!?」"], + ["年轻人", "「给我说些什么啊」"], + ["凯伊姆", "「这些话等到了娼馆再说吧」"], + ["凯伊姆", "「我来抓你,只是受雇于人而已」"], + ["", "我走进娼馆《莉莉乌姆》的接待室。"], + ["", "正在桌旁整理账簿的奥兹停下手头的工作,抬起头向我看来。"], + ["奥兹", "「这不是凯伊姆先生吗,辛苦了」"], + ["奥兹", "「委托已经完成了吗?」"], + ["凯伊姆", "「啊啊,是这家伙没错吧」"], + ["", "奥兹用只要接触到就能杀人般的眼神在男人脸上搜过。"], + ["奥兹", "「没错,就是这个人」"], + ["凯伊姆", "「是么」"], + ["年轻人", "「你,你们要对我做什么」"], + ["奥兹", "「······」"], + ["", "奥兹用一个眼神,就让男人闭上了嘴。"], + ["", "然后,向我这边转过身来。"], + ["奥兹", "「抱歉啊,总是麻烦你去做这些无聊的事」"], + ["奥兹", "「都怪我们这边的年轻人太没用」"], + ["凯伊姆", "「客套话就免了」"], + ["奥兹", "「这还真是失礼了」"], + ["奥兹", "「喂,来个人」"], + ["光头男人", "「是」"], + ["奥兹", "「凯伊姆先生做完工作回来了」"], + ["光头男人", "「是,是,那个······」"], + ["奥兹", "「我是要你拿些酒来,这个蠢材!」"], + ["", "喀!"], + ["", "奥兹扔出的烟灰缸砸中了手下的额头。"], + ["", "鲜血四溅。"], + ["凯伊姆", "「不用这么麻烦」"], + ["凯伊姆", "「我接下来要去《菲诺列塔》」"], + ["奥兹", "「喔唷」"], + ["奥兹", "「既然如此,我就不留您在这里喝难饮的劣质酒了」"], + ["", "奥兹斜眼看着正捂住额头呻吟的手下,轻描淡写地说道。"], + ["凯伊姆", "「用这些钱去买药」"], + ["", "我将几枚铜钱仍在那个手下的身前。"], + ["奥兹", "「凯伊姆先生,不用对他们这么好」"], + ["凯伊姆", "「无妨」"], + ["凯伊姆", "「话说回来,那个要落跑的女人呢?」"], + ["奥兹", "「我把她交给那些年轻人了,现在应该正在体会人生的严苛吧」"], + ["奥兹", "「正好,趁此机会凯伊姆先生也来享受一番如何?」"], + ["年轻人", "「你,你们这些家伙,要对她做什么!?」"], + ["", "咣!"], + ["", "奥兹给了他一拳。"], + ["", "一击即倒。"], + ["", "喀,咚,咯!"], + ["", "奥兹毫不留情地向男人的脸上踩去。"], + ["年轻人", "「咕······呃咳······」"], + ["", "折断的牙齿伴着血泡被吐出。"], + ["", "这份白色在鲜红色的液体中格外显眼。"], + ["年轻人", "「你们以为做出这种事······卫兵会坐视不理吗······」"], + ["奥兹", "「啊啊,不会坐视不理的」"], + ["奥兹", "「应该会拿出你的钱包,和我们商量如何瓜分吧」"], + ["年轻人", "「那,那种事······」"], + ["", "这在牢狱是理所当然的事。"], + ["奥兹", "「怎么,头一回来牢狱么?」"], + ["", "男人点了点头。"], + ["奥兹", "「为了被骗的女人而来到牢狱,真是个规矩人啊」"], + ["奥兹", "「······前提是,被骗的人不是你」"], + ["年轻人", "「你说······我被骗了?」"], + ["年轻人", "「那,那是怎么回事!?」"], + ["奥兹", "「不用急,今天晚上会好好告诉你的」"], + ["", "奥兹抓起男人的脸。"], + ["", "为引诱客人的怜悯之心而装纯,是娼妇的惯用手段。"], + ["", "双亲被骗而借钱,结果作为抵押而将自己卖到这里,这是典型的说法。"], + [ + "", + "如果只是头脑发热而成为常客也就罢了,这次的男人热血过头,居然想出了要带女人私奔的计划。", + ], + [ + "", + "虽然女人半开玩笑地予以拒绝,但不知天高地厚的这家伙还是拉着她逃跑了。", + ], + ["", "不过,想要逃脱追击本来就是不可能的任务。"], + ["", "但即便如此,这种事情还是会一再的出现。"], + ["", "说谎的女人和被骗的男人。"], + ["", "在娼馆街,这是令人看到生厌的日常的风景。"], + ["凯伊姆", "「我要走了」"], + ["奥兹", "「好的,下次再麻烦您」"], + ["奥兹", "「之后吉克先生会将谢礼交给您的」"], + ["凯伊姆", "「啊啊」"], + ["", "我背向奥兹走出娼馆。"], + ["凯伊姆", "「······?」"], + ["", "从远方传来微弱的歌声。"], + ["", "是关卡广场的方向。"], + ["", "对了。"], + ["", "今天有觐见圣女的仪式。"], + ["", "当代的圣女伊莲——"], + ["", "俗称《盲眼之圣女》,据说即使在历代的圣女中,人气也是数一数二的。"], + ["", "广场上的人估计相当多吧。"], + ["", "虽然我也想去看看她长什么样,不过要在人潮中挤来挤去就免了。"], + ["", "还是老老实实去菲诺列塔喝烧酒吧。"], + ["", "正当我这样想着的时候,一个身影自小巷的那头走来。"], + ["凯伊姆", "「艾莉斯」"], + ]; + this.chapter01 = [ + ["艾莉斯", "「啊,凯伊姆」"], + ["艾莉斯", "「正好,我还想要去找你呢」"], + ["艾莉斯", "「没想到凯伊姆会主动出现······这是命运吗?」"], + ["凯伊姆", "「显然不是吧」"], + ["艾莉斯", "「啊,是么」"], + ["", "艾莉斯挑了挑整齐的双眉,微微地哼了一声。"], + [ + "", + "虽然是个相当引人注目的美人,但她这个将亲切儿子丢入无底深渊的性格,为自己扣了不少的分", + ], + ["", "给人印象最深的,就是那潭水般的双瞳。"], + ["", "在漆黑的瞳孔中,完全看不出感情的波动。"], + ["艾莉斯", "「喜欢我的眼睛吗?」"], + ["艾莉斯", "「如果想要的话就给你吧?」"], + ["凯伊姆", "「用不着」"], + ["艾莉斯", "「阿拉,可惜」"], + ["凯伊姆", "「那么,找我有什么事」"], + ["艾莉斯", "「梅尔特的钱好像被偷了」"], + ["凯伊姆", "「钱被偷了?都几岁了还这么没用」"], + ["艾莉斯", "「不要对我说啊」"], + ["凯伊姆", "「那家伙,该不会说要让我去抓那个小偷吧?」"], + ["艾莉斯", "「就是这样」"], + ["凯伊姆", "「笨蛋吗」"], + ["凯伊姆", "「如果是小钱的话,就当做是买个教训吧」"], + ["艾莉斯", "「说起来,被盗的是这个月的上纳金」"], + ["凯伊姆", "「你说什么?」"], + ["艾莉斯", "「用这些钱买教训,也太过奢侈了呢」"], + ["凯伊姆", "「知道了,我去找」"], + ["凯伊姆", "「小偷的特征呢」"], + ["艾莉斯", "「男孩子」"], + ["艾莉斯", "「······而且,背后有翅膀」"], + ["艾莉斯", "「虽然姑且是藏在身后,但是仔细观察的话是很明显的」"], + ["凯伊姆", "「羽化病吗」"], + [ + "艾莉斯", + "「那些人可是毫不留情的,所以即使是为了那个孩子,也要赶快抓到他」", + ], + ["凯伊姆", "「注意到他逃窜的方向了吗?」"], + ["艾莉斯", "「广场那边」"], + ["艾莉斯", "「虽然刚才《不蚀金锁》的人去追了,不过多半是······」"], + ["凯伊姆", "「偏偏还是广场吗」"], + ["艾莉斯", "「今天是觐见圣女大人的日子」"], + ["凯伊姆", "「我知道」"], + ["凯伊姆", "「尽量找找看就好」"], + ]; + this.chapter02 = [ + ["不蚀金锁成员", "「凯伊姆先生,凯伊姆先生」"], + ["不蚀金锁成员", "「您已经和艾莉斯大夫见过面了吗?」"], + ["凯伊姆", "「啊啊,所以才会追过来的」"], + ["凯伊姆", "「看到小偷了吗?」"], + [ + "不蚀金锁成员", + "「没有,他向广场那边逃了过去,今天这么拥挤,我们也只能放弃了」", + ], + [ + "不蚀金锁成员", + "「不过,我也只是刚好在店里所以才追了过去,并不是受人所托」", + ], + ["不蚀金锁成员", "「我已经准备撤退了」"], + ["不蚀金锁成员", "「凯伊姆先生还要继续追吗?」"], + ["凯伊姆", "「啊啊」"], + ["", "做完情报交换之后,我跟男人道别。"], + ["凯伊姆", "「和我想的一样啊······」"], + ["", "在牢狱中最大的广场上,聚集着看不到尽头的人群。"], + ["", "就算是来参见圣女祈祷,这人数也太多了点吧。"], + ["", "自然,我也找不到逃跑的孩子。"], + ["", "是混杂到人群中了吧。"], + ["", "如果已经从广场上脱身了的话,就更难发现了。"], + ["", "只好赌他还在这里了。"], + ["", "我先移动到了一个视野良好的地方。"], + ["", "从这里,一眼就可以看到人群的变化。"], + ["", "广场还是沸腾起来。"], + ["", "抬头望去,原来是在天台之上出现了一个人影"], + ["", "但是,与周围的期待不同,现身的是一名中年的神官。"], + ["", "骂声四溢。"], + ["", "神官则是笑着摆正衣领"], + ["神官", "「从现在开始,举行谒见的仪式」"], + [ + "神官", + "「在参见那位大人之前,我希望牢狱的诸位再次思考这个《诺瓦斯·艾蒂尔》存在的意义······」", + ], + [ + "神官", + "「初代圣女伊莲大人,便是也难怪这崇高的祈祷之力,令《诺瓦斯·艾蒂尔》浮在空中,拯救了我们的祖先」", + ], + [ + "神官", + "「这之后的几百年来,传承了初代大人力量的历代圣女伊莲大人,让这里留在了空中」", + ], + [ + "神官", + "「这座都市是被圣女大人守护的人类最后的圣域,而我们则是被选召的虔诚的信徒」", + ], + ["神官", "「怀着对圣女的感激祈祷吧,感谢圣女伊莲吧!并献上祈祷!」"], + ["圣女", "「不忘感谢与祈祷,神才会拯救我们」"], + ["圣女", "「与我一起,向神虔诚地祈祷吧」"], + ["", "广场上欢声雷动。"], + ["", "圣女没有回应喧嚣的人声,而是静静地合上双眼面向广场。"], + ["", "虽然感觉有些冷淡,但总比像个傻瓜似的笑着向这群人挥手要强。"], + ["", "她掌握着这条街道,还有在这条街上生活的人的命运。"], + ["", "比起揽得人气,她更想要为了街道的继续存在而献出全力。"], + ["", "也是为了不让《大崩落》的惨剧再度发生。"], + ["", "十几年前的那场悲剧。"], + [ + "", + "虽然在我脑海中的记忆已经相当模糊,但哪怕只是稍有触及,不快的感觉都会在胸口蔓延开。", + ], + ["凯伊姆", "「······」"], + ["", "这时我才想起,现在不是我在这里看圣女的时候。"], + ["女声", "「——っ!?」"], + ["围观的女人", "「羽,羽化病人!?」"], + ["围观的中年人", "「喂,谁去叫下羽狩」"], + ["惊慌的观众", "「你这家伙不要靠近我,要是传染了可怎么办」"], + ["粗鲁的观众", "「你这小鬼赶快滚开」"], + ["凯伊姆", "「接下来」"], + ["圣女", "「发生什么事了?看上去似乎很嘈杂」"], + ["随从", "「似乎是某个人逃跑了······具体的我也不是很清楚」"], + ["神官", "「圣女大人,继续待在天台上可能会出事,请您先回到室内吧」"], + ["圣女", "「不用在意我,比起那个,我更关心究竟发生了什么事」"], + ["神官", "「对不起,我真的不知道」"], + ["圣女", "「······是吗」"], + ["男", "「恕我僭越,请准许我说明情况」"], + ["男", "「在来觐见的人群中出现了《羽化病》的患者」"], + ["男", "「围观的人群因而产生了骚动」"], + [ + "男", + "「现在,《防疫局》已经派遣了部队。我想不久之后,他们就会安静下来了」", + ], + ["圣女", "「羽化病······」"], + ["男", "「怎么了?」"], + ["圣女", "「没什么」"], + ["圣女", "「辛苦了,你的名字是?」"], + ["男", "「属下是在防疫局任职的,鲁基乌斯· 迪斯·米利尤」"], + ["神官", "「噢噢,阁下就是鲁基乌斯卿吗,我听说过你的传闻」"], + ["神官", "「阁下是在工作上相当出色的人呢」"], + ["鲁基乌斯", "「不敢当」"], + [ + "鲁基乌斯", + "「话说回来,这次是属下警备工作的失职。让圣女大人见到这不成体统的一面,请您见谅」", + ], + [ + "圣女", + "「即使是目不见物的我,也能感受到聚集于此的民众数量之多。警备工作难以展开也在情理之中」", + ], + ["鲁基乌斯", "「属下不胜惶恐」"], + ["鲁基乌斯", "「接下来属下还要回到工作岗位上,在这里就先告退了」"], + ["圣女", "「鲁基乌斯先生」"], + ["鲁基乌斯", "「属下在」"], + ["圣女", "「你是怎样看待羽狩的工作的呢?」"], + ["神官", "「圣,圣女大人」"], + [ + "鲁基乌斯", + "「防疫局的工作是国王陛下赐予的重要职务。属下非常荣幸能够为这个都市的繁荣尽一份微薄之力」", + ], + ["神官", "「不,不亏是鲁基乌斯卿,相当优秀的想法」"], + ["圣女", "「是吗。辛苦你了」"], + ["随从", "「圣女大人······」"], + ["鲁基乌斯", "「······」"], + ["鲁基乌斯", "「那么,属下就回岗位去了」"], + ]; + this.chapter03 = [ + ["", "从羽化病的少年纷乱的足音中,可以听得出相当的疲劳。"], + ["", "显然,他并没有想到我会捷足先登吧。"], + ["", "少年惶恐地回头看了一眼后,微微露出安心的表情,双手拄在膝盖上。。"], + ["凯伊姆", "「辛苦你了」"], + ["羽化病患少年", "「稀!?」"], + ["凯伊姆", "「逃到贫民区是个不错的想法」"], + ["羽化病患少年", "「你,你是,羽狩吗?」"], + ["凯伊姆", "「不是」"], + ["羽化病患少年", "「什,什么啊······混蛋,不要吓我啊」"], + ["凯伊姆", "「我对令你受惊这件事致以歉意」"], + ["凯伊姆", "「作为回报,麻烦你把从店里偷的钱交出来吧」"], + ["羽化病患少年", "「钱?你在说什么」"], + ["凯伊姆", "「你要找的腰上的东西,掉在你身后了」"], + ["羽化病患少年", "「哎?」"], + ["羽化病患少年", "「呃呀」"], + ["羽化病患少年", "「你······你这混蛋」"], + ["凯伊姆", "「······」"], + ["凯伊姆", "「把偷的钱交出来」"], + ["羽化病患少年", "「我不知道你在······咕」"], + ["羽化病患少年", "「你,你说是我偷的······有什么证据吗」"], + ["凯伊姆", "「你还挺倔的啊」"], + ["凯伊姆", "「不过,给我听好了」"], + ["凯伊姆", "「你偷的那些钱,是要上缴给《不蚀金锁》的上纳金」"], + ["凯伊姆", "「而且,钱的主人是从前和吉克颇有渊源的女人」"], + ["羽化病患少年", "「吉克?」"], + ["凯伊姆", "「他是《不蚀金锁》的主人,这么说你就明白了吧」"], + ["羽化病患少年", "「哎?哎?怎么会······」"], + ["凯伊姆", "「再问你一遍,钱在哪里?」"], + ["羽化病患少年", "「是,是,是,在我的怀里」"], + ["凯伊姆", "「你没有擅自拿掉一部分吧」"], + ["羽化病患少年", "「是,是的」"], + ["羽化病患少年", "「那,那个,您是《不蚀金锁》的人吗?」"], + ["凯伊姆", "「算是吧」"], + ["羽化病患少年", "「我什么都可以做,请您一定要帮帮我」"], + ["凯伊姆", "「抱歉,我并没有兴趣去帮助他人」"], + ["羽化病患少年", "「我什么······什么,都会做的······」"], + ["羽化病患少年", "「我一直都是生活在下层的」"], + [ + "羽化病患少年", + "「可是,不知何时染上了羽化病······背后长出了翅膀······」", + ], + ["羽化病患少年", "「被寄宿工作的店赶了出来,只得流落到牢狱这里」"], + ["羽化病患少年", "「因为独自实在是饿的不行了,所以才会偷这些钱的」"], + [ + "羽化病患少年", + "「我明明没有做任何坏事······为什么······会遇到这种事······」", + ], + ["凯伊姆", "「谁知道」"], + ["羽化病患少年", "「呜······呜呜······接下来,要对我做什么?」"], + ["凯伊姆", "「我要把你带到组织那里」"], + ["羽化病患少年", "「怎,怎么这样」"], + ["凯伊姆", "「不过,那样做的前提是你不是羽化病人」"], + ["凯伊姆", "「组织也没有笨到把羽化病人招待到家里的程度」"], + ["羽化病患少年", "「那么,是要放我逃走吗?」"], + ["凯伊姆", "「我要让你学到教训」"], + ["凯伊姆", "「如果换做是组织的制裁,至少要有断条胳膊的觉悟」"], + ["凯伊姆", "「你的运气不错」"], + ["羽化病患少年", "「唔······啊,是的······」"], + ["凯伊姆", "「滚」"], + ["羽化病患少年", "「非常感谢」"], + ["羽化病患少年", "「唔啊!?」"], + ["男", "「到这里就结束了,羽化病人」"], + ["男", "「确认他的翅膀」"], + ["", "趁还没有被卷入麻烦的事情之前,赶快离开这里吧"], + ["羽狩的队长", "「那边的那个人」"], + ["凯伊姆", "「······有什么事?」"], + ["羽狩的队长", "「可以稍微让我问几句话吗」"], + ["凯伊姆", "「······」"], + ["凯伊姆", "「啊啊,无妨」"], + ["羽狩的队长", "「感谢您的合作」"], + ["", "队长殷勤地致以谢礼。"], + ["", "而在他的眼前,少年的衣服已经被他的补下们扯破。"], + ["", "在瘦骨嶙峋的裸露后背上,长有纯白的羽翼。"], + ["红发的羽狩", "「副队长,确认翅膀的持有了」"], + ["羽狩的副队长", "「保护他」"], + ["羽化病患少年", "「不要······请原谅,我······」"], + [ + "羽狩的副队长", + "「我们只是要带你去治愈院治疗羽化病,不是什么应该感到害怕的事情」", + ], + ["羽化病患少年", "「可是,可是」"], + ["羽狩的副队长", "「没关系的」"], + ["羽化病患少年", "「······哥,哥哥」"], + ["羽狩的副队长", "「你是羽化病人的亲属吗?」"], + ["凯伊姆", "「只是路人而已」"], + ["凯伊姆", "「顺带一提,我也没有打算找你们的麻烦」"], + [ + "羽狩的副队长", + "「前几天,有个和你说了同样的话的人,在我们背向他的瞬间对我们发动了袭击」", + ], + ["羽狩的副队长", "「我的一个部下就此永久失去了半截胳膊」"], + ["凯伊姆", "「我表示同情」"], + ["凯伊姆", "「我马上就会消失的,这样就没问题了吧?」"], + ["羽狩的副队长", "「嘛,不要这么慌张」"], + ["", "副队长看着羽化的少年。"], + ["羽狩的副队长", "「你与这个人是什么关系?没有被他殴打吗?」"], + ["羽化病患少年", "「没,没有」"], + [ + "羽狩的副队长", + "「如何对我们保持合作,你就可以在治愈院得到优先的治疗」", + ], + ["羽化病患少年", "「······」"], + ["羽化病患少年", "「那个人,是《不蚀金锁》的组织成员······」"], + ["羽化病患少年", "「突然说让我拿出钱来,我刚一拒绝他就打我」"], + ["羽狩的副队长", "「原来如此······」"], + [ + "羽狩的副队长", + "「那位少年说你是《不蚀金锁》的一员,不知此事是否属实?」", + ], + ["凯伊姆", "「当然不是」"], + ["凯伊姆", "「我只是从那里接受工作而已,并不是他们的成员」"], + ["羽狩的副队长", "「你的意思是说,少年在说谎吗?」"], + ["凯伊姆", "「啊啊」"], + [ + "凯伊姆", + "「如果你们和组织有关系的话,只要问问我是不是那里的成员就能明白事实了吧」", + ], + ["羽狩的副队长", "「就算我去询问,也无法从他们那里得到事实」"], + [ + "羽狩的副队长", + "「《不蚀金锁》的那些人一向都不对我们合作,我对此深感困扰」", + ], + ["凯伊姆", "「真是辛苦啊」"], + ["羽狩的副队长", "「说的是啊」"], + ["羽狩的副队长", "「其实,砍下我部下胳膊的似乎也是组织的成员呢」"], + [ + "羽狩的副队长", + "「无需如此警戒,我只是想在看守所向你咨询一些事情而已」", + ], + [ + "羽狩的副队长", + "「如果能够知晓牢狱与组织的事情,我们也可以尽可能地对更多的羽化病人进行保护」", + ], + ["羽狩的副队长", "「那和整条街道的和平也是紧密相关的吧?」"], + ["凯伊姆", "「我知道,你们有逮捕干扰狩猎羽化病人的权力」"], + [ + "凯伊姆", + "「但是,我没有对你们做出任何干扰,为什么要对我如此纠缠不休呢」", + ], + ["羽狩的副队长", "「那些话,我们会在看守所对你详细说明的」"], + ["凯伊姆", "「······」"], + ["", "在这里起争执的话,就会被羽狩加害。"], + ["", "就算能从这里脱身,今后只要碰面就会产生纠纷也是摆明的事情。"], + ["", "就算逃跑,也没有好的结果。"], + ["", "正当我想要打圆场的时候,刚才的气氛一瞬间产生了转变。"], + ["", "发生了什么事······"], + ["???", "「我认为,那位先生是正确的」"], + ["", "羽狩们一起回头。"], + ["", "而在他们视线的焦点处,"], + ["", "伫立着一位女性。"], + ["", "在端正的容颜下,代表着强烈意志的双眉十分显眼。"], + ["", "身体的柔软与紧紧包裹在其身上的羽狩制服,两者显得十分的不搭配。"], + ["", "我还是第一次看到女性的羽狩。"], + ["羽狩的副队长", "「队长,这是获得《不蚀金锁》情报的好机会」"], + [ + "羽狩的队长", + "「兰格副队长,就算是为了获得情报,也不能做出恫吓的发言啊」", + ], + ["兰格副队长", "「我并没有打算去恫吓他······」"], + ["羽狩的队长", "「告诉我那个被砍掉胳膊的队员的名字」"], + ["羽狩的队长", "「我会去探望他的」"], + ["兰格副队长", "「那个是······」"], + ["羽狩的队长", "「我知道,你一直在为有所收获而努力工作」"], + ["羽狩的队长", "「但是,正因为我们的工作是为民众提供帮助」"], + ["羽狩的队长", "「所以就更不能损害人与人之间的信赖」"], + ["兰格副队长", "「我会铭记在心」"], + ["羽狩的队长", "「这位先生,我的部下失礼了」"], + ["凯伊姆", "「只要不对我再来一次就好」"], + ["羽狩的队长", "「请稍等」"], + ["凯伊姆", "「有什么事?」"], + ["羽狩的队长", "「我想确认一件事」"], + ["羽狩的队长", "「你真的不是《不蚀金锁》的成员吗?」"], + ["凯伊姆", "「真的」"], + ["凯伊姆", "「如果我说是的话,你有什么打算?」"], + ["羽狩的队长", "「我听过传闻,说他们是用依靠暴力而得的钱在生活」"], + ["凯伊姆", "「······这样啊」"], + ["凯伊姆", "「如果能有收获就好了啊」"], + ]; + this.chapter04 = [ + ["梅尔特", "「欢迎光临」"], + ["梅尔特", "「辛苦了」"], + ["梅尔特", "「抱歉,又拜托给你了个这么麻烦的工作」"], + ["凯伊姆", "「没什么,比想象中完成的更容易」"], + ["梅尔特", "「那就好」"], + ["梅尔特", "「这是我的一点谢意」"], + ["凯伊姆", "「味道有些变化啊」"], + ["梅尔特", "「啊,被发现了?」"], + ["梅尔特", "「最近,没能到手什么好的原料呢」"], + ["凯伊姆", "「去拜托吉克如何?」"], + [ + "梅尔特", + "「话是这么说,但是总不能用店里采购的这种小事去麻烦他吧······」", + ], + ["凯伊姆", "「那希望你也不要来麻烦我」"], + ["梅尔特", "「那 是 两 码 事」"], + ["梅尔特", "「再说,凯伊姆是靠着工作来生活的吧」"], + [ + "梅尔特", + "「而且,自己的钱被偷了这么害羞的事,向凯伊姆意外的其他人都说不出口」", + ], + ["凯伊姆", "「反正,也已经传到吉克的耳朵里了」"], + ["梅尔特", "「这是面子问题啊,面子问题」"], + ["凯伊姆", "「嘛,算了」"], + ["凯伊姆", "「这样就好了吧?」"], + ["梅尔特", "「这是钱包呢」"], + ["梅尔特", "「嗯,东西没少」"], + ["梅尔特", "「太好啦—这个月的上纳金,我可全部都放在里面了呢」"], + ["梅尔特", "「如果没有找到的话,说不定就又会被送到娼馆里了呢」"], + ["凯伊姆", "「在那边不是来钱更快吗?」"], + ["梅尔特", "「阿拉,你是在说我还能有魅力吗?」"], + ["凯伊姆", "「这是客套话而已」"], + ["梅尔特", "「欺负人」"], + ["梅尔特", "「总而言之,今天帮大忙了」"], + ["梅尔特", "「谢礼嘛······」"], + ["凯伊姆", "「就记在账单上吧」"], + ["梅尔特", "「了解—盛谢惠顾了哦?」"], + ["", "喀啷喀啷"], + ["", "门铃响起"], + ["", "喧哗瞬间安静下来。"], + ["", "进来的人是吉克。"], + ["", "是掌控着牢狱的组织之一,《不蚀金锁》的头目。"], + ["", "不仅组织的成员,就连店内一般的客人也对他以注目礼表示敬意。"], + ["吉克", "「各位继续吧」"], + ["", "仿佛停滞的时钟重新转动了一般,店内恢复了热闹的气氛。"], + ["吉克", "「抱歉,今天拜托你去做了无聊的工作」。"], + ["凯伊姆", "「不用介意」"], + ["", "吉克轻轻点了点头,在我右边坐了下来"], + ["凯伊姆", "「逃跑的男人怎么样了?」"], + ["吉克", "「嗯?已经不在这个世上了」。"], + ["吉克", "「有什么想要知道的事吗?」"], + ["凯伊姆", "「不,没什么」"], + ["吉克", "「那个无聊的家伙,完全没有趣味呢」"], + ["吉克", "「真希望他也替我负责清扫的部下也考虑考虑」"], + ["凯伊姆", "「真是灾难啊」"], + ["吉克", "「比起那个,我听说了哦。你去追羽化病人了啊」"], + ["凯伊姆", "「消息真灵通」"], + ["吉克", "「梅尔特也注意点」"], + ["吉克", "「你丢钱已经不是一回两回了」"], + ["梅尔特", "「好的—我会注意的。」"], + ["梅尔特", "「吉克还是平常的点单吧」"], + ["梅尔特", "「凯伊姆要再来一杯吗?」"], + ["", "我们用眼神点头示意后,梅尔特开始准备起酒来。"], + ["", "悠然地吐出眼圈后,吉克取出一个纸包放在柜台上。"], + ["吉克", "「这是抓捕逃跑男人的报酬」"], + ["凯伊姆", "「下次有什么事再告诉我」"], + ["梅尔特", "「来,久等了」"], + ["凯伊姆", "「话说回来梅尔特,为什么会被那种孩子偷到钱?」"], + ["吉克", "「让我猜猜看」"], + ["吉克", "「是那个吧,看某个特立独行的男人入迷了,所以就有了空隙?」"], + ["梅尔特", "「可惜—」"], + ["梅尔特", "「事实恰恰相反,是那家伙一直在纠缠我」"], + ["凯伊姆", "「完全把你当成新进的女佣了么」"], + ["梅尔特", "「我从前可是很有名的,不会被当成这种下人吧」"], + ["梅尔特", "「······而且,我没法对对我这么钟情的人发火啊」"], + ["凯伊姆&吉克", "「你傻啊」"], + ["梅尔特", "「异口同声呢,不亏是兄弟」"], + ["凯伊姆", "「别用这种称呼,怪恶心的」"], + ["吉克", "「说得没错」"], + ["吉克", "「······说起来······」"], + ["梅尔特", "「怎么了?」"], + ["吉克", "「有件事我一直很在意,我和凯伊姆,哪个是哥哥啊?」"], + ["凯伊姆", "「你也说这么无聊的话题」"], + ["吉克", "「不,这是很重要的事情」"], + ["吉克", "「梅尔特,事实是怎么样的?」"], + ["梅尔特", "「啊~是怎么样的呢~」"], + ["梅尔特", "「我忘记了」"], + ["吉克", "「骗人」"], + ]; +} } \ No newline at end of file