openDoor animates
This commit is contained in:
parent
4e79ba1015
commit
6bcba464f7
@ -162,11 +162,13 @@ core.nextY(n)
|
|||||||
|
|
||||||
core.openDoor(id, x, y, needKey, callback) [异步]
|
core.openDoor(id, x, y, needKey, callback) [异步]
|
||||||
尝试开门操作。id为目标点的ID,x和y为坐标,needKey表示是否需要使用钥匙,callback为开门完毕后的回调函数。
|
尝试开门操作。id为目标点的ID,x和y为坐标,needKey表示是否需要使用钥匙,callback为开门完毕后的回调函数。
|
||||||
|
id可为null代表使用地图上的值。
|
||||||
例如:core.openDoor('yellowDoor', 10, 3, false, function() {console.log("1")})
|
例如:core.openDoor('yellowDoor', 10, 3, false, function() {console.log("1")})
|
||||||
|
|
||||||
|
|
||||||
core.battle(id, x, y, force, callback) [异步]
|
core.battle(id, x, y, force, callback) [异步]
|
||||||
执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示是否是强制战斗,callback为战斗完毕后的回调函数。
|
执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示是否是强制战斗,callback为战斗完毕后的回调函数。
|
||||||
|
id可为null代表使用地图上的值。
|
||||||
例如:core.battle('greenSlime', null, null, true)
|
例如:core.battle('greenSlime', null, null, true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -126,7 +126,7 @@ animate为该装备的攻击动画,仅对type为0时有效。具体可参见[
|
|||||||
|
|
||||||
``` text
|
``` text
|
||||||
yellowDoor, blueDoor, redDoor, greenDoor, specialDoor, steelDoor,
|
yellowDoor, blueDoor, redDoor, greenDoor, specialDoor, steelDoor,
|
||||||
yellowWall, blueWall, whiteWall, lava, star
|
yellowWall, blueWall, whiteWall
|
||||||
```
|
```
|
||||||
|
|
||||||
## 怪物
|
## 怪物
|
||||||
|
|||||||
@ -684,18 +684,15 @@ events.prototype.doAction = function() {
|
|||||||
y = core.calValue(data.loc[1]);
|
y = core.calValue(data.loc[1]);
|
||||||
}
|
}
|
||||||
var floorId=data.floorId || core.status.floorId;
|
var floorId=data.floorId || core.status.floorId;
|
||||||
var block=core.getBlock(x, y, floorId);
|
if (floorId==core.status.floorId)
|
||||||
if (block!=null) {
|
core.openDoor(null, x, y, false, function() {
|
||||||
if (floorId==core.status.floorId)
|
core.events.doAction();
|
||||||
core.openDoor(block.block.event.id, block.block.x, block.block.y, false, function() {
|
})
|
||||||
core.events.doAction();
|
else {
|
||||||
})
|
core.removeBlock(x, y, floorId);
|
||||||
else {
|
this.doAction();
|
||||||
core.removeBlock(block.block.x,block.block.y,floorId);
|
|
||||||
this.doAction();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
this.doAction();
|
this.doAction();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1067,8 +1064,11 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) {
|
|||||||
|
|
||||||
if (core.interval.openDoorAnimate!=null) return;
|
if (core.interval.openDoorAnimate!=null) return;
|
||||||
|
|
||||||
|
if (!core.isset(id)) id = core.getBlockId(x, y);
|
||||||
|
|
||||||
// 是否存在门
|
// 是否存在门
|
||||||
if (!core.terrainExists(x, y, id) && id!='lava' && id!='star') {
|
if (!core.terrainExists(x, y, id) || !(id.endsWith("Door") || id.endsWith("Wall"))
|
||||||
|
|| !core.isset(core.material.icons.animates[id])) {
|
||||||
if (core.isset(callback)) callback();
|
if (core.isset(callback)) callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1078,24 +1078,13 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
core.stopAutomaticRoute();
|
core.stopAutomaticRoute();
|
||||||
var speed=30;
|
var speed = id.endsWith("Wall")?70:30;
|
||||||
var doorId = id;
|
|
||||||
if (doorId.length<4 || doorId.substring(doorId.length-4)!="Door") {
|
|
||||||
doorId=doorId+"Door";
|
|
||||||
speed=70;
|
|
||||||
}
|
|
||||||
// 不存在门
|
|
||||||
if (!core.isset(core.material.icons.animates[doorId])) {
|
|
||||||
if (core.isset(callback)) callback();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var key = id.replace("Door", "Key");
|
if (needKey && id.endsWith("Door")) {
|
||||||
if (needKey && (key=="specialKey" || core.isset(core.material.items[key]))) {
|
|
||||||
var key = id.replace("Door", "Key");
|
var key = id.replace("Door", "Key");
|
||||||
if (!core.hasItem(key)) {
|
if (!core.hasItem(key)) {
|
||||||
if (key != "specialKey")
|
if (key != "specialKey")
|
||||||
core.drawTip("你没有" + core.material.items[key].name);
|
core.drawTip("你没有" + ((core.material.items[key]||{}).name||"钥匙"));
|
||||||
else core.drawTip("无法开启此门");
|
else core.drawTip("无法开启此门");
|
||||||
core.clearContinueAutomaticRoute();
|
core.clearContinueAutomaticRoute();
|
||||||
return;
|
return;
|
||||||
@ -1107,7 +1096,7 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) {
|
|||||||
// open
|
// open
|
||||||
core.playSound("door.mp3");
|
core.playSound("door.mp3");
|
||||||
var state = 0;
|
var state = 0;
|
||||||
var door = core.material.icons.animates[doorId];
|
var door = core.material.icons.animates[id];
|
||||||
core.status.replay.animate=true;
|
core.status.replay.animate=true;
|
||||||
core.removeGlobalAnimate(x,y);
|
core.removeGlobalAnimate(x,y);
|
||||||
core.interval.openDoorAnimate = window.setInterval(function () {
|
core.interval.openDoorAnimate = window.setInterval(function () {
|
||||||
@ -1134,6 +1123,12 @@ events.prototype.battle = function (id, x, y, force, callback) {
|
|||||||
core.stopHero();
|
core.stopHero();
|
||||||
core.stopAutomaticRoute();
|
core.stopAutomaticRoute();
|
||||||
|
|
||||||
|
if (!core.isset(id)) id = core.getBlockId(x, y);
|
||||||
|
if (!core.isset(id)) {
|
||||||
|
if (core.isset(callback)) callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 非强制战斗
|
// 非强制战斗
|
||||||
if (!core.enemys.canBattle(id, x, y) && !force && !core.isset(core.status.event.id)) {
|
if (!core.enemys.canBattle(id, x, y) && !force && !core.isset(core.status.event.id)) {
|
||||||
core.drawTip("你打不过此怪物!");
|
core.drawTip("你打不过此怪物!");
|
||||||
|
|||||||
@ -64,11 +64,11 @@ icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
'greenDoor': 7,
|
'greenDoor': 7,
|
||||||
'specialDoor': 8,
|
'specialDoor': 8,
|
||||||
'steelDoor': 9,
|
'steelDoor': 9,
|
||||||
'yellowWallDoor': 10,
|
'yellowWall': 10,
|
||||||
'whiteWallDoor': 11,
|
'whiteWall': 11,
|
||||||
'blueWallDoor': 12,
|
'blueWall': 12,
|
||||||
'lavaDoor': 13,
|
'crystalUp': 13,
|
||||||
'starDoor': 14,
|
'crystalBottom': 14,
|
||||||
'starPortal': 15,
|
'starPortal': 15,
|
||||||
'fire': 16,
|
'fire': 16,
|
||||||
'portal': 17,
|
'portal': 17,
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 32 KiB |
@ -99,6 +99,11 @@ maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
|||||||
'93':{'cls': 'animates', 'id': 'downPortal', 'noPass': false}, // 下箭头
|
'93':{'cls': 'animates', 'id': 'downPortal', 'noPass': false}, // 下箭头
|
||||||
'94':{'cls': 'animates', 'id': 'rightPortal', 'noPass': false}, // 右箭头
|
'94':{'cls': 'animates', 'id': 'rightPortal', 'noPass': false}, // 右箭头
|
||||||
|
|
||||||
|
// 101~120 其他的animates
|
||||||
|
'101':{'cls': 'animates', 'id': 'crystalUp'},
|
||||||
|
'102':{'cls': 'animates', 'id': 'crystalBottom'},
|
||||||
|
'103':{'cls': 'animates', 'id': 'fire'},
|
||||||
|
'104':{'cls': 'animates', 'id': 'switch'},
|
||||||
|
|
||||||
////////////////////////// NPC部分 //////////////////////////
|
////////////////////////// NPC部分 //////////////////////////
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user