怪物指示物
This commit is contained in:
parent
d7b49eb037
commit
7edb48884c
@ -118,7 +118,8 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
"T362": 86,
|
"T362": 86,
|
||||||
"T363": 87,
|
"T363": 87,
|
||||||
"T364": 88,
|
"T364": 88,
|
||||||
"T365": 89
|
"T365": 89,
|
||||||
|
"T397": 90
|
||||||
},
|
},
|
||||||
"animates": {
|
"animates": {
|
||||||
"star": 0,
|
"star": 0,
|
||||||
|
@ -295,6 +295,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
|||||||
"394": {"cls":"terrains","id":"T394"},
|
"394": {"cls":"terrains","id":"T394"},
|
||||||
"395": {"cls":"terrains","id":"T395"},
|
"395": {"cls":"terrains","id":"T395"},
|
||||||
"396": {"cls":"items","id":"I396"},
|
"396": {"cls":"items","id":"I396"},
|
||||||
|
"397": {"cls":"terrains","id":"T397"},
|
||||||
"20034": {"cls":"tileset","id":"X20034","canPass":true},
|
"20034": {"cls":"tileset","id":"X20034","canPass":true},
|
||||||
"20154": {"cls":"tileset","id":"X20154","canPass":true},
|
"20154": {"cls":"tileset","id":"X20154","canPass":true},
|
||||||
"20216": {"cls":"tileset","id":"X20216","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.boss7.style.height = obj.totalHeight + 3 + "px";
|
||||||
main.dom.boss8.style.width = obj.totalWidth + 3 + "px";
|
main.dom.boss8.style.width = obj.totalWidth + 3 + "px";
|
||||||
main.dom.boss8.style.height = obj.totalHeight + 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.width = obj.totalWidth + 3 + "px";
|
||||||
main.dom.boss.style.height = obj.totalHeight + 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();
|
core.ui.cgText.update();
|
||||||
if (main.dom.boss1 && main.dom.boss1.style.display === "block")
|
if (main.dom.boss1 && main.dom.boss1.style.display === "block")
|
||||||
core.ui.boss.update();
|
core.ui.boss.update();
|
||||||
|
|
||||||
|
if (main.dom.saveLoad && main.dom.saveLoad.style.display === "block")
|
||||||
|
core.saveLoad.update();
|
||||||
};
|
};
|
||||||
|
|
||||||
class StatusBar {
|
class StatusBar {
|
||||||
@ -21132,7 +21135,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
},
|
},
|
||||||
"开局选项悬停": function () {
|
"开局选项悬停": function () {
|
||||||
// 在此增加新插件
|
// 在此增加新插件
|
||||||
|
|
||||||
main.dom.playGame.addEventListener("mouseenter", () => {
|
main.dom.playGame.addEventListener("mouseenter", () => {
|
||||||
core.dom.playGame.style.backgroundColor = "#808080";
|
core.dom.playGame.style.backgroundColor = "#808080";
|
||||||
});
|
});
|
||||||
@ -21899,34 +21901,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
ctx.lineTo(enemynow - 5, 110);
|
ctx.lineTo(enemynow - 5, 110);
|
||||||
ctx.closePath();
|
ctx.closePath();
|
||||||
ctx.fill();
|
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);
|
core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5);
|
||||||
equipInfo.forEach(function (v) {
|
equipInfo.forEach(function (v) {
|
||||||
if (!attack && !onAttack) v.now += v.speed;
|
if (!attack && !onAttack) v.now += v.speed;
|
||||||
@ -23681,5 +23657,488 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
|
|
||||||
ctx.restore(); //恢复变换前的坐标,否则将连续转置
|
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