Fix 282 bugs & equip autoevent
This commit is contained in:
parent
cd746fd6d9
commit
90a197fe88
@ -1537,6 +1537,10 @@ actions.prototype._clickToolbox = function (x, y) {
|
||||
if (x >= this.LAST - 2 && y == this.LAST) {
|
||||
core.playSound('取消');
|
||||
core.ui.closePanel();
|
||||
var last = core.status.route[core.status.route.length - 1];
|
||||
if (last.startsWith('equip:') || last.startsWith('unEquip:')) {
|
||||
core.status.route.push('no');
|
||||
}
|
||||
core.checkAutoEvents();
|
||||
return;
|
||||
}
|
||||
@ -1713,6 +1717,10 @@ actions.prototype._keyUpToolbox = function (keycode) {
|
||||
if (keycode == 84 || keycode == 27 || keycode == 88) {
|
||||
core.playSound('取消');
|
||||
core.ui.closePanel();
|
||||
var last = core.status.route[core.status.route.length - 1];
|
||||
if (last.startsWith('equip:') || last.startsWith('unEquip:')) {
|
||||
core.status.route.push('no');
|
||||
}
|
||||
core.checkAutoEvents();
|
||||
return;
|
||||
}
|
||||
@ -1740,6 +1748,10 @@ actions.prototype._clickEquipbox = function (x, y) {
|
||||
if (x >= this.LAST - 2 && y == this.LAST) {
|
||||
core.playSound('取消');
|
||||
core.ui.closePanel();
|
||||
var last = core.status.route[core.status.route.length - 1];
|
||||
if (last.startsWith('equip:') || last.startsWith('unEquip:')) {
|
||||
core.status.route.push('no');
|
||||
}
|
||||
core.checkAutoEvents();
|
||||
return;
|
||||
}
|
||||
@ -1898,6 +1910,10 @@ actions.prototype._keyUpEquipbox = function (keycode, altKey) {
|
||||
if (keycode == 81 || keycode == 27 || keycode == 88) {
|
||||
core.playSound('取消');
|
||||
core.ui.closePanel();
|
||||
var last = core.status.route[core.status.route.length - 1];
|
||||
if (last.startsWith('equip:') || last.startsWith('unEquip:')) {
|
||||
core.status.route.push('no');
|
||||
}
|
||||
core.checkAutoEvents();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ control.prototype._init = function () {
|
||||
this.registerReplayAction("key", this._replayAction_key);
|
||||
this.registerReplayAction("click", this._replayAction_click);
|
||||
this.registerReplayAction("ignoreInput", this._replayAction_ignoreInput);
|
||||
this.registerReplayAction("no", this._replayAction_no);
|
||||
// --- 注册系统的resize
|
||||
this.registerResize("gameGroup", this._resize_gameGroup);
|
||||
this.registerResize("canvas", this._resize_canvas);
|
||||
@ -1751,10 +1752,24 @@ control.prototype._replayAction_equip = function (action) {
|
||||
var equipId = action.substring(6);
|
||||
var ownEquipment = core.getToolboxItems('equips');
|
||||
var index = ownEquipment.indexOf(equipId), per = core.__SIZE__-1;
|
||||
if (index<0) return false;
|
||||
if (index<0) {
|
||||
core.removeFlag('__doNotCheckAutoEvents__');
|
||||
return false;
|
||||
}
|
||||
|
||||
var cb = function () {
|
||||
var next = core.status.replay.toReplay[0]||"";
|
||||
if (!next.startsWith('equip:') && !next.startsWith('unEquip:')) {
|
||||
core.removeFlag('__doNotCheckAutoEvents__');
|
||||
core.checkAutoEvents();
|
||||
}
|
||||
core.replay();
|
||||
}
|
||||
core.setFlag('__doNotCheckAutoEvents__', true);
|
||||
|
||||
core.status.route.push(action);
|
||||
if (core.material.items[equipId].hideInReplay || core.status.replay.speed == 24) {
|
||||
core.loadEquip(equipId, core.replay);
|
||||
core.loadEquip(equipId, cb);
|
||||
return true;
|
||||
}
|
||||
core.status.event.data = {"page":Math.floor(index/per)+1, "selectId":null};
|
||||
@ -1762,7 +1777,7 @@ control.prototype._replayAction_equip = function (action) {
|
||||
core.ui._drawEquipbox(index);
|
||||
setTimeout(function () {
|
||||
core.ui.closePanel();
|
||||
core.loadEquip(equipId, core.replay);
|
||||
core.loadEquip(equipId, cb);
|
||||
}, core.control.__replay_getTimeout());
|
||||
return true;
|
||||
}
|
||||
@ -1770,16 +1785,30 @@ control.prototype._replayAction_equip = function (action) {
|
||||
control.prototype._replayAction_unEquip = function (action) {
|
||||
if (action.indexOf("unEquip:")!=0) return false;
|
||||
var equipType = parseInt(action.substring(8));
|
||||
if (!core.isset(equipType)) return false;
|
||||
if (!core.isset(equipType)) {
|
||||
core.removeFlag('__doNotCheckAutoEvents__');
|
||||
return false;
|
||||
}
|
||||
|
||||
var cb = function () {
|
||||
var next = core.status.replay.toReplay[0]||"";
|
||||
if (!next.startsWith('equip:') && !next.startsWith('unEquip:')) {
|
||||
core.removeFlag('__doNotCheckAutoEvents__');
|
||||
core.checkAutoEvents();
|
||||
}
|
||||
core.replay();
|
||||
}
|
||||
core.setFlag('__doNotCheckAutoEvents__', true);
|
||||
|
||||
core.ui._drawEquipbox(equipType);
|
||||
core.status.route.push(action);
|
||||
if (core.status.replay.speed == 24) {
|
||||
core.unloadEquip(equipType, core.replay);
|
||||
core.unloadEquip(equipType, cb);
|
||||
return true;
|
||||
}
|
||||
setTimeout(function () {
|
||||
core.ui.closePanel();
|
||||
core.unloadEquip(equipType, core.replay);
|
||||
core.unloadEquip(equipType, cb);
|
||||
}, core.control.__replay_getTimeout());
|
||||
return true;
|
||||
}
|
||||
@ -1901,6 +1930,13 @@ control.prototype._replayAction_ignoreInput = function (action) {
|
||||
return false;
|
||||
}
|
||||
|
||||
control.prototype._replayAction_no = function (action) {
|
||||
if (action != 'no') return false;
|
||||
core.status.route.push(action);
|
||||
core.replay();
|
||||
return true;
|
||||
}
|
||||
|
||||
// ------ 存读档相关 ------ //
|
||||
|
||||
////// 自动存档 //////
|
||||
|
||||
@ -160,7 +160,10 @@ events.prototype._gameOver_confirmUpload = function (ending, norank) {
|
||||
core.events._gameOver_doUpload("", ending, norank);
|
||||
}
|
||||
else {
|
||||
core.myprompt("请输入你的ID:", core.getCookie('id') || "", function (username) {
|
||||
var id = core.getCookie('id') || "";
|
||||
var hint = "请输入你的ID:\n(登录状态下输入数字用户编号可成为蓝名成绩并计入用户通关数)";
|
||||
if (id) hint = "请输入你的ID:\n(输入数字用户编号"+id+ "可成为蓝名成绩并计入用户通关数)";
|
||||
core.myprompt(hint, id, function (username) {
|
||||
core.events._gameOver_doUpload(username, ending, norank);
|
||||
});
|
||||
}
|
||||
@ -255,13 +258,13 @@ events.prototype._gameOver_askRate = function (ending) {
|
||||
return;
|
||||
}
|
||||
|
||||
core.ui.drawConfirmBox("恭喜通关!你想进行评分吗?", function () {
|
||||
core.ui.drawConfirmBox("恭喜通关!你想查看榜单、评论,以及评分和标色投票吗?", function () {
|
||||
if (core.platform.isPC) {
|
||||
window.open("/score.php?name=" + core.firstData.name, "_blank");
|
||||
window.open("/tower/?name=" + core.firstData.name, "_blank");
|
||||
core.restart();
|
||||
}
|
||||
else {
|
||||
window.location.href = "/score.php?name=" + core.firstData.name;
|
||||
window.location.href = "/tower/?name=" + core.firstData.name;
|
||||
}
|
||||
}, function () {
|
||||
core.restart();
|
||||
@ -1133,6 +1136,7 @@ events.prototype.recoverEvents = function (data) {
|
||||
events.prototype.checkAutoEvents = function () {
|
||||
// 只有在无操作或事件流中才能执行自动事件!
|
||||
if (!core.isPlaying() || (core.status.lockControl && core.status.event.id != 'action')) return;
|
||||
if (core.hasFlag('__doNotCheckAutoEvents__')) return;
|
||||
var todo = [], delay = [];
|
||||
core.status.autoEvents.forEach(function (autoEvent) {
|
||||
var symbol = autoEvent.symbol, x = autoEvent.x, y = autoEvent.y, floorId = autoEvent.floorId;
|
||||
|
||||
@ -2592,6 +2592,8 @@ maps.prototype.moveBlock = function (x, y, steps, time, keep, callback) {
|
||||
|
||||
maps.prototype._moveBlock_doMove = function (blockInfo, canvases, moveInfo, callback) {
|
||||
var animateTotal = blockInfo.animate, animateTime = 0;
|
||||
// 强制npc48行走时使用四帧动画
|
||||
if (!blockInfo.doorInfo && !blockInfo.bigImage && blockInfo.cls == 'npc48') animateTotal = 4;
|
||||
var _run = function () {
|
||||
var cb = function () {
|
||||
core.maps._deleteDetachedBlock(canvases);
|
||||
|
||||
11
server.py
11
server.py
@ -67,7 +67,12 @@ def all_floors():
|
||||
if len(ids) == 0:
|
||||
abort(404)
|
||||
return None
|
||||
return Response('\n'.join([get_file('project/floors/%s.js' % id) for id in ids]), mimetype = 'text/javascript')
|
||||
content = []
|
||||
for id in ids:
|
||||
v = get_file('project/floors/%s.js' % id)
|
||||
if isPy3: v = str(v, encoding = 'utf-8')
|
||||
content.append(v)
|
||||
return Response('\n'.join(content), mimetype = 'text/javascript')
|
||||
|
||||
@app.route('/__all_animates__', methods=['GET'])
|
||||
def all_animates():
|
||||
@ -79,7 +84,9 @@ def all_animates():
|
||||
for id in ids:
|
||||
animate = 'project/animates/%s.animate' % id
|
||||
if os.path.exists(animate):
|
||||
content.append(get_file(animate))
|
||||
v = get_file(animate)
|
||||
if isPy3: v = str(v, encoding = 'utf-8')
|
||||
content.append(v)
|
||||
else: content.append('')
|
||||
return '@@@~~~###~~~@@@'.join(content)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user