replayRemain
This commit is contained in:
parent
e5903b2e6e
commit
e52a8378e8
@ -245,6 +245,7 @@ actions.prototype._sys_keyDown_lockControl = function (keyCode) {
|
||||
case 'save':
|
||||
case 'load':
|
||||
case 'replayLoad':
|
||||
case 'replayRemain':
|
||||
this._keyDownSL(keyCode);
|
||||
break;
|
||||
case 'shop':
|
||||
@ -346,6 +347,7 @@ actions.prototype._sys_keyUp_lockControl = function (keyCode, altKey) {
|
||||
case 'save':
|
||||
case 'load':
|
||||
case 'replayLoad':
|
||||
case 'replayRemain':
|
||||
this._keyUpSL(keyCode);
|
||||
break;
|
||||
case 'keyBoard':
|
||||
@ -612,6 +614,7 @@ actions.prototype._sys_onclick_lockControl = function (x, y) {
|
||||
case 'save':
|
||||
case 'load':
|
||||
case 'replayLoad':
|
||||
case 'replayRemain':
|
||||
this._clickSL(x, y);
|
||||
break;
|
||||
case 'confirmBox':
|
||||
@ -756,7 +759,7 @@ actions.prototype._sys_longClick_lockControl = function (x, y) {
|
||||
}
|
||||
}
|
||||
// 长按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) {
|
||||
this._clickSL(x, y);
|
||||
return true;
|
||||
@ -1657,6 +1660,7 @@ actions.prototype._clickSL = function (x, y) {
|
||||
if (core.events.recoverEvents(core.status.event.interval))
|
||||
return;
|
||||
core.ui.closePanel();
|
||||
delete core.status.tempRoute;
|
||||
if (!core.isPlaying())
|
||||
core.showStartAnimate(true);
|
||||
return;
|
||||
@ -2031,12 +2035,10 @@ actions.prototype._clickSyncSave = function (x, y) {
|
||||
case 4:
|
||||
return this._clickSyncSave_replay();
|
||||
case 5:
|
||||
return this._clickSyncSave_download();
|
||||
case 6:
|
||||
core.status.event.selection = 0;
|
||||
core.ui.drawStorageRemove();
|
||||
break;
|
||||
case 7:
|
||||
case 6:
|
||||
core.status.event.selection = 4;
|
||||
core.ui.drawSettings();
|
||||
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) {
|
||||
if (keycode == 27 || keycode == 88) {
|
||||
@ -2264,9 +2253,10 @@ actions.prototype._clickReplay = function (x, y) {
|
||||
switch (selection) {
|
||||
case 0: return this._clickReplay_fromBeginning();
|
||||
case 1: return this._clickReplay_fromLoad();
|
||||
case 2: return core.chooseReplayFile();
|
||||
case 3: return this._clickReplay_download();
|
||||
case 4: return core.ui.closePanel();
|
||||
case 2: return this._clickReplay_continueReplay();
|
||||
case 3: return core.chooseReplayFile();
|
||||
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);
|
||||
}
|
||||
|
||||
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 () {
|
||||
if (core.hasFlag('debug')) return core.drawText("\t[系统提示]调试模式下无法下载录像");
|
||||
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.speed=1.0;
|
||||
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.save = [];
|
||||
core.updateStatusBar();
|
||||
@ -1512,8 +1512,9 @@ control.prototype.checkAutosave = function () {
|
||||
control.prototype.doSL = function (id, type) {
|
||||
switch (type) {
|
||||
case 'save': this._doSL_save(id); break;
|
||||
case 'load': this._doSL_load(id); break;
|
||||
case 'replayLoad': this._doSL_replayLoad(id); break;
|
||||
case 'load': this._doSL_load(id, this._doSL_load_afterGet); 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;
|
||||
}
|
||||
|
||||
control.prototype._doSL_load = function (id) {
|
||||
control.prototype._doSL_load = function (id, callback) {
|
||||
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 {
|
||||
core.getLocalForage(id=='autoSave'?id:"save"+id, null, function(data) {
|
||||
if (id == 'autoSave') core.saves.autosave.data = core.clone(data);
|
||||
core.control._doSL_load_afterGet(id, data);
|
||||
callback(id, data);
|
||||
}, function(err) {
|
||||
main.log(err);
|
||||
alert("无效的存档");
|
||||
@ -1579,22 +1580,6 @@ control.prototype._doSL_load_afterGet = function (id, data) {
|
||||
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) {
|
||||
@ -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) {
|
||||
core.ui.drawWaiting("正在同步,请稍后...");
|
||||
|
||||
@ -1227,7 +1227,7 @@ ui.prototype.drawQuickShop = function () {
|
||||
ui.prototype.drawSyncSave = function () {
|
||||
core.status.event.id = 'syncSave';
|
||||
this.drawChoices(null, [
|
||||
"同步存档到服务器", "从服务器加载存档", "存档至本地文件", "从本地文件读档", "回放当前录像", "下载当前录像", "清空本地存档", "返回主菜单"
|
||||
"同步存档到服务器", "从服务器加载存档", "存档至本地文件", "从本地文件读档", "回放和下载录像", "清空本地存档", "返回主菜单"
|
||||
]);
|
||||
}
|
||||
|
||||
@ -1259,7 +1259,7 @@ ui.prototype.drawReplay = function () {
|
||||
core.lockControl();
|
||||
core.status.event.id = 'replay';
|
||||
this.drawChoices(null, [
|
||||
"从头回放录像", "从存档开始回放", "选择录像文件", "下载当前录像", "返回游戏"
|
||||
"从头回放录像", "从存档开始回放", "接续播放剩余录像", "选择录像文件", "下载当前录像", "返回游戏"
|
||||
]);
|
||||
}
|
||||
|
||||
@ -2204,7 +2204,7 @@ ui.prototype._drawSLPanel_drawRecords = function (n) {
|
||||
var page = core.status.event.data.page;
|
||||
var offset = core.status.event.data.offset;
|
||||
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++){
|
||||
var data = core.status.event.ui[i];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user