怪物指示物
This commit is contained in:
		
							parent
							
								
									d7b49eb037
								
							
						
					
					
						commit
						7edb48884c
					
				| @ -118,7 +118,8 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = | ||||
| 		"T362": 86, | ||||
| 		"T363": 87, | ||||
| 		"T364": 88, | ||||
| 		"T365": 89 | ||||
| 		"T365": 89, | ||||
| 		"T397": 90 | ||||
| 	}, | ||||
| 	"animates": { | ||||
| 		"star": 0, | ||||
|  | ||||
| @ -295,6 +295,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = | ||||
| 	"394": {"cls":"terrains","id":"T394"}, | ||||
| 	"395": {"cls":"terrains","id":"T395"}, | ||||
| 	"396": {"cls":"items","id":"I396"}, | ||||
| 	"397": {"cls":"terrains","id":"T397"}, | ||||
| 	"20034": {"cls":"tileset","id":"X20034","canPass":true}, | ||||
| 	"20154": {"cls":"tileset","id":"X20154","canPass":true}, | ||||
| 	"20216": {"cls":"tileset","id":"X20216","canPass":true}, | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB | 
| @ -2736,7 +2736,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
| 		main.dom.boss7.style.height = obj.totalHeight + 3 + "px"; | ||||
| 		main.dom.boss8.style.width = obj.totalWidth + 3 + "px"; | ||||
| 		main.dom.boss8.style.height = obj.totalHeight + 3 + "px"; | ||||
| 
 | ||||
| 		main.dom.saveLoad.style.height = obj.totalHeight + 3 + "px"; | ||||
| 		main.dom.boss.style.width = obj.totalWidth + 3 + "px"; | ||||
| 		main.dom.boss.style.height = obj.totalHeight + 3 + "px"; | ||||
| 
 | ||||
| @ -2907,6 +2907,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
| 			core.ui.cgText.update(); | ||||
| 		if (main.dom.boss1 && main.dom.boss1.style.display === "block") | ||||
| 			core.ui.boss.update(); | ||||
| 
 | ||||
| 		if (main.dom.saveLoad && main.dom.saveLoad.style.display === "block") | ||||
| 			core.saveLoad.update(); | ||||
| 	}; | ||||
| 
 | ||||
| 	class StatusBar { | ||||
| @ -21132,7 +21135,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
|   }, | ||||
|     "开局选项悬停": function () { | ||||
| 	// 在此增加新插件
 | ||||
| 
 | ||||
| 	main.dom.playGame.addEventListener("mouseenter", () => { | ||||
| 		core.dom.playGame.style.backgroundColor = "#808080"; | ||||
| 	}); | ||||
| @ -21212,7 +21214,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
| 	main.dom.replayGame.addEventListener("touchcancel", () => { | ||||
| 		core.dom.replayGame.style.backgroundColor = "transparent"; | ||||
| 	}); | ||||
|   }, | ||||
| }, | ||||
|     "天气叠加": function () { | ||||
|     //使用方法:使用core.setWeather(天气,等级)来增加天气,使用core.setWeather()来清空天气
 | ||||
|     // 天气叠加功能
 | ||||
| @ -21899,34 +21901,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
| 					ctx.lineTo(enemynow - 5, 110); | ||||
| 					ctx.closePath(); | ||||
| 					ctx.fill(); | ||||
| 					core.drawIcon(ctx, 'T367', enemynow - 16, 74, 32, 32) | ||||
| 
 | ||||
| 					if (enemyInfo.cls === "enemys") { | ||||
| 						core.drawImage( | ||||
| 							ctx, | ||||
| 							core.getBlockInfo(enemyInfo.id).image, | ||||
| 							32, | ||||
| 							core.getBlockInfo(enemyInfo.id).posY * 32, | ||||
| 							32, | ||||
| 							32, | ||||
| 							enemynow - 16, | ||||
| 							74, | ||||
| 							32, | ||||
| 							32 | ||||
| 						); | ||||
| 					} else { | ||||
| 						core.drawImage( | ||||
| 							ctx, | ||||
| 							core.getBlockInfo(enemyInfo.id).image, | ||||
| 							32, | ||||
| 							core.getBlockInfo(enemyInfo.id).posY * 48, | ||||
| 							32, | ||||
| 							48, | ||||
| 							enemynow - 16, | ||||
| 							58, | ||||
| 							32, | ||||
| 							48 | ||||
| 						); | ||||
| 					} | ||||
| 					core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5); | ||||
| 					equipInfo.forEach(function (v) { | ||||
| 						if (!attack && !onAttack) v.now += v.speed; | ||||
| @ -23681,5 +23657,488 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = | ||||
| 
 | ||||
| 		ctx.restore(); //恢复变换前的坐标,否则将连续转置
 | ||||
| 	} | ||||
| }, | ||||
|     "存读档": function () { | ||||
| 	// 在此增加新插件
 | ||||
| 	const saveLoad = document.createElement("canvas"); //创建存读档画布
 | ||||
| 	saveLoad.style.position = "absolute"; | ||||
| 	saveLoad.style.zIndex = 390; | ||||
| 	saveLoad.style.display = "none"; | ||||
| 	saveLoad.id = "saveLoad"; | ||||
| 	main.dom.gameGroup.insertAdjacentElement("afterend", saveLoad); | ||||
| 	saveLoad.style.top = "50%"; | ||||
| 	saveLoad.style.left = "50%"; | ||||
| 	saveLoad.style.transform = "translate(-50%,-50%)"; | ||||
| 	const ctx = saveLoad.getContext("2d"); | ||||
| 	main.dom.saveLoad = saveLoad | ||||
| 	//////存读档界面更新
 | ||||
| 	class SL { | ||||
| 		constructor() { | ||||
| 			this.index = -1; | ||||
| 			this.refresh = false | ||||
| 		} | ||||
| 		update() {} | ||||
| 		set() {} | ||||
| 	} | ||||
| 	core.saveLoad = new SL() | ||||
| 	////// 绘制存档/读档界面 //////
 | ||||
| 	ui.prototype._drawSLPanel = function (index, refresh) { | ||||
| 		core.control._loadFavoriteSaves(); | ||||
| 		if (index == null) index = 1; | ||||
| 		if (index < 0) index = 0; | ||||
| 
 | ||||
| 		var page = parseInt(index / 10), | ||||
| 			offset = index % 10; | ||||
| 		var max_page = main.savePages || 30; | ||||
| 		if (core.status.event.data && core.status.event.data.mode == 'fav') | ||||
| 			max_page = Math.ceil((core.saves.favorite || []).length / 5); | ||||
| 		if (page >= max_page) page = max_page - 1; | ||||
| 		if (offset > 5) offset = 5; | ||||
| 		if (core.status.event.data && core.status.event.data.mode == 'fav' && page == max_page - 1) { | ||||
| 			offset = Math.min(offset, (core.saves.favorite || []).length - 5 * page); | ||||
| 		} | ||||
| 
 | ||||
| 		var last_page = -1; | ||||
| 		var mode = 'all'; | ||||
| 		if (core.status.event.data) { | ||||
| 			last_page = core.status.event.data.page; | ||||
| 			mode = core.status.event.data.mode; | ||||
| 		} | ||||
| 		core.status.event.data = { 'page': page, 'offset': offset, 'mode': mode }; | ||||
| 		core.status.event.ui = core.status.event.ui || []; | ||||
| 		if (refresh || page != last_page) { | ||||
| 			core.status.event.ui = []; | ||||
| 			this._drawSLPanel_loadSave(page, function () { | ||||
| 				core.ui._drawSLPanel_draw(page, max_page); | ||||
| 			}); | ||||
| 		} else this._drawSLPanel_draw(page, max_page); | ||||
| 	} | ||||
| 
 | ||||
| 	ui.prototype._drawSLPanel_draw = function (page, max_page) { | ||||
| 		// --- 绘制背景
 | ||||
| 		this._drawSLPanel_drawBackground(); | ||||
| 		// --- 绘制文字
 | ||||
| 		core.ui.drawPagination(page + 1, max_page); | ||||
| 		core.setTextAlign('ui', 'center'); | ||||
| 		var bottom = core._PY_ - 13; | ||||
| 		core.fillText('ui', '返回游戏', core._PX_ - 48, bottom, '#DDDDDD', this._buildFont(15, true)); | ||||
| 
 | ||||
| 		if (core.status.event.selection) | ||||
| 			core.setFillStyle('ui', '#FF6A6A'); | ||||
| 		if (core.status.event.id == 'save') | ||||
| 			core.fillText('ui', '删除模式', 48, bottom); | ||||
| 		else { | ||||
| 			if (core.status.event.data.mode == 'all') { | ||||
| 				core.fillText('ui', '[E]显示收藏', 52, bottom); | ||||
| 			} else { | ||||
| 				core.fillText('ui', '[E]显示全部', 52, bottom); | ||||
| 			} | ||||
| 		} | ||||
| 		// --- 绘制记录
 | ||||
| 		this._drawSLPanel_drawRecords(); | ||||
| 	} | ||||
| 
 | ||||
| 	ui.prototype._drawSLPanel_drawBackground = function () { | ||||
| 		core.clearMap('ui'); | ||||
| 		core.setAlpha('ui', 0.85); | ||||
| 		core.fillRect('ui', 0, 0, core._PX_, core._PY_, '#000000'); // 可改成背景图
 | ||||
| 		core.setAlpha('ui', 1); | ||||
| 	} | ||||
| 
 | ||||
| 	ui.prototype._drawSLPanel_loadSave = function (page, callback) { | ||||
| 		var ids = [0]; | ||||
| 		for (var i = 1; i <= 5; ++i) { | ||||
| 			var id = 5 * page + i; | ||||
| 			if (core.status.event.data.mode == 'fav') | ||||
| 				id = core.saves.favorite[id - 1]; // 因为favorite第一个不是自动存档 所以要偏移1
 | ||||
| 			ids.push(id); | ||||
| 		} | ||||
| 		core.getSaves(ids, function (data) { | ||||
| 			for (var i = 1; i < ids.length; ++i) | ||||
| 				core.status.event.ui[i] = data[i]; | ||||
| 			core.status.event.ui[0] = data[0] == null ? null : data[0][core.saves.autosave.now - 1]; | ||||
| 			callback(); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	// 在以x为中心轴 y为顶坐标 的位置绘制一条宽为size的记录 cho表示是否被选中 选中会加粗 highlight表示高亮标题 ✐
 | ||||
| 	ui.prototype._drawSLPanel_drawRecord = function (title, data, x, y, size, cho, highLight) { | ||||
| 		var globalAttribute = core.status.globalAttribute || core.initStatus.globalAttribute; | ||||
| 		var strokeColor = globalAttribute.selectColor; | ||||
| 		if (core.status.event.selection) strokeColor = '#FF6A6A'; | ||||
| 		if (!data || !data.floorId) highLight = false; | ||||
| 		if (data && data.__toReplay__) title = '[R]' + title; | ||||
| 		var w = size * core._PX_, | ||||
| 			h = size * core._PY_; | ||||
| 		core.fillText('ui', title, x, y, highLight ? globalAttribute.selectColor : '#FFFFFF', this._buildFont(17, true)); | ||||
| 		core.strokeRect('ui', x - w / 2, y + 15, w, h, cho ? strokeColor : '#FFFFFF', cho ? 3 : 1); | ||||
| 		if (data && data.floorId) { | ||||
| 			core.setTextAlign('ui', "center"); | ||||
| 			var map = core.maps.loadMap(data.maps, data.floorId); | ||||
| 			core.extractBlocksForUI(map, data.hero.flags); | ||||
| 			core.drawThumbnail(data.floorId, map.blocks, { | ||||
| 				heroLoc: data.hero.loc, | ||||
| 				heroIcon: data.hero.image, | ||||
| 				flags: data.hero.flags, | ||||
| 				ctx: 'ui', | ||||
| 				x: x - w / 2, | ||||
| 				y: y + 15, | ||||
| 				size: size, | ||||
| 				centerX: data.hero.loc.x, | ||||
| 				centerY: data.hero.loc.y, | ||||
| 				noHD: true | ||||
| 			}); | ||||
| 			if (core.isPlaying() && core.getFlag("hard") != data.hero.flags.hard) { | ||||
| 				core.fillRect('ui', x - w / 2, y + 15, w, h, [0, 0, 0, 0.4]); | ||||
| 				core.fillText('ui', data.hard, x, parseInt(y + 22 + h / 2), data.hero.flags.__hardColor__ || 'white', this._buildFont(30, true)); | ||||
| 			} | ||||
| 			// 绘制存档笔记
 | ||||
| 			if (data.hero.notes && data.hero.notes.length > 0) { | ||||
| 				core.setTextAlign('ui', 'left'); | ||||
| 				if (data.hero.notes.length >= 2) { | ||||
| 					core.fillRect('ui', x - w / 2, y + 15, w, 28, [0, 0, 0, 0.3]); | ||||
| 					core.fillBoldText('ui', data.hero.notes.length - 1 + ". " + data.hero.notes[data.hero.notes.length - 2].substring(0, 10), | ||||
| 						x - w / 2 + 2, y + 15 + 12, '#FFFFFF', null, this._buildFont(10, false)); | ||||
| 					core.fillBoldText('ui', data.hero.notes.length + ". " + data.hero.notes[data.hero.notes.length - 1].substring(0, 10), | ||||
| 						x - w / 2 + 2, y + 15 + 24); | ||||
| 				} else { | ||||
| 					core.fillRect('ui', x - w / 2, y + 15, w, 16, [0, 0, 0, 0.3]); | ||||
| 					core.fillBoldText('ui', data.hero.notes.length + ". " + data.hero.notes[data.hero.notes.length - 1].substring(0, 10), | ||||
| 						x - w / 2 + 2, y + 15 + 12, '#FFFFFF', null, this._buildFont(10, false)); | ||||
| 				} | ||||
| 			} | ||||
| 			core.setTextAlign('ui', "center"); | ||||
| 			var v = core.formatBigNumber(data.hero.hp, true) + "/" + core.formatBigNumber(data.hero.atk, true) + "/" + core.formatBigNumber(data.hero.def, true); | ||||
| 			var v2 = "/" + core.formatBigNumber(data.hero.mdef, true); | ||||
| 			if (core.calWidth('ui', v + v2, this._buildFont(10, false)) <= w) v += v2; | ||||
| 			core.fillText('ui', v, x, y + 30 + h, globalAttribute.selectColor); | ||||
| 			core.fillText('ui', core.formatDate(new Date(data.time)), x, y + 43 + h, data.hero.flags.debug ? '#FF6A6A' : '#FFFFFF'); | ||||
| 		} else { | ||||
| 			core.fillRect('ui', x - w / 2, y + 15, w, h, '#333333'); | ||||
| 			core.fillText('ui', '空', x, parseInt(y + 22 + h / 2), '#FFFFFF', this._buildFont(30, true)); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	ui.prototype._drawSLPanel_drawRecords = function (n) { | ||||
| 		var page = core.status.event.data.page; | ||||
| 		var offset = core.status.event.data.offset; | ||||
| 		var u = Math.floor(core._PX_ / 6), | ||||
| 			size = 0.3; | ||||
| 		var name = core.status.event.id == 'save' ? "存档" : core.status.event.id == 'load' ? "读档" : "回放"; | ||||
| 
 | ||||
| 		for (var i = 0; i < (n || 6); i++) { | ||||
| 			var data = core.status.event.ui[i]; | ||||
| 			var id = 5 * page + i; | ||||
| 			var highLight = (i > 0 && core.saves.favorite.indexOf(id) >= 0) || core.status.event.data.mode == 'fav'; | ||||
| 			var title = (highLight ? '★ ' : '☆ ') + (core.saves.favoriteName[id] || (name + id)); | ||||
| 			if (i != 0 && core.status.event.data.mode == 'fav') { | ||||
| 				if (!data) break; | ||||
| 				var real_id = core.saves.favorite[id - 1]; | ||||
| 				title = (core.saves.favoriteName[real_id] || (name + real_id)) + ' ✐'; | ||||
| 			} | ||||
| 			var charSize = 32; // 字体占用像素范围
 | ||||
| 			var topSpan = parseInt((core._PY_ - charSize - 2 * (charSize * 2 + size * core._PY_)) / 3); // Margin
 | ||||
| 			var yTop1 = topSpan + parseInt(charSize / 2) + 8; // 文字的中心
 | ||||
| 			var yTop2 = yTop1 + charSize * 2 + size * core._PY_ + topSpan; | ||||
| 			if (i < 3) { | ||||
| 				this._drawSLPanel_drawRecord(i == 0 ? "自动存档" : title, data, (2 * i + 1) * u, yTop1, size, i == offset, highLight); | ||||
| 			} else { | ||||
| 				this._drawSLPanel_drawRecord(title, data, (2 * i - 5) * u, yTop2, size, i == offset, highLight); | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| 	////// 点击保存按钮时的打开操作 //////
 | ||||
| 	events.prototype.save = function (fromUserAction) { | ||||
| 		if (core.isReplaying()) return; | ||||
| 		if (core.hasFlag("__forbidSave__")) { | ||||
| 			core.playSound("操作失败"); | ||||
| 			core.drawTip("当前禁止存档"); | ||||
| 			return; | ||||
| 		} | ||||
| 		if ( | ||||
| 			core.status.event.id == "save" && | ||||
| 			core.events.recoverEvents(core.status.event.interval) | ||||
| 		) | ||||
| 			return; | ||||
| 		if (!this._checkStatus("save", fromUserAction)) return; | ||||
| 		var saveIndex = core.saves.saveIndex; | ||||
| 		var page = parseInt((saveIndex - 1) / 5), | ||||
| 			offset = saveIndex - 5 * page; | ||||
| 		core.playSound("打开界面"); | ||||
| 		core.ui._drawSLPanel(10 * page + offset); | ||||
| 	}; | ||||
| 
 | ||||
| 	////// 点击读取按钮时的打开操作 //////
 | ||||
| 	events.prototype.load = function (fromUserAction) { | ||||
| 		if (core.isReplaying()) return; | ||||
| 		var saveIndex = core.saves.saveIndex; | ||||
| 		var page = parseInt((saveIndex - 1) / 5), | ||||
| 			offset = saveIndex - 5 * page; | ||||
| 		// 游戏开始前读档
 | ||||
| 		if (!core.isPlaying()) { | ||||
| 			core.dom.startPanel.style.display = "none"; | ||||
| 			core.clearStatus(); | ||||
| 			core.clearMap("all"); | ||||
| 			core.status.event = { id: "load", data: null }; | ||||
| 			core.status.lockControl = true; | ||||
| 			core.playSound("打开界面"); | ||||
| 			core.ui._drawSLPanel(10 * page + offset); | ||||
| 			return; | ||||
| 		} | ||||
| 		if ( | ||||
| 			core.status.event.id == "load" && | ||||
| 			core.events.recoverEvents(core.status.event.interval) | ||||
| 		) | ||||
| 			return; | ||||
| 		if (!this._checkStatus("load", fromUserAction)) return; | ||||
| 		core.playSound("打开界面"); | ||||
| 		core.ui._drawSLPanel(10 * page + offset); | ||||
| 	}; | ||||
| 	////// 回放时存档 //////
 | ||||
| 	control.prototype._replay_SL = function () { | ||||
| 		if (!core.isPlaying() || !core.isReplaying()) return; | ||||
| 		if (!core.status.replay.pausing) { | ||||
| 			core.playSound("操作失败"); | ||||
| 			return core.drawTip("请先暂停录像"); | ||||
| 		} | ||||
| 		if (core.isMoving() || core.status.replay.animate || core.status.event.id) { | ||||
| 			core.playSound("操作失败"); | ||||
| 			return core.drawTip("请等待当前事件的处理结束"); | ||||
| 		} | ||||
| 		if (core.hasFlag("__forbidSave__")) { | ||||
| 			core.playSound("操作失败"); | ||||
| 			return core.drawTip("当前禁止存档"); | ||||
| 		} | ||||
| 		this._replay_hideProgress(); | ||||
| 
 | ||||
| 		core.lockControl(); | ||||
| 		core.status.event.id = "save"; | ||||
| 		var saveIndex = core.saves.saveIndex; | ||||
| 		var page = parseInt((saveIndex - 1) / 5), | ||||
| 			offset = saveIndex - 5 * page; | ||||
| 
 | ||||
| 		core.ui._drawSLPanel(10 * page + offset); | ||||
| 	}; | ||||
| 
 | ||||
| 	////// 存读档界面时的点击操作 //////
 | ||||
| 	actions.prototype._clickSL = function (x, y) { | ||||
| 		var page = core.status.event.data.page, | ||||
| 			offset = core.status.event.data.offset; | ||||
| 		var index = page * 10 + offset; | ||||
| 
 | ||||
| 		// 上一页
 | ||||
| 		if ((x == this._HX_ - 2 || x == this._HX_ - 3) && y === core._HEIGHT_ - 1) { | ||||
| 			core.playSound('光标移动'); | ||||
| 			core.ui._drawSLPanel(10 * (page - 1) + offset); | ||||
| 			return; | ||||
| 		} | ||||
| 		// 下一页
 | ||||
| 		if ((x == this._HX_ + 2 || x == this._HX_ + 3) && y === core._HEIGHT_ - 1) { | ||||
| 			core.playSound('光标移动'); | ||||
| 			core.ui._drawSLPanel(10 * (page + 1) + offset); | ||||
| 			return; | ||||
| 		} | ||||
| 		// 返回
 | ||||
| 		if (x >= this.LAST - 2 && y === core._HEIGHT_ - 1) { | ||||
| 			core.playSound('取消'); | ||||
| 			if (core.events.recoverEvents(core.status.event.interval)) | ||||
| 				return; | ||||
| 			core.ui.closePanel(); | ||||
| 			delete core.status.tempRoute; | ||||
| 			if (!core.isPlaying()) | ||||
| 				core.showStartAnimate(true); | ||||
| 			return; | ||||
| 		} | ||||
| 		// 删除
 | ||||
| 		if (x >= 0 && x <= 2 && y === core._HEIGHT_ - 1) { | ||||
| 			if (core.status.event.id == 'save') { | ||||
| 				core.status.event.selection = !core.status.event.selection; | ||||
| 				core.ui._drawSLPanel(index); | ||||
| 			} else { // 显示收藏
 | ||||
| 				core.status.event.data.mode = core.status.event.data.mode == 'all' ? 'fav' : 'all'; | ||||
| 				if (core.status.event.data.mode == 'fav') | ||||
| 					core.ui._drawSLPanel(1, true); | ||||
| 				else { | ||||
| 					page = parseInt((core.saves.saveIndex - 1) / 5); | ||||
| 					offset = core.saves.saveIndex - 5 * page; | ||||
| 					core.ui._drawSLPanel(10 * page + offset, true); | ||||
| 				} | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		// 点存档名
 | ||||
| 		var xLeft = parseInt(core._WIDTH_ / 3), | ||||
| 			xRight = parseInt(core._WIDTH_ * 2 / 3); | ||||
| 		var topY1 = 0, | ||||
| 			topY2 = this._HY_; | ||||
| 		if (y >= topY1 && y <= topY1 + 1) { | ||||
| 			if (x >= xLeft && x < xRight) return this._clickSL_favorite(page, 1); | ||||
| 			if (x >= xRight) return this._clickSL_favorite(page, 2); | ||||
| 		} | ||||
| 		if (y >= topY2 && y <= topY2 + 1) { | ||||
| 			if (x < xLeft) return this._clickSL_favorite(page, 3); | ||||
| 			if (x >= xLeft && x < xRight) return this._clickSL_favorite(page, 4); | ||||
| 			if (x >= xRight) return this._clickSL_favorite(page, 5); | ||||
| 		} | ||||
| 
 | ||||
| 		var id = null; | ||||
| 		if (y >= topY1 + 2 && y < this._HY_ - 1) { | ||||
| 			if (x < xLeft) id = "autoSave"; | ||||
| 			if (x >= xLeft && x < xRight) id = 5 * page + 1; | ||||
| 			if (x >= xRight) id = 5 * page + 2; | ||||
| 		} | ||||
| 		if (y >= topY2 + 2 && y < core._HEIGHT_ - 1) { | ||||
| 			if (x < xLeft) id = 5 * page + 3; | ||||
| 			if (x >= xLeft && x < xRight) id = 5 * page + 4; | ||||
| 			if (x >= xRight) id = 5 * page + 5; | ||||
| 		} | ||||
| 		if (id != null) { | ||||
| 			if (core.status.event.selection) { | ||||
| 				if (id == 'autoSave') { | ||||
| 					core.playSound('操作失败'); | ||||
| 					core.drawTip("无法删除自动存档!"); | ||||
| 				} else { | ||||
| 					core.removeSave(id, function () { | ||||
| 						core.ui._drawSLPanel(index, true); | ||||
| 					}); | ||||
| 				} | ||||
| 			} else { | ||||
| 				if (core.status.event.data.mode == 'fav' && id != 'autoSave') | ||||
| 					id = core.saves.favorite[id - 1]; | ||||
| 				core.doSL(id, core.status.event.id); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	actions.prototype._clickSL_favorite = function (page, offset) { | ||||
| 		if (offset == 0) return; | ||||
| 		var index = 5 * page + offset; | ||||
| 		if (core.status.event.data.mode == 'fav') { // 收藏模式下点击的下标直接对应favorite
 | ||||
| 			index = core.saves.favorite[index - 1]; | ||||
| 			core.myprompt("请输入想要显示的存档名(长度不超过5字符)", null, function (value) { | ||||
| 				if (value && value.length <= 5) { | ||||
| 					core.saves.favoriteName[index] = value; | ||||
| 					core.control._updateFavoriteSaves(); | ||||
| 					core.ui._drawSLPanel(10 * page + offset); | ||||
| 				} else if (value) { | ||||
| 					alert("无效的输入!"); | ||||
| 				} | ||||
| 			}); | ||||
| 		} else { | ||||
| 			var v = core.saves.favorite.indexOf(index); | ||||
| 			core.playSound('确定'); | ||||
| 			if (v >= 0) { // 已经处于收藏状态:取消收藏
 | ||||
| 				core.saves.favorite.splice(v, 1); | ||||
| 				delete core.saves.favoriteName[index]; | ||||
| 			} else if (core.hasSave(index)) { // 存在存档则进行收藏
 | ||||
| 				core.saves.favorite.push(index); | ||||
| 				core.saves.favorite = core.saves.favorite.sort(function (a, b) { return a - b; }); // 保证有序
 | ||||
| 				core.drawTip("收藏成功!"); | ||||
| 			} | ||||
| 			core.control._updateFavoriteSaves(); | ||||
| 			core.ui._drawSLPanel(10 * page + offset); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	////// 存读档界面时,按下某个键的操作 //////
 | ||||
| 	actions.prototype._keyDownSL = function (keycode) { | ||||
| 
 | ||||
| 		var page = core.status.event.data.page, | ||||
| 			offset = core.status.event.data.offset; | ||||
| 		var index = page * 10 + offset; | ||||
| 
 | ||||
| 		if (keycode == 37) { // left
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			if (offset == 0) { | ||||
| 				core.ui._drawSLPanel(10 * (page - 1) + 5); | ||||
| 			} else { | ||||
| 				core.ui._drawSLPanel(index - 1); | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 38) { // up
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			if (offset < 3) { | ||||
| 				core.ui._drawSLPanel(10 * (page - 1) + offset + 3); | ||||
| 			} else { | ||||
| 				core.ui._drawSLPanel(index - 3); | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 39) { // right
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			if (offset == 5) { | ||||
| 				core.ui._drawSLPanel(10 * (page + 1) + 1); | ||||
| 			} else { | ||||
| 				core.ui._drawSLPanel(index + 1); | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 40) { // down
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			if (offset >= 3) { | ||||
| 				core.ui._drawSLPanel(10 * (page + 1) + offset - 3); | ||||
| 			} else { | ||||
| 				core.ui._drawSLPanel(index + 3); | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 33) { // PAGEUP
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			core.ui._drawSLPanel(10 * (page - 1) + offset); | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 34) { // PAGEDOWN
 | ||||
| 			core.playSound('光标移动'); | ||||
| 			core.ui._drawSLPanel(10 * (page + 1) + offset); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	////// 存读档界面时,放开某个键的操作 //////
 | ||||
| 	actions.prototype._keyUpSL = function (keycode) { | ||||
| 		var page = core.status.event.data.page, | ||||
| 			offset = core.status.event.data.offset; | ||||
| 		var index = page * 10 + offset; | ||||
| 
 | ||||
| 		if (keycode == 27 || keycode == 88 || (core.status.event.id == 'save' && keycode == 83) || (core.status.event.id == 'load' && keycode == 68)) { | ||||
| 			this._clickSL(core._WIDTH_ - 1, core._HEIGHT_ - 1); | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode >= 48 && keycode <= 57) { | ||||
| 			if (keycode == 48) keycode = 58; | ||||
| 			core.ui._drawSLPanel((keycode - 49) * 1000 + 1); | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 13 || keycode == 32 || keycode == 67) { | ||||
| 			if (offset == 0) | ||||
| 				core.doSL("autoSave", core.status.event.id); | ||||
| 			else { | ||||
| 				var id = 5 * page + offset; | ||||
| 				if (core.status.event.data.mode == 'fav') id = core.saves.favorite[id - 1]; | ||||
| 				core.doSL(id, core.status.event.id); | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 69 && core.status.event.id != 'save') { // E 收藏切换
 | ||||
| 			this._clickSL(0, core._HEIGHT_ - 1); | ||||
| 			return; | ||||
| 		} | ||||
| 		if (keycode == 46) { | ||||
| 			if (offset == 0) { | ||||
| 				core.playSound('操作失败'); | ||||
| 				core.drawTip("无法删除自动存档!"); | ||||
| 			} else { | ||||
| 				var id = 5 * page + offset; | ||||
| 				if (core.status.event.data.mode == 'fav') id = core.saves.favorite[id - 1]; | ||||
| 				core.removeSave(id, function () { | ||||
| 					core.ui._drawSLPanel(index, true); | ||||
| 				}); | ||||
| 			} | ||||
| 		} | ||||
| 		if (keycode == 70 && core.status.event.data.mode == 'all') { // F
 | ||||
| 			this._clickSL_favorite(page, offset); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user