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": "core.status.hero.atk += core.values.redGem * core.status.thisMap.ratio;\nhero.mana += 1;\ncore.addFlag(\"gemsgot\", 1)",
		"itemEffectTip": "，攻击+${core.values.redGem * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.atk += core.values.redGem",
		"canUseItemEffect": "true",
		"useItemEvent": null
	},
	"blueGem": {
		"cls": "items",
		"name": "蓝宝石",
		"text": "，防御+${core.values.blueGem}",
		"itemEffect": "core.status.hero.def += core.values.blueGem * core.status.thisMap.ratio\nhero.mana += 1\ncore.addFlag(\"gemsgot\", 1)",
		"itemEffectTip": "，防御+${core.values.blueGem * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.def += core.values.blueGem",
		"canUseItemEffect": "true",
		"useItemEvent": null
	},
	"greenGem": {
		"cls": "items",
		"name": "绿宝石",
		"text": "，护盾+${core.values.greenGem}",
		"itemEffect": "core.status.hero.mdef += core.values.greenGem * core.status.thisMap.ratio\nhero.mana += 1\ncore.addFlag(\"gemsgot\", 1)",
		"itemEffectTip": "，护盾+${core.values.greenGem * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.mdef += core.values.greenGem",
		"canUseItemEffect": "true",
		"useItemEvent": null
	},
	"yellowGem": {
		"cls": "items",
		"name": "黄宝石",
		"text": "可以进行加点",
		"itemEffect": "core.status.hero.atk += core.values.redGem * core.status.thisMap.ratio * 2;\ncore.status.hero.def += core.values.blueGem * core.status.thisMap.ratio * 2;\ncore.status.hero.mdef += core.values.greenGem * core.status.thisMap.ratio * 2;\nhero.mana += 1\ncore.addFlag(\"gemsgot\", 1)",
		"itemEffectTip": "，全属性提升",
		"useItemEvent": null,
		"canUseItemEffect": "true"
	},
	"redPotion": {
		"cls": "items",
		"name": "红血瓶",
		"text": "，生命+${core.values.redPotion}",
		"itemEffect": "core.status.hero.hp += core.values.redPotion * core.status.thisMap.ratio",
		"itemEffectTip": "，生命+${core.values.redPotion * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.hp += core.values.redPotion",
		"canUseItemEffect": "true"
	},
	"bluePotion": {
		"cls": "items",
		"name": "蓝血瓶",
		"text": "，生命+${core.values.bluePotion}",
		"itemEffect": "core.status.hero.hp += core.values.bluePotion * core.status.thisMap.ratio",
		"itemEffectTip": "，生命+${core.values.bluePotion * core.status.thisMap.ratio}",
		"useItemEffect": "core.status.hero.hp += core.values.bluePotion",
		"canUseItemEffect": "true"
	},
	"yellowPotion": {
		"cls": "items",
		"name": "黄血瓶",
		"text": "，生命+${core.values.yellowPotion}",
		"itemEffect": "core.status.hero.hp += core.values.yellowPotion * core.status.thisMap.ratio",
		"itemEffectTip": "，生命+${core.values.yellowPotion * core.status.thisMap.ratio}",
		"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 += 100",
		"itemEffectTip": "，攻击+100"
	},
	"sword2": {
		"cls": "items",
		"name": "银剑",
		"text": "一把很普通的银剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 20
			}
		},
		"itemEffect": "core.status.hero.atk += 200",
		"itemEffectTip": "，攻击+200"
	},
	"sword3": {
		"cls": "items",
		"name": "骑士剑",
		"text": "一把很普通的骑士剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 40
			}
		},
		"itemEffect": "core.status.hero.atk += 400",
		"itemEffectTip": "，攻击+400"
	},
	"sword4": {
		"cls": "items",
		"name": "圣剑",
		"text": "一把很普通的圣剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 80
			}
		},
		"itemEffect": "core.status.hero.atk += 800",
		"itemEffectTip": "，攻击+800"
	},
	"sword5": {
		"cls": "items",
		"name": "神圣剑",
		"text": "一把很普通的神圣剑",
		"equip": {
			"type": 0,
			"animate": "sword",
			"value": {
				"atk": 160
			}
		},
		"itemEffect": "core.status.hero.atk += 1000",
		"itemEffectTip": "，攻击+1000"
	},
	"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 += 100",
		"itemEffectTip": "，防御+100"
	},
	"shield2": {
		"cls": "items",
		"name": "银盾",
		"text": "一个很普通的银盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 20
			}
		},
		"itemEffect": "core.status.hero.def += 200",
		"itemEffectTip": "，防御+200"
	},
	"shield3": {
		"cls": "items",
		"name": "骑士盾",
		"text": "一个很普通的骑士盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 40
			}
		},
		"itemEffect": "core.status.hero.def += 400",
		"itemEffectTip": "，防御+400"
	},
	"shield4": {
		"cls": "items",
		"name": "圣盾",
		"text": "一个很普通的圣盾",
		"equip": {
			"type": 1,
			"value": {
				"def": 80
			}
		},
		"itemEffect": "core.status.hero.def += 800",
		"itemEffectTip": "，防御+800"
	},
	"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": "items",
		"name": "圣水",
		"itemEffect": "core.status.hero.hp *= 2",
		"itemEffectTip": "，生命值翻倍",
		"useItemEffect": "core.status.hero.hp *= 2;core.playSound('回血');",
		"canUseItemEffect": "true",
		"text": "生命值翻倍"
	},
	"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": "持有时打败怪物可得双倍金币"
	},
	"freezeBadge": {
		"cls": "constants",
		"name": "冰冻徽章",
		"text": "可以将面前的熔岩变成平地",
		"useItemEffect": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = false; // 是否多方向雪花；如果是将其改成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"
	},
	"cross": {
		"cls": "constants",
		"name": "十字架",
		"text": "持有后无视怪物的无敌属性"
	},
	"dagger": {
		"cls": "constants",
		"name": "屠龙匕首",
		"text": "该道具尚未被定义"
	},
	"amulet": {
		"cls": "items",
		"name": "护符",
		"text": "持有时无视负面地形",
		"itemEffect": "core.status.hero.mdef += 200",
		"itemEffectTip": "，护盾+200"
	},
	"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\tif (core.getFlag(\"level\", \"\") === \"fly\") {\n\n\t} else {\n\t\tvar canBreak = function (x, y) {\n\t\t\tvar block = core.getBlock(x, y);\n\t\t\tif (block == null || block.disable) return false;\n\t\t\treturn block.event.canBreak;\n\t\t};\n\n\t\tvar success = false;\n\t\tvar pickaxeFourDirections = false; // 是否多方向破；如果是将其改成true\n\t\tif (pickaxeFourDirections) {\n\t\t\t// 多方向破\n\t\t\tfor (var direction in core.utils.scan) { // 多方向破默认四方向，如需改成八方向请将这两个scan改为scan2\n\t\t\t\tvar delta = core.utils.scan[direction];\n\t\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\t\tif (canBreak(nx, ny)) {\n\t\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// 仅破当前\n\t\t\tif (canBreak(core.nextX(), core.nextY())) {\n\t\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\n\t\tif (success) {\n\t\t\tcore.playSound('破墙镐');\n\t\t\tcore.drawTip(core.material.items[itemId].name + '使用成功', itemId);\n\t\t} else {\n\t\t\t// 无法使用\n\t\t\tcore.playSound('操作失败');\n\t\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name, itemId);\n\t\t\tcore.addItem(itemId, 1);\n\t\t\treturn;\n\t\t}\n\t}\n\n})();",
		"canUseItemEffect": "[\"fly\", \"circle\"].includes(core.getFlag(\"level\", \"\")) ? false : true",
		"itemEffect": null,
		"useItemEvent": null
	},
	"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.scan2; // 多方向炸时默认四方向，如果要改成八方向炸可以改成 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\tcore.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": "(function () {\n\t\tif (core.getFlag(\"level\", \"\") === \"fly\") {\n\t\t\tcore.insertAction([\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"全地图选择某一个点\" },\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x1\", \"value\": \"0\" },\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x\", \"value\": \"0\" },\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y1\", \"value\": \"0\" },\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y\", \"value\": \"0\" },\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"flag:1,flag:2为选中的地图xy坐标\" },\n\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\",0)*32,core.getFlag(\\\"y\\\",0)*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"显示一个32*32的红色块,这里是画在色调层上，可以自行换画布\" },\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"这里也可以用图标类图片\" },\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"while\",\n\t\t\t\t\t\"condition\": \"1\",\n\t\t\t\t\t\"data\": [\n\t\t\t\t\t\t{ \"type\": \"wait\" },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\"condition\": \"flag:type==0\",\n\t\t\t\t\t\t\t\"true\": [{\n\t\t\t\t\t\t\t\t\"type\": \"switch\",\n\t\t\t\t\t\t\t\t\"condition\": \"flag:keycode\",\n\t\t\t\t\t\t\t\t\"caseList\": [{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"27\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按下esc时，取消选择\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"exit\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"13\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按下enter键时，结束选择，选中坐标代入flag:x与flag:y进入下一步\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"break\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"32\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按下空格时，结束选择，选中坐标代入flag:x与flag:y进入下一步\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"break\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"38\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按上时，移动颜色块，flag:y-1\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y\", \"value\": \"flag:y-1\" },\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"condition\": \"flag:y<0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y\", \"value\": \"flag:y+1\" },\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\")*32,core.getFlag(\\\"y\\\")*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"40\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按下时，移动颜色块，flag:y+1\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y\", \"value\": \"flag:y+1\" },\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"condition\": \"flag:y>12\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y\", \"value\": \"flag:y-1\" },\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\")*32,core.getFlag(\\\"y\\\")*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"37\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按左时，移动颜色块，flag:x-1\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x\", \"value\": \"flag:x-1\" },\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"condition\": \"flag:x<0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x\", \"value\": \"flag:x+1\" },\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\")*32,core.getFlag(\\\"y\\\")*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"case\": \"39\",\n\t\t\t\t\t\t\t\t\t\t\"action\": [\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"当按右时，移动颜色块，flag:x+1\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x\", \"value\": \"flag:x+1\" },\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"condition\": \"flag:x>12\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x\", \"value\": \"flag:x-1\" },\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\")*32,core.getFlag(\\\"y\\\")*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}, ],\n\t\t\t\t\t\t\t\"false\": [\n\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"如果是鼠标操作，坐标直接代入flag:x,flag:y\" },\n\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\nvar fillstyle = 'rgba(255,0,0,0.5)';\\ncore.fillRect('curtain',core.getFlag(\\\"x\\\")*32,core.getFlag(\\\"y\\\")*32,32,32,fillstyle);\\n}\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\"condition\": \"flag:x==flag:x1&&flag:y==flag:y1\",\n\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"如果点中的点与之前选中的点一样，结束选择,结果为flag:x,flag:y\" },\n\t\t\t\t\t\t\t\t\t\t{ \"type\": \"function\", \"function\": \"function(){\\ncore.clearMap(\\\"curtain\\\")\\n}\" },\n\t\t\t\t\t\t\t\t\t\t{ \"type\": \"break\" },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"type\": \"if\",\n\t\t\t\t\t\t\t\t\t\"condition\": \"flag:x==3&&flag:y==4\",\n\t\t\t\t\t\t\t\t\t\"true\": [\n\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"这里也可以设定，当你点中地图上的某点时执行什么事件\" },\n\t\t\t\t\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"比如点中3,4时执行什么，放这下边\" },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\"false\": [\n\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ \"type\": \"comment\", \"text\": \"只要选择没有结束，记录上一次选中的位置以给鼠标使用\" },\n\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:x1\", \"value\": \"flag:x\" },\n\t\t\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:y1\", \"value\": \"flag:y\" },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"选择结束后，选中的点的坐标已代入flag：x与flag：y\" },\n\t\t\t\t{ \"type\": \"comment\", \"text\": \"例如要使主角移动到选中的点时，可以执行下面事件\" },\n\t\t\t\t{ \"type\": \"playSound\", \"name\": \"sanashunjianyidong.mp3\" },\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"flag:6\", \"value\": \"flag:6+1\" },\n\t\t\t\t{ \"type\": \"changePos\", \"loc\": [\"flag:x\", \"flag:y\"] },\n\t\t\t\t{ \"type\": \"exit\" },\n\t\t\t])\n\t\t} else {\n\t\t\tcore.playSound('centerFly.mp3');\n\t\t\tcore.clearMap('hero');\n\t\t\tcore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\n\t\t\tcore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\n\t\t\tcore.drawHero();\n\t\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t\t}\n\t}\n\n)()",
		"canUseItemEffect": "(function () {\n\tif (core.getFlag(\"level\", \"\") === \"fly\") {\n\t\treturn true\n\t} else if (core.getFlag(\"level\", \"\") === \"circle\") {\n\t\treturn false\n\t} else {\n\t\tvar toX = core.bigmap.width - 1 - core.getHeroLoc('x'),\n\t\t\ttoY = core.bigmap.height - 1 - core.getHeroLoc('y');\n\t\tvar id = core.getBlockId(toX, toY);\n\t\treturn id == null;\n\t}\n})();",
		"itemEffect": null,
		"useItemEvent": null
	},
	"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": "该道具尚未被定义"
	},
	"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": "每回合攻击附带（当前攻击算数平方根）的魔攻，向下取整。消耗魔力1。快捷键8",
		"hideInReplay": true,
		"useItemEffect": "(function () {\n\tvar skillValue = 1; // 技能的flag:skill值，可用于当前开启技能的判定；对于新技能可以依次改成2，3等等\n\tvar skillNeed = 1; // 技能的需求\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": "constants",
		"name": "自动商店加点",
		"useItemEvent": [
			{
				"type": "choices",
				"text": "与怪物战斗后，在三区商店自动加点（快捷键2）",
				"choices": [
					{
						"text": "加生命",
						"condition": "flags.level === \"easy\"",
						"action": [
							{
								"type": "setValue",
								"name": "flag:autoAddAtk",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddDef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddMdef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddHp",
								"value": "true"
							}
						]
					},
					{
						"text": "加攻击",
						"action": [
							{
								"type": "setValue",
								"name": "flag:autoAddAtk",
								"value": "true"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddDef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddMdef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddHp",
								"value": "false"
							}
						]
					},
					{
						"text": "加防御",
						"action": [
							{
								"type": "setValue",
								"name": "flag:autoAddAtk",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddDef",
								"value": "true"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddMdef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddHp",
								"value": "false"
							}
						]
					},
					{
						"text": "加魔防",
						"action": [
							{
								"type": "setValue",
								"name": "flag:autoAddAtk",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddDef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddMdef",
								"value": "true"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddHp",
								"value": "false"
							}
						]
					},
					{
						"text": "不自动加",
						"action": [
							{
								"type": "setValue",
								"name": "flag:autoAddAtk",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddDef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddMdef",
								"value": "false"
							},
							{
								"type": "setValue",
								"name": "flag:autoAddHp",
								"value": "false"
							}
						]
					}
				]
			}
		],
		"canUseItemEffect": "true"
	},
	"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"
	},
	"I334": {
		"cls": "constants",
		"name": "推动",
		"canUseItemEffect": "true",
		"text": "消耗1魔力，将面前的图块向前推一格。快捷键4",
		"useItemEvent": null,
		"useItemEffect": "core.insertCommonEvent(\"推动\");"
	},
	"I336": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I337": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I338": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I339": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I340": {
		"cls": "items",
		"name": "新物品",
		"canUseItemEffect": "true"
	},
	"I341": {
		"cls": "items",
		"name": "护盾球",
		"canUseItemEffect": "true",
		"itemEffectTip": "，护盾+400",
		"itemEffect": "core.status.hero.mdef += 400"
	},
	"skill2": {
		"cls": "constants",
		"name": "技能：凝滞",
		"canUseItemEffect": "true",
		"text": "让面前的怪物1回合不攻击，可以叠加。每次使用消耗2魔力。快捷键9",
		"useItemEffect": "if (hero.mana >= 2) {\n\tlet r = core.getEnemyValue(null, \"slow\", core.nextX(1), core.nextY(1))\n\tif (r == undefined || r === null) {\n\t\tcore.setEnemyOnPoint(core.nextX(1), core.nextY(1), null, \"slow\", 1)\n\t} else {\n\t\tcore.setEnemyOnPoint(core.nextX(1), core.nextY(1), null, \"slow\", 1, \"+=\")\n\t}\n\thero.mana -= 2\n}"
	},
	"circleskill": {
		"cls": "constants",
		"name": "顺转",
		"text": "消耗1魔力，将周围四格顺时针旋转，不可在地图边界使用。快捷键4，消耗魔力1。\n注：这个技能没有bug，更换楼梯、机关门位置的效果可能会很反直觉，但也不是bug。",
		"useItemEvent": [
			{
				"type": "if",
				"condition": "(status:mana>=1)",
				"true": [
					{
						"type": "setValue",
						"name": "status:mana",
						"operator": "-=",
						"value": "1"
					},
					{
						"type": "setValue",
						"name": "flag:nowx",
						"value": "core.nextX(0)"
					},
					{
						"type": "setValue",
						"name": "flag:nowy",
						"value": "core.nextY(0)"
					},
					{
						"type": "if",
						"condition": "((flags.nowx!==12)&&((flags.nowy!==12)&&((flags.nowx!==0)&&(flags.nowy!==0))))",
						"true": [
							{
								"type": "move",
								"loc": [
									"flags.nowx + 1",
									"flags.nowy"
								],
								"time": 500,
								"keep": true,
								"async": true,
								"steps": [
									"down:1",
									"left:1"
								]
							},
							{
								"type": "move",
								"loc": [
									"flags.nowx",
									"flags.nowy+1"
								],
								"time": 500,
								"keep": true,
								"async": true,
								"steps": [
									"left:1",
									"up:1"
								]
							},
							{
								"type": "move",
								"loc": [
									"flags.nowx-1",
									"flags.nowy"
								],
								"time": 500,
								"keep": true,
								"async": true,
								"steps": [
									"up:1",
									"right:1"
								]
							},
							{
								"type": "move",
								"loc": [
									"flags.nowx",
									"flags.nowy-1"
								],
								"time": 500,
								"keep": true,
								"async": true,
								"steps": [
									"right:1",
									"down:1"
								]
							},
							{
								"type": "waitAsync"
							}
						],
						"false": [
							"你在地图边界上。"
						]
					}
				],
				"false": [
					"你的魔力不足。"
				]
			}
		],
		"canUseItemEffect": "true"
	}
}