var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = 
{
	"yellowKey": {
		"cls": "tools",
		"name": "黄钥匙",
		"text": "可以打开一扇黄门",
		"hideInToolbox": true
	},
	"blueKey": {
		"cls": "tools",
		"name": "蓝钥匙",
		"text": "可以打开一扇蓝门",
		"hideInToolbox": true
	},
	"redKey": {
		"cls": "tools",
		"name": "红钥匙",
		"text": "可以打开一扇红门",
		"hideInToolbox": true
	},
	"redGem": {
		"cls": "items",
		"name": "红宝石",
		"text": "，攻击+${core.values.redGem}",
		"itemEffect": "let atk = Math.round(core.values.redGem * core.status.thisMap.ratio * (100 + core.getFlag('redGemRatio')) / 100);\ncore.status.hero.atk += atk",
		"itemEffectTip": "，攻击+${Math.round(core.values.redGem * core.status.thisMap.ratio * (100 + core.getFlag('redGemRatio')) / 100)}",
		"useItemEffect": "core.status.hero.atk += core.values.redGem",
		"canUseItemEffect": "true"
	},
	"blueGem": {
		"cls": "items",
		"name": "蓝宝石",
		"text": "，防御+${core.values.blueGem}",
		"itemEffect": "let def = Math.round(core.values.blueGem * core.status.thisMap.ratio * (100 + core.getFlag('blueGemRatio')) / 100)\ncore.status.hero.def += def",
		"itemEffectTip": "，防御+${Math.round(core.values.blueGem * core.status.thisMap.ratio * (100 + core.getFlag('blueGemRatio')) / 100)}",
		"useItemEffect": "core.status.hero.def += core.values.blueGem",
		"canUseItemEffect": "true"
	},
	"greenGem": {
		"cls": "items",
		"name": "绿宝石",
		"text": "，护盾+${core.values.greenGem}",
		"itemEffect": "core.status.hero.mdef += core.values.greenGem * core.status.thisMap.ratio",
		"itemEffectTip": "，护盾+${core.values.greenGem * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.mdef += core.values.greenGem",
		"canUseItemEffect": "true"
	},
	"yellowGem": {
		"cls": "items",
		"name": "黄宝石",
		"text": "可以进行加点",
		"itemEffect": "let hp = Math.round(core.values.redPotion / 2 * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100);\nlet atk = Math.round(core.values.redGem / 2 * core.status.thisMap.ratio * (100 + core.getFlag('redGemRatio')) / 100);\nlet def = Math.round(core.values.blueGem / 2 * core.status.thisMap.ratio * (100 + core.getFlag('blueGemRatio')) / 100);\n\ncore.status.hero.hp += hp;\ncore.status.hero.atk += atk;\ncore.status.hero.def += def;",
		"itemEffectTip": "，全属性提升",
		"useItemEvent": null,
		"canUseItemEffect": "true"
	},
	"redPotion": {
		"cls": "items",
		"name": "红血瓶",
		"text": "，生命+${core.values.redPotion}",
		"itemEffect": "let hp = Math.round(core.values.redPotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100);\ncore.status.hero.hp += hp;",
		"itemEffectTip": "，生命+${Math.round(core.values.redPotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100)}",
		"useItemEffect": "core.status.hero.hp += core.values.redPotion",
		"canUseItemEffect": "true"
	},
	"bluePotion": {
		"cls": "items",
		"name": "蓝血瓶",
		"text": "，生命+${core.values.bluePotion}",
		"itemEffect": "let hp = Math.round(core.values.bluePotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100);\ncore.status.hero.hp += hp",
		"itemEffectTip": "，生命+${Math.round(core.values.bluePotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100)}",
		"useItemEffect": "core.status.hero.hp += core.values.bluePotion",
		"canUseItemEffect": "true"
	},
	"yellowPotion": {
		"cls": "items",
		"name": "黄血瓶",
		"text": "，生命+${core.values.yellowPotion}",
		"itemEffect": "let hp = Math.round(core.values.yellowPotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100);\ncore.status.hero.hp += hp",
		"itemEffectTip": "，生命+${Math.round(core.values.yellowPotion * core.status.thisMap.ratio * (100 + core.getFlag('potionRatio')) / 100)}",
		"useItemEffect": "core.status.hero.hp += core.values.yellowPotion",
		"canUseItemEffect": "true"
	},
	"greenPotion": {
		"cls": "items",
		"name": "绿血瓶",
		"text": "，生命+${core.values.greenPotion}",
		"itemEffect": "core.status.hero.hp += core.values.greenPotion * core.status.thisMap.ratio",
		"itemEffectTip": "，生命+${core.values.greenPotion * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.hp += core.values.greenPotion",
		"canUseItemEffect": "true"
	},
	"sword0": {
		"cls": "items",
		"name": "破旧的剑",
		"text": "一把已经生锈的剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 0
			}
		},
		"itemEffect": "core.status.hero.atk += 0",
		"itemEffectTip": "，攻击+0"
	},
	"sword1": {
		"cls": "items",
		"name": "铁剑",
		"text": "一把很普通的铁剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 10
			}
		},
		"itemEffect": "core.status.hero.atk += 10",
		"itemEffectTip": "，攻击+10"
	},
	"sword2": {
		"cls": "items",
		"name": "银剑",
		"text": "一把很普通的银剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 20
			}
		},
		"itemEffect": "core.status.hero.atk += 20",
		"itemEffectTip": "，攻击+20"
	},
	"sword3": {
		"cls": "items",
		"name": "骑士剑",
		"text": "一把很普通的骑士剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 40
			}
		},
		"itemEffect": "core.status.hero.atk += 40",
		"itemEffectTip": "，攻击+40"
	},
	"sword4": {
		"cls": "items",
		"name": "圣剑",
		"text": "一把很普通的圣剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 80
			}
		},
		"itemEffect": "core.status.hero.atk += 80",
		"itemEffectTip": "，攻击+80"
	},
	"sword5": {
		"cls": "items",
		"name": "神圣剑",
		"text": "一把很普通的神圣剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 160
			}
		},
		"itemEffect": "core.status.hero.atk += 100",
		"itemEffectTip": "，攻击+100"
	},
	"shield0": {
		"cls": "items",
		"name": "破旧的盾",
		"text": "一个很破旧的铁盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 0
			}
		},
		"itemEffect": "core.status.hero.def += 0",
		"itemEffectTip": "，防御+0"
	},
	"shield1": {
		"cls": "items",
		"name": "铁盾",
		"text": "一个很普通的铁盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 10
			}
		},
		"itemEffect": "core.status.hero.def += 10",
		"itemEffectTip": "，防御+10"
	},
	"shield2": {
		"cls": "items",
		"name": "银盾",
		"text": "一个很普通的银盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 20
			}
		},
		"itemEffect": "core.status.hero.def += 20",
		"itemEffectTip": "，防御+20"
	},
	"shield3": {
		"cls": "items",
		"name": "骑士盾",
		"text": "一个很普通的骑士盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 40
			}
		},
		"itemEffect": "core.status.hero.def += 40",
		"itemEffectTip": "，防御+40"
	},
	"shield4": {
		"cls": "items",
		"name": "圣盾",
		"text": "一个很普通的圣盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 80
			}
		},
		"itemEffect": "core.status.hero.def += 80",
		"itemEffectTip": "，防御+80"
	},
	"shield5": {
		"cls": "items",
		"name": "神圣盾",
		"text": "一个很普通的神圣盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 100,
				"mdef": 100
			}
		},
		"itemEffect": "core.status.hero.def += 100;core.status.hero.mdef += 100",
		"itemEffectTip": "，防御+100，护盾+100"
	},
	"superPotion": {
		"cls": "tools",
		"name": "圣水",
		"itemEffect": "core.status.hero.hp *= 2",
		"itemEffectTip": "，生命值翻倍",
		"useItemEffect": "const hp = 10 * hero.atk + 5 * hero.def;\nhero.hp += hp;\ncore.playSound('回血');\ncore.drawTip('使用圣水，增加' + hp + '点生命值');",
		"canUseItemEffect": "true",
		"text": "增加10倍攻击5倍防御之和的生命值"
	},
	"book": {
		"cls": "constants",
		"name": "怪物手册",
		"text": "可以查看当前楼层各怪物属性",
		"hideInToolbox": true,
		"useItemEffect": "core.ui.drawBook(0);",
		"canUseItemEffect": "true"
	},
	"fly": {
		"cls": "constants",
		"name": "楼层传送器",
		"text": "可以自由往来去过的楼层",
		"hideInReplay": true,
		"hideInToolbox": true,
		"useItemEffect": "core.ui.drawFly(core.floorIds.indexOf(core.status.floorId));",
		"canUseItemEffect": "(function () {\n\tif (core.flags.flyNearStair && !core.nearStair()) return false;\n\treturn core.status.maps[core.status.floorId].canFlyFrom;\n})();"
	},
	"coin": {
		"cls": "constants",
		"name": "丰川家的大手",
		"text": "持有时打败怪物可得双倍金币"
	},
	"cross": {
		"cls": "constants",
		"name": "十字架",
		"text": "持有时面对兽人、兽人武士、吸血鬼攻击力翻倍（不可叠加）"
	},
	"amulet": {
		"cls": "constants",
		"name": "护符",
		"text": "持有时无视负面地形"
	},
	"bigKey": {
		"cls": "tools",
		"name": "大黄门钥匙",
		"text": "可以开启当前层所有黄门",
		"itemEffect": "core.addItem('yellowKey', 1);\ncore.addItem('blueKey', 1);\ncore.addItem('redKey', 1);",
		"itemEffectTip": "，全钥匙+1",
		"useItemEffect": "(function () {\n\tvar actions = core.searchBlock(\"yellowDoor\").map(function (block) {\n\t\treturn { \"type\": \"openDoor\", \"loc\": [block.x, block.y], \"async\": true };\n\t});\n\tactions.push({ \"type\": \"waitAsync\" });\n\tactions.push({ \"type\": \"tip\", \"text\": core.material.items[itemId].name + \"使用成功\" });\n\tcore.insertAction(actions);\n})();",
		"canUseItemEffect": "(function () {\n\treturn core.searchBlock('yellowDoor').length > 0;\n})();"
	},
	"greenKey": {
		"cls": "tools",
		"name": "绿钥匙",
		"text": "可以打开一扇绿门"
	},
	"steelKey": {
		"cls": "tools",
		"name": "铁门钥匙",
		"text": "可以打开一扇铁门"
	},
	"pickaxe": {
		"cls": "tools",
		"name": "破墙镐",
		"text": "可以破坏周围的墙",
		"useItemEffect": "(function () {\n\tvar canBreak = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.disable) return false;\n\t\treturn block.event.canBreak;\n\t};\n\n\tvar success = false;\n\tvar pickaxeFourDirections = true; // 是否多方向破；如果是将其改成true\n\tif (pickaxeFourDirections) {\n\t\t// 多方向破\n\t\tfor (var direction in core.utils.scan) { // 多方向破默认四方向，如需改成八方向请将这两个scan改为scan2\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (canBreak(nx, ny)) {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// 仅破当前\n\t\tif (canBreak(core.nextX(), core.nextY())) {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.playSound('破墙镐');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功', itemId);\n\t} else {\n\t\t// 无法使用\n\t\tcore.playSound('操作失败');\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name, itemId);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();",
		"canUseItemEffect": "true"
	},
	"icePickaxe": {
		"cls": "tools",
		"name": "破冰镐",
		"text": "可以破坏勇士面前的一堵冰墙",
		"useItemEffect": "(function () {\n\tcore.drawTip(core.material.items[itemId].name + '使用成功', itemId);\n\tcore.insertAction({ \"type\": \"openDoor\", \"loc\": [\"core.nextX()\", \"core.nextY()\"] });\n})();",
		"canUseItemEffect": "(function () {\n\treturn core.getBlockId(core.nextX(), core.nextY()) == 'ice';\n})();"
	},
	"bomb": {
		"cls": "tools",
		"name": "炸弹",
		"text": "可以炸掉周围的怪物",
		"useItemEffect": "(function () {\n\tvar bombList = []; // 炸掉的怪物坐标列表\n\tvar todo = []; // 炸弹后事件\n\tvar money = 0,\n\t\texp = 0; // 炸弹获得的金币和经验\n\n\tvar canBomb = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.disable || block.event.cls.indexOf('enemy') != 0) return false;\n\t\tvar enemy = core.material.enemys[block.event.id];\n\t\treturn enemy && !enemy.notBomb;\n\t};\n\n\tvar bomb = function (x, y) {\n\t\tif (!canBomb(x, y)) return;\n\t\tbombList.push([x, y]);\n\t\tvar id = core.getBlockId(x, y),\n\t\t\tenemy = core.material.enemys[id];\n\t\tmoney += core.getEnemyValue(enemy, 'money', x, y) || 0;\n\t\texp += core.getEnemyValue(enemy, 'exp', x, y) || 0;\n\t\tcore.push(todo, core.floors[core.status.floorId].afterBattle[x + \",\" + y]);\n\t\tcore.push(todo, enemy.afterBattle);\n\t\tcore.removeBlock(x, y);\n\t}\n\n\t// 如果要多方向可炸，把这里的false改成true\n\tif (true) {\n\t\tvar scan = core.utils.scan; // 多方向炸时默认四方向，如果要改成八方向炸可以改成 core.utils.scan2\n\t\tfor (var direction in scan) {\n\t\t\tvar delta = scan[direction];\n\t\t\tbomb(core.getHeroLoc('x') + delta.x, core.getHeroLoc('y') + delta.y);\n\t\t}\n\t} else {\n\t\t// 仅炸当前\n\t\tbomb(core.nextX(), core.nextY());\n\t}\n\n\tif (bombList.length == 0) {\n\t\tcore.playSound('操作失败');\n\t\tcore.drawTip('当前无法使用' + core.material.items[itemId].name, itemId);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n\n\tcore.playSound('炸弹');\n\tcore.drawTip(core.material.items[itemId].name + '使用成功', itemId);\n\n\t// 取消这里的注释可以炸弹后获得金币和经验\n\tcore.status.hero.money += money;\n\t// core.status.hero.exp += exp;\n\n\t// 取消这里的注释可以炸弹引发战后事件\n\tif (todo.length > 0) core.insertAction(todo);\n\n})();",
		"canUseItemEffect": "true"
	},
	"centerFly": {
		"cls": "tools",
		"name": "中心对称飞行器",
		"text": "可以飞向当前楼层中心对称的位置",
		"useItemEffect": "core.playSound('centerFly.mp3');\ncore.clearMap('hero');\ncore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\ncore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');",
		"canUseItemEffect": "(function () {\n\tvar toX = core.bigmap.width - 1 - core.getHeroLoc('x'),\n\t\ttoY = core.bigmap.height - 1 - core.getHeroLoc('y');\n\tvar id = core.getBlockId(toX, toY);\n\treturn id == null;\n})();"
	},
	"upFly": {
		"cls": "tools",
		"name": "上楼器",
		"text": "可以飞往楼上的相同位置",
		"useItemEffect": "(function () {\n\tvar floorId = core.floorIds[core.floorIds.indexOf(core.status.floorId) + 1];\n\tif (core.status.event.id == 'action') {\n\t\tcore.insertAction([\n\t\t\t{ \"type\": \"changeFloor\", \"loc\": [core.getHeroLoc('x'), core.getHeroLoc('y')], \"floorId\": floorId },\n\t\t\t{ \"type\": \"tip\", \"text\": core.material.items[itemId].name + '使用成功' }\n\t\t]);\n\t} else {\n\t\tcore.changeFloor(floorId, null, core.status.hero.loc, null, function () {\n\t\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t\t\tcore.replay();\n\t\t});\n\t}\n})();",
		"canUseItemEffect": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index < core.floorIds.length - 1) {\n\t\tvar toId = core.floorIds[index + 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();"
	},
	"downFly": {
		"cls": "tools",
		"name": "下楼器",
		"text": "可以飞往楼下的相同位置",
		"useItemEffect": "(function () {\n\tvar floorId = core.floorIds[core.floorIds.indexOf(core.status.floorId) - 1];\n\tif (core.status.event.id == 'action') {\n\t\tcore.insertAction([\n\t\t\t{ \"type\": \"changeFloor\", \"loc\": [core.getHeroLoc('x'), core.getHeroLoc('y')], \"floorId\": floorId },\n\t\t\t{ \"type\": \"tip\", \"text\": core.material.items[itemId].name + '使用成功' }\n\t\t]);\n\t} else {\n\t\tcore.changeFloor(floorId, null, core.status.hero.loc, null, function () {\n\t\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t\t\tcore.replay();\n\t\t});\n\t}\n})();",
		"canUseItemEffect": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index > 0) {\n\t\tvar toId = core.floorIds[index - 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();"
	},
	"earthquake": {
		"cls": "tools",
		"name": "地震卷轴",
		"text": "可以破坏当前层的所有墙",
		"useItemEffect": "(function () {\n\tvar indexes = [];\n\tfor (var index in core.status.thisMap.blocks) {\n\t\tvar block = core.status.thisMap.blocks[index];\n\t\tif (!block.disable && block.event.canBreak) {\n\t\t\tindexes.push(index);\n\t\t}\n\t}\n\tcore.removeBlockByIndexes(indexes);\n\tcore.redrawMap();\n\tcore.playSound('炸弹');\n\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n})();",
		"canUseItemEffect": "(function () {\n\treturn core.status.thisMap.blocks.filter(function (block) {\n\t\treturn !block.disable && block.event.canBreak;\n\t}).length > 0;\n})();"
	},
	"poisonWine": {
		"cls": "tools",
		"name": "解毒药水",
		"text": "可以解除中毒状态",
		"useItemEffect": "core.triggerDebuff('remove', 'poison');",
		"canUseItemEffect": "core.hasFlag('poison');"
	},
	"weakWine": {
		"cls": "tools",
		"name": "解衰药水",
		"text": "可以解除衰弱状态",
		"useItemEffect": "core.triggerDebuff('remove', 'weak');",
		"canUseItemEffect": "core.hasFlag('weak');"
	},
	"curseWine": {
		"cls": "tools",
		"name": "解咒药水",
		"text": "可以解除诅咒状态",
		"useItemEffect": "core.triggerDebuff('remove', 'curse');",
		"canUseItemEffect": "core.hasFlag('curse');"
	},
	"superWine": {
		"cls": "tools",
		"name": "万能药水",
		"text": "可以解除所有不良状态",
		"useItemEffect": "core.triggerDebuff('remove', ['poison', 'weak', 'curse']);",
		"canUseItemEffect": "(function() {\n\treturn core.hasFlag('poison') || core.hasFlag('weak') || core.hasFlag('curse');\n})();"
	},
	"hammer": {
		"cls": "tools",
		"name": "圣锤",
		"text": "该道具尚未被定义"
	},
	"lifeWand": {
		"cls": "tools",
		"name": "生命魔杖",
		"text": "可以恢复100点生命值",
		"useItemEvent": [
			{
				"type": "comment",
				"text": "先恢复一个魔杖（因为使用道具必须消耗一个）"
			},
			{
				"type": "function",
				"function": "function(){\ncore.addItem('lifeWand', 1);\n}"
			},
			{
				"type": "playSound",
				"name": "打开界面"
			},
			{
				"type": "input",
				"text": "请输入生命魔杖使用次数：(0-${item:lifeWand})"
			},
			{
				"type": "comment",
				"text": "【接受用户输入】弹窗输入的结果将会保存在“flag:input”中\n如果需要更多帮助，请查阅帮助文档"
			},
			{
				"type": "if",
				"condition": "flag:input<=item:lifeWand",
				"true": [
					{
						"type": "setValue",
						"name": "item:lifeWand",
						"operator": "-=",
						"value": "flag:input"
					},
					{
						"type": "setValue",
						"name": "status:hp",
						"operator": "+=",
						"value": "flag:input*100"
					},
					{
						"type": "playSound",
						"name": "回血"
					},
					"成功使用${flag:input}次生命魔杖，恢复${flag:input*100}点生命。"
				],
				"false": [
					{
						"type": "playSound",
						"name": "操作失败"
					},
					"输入不合法！"
				]
			}
		],
		"canUseItemEffect": "true"
	},
	"jumpShoes": {
		"cls": "tools",
		"name": "跳跃靴",
		"text": "能跳跃到前方两格处",
		"useItemEffect": "core.playSound(\"跳跃\");\ncore.insertAction({ \"type\": \"jumpHero\", \"loc\": [core.nextX(2), core.nextY(2)] });",
		"canUseItemEffect": "(function () {\n\tvar nx = core.nextX(2),\n\t\tny = core.nextY(2);\n\treturn nx >= 0 && nx < core.bigmap.width && ny >= 0 && ny < core.bigmap.height && core.getBlockId(nx, ny) == null;\n})();"
	},
	"skill1": {
		"cls": "constants",
		"name": "技能：二倍斩",
		"text": "可以打开或关闭主动技能二倍斩",
		"hideInReplay": true,
		"useItemEffect": "(function () {\n\tvar skillValue = 1; // 技能的flag:skill值，可用于当前开启技能的判定；对于新技能可以依次改成2，3等等\n\tvar skillNeed = 5; // 技能的需求\n\tvar skillName = '二倍斩'; // 技能的名称\n\n\tif (core.getFlag('skill', 0) != skillValue) { // 判断当前是否已经开了技能\n\t\tif (core.getStatus('mana') >= skillNeed) { // 这里要写当前能否开技能的条件判断，比如魔力值至少要多少\n\t\t\tcore.playSound('打开界面');\n\t\t\tcore.setFlag('skill', skillValue); // 开技能1\n\t\t\tcore.setFlag('skillName', skillName); // 设置技能名\n\t\t} else {\n\t\t\tcore.playSound('操作失败');\n\t\t\tcore.drawTip('魔力不足，无法开启技能');\n\t\t}\n\t} else { // 关闭技能\n\t\tcore.setFlag('skill', 0); // 关闭技能状态\n\t\tcore.setFlag('skillName', '无');\n\t}\n})();",
		"canUseItemEffect": "true"
	},
	"wand": {
		"cls": "items",
		"name": "新物品"
	},
	"pack": {
		"cls": "items",
		"name": "钱袋",
		"itemEffect": "core.status.hero.money += 500",
		"itemEffectTip": "，金币+500"
	},
	"I331": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I332": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I333": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I339": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I340": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I341": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"soyoCut": {
		"cls": "constants",
		"name": "剪切线",
		"canUseItemEffect": "true",
		"hideInReplay": true,
		"useItemEffect": "core.cutline();",
		"text": "选择一列直接剪除"
	},
	"uikaWall": {
		"cls": "constants",
		"name": "爬",
		"canUseItemEffect": "true",
		"hideInReplay": true,
		"useItemEvent": null,
		"useItemEffect": "core.climbWall();",
		"text": "翻过连续的墙壁到达另一端"
	},
	"rupaWine": {
		"cls": "constants",
		"name": "害人假酒",
		"canUseItemEffect": "true",
		"hideInReplay": true,
		"useItemEffect": "core.fakeWine();",
		"text": "假酒，面对老人商人机关门使用，扣除4防御力并打爆"
	},
	"kitaIkuyo": {
		"cls": "constants",
		"name": "归去来兮",
		"canUseItemEffect": "true",
		"hideInReplay": true,
		"useItemEffect": null,
		"useItemEvent": [
			{
				"type": "if",
				"condition": "flag:kitaIkuyoTimes",
				"true": [
					{
						"type": "if",
						"condition": "flag:kitaIkuyo",
						"true": [
							{
								"type": "tip",
								"text": "尚未归去，不许传送"
							}
						],
						"false": [
							{
								"type": "if",
								"condition": "core.isBossFloor()",
								"true": [
									{
										"type": "tip",
										"text": "处于boss层，不许传送"
									}
								],
								"false": [
									{
										"type": "tip",
										"text": "选择一个空地，选择非空地或按esc取消使用"
									},
									{
										"type": "wait",
										"forceChild": true,
										"data": [
											{
												"case": "keyboard",
												"keycode": "27",
												"action": [
													{
														"type": "comment",
														"text": "按下esc取消使用"
													},
													{
														"type": "tip",
														"text": "取消使用"
													}
												]
											},
											{
												"case": "mouse",
												"px": [
													0,
													416
												],
												"py": [
													0,
													416
												],
												"action": [
													{
														"type": "if",
														"condition": "(core.getBlockId(flags.x,flags.y)===null)",
														"true": [
															{
																"type": "function",
																"function": "function(){\nflags.kitaIkuyoLocation = { ...core.getHeroLoc(), floorId: core.status.floorId }\n}"
															},
															{
																"type": "setValue",
																"name": "flag:kitaIkuyo",
																"value": "true"
															},
															{
																"type": "setValue",
																"name": "flag:kitaIkuyoTimes",
																"operator": "-=",
																"value": "1"
															},
															{
																"type": "jumpHero",
																"loc": [
																	"flags.x",
																	"flags.y"
																],
																"time": 500
															},
															{
																"type": "if",
																"condition": "flag:kitaIkuyoTimes",
																"true": [
																	{
																		"type": "tip",
																		"text": "使用成功"
																	}
																],
																"false": [
																	{
																		"type": "tip",
																		"text": "使用成功，本局次数已用完"
																	}
																]
															}
														],
														"false": [
															{
																"type": "tip",
																"text": "取消使用"
															}
														]
													}
												]
											}
										]
									}
								]
							}
						]
					}
				],
				"false": [
					{
						"type": "tip",
						"text": "次数用完，不许传送"
					}
				]
			}
		],
		"text": "选择当前层一个空地直接传送过去，但是拾取任何道具后会强制传送回来"
	},
	"ritsuMelody": {
		"cls": "constants",
		"name": "迷糊旋律",
		"canUseItemEffect": "true",
		"hideInToolbox": false,
		"useItemEvent": [
			{
				"type": "switch",
				"condition": "core.getBlockId(core.nextX(),core.nextY())",
				"caseList": [
					{
						"case": "'redDoor'",
						"action": [
							{
								"type": "setValue",
								"name": "temp:A",
								"value": "10"
							}
						]
					},
					{
						"case": "'blueDoor'",
						"action": [
							{
								"type": "setValue",
								"name": "temp:A",
								"value": "3"
							}
						]
					},
					{
						"case": "'yellowDoor'",
						"action": [
							{
								"type": "setValue",
								"name": "temp:A",
								"value": "1"
							}
						]
					},
					{
						"case": "default",
						"action": [
							{
								"type": "tip",
								"text": "面前不是黄蓝红门，不许敲鼓"
							},
							{
								"type": "exit"
							}
						]
					}
				]
			},
			{
				"type": "setValue",
				"name": "temp:B",
				"value": "core.getSkillValues().ritsu"
			},
			{
				"type": "setValue",
				"name": "temp:B",
				"operator": "*=",
				"value": "flag:ritsuTimes"
			},
			{
				"type": "if",
				"condition": "(status:hp>temp:B)",
				"true": [
					{
						"type": "setValue",
						"name": "status:hp",
						"operator": "-=",
						"value": "temp:B"
					},
					{
						"type": "setValue",
						"name": "flag:ritsuTimes",
						"operator": "+=",
						"value": "temp:A"
					},
					{
						"type": "openDoor",
						"loc": [
							"core.nextX()",
							"core.nextY()"
						]
					}
				],
				"false": [
					{
						"type": "tip",
						"text": "体力不够，不许敲鼓"
					},
					{
						"type": "exit"
					}
				]
			}
		],
		"text": "消耗生命，将面前的红蓝黄门降级",
		"hideInReplay": true
	},
	"mutsumiMortis": {
		"cls": "constants",
		"name": "和睦相处",
		"canUseItemEffect": "true",
		"hideInToolbox": true,
		"hideInReplay": true,
		"useItemEvent": null
	},
	"skillViewer": {
		"cls": "constants",
		"name": "技能查看器",
		"canUseItemEffect": "true",
		"text": "查看技能介绍",
		"useItemEffect": "core.useSkillViewer();"
	},
	"noteBook": {
		"cls": "constants",
		"name": "记事本",
		"canUseItemEffect": "true",
		"text": "记录了老人说过的话",
		"useItemEffect": "core.useNoteBook();"
	},
	"mioWand": {
		"cls": "constants",
		"name": "秋波萌动",
		"canUseItemEffect": "true",
		"useItemEffect": "//core.convertToPotion();\n//core.hitEnemysForward();",
		"text": "消耗蓝钥匙消灭面前所有怪物",
		"hideInReplay": true,
		"useItemEvent": [
			{
				"type": "if",
				"condition": "core.isBossFloor()",
				"true": [
					{
						"type": "tip",
						"text": "当前处于boss层，不许萌动"
					}
				],
				"false": [
					{
						"type": "if",
						"condition": "item:blueKey",
						"true": [
							{
								"type": "function",
								"function": "function(){\nconst x = core.getHeroLoc('x');\nconst y = core.getHeroLoc('y');\nconst dir = core.getHeroLoc('direction');\nconst angle = { up: 270, down: 90, left: 180, right: undefined } [dir];\n\n//得到面前的所有怪物和坐标\nconst enemysFaced = [];\nfor (let i = 0; i < 13; i++) {\n\tconst x = core.nextX(i);\n\tconst y = core.nextY(i);\n\tif (x < 0 || x > 12 || y < 0 || y > 12) {\n\t\tbreak;\n\t}\n\tconst block = core.getBlock(x, y);\n\tif (block && block.event.cls === 'enemys') {\n\t\tenemysFaced.push([x, y, i, core.material.enemys[block.event.id].money + (flags.sakiko ? 3 : 0)]); //怪物的横坐标，纵坐标，距离，金币\n\t}\n}\n\nif (enemysFaced.length === 0) {\n\tcore.drawTip('面对方向没有怪物，不许萌动');\n} else {\n\tconst moveImageTo = { up: [x * 32, -32], down: [x * 32, 13 * 32], left: [-32, y * 32], right: [13 * 32, y * 32] } [dir];\n\tconst moveImageTime = { up: (y + 1) * 50, down: (13 - y) * 50, left: (x + 1) * 50, right: (13 - x) * 50 } [dir]; //一格50ms\n\n\tconst actions = [];\n\tactions.push({ type: \"setValue\", name: 'ite' + 'm:' + 'blueKey', operator: \"-=\", value: \"1\" });\n\tif (!core.isReplaying()) {\n\t\tactions.push({ type: \"hideImage\", code: 1, time: 0 });\n\t\tactions.push({ type: \"showImage\", code: 1, image: \"blueKeyTurned.png\", loc: [x * 32, y * 32], opacity: 1, time: 0 });\n\t\tactions.push({ type: \"rotateImage\", code: 1, angle: angle, time: 0 });\n\t\tactions.push({ type: \"moveImage\", code: 1, to: moveImageTo, time: moveImageTime, async: true });\n\t}\n\n\tconst afterBattles = [];\n\tlet money = 0;\n\tenemysFaced.forEach(([x, y, i, m], a, arr) => {\n\t\tmoney += m;\n\t\tlet dxy = { up: [-2, 0], down: [-2, 0], left: [0, -2], right: [0, -2] } [dir];\n\t\tif (a % 2) dxy = [-dxy[0], -dxy[1]];\n\t\tlet time = 0;\n\t\tlet di = i;\n\t\tif (a > 0) di = i - arr[a - 1][2];\n\t\tif (di > 0.5) time = 50 * (di - 0.5);\n\t\tif (time > 0) actions.push({ type: \"sleep\", time: time });\n\t\tactions.push({ type: \"jump\", from: [x, y], dxy: dxy, time: 500, async: true });\n\t\tcore.push(afterBattles, core.floors[core.status.floorId].afterBattle[x + ',' + y]);\n\t});\n\n\tactions.push({ type: \"waitAsync\" });\n\tactions.push(...afterBattles);\n\tactions.push({ type: \"setValue\", name: \"stat\" + \"us:m\" + \"oney\", operator: \"+=\", value: money })\n\n\tcore.insertAction(actions);\n}\n}"
							}
						],
						"false": [
							{
								"type": "tip",
								"text": "没有蓝钥匙，不许萌动"
							}
						]
					}
				]
			}
		]
	},
	"otherSettings": {
		"cls": "constants",
		"name": "额外设置",
		"canUseItemEffect": "true",
		"text": "调整一些额外的设置，例如自动清怪、自动拾取、显示跟随者",
		"useItemEvent": [
			{
				"type": "while",
				"condition": "true",
				"data": [
					{
						"type": "choices",
						"text": "选择需要调整的设置（自动拾取在归去来兮技能生效状态下不会生效，不需要特地关闭）\n自动清怪和自动拾取有可能导致红录像，谨慎开启",
						"choices": [
							{
								"text": "退出",
								"action": [
									{
										"type": "break",
										"n": 1
									}
								]
							},
							{
								"text": "${flag:autoBattle?'关闭':'开启'}自动清怪",
								"action": [
									{
										"type": "setValue",
										"name": "flag:autoBattle",
										"value": "(!flag:autoBattle)"
									}
								]
							},
							{
								"text": "${flag:zdsq?'关闭':'开启'}自动拾取",
								"action": [
									{
										"type": "setValue",
										"name": "flag:zdsq",
										"value": "(!flag:zdsq)"
									}
								]
							},
							{
								"text": "${flag:itemDetail?'关闭':'开启'}宝石血瓶信息",
								"action": [
									{
										"type": "setValue",
										"name": "flag:itemDetail",
										"value": "(!flag:itemDetail)"
									}
								]
							},
							{
								"text": "${flag:following?'关闭':'开启'}跟随者",
								"need": "flags.followers.length",
								"action": [
									{
										"type": "function",
										"function": "function(){\ncore.followOrUnfollow();\n}"
									}
								]
							}
						]
					}
				]
			}
		]
	},
	"I397": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I398": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"nijikaWand": {
		"cls": "constants",
		"name": "彩虹魔杖",
		"canUseItemEffect": "true",
		"text": "使同层除红钥匙机关门外的怪物道具门恢复成最原本初始的状态，并将角色传送至下楼梯",
		"useItemEffect": "core.enemyColourRecover2();",
		"hideInReplay": true,
		"useItemEvent": null
	},
	"I400": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I401": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"silverCoin": {
		"cls": "items",
		"name": "50金币",
		"canUseItemEffect": "true",
		"itemEffect": "hero.money += 50;"
	},
	"I404": {
		"cls": "items",
		"name": "中心对称飞行器 ×3",
		"canUseItemEffect": "true",
		"itemEffect": "core.addItem('centerFly', 3)"
	},
	"snow": {
		"cls": "constants",
		"name": "冰冻徽章",
		"text": "可以将面前的熔岩变成平地",
		"useItemEffect": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = true; // 是否多方向雪花；如果是将其改成true\n\tif (snowFourDirections) {\n\t\t// 多方向雪花\n\t\tfor (var direction in core.utils.scan) { // 多方向雪花默认四方向，如需改为八方向请将这两个scan改为scan2\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (core.getBlockId(nx, ny) == 'lava') {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (core.getBlockId(core.nextX(), core.nextY()) == 'lava') {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.playSound('打开界面');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功', itemId);\n\t} else {\n\t\tcore.playSound('操作失败');\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name, itemId);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();",
		"canUseItemEffect": "true",
		"hideInReplay": true
	},
	"knife": {
		"cls": "constants",
		"name": "屠龙匕",
		"text": "持有时面对魔龙攻击力翻倍（不可叠加）"
	},
	"I421": {
		"cls": "constants",
		"name": "本塔修改内容",
		"canUseItemEffect": "true",
		"useItemEvent": [
			"本塔修改内容：\n\\c[12]\n删除了几乎所有原剧情\n宝石倍率提高为2倍\n怪物增加了一些特技\n删除了剑盾，剑盾位置改为常规资源\n删除了上下楼器，上楼器位置改为常规资源，44层可直接到达，0层删除\n移除了一些红门和红钥匙\n移除了圣水和幸运金币（除非通过对应角色获取）\n商店到达新区域的1层时直接升级倍率，原商店修改为常规资源\n2层修改，移除了1000金币和3%，从监狱改为一区宝库\n大章鱼需要击败9次才会打开机关门，仅击败头部也不会让身体消失\n三区全部实用性内容移动到30层（技能发动条件中视为boss层）\n35层暗道直接开启\n40层击败骑士队长即出现上楼梯（战利品仍然需要击败全部13只怪物）\n49层没有假魔王，战利品仅保留屠龙匕和红钥匙\n\\c"
		],
		"text": "记录了本塔相对50层魔塔的修改内容"
	}
}