diff --git a/frontend/assets/plugin_scripts/jsexport.js b/frontend/assets/plugin_scripts/jsexport.js
index 16020ca..9401dfb 100644
--- a/frontend/assets/plugin_scripts/jsexport.js
+++ b/frontend/assets/plugin_scripts/jsexport.js
@@ -4996,7 +4996,7 @@ $packages["jsexport/battle"] = (function() {
this.Eles = Eles_;
});
SkillMapperType = $pkg.SkillMapperType = $newType(4, $kindFunc, "battle.SkillMapperType", true, "jsexport/battle", true, null);
- CharacterConfig = $pkg.CharacterConfig = $newType(0, $kindStruct, "battle.CharacterConfig", true, "jsexport/battle", true, function(SpeciesId_, SpeciesName_, InAirIdleFrameIdxTurningPoint_, InAirIdleFrameIdxTurnedCycle_, LayDownFrames_, LayDownFramesToRecover_, GetUpInvinsibleFrames_, GetUpFramesToRecover_, Speed_, JumpingInitVelY_, SkillMapper_) {
+ CharacterConfig = $pkg.CharacterConfig = $newType(0, $kindStruct, "battle.CharacterConfig", true, "jsexport/battle", true, function(SpeciesId_, SpeciesName_, InAirIdleFrameIdxTurningPoint_, InAirIdleFrameIdxTurnedCycle_, LayDownFrames_, LayDownFramesToRecover_, GetUpInvinsibleFrames_, GetUpFramesToRecover_, Speed_, JumpingInitVelY_, DashingEnabled_, OnWallEnabled_, WallJumpingInitVelX_, WallJumpingInitVelY_, WallSlidingVelY_, SkillMapper_) {
this.$val = this;
if (arguments.length === 0) {
this.SpeciesId = 0;
@@ -5009,6 +5009,11 @@ $packages["jsexport/battle"] = (function() {
this.GetUpFramesToRecover = 0;
this.Speed = 0;
this.JumpingInitVelY = 0;
+ this.DashingEnabled = false;
+ this.OnWallEnabled = false;
+ this.WallJumpingInitVelX = 0;
+ this.WallJumpingInitVelY = 0;
+ this.WallSlidingVelY = 0;
this.SkillMapper = $throwNilPointerError;
return;
}
@@ -5022,6 +5027,11 @@ $packages["jsexport/battle"] = (function() {
this.GetUpFramesToRecover = GetUpFramesToRecover_;
this.Speed = Speed_;
this.JumpingInitVelY = JumpingInitVelY_;
+ this.DashingEnabled = DashingEnabled_;
+ this.OnWallEnabled = OnWallEnabled_;
+ this.WallJumpingInitVelX = WallJumpingInitVelX_;
+ this.WallJumpingInitVelY = WallJumpingInitVelY_;
+ this.WallSlidingVelY = WallSlidingVelY_;
this.SkillMapper = SkillMapper_;
});
SatResult = $pkg.SatResult = $newType(0, $kindStruct, "battle.SatResult", true, "jsexport/battle", true, function(Overlap_, OverlapX_, OverlapY_, AContainedInB_, BContainedInA_, Axis_) {
@@ -5189,10 +5199,10 @@ $packages["jsexport/battle"] = (function() {
$pkg.ShouldGenerateInputFrameUpsync = ShouldGenerateInputFrameUpsync;
ConvertToDelayedInputFrameId = function(renderFrameId) {
var renderFrameId;
- if (renderFrameId < 8) {
+ if (renderFrameId < 4) {
return 0;
}
- return (((renderFrameId - 8 >> 0)) >> 2 >> 0);
+ return (((renderFrameId - 4 >> 0)) >> 2 >> 0);
};
$pkg.ConvertToDelayedInputFrameId = ConvertToDelayedInputFrameId;
ConvertToNoDelayInputFrameId = function(renderFrameId) {
@@ -5202,12 +5212,12 @@ $packages["jsexport/battle"] = (function() {
$pkg.ConvertToNoDelayInputFrameId = ConvertToNoDelayInputFrameId;
ConvertToFirstUsedRenderFrameId = function(inputFrameId) {
var inputFrameId;
- return (((inputFrameId << 2 >> 0)) + 8 >> 0);
+ return (((inputFrameId << 2 >> 0)) + 4 >> 0);
};
$pkg.ConvertToFirstUsedRenderFrameId = ConvertToFirstUsedRenderFrameId;
ConvertToLastUsedRenderFrameId = function(inputFrameId) {
var inputFrameId;
- return (((((inputFrameId << 2 >> 0)) + 8 >> 0) + 4 >> 0) - 1 >> 0);
+ return (((((inputFrameId << 2 >> 0)) + 4 >> 0) + 4 >> 0) - 1 >> 0);
};
$pkg.ConvertToLastUsedRenderFrameId = ConvertToLastUsedRenderFrameId;
decodeInput = function(encodedInput) {
@@ -5501,6 +5511,8 @@ $packages["jsexport/battle"] = (function() {
existent$1 = _tuple$1[1];
if (!existent$1) {
jumpedOrNot = true;
+ } else if (16 === currPlayerDownsync.CharacterState) {
+ jumpedOrNot = true;
}
}
}
@@ -5517,7 +5529,7 @@ $packages["jsexport/battle"] = (function() {
return [patternId, jumpedOrNot, effDx, effDy];
};
ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame = function(inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex) {
- var {_1, _2, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, $s, $r, $c} = $restore(this, {inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex});
+ var {_1, _2, _3, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, ctrlAlignmentWithHorizon1, ctrlAlignmentWithHorizon2, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fallStopping, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorm$1, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, normAlignmentWithHorizon1, normAlignmentWithHorizon2, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, xfac$4, $s, $r, $c} = $restore(this, {inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex});
/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
roomCapacity = currRenderFrame.PlayersArr.$length;
nextRenderFramePlayers = $makeSlice(sliceType$6, roomCapacity);
@@ -5550,7 +5562,6 @@ $packages["jsexport/battle"] = (function() {
newBullet$1 = [newBullet$1];
i$1 = _i$1;
currPlayerDownsync$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
- ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = false);
chConfig = ((i$1 < 0 || i$1 >= chConfigsOrderedByJoinIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : chConfigsOrderedByJoinIndex.$array[chConfigsOrderedByJoinIndex.$offset + i$1]);
thatPlayerInNextFrame = ((i$1 < 0 || i$1 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$1]);
_tuple = deriveOpPattern(currPlayerDownsync$1, thatPlayerInNextFrame, currRenderFrame, inputsBuffer);
@@ -5558,10 +5569,7 @@ $packages["jsexport/battle"] = (function() {
jumpedOrNot = _tuple[1];
effDx = _tuple[2];
effDy = _tuple[3];
- if (jumpedOrNot) {
- thatPlayerInNextFrame.VelY = (chConfig.JumpingInitVelY);
- ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = true);
- }
+ ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = jumpedOrNot);
joinIndex = currPlayerDownsync$1.JoinIndex;
_r = chConfig.SkillMapper(patternId, currPlayerDownsync$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
skillId = _r;
@@ -5654,13 +5662,27 @@ $packages["jsexport/battle"] = (function() {
_tmp$3 = 0;
(x$2 = joinIndex$1 - 1 >> 0, ((x$2 < 0 || x$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$2])).X = _tmp$2;
(x$3 = joinIndex$1 - 1 >> 0, ((x$3 < 0 || x$3 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$3])).Y = _tmp$3;
+ thatPlayerInNextFrame$1 = ((i$2 < 0 || i$2 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$2]);
chConfig$1 = ((i$2 < 0 || i$2 >= chConfigsOrderedByJoinIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : chConfigsOrderedByJoinIndex.$array[chConfigsOrderedByJoinIndex.$offset + i$2]);
_tmp$4 = currPlayerDownsync$2.VirtualGridX + currPlayerDownsync$2.VelX >> 0;
_tmp$5 = currPlayerDownsync$2.VirtualGridY + currPlayerDownsync$2.VelY >> 0;
newVx = _tmp$4;
newVy = _tmp$5;
if (((i$2 < 0 || i$2 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$2])) {
- newVy = newVy + (chConfig$1.JumpingInitVelY) >> 0;
+ if (16 === currPlayerDownsync$2.CharacterState) {
+ newVx = newVx - (currPlayerDownsync$2.VelX) >> 0;
+ xfac$1 = -1;
+ if (0 > thatPlayerInNextFrame$1.DirX) {
+ xfac$1 = -xfac$1;
+ }
+ newVx = newVx + (($imul(xfac$1, chConfig$1.WallJumpingInitVelX))) >> 0;
+ newVy = newVy + (chConfig$1.WallJumpingInitVelY) >> 0;
+ thatPlayerInNextFrame$1.VelX = (($imul(xfac$1, chConfig$1.WallJumpingInitVelX)));
+ thatPlayerInNextFrame$1.VelY = (chConfig$1.WallJumpingInitVelY);
+ } else {
+ thatPlayerInNextFrame$1.VelY = (chConfig$1.JumpingInitVelY);
+ newVy = newVy + (chConfig$1.JumpingInitVelY) >> 0;
+ }
}
_tuple$2 = VirtualGridToWorldPos(newVx, newVy);
wx = _tuple$2[0];
@@ -5675,7 +5697,7 @@ $packages["jsexport/battle"] = (function() {
_tmp$9 = $imul(currPlayerDownsync$2.ColliderRadius, 2);
colliderWidth = _tmp$8;
colliderHeight = _tmp$9;
- } else if ((_1 === (8)) || (_1 === (4)) || (_1 === (5))) {
+ } else if ((_1 === (8)) || (_1 === (4)) || (_1 === (5)) || (_1 === (16))) {
_tmp$10 = $imul(currPlayerDownsync$2.ColliderRadius, 2);
_tmp$11 = $imul(currPlayerDownsync$2.ColliderRadius, 2);
colliderWidth = _tmp$10;
@@ -5688,10 +5710,14 @@ $packages["jsexport/battle"] = (function() {
playerCollider = _r$1;
((i$2 < 0 || i$2 >= playerColliders.$length) ? ($throwRuntimeError("index out of range"), undefined) : playerColliders.$array[playerColliders.$offset + i$2] = playerCollider);
$r = collisionSys.Add(new sliceType$11([playerCollider])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
- thatPlayerInNextFrame$1 = ((i$2 < 0 || i$2 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$2]);
if (currPlayerDownsync$2.InAir) {
- thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0;
- thatPlayerInNextFrame$1.VelY = thatPlayerInNextFrame$1.VelY + (-50) >> 0;
+ if ((16 === currPlayerDownsync$2.CharacterState) && !((i$2 < 0 || i$2 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$2])) {
+ thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0;
+ thatPlayerInNextFrame$1.VelY = chConfig$1.WallSlidingVelY;
+ } else {
+ thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0;
+ thatPlayerInNextFrame$1.VelY = thatPlayerInNextFrame$1.VelY + (-50) >> 0;
+ }
}
_i$2++;
$s = 4; continue;
@@ -5707,11 +5733,11 @@ $packages["jsexport/battle"] = (function() {
/* */ $s = 12; continue;
/* if (((meleeBullet.Bullet.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames >> 0) <= currRenderFrame.Id) && (((meleeBullet.Bullet.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames >> 0) + meleeBullet.Bullet.ActiveFrames >> 0) > currRenderFrame.Id)) { */ case 10:
offender = (x$4 = currRenderFrame.PlayersArr, x$5 = meleeBullet.Bullet.OffenderJoinIndex - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]));
- xfac$1 = 1;
+ xfac$2 = 1;
if (0 > offender.DirX) {
- xfac$1 = -xfac$1;
+ xfac$2 = -xfac$2;
}
- _tuple$4 = VirtualGridToWorldPos(offender.VirtualGridX + ($imul(xfac$1, meleeBullet.Bullet.HitboxOffsetX)) >> 0, offender.VirtualGridY);
+ _tuple$4 = VirtualGridToWorldPos(offender.VirtualGridX + ($imul(xfac$2, meleeBullet.Bullet.HitboxOffsetX)) >> 0, offender.VirtualGridY);
bulletWx = _tuple$4[0];
bulletWy = _tuple$4[1];
_tuple$5 = VirtualGridToWorldPos(meleeBullet.Bullet.HitboxSizeX, meleeBullet.Bullet.HitboxSizeY);
@@ -5838,31 +5864,32 @@ $packages["jsexport/battle"] = (function() {
/* } */ case 26:
if (landedOnGravityPushback) {
thatPlayerInNextFrame$2.InAir = false;
- if (currPlayerDownsync$3.InAir && 0 >= currPlayerDownsync$3.VelY) {
+ fallStopping = currPlayerDownsync$3.InAir && 0 >= currPlayerDownsync$3.VelY;
+ if (fallStopping) {
thatPlayerInNextFrame$2.VelY = 0;
thatPlayerInNextFrame$2.VelX = 0;
- _tuple$9 = (_entry$1 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]);
- existent$1 = _tuple$9[1];
- if (existent$1) {
- if (8 === thatPlayerInNextFrame$2.CharacterState) {
- thatPlayerInNextFrame$2.CharacterState = 9;
- thatPlayerInNextFrame$2.FramesToRecover = chConfig$2.LayDownFramesToRecover;
- } else {
+ if (8 === thatPlayerInNextFrame$2.CharacterState) {
+ thatPlayerInNextFrame$2.CharacterState = 9;
+ thatPlayerInNextFrame$2.FramesToRecover = chConfig$2.LayDownFramesToRecover;
+ } else {
+ _2 = currPlayerDownsync$3.CharacterState;
+ if ((_2 === (8)) || (_2 === (4)) || (_2 === (5)) || (_2 === (16))) {
_tmp$17 = 0;
_tmp$18 = currPlayerDownsync$3.ColliderRadius;
halfColliderWidthDiff = _tmp$17;
halfColliderHeightDiff = _tmp$18;
- _tuple$10 = VirtualGridToWorldPos(halfColliderWidthDiff, halfColliderHeightDiff);
- halfColliderWorldHeightDiff = _tuple$10[1];
+ _tuple$9 = VirtualGridToWorldPos(halfColliderWidthDiff, halfColliderHeightDiff);
+ halfColliderWorldHeightDiff = _tuple$9[1];
_index$2 = joinIndex$2 - 1 >> 0;
((_index$2 < 0 || _index$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + _index$2]).Y = ((_index$2 < 0 || _index$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + _index$2]).Y - (halfColliderWorldHeightDiff);
- thatPlayerInNextFrame$2.CharacterState = 0;
}
+ thatPlayerInNextFrame$2.CharacterState = 0;
+ thatPlayerInNextFrame$2.FramesToRecover = 0;
}
} else {
- _tuple$11 = (_entry$2 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$2 !== undefined ? [_entry$2.v, true] : [false, false]);
- existent$2 = _tuple$11[1];
- if (existent$2) {
+ _tuple$10 = (_entry$1 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]);
+ existent$1 = _tuple$10[1];
+ if (existent$1) {
if (9 === thatPlayerInNextFrame$2.CharacterState) {
if (0 === thatPlayerInNextFrame$2.FramesToRecover) {
thatPlayerInNextFrame$2.CharacterState = 10;
@@ -5877,70 +5904,96 @@ $packages["jsexport/battle"] = (function() {
}
}
}
+ if (thatPlayerInNextFrame$2.InAir && chConfig$2.OnWallEnabled) {
+ _tuple$11 = (_entry$2 = noOpSet[$Int32.keyFor(currPlayerDownsync$3.CharacterState)], _entry$2 !== undefined ? [_entry$2.v, true] : [false, false]);
+ existent$2 = _tuple$11[1];
+ if (!existent$2) {
+ _ref$10 = (x$9 = joinIndex$2 - 1 >> 0, ((x$9 < 0 || x$9 >= hardPushbackNorms.$length) ? ($throwRuntimeError("index out of range"), undefined) : hardPushbackNorms.$array[hardPushbackNorms.$offset + x$9])).$get();
+ _i$8 = 0;
+ while (true) {
+ if (!(_i$8 < _ref$10.$length)) { break; }
+ hardPushbackNorm$1 = $clone(((_i$8 < 0 || _i$8 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$8]), Vec2D);
+ normAlignmentWithHorizon1 = hardPushbackNorm$1.X * 1 + hardPushbackNorm$1.Y * 0;
+ ctrlAlignmentWithHorizon1 = (thatPlayerInNextFrame$2.DirX) * 1 + (thatPlayerInNextFrame$2.DirY) * 0;
+ normAlignmentWithHorizon2 = hardPushbackNorm$1.X * -1 + hardPushbackNorm$1.Y * 0;
+ ctrlAlignmentWithHorizon2 = (thatPlayerInNextFrame$2.DirX) * -1 + (thatPlayerInNextFrame$2.DirY) * 0;
+ if (0.9 < normAlignmentWithHorizon1 && 0.9 < ctrlAlignmentWithHorizon1) {
+ thatPlayerInNextFrame$2.OnWall = true;
+ }
+ if (0.9 < normAlignmentWithHorizon2 && 0.9 < ctrlAlignmentWithHorizon2) {
+ thatPlayerInNextFrame$2.OnWall = true;
+ }
+ _i$8++;
+ }
+ if (!currPlayerDownsync$3.OnWall && thatPlayerInNextFrame$2.OnWall) {
+ thatPlayerInNextFrame$2.VelY = 0;
+ }
+ }
+ }
_i$5++;
$s = 22; continue;
case 23:
- _ref$10 = bulletColliders;
- _i$8 = 0;
+ _ref$11 = bulletColliders;
+ _i$9 = 0;
/* while (true) { */ case 30:
- /* if (!(_i$8 < _ref$10.$length)) { break; } */ if(!(_i$8 < _ref$10.$length)) { $s = 31; continue; }
- bulletCollider = ((_i$8 < 0 || _i$8 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$8]);
+ /* if (!(_i$9 < _ref$11.$length)) { break; } */ if(!(_i$9 < _ref$11.$length)) { $s = 31; continue; }
+ bulletCollider = ((_i$9 < 0 || _i$9 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$9]);
collision$1 = bulletCollider.Check(0, 0, new sliceType$4([]));
bulletCollider.Space.Remove(new sliceType$11([bulletCollider]));
addToNextRenderFrame = true;
/* */ if (!(ptrType$3.nil === collision$1)) { $s = 32; continue; }
/* */ $s = 33; continue;
/* if (!(ptrType$3.nil === collision$1)) { */ case 32:
- _ref$11 = bulletCollider.Data;
- /* */ if ($assertType(_ref$11, ptrType$1, true)[1]) { $s = 34; continue; }
- /* */ if ($assertType(_ref$11, ptrType$6, true)[1]) { $s = 35; continue; }
+ _ref$12 = bulletCollider.Data;
+ /* */ if ($assertType(_ref$12, ptrType$1, true)[1]) { $s = 34; continue; }
+ /* */ if ($assertType(_ref$12, ptrType$6, true)[1]) { $s = 35; continue; }
/* */ $s = 36; continue;
- /* if ($assertType(_ref$11, ptrType$1, true)[1]) { */ case 34:
- v$2 = _ref$11.$val;
+ /* if ($assertType(_ref$12, ptrType$1, true)[1]) { */ case 34:
+ v$2 = _ref$12.$val;
bulletShape = $assertType(bulletCollider.Shape, ptrType$7);
- offender$1 = (x$9 = currRenderFrame.PlayersArr, x$10 = v$2.Bullet.OffenderJoinIndex - 1 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10]));
- _ref$12 = collision$1.Objects;
- _i$9 = 0;
+ offender$1 = (x$10 = currRenderFrame.PlayersArr, x$11 = v$2.Bullet.OffenderJoinIndex - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11]));
+ _ref$13 = collision$1.Objects;
+ _i$10 = 0;
/* while (true) { */ case 37:
- /* if (!(_i$9 < _ref$12.$length)) { break; } */ if(!(_i$9 < _ref$12.$length)) { $s = 38; continue; }
- obj$1 = ((_i$9 < 0 || _i$9 >= _ref$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12.$array[_ref$12.$offset + _i$9]);
+ /* if (!(_i$10 < _ref$13.$length)) { break; } */ if(!(_i$10 < _ref$13.$length)) { $s = 38; continue; }
+ obj$1 = ((_i$10 < 0 || _i$10 >= _ref$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$13.$array[_ref$13.$offset + _i$10]);
defenderShape = $assertType(obj$1.Shape, ptrType$7);
- _ref$13 = obj$1.Data;
- /* */ if ($assertType(_ref$13, ptrType$5, true)[1]) { $s = 39; continue; }
+ _ref$14 = obj$1.Data;
+ /* */ if ($assertType(_ref$14, ptrType$5, true)[1]) { $s = 39; continue; }
/* */ $s = 40; continue;
- /* if ($assertType(_ref$13, ptrType$5, true)[1]) { */ case 39:
- t = _ref$13.$val;
+ /* if ($assertType(_ref$14, ptrType$5, true)[1]) { */ case 39:
+ t = _ref$14.$val;
if (v$2.Bullet.OffenderJoinIndex === t.JoinIndex) {
- _i$9++;
+ _i$10++;
/* continue; */ $s = 37; continue;
}
_r$6 = CalcPushbacks(0, 0, bulletShape, defenderShape); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
_tuple$12 = _r$6;
overlapped$1 = _tuple$12[0];
if (!overlapped$1) {
- _i$9++;
+ _i$10++;
/* continue; */ $s = 37; continue;
}
addToNextRenderFrame = false;
_tuple$13 = (_entry$3 = invinsibleSet[$Int32.keyFor(t.CharacterState)], _entry$3 !== undefined ? [_entry$3.v, true] : [false, false]);
existent$3 = _tuple$13[1];
if (existent$3) {
- _i$9++;
+ _i$10++;
/* continue; */ $s = 37; continue;
}
if (0 < t.FramesInvinsible) {
- _i$9++;
+ _i$10++;
/* continue; */ $s = 37; continue;
}
- xfac$2 = 1;
+ xfac$3 = 1;
if (0 > offender$1.DirX) {
- xfac$2 = -xfac$2;
+ xfac$3 = -xfac$3;
}
- _tmp$19 = $imul(xfac$2, v$2.Bullet.PushbackVelX);
+ _tmp$19 = $imul(xfac$3, v$2.Bullet.PushbackVelX);
_tmp$20 = v$2.Bullet.PushbackVelY;
pushbackVelX = _tmp$19;
pushbackVelY = _tmp$20;
- atkedPlayerInNextFrame = (x$11 = t.JoinIndex - 1 >> 0, ((x$11 < 0 || x$11 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$11]));
+ atkedPlayerInNextFrame = (x$12 = t.JoinIndex - 1 >> 0, ((x$12 < 0 || x$12 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$12]));
atkedPlayerInNextFrame.VelX = pushbackVelX;
atkedPlayerInNextFrame.VelY = pushbackVelY;
if (v$2.Bullet.BlowUp) {
@@ -5948,65 +6001,65 @@ $packages["jsexport/battle"] = (function() {
} else {
atkedPlayerInNextFrame.CharacterState = 3;
}
- oldFramesToRecover = (x$12 = t.JoinIndex - 1 >> 0, ((x$12 < 0 || x$12 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$12])).FramesToRecover;
+ oldFramesToRecover = (x$13 = t.JoinIndex - 1 >> 0, ((x$13 < 0 || x$13 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$13])).FramesToRecover;
if (v$2.Bullet.HitStunFrames > oldFramesToRecover) {
atkedPlayerInNextFrame.FramesToRecover = v$2.Bullet.HitStunFrames;
}
$s = 41; continue;
/* } else { */ case 40:
- t$1 = _ref$13;
+ t$1 = _ref$14;
addToNextRenderFrame = false;
/* } */ case 41:
- _i$9++;
+ _i$10++;
$s = 37; continue;
case 38:
$s = 36; continue;
- /* } else if ($assertType(_ref$11, ptrType$6, true)[1]) { */ case 35:
- v$3 = _ref$11.$val;
+ /* } else if ($assertType(_ref$12, ptrType$6, true)[1]) { */ case 35:
+ v$3 = _ref$12.$val;
bulletShape$1 = $assertType(bulletCollider.Shape, ptrType$7);
- offender$2 = (x$13 = currRenderFrame.PlayersArr, x$14 = v$3.Bullet.OffenderJoinIndex - 1 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14]));
- _ref$14 = collision$1.Objects;
- _i$10 = 0;
+ offender$2 = (x$14 = currRenderFrame.PlayersArr, x$15 = v$3.Bullet.OffenderJoinIndex - 1 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15]));
+ _ref$15 = collision$1.Objects;
+ _i$11 = 0;
/* while (true) { */ case 43:
- /* if (!(_i$10 < _ref$14.$length)) { break; } */ if(!(_i$10 < _ref$14.$length)) { $s = 44; continue; }
- obj$2 = ((_i$10 < 0 || _i$10 >= _ref$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$14.$array[_ref$14.$offset + _i$10]);
+ /* if (!(_i$11 < _ref$15.$length)) { break; } */ if(!(_i$11 < _ref$15.$length)) { $s = 44; continue; }
+ obj$2 = ((_i$11 < 0 || _i$11 >= _ref$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$15.$array[_ref$15.$offset + _i$11]);
defenderShape$1 = $assertType(obj$2.Shape, ptrType$7);
- _ref$15 = obj$2.Data;
- /* */ if ($assertType(_ref$15, ptrType$5, true)[1]) { $s = 45; continue; }
+ _ref$16 = obj$2.Data;
+ /* */ if ($assertType(_ref$16, ptrType$5, true)[1]) { $s = 45; continue; }
/* */ $s = 46; continue;
- /* if ($assertType(_ref$15, ptrType$5, true)[1]) { */ case 45:
- t$2 = _ref$15.$val;
+ /* if ($assertType(_ref$16, ptrType$5, true)[1]) { */ case 45:
+ t$2 = _ref$16.$val;
if (v$3.Bullet.OffenderJoinIndex === t$2.JoinIndex) {
- _i$10++;
+ _i$11++;
/* continue; */ $s = 43; continue;
}
_r$7 = CalcPushbacks(0, 0, bulletShape$1, defenderShape$1); /* */ $s = 48; case 48: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
_tuple$14 = _r$7;
overlapped$2 = _tuple$14[0];
if (!overlapped$2) {
- _i$10++;
+ _i$11++;
/* continue; */ $s = 43; continue;
}
addToNextRenderFrame = false;
_tuple$15 = (_entry$4 = invinsibleSet[$Int32.keyFor(t$2.CharacterState)], _entry$4 !== undefined ? [_entry$4.v, true] : [false, false]);
existent$4 = _tuple$15[1];
if (existent$4) {
- _i$10++;
+ _i$11++;
/* continue; */ $s = 43; continue;
}
if (0 < t$2.FramesInvinsible) {
- _i$10++;
+ _i$11++;
/* continue; */ $s = 43; continue;
}
- xfac$3 = 1;
+ xfac$4 = 1;
if (0 > offender$2.DirX) {
- xfac$3 = -xfac$3;
+ xfac$4 = -xfac$4;
}
- _tmp$21 = $imul(xfac$3, v$3.Bullet.PushbackVelX);
+ _tmp$21 = $imul(xfac$4, v$3.Bullet.PushbackVelX);
_tmp$22 = v$3.Bullet.PushbackVelY;
pushbackVelX$1 = _tmp$21;
pushbackVelY$1 = _tmp$22;
- atkedPlayerInNextFrame$1 = (x$15 = t$2.JoinIndex - 1 >> 0, ((x$15 < 0 || x$15 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$15]));
+ atkedPlayerInNextFrame$1 = (x$16 = t$2.JoinIndex - 1 >> 0, ((x$16 < 0 || x$16 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$16]));
atkedPlayerInNextFrame$1.VelX = pushbackVelX$1;
atkedPlayerInNextFrame$1.VelY = pushbackVelY$1;
if (v$3.Bullet.BlowUp) {
@@ -6014,27 +6067,27 @@ $packages["jsexport/battle"] = (function() {
} else {
atkedPlayerInNextFrame$1.CharacterState = 3;
}
- oldFramesToRecover$1 = (x$16 = t$2.JoinIndex - 1 >> 0, ((x$16 < 0 || x$16 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$16])).FramesToRecover;
+ oldFramesToRecover$1 = (x$17 = t$2.JoinIndex - 1 >> 0, ((x$17 < 0 || x$17 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$17])).FramesToRecover;
if (v$3.Bullet.HitStunFrames > oldFramesToRecover$1) {
atkedPlayerInNextFrame$1.FramesToRecover = v$3.Bullet.HitStunFrames;
}
$s = 47; continue;
/* } else { */ case 46:
- t$3 = _ref$15;
+ t$3 = _ref$16;
addToNextRenderFrame = false;
/* } */ case 47:
- _i$10++;
+ _i$11++;
$s = 43; continue;
case 44:
/* } */ case 36:
/* } */ case 33:
if (addToNextRenderFrame) {
- _ref$16 = bulletCollider.Data;
- if ($assertType(_ref$16, ptrType$1, true)[1]) {
- v$4 = _ref$16.$val;
+ _ref$17 = bulletCollider.Data;
+ if ($assertType(_ref$17, ptrType$1, true)[1]) {
+ v$4 = _ref$17.$val;
nextRenderFrameMeleeBullets = $append(nextRenderFrameMeleeBullets, v$4);
- } else if ($assertType(_ref$16, ptrType$6, true)[1]) {
- v$5 = _ref$16.$val;
+ } else if ($assertType(_ref$17, ptrType$6, true)[1]) {
+ v$5 = _ref$17.$val;
_tmp$23 = v$5.VirtualGridX + v$5.VelX >> 0;
_tmp$24 = v$5.VirtualGridY + v$5.VelY >> 0;
v$5.VirtualGridX = _tmp$23;
@@ -6042,33 +6095,41 @@ $packages["jsexport/battle"] = (function() {
nextRenderFrameFireballBullets = $append(nextRenderFrameFireballBullets, v$5);
}
}
- _i$8++;
+ _i$9++;
$s = 30; continue;
case 31:
- _ref$17 = currRenderFrame.PlayersArr;
- _i$11 = 0;
+ _ref$18 = currRenderFrame.PlayersArr;
+ _i$12 = 0;
while (true) {
- if (!(_i$11 < _ref$17.$length)) { break; }
- i$4 = _i$11;
- currPlayerDownsync$4 = ((_i$11 < 0 || _i$11 >= _ref$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$17.$array[_ref$17.$offset + _i$11]);
+ if (!(_i$12 < _ref$18.$length)) { break; }
+ i$4 = _i$12;
+ currPlayerDownsync$4 = ((_i$12 < 0 || _i$12 >= _ref$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$18.$array[_ref$18.$offset + _i$12]);
joinIndex$3 = currPlayerDownsync$4.JoinIndex;
playerCollider$2 = ((i$4 < 0 || i$4 >= playerColliders.$length) ? ($throwRuntimeError("index out of range"), undefined) : playerColliders.$array[playerColliders.$offset + i$4]);
thatPlayerInNextFrame$3 = ((i$4 < 0 || i$4 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$4]);
- _tuple$16 = PolygonColliderBLToVirtualGridPos(playerCollider$2.X - (x$17 = joinIndex$3 - 1 >> 0, ((x$17 < 0 || x$17 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$17])).X, playerCollider$2.Y - (x$18 = joinIndex$3 - 1 >> 0, ((x$18 < 0 || x$18 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$18])).Y, playerCollider$2.W * 0.5, playerCollider$2.H * 0.5, 0, 0, 0, 0, collisionSpaceOffsetX, collisionSpaceOffsetY);
+ _tuple$16 = PolygonColliderBLToVirtualGridPos(playerCollider$2.X - (x$18 = joinIndex$3 - 1 >> 0, ((x$18 < 0 || x$18 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$18])).X, playerCollider$2.Y - (x$19 = joinIndex$3 - 1 >> 0, ((x$19 < 0 || x$19 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$19])).Y, playerCollider$2.W * 0.5, playerCollider$2.H * 0.5, 0, 0, 0, 0, collisionSpaceOffsetX, collisionSpaceOffsetY);
thatPlayerInNextFrame$3.VirtualGridX = _tuple$16[0];
thatPlayerInNextFrame$3.VirtualGridY = _tuple$16[1];
if (thatPlayerInNextFrame$3.InAir) {
oldNextCharacterState = thatPlayerInNextFrame$3.CharacterState;
- _2 = oldNextCharacterState;
- if ((_2 === (0)) || (_2 === (1))) {
+ _3 = oldNextCharacterState;
+ if (_3 === (0)) {
if (((i$4 < 0 || i$4 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$4]) || (5 === currPlayerDownsync$4.CharacterState)) {
thatPlayerInNextFrame$3.CharacterState = 5;
} else {
thatPlayerInNextFrame$3.CharacterState = 4;
}
- } else if (_2 === (2)) {
+ } else if (_3 === (1)) {
+ if (thatPlayerInNextFrame$3.OnWall) {
+ thatPlayerInNextFrame$3.CharacterState = 16;
+ } else if (((i$4 < 0 || i$4 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$4]) || (5 === currPlayerDownsync$4.CharacterState)) {
+ thatPlayerInNextFrame$3.CharacterState = 5;
+ } else {
+ thatPlayerInNextFrame$3.CharacterState = 4;
+ }
+ } else if (_3 === (2)) {
thatPlayerInNextFrame$3.CharacterState = 6;
- } else if (_2 === (3)) {
+ } else if (_3 === (3)) {
thatPlayerInNextFrame$3.CharacterState = 7;
}
}
@@ -6081,18 +6142,18 @@ $packages["jsexport/battle"] = (function() {
thatPlayerInNextFrame$3.ActiveSkillId = -1;
thatPlayerInNextFrame$3.ActiveSkillHit = -1;
}
- _i$11++;
- }
- _ref$18 = playerColliders;
- _i$12 = 0;
- while (true) {
- if (!(_i$12 < _ref$18.$length)) { break; }
- playerCollider$3 = ((_i$12 < 0 || _i$12 >= _ref$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$18.$array[_ref$18.$offset + _i$12]);
- playerCollider$3.Space.Remove(new sliceType$11([playerCollider$3]));
_i$12++;
}
+ _ref$19 = playerColliders;
+ _i$13 = 0;
+ while (true) {
+ if (!(_i$13 < _ref$19.$length)) { break; }
+ playerCollider$3 = ((_i$13 < 0 || _i$13 >= _ref$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$19.$array[_ref$19.$offset + _i$13]);
+ playerCollider$3.Space.Remove(new sliceType$11([playerCollider$3]));
+ _i$13++;
+ }
$s = -1; return new RoomDownsyncFrame.ptr(currRenderFrame.Id + 1 >> 0, nextRenderFramePlayers, new $Int64(0, 0), nextRenderFrameMeleeBullets, nextRenderFrameFireballBullets, new $Uint64(0, 0), false, bulletLocalId);
- /* */ } return; } var $f = {$blk: ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame, $c: true, $r, _1, _2, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, $s};return $f;
+ /* */ } return; } var $f = {$blk: ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame, $c: true, $r, _1, _2, _3, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, ctrlAlignmentWithHorizon1, ctrlAlignmentWithHorizon2, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fallStopping, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorm$1, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, normAlignmentWithHorizon1, normAlignmentWithHorizon2, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, xfac$4, $s};return $f;
};
$pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame = ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame;
GenerateRectCollider = function(wx, wy, w, h, topPadding, bottomPadding, leftPadding, rightPadding, spaceOffsetX, spaceOffsetY, data, tag) {
@@ -6210,7 +6271,7 @@ $packages["jsexport/battle"] = (function() {
NpcPatrolCue.init("", [{prop: "FlAct", name: "FlAct", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "FrAct", name: "FrAct", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Float64, tag: ""}]);
RingBuffer.init("", [{prop: "Ed", name: "Ed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "St", name: "St", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "EdFrameId", name: "EdFrameId", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "StFrameId", name: "StFrameId", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Cnt", name: "Cnt", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Eles", name: "Eles", embedded: false, exported: true, typ: sliceType$2, tag: ""}]);
SkillMapperType.init([$Int, ptrType$5], [$Int], false);
- CharacterConfig.init("", [{prop: "SpeciesId", name: "SpeciesId", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SpeciesName", name: "SpeciesName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InAirIdleFrameIdxTurningPoint", name: "InAirIdleFrameIdxTurningPoint", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "InAirIdleFrameIdxTurnedCycle", name: "InAirIdleFrameIdxTurnedCycle", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LayDownFrames", name: "LayDownFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "LayDownFramesToRecover", name: "LayDownFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpInvinsibleFrames", name: "GetUpInvinsibleFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpFramesToRecover", name: "GetUpFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Speed", name: "Speed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "JumpingInitVelY", name: "JumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "SkillMapper", name: "SkillMapper", embedded: false, exported: true, typ: SkillMapperType, tag: ""}]);
+ CharacterConfig.init("", [{prop: "SpeciesId", name: "SpeciesId", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SpeciesName", name: "SpeciesName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InAirIdleFrameIdxTurningPoint", name: "InAirIdleFrameIdxTurningPoint", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "InAirIdleFrameIdxTurnedCycle", name: "InAirIdleFrameIdxTurnedCycle", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LayDownFrames", name: "LayDownFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "LayDownFramesToRecover", name: "LayDownFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpInvinsibleFrames", name: "GetUpInvinsibleFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpFramesToRecover", name: "GetUpFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Speed", name: "Speed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "JumpingInitVelY", name: "JumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "DashingEnabled", name: "DashingEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OnWallEnabled", name: "OnWallEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "WallJumpingInitVelX", name: "WallJumpingInitVelX", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "WallJumpingInitVelY", name: "WallJumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "WallSlidingVelY", name: "WallSlidingVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "SkillMapper", name: "SkillMapper", embedded: false, exported: true, typ: SkillMapperType, tag: ""}]);
SatResult.init("", [{prop: "Overlap", name: "Overlap", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "OverlapX", name: "OverlapX", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "OverlapY", name: "OverlapY", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "AContainedInB", name: "AContainedInB", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BContainedInA", name: "BContainedInA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Axis", name: "Axis", embedded: false, exported: true, typ: resolv.Vector, tag: ""}]);
$init = function() {
$pkg.$init = function() {};
@@ -6218,8 +6279,8 @@ $packages["jsexport/battle"] = (function() {
$r = math.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
$r = resolv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
$pkg.DIRECTION_DECODER = new sliceType$1([new sliceType([0, 0]), new sliceType([0, 2]), new sliceType([0, -2]), new sliceType([2, 0]), new sliceType([-2, 0]), new sliceType([1, 1]), new sliceType([-1, -1]), new sliceType([1, -1]), new sliceType([-1, 1])]);
- skills = $makeMap($Int.keyFor, [{ k: 1, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 2 }]), 0))])) }, { k: 2, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 3 }]), 0))])) }, { k: 3, v: new Skill.ptr(0, 50, 50, 50, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 30, 999999999, 9, 200, 700, 10, 50, 500, 1600, 800, 3200, 3200, true, false, 0))])) }, { k: 4, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 5 }]), 0))])) }, { k: 5, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 6 }]), 0))])) }, { k: 6, v: new Skill.ptr(0, 45, 45, 45, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 28, 999999999, 9, 200, -1, 10, -10, -1, 2400, 0, 3200, 3200, true, false, 0))])) }, { k: 7, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, -1, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 8 }]), 0))])) }, { k: 8, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 9 }]), 0))])) }, { k: 9, v: new Skill.ptr(0, 40, 40, 40, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 0, 0, 30, 999999999, 9, 200, 400, 10, 100, -1, 1000, 0, 3200, 3200, true, false, 0))])) }, { k: 10, v: new Skill.ptr(0, 40, 40, 40, 1, 13, new sliceType$2([new FireballBullet.ptr(0, 0, 0, 0, 0, 0, 800, 1, new Bullet.ptr(0, 0, 0, 15, 0, 0, 999999999, 15, 9, 200, 0, 20, -1, -1, 3200, 500, 4800, 3200, false, false, 0))])) }, { k: 11, v: new Skill.ptr(0, 60, 60, 60, 1, 14, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 25, 999999999, 9, 200, 700, 30, 100, 800, 800, 0, 4000, 6400, true, false, 0))])) }, { k: 255, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 256, v: new Skill.ptr(0, 20, 20, 20, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 10, 15, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 257, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }]);
- $pkg.Characters = $makeMap($Int.keyFor, [{ k: 0, v: new CharacterConfig.ptr(0, "MonkGirl", 11, 1, 16, 16, 10, 27, 120, 800, (function(patternId, currPlayerDownsync) {
+ skills = $makeMap($Int.keyFor, [{ k: 1, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 2 }]), 0))])) }, { k: 2, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 3 }]), 0))])) }, { k: 3, v: new Skill.ptr(0, 50, 50, 50, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 30, 999999999, 9, 200, 700, 10, 50, 500, 1600, 800, 3200, 3200, true, false, 0))])) }, { k: 4, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 5 }]), 0))])) }, { k: 5, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 6 }]), 0))])) }, { k: 6, v: new Skill.ptr(0, 45, 45, 45, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 28, 999999999, 9, 200, 300, 10, -1, -1, 2400, 0, 3200, 3200, true, false, 0))])) }, { k: 7, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, -1, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 8 }]), 0))])) }, { k: 8, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 9 }]), 0))])) }, { k: 9, v: new Skill.ptr(0, 40, 40, 40, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 0, 0, 30, 999999999, 9, 200, 400, 10, 100, -1, 1000, 0, 3200, 3200, true, false, 0))])) }, { k: 10, v: new Skill.ptr(0, 40, 40, 40, 1, 13, new sliceType$2([new FireballBullet.ptr(0, 0, 0, 0, 0, 0, 800, 1, new Bullet.ptr(0, 0, 0, 15, 0, 0, 999999999, 15, 9, 200, 0, 20, -1, -1, 3200, 500, 4800, 3200, false, false, 0))])) }, { k: 11, v: new Skill.ptr(0, 60, 60, 60, 1, 14, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 25, 999999999, 9, 200, 700, 30, 100, 800, 800, 0, 4000, 6400, true, false, 0))])) }, { k: 255, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 256, v: new Skill.ptr(0, 20, 20, 20, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 10, 15, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 257, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }]);
+ $pkg.Characters = $makeMap($Int.keyFor, [{ k: 0, v: new CharacterConfig.ptr(0, "MonkGirl", 11, 1, 16, 16, 10, 27, 120, 800, false, false, 0, 0, 0, (function(patternId, currPlayerDownsync) {
var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1;
if (1 === patternId) {
if (0 === currPlayerDownsync.FramesToRecover) {
@@ -6249,7 +6310,7 @@ $packages["jsexport/battle"] = (function() {
}
}
return -1;
- })) }, { k: 1, v: new CharacterConfig.ptr(1, "KnifeGirl", 9, 1, 16, 16, 10, 27, 140, 750, (function(patternId, currPlayerDownsync) {
+ })) }, { k: 1, v: new CharacterConfig.ptr(1, "KnifeGirl", 9, 1, 16, 16, 10, 27, 140, 750, true, true, 700, 700, -100, (function(patternId, currPlayerDownsync) {
var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1;
if (1 === patternId) {
if (0 === currPlayerDownsync.FramesToRecover) {
@@ -6279,7 +6340,7 @@ $packages["jsexport/battle"] = (function() {
}
}
return -1;
- })) }, { k: 4096, v: new CharacterConfig.ptr(4096, "Monk", 42, 2, 14, 14, 8, 30, 100, 750, (function(patternId, currPlayerDownsync) {
+ })) }, { k: 4096, v: new CharacterConfig.ptr(4096, "Monk", 42, 2, 14, 14, 8, 30, 100, 750, false, false, 0, 0, 0, (function(patternId, currPlayerDownsync) {
var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1;
if (1 === patternId) {
if (0 === currPlayerDownsync.FramesToRecover) {
@@ -6318,7 +6379,7 @@ $packages["jsexport/battle"] = (function() {
}
return -1;
})) }]);
- inAirSet = $makeMap($Int32.keyFor, [{ k: 4, v: true }, { k: 5, v: true }, { k: 6, v: true }, { k: 7, v: true }, { k: 8, v: true }]);
+ inAirSet = $makeMap($Int32.keyFor, [{ k: 4, v: true }, { k: 5, v: true }, { k: 6, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 16, v: true }]);
noOpSet = $makeMap($Int32.keyFor, [{ k: 3, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 9, v: true }]);
invinsibleSet = $makeMap($Int32.keyFor, [{ k: 8, v: true }, { k: 9, v: true }, { k: 10, v: true }]);
nonAttackingSet = $makeMap($Int32.keyFor, [{ k: 0, v: true }, { k: 1, v: true }, { k: 4, v: true }, { k: 5, v: true }, { k: 3, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 9, v: true }, { k: 10, v: true }]);
@@ -6348,7 +6409,7 @@ $packages["jsexport"] = (function() {
funcType = $funcType([$Float64, $Float64], [ptrType$5], false);
funcType$1 = $funcType([ptrType, sliceType$1], [ptrType$5], false);
funcType$2 = $funcType([ptrType$1], [ptrType$5], false);
- funcType$3 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32, $Int32], [ptrType$5], false);
+ funcType$3 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Bool, $Int32, $Int32], [ptrType$5], false);
funcType$4 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32], [ptrType$5], false);
funcType$5 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32], [ptrType$5], false);
funcType$6 = $funcType([$Uint64, $Uint64, $Float64, $Float64], [ptrType$5], false);
@@ -6420,9 +6481,9 @@ $packages["jsexport"] = (function() {
return js.MakeWrapper(new battle.Barrier.ptr(boundary));
};
$pkg.NewBarrierJs = NewBarrierJs;
- NewPlayerDownsyncJs = function(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius, inAir, bulletTeamId, chCollisionTeamId) {
- var activeSkillHit, activeSkillId, battleState, bulletTeamId, chCollisionTeamId, characterState, colliderRadius, dirX, dirY, framesInChState, framesInvinsible, framesToRecover, hp, id, inAir, joinIndex, maxHp, speed, velX, velY, virtualGridX, virtualGridY;
- return js.MakeWrapper(new battle.PlayerDownsync.ptr(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, battleState, joinIndex, colliderRadius, false, 0, 0, framesToRecover, framesInChState, hp, maxHp, characterState, inAir, false, activeSkillId, activeSkillHit, framesInvinsible, bulletTeamId, chCollisionTeamId));
+ NewPlayerDownsyncJs = function(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius, inAir, onWall, bulletTeamId, chCollisionTeamId) {
+ var activeSkillHit, activeSkillId, battleState, bulletTeamId, chCollisionTeamId, characterState, colliderRadius, dirX, dirY, framesInChState, framesInvinsible, framesToRecover, hp, id, inAir, joinIndex, maxHp, onWall, speed, velX, velY, virtualGridX, virtualGridY;
+ return js.MakeWrapper(new battle.PlayerDownsync.ptr(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, battleState, joinIndex, colliderRadius, false, 0, 0, framesToRecover, framesInChState, hp, maxHp, characterState, inAir, onWall, activeSkillId, activeSkillHit, framesInvinsible, bulletTeamId, chCollisionTeamId));
};
$pkg.NewPlayerDownsyncJs = NewPlayerDownsyncJs;
NewMeleeBulletJs = function(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId) {
diff --git a/frontend/assets/resources/animation/KnifeGirl/Dashing.anim b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim
new file mode 100644
index 0000000..e64355c
--- /dev/null
+++ b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim
@@ -0,0 +1,61 @@
+{
+ "__type__": "cc.AnimationClip",
+ "_name": "Dashing",
+ "_objFlags": 0,
+ "_native": "",
+ "_duration": 0.35,
+ "sample": 60,
+ "speed": 1,
+ "wrapMode": 1,
+ "curveData": {
+ "comps": {
+ "cc.Sprite": {
+ "spriteFrame": [
+ {
+ "frame": 0,
+ "value": {
+ "__uuid__": "cf396dac-50c9-4389-90c0-55f49fd3276d"
+ }
+ },
+ {
+ "frame": 0.05,
+ "value": {
+ "__uuid__": "b9e4b5d5-c296-48c8-aa60-d22db0e5a632"
+ }
+ },
+ {
+ "frame": 0.11666666666666667,
+ "value": {
+ "__uuid__": "e456c710-69f5-4dcc-9f5d-dd486a9198a1"
+ }
+ },
+ {
+ "frame": 0.16666666666666666,
+ "value": {
+ "__uuid__": "ec6df76f-0004-4216-9b83-449487fe0cda"
+ }
+ },
+ {
+ "frame": 0.23333333333333334,
+ "value": {
+ "__uuid__": "26032d0f-845c-4b96-89a6-d88113ed7827"
+ }
+ },
+ {
+ "frame": 0.2833333333333333,
+ "value": {
+ "__uuid__": "e3e0169c-3c56-4206-a20e-35e4d0471873"
+ }
+ },
+ {
+ "frame": 0.3333333333333333,
+ "value": {
+ "__uuid__": "80b98036-c5de-492b-b0e8-f1703f3a7d20"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta
new file mode 100644
index 0000000..fcc25e9
--- /dev/null
+++ b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta
@@ -0,0 +1,5 @@
+{
+ "ver": "2.1.0",
+ "uuid": "38b2c892-347b-4009-93f8-65b2ab1614f0",
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist
index fbfe783..31849f7 100644
--- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist
+++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist
@@ -15,9 +15,9 @@
spriteSourceSize
{112,128}
textureRect
- {{824,544},{112,128}}
+ {{806,750},{112,128}}
textureRotated
-
+
Atk1_1.png
@@ -30,9 +30,9 @@
spriteSourceSize
{112,128}
textureRect
- {{0,1200},{112,128}}
+ {{0,1076},{112,128}}
textureRotated
-
+
Atk1_10.png
@@ -60,7 +60,7 @@
spriteSourceSize
{80,128}
textureRect
- {{940,0},{80,128}}
+ {{528,515},{80,128}}
textureRotated
@@ -75,7 +75,7 @@
spriteSourceSize
{80,128}
textureRect
- {{940,128},{80,128}}
+ {{934,640},{80,128}}
textureRotated
@@ -90,9 +90,9 @@
spriteSourceSize
{112,128}
textureRect
- {{0,964},{112,128}}
+ {{128,1076},{112,128}}
textureRotated
-
+
Atk1_4.png
@@ -105,9 +105,9 @@
spriteSourceSize
{112,128}
textureRect
- {{112,964},{112,128}}
+ {{678,862},{112,128}}
textureRotated
-
+
Atk1_5.png
@@ -120,7 +120,7 @@
spriteSourceSize
{96,128}
textureRect
- {{840,288},{96,128}}
+ {{512,643},{96,128}}
textureRotated
@@ -135,7 +135,7 @@
spriteSourceSize
{96,128}
textureRect
- {{840,416},{96,128}}
+ {{512,771},{96,128}}
textureRotated
@@ -150,7 +150,7 @@
spriteSourceSize
{80,128}
textureRect
- {{940,256},{80,128}}
+ {{934,768},{80,128}}
textureRotated
@@ -165,7 +165,7 @@
spriteSourceSize
{80,128}
textureRect
- {{936,384},{80,128}}
+ {{934,896},{80,128}}
textureRotated
@@ -180,9 +180,9 @@
spriteSourceSize
{80,128}
textureRect
- {{936,512},{80,128}}
+ {{806,958},{80,128}}
textureRotated
-
+
Atk2_0.png
@@ -195,7 +195,7 @@
spriteSourceSize
{80,128}
textureRect
- {{936,640},{80,128}}
+ {{934,1024},{80,128}}
textureRotated
@@ -210,7 +210,7 @@
spriteSourceSize
{96,128}
textureRect
- {{582,531},{96,128}}
+ {{512,899},{96,128}}
textureRotated
@@ -225,7 +225,7 @@
spriteSourceSize
{128,112}
textureRect
- {{326,871},{128,112}}
+ {{128,964},{128,112}}
textureRotated
@@ -240,7 +240,7 @@
spriteSourceSize
{96,96}
textureRect
- {{696,1200},{96,96}}
+ {{912,1152},{96,96}}
textureRotated
@@ -255,7 +255,7 @@
spriteSourceSize
{96,112}
textureRect
- {{416,983},{96,112}}
+ {{340,1197},{96,112}}
textureRotated
@@ -270,7 +270,7 @@
spriteSourceSize
{96,112}
textureRect
- {{656,1092},{96,112}}
+ {{452,1196},{96,112}}
textureRotated
@@ -285,9 +285,9 @@
spriteSourceSize
{96,112}
textureRect
- {{528,1113},{96,112}}
+ {{564,1155},{96,112}}
textureRotated
-
+
Atk2_5.png
@@ -300,9 +300,9 @@
spriteSourceSize
{96,112}
textureRect
- {{392,1207},{96,112}}
+ {{608,1043},{96,112}}
textureRotated
-
+
Atk2_6.png
@@ -330,7 +330,7 @@
spriteSourceSize
{128,112}
textureRect
- {{454,871},{128,112}}
+ {{678,750},{128,112}}
textureRotated
@@ -525,7 +525,7 @@
spriteSourceSize
{96,128}
textureRect
- {{582,659},{96,128}}
+ {{512,1027},{96,128}}
textureRotated
@@ -540,7 +540,7 @@
spriteSourceSize
{112,112}
textureRect
- {{240,1081},{112,112}}
+ {{448,1293},{112,112}}
textureRotated
@@ -555,7 +555,7 @@
spriteSourceSize
{96,112}
textureRect
- {{504,1209},{96,112}}
+ {{660,1155},{96,112}}
textureRotated
@@ -570,7 +570,7 @@
spriteSourceSize
{128,112}
textureRect
- {{678,980},{128,112}}
+ {{384,988},{128,112}}
textureRotated
@@ -634,6 +634,111 @@
textureRotated
+ Dashing_1.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{0,1188},{114,112}}
+ textureRotated
+
+
+ Dashing_2.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{114,1188},{114,112}}
+ textureRotated
+
+
+ Dashing_3.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{0,1300},{114,112}}
+ textureRotated
+
+
+ Dashing_4.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{112,1300},{114,112}}
+ textureRotated
+
+
+ Dashing_5.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{0,1300},{114,112}}
+ textureRotated
+
+
+ Dashing_6.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{224,1300},{114,112}}
+ textureRotated
+
+
+ Dashing_7.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {114,112}
+ spriteSourceSize
+ {114,112}
+ textureRect
+ {{336,1293},{114,112}}
+ textureRotated
+
+
GetUp1_1.png
aliases
@@ -645,7 +750,7 @@
spriteSourceSize
{128,118}
textureRect
- {{806,791},{128,118}}
+ {{384,634},{128,118}}
textureRotated
@@ -660,7 +765,7 @@
spriteSourceSize
{128,118}
textureRect
- {{0,846},{128,118}}
+ {{384,752},{128,118}}
textureRotated
@@ -675,7 +780,7 @@
spriteSourceSize
{128,118}
textureRect
- {{128,846},{128,118}}
+ {{256,753},{128,118}}
textureRotated
@@ -690,7 +795,7 @@
spriteSourceSize
{128,118}
textureRect
- {{326,753},{128,118}}
+ {{128,846},{128,118}}
textureRotated
@@ -705,7 +810,7 @@
spriteSourceSize
{128,118}
textureRect
- {{454,753},{128,118}}
+ {{0,958},{128,118}}
textureRotated
@@ -720,7 +825,7 @@
spriteSourceSize
{128,118}
textureRect
- {{678,862},{128,118}}
+ {{384,870},{128,118}}
textureRotated
@@ -735,7 +840,7 @@
spriteSourceSize
{128,118}
textureRect
- {{806,909},{128,118}}
+ {{256,871},{128,118}}
textureRotated
@@ -750,7 +855,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,489},{70,128}}
+ {{940,0},{70,128}}
textureRotated
@@ -765,7 +870,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,617},{70,128}}
+ {{940,128},{70,128}}
textureRotated
@@ -780,7 +885,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,745},{70,128}}
+ {{940,256},{70,128}}
textureRotated
@@ -795,7 +900,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,873},{70,128}}
+ {{937,384},{70,128}}
textureRotated
@@ -810,7 +915,7 @@
spriteSourceSize
{70,128}
textureRect
- {{112,1200},{70,128}}
+ {{936,512},{70,128}}
textureRotated
@@ -825,7 +930,7 @@
spriteSourceSize
{70,128}
textureRect
- {{182,1200},{70,128}}
+ {{608,531},{70,128}}
textureRotated
@@ -840,7 +945,7 @@
spriteSourceSize
{70,128}
textureRect
- {{252,1200},{70,128}}
+ {{608,659},{70,128}}
textureRotated
@@ -855,7 +960,7 @@
spriteSourceSize
{70,128}
textureRect
- {{252,1200},{70,128}}
+ {{608,659},{70,128}}
textureRotated
@@ -870,7 +975,7 @@
spriteSourceSize
{70,128}
textureRect
- {{182,1200},{70,128}}
+ {{608,531},{70,128}}
textureRotated
@@ -885,7 +990,7 @@
spriteSourceSize
{70,128}
textureRect
- {{112,1200},{70,128}}
+ {{936,512},{70,128}}
textureRotated
@@ -900,7 +1005,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,873},{70,128}}
+ {{937,384},{70,128}}
textureRotated
@@ -915,7 +1020,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,745},{70,128}}
+ {{940,256},{70,128}}
textureRotated
@@ -930,7 +1035,7 @@
spriteSourceSize
{70,128}
textureRect
- {{256,617},{70,128}}
+ {{940,128},{70,128}}
textureRotated
@@ -945,7 +1050,7 @@
spriteSourceSize
{70,128}
textureRect
- {{322,1200},{70,128}}
+ {{608,787},{70,128}}
textureRotated
@@ -960,9 +1065,9 @@
spriteSourceSize
{70,128}
textureRect
- {{528,1043},{70,128}}
+ {{608,915},{70,128}}
textureRotated
-
+
InAirAtk1_0.png
@@ -975,7 +1080,7 @@
spriteSourceSize
{112,96}
textureRect
- {{128,1092},{112,96}}
+ {{228,1197},{112,96}}
textureRotated
@@ -1005,7 +1110,7 @@
spriteSourceSize
{144,112}
textureRect
- {{680,512},{144,112}}
+ {{0,489},{144,112}}
textureRotated
@@ -1020,7 +1125,7 @@
spriteSourceSize
{128,112}
textureRect
- {{806,1027},{128,112}}
+ {{256,989},{128,112}}
textureRotated
@@ -1035,7 +1140,7 @@
spriteSourceSize
{96,96}
textureRect
- {{792,1139},{96,96}}
+ {{672,1363},{96,96}}
textureRotated
@@ -1050,7 +1155,7 @@
spriteSourceSize
{80,96}
textureRect
- {{934,1104},{80,96}}
+ {{672,1267},{80,96}}
textureRotated
@@ -1065,7 +1170,7 @@
spriteSourceSize
{112,112}
textureRect
- {{352,1081},{112,112}}
+ {{560,1292},{112,112}}
textureRotated
@@ -1080,7 +1185,7 @@
spriteSourceSize
{128,96}
textureRect
- {{0,1092},{128,96}}
+ {{384,1100},{128,96}}
textureRotated
@@ -1095,9 +1200,9 @@
spriteSourceSize
{80,112}
textureRect
- {{934,768},{80,112}}
+ {{800,1038},{80,112}}
textureRotated
-
+
InAirIdle1_1.png
@@ -1110,9 +1215,9 @@
spriteSourceSize
{80,112}
textureRect
- {{934,880},{80,112}}
+ {{800,1118},{80,112}}
textureRotated
-
+
InAirIdle1_2.png
@@ -1125,9 +1230,9 @@
spriteSourceSize
{64,128}
textureRect
- {{464,1079},{64,128}}
+ {{678,974},{64,128}}
textureRotated
-
+
InAirIdle1_3.png
@@ -1140,9 +1245,9 @@
spriteSourceSize
{80,112}
textureRect
- {{934,992},{80,112}}
+ {{756,1198},{80,112}}
textureRotated
-
+
InAirIdle1_4.png
@@ -1155,7 +1260,7 @@
spriteSourceSize
{80,96}
textureRect
- {{224,1001},{80,96}}
+ {{752,1278},{80,96}}
textureRotated
@@ -1170,9 +1275,9 @@
spriteSourceSize
{80,96}
textureRect
- {{320,1001},{80,96}}
+ {{768,1358},{80,96}}
textureRotated
-
+
InAirIdle1_6.png
@@ -1185,9 +1290,9 @@
spriteSourceSize
{80,96}
textureRect
- {{792,1235},{80,96}}
+ {{868,1248},{80,96}}
textureRotated
-
+
InAirIdle1_7.png
@@ -1200,7 +1305,7 @@
spriteSourceSize
{96,112}
textureRect
- {{600,1209},{96,112}}
+ {{704,1038},{96,112}}
textureRotated
@@ -1215,9 +1320,9 @@
spriteSourceSize
{96,128}
textureRect
- {{582,787},{96,128}}
+ {{256,1101},{96,128}}
textureRotated
-
+
InAirIdle1_9.png
@@ -1230,9 +1335,9 @@
spriteSourceSize
{96,128}
textureRect
- {{582,915},{96,128}}
+ {{806,862},{96,128}}
textureRotated
-
+
LayDown1_1.png
@@ -1264,6 +1369,51 @@
textureRotated
+ OnWall1_1.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {112,97}
+ spriteSourceSize
+ {112,97}
+ textureRect
+ {{840,288},{112,97}}
+ textureRotated
+
+
+ OnWall1_2.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {112,97}
+ spriteSourceSize
+ {112,97}
+ textureRect
+ {{840,400},{112,97}}
+ textureRotated
+
+
+ OnWall1_3.png
+
+ aliases
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {112,97}
+ spriteSourceSize
+ {112,97}
+ textureRect
+ {{840,400},{112,97}}
+ textureRotated
+
+
Walking_1.png
aliases
@@ -1275,7 +1425,7 @@
spriteSourceSize
{119,128}
textureRect
- {{0,489},{119,128}}
+ {{144,489},{119,128}}
textureRotated
@@ -1290,7 +1440,7 @@
spriteSourceSize
{119,128}
textureRect
- {{128,489},{119,128}}
+ {{0,601},{119,128}}
textureRotated
@@ -1305,7 +1455,7 @@
spriteSourceSize
{119,128}
textureRect
- {{0,608},{119,128}}
+ {{680,512},{119,128}}
textureRotated
@@ -1320,7 +1470,7 @@
spriteSourceSize
{119,128}
textureRect
- {{128,608},{119,128}}
+ {{808,512},{119,128}}
textureRotated
@@ -1335,7 +1485,7 @@
spriteSourceSize
{119,128}
textureRect
- {{326,515},{119,128}}
+ {{272,515},{119,128}}
textureRotated
@@ -1350,7 +1500,7 @@
spriteSourceSize
{119,128}
textureRect
- {{454,515},{119,128}}
+ {{128,608},{119,128}}
textureRotated
@@ -1365,7 +1515,7 @@
spriteSourceSize
{119,128}
textureRect
- {{678,624},{119,128}}
+ {{0,720},{119,128}}
textureRotated
@@ -1380,7 +1530,7 @@
spriteSourceSize
{119,128}
textureRect
- {{806,672},{119,128}}
+ {{400,515},{119,128}}
textureRotated
@@ -1395,7 +1545,7 @@
spriteSourceSize
{119,128}
textureRect
- {{0,727},{119,128}}
+ {{678,631},{119,128}}
textureRotated
@@ -1410,7 +1560,7 @@
spriteSourceSize
{119,128}
textureRect
- {{128,727},{119,128}}
+ {{806,631},{119,128}}
textureRotated
@@ -1425,7 +1575,7 @@
spriteSourceSize
{119,128}
textureRect
- {{326,634},{119,128}}
+ {{256,634},{119,128}}
textureRotated
@@ -1440,7 +1590,7 @@
spriteSourceSize
{119,128}
textureRect
- {{454,634},{119,128}}
+ {{128,727},{119,128}}
textureRotated
@@ -1455,7 +1605,7 @@
spriteSourceSize
{119,128}
textureRect
- {{678,743},{119,128}}
+ {{0,839},{119,128}}
textureRotated
@@ -1471,9 +1621,9 @@
realTextureFileName
KnifeGirl.png
size
- {1020,1331}
+ {1014,1459}
smartupdate
- $TexturePacker:SmartUpdate:9514b6b35473e14baf98f68515bcb817:1aae9dd4a8024ce783fdab093a39672a:1ae107e0c6667a1ecb5ed98687517e0e$
+ $TexturePacker:SmartUpdate:4ca72309f7dc04bba6be361462471d91:9a48d10caa37a76ff8c43fb72bce6103:1ae107e0c6667a1ecb5ed98687517e0e$
textureFileName
KnifeGirl.png
diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta
index 199cf90..2041d2d 100644
--- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta
+++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta
@@ -3,8 +3,8 @@
"uuid": "579bc0c1-f5e2-4a5d-889b-9d567e53b0e6",
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"size": {
- "width": 1020,
- "height": 1331
+ "width": 1014,
+ "height": 1459
},
"type": "Texture Packer",
"subMetas": {
@@ -14,11 +14,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 824,
- "trimY": 544,
+ "trimX": 806,
+ "trimY": 750,
"width": 112,
"height": 128,
"rawWidth": 112,
@@ -36,11 +36,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
- "trimY": 1200,
+ "trimY": 1076,
"width": 112,
"height": 128,
"rawWidth": 112,
@@ -83,8 +83,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 940,
- "trimY": 0,
+ "trimX": 528,
+ "trimY": 515,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -105,8 +105,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 940,
- "trimY": 128,
+ "trimX": 934,
+ "trimY": 640,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -124,11 +124,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
- "trimY": 964,
+ "trimX": 128,
+ "trimY": 1076,
"width": 112,
"height": 128,
"rawWidth": 112,
@@ -146,11 +146,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 112,
- "trimY": 964,
+ "trimX": 678,
+ "trimY": 862,
"width": 112,
"height": 128,
"rawWidth": 112,
@@ -171,8 +171,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 840,
- "trimY": 288,
+ "trimX": 512,
+ "trimY": 643,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -193,8 +193,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 840,
- "trimY": 416,
+ "trimX": 512,
+ "trimY": 771,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -215,8 +215,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 940,
- "trimY": 256,
+ "trimX": 934,
+ "trimY": 768,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -237,8 +237,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 936,
- "trimY": 384,
+ "trimX": 934,
+ "trimY": 896,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -256,11 +256,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 936,
- "trimY": 512,
+ "trimX": 806,
+ "trimY": 958,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -281,8 +281,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 936,
- "trimY": 640,
+ "trimX": 934,
+ "trimY": 1024,
"width": 80,
"height": 128,
"rawWidth": 80,
@@ -303,8 +303,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 582,
- "trimY": 531,
+ "trimX": 512,
+ "trimY": 899,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -325,8 +325,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 326,
- "trimY": 871,
+ "trimX": 128,
+ "trimY": 964,
"width": 128,
"height": 112,
"rawWidth": 128,
@@ -347,8 +347,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 696,
- "trimY": 1200,
+ "trimX": 912,
+ "trimY": 1152,
"width": 96,
"height": 96,
"rawWidth": 96,
@@ -369,8 +369,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 416,
- "trimY": 983,
+ "trimX": 340,
+ "trimY": 1197,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -391,8 +391,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 656,
- "trimY": 1092,
+ "trimX": 452,
+ "trimY": 1196,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -410,11 +410,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 528,
- "trimY": 1113,
+ "trimX": 564,
+ "trimY": 1155,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -432,11 +432,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 392,
- "trimY": 1207,
+ "trimX": 608,
+ "trimY": 1043,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -479,8 +479,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 454,
- "trimY": 871,
+ "trimX": 678,
+ "trimY": 750,
"width": 128,
"height": 112,
"rawWidth": 128,
@@ -765,8 +765,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 582,
- "trimY": 659,
+ "trimX": 512,
+ "trimY": 1027,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -787,8 +787,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 240,
- "trimY": 1081,
+ "trimX": 448,
+ "trimY": 1293,
"width": 112,
"height": 112,
"rawWidth": 112,
@@ -809,8 +809,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 504,
- "trimY": 1209,
+ "trimX": 660,
+ "trimY": 1155,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -831,8 +831,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 678,
- "trimY": 980,
+ "trimX": 384,
+ "trimY": 988,
"width": 128,
"height": 112,
"rawWidth": 128,
@@ -932,6 +932,160 @@
"spriteType": "normal",
"subMetas": {}
},
+ "Dashing_1.png": {
+ "ver": "1.0.4",
+ "uuid": "cf396dac-50c9-4389-90c0-55f49fd3276d",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1188,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_2.png": {
+ "ver": "1.0.4",
+ "uuid": "b9e4b5d5-c296-48c8-aa60-d22db0e5a632",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 114,
+ "trimY": 1188,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_3.png": {
+ "ver": "1.0.4",
+ "uuid": "e456c710-69f5-4dcc-9f5d-dd486a9198a1",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1300,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_4.png": {
+ "ver": "1.0.4",
+ "uuid": "ec6df76f-0004-4216-9b83-449487fe0cda",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 112,
+ "trimY": 1300,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_5.png": {
+ "ver": "1.0.4",
+ "uuid": "26032d0f-845c-4b96-89a6-d88113ed7827",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 1300,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_6.png": {
+ "ver": "1.0.4",
+ "uuid": "e3e0169c-3c56-4206-a20e-35e4d0471873",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 224,
+ "trimY": 1300,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "Dashing_7.png": {
+ "ver": "1.0.4",
+ "uuid": "80b98036-c5de-492b-b0e8-f1703f3a7d20",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 336,
+ "trimY": 1293,
+ "width": 114,
+ "height": 112,
+ "rawWidth": 114,
+ "rawHeight": 112,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
"GetUp1_1.png": {
"ver": "1.0.4",
"uuid": "3f26b0a4-db13-4a14-b885-5a812073eccf",
@@ -941,8 +1095,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 806,
- "trimY": 791,
+ "trimX": 384,
+ "trimY": 634,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -963,8 +1117,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
- "trimY": 846,
+ "trimX": 384,
+ "trimY": 752,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -985,8 +1139,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 128,
- "trimY": 846,
+ "trimX": 256,
+ "trimY": 753,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -1007,8 +1161,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 326,
- "trimY": 753,
+ "trimX": 128,
+ "trimY": 846,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -1029,8 +1183,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 454,
- "trimY": 753,
+ "trimX": 0,
+ "trimY": 958,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -1051,8 +1205,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 678,
- "trimY": 862,
+ "trimX": 384,
+ "trimY": 870,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -1073,8 +1227,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 806,
- "trimY": 909,
+ "trimX": 256,
+ "trimY": 871,
"width": 128,
"height": 118,
"rawWidth": 128,
@@ -1095,8 +1249,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 489,
+ "trimX": 940,
+ "trimY": 0,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1117,8 +1271,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 617,
+ "trimX": 940,
+ "trimY": 128,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1139,8 +1293,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 745,
+ "trimX": 940,
+ "trimY": 256,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1161,8 +1315,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 873,
+ "trimX": 937,
+ "trimY": 384,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1183,8 +1337,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 112,
- "trimY": 1200,
+ "trimX": 936,
+ "trimY": 512,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1205,8 +1359,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 182,
- "trimY": 1200,
+ "trimX": 608,
+ "trimY": 531,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1227,8 +1381,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 252,
- "trimY": 1200,
+ "trimX": 608,
+ "trimY": 659,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1249,8 +1403,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 252,
- "trimY": 1200,
+ "trimX": 608,
+ "trimY": 659,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1271,8 +1425,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 182,
- "trimY": 1200,
+ "trimX": 608,
+ "trimY": 531,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1293,8 +1447,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 112,
- "trimY": 1200,
+ "trimX": 936,
+ "trimY": 512,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1315,8 +1469,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 873,
+ "trimX": 937,
+ "trimY": 384,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1337,8 +1491,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 745,
+ "trimX": 940,
+ "trimY": 256,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1359,8 +1513,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 256,
- "trimY": 617,
+ "trimX": 940,
+ "trimY": 128,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1381,8 +1535,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 322,
- "trimY": 1200,
+ "trimX": 608,
+ "trimY": 787,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1400,11 +1554,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 528,
- "trimY": 1043,
+ "trimX": 608,
+ "trimY": 915,
"width": 70,
"height": 128,
"rawWidth": 70,
@@ -1425,8 +1579,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 128,
- "trimY": 1092,
+ "trimX": 228,
+ "trimY": 1197,
"width": 112,
"height": 96,
"rawWidth": 112,
@@ -1469,8 +1623,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 680,
- "trimY": 512,
+ "trimX": 0,
+ "trimY": 489,
"width": 144,
"height": 112,
"rawWidth": 144,
@@ -1491,8 +1645,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 806,
- "trimY": 1027,
+ "trimX": 256,
+ "trimY": 989,
"width": 128,
"height": 112,
"rawWidth": 128,
@@ -1513,8 +1667,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 792,
- "trimY": 1139,
+ "trimX": 672,
+ "trimY": 1363,
"width": 96,
"height": 96,
"rawWidth": 96,
@@ -1535,8 +1689,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 934,
- "trimY": 1104,
+ "trimX": 672,
+ "trimY": 1267,
"width": 80,
"height": 96,
"rawWidth": 80,
@@ -1557,8 +1711,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 352,
- "trimY": 1081,
+ "trimX": 560,
+ "trimY": 1292,
"width": 112,
"height": 112,
"rawWidth": 112,
@@ -1579,8 +1733,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
- "trimY": 1092,
+ "trimX": 384,
+ "trimY": 1100,
"width": 128,
"height": 96,
"rawWidth": 128,
@@ -1598,11 +1752,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 934,
- "trimY": 768,
+ "trimX": 800,
+ "trimY": 1038,
"width": 80,
"height": 112,
"rawWidth": 80,
@@ -1620,11 +1774,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 934,
- "trimY": 880,
+ "trimX": 800,
+ "trimY": 1118,
"width": 80,
"height": 112,
"rawWidth": 80,
@@ -1642,11 +1796,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 464,
- "trimY": 1079,
+ "trimX": 678,
+ "trimY": 974,
"width": 64,
"height": 128,
"rawWidth": 64,
@@ -1664,11 +1818,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 934,
- "trimY": 992,
+ "trimX": 756,
+ "trimY": 1198,
"width": 80,
"height": 112,
"rawWidth": 80,
@@ -1689,8 +1843,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 224,
- "trimY": 1001,
+ "trimX": 752,
+ "trimY": 1278,
"width": 80,
"height": 96,
"rawWidth": 80,
@@ -1708,11 +1862,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": true,
+ "rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 320,
- "trimY": 1001,
+ "trimX": 768,
+ "trimY": 1358,
"width": 80,
"height": 96,
"rawWidth": 80,
@@ -1730,11 +1884,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 792,
- "trimY": 1235,
+ "trimX": 868,
+ "trimY": 1248,
"width": 80,
"height": 96,
"rawWidth": 80,
@@ -1755,8 +1909,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
- "trimX": 600,
- "trimY": 1209,
+ "trimX": 704,
+ "trimY": 1038,
"width": 96,
"height": 112,
"rawWidth": 96,
@@ -1774,11 +1928,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 582,
- "trimY": 787,
+ "trimX": 256,
+ "trimY": 1101,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -1796,11 +1950,11 @@
"rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
"trimType": "auto",
"trimThreshold": 1,
- "rotated": false,
+ "rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 582,
- "trimY": 915,
+ "trimX": 806,
+ "trimY": 862,
"width": 96,
"height": 128,
"rawWidth": 96,
@@ -1856,6 +2010,72 @@
"spriteType": "normal",
"subMetas": {}
},
+ "OnWall1_1.png": {
+ "ver": "1.0.4",
+ "uuid": "c18886db-8116-4602-84f2-51652a90269a",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 840,
+ "trimY": 288,
+ "width": 112,
+ "height": 97,
+ "rawWidth": 112,
+ "rawHeight": 97,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "OnWall1_2.png": {
+ "ver": "1.0.4",
+ "uuid": "0d81cbf0-dff8-4672-99b3-2ec8055c6931",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 840,
+ "trimY": 400,
+ "width": 112,
+ "height": 97,
+ "rawWidth": 112,
+ "rawHeight": 97,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
+ "OnWall1_3.png": {
+ "ver": "1.0.4",
+ "uuid": "a183e740-3c2d-4890-8430-39a00f55f446",
+ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a",
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 840,
+ "trimY": 400,
+ "width": 112,
+ "height": 97,
+ "rawWidth": 112,
+ "rawHeight": 97,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "spriteType": "normal",
+ "subMetas": {}
+ },
"Walking_1.png": {
"ver": "1.0.4",
"uuid": "9435195e-4560-495e-b1ae-083c0c87e8a0",
@@ -1865,7 +2085,7 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
+ "trimX": 144,
"trimY": 489,
"width": 119,
"height": 128,
@@ -1887,8 +2107,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 128,
- "trimY": 489,
+ "trimX": 0,
+ "trimY": 601,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -1909,8 +2129,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
- "trimY": 608,
+ "trimX": 680,
+ "trimY": 512,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -1931,8 +2151,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 128,
- "trimY": 608,
+ "trimX": 808,
+ "trimY": 512,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -1953,7 +2173,7 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 326,
+ "trimX": 272,
"trimY": 515,
"width": 119,
"height": 128,
@@ -1975,8 +2195,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 454,
- "trimY": 515,
+ "trimX": 128,
+ "trimY": 608,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -1997,8 +2217,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 678,
- "trimY": 624,
+ "trimX": 0,
+ "trimY": 720,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -2019,8 +2239,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 806,
- "trimY": 672,
+ "trimX": 400,
+ "trimY": 515,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -2041,8 +2261,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 0,
- "trimY": 727,
+ "trimX": 678,
+ "trimY": 631,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -2063,8 +2283,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 128,
- "trimY": 727,
+ "trimX": 806,
+ "trimY": 631,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -2085,7 +2305,7 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 326,
+ "trimX": 256,
"trimY": 634,
"width": 119,
"height": 128,
@@ -2107,8 +2327,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 454,
- "trimY": 634,
+ "trimX": 128,
+ "trimY": 727,
"width": 119,
"height": 128,
"rawWidth": 119,
@@ -2129,8 +2349,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
- "trimX": 678,
- "trimY": 743,
+ "trimX": 0,
+ "trimY": 839,
"width": 119,
"height": 128,
"rawWidth": 119,
diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png
index d4ab89c..e6ef436 100644
Binary files a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png and b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png differ
diff --git a/frontend/assets/resources/animation/KnifeGirl/OnWall.anim b/frontend/assets/resources/animation/KnifeGirl/OnWall.anim
new file mode 100644
index 0000000..5e633bd
--- /dev/null
+++ b/frontend/assets/resources/animation/KnifeGirl/OnWall.anim
@@ -0,0 +1,37 @@
+{
+ "__type__": "cc.AnimationClip",
+ "_name": "OnWall",
+ "_objFlags": 0,
+ "_native": "",
+ "_duration": 0.26666666666666666,
+ "sample": 60,
+ "speed": 1,
+ "wrapMode": 1,
+ "curveData": {
+ "comps": {
+ "cc.Sprite": {
+ "spriteFrame": [
+ {
+ "frame": 0,
+ "value": {
+ "__uuid__": "c18886db-8116-4602-84f2-51652a90269a"
+ }
+ },
+ {
+ "frame": 0.13333333333333333,
+ "value": {
+ "__uuid__": "0d81cbf0-dff8-4672-99b3-2ec8055c6931"
+ }
+ },
+ {
+ "frame": 0.25,
+ "value": {
+ "__uuid__": "a183e740-3c2d-4890-8430-39a00f55f446"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "events": []
+}
\ No newline at end of file
diff --git a/frontend/assets/resources/animation/KnifeGirl/OnWall.anim.meta b/frontend/assets/resources/animation/KnifeGirl/OnWall.anim.meta
new file mode 100644
index 0000000..445bf81
--- /dev/null
+++ b/frontend/assets/resources/animation/KnifeGirl/OnWall.anim.meta
@@ -0,0 +1,5 @@
+{
+ "ver": "2.1.0",
+ "uuid": "411f964a-4dd8-424c-b2e2-d92b10474ce2",
+ "subMetas": {}
+}
\ No newline at end of file
diff --git a/frontend/assets/resources/map/dungeon/map.tmx b/frontend/assets/resources/map/dungeon/map.tmx
index 2963547..3e7c8e0 100644
--- a/frontend/assets/resources/map/dungeon/map.tmx
+++ b/frontend/assets/resources/map/dungeon/map.tmx
@@ -1,23 +1,23 @@
-