mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 03:39:00 +00:00
Merge pull request #19 from genxium/explosion
Drafted bullet explosion data structure.
This commit is contained in:
commit
aa14529bf8
@ -80,6 +80,12 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
HitboxSizeY: last.Bullet.HitboxSizeY,
|
HitboxSizeY: last.Bullet.HitboxSizeY,
|
||||||
|
|
||||||
BlowUp: last.Bullet.BlowUp,
|
BlowUp: last.Bullet.BlowUp,
|
||||||
|
|
||||||
|
SpeciesId: last.Bullet.SpeciesId,
|
||||||
|
ExplosionFrames: last.Bullet.ExplosionFrames,
|
||||||
|
|
||||||
|
BlState: last.BlState,
|
||||||
|
FramesInBlState: last.FramesInBlState,
|
||||||
}
|
}
|
||||||
ret.MeleeBullets[i] = pbBullet
|
ret.MeleeBullets[i] = pbBullet
|
||||||
}
|
}
|
||||||
@ -112,6 +118,12 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
|
|
||||||
BlowUp: last.Bullet.BlowUp,
|
BlowUp: last.Bullet.BlowUp,
|
||||||
|
|
||||||
|
SpeciesId: last.Bullet.SpeciesId,
|
||||||
|
ExplosionFrames: last.Bullet.ExplosionFrames,
|
||||||
|
|
||||||
|
BlState: last.BlState,
|
||||||
|
FramesInBlState: last.FramesInBlState,
|
||||||
|
|
||||||
VirtualGridX: last.VirtualGridX,
|
VirtualGridX: last.VirtualGridX,
|
||||||
VirtualGridY: last.VirtualGridY,
|
VirtualGridY: last.VirtualGridY,
|
||||||
DirX: last.DirX,
|
DirX: last.DirX,
|
||||||
@ -119,7 +131,6 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame
|
|||||||
VelX: last.VelX,
|
VelX: last.VelX,
|
||||||
VelY: last.VelY,
|
VelY: last.VelY,
|
||||||
Speed: last.Speed,
|
Speed: last.Speed,
|
||||||
SpeciesId: last.SpeciesId,
|
|
||||||
}
|
}
|
||||||
ret.FireballBullets[i] = pbBullet
|
ret.FireballBullets[i] = pbBullet
|
||||||
}
|
}
|
||||||
|
@ -831,6 +831,10 @@ type MeleeBullet struct {
|
|||||||
BlowUp bool `protobuf:"varint,18,opt,name=blowUp,proto3" json:"blowUp,omitempty"`
|
BlowUp bool `protobuf:"varint,18,opt,name=blowUp,proto3" json:"blowUp,omitempty"`
|
||||||
TeamId int32 `protobuf:"varint,19,opt,name=teamId,proto3" json:"teamId,omitempty"`
|
TeamId int32 `protobuf:"varint,19,opt,name=teamId,proto3" json:"teamId,omitempty"`
|
||||||
BulletLocalId int32 `protobuf:"varint,20,opt,name=bulletLocalId,proto3" json:"bulletLocalId,omitempty"`
|
BulletLocalId int32 `protobuf:"varint,20,opt,name=bulletLocalId,proto3" json:"bulletLocalId,omitempty"`
|
||||||
|
SpeciesId int32 `protobuf:"varint,21,opt,name=speciesId,proto3" json:"speciesId,omitempty"`
|
||||||
|
ExplosionFrames int32 `protobuf:"varint,22,opt,name=explosionFrames,proto3" json:"explosionFrames,omitempty"`
|
||||||
|
BlState int32 `protobuf:"varint,23,opt,name=blState,proto3" json:"blState,omitempty"`
|
||||||
|
FramesInBlState int32 `protobuf:"varint,24,opt,name=framesInBlState,proto3" json:"framesInBlState,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *MeleeBullet) Reset() {
|
func (x *MeleeBullet) Reset() {
|
||||||
@ -1005,6 +1009,34 @@ func (x *MeleeBullet) GetBulletLocalId() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *MeleeBullet) GetSpeciesId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SpeciesId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *MeleeBullet) GetExplosionFrames() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ExplosionFrames
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *MeleeBullet) GetBlState() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.BlState
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *MeleeBullet) GetFramesInBlState() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.FramesInBlState
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
type FireballBullet struct {
|
type FireballBullet struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -1031,6 +1063,9 @@ type FireballBullet struct {
|
|||||||
TeamId int32 `protobuf:"varint,19,opt,name=teamId,proto3" json:"teamId,omitempty"`
|
TeamId int32 `protobuf:"varint,19,opt,name=teamId,proto3" json:"teamId,omitempty"`
|
||||||
BulletLocalId int32 `protobuf:"varint,20,opt,name=bulletLocalId,proto3" json:"bulletLocalId,omitempty"`
|
BulletLocalId int32 `protobuf:"varint,20,opt,name=bulletLocalId,proto3" json:"bulletLocalId,omitempty"`
|
||||||
SpeciesId int32 `protobuf:"varint,21,opt,name=speciesId,proto3" json:"speciesId,omitempty"`
|
SpeciesId int32 `protobuf:"varint,21,opt,name=speciesId,proto3" json:"speciesId,omitempty"`
|
||||||
|
ExplosionFrames int32 `protobuf:"varint,22,opt,name=explosionFrames,proto3" json:"explosionFrames,omitempty"`
|
||||||
|
BlState int32 `protobuf:"varint,23,opt,name=blState,proto3" json:"blState,omitempty"`
|
||||||
|
FramesInBlState int32 `protobuf:"varint,24,opt,name=framesInBlState,proto3" json:"framesInBlState,omitempty"`
|
||||||
VirtualGridX int32 `protobuf:"varint,999,opt,name=virtualGridX,proto3" json:"virtualGridX,omitempty"`
|
VirtualGridX int32 `protobuf:"varint,999,opt,name=virtualGridX,proto3" json:"virtualGridX,omitempty"`
|
||||||
VirtualGridY int32 `protobuf:"varint,1000,opt,name=virtualGridY,proto3" json:"virtualGridY,omitempty"`
|
VirtualGridY int32 `protobuf:"varint,1000,opt,name=virtualGridY,proto3" json:"virtualGridY,omitempty"`
|
||||||
DirX int32 `protobuf:"varint,1001,opt,name=dirX,proto3" json:"dirX,omitempty"`
|
DirX int32 `protobuf:"varint,1001,opt,name=dirX,proto3" json:"dirX,omitempty"`
|
||||||
@ -1219,6 +1254,27 @@ func (x *FireballBullet) GetSpeciesId() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *FireballBullet) GetExplosionFrames() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ExplosionFrames
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FireballBullet) GetBlState() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.BlState
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *FireballBullet) GetFramesInBlState() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.FramesInBlState
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
func (x *FireballBullet) GetVirtualGridX() int32 {
|
func (x *FireballBullet) GetVirtualGridX() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.VirtualGridX
|
return x.VirtualGridX
|
||||||
@ -1672,7 +1728,7 @@ var file_room_downsync_frame_proto_rawDesc = []byte{
|
|||||||
0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x68, 0x6f,
|
0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x68, 0x6f,
|
||||||
0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04,
|
0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04,
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63,
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63,
|
||||||
0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x22, 0xfd, 0x05, 0x0a, 0x0b, 0x4d, 0x65, 0x6c, 0x65,
|
0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x22, 0x89, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x6c, 0x65,
|
||||||
0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69,
|
0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69,
|
||||||
0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
||||||
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
|
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
|
||||||
@ -1720,143 +1776,159 @@ var file_room_downsync_frame_proto_rawDesc = []byte{
|
|||||||
0x6d, 0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49,
|
0x6d, 0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49,
|
||||||
0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
|
0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
|
||||||
0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74,
|
0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74,
|
||||||
0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xd3, 0x07, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x65,
|
0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69,
|
||||||
0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6f, 0x72,
|
0x65, 0x73, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63,
|
||||||
0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72,
|
0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69,
|
||||||
0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6f, 0x72, 0x69,
|
0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
|
||||||
0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61,
|
0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12,
|
||||||
0x6d, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72,
|
0x18, 0x0a, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x52, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61,
|
||||||
0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64,
|
0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01,
|
||||||
0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61,
|
0x28, 0x05, 0x52, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74,
|
||||||
0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74,
|
0x61, 0x74, 0x65, 0x22, 0xc1, 0x08, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c,
|
||||||
0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63,
|
0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
|
||||||
0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x04,
|
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
|
||||||
0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63,
|
0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64,
|
||||||
0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x05,
|
0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c,
|
0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x66, 0x66,
|
||||||
0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69,
|
0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24,
|
||||||
0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
|
0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18,
|
||||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d,
|
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72,
|
||||||
0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20,
|
0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61,
|
||||||
0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d,
|
0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46,
|
0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46,
|
||||||
0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x6c, 0x6f,
|
0x72, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61,
|
||||||
0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c,
|
0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x18, 0x09, 0x20, 0x01,
|
0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46,
|
||||||
0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58,
|
0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72,
|
||||||
0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59,
|
0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69,
|
||||||
0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b,
|
0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x53,
|
||||||
0x56, 0x65, 0x6c, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b,
|
0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c,
|
0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28,
|
||||||
0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x18, 0x0c, 0x20, 0x01,
|
0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
||||||
0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58,
|
0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74,
|
||||||
0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59,
|
0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68,
|
||||||
0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b,
|
0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
|
||||||
0x56, 0x65, 0x6c, 0x59, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66,
|
0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c,
|
||||||
0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74,
|
0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0a, 0x20, 0x01,
|
||||||
0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69,
|
0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59,
|
||||||
0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x18, 0x0f, 0x20, 0x01, 0x28,
|
0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59,
|
0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66,
|
||||||
0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x18,
|
0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
|
||||||
0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a,
|
0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c,
|
||||||
0x65, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65,
|
0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0d, 0x20, 0x01,
|
||||||
0x59, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53,
|
0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59,
|
||||||
0x69, 0x7a, 0x65, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x18, 0x12,
|
0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x12, 0x16, 0x0a, 0x06,
|
0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f,
|
||||||
0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65,
|
0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78,
|
||||||
0x61, 0x6d, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f,
|
0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68,
|
||||||
0x63, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c,
|
0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x20, 0x0a, 0x0b,
|
||||||
0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70,
|
0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x18, 0x10, 0x20, 0x01, 0x28,
|
||||||
0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73,
|
0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x12, 0x20,
|
||||||
0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74,
|
0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x18, 0x11, 0x20,
|
||||||
0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59,
|
||||||
0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x12, 0x23, 0x0a,
|
0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x59, 0x18, 0xe8, 0x07,
|
0x52, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69,
|
0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64,
|
||||||
0x64, 0x59, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x58, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28,
|
0x12, 0x24, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49,
|
||||||
0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x59, 0x18,
|
0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c,
|
||||||
0xea, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x59, 0x12, 0x13, 0x0a, 0x04,
|
0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65,
|
||||||
0x76, 0x65, 0x6c, 0x58, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x76, 0x65, 0x6c,
|
0x73, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69,
|
||||||
0x58, 0x12, 0x13, 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x59, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x05,
|
0x65, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f,
|
||||||
0x52, 0x04, 0x76, 0x65, 0x6c, 0x59, 0x12, 0x15, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18,
|
0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65,
|
||||||
0xed, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x22, 0xc9, 0x05,
|
0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18,
|
||||||
0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x65, 0x72,
|
0x0a, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d,
|
0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d,
|
||||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61,
|
0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28,
|
||||||
0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x54, 0x6f,
|
0x05, 0x52, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61,
|
||||||
0x50, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65,
|
0x74, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69,
|
||||||
0x72, 0x76, 0x61, 0x6c, 0x54, 0x6f, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x77, 0x69,
|
0x64, 0x58, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75,
|
||||||
0x6c, 0x6c, 0x4b, 0x69, 0x63, 0x6b, 0x49, 0x66, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
|
0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75,
|
||||||
0x46, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x77, 0x69, 0x6c, 0x6c, 0x4b,
|
0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x59, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
|
||||||
0x69, 0x63, 0x6b, 0x49, 0x66, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72,
|
0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x59, 0x12, 0x13, 0x0a, 0x04,
|
||||||
0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18,
|
0x64, 0x69, 0x72, 0x58, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72,
|
||||||
0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d,
|
0x58, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x59, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61,
|
0x52, 0x04, 0x64, 0x69, 0x72, 0x59, 0x12, 0x13, 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x58, 0x18, 0xeb,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x76, 0x65, 0x6c, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x76,
|
||||||
0x13, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
|
0x65, 0x6c, 0x59, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x76, 0x65, 0x6c, 0x59,
|
||||||
0x61, 0x6e, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61,
|
0x12, 0x15, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x05,
|
||||||
|
0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x22, 0xc9, 0x05, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74,
|
||||||
|
0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c,
|
||||||
|
0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e,
|
||||||
|
0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x54, 0x6f, 0x50, 0x69, 0x6e, 0x67, 0x18, 0x02,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x54, 0x6f,
|
||||||
|
0x50, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x77, 0x69, 0x6c, 0x6c, 0x4b, 0x69, 0x63, 0x6b,
|
||||||
|
0x49, 0x66, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x18, 0x03, 0x20,
|
||||||
|
0x01, 0x28, 0x05, 0x52, 0x15, 0x77, 0x69, 0x6c, 0x6c, 0x4b, 0x69, 0x63, 0x6b, 0x49, 0x66, 0x49,
|
||||||
|
0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f,
|
||||||
|
0x75, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
|
0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13,
|
||||||
|
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61,
|
||||||
|
0x6e, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x62, 0x61, 0x74, 0x74, 0x6c,
|
||||||
|
0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x46,
|
||||||
|
0x0a, 0x1e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79,
|
||||||
|
0x6e, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65,
|
||||||
|
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61,
|
||||||
0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6c,
|
0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6c,
|
||||||
0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e,
|
0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61,
|
||||||
0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x65,
|
0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73,
|
||||||
0x6c, 0x61, 0x79, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x1f,
|
0x50, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72,
|
0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, 0x65,
|
||||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18,
|
0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||||
0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, 0x69, 0x6e,
|
0x12, 0x3c, 0x0a, 0x19, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69,
|
||||||
0x67, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72,
|
0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x08, 0x20,
|
||||||
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61,
|
0x01, 0x28, 0x01, 0x52, 0x19, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74,
|
||||||
0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4d, 0x69, 0x6c,
|
0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x3a,
|
||||||
0x6c, 0x69, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x72, 0x6f, 0x6c, 0x6c, 0x62,
|
0x0a, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61,
|
||||||
0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4d, 0x69,
|
0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03,
|
||||||
0x6c, 0x6c, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
|
0x52, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61,
|
||||||
0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, 0x6f, 0x73,
|
0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65,
|
||||||
0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
|
0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20,
|
||||||
0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, 0x6f, 0x73,
|
0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65,
|
||||||
0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53,
|
0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66,
|
||||||
0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65,
|
0x73, 0x65, 0x74, 0x58, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63,
|
||||||
0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70,
|
0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63,
|
||||||
0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01,
|
0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c,
|
||||||
0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, 0x22,
|
0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x2a, 0x0a, 0x10,
|
||||||
0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x18, 0x0c,
|
0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70,
|
||||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
|
0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f,
|
||||||
0x74, 0x59, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d,
|
0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x12, 0x39, 0x0a, 0x17, 0x66, 0x72, 0x61, 0x6d,
|
||||||
0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f,
|
0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62,
|
||||||
0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x12, 0x39,
|
0x6c, 0x65, 0x64, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, 0x72, 0x61, 0x6d,
|
||||||
0x0a, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x67, 0x69,
|
0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62,
|
||||||
0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x08,
|
0x6c, 0x65, 0x64, 0x22, 0xc2, 0x03, 0x0a, 0x11, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6f, 0x77, 0x6e,
|
||||||
0x52, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x67, 0x69,
|
0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||||
0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc2, 0x03, 0x0a, 0x11, 0x52, 0x6f,
|
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x6c, 0x61,
|
||||||
0x6f, 0x6d, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12,
|
0x79, 0x65, 0x72, 0x73, 0x41, 0x72, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
|
||||||
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77,
|
||||||
0x36, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x41, 0x72, 0x72, 0x18, 0x02, 0x20,
|
0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x41, 0x72,
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x6c, 0x61,
|
0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61,
|
||||||
0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x0a, 0x70, 0x6c, 0x61,
|
0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
0x79, 0x65, 0x72, 0x73, 0x41, 0x72, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x6c,
|
||||||
0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12,
|
0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75,
|
||||||
0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18,
|
0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65,
|
||||||
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d,
|
0x74, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75,
|
||||||
0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x6c, 0x65,
|
0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72,
|
||||||
0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x65,
|
0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c,
|
||||||
0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
|
0x6c, 0x65, 0x74, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c,
|
||||||
0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x62,
|
0x6c, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x16, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x55,
|
||||||
0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62,
|
0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x80,
|
||||||
0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x16, 0x62, 0x61,
|
0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x55, 0x6e,
|
||||||
0x63, 0x6b, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64,
|
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2d, 0x0a,
|
||||||
0x4d, 0x61, 0x73, 0x6b, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x62, 0x61, 0x63,
|
|
||||||
0x6b, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d,
|
|
||||||
0x61, 0x73, 0x6b, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72,
|
|
||||||
0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x81, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
||||||
0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79,
|
0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79,
|
||||||
0x6e, 0x63, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x4c,
|
0x6e, 0x63, 0x18, 0x81, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c,
|
||||||
0x69, 0x73, 0x74, 0x18, 0x82, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x63,
|
0x64, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x25, 0x0a, 0x0d,
|
||||||
0x69, 0x65, 0x73, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x14, 0x62, 0x75, 0x6c,
|
0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x08,
|
||||||
0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65,
|
0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x4c,
|
||||||
0x72, 0x18, 0x83, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74,
|
0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x14, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63,
|
||||||
0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x13,
|
0x61, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x83, 0x08, 0x20, 0x01,
|
||||||
0x5a, 0x11, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x72, 0x76, 0x2f, 0x70, 0x72, 0x6f,
|
0x28, 0x05, 0x52, 0x14, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49,
|
||||||
0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x13, 0x5a, 0x11, 0x62, 0x61, 0x74, 0x74,
|
||||||
|
0x6c, 0x65, 0x5f, 0x73, 0x72, 0x76, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70,
|
||||||
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
File diff suppressed because one or more lines are too long
7
frontend/assets/resources/animation/Explosion.meta
Normal file
7
frontend/assets/resources/animation/Explosion.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.0.1",
|
||||||
|
"uuid": "c7c2ac6e-f1ea-4233-b6a4-aa5b96b61e17",
|
||||||
|
"isSubpackage": false,
|
||||||
|
"subpackageName": "",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"__type__": "cc.AnimationClip",
|
||||||
|
"_name": "Fireball1Explosion",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_native": "",
|
||||||
|
"_duration": 0.1,
|
||||||
|
"sample": 60,
|
||||||
|
"speed": 1,
|
||||||
|
"wrapMode": 1,
|
||||||
|
"curveData": {
|
||||||
|
"comps": {
|
||||||
|
"cc.Sprite": {
|
||||||
|
"spriteFrame": [
|
||||||
|
{
|
||||||
|
"frame": 0,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "f4ad4f9f-4890-450b-9334-68fe6b903893"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.016666666666666666,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "c6a5994f-251d-4191-a550-dfef979bab59"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.03333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "417e58d9-e364-47f7-9364-f31ad3452adc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.05,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "8b566f26-b34d-4da6-bdaa-078358a5b685"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.06666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "6ec5f75d-307e-4292-b667-cbbb5a52c2f6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.08333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "d89977f1-d927-4a08-9591-9feb1daf68c8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"events": []
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ver": "2.1.0",
|
||||||
|
"uuid": "7941215a-2b8c-4798-954b-4f1b16d5f6f5",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"__type__": "cc.AnimationClip",
|
||||||
|
"_name": "MeleeExplosion1",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_native": "",
|
||||||
|
"_duration": 0.16666666666666666,
|
||||||
|
"sample": 60,
|
||||||
|
"speed": 1,
|
||||||
|
"wrapMode": 1,
|
||||||
|
"curveData": {
|
||||||
|
"comps": {
|
||||||
|
"cc.Sprite": {
|
||||||
|
"spriteFrame": [
|
||||||
|
{
|
||||||
|
"frame": 0,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "ab4866e8-ce52-4bc1-be19-b03687acf0d6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.016666666666666666,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "67cc8a51-0ebe-49db-a941-7aabc5655ecf"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.03333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "367592d0-3566-4b6a-8707-01d6a8dbe34a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.05,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "cc336b1e-b5d8-4a89-96fc-7ada0e232389"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.06666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "a457cc63-08bd-4cfa-b84a-7287d0343ecf"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.08333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "89697d35-cde3-4392-a231-db91d4ede29b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.1,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "3815bf7a-0a48-40e0-b791-0a0be9ec0da6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.11666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "20e691ee-a0c0-4710-8981-8dee1911e819"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.13333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "94e678c5-0780-4f2b-bf3b-86c6c0a75c23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.15,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "af4f9c62-4c7e-43a4-b9b3-dd3effbbbafb"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"events": []
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ver": "2.1.0",
|
||||||
|
"uuid": "954a2924-89df-4df4-93fc-36d2b22e7619",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"__type__": "cc.AnimationClip",
|
||||||
|
"_name": "MeleeExplosion2",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_native": "",
|
||||||
|
"_duration": 0.26666666666666666,
|
||||||
|
"sample": 60,
|
||||||
|
"speed": 1,
|
||||||
|
"wrapMode": 1,
|
||||||
|
"curveData": {
|
||||||
|
"comps": {
|
||||||
|
"cc.Sprite": {
|
||||||
|
"spriteFrame": [
|
||||||
|
{
|
||||||
|
"frame": 0,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "89e54317-7835-4d4c-9c04-579da8b33c54"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.016666666666666666,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "2a186e00-a0c5-4c8a-b0ab-c84d56dcee7c"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.05,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "083168e3-6ccc-4c5b-a800-2554bffc67d4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.08333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "d4b12ec9-6f04-493c-91e5-22b1a212262a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.13333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "13038788-b0f9-4714-960b-c98619a0d0ce"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.16666666666666666,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "94c21ed7-94a2-47a4-9537-fe5d9c51d7b0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.2,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "d5340298-923c-4bd7-9fd7-7a2e029a2b44"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.21666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "c4b145c0-0145-4e09-8559-9ef508d95be8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.23333333333333334,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "79398d4d-305e-4987-b199-d9d9649cf490"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.25,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "c032eb65-fdf3-41e6-b868-d95df34168df"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"events": []
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ver": "2.1.0",
|
||||||
|
"uuid": "5bd304eb-c8ba-426f-a9ab-5698ac62de85",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"__type__": "cc.AnimationClip",
|
||||||
|
"_name": "MeleeExplosion3",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_native": "",
|
||||||
|
"_duration": 0.26666666666666666,
|
||||||
|
"sample": 60,
|
||||||
|
"speed": 1,
|
||||||
|
"wrapMode": 1,
|
||||||
|
"curveData": {
|
||||||
|
"comps": {
|
||||||
|
"cc.Sprite": {
|
||||||
|
"spriteFrame": [
|
||||||
|
{
|
||||||
|
"frame": 0,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "20d9ce6b-d9ab-4402-8c59-770ad0adf570"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.016666666666666666,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "0654601f-6788-4a2c-aed4-8dfbe1c5fdd0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.03333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "0913e11a-c796-4b58-94cf-f70b3869deff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.06666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "d6b58622-2cc3-4ee6-a34f-1a18deb73700"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.08333333333333333,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "b83c6261-b86f-4323-ad11-7375cac02a2b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.11666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "b458c047-b7b5-4476-996e-d4c1ca85ef9c"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.15,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "3971256a-8120-448e-8adf-de8d67dedfd3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.18333333333333332,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "0e548d92-36c8-4795-b3dc-2bc2cfcd7170"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.21666666666666667,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "25f94245-87b0-4954-abab-c817c80fed37"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"frame": 0.25,
|
||||||
|
"value": {
|
||||||
|
"__uuid__": "20d9ce6b-d9ab-4402-8c59-770ad0adf570"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"events": []
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ver": "2.1.0",
|
||||||
|
"uuid": "5054633c-a588-4506-b4ac-eef29b1d8511",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -0,0 +1,476 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>frames</key>
|
||||||
|
<dict>
|
||||||
|
<key>Explosion1_1.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,506},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_10.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,577},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_2.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{67,506},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_3.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{67,577},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_4.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{134,506},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_5.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{134,577},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_6.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{355,503},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_7.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{426,503},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_8.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{355,570},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion1_9.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{71,67}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{422,570},{71,67}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_1.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{462,0},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_10.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{462,88},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_2.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{462,176},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_3.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{462,264},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_4.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,304},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_5.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{88,304},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_6.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{176,304},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_7.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{264,304},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_8.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{352,304},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion2_9.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{88,45}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{456,352},{88,45}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_1.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,0},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_10.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{154,0},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_2.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{308,0},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_3.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,152},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_4.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{154,152},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_5.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{308,152},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_6.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{0,352},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_7.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{152,349},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_8.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{201,503},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Explosion3_9.png</key>
|
||||||
|
<dict>
|
||||||
|
<key>aliases</key>
|
||||||
|
<array/>
|
||||||
|
<key>spriteOffset</key>
|
||||||
|
<string>{0,0}</string>
|
||||||
|
<key>spriteSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>spriteSourceSize</key>
|
||||||
|
<string>{154,152}</string>
|
||||||
|
<key>textureRect</key>
|
||||||
|
<string>{{304,349},{154,152}}</string>
|
||||||
|
<key>textureRotated</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>metadata</key>
|
||||||
|
<dict>
|
||||||
|
<key>format</key>
|
||||||
|
<integer>3</integer>
|
||||||
|
<key>pixelFormat</key>
|
||||||
|
<string>RGBA8888</string>
|
||||||
|
<key>premultiplyAlpha</key>
|
||||||
|
<false/>
|
||||||
|
<key>realTextureFileName</key>
|
||||||
|
<string>MeleeExplosions.png</string>
|
||||||
|
<key>size</key>
|
||||||
|
<string>{507,655}</string>
|
||||||
|
<key>smartupdate</key>
|
||||||
|
<string>$TexturePacker:SmartUpdate:6c1498ee6f30bdad4abeb6a9f6af8367:4c81e1a1720f2ad3535ac93f1b42991f:d9b184ec81b83b14db5cf31d298727df$</string>
|
||||||
|
<key>textureFileName</key>
|
||||||
|
<string>MeleeExplosions.png</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
@ -0,0 +1,672 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.2.4",
|
||||||
|
"uuid": "1c4c1dcb-54af-485b-9119-abd6d6d84526",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"size": {
|
||||||
|
"width": 507,
|
||||||
|
"height": 655
|
||||||
|
},
|
||||||
|
"type": "Texture Packer",
|
||||||
|
"subMetas": {
|
||||||
|
"Explosion1_1.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "ab4866e8-ce52-4bc1-be19-b03687acf0d6",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 506,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_10.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "af4f9c62-4c7e-43a4-b9b3-dd3effbbbafb",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 577,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_2.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "67cc8a51-0ebe-49db-a941-7aabc5655ecf",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 67,
|
||||||
|
"trimY": 506,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_3.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "367592d0-3566-4b6a-8707-01d6a8dbe34a",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 67,
|
||||||
|
"trimY": 577,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_4.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "cc336b1e-b5d8-4a89-96fc-7ada0e232389",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 134,
|
||||||
|
"trimY": 506,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_5.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "a457cc63-08bd-4cfa-b84a-7287d0343ecf",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 134,
|
||||||
|
"trimY": 577,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_6.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "89697d35-cde3-4392-a231-db91d4ede29b",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 355,
|
||||||
|
"trimY": 503,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_7.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "3815bf7a-0a48-40e0-b791-0a0be9ec0da6",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 426,
|
||||||
|
"trimY": 503,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_8.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "20e691ee-a0c0-4710-8981-8dee1911e819",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 355,
|
||||||
|
"trimY": 570,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion1_9.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "94e678c5-0780-4f2b-bf3b-86c6c0a75c23",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 422,
|
||||||
|
"trimY": 570,
|
||||||
|
"width": 71,
|
||||||
|
"height": 67,
|
||||||
|
"rawWidth": 71,
|
||||||
|
"rawHeight": 67,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_1.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "89e54317-7835-4d4c-9c04-579da8b33c54",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 462,
|
||||||
|
"trimY": 0,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_10.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "c032eb65-fdf3-41e6-b868-d95df34168df",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 462,
|
||||||
|
"trimY": 88,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_2.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "2a186e00-a0c5-4c8a-b0ab-c84d56dcee7c",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 462,
|
||||||
|
"trimY": 176,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_3.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "083168e3-6ccc-4c5b-a800-2554bffc67d4",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 462,
|
||||||
|
"trimY": 264,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_4.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "d4b12ec9-6f04-493c-91e5-22b1a212262a",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 304,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_5.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "13038788-b0f9-4714-960b-c98619a0d0ce",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 88,
|
||||||
|
"trimY": 304,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_6.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "94c21ed7-94a2-47a4-9537-fe5d9c51d7b0",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 176,
|
||||||
|
"trimY": 304,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_7.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "d5340298-923c-4bd7-9fd7-7a2e029a2b44",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 264,
|
||||||
|
"trimY": 304,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_8.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "c4b145c0-0145-4e09-8559-9ef508d95be8",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 352,
|
||||||
|
"trimY": 304,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion2_9.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "79398d4d-305e-4987-b199-d9d9649cf490",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 456,
|
||||||
|
"trimY": 352,
|
||||||
|
"width": 88,
|
||||||
|
"height": 45,
|
||||||
|
"rawWidth": 88,
|
||||||
|
"rawHeight": 45,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_1.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "84e28787-c6cb-435b-8f59-20d9afe6bf3a",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 0,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_10.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "20d9ce6b-d9ab-4402-8c59-770ad0adf570",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 154,
|
||||||
|
"trimY": 0,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_2.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "0654601f-6788-4a2c-aed4-8dfbe1c5fdd0",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 308,
|
||||||
|
"trimY": 0,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_3.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "0913e11a-c796-4b58-94cf-f70b3869deff",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 152,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_4.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "d6b58622-2cc3-4ee6-a34f-1a18deb73700",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 154,
|
||||||
|
"trimY": 152,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_5.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "b83c6261-b86f-4323-ad11-7375cac02a2b",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 308,
|
||||||
|
"trimY": 152,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_6.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "b458c047-b7b5-4476-996e-d4c1ca85ef9c",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 0,
|
||||||
|
"trimY": 352,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_7.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "3971256a-8120-448e-8adf-de8d67dedfd3",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 152,
|
||||||
|
"trimY": 349,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_8.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "0e548d92-36c8-4795-b3dc-2bc2cfcd7170",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": false,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 201,
|
||||||
|
"trimY": 503,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
},
|
||||||
|
"Explosion3_9.png": {
|
||||||
|
"ver": "1.0.4",
|
||||||
|
"uuid": "25f94245-87b0-4954-abab-c817c80fed37",
|
||||||
|
"rawTextureUuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"trimType": "auto",
|
||||||
|
"trimThreshold": 1,
|
||||||
|
"rotated": true,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"trimX": 304,
|
||||||
|
"trimY": 349,
|
||||||
|
"width": 154,
|
||||||
|
"height": 152,
|
||||||
|
"rawWidth": 154,
|
||||||
|
"rawHeight": 152,
|
||||||
|
"borderTop": 0,
|
||||||
|
"borderBottom": 0,
|
||||||
|
"borderLeft": 0,
|
||||||
|
"borderRight": 0,
|
||||||
|
"spriteType": "normal",
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"ver": "2.3.3",
|
||||||
|
"uuid": "b11569aa-2e43-4084-a3e5-42eec243c4eb",
|
||||||
|
"type": "raw",
|
||||||
|
"wrapMode": "clamp",
|
||||||
|
"filterMode": "bilinear",
|
||||||
|
"premultiplyAlpha": false,
|
||||||
|
"genMipmaps": false,
|
||||||
|
"packable": true,
|
||||||
|
"platformSettings": {},
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -9,10 +9,10 @@
|
|||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="1" name="PlayerStartingPos">
|
<objectgroup id="1" name="PlayerStartingPos">
|
||||||
<object id="135" x="1140" y="488">
|
<object id="135" x="840" y="530">
|
||||||
<point/>
|
<point/>
|
||||||
</object>
|
</object>
|
||||||
<object id="137" x="1527" y="488">
|
<object id="137" x="959" y="532">
|
||||||
<point/>
|
<point/>
|
||||||
</object>
|
</object>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
|
@ -6,11 +6,11 @@ import "geometry.proto"; // The import path here is only w.r.t. the proto file,
|
|||||||
|
|
||||||
message PlayerDownsync {
|
message PlayerDownsync {
|
||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
int32 virtualGridX = 2;
|
int32 virtualGridX = 2;
|
||||||
int32 virtualGridY = 3;
|
int32 virtualGridY = 3;
|
||||||
int32 dirX = 4;
|
int32 dirX = 4;
|
||||||
int32 dirY = 5; // "dirX" and "dirY" determines character facing
|
int32 dirY = 5; // "dirX" and "dirY" determines character facing
|
||||||
int32 velX = 6;
|
int32 velX = 6;
|
||||||
int32 velY = 7; // "velX" and "velY" is used to record the accumulated effect by accelerations (including gravity)
|
int32 velY = 7; // "velX" and "velY" is used to record the accumulated effect by accelerations (including gravity)
|
||||||
int32 speed = 8; // this is the instantaneous scalar attribute of a character, different from but will be accounted in "velX" and "velY"
|
int32 speed = 8; // this is the instantaneous scalar attribute of a character, different from but will be accounted in "velX" and "velY"
|
||||||
int32 battleState = 9;
|
int32 battleState = 9;
|
||||||
@ -60,97 +60,106 @@ message InputFrameDownsync {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message HeartbeatUpsync {
|
message HeartbeatUpsync {
|
||||||
int64 clientTimestamp = 1;
|
int64 clientTimestamp = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message WsReq {
|
message WsReq {
|
||||||
int32 msgId = 1;
|
int32 msgId = 1;
|
||||||
int32 playerId = 2;
|
int32 playerId = 2;
|
||||||
int32 act = 3;
|
int32 act = 3;
|
||||||
int32 joinIndex = 4;
|
int32 joinIndex = 4;
|
||||||
int32 ackingFrameId = 5;
|
int32 ackingFrameId = 5;
|
||||||
int32 ackingInputFrameId = 6;
|
int32 ackingInputFrameId = 6;
|
||||||
repeated InputFrameUpsync inputFrameUpsyncBatch = 7;
|
repeated InputFrameUpsync inputFrameUpsyncBatch = 7;
|
||||||
HeartbeatUpsync hb = 8;
|
HeartbeatUpsync hb = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
message WsResp {
|
message WsResp {
|
||||||
int32 ret = 1;
|
int32 ret = 1;
|
||||||
int32 echoedMsgId = 2;
|
int32 echoedMsgId = 2;
|
||||||
int32 act = 3;
|
int32 act = 3;
|
||||||
RoomDownsyncFrame rdf = 4;
|
RoomDownsyncFrame rdf = 4;
|
||||||
repeated InputFrameDownsync inputFrameDownsyncBatch = 5;
|
repeated InputFrameDownsync inputFrameDownsyncBatch = 5;
|
||||||
BattleColliderInfo bciFrame = 6;
|
BattleColliderInfo bciFrame = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message InputsBufferSnapshot {
|
message InputsBufferSnapshot {
|
||||||
int32 refRenderFrameId = 1;
|
int32 refRenderFrameId = 1;
|
||||||
uint64 unconfirmedMask = 2;
|
uint64 unconfirmedMask = 2;
|
||||||
repeated InputFrameDownsync toSendInputFrameDownsyncs = 3;
|
repeated InputFrameDownsync toSendInputFrameDownsyncs = 3;
|
||||||
bool shouldForceResync = 4;
|
bool shouldForceResync = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message MeleeBullet {
|
message MeleeBullet {
|
||||||
// Jargon reference https://www.thegamer.com/fighting-games-frame-data-explained/
|
// Jargon reference https://www.thegamer.com/fighting-games-frame-data-explained/
|
||||||
// ALL lengths are in world coordinate
|
// ALL lengths are in world coordinate
|
||||||
|
|
||||||
// for offender
|
// for offender
|
||||||
int32 originatedRenderFrameId = 1;
|
int32 originatedRenderFrameId = 1;
|
||||||
int32 offenderJoinIndex = 2;
|
int32 offenderJoinIndex = 2;
|
||||||
|
|
||||||
int32 startupFrames = 3;
|
int32 startupFrames = 3;
|
||||||
int32 cancellableStFrame = 4;
|
int32 cancellableStFrame = 4;
|
||||||
int32 cancellableEdFrame = 5;
|
int32 cancellableEdFrame = 5;
|
||||||
int32 activeFrames = 6;
|
int32 activeFrames = 6;
|
||||||
|
|
||||||
int32 hitStunFrames = 7;
|
int32 hitStunFrames = 7;
|
||||||
int32 blockStunFrames = 8;
|
int32 blockStunFrames = 8;
|
||||||
int32 pushbackVelX = 9;
|
int32 pushbackVelX = 9;
|
||||||
int32 pushbackVelY = 10;
|
int32 pushbackVelY = 10;
|
||||||
int32 damage = 11;
|
int32 damage = 11;
|
||||||
|
|
||||||
int32 selfLockVelX = 12;
|
int32 selfLockVelX = 12;
|
||||||
int32 selfLockVelY = 13;
|
int32 selfLockVelY = 13;
|
||||||
|
|
||||||
int32 hitboxOffsetX = 14;
|
int32 hitboxOffsetX = 14;
|
||||||
int32 hitboxOffsetY = 15;
|
int32 hitboxOffsetY = 15;
|
||||||
int32 hitboxSizeX = 16;
|
int32 hitboxSizeX = 16;
|
||||||
int32 hitboxSizeY = 17;
|
int32 hitboxSizeY = 17;
|
||||||
|
|
||||||
bool blowUp = 18;
|
bool blowUp = 18;
|
||||||
int32 teamId = 19;
|
int32 teamId = 19;
|
||||||
|
|
||||||
int32 bulletLocalId = 20;
|
int32 bulletLocalId = 20;
|
||||||
}
|
int32 speciesId = 21;
|
||||||
|
int32 explosionFrames = 22;
|
||||||
|
|
||||||
message FireballBullet {
|
int32 blState = 23;
|
||||||
int32 originatedRenderFrameId = 1;
|
int32 framesInBlState = 24;
|
||||||
int32 offenderJoinIndex = 2;
|
}
|
||||||
|
|
||||||
int32 startupFrames = 3;
|
message FireballBullet {
|
||||||
|
int32 originatedRenderFrameId = 1;
|
||||||
|
int32 offenderJoinIndex = 2;
|
||||||
|
|
||||||
|
int32 startupFrames = 3;
|
||||||
int32 cancellableStFrame = 4;
|
int32 cancellableStFrame = 4;
|
||||||
int32 cancellableEdFrame = 5;
|
int32 cancellableEdFrame = 5;
|
||||||
int32 activeFrames = 6;
|
int32 activeFrames = 6;
|
||||||
|
|
||||||
int32 hitStunFrames = 7;
|
int32 hitStunFrames = 7;
|
||||||
int32 blockStunFrames = 8;
|
int32 blockStunFrames = 8;
|
||||||
int32 pushbackVelX = 9;
|
int32 pushbackVelX = 9;
|
||||||
int32 pushbackVelY = 10;
|
int32 pushbackVelY = 10;
|
||||||
int32 damage = 11;
|
int32 damage = 11;
|
||||||
|
|
||||||
int32 selfLockVelX = 12;
|
int32 selfLockVelX = 12;
|
||||||
int32 selfLockVelY = 13;
|
int32 selfLockVelY = 13;
|
||||||
|
|
||||||
int32 hitboxOffsetX = 14;
|
int32 hitboxOffsetX = 14;
|
||||||
int32 hitboxOffsetY = 15;
|
int32 hitboxOffsetY = 15;
|
||||||
int32 hitboxSizeX = 16;
|
int32 hitboxSizeX = 16;
|
||||||
int32 hitboxSizeY = 17;
|
int32 hitboxSizeY = 17;
|
||||||
|
|
||||||
bool blowUp = 18;
|
bool blowUp = 18;
|
||||||
int32 teamId = 19;
|
int32 teamId = 19;
|
||||||
|
|
||||||
int32 bulletLocalId = 20;
|
int32 bulletLocalId = 20;
|
||||||
int32 speciesId = 21;
|
int32 speciesId = 21;
|
||||||
|
int32 explosionFrames = 22;
|
||||||
|
|
||||||
|
int32 blState = 23;
|
||||||
|
int32 framesInBlState = 24;
|
||||||
|
|
||||||
int32 virtualGridX = 999;
|
int32 virtualGridX = 999;
|
||||||
int32 virtualGridY = 1000;
|
int32 virtualGridY = 1000;
|
||||||
@ -159,20 +168,20 @@ message FireballBullet {
|
|||||||
int32 velX = 1003;
|
int32 velX = 1003;
|
||||||
int32 velY = 1004;
|
int32 velY = 1004;
|
||||||
int32 speed = 1005;
|
int32 speed = 1005;
|
||||||
}
|
}
|
||||||
|
|
||||||
message BattleColliderInfo {
|
message BattleColliderInfo {
|
||||||
string stageName = 1;
|
string stageName = 1;
|
||||||
|
|
||||||
int32 intervalToPing = 2;
|
int32 intervalToPing = 2;
|
||||||
int32 willKickIfInactiveFor = 3;
|
int32 willKickIfInactiveFor = 3;
|
||||||
int32 boundRoomId = 4;
|
int32 boundRoomId = 4;
|
||||||
int64 battleDurationNanos = 5;
|
int64 battleDurationNanos = 5;
|
||||||
int32 inputFrameUpsyncDelayTolerance = 6;
|
int32 inputFrameUpsyncDelayTolerance = 6;
|
||||||
int32 maxChasingRenderFramesPerUpdate = 7;
|
int32 maxChasingRenderFramesPerUpdate = 7;
|
||||||
double rollbackEstimatedDtMillis = 8;
|
double rollbackEstimatedDtMillis = 8;
|
||||||
int64 rollbackEstimatedDtNanos = 9;
|
int64 rollbackEstimatedDtNanos = 9;
|
||||||
|
|
||||||
int32 renderCacheSize = 10;
|
int32 renderCacheSize = 10;
|
||||||
double spaceOffsetX = 11;
|
double spaceOffsetX = 11;
|
||||||
double spaceOffsetY = 12;
|
double spaceOffsetY = 12;
|
||||||
@ -186,7 +195,7 @@ message RoomDownsyncFrame {
|
|||||||
repeated PlayerDownsync playersArr = 2;
|
repeated PlayerDownsync playersArr = 2;
|
||||||
int64 countdownNanos = 3;
|
int64 countdownNanos = 3;
|
||||||
repeated MeleeBullet meleeBullets = 4; // I don't know how to mimic inheritance/composition in protobuf by far, thus using an array for each type of bullet as a compromise
|
repeated MeleeBullet meleeBullets = 4; // I don't know how to mimic inheritance/composition in protobuf by far, thus using an array for each type of bullet as a compromise
|
||||||
repeated FireballBullet fireballBullets = 5;
|
repeated FireballBullet fireballBullets = 5;
|
||||||
|
|
||||||
uint64 backendUnconfirmedMask = 1024; // Indexed by "joinIndex", same compression concern as stated in InputFrameDownsync
|
uint64 backendUnconfirmedMask = 1024; // Indexed by "joinIndex", same compression concern as stated in InputFrameDownsync
|
||||||
bool shouldForceResync = 1025;
|
bool shouldForceResync = 1025;
|
||||||
|
@ -24,11 +24,11 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 8
|
"__id__": 12
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 9
|
"__id__": 13
|
||||||
},
|
},
|
||||||
"_opacity": 255,
|
"_opacity": 255,
|
||||||
"_color": {
|
"_color": {
|
||||||
@ -87,12 +87,15 @@
|
|||||||
"_children": [
|
"_children": [
|
||||||
{
|
{
|
||||||
"__id__": 3
|
"__id__": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 7
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [],
|
"_components": [],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 7
|
"__id__": 11
|
||||||
},
|
},
|
||||||
"_opacity": 255,
|
"_opacity": 255,
|
||||||
"_color": {
|
"_color": {
|
||||||
@ -254,6 +257,9 @@
|
|||||||
"_clips": [
|
"_clips": [
|
||||||
{
|
{
|
||||||
"__uuid__": "ba12416b-eec3-4260-8402-7fc25b125624"
|
"__uuid__": "ba12416b-eec3-4260-8402-7fc25b125624"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__uuid__": "7941215a-2b8c-4798-954b-4f1b16d5f6f5"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"playOnLoad": false,
|
"playOnLoad": false,
|
||||||
@ -270,6 +276,135 @@
|
|||||||
"fileId": "5f1s6pDt5F3rknJTu0gQW7",
|
"fileId": "5f1s6pDt5F3rknJTu0gQW7",
|
||||||
"sync": false
|
"sync": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "MeleeExplosion",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 2
|
||||||
|
},
|
||||||
|
"_children": [],
|
||||||
|
"_active": false,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 10
|
||||||
|
},
|
||||||
|
"_opacity": 255,
|
||||||
|
"_color": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 255,
|
||||||
|
"g": 255,
|
||||||
|
"b": 255,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 0,
|
||||||
|
"height": 0
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
|
"_trs": {
|
||||||
|
"__type__": "TypedArray",
|
||||||
|
"ctor": "Float64Array",
|
||||||
|
"array": [
|
||||||
|
24,
|
||||||
|
8,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_eulerAngles": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_skewX": 0,
|
||||||
|
"_skewY": 0,
|
||||||
|
"_is3DNode": false,
|
||||||
|
"_groupIndex": 0,
|
||||||
|
"groupIndex": 0,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Animation",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 7
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"_defaultClip": null,
|
||||||
|
"_clips": [
|
||||||
|
{
|
||||||
|
"__uuid__": "954a2924-89df-4df4-93fc-36d2b22e7619"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__uuid__": "5bd304eb-c8ba-426f-a9ab-5698ac62de85"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__uuid__": "5054633c-a588-4506-b4ac-eef29b1d8511"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"playOnLoad": false,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Sprite",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 7
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"_materials": [],
|
||||||
|
"_srcBlendFactor": 770,
|
||||||
|
"_dstBlendFactor": 771,
|
||||||
|
"_spriteFrame": null,
|
||||||
|
"_type": 0,
|
||||||
|
"_sizeMode": 1,
|
||||||
|
"_fillType": 0,
|
||||||
|
"_fillCenter": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_fillStart": 0,
|
||||||
|
"_fillRange": 0,
|
||||||
|
"_isTrimmedMode": true,
|
||||||
|
"_atlas": {
|
||||||
|
"__uuid__": "1c4c1dcb-54af-485b-9119-abd6d6d84526"
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInfo",
|
||||||
|
"root": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"asset": {
|
||||||
|
"__uuid__": "d92d4831-cd65-4eb5-90bd-b77021aec35b"
|
||||||
|
},
|
||||||
|
"fileId": "fd9jQiClRJSI00917fifB8",
|
||||||
|
"sync": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -440,7 +440,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
209.57814771583418,
|
217.50722273720794,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -464,7 +464,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
209.57814771583418,
|
211.36523796872766,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
36
frontend/assets/scripts/Bullet.js
Normal file
36
frontend/assets/scripts/Bullet.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
window.BULLET_STATE = {
|
||||||
|
Startup: 0,
|
||||||
|
Active: 1,
|
||||||
|
Exploding: 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
cc.Class({
|
||||||
|
extends: cc.Component,
|
||||||
|
|
||||||
|
properties: {
|
||||||
|
animNode: {
|
||||||
|
type: cc.Node,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
updateAnim(newAnimName, frameIdxInAnim, dirX, spontaneousLooping, rdf, newAnimIdx) {
|
||||||
|
this.animComp = this.effAnimNode.getComponent(cc.Animation);
|
||||||
|
// Update directions
|
||||||
|
if (this.animComp && this.animComp.node) {
|
||||||
|
if (0 > dirX) {
|
||||||
|
this.animNode.scaleX = (-1.0);
|
||||||
|
} else if (0 < dirX) {
|
||||||
|
this.animNode.scaleX = (1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentClip = this.animComp.currentClip;
|
||||||
|
if (true == spontaneousLooping && (null != currentClip && currentClip.name == newAnimName)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const targetClip = this.animComp.getClips()[newAnimIdx];
|
||||||
|
let fromTime = (frameIdxInAnim / targetClip.sample); // TODO: Anyway to avoid using division here?
|
||||||
|
this.animComp.play(newAnimName, fromTime);
|
||||||
|
},
|
||||||
|
});
|
9
frontend/assets/scripts/Bullet.js.meta
Normal file
9
frontend/assets/scripts/Bullet.js.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.0.5",
|
||||||
|
"uuid": "a4b909c4-56a8-4b70-b6ea-b7f928077747",
|
||||||
|
"isPlugin": false,
|
||||||
|
"loadPluginInWeb": true,
|
||||||
|
"loadPluginInNative": true,
|
||||||
|
"loadPluginInEditor": false,
|
||||||
|
"subMetas": {}
|
||||||
|
}
|
@ -1,12 +1,7 @@
|
|||||||
cc.Class({
|
const Bullet = require("./Bullet");
|
||||||
extends: cc.Component,
|
|
||||||
|
|
||||||
properties: {
|
cc.Class({
|
||||||
animNode: {
|
extends: Bullet,
|
||||||
type: cc.Node,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
ctor() {
|
ctor() {
|
||||||
this.lastUsed = -1;
|
this.lastUsed = -1;
|
||||||
@ -27,22 +22,8 @@ cc.Class({
|
|||||||
this.speciesName = speciesName;
|
this.speciesName = speciesName;
|
||||||
this.effAnimNode = this.animNode.getChildByName(this.speciesName);
|
this.effAnimNode = this.animNode.getChildByName(this.speciesName);
|
||||||
this.effAnimNode.active = true;
|
this.effAnimNode.active = true;
|
||||||
this.updateAnim(speciesName, fireballBullet, rdf);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoad() {},
|
onLoad() {},
|
||||||
|
|
||||||
updateAnim(speciesName, fireballBullet, rdf) {
|
|
||||||
this.animComp = this.effAnimNode.getComponent(cc.Animation);
|
|
||||||
// Update directions
|
|
||||||
if (this.animComp && this.animComp.node) {
|
|
||||||
if (0 > fireballBullet.DirX) {
|
|
||||||
this.animNode.scaleX = (-1.0);
|
|
||||||
} else if (0 < fireballBullet.DirX) {
|
|
||||||
this.animNode.scaleX = (1.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.animComp.play(speciesName);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
@ -613,13 +613,13 @@ cc.Class({
|
|||||||
const jsMeleeBulletsArr = new Array(pbRdf.meleeBullets.length).fill(null);
|
const jsMeleeBulletsArr = new Array(pbRdf.meleeBullets.length).fill(null);
|
||||||
for (let k = 0; k < pbRdf.meleeBullets.length; ++k) {
|
for (let k = 0; k < pbRdf.meleeBullets.length; ++k) {
|
||||||
const pbBullet = pbRdf.meleeBullets[k];
|
const pbBullet = pbRdf.meleeBullets[k];
|
||||||
const jsMeleeBullet = gopkgs.NewMeleeBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp, pbBullet.teamId);
|
const jsMeleeBullet = gopkgs.NewMeleeBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp, pbBullet.teamId, pbBullet.blState, pbBullet.framesInBlState, pbBullet.explosionFrames, pbBullet.speciesId);
|
||||||
jsMeleeBulletsArr[k] = jsMeleeBullet;
|
jsMeleeBulletsArr[k] = jsMeleeBullet;
|
||||||
}
|
}
|
||||||
const jsFireballBulletsArr = new Array(pbRdf.fireballBullets.length).fill(null);
|
const jsFireballBulletsArr = new Array(pbRdf.fireballBullets.length).fill(null);
|
||||||
for (let k = 0; k < pbRdf.fireballBullets.length; ++k) {
|
for (let k = 0; k < pbRdf.fireballBullets.length; ++k) {
|
||||||
const pbBullet = pbRdf.fireballBullets[k];
|
const pbBullet = pbRdf.fireballBullets[k];
|
||||||
const jsFireballBullet = gopkgs.NewFireballBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp, pbBullet.teamId, pbBullet.virtualGridX, pbBullet.virtualGridY, pbBullet.dirX, pbBullet.dirY, pbBullet.velX, pbBullet.velY, pbBullet.speed, pbBullet.speciesId);
|
const jsFireballBullet = gopkgs.NewFireballBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp, pbBullet.teamId, pbBullet.virtualGridX, pbBullet.virtualGridY, pbBullet.dirX, pbBullet.dirY, pbBullet.velX, pbBullet.velY, pbBullet.speed, pbBullet.blState, pbBullet.framesInBlState, pbBullet.explosionFrames, pbBullet.speciesId);
|
||||||
jsFireballBulletsArr[k] = jsFireballBullet;
|
jsFireballBulletsArr[k] = jsFireballBullet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -763,7 +763,6 @@ cc.Class({
|
|||||||
if (lhs.VelX != rhs.VelX) return false;
|
if (lhs.VelX != rhs.VelX) return false;
|
||||||
if (lhs.VelY != rhs.VelY) return false;
|
if (lhs.VelY != rhs.VelY) return false;
|
||||||
if (lhs.Speed != rhs.Speed) return false;
|
if (lhs.Speed != rhs.Speed) return false;
|
||||||
if (lhs.SpeciesId != rhs.SpeciesId) return false;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
@ -1114,25 +1113,61 @@ othersForcedDownsyncRenderFrame=${JSON.stringify(othersForcedDownsyncRenderFrame
|
|||||||
const fireball = pqNode.value;
|
const fireball = pqNode.value;
|
||||||
fireball.node.setPosition(cc.v2(Number.MAX_VALUE, Number.MAX_VALUE));
|
fireball.node.setPosition(cc.v2(Number.MAX_VALUE, Number.MAX_VALUE));
|
||||||
}
|
}
|
||||||
|
for (let k in rdf.MeleeBullets) {
|
||||||
|
const meleeBullet = rdf.MeleeBullets[k];
|
||||||
|
const isExploding = (window.BULLET_STATE.Exploding == meleeBullet.BlState);
|
||||||
|
if (isExploding) {
|
||||||
|
let pqNode = self.cachedFireballs.popAny(meleeBullet.BattleAttr.BulletLocalId);
|
||||||
|
let speciesName = `MeleeExplosion`;
|
||||||
|
let animName = `MeleeExplosion${meleeBullet.Bullet.SpeciesId}`;
|
||||||
|
|
||||||
|
const offender = rdf.PlayersArr[meleeBullet.BattleAttr.OffenderJoinIndex - 1];
|
||||||
|
let xfac = 1; // By now, straight Punch offset doesn't respect "y-axis"
|
||||||
|
if (0 > offender.DirX) {
|
||||||
|
xfac = -1;
|
||||||
|
}
|
||||||
|
const [wx, wy] = gopkgs.VirtualGridToWorldPos(offender.VirtualGridX + xfac * meleeBullet.Bullet.HitboxOffsetX, offender.VirtualGridY);
|
||||||
|
|
||||||
|
if (null == pqNode) {
|
||||||
|
pqNode = self.cachedFireballs.pop();
|
||||||
|
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${meleeBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${meleeBullet.Bullet.StartupFrames}, using a new fireball node for rendering for bulletLocalId=${meleeBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
||||||
|
} else {
|
||||||
|
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${meleeBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${meleeBullet.Bullet.StartupFrames}, using a cached fireball node for rendering for bulletLocalId=${meleeBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
||||||
|
}
|
||||||
|
const cachedFireball = pqNode.value;
|
||||||
|
cachedFireball.setSpecies(speciesName, meleeBullet, rdf);
|
||||||
|
const newAnimIdx = meleeBullet.Bullet.SpeciesId - 1;
|
||||||
|
cachedFireball.updateAnim(animName, meleeBullet.FramesInBlState, offender.DirX, false, rdf, newAnimIdx);
|
||||||
|
cachedFireball.lastUsed = self.renderFrameId;
|
||||||
|
cachedFireball.bulletLocalId = meleeBullet.BattleAttr.BulletLocalId;
|
||||||
|
cachedFireball.node.setPosition(cc.v2(wx, wy));
|
||||||
|
|
||||||
|
self.cachedFireballs.push(cachedFireball.lastUsed, cachedFireball, meleeBullet.BattleAttr.BulletLocalId);
|
||||||
|
} else {
|
||||||
|
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${meleeBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${meleeBullet.Bullet.StartupFrames}, activeFrames=${meleeBullet.Bullet.ActiveFrames}, not rendering melee node for bulletLocalId=${meleeBullet.BattleAttr.BulletLocalId}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
for (let k in rdf.FireballBullets) {
|
for (let k in rdf.FireballBullets) {
|
||||||
const fireballBullet = rdf.FireballBullets[k];
|
const fireballBullet = rdf.FireballBullets[k];
|
||||||
if (
|
const isExploding = (window.BULLET_STATE.Exploding == fireballBullet.BlState);
|
||||||
fireballBullet.BattleAttr.OriginatedRenderFrameId + fireballBullet.Bullet.StartupFrames <= rdf.Id
|
if (gopkgs.IsFireballBulletActive(fireballBullet, rdf) || isExploding) {
|
||||||
&&
|
|
||||||
fireballBullet.BattleAttr.OriginatedRenderFrameId + fireballBullet.Bullet.StartupFrames + fireballBullet.Bullet.ActiveFrames > rdf.Id
|
|
||||||
) {
|
|
||||||
let pqNode = self.cachedFireballs.popAny(fireballBullet.BattleAttr.BulletLocalId);
|
let pqNode = self.cachedFireballs.popAny(fireballBullet.BattleAttr.BulletLocalId);
|
||||||
const speciesName = `Fireball${fireballBullet.SpeciesId}`;
|
let speciesName = `Fireball${fireballBullet.Bullet.SpeciesId}`;
|
||||||
|
let animName = (BULLET_STATE.Exploding == fireballBullet.BlState ? `Fireball${fireballBullet.Bullet.SpeciesId}Explosion` : speciesName);
|
||||||
|
|
||||||
const [wx, wy] = gopkgs.VirtualGridToWorldPos(fireballBullet.VirtualGridX, fireballBullet.VirtualGridY);
|
const [wx, wy] = gopkgs.VirtualGridToWorldPos(fireballBullet.VirtualGridX, fireballBullet.VirtualGridY);
|
||||||
|
|
||||||
if (null == pqNode) {
|
if (null == pqNode) {
|
||||||
pqNode = self.cachedFireballs.pop();
|
pqNode = self.cachedFireballs.pop();
|
||||||
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${fireballBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${fireballBullet.Bullet.StartupFrames}, using a new fireball node for rendering for bulletLocalId=${fireballBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${fireballBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${fireballBullet.Bullet.StartupFrames}, using a new fireball node for rendering for bulletLocalId=${fireballBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
||||||
} else {
|
} else {
|
||||||
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${fireballBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${fireballBullet.Bullet.StartupFrames}, using a cached fireball node for rendering for bulletLocalId=${fireballBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
//console.log(`@rdf.Id=${rdf.Id}, origRdfId=${fireballBullet.BattleAttr.OriginatedRenderFrameId}, startupFrames=${fireballBullet.Bullet.StartupFrames}, using a cached fireball node for rendering for bulletLocalId=${fireballBullet.BattleAttr.BulletLocalId} at wpos=(${wx},${wy})`);
|
||||||
}
|
}
|
||||||
const cachedFireball = pqNode.value;
|
const cachedFireball = pqNode.value;
|
||||||
cachedFireball.setSpecies(speciesName, fireballBullet, rdf);
|
cachedFireball.setSpecies(speciesName, fireballBullet, rdf);
|
||||||
|
const spontaneousLooping = !isExploding;
|
||||||
|
const newAnimIdx = (spontaneousLooping ? 0 : 1);
|
||||||
|
cachedFireball.updateAnim(animName, fireballBullet.FramesInBlState, fireballBullet.DirX, spontaneousLooping, rdf, newAnimIdx);
|
||||||
cachedFireball.lastUsed = self.renderFrameId;
|
cachedFireball.lastUsed = self.renderFrameId;
|
||||||
cachedFireball.bulletLocalId = fireballBullet.BattleAttr.BulletLocalId;
|
cachedFireball.bulletLocalId = fireballBullet.BattleAttr.BulletLocalId;
|
||||||
cachedFireball.node.setPosition(cc.v2(wx, wy));
|
cachedFireball.node.setPosition(cc.v2(wx, wy));
|
||||||
@ -1363,11 +1398,7 @@ actuallyUsedinputList:{${self.inputFrameDownsyncStr(actuallyUsedInputClone)}}`);
|
|||||||
|
|
||||||
for (let k in rdf.MeleeBullets) {
|
for (let k in rdf.MeleeBullets) {
|
||||||
const meleeBullet = rdf.MeleeBullets[k];
|
const meleeBullet = rdf.MeleeBullets[k];
|
||||||
if (
|
if (gopkgs.IsMeleeBulletActive(meleeBullet, rdf)) {
|
||||||
meleeBullet.BattleAttr.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames <= rdf.Id
|
|
||||||
&&
|
|
||||||
meleeBullet.BattleAttr.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames + meleeBullet.Bullet.ActiveFrames > rdf.Id
|
|
||||||
) {
|
|
||||||
const offender = rdf.PlayersArr[meleeBullet.BattleAttr.OffenderJoinIndex - 1];
|
const offender = rdf.PlayersArr[meleeBullet.BattleAttr.OffenderJoinIndex - 1];
|
||||||
if (1 == offender.JoinIndex) {
|
if (1 == offender.JoinIndex) {
|
||||||
g2.strokeColor = cc.Color.BLUE;
|
g2.strokeColor = cc.Color.BLUE;
|
||||||
@ -1395,11 +1426,7 @@ actuallyUsedinputList:{${self.inputFrameDownsyncStr(actuallyUsedInputClone)}}`);
|
|||||||
|
|
||||||
for (let k in rdf.FireballBullets) {
|
for (let k in rdf.FireballBullets) {
|
||||||
const fireballBullet = rdf.FireballBullets[k];
|
const fireballBullet = rdf.FireballBullets[k];
|
||||||
if (
|
if (gopkgs.IsFireballBulletActive(fireballBullet, rdf)) {
|
||||||
fireballBullet.BattleAttr.OriginatedRenderFrameId + fireballBullet.Bullet.StartupFrames <= rdf.Id
|
|
||||||
&&
|
|
||||||
fireballBullet.BattleAttr.OriginatedRenderFrameId + fireballBullet.Bullet.StartupFrames + fireballBullet.Bullet.ActiveFrames > rdf.Id
|
|
||||||
) {
|
|
||||||
const offender = rdf.PlayersArr[fireballBullet.BattleAttr.OffenderJoinIndex - 1];
|
const offender = rdf.PlayersArr[fireballBullet.BattleAttr.OffenderJoinIndex - 1];
|
||||||
if (1 == offender.JoinIndex) {
|
if (1 == offender.JoinIndex) {
|
||||||
g2.strokeColor = cc.Color.BLUE;
|
g2.strokeColor = cc.Color.BLUE;
|
||||||
|
@ -13,7 +13,7 @@ cc.Class({
|
|||||||
onLoad() {
|
onLoad() {
|
||||||
const self = this;
|
const self = this;
|
||||||
window.mapIns = self;
|
window.mapIns = self;
|
||||||
self.showCriticalCoordinateLabels = true;
|
self.showCriticalCoordinateLabels = false;
|
||||||
|
|
||||||
const mapNode = self.node;
|
const mapNode = self.node;
|
||||||
const canvasNode = mapNode.parent;
|
const canvasNode = mapNode.parent;
|
||||||
@ -94,7 +94,7 @@ cc.Class({
|
|||||||
const p2Vpos = gopkgs.WorldToVirtualGridPos(boundaryObjs.playerStartingPositions[1].x, boundaryObjs.playerStartingPositions[1].y);
|
const p2Vpos = gopkgs.WorldToVirtualGridPos(boundaryObjs.playerStartingPositions[1].x, boundaryObjs.playerStartingPositions[1].y);
|
||||||
const colliderRadiusV = gopkgs.WorldToVirtualGridPos(12.0, 0);
|
const colliderRadiusV = gopkgs.WorldToVirtualGridPos(12.0, 0);
|
||||||
|
|
||||||
const speciesIdList = [4096, 1];
|
const speciesIdList = [1, 4096];
|
||||||
const chConfigsOrderedByJoinIndex = gopkgs.GetCharacterConfigsOrderedByJoinIndex(speciesIdList);
|
const chConfigsOrderedByJoinIndex = gopkgs.GetCharacterConfigsOrderedByJoinIndex(speciesIdList);
|
||||||
|
|
||||||
const startRdf = window.pb.protos.RoomDownsyncFrame.create({
|
const startRdf = window.pb.protos.RoomDownsyncFrame.create({
|
||||||
|
@ -4187,6 +4187,10 @@ $root.protos = (function() {
|
|||||||
* @property {boolean|null} [blowUp] MeleeBullet blowUp
|
* @property {boolean|null} [blowUp] MeleeBullet blowUp
|
||||||
* @property {number|null} [teamId] MeleeBullet teamId
|
* @property {number|null} [teamId] MeleeBullet teamId
|
||||||
* @property {number|null} [bulletLocalId] MeleeBullet bulletLocalId
|
* @property {number|null} [bulletLocalId] MeleeBullet bulletLocalId
|
||||||
|
* @property {number|null} [speciesId] MeleeBullet speciesId
|
||||||
|
* @property {number|null} [explosionFrames] MeleeBullet explosionFrames
|
||||||
|
* @property {number|null} [blState] MeleeBullet blState
|
||||||
|
* @property {number|null} [framesInBlState] MeleeBullet framesInBlState
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -4364,6 +4368,38 @@ $root.protos = (function() {
|
|||||||
*/
|
*/
|
||||||
MeleeBullet.prototype.bulletLocalId = 0;
|
MeleeBullet.prototype.bulletLocalId = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MeleeBullet speciesId.
|
||||||
|
* @member {number} speciesId
|
||||||
|
* @memberof protos.MeleeBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
MeleeBullet.prototype.speciesId = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MeleeBullet explosionFrames.
|
||||||
|
* @member {number} explosionFrames
|
||||||
|
* @memberof protos.MeleeBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
MeleeBullet.prototype.explosionFrames = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MeleeBullet blState.
|
||||||
|
* @member {number} blState
|
||||||
|
* @memberof protos.MeleeBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
MeleeBullet.prototype.blState = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MeleeBullet framesInBlState.
|
||||||
|
* @member {number} framesInBlState
|
||||||
|
* @memberof protos.MeleeBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
MeleeBullet.prototype.framesInBlState = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new MeleeBullet instance using the specified properties.
|
* Creates a new MeleeBullet instance using the specified properties.
|
||||||
* @function create
|
* @function create
|
||||||
@ -4428,6 +4464,14 @@ $root.protos = (function() {
|
|||||||
writer.uint32(/* id 19, wireType 0 =*/152).int32(message.teamId);
|
writer.uint32(/* id 19, wireType 0 =*/152).int32(message.teamId);
|
||||||
if (message.bulletLocalId != null && Object.hasOwnProperty.call(message, "bulletLocalId"))
|
if (message.bulletLocalId != null && Object.hasOwnProperty.call(message, "bulletLocalId"))
|
||||||
writer.uint32(/* id 20, wireType 0 =*/160).int32(message.bulletLocalId);
|
writer.uint32(/* id 20, wireType 0 =*/160).int32(message.bulletLocalId);
|
||||||
|
if (message.speciesId != null && Object.hasOwnProperty.call(message, "speciesId"))
|
||||||
|
writer.uint32(/* id 21, wireType 0 =*/168).int32(message.speciesId);
|
||||||
|
if (message.explosionFrames != null && Object.hasOwnProperty.call(message, "explosionFrames"))
|
||||||
|
writer.uint32(/* id 22, wireType 0 =*/176).int32(message.explosionFrames);
|
||||||
|
if (message.blState != null && Object.hasOwnProperty.call(message, "blState"))
|
||||||
|
writer.uint32(/* id 23, wireType 0 =*/184).int32(message.blState);
|
||||||
|
if (message.framesInBlState != null && Object.hasOwnProperty.call(message, "framesInBlState"))
|
||||||
|
writer.uint32(/* id 24, wireType 0 =*/192).int32(message.framesInBlState);
|
||||||
return writer;
|
return writer;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4542,6 +4586,22 @@ $root.protos = (function() {
|
|||||||
message.bulletLocalId = reader.int32();
|
message.bulletLocalId = reader.int32();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 21: {
|
||||||
|
message.speciesId = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 22: {
|
||||||
|
message.explosionFrames = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 23: {
|
||||||
|
message.blState = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 24: {
|
||||||
|
message.framesInBlState = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
reader.skipType(tag & 7);
|
reader.skipType(tag & 7);
|
||||||
break;
|
break;
|
||||||
@ -4637,6 +4697,18 @@ $root.protos = (function() {
|
|||||||
if (message.bulletLocalId != null && message.hasOwnProperty("bulletLocalId"))
|
if (message.bulletLocalId != null && message.hasOwnProperty("bulletLocalId"))
|
||||||
if (!$util.isInteger(message.bulletLocalId))
|
if (!$util.isInteger(message.bulletLocalId))
|
||||||
return "bulletLocalId: integer expected";
|
return "bulletLocalId: integer expected";
|
||||||
|
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
||||||
|
if (!$util.isInteger(message.speciesId))
|
||||||
|
return "speciesId: integer expected";
|
||||||
|
if (message.explosionFrames != null && message.hasOwnProperty("explosionFrames"))
|
||||||
|
if (!$util.isInteger(message.explosionFrames))
|
||||||
|
return "explosionFrames: integer expected";
|
||||||
|
if (message.blState != null && message.hasOwnProperty("blState"))
|
||||||
|
if (!$util.isInteger(message.blState))
|
||||||
|
return "blState: integer expected";
|
||||||
|
if (message.framesInBlState != null && message.hasOwnProperty("framesInBlState"))
|
||||||
|
if (!$util.isInteger(message.framesInBlState))
|
||||||
|
return "framesInBlState: integer expected";
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4692,6 +4764,14 @@ $root.protos = (function() {
|
|||||||
message.teamId = object.teamId | 0;
|
message.teamId = object.teamId | 0;
|
||||||
if (object.bulletLocalId != null)
|
if (object.bulletLocalId != null)
|
||||||
message.bulletLocalId = object.bulletLocalId | 0;
|
message.bulletLocalId = object.bulletLocalId | 0;
|
||||||
|
if (object.speciesId != null)
|
||||||
|
message.speciesId = object.speciesId | 0;
|
||||||
|
if (object.explosionFrames != null)
|
||||||
|
message.explosionFrames = object.explosionFrames | 0;
|
||||||
|
if (object.blState != null)
|
||||||
|
message.blState = object.blState | 0;
|
||||||
|
if (object.framesInBlState != null)
|
||||||
|
message.framesInBlState = object.framesInBlState | 0;
|
||||||
return message;
|
return message;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4729,6 +4809,10 @@ $root.protos = (function() {
|
|||||||
object.blowUp = false;
|
object.blowUp = false;
|
||||||
object.teamId = 0;
|
object.teamId = 0;
|
||||||
object.bulletLocalId = 0;
|
object.bulletLocalId = 0;
|
||||||
|
object.speciesId = 0;
|
||||||
|
object.explosionFrames = 0;
|
||||||
|
object.blState = 0;
|
||||||
|
object.framesInBlState = 0;
|
||||||
}
|
}
|
||||||
if (message.originatedRenderFrameId != null && message.hasOwnProperty("originatedRenderFrameId"))
|
if (message.originatedRenderFrameId != null && message.hasOwnProperty("originatedRenderFrameId"))
|
||||||
object.originatedRenderFrameId = message.originatedRenderFrameId;
|
object.originatedRenderFrameId = message.originatedRenderFrameId;
|
||||||
@ -4770,6 +4854,14 @@ $root.protos = (function() {
|
|||||||
object.teamId = message.teamId;
|
object.teamId = message.teamId;
|
||||||
if (message.bulletLocalId != null && message.hasOwnProperty("bulletLocalId"))
|
if (message.bulletLocalId != null && message.hasOwnProperty("bulletLocalId"))
|
||||||
object.bulletLocalId = message.bulletLocalId;
|
object.bulletLocalId = message.bulletLocalId;
|
||||||
|
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
||||||
|
object.speciesId = message.speciesId;
|
||||||
|
if (message.explosionFrames != null && message.hasOwnProperty("explosionFrames"))
|
||||||
|
object.explosionFrames = message.explosionFrames;
|
||||||
|
if (message.blState != null && message.hasOwnProperty("blState"))
|
||||||
|
object.blState = message.blState;
|
||||||
|
if (message.framesInBlState != null && message.hasOwnProperty("framesInBlState"))
|
||||||
|
object.framesInBlState = message.framesInBlState;
|
||||||
return object;
|
return object;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4829,6 +4921,9 @@ $root.protos = (function() {
|
|||||||
* @property {number|null} [teamId] FireballBullet teamId
|
* @property {number|null} [teamId] FireballBullet teamId
|
||||||
* @property {number|null} [bulletLocalId] FireballBullet bulletLocalId
|
* @property {number|null} [bulletLocalId] FireballBullet bulletLocalId
|
||||||
* @property {number|null} [speciesId] FireballBullet speciesId
|
* @property {number|null} [speciesId] FireballBullet speciesId
|
||||||
|
* @property {number|null} [explosionFrames] FireballBullet explosionFrames
|
||||||
|
* @property {number|null} [blState] FireballBullet blState
|
||||||
|
* @property {number|null} [framesInBlState] FireballBullet framesInBlState
|
||||||
* @property {number|null} [virtualGridX] FireballBullet virtualGridX
|
* @property {number|null} [virtualGridX] FireballBullet virtualGridX
|
||||||
* @property {number|null} [virtualGridY] FireballBullet virtualGridY
|
* @property {number|null} [virtualGridY] FireballBullet virtualGridY
|
||||||
* @property {number|null} [dirX] FireballBullet dirX
|
* @property {number|null} [dirX] FireballBullet dirX
|
||||||
@ -5021,6 +5116,30 @@ $root.protos = (function() {
|
|||||||
*/
|
*/
|
||||||
FireballBullet.prototype.speciesId = 0;
|
FireballBullet.prototype.speciesId = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FireballBullet explosionFrames.
|
||||||
|
* @member {number} explosionFrames
|
||||||
|
* @memberof protos.FireballBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
FireballBullet.prototype.explosionFrames = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FireballBullet blState.
|
||||||
|
* @member {number} blState
|
||||||
|
* @memberof protos.FireballBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
FireballBullet.prototype.blState = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FireballBullet framesInBlState.
|
||||||
|
* @member {number} framesInBlState
|
||||||
|
* @memberof protos.FireballBullet
|
||||||
|
* @instance
|
||||||
|
*/
|
||||||
|
FireballBullet.prototype.framesInBlState = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireballBullet virtualGridX.
|
* FireballBullet virtualGridX.
|
||||||
* @member {number} virtualGridX
|
* @member {number} virtualGridX
|
||||||
@ -5143,6 +5262,12 @@ $root.protos = (function() {
|
|||||||
writer.uint32(/* id 20, wireType 0 =*/160).int32(message.bulletLocalId);
|
writer.uint32(/* id 20, wireType 0 =*/160).int32(message.bulletLocalId);
|
||||||
if (message.speciesId != null && Object.hasOwnProperty.call(message, "speciesId"))
|
if (message.speciesId != null && Object.hasOwnProperty.call(message, "speciesId"))
|
||||||
writer.uint32(/* id 21, wireType 0 =*/168).int32(message.speciesId);
|
writer.uint32(/* id 21, wireType 0 =*/168).int32(message.speciesId);
|
||||||
|
if (message.explosionFrames != null && Object.hasOwnProperty.call(message, "explosionFrames"))
|
||||||
|
writer.uint32(/* id 22, wireType 0 =*/176).int32(message.explosionFrames);
|
||||||
|
if (message.blState != null && Object.hasOwnProperty.call(message, "blState"))
|
||||||
|
writer.uint32(/* id 23, wireType 0 =*/184).int32(message.blState);
|
||||||
|
if (message.framesInBlState != null && Object.hasOwnProperty.call(message, "framesInBlState"))
|
||||||
|
writer.uint32(/* id 24, wireType 0 =*/192).int32(message.framesInBlState);
|
||||||
if (message.virtualGridX != null && Object.hasOwnProperty.call(message, "virtualGridX"))
|
if (message.virtualGridX != null && Object.hasOwnProperty.call(message, "virtualGridX"))
|
||||||
writer.uint32(/* id 999, wireType 0 =*/7992).int32(message.virtualGridX);
|
writer.uint32(/* id 999, wireType 0 =*/7992).int32(message.virtualGridX);
|
||||||
if (message.virtualGridY != null && Object.hasOwnProperty.call(message, "virtualGridY"))
|
if (message.virtualGridY != null && Object.hasOwnProperty.call(message, "virtualGridY"))
|
||||||
@ -5275,6 +5400,18 @@ $root.protos = (function() {
|
|||||||
message.speciesId = reader.int32();
|
message.speciesId = reader.int32();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 22: {
|
||||||
|
message.explosionFrames = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 23: {
|
||||||
|
message.blState = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 24: {
|
||||||
|
message.framesInBlState = reader.int32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 999: {
|
case 999: {
|
||||||
message.virtualGridX = reader.int32();
|
message.virtualGridX = reader.int32();
|
||||||
break;
|
break;
|
||||||
@ -5401,6 +5538,15 @@ $root.protos = (function() {
|
|||||||
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
||||||
if (!$util.isInteger(message.speciesId))
|
if (!$util.isInteger(message.speciesId))
|
||||||
return "speciesId: integer expected";
|
return "speciesId: integer expected";
|
||||||
|
if (message.explosionFrames != null && message.hasOwnProperty("explosionFrames"))
|
||||||
|
if (!$util.isInteger(message.explosionFrames))
|
||||||
|
return "explosionFrames: integer expected";
|
||||||
|
if (message.blState != null && message.hasOwnProperty("blState"))
|
||||||
|
if (!$util.isInteger(message.blState))
|
||||||
|
return "blState: integer expected";
|
||||||
|
if (message.framesInBlState != null && message.hasOwnProperty("framesInBlState"))
|
||||||
|
if (!$util.isInteger(message.framesInBlState))
|
||||||
|
return "framesInBlState: integer expected";
|
||||||
if (message.virtualGridX != null && message.hasOwnProperty("virtualGridX"))
|
if (message.virtualGridX != null && message.hasOwnProperty("virtualGridX"))
|
||||||
if (!$util.isInteger(message.virtualGridX))
|
if (!$util.isInteger(message.virtualGridX))
|
||||||
return "virtualGridX: integer expected";
|
return "virtualGridX: integer expected";
|
||||||
@ -5479,6 +5625,12 @@ $root.protos = (function() {
|
|||||||
message.bulletLocalId = object.bulletLocalId | 0;
|
message.bulletLocalId = object.bulletLocalId | 0;
|
||||||
if (object.speciesId != null)
|
if (object.speciesId != null)
|
||||||
message.speciesId = object.speciesId | 0;
|
message.speciesId = object.speciesId | 0;
|
||||||
|
if (object.explosionFrames != null)
|
||||||
|
message.explosionFrames = object.explosionFrames | 0;
|
||||||
|
if (object.blState != null)
|
||||||
|
message.blState = object.blState | 0;
|
||||||
|
if (object.framesInBlState != null)
|
||||||
|
message.framesInBlState = object.framesInBlState | 0;
|
||||||
if (object.virtualGridX != null)
|
if (object.virtualGridX != null)
|
||||||
message.virtualGridX = object.virtualGridX | 0;
|
message.virtualGridX = object.virtualGridX | 0;
|
||||||
if (object.virtualGridY != null)
|
if (object.virtualGridY != null)
|
||||||
@ -5531,6 +5683,9 @@ $root.protos = (function() {
|
|||||||
object.teamId = 0;
|
object.teamId = 0;
|
||||||
object.bulletLocalId = 0;
|
object.bulletLocalId = 0;
|
||||||
object.speciesId = 0;
|
object.speciesId = 0;
|
||||||
|
object.explosionFrames = 0;
|
||||||
|
object.blState = 0;
|
||||||
|
object.framesInBlState = 0;
|
||||||
object.virtualGridX = 0;
|
object.virtualGridX = 0;
|
||||||
object.virtualGridY = 0;
|
object.virtualGridY = 0;
|
||||||
object.dirX = 0;
|
object.dirX = 0;
|
||||||
@ -5581,6 +5736,12 @@ $root.protos = (function() {
|
|||||||
object.bulletLocalId = message.bulletLocalId;
|
object.bulletLocalId = message.bulletLocalId;
|
||||||
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
if (message.speciesId != null && message.hasOwnProperty("speciesId"))
|
||||||
object.speciesId = message.speciesId;
|
object.speciesId = message.speciesId;
|
||||||
|
if (message.explosionFrames != null && message.hasOwnProperty("explosionFrames"))
|
||||||
|
object.explosionFrames = message.explosionFrames;
|
||||||
|
if (message.blState != null && message.hasOwnProperty("blState"))
|
||||||
|
object.blState = message.blState;
|
||||||
|
if (message.framesInBlState != null && message.hasOwnProperty("framesInBlState"))
|
||||||
|
object.framesInBlState = message.framesInBlState;
|
||||||
if (message.virtualGridX != null && message.hasOwnProperty("virtualGridX"))
|
if (message.virtualGridX != null && message.hasOwnProperty("virtualGridX"))
|
||||||
object.virtualGridX = message.virtualGridX;
|
object.virtualGridX = message.virtualGridX;
|
||||||
if (message.virtualGridY != null && message.hasOwnProperty("virtualGridY"))
|
if (message.virtualGridY != null && message.hasOwnProperty("virtualGridY"))
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package battle
|
package battle
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
//"fmt"
|
||||||
"math"
|
"math"
|
||||||
"resolv"
|
"resolv"
|
||||||
//"fmt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -51,6 +51,12 @@ var DIRECTION_DECODER = [][]int32{
|
|||||||
{-1, +1},
|
{-1, +1},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
BULLET_STARTUP = int32(0)
|
||||||
|
BULLET_ACTIVE = int32(1)
|
||||||
|
BULLET_EXPLODING = int32(2)
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ATK_CHARACTER_STATE_IDLE1 = int32(0)
|
ATK_CHARACTER_STATE_IDLE1 = int32(0)
|
||||||
ATK_CHARACTER_STATE_WALKING = int32(1)
|
ATK_CHARACTER_STATE_WALKING = int32(1)
|
||||||
@ -220,6 +226,34 @@ func isPolygonPairOverlapped(a, b *resolv.ConvexPolygon, result *SatResult) bool
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsMeleeBulletActive(meleeBullet *MeleeBullet, currRenderFrame *RoomDownsyncFrame) bool {
|
||||||
|
if BULLET_EXPLODING == meleeBullet.BlState {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return (meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames <= currRenderFrame.Id) && (meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames+meleeBullet.Bullet.ActiveFrames > currRenderFrame.Id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsMeleeBulletAlive(meleeBullet *MeleeBullet, currRenderFrame *RoomDownsyncFrame) bool {
|
||||||
|
if BULLET_EXPLODING == meleeBullet.BlState {
|
||||||
|
return meleeBullet.FramesInBlState < meleeBullet.Bullet.ExplosionFrames
|
||||||
|
}
|
||||||
|
return (meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames+meleeBullet.Bullet.ActiveFrames > currRenderFrame.Id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsFireballBulletActive(fireballBullet *FireballBullet, currRenderFrame *RoomDownsyncFrame) bool {
|
||||||
|
if BULLET_EXPLODING == fireballBullet.BlState {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return (fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames < currRenderFrame.Id) && (fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames+fireballBullet.Bullet.ActiveFrames > currRenderFrame.Id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsFireballBulletAlive(fireballBullet *FireballBullet, currRenderFrame *RoomDownsyncFrame) bool {
|
||||||
|
if BULLET_EXPLODING == fireballBullet.BlState {
|
||||||
|
return fireballBullet.FramesInBlState < fireballBullet.Bullet.ExplosionFrames
|
||||||
|
}
|
||||||
|
return (fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames+fireballBullet.Bullet.ActiveFrames > currRenderFrame.Id)
|
||||||
|
}
|
||||||
|
|
||||||
func isPolygonPairSeparatedByDir(a, b *resolv.ConvexPolygon, e resolv.Vector, result *SatResult) bool {
|
func isPolygonPairSeparatedByDir(a, b *resolv.ConvexPolygon, e resolv.Vector, result *SatResult) bool {
|
||||||
/*
|
/*
|
||||||
[WARNING] This function is deliberately made private, it shouldn't be used alone (i.e. not along the norms of a polygon), otherwise the pushbacks calculated would be meaningless.
|
[WARNING] This function is deliberately made private, it shouldn't be used alone (i.e. not along the norms of a polygon), otherwise the pushbacks calculated would be meaningless.
|
||||||
@ -510,7 +544,6 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// [WARNING] For rollback compatibility, MeleeBullets are composed of only static BulletConfig data and move along with the offenders, therefore they can just be copies of the pointers in "RenderFrameBuffer", however, FireballBullets move on their own and must be copies of instances for each RenderFrame!
|
|
||||||
nextRenderFrameMeleeBullets := make([]*MeleeBullet, 0, len(currRenderFrame.MeleeBullets)) // Is there any better way to reduce malloc/free impact, e.g. smart prediction for fixed memory allocation?
|
nextRenderFrameMeleeBullets := make([]*MeleeBullet, 0, len(currRenderFrame.MeleeBullets)) // Is there any better way to reduce malloc/free impact, e.g. smart prediction for fixed memory allocation?
|
||||||
nextRenderFrameFireballBullets := make([]*FireballBullet, 0, len(currRenderFrame.FireballBullets))
|
nextRenderFrameFireballBullets := make([]*FireballBullet, 0, len(currRenderFrame.FireballBullets))
|
||||||
effPushbacks := make([]Vec2D, roomCapacity)
|
effPushbacks := make([]Vec2D, roomCapacity)
|
||||||
@ -548,6 +581,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
TeamId: currPlayerDownsync.BulletTeamId,
|
TeamId: currPlayerDownsync.BulletTeamId,
|
||||||
}
|
}
|
||||||
bulletLocalId++
|
bulletLocalId++
|
||||||
|
newBullet.BlState = BULLET_STARTUP
|
||||||
nextRenderFrameMeleeBullets = append(nextRenderFrameMeleeBullets, &newBullet)
|
nextRenderFrameMeleeBullets = append(nextRenderFrameMeleeBullets, &newBullet)
|
||||||
if NO_LOCK_VEL != v.Bullet.SelfLockVelX {
|
if NO_LOCK_VEL != v.Bullet.SelfLockVelX {
|
||||||
hasLockVel = true
|
hasLockVel = true
|
||||||
@ -571,6 +605,8 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
newBullet.DirY = 0
|
newBullet.DirY = 0
|
||||||
newBullet.VelX = newBullet.Speed * xfac
|
newBullet.VelX = newBullet.Speed * xfac
|
||||||
newBullet.VelY = 0
|
newBullet.VelY = 0
|
||||||
|
|
||||||
|
newBullet.BlState = BULLET_STARTUP
|
||||||
nextRenderFrameFireballBullets = append(nextRenderFrameFireballBullets, &newBullet)
|
nextRenderFrameFireballBullets = append(nextRenderFrameFireballBullets, &newBullet)
|
||||||
//fmt.Printf("Created new fireball @currRenderFrame.Id=%d, %p, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d, offenderVpos=(%d,%d)\n", currRenderFrame.Id, &newBullet, bulletLocalId, newBullet.VirtualGridX, newBullet.VirtualGridY, currPlayerDownsync.VirtualGridX, currPlayerDownsync.VirtualGridY)
|
//fmt.Printf("Created new fireball @currRenderFrame.Id=%d, %p, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d, offenderVpos=(%d,%d)\n", currRenderFrame.Id, &newBullet, bulletLocalId, newBullet.VirtualGridX, newBullet.VirtualGridY, currPlayerDownsync.VirtualGridX, currPlayerDownsync.VirtualGridY)
|
||||||
if NO_LOCK_VEL != v.Bullet.SelfLockVelX {
|
if NO_LOCK_VEL != v.Bullet.SelfLockVelX {
|
||||||
@ -673,46 +709,68 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. Add bullet colliders into collision system
|
// 3. Add bullet colliders into collision system
|
||||||
bulletColliders := make([]*resolv.Object, 0, len(currRenderFrame.MeleeBullets)) // Will all be removed at the end of this function due to the need for being rollback-compatible
|
|
||||||
for _, meleeBullet := range currRenderFrame.MeleeBullets {
|
|
||||||
if (meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames <= currRenderFrame.Id) && (meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames+meleeBullet.Bullet.ActiveFrames > currRenderFrame.Id) {
|
|
||||||
offender := currRenderFrame.PlayersArr[meleeBullet.BattleAttr.OffenderJoinIndex-1]
|
|
||||||
|
|
||||||
xfac := int32(1) // By now, straight Punch offset doesn't respect "y-axis"
|
// [WARNING] For rollback compatibility, static data of "BulletConfig" & "BattleAttr(static since instantiated)" can just be copies of the pointers in "RenderFrameBuffer", however, FireballBullets movement data as well as bullet animation data must be copies of instances for each RenderFrame!
|
||||||
if 0 > offender.DirX {
|
bulletColliders := make([]*resolv.Object, 0, len(currRenderFrame.MeleeBullets)) // Will all be removed at the end of this function due to the need for being rollback-compatible
|
||||||
xfac = -xfac
|
for _, prevMelee := range currRenderFrame.MeleeBullets {
|
||||||
|
meleeBullet := &MeleeBullet{
|
||||||
|
Bullet: prevMelee.Bullet,
|
||||||
|
BattleAttr: prevMelee.BattleAttr,
|
||||||
|
FramesInBlState: prevMelee.FramesInBlState + 1,
|
||||||
|
BlState: prevMelee.BlState,
|
||||||
|
}
|
||||||
|
if IsMeleeBulletAlive(meleeBullet, currRenderFrame) {
|
||||||
|
if IsMeleeBulletActive(meleeBullet, currRenderFrame) {
|
||||||
|
offender := currRenderFrame.PlayersArr[meleeBullet.BattleAttr.OffenderJoinIndex-1]
|
||||||
|
|
||||||
|
xfac := int32(1) // By now, straight Punch offset doesn't respect "y-axis"
|
||||||
|
if 0 > offender.DirX {
|
||||||
|
xfac = -xfac
|
||||||
|
}
|
||||||
|
bulletWx, bulletWy := VirtualGridToWorldPos(offender.VirtualGridX+xfac*meleeBullet.Bullet.HitboxOffsetX, offender.VirtualGridY)
|
||||||
|
hitboxSizeWx, hitboxSizeWy := VirtualGridToWorldPos(meleeBullet.Bullet.HitboxSizeX, meleeBullet.Bullet.HitboxSizeY)
|
||||||
|
newBulletCollider := GenerateRectCollider(bulletWx, bulletWy, hitboxSizeWx, hitboxSizeWy, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, collisionSpaceOffsetX, collisionSpaceOffsetY, meleeBullet, "MeleeBullet")
|
||||||
|
collisionSys.Add(newBulletCollider)
|
||||||
|
bulletColliders = append(bulletColliders, newBulletCollider)
|
||||||
|
meleeBullet.BlState = BULLET_ACTIVE
|
||||||
|
if meleeBullet.BlState != prevMelee.BlState {
|
||||||
|
meleeBullet.FramesInBlState = 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bulletWx, bulletWy := VirtualGridToWorldPos(offender.VirtualGridX+xfac*meleeBullet.Bullet.HitboxOffsetX, offender.VirtualGridY)
|
|
||||||
hitboxSizeWx, hitboxSizeWy := VirtualGridToWorldPos(meleeBullet.Bullet.HitboxSizeX, meleeBullet.Bullet.HitboxSizeY)
|
|
||||||
newBulletCollider := GenerateRectCollider(bulletWx, bulletWy, hitboxSizeWx, hitboxSizeWy, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, collisionSpaceOffsetX, collisionSpaceOffsetY, meleeBullet, "MeleeBullet")
|
|
||||||
collisionSys.Add(newBulletCollider)
|
|
||||||
bulletColliders = append(bulletColliders, newBulletCollider)
|
|
||||||
} else if meleeBullet.BattleAttr.OriginatedRenderFrameId+meleeBullet.Bullet.StartupFrames+meleeBullet.Bullet.ActiveFrames > currRenderFrame.Id {
|
|
||||||
nextRenderFrameMeleeBullets = append(nextRenderFrameMeleeBullets, meleeBullet)
|
nextRenderFrameMeleeBullets = append(nextRenderFrameMeleeBullets, meleeBullet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, prevFireball := range currRenderFrame.FireballBullets {
|
for _, prevFireball := range currRenderFrame.FireballBullets {
|
||||||
fireballBullet := &FireballBullet{
|
fireballBullet := &FireballBullet{
|
||||||
VirtualGridX: prevFireball.VirtualGridX,
|
VirtualGridX: prevFireball.VirtualGridX,
|
||||||
VirtualGridY: prevFireball.VirtualGridY,
|
VirtualGridY: prevFireball.VirtualGridY,
|
||||||
DirX: prevFireball.DirX,
|
DirX: prevFireball.DirX,
|
||||||
DirY: prevFireball.DirY,
|
DirY: prevFireball.DirY,
|
||||||
VelX: prevFireball.VelX,
|
VelX: prevFireball.VelX,
|
||||||
VelY: prevFireball.VelY,
|
VelY: prevFireball.VelY,
|
||||||
Speed: prevFireball.Speed,
|
Speed: prevFireball.Speed,
|
||||||
SpeciesId: prevFireball.SpeciesId,
|
Bullet: prevFireball.Bullet,
|
||||||
Bullet: prevFireball.Bullet,
|
BattleAttr: prevFireball.BattleAttr,
|
||||||
BattleAttr: prevFireball.BattleAttr,
|
FramesInBlState: prevFireball.FramesInBlState + 1,
|
||||||
|
BlState: prevFireball.BlState,
|
||||||
}
|
}
|
||||||
if (fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames < currRenderFrame.Id) && (fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames+fireballBullet.Bullet.ActiveFrames > currRenderFrame.Id) {
|
if IsFireballBulletAlive(fireballBullet, currRenderFrame) {
|
||||||
bulletWx, bulletWy := VirtualGridToWorldPos(fireballBullet.VirtualGridX, fireballBullet.VirtualGridY)
|
if IsFireballBulletActive(fireballBullet, currRenderFrame) {
|
||||||
hitboxSizeWx, hitboxSizeWy := VirtualGridToWorldPos(fireballBullet.Bullet.HitboxSizeX, fireballBullet.Bullet.HitboxSizeY)
|
bulletWx, bulletWy := VirtualGridToWorldPos(fireballBullet.VirtualGridX, fireballBullet.VirtualGridY)
|
||||||
newBulletCollider := GenerateRectCollider(bulletWx, bulletWy, hitboxSizeWx, hitboxSizeWy, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, collisionSpaceOffsetX, collisionSpaceOffsetY, fireballBullet, "FireballBullet")
|
hitboxSizeWx, hitboxSizeWy := VirtualGridToWorldPos(fireballBullet.Bullet.HitboxSizeX, fireballBullet.Bullet.HitboxSizeY)
|
||||||
collisionSys.Add(newBulletCollider)
|
newBulletCollider := GenerateRectCollider(bulletWx, bulletWy, hitboxSizeWx, hitboxSizeWy, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, SNAP_INTO_PLATFORM_OVERLAP, collisionSpaceOffsetX, collisionSpaceOffsetY, fireballBullet, "FireballBullet")
|
||||||
bulletColliders = append(bulletColliders, newBulletCollider)
|
collisionSys.Add(newBulletCollider)
|
||||||
} else if fireballBullet.BattleAttr.OriginatedRenderFrameId+fireballBullet.Bullet.StartupFrames+fireballBullet.Bullet.ActiveFrames > currRenderFrame.Id {
|
bulletColliders = append(bulletColliders, newBulletCollider)
|
||||||
// fmt.Printf("Pushing static fireball to next frame @currRenderFrame.Id=%d, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d\n", currRenderFrame.Id, fireballBullet.BattleAttr.BulletLocalId, fireballBullet.VirtualGridX, fireballBullet.VirtualGridY)
|
fireballBullet.BlState = BULLET_ACTIVE
|
||||||
|
if fireballBullet.BlState != prevFireball.BlState {
|
||||||
|
fireballBullet.FramesInBlState = 0
|
||||||
|
}
|
||||||
|
fireballBullet.VirtualGridX, fireballBullet.VirtualGridY = fireballBullet.VirtualGridX+fireballBullet.VelX, fireballBullet.VirtualGridY+fireballBullet.VelY
|
||||||
|
//fmt.Printf("Pushing active fireball to next frame @currRenderFrame.Id=%d, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d, blState=%d\n", currRenderFrame.Id, fireballBullet.BattleAttr.BulletLocalId, fireballBullet.VirtualGridX, fireballBullet.VirtualGridY, fireballBullet.BlState)
|
||||||
|
} else {
|
||||||
|
//fmt.Printf("Pushing non-active fireball to next frame @currRenderFrame.Id=%d, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d, blState=%d\n", currRenderFrame.Id, fireballBullet.BattleAttr.BulletLocalId, fireballBullet.VirtualGridX, fireballBullet.VirtualGridY, fireballBullet.BlState)
|
||||||
|
}
|
||||||
nextRenderFrameFireballBullets = append(nextRenderFrameFireballBullets, fireballBullet)
|
nextRenderFrameFireballBullets = append(nextRenderFrameFireballBullets, fireballBullet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -845,7 +903,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
for _, bulletCollider := range bulletColliders {
|
for _, bulletCollider := range bulletColliders {
|
||||||
collision := bulletCollider.Check(0, 0)
|
collision := bulletCollider.Check(0, 0)
|
||||||
bulletCollider.Space.Remove(bulletCollider) // Make sure that the bulletCollider is always removed for each renderFrame
|
bulletCollider.Space.Remove(bulletCollider) // Make sure that the bulletCollider is always removed for each renderFrame
|
||||||
addToNextRenderFrame := true
|
exploded := false
|
||||||
if nil != collision {
|
if nil != collision {
|
||||||
switch v := bulletCollider.Data.(type) {
|
switch v := bulletCollider.Data.(type) {
|
||||||
case *MeleeBullet:
|
case *MeleeBullet:
|
||||||
@ -862,7 +920,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
if !overlapped {
|
if !overlapped {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
addToNextRenderFrame = false
|
exploded = true
|
||||||
if _, existent := invinsibleSet[t.CharacterState]; existent {
|
if _, existent := invinsibleSet[t.CharacterState]; existent {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -886,8 +944,6 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
if v.Bullet.HitStunFrames > oldFramesToRecover {
|
if v.Bullet.HitStunFrames > oldFramesToRecover {
|
||||||
atkedPlayerInNextFrame.FramesToRecover = v.Bullet.HitStunFrames
|
atkedPlayerInNextFrame.FramesToRecover = v.Bullet.HitStunFrames
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
addToNextRenderFrame = false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case *FireballBullet:
|
case *FireballBullet:
|
||||||
@ -904,7 +960,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
if !overlapped {
|
if !overlapped {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
addToNextRenderFrame = false
|
exploded = true
|
||||||
if _, existent := invinsibleSet[t.CharacterState]; existent {
|
if _, existent := invinsibleSet[t.CharacterState]; existent {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -929,18 +985,21 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer
|
|||||||
atkedPlayerInNextFrame.FramesToRecover = v.Bullet.HitStunFrames
|
atkedPlayerInNextFrame.FramesToRecover = v.Bullet.HitStunFrames
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
addToNextRenderFrame = false
|
exploded = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if addToNextRenderFrame {
|
if exploded {
|
||||||
switch v := bulletCollider.Data.(type) {
|
switch v := bulletCollider.Data.(type) {
|
||||||
case *MeleeBullet:
|
case *MeleeBullet:
|
||||||
nextRenderFrameMeleeBullets = append(nextRenderFrameMeleeBullets, v)
|
v.BlState = BULLET_EXPLODING
|
||||||
|
v.FramesInBlState = 0
|
||||||
|
//fmt.Printf("melee exploded @currRenderFrame.Id=%d, bulletLocalId=%d, blState=%d\n", currRenderFrame.Id, v.BattleAttr.BulletLocalId, v.BlState)
|
||||||
case *FireballBullet:
|
case *FireballBullet:
|
||||||
v.VirtualGridX, v.VirtualGridY = v.VirtualGridX+v.VelX, v.VirtualGridY+v.VelY
|
v.BlState = BULLET_EXPLODING
|
||||||
nextRenderFrameFireballBullets = append(nextRenderFrameFireballBullets, v)
|
v.FramesInBlState = 0
|
||||||
|
//fmt.Printf("fireball exploded @currRenderFrame.Id=%d, bulletLocalId=%d, virtualGridX=%d, virtualGridY=%d, blState=%d\n", currRenderFrame.Id, v.BattleAttr.BulletLocalId, v.VirtualGridX, v.VirtualGridY, v.BlState)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1076,8 +1135,10 @@ func AlignPolygon2DToBoundingBox(input *Polygon2D) *Polygon2D {
|
|||||||
return output
|
return output
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMeleeBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32) *MeleeBullet {
|
func NewMeleeBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId, blState, framesInBlState, explosionFrames, speciesId int32) *MeleeBullet {
|
||||||
return &MeleeBullet{
|
return &MeleeBullet{
|
||||||
|
BlState: blState,
|
||||||
|
FramesInBlState: framesInBlState,
|
||||||
BattleAttr: &BulletBattleAttr{
|
BattleAttr: &BulletBattleAttr{
|
||||||
BulletLocalId: bulletLocalId,
|
BulletLocalId: bulletLocalId,
|
||||||
OriginatedRenderFrameId: originatedRenderFrameId,
|
OriginatedRenderFrameId: originatedRenderFrameId,
|
||||||
@ -1104,12 +1165,14 @@ func NewMeleeBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, s
|
|||||||
HitboxSizeX: hitboxSizeX,
|
HitboxSizeX: hitboxSizeX,
|
||||||
HitboxSizeY: hitboxSizeY,
|
HitboxSizeY: hitboxSizeY,
|
||||||
|
|
||||||
BlowUp: blowUp,
|
BlowUp: blowUp,
|
||||||
|
ExplosionFrames: explosionFrames,
|
||||||
|
SpeciesId: speciesId,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, speciesId int32) *FireballBullet {
|
func NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, blState, framesInBlState, explosionFrames, speciesId int32) *FireballBullet {
|
||||||
return &FireballBullet{
|
return &FireballBullet{
|
||||||
VirtualGridX: virtualGridX,
|
VirtualGridX: virtualGridX,
|
||||||
VirtualGridY: virtualGridY,
|
VirtualGridY: virtualGridY,
|
||||||
@ -1118,7 +1181,6 @@ func NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex
|
|||||||
VelX: velX,
|
VelX: velX,
|
||||||
VelY: velY,
|
VelY: velY,
|
||||||
Speed: speed,
|
Speed: speed,
|
||||||
SpeciesId: speciesId,
|
|
||||||
BattleAttr: &BulletBattleAttr{
|
BattleAttr: &BulletBattleAttr{
|
||||||
BulletLocalId: bulletLocalId,
|
BulletLocalId: bulletLocalId,
|
||||||
OriginatedRenderFrameId: originatedRenderFrameId,
|
OriginatedRenderFrameId: originatedRenderFrameId,
|
||||||
@ -1145,7 +1207,9 @@ func NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex
|
|||||||
HitboxSizeX: hitboxSizeX,
|
HitboxSizeX: hitboxSizeX,
|
||||||
HitboxSizeY: hitboxSizeY,
|
HitboxSizeY: hitboxSizeY,
|
||||||
|
|
||||||
BlowUp: blowUp,
|
BlowUp: blowUp,
|
||||||
|
ExplosionFrames: explosionFrames,
|
||||||
|
SpeciesId: speciesId,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 2,
|
1: 2,
|
||||||
},
|
},
|
||||||
// TODO: Use non-zero "selfLockVel"
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -242,6 +244,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 3,
|
1: 3,
|
||||||
},
|
},
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -269,6 +274,8 @@ var skills = map[int]*Skill{
|
|||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
BlowUp: true,
|
BlowUp: true,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -301,7 +308,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 5,
|
1: 5,
|
||||||
},
|
},
|
||||||
// TODO: Use non-zero "selfLockVel"
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 15,
|
||||||
|
SpeciesId: int32(2),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -333,6 +342,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 6,
|
1: 6,
|
||||||
},
|
},
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 15,
|
||||||
|
SpeciesId: int32(2),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -360,6 +372,8 @@ var skills = map[int]*Skill{
|
|||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
BlowUp: true,
|
BlowUp: true,
|
||||||
|
ExplosionFrames: 15,
|
||||||
|
SpeciesId: int32(2),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -392,7 +406,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 8,
|
1: 8,
|
||||||
},
|
},
|
||||||
// TODO: Use non-zero "selfLockVel"
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -424,6 +440,9 @@ var skills = map[int]*Skill{
|
|||||||
CancelTransit: map[int]int{
|
CancelTransit: map[int]int{
|
||||||
1: 9,
|
1: 9,
|
||||||
},
|
},
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -451,6 +470,8 @@ var skills = map[int]*Skill{
|
|||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
BlowUp: true,
|
BlowUp: true,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -463,10 +484,9 @@ var skills = map[int]*Skill{
|
|||||||
BoundChState: ATK_CHARACTER_STATE_ATK4,
|
BoundChState: ATK_CHARACTER_STATE_ATK4,
|
||||||
Hits: []interface{}{
|
Hits: []interface{}{
|
||||||
&FireballBullet{
|
&FireballBullet{
|
||||||
SpeciesId: int32(1),
|
Speed: int32(float64(5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
Speed: int32(float64(5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
|
||||||
Bullet: &BulletConfig{
|
Bullet: &BulletConfig{
|
||||||
StartupFrames: int32(15),
|
StartupFrames: int32(12),
|
||||||
ActiveFrames: MAX_INT32,
|
ActiveFrames: MAX_INT32,
|
||||||
HitStunFrames: int32(15),
|
HitStunFrames: int32(15),
|
||||||
BlockStunFrames: int32(9),
|
BlockStunFrames: int32(9),
|
||||||
@ -475,10 +495,13 @@ var skills = map[int]*Skill{
|
|||||||
SelfLockVelY: NO_LOCK_VEL,
|
SelfLockVelY: NO_LOCK_VEL,
|
||||||
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
PushbackVelY: int32(0),
|
PushbackVelY: int32(0),
|
||||||
HitboxOffsetX: int32(float64(18) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxOffsetX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxOffsetY: int32(float64(5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxOffsetY: int32(float64(5) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(48) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 5,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -506,6 +529,8 @@ var skills = map[int]*Skill{
|
|||||||
HitboxSizeX: int32(float64(40) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(40) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(64) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(64) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
BlowUp: true,
|
BlowUp: true,
|
||||||
|
ExplosionFrames: 15,
|
||||||
|
SpeciesId: int32(3),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -532,6 +557,9 @@ var skills = map[int]*Skill{
|
|||||||
HitboxOffsetY: int32(0),
|
HitboxOffsetY: int32(0),
|
||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -558,6 +586,9 @@ var skills = map[int]*Skill{
|
|||||||
HitboxOffsetY: int32(0),
|
HitboxOffsetY: int32(0),
|
||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 15,
|
||||||
|
SpeciesId: int32(2),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -584,6 +615,9 @@ var skills = map[int]*Skill{
|
|||||||
HitboxOffsetY: int32(0),
|
HitboxOffsetY: int32(0),
|
||||||
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
HitboxSizeY: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO),
|
||||||
|
BlowUp: false,
|
||||||
|
ExplosionFrames: 9,
|
||||||
|
SpeciesId: int32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -83,7 +83,9 @@ type BulletConfig struct {
|
|||||||
HitboxSizeX int32
|
HitboxSizeX int32
|
||||||
HitboxSizeY int32
|
HitboxSizeY int32
|
||||||
|
|
||||||
BlowUp bool
|
BlowUp bool
|
||||||
|
ExplosionFrames int32
|
||||||
|
SpeciesId int32 // For fireball, this SpeciesId specifies both the active animation and the explosion animation, for melee it specifies the explosion animation
|
||||||
|
|
||||||
CancelTransit map[int]int
|
CancelTransit map[int]int
|
||||||
}
|
}
|
||||||
@ -98,21 +100,24 @@ type BulletBattleAttr struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type MeleeBullet struct {
|
type MeleeBullet struct {
|
||||||
BattleAttr *BulletBattleAttr
|
BlState int32 // bullet state, e.g. STARTUP, ACTIVE, EXPLODING
|
||||||
Bullet *BulletConfig
|
FramesInBlState int32
|
||||||
|
BattleAttr *BulletBattleAttr
|
||||||
|
Bullet *BulletConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type FireballBullet struct {
|
type FireballBullet struct {
|
||||||
VirtualGridX int32
|
VirtualGridX int32
|
||||||
VirtualGridY int32
|
VirtualGridY int32
|
||||||
DirX int32
|
DirX int32
|
||||||
DirY int32
|
DirY int32
|
||||||
VelX int32
|
VelX int32
|
||||||
VelY int32
|
VelY int32
|
||||||
Speed int32
|
Speed int32
|
||||||
SpeciesId int32
|
BlState int32 // bullet state, e.g. STARTUP, ACTIVE, EXPLODING
|
||||||
BattleAttr *BulletBattleAttr
|
FramesInBlState int32
|
||||||
Bullet *BulletConfig
|
BattleAttr *BulletBattleAttr
|
||||||
|
Bullet *BulletConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type Skill struct {
|
type Skill struct {
|
||||||
@ -123,6 +128,7 @@ type Skill struct {
|
|||||||
ReleaseTriggerType int32 // 1: rising-edge, 2: falling-edge
|
ReleaseTriggerType int32 // 1: rising-edge, 2: falling-edge
|
||||||
BoundChState int32
|
BoundChState int32
|
||||||
Hits []interface{} // Hits within a "Skill" are automatically triggered
|
Hits []interface{} // Hits within a "Skill" are automatically triggered
|
||||||
|
// [WARN] Multihit of a fireball is more difficult to handle than that of melee, because we have to count from the fireball's first hit; the situation becomes even more complicated when a multihit fireball is in a crowd -- remains to be designed
|
||||||
}
|
}
|
||||||
|
|
||||||
type RoomDownsyncFrame struct {
|
type RoomDownsyncFrame struct {
|
||||||
|
@ -72,12 +72,12 @@ func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY,
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMeleeBulletJs(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32) *js.Object {
|
func NewMeleeBulletJs(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId, blState, framesInBlState, explosionFrames, speciesId int32) *js.Object {
|
||||||
return js.MakeWrapper(NewMeleeBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId))
|
return js.MakeWrapper(NewMeleeBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId, blState, framesInBlState, explosionFrames, speciesId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFireballBulletJs(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, speciesId int32) *js.Object {
|
func NewFireballBulletJs(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY int32, blowUp bool, teamId int32, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, blState, framesInBlState, explosionFrames, speciesId int32) *js.Object {
|
||||||
return js.MakeWrapper(NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, speciesId))
|
return js.MakeWrapper(NewFireballBullet(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, blState, framesInBlState, explosionFrames, speciesId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewNpcPatrolCue(flAct, frAct uint64, x, y float64) *js.Object {
|
func NewNpcPatrolCue(flAct, frAct uint64, x, y float64) *js.Object {
|
||||||
@ -171,5 +171,9 @@ func main() {
|
|||||||
"ConvertToFirstUsedRenderFrameId": ConvertToFirstUsedRenderFrameId,
|
"ConvertToFirstUsedRenderFrameId": ConvertToFirstUsedRenderFrameId,
|
||||||
"ConvertToLastUsedRenderFrameId": ConvertToLastUsedRenderFrameId,
|
"ConvertToLastUsedRenderFrameId": ConvertToLastUsedRenderFrameId,
|
||||||
"ShouldGenerateInputFrameUpsync": ShouldGenerateInputFrameUpsync,
|
"ShouldGenerateInputFrameUpsync": ShouldGenerateInputFrameUpsync,
|
||||||
|
"IsMeleeBulletActive": IsMeleeBulletActive,
|
||||||
|
"IsMeleeBulletAlive": IsMeleeBulletAlive,
|
||||||
|
"IsFireballBulletActive": IsFireballBulletActive,
|
||||||
|
"IsFireballBulletAlive": IsFireballBulletAlive,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user