feat:拾取物品前自动保存
This commit is contained in:
parent
6e9f907d04
commit
388937f535
@ -656,16 +656,29 @@ control.prototype.moveOneStep = function (callback) {
|
|||||||
////// 实际每一步的行走过程 //////
|
////// 实际每一步的行走过程 //////
|
||||||
control.prototype.moveAction = function (callback) {
|
control.prototype.moveAction = function (callback) {
|
||||||
if (core.status.heroMoving > 0) return;
|
if (core.status.heroMoving > 0) return;
|
||||||
var noPass = core.noPass(core.nextX(), core.nextY()), canMove = core.canMoveHero();
|
const nextX = core.nextX(), nextY = core.nextY();
|
||||||
// 下一个点如果不能走
|
const noPass = core.noPass(nextX, nextY);
|
||||||
|
const canMove = core.canMoveHero();
|
||||||
|
// 下一个点如果不可通行
|
||||||
if (noPass || !canMove) return this._moveAction_noPass(canMove, callback);
|
if (noPass || !canMove) return this._moveAction_noPass(canMove, callback);
|
||||||
if (core.getLocalStorage("autoSaveBeforeUseItem")) { // 即将进入滑冰前触发自动存档
|
// 下一个点如果可通行
|
||||||
const nextbgNumber = core.maps.getBgNumber(core.nextX(), core.nextY(), core.status.floorId);
|
// 满足条件时触发一次自动存档
|
||||||
if (core.onSki(nextbgNumber)) {
|
if (!core.isReplaying()) {
|
||||||
|
const dir = core.getHeroLoc('direction');
|
||||||
|
let needAutoSave = false;
|
||||||
|
if (core.getLocalStorage("autoSaveBeforeUseItem") &&
|
||||||
|
core.onSki(core.maps.getBgNumber(nextX, nextY))) {
|
||||||
|
needAutoSave = true;
|
||||||
|
}
|
||||||
|
else if (core.getLocalStorage('autoSaveBeforePickItem') &&
|
||||||
|
core.getBlockCls(nextX, nextY) === 'items') {
|
||||||
|
needAutoSave = true;
|
||||||
|
}
|
||||||
|
if (needAutoSave) {
|
||||||
|
core.status.route.push(`turn:${dir}`); // 保存触发转向后的方向
|
||||||
core.control.autosave();
|
core.control.autosave();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._moveAction_moving(callback);
|
this._moveAction_moving(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,8 +736,12 @@ control.prototype._moveAction_popAutomaticRoute = function () {
|
|||||||
control.prototype.moveHero = function (direction, callback) {
|
control.prototype.moveHero = function (direction, callback) {
|
||||||
// 如果正在移动,直接return
|
// 如果正在移动,直接return
|
||||||
if (core.status.heroMoving != 0) return;
|
if (core.status.heroMoving != 0) return;
|
||||||
if (core.isset(direction))
|
if (core.isset(direction)) {
|
||||||
|
if (core.status.hero.loc.direction != direction) {
|
||||||
|
core.status.dirBeforeMove = core.status.hero.loc.direction; // 记录转向前的方向,如果下一步自动保存要还原到这个方向
|
||||||
|
}
|
||||||
core.setHeroLoc('direction', direction);
|
core.setHeroLoc('direction', direction);
|
||||||
|
}
|
||||||
|
|
||||||
if (callback) return this.moveAction(callback);
|
if (callback) return this.moveAction(callback);
|
||||||
this._moveHero_moving();
|
this._moveHero_moving();
|
||||||
|
|||||||
@ -4921,6 +4921,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
['1,5', 'comment', new SettingButton(40, 330, 150, 25)],
|
['1,5', 'comment', new SettingButton(40, 330, 150, 25)],
|
||||||
['2,5', 'autoHideFloor', new SettingButton(220, 330, 150, 25)],
|
['2,5', 'autoHideFloor', new SettingButton(220, 330, 150, 25)],
|
||||||
['1,6', 'autoSaveBeforeUseItem', new SettingButton(40, 355, 150, 25)],
|
['1,6', 'autoSaveBeforeUseItem', new SettingButton(40, 355, 150, 25)],
|
||||||
|
['2,6', 'autoSaveBeforePickItem', new SettingButton(220, 355, 150, 25)],
|
||||||
]);
|
]);
|
||||||
return gamePlayMenu;
|
return gamePlayMenu;
|
||||||
}
|
}
|
||||||
@ -5934,8 +5935,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
core.fillRoundRect(ctx, 21, 71, core.__PIXELS__ - 42, 68, 3, " #555555");
|
core.fillRoundRect(ctx, 21, 71, core.__PIXELS__ - 42, 68, 3, " #555555");
|
||||||
|
|
||||||
// 绘制设置的框体
|
// 绘制设置的框体
|
||||||
core.strokeRoundRect(ctx, 20, 150, core.__PIXELS__ - 40, 240, 3, "white");
|
core.strokeRoundRect(ctx, 20, 150, core.__PIXELS__ - 40, 256, 3, "white");
|
||||||
core.fillRoundRect(ctx, 21, 151, core.__PIXELS__ - 42, 238, 3, " #999999");
|
core.fillRoundRect(ctx, 21, 151, core.__PIXELS__ - 42, 254, 3, " #999999");
|
||||||
|
|
||||||
core.setTextAlign(ctx, 'center');
|
core.setTextAlign(ctx, 'center');
|
||||||
core.ui.fillText(ctx, "设置", core.__PIXELS__ / 2, 25, 'white', '20px Verdana');
|
core.ui.fillText(ctx, "设置", core.__PIXELS__ / 2, 25, 'white', '20px Verdana');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user