静态战斗画面
This commit is contained in:
		
							parent
							
								
									8f3c9b514f
								
							
						
					
					
						commit
						25fb914841
					
				| @ -192,7 +192,9 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { | ||||
| 				"mdef": { | ||||
| 					"_leaf": true, | ||||
| 					"_type": "textarea", | ||||
| 					"_data": "法抗(写为小数)" | ||||
| 					"_docs": "法抗", | ||||
| 					"_data": "百分数,如10为10%法抗,怪物受到勇士的法术伤害减免比例" | ||||
| 
 | ||||
| 				}, | ||||
| 				"speed": { | ||||
| 					"_leaf": true, | ||||
|  | ||||
| @ -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", | ||||
|  | ||||
| @ -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": [ | ||||
| 			{ | ||||
|  | ||||
| @ -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}, | ||||
|  | ||||
| @ -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 () { | ||||
|       // 浏览地图时参与的统计项目
 | ||||
| 
 | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
| @ -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" | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										987
									
								
								project/maps.js
									
									
									
									
									
								
							
							
						
						
									
										987
									
								
								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} | ||||
| } | ||||
							
								
								
									
										2297
									
								
								project/plugins.js
									
									
									
									
									
								
							
							
						
						
									
										2297
									
								
								project/plugins.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user