2022-12-31 07:47:45 +00:00
|
|
|
package battle
|
|
|
|
|
2023-01-01 14:51:46 +00:00
|
|
|
type SkillMapperType func(patternId int, currPlayerDownsync *PlayerDownsync) int
|
|
|
|
|
2023-01-01 07:43:25 +00:00
|
|
|
type CharacterConfig struct {
|
|
|
|
SpeciesId int
|
|
|
|
SpeciesName string
|
|
|
|
|
|
|
|
InAirIdleFrameIdxTurningPoint int
|
|
|
|
InAirIdleFrameIdxTurnedCycle int
|
|
|
|
|
|
|
|
LayDownFrames int32
|
|
|
|
LayDownFramesToRecover int32
|
|
|
|
|
2023-01-04 15:48:00 +00:00
|
|
|
GetUpInvinsibleFrames int32
|
|
|
|
GetUpFramesToRecover int32
|
2023-01-01 07:43:25 +00:00
|
|
|
|
2023-01-19 01:20:52 +00:00
|
|
|
Speed int32
|
|
|
|
JumpingInitVelY int32
|
|
|
|
JumpingFramesToRecover int32 // Not used yet
|
2023-01-01 07:43:25 +00:00
|
|
|
|
2023-01-12 08:09:20 +00:00
|
|
|
DashingEnabled bool
|
|
|
|
OnWallEnabled bool
|
|
|
|
WallJumpingFramesToRecover int32
|
|
|
|
WallJumpingInitVelX int32
|
|
|
|
WallJumpingInitVelY int32
|
|
|
|
WallSlidingVelY int32
|
2023-01-11 23:22:14 +00:00
|
|
|
|
2023-01-20 03:29:27 +00:00
|
|
|
InertiaFramesToRecover int32
|
2023-01-19 01:20:52 +00:00
|
|
|
|
2023-01-01 14:51:46 +00:00
|
|
|
SkillMapper SkillMapperType
|
2023-01-01 07:43:25 +00:00
|
|
|
}
|
|
|
|
|
2022-12-31 07:47:45 +00:00
|
|
|
var Characters = map[int]*CharacterConfig{
|
|
|
|
0: &CharacterConfig{
|
|
|
|
SpeciesId: 0,
|
|
|
|
SpeciesName: "MonkGirl",
|
|
|
|
|
|
|
|
InAirIdleFrameIdxTurningPoint: 11,
|
|
|
|
InAirIdleFrameIdxTurnedCycle: 1,
|
|
|
|
|
2023-01-01 07:43:25 +00:00
|
|
|
LayDownFrames: int32(16),
|
|
|
|
LayDownFramesToRecover: int32(16),
|
2022-12-31 07:47:45 +00:00
|
|
|
|
2023-01-04 15:48:00 +00:00
|
|
|
GetUpInvinsibleFrames: int32(10),
|
|
|
|
GetUpFramesToRecover: int32(27),
|
2022-12-31 07:47:45 +00:00
|
|
|
|
2023-01-20 15:22:02 +00:00
|
|
|
Speed: int32(float64(2.1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-19 01:20:52 +00:00
|
|
|
JumpingInitVelY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
JumpingFramesToRecover: int32(2),
|
|
|
|
|
2023-01-22 06:32:32 +00:00
|
|
|
InertiaFramesToRecover: int32(9),
|
2022-12-31 07:47:45 +00:00
|
|
|
|
2023-02-06 09:18:51 +00:00
|
|
|
DashingEnabled: true,
|
|
|
|
OnWallEnabled: true,
|
|
|
|
WallJumpingFramesToRecover: int32(8), // 8 would be the minimum for an avg human
|
|
|
|
WallJumpingInitVelX: int32(float64(2.8) * WORLD_TO_VIRTUAL_GRID_RATIO), // Default is "appeared facing right", but actually holding ctrl against left
|
|
|
|
WallJumpingInitVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
WallSlidingVelY: int32(float64(-1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 23:22:14 +00:00
|
|
|
|
2023-01-01 14:51:46 +00:00
|
|
|
SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int {
|
|
|
|
if 1 == patternId {
|
|
|
|
if 0 == currPlayerDownsync.FramesToRecover {
|
|
|
|
if currPlayerDownsync.InAir {
|
|
|
|
return 255
|
|
|
|
} else {
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// Now that "0 < FramesToRecover", we're only able to fire any skill if it's a cancellation
|
|
|
|
if skillConfig, existent1 := skills[int(currPlayerDownsync.ActiveSkillId)]; existent1 {
|
|
|
|
switch v := skillConfig.Hits[currPlayerDownsync.ActiveSkillHit].(type) {
|
|
|
|
case *MeleeBullet:
|
2023-01-13 03:25:20 +00:00
|
|
|
if v.Bullet.CancellableStFrame <= currPlayerDownsync.FramesInChState && currPlayerDownsync.FramesInChState < v.Bullet.CancellableEdFrame {
|
|
|
|
if nextSkillId, existent2 := v.Bullet.CancelTransit[patternId]; existent2 {
|
2023-01-01 14:51:46 +00:00
|
|
|
return nextSkillId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-02-06 09:18:51 +00:00
|
|
|
} else if 3 == patternId {
|
|
|
|
if 0 == currPlayerDownsync.FramesToRecover && !currPlayerDownsync.InAir {
|
|
|
|
return 15
|
|
|
|
}
|
|
|
|
} else if 5 == patternId {
|
|
|
|
// Dashing is already constrained by "FramesToRecover & CapturedByInertia" in "deriveOpPattern"
|
|
|
|
if !currPlayerDownsync.InAir {
|
|
|
|
return 12
|
|
|
|
}
|
2023-01-01 14:51:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// By default no skill can be fired
|
|
|
|
return NO_SKILL
|
|
|
|
},
|
|
|
|
},
|
|
|
|
1: &CharacterConfig{
|
|
|
|
SpeciesId: 1,
|
|
|
|
SpeciesName: "KnifeGirl",
|
|
|
|
|
|
|
|
InAirIdleFrameIdxTurningPoint: 9,
|
|
|
|
InAirIdleFrameIdxTurnedCycle: 1,
|
|
|
|
|
|
|
|
LayDownFrames: int32(16),
|
|
|
|
LayDownFramesToRecover: int32(16),
|
|
|
|
|
2023-01-04 15:48:00 +00:00
|
|
|
GetUpInvinsibleFrames: int32(10),
|
|
|
|
GetUpFramesToRecover: int32(27),
|
2023-01-01 14:51:46 +00:00
|
|
|
|
2023-01-20 15:22:02 +00:00
|
|
|
Speed: int32(float64(2.19) * WORLD_TO_VIRTUAL_GRID_RATIO), // I don't know why "2.2" is so special that it throws a compile error
|
2023-01-19 01:20:52 +00:00
|
|
|
JumpingInitVelY: int32(float64(7.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
JumpingFramesToRecover: int32(2),
|
|
|
|
|
2023-01-22 06:32:32 +00:00
|
|
|
InertiaFramesToRecover: int32(9),
|
2023-01-01 14:51:46 +00:00
|
|
|
|
2023-01-12 08:09:20 +00:00
|
|
|
DashingEnabled: true,
|
|
|
|
OnWallEnabled: true,
|
2023-01-19 01:20:52 +00:00
|
|
|
WallJumpingFramesToRecover: int32(8), // 8 would be the minimum for an avg human
|
|
|
|
WallJumpingInitVelX: int32(float64(2.8) * WORLD_TO_VIRTUAL_GRID_RATIO), // Default is "appeared facing right", but actually holding ctrl against left
|
2023-01-12 08:09:20 +00:00
|
|
|
WallJumpingInitVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
WallSlidingVelY: int32(float64(-1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 23:22:14 +00:00
|
|
|
|
2023-01-01 14:51:46 +00:00
|
|
|
SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int {
|
|
|
|
if 1 == patternId {
|
|
|
|
if 0 == currPlayerDownsync.FramesToRecover {
|
|
|
|
if currPlayerDownsync.InAir {
|
|
|
|
return 256
|
|
|
|
} else {
|
|
|
|
return 4
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// Now that "0 < FramesToRecover", we're only able to fire any skill if it's a cancellation
|
|
|
|
if skillConfig, existent1 := skills[int(currPlayerDownsync.ActiveSkillId)]; existent1 {
|
|
|
|
switch v := skillConfig.Hits[currPlayerDownsync.ActiveSkillHit].(type) {
|
|
|
|
case *MeleeBullet:
|
2023-01-13 03:25:20 +00:00
|
|
|
if v.Bullet.CancellableStFrame <= currPlayerDownsync.FramesInChState && currPlayerDownsync.FramesInChState < v.Bullet.CancellableEdFrame {
|
|
|
|
if nextSkillId, existent2 := v.Bullet.CancelTransit[patternId]; existent2 {
|
2023-01-01 14:51:46 +00:00
|
|
|
return nextSkillId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-02-06 09:18:51 +00:00
|
|
|
} else if 3 == patternId {
|
|
|
|
if 0 == currPlayerDownsync.FramesToRecover && !currPlayerDownsync.InAir {
|
|
|
|
return 16
|
|
|
|
}
|
2023-01-20 15:22:02 +00:00
|
|
|
} else if 5 == patternId {
|
2023-02-06 09:18:51 +00:00
|
|
|
// Air dash allowed for this character
|
2023-01-21 02:40:13 +00:00
|
|
|
// Dashing is already constrained by "FramesToRecover & CapturedByInertia" in "deriveOpPattern"
|
2023-02-06 09:18:51 +00:00
|
|
|
return 13
|
2023-01-01 14:51:46 +00:00
|
|
|
}
|
|
|
|
|
2023-01-08 12:34:29 +00:00
|
|
|
// By default no skill can be fired
|
|
|
|
return NO_SKILL
|
|
|
|
},
|
|
|
|
},
|
2023-01-10 04:08:15 +00:00
|
|
|
4096: &CharacterConfig{
|
|
|
|
SpeciesId: 4096,
|
2023-01-08 12:34:29 +00:00
|
|
|
SpeciesName: "Monk",
|
|
|
|
|
|
|
|
InAirIdleFrameIdxTurningPoint: 42,
|
|
|
|
InAirIdleFrameIdxTurnedCycle: 2,
|
|
|
|
|
|
|
|
LayDownFrames: int32(14),
|
|
|
|
LayDownFramesToRecover: int32(14),
|
|
|
|
|
|
|
|
GetUpInvinsibleFrames: int32(8),
|
|
|
|
GetUpFramesToRecover: int32(30),
|
|
|
|
|
2023-01-20 15:22:02 +00:00
|
|
|
Speed: int32(float64(1.8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
JumpingInitVelY: int32(float64(7.8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-19 01:20:52 +00:00
|
|
|
JumpingFramesToRecover: int32(2),
|
|
|
|
|
2023-01-22 06:32:32 +00:00
|
|
|
InertiaFramesToRecover: int32(9),
|
2023-01-08 12:34:29 +00:00
|
|
|
|
2023-02-06 09:18:51 +00:00
|
|
|
DashingEnabled: true,
|
2023-01-11 23:22:14 +00:00
|
|
|
OnWallEnabled: false,
|
|
|
|
|
2023-01-08 12:34:29 +00:00
|
|
|
SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int {
|
|
|
|
if 1 == patternId {
|
|
|
|
if 0 == currPlayerDownsync.FramesToRecover {
|
|
|
|
if currPlayerDownsync.InAir {
|
|
|
|
return 257
|
|
|
|
} else {
|
2023-01-11 14:24:31 +00:00
|
|
|
return 7
|
2023-01-08 12:34:29 +00:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// Now that "0 < FramesToRecover", we're only able to fire any skill if it's a cancellation
|
|
|
|
if skillConfig, existent1 := skills[int(currPlayerDownsync.ActiveSkillId)]; existent1 {
|
|
|
|
switch v := skillConfig.Hits[currPlayerDownsync.ActiveSkillHit].(type) {
|
|
|
|
case *MeleeBullet:
|
2023-01-13 03:25:20 +00:00
|
|
|
if v.Bullet.CancellableStFrame <= currPlayerDownsync.FramesInChState && currPlayerDownsync.FramesInChState < v.Bullet.CancellableEdFrame {
|
|
|
|
if nextSkillId, existent2 := v.Bullet.CancelTransit[patternId]; existent2 {
|
2023-01-08 12:34:29 +00:00
|
|
|
return nextSkillId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-01-11 14:24:31 +00:00
|
|
|
} else if 2 == patternId {
|
2023-01-21 02:40:13 +00:00
|
|
|
if 0 == currPlayerDownsync.FramesToRecover && !currPlayerDownsync.InAir {
|
2023-01-11 14:24:31 +00:00
|
|
|
return 11
|
|
|
|
}
|
|
|
|
} else if 3 == patternId {
|
2023-01-21 02:40:13 +00:00
|
|
|
if 0 == currPlayerDownsync.FramesToRecover && !currPlayerDownsync.InAir {
|
2023-01-11 14:24:31 +00:00
|
|
|
return 10
|
|
|
|
}
|
2023-02-06 09:18:51 +00:00
|
|
|
} else if 5 == patternId {
|
|
|
|
// Dashing is already constrained by "FramesToRecover & CapturedByInertia" in "deriveOpPattern"
|
|
|
|
if !currPlayerDownsync.InAir {
|
|
|
|
return 14
|
|
|
|
}
|
2023-01-08 12:34:29 +00:00
|
|
|
}
|
|
|
|
|
2023-01-01 14:51:46 +00:00
|
|
|
// By default no skill can be fired
|
|
|
|
return NO_SKILL
|
2022-12-31 07:47:45 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2023-01-01 07:43:25 +00:00
|
|
|
var skills = map[int]*Skill{
|
|
|
|
1: &Skill{
|
2023-01-01 14:51:46 +00:00
|
|
|
RecoveryFrames: int32(30),
|
|
|
|
RecoveryFramesOnBlock: int32(30),
|
|
|
|
RecoveryFramesOnHit: int32(30),
|
2023-01-01 07:43:25 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK1,
|
2023-01-01 07:43:25 +00:00
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 14:51:46 +00:00
|
|
|
StartupFrames: int32(7),
|
|
|
|
ActiveFrames: int32(22),
|
2023-01-01 12:18:35 +00:00
|
|
|
HitStunFrames: int32(13),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: int32(float64(0.05) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 12:18:35 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 14:51:46 +00:00
|
|
|
CancellableStFrame: int32(13),
|
|
|
|
CancellableEdFrame: int32(30),
|
|
|
|
|
|
|
|
CancelTransit: map[int]int{
|
|
|
|
1: 2,
|
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-01 12:18:35 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
2: &Skill{
|
|
|
|
RecoveryFrames: int32(36),
|
|
|
|
RecoveryFramesOnBlock: int32(36),
|
|
|
|
RecoveryFramesOnHit: int32(36),
|
|
|
|
ReleaseTriggerType: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK2,
|
2023-01-01 12:18:35 +00:00
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 14:51:46 +00:00
|
|
|
StartupFrames: int32(18),
|
|
|
|
ActiveFrames: int32(18),
|
2023-01-01 12:18:35 +00:00
|
|
|
HitStunFrames: int32(18),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: int32(float64(0.1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 12:18:35 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(18) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 14:51:46 +00:00
|
|
|
CancellableStFrame: int32(22),
|
2023-01-01 12:18:35 +00:00
|
|
|
CancellableEdFrame: int32(36),
|
2023-01-01 14:51:46 +00:00
|
|
|
CancelTransit: map[int]int{
|
|
|
|
1: 3,
|
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-01 12:18:35 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
3: &Skill{
|
2023-01-05 02:20:01 +00:00
|
|
|
RecoveryFrames: int32(50),
|
|
|
|
RecoveryFramesOnBlock: int32(50),
|
|
|
|
RecoveryFramesOnHit: int32(50),
|
2023-01-01 12:18:35 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK3,
|
2023-01-01 12:18:35 +00:00
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-11 14:24:31 +00:00
|
|
|
StartupFrames: int32(8),
|
2023-01-04 15:48:00 +00:00
|
|
|
ActiveFrames: int32(30),
|
2023-01-01 12:18:35 +00:00
|
|
|
HitStunFrames: MAX_INT32,
|
2023-01-01 07:43:25 +00:00
|
|
|
BlockStunFrames: int32(9),
|
2023-01-01 12:18:35 +00:00
|
|
|
Damage: int32(10),
|
2023-01-05 02:20:01 +00:00
|
|
|
SelfLockVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: int32(float64(5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 14:51:46 +00:00
|
|
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 14:24:31 +00:00
|
|
|
HitboxOffsetX: int32(float64(16) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 14:51:46 +00:00
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
BlowUp: true,
|
2023-01-15 05:11:19 +00:00
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
4: &Skill{
|
|
|
|
RecoveryFrames: int32(30),
|
|
|
|
RecoveryFramesOnBlock: int32(30),
|
|
|
|
RecoveryFramesOnHit: int32(30),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK1,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 14:51:46 +00:00
|
|
|
StartupFrames: int32(7),
|
|
|
|
ActiveFrames: int32(22),
|
|
|
|
HitStunFrames: int32(13),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: int32(float64(0.05) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 14:51:46 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-17 15:29:05 +00:00
|
|
|
CancellableStFrame: int32(13),
|
2023-01-01 14:51:46 +00:00
|
|
|
CancellableEdFrame: int32(30),
|
|
|
|
|
|
|
|
CancelTransit: map[int]int{
|
|
|
|
1: 5,
|
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 15,
|
|
|
|
SpeciesId: int32(2),
|
2023-01-01 14:51:46 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
5: &Skill{
|
|
|
|
RecoveryFrames: int32(36),
|
|
|
|
RecoveryFramesOnBlock: int32(36),
|
|
|
|
RecoveryFramesOnHit: int32(36),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK2,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 14:51:46 +00:00
|
|
|
StartupFrames: int32(18),
|
|
|
|
ActiveFrames: int32(18),
|
|
|
|
HitStunFrames: int32(18),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: int32(float64(0.1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 14:51:46 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(18) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-17 15:29:05 +00:00
|
|
|
CancellableStFrame: int32(23),
|
2023-01-01 14:51:46 +00:00
|
|
|
CancellableEdFrame: int32(36),
|
|
|
|
CancelTransit: map[int]int{
|
|
|
|
1: 6,
|
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 15,
|
|
|
|
SpeciesId: int32(2),
|
2023-01-01 14:51:46 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
6: &Skill{
|
2023-01-05 02:20:01 +00:00
|
|
|
RecoveryFrames: int32(45),
|
|
|
|
RecoveryFramesOnBlock: int32(45),
|
|
|
|
RecoveryFramesOnHit: int32(45),
|
2023-01-01 14:51:46 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK3,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-11 14:24:31 +00:00
|
|
|
StartupFrames: int32(8),
|
2023-01-05 02:20:01 +00:00
|
|
|
ActiveFrames: int32(28),
|
2023-01-01 14:51:46 +00:00
|
|
|
HitStunFrames: MAX_INT32,
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(10),
|
2023-01-11 23:22:14 +00:00
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 14:51:46 +00:00
|
|
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 23:22:14 +00:00
|
|
|
PushbackVelY: int32(float64(3) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 12:18:35 +00:00
|
|
|
HitboxOffsetX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 07:43:25 +00:00
|
|
|
HitboxOffsetY: int32(0),
|
2023-01-01 12:18:35 +00:00
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 07:43:25 +00:00
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-01 12:18:35 +00:00
|
|
|
BlowUp: true,
|
2023-01-15 05:11:19 +00:00
|
|
|
ExplosionFrames: 15,
|
|
|
|
SpeciesId: int32(2),
|
2023-01-01 07:43:25 +00:00
|
|
|
},
|
|
|
|
},
|
2022-12-31 07:47:45 +00:00
|
|
|
},
|
|
|
|
},
|
2023-01-08 12:34:29 +00:00
|
|
|
7: &Skill{
|
|
|
|
RecoveryFrames: int32(30),
|
|
|
|
RecoveryFramesOnBlock: int32(30),
|
|
|
|
RecoveryFramesOnHit: int32(30),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK1,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-08 12:34:29 +00:00
|
|
|
StartupFrames: int32(7),
|
|
|
|
ActiveFrames: int32(22),
|
|
|
|
HitStunFrames: int32(13),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-11 14:24:31 +00:00
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
2023-01-08 12:34:29 +00:00
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
CancellableStFrame: int32(13),
|
|
|
|
CancellableEdFrame: int32(30),
|
|
|
|
|
|
|
|
CancelTransit: map[int]int{
|
2023-01-11 14:24:31 +00:00
|
|
|
1: 8,
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
8: &Skill{
|
|
|
|
RecoveryFrames: int32(36),
|
|
|
|
RecoveryFramesOnBlock: int32(36),
|
|
|
|
RecoveryFramesOnHit: int32(36),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK2,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-08 12:34:29 +00:00
|
|
|
StartupFrames: int32(18),
|
|
|
|
ActiveFrames: int32(18),
|
|
|
|
HitStunFrames: int32(18),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
|
|
|
SelfLockVelX: int32(float64(0.1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(18) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
CancellableStFrame: int32(22),
|
|
|
|
CancellableEdFrame: int32(36),
|
|
|
|
CancelTransit: map[int]int{
|
2023-01-11 14:24:31 +00:00
|
|
|
1: 9,
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
9: &Skill{
|
2023-01-11 14:24:31 +00:00
|
|
|
RecoveryFrames: int32(40),
|
|
|
|
RecoveryFramesOnBlock: int32(40),
|
|
|
|
RecoveryFramesOnHit: int32(40),
|
2023-01-08 12:34:29 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK3,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-11 14:24:31 +00:00
|
|
|
StartupFrames: int32(7),
|
2023-01-08 12:34:29 +00:00
|
|
|
ActiveFrames: int32(30),
|
|
|
|
HitStunFrames: MAX_INT32,
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(10),
|
2023-01-11 14:24:31 +00:00
|
|
|
SelfLockVelX: int32(float64(1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-08 12:34:29 +00:00
|
|
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 14:24:31 +00:00
|
|
|
PushbackVelY: int32(float64(4) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetX: int32(float64(10) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-08 12:34:29 +00:00
|
|
|
HitboxOffsetY: int32(0),
|
2023-01-11 14:24:31 +00:00
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-08 12:34:29 +00:00
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-11 14:24:31 +00:00
|
|
|
BlowUp: true,
|
2023-01-15 05:11:19 +00:00
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
10: &Skill{
|
2023-02-06 09:18:51 +00:00
|
|
|
RecoveryFrames: int32(38),
|
|
|
|
RecoveryFramesOnBlock: int32(38),
|
|
|
|
RecoveryFramesOnHit: int32(38),
|
2023-01-08 12:34:29 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK4,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&FireballBullet{
|
2023-02-06 09:18:51 +00:00
|
|
|
Speed: int32(float64(6) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-02-06 09:18:51 +00:00
|
|
|
StartupFrames: int32(10),
|
2023-01-10 04:08:15 +00:00
|
|
|
ActiveFrames: MAX_INT32,
|
2023-01-08 12:34:29 +00:00
|
|
|
HitStunFrames: int32(15),
|
|
|
|
BlockStunFrames: int32(9),
|
2023-02-06 09:18:51 +00:00
|
|
|
Damage: int32(22),
|
2023-01-10 04:08:15 +00:00
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-08 12:34:29 +00:00
|
|
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-10 04:08:15 +00:00
|
|
|
PushbackVelY: int32(0),
|
2023-02-06 09:18:51 +00:00
|
|
|
HitboxOffsetX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(float64(10) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeX: int32(float64(64) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
2023-02-06 09:18:51 +00:00
|
|
|
ExplosionFrames: 10,
|
2023-01-15 05:11:19 +00:00
|
|
|
SpeciesId: int32(1),
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-01-11 14:24:31 +00:00
|
|
|
11: &Skill{
|
|
|
|
RecoveryFrames: int32(60),
|
|
|
|
RecoveryFramesOnBlock: int32(60),
|
|
|
|
RecoveryFramesOnHit: int32(60),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK5,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-11 14:24:31 +00:00
|
|
|
StartupFrames: int32(3),
|
|
|
|
ActiveFrames: int32(25),
|
|
|
|
HitStunFrames: MAX_INT32,
|
|
|
|
BlockStunFrames: int32(9),
|
2023-02-06 09:18:51 +00:00
|
|
|
Damage: int32(35),
|
2023-01-11 14:24:31 +00:00
|
|
|
SelfLockVelX: int32(float64(1) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetX: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(40) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(64) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
BlowUp: true,
|
2023-01-15 05:11:19 +00:00
|
|
|
ExplosionFrames: 15,
|
|
|
|
SpeciesId: int32(3),
|
2023-01-11 14:24:31 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-01-20 15:22:02 +00:00
|
|
|
12: &Skill{
|
2023-02-06 09:18:51 +00:00
|
|
|
RecoveryFrames: int32(10),
|
|
|
|
RecoveryFramesOnBlock: int32(10),
|
|
|
|
RecoveryFramesOnHit: int32(10),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_DASHING,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
|
|
|
Bullet: &BulletConfig{
|
|
|
|
StartupFrames: int32(3),
|
|
|
|
ActiveFrames: int32(0),
|
|
|
|
HitStunFrames: int32(0),
|
|
|
|
BlockStunFrames: int32(0),
|
|
|
|
Damage: int32(0),
|
|
|
|
SelfLockVelX: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: int32(0),
|
|
|
|
PushbackVelX: NO_LOCK_VEL,
|
|
|
|
PushbackVelY: NO_LOCK_VEL,
|
|
|
|
HitboxOffsetX: int32(0),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(0),
|
|
|
|
HitboxSizeY: int32(0),
|
|
|
|
BlowUp: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
13: &Skill{
|
2023-01-22 03:34:02 +00:00
|
|
|
RecoveryFrames: int32(12),
|
|
|
|
RecoveryFramesOnBlock: int32(12),
|
|
|
|
RecoveryFramesOnHit: int32(12),
|
2023-01-20 15:22:02 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_DASHING,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
|
|
|
Bullet: &BulletConfig{
|
2023-02-06 09:18:51 +00:00
|
|
|
StartupFrames: int32(3),
|
2023-01-20 15:22:02 +00:00
|
|
|
ActiveFrames: int32(0),
|
2023-02-06 09:18:51 +00:00
|
|
|
HitStunFrames: int32(0),
|
2023-01-20 15:22:02 +00:00
|
|
|
BlockStunFrames: int32(0),
|
|
|
|
Damage: int32(0),
|
|
|
|
SelfLockVelX: int32(float64(9) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: int32(0),
|
|
|
|
PushbackVelX: NO_LOCK_VEL,
|
|
|
|
PushbackVelY: NO_LOCK_VEL,
|
|
|
|
HitboxOffsetX: int32(0),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(0),
|
|
|
|
HitboxSizeY: int32(0),
|
|
|
|
BlowUp: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-02-06 09:18:51 +00:00
|
|
|
14: &Skill{
|
|
|
|
RecoveryFrames: int32(10),
|
|
|
|
RecoveryFramesOnBlock: int32(10),
|
|
|
|
RecoveryFramesOnHit: int32(10),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_DASHING,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
|
|
|
Bullet: &BulletConfig{
|
|
|
|
StartupFrames: int32(3),
|
|
|
|
ActiveFrames: int32(0),
|
|
|
|
HitStunFrames: MAX_INT32,
|
|
|
|
BlockStunFrames: int32(0),
|
|
|
|
Damage: int32(0),
|
|
|
|
SelfLockVelX: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
SelfLockVelY: int32(0),
|
|
|
|
PushbackVelX: NO_LOCK_VEL,
|
|
|
|
PushbackVelY: NO_LOCK_VEL,
|
|
|
|
HitboxOffsetX: int32(0),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(0),
|
|
|
|
HitboxSizeY: int32(0),
|
|
|
|
BlowUp: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
15: &Skill{
|
|
|
|
RecoveryFrames: int32(48),
|
|
|
|
RecoveryFramesOnBlock: int32(48),
|
|
|
|
RecoveryFramesOnHit: int32(48),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK4,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&FireballBullet{
|
|
|
|
Speed: int32(float64(4) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
Bullet: &BulletConfig{
|
|
|
|
StartupFrames: int32(12),
|
|
|
|
ActiveFrames: MAX_INT32,
|
|
|
|
HitStunFrames: int32(15),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(18),
|
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
|
|
|
PushbackVelX: int32(float64(3) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 30,
|
|
|
|
SpeciesId: int32(2),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
16: &Skill{
|
|
|
|
RecoveryFrames: int32(60),
|
|
|
|
RecoveryFramesOnBlock: int32(60),
|
|
|
|
RecoveryFramesOnHit: int32(60),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_ATK4,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&FireballBullet{
|
|
|
|
Speed: int32(float64(4) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
Bullet: &BulletConfig{
|
|
|
|
StartupFrames: int32(16),
|
|
|
|
ActiveFrames: MAX_INT32,
|
|
|
|
HitStunFrames: MAX_INT32,
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(30),
|
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
|
|
|
PushbackVelX: int32(float64(3) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
BlowUp: true,
|
|
|
|
ExplosionFrames: 30,
|
|
|
|
SpeciesId: int32(3),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-01-01 12:18:35 +00:00
|
|
|
255: &Skill{
|
2023-01-05 02:20:01 +00:00
|
|
|
RecoveryFrames: int32(30),
|
|
|
|
RecoveryFramesOnBlock: int32(30),
|
|
|
|
RecoveryFramesOnHit: int32(30),
|
2023-01-01 07:43:25 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
BoundChState: ATK_CHARACTER_STATE_INAIR_ATK1,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 14:51:46 +00:00
|
|
|
StartupFrames: int32(3),
|
|
|
|
ActiveFrames: int32(20),
|
|
|
|
HitStunFrames: int32(18),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 14:51:46 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-01 14:51:46 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
256: &Skill{
|
2023-01-05 02:20:01 +00:00
|
|
|
RecoveryFrames: int32(20),
|
|
|
|
RecoveryFramesOnBlock: int32(20),
|
|
|
|
RecoveryFramesOnHit: int32(20),
|
2023-01-01 14:51:46 +00:00
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_INAIR_ATK1,
|
2023-01-01 07:43:25 +00:00
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-01 07:43:25 +00:00
|
|
|
StartupFrames: int32(3),
|
2023-01-05 02:20:01 +00:00
|
|
|
ActiveFrames: int32(10),
|
|
|
|
HitStunFrames: int32(15),
|
2023-01-01 07:43:25 +00:00
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
2023-01-04 15:48:00 +00:00
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
2023-01-01 12:18:35 +00:00
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
2023-01-01 07:43:25 +00:00
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 15,
|
|
|
|
SpeciesId: int32(2),
|
2023-01-01 07:43:25 +00:00
|
|
|
},
|
|
|
|
},
|
2022-12-31 07:47:45 +00:00
|
|
|
},
|
|
|
|
},
|
2023-01-08 12:34:29 +00:00
|
|
|
257: &Skill{
|
|
|
|
RecoveryFrames: int32(30),
|
|
|
|
RecoveryFramesOnBlock: int32(30),
|
|
|
|
RecoveryFramesOnHit: int32(30),
|
|
|
|
ReleaseTriggerType: int32(1),
|
|
|
|
BoundChState: ATK_CHARACTER_STATE_INAIR_ATK1,
|
|
|
|
Hits: []interface{}{
|
|
|
|
&MeleeBullet{
|
2023-01-13 03:25:20 +00:00
|
|
|
Bullet: &BulletConfig{
|
2023-01-08 12:34:29 +00:00
|
|
|
StartupFrames: int32(3),
|
|
|
|
ActiveFrames: int32(20),
|
|
|
|
HitStunFrames: int32(18),
|
|
|
|
BlockStunFrames: int32(9),
|
|
|
|
Damage: int32(5),
|
|
|
|
SelfLockVelX: NO_LOCK_VEL,
|
|
|
|
SelfLockVelY: NO_LOCK_VEL,
|
|
|
|
PushbackVelX: int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
PushbackVelY: int32(0),
|
|
|
|
HitboxOffsetX: int32(float64(12) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxOffsetY: int32(0),
|
|
|
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
|
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
2023-01-15 05:11:19 +00:00
|
|
|
BlowUp: false,
|
|
|
|
ExplosionFrames: 9,
|
|
|
|
SpeciesId: int32(1),
|
2023-01-08 12:34:29 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-12-31 07:47:45 +00:00
|
|
|
}
|