main.floors.MT1=
{
    "floorId": "MT1",
    "title": "魔塔 第01层",
    "name": "第 1 层",
    "width": 13,
    "height": 13,
    "map": [
    [  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1],
    [  1, 87,  0,201,202,201,  0,  0,  0,  0,  0,  0,  1],
    [  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1],
    [  1, 31,  0,  0, 81,  0,  1, 27, 21,  0,  1,  0,  1],
    [  1,  0,209,  0,  1,  0,  1, 28, 31,  0,  1,  0,  1],
    [  1,  1, 81,  1,  1,  0,  1,  1,  1, 81,  1,  0,  1],
    [  1, 21,  0,  0,  1,  0, 81,205,217,205,  1,  0,  1],
    [  1,  0,210,  0,  1,  0,  1,  1,  1,  1,  1,  0,  1],
    [  1,  1, 81,  1,  1,  0,  0,  0,  0,  0,  0,  0,  1],
    [  1,  0,  0,  0,  1,  1, 86,  1,  1,  1, 81,  1,  1],
    [  1, 31,  0, 21,  1, 25,  0,127,  1,  0,205,  0,  1],
    [  1, 31,  0, 21,  1, 46,  0, 45,  1,201, 32,201,  1],
    [  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1]
],
    "canFlyTo": true,
    "canFlyFrom": true,
    "canUseQuickShop": true,
    "images": [],
    "ratio": 1,
    "defaultGround": "ground",
    "bgm": "section1.mp3",
    "firstArrive": [
        {
            "type": "tip",
            "text": "游戏已重启"
        },
        {
            "type": "loadBgm",
            "name": "Ending.mp3"
        },
        {
            "type": "loadBgm",
            "name": "SkeletonA.mp3"
        },
        {
            "type": "loadBgm",
            "name": "Vampire.mp3"
        },
        {
            "type": "loadBgm",
            "name": "GreatMagicMaster.mp3"
        },
        {
            "type": "loadBgm",
            "name": "Knight.mp3"
        },
        {
            "type": "loadBgm",
            "name": "Zeno.mp3"
        },
        {
            "type": "choices",
            "text": "\t[作者,king]选择模式",
            "choices": [
                {
                    "text": "剑与战利品互换",
                    "action": [
                        {
                            "type": "choices",
                            "text": "\t[作者,king]选择难度",
                            "choices": [
                                {
                                    "text": "原版",
                                    "action": [
                                        {
                                            "type": "setValue",
                                            "name": "flag:难度",
                                            "value": "0"
                                        }
                                    ]
                                },
                                {
                                    "text": "剑盾互换",
                                    "action": [
                                        {
                                            "type": "function",
                                            "function": "function(){\n/**\n * @name swapSwordAndShield\n * @description 搜索当前地图所有ID以 \"sword\" 和 \"shield\" 开头的物品图块，并互相交换其前缀。\n * 同时，将 T332 图块（非物品）与 shield5 进行互换。\n * 例如, \"sword1\" 会变成 \"shield1\", \"shield_wood\" 会变成 \"sword_wood\"。\n * 你可以在事件编辑器中使用\"执行脚本\"指令来调用这个函数： swapSwordAndShield();\n */\nfunction swapSwordAndShield() {\n\tfor (let floorId of core.floorIds) {\n\t\t// 检查是否成功获取到floorId\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\t// 1. 搜索所有以 \"sword\" 开头的物品图块\n\t\tconst swords = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('sword');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\t// 2. 搜索所有以 \"shield\" 开头的物品图块\n\t\tconst shields = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('shield');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\n\t\t// 6. 然后进行常规的剑盾前缀交换\n\t\tswords.forEach(blockInfo => {\n\t\t\tconst oldId = blockInfo.block.event.id;\n\t\t\tconst newId = oldId.replace(/^sword/, 'shield');\n\t\t\tconsole.log(`正在将 (${blockInfo.x}, ${blockInfo.y}) 的 ${oldId} 替换为 ${newId}`);\n\t\t\tcore.setBlock(newId, blockInfo.x, blockInfo.y, floorId);\n\t\t});\n\n\t\tshields.forEach(blockInfo => {\n\t\t\tconst oldId = blockInfo.block.event.id;\n\t\t\tconst newId = oldId.replace(/^shield/, 'sword');\n\t\t\tconsole.log(`正在将 (${blockInfo.x}, ${blockInfo.y}) 的 ${oldId} 替换为 ${newId}`);\n\t\t\tcore.setBlock(newId, blockInfo.x, blockInfo.y, floorId);\n\t\t});\n\t}\n\n}\n\n// 调用函数\nswapSwordAndShield();\n}"
                                        },
                                        {
                                            "type": "setValue",
                                            "name": "flag:难度",
                                            "value": "1"
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapSwordToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst swords = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('sword');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tswords.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'sword5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapSwordToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "1"
                        }
                    ]
                },
                {
                    "text": "盾与战利品互换",
                    "action": [
                        {
                            "type": "choices",
                            "text": "\t[作者,king]选择难度",
                            "choices": [
                                {
                                    "text": "原版",
                                    "action": [
                                        {
                                            "type": "setValue",
                                            "name": "flag:难度",
                                            "value": "0"
                                        }
                                    ]
                                },
                                {
                                    "text": "剑盾互换",
                                    "action": [
                                        {
                                            "type": "function",
                                            "function": "function(){\n/**\n * @name swapSwordAndShield\n * @description 搜索当前地图所有ID以 \"sword\" 和 \"shield\" 开头的物品图块，并互相交换其前缀。\n * 同时，将 T332 图块（非物品）与 shield5 进行互换。\n * 例如, \"sword1\" 会变成 \"shield1\", \"shield_wood\" 会变成 \"sword_wood\"。\n * 你可以在事件编辑器中使用\"执行脚本\"指令来调用这个函数： swapSwordAndShield();\n */\nfunction swapSwordAndShield() {\n\tfor (let floorId of core.floorIds) {\n\t\t// 检查是否成功获取到floorId\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\t// 1. 搜索所有以 \"sword\" 开头的物品图块\n\t\tconst swords = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('sword');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\t// 2. 搜索所有以 \"shield\" 开头的物品图块\n\t\tconst shields = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('shield');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\n\t\t// 6. 然后进行常规的剑盾前缀交换\n\t\tswords.forEach(blockInfo => {\n\t\t\tconst oldId = blockInfo.block.event.id;\n\t\t\tconst newId = oldId.replace(/^sword/, 'shield');\n\t\t\tconsole.log(`正在将 (${blockInfo.x}, ${blockInfo.y}) 的 ${oldId} 替换为 ${newId}`);\n\t\t\tcore.setBlock(newId, blockInfo.x, blockInfo.y, floorId);\n\t\t});\n\n\t\tshields.forEach(blockInfo => {\n\t\t\tconst oldId = blockInfo.block.event.id;\n\t\t\tconst newId = oldId.replace(/^shield/, 'sword');\n\t\t\tconsole.log(`正在将 (${blockInfo.x}, ${blockInfo.y}) 的 ${oldId} 替换为 ${newId}`);\n\t\t\tcore.setBlock(newId, blockInfo.x, blockInfo.y, floorId);\n\t\t});\n\t}\n\n}\n\n// 调用函数\nswapSwordAndShield();\n}"
                                        },
                                        {
                                            "type": "setValue",
                                            "name": "flag:难度",
                                            "value": "1"
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapShieldToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst shields = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('shield');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tshields.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'shield5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapShieldToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "2"
                        }
                    ]
                },
                {
                    "text": "剑盾与战利品互换",
                    "action": [
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapSwordAndShieldToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst swordAndShield = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' &&\n\t\t\t\t\t(block.event.id.startsWith('sword') || block.event.id.startsWith('shield'));\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tswordAndShield.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'sword5' || itemId === 'shield5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapSwordAndShieldToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "3"
                        }
                    ]
                },
                {
                    "text": "剑换战利品（颠倒）",
                    "action": [
                        "\t[hero]这能有解？颠倒什么意思？",
                        "\t[作者,king]额，就是1区剑变成5区战利品，2区变成4区战利品……",
                        "\t[hero]听起来很水啊……",
                        "\t[作者,king]主要是删了这个模式又感觉可惜嘛……",
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapSwordToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst swords = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('sword');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tswords.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'sword5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapSwordToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "4"
                        }
                    ]
                },
                {
                    "text": "盾换战利品",
                    "action": [
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapShieldToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst shields = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' && block.event.id.startsWith('shield');\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tshields.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'shield5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapShieldToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "5"
                        }
                    ]
                },
                {
                    "text": "剑盾换战利品",
                    "action": [
                        "\t[作者,king]这个模式下，大法师的掉落战利品改为五区战利品",
                        {
                            "type": "function",
                            "function": "function(){\nfunction swapSwordAndShieldToMoneyPocket() {\n\tfor (let floorId of core.floorIds) {\n\t\tif (!floorId) {\n\t\t\tconsole.error(\"无法确定当前楼层ID。\");\n\t\t\tcore.drawTip('无法确定当前楼层ID', 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst swordAndShield = core.searchBlockWithFilter(\n\t\t\t(block) => {\n\t\t\t\treturn block.event.cls === 'items' &&\n\t\t\t\t\t(block.event.id.startsWith('sword') || block.event.id.startsWith('shield'));\n\t\t\t},\n\t\t\tfloorId\n\t\t);\n\n\t\tswordAndShield.forEach(blockInfo => {\n\t\t\tconst itemId = blockInfo.block.event.id;\n\t\t\tif (itemId === 'sword5' || itemId === 'shield5') {\n\t\t\t\tcore.setBlock('I333', blockInfo.x, blockInfo.y, floorId);\n\t\t\t} else {\n\t\t\t\tcore.setBlock('moneyPocket', blockInfo.x, blockInfo.y, floorId);\n\t\t\t}\n\t\t});\n\t}\n}\n\n// 调用函数\nswapSwordAndShieldToMoneyPocket();\n}"
                        },
                        {
                            "type": "setValue",
                            "name": "flag:模式",
                            "value": "6"
                        }
                    ]
                }
            ]
        }
    ],
    "eachArrive": [],
    "parallelDo": "",
    "events": {
        "7,10": [
            "\t[hero]战利品，那是什么？",
            "\t[作者,king]就是击败每区首领后的掉落物了！",
            "\t[hero]那我明白了！"
        ]
    },
    "changeFloor": {
        "1,1": {
            "floorId": ":next",
            "stair": "downFloor",
            "time": 0
        }
    },
    "afterBattle": {},
    "afterGetItem": {},
    "afterOpenDoor": {
        "6,9": [
            "此版本与50层原版相比，有如下改动：\n添加48层圣剑守卫\n47层的三个高级巫师全部带有阻击特性\n42层骑士队长事件需要击败40层骑士队长才能出现\n41层高级巫师直接显露\n40层战斗结束会打开门口的门\n36层添加暗道\n32层骑士队长战斗，若不破防也不会死亡",
            "开局提供楼层与怪物手册\n打怪不会重叠\n删除了所有不能破坏的墙\n开启了楼梯穿越\n自动寻路时，若路径上有红黄蓝门跟怪物，则仍然可以自动寻路。注意所有的红黄蓝门、怪物权重相同"
        ]
    },
    "cannotMove": {},
    "bgmap": [
    [ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17],
    [ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17]
],
    "fgmap": [

],
    "upFloor": [
        2,
        1
    ],
    "downFloor": [
        2,
        1
    ],
    "autoEvent": {},
    "beforeBattle": {},
    "cannotMoveIn": {}
}