replayRemain
This commit is contained in:
parent
e5903b2e6e
commit
e52a8378e8
@ -245,6 +245,7 @@ actions.prototype._sys_keyDown_lockControl = function (keyCode) {
|
|||||||
case 'save':
|
case 'save':
|
||||||
case 'load':
|
case 'load':
|
||||||
case 'replayLoad':
|
case 'replayLoad':
|
||||||
|
case 'replayRemain':
|
||||||
this._keyDownSL(keyCode);
|
this._keyDownSL(keyCode);
|
||||||
break;
|
break;
|
||||||
case 'shop':
|
case 'shop':
|
||||||
@ -346,6 +347,7 @@ actions.prototype._sys_keyUp_lockControl = function (keyCode, altKey) {
|
|||||||
case 'save':
|
case 'save':
|
||||||
case 'load':
|
case 'load':
|
||||||
case 'replayLoad':
|
case 'replayLoad':
|
||||||
|
case 'replayRemain':
|
||||||
this._keyUpSL(keyCode);
|
this._keyUpSL(keyCode);
|
||||||
break;
|
break;
|
||||||
case 'keyBoard':
|
case 'keyBoard':
|
||||||
@ -612,6 +614,7 @@ actions.prototype._sys_onclick_lockControl = function (x, y) {
|
|||||||
case 'save':
|
case 'save':
|
||||||
case 'load':
|
case 'load':
|
||||||
case 'replayLoad':
|
case 'replayLoad':
|
||||||
|
case 'replayRemain':
|
||||||
this._clickSL(x, y);
|
this._clickSL(x, y);
|
||||||
break;
|
break;
|
||||||
case 'confirmBox':
|
case 'confirmBox':
|
||||||
@ -756,7 +759,7 @@ actions.prototype._sys_longClick_lockControl = function (x, y) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 长按SL快速翻页
|
// 长按SL快速翻页
|
||||||
if (["save","load","replayLoad"].indexOf(core.status.event.id) >= 0) {
|
if (["save","load","replayLoad","replayRemain"].indexOf(core.status.event.id) >= 0) {
|
||||||
if ([this.HSIZE-2, this.HSIZE-3, this.HSIZE+2, this.HSIZE+3].indexOf(x) >= 0 && y == this.LAST) {
|
if ([this.HSIZE-2, this.HSIZE-3, this.HSIZE+2, this.HSIZE+3].indexOf(x) >= 0 && y == this.LAST) {
|
||||||
this._clickSL(x, y);
|
this._clickSL(x, y);
|
||||||
return true;
|
return true;
|
||||||
@ -1657,6 +1660,7 @@ actions.prototype._clickSL = function (x, y) {
|
|||||||
if (core.events.recoverEvents(core.status.event.interval))
|
if (core.events.recoverEvents(core.status.event.interval))
|
||||||
return;
|
return;
|
||||||
core.ui.closePanel();
|
core.ui.closePanel();
|
||||||
|
delete core.status.tempRoute;
|
||||||
if (!core.isPlaying())
|
if (!core.isPlaying())
|
||||||
core.showStartAnimate(true);
|
core.showStartAnimate(true);
|
||||||
return;
|
return;
|
||||||
@ -2031,12 +2035,10 @@ actions.prototype._clickSyncSave = function (x, y) {
|
|||||||
case 4:
|
case 4:
|
||||||
return this._clickSyncSave_replay();
|
return this._clickSyncSave_replay();
|
||||||
case 5:
|
case 5:
|
||||||
return this._clickSyncSave_download();
|
|
||||||
case 6:
|
|
||||||
core.status.event.selection = 0;
|
core.status.event.selection = 0;
|
||||||
core.ui.drawStorageRemove();
|
core.ui.drawStorageRemove();
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 6:
|
||||||
core.status.event.selection = 4;
|
core.status.event.selection = 4;
|
||||||
core.ui.drawSettings();
|
core.ui.drawSettings();
|
||||||
break;
|
break;
|
||||||
@ -2065,19 +2067,6 @@ actions.prototype._clickSyncSave_replay = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
actions.prototype._clickSyncSave_download = function () {
|
|
||||||
if (core.hasFlag('debug')) {
|
|
||||||
core.drawText("\t[系统提示]调试模式下无法下载录像");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
core.download(core.firstData.name + "_" + core.formatDate2() + ".h5route", JSON.stringify({
|
|
||||||
'name': core.firstData.name,
|
|
||||||
'hard': core.status.hard,
|
|
||||||
'seed': core.getFlag('__seed__'),
|
|
||||||
'route': core.encodeRoute(core.status.route)
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
////// 同步存档界面时,放开某个键的操作 //////
|
////// 同步存档界面时,放开某个键的操作 //////
|
||||||
actions.prototype._keyUpSyncSave = function (keycode) {
|
actions.prototype._keyUpSyncSave = function (keycode) {
|
||||||
if (keycode == 27 || keycode == 88) {
|
if (keycode == 27 || keycode == 88) {
|
||||||
@ -2264,9 +2253,10 @@ actions.prototype._clickReplay = function (x, y) {
|
|||||||
switch (selection) {
|
switch (selection) {
|
||||||
case 0: return this._clickReplay_fromBeginning();
|
case 0: return this._clickReplay_fromBeginning();
|
||||||
case 1: return this._clickReplay_fromLoad();
|
case 1: return this._clickReplay_fromLoad();
|
||||||
case 2: return core.chooseReplayFile();
|
case 2: return this._clickReplay_continueReplay();
|
||||||
case 3: return this._clickReplay_download();
|
case 3: return core.chooseReplayFile();
|
||||||
case 4: return core.ui.closePanel();
|
case 4: return this._clickReplay_download();
|
||||||
|
case 5: return core.ui.closePanel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2285,6 +2275,21 @@ actions.prototype._clickReplay_fromLoad = function () {
|
|||||||
core.ui.drawSLPanel(10 * page + offset);
|
core.ui.drawSLPanel(10 * page + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actions.prototype._clickReplay_continueReplay = function () {
|
||||||
|
core.closePanel();
|
||||||
|
core.drawText([
|
||||||
|
"\t[接续播放录像]该功能允许你播放\r[yellow]两个存档之间的录像\r,常常用于\r[yellow]区域优化\r。\n" +
|
||||||
|
"例如,有若干个区,已经全部通关;之后重打一区并进行了优化,则可以对剩余区域直接播放录像而无需全部重打。",
|
||||||
|
"\t[步骤1]请选择一个存档。\n\r[yellow]该存档的坐标必须和当前勇士坐标完全相同。\r\n将尝试从此处开始回放。",
|
||||||
|
], function () {
|
||||||
|
core.status.event.id = 'replayRemain';
|
||||||
|
core.lockControl();
|
||||||
|
var saveIndex = core.saves.saveIndex;
|
||||||
|
var page = parseInt((saveIndex - 1) / 5), offset = saveIndex - 5 * page;
|
||||||
|
core.ui.drawSLPanel(10 * page + offset);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
actions.prototype._clickReplay_download = function () {
|
actions.prototype._clickReplay_download = function () {
|
||||||
if (core.hasFlag('debug')) return core.drawText("\t[系统提示]调试模式下无法下载录像");
|
if (core.hasFlag('debug')) return core.drawText("\t[系统提示]调试模式下无法下载录像");
|
||||||
core.download(core.firstData.name + "_" + core.formatDate2() + ".h5route", JSON.stringify({
|
core.download(core.firstData.name + "_" + core.formatDate2() + ".h5route", JSON.stringify({
|
||||||
|
|||||||
@ -1059,7 +1059,7 @@ control.prototype.startReplay = function (list) {
|
|||||||
core.status.replay.pausing=false;
|
core.status.replay.pausing=false;
|
||||||
core.status.replay.speed=1.0;
|
core.status.replay.speed=1.0;
|
||||||
core.status.replay.toReplay = core.clone(list);
|
core.status.replay.toReplay = core.clone(list);
|
||||||
core.status.replay.totalList = core.clone(list);
|
core.status.replay.totalList = core.status.route.concat(list);
|
||||||
core.status.replay.steps = 0;
|
core.status.replay.steps = 0;
|
||||||
core.status.replay.save = [];
|
core.status.replay.save = [];
|
||||||
core.updateStatusBar();
|
core.updateStatusBar();
|
||||||
@ -1512,8 +1512,9 @@ control.prototype.checkAutosave = function () {
|
|||||||
control.prototype.doSL = function (id, type) {
|
control.prototype.doSL = function (id, type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'save': this._doSL_save(id); break;
|
case 'save': this._doSL_save(id); break;
|
||||||
case 'load': this._doSL_load(id); break;
|
case 'load': this._doSL_load(id, this._doSL_load_afterGet); break;
|
||||||
case 'replayLoad': this._doSL_replayLoad(id); break;
|
case 'replayLoad': this._doSL_load(id, this._doSL_replayLoad_afterGet); break;
|
||||||
|
case 'replayRemain': this._doSL_load(id, this._doSL_replayRemain_afterGet); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1542,14 +1543,14 @@ control.prototype._doSL_save = function (id) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
control.prototype._doSL_load = function (id) {
|
control.prototype._doSL_load = function (id, callback) {
|
||||||
if (id == 'autoSave' && core.saves.autosave.data != null) {
|
if (id == 'autoSave' && core.saves.autosave.data != null) {
|
||||||
this._doSL_load_afterGet(id, core.clone(core.saves.autosave.data));
|
callback(id, core.clone(core.saves.autosave.data))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.getLocalForage(id=='autoSave'?id:"save"+id, null, function(data) {
|
core.getLocalForage(id=='autoSave'?id:"save"+id, null, function(data) {
|
||||||
if (id == 'autoSave') core.saves.autosave.data = core.clone(data);
|
if (id == 'autoSave') core.saves.autosave.data = core.clone(data);
|
||||||
core.control._doSL_load_afterGet(id, data);
|
callback(id, data);
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
main.log(err);
|
main.log(err);
|
||||||
alert("无效的存档");
|
alert("无效的存档");
|
||||||
@ -1579,22 +1580,6 @@ control.prototype._doSL_load_afterGet = function (id, data) {
|
|||||||
core.setLocalStorage('saveIndex', core.saves.saveIndex);
|
core.setLocalStorage('saveIndex', core.saves.saveIndex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
control.prototype._doSL_replayLoad = function (id) {
|
|
||||||
if (id == 'autoSave' && core.saves.autosave.data != null) {
|
|
||||||
this._doSL_replayLoad_afterGet(core.clone(core.saves.autosave.data));
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
core.getLocalForage(id=='autoSave'?id:"save"+id, null, function(data) {
|
|
||||||
if (id == 'autoSave') core.saves.autosave.data = core.clone(data);
|
|
||||||
core.control._doSL_replayLoad_afterGet(id, data);
|
|
||||||
}, function(err) {
|
|
||||||
main.log(err);
|
|
||||||
alert("无效的存档");
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
control.prototype._doSL_replayLoad_afterGet = function (id, data) {
|
control.prototype._doSL_replayLoad_afterGet = function (id, data) {
|
||||||
@ -1613,6 +1598,34 @@ control.prototype._doSL_replayLoad_afterGet = function (id, data) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
control.prototype._doSL_replayRemain_afterGet = function (id, data) {
|
||||||
|
if (!data) return core.drawTip("无效的存档");
|
||||||
|
|
||||||
|
var route = core.decodeRoute(data.route);
|
||||||
|
if (core.status.tempRoute) {
|
||||||
|
var remainRoute = core.subarray(route, core.status.tempRoute);
|
||||||
|
if (remainRoute == null)
|
||||||
|
return alert("无法接续播放录像!\n该存档必须是前一个选择的存档的后续内容。");
|
||||||
|
delete core.status.tempRoute;
|
||||||
|
core.ui.closePanel();
|
||||||
|
core.startReplay(remainRoute);
|
||||||
|
core.drawTip("接续播放录像");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (data.floorId != core.status.floorId || data.hero.loc.x != core.getHeroLoc('x') || data.hero.loc.y != core.getHeroLoc('y'))
|
||||||
|
return alert("楼层或坐标不一致!");
|
||||||
|
|
||||||
|
core.status.tempRoute = route;
|
||||||
|
core.ui.closePanel();
|
||||||
|
core.drawText("\t[步骤2]请选择第二个存档。\n\r[yellow]该存档必须是前一个存档的后续。\r\n将尝试播放到此存档。", function () {
|
||||||
|
core.status.event.id = 'replayRemain';
|
||||||
|
core.lockControl();
|
||||||
|
var saveIndex = core.saves.saveIndex;
|
||||||
|
var page = parseInt((saveIndex - 1) / 5), offset = saveIndex - 5 * page;
|
||||||
|
core.ui.drawSLPanel(10 * page + offset);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
////// 同步存档到服务器 //////
|
////// 同步存档到服务器 //////
|
||||||
control.prototype.syncSave = function (type) {
|
control.prototype.syncSave = function (type) {
|
||||||
core.ui.drawWaiting("正在同步,请稍后...");
|
core.ui.drawWaiting("正在同步,请稍后...");
|
||||||
|
|||||||
@ -1227,7 +1227,7 @@ ui.prototype.drawQuickShop = function () {
|
|||||||
ui.prototype.drawSyncSave = function () {
|
ui.prototype.drawSyncSave = function () {
|
||||||
core.status.event.id = 'syncSave';
|
core.status.event.id = 'syncSave';
|
||||||
this.drawChoices(null, [
|
this.drawChoices(null, [
|
||||||
"同步存档到服务器", "从服务器加载存档", "存档至本地文件", "从本地文件读档", "回放当前录像", "下载当前录像", "清空本地存档", "返回主菜单"
|
"同步存档到服务器", "从服务器加载存档", "存档至本地文件", "从本地文件读档", "回放和下载录像", "清空本地存档", "返回主菜单"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1259,7 +1259,7 @@ ui.prototype.drawReplay = function () {
|
|||||||
core.lockControl();
|
core.lockControl();
|
||||||
core.status.event.id = 'replay';
|
core.status.event.id = 'replay';
|
||||||
this.drawChoices(null, [
|
this.drawChoices(null, [
|
||||||
"从头回放录像", "从存档开始回放", "选择录像文件", "下载当前录像", "返回游戏"
|
"从头回放录像", "从存档开始回放", "接续播放剩余录像", "选择录像文件", "下载当前录像", "返回游戏"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2204,7 +2204,7 @@ ui.prototype._drawSLPanel_drawRecords = function (n) {
|
|||||||
var page = core.status.event.data.page;
|
var page = core.status.event.data.page;
|
||||||
var offset = core.status.event.data.offset;
|
var offset = core.status.event.data.offset;
|
||||||
var u = Math.floor(this.PIXEL/6), size = Math.floor(this.PIXEL/3-20);
|
var u = Math.floor(this.PIXEL/6), size = Math.floor(this.PIXEL/3-20);
|
||||||
var name=core.status.event.id=='save'?"存档":core.status.event.id=='load'?"读档":core.status.event.id=='replayLoad'?"回放":"";
|
var name=core.status.event.id=='save'?"存档":core.status.event.id=='load'?"读档":"回放";
|
||||||
|
|
||||||
for (var i = 0; i < (n||6); i++){
|
for (var i = 0; i < (n||6); i++){
|
||||||
var data = core.status.event.ui[i];
|
var data = core.status.event.ui[i];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user