mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 11:48:56 +00:00
Fixed frontend action triggers.
This commit is contained in:
parent
e9119530f1
commit
b27b567c77
@ -58,7 +58,7 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
BulletLocalId: last.BattleAttr.BulletLocalId,
|
BulletLocalId: last.BattleAttr.BulletLocalId,
|
||||||
OriginatedRenderFrameId: last.BattleAttr.OriginatedRenderFrameId,
|
OriginatedRenderFrameId: last.BattleAttr.OriginatedRenderFrameId,
|
||||||
OffenderJoinIndex: last.BattleAttr.OffenderJoinIndex,
|
OffenderJoinIndex: last.BattleAttr.OffenderJoinIndex,
|
||||||
TeamId: last.BattleAttr.TeamId,
|
TeamId: last.BattleAttr.TeamId,
|
||||||
|
|
||||||
StartupFrames: last.Bullet.StartupFrames,
|
StartupFrames: last.Bullet.StartupFrames,
|
||||||
CancellableStFrame: last.Bullet.CancellableStFrame,
|
CancellableStFrame: last.Bullet.CancellableStFrame,
|
||||||
@ -81,11 +81,11 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
|
|
||||||
BlowUp: last.Bullet.BlowUp,
|
BlowUp: last.Bullet.BlowUp,
|
||||||
|
|
||||||
SpeciesId: last.Bullet.SpeciesId,
|
SpeciesId: last.Bullet.SpeciesId,
|
||||||
ExplosionFrames: last.Bullet.ExplosionFrames,
|
ExplosionFrames: last.Bullet.ExplosionFrames,
|
||||||
|
|
||||||
BlState: last.BlState,
|
BlState: last.BlState,
|
||||||
FramesInBlState: last.FramesInBlState,
|
FramesInBlState: last.FramesInBlState,
|
||||||
}
|
}
|
||||||
ret.MeleeBullets[i] = pbBullet
|
ret.MeleeBullets[i] = pbBullet
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
BulletLocalId: last.BattleAttr.BulletLocalId,
|
BulletLocalId: last.BattleAttr.BulletLocalId,
|
||||||
OriginatedRenderFrameId: last.BattleAttr.OriginatedRenderFrameId,
|
OriginatedRenderFrameId: last.BattleAttr.OriginatedRenderFrameId,
|
||||||
OffenderJoinIndex: last.BattleAttr.OffenderJoinIndex,
|
OffenderJoinIndex: last.BattleAttr.OffenderJoinIndex,
|
||||||
TeamId: last.BattleAttr.TeamId,
|
TeamId: last.BattleAttr.TeamId,
|
||||||
|
|
||||||
StartupFrames: last.Bullet.StartupFrames,
|
StartupFrames: last.Bullet.StartupFrames,
|
||||||
CancellableStFrame: last.Bullet.CancellableStFrame,
|
CancellableStFrame: last.Bullet.CancellableStFrame,
|
||||||
@ -118,11 +118,11 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
|
|
||||||
BlowUp: last.Bullet.BlowUp,
|
BlowUp: last.Bullet.BlowUp,
|
||||||
|
|
||||||
SpeciesId: last.Bullet.SpeciesId,
|
SpeciesId: last.Bullet.SpeciesId,
|
||||||
ExplosionFrames: last.Bullet.ExplosionFrames,
|
ExplosionFrames: last.Bullet.ExplosionFrames,
|
||||||
|
|
||||||
BlState: last.BlState,
|
BlState: last.BlState,
|
||||||
FramesInBlState: last.FramesInBlState,
|
FramesInBlState: last.FramesInBlState,
|
||||||
|
|
||||||
VirtualGridX: last.VirtualGridX,
|
VirtualGridX: last.VirtualGridX,
|
||||||
VirtualGridY: last.VirtualGridY,
|
VirtualGridY: last.VirtualGridY,
|
||||||
|
@ -1342,7 +1342,7 @@ func (pR *Room) doBattleMainLoopPerTickBackendDynamicsWithProperLocking(prevRend
|
|||||||
snapshotStFrameId = refSnapshotStFrameId
|
snapshotStFrameId = refSnapshotStFrameId
|
||||||
}
|
}
|
||||||
inputsBufferSnapshot := pR.produceInputsBufferSnapshotWithCurDynamicsRenderFrameAsRef(unconfirmedMask, snapshotStFrameId, pR.LastAllConfirmedInputFrameId+1)
|
inputsBufferSnapshot := pR.produceInputsBufferSnapshotWithCurDynamicsRenderFrameAsRef(unconfirmedMask, snapshotStFrameId, pR.LastAllConfirmedInputFrameId+1)
|
||||||
Logger.Debug(fmt.Sprintf("[forceConfirmation] roomId=%v, room.RenderFrameId=%v, room.CurDynamicsRenderFrameId=%v, room.LastAllConfirmedInputFrameId=%v, unconfirmedMask=%v", pR.Id, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, pR.LastAllConfirmedInputFrameId, unconfirmedMask))
|
//Logger.Warn(fmt.Sprintf("[forceConfirmation] roomId=%v, room.RenderFrameId=%v, room.CurDynamicsRenderFrameId=%v, room.LastAllConfirmedInputFrameId=%v, unconfirmedMask=%v", pR.Id, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, pR.LastAllConfirmedInputFrameId, unconfirmedMask))
|
||||||
pR.downsyncToAllPlayers(inputsBufferSnapshot)
|
pR.downsyncToAllPlayers(inputsBufferSnapshot)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1457,8 +1457,8 @@ func (pR *Room) downsyncToSinglePlayer(playerId int32, player *Player, refRender
|
|||||||
pbRefRenderFrame.SpeciesIdList = pR.SpeciesIdList
|
pbRefRenderFrame.SpeciesIdList = pR.SpeciesIdList
|
||||||
pR.sendSafely(pbRefRenderFrame, toSendInputFrameDownsyncsSnapshot, DOWNSYNC_MSG_ACT_FORCED_RESYNC, playerId, false)
|
pR.sendSafely(pbRefRenderFrame, toSendInputFrameDownsyncsSnapshot, DOWNSYNC_MSG_ACT_FORCED_RESYNC, playerId, false)
|
||||||
//Logger.Warn(fmt.Sprintf("Sent refRenderFrameId=%v & inputFrameIds [%d, %d), for roomId=%v, playerId=%d, playerJoinIndex=%d, renderFrameId=%d, curDynamicsRenderFrameId=%d, playerLastSentInputFrameId=%d: InputsBuffer=%v", refRenderFrameId, toSendInputFrameIdSt, toSendInputFrameIdEd, pR.Id, playerId, player.JoinIndex, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, player.LastSentInputFrameId, pR.InputsBufferString(false)))
|
//Logger.Warn(fmt.Sprintf("Sent refRenderFrameId=%v & inputFrameIds [%d, %d), for roomId=%v, playerId=%d, playerJoinIndex=%d, renderFrameId=%d, curDynamicsRenderFrameId=%d, playerLastSentInputFrameId=%d: InputsBuffer=%v", refRenderFrameId, toSendInputFrameIdSt, toSendInputFrameIdEd, pR.Id, playerId, player.JoinIndex, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, player.LastSentInputFrameId, pR.InputsBufferString(false)))
|
||||||
if shouldResync1 {
|
if shouldResync1 || shouldResync3 {
|
||||||
Logger.Warn(fmt.Sprintf("Sent refRenderFrameId=%v & inputFrameIds [%d, %d), for roomId=%v, playerId=%d, playerJoinIndex=%d, renderFrameId=%d, curDynamicsRenderFrameId=%d, playerLastSentInputFrameId=%d: shouldResync1=%v, shouldResync2=%v, shouldResync3=%v, playerBattleState=%d", refRenderFrameId, toSendInputFrameIdSt, toSendInputFrameIdEd, pR.Id, playerId, player.JoinIndex, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, player.LastSentInputFrameId, shouldResync1, shouldResync2, shouldResync3, playerBattleState))
|
Logger.Debug(fmt.Sprintf("Sent refRenderFrameId=%v & inputFrameIds [%d, %d), for roomId=%v, playerId=%d, playerJoinIndex=%d, renderFrameId=%d, curDynamicsRenderFrameId=%d, playerLastSentInputFrameId=%d: shouldResync1=%v, shouldResync2=%v, shouldResync3=%v, playerBattleState=%d", refRenderFrameId, toSendInputFrameIdSt, toSendInputFrameIdEd, pR.Id, playerId, player.JoinIndex, pR.RenderFrameId, pR.CurDynamicsRenderFrameId, player.LastSentInputFrameId, shouldResync1, shouldResync2, shouldResync3, playerBattleState))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pR.sendSafely(nil, toSendInputFrameDownsyncsSnapshot, DOWNSYNC_MSG_ACT_INPUT_BATCH, playerId, false)
|
pR.sendSafely(nil, toSendInputFrameDownsyncsSnapshot, DOWNSYNC_MSG_ACT_INPUT_BATCH, playerId, false)
|
||||||
|
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
|||||||
"_name": "Fireball1Explosion",
|
"_name": "Fireball1Explosion",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"_native": "",
|
"_native": "",
|
||||||
"_duration": 0.1,
|
"_duration": 0.26666666666666666,
|
||||||
"sample": 60,
|
"sample": 60,
|
||||||
"speed": 1,
|
"speed": 1,
|
||||||
"wrapMode": 1,
|
"wrapMode": 1,
|
||||||
@ -18,31 +18,31 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"frame": 0.016666666666666666,
|
"frame": 0.05,
|
||||||
"value": {
|
"value": {
|
||||||
"__uuid__": "c6a5994f-251d-4191-a550-dfef979bab59"
|
"__uuid__": "c6a5994f-251d-4191-a550-dfef979bab59"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"frame": 0.03333333333333333,
|
"frame": 0.11666666666666667,
|
||||||
"value": {
|
"value": {
|
||||||
"__uuid__": "417e58d9-e364-47f7-9364-f31ad3452adc"
|
"__uuid__": "417e58d9-e364-47f7-9364-f31ad3452adc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"frame": 0.05,
|
"frame": 0.15,
|
||||||
"value": {
|
"value": {
|
||||||
"__uuid__": "8b566f26-b34d-4da6-bdaa-078358a5b685"
|
"__uuid__": "8b566f26-b34d-4da6-bdaa-078358a5b685"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"frame": 0.06666666666666667,
|
"frame": 0.2,
|
||||||
"value": {
|
"value": {
|
||||||
"__uuid__": "6ec5f75d-307e-4292-b667-cbbb5a52c2f6"
|
"__uuid__": "6ec5f75d-307e-4292-b667-cbbb5a52c2f6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"frame": 0.08333333333333333,
|
"frame": 0.25,
|
||||||
"value": {
|
"value": {
|
||||||
"__uuid__": "d89977f1-d927-4a08-9591-9feb1daf68c8"
|
"__uuid__": "d89977f1-d927-4a08-9591-9feb1daf68c8"
|
||||||
}
|
}
|
||||||
|
@ -440,7 +440,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
217.50722273720794,
|
216.50635094610968,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -464,7 +464,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
210.4441731196186,
|
216.50635094610968,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -134,7 +134,7 @@ cc.Class({
|
|||||||
previousSelfInput = (null == previousInputFrameDownsync ? null : previousInputFrameDownsync.InputList[joinIndex - 1]);
|
previousSelfInput = (null == previousInputFrameDownsync ? null : previousInputFrameDownsync.InputList[joinIndex - 1]);
|
||||||
if (null != existingInputFrame) {
|
if (null != existingInputFrame) {
|
||||||
// This could happen upon either [type#1] or [type#2] forceConfirmation, where "refRenderFrame" is accompanied by some "inputFrameDownsyncs". The check here also guarantees that we don't override history
|
// This could happen upon either [type#1] or [type#2] forceConfirmation, where "refRenderFrame" is accompanied by some "inputFrameDownsyncs". The check here also guarantees that we don't override history
|
||||||
console.log(`noDelayInputFrameId=${inputFrameId} already exists in recentInputCache: recentInputCache=${self._stringifyRecentInputCache(false)}`);
|
//console.log(`noDelayInputFrameId=${inputFrameId} already exists in recentInputCache: recentInputCache=${self._stringifyRecentInputCache(false)}`);
|
||||||
return [previousSelfInput, existingInputFrame.InputList[joinIndex - 1]];
|
return [previousSelfInput, existingInputFrame.InputList[joinIndex - 1]];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +152,7 @@ cc.Class({
|
|||||||
prefabbedInputList[k] = (prefabbedInputList[k] & 15);
|
prefabbedInputList[k] = (prefabbedInputList[k] & 15);
|
||||||
}
|
}
|
||||||
currSelfInput = self.ctrl.getEncodedInput(); // When "null == existingInputFrame", it'd be safe to say that the realtime "self.ctrl.getEncodedInput()" is for the requested "inputFrameId"
|
currSelfInput = self.ctrl.getEncodedInput(); // When "null == existingInputFrame", it'd be safe to say that the realtime "self.ctrl.getEncodedInput()" is for the requested "inputFrameId"
|
||||||
|
//console.log(`@rdf.Id=${self.renderFrameId}, currSelfInput=${currSelfInput}`);
|
||||||
prefabbedInputList[(joinIndex - 1)] = currSelfInput;
|
prefabbedInputList[(joinIndex - 1)] = currSelfInput;
|
||||||
while (self.recentInputCache.EdFrameId <= inputFrameId) {
|
while (self.recentInputCache.EdFrameId <= inputFrameId) {
|
||||||
// Fill the gap
|
// Fill the gap
|
||||||
@ -916,12 +917,8 @@ batchInputFrameIdRange=[${batch[0].inputFrameId}, ${batch[batch.length - 1].inpu
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
let st = performance.now();
|
let st = performance.now();
|
||||||
let prevSelfInput = null,
|
|
||||||
currSelfInput = null;
|
|
||||||
const noDelayInputFrameId = gopkgs.ConvertToNoDelayInputFrameId(self.renderFrameId);
|
const noDelayInputFrameId = gopkgs.ConvertToNoDelayInputFrameId(self.renderFrameId);
|
||||||
if (gopkgs.ShouldGenerateInputFrameUpsync(self.renderFrameId)) {
|
const [prevSelfInput, currSelfInput] = self.getOrPrefabInputFrameUpsync(noDelayInputFrameId);
|
||||||
[prevSelfInput, currSelfInput] = self.getOrPrefabInputFrameUpsync(noDelayInputFrameId);
|
|
||||||
}
|
|
||||||
|
|
||||||
let t0 = performance.now();
|
let t0 = performance.now();
|
||||||
if (self.shouldSendInputFrameUpsyncBatch(prevSelfInput, currSelfInput, self.lastUpsyncInputFrameId, noDelayInputFrameId)) {
|
if (self.shouldSendInputFrameUpsyncBatch(prevSelfInput, currSelfInput, self.lastUpsyncInputFrameId, noDelayInputFrameId)) {
|
||||||
|
@ -94,7 +94,7 @@ cc.Class({
|
|||||||
const p2Vpos = gopkgs.WorldToVirtualGridPos(boundaryObjs.playerStartingPositions[1].x, boundaryObjs.playerStartingPositions[1].y);
|
const p2Vpos = gopkgs.WorldToVirtualGridPos(boundaryObjs.playerStartingPositions[1].x, boundaryObjs.playerStartingPositions[1].y);
|
||||||
const colliderRadiusV = gopkgs.WorldToVirtualGridPos(12.0, 0);
|
const colliderRadiusV = gopkgs.WorldToVirtualGridPos(12.0, 0);
|
||||||
|
|
||||||
const speciesIdList = [1, 4096];
|
const speciesIdList = [4096, 1];
|
||||||
const chConfigsOrderedByJoinIndex = gopkgs.GetCharacterConfigsOrderedByJoinIndex(speciesIdList);
|
const chConfigsOrderedByJoinIndex = gopkgs.GetCharacterConfigsOrderedByJoinIndex(speciesIdList);
|
||||||
|
|
||||||
const startRdf = window.pb.protos.RoomDownsyncFrame.create({
|
const startRdf = window.pb.protos.RoomDownsyncFrame.create({
|
||||||
|
@ -108,7 +108,9 @@ cc.Class({
|
|||||||
this.cachedBtnRightLevel = 0;
|
this.cachedBtnRightLevel = 0;
|
||||||
|
|
||||||
this.cachedBtnALevel = 0;
|
this.cachedBtnALevel = 0;
|
||||||
|
this.btnAEdgeTriggerLock = false;
|
||||||
this.cachedBtnBLevel = 0;
|
this.cachedBtnBLevel = 0;
|
||||||
|
this.btnBEdgeTriggerLock = false;
|
||||||
|
|
||||||
this.canvasNode = this.mapNode.parent;
|
this.canvasNode = this.mapNode.parent;
|
||||||
this.mainCameraNode = this.canvasNode.getChildByName("Main Camera"); // Cannot drag and assign the `mainCameraNode` from CocosCreator EDITOR directly, otherwise it'll cause an infinite loading time, till v2.1.0.
|
this.mainCameraNode = this.canvasNode.getChildByName("Main Camera"); // Cannot drag and assign the `mainCameraNode` from CocosCreator EDITOR directly, otherwise it'll cause an infinite loading time, till v2.1.0.
|
||||||
@ -164,30 +166,30 @@ cc.Class({
|
|||||||
|
|
||||||
if (self.btnA) {
|
if (self.btnA) {
|
||||||
self.btnA.on(cc.Node.EventType.TOUCH_START, function(evt) {
|
self.btnA.on(cc.Node.EventType.TOUCH_START, function(evt) {
|
||||||
self.cachedBtnALevel = 1;
|
self._triggerEdgeBtnA(true);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 0.3));
|
evt.target.runAction(cc.scaleTo(0.1, 0.3));
|
||||||
});
|
});
|
||||||
self.btnA.on(cc.Node.EventType.TOUCH_END, function(evt) {
|
self.btnA.on(cc.Node.EventType.TOUCH_END, function(evt) {
|
||||||
//self.cachedBtnALevel = 0;
|
self._triggerEdgeBtnA(false);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
||||||
});
|
});
|
||||||
self.btnA.on(cc.Node.EventType.TOUCH_CANCEL, function(evt) {
|
self.btnA.on(cc.Node.EventType.TOUCH_CANCEL, function(evt) {
|
||||||
//self.cachedBtnALevel = 0;
|
self._triggerEdgeBtnA(false);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.btnB) {
|
if (self.btnB) {
|
||||||
self.btnB.on(cc.Node.EventType.TOUCH_START, function(evt) {
|
self.btnB.on(cc.Node.EventType.TOUCH_START, function(evt) {
|
||||||
self.cachedBtnBLevel = 1;
|
self._triggerEdgeBtnB(true);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 0.3));
|
evt.target.runAction(cc.scaleTo(0.1, 0.3));
|
||||||
});
|
});
|
||||||
self.btnB.on(cc.Node.EventType.TOUCH_END, function(evt) {
|
self.btnB.on(cc.Node.EventType.TOUCH_END, function(evt) {
|
||||||
//self.cachedBtnBLevel = 0;
|
self._triggerEdgeBtnB(false);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
||||||
});
|
});
|
||||||
self.btnB.on(cc.Node.EventType.TOUCH_CANCEL, function(evt) {
|
self.btnB.on(cc.Node.EventType.TOUCH_CANCEL, function(evt) {
|
||||||
//self.cachedBtnBLevel = 0;
|
self._triggerEdgeBtnB(false);
|
||||||
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
evt.target.runAction(cc.scaleTo(0.1, 1.0));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -224,10 +226,10 @@ cc.Class({
|
|||||||
self.cachedBtnRightLevel = 1;
|
self.cachedBtnRightLevel = 1;
|
||||||
break;
|
break;
|
||||||
case cc.macro.KEY.h:
|
case cc.macro.KEY.h:
|
||||||
self.cachedBtnALevel = 1;
|
self._triggerEdgeBtnA(true);
|
||||||
break;
|
break;
|
||||||
case cc.macro.KEY.j:
|
case cc.macro.KEY.j:
|
||||||
self.cachedBtnBLevel = 1;
|
self._triggerEdgeBtnB(true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -248,14 +250,12 @@ cc.Class({
|
|||||||
case cc.macro.KEY.d:
|
case cc.macro.KEY.d:
|
||||||
self.cachedBtnRightLevel = 0;
|
self.cachedBtnRightLevel = 0;
|
||||||
break;
|
break;
|
||||||
/*
|
|
||||||
case cc.macro.KEY.h:
|
case cc.macro.KEY.h:
|
||||||
self.cachedBtnALevel = 0;
|
self._triggerEdgeBtnA(false);
|
||||||
break;
|
break;
|
||||||
case cc.macro.KEY.j:
|
case cc.macro.KEY.j:
|
||||||
self.cachedBtnBLevel = 0;
|
self._triggerEdgeBtnB(false);
|
||||||
break;
|
break;
|
||||||
*/
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -468,8 +468,8 @@ cc.Class({
|
|||||||
const btnALevel = (this.cachedBtnALevel << 4);
|
const btnALevel = (this.cachedBtnALevel << 4);
|
||||||
const btnBLevel = (this.cachedBtnBLevel << 5);
|
const btnBLevel = (this.cachedBtnBLevel << 5);
|
||||||
|
|
||||||
this.cachedBtnALevel = 0;
|
this.btnAEdgeTriggerLock = false;
|
||||||
this.cachedBtnBLevel = 0;
|
this.btnBEdgeTriggerLock = false;
|
||||||
return (btnBLevel + btnALevel + discretizedDir);
|
return (btnBLevel + btnALevel + discretizedDir);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -488,4 +488,18 @@ cc.Class({
|
|||||||
btnBLevel: btnBLevel,
|
btnBLevel: btnBLevel,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_triggerEdgeBtnA(rising) {
|
||||||
|
if (!this.btnAEdgeTriggerLock && (rising ? 0 : 1) == this.cachedBtnALevel) {
|
||||||
|
this.cachedBtnALevel = (rising ? 1 : 0);
|
||||||
|
this.btnAEdgeTriggerLock = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_triggerEdgeBtnB(rising) {
|
||||||
|
if (!this.btnBEdgeTriggerLock && (rising ? 0 : 1) == this.cachedBtnBLevel) {
|
||||||
|
this.cachedBtnBLevel = (rising ? 1 : 0);
|
||||||
|
this.btnBEdgeTriggerLock = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
"shelter_z_reducer",
|
"shelter_z_reducer",
|
||||||
"shelter"
|
"shelter"
|
||||||
],
|
],
|
||||||
"last-module-event-record-time": 1673325961305,
|
"last-module-event-record-time": 1673930863015,
|
||||||
"simulator-orientation": false,
|
"simulator-orientation": false,
|
||||||
"simulator-resolution": {
|
"simulator-resolution": {
|
||||||
"height": 640,
|
"height": 640,
|
||||||
|
@ -302,7 +302,7 @@ var skills = map[int]*Skill{
|
|||||||
HitboxOffsetY: int32(0),
|
HitboxOffsetY: int32(0),
|
||||||
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
CancellableStFrame: int32(13),
|
CancellableStFrame: int32(8),
|
||||||
CancellableEdFrame: int32(30),
|
CancellableEdFrame: int32(30),
|
||||||
|
|
||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
@ -337,7 +337,7 @@ var skills = map[int]*Skill{
|
|||||||
HitboxOffsetY: int32(0),
|
HitboxOffsetY: int32(0),
|
||||||
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
CancellableStFrame: int32(22),
|
CancellableStFrame: int32(19),
|
||||||
CancellableEdFrame: int32(36),
|
CancellableEdFrame: int32(36),
|
||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 6,
|
1: 6,
|
||||||
@ -500,7 +500,7 @@ var skills = map[int]*Skill{
|
|||||||
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
BlowUp: false,
|
BlowUp: false,
|
||||||
ExplosionFrames: 5,
|
ExplosionFrames: 15,
|
||||||
SpeciesId: int32(1),
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user