diff --git a/battle_srv/models/pb_type_convert.go b/battle_srv/models/pb_type_convert.go index 7a548e7..beb3b21 100644 --- a/battle_srv/models/pb_type_convert.go +++ b/battle_srv/models/pb_type_convert.go @@ -41,6 +41,7 @@ func toPbRoomDownsyncFrame(rdf *battle.RoomDownsyncFrame) *pb.RoomDownsyncFrame OnWall: last.OnWall, OnWallNormX: last.OnWallNormX, OnWallNormY: last.OnWallNormY, + CapturedByInertia: last.CapturedByInertia, JoinIndex: last.JoinIndex, BulletTeamId: last.BulletTeamId, ChCollisionTeamId: last.ChCollisionTeamId, @@ -165,6 +166,7 @@ func toPbPlayers(modelInstances map[int32]*Player, withMetaInfo bool) []*pb.Play OnWall: last.OnWall, OnWallNormX: last.OnWallNormX, OnWallNormY: last.OnWallNormY, + CapturedByInertia: last.CapturedByInertia, JoinIndex: last.JoinIndex, BulletTeamId: last.BulletTeamId, ChCollisionTeamId: last.ChCollisionTeamId, @@ -216,6 +218,7 @@ func toJsPlayers(modelInstances map[int32]*Player) []*battle.PlayerDownsync { OnWall: last.OnWall, OnWallNormX: last.OnWallNormX, OnWallNormY: last.OnWallNormY, + CapturedByInertia: last.CapturedByInertia, Score: last.Score, Removed: last.Removed, } diff --git a/battle_srv/protos/room_downsync_frame.pb.go b/battle_srv/protos/room_downsync_frame.pb.go index d36d02f..72b2d25 100644 --- a/battle_srv/protos/room_downsync_frame.pb.go +++ b/battle_srv/protos/room_downsync_frame.pb.go @@ -30,9 +30,9 @@ type PlayerDownsync struct { VirtualGridX int32 `protobuf:"varint,2,opt,name=virtualGridX,proto3" json:"virtualGridX,omitempty"` VirtualGridY int32 `protobuf:"varint,3,opt,name=virtualGridY,proto3" json:"virtualGridY,omitempty"` DirX int32 `protobuf:"varint,4,opt,name=dirX,proto3" json:"dirX,omitempty"` - DirY int32 `protobuf:"varint,5,opt,name=dirY,proto3" json:"dirY,omitempty"` // "dirX" and "dirY" determines character facing + DirY int32 `protobuf:"varint,5,opt,name=dirY,proto3" json:"dirY,omitempty"` VelX int32 `protobuf:"varint,6,opt,name=velX,proto3" json:"velX,omitempty"` - VelY int32 `protobuf:"varint,7,opt,name=velY,proto3" json:"velY,omitempty"` // "velX" and "velY" is used to record the accumulated effect by accelerations (including gravity) + VelY int32 `protobuf:"varint,7,opt,name=velY,proto3" json:"velY,omitempty"` // "velX" and "velY" is used to record the accumulated effect by inertia and accelerations (including gravity) Speed int32 `protobuf:"varint,8,opt,name=speed,proto3" json:"speed,omitempty"` // this is the instantaneous scalar attribute of a character, different from but will be accounted in "velX" and "velY" BattleState int32 `protobuf:"varint,9,opt,name=battleState,proto3" json:"battleState,omitempty"` JoinIndex int32 `protobuf:"varint,10,opt,name=joinIndex,proto3" json:"joinIndex,omitempty"` @@ -54,6 +54,7 @@ type PlayerDownsync struct { OnWall bool `protobuf:"varint,26,opt,name=onWall,proto3" json:"onWall,omitempty"` // like "inAir", it’s by design a standalone field only inferred by the collision result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState", because we need check the transition for "characterState" from this field, i.e. "onWall (prev -> curr)" OnWallNormX int32 `protobuf:"varint,27,opt,name=onWallNormX,proto3" json:"onWallNormX,omitempty"` OnWallNormY int32 `protobuf:"varint,28,opt,name=onWallNormY,proto3" json:"onWallNormY,omitempty"` + CapturedByInertia bool `protobuf:"varint,29,opt,name=capturedByInertia,proto3" json:"capturedByInertia,omitempty"` // like "inAir", it’s by design a standalone field only inferred by the calc result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState" Name string `protobuf:"bytes,997,opt,name=name,proto3" json:"name,omitempty"` DisplayName string `protobuf:"bytes,998,opt,name=displayName,proto3" json:"displayName,omitempty"` Avatar string `protobuf:"bytes,999,opt,name=avatar,proto3" json:"avatar,omitempty"` @@ -287,6 +288,13 @@ func (x *PlayerDownsync) GetOnWallNormY() int32 { return 0 } +func (x *PlayerDownsync) GetCapturedByInertia() bool { + if x != nil { + return x.CapturedByInertia + } + return false +} + func (x *PlayerDownsync) GetName() string { if x != nil { return x.Name @@ -1616,7 +1624,7 @@ var file_room_downsync_frame_proto_rawDesc = []byte{ 0x0a, 0x19, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x1a, 0x0e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xc5, 0x07, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, + 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x07, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, @@ -1671,294 +1679,297 @@ var file_room_downsync_frame_proto_rawDesc = []byte{ 0x4e, 0x6f, 0x72, 0x6d, 0x58, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x72, 0x6d, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x72, 0x6d, 0x59, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, - 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x72, 0x6d, 0x59, 0x12, 0x13, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0xe5, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0xe6, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0xe7, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x6f, 0x0a, 0x11, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x64, 0x78, - 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x64, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x74, 0x6e, 0x41, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x74, 0x6e, 0x41, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, - 0x0a, 0x09, 0x62, 0x74, 0x6e, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x62, 0x74, 0x6e, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x6e, 0x0a, 0x10, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, + 0x6e, 0x57, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x72, 0x6d, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x42, 0x79, 0x49, 0x6e, 0x65, 0x72, 0x74, 0x69, 0x61, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x42, + 0x79, 0x49, 0x6e, 0x65, 0x72, 0x74, 0x69, 0x61, 0x12, 0x13, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0xe5, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0xe6, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x17, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x6f, 0x0a, 0x11, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x64, 0x78, 0x12, 0x0e, + 0x0a, 0x02, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x64, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x62, 0x74, 0x6e, 0x41, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x62, 0x74, 0x6e, 0x41, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x62, 0x74, 0x6e, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x62, 0x74, 0x6e, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x6e, 0x0a, 0x10, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x22, + 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7c, 0x0a, 0x12, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7c, 0x0a, 0x12, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, - 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x0f, 0x48, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x28, 0x0a, - 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x02, 0x0a, 0x05, 0x57, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x15, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, - 0x6e, 0x63, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, - 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x02, 0x68, 0x62, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x02, - 0x68, 0x62, 0x22, 0xaf, 0x02, 0x0a, 0x06, 0x57, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, - 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x49, + 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x0f, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x02, 0x0a, 0x05, 0x57, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x61, 0x63, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x72, 0x64, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6f, - 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x03, 0x72, 0x64, 0x66, - 0x12, 0x54, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x17, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, - 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x63, 0x69, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x62, 0x63, 0x69, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2a, 0x0a, - 0x10, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x6e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, - 0x61, 0x73, 0x6b, 0x12, 0x58, 0x0a, 0x19, 0x74, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, - 0x6e, 0x63, 0x52, 0x19, 0x74, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, - 0x72, 0x61, 0x6d, 0x65, 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, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x70, - 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 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, 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, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6f, - 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, - 0x2e, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x53, - 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, - 0x65, 0x6c, 0x58, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, - 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, - 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, - 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x64, - 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, - 0x65, 0x6c, 0x58, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, - 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, - 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, - 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x24, 0x0a, 0x0d, 0x68, - 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x58, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x59, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, - 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, - 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, - 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x6c, 0x6f, - 0x77, 0x55, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 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, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, - 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, - 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x08, - 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 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, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x66, - 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, - 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, - 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2e, - 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, - 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, - 0x6c, 0x58, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, - 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, - 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, - 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, - 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, - 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, - 0x6c, 0x58, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, - 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, - 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, - 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, - 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, - 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x59, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, - 0x53, 0x69, 0x7a, 0x65, 0x58, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, - 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, - 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, - 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, - 0x6f, 0x77, 0x55, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x77, - 0x55, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 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, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, - 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0c, - 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x18, 0xe7, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, - 0x58, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, - 0x59, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x47, 0x72, 0x69, 0x64, 0x59, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x58, 0x18, 0xe9, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x64, - 0x69, 0x72, 0x59, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x59, - 0x12, 0x13, 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x58, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x76, 0x65, 0x6c, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x59, 0x18, 0xec, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x76, 0x65, 0x6c, 0x59, 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, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, - 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x50, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x6f, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, - 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x72, - 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, - 0x44, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x6f, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, - 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x72, 0x6f, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, - 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x59, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, - 0x65, 0x70, 0x12, 0x39, 0x0a, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, - 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x80, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, - 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc2, 0x03, - 0x0a, 0x11, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, - 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x41, 0x72, - 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 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, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61, - 0x6e, 0x6f, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, - 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0c, - 0x6d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0f, - 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x46, - 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0f, 0x66, - 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x37, - 0x0a, 0x16, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x65, 0x64, 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, 0x6e, 0x63, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, - 0x73, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, - 0x14, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x83, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x75, - 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 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, + 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, + 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, + 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x02, 0x68, 0x62, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x02, 0x68, 0x62, + 0x22, 0xaf, 0x02, 0x0a, 0x06, 0x57, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x72, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x63, + 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x72, 0x64, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6f, 0x77, 0x6e, + 0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x03, 0x72, 0x64, 0x66, 0x12, 0x54, + 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, + 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x17, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x63, 0x69, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x08, 0x62, 0x63, 0x69, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, + 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x61, 0x73, + 0x6b, 0x12, 0x58, 0x0a, 0x19, 0x74, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, + 0x52, 0x19, 0x74, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, + 0x6d, 0x65, 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, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x6f, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x65, 0x65, + 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 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, 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, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x66, 0x66, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, + 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, + 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, + 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, + 0x58, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, + 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, + 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, + 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, + 0x58, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, + 0x6b, 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, + 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, + 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, + 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, + 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x59, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, + 0x69, 0x7a, 0x65, 0x58, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, + 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, + 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, + 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, + 0x77, 0x55, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 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, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, + 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, + 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x08, 0x0a, 0x0e, + 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 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, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x69, + 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, + 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x53, 0x74, 0x75, 0x6e, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x75, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, + 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x62, 0x61, 0x63, 0x6b, + 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x58, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, + 0x56, 0x65, 0x6c, 0x58, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x6b, + 0x56, 0x65, 0x6c, 0x59, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, + 0x4c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x6c, 0x59, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, + 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x12, 0x24, + 0x0a, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x59, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x53, 0x69, + 0x7a, 0x65, 0x58, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, + 0x78, 0x53, 0x69, 0x7a, 0x65, 0x58, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, + 0x53, 0x69, 0x7a, 0x65, 0x59, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x69, 0x74, + 0x62, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x77, + 0x55, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x77, 0x55, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 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, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x58, 0x12, + 0x23, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, 0x72, 0x69, 0x64, 0x59, 0x18, + 0xe8, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x47, + 0x72, 0x69, 0x64, 0x59, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x58, 0x18, 0xe9, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x69, 0x72, + 0x59, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69, 0x72, 0x59, 0x12, 0x13, + 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x58, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x76, + 0x65, 0x6c, 0x58, 0x12, 0x13, 0x0a, 0x04, 0x76, 0x65, 0x6c, 0x59, 0x18, 0xec, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x76, 0x65, 0x6c, 0x59, 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, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, + 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x73, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x50, + 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4d, + 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x72, 0x6f, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, + 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, + 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x74, 0x4e, 0x61, 0x6e, + 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x58, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x59, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x59, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, + 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, + 0x12, 0x39, 0x0a, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x80, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc2, 0x03, 0x0a, 0x11, + 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x41, 0x72, 0x72, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 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, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, + 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x2e, 0x4d, 0x65, 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0c, 0x6d, 0x65, + 0x6c, 0x65, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x66, 0x69, + 0x72, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x46, 0x69, 0x72, + 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x0f, 0x66, 0x69, 0x72, + 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x16, + 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 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, 0x6e, 0x63, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x65, 0x73, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x14, 0x62, + 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x18, 0x83, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x75, 0x6c, 0x6c, + 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 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 ( diff --git a/frontend/assets/plugin_scripts/jsexport.js b/frontend/assets/plugin_scripts/jsexport.js index aa95133..56cb656 100644 --- a/frontend/assets/plugin_scripts/jsexport.js +++ b/frontend/assets/plugin_scripts/jsexport.js @@ -9,8 +9,8 @@ $packages["runtime"]=(function(){var $pkg={},$init,A,C,D,AT,AZ,BD,AM,E,AU;A=$pac $packages["math/bits"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); $packages["math"]=(function(){var $pkg={},$init,B,A,IT,IU,IV,IW,FL,FM,FN,FO,FP,HH,EI,EX,EY,FK,GA,GH,GK,GL,GM,GS,GT,GW,GX,GZ,HA,HD,HI,HL,HM;B=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["math/bits"];IT=$arrayType($Uint32,2);IU=$arrayType($Float32,2);IV=$arrayType($Float64,1);IW=$structType("math",[{prop:"uint32array",name:"uint32array",embedded:false,exported:false,typ:IT,tag:""},{prop:"float32array",name:"float32array",embedded:false,exported:false,typ:IU,tag:""},{prop:"float64array",name:"float64array",embedded:false,exported:false,typ:IV,tag:""}]);EI=function(av){var av,aw,ax,ay,az,ba,bb;aw=HL(av);ax=((($shiftRightUint64(aw,52).$low>>>0))&2047)>>>0;if(ax<1023){aw=(ay=new $Uint64(2147483648,0),new $Uint64(aw.$high&ay.$high,(aw.$low&ay.$low)>>>0));if(ax===1022){aw=(az=new $Uint64(1072693248,0),new $Uint64(aw.$high|az.$high,(aw.$low|az.$low)>>>0));}}else if(ax<1075){ax=ax-(1023)>>>0;aw=(ba=$shiftRightUint64(new $Uint64(524288,0),ax),new $Uint64(aw.$high+ba.$high,aw.$low+ba.$low));aw=(bb=$shiftRightUint64(new $Uint64(1048575,4294967295),ax),new $Uint64(aw.$high&~bb.$high,(aw.$low&~bb.$low)>>>0));}return HM(aw);};$pkg.Round=EI;EX=function(av,aw){var av,aw;if(GL(av,1)||GL(aw,1)){return GK(1);}else if(GM(av)||GM(aw)){return GW();}else if((av===0)&&(av===aw)){if(GZ(av)){return aw;}return av;}if(av>aw){return av;}return aw;};EY=function(av,aw){var av,aw;if(GL(av,-1)||GL(aw,-1)){return GK(-1);}else if(GM(av)||GM(aw)){return GW();}else if((av===0)&&(av===aw)){if(GZ(av)){return av;}return aw;}if(av>>0)));};$pkg.Abs=FK;GA=function(av){var av;return $parseFloat(FL.cos(av));};$pkg.Cos=GA;GH=function(av){var av;return $parseFloat(FL.floor(av));};$pkg.Floor=GH;GK=function(av){var av;if(av>=0){return FN;}else{return FO;}};$pkg.Inf=GK;GL=function(av,aw){var av,aw;if(av===FN){return aw>=0;}if(av===FO){return aw<=0;}return false;};$pkg.IsInf=GL;GM=function(av){var av,aw;aw=false;aw=!((av===av));return aw;};$pkg.IsNaN=GM;GS=function(av,aw){var av,aw;return EX(av,aw);};$pkg.Max=GS;GT=function(av,aw){var av,aw;return EY(av,aw);};$pkg.Min=GT;GW=function(){return FP;};$pkg.NaN=GW;GX=function(av,aw){var av,aw;if((av===1)||((av===-1)&&((aw===FN)||(aw===FO)))){return 1;}return $parseFloat(FL.pow(av,aw));};$pkg.Pow=GX;GZ=function(av){var av;return av<0||(1/av===FO);};$pkg.Signbit=GZ;HA=function(av){var av;return $parseFloat(FL.sin(av));};$pkg.Sin=HA;HD=function(av){var av;return $parseFloat(FL.sqrt(av));};$pkg.Sqrt=HD;HI=function(){var av;av=new($global.ArrayBuffer)(8);HH.uint32array=new($global.Uint32Array)(av);HH.float32array=new($global.Float32Array)(av);HH.float64array=new($global.Float64Array)(av);};HL=function(av){var av,aw,ax;HH.float64array[0]=av;return(aw=$shiftLeft64((new $Uint64(0,HH.uint32array[1])),32),ax=(new $Uint64(0,HH.uint32array[0])),new $Uint64(aw.$high+ax.$high,aw.$low+ax.$low));};$pkg.Float64bits=HL;HM=function(av){var av;HH.uint32array[0]=((av.$low>>>0));HH.uint32array[1]=(($shiftRightUint64(av,32).$low>>>0));return HH.float64array[0];};$pkg.Float64frombits=HM;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}HH=new IW.ptr(IT.zero(),IU.zero(),IV.zero());FL=$global.Math;FM=0;FN=1/FM;FO=-1/FM;FP=$parseFloat($NaN);HI();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); $packages["resolv"]=(function(){var $pkg={},$init,A,B,C,N,P,Q,S,U,X,Z,AA,AE,AG,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,K,O,R,T,V,W,Y,AB,AC,AD,AF,AH;A=$packages["math"];B=$pkg.Vector=$newType(12,$kindSlice,"resolv.Vector",true,"resolv",true,null);C=$pkg.Axis=$newType(4,$kindInt,"resolv.Axis",true,"resolv",true,null);N=$pkg.Space=$newType(0,$kindStruct,"resolv.Space",true,"resolv",true,function(Cells_,CellWidth_,CellHeight_){this.$val=this;if(arguments.length===0){this.Cells=AL.nil;this.CellWidth=0;this.CellHeight=0;return;}this.Cells=Cells_;this.CellWidth=CellWidth_;this.CellHeight=CellHeight_;});P=$pkg.Shape=$newType(8,$kindInterface,"resolv.Shape",true,"resolv",true,null);Q=$pkg.Line=$newType(0,$kindStruct,"resolv.Line",true,"resolv",true,function(Start_,End_){this.$val=this;if(arguments.length===0){this.Start=B.nil;this.End=B.nil;return;}this.Start=Start_;this.End=End_;});S=$pkg.ConvexPolygon=$newType(0,$kindStruct,"resolv.ConvexPolygon",true,"resolv",true,function(Points_,X_,Y_,Closed_){this.$val=this;if(arguments.length===0){this.Points=AP.nil;this.X=0;this.Y=0;this.Closed=false;return;}this.Points=Points_;this.X=X_;this.Y=Y_;this.Closed=Closed_;});U=$pkg.ContactSet=$newType(0,$kindStruct,"resolv.ContactSet",true,"resolv",true,function(Points_,MTV_,Center_){this.$val=this;if(arguments.length===0){this.Points=AP.nil;this.MTV=B.nil;this.Center=B.nil;return;}this.Points=Points_;this.MTV=MTV_;this.Center=Center_;});X=$pkg.Circle=$newType(0,$kindStruct,"resolv.Circle",true,"resolv",true,function(X_,Y_,Radius_){this.$val=this;if(arguments.length===0){this.X=0;this.Y=0;this.Radius=0;return;}this.X=X_;this.Y=Y_;this.Radius=Radius_;});Z=$pkg.Projection=$newType(0,$kindStruct,"resolv.Projection",true,"resolv",true,function(Min_,Max_){this.$val=this;if(arguments.length===0){this.Min=0;this.Max=0;return;}this.Min=Min_;this.Max=Max_;});AA=$pkg.Object=$newType(0,$kindStruct,"resolv.Object",true,"resolv",true,function(Shape_,Space_,X_,Y_,W_,H_,TouchingCells_,Data_,ignoreList_,tags_){this.$val=this;if(arguments.length===0){this.Shape=$ifaceNil;this.Space=AM.nil;this.X=0;this.Y=0;this.W=0;this.H=0;this.TouchingCells=AK.nil;this.Data=$ifaceNil;this.ignoreList=false;this.tags=AV.nil;return;}this.Shape=Shape_;this.Space=Space_;this.X=X_;this.Y=Y_;this.W=W_;this.H=H_;this.TouchingCells=TouchingCells_;this.Data=Data_;this.ignoreList=ignoreList_;this.tags=tags_;});AE=$pkg.Collision=$newType(0,$kindStruct,"resolv.Collision",true,"resolv",true,function(checkingObject_,dx_,dy_,Objects_,Cells_){this.$val=this;if(arguments.length===0){this.checkingObject=AN.nil;this.dx=0;this.dy=0;this.Objects=AO.nil;this.Cells=AK.nil;return;}this.checkingObject=checkingObject_;this.dx=dx_;this.dy=dy_;this.Objects=Objects_;this.Cells=Cells_;});AG=$pkg.Cell=$newType(0,$kindStruct,"resolv.Cell",true,"resolv",true,function(X_,Y_,Objects_){this.$val=this;if(arguments.length===0){this.X=0;this.Y=0;this.Objects=AO.nil;return;}this.X=X_;this.Y=Y_;this.Objects=Objects_;});AI=$sliceType($Float64);AJ=$ptrType(AG);AK=$sliceType(AJ);AL=$sliceType(AK);AM=$ptrType(N);AN=$ptrType(AA);AO=$sliceType(AN);AP=$sliceType(B);AQ=$ptrType(Q);AR=$sliceType(AQ);AS=$ptrType(X);AT=$ptrType(S);AU=$ptrType(U);AV=$sliceType($String);AW=$ptrType(AE);AX=$sliceType(C);AY=$mapType(AN,$Bool);B.prototype.Clone=function(){var a,b;a=this;b=$makeSlice(B,a.$length);$copySlice(b,a);return b;};$ptrType(B).prototype.Clone=function(){return this.$get().Clone();};B.prototype.Add=function(a){var a,b,c,d,e,f;b=this;c=b.$length;d=a;e=0;while(true){if(!(e=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]).$length>c){AC($convertSliceType(b,AI),1,$convertSliceType(b,AI),$convertSliceType($subslice(((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]),0,c),AI));}else{AC($convertSliceType(b,AI),1,$convertSliceType(b,AI),$convertSliceType(((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]),AI));}e++;}return b;};$ptrType(B).prototype.Add=function(a){return this.$get().Add(a);};B.prototype.Sub=function(a){var a,b,c,d,e,f;b=this;c=b.$length;d=a;e=0;while(true){if(!(e=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]).$length>c){AC($convertSliceType(b,AI),-1,$convertSliceType($subslice(((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]),0,c),AI),$convertSliceType(b,AI));}else{AC($convertSliceType(b,AI),-1,$convertSliceType(((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]),AI),$convertSliceType(b,AI));}e++;}return b;};$ptrType(B).prototype.Sub=function(a){return this.$get().Sub(a);};B.prototype.Scale=function(a){var a,b;b=this;AD($convertSliceType(b,AI),a,$convertSliceType(b,AI));return b;};$ptrType(B).prototype.Scale=function(a){return this.$get().Scale(a);};B.prototype.Equal=function(a){var a,b,c,d,e;b=this;if(!((b.$length===a.$length))){return false;}c=b;d=0;while(true){if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e])-((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]))>1e-08){return false;}d++;}return true;};$ptrType(B).prototype.Equal=function(a){return this.$get().Equal(a);};B.prototype.Magnitude=function(){var a;a=this;return A.Sqrt(a.Magnitude2());};$ptrType(B).prototype.Magnitude=function(){return this.$get().Magnitude();};B.prototype.Magnitude2=function(){var a,b,c,d,e;a=this;b=0;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=b+(e*e);d++;}return b;};$ptrType(B).prototype.Magnitude2=function(){return this.$get().Magnitude2();};B.prototype.Unit=function(){var a,b,c,d,e;a=this;b=a.Magnitude();if(b<1e-08){return a;}c=a;d=0;while(true){if(!(d=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]=((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e])/b);d++;}return a;};$ptrType(B).prototype.Unit=function(){return this.$get().Unit();};K=function(a,b){var a,b,c,d,e,f,g,h,i,j,k;c=0;d=a.$length;e=b.$length;f=c;g=d;h=e;if(g>h){b=$appendSlice(b,$convertSliceType($makeSlice(B,(g-h>>0)),AI));}if(g>0)),AI));}i=a;j=0;while(true){if(!(j=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+k])*((k<0||k>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+k]));j++;}return f;};$pkg.Dot=K;B.prototype.Dot=function(a){var a,b;b=this;return K(b,a);};$ptrType(B).prototype.Dot=function(a){return this.$get().Dot(a);};B.prototype.Cross=function(a){var a,b;b=this;if(!((b.$length===3))||!((a.$length===3))){return B.nil;}return new B([(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])*(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])-(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2])*(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]),(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2])*(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])-(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])*(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]),(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])*(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])-(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2])*(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])]);};$ptrType(B).prototype.Cross=function(a){return this.$get().Cross(a);};B.prototype.Rotate=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;c=this;d=2;e=c.$length;f=d;g=e;if(g===0){return c;}if(b.$length>0){f=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);}if((g===1)&&!((f===2))){c=$append(c,0,0);}if((g<2&&(f===2))||((g===2)&&!((f===2)))){c=$append(c,0);}h=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]);i=(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]);j=h;k=i;l=A.Cos(a);m=A.Sin(a);n=l;o=m;p=f;if(p===(0)){q=(2>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+2]);(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=k*n-q*o);(2>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+2]=k*o+q*n);}else if(p===(1)){r=(2>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+2]);(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=j*n+r*o);(2>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+2]=-j*o+r*n);}else if(p===(2)){(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=j*n-k*o);(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=j*o+k*n);}if(g>3){return $subslice(c,0,3);}return c;};$ptrType(B).prototype.Rotate=function(a,b){return this.$get().Rotate(a,b);};B.prototype.X=function(){var a;a=this;if(a.$length<1){return 0;}return(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);};$ptrType(B).prototype.X=function(){return this.$get().X();};B.prototype.Y=function(){var a;a=this;if(a.$length<2){return 0;}return(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]);};$ptrType(B).prototype.Y=function(){return this.$get().Y();};B.prototype.Z=function(){var a;a=this;if(a.$length<3){return 0;}return(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]);};$ptrType(B).prototype.Z=function(){return this.$get().Z();};O=function(a,b,c,d){var a,b,c,d,e,f,g;e=new N.ptr(AL.nil,c,d);e.Resize((f=a/c,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero")),(g=b/d,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")));return e;};$pkg.NewSpace=O;N.ptr.prototype.Add=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b===AM.nil){$panic(new $String("ERROR: space is nil"));}c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);e.Space=b;$r=e.Update();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:N.ptr.prototype.Add,$c:true,$r,a,b,c,d,e,$s};return $f;};N.prototype.Add=function(a){return this.$val.Add(a);};N.ptr.prototype.Remove=function(a){var a,b,c,d,e,f,g,h;b=this;if(b===AM.nil){$panic(new $String("ERROR: space is nil"));}c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e.TouchingCells;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);h.unregister(e);g++;}e.TouchingCells=new AK([]);e.Space=AM.nil;d++;}};N.prototype.Remove=function(a){return this.$val.Remove(a);};N.ptr.prototype.Objects=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=this;b=$makeMap(AN.keyFor,[]);c=new AO([]);d=a.Cells;e=0;while(true){if(!(e=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+f]));i=0;while(true){if(!(i=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+f])),((j<0||j>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+j])).Objects;n=0;while(true){if(!(n=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+n]);p=(q=b[AN.keyFor(o)],q!==undefined?[q.v,true]:[false,false]);r=p[1];if(!r){c=$append(c,o);s=o;(b||$throwRuntimeError("assignment to entry in nil map"))[AN.keyFor(s)]={k:s,v:true};}n++;}i++;}e++;}return c;};N.prototype.Objects=function(){return this.$val.Objects();};N.ptr.prototype.Resize=function(a,b){var a,b,c,d,e,f,g;c=this;c.Cells=new AL([]);d=0;while(true){if(!(d=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+d]=$append((f=c.Cells,((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d])),AH(e,d))));e=e+(1)>>0;}d=d+(1)>>0;}};N.prototype.Resize=function(a,b){return this.$val.Resize(a,b);};N.ptr.prototype.Cell=function(a,b){var a,b,c,d,e,f;c=this;if(b>=0&&b=0&&a<(d=c.Cells,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b])).$length){return(e=(f=c.Cells,((b<0||b>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+b])),((a<0||a>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+a]));}return AJ.nil;};N.prototype.Cell=function(a,b){return this.$val.Cell(a,b);};N.ptr.prototype.CheckCells=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m;f=this;g=a;while(true){if(!(g<(a+c>>0))){break;}h=b;while(true){if(!(h<(b+d>>0))){break;}i=f.Cell(g,h);if(!(i===AJ.nil)){if(e.$length>0){if(i.ContainsTags(e)){j=i.Objects;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(l.HasTags(e)){return l;}k++;}}}else if(i.Occupied()){return(m=i.Objects,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]));}}h=h+(1)>>0;}g=g+(1)>>0;}return AN.nil;};N.prototype.CheckCells=function(a,b,c,d,e){return this.$val.CheckCells(a,b,c,d,e);};N.ptr.prototype.CheckCellsWorld=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l;f=this;g=f.WorldToSpace(a,b);h=g[0];i=g[1];j=f.WorldToSpace(c,d);k=j[0];l=j[1];return f.CheckCells(h,i,k,l,e);};N.prototype.CheckCellsWorld=function(a,b,c,d,e){return this.$val.CheckCellsWorld(a,b,c,d,e);};N.ptr.prototype.UnregisterAllObjects=function(){var a,b,c,d,e,f,g;a=this;b=0;while(true){if(!(b=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b])).$length)){break;}g=(e=(f=a.Cells,((b<0||b>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+b])),((c<0||c>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+c]));a.Remove(g.Objects);c=c+(1)>>0;}b=b+(1)>>0;}};N.prototype.UnregisterAllObjects=function(){return this.$val.UnregisterAllObjects();};N.ptr.prototype.WorldToSpace=function(a,b){var a,b,c,d,e;c=this;d=((A.Floor(a/(c.CellWidth))>>0));e=((A.Floor(b/(c.CellHeight))>>0));return[d,e];};N.prototype.WorldToSpace=function(a,b){return this.$val.WorldToSpace(a,b);};N.ptr.prototype.SpaceToWorld=function(a,b){var a,b,c,d,e;c=this;d=(($imul(a,c.CellWidth)));e=(($imul(b,c.CellHeight)));return[d,e];};N.prototype.SpaceToWorld=function(a,b){return this.$val.SpaceToWorld(a,b);};N.ptr.prototype.Height=function(){var a;a=this;return a.Cells.$length;};N.prototype.Height=function(){return this.$val.Height();};N.ptr.prototype.Width=function(){var a,b;a=this;if(a.Cells.$length>0){return(b=a.Cells,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).$length;}return 0;};N.prototype.Width=function(){return this.$val.Width();};N.ptr.prototype.CellsInLine=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;e=this;f=new AK([]);g=e.Cell(a,b);h=e.Cell(c,d);if(!(g===AJ.nil)&&!(h===AJ.nil)){i=new B([((c-a>>0)),((d-b>>0))]).Unit();(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]=(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])*(((j=e.CellWidth/2,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero")))));(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]=(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1])*(((k=e.CellHeight/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero")))));l=e.SpaceToWorld(a,b);m=l[0];n=l[1];q=new B([m+((o=e.CellWidth/2,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))),n+((p=e.CellHeight/2,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero")))]);r=false;while(true){if(!(!(g===AJ.nil))){break;}if(g===h){f=$append(f,g);break;}f=$append(f,g);if(r){(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1]=(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1])+((1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1])));}else{(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0]=(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])+((0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])));}s=e.WorldToSpace((0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0]),(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1]));t=s[0];u=s[1];v=e.Cell(t,u);if(!(v===g)){g=v;}r=!r;}}return f;};N.prototype.CellsInLine=function(a,b,c,d){return this.$val.CellsInLine(a,b,c,d);};R=function(a,b,c,d){var a,b,c,d;return new Q.ptr(new B([a,b]),new B([c,d]));};$pkg.NewLine=R;Q.ptr.prototype.Project=function(a){var a,b;b=this;return b.Vector().Scale(a.Dot(b.Start.Sub(new AP([b.End]))));};Q.prototype.Project=function(a){return this.$val.Project(a);};Q.ptr.prototype.Normal=function(){var a,b;a=this;b=a.Vector();return new B([(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]),-(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])]).Unit();};Q.prototype.Normal=function(){return this.$val.Normal();};Q.ptr.prototype.Vector=function(){var a;a=this;return a.End.Clone().Sub(new AP([a.Start])).Unit();};Q.prototype.Vector=function(){return this.$val.Vector();};Q.ptr.prototype.IntersectionPointsLine=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=this;k=((c=b.End,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))-(d=b.Start,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])))*((e=a.End,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))-(f=a.Start,(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])))-((g=a.End,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]))-(h=a.Start,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])))*((i=b.End,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))-(j=b.Start,(1>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+1])));if(!((k===0))){t=((((l=b.Start,(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]))-(m=a.Start,(1>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+1])))*((n=a.End,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))-(o=a.Start,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))))-(((p=b.Start,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0]))-(q=a.Start,(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])))*((r=a.End,(1>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+1]))-(s=a.Start,(1>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1]))))+1)/k;ac=((((u=b.Start,(1>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+1]))-(v=a.Start,(1>=v.$length?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+1])))*((w=b.End,(0>=w.$length?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+0]))-(x=b.Start,(0>=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+0]))))-(((y=b.Start,(0>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+0]))-(z=a.Start,(0>=z.$length?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+0])))*((aa=b.End,(1>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+1]))-(ab=b.Start,(1>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+1]))))+1)/k;if((0=ad.$length?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+0]))-(ae=b.Start,(0>=ae.$length?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+0]));ai=(ag=b.End,(1>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+1]))-(ah=b.Start,(1>=ah.$length?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+1]));return new B([(aj=b.Start,(0>=aj.$length?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+0]))+(t*af),(ak=b.Start,(1>=ak.$length?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+1]))+(t*ai)]);}}return B.nil;};Q.prototype.IntersectionPointsLine=function(a){return this.$val.IntersectionPointsLine(a);};Q.ptr.prototype.IntersectionPointsCircle=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b=this;c=new AP([]);d=new B([a.X,a.Y]);e=b.Start.Sub(new AP([d]));f=b.End.Sub(new AP([d]));g=f.Sub(new AP([e]));h=(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])*(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])+(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])*(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]);i=2*(((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])*(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))+((1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])*(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));j=((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])*(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))+((1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])*(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))-(a.Radius*a.Radius);k=i*i-(4*h*j);if(k<0){}else if(k===0){l=-i/(2*h);if(l>=0&&l<=1){c=$append(c,new B([(m=b.Start,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))+l*(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),(n=b.Start,(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]))+l*(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])]));}}else{o=(-i+A.Sqrt(k))/(2*h);if(o>=0&&o<=1){c=$append(c,new B([(p=b.Start,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0]))+o*(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),(q=b.Start,(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1]))+o*(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])]));}o=(-i-A.Sqrt(k))/(2*h);if(o>=0&&o<=1){c=$append(c,new B([(r=b.Start,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]))+o*(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),(s=b.Start,(1>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1]))+o*(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])]));}}return c;};Q.prototype.IntersectionPointsCircle=function(a){return this.$val.IntersectionPointsCircle(a);};T=function(a){var a,b;b=new S.ptr(new AP([]),0,0,true);b.AddPoints(a);return b;};$pkg.NewConvexPolygon=T;S.ptr.prototype.Clone=function(){var a,b,c,d,e,f;a=this;b=new AP([]);c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,e.Clone());d++;}f=T(AI.nil);f.X=a.X;f.Y=a.Y;f.AddPointsVec(b);f.Closed=a.Closed;return f;};S.prototype.Clone=function(){return this.$val.Clone();};S.ptr.prototype.AddPointsVec=function(a){var a,b;b=this;b.Points=$appendSlice(b.Points,a);};S.prototype.AddPointsVec=function(a){return this.$val.AddPointsVec(a);};S.ptr.prototype.AddPoints=function(a){var a,b,c,d;b=this;c=0;while(true){if(!(c=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]),(d=c+1>>0,((d<0||d>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]))]));c=c+(2)>>0;}};S.prototype.AddPoints=function(a){return this.$val.AddPoints(a);};S.ptr.prototype.Lines=function(){var a,b,c,d,e,f,g,h,i,j;a=this;b=new AR([]);c=a.Transformed();d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]);g=e;h=f;if(d<(c.$length-1>>0)){h=(i=d+1>>0,((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]));}else if(!a.Closed){break;}j=R((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]),(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]),(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]));b=$append(b,j);d=d+(1)>>0;}return b;};S.prototype.Lines=function(){return this.$val.Lines();};S.ptr.prototype.Transformed=function(){var a,b,c,d,e;a=this;b=new AP([]);c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,new B([(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])+a.X,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])+a.Y]));d++;}return b;};S.prototype.Transformed=function(){return this.$val.Transformed();};S.ptr.prototype.Bounds=function(){var a,b,c,d,e,f,g,h;a=this;b=a.Transformed();e=new B([(c=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])),(d=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]))]);f=e.Clone();g=0;while(true){if(!(g=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g]);if((0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])<(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])){(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]));}else if((0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])>(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])){(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]));}if((1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1])<(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])){(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]=(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]));}else if((1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1])>(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])){(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1]=(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]));}g=g+(1)>>0;}return[e,f];};S.prototype.Bounds=function(){return this.$val.Bounds();};S.ptr.prototype.Position=function(){var a;a=this;return[a.X,a.Y];};S.prototype.Position=function(){return this.$val.Position();};S.ptr.prototype.SetPosition=function(a,b){var a,b,c;c=this;c.X=a;c.Y=b;};S.prototype.SetPosition=function(a,b){return this.$val.SetPosition(a,b);};S.ptr.prototype.SetPositionVec=function(a){var a,b;b=this;b.X=a.X();b.Y=a.Y();};S.prototype.SetPositionVec=function(a){return this.$val.SetPositionVec(a);};S.ptr.prototype.Move=function(a,b){var a,b,c;c=this;c.X=c.X+(a);c.Y=c.Y+(b);};S.prototype.Move=function(a,b){return this.$val.Move(a,b);};S.ptr.prototype.MoveVec=function(a){var a,b;b=this;b.X=b.X+(a.X());b.Y=b.Y+(a.Y());};S.prototype.MoveVec=function(a){return this.$val.MoveVec(a);};S.ptr.prototype.Center=function(){var a,b,c,d,e;a=this;b=new B([0,0]);c=a.Transformed();d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b.Add(new AP([e]));d++;}(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])/((a.Transformed().$length)));(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])/((a.Transformed().$length)));return b;};S.prototype.Center=function(){return this.$val.Center();};S.ptr.prototype.Project=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=this;a=a.Unit();c=b.Transformed();f=a.Dot(new B([(d=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])),(e=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))]));g=f;h=1;while(true){if(!(h=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]),(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])),(j=((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]),(1>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+1]))]));if(kg){g=k;}h=h+(1)>>0;}return new Z.ptr(f,g);};S.prototype.Project=function(a){return this.$val.Project(a);};S.ptr.prototype.SATAxes=function(){var a,b,c,d,e;a=this;b=new AP([]);c=a.Lines();d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,e.Normal());d++;}return b;};S.prototype.SATAxes=function(){return this.$val.SATAxes();};S.ptr.prototype.PointInside=function(a){var a,b,c,d,e,f,g;b=this;c=R((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]),(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]),(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])+9.99999999999e+11,(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));d=0;e=b.Lines();f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!(g.IntersectionPointsLine(c)===B.nil)){d=d+(1)>>0;}f++;}return d===1;};S.prototype.PointInside=function(a){return this.$val.PointInside(a);};V=function(){return new U.ptr(new AP([]),new B([0,0]),new B([0,0]));};$pkg.NewContactSet=V;U.ptr.prototype.LeftmostPoint=function(){var a,b,c,d,e;a=this;b=B.nil;c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(b===B.nil||(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])<(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])){b=e;}d++;}return b;};U.prototype.LeftmostPoint=function(){return this.$val.LeftmostPoint();};U.ptr.prototype.RightmostPoint=function(){var a,b,c,d,e;a=this;b=B.nil;c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(b===B.nil||(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])>(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])){b=e;}d++;}return b;};U.prototype.RightmostPoint=function(){return this.$val.RightmostPoint();};U.ptr.prototype.TopmostPoint=function(){var a,b,c,d,e;a=this;b=B.nil;c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(b===B.nil||(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])<(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])){b=e;}d++;}return b;};U.prototype.TopmostPoint=function(){return this.$val.TopmostPoint();};U.ptr.prototype.BottommostPoint=function(){var a,b,c,d,e;a=this;b=B.nil;c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(b===B.nil||(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])>(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])){b=e;}d++;}return b;};U.prototype.BottommostPoint=function(){return this.$val.BottommostPoint();};S.ptr.prototype.Intersection=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=this;e=V();f=d.X;g=d.Y;d.X=d.X+(a);d.Y=d.Y+(b);h=$assertType(c,AS,true);i=h[0];j=h[1];if(j){k=d.Lines();l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);e.Points=$appendSlice(e.Points,m.IntersectionPointsCircle(i));l++;}}else{n=$assertType(c,AT,true);o=n[0];p=n[1];if(p){q=d.Lines();r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=o.Lines();u=0;while(true){if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);w=s.IntersectionPointsLine(v);if(!(w===B.nil)){e.Points=$append(e.Points,w);}u++;}r++;}}}if(e.Points.$length>0){x=e.Points;y=0;while(true){if(!(y=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y]);e.Center=e.Center.Add(new AP([z]));y++;}(ab=e.Center,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0]=(aa=e.Center,(0>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+0]))/((e.Points.$length))));(ad=e.Center,(1>=ad.$length?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+1]=(ac=e.Center,(1>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+1]))/((e.Points.$length))));ae=d.calculateMTV(e,c);if(!(ae===B.nil)){e.MTV=ae;}}else{e=AU.nil;}if(!(e===AU.nil)&&(!((a===0))||!((b===0)))){af=new B([a,b]).Magnitude();ag=e.MTV.Magnitude();e.MTV=e.MTV.Unit().Scale(ag-af);}d.X=f;d.Y=g;return e;};S.prototype.Intersection=function(a,b,c){return this.$val.Intersection(a,b,c);};S.ptr.prototype.calculateMTV=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;c=this;d=new B([0,0]);e=new B([1.7976931348623157e+308,0]);f=b;if($assertType(f,AT,true)[1]){g=f.$val;h=c.SATAxes();i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);if(!$clone(c.Project(j),Z).Overlapping($clone(g.Project(j),Z))){return B.nil;}k=$clone(c.Project(j),Z).Overlap($clone(g.Project(j),Z));if(e.Magnitude()>k){e=j.Scale(k);}i++;}l=g.SATAxes();m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if(!$clone(c.Project(n),Z).Overlapping($clone(g.Project(n),Z))){return B.nil;}o=$clone(c.Project(n),Z).Overlap($clone(g.Project(n),Z));if(e.Magnitude()>o){e=n.Scale(o);}m++;}}(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]=(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));return d;};S.prototype.calculateMTV=function(a,b){return this.$val.calculateMTV(a,b);};S.ptr.prototype.ContainedBy=function(a){var a,b,c,d,e,f,g,h,i,j;b=this;c=a;if($assertType(c,AT,true)[1]){d=c.$val;e=b.SATAxes();f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!$clone(b.Project(g),Z).IsInside($clone(d.Project(g),Z))){return false;}f++;}h=d.SATAxes();i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);if(!$clone(b.Project(j),Z).IsInside($clone(d.Project(j),Z))){return false;}i++;}}return true;};S.prototype.ContainedBy=function(a){return this.$val.ContainedBy(a);};S.ptr.prototype.FlipH=function(){var a,b,c,d;a=this;b=a.Points;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]=-(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));c++;}a.ReverseVertexOrder();};S.prototype.FlipH=function(){return this.$val.FlipH();};S.ptr.prototype.FlipV=function(){var a,b,c,d;a=this;b=a.Points;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]=-(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]));c++;}a.ReverseVertexOrder();};S.prototype.FlipV=function(){return this.$val.FlipV();};S.ptr.prototype.ReverseVertexOrder=function(){var a,b,c,d,e;a=this;c=new AP([(b=a.Points,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]))]);d=a.Points.$length-1>>0;while(true){if(!(d>=1)){break;}c=$append(c,(e=a.Points,((d<0||d>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+d])));d=d-(1)>>0;}a.Points=c;};S.prototype.ReverseVertexOrder=function(){return this.$val.ReverseVertexOrder();};W=function(a,b,c,d){var a,b,c,d;return T(new AI([a,b,a+c,b,a+c,b+d,a,b+d]));};$pkg.NewRectangle=W;Y=function(a,b,c){var a,b,c,d;d=new X.ptr(a,b,c);return d;};$pkg.NewCircle=Y;X.ptr.prototype.Clone=function(){var a;a=this;return Y(a.X,a.Y,a.Radius);};X.prototype.Clone=function(){return this.$val.Clone();};X.ptr.prototype.Bounds=function(){var a;a=this;return[new B([a.X-a.Radius,a.Y-a.Radius]),new B([a.X+a.Radius,a.Y+a.Radius])];};X.prototype.Bounds=function(){return this.$val.Bounds();};X.ptr.prototype.Intersection=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=this;e=AU.nil;f=d.X;g=d.Y;d.X=d.X+(a);d.Y=d.Y+(b);h=c;if($assertType(h,AT,true)[1]){i=h.$val;e=i.Intersection(-a,-b,d);if(!(e===AU.nil)){e.MTV=e.MTV.Scale(-1);}}else if($assertType(h,AS,true)[1]){j=h.$val;e=V();e.Points=d.IntersectionPointsCircle(j);if(e.Points.$length===0){return AU.nil;}e.MTV=new B([d.X-j.X,d.Y-j.Y]);k=e.MTV.Magnitude();e.MTV=e.MTV.Unit().Scale(d.Radius+j.Radius-k);l=e.Points;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);e.Center=e.Center.Add(new AP([n]));m++;}(p=e.Center,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0]=(o=e.Center,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))/((e.Points.$length))));(r=e.Center,(1>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+1]=(q=e.Center,(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1]))/((e.Points.$length))));}d.X=f;d.Y=g;return e;};X.prototype.Intersection=function(a,b,c){return this.$val.Intersection(a,b,c);};X.ptr.prototype.Move=function(a,b){var a,b,c;c=this;c.X=c.X+(a);c.Y=c.Y+(b);};X.prototype.Move=function(a,b){return this.$val.Move(a,b);};X.ptr.prototype.MoveVec=function(a){var a,b;b=this;b.X=b.X+(a.X());b.Y=b.Y+(a.Y());};X.prototype.MoveVec=function(a){return this.$val.MoveVec(a);};X.ptr.prototype.SetPosition=function(a,b){var a,b,c;c=this;c.X=a;c.Y=b;};X.prototype.SetPosition=function(a,b){return this.$val.SetPosition(a,b);};X.ptr.prototype.SetPositionVec=function(a){var a,b;b=this;b.X=a.X();b.Y=a.Y();};X.prototype.SetPositionVec=function(a){return this.$val.SetPositionVec(a);};X.ptr.prototype.Position=function(){var a;a=this;return[a.X,a.Y];};X.prototype.Position=function(){return this.$val.Position();};X.ptr.prototype.PointInside=function(a){var a,b;b=this;return a.Sub(new AP([new B([b.X,b.Y])])).Magnitude()<=b.Radius;};X.prototype.PointInside=function(a){return this.$val.PointInside(a);};X.ptr.prototype.IntersectionPointsCircle=function(a){var a,b,c,d,e,f,g;b=this;c=A.Sqrt(A.Pow(a.X-b.X,2)+A.Pow(a.Y-b.Y,2));if(c>b.Radius+a.Radius||c0;};Z.prototype.Overlapping=function(a){return this.$val.Overlapping(a);};Z.ptr.prototype.Overlap=function(a){var a,b;b=this;return A.Min(b.Max,a.Max)-A.Max(b.Min,a.Min);};Z.prototype.Overlap=function(a){return this.$val.Overlap(a);};Z.ptr.prototype.IsInside=function(a){var a,b;b=this;return b.Min>=a.Min&&b.Max<=a.Max;};Z.prototype.IsInside=function(a){return this.$val.IsInside(a);};AB=function(a,b,c,d,e){var a,b,c,d,e,f;f=new AA.ptr($ifaceNil,AM.nil,a,b,c,d,AK.nil,$ifaceNil,$makeMap(AN.keyFor,[]),new AV([]));if(e.$length>0){f.AddTags(e);}return f;};$pkg.NewObject=AB;AA.ptr.prototype.Clone=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=AB(a.X,a.Y,a.W,a.H,a.Tags());b.Data=a.Data;if(!($interfaceIsEqual(a.Shape,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:c=a.Shape.Clone();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=b.SetShape(c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:d=a.ignoreList;e=0;f=$keys(d);while(true){if(!(e>0;}h=h+(1)>>0;}}if(!($interfaceIsEqual(a.Shape,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=a.Shape.SetPosition(a.X,a.Y);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.Update,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AA.prototype.Update=function(){return this.$val.Update();};AA.ptr.prototype.AddTags=function(a){var a,b;b=this;b.tags=$appendSlice(b.tags,a);};AA.prototype.AddTags=function(a){return this.$val.AddTags(a);};AA.ptr.prototype.RemoveTags=function(a){var a,b,c,d,e,f,g,h,i;b=this;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=b.tags;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(i===e){b.tags=$appendSlice($subslice(b.tags,0,h),$subslice(b.tags,(h+1>>0)));break;}g++;}d++;}};AA.prototype.RemoveTags=function(a){return this.$val.RemoveTags(a);};AA.ptr.prototype.HasTags=function(a){var a,b,c,d,e,f,g,h;b=this;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=b.tags;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h===e){return true;}g++;}d++;}return false;};AA.prototype.HasTags=function(a){return this.$val.HasTags(a);};AA.ptr.prototype.Tags=function(){var a;a=this;return $appendSlice(new AV([]),a.tags);};AA.prototype.Tags=function(){return this.$val.Tags();};AA.ptr.prototype.SetShape=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!($interfaceIsEqual(b.Shape,a))){$s=1;continue;}$s=2;continue;case 1:b.Shape=a;$r=b.Update();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.SetShape,$c:true,$r,a,b,$s};return $f;};AA.prototype.SetShape=function(a){return this.$val.SetShape(a);};AA.ptr.prototype.BoundsToSpace=function(a,b){var a,b,c,d,e,f,g,h,i;c=this;d=c.Space.WorldToSpace(c.X+a,c.Y+b);e=d[0];f=d[1];g=c.Space.WorldToSpace(c.X+c.W+a-1,c.Y+c.H+b-1);h=g[0];i=g[1];return[e,f,h,i];};AA.prototype.BoundsToSpace=function(a,b){return this.$val.BoundsToSpace(a,b);};AA.ptr.prototype.SharesCells=function(a){var a,b,c,d,e;b=this;c=b.TouchingCells;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e.Contains(a)){return true;}d++;}return false;};AA.prototype.SharesCells=function(a){return this.$val.SharesCells(a);};AA.ptr.prototype.SharesCellsTags=function(a){var a,b,c,d,e;b=this;c=b.TouchingCells;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e.ContainsTags(a)){return true;}d++;}return false;};AA.prototype.SharesCellsTags=function(a){return this.$val.SharesCellsTags(a);};AA.ptr.prototype.Center=function(){var a;a=this;return[a.X+(a.W/2),a.Y+(a.H/2)];};AA.prototype.Center=function(){return this.$val.Center();};AA.ptr.prototype.SetCenter=function(a,b){var a,b,c;c=this;c.X=a-(c.W/2);c.Y=b-(c.H/2);};AA.prototype.SetCenter=function(a,b){return this.$val.SetCenter(a,b);};AA.ptr.prototype.CellPosition=function(){var a,b;a=this;b=a.Center();return a.Space.WorldToSpace(b[0],b[1]);};AA.prototype.CellPosition=function(){return this.$val.CellPosition();};AA.ptr.prototype.SetRight=function(a){var a,b;b=this;b.X=a-b.W;};AA.prototype.SetRight=function(a){return this.$val.SetRight(a);};AA.ptr.prototype.SetBottom=function(a){var a,b;b=this;b.Y=a-b.H;};AA.prototype.SetBottom=function(a){return this.$val.SetBottom(a);};AA.ptr.prototype.Bottom=function(){var a;a=this;return a.Y+a.H;};AA.prototype.Bottom=function(){return this.$val.Bottom();};AA.ptr.prototype.Right=function(){var a;a=this;return a.X+a.W;};AA.prototype.Right=function(){return this.$val.Right();};AA.ptr.prototype.SetBounds=function(a,b){var a,b,c;c=this;c.X=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);c.Y=(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]);c.W=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])-c.X;c.H=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])-c.Y;};AA.prototype.SetBounds=function(a,b){return this.$val.SetBounds(a,b);};AA.ptr.prototype.Check=function(a,b,c){var a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=this;if(d.Space===AM.nil){return AW.nil;}e=AF();e.checkingObject=d;if(a<0){a=A.Min(a,-1);}else if(a>0){a=A.Max(a,1);}if(b<0){b=A.Min(b,-1);}else if(b>0){b=A.Max(b,1);}e.dx=a;e.dy=b;f=d.BoundsToSpace(a,b);g=f[0];h=f[1];i=f[2];j=f[3];k=$makeMap(AN.keyFor,[]);l=$makeMap(AJ.keyFor,[]);m=h;while(true){if(!(m<=j)){break;}n=g;while(true){if(!(n<=i)){break;}o=d.Space.Cell(n,m);if(!(o===AJ.nil)){p=o.Objects;q=0;while(true){if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);t=(s=d.ignoreList[AN.keyFor(r)],s!==undefined?s.v:false);if(r===d||t){q++;continue;}u=(v=k[AN.keyFor(r)],v!==undefined?[v.v,true]:[false,false]);w=u[1];if(((c.$length===0)||r.HasTags(c))&&!w){e.Objects=$append(e.Objects,r);x=r;(k||$throwRuntimeError("assignment to entry in nil map"))[AN.keyFor(x)]={k:x,v:true};y=(z=l[AJ.keyFor(o)],z!==undefined?[z.v,true]:[false,false]);aa=y[1];if(!aa){e.Cells=$append(e.Cells,o);ab=o;(l||$throwRuntimeError("assignment to entry in nil map"))[AJ.keyFor(ab)]={k:ab,v:true};}q++;continue;}q++;}}n=n+(1)>>0;}m=m+(1)>>0;}if(e.Objects.$length===0){return AW.nil;}return e;};AA.prototype.Check=function(a,b,c){return this.$val.Check(a,b,c);};AA.ptr.prototype.Overlaps=function(a){var a,b;b=this;return a.X<=b.X+b.W&&a.X+a.W>=b.X&&a.Y<=b.Y+b.H&&a.Y+a.H>=b.Y;};AA.prototype.Overlaps=function(a){return this.$val.Overlaps(a);};AA.ptr.prototype.AddToIgnoreList=function(a){var a,b,c;b=this;c=a;(b.ignoreList||$throwRuntimeError("assignment to entry in nil map"))[AN.keyFor(c)]={k:c,v:true};};AA.prototype.AddToIgnoreList=function(a){return this.$val.AddToIgnoreList(a);};AA.ptr.prototype.RemoveFromIgnoreList=function(a){var a,b;b=this;delete b.ignoreList[AN.keyFor(a)];};AA.prototype.RemoveFromIgnoreList=function(a){return this.$val.RemoveFromIgnoreList(a);};AC=function(a,b,c,d){var a,b,c,d,e,f,g,h,i;e=d.$length;f=c;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h===e){return;}((h<0||h>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h]=b*i+((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]));g++;}};AD=function(a,b,c){var a,b,c,d,e,f;d=c;e=0;while(true){if(!(e=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f]=((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f])*(b));e++;}};AF=function(){return new AE.ptr(AN.nil,0,0,new AO([]),AK.nil);};$pkg.NewCollision=AF;AE.ptr.prototype.HasTags=function(a){var a,b,c,d,e;b=this;c=b.Objects;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e===b.checkingObject){d++;continue;}if(e.HasTags(a)){return true;}d++;}return false;};AE.prototype.HasTags=function(a){return this.$val.HasTags(a);};AE.ptr.prototype.ObjectsByTags=function(a){var a,b,c,d,e,f;b=this;c=new AO([]);d=b.Objects;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f===b.checkingObject){e++;continue;}if(f.HasTags(a)){c=$append(c,f);}e++;}return c;};AE.prototype.ObjectsByTags=function(a){return this.$val.ObjectsByTags(a);};AE.ptr.prototype.ContactWithObject=function(a){var a,b,c;b=this;c=new B([0,0]);if(b.dx<0){(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=a.X+a.W-b.checkingObject.X);}else if(b.dx>0){(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=a.X-b.checkingObject.W-b.checkingObject.X);}if(b.dy<0){(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=a.Y+a.H-b.checkingObject.Y);}else if(b.dy>0){(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=a.Y-b.checkingObject.H-b.checkingObject.Y);}return c;};AE.prototype.ContactWithObject=function(a){return this.$val.ContactWithObject(a);};AE.ptr.prototype.ContactWithCell=function(a){var a,b,c,d,e;b=this;c=new B([0,0]);d=(($imul(a.X,b.checkingObject.Space.CellWidth)));e=(($imul(a.Y,b.checkingObject.Space.CellHeight)));if(b.dx<0){(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=d+(b.checkingObject.Space.CellWidth)-b.checkingObject.X);}else if(b.dx>0){(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=d-b.checkingObject.W-b.checkingObject.X);}if(b.dy<0){(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=e+(b.checkingObject.Space.CellHeight)-b.checkingObject.Y);}else if(b.dy>0){(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=e-b.checkingObject.H-b.checkingObject.Y);}return c;};AE.prototype.ContactWithCell=function(a){return this.$val.ContactWithCell(a);};AE.ptr.prototype.SlideAgainstCell=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;c=this;d=c.checkingObject.Space;f=(e=c.Cells,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));g=d.SpaceToWorld(f.X,f.Y);h=g[0];i=g[1];j=(d.CellWidth)/2;k=(d.CellHeight)/2;h=h+(j);i=i+(k);l=c.checkingObject.Center();m=l[0];n=l[1];o=m-h;p=n-i;q=d.Cell(f.X-1>>0,f.Y);r=d.Cell(f.X+1>>0,f.Y);s=d.Cell(f.X,f.Y-1>>0);t=d.Cell(f.X,f.Y+1>>0);u=new B([0,0]);if(!((c.dy===0))){if(o>0&&(r===AJ.nil||!r.ContainsTags(b))){(0>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+0]=h+j-c.checkingObject.X);}else if(o<0&&(q===AJ.nil||!q.ContainsTags(b))){(0>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+0]=h-j-(c.checkingObject.X+c.checkingObject.W));}else{return B.nil;}}if(!((c.dx===0))){if(p>0&&(t===AJ.nil||!t.ContainsTags(b))){(1>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+1]=i+k-c.checkingObject.Y);}else if(p<0&&(s===AJ.nil||!s.ContainsTags(b))){(1>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+1]=i-k-(c.checkingObject.Y+c.checkingObject.H));}else{return B.nil;}}return u;};AE.prototype.SlideAgainstCell=function(a,b){return this.$val.SlideAgainstCell(a,b);};AH=function(a,b){var a,b;return new AG.ptr(a,b,new AO([]));};AG.ptr.prototype.register=function(a){var a,b;b=this;if(!b.Contains(a)){b.Objects=$append(b.Objects,a);}};AG.prototype.register=function(a){return this.$val.register(a);};AG.ptr.prototype.unregister=function(a){var a,b,c,d,e,f,g,h,i;b=this;c=b.Objects;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(f===a){(i=b.Objects,((e<0||e>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+e]=(g=b.Objects,h=b.Objects.$length-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))));b.Objects=$subslice(b.Objects,0,(b.Objects.$length-1>>0));break;}d++;}};AG.prototype.unregister=function(a){return this.$val.unregister(a);};AG.ptr.prototype.Contains=function(a){var a,b,c,d,e;b=this;c=b.Objects;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e===a){return true;}d++;}return false;};AG.prototype.Contains=function(a){return this.$val.Contains(a);};AG.ptr.prototype.ContainsTags=function(a){var a,b,c,d,e;b=this;c=b.Objects;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e.HasTags(a)){return true;}d++;}return false;};AG.prototype.ContainsTags=function(a){return this.$val.ContainsTags(a);};AG.ptr.prototype.Occupied=function(){var a;a=this;return a.Objects.$length>0;};AG.prototype.Occupied=function(){return this.$val.Occupied();};B.methods=[{prop:"Clone",name:"Clone",pkg:"",typ:$funcType([],[B],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([AP],[B],true)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([AP],[B],true)},{prop:"Scale",name:"Scale",pkg:"",typ:$funcType([$Float64],[B],false)},{prop:"Equal",name:"Equal",pkg:"",typ:$funcType([B],[$Bool],false)},{prop:"Magnitude",name:"Magnitude",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Magnitude2",name:"Magnitude2",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Unit",name:"Unit",pkg:"",typ:$funcType([],[B],false)},{prop:"Dot",name:"Dot",pkg:"",typ:$funcType([B],[$Float64],false)},{prop:"Cross",name:"Cross",pkg:"",typ:$funcType([B],[B],false)},{prop:"Rotate",name:"Rotate",pkg:"",typ:$funcType([$Float64,AX],[B],true)},{prop:"X",name:"X",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Y",name:"Y",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Z",name:"Z",pkg:"",typ:$funcType([],[$Float64],false)}];AM.methods=[{prop:"Add",name:"Add",pkg:"",typ:$funcType([AO],[],true)},{prop:"Remove",name:"Remove",pkg:"",typ:$funcType([AO],[],true)},{prop:"Objects",name:"Objects",pkg:"",typ:$funcType([],[AO],false)},{prop:"Resize",name:"Resize",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Cell",name:"Cell",pkg:"",typ:$funcType([$Int,$Int],[AJ],false)},{prop:"CheckCells",name:"CheckCells",pkg:"",typ:$funcType([$Int,$Int,$Int,$Int,AV],[AN],true)},{prop:"CheckCellsWorld",name:"CheckCellsWorld",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,AV],[AN],true)},{prop:"UnregisterAllObjects",name:"UnregisterAllObjects",pkg:"",typ:$funcType([],[],false)},{prop:"WorldToSpace",name:"WorldToSpace",pkg:"",typ:$funcType([$Float64,$Float64],[$Int,$Int],false)},{prop:"SpaceToWorld",name:"SpaceToWorld",pkg:"",typ:$funcType([$Int,$Int],[$Float64,$Float64],false)},{prop:"Height",name:"Height",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int],false)},{prop:"CellsInLine",name:"CellsInLine",pkg:"",typ:$funcType([$Int,$Int,$Int,$Int],[AK],false)}];AQ.methods=[{prop:"Project",name:"Project",pkg:"",typ:$funcType([B],[B],false)},{prop:"Normal",name:"Normal",pkg:"",typ:$funcType([],[B],false)},{prop:"Vector",name:"Vector",pkg:"",typ:$funcType([],[B],false)},{prop:"IntersectionPointsLine",name:"IntersectionPointsLine",pkg:"",typ:$funcType([AQ],[B],false)},{prop:"IntersectionPointsCircle",name:"IntersectionPointsCircle",pkg:"",typ:$funcType([AS],[AP],false)}];AT.methods=[{prop:"Clone",name:"Clone",pkg:"",typ:$funcType([],[P],false)},{prop:"AddPointsVec",name:"AddPointsVec",pkg:"",typ:$funcType([AP],[],true)},{prop:"AddPoints",name:"AddPoints",pkg:"",typ:$funcType([AI],[],true)},{prop:"Lines",name:"Lines",pkg:"",typ:$funcType([],[AR],false)},{prop:"Transformed",name:"Transformed",pkg:"",typ:$funcType([],[AP],false)},{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[B,B],false)},{prop:"Position",name:"Position",pkg:"",typ:$funcType([],[$Float64,$Float64],false)},{prop:"SetPosition",name:"SetPosition",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"SetPositionVec",name:"SetPositionVec",pkg:"",typ:$funcType([B],[],false)},{prop:"Move",name:"Move",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"MoveVec",name:"MoveVec",pkg:"",typ:$funcType([B],[],false)},{prop:"Center",name:"Center",pkg:"",typ:$funcType([],[B],false)},{prop:"Project",name:"Project",pkg:"",typ:$funcType([B],[Z],false)},{prop:"SATAxes",name:"SATAxes",pkg:"",typ:$funcType([],[AP],false)},{prop:"PointInside",name:"PointInside",pkg:"",typ:$funcType([B],[$Bool],false)},{prop:"Intersection",name:"Intersection",pkg:"",typ:$funcType([$Float64,$Float64,P],[AU],false)},{prop:"calculateMTV",name:"calculateMTV",pkg:"resolv",typ:$funcType([AU,P],[B],false)},{prop:"ContainedBy",name:"ContainedBy",pkg:"",typ:$funcType([P],[$Bool],false)},{prop:"FlipH",name:"FlipH",pkg:"",typ:$funcType([],[],false)},{prop:"FlipV",name:"FlipV",pkg:"",typ:$funcType([],[],false)},{prop:"ReverseVertexOrder",name:"ReverseVertexOrder",pkg:"",typ:$funcType([],[],false)}];AU.methods=[{prop:"LeftmostPoint",name:"LeftmostPoint",pkg:"",typ:$funcType([],[B],false)},{prop:"RightmostPoint",name:"RightmostPoint",pkg:"",typ:$funcType([],[B],false)},{prop:"TopmostPoint",name:"TopmostPoint",pkg:"",typ:$funcType([],[B],false)},{prop:"BottommostPoint",name:"BottommostPoint",pkg:"",typ:$funcType([],[B],false)}];AS.methods=[{prop:"Clone",name:"Clone",pkg:"",typ:$funcType([],[P],false)},{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[B,B],false)},{prop:"Intersection",name:"Intersection",pkg:"",typ:$funcType([$Float64,$Float64,P],[AU],false)},{prop:"Move",name:"Move",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"MoveVec",name:"MoveVec",pkg:"",typ:$funcType([B],[],false)},{prop:"SetPosition",name:"SetPosition",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"SetPositionVec",name:"SetPositionVec",pkg:"",typ:$funcType([B],[],false)},{prop:"Position",name:"Position",pkg:"",typ:$funcType([],[$Float64,$Float64],false)},{prop:"PointInside",name:"PointInside",pkg:"",typ:$funcType([B],[$Bool],false)},{prop:"IntersectionPointsCircle",name:"IntersectionPointsCircle",pkg:"",typ:$funcType([AS],[AP],false)}];Z.methods=[{prop:"Overlapping",name:"Overlapping",pkg:"",typ:$funcType([Z],[$Bool],false)},{prop:"Overlap",name:"Overlap",pkg:"",typ:$funcType([Z],[$Float64],false)},{prop:"IsInside",name:"IsInside",pkg:"",typ:$funcType([Z],[$Bool],false)}];AN.methods=[{prop:"Clone",name:"Clone",pkg:"",typ:$funcType([],[AN],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([],[],false)},{prop:"AddTags",name:"AddTags",pkg:"",typ:$funcType([AV],[],true)},{prop:"RemoveTags",name:"RemoveTags",pkg:"",typ:$funcType([AV],[],true)},{prop:"HasTags",name:"HasTags",pkg:"",typ:$funcType([AV],[$Bool],true)},{prop:"Tags",name:"Tags",pkg:"",typ:$funcType([],[AV],false)},{prop:"SetShape",name:"SetShape",pkg:"",typ:$funcType([P],[],false)},{prop:"BoundsToSpace",name:"BoundsToSpace",pkg:"",typ:$funcType([$Float64,$Float64],[$Int,$Int,$Int,$Int],false)},{prop:"SharesCells",name:"SharesCells",pkg:"",typ:$funcType([AN],[$Bool],false)},{prop:"SharesCellsTags",name:"SharesCellsTags",pkg:"",typ:$funcType([AV],[$Bool],true)},{prop:"Center",name:"Center",pkg:"",typ:$funcType([],[$Float64,$Float64],false)},{prop:"SetCenter",name:"SetCenter",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"CellPosition",name:"CellPosition",pkg:"",typ:$funcType([],[$Int,$Int],false)},{prop:"SetRight",name:"SetRight",pkg:"",typ:$funcType([$Float64],[],false)},{prop:"SetBottom",name:"SetBottom",pkg:"",typ:$funcType([$Float64],[],false)},{prop:"Bottom",name:"Bottom",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Right",name:"Right",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"SetBounds",name:"SetBounds",pkg:"",typ:$funcType([B,B],[],false)},{prop:"Check",name:"Check",pkg:"",typ:$funcType([$Float64,$Float64,AV],[AW],true)},{prop:"Overlaps",name:"Overlaps",pkg:"",typ:$funcType([AN],[$Bool],false)},{prop:"AddToIgnoreList",name:"AddToIgnoreList",pkg:"",typ:$funcType([AN],[],false)},{prop:"RemoveFromIgnoreList",name:"RemoveFromIgnoreList",pkg:"",typ:$funcType([AN],[],false)}];AW.methods=[{prop:"HasTags",name:"HasTags",pkg:"",typ:$funcType([AV],[$Bool],true)},{prop:"ObjectsByTags",name:"ObjectsByTags",pkg:"",typ:$funcType([AV],[AO],true)},{prop:"ContactWithObject",name:"ContactWithObject",pkg:"",typ:$funcType([AN],[B],false)},{prop:"ContactWithCell",name:"ContactWithCell",pkg:"",typ:$funcType([AJ],[B],false)},{prop:"SlideAgainstCell",name:"SlideAgainstCell",pkg:"",typ:$funcType([AJ,AV],[B],true)}];AJ.methods=[{prop:"register",name:"register",pkg:"resolv",typ:$funcType([AN],[],false)},{prop:"unregister",name:"unregister",pkg:"resolv",typ:$funcType([AN],[],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([AN],[$Bool],false)},{prop:"ContainsTags",name:"ContainsTags",pkg:"",typ:$funcType([AV],[$Bool],true)},{prop:"Occupied",name:"Occupied",pkg:"",typ:$funcType([],[$Bool],false)}];B.init($Float64);N.init("",[{prop:"Cells",name:"Cells",embedded:false,exported:true,typ:AL,tag:""},{prop:"CellWidth",name:"CellWidth",embedded:false,exported:true,typ:$Int,tag:""},{prop:"CellHeight",name:"CellHeight",embedded:false,exported:true,typ:$Int,tag:""}]);P.init([{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[B,B],false)},{prop:"Clone",name:"Clone",pkg:"",typ:$funcType([],[P],false)},{prop:"Intersection",name:"Intersection",pkg:"",typ:$funcType([$Float64,$Float64,P],[AU],false)},{prop:"Position",name:"Position",pkg:"",typ:$funcType([],[$Float64,$Float64],false)},{prop:"SetPosition",name:"SetPosition",pkg:"",typ:$funcType([$Float64,$Float64],[],false)}]);Q.init("",[{prop:"Start",name:"Start",embedded:false,exported:true,typ:B,tag:""},{prop:"End",name:"End",embedded:false,exported:true,typ:B,tag:""}]);S.init("",[{prop:"Points",name:"Points",embedded:false,exported:true,typ:AP,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Closed",name:"Closed",embedded:false,exported:true,typ:$Bool,tag:""}]);U.init("",[{prop:"Points",name:"Points",embedded:false,exported:true,typ:AP,tag:""},{prop:"MTV",name:"MTV",embedded:false,exported:true,typ:B,tag:""},{prop:"Center",name:"Center",embedded:false,exported:true,typ:B,tag:""}]);X.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Radius",name:"Radius",embedded:false,exported:true,typ:$Float64,tag:""}]);Z.init("",[{prop:"Min",name:"Min",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:$Float64,tag:""}]);AA.init("resolv",[{prop:"Shape",name:"Shape",embedded:false,exported:true,typ:P,tag:""},{prop:"Space",name:"Space",embedded:false,exported:true,typ:AM,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"W",name:"W",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"H",name:"H",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"TouchingCells",name:"TouchingCells",embedded:false,exported:true,typ:AK,tag:""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:$emptyInterface,tag:""},{prop:"ignoreList",name:"ignoreList",embedded:false,exported:false,typ:AY,tag:""},{prop:"tags",name:"tags",embedded:false,exported:false,typ:AV,tag:""}]);AE.init("resolv",[{prop:"checkingObject",name:"checkingObject",embedded:false,exported:false,typ:AN,tag:""},{prop:"dx",name:"dx",embedded:false,exported:false,typ:$Float64,tag:""},{prop:"dy",name:"dy",embedded:false,exported:false,typ:$Float64,tag:""},{prop:"Objects",name:"Objects",embedded:false,exported:true,typ:AO,tag:""},{prop:"Cells",name:"Cells",embedded:false,exported:true,typ:AK,tag:""}]);AG.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Objects",name:"Objects",embedded:false,exported:true,typ:AO,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["jsexport/battle"]=(function(){var $pkg={},$init,A,B,C,D,E,F,H,I,J,K,L,M,N,O,P,Q,S,T,AH,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,U,V,W,X,Y,R,Z,AB,AC,AD,AE,AF,AG,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AV,AW,AX,AY,AZ,BA,BB,BC,BD;A=$packages["math"];B=$packages["resolv"];C=$pkg.Vec2D=$newType(0,$kindStruct,"battle.Vec2D",true,"jsexport/battle",true,function(X_,Y_){this.$val=this;if(arguments.length===0){this.X=0;this.Y=0;return;}this.X=X_;this.Y=Y_;});D=$pkg.Polygon2D=$newType(0,$kindStruct,"battle.Polygon2D",true,"jsexport/battle",true,function(Anchor_,Points_){this.$val=this;if(arguments.length===0){this.Anchor=CD.nil;this.Points=CE.nil;return;}this.Anchor=Anchor_;this.Points=Points_;});E=$pkg.PlayerDownsync=$newType(0,$kindStruct,"battle.PlayerDownsync",true,"jsexport/battle",true,function(Id_,VirtualGridX_,VirtualGridY_,DirX_,DirY_,VelX_,VelY_,Speed_,BattleState_,JoinIndex_,ColliderRadius_,Removed_,Score_,LastMoveGmtMillis_,FramesToRecover_,FramesInChState_,Hp_,MaxHp_,CharacterState_,InAir_,OnWall_,OnWallNormX_,OnWallNormY_,ActiveSkillId_,ActiveSkillHit_,FramesInvinsible_,BulletTeamId_,ChCollisionTeamId_){this.$val=this;if(arguments.length===0){this.Id=0;this.VirtualGridX=0;this.VirtualGridY=0;this.DirX=0;this.DirY=0;this.VelX=0;this.VelY=0;this.Speed=0;this.BattleState=0;this.JoinIndex=0;this.ColliderRadius=0;this.Removed=false;this.Score=0;this.LastMoveGmtMillis=0;this.FramesToRecover=0;this.FramesInChState=0;this.Hp=0;this.MaxHp=0;this.CharacterState=0;this.InAir=false;this.OnWall=false;this.OnWallNormX=0;this.OnWallNormY=0;this.ActiveSkillId=0;this.ActiveSkillHit=0;this.FramesInvinsible=0;this.BulletTeamId=0;this.ChCollisionTeamId=0;return;}this.Id=Id_;this.VirtualGridX=VirtualGridX_;this.VirtualGridY=VirtualGridY_;this.DirX=DirX_;this.DirY=DirY_;this.VelX=VelX_;this.VelY=VelY_;this.Speed=Speed_;this.BattleState=BattleState_;this.JoinIndex=JoinIndex_;this.ColliderRadius=ColliderRadius_;this.Removed=Removed_;this.Score=Score_;this.LastMoveGmtMillis=LastMoveGmtMillis_;this.FramesToRecover=FramesToRecover_;this.FramesInChState=FramesInChState_;this.Hp=Hp_;this.MaxHp=MaxHp_;this.CharacterState=CharacterState_;this.InAir=InAir_;this.OnWall=OnWall_;this.OnWallNormX=OnWallNormX_;this.OnWallNormY=OnWallNormY_;this.ActiveSkillId=ActiveSkillId_;this.ActiveSkillHit=ActiveSkillHit_;this.FramesInvinsible=FramesInvinsible_;this.BulletTeamId=BulletTeamId_;this.ChCollisionTeamId=ChCollisionTeamId_;});F=$pkg.InputFrameDecoded=$newType(0,$kindStruct,"battle.InputFrameDecoded",true,"jsexport/battle",true,function(Dx_,Dy_,BtnALevel_,BtnBLevel_){this.$val=this;if(arguments.length===0){this.Dx=0;this.Dy=0;this.BtnALevel=0;this.BtnBLevel=0;return;}this.Dx=Dx_;this.Dy=Dy_;this.BtnALevel=BtnALevel_;this.BtnBLevel=BtnBLevel_;});H=$pkg.Barrier=$newType(0,$kindStruct,"battle.Barrier",true,"jsexport/battle",true,function(Boundary_){this.$val=this;if(arguments.length===0){this.Boundary=CF.nil;return;}this.Boundary=Boundary_;});I=$pkg.BulletConfig=$newType(0,$kindStruct,"battle.BulletConfig",true,"jsexport/battle",true,function(StartupFrames_,CancellableStFrame_,CancellableEdFrame_,ActiveFrames_,HitStunFrames_,BlockStunFrames_,PushbackVelX_,PushbackVelY_,Damage_,SelfLockVelX_,SelfLockVelY_,HitboxOffsetX_,HitboxOffsetY_,HitboxSizeX_,HitboxSizeY_,BlowUp_,ExplosionFrames_,SpeciesId_,CancelTransit_){this.$val=this;if(arguments.length===0){this.StartupFrames=0;this.CancellableStFrame=0;this.CancellableEdFrame=0;this.ActiveFrames=0;this.HitStunFrames=0;this.BlockStunFrames=0;this.PushbackVelX=0;this.PushbackVelY=0;this.Damage=0;this.SelfLockVelX=0;this.SelfLockVelY=0;this.HitboxOffsetX=0;this.HitboxOffsetY=0;this.HitboxSizeX=0;this.HitboxSizeY=0;this.BlowUp=false;this.ExplosionFrames=0;this.SpeciesId=0;this.CancelTransit=false;return;}this.StartupFrames=StartupFrames_;this.CancellableStFrame=CancellableStFrame_;this.CancellableEdFrame=CancellableEdFrame_;this.ActiveFrames=ActiveFrames_;this.HitStunFrames=HitStunFrames_;this.BlockStunFrames=BlockStunFrames_;this.PushbackVelX=PushbackVelX_;this.PushbackVelY=PushbackVelY_;this.Damage=Damage_;this.SelfLockVelX=SelfLockVelX_;this.SelfLockVelY=SelfLockVelY_;this.HitboxOffsetX=HitboxOffsetX_;this.HitboxOffsetY=HitboxOffsetY_;this.HitboxSizeX=HitboxSizeX_;this.HitboxSizeY=HitboxSizeY_;this.BlowUp=BlowUp_;this.ExplosionFrames=ExplosionFrames_;this.SpeciesId=SpeciesId_;this.CancelTransit=CancelTransit_;});J=$pkg.BulletBattleAttr=$newType(0,$kindStruct,"battle.BulletBattleAttr",true,"jsexport/battle",true,function(BulletLocalId_,OriginatedRenderFrameId_,OffenderJoinIndex_,TeamId_){this.$val=this;if(arguments.length===0){this.BulletLocalId=0;this.OriginatedRenderFrameId=0;this.OffenderJoinIndex=0;this.TeamId=0;return;}this.BulletLocalId=BulletLocalId_;this.OriginatedRenderFrameId=OriginatedRenderFrameId_;this.OffenderJoinIndex=OffenderJoinIndex_;this.TeamId=TeamId_;});K=$pkg.MeleeBullet=$newType(0,$kindStruct,"battle.MeleeBullet",true,"jsexport/battle",true,function(BlState_,FramesInBlState_,BattleAttr_,Bullet_){this.$val=this;if(arguments.length===0){this.BlState=0;this.FramesInBlState=0;this.BattleAttr=BH.nil;this.Bullet=BI.nil;return;}this.BlState=BlState_;this.FramesInBlState=FramesInBlState_;this.BattleAttr=BattleAttr_;this.Bullet=Bullet_;});L=$pkg.FireballBullet=$newType(0,$kindStruct,"battle.FireballBullet",true,"jsexport/battle",true,function(VirtualGridX_,VirtualGridY_,DirX_,DirY_,VelX_,VelY_,Speed_,BlState_,FramesInBlState_,BattleAttr_,Bullet_){this.$val=this;if(arguments.length===0){this.VirtualGridX=0;this.VirtualGridY=0;this.DirX=0;this.DirY=0;this.VelX=0;this.VelY=0;this.Speed=0;this.BlState=0;this.FramesInBlState=0;this.BattleAttr=BH.nil;this.Bullet=BI.nil;return;}this.VirtualGridX=VirtualGridX_;this.VirtualGridY=VirtualGridY_;this.DirX=DirX_;this.DirY=DirY_;this.VelX=VelX_;this.VelY=VelY_;this.Speed=Speed_;this.BlState=BlState_;this.FramesInBlState=FramesInBlState_;this.BattleAttr=BattleAttr_;this.Bullet=Bullet_;});M=$pkg.Skill=$newType(0,$kindStruct,"battle.Skill",true,"jsexport/battle",true,function(BattleLocalId_,RecoveryFrames_,RecoveryFramesOnBlock_,RecoveryFramesOnHit_,ReleaseTriggerType_,BoundChState_,Hits_){this.$val=this;if(arguments.length===0){this.BattleLocalId=0;this.RecoveryFrames=0;this.RecoveryFramesOnBlock=0;this.RecoveryFramesOnHit=0;this.ReleaseTriggerType=0;this.BoundChState=0;this.Hits=BG.nil;return;}this.BattleLocalId=BattleLocalId_;this.RecoveryFrames=RecoveryFrames_;this.RecoveryFramesOnBlock=RecoveryFramesOnBlock_;this.RecoveryFramesOnHit=RecoveryFramesOnHit_;this.ReleaseTriggerType=ReleaseTriggerType_;this.BoundChState=BoundChState_;this.Hits=Hits_;});N=$pkg.RoomDownsyncFrame=$newType(0,$kindStruct,"battle.RoomDownsyncFrame",true,"jsexport/battle",true,function(Id_,PlayersArr_,CountdownNanos_,MeleeBullets_,FireballBullets_,BackendUnconfirmedMask_,ShouldForceResync_,BulletLocalIdCounter_){this.$val=this;if(arguments.length===0){this.Id=0;this.PlayersArr=BV.nil;this.CountdownNanos=new $Int64(0,0);this.MeleeBullets=BW.nil;this.FireballBullets=BX.nil;this.BackendUnconfirmedMask=new $Uint64(0,0);this.ShouldForceResync=false;this.BulletLocalIdCounter=0;return;}this.Id=Id_;this.PlayersArr=PlayersArr_;this.CountdownNanos=CountdownNanos_;this.MeleeBullets=MeleeBullets_;this.FireballBullets=FireballBullets_;this.BackendUnconfirmedMask=BackendUnconfirmedMask_;this.ShouldForceResync=ShouldForceResync_;this.BulletLocalIdCounter=BulletLocalIdCounter_;});O=$pkg.InputFrameDownsync=$newType(0,$kindStruct,"battle.InputFrameDownsync",true,"jsexport/battle",true,function(InputFrameId_,InputList_,ConfirmedList_){this.$val=this;if(arguments.length===0){this.InputFrameId=0;this.InputList=BU.nil;this.ConfirmedList=new $Uint64(0,0);return;}this.InputFrameId=InputFrameId_;this.InputList=InputList_;this.ConfirmedList=ConfirmedList_;});P=$pkg.NpcPatrolCue=$newType(0,$kindStruct,"battle.NpcPatrolCue",true,"jsexport/battle",true,function(FlAct_,FrAct_,X_,Y_){this.$val=this;if(arguments.length===0){this.FlAct=new $Uint64(0,0);this.FrAct=new $Uint64(0,0);this.X=0;this.Y=0;return;}this.FlAct=FlAct_;this.FrAct=FrAct_;this.X=X_;this.Y=Y_;});Q=$pkg.RingBuffer=$newType(0,$kindStruct,"battle.RingBuffer",true,"jsexport/battle",true,function(Ed_,St_,EdFrameId_,StFrameId_,N_,Cnt_,Eles_){this.$val=this;if(arguments.length===0){this.Ed=0;this.St=0;this.EdFrameId=0;this.StFrameId=0;this.N=0;this.Cnt=0;this.Eles=BG.nil;return;}this.Ed=Ed_;this.St=St_;this.EdFrameId=EdFrameId_;this.StFrameId=StFrameId_;this.N=N_;this.Cnt=Cnt_;this.Eles=Eles_;});S=$pkg.SkillMapperType=$newType(4,$kindFunc,"battle.SkillMapperType",true,"jsexport/battle",true,null);T=$pkg.CharacterConfig=$newType(0,$kindStruct,"battle.CharacterConfig",true,"jsexport/battle",true,function(SpeciesId_,SpeciesName_,InAirIdleFrameIdxTurningPoint_,InAirIdleFrameIdxTurnedCycle_,LayDownFrames_,LayDownFramesToRecover_,GetUpInvinsibleFrames_,GetUpFramesToRecover_,Speed_,JumpingInitVelY_,JumpingFramesToRecover_,DashingEnabled_,OnWallEnabled_,WallJumpingFramesToRecover_,WallJumpingInitVelX_,WallJumpingInitVelY_,WallSlidingVelY_,TurnAroundFramesToRecover_,SkillMapper_){this.$val=this;if(arguments.length===0){this.SpeciesId=0;this.SpeciesName="";this.InAirIdleFrameIdxTurningPoint=0;this.InAirIdleFrameIdxTurnedCycle=0;this.LayDownFrames=0;this.LayDownFramesToRecover=0;this.GetUpInvinsibleFrames=0;this.GetUpFramesToRecover=0;this.Speed=0;this.JumpingInitVelY=0;this.JumpingFramesToRecover=0;this.DashingEnabled=false;this.OnWallEnabled=false;this.WallJumpingFramesToRecover=0;this.WallJumpingInitVelX=0;this.WallJumpingInitVelY=0;this.WallSlidingVelY=0;this.TurnAroundFramesToRecover=0;this.SkillMapper=$throwNilPointerError;return;}this.SpeciesId=SpeciesId_;this.SpeciesName=SpeciesName_;this.InAirIdleFrameIdxTurningPoint=InAirIdleFrameIdxTurningPoint_;this.InAirIdleFrameIdxTurnedCycle=InAirIdleFrameIdxTurnedCycle_;this.LayDownFrames=LayDownFrames_;this.LayDownFramesToRecover=LayDownFramesToRecover_;this.GetUpInvinsibleFrames=GetUpInvinsibleFrames_;this.GetUpFramesToRecover=GetUpFramesToRecover_;this.Speed=Speed_;this.JumpingInitVelY=JumpingInitVelY_;this.JumpingFramesToRecover=JumpingFramesToRecover_;this.DashingEnabled=DashingEnabled_;this.OnWallEnabled=OnWallEnabled_;this.WallJumpingFramesToRecover=WallJumpingFramesToRecover_;this.WallJumpingInitVelX=WallJumpingInitVelX_;this.WallJumpingInitVelY=WallJumpingInitVelY_;this.WallSlidingVelY=WallSlidingVelY_;this.TurnAroundFramesToRecover=TurnAroundFramesToRecover_;this.SkillMapper=SkillMapper_;});AH=$pkg.SatResult=$newType(0,$kindStruct,"battle.SatResult",true,"jsexport/battle",true,function(Overlap_,OverlapX_,OverlapY_,AContainedInB_,BContainedInA_,Axis_){this.$val=this;if(arguments.length===0){this.Overlap=0;this.OverlapX=0;this.OverlapY=0;this.AContainedInB=false;this.BContainedInA=false;this.Axis=B.Vector.nil;return;}this.Overlap=Overlap_;this.OverlapX=OverlapX_;this.OverlapY=OverlapY_;this.AContainedInB=AContainedInB_;this.BContainedInA=BContainedInA_;this.Axis=Axis_;});BE=$sliceType($Int32);BF=$sliceType(BE);BG=$sliceType($emptyInterface);BH=$ptrType(J);BI=$ptrType(I);BJ=$ptrType(M);BK=$ptrType(K);BL=$ptrType(AH);BM=$sliceType(C);BN=$sliceType($String);BO=$ptrType(B.Collision);BP=$ptrType(BM);BQ=$ptrType(E);BR=$ptrType(L);BS=$ptrType(B.ConvexPolygon);BT=$ptrType(O);BU=$sliceType($Uint64);BV=$sliceType(BQ);BW=$sliceType(BK);BX=$sliceType(BR);BY=$sliceType(BP);BZ=$sliceType($Bool);CA=$ptrType(B.Object);CB=$sliceType(CA);CC=$sliceType($Float64);CD=$ptrType(C);CE=$sliceType(CD);CF=$ptrType(D);CG=$mapType($Int,$Int);CH=$ptrType(Q);R=function(a){var a;return new Q.ptr(0,0,0,0,a,0,$makeSlice(BG,a));};$pkg.NewRingBuffer=R;Q.ptr.prototype.Put=function(a){var a,b,c,d;b=this;while(true){if(!(0=b.N)){break;}b.Pop();}(c=b.Eles,d=b.Ed,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=a));b.EdFrameId=b.EdFrameId+(1)>>0;b.Cnt=b.Cnt+(1)>>0;b.Ed=b.Ed+(1)>>0;if(b.Ed>=b.N){b.Ed=b.Ed-(b.N)>>0;}};Q.prototype.Put=function(a){return this.$val.Put(a);};Q.ptr.prototype.Pop=function(){var a,b,c,d;a=this;if(0===a.Cnt){return $ifaceNil;}d=(b=a.Eles,c=a.St,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.StFrameId=a.StFrameId+(1)>>0;a.Cnt=a.Cnt-(1)>>0;a.St=a.St+(1)>>0;if(a.St>=a.N){a.St=a.St-(a.N)>>0;}return d;};Q.prototype.Pop=function(){return this.$val.Pop();};Q.ptr.prototype.GetArrIdxByOffset=function(a){var a,b,c;b=this;if((0===b.Cnt)||0>a){return-1;}c=b.St+a>>0;if(b.St=b.N){c=c-(b.N)>>0;}if(c>=b.St||c=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));};Q.prototype.GetByOffset=function(a){return this.$val.GetByOffset(a);};Q.ptr.prototype.GetByFrameId=function(a){var a,b;b=this;if(a>=b.EdFrameId||a>0);};Q.prototype.GetByFrameId=function(a){return this.$val.GetByFrameId(a);};Q.ptr.prototype.SetByFrameId=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;c=this;d=c.StFrameId;e=c.EdFrameId;f=d;g=e;if(bb){h=c.GetArrIdxByOffset(b-c.StFrameId>>0);if(!((-1===h))){(i=c.Eles,((h<0||h>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]=a));return[0,f,g];}}j=0;if(g>0))>>2>>0);};$pkg.ConvertToDelayedInputFrameId=AC;AD=function(a){var a;return(a>>2>>0);};$pkg.ConvertToNoDelayInputFrameId=AD;AE=function(a){var a;return(((a<<2>>0))+8>>0);};$pkg.ConvertToFirstUsedRenderFrameId=AE;AF=function(a){var a;return(((((a<<2>>0))+8>>0)+4>>0)-1>>0);};$pkg.ConvertToLastUsedRenderFrameId=AF;AG=function(a){var a,b,c,d,e,f,g,h;b=new $Uint64(a.$high&0,(a.$low&15)>>>0);d=(((c=$shiftRightUint64(a,4),new $Uint64(c.$high&0,(c.$low&1)>>>0)).$low>>0));f=(((e=$shiftRightUint64(a,5),new $Uint64(e.$high&0,(e.$low&1)>>>0)).$low>>0));return new F.ptr((g=(($flatten64(b)<0||$flatten64(b)>=$pkg.DIRECTION_DECODER.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.DIRECTION_DECODER.$array[$pkg.DIRECTION_DECODER.$offset+$flatten64(b)]),(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])),(h=(($flatten64(b)<0||$flatten64(b)>=$pkg.DIRECTION_DECODER.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.DIRECTION_DECODER.$array[$pkg.DIRECTION_DECODER.$offset+$flatten64(b)]),(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1])),d,f);};AI=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];e=[e];f=[f];g=c[0].Position();e[0]=g[0];f[0]=g[1];$deferred.push([(function(c,e,f){return function(){c[0].SetPosition(e[0],f[0]);};})(c,e,f),[]]);c[0].SetPosition(e[0]+a,f[0]+b);h=new AH.ptr(0,0,0,true,true,new B.Vector([0,0]));i=AJ(c[0],d,h);if(i){$s=1;continue;}$s=2;continue;case 1:j=h.Overlap*h.OverlapX;k=h.Overlap*h.OverlapY;l=j;m=k;n=[true,l,m,h];$s=4;case 4:return n;case 2:o=[false,0,0,h];$s=5;case 5:return o;case 3:$s=-1;return[false,0,0,BL.nil];}return;}}catch(err){$err=err;$s=-1;return[false,0,0,BL.nil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:AI,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred};return $f;}}};AJ=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;d=a.Points.$length;e=b.Points.$length;f=d;g=e;if((1===f)&&(1===g)){if(!(BL.nil===c)){c.Overlap=0;}return((h=(i=a.Points,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])),(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))===(j=(k=b.Points,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])),(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])))&&((l=(m=a.Points,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0])),(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]))===(n=(o=b.Points,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])),(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])));}if(1=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(AO(a,b,r.Unit(),c)){return false;}q++;}}if(1=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);if(AO(a,b,u.Unit(),c)){return false;}t++;}}return true;};AK=function(a,b){var a,b;if(2===a.BlState){return false;}return((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)<=b.Id)&&(((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)+a.Bullet.ActiveFrames>>0)>b.Id);};$pkg.IsMeleeBulletActive=AK;AL=function(a,b){var a,b;if(2===a.BlState){return a.FramesInBlState>0)+a.Bullet.ActiveFrames>>0)>b.Id;};$pkg.IsMeleeBulletAlive=AL;AM=function(a,b){var a,b;if(2===a.BlState){return false;}return((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)>0)+a.Bullet.ActiveFrames>>0)>b.Id);};$pkg.IsFireballBulletActive=AM;AN=function(a,b){var a,b;if(2===a.BlState){return a.FramesInBlState>0)+a.Bullet.ActiveFrames>>0)>b.Id;};$pkg.IsFireballBulletAlive=AN;AO=function(a,b,c,d){var a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=1.7e+308;f=-1.7e+308;g=1.7e+308;h=-1.7e+308;i=e;j=f;k=g;l=h;m=a.Points;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);p=((0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])+a.X)*(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])+((1>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+1])+a.Y)*(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]);if(i>p){i=p;}if(j=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=((0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])+b.X)*(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])+((1>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1])+b.Y)*(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]);if(k>t){k=t;}if(ll||jl){u=i-l;d.AContainedInB=false;}else{x=j-k;y=l-i;if(x=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0])))&&(0===(ac=d.Axis,(1>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+1]))))||z>aa){ad=1;if(u<0){ad=-1;}d.Overlap=aa;d.OverlapX=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])*ad;d.OverlapY=(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1])*ad;}d.Axis=c;}return false;};AP=function(a,b){var a,b,c,d;c=((A.Round(a*100)>>0));d=((A.Round(b*100)>>0));return[c,d];};$pkg.WorldToVirtualGridPos=AP;AQ=function(a,b){var a,b,c,d;c=(a)*0.01;d=(b)*0.01;return[c,d];};$pkg.VirtualGridToWorldPos=AQ;AR=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j;return[a-c-g+i,b-d-f+j];};$pkg.WorldToPolygonColliderBLPos=AR;AS=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j;return[a+c+g-i,b+d+f-j];};$pkg.PolygonColliderBLToWorldPos=AS;AT=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j,k,l,m;k=AS(a,b,c,d,e,f,g,h,i,j);l=k[0];m=k[1];return AP(l,m);};$pkg.PolygonColliderBLToVirtualGridPos=AT;AV=function(a,b,c,d,e,f,g){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:h=[h];h[0]=$makeSlice(BM,0,10);i=0;if((16===b.CharacterState)&&(0===c.VelX)&&(b.DirX===c.DirX)){j=1;if(0>c.DirX){j=-j;}i=j*(b.Speed)*0.01;}k=d.Check(i,0,new BN([]));if(BO.nil===k){$s=-1;return(h.$ptr||(h.$ptr=new BP(function(){return this.$target[0];},function($v){this.$target[0]=$v;},h)));}l=k.Objects;m=0;case 1:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=false;p=n.Data;if($assertType(p,BQ,true)[1]||$assertType(p,BK,true)[1]||$assertType(p,BR,true)[1]){}else{o=true;}if(!o){m++;$s=1;continue;}q=$assertType(n.Shape,BS);s=AI(0,0,e,q);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=r[0];u=r[1];v=r[2];w=r[3];if(!t){m++;$s=1;continue;}x=(w.Overlap-f)*w.OverlapX;y=(w.Overlap-f)*w.OverlapY;u=x;v=y;h[0]=$append(h[0],new C.ptr(w.OverlapX,w.OverlapY));g.X=g.X+(u);g.Y=g.Y+(v);m++;$s=1;continue;case 2:$s=-1;return(h.$ptr||(h.$ptr=new BP(function(){return this.$target[0];},function($v){this.$target[0]=$v;},h)));}return;}var $f={$blk:AV,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};AW=function(a,b,c,d){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=AC(c.Id);f=AC(c.Id-1>>0);if(0>=e){return[-2,false,0,0];}g=(h=W[$Int32.keyFor(a.CharacterState)],h!==undefined?[h.v,true]:[false,false]);i=g[1];if(i){return[-2,false,0,0];}j=$assertType(d.GetByFrameId(e),BT).InputList;k=BU.nil;if(0>0,((n<0||n>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+n])));p=0;q=0;r=p;s=q;t=0;u=0;v=t;w=u;if(!(BU.nil===k)){y=AG((x=m-1>>0,((x<0||x>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+x])));v=y.BtnALevel;w=y.BtnBLevel;}if(0===a.FramesToRecover){z=o.Dx;aa=o.Dy;r=z;s=aa;if(o.BtnBLevel>w){ab=(ac=V[$Int32.keyFor(a.CharacterState)],ac!==undefined?[ac.v,true]:[false,false]);ad=ab[1];if(!ad){l=true;}else if(16===a.CharacterState){l=true;}}}ae=-1;if(0v){if(0>s){ae=3;}else if(0=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]=new E.ptr(m.Id,m.VirtualGridX,m.VirtualGridY,m.DirX,m.DirY,m.VelX,m.VelY,m.Speed,m.BattleState,m.JoinIndex,m.ColliderRadius,m.Removed,m.Score,0,m.FramesToRecover-1>>0,m.FramesInChState+1>>0,m.Hp,m.MaxHp,m.CharacterState,true,false,m.OnWallNormX,m.OnWallNormY,m.ActiveSkillId,m.ActiveSkillHit,m.FramesInvinsible-1>>0,0,0));if(((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesToRecover<0){((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesToRecover=0;}if(((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesInvinsible<0){((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesInvinsible=0;}k++;}n=$makeSlice(BW,0,b.MeleeBullets.$length);o=$makeSlice(BX,0,b.FireballBullets.$length);p=$makeSlice(BM,h);q=$makeSlice(BY,h);r=$makeSlice(BZ,h);s=b.BulletLocalIdCounter;t=b.PlayersArr;u=0;case 1:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);z=((x<0||x>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+x]);aa=((x<0||x>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+x]);ab=AW(y,aa,b,a);ac=ab[0];ad=ab[1];ae=ab[2];af=ab[3];((x<0||x>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+x]=ad);ag=y.JoinIndex;ah=z.SkillMapper(ac,y);$s=3;case 3:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=(ak=U[$Int.keyFor(ai)],ak!==undefined?[ak.v,true]:[BJ.nil,false]);al=aj[0];am=aj[1];if(am){aa.ActiveSkillId=((ai>>0));aa.ActiveSkillHit=0;aa.FramesToRecover=al.RecoveryFrames;an=1;if(0>aa.DirX){an=-an;}ao=false;ap=(aq=al.Hits,ar=aa.ActiveSkillHit,((ar<0||ar>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]));if($assertType(ap,BK,true)[1]){as=ap.$val;v[0]=$clone(as,K);v[0].BattleAttr=new J.ptr(s,b.Id,ag,y.BulletTeamId);s=s+(1)>>0;v[0].BlState=0;n=$append(n,v[0]);if(!((-1===as.Bullet.SelfLockVelX))){ao=true;aa.VelX=$imul(an,as.Bullet.SelfLockVelX);}if(!((-1===as.Bullet.SelfLockVelY))){ao=true;aa.VelY=as.Bullet.SelfLockVelY;}}else if($assertType(ap,BR,true)[1]){at=ap.$val;w[0]=$clone(at,L);w[0].BattleAttr=new J.ptr(s,b.Id,ag,y.BulletTeamId);s=s+(1)>>0;au=y.VirtualGridX+($imul(an,w[0].Bullet.HitboxOffsetX))>>0;av=y.VirtualGridY+w[0].Bullet.HitboxOffsetY>>0;w[0].VirtualGridX=au;w[0].VirtualGridY=av;w[0].DirX=an;w[0].DirY=0;w[0].VelX=$imul(w[0].Speed,an);w[0].VelY=0;w[0].BlState=0;o=$append(o,w[0]);if(!((-1===at.Bullet.SelfLockVelX))){ao=true;aa.VelX=$imul(an,at.Bullet.SelfLockVelX);}if(!((-1===at.Bullet.SelfLockVelY))){ao=true;aa.VelY=at.Bullet.SelfLockVelY;}}if(false===ao&&false===y.InAir){aa.VelX=0;}aa.CharacterState=al.BoundChState;u++;$s=1;continue;}if(0===y.FramesToRecover){aw=y.Speed($imul(ae,aa.DirX))){aa.DirX=ae;aa.VelX=0;aa.FramesToRecover=z.TurnAroundFramesToRecover;}else{ax=1;if(0>ae){ax=-ax;}aa.DirX=ae;aa.DirY=af;if(aw){aa.VelX=$imul(ax,Z(y.VelX));}else{aa.VelX=$imul(ax,y.Speed);}aa.CharacterState=1;}}else{aa.CharacterState=0;aa.VelX=0;}}u++;$s=1;continue;case 2:ay=$makeSlice(CB,b.PlayersArr.$length,b.PlayersArr.$length);az=b.PlayersArr;ba=0;case 4:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);bd=bc.JoinIndex;be=0;bf=0;(bg=bd-1>>0,((bg<0||bg>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+bg])).X=be;(bh=bd-1>>0,((bh<0||bh>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+bh])).Y=bf;bi=((bb<0||bb>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+bb]);bj=((bb<0||bb>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+bb]);bk=bc.VirtualGridX+bc.VelX>>0;bl=bc.VirtualGridY+bc.VelY>>0;bm=bk;bn=bl;if(((bb<0||bb>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+bb])){if(16===bc.CharacterState){if(0<($imul(bc.VelX,bc.OnWallNormX))){bm=bm-(bc.VelX)>>0;}bo=-1;if(0>bc.OnWallNormX){bo=-bo;}bm=bm+(($imul(bo,bj.WallJumpingInitVelX)))>>0;bn=bn+(bj.WallJumpingInitVelY)>>0;bi.VelX=(($imul(bo,bj.WallJumpingInitVelX)));bi.VelY=(bj.WallJumpingInitVelY);bi.FramesToRecover=bj.WallJumpingFramesToRecover;}else{bi.VelY=(bj.JumpingInitVelY);bn=bn+(bj.JumpingInitVelY)>>0;}}bp=AQ(bm,bn);bq=bp[0];br=bp[1];bs=$imul(bc.ColliderRadius,2);bt=$imul(bc.ColliderRadius,4);bu=bs;bv=bt;bw=bc.CharacterState;if(bw===(9)){bx=$imul(bc.ColliderRadius,4);by=$imul(bc.ColliderRadius,2);bu=bx;bv=by;}else if((bw===(8))||(bw===(4))||(bw===(5))||(bw===(16))){bz=$imul(bc.ColliderRadius,2);ca=$imul(bc.ColliderRadius,2);bu=bz;bv=ca;}cb=AQ(bu,bv);cc=cb[0];cd=cb[1];ce=AY(bq,br,cc,cd,0.1,0.1,0.1,0.1,e,f,bc,"Player");$s=6;case 6:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cf=ce;((bb<0||bb>=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+bb]=cf);$r=c.Add(new CB([cf]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(bc.InAir){if((16===bc.CharacterState)&&!((bb<0||bb>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+bb])){bi.VelX=bi.VelX+(0)>>0;bi.VelY=bj.WallSlidingVelY;}else{bi.VelX=bi.VelX+(0)>>0;bi.VelY=bi.VelY+(-50)>>0;}}ba++;$s=4;continue;case 5:cg=$makeSlice(CB,0,b.MeleeBullets.$length);ch=b.MeleeBullets;ci=0;case 8:if(!(ci=ch.$length)?($throwRuntimeError("index out of range"),undefined):ch.$array[ch.$offset+ci]);ck=new K.ptr(cj.BlState,cj.FramesInBlState+1>>0,cj.BattleAttr,cj.Bullet);if(AL(ck,b)){$s=10;continue;}$s=11;continue;case 10:if(AK(ck,b)){$s=12;continue;}$s=13;continue;case 12:cn=(cl=b.PlayersArr,cm=ck.BattleAttr.OffenderJoinIndex-1>>0,((cm<0||cm>=cl.$length)?($throwRuntimeError("index out of range"),undefined):cl.$array[cl.$offset+cm]));co=1;if(0>cn.DirX){co=-co;}cp=AQ(cn.VirtualGridX+($imul(co,ck.Bullet.HitboxOffsetX))>>0,cn.VirtualGridY);cq=cp[0];cr=cp[1];cs=AQ(ck.Bullet.HitboxSizeX,ck.Bullet.HitboxSizeY);ct=cs[0];cu=cs[1];cv=AY(cq,cr,ct,cu,0.1,0.1,0.1,0.1,e,f,ck,"MeleeBullet");$s=14;case 14:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cw=cv;$r=c.Add(new CB([cw]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg=$append(cg,cw);ck.BlState=1;if(!((ck.BlState===cj.BlState))){ck.FramesInBlState=0;}case 13:n=$append(n,ck);case 11:ci++;$s=8;continue;case 9:cx=b.FireballBullets;cy=0;case 16:if(!(cy=cx.$length)?($throwRuntimeError("index out of range"),undefined):cx.$array[cx.$offset+cy]);da=new L.ptr(cz.VirtualGridX,cz.VirtualGridY,cz.DirX,cz.DirY,cz.VelX,cz.VelY,cz.Speed,cz.BlState,cz.FramesInBlState+1>>0,cz.BattleAttr,cz.Bullet);if(AN(da,b)){$s=18;continue;}$s=19;continue;case 18:if(AM(da,b)){$s=20;continue;}$s=21;continue;case 20:db=AQ(da.VirtualGridX,da.VirtualGridY);dc=db[0];dd=db[1];de=AQ(da.Bullet.HitboxSizeX,da.Bullet.HitboxSizeY);df=de[0];dg=de[1];dh=AY(dc,dd,df,dg,0.1,0.1,0.1,0.1,e,f,da,"FireballBullet");$s=23;case 23:if($c){$c=false;dh=dh.$blk();}if(dh&&dh.$blk!==undefined){break s;}di=dh;$r=c.Add(new CB([di]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg=$append(cg,di);da.BlState=1;if(!((da.BlState===cz.BlState))){da.FramesInBlState=0;}dj=da.VirtualGridX+da.VelX>>0;dk=da.VirtualGridY+da.VelY>>0;da.VirtualGridX=dj;da.VirtualGridY=dk;$s=22;continue;case 21:case 22:o=$append(o,da);case 19:cy++;$s=16;continue;case 17:dl=b.PlayersArr;dm=0;case 25:if(!(dm=dl.$length)?($throwRuntimeError("index out of range"),undefined):dl.$array[dl.$offset+dm]);dq=dp.JoinIndex;dr=((dn<0||dn>=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+dn]);ds=$assertType(dr.Shape,BS);dt=((dn<0||dn>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+dn]);dv=AV(dq,dp,dt,dr,ds,0.1,(du=dq-1>>0,((du<0||du>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+du])));$s=27;case 27:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}(dw=dq-1>>0,((dw<0||dw>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+dw]=dv));dx=((dn<0||dn>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+dn]);dy=false;dz=dr.Check(0,0,new BN([]));if(!(BO.nil===dz)){$s=28;continue;}$s=29;continue;case 28:ea=dz.Objects;eb=0;case 30:if(!(eb=ea.$length)?($throwRuntimeError("index out of range"),undefined):ea.$array[ea.$offset+eb]);ed=false;ee=false;ef=false;eg=ed;eh=ee;ei=ef;ej=ec.Data;if($assertType(ej,BQ,true)[1]){eh=true;}else if($assertType(ej,BK,true)[1]||$assertType(ej,BR,true)[1]){ei=true;}else{eg=true;}if(ei){eb++;$s=30;continue;}ek=$assertType(ec.Shape,BS);em=AI(0,0,ds,ek);$s=32;case 32:if($c){$c=false;em=em.$blk();}if(em&&em.$blk!==undefined){break s;}el=em;en=el[0];eo=el[1];ep=el[2];eq=el[3];if(!en){eb++;$s=30;continue;}er=eq.OverlapX*0+eq.OverlapY*-1;if(eh){es=(eq.Overlap-0.2)*eq.OverlapX;et=(eq.Overlap-0.2)*eq.OverlapY;eo=es;ep=et;}eu=(ev=dq-1>>0,((ev<0||ev>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+ev])).$get();ew=0;while(true){if(!(ew=eu.$length)?($throwRuntimeError("index out of range"),undefined):eu.$array[eu.$offset+ew]),C);ey=eo*ex.X+ep*ex.Y;if(eg||(eh&&0>ey)){eo=eo-(ey*ex.X);ep=ep-(ey*ex.Y);}ew++;}ez=dq-1>>0;((ez<0||ez>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+ez]).X=((ez<0||ez>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+ez]).X+(eo);fa=dq-1>>0;((fa<0||fa>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fa]).Y=((fa<0||fa>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fa]).Y+(ep);if(0.5=dp.VelY;if(fb){dt.VelY=0;dt.VelX=0;if(8===dt.CharacterState){dt.CharacterState=9;dt.FramesToRecover=dx.LayDownFramesToRecover;}else{fc=dp.CharacterState;if((fc===(8))||(fc===(4))||(fc===(5))||(fc===(16))){fd=0;fe=dp.ColliderRadius;ff=fd;fg=fe;fh=AQ(ff,fg);fi=fh[1];fj=dq-1>>0;((fj<0||fj>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fj]).Y=((fj<0||fj>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fj]).Y-(fi);}dt.CharacterState=0;dt.FramesToRecover=0;}}else{fk=(fl=Y[$Int32.keyFor(dt.CharacterState)],fl!==undefined?[fl.v,true]:[false,false]);fm=fk[1];if(fm){if(9===dt.CharacterState){if(0===dt.FramesToRecover){dt.CharacterState=10;dt.FramesToRecover=dx.GetUpFramesToRecover;}}else if(10===dt.CharacterState){if(0===dt.FramesToRecover){dt.CharacterState=0;dt.FramesInvinsible=dx.GetUpInvinsibleFrames;}}}}}if(dx.OnWallEnabled){if(dt.InAir){fn=(fo=W[$Int32.keyFor(dp.CharacterState)],fo!==undefined?[fo.v,true]:[false,false]);fp=fn[1];if(!fp){fq=(fr=dq-1>>0,((fr<0||fr>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+fr])).$get();fs=0;while(true){if(!(fs=fq.$length)?($throwRuntimeError("index out of range"),undefined):fq.$array[fq.$offset+fs]),C);fu=ft.X*1+ft.Y*0;fv=ft.X*-1+ft.Y*0;if(0.9>0));fx=((ft.Y>>0));dt.OnWallNormX=fw;dt.OnWallNormY=fx;break;}if(0.9>0));fz=((ft.Y>>0));dt.OnWallNormX=fy;dt.OnWallNormY=fz;break;}fs++;}if(!dp.OnWall&&dt.OnWall){dt.VelY=0;}}}if(!dt.OnWall){ga=0;gb=0;dt.OnWallNormX=ga;dt.OnWallNormY=gb;}}dm++;$s=25;continue;case 26:gc=cg;gd=0;case 33:if(!(gd=gc.$length)?($throwRuntimeError("index out of range"),undefined):gc.$array[gc.$offset+gd]);gf=ge.Check(0,0,new BN([]));ge.Space.Remove(new CB([ge]));gg=false;if(!(BO.nil===gf)){$s=35;continue;}$s=36;continue;case 35:gh=ge.Data;if($assertType(gh,BK,true)[1]){$s=37;continue;}if($assertType(gh,BR,true)[1]){$s=38;continue;}$s=39;continue;case 37:gi=gh.$val;gk=$assertType(ge.Shape,BS);gn=(gl=b.PlayersArr,gm=gi.BattleAttr.OffenderJoinIndex-1>>0,((gm<0||gm>=gl.$length)?($throwRuntimeError("index out of range"),undefined):gl.$array[gl.$offset+gm]));go=gf.Objects;gp=0;case 40:if(!(gp=go.$length)?($throwRuntimeError("index out of range"),undefined):go.$array[go.$offset+gp]);gr=$assertType(gq.Shape,BS);gs=gq.Data;if($assertType(gs,BQ,true)[1]){$s=42;continue;}$s=43;continue;case 42:gt=gs.$val;if(gi.BattleAttr.OffenderJoinIndex===gt.JoinIndex){gp++;$s=40;continue;}gv=AI(0,0,gk,gr);$s=44;case 44:if($c){$c=false;gv=gv.$blk();}if(gv&&gv.$blk!==undefined){break s;}gu=gv;gw=gu[0];if(!gw){gp++;$s=40;continue;}gg=true;gx=(gy=X[$Int32.keyFor(gt.CharacterState)],gy!==undefined?[gy.v,true]:[false,false]);gz=gx[1];if(gz){gp++;$s=40;continue;}if(0gn.DirX){ha=-ha;}hb=$imul(ha,gi.Bullet.PushbackVelX);hc=gi.Bullet.PushbackVelY;hd=hb;he=hc;hg=(hf=gt.JoinIndex-1>>0,((hf<0||hf>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+hf]));hg.VelX=hd;hg.VelY=he;if(gi.Bullet.BlowUp){hg.CharacterState=8;}else{hg.CharacterState=3;}hi=(hh=gt.JoinIndex-1>>0,((hh<0||hh>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+hh])).FramesToRecover;if(gi.Bullet.HitStunFrames>hi){hg.FramesToRecover=gi.Bullet.HitStunFrames;}case 43:gp++;$s=40;continue;case 41:$s=39;continue;case 38:gj=gh.$val;hj=$assertType(ge.Shape,BS);hm=(hk=b.PlayersArr,hl=gj.BattleAttr.OffenderJoinIndex-1>>0,((hl<0||hl>=hk.$length)?($throwRuntimeError("index out of range"),undefined):hk.$array[hk.$offset+hl]));hn=gf.Objects;ho=0;case 45:if(!(ho=hn.$length)?($throwRuntimeError("index out of range"),undefined):hn.$array[hn.$offset+ho]);hq=$assertType(hp.Shape,BS);hr=hp.Data;if($assertType(hr,BQ,true)[1]){$s=47;continue;}$s=48;continue;case 47:hs=hr.$val;if(gj.BattleAttr.OffenderJoinIndex===hs.JoinIndex){ho++;$s=45;continue;}hv=AI(0,0,hj,hq);$s=50;case 50:if($c){$c=false;hv=hv.$blk();}if(hv&&hv.$blk!==undefined){break s;}hu=hv;hw=hu[0];if(!hw){ho++;$s=45;continue;}gg=true;hx=(hy=X[$Int32.keyFor(hs.CharacterState)],hy!==undefined?[hy.v,true]:[false,false]);hz=hx[1];if(hz){ho++;$s=45;continue;}if(0hm.DirX){ia=-ia;}ib=$imul(ia,gj.Bullet.PushbackVelX);ic=gj.Bullet.PushbackVelY;id=ib;ie=ic;ih=(ig=hs.JoinIndex-1>>0,((ig<0||ig>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+ig]));ih.VelX=id;ih.VelY=ie;if(gj.Bullet.BlowUp){ih.CharacterState=8;}else{ih.CharacterState=3;}ij=(ii=hs.JoinIndex-1>>0,((ii<0||ii>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+ii])).FramesToRecover;if(gj.Bullet.HitStunFrames>ij){ih.FramesToRecover=gj.Bullet.HitStunFrames;}$s=49;continue;case 48:ht=hr;gg=true;case 49:ho++;$s=45;continue;case 46:case 39:case 36:if(gg){ik=ge.Data;if($assertType(ik,BK,true)[1]){il=ik.$val;il.BlState=2;il.FramesInBlState=0;}else if($assertType(ik,BR,true)[1]){im=ik.$val;im.BlState=2;im.FramesInBlState=0;}}gd++;$s=33;continue;case 34:io=b.PlayersArr;ip=0;while(true){if(!(ip=io.$length)?($throwRuntimeError("index out of range"),undefined):io.$array[io.$offset+ip]);is=ir.JoinIndex;it=((iq<0||iq>=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+iq]);iu=((iq<0||iq>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+iq]);iv=AT(it.X-(iw=is-1>>0,((iw<0||iw>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+iw])).X,it.Y-(ix=is-1>>0,((ix<0||ix>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+ix])).Y,it.W*0.5,it.H*0.5,0,0,0,0,e,f);iu.VirtualGridX=iv[0];iu.VirtualGridY=iv[1];if(iu.InAir){iy=iu.CharacterState;iz=iy;if((iz===(0))||(iz===(1))){if(iu.OnWall){iu.CharacterState=16;}else if(((iq<0||iq>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+iq])||(5===ir.CharacterState)){iu.CharacterState=5;}else{iu.CharacterState=4;}}else if(iz===(2)){iu.CharacterState=6;}else if(iz===(3)){iu.CharacterState=7;}}if(!((iu.CharacterState===ir.CharacterState))){iu.FramesInChState=0;}ja=(jb=Y[$Int32.keyFor(iu.CharacterState)],jb!==undefined?[jb.v,true]:[false,false]);jc=ja[1];if(jc){iu.ActiveSkillId=-1;iu.ActiveSkillHit=-1;}ip++;}jd=ay;je=0;while(true){if(!(je=jd.$length)?($throwRuntimeError("index out of range"),undefined):jd.$array[jd.$offset+je]);jf.Space.Remove(new CB([jf]));je++;}$s=-1;return new N.ptr(b.Id+1>>0,i,new $Int64(0,0),n,o,new $Uint64(0,0),false,s);}return;}var $f={$blk:AX,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame=AX;AY=function(a,b,c,d,e,f,g,h,i,j,k,l){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g,h,i,j,k,l});$s=$s||0;s:while(true){switch($s){case 0:m=AR(a,b,c*0.5,d*0.5,e,f,g,h,i,j);n=m[0];o=m[1];p=AZ(n,o,g+c+h,f+d+e,k,l);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=2;case 2:return q;}return;}var $f={$blk:AY,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.GenerateRectCollider=AY;AZ=function(a,b,c,d,e,f){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=B.NewObject(a,b,c,d,new BN([f]));h=B.NewRectangle(0,0,c,d);$r=g.SetShape(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g.Data=e;$s=-1;return g;}return;}var $f={$blk:AZ,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BA=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=BB(a);g=0;h=0;i=g;j=h;k=B.NewConvexPolygon(CC.nil);l=f.Points;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=f.Points;q=0;while(true){if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(n===r){q++;continue;}if(A.Abs(s.X-o.X)>i){i=A.Abs(s.X-o.X);}if(A.Abs(s.Y-o.Y)>j){j=A.Abs(s.Y-o.Y);}q++;}m++;}t=0;while(true){if(!(t=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+t]));k.AddPoints(new CC([v.X,v.Y]));t=t+(1)>>0;}w=B.NewObject(f.Anchor.X+b,f.Anchor.Y+c,i,j,new BN([e]));$r=w.SetShape(k);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w.Data=d;$s=-1;return w;}return;}var $f={$blk:BA,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};$pkg.GenerateConvexPolygonCollider=BA;BB=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=new C.ptr(1.7e+308,1.7e+308);c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e.X=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);(k=f.Points,((i<0||i>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]=new C.ptr(j.X-b.X,j.Y-b.Y)));h++;}return f;};$pkg.AlignPolygon2DToBoundingBox=BB;BC=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;return new K.ptr(u,v,new J.ptr(a,b,c,t),new I.ptr(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,w,x,false));};$pkg.NewMeleeBullet=BC;BD=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;return new L.ptr(u,v,w,x,y,z,aa,0,0,new J.ptr(a,b,c,t),new I.ptr(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,ad,ae,false));};$pkg.NewFireballBullet=BD;CH.methods=[{prop:"Put",name:"Put",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Pop",name:"Pop",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"GetArrIdxByOffset",name:"GetArrIdxByOffset",pkg:"",typ:$funcType([$Int32],[$Int32],false)},{prop:"GetByOffset",name:"GetByOffset",pkg:"",typ:$funcType([$Int32],[$emptyInterface],false)},{prop:"GetByFrameId",name:"GetByFrameId",pkg:"",typ:$funcType([$Int32],[$emptyInterface],false)},{prop:"SetByFrameId",name:"SetByFrameId",pkg:"",typ:$funcType([$emptyInterface,$Int32],[$Int32,$Int32,$Int32],false)}];C.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""}]);D.init("",[{prop:"Anchor",name:"Anchor",embedded:false,exported:true,typ:CD,tag:""},{prop:"Points",name:"Points",embedded:false,exported:true,typ:CE,tag:""}]);E.init("",[{prop:"Id",name:"Id",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridX",name:"VirtualGridX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridY",name:"VirtualGridY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirX",name:"DirX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirY",name:"DirY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelX",name:"VelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelY",name:"VelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleState",name:"BattleState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JoinIndex",name:"JoinIndex",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ColliderRadius",name:"ColliderRadius",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Removed",name:"Removed",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Score",name:"Score",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"LastMoveGmtMillis",name:"LastMoveGmtMillis",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesToRecover",name:"FramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInChState",name:"FramesInChState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Hp",name:"Hp",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"MaxHp",name:"MaxHp",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CharacterState",name:"CharacterState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"InAir",name:"InAir",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWall",name:"OnWall",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWallNormX",name:"OnWallNormX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OnWallNormY",name:"OnWallNormY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ActiveSkillId",name:"ActiveSkillId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ActiveSkillHit",name:"ActiveSkillHit",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInvinsible",name:"FramesInvinsible",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BulletTeamId",name:"BulletTeamId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ChCollisionTeamId",name:"ChCollisionTeamId",embedded:false,exported:true,typ:$Int32,tag:""}]);F.init("",[{prop:"Dx",name:"Dx",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Dy",name:"Dy",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BtnALevel",name:"BtnALevel",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BtnBLevel",name:"BtnBLevel",embedded:false,exported:true,typ:$Int32,tag:""}]);H.init("",[{prop:"Boundary",name:"Boundary",embedded:false,exported:true,typ:CF,tag:""}]);I.init("",[{prop:"StartupFrames",name:"StartupFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancellableStFrame",name:"CancellableStFrame",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancellableEdFrame",name:"CancellableEdFrame",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ActiveFrames",name:"ActiveFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitStunFrames",name:"HitStunFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlockStunFrames",name:"BlockStunFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PushbackVelX",name:"PushbackVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PushbackVelY",name:"PushbackVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Damage",name:"Damage",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SelfLockVelX",name:"SelfLockVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SelfLockVelY",name:"SelfLockVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxOffsetX",name:"HitboxOffsetX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxOffsetY",name:"HitboxOffsetY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxSizeX",name:"HitboxSizeX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxSizeY",name:"HitboxSizeY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlowUp",name:"BlowUp",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"ExplosionFrames",name:"ExplosionFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SpeciesId",name:"SpeciesId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancelTransit",name:"CancelTransit",embedded:false,exported:true,typ:CG,tag:""}]);J.init("",[{prop:"BulletLocalId",name:"BulletLocalId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OriginatedRenderFrameId",name:"OriginatedRenderFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OffenderJoinIndex",name:"OffenderJoinIndex",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"TeamId",name:"TeamId",embedded:false,exported:true,typ:$Int32,tag:""}]);K.init("",[{prop:"BlState",name:"BlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInBlState",name:"FramesInBlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleAttr",name:"BattleAttr",embedded:false,exported:true,typ:BH,tag:""},{prop:"Bullet",name:"Bullet",embedded:false,exported:true,typ:BI,tag:""}]);L.init("",[{prop:"VirtualGridX",name:"VirtualGridX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridY",name:"VirtualGridY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirX",name:"DirX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirY",name:"DirY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelX",name:"VelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelY",name:"VelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlState",name:"BlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInBlState",name:"FramesInBlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleAttr",name:"BattleAttr",embedded:false,exported:true,typ:BH,tag:""},{prop:"Bullet",name:"Bullet",embedded:false,exported:true,typ:BI,tag:""}]);M.init("",[{prop:"BattleLocalId",name:"BattleLocalId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFrames",name:"RecoveryFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFramesOnBlock",name:"RecoveryFramesOnBlock",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFramesOnHit",name:"RecoveryFramesOnHit",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ReleaseTriggerType",name:"ReleaseTriggerType",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BoundChState",name:"BoundChState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Hits",name:"Hits",embedded:false,exported:true,typ:BG,tag:""}]);N.init("",[{prop:"Id",name:"Id",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PlayersArr",name:"PlayersArr",embedded:false,exported:true,typ:BV,tag:""},{prop:"CountdownNanos",name:"CountdownNanos",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"MeleeBullets",name:"MeleeBullets",embedded:false,exported:true,typ:BW,tag:""},{prop:"FireballBullets",name:"FireballBullets",embedded:false,exported:true,typ:BX,tag:""},{prop:"BackendUnconfirmedMask",name:"BackendUnconfirmedMask",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"ShouldForceResync",name:"ShouldForceResync",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"BulletLocalIdCounter",name:"BulletLocalIdCounter",embedded:false,exported:true,typ:$Int32,tag:""}]);O.init("",[{prop:"InputFrameId",name:"InputFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"InputList",name:"InputList",embedded:false,exported:true,typ:BU,tag:""},{prop:"ConfirmedList",name:"ConfirmedList",embedded:false,exported:true,typ:$Uint64,tag:""}]);P.init("",[{prop:"FlAct",name:"FlAct",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"FrAct",name:"FrAct",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""}]);Q.init("",[{prop:"Ed",name:"Ed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"St",name:"St",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"EdFrameId",name:"EdFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"StFrameId",name:"StFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"N",name:"N",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Cnt",name:"Cnt",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Eles",name:"Eles",embedded:false,exported:true,typ:BG,tag:""}]);S.init([$Int,BQ],[$Int],false);T.init("",[{prop:"SpeciesId",name:"SpeciesId",embedded:false,exported:true,typ:$Int,tag:""},{prop:"SpeciesName",name:"SpeciesName",embedded:false,exported:true,typ:$String,tag:""},{prop:"InAirIdleFrameIdxTurningPoint",name:"InAirIdleFrameIdxTurningPoint",embedded:false,exported:true,typ:$Int,tag:""},{prop:"InAirIdleFrameIdxTurnedCycle",name:"InAirIdleFrameIdxTurnedCycle",embedded:false,exported:true,typ:$Int,tag:""},{prop:"LayDownFrames",name:"LayDownFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"LayDownFramesToRecover",name:"LayDownFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"GetUpInvinsibleFrames",name:"GetUpInvinsibleFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"GetUpFramesToRecover",name:"GetUpFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JumpingInitVelY",name:"JumpingInitVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JumpingFramesToRecover",name:"JumpingFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DashingEnabled",name:"DashingEnabled",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWallEnabled",name:"OnWallEnabled",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"WallJumpingFramesToRecover",name:"WallJumpingFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallJumpingInitVelX",name:"WallJumpingInitVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallJumpingInitVelY",name:"WallJumpingInitVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallSlidingVelY",name:"WallSlidingVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"TurnAroundFramesToRecover",name:"TurnAroundFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SkillMapper",name:"SkillMapper",embedded:false,exported:true,typ:S,tag:""}]);AH.init("",[{prop:"Overlap",name:"Overlap",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"OverlapX",name:"OverlapX",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"OverlapY",name:"OverlapY",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"AContainedInB",name:"AContainedInB",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"BContainedInA",name:"BContainedInA",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Axis",name:"Axis",embedded:false,exported:true,typ:B.Vector,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.DIRECTION_DECODER=new BF([new BE([0,0]),new BE([0,2]),new BE([0,-2]),new BE([2,0]),new BE([-2,0]),new BE([1,1]),new BE([-1,-1]),new BE([1,-1]),new BE([-1,1])]);U=$makeMap($Int.keyFor,[{k:1,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,5,-1,1200,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:2}])))]))},{k:2,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,22,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:3}])))]))},{k:3,v:new M.ptr(0,50,50,50,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(8,0,0,30,999999999,9,200,700,10,50,500,1600,800,3200,3200,true,9,1,false))]))},{k:4,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,5,-1,1200,0,2400,3200,false,15,2,$makeMap($Int.keyFor,[{k:1,v:5}])))]))},{k:5,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,23,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,15,2,$makeMap($Int.keyFor,[{k:1,v:6}])))]))},{k:6,v:new M.ptr(0,45,45,45,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(8,0,0,28,999999999,9,200,300,10,-1,-1,2400,0,3200,3200,true,15,2,false))]))},{k:7,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,-1,-1,1200,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:8}])))]))},{k:8,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,22,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:9}])))]))},{k:9,v:new M.ptr(0,40,40,40,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,0,0,30,999999999,9,200,400,10,100,-1,1000,0,3200,3200,true,9,1,false))]))},{k:10,v:new M.ptr(0,40,40,40,1,13,new BG([new L.ptr(0,0,0,0,0,0,500,0,0,BH.nil,new I.ptr(12,0,0,999999999,15,9,200,0,20,-1,-1,2400,500,4800,3200,false,15,1,false))]))},{k:11,v:new M.ptr(0,60,60,60,1,14,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,25,999999999,9,200,700,30,100,800,800,0,4000,6400,true,15,3,false))]))},{k:255,v:new M.ptr(0,30,30,30,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,20,18,9,50,0,5,-1,-1,1200,0,3200,2400,false,9,1,false))]))},{k:256,v:new M.ptr(0,20,20,20,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,10,15,9,50,0,5,-1,-1,1200,0,3200,2400,false,15,2,false))]))},{k:257,v:new M.ptr(0,30,30,30,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,20,18,9,50,0,5,-1,-1,1200,0,3200,2400,false,9,1,false))]))}]);$pkg.Characters=$makeMap($Int.keyFor,[{k:0,v:new T.ptr(0,"MonkGirl",11,1,16,16,10,27,250,800,2,false,false,0,0,0,0,4,(function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;if(1===a){if(0===b.FramesToRecover){if(b.InAir){return 255;}else{return 1;}}else{c=(d=U[$Int.keyFor(((b.ActiveSkillId>>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=A.MakeFullWrapper(f);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=$append(c,g);e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:O,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.GetCollisionSpaceObjsJs=O;P=function(a,b,c,d,e,f,g,h){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g,h});$s=$s||0;s:while(true){switch($s){case 0:i=0.1;j=0.1;k=0.1;l=0.1;m=i;n=j;o=k;p=l;q=B.GenerateRectCollider(a,b,c,d,m,n,o,p,e,f,g,h);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=A.MakeFullWrapper(q);$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=3;case 3:return s;}return;}var $f={$blk:P,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};$pkg.GenerateRectColliderJs=P;Q=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=B.GenerateConvexPolygonCollider(a,b,c,d,e);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=A.MakeFullWrapper(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:Q,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.GenerateConvexPolygonColliderJs=Q;R=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$makeSlice(AF,a.$length,a.$length);c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);h=A.MakeFullWrapper((g=B.Characters[$Int.keyFor(f)],g!==undefined?g.v:AG.nil));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]=h);d++;$s=1;continue;case 2:$s=-1;return b;}return;}var $f={$blk:R,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.GetCharacterConfigsOrderedByJoinIndex=R;S=function(a,b,c,d,e,f,g){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:h=B.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(a,b,c,d,e,f,g);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=A.MakeFullWrapper(h);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrameJs=S;T=function(){$global.gopkgs=$externalize($makeMap($String.keyFor,[{k:"NewVec2DJs",v:new AH(G)},{k:"NewPolygon2DJs",v:new AI(H)},{k:"NewBarrierJs",v:new AJ(I)},{k:"NewPlayerDownsyncJs",v:new AK(J)},{k:"NewMeleeBulletJs",v:new AL(K)},{k:"NewFireballBulletJs",v:new AM(L)},{k:"NewNpcPatrolCue",v:new AN(M)},{k:"NewRoomDownsyncFrameJs",v:new AO(N)},{k:"NewCollisionSpaceJs",v:new AP(F)},{k:"NewInputFrameDownsync",v:new AQ(D)},{k:"NewRingBufferJs",v:new AR(E)},{k:"GenerateRectColliderJs",v:new AS(P)},{k:"GenerateConvexPolygonColliderJs",v:new AT(Q)},{k:"GetCollisionSpaceObjsJs",v:new AV(O)},{k:"WorldToPolygonColliderBLPos",v:new AW(B.WorldToPolygonColliderBLPos)},{k:"PolygonColliderBLToWorldPos",v:new AW(B.PolygonColliderBLToWorldPos)},{k:"WorldToVirtualGridPos",v:new AX(B.WorldToVirtualGridPos)},{k:"VirtualGridToWorldPos",v:new AY(B.VirtualGridToWorldPos)},{k:"GetCharacterConfigsOrderedByJoinIndex",v:new BA(R)},{k:"ApplyInputFrameDownsyncDynamicsOnSingleRenderFrameJs",v:new BG(S)},{k:"ConvertToDelayedInputFrameId",v:new BH(B.ConvertToDelayedInputFrameId)},{k:"ConvertToNoDelayInputFrameId",v:new BH(B.ConvertToNoDelayInputFrameId)},{k:"ConvertToFirstUsedRenderFrameId",v:new BH(B.ConvertToFirstUsedRenderFrameId)},{k:"ConvertToLastUsedRenderFrameId",v:new BH(B.ConvertToLastUsedRenderFrameId)},{k:"ShouldGenerateInputFrameUpsync",v:new BI(B.ShouldGenerateInputFrameUpsync)},{k:"IsMeleeBulletActive",v:new BJ(B.IsMeleeBulletActive)},{k:"IsMeleeBulletAlive",v:new BJ(B.IsMeleeBulletAlive)},{k:"IsFireballBulletActive",v:new BK(B.IsFireballBulletActive)},{k:"IsFireballBulletAlive",v:new BK(B.IsFireballBulletAlive)}]),BL);};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($pkg===$mainPkg){T();$mainFinished=true;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); +$packages["jsexport/battle"]=(function(){var $pkg={},$init,A,B,C,D,E,F,H,I,J,K,L,M,N,O,P,Q,S,T,AH,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,U,V,W,X,Y,R,Z,AB,AC,AD,AE,AF,AG,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AV,AW,AX,AY,AZ,BA,BB,BC,BD;A=$packages["math"];B=$packages["resolv"];C=$pkg.Vec2D=$newType(0,$kindStruct,"battle.Vec2D",true,"jsexport/battle",true,function(X_,Y_){this.$val=this;if(arguments.length===0){this.X=0;this.Y=0;return;}this.X=X_;this.Y=Y_;});D=$pkg.Polygon2D=$newType(0,$kindStruct,"battle.Polygon2D",true,"jsexport/battle",true,function(Anchor_,Points_){this.$val=this;if(arguments.length===0){this.Anchor=CD.nil;this.Points=CE.nil;return;}this.Anchor=Anchor_;this.Points=Points_;});E=$pkg.PlayerDownsync=$newType(0,$kindStruct,"battle.PlayerDownsync",true,"jsexport/battle",true,function(Id_,VirtualGridX_,VirtualGridY_,DirX_,DirY_,VelX_,VelY_,Speed_,BattleState_,JoinIndex_,ColliderRadius_,Removed_,Score_,LastMoveGmtMillis_,FramesToRecover_,FramesInChState_,Hp_,MaxHp_,CharacterState_,InAir_,OnWall_,OnWallNormX_,OnWallNormY_,CapturedByInertia_,ActiveSkillId_,ActiveSkillHit_,FramesInvinsible_,BulletTeamId_,ChCollisionTeamId_){this.$val=this;if(arguments.length===0){this.Id=0;this.VirtualGridX=0;this.VirtualGridY=0;this.DirX=0;this.DirY=0;this.VelX=0;this.VelY=0;this.Speed=0;this.BattleState=0;this.JoinIndex=0;this.ColliderRadius=0;this.Removed=false;this.Score=0;this.LastMoveGmtMillis=0;this.FramesToRecover=0;this.FramesInChState=0;this.Hp=0;this.MaxHp=0;this.CharacterState=0;this.InAir=false;this.OnWall=false;this.OnWallNormX=0;this.OnWallNormY=0;this.CapturedByInertia=false;this.ActiveSkillId=0;this.ActiveSkillHit=0;this.FramesInvinsible=0;this.BulletTeamId=0;this.ChCollisionTeamId=0;return;}this.Id=Id_;this.VirtualGridX=VirtualGridX_;this.VirtualGridY=VirtualGridY_;this.DirX=DirX_;this.DirY=DirY_;this.VelX=VelX_;this.VelY=VelY_;this.Speed=Speed_;this.BattleState=BattleState_;this.JoinIndex=JoinIndex_;this.ColliderRadius=ColliderRadius_;this.Removed=Removed_;this.Score=Score_;this.LastMoveGmtMillis=LastMoveGmtMillis_;this.FramesToRecover=FramesToRecover_;this.FramesInChState=FramesInChState_;this.Hp=Hp_;this.MaxHp=MaxHp_;this.CharacterState=CharacterState_;this.InAir=InAir_;this.OnWall=OnWall_;this.OnWallNormX=OnWallNormX_;this.OnWallNormY=OnWallNormY_;this.CapturedByInertia=CapturedByInertia_;this.ActiveSkillId=ActiveSkillId_;this.ActiveSkillHit=ActiveSkillHit_;this.FramesInvinsible=FramesInvinsible_;this.BulletTeamId=BulletTeamId_;this.ChCollisionTeamId=ChCollisionTeamId_;});F=$pkg.InputFrameDecoded=$newType(0,$kindStruct,"battle.InputFrameDecoded",true,"jsexport/battle",true,function(Dx_,Dy_,BtnALevel_,BtnBLevel_){this.$val=this;if(arguments.length===0){this.Dx=0;this.Dy=0;this.BtnALevel=0;this.BtnBLevel=0;return;}this.Dx=Dx_;this.Dy=Dy_;this.BtnALevel=BtnALevel_;this.BtnBLevel=BtnBLevel_;});H=$pkg.Barrier=$newType(0,$kindStruct,"battle.Barrier",true,"jsexport/battle",true,function(Boundary_){this.$val=this;if(arguments.length===0){this.Boundary=CF.nil;return;}this.Boundary=Boundary_;});I=$pkg.BulletConfig=$newType(0,$kindStruct,"battle.BulletConfig",true,"jsexport/battle",true,function(StartupFrames_,CancellableStFrame_,CancellableEdFrame_,ActiveFrames_,HitStunFrames_,BlockStunFrames_,PushbackVelX_,PushbackVelY_,Damage_,SelfLockVelX_,SelfLockVelY_,HitboxOffsetX_,HitboxOffsetY_,HitboxSizeX_,HitboxSizeY_,BlowUp_,ExplosionFrames_,SpeciesId_,CancelTransit_){this.$val=this;if(arguments.length===0){this.StartupFrames=0;this.CancellableStFrame=0;this.CancellableEdFrame=0;this.ActiveFrames=0;this.HitStunFrames=0;this.BlockStunFrames=0;this.PushbackVelX=0;this.PushbackVelY=0;this.Damage=0;this.SelfLockVelX=0;this.SelfLockVelY=0;this.HitboxOffsetX=0;this.HitboxOffsetY=0;this.HitboxSizeX=0;this.HitboxSizeY=0;this.BlowUp=false;this.ExplosionFrames=0;this.SpeciesId=0;this.CancelTransit=false;return;}this.StartupFrames=StartupFrames_;this.CancellableStFrame=CancellableStFrame_;this.CancellableEdFrame=CancellableEdFrame_;this.ActiveFrames=ActiveFrames_;this.HitStunFrames=HitStunFrames_;this.BlockStunFrames=BlockStunFrames_;this.PushbackVelX=PushbackVelX_;this.PushbackVelY=PushbackVelY_;this.Damage=Damage_;this.SelfLockVelX=SelfLockVelX_;this.SelfLockVelY=SelfLockVelY_;this.HitboxOffsetX=HitboxOffsetX_;this.HitboxOffsetY=HitboxOffsetY_;this.HitboxSizeX=HitboxSizeX_;this.HitboxSizeY=HitboxSizeY_;this.BlowUp=BlowUp_;this.ExplosionFrames=ExplosionFrames_;this.SpeciesId=SpeciesId_;this.CancelTransit=CancelTransit_;});J=$pkg.BulletBattleAttr=$newType(0,$kindStruct,"battle.BulletBattleAttr",true,"jsexport/battle",true,function(BulletLocalId_,OriginatedRenderFrameId_,OffenderJoinIndex_,TeamId_){this.$val=this;if(arguments.length===0){this.BulletLocalId=0;this.OriginatedRenderFrameId=0;this.OffenderJoinIndex=0;this.TeamId=0;return;}this.BulletLocalId=BulletLocalId_;this.OriginatedRenderFrameId=OriginatedRenderFrameId_;this.OffenderJoinIndex=OffenderJoinIndex_;this.TeamId=TeamId_;});K=$pkg.MeleeBullet=$newType(0,$kindStruct,"battle.MeleeBullet",true,"jsexport/battle",true,function(BlState_,FramesInBlState_,BattleAttr_,Bullet_){this.$val=this;if(arguments.length===0){this.BlState=0;this.FramesInBlState=0;this.BattleAttr=BH.nil;this.Bullet=BI.nil;return;}this.BlState=BlState_;this.FramesInBlState=FramesInBlState_;this.BattleAttr=BattleAttr_;this.Bullet=Bullet_;});L=$pkg.FireballBullet=$newType(0,$kindStruct,"battle.FireballBullet",true,"jsexport/battle",true,function(VirtualGridX_,VirtualGridY_,DirX_,DirY_,VelX_,VelY_,Speed_,BlState_,FramesInBlState_,BattleAttr_,Bullet_){this.$val=this;if(arguments.length===0){this.VirtualGridX=0;this.VirtualGridY=0;this.DirX=0;this.DirY=0;this.VelX=0;this.VelY=0;this.Speed=0;this.BlState=0;this.FramesInBlState=0;this.BattleAttr=BH.nil;this.Bullet=BI.nil;return;}this.VirtualGridX=VirtualGridX_;this.VirtualGridY=VirtualGridY_;this.DirX=DirX_;this.DirY=DirY_;this.VelX=VelX_;this.VelY=VelY_;this.Speed=Speed_;this.BlState=BlState_;this.FramesInBlState=FramesInBlState_;this.BattleAttr=BattleAttr_;this.Bullet=Bullet_;});M=$pkg.Skill=$newType(0,$kindStruct,"battle.Skill",true,"jsexport/battle",true,function(BattleLocalId_,RecoveryFrames_,RecoveryFramesOnBlock_,RecoveryFramesOnHit_,ReleaseTriggerType_,BoundChState_,Hits_){this.$val=this;if(arguments.length===0){this.BattleLocalId=0;this.RecoveryFrames=0;this.RecoveryFramesOnBlock=0;this.RecoveryFramesOnHit=0;this.ReleaseTriggerType=0;this.BoundChState=0;this.Hits=BG.nil;return;}this.BattleLocalId=BattleLocalId_;this.RecoveryFrames=RecoveryFrames_;this.RecoveryFramesOnBlock=RecoveryFramesOnBlock_;this.RecoveryFramesOnHit=RecoveryFramesOnHit_;this.ReleaseTriggerType=ReleaseTriggerType_;this.BoundChState=BoundChState_;this.Hits=Hits_;});N=$pkg.RoomDownsyncFrame=$newType(0,$kindStruct,"battle.RoomDownsyncFrame",true,"jsexport/battle",true,function(Id_,PlayersArr_,CountdownNanos_,MeleeBullets_,FireballBullets_,BackendUnconfirmedMask_,ShouldForceResync_,BulletLocalIdCounter_){this.$val=this;if(arguments.length===0){this.Id=0;this.PlayersArr=BV.nil;this.CountdownNanos=new $Int64(0,0);this.MeleeBullets=BW.nil;this.FireballBullets=BX.nil;this.BackendUnconfirmedMask=new $Uint64(0,0);this.ShouldForceResync=false;this.BulletLocalIdCounter=0;return;}this.Id=Id_;this.PlayersArr=PlayersArr_;this.CountdownNanos=CountdownNanos_;this.MeleeBullets=MeleeBullets_;this.FireballBullets=FireballBullets_;this.BackendUnconfirmedMask=BackendUnconfirmedMask_;this.ShouldForceResync=ShouldForceResync_;this.BulletLocalIdCounter=BulletLocalIdCounter_;});O=$pkg.InputFrameDownsync=$newType(0,$kindStruct,"battle.InputFrameDownsync",true,"jsexport/battle",true,function(InputFrameId_,InputList_,ConfirmedList_){this.$val=this;if(arguments.length===0){this.InputFrameId=0;this.InputList=BU.nil;this.ConfirmedList=new $Uint64(0,0);return;}this.InputFrameId=InputFrameId_;this.InputList=InputList_;this.ConfirmedList=ConfirmedList_;});P=$pkg.NpcPatrolCue=$newType(0,$kindStruct,"battle.NpcPatrolCue",true,"jsexport/battle",true,function(FlAct_,FrAct_,X_,Y_){this.$val=this;if(arguments.length===0){this.FlAct=new $Uint64(0,0);this.FrAct=new $Uint64(0,0);this.X=0;this.Y=0;return;}this.FlAct=FlAct_;this.FrAct=FrAct_;this.X=X_;this.Y=Y_;});Q=$pkg.RingBuffer=$newType(0,$kindStruct,"battle.RingBuffer",true,"jsexport/battle",true,function(Ed_,St_,EdFrameId_,StFrameId_,N_,Cnt_,Eles_){this.$val=this;if(arguments.length===0){this.Ed=0;this.St=0;this.EdFrameId=0;this.StFrameId=0;this.N=0;this.Cnt=0;this.Eles=BG.nil;return;}this.Ed=Ed_;this.St=St_;this.EdFrameId=EdFrameId_;this.StFrameId=StFrameId_;this.N=N_;this.Cnt=Cnt_;this.Eles=Eles_;});S=$pkg.SkillMapperType=$newType(4,$kindFunc,"battle.SkillMapperType",true,"jsexport/battle",true,null);T=$pkg.CharacterConfig=$newType(0,$kindStruct,"battle.CharacterConfig",true,"jsexport/battle",true,function(SpeciesId_,SpeciesName_,InAirIdleFrameIdxTurningPoint_,InAirIdleFrameIdxTurnedCycle_,LayDownFrames_,LayDownFramesToRecover_,GetUpInvinsibleFrames_,GetUpFramesToRecover_,Speed_,JumpingInitVelY_,JumpingFramesToRecover_,DashingEnabled_,OnWallEnabled_,WallJumpingFramesToRecover_,WallJumpingInitVelX_,WallJumpingInitVelY_,WallSlidingVelY_,InertiaFramesToRecover_,SkillMapper_){this.$val=this;if(arguments.length===0){this.SpeciesId=0;this.SpeciesName="";this.InAirIdleFrameIdxTurningPoint=0;this.InAirIdleFrameIdxTurnedCycle=0;this.LayDownFrames=0;this.LayDownFramesToRecover=0;this.GetUpInvinsibleFrames=0;this.GetUpFramesToRecover=0;this.Speed=0;this.JumpingInitVelY=0;this.JumpingFramesToRecover=0;this.DashingEnabled=false;this.OnWallEnabled=false;this.WallJumpingFramesToRecover=0;this.WallJumpingInitVelX=0;this.WallJumpingInitVelY=0;this.WallSlidingVelY=0;this.InertiaFramesToRecover=0;this.SkillMapper=$throwNilPointerError;return;}this.SpeciesId=SpeciesId_;this.SpeciesName=SpeciesName_;this.InAirIdleFrameIdxTurningPoint=InAirIdleFrameIdxTurningPoint_;this.InAirIdleFrameIdxTurnedCycle=InAirIdleFrameIdxTurnedCycle_;this.LayDownFrames=LayDownFrames_;this.LayDownFramesToRecover=LayDownFramesToRecover_;this.GetUpInvinsibleFrames=GetUpInvinsibleFrames_;this.GetUpFramesToRecover=GetUpFramesToRecover_;this.Speed=Speed_;this.JumpingInitVelY=JumpingInitVelY_;this.JumpingFramesToRecover=JumpingFramesToRecover_;this.DashingEnabled=DashingEnabled_;this.OnWallEnabled=OnWallEnabled_;this.WallJumpingFramesToRecover=WallJumpingFramesToRecover_;this.WallJumpingInitVelX=WallJumpingInitVelX_;this.WallJumpingInitVelY=WallJumpingInitVelY_;this.WallSlidingVelY=WallSlidingVelY_;this.InertiaFramesToRecover=InertiaFramesToRecover_;this.SkillMapper=SkillMapper_;});AH=$pkg.SatResult=$newType(0,$kindStruct,"battle.SatResult",true,"jsexport/battle",true,function(Overlap_,OverlapX_,OverlapY_,AContainedInB_,BContainedInA_,Axis_){this.$val=this;if(arguments.length===0){this.Overlap=0;this.OverlapX=0;this.OverlapY=0;this.AContainedInB=false;this.BContainedInA=false;this.Axis=B.Vector.nil;return;}this.Overlap=Overlap_;this.OverlapX=OverlapX_;this.OverlapY=OverlapY_;this.AContainedInB=AContainedInB_;this.BContainedInA=BContainedInA_;this.Axis=Axis_;});BE=$sliceType($Int32);BF=$sliceType(BE);BG=$sliceType($emptyInterface);BH=$ptrType(J);BI=$ptrType(I);BJ=$ptrType(M);BK=$ptrType(K);BL=$ptrType(AH);BM=$sliceType(C);BN=$sliceType($String);BO=$ptrType(B.Collision);BP=$ptrType(BM);BQ=$ptrType(E);BR=$ptrType(L);BS=$ptrType(B.ConvexPolygon);BT=$ptrType(O);BU=$sliceType($Uint64);BV=$sliceType(BQ);BW=$sliceType(BK);BX=$sliceType(BR);BY=$sliceType(BP);BZ=$sliceType($Bool);CA=$ptrType(B.Object);CB=$sliceType(CA);CC=$sliceType($Float64);CD=$ptrType(C);CE=$sliceType(CD);CF=$ptrType(D);CG=$mapType($Int,$Int);CH=$ptrType(Q);R=function(a){var a;return new Q.ptr(0,0,0,0,a,0,$makeSlice(BG,a));};$pkg.NewRingBuffer=R;Q.ptr.prototype.Put=function(a){var a,b,c,d;b=this;while(true){if(!(0=b.N)){break;}b.Pop();}(c=b.Eles,d=b.Ed,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=a));b.EdFrameId=b.EdFrameId+(1)>>0;b.Cnt=b.Cnt+(1)>>0;b.Ed=b.Ed+(1)>>0;if(b.Ed>=b.N){b.Ed=b.Ed-(b.N)>>0;}};Q.prototype.Put=function(a){return this.$val.Put(a);};Q.ptr.prototype.Pop=function(){var a,b,c,d;a=this;if(0===a.Cnt){return $ifaceNil;}d=(b=a.Eles,c=a.St,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.StFrameId=a.StFrameId+(1)>>0;a.Cnt=a.Cnt-(1)>>0;a.St=a.St+(1)>>0;if(a.St>=a.N){a.St=a.St-(a.N)>>0;}return d;};Q.prototype.Pop=function(){return this.$val.Pop();};Q.ptr.prototype.GetArrIdxByOffset=function(a){var a,b,c;b=this;if((0===b.Cnt)||0>a){return-1;}c=b.St+a>>0;if(b.St=b.N){c=c-(b.N)>>0;}if(c>=b.St||c=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));};Q.prototype.GetByOffset=function(a){return this.$val.GetByOffset(a);};Q.ptr.prototype.GetByFrameId=function(a){var a,b;b=this;if(a>=b.EdFrameId||a>0);};Q.prototype.GetByFrameId=function(a){return this.$val.GetByFrameId(a);};Q.ptr.prototype.SetByFrameId=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;c=this;d=c.StFrameId;e=c.EdFrameId;f=d;g=e;if(bb){h=c.GetArrIdxByOffset(b-c.StFrameId>>0);if(!((-1===h))){(i=c.Eles,((h<0||h>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]=a));return[0,f,g];}}j=0;if(g>0))>>2>>0);};$pkg.ConvertToDelayedInputFrameId=AC;AD=function(a){var a;return(a>>2>>0);};$pkg.ConvertToNoDelayInputFrameId=AD;AE=function(a){var a;return(((a<<2>>0))+8>>0);};$pkg.ConvertToFirstUsedRenderFrameId=AE;AF=function(a){var a;return(((((a<<2>>0))+8>>0)+4>>0)-1>>0);};$pkg.ConvertToLastUsedRenderFrameId=AF;AG=function(a){var a,b,c,d,e,f,g,h;b=new $Uint64(a.$high&0,(a.$low&15)>>>0);d=(((c=$shiftRightUint64(a,4),new $Uint64(c.$high&0,(c.$low&1)>>>0)).$low>>0));f=(((e=$shiftRightUint64(a,5),new $Uint64(e.$high&0,(e.$low&1)>>>0)).$low>>0));return new F.ptr((g=(($flatten64(b)<0||$flatten64(b)>=$pkg.DIRECTION_DECODER.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.DIRECTION_DECODER.$array[$pkg.DIRECTION_DECODER.$offset+$flatten64(b)]),(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])),(h=(($flatten64(b)<0||$flatten64(b)>=$pkg.DIRECTION_DECODER.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.DIRECTION_DECODER.$array[$pkg.DIRECTION_DECODER.$offset+$flatten64(b)]),(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1])),d,f);};AI=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];e=[e];f=[f];g=c[0].Position();e[0]=g[0];f[0]=g[1];$deferred.push([(function(c,e,f){return function(){c[0].SetPosition(e[0],f[0]);};})(c,e,f),[]]);c[0].SetPosition(e[0]+a,f[0]+b);h=new AH.ptr(0,0,0,true,true,new B.Vector([0,0]));i=AJ(c[0],d,h);if(i){$s=1;continue;}$s=2;continue;case 1:j=h.Overlap*h.OverlapX;k=h.Overlap*h.OverlapY;l=j;m=k;n=[true,l,m,h];$s=4;case 4:return n;case 2:o=[false,0,0,h];$s=5;case 5:return o;case 3:$s=-1;return[false,0,0,BL.nil];}return;}}catch(err){$err=err;$s=-1;return[false,0,0,BL.nil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:AI,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred};return $f;}}};AJ=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;d=a.Points.$length;e=b.Points.$length;f=d;g=e;if((1===f)&&(1===g)){if(!(BL.nil===c)){c.Overlap=0;}return((h=(i=a.Points,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])),(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))===(j=(k=b.Points,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])),(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])))&&((l=(m=a.Points,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0])),(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]))===(n=(o=b.Points,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])),(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])));}if(1=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(AO(a,b,r.Unit(),c)){return false;}q++;}}if(1=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);if(AO(a,b,u.Unit(),c)){return false;}t++;}}return true;};AK=function(a,b){var a,b;if(2===a.BlState){return false;}return((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)<=b.Id)&&(((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)+a.Bullet.ActiveFrames>>0)>b.Id);};$pkg.IsMeleeBulletActive=AK;AL=function(a,b){var a,b;if(2===a.BlState){return a.FramesInBlState>0)+a.Bullet.ActiveFrames>>0)>b.Id;};$pkg.IsMeleeBulletAlive=AL;AM=function(a,b){var a,b;if(2===a.BlState){return false;}return((a.BattleAttr.OriginatedRenderFrameId+a.Bullet.StartupFrames>>0)>0)+a.Bullet.ActiveFrames>>0)>b.Id);};$pkg.IsFireballBulletActive=AM;AN=function(a,b){var a,b;if(2===a.BlState){return a.FramesInBlState>0)+a.Bullet.ActiveFrames>>0)>b.Id;};$pkg.IsFireballBulletAlive=AN;AO=function(a,b,c,d){var a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=1.7e+308;f=-1.7e+308;g=1.7e+308;h=-1.7e+308;i=e;j=f;k=g;l=h;m=a.Points;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);p=((0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])+a.X)*(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])+((1>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+1])+a.Y)*(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]);if(i>p){i=p;}if(j=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=((0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])+b.X)*(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])+((1>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1])+b.Y)*(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]);if(k>t){k=t;}if(ll||jl){u=i-l;d.AContainedInB=false;}else{x=j-k;y=l-i;if(x=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0])))&&(0===(ac=d.Axis,(1>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+1]))))||z>aa){ad=1;if(u<0){ad=-1;}d.Overlap=aa;d.OverlapX=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])*ad;d.OverlapY=(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1])*ad;}d.Axis=c;}return false;};AP=function(a,b){var a,b,c,d;c=((A.Round(a*100)>>0));d=((A.Round(b*100)>>0));return[c,d];};$pkg.WorldToVirtualGridPos=AP;AQ=function(a,b){var a,b,c,d;c=(a)*0.01;d=(b)*0.01;return[c,d];};$pkg.VirtualGridToWorldPos=AQ;AR=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j;return[a-c-g+i,b-d-f+j];};$pkg.WorldToPolygonColliderBLPos=AR;AS=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j;return[a+c+g-i,b+d+f-j];};$pkg.PolygonColliderBLToWorldPos=AS;AT=function(a,b,c,d,e,f,g,h,i,j){var a,b,c,d,e,f,g,h,i,j,k,l,m;k=AS(a,b,c,d,e,f,g,h,i,j);l=k[0];m=k[1];return AP(l,m);};$pkg.PolygonColliderBLToVirtualGridPos=AT;AV=function(a,b,c,d,e,f,g){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:h=[h];h[0]=$makeSlice(BM,0,10);i=0;if((16===b.CharacterState)&&(0===c.VelX)&&(b.DirX===c.DirX)){j=1;if(0>c.DirX){j=-j;}i=j*(b.Speed)*0.01;}k=d.Check(i,0,new BN([]));if(BO.nil===k){$s=-1;return(h.$ptr||(h.$ptr=new BP(function(){return this.$target[0];},function($v){this.$target[0]=$v;},h)));}l=k.Objects;m=0;case 1:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=false;p=n.Data;if($assertType(p,BQ,true)[1]||$assertType(p,BK,true)[1]||$assertType(p,BR,true)[1]){}else{o=true;}if(!o){m++;$s=1;continue;}q=$assertType(n.Shape,BS);s=AI(0,0,e,q);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=r[0];u=r[1];v=r[2];w=r[3];if(!t){m++;$s=1;continue;}x=(w.Overlap-f)*w.OverlapX;y=(w.Overlap-f)*w.OverlapY;u=x;v=y;h[0]=$append(h[0],new C.ptr(w.OverlapX,w.OverlapY));g.X=g.X+(u);g.Y=g.Y+(v);m++;$s=1;continue;case 2:$s=-1;return(h.$ptr||(h.$ptr=new BP(function(){return this.$target[0];},function($v){this.$target[0]=$v;},h)));}return;}var $f={$blk:AV,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};AW=function(a,b,c,d){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=AC(c.Id);f=AC(c.Id-1>>0);if(0>=e){return[-2,false,0,0];}g=(h=W[$Int32.keyFor(a.CharacterState)],h!==undefined?[h.v,true]:[false,false]);i=g[1];if(i){return[-2,false,0,0];}j=$assertType(d.GetByFrameId(e),BT).InputList;k=BU.nil;if(0>0,((n<0||n>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+n])));p=0;q=0;r=p;s=q;t=0;u=0;v=t;w=u;if(!(BU.nil===k)){y=AG((x=m-1>>0,((x<0||x>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+x])));v=y.BtnALevel;w=y.BtnBLevel;}if(0===a.FramesToRecover){z=o.Dx;aa=o.Dy;r=z;s=aa;if(o.BtnBLevel>w){ab=(ac=V[$Int32.keyFor(a.CharacterState)],ac!==undefined?[ac.v,true]:[false,false]);ad=ab[1];if(!ad){l=true;}else if(16===a.CharacterState){l=true;}}}ae=-1;if(0v){if(0>s){ae=3;}else if(0=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]=new E.ptr(m.Id,m.VirtualGridX,m.VirtualGridY,m.DirX,m.DirY,m.VelX,m.VelY,m.Speed,m.BattleState,m.JoinIndex,m.ColliderRadius,m.Removed,m.Score,0,m.FramesToRecover-1>>0,m.FramesInChState+1>>0,m.Hp,m.MaxHp,m.CharacterState,true,false,m.OnWallNormX,m.OnWallNormY,m.CapturedByInertia,m.ActiveSkillId,m.ActiveSkillHit,m.FramesInvinsible-1>>0,0,0));if(((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesToRecover<0){((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesToRecover=0;}if(((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesInvinsible<0){((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).FramesInvinsible=0;}k++;}n=$makeSlice(BW,0,b.MeleeBullets.$length);o=$makeSlice(BX,0,b.FireballBullets.$length);p=$makeSlice(BM,h);q=$makeSlice(BY,h);r=$makeSlice(BZ,h);s=b.BulletLocalIdCounter;t=b.PlayersArr;u=0;case 1:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);z=((x<0||x>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+x]);aa=((x<0||x>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+x]);ab=AW(y,aa,b,a);ac=ab[0];ad=ab[1];ae=ab[2];af=ab[3];((x<0||x>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+x]=ad);ag=y.JoinIndex;ah=z.SkillMapper(ac,y);$s=3;case 3:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=(ak=U[$Int.keyFor(ai)],ak!==undefined?[ak.v,true]:[BJ.nil,false]);al=aj[0];am=aj[1];if(am){aa.ActiveSkillId=((ai>>0));aa.ActiveSkillHit=0;aa.FramesToRecover=al.RecoveryFrames;an=1;if(0>aa.DirX){an=-an;}ao=false;ap=(aq=al.Hits,ar=aa.ActiveSkillHit,((ar<0||ar>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]));if($assertType(ap,BK,true)[1]){as=ap.$val;v[0]=$clone(as,K);v[0].BattleAttr=new J.ptr(s,b.Id,ag,y.BulletTeamId);s=s+(1)>>0;v[0].BlState=0;n=$append(n,v[0]);if(!((-1===as.Bullet.SelfLockVelX))){ao=true;aa.VelX=$imul(an,as.Bullet.SelfLockVelX);}if(!((-1===as.Bullet.SelfLockVelY))){ao=true;aa.VelY=as.Bullet.SelfLockVelY;}}else if($assertType(ap,BR,true)[1]){at=ap.$val;w[0]=$clone(at,L);w[0].BattleAttr=new J.ptr(s,b.Id,ag,y.BulletTeamId);s=s+(1)>>0;au=y.VirtualGridX+($imul(an,w[0].Bullet.HitboxOffsetX))>>0;av=y.VirtualGridY+w[0].Bullet.HitboxOffsetY>>0;w[0].VirtualGridX=au;w[0].VirtualGridY=av;w[0].DirX=an;w[0].DirY=0;w[0].VelX=$imul(w[0].Speed,an);w[0].VelY=0;w[0].BlState=0;o=$append(o,w[0]);if(!((-1===at.Bullet.SelfLockVelX))){ao=true;aa.VelX=$imul(an,at.Bullet.SelfLockVelX);}if(!((-1===at.Bullet.SelfLockVelY))){ao=true;aa.VelY=at.Bullet.SelfLockVelY;}}if(false===ao&&false===y.InAir){aa.VelX=0;}aa.CharacterState=al.BoundChState;u++;$s=1;continue;}if(0===y.FramesToRecover){aw=y.CapturedByInertia;ax=y.Speed($imul(ae,aa.VelX))){ay=false;}if(!ax&&!aw&&!ay){aa.CapturedByInertia=true;aa.FramesToRecover=z.InertiaFramesToRecover;}else{aa.CapturedByInertia=false;if(!((0===ae))){az=1;if(0>ae){az=-az;}aa.DirX=ae;aa.DirY=af;if(ax){aa.VelX=$imul(az,Z(y.VelX));}else{aa.VelX=$imul(az,y.Speed);}aa.CharacterState=1;}else{aa.CharacterState=0;aa.VelX=0;}}}u++;$s=1;continue;case 2:ba=$makeSlice(CB,b.PlayersArr.$length,b.PlayersArr.$length);bb=b.PlayersArr;bc=0;case 4:if(!(bc=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+bc]);bf=be.JoinIndex;bg=0;bh=0;(bi=bf-1>>0,((bi<0||bi>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+bi])).X=bg;(bj=bf-1>>0,((bj<0||bj>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+bj])).Y=bh;bk=((bd<0||bd>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+bd]);bl=((bd<0||bd>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+bd]);bm=be.VirtualGridX+be.VelX>>0;bn=be.VirtualGridY+be.VelY>>0;bo=bm;bp=bn;if(((bd<0||bd>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+bd])){if(16===be.CharacterState){if(0<($imul(be.VelX,be.OnWallNormX))){bo=bo-(be.VelX)>>0;}bq=-1;if(0>be.OnWallNormX){bq=-bq;}bo=bo+(($imul(bq,bl.WallJumpingInitVelX)))>>0;bp=bp+(bl.WallJumpingInitVelY)>>0;bk.VelX=(($imul(bq,bl.WallJumpingInitVelX)));bk.VelY=(bl.WallJumpingInitVelY);bk.FramesToRecover=bl.WallJumpingFramesToRecover;}else{bk.VelY=(bl.JumpingInitVelY);bp=bp+(bl.JumpingInitVelY)>>0;}}br=AQ(bo,bp);bs=br[0];bt=br[1];bu=$imul(be.ColliderRadius,2);bv=$imul(be.ColliderRadius,4);bw=bu;bx=bv;by=be.CharacterState;if(by===(9)){bz=$imul(be.ColliderRadius,4);ca=$imul(be.ColliderRadius,2);bw=bz;bx=ca;}else if((by===(8))||(by===(4))||(by===(5))||(by===(16))){cb=$imul(be.ColliderRadius,2);cc=$imul(be.ColliderRadius,2);bw=cb;bx=cc;}cd=AQ(bw,bx);ce=cd[0];cf=cd[1];cg=AY(bs,bt,ce,cf,0.1,0.1,0.1,0.1,e,f,be,"Player");$s=6;case 6:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=cg;((bd<0||bd>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bd]=ch);$r=c.Add(new CB([ch]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(be.InAir){if((16===be.CharacterState)&&!((bd<0||bd>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+bd])){bk.VelX=bk.VelX+(0)>>0;bk.VelY=bl.WallSlidingVelY;}else{bk.VelX=bk.VelX+(0)>>0;bk.VelY=bk.VelY+(-50)>>0;}}bc++;$s=4;continue;case 5:ci=$makeSlice(CB,0,b.MeleeBullets.$length);cj=b.MeleeBullets;ck=0;case 8:if(!(ck=cj.$length)?($throwRuntimeError("index out of range"),undefined):cj.$array[cj.$offset+ck]);cm=new K.ptr(cl.BlState,cl.FramesInBlState+1>>0,cl.BattleAttr,cl.Bullet);if(AL(cm,b)){$s=10;continue;}$s=11;continue;case 10:if(AK(cm,b)){$s=12;continue;}$s=13;continue;case 12:cp=(cn=b.PlayersArr,co=cm.BattleAttr.OffenderJoinIndex-1>>0,((co<0||co>=cn.$length)?($throwRuntimeError("index out of range"),undefined):cn.$array[cn.$offset+co]));cq=1;if(0>cp.DirX){cq=-cq;}cr=AQ(cp.VirtualGridX+($imul(cq,cm.Bullet.HitboxOffsetX))>>0,cp.VirtualGridY);cs=cr[0];ct=cr[1];cu=AQ(cm.Bullet.HitboxSizeX,cm.Bullet.HitboxSizeY);cv=cu[0];cw=cu[1];cx=AY(cs,ct,cv,cw,0.1,0.1,0.1,0.1,e,f,cm,"MeleeBullet");$s=14;case 14:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}cy=cx;$r=c.Add(new CB([cy]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ci=$append(ci,cy);cm.BlState=1;if(!((cm.BlState===cl.BlState))){cm.FramesInBlState=0;}case 13:n=$append(n,cm);case 11:ck++;$s=8;continue;case 9:cz=b.FireballBullets;da=0;case 16:if(!(da=cz.$length)?($throwRuntimeError("index out of range"),undefined):cz.$array[cz.$offset+da]);dc=new L.ptr(db.VirtualGridX,db.VirtualGridY,db.DirX,db.DirY,db.VelX,db.VelY,db.Speed,db.BlState,db.FramesInBlState+1>>0,db.BattleAttr,db.Bullet);if(AN(dc,b)){$s=18;continue;}$s=19;continue;case 18:if(AM(dc,b)){$s=20;continue;}$s=21;continue;case 20:dd=AQ(dc.VirtualGridX,dc.VirtualGridY);de=dd[0];df=dd[1];dg=AQ(dc.Bullet.HitboxSizeX,dc.Bullet.HitboxSizeY);dh=dg[0];di=dg[1];dj=AY(de,df,dh,di,0.1,0.1,0.1,0.1,e,f,dc,"FireballBullet");$s=23;case 23:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}dk=dj;$r=c.Add(new CB([dk]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ci=$append(ci,dk);dc.BlState=1;if(!((dc.BlState===db.BlState))){dc.FramesInBlState=0;}dl=dc.VirtualGridX+dc.VelX>>0;dm=dc.VirtualGridY+dc.VelY>>0;dc.VirtualGridX=dl;dc.VirtualGridY=dm;$s=22;continue;case 21:case 22:o=$append(o,dc);case 19:da++;$s=16;continue;case 17:dn=b.PlayersArr;dp=0;case 25:if(!(dp=dn.$length)?($throwRuntimeError("index out of range"),undefined):dn.$array[dn.$offset+dp]);ds=dr.JoinIndex;dt=((dq<0||dq>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+dq]);du=$assertType(dt.Shape,BS);dv=((dq<0||dq>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+dq]);dx=AV(ds,dr,dv,dt,du,0.1,(dw=ds-1>>0,((dw<0||dw>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+dw])));$s=27;case 27:if($c){$c=false;dx=dx.$blk();}if(dx&&dx.$blk!==undefined){break s;}(dy=ds-1>>0,((dy<0||dy>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+dy]=dx));dz=((dq<0||dq>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+dq]);ea=false;eb=dt.Check(0,0,new BN([]));if(!(BO.nil===eb)){$s=28;continue;}$s=29;continue;case 28:ec=eb.Objects;ed=0;case 30:if(!(ed=ec.$length)?($throwRuntimeError("index out of range"),undefined):ec.$array[ec.$offset+ed]);ef=false;eg=false;eh=false;ei=ef;ej=eg;ek=eh;el=ee.Data;if($assertType(el,BQ,true)[1]){ej=true;}else if($assertType(el,BK,true)[1]||$assertType(el,BR,true)[1]){ek=true;}else{ei=true;}if(ek){ed++;$s=30;continue;}em=$assertType(ee.Shape,BS);eo=AI(0,0,du,em);$s=32;case 32:if($c){$c=false;eo=eo.$blk();}if(eo&&eo.$blk!==undefined){break s;}en=eo;ep=en[0];eq=en[1];er=en[2];es=en[3];if(!ep){ed++;$s=30;continue;}et=es.OverlapX*0+es.OverlapY*-1;if(ej){eu=(es.Overlap-0.2)*es.OverlapX;ev=(es.Overlap-0.2)*es.OverlapY;eq=eu;er=ev;}ew=(ex=ds-1>>0,((ex<0||ex>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+ex])).$get();ey=0;while(true){if(!(ey=ew.$length)?($throwRuntimeError("index out of range"),undefined):ew.$array[ew.$offset+ey]),C);fa=eq*ez.X+er*ez.Y;if(ei||(ej&&0>fa)){eq=eq-(fa*ez.X);er=er-(fa*ez.Y);}ey++;}fb=ds-1>>0;((fb<0||fb>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fb]).X=((fb<0||fb>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fb]).X+(eq);fc=ds-1>>0;((fc<0||fc>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fc]).Y=((fc<0||fc>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fc]).Y+(er);if(0.5=dr.VelY;if(fd){dv.VelY=0;dv.VelX=0;if(8===dv.CharacterState){dv.CharacterState=9;dv.FramesToRecover=dz.LayDownFramesToRecover;}else{fe=dr.CharacterState;if((fe===(8))||(fe===(4))||(fe===(5))||(fe===(16))){ff=0;fg=dr.ColliderRadius;fh=ff;fi=fg;fj=AQ(fh,fi);fk=fj[1];fl=ds-1>>0;((fl<0||fl>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fl]).Y=((fl<0||fl>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+fl]).Y-(fk);}dv.CharacterState=0;dv.FramesToRecover=0;}}else{fm=(fn=Y[$Int32.keyFor(dv.CharacterState)],fn!==undefined?[fn.v,true]:[false,false]);fo=fm[1];if(fo){if(9===dv.CharacterState){if(0===dv.FramesToRecover){dv.CharacterState=10;dv.FramesToRecover=dz.GetUpFramesToRecover;}}else if(10===dv.CharacterState){if(0===dv.FramesToRecover){dv.CharacterState=0;dv.FramesInvinsible=dz.GetUpInvinsibleFrames;}}}}}if(dz.OnWallEnabled){if(dv.InAir){fp=(fq=W[$Int32.keyFor(dr.CharacterState)],fq!==undefined?[fq.v,true]:[false,false]);fr=fp[1];if(!fr){fs=(ft=ds-1>>0,((ft<0||ft>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+ft])).$get();fu=0;while(true){if(!(fu=fs.$length)?($throwRuntimeError("index out of range"),undefined):fs.$array[fs.$offset+fu]),C);fw=fv.X*1+fv.Y*0;fx=fv.X*-1+fv.Y*0;if(0.9>0));fz=((fv.Y>>0));dv.OnWallNormX=fy;dv.OnWallNormY=fz;break;}if(0.9>0));gb=((fv.Y>>0));dv.OnWallNormX=ga;dv.OnWallNormY=gb;break;}fu++;}if(!dr.OnWall&&dv.OnWall){dv.VelY=0;}}}if(!dv.OnWall){gc=0;gd=0;dv.OnWallNormX=gc;dv.OnWallNormY=gd;}}dp++;$s=25;continue;case 26:ge=ci;gf=0;case 33:if(!(gf=ge.$length)?($throwRuntimeError("index out of range"),undefined):ge.$array[ge.$offset+gf]);gh=gg.Check(0,0,new BN([]));gg.Space.Remove(new CB([gg]));gi=false;if(!(BO.nil===gh)){$s=35;continue;}$s=36;continue;case 35:gj=gg.Data;if($assertType(gj,BK,true)[1]){$s=37;continue;}if($assertType(gj,BR,true)[1]){$s=38;continue;}$s=39;continue;case 37:gk=gj.$val;gm=$assertType(gg.Shape,BS);gp=(gn=b.PlayersArr,go=gk.BattleAttr.OffenderJoinIndex-1>>0,((go<0||go>=gn.$length)?($throwRuntimeError("index out of range"),undefined):gn.$array[gn.$offset+go]));gq=gh.Objects;gr=0;case 40:if(!(gr=gq.$length)?($throwRuntimeError("index out of range"),undefined):gq.$array[gq.$offset+gr]);gt=$assertType(gs.Shape,BS);gu=gs.Data;if($assertType(gu,BQ,true)[1]){$s=42;continue;}$s=43;continue;case 42:gv=gu.$val;if(gk.BattleAttr.OffenderJoinIndex===gv.JoinIndex){gr++;$s=40;continue;}gx=AI(0,0,gm,gt);$s=44;case 44:if($c){$c=false;gx=gx.$blk();}if(gx&&gx.$blk!==undefined){break s;}gw=gx;gy=gw[0];if(!gy){gr++;$s=40;continue;}gi=true;gz=(ha=X[$Int32.keyFor(gv.CharacterState)],ha!==undefined?[ha.v,true]:[false,false]);hb=gz[1];if(hb){gr++;$s=40;continue;}if(0gp.DirX){hc=-hc;}hd=$imul(hc,gk.Bullet.PushbackVelX);he=gk.Bullet.PushbackVelY;hf=hd;hg=he;hi=(hh=gv.JoinIndex-1>>0,((hh<0||hh>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+hh]));hi.VelX=hf;hi.VelY=hg;if(gk.Bullet.BlowUp){hi.CharacterState=8;}else{hi.CharacterState=3;}hk=(hj=gv.JoinIndex-1>>0,((hj<0||hj>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+hj])).FramesToRecover;if(gk.Bullet.HitStunFrames>hk){hi.FramesToRecover=gk.Bullet.HitStunFrames;}case 43:gr++;$s=40;continue;case 41:$s=39;continue;case 38:gl=gj.$val;hl=$assertType(gg.Shape,BS);ho=(hm=b.PlayersArr,hn=gl.BattleAttr.OffenderJoinIndex-1>>0,((hn<0||hn>=hm.$length)?($throwRuntimeError("index out of range"),undefined):hm.$array[hm.$offset+hn]));hp=gh.Objects;hq=0;case 45:if(!(hq=hp.$length)?($throwRuntimeError("index out of range"),undefined):hp.$array[hp.$offset+hq]);hs=$assertType(hr.Shape,BS);ht=hr.Data;if($assertType(ht,BQ,true)[1]){$s=47;continue;}$s=48;continue;case 47:hu=ht.$val;if(gl.BattleAttr.OffenderJoinIndex===hu.JoinIndex){hq++;$s=45;continue;}hx=AI(0,0,hl,hs);$s=50;case 50:if($c){$c=false;hx=hx.$blk();}if(hx&&hx.$blk!==undefined){break s;}hw=hx;hy=hw[0];if(!hy){hq++;$s=45;continue;}gi=true;hz=(ia=X[$Int32.keyFor(hu.CharacterState)],ia!==undefined?[ia.v,true]:[false,false]);ib=hz[1];if(ib){hq++;$s=45;continue;}if(0ho.DirX){ic=-ic;}id=$imul(ic,gl.Bullet.PushbackVelX);ie=gl.Bullet.PushbackVelY;ig=id;ih=ie;ij=(ii=hu.JoinIndex-1>>0,((ii<0||ii>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+ii]));ij.VelX=ig;ij.VelY=ih;if(gl.Bullet.BlowUp){ij.CharacterState=8;}else{ij.CharacterState=3;}il=(ik=hu.JoinIndex-1>>0,((ik<0||ik>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+ik])).FramesToRecover;if(gl.Bullet.HitStunFrames>il){ij.FramesToRecover=gl.Bullet.HitStunFrames;}$s=49;continue;case 48:hv=ht;gi=true;case 49:hq++;$s=45;continue;case 46:case 39:case 36:if(gi){im=gg.Data;if($assertType(im,BK,true)[1]){io=im.$val;io.BlState=2;io.FramesInBlState=0;}else if($assertType(im,BR,true)[1]){ip=im.$val;ip.BlState=2;ip.FramesInBlState=0;}}gf++;$s=33;continue;case 34:iq=b.PlayersArr;ir=0;while(true){if(!(ir=iq.$length)?($throwRuntimeError("index out of range"),undefined):iq.$array[iq.$offset+ir]);iu=it.JoinIndex;iv=((is<0||is>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+is]);iw=((is<0||is>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+is]);ix=AT(iv.X-(iy=iu-1>>0,((iy<0||iy>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+iy])).X,iv.Y-(iz=iu-1>>0,((iz<0||iz>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+iz])).Y,iv.W*0.5,iv.H*0.5,0,0,0,0,e,f);iw.VirtualGridX=ix[0];iw.VirtualGridY=ix[1];if(iw.InAir){ja=iw.CharacterState;jb=ja;if((jb===(0))||(jb===(1))){if(iw.OnWall){iw.CharacterState=16;}else if(((is<0||is>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+is])||(5===it.CharacterState)){iw.CharacterState=5;}else{iw.CharacterState=4;}}else if(jb===(2)){iw.CharacterState=6;}else if(jb===(3)){iw.CharacterState=7;}}if(!((iw.CharacterState===it.CharacterState))){iw.FramesInChState=0;}jc=(jd=Y[$Int32.keyFor(iw.CharacterState)],jd!==undefined?[jd.v,true]:[false,false]);je=jc[1];if(je){iw.ActiveSkillId=-1;iw.ActiveSkillHit=-1;}ir++;}jf=ba;jg=0;while(true){if(!(jg=jf.$length)?($throwRuntimeError("index out of range"),undefined):jf.$array[jf.$offset+jg]);jh.Space.Remove(new CB([jh]));jg++;}$s=-1;return new N.ptr(b.Id+1>>0,i,new $Int64(0,0),n,o,new $Uint64(0,0),false,s);}return;}var $f={$blk:AX,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,jg,jh,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame=AX;AY=function(a,b,c,d,e,f,g,h,i,j,k,l){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g,h,i,j,k,l});$s=$s||0;s:while(true){switch($s){case 0:m=AR(a,b,c*0.5,d*0.5,e,f,g,h,i,j);n=m[0];o=m[1];p=AZ(n,o,g+c+h,f+d+e,k,l);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=2;case 2:return q;}return;}var $f={$blk:AY,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.GenerateRectCollider=AY;AZ=function(a,b,c,d,e,f){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=B.NewObject(a,b,c,d,new BN([f]));h=B.NewRectangle(0,0,c,d);$r=g.SetShape(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g.Data=e;$s=-1;return g;}return;}var $f={$blk:AZ,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BA=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=BB(a);g=0;h=0;i=g;j=h;k=B.NewConvexPolygon(CC.nil);l=f.Points;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=f.Points;q=0;while(true){if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(n===r){q++;continue;}if(A.Abs(s.X-o.X)>i){i=A.Abs(s.X-o.X);}if(A.Abs(s.Y-o.Y)>j){j=A.Abs(s.Y-o.Y);}q++;}m++;}t=0;while(true){if(!(t=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+t]));k.AddPoints(new CC([v.X,v.Y]));t=t+(1)>>0;}w=B.NewObject(f.Anchor.X+b,f.Anchor.Y+c,i,j,new BN([e]));$r=w.SetShape(k);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w.Data=d;$s=-1;return w;}return;}var $f={$blk:BA,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};$pkg.GenerateConvexPolygonCollider=BA;BB=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=new C.ptr(1.7e+308,1.7e+308);c=a.Points;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e.X=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);(k=f.Points,((i<0||i>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]=new C.ptr(j.X-b.X,j.Y-b.Y)));h++;}return f;};$pkg.AlignPolygon2DToBoundingBox=BB;BC=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;return new K.ptr(u,v,new J.ptr(a,b,c,t),new I.ptr(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,w,x,false));};$pkg.NewMeleeBullet=BC;BD=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;return new L.ptr(u,v,w,x,y,z,aa,0,0,new J.ptr(a,b,c,t),new I.ptr(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,ad,ae,false));};$pkg.NewFireballBullet=BD;CH.methods=[{prop:"Put",name:"Put",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Pop",name:"Pop",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"GetArrIdxByOffset",name:"GetArrIdxByOffset",pkg:"",typ:$funcType([$Int32],[$Int32],false)},{prop:"GetByOffset",name:"GetByOffset",pkg:"",typ:$funcType([$Int32],[$emptyInterface],false)},{prop:"GetByFrameId",name:"GetByFrameId",pkg:"",typ:$funcType([$Int32],[$emptyInterface],false)},{prop:"SetByFrameId",name:"SetByFrameId",pkg:"",typ:$funcType([$emptyInterface,$Int32],[$Int32,$Int32,$Int32],false)}];C.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""}]);D.init("",[{prop:"Anchor",name:"Anchor",embedded:false,exported:true,typ:CD,tag:""},{prop:"Points",name:"Points",embedded:false,exported:true,typ:CE,tag:""}]);E.init("",[{prop:"Id",name:"Id",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridX",name:"VirtualGridX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridY",name:"VirtualGridY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirX",name:"DirX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirY",name:"DirY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelX",name:"VelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelY",name:"VelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleState",name:"BattleState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JoinIndex",name:"JoinIndex",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ColliderRadius",name:"ColliderRadius",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Removed",name:"Removed",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Score",name:"Score",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"LastMoveGmtMillis",name:"LastMoveGmtMillis",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesToRecover",name:"FramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInChState",name:"FramesInChState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Hp",name:"Hp",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"MaxHp",name:"MaxHp",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CharacterState",name:"CharacterState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"InAir",name:"InAir",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWall",name:"OnWall",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWallNormX",name:"OnWallNormX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OnWallNormY",name:"OnWallNormY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CapturedByInertia",name:"CapturedByInertia",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"ActiveSkillId",name:"ActiveSkillId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ActiveSkillHit",name:"ActiveSkillHit",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInvinsible",name:"FramesInvinsible",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BulletTeamId",name:"BulletTeamId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ChCollisionTeamId",name:"ChCollisionTeamId",embedded:false,exported:true,typ:$Int32,tag:""}]);F.init("",[{prop:"Dx",name:"Dx",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Dy",name:"Dy",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BtnALevel",name:"BtnALevel",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BtnBLevel",name:"BtnBLevel",embedded:false,exported:true,typ:$Int32,tag:""}]);H.init("",[{prop:"Boundary",name:"Boundary",embedded:false,exported:true,typ:CF,tag:""}]);I.init("",[{prop:"StartupFrames",name:"StartupFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancellableStFrame",name:"CancellableStFrame",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancellableEdFrame",name:"CancellableEdFrame",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ActiveFrames",name:"ActiveFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitStunFrames",name:"HitStunFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlockStunFrames",name:"BlockStunFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PushbackVelX",name:"PushbackVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PushbackVelY",name:"PushbackVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Damage",name:"Damage",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SelfLockVelX",name:"SelfLockVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SelfLockVelY",name:"SelfLockVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxOffsetX",name:"HitboxOffsetX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxOffsetY",name:"HitboxOffsetY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxSizeX",name:"HitboxSizeX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"HitboxSizeY",name:"HitboxSizeY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlowUp",name:"BlowUp",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"ExplosionFrames",name:"ExplosionFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SpeciesId",name:"SpeciesId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"CancelTransit",name:"CancelTransit",embedded:false,exported:true,typ:CG,tag:""}]);J.init("",[{prop:"BulletLocalId",name:"BulletLocalId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OriginatedRenderFrameId",name:"OriginatedRenderFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"OffenderJoinIndex",name:"OffenderJoinIndex",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"TeamId",name:"TeamId",embedded:false,exported:true,typ:$Int32,tag:""}]);K.init("",[{prop:"BlState",name:"BlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInBlState",name:"FramesInBlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleAttr",name:"BattleAttr",embedded:false,exported:true,typ:BH,tag:""},{prop:"Bullet",name:"Bullet",embedded:false,exported:true,typ:BI,tag:""}]);L.init("",[{prop:"VirtualGridX",name:"VirtualGridX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VirtualGridY",name:"VirtualGridY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirX",name:"DirX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DirY",name:"DirY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelX",name:"VelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"VelY",name:"VelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BlState",name:"BlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"FramesInBlState",name:"FramesInBlState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BattleAttr",name:"BattleAttr",embedded:false,exported:true,typ:BH,tag:""},{prop:"Bullet",name:"Bullet",embedded:false,exported:true,typ:BI,tag:""}]);M.init("",[{prop:"BattleLocalId",name:"BattleLocalId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFrames",name:"RecoveryFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFramesOnBlock",name:"RecoveryFramesOnBlock",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"RecoveryFramesOnHit",name:"RecoveryFramesOnHit",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"ReleaseTriggerType",name:"ReleaseTriggerType",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"BoundChState",name:"BoundChState",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Hits",name:"Hits",embedded:false,exported:true,typ:BG,tag:""}]);N.init("",[{prop:"Id",name:"Id",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"PlayersArr",name:"PlayersArr",embedded:false,exported:true,typ:BV,tag:""},{prop:"CountdownNanos",name:"CountdownNanos",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"MeleeBullets",name:"MeleeBullets",embedded:false,exported:true,typ:BW,tag:""},{prop:"FireballBullets",name:"FireballBullets",embedded:false,exported:true,typ:BX,tag:""},{prop:"BackendUnconfirmedMask",name:"BackendUnconfirmedMask",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"ShouldForceResync",name:"ShouldForceResync",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"BulletLocalIdCounter",name:"BulletLocalIdCounter",embedded:false,exported:true,typ:$Int32,tag:""}]);O.init("",[{prop:"InputFrameId",name:"InputFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"InputList",name:"InputList",embedded:false,exported:true,typ:BU,tag:""},{prop:"ConfirmedList",name:"ConfirmedList",embedded:false,exported:true,typ:$Uint64,tag:""}]);P.init("",[{prop:"FlAct",name:"FlAct",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"FrAct",name:"FrAct",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Float64,tag:""}]);Q.init("",[{prop:"Ed",name:"Ed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"St",name:"St",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"EdFrameId",name:"EdFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"StFrameId",name:"StFrameId",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"N",name:"N",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Cnt",name:"Cnt",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Eles",name:"Eles",embedded:false,exported:true,typ:BG,tag:""}]);S.init([$Int,BQ],[$Int],false);T.init("",[{prop:"SpeciesId",name:"SpeciesId",embedded:false,exported:true,typ:$Int,tag:""},{prop:"SpeciesName",name:"SpeciesName",embedded:false,exported:true,typ:$String,tag:""},{prop:"InAirIdleFrameIdxTurningPoint",name:"InAirIdleFrameIdxTurningPoint",embedded:false,exported:true,typ:$Int,tag:""},{prop:"InAirIdleFrameIdxTurnedCycle",name:"InAirIdleFrameIdxTurnedCycle",embedded:false,exported:true,typ:$Int,tag:""},{prop:"LayDownFrames",name:"LayDownFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"LayDownFramesToRecover",name:"LayDownFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"GetUpInvinsibleFrames",name:"GetUpInvinsibleFrames",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"GetUpFramesToRecover",name:"GetUpFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JumpingInitVelY",name:"JumpingInitVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"JumpingFramesToRecover",name:"JumpingFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"DashingEnabled",name:"DashingEnabled",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"OnWallEnabled",name:"OnWallEnabled",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"WallJumpingFramesToRecover",name:"WallJumpingFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallJumpingInitVelX",name:"WallJumpingInitVelX",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallJumpingInitVelY",name:"WallJumpingInitVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"WallSlidingVelY",name:"WallSlidingVelY",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"InertiaFramesToRecover",name:"InertiaFramesToRecover",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"SkillMapper",name:"SkillMapper",embedded:false,exported:true,typ:S,tag:""}]);AH.init("",[{prop:"Overlap",name:"Overlap",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"OverlapX",name:"OverlapX",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"OverlapY",name:"OverlapY",embedded:false,exported:true,typ:$Float64,tag:""},{prop:"AContainedInB",name:"AContainedInB",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"BContainedInA",name:"BContainedInA",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Axis",name:"Axis",embedded:false,exported:true,typ:B.Vector,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.DIRECTION_DECODER=new BF([new BE([0,0]),new BE([0,2]),new BE([0,-2]),new BE([2,0]),new BE([-2,0]),new BE([1,1]),new BE([-1,-1]),new BE([1,-1]),new BE([-1,1])]);U=$makeMap($Int.keyFor,[{k:1,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,5,-1,1200,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:2}])))]))},{k:2,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,22,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:3}])))]))},{k:3,v:new M.ptr(0,50,50,50,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(8,0,0,30,999999999,9,200,700,10,50,500,1600,800,3200,3200,true,9,1,false))]))},{k:4,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,5,-1,1200,0,2400,3200,false,15,2,$makeMap($Int.keyFor,[{k:1,v:5}])))]))},{k:5,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,23,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,15,2,$makeMap($Int.keyFor,[{k:1,v:6}])))]))},{k:6,v:new M.ptr(0,45,45,45,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(8,0,0,28,999999999,9,200,300,10,-1,-1,2400,0,3200,3200,true,15,2,false))]))},{k:7,v:new M.ptr(0,30,30,30,1,2,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,13,30,22,13,9,50,0,5,-1,-1,1200,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:8}])))]))},{k:8,v:new M.ptr(0,36,36,36,1,11,new BG([new K.ptr(0,0,BH.nil,new I.ptr(18,22,36,18,18,9,50,0,5,10,-1,1800,0,2400,3200,false,9,1,$makeMap($Int.keyFor,[{k:1,v:9}])))]))},{k:9,v:new M.ptr(0,40,40,40,1,12,new BG([new K.ptr(0,0,BH.nil,new I.ptr(7,0,0,30,999999999,9,200,400,10,100,-1,1000,0,3200,3200,true,9,1,false))]))},{k:10,v:new M.ptr(0,40,40,40,1,13,new BG([new L.ptr(0,0,0,0,0,0,500,0,0,BH.nil,new I.ptr(12,0,0,999999999,15,9,200,0,20,-1,-1,2400,500,4800,3200,false,15,1,false))]))},{k:11,v:new M.ptr(0,60,60,60,1,14,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,25,999999999,9,200,700,30,100,800,800,0,4000,6400,true,15,3,false))]))},{k:255,v:new M.ptr(0,30,30,30,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,20,18,9,50,0,5,-1,-1,1200,0,3200,2400,false,9,1,false))]))},{k:256,v:new M.ptr(0,20,20,20,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,10,15,9,50,0,5,-1,-1,1200,0,3200,2400,false,15,2,false))]))},{k:257,v:new M.ptr(0,30,30,30,1,6,new BG([new K.ptr(0,0,BH.nil,new I.ptr(3,0,0,20,18,9,50,0,5,-1,-1,1200,0,3200,2400,false,9,1,false))]))}]);$pkg.Characters=$makeMap($Int.keyFor,[{k:0,v:new T.ptr(0,"MonkGirl",11,1,16,16,10,27,250,800,2,false,false,0,0,0,0,5,(function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;if(1===a){if(0===b.FramesToRecover){if(b.InAir){return 255;}else{return 1;}}else{c=(d=U[$Int.keyFor(((b.ActiveSkillId>>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState>0)))],d!==undefined?[d.v,true]:[BJ.nil,false]);e=c[0];f=c[1];if(f){g=(h=e.Hits,i=b.ActiveSkillHit,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if($assertType(g,BK,true)[1]){j=g.$val;if(j.Bullet.CancellableStFrame<=b.FramesInChState&&b.FramesInChState=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=A.MakeFullWrapper(f);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=$append(c,g);e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:O,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.GetCollisionSpaceObjsJs=O;P=function(a,b,c,d,e,f,g,h){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g,h});$s=$s||0;s:while(true){switch($s){case 0:i=0.1;j=0.1;k=0.1;l=0.1;m=i;n=j;o=k;p=l;q=B.GenerateRectCollider(a,b,c,d,m,n,o,p,e,f,g,h);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=A.MakeFullWrapper(q);$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=3;case 3:return s;}return;}var $f={$blk:P,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};$pkg.GenerateRectColliderJs=P;Q=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=B.GenerateConvexPolygonCollider(a,b,c,d,e);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=A.MakeFullWrapper(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:Q,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.GenerateConvexPolygonColliderJs=Q;R=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$makeSlice(AF,a.$length,a.$length);c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);h=A.MakeFullWrapper((g=B.Characters[$Int.keyFor(f)],g!==undefined?g.v:AG.nil));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]=h);d++;$s=1;continue;case 2:$s=-1;return b;}return;}var $f={$blk:R,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.GetCharacterConfigsOrderedByJoinIndex=R;S=function(a,b,c,d,e,f,g){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c,d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:h=B.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(a,b,c,d,e,f,g);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=A.MakeFullWrapper(h);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrameJs=S;T=function(){$global.gopkgs=$externalize($makeMap($String.keyFor,[{k:"NewVec2DJs",v:new AH(G)},{k:"NewPolygon2DJs",v:new AI(H)},{k:"NewBarrierJs",v:new AJ(I)},{k:"NewPlayerDownsyncJs",v:new AK(J)},{k:"NewMeleeBulletJs",v:new AL(K)},{k:"NewFireballBulletJs",v:new AM(L)},{k:"NewNpcPatrolCue",v:new AN(M)},{k:"NewRoomDownsyncFrameJs",v:new AO(N)},{k:"NewCollisionSpaceJs",v:new AP(F)},{k:"NewInputFrameDownsync",v:new AQ(D)},{k:"NewRingBufferJs",v:new AR(E)},{k:"GenerateRectColliderJs",v:new AS(P)},{k:"GenerateConvexPolygonColliderJs",v:new AT(Q)},{k:"GetCollisionSpaceObjsJs",v:new AV(O)},{k:"WorldToPolygonColliderBLPos",v:new AW(B.WorldToPolygonColliderBLPos)},{k:"PolygonColliderBLToWorldPos",v:new AW(B.PolygonColliderBLToWorldPos)},{k:"WorldToVirtualGridPos",v:new AX(B.WorldToVirtualGridPos)},{k:"VirtualGridToWorldPos",v:new AY(B.VirtualGridToWorldPos)},{k:"GetCharacterConfigsOrderedByJoinIndex",v:new BA(R)},{k:"ApplyInputFrameDownsyncDynamicsOnSingleRenderFrameJs",v:new BG(S)},{k:"ConvertToDelayedInputFrameId",v:new BH(B.ConvertToDelayedInputFrameId)},{k:"ConvertToNoDelayInputFrameId",v:new BH(B.ConvertToNoDelayInputFrameId)},{k:"ConvertToFirstUsedRenderFrameId",v:new BH(B.ConvertToFirstUsedRenderFrameId)},{k:"ConvertToLastUsedRenderFrameId",v:new BH(B.ConvertToLastUsedRenderFrameId)},{k:"ShouldGenerateInputFrameUpsync",v:new BI(B.ShouldGenerateInputFrameUpsync)},{k:"IsMeleeBulletActive",v:new BJ(B.IsMeleeBulletActive)},{k:"IsMeleeBulletAlive",v:new BJ(B.IsMeleeBulletAlive)},{k:"IsFireballBulletActive",v:new BK(B.IsFireballBulletActive)},{k:"IsFireballBulletAlive",v:new BK(B.IsFireballBulletAlive)}]),BL);};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($pkg===$mainPkg){T();$mainFinished=true;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); $synthesizeMethods(); $initAllLinknames(); var $mainPkg = $packages["jsexport"]; diff --git a/frontend/assets/plugin_scripts/jsexport.js.map b/frontend/assets/plugin_scripts/jsexport.js.map deleted file mode 100644 index 51c4ed5..0000000 --- a/frontend/assets/plugin_scripts/jsexport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"jsexport.js","sources":[".6.windows-amd64/go/src/github.com/gopherjs/gopherjs/js/js.go",".6.windows-amd64/go/src/runtime/gopherjs__runtime.go",".6.windows-amd64/go/src/math/floor.go",".6.windows-amd64/go/src/math/dim.go",".6.windows-amd64/go/src/math/abs.go",".6.windows-amd64/go/src/math/gopherjs__math.go","vector.go","space.go","shape.go","object.go","gonum.go","collision.go","cell.go","ringbuf.go","battle.go","characterConfig.go","main.go"],"names":[],"mappings":";;;;;;y2BA+B4C,yC,2GAGW,kE,8GAGhB,yC,6GAGN,kC,6GAGQ,mB,oHAGc,4C,4HAGY,yE,gHAGX,mD,6GAGH,kG,qGAGrB,mB,uGAGI,sC,wGAGN,8B,oGAGI,qC,yGAGE,sC,0GAGA,6B,4GAGQ,8C,iHAGP,gB,0GASnC,kE,wGAKA,4C,wFA8CA,IACA,wBACA,wBACA,wBACI,0DACH,U,2CADiC,W,S,CAKjC,4GACC,mJ,WANgC,W,CASlC,S,6JAWA,OACA,mBAEA,2BAEA,8CACC,8E,UAGD,2KAUC,iCACA,8BAEA,K,yBAEC,M,CAGG,yC,yBAEF,yBACA,M,CAHwB,W,CAO1B,YACA,qJAKG,OACJ,uBACG,Y,qBACF,c,CAIE,S,qBACF,WACA,sB,MAEA,W,CAEG,6DACH,U,2CADiC,W,c,CAKjC,2HAEE,2J,gGAP+B,W,qBAWlC,kD,OACK,6DACH,U,uBADgC,W,c,CAKhC,wHAEE,6FACA,kC,2EAGA,6BACA,mE,kGAZ8B,W,qB,OAiBlC,kB,iIAmBA,kBACA,W,mwD;01BC5OkC,a,4GACA,S,sG,8HAalC,c,6BAEC,wB,CAED,sB,wBAEC,mD,CAED,sB,yBAEC,iD,U,mDAIE,yC,MAEA,uC,C,CAGF,S,CAED,kF,+EAKA,qEACA,0BACA,wBACA,sBACA,oCAEI,YACJ,qCACA,W,yD,6IAoZA,4B,oGAIA,oB,qlC,kG;;kmBC7YA,UACA,oD,YAGC,uF,cAEC,uF,C,kBAQD,iBACA,mGACA,qH,CAED,c,6C,uBC7DC,a,yBAEA,Y,8B,WAGC,U,CAED,U,C,UAGA,U,CAED,U,+B,yBAoBC,c,yBAEA,Y,8B,WAGC,U,CAED,U,C,UAGA,U,CAED,U,4BC7EA,0E,qCCoDA,+B,qCA4BA,iC,uC,UAcC,U,MAEA,U,C,2C,YAMA,a,C,YAGA,a,CAED,a,mD,0B,6CAqCA,iB,2CAIA,iB,4BAmBA,U,2C,kDAKC,S,CAED,kC,qCAQA,yB,yCAIA,+B,qCAYA,gC,oCAyBA,+BACA,4CACA,8CACA,8C,+BAcA,sBACA,oJ,6CAIA,kCACA,wDACA,0B,0M,4F,yIA1PG,gBACA,KACA,QACA,SAMA,qB;mwGCUH,0BACA,gBACA,S,yHAUA,YAEA,kD,+GAEE,4L,MAEA,6K,C,KAIF,S,uHAUA,YAEA,kD,+GAEE,6L,MAEA,8K,C,KAIF,S,iHAUA,sDACA,S,2H,+BAWC,a,CAGD,kD,mNAEE,a,C,KAIF,Y,sHAUA,8B,qIAII,IAEJ,iJACC,U,KAGD,S,iIAUA,gB,YAGC,S,CAGD,kDACC,oM,KAGD,S,8GAKA,wC,QAGC,+D,C,QAIA,+D,CAGD,kDACC,wM,KAGD,S,wDAKA,c,iH,2CAWC,a,CAGD,wkC,wJA8BA,wB,UAGC,S,C,gBAIA,4F,C,wBAIA,iB,C,0CAIA,e,CAGD,gMAEA,8B,I,YAIC,4FACA,kGACA,kG,kBAEA,4FACA,kGACA,mG,kBAEA,kGACA,kG,C,QAIA,wB,CAGD,S,oH,gBAOC,S,CAGD,gG,oG,gBAOC,S,CAGD,gG,oG,gBAOC,S,CAGD,gG,oGCrQA,wBAKA,oLAKA,S,6I,eAQC,2C,CAGD,oJAEC,UAGA,6F,yB,gN,eAWA,2C,CAGD,iJAEC,+JACC,gB,KAGD,2BAEA,e,K,kJAUD,yBACA,aAEA,wDAEC,6JAEC,yWAEI,oE,OACF,eACA,yF,C,K,K,KASJ,S,4HAOA,mBAEI,kCAEH,oCAEI,kCACH,2OADsB,W,CAJA,W,C,4H,0JAiBvB,wN,CAED,c,kJAQI,yCAEC,yCAEH,c,kB,gB,sBAOG,yJ,iBAEE,S,C,K,C,uBAMH,8G,C,CAjBoB,W,CAFD,W,CA4BvB,c,6KASA,oCACA,oCAEA,+B,yKAOI,gDAEC,qJACH,oNACA,oBAFiC,W,CAFJ,W,C,wJAa/B,kCACA,mCACA,Y,8IAKA,2BACA,4BACA,Y,6HAKA,uB,4G,sBAMC,oH,CAED,S,+JAKA,aACA,cACA,c,iCAIC,wCACA,uRACA,wRAEA,oCACA,kNAEA,QAEA,wC,UAGE,eACA,M,CAGD,e,MAGC,gR,MAEA,gR,CAGD,oNACA,c,aAEC,I,CAED,K,C,CAMF,S,oHCvOA,4C,oEAOA,6D,iHAIA,aACA,4M,2GAIA,mD,+MAMA,kzB,eAOC,g0BAGA,y0B,6BAKC,qNACA,qNAIA,kP,C,CAKF,a,oMAOA,aAEA,mBACA,2BACA,yBACA,qBAEA,0WACA,kXACA,kYAEA,c,Q,gBAMC,W,eAGC,0Z,C,MAKD,uB,eAIC,0Z,CAED,uB,eAEC,0Z,C,CAKF,S,wHAmBA,iCAEA,eAEA,S,kFAKA,aAEA,wJACC,uB,KAGD,YACA,QACA,QACA,kBACA,kBACA,S,kHAKA,kC,mIAMI,0CACH,iPADqC,W,C,oIAQtC,aAEA,kBAEI,0CAEH,uM,uBAGC,8G,oBAEA,M,CAGD,6WAEA,eAZ8B,W,CAgB/B,S,sHAMA,aACA,wJACC,kN,KAED,S,mIAOA,kBAEA,2XACA,YAEI,0CAEH,mG,wLAGC,oL,8LAEA,oL,C,wLAIA,oL,8LAEA,oL,CAbgC,W,CAiBlC,Y,6GAKA,gB,2HAMA,MACA,M,sIAMA,UACA,U,kIAKA,YACA,Y,iHAKA,gBACA,gB,uHAMA,eAEA,+JACC,mB,KAGD,gNACA,gNAEA,S,iIAMA,WACA,kBACA,kYACA,IACI,0CACH,gZ,QAEC,I,cAEA,I,CAL6B,W,CAQ/B,sB,wHAMA,aACA,yJACC,wB,KAED,S,+HAOA,+XAEA,IAEA,yJ,2CAGE,W,C,KAKF,a,qFAUA,uD,qFAUI,QAEJ,wJ,mMAGE,I,C,KAKF,S,yIAOI,QAEJ,wJ,mMAGE,I,C,KAKF,S,yIAOI,QAEJ,wJ,mMAGE,I,C,KAKF,S,wIAOI,QAEJ,wJ,mMAGE,I,C,KAKF,S,+MAUA,MAEA,MACA,MACA,YACA,YAEG,uC,MAEF,yJACC,8D,K,MAGQ,uC,MAET,yJAEC,yJAEI,8B,iBACF,6B,C,K,K,C,C,uBAWH,wJACC,mC,KAGD,2OACA,2OAEG,uB,kBACF,S,C,MAID,S,C,4CAKA,4BACA,qBACA,gC,CAGD,MACA,MAEA,S,sKAOA,eAEA,qCAEA,I,8B,SAIC,2J,gEAEE,a,CAGD,yD,oBAGC,a,C,KAKF,2J,gEAGE,a,CAGD,yD,oBAGC,a,C,K,CAOH,oLACA,oLAEA,S,qJAMA,I,8B,SAIC,2J,6DAEE,a,C,KAIF,2J,6DAEE,a,C,K,CAMH,Y,4HAMA,wJACC,qL,KAKD,uB,8GAOA,wJACC,qL,KAED,uB,6HAOA,mHAEI,uDACH,2HADoC,W,CAIrC,W,oHAOA,4C,oDAcA,mBAKA,S,iEAIA,2B,yGAKA,8E,wJASI,SAEJ,MACA,MAEA,YACA,YAIA,I,8B,SAGC,0B,kBAEC,sB,C,oC,SAID,MAEA,uC,yBAGC,c,CAGD,+BACA,oBACA,8CAEA,wJACC,mC,KAGD,mOACA,mO,CAUD,MACA,MAEA,S,sIAKA,YACA,Y,iHAKA,gBACA,gB,2HAKA,MACA,M,sIAKA,UACA,U,+HAKA,gB,uHAKA,+D,sJAMA,4C,oFAGC,c,CAGD,yDACA,uCAEA,oBACA,oBAEA,mG,yJAaA,0C,2HAKA,6C,oHAKA,kC,yGC5tBA,0F,gBAUC,a,CAGD,S,sJAKA,+BACA,cACA,yE,OACC,6L,OAED,6E,kB,a,OACC,qB,KAED,e,wR,wBAaC,UAEA,4BAEA,UAEA,mDAEI,mCAEC,mCAEH,oB,kBAGC,cACA,2C,CANoB,W,CAFD,W,C,CAiBvB,yE,OACC,+G,O,yNAOD,8B,sIAMA,iJAEC,0J,UAGE,sEACA,M,C,K,K,uIAYH,iJAEC,sJ,UAGE,Y,C,K,KAOH,a,+GAMA,uC,oLAOA,iE,OACC,UACA,6F,O,uOAMD,kDACA,8DACA,gB,+IAKA,+J,kBAEE,Y,C,KAGF,a,2IAKA,+J,sBAEE,Y,C,KAGF,a,iIAKA,gC,uHAKA,cACA,c,iIAKA,oD,8HAKA,U,yHAKA,U,qHAKA,e,4GAKA,e,qHAIA,8FACA,8FACA,kGACA,kG,qL,qBASC,c,CAGD,OACA,mB,QAGC,c,cAEA,a,C,QAIA,c,cAEA,a,CAGD,OACA,OAEA,mDAEA,yBACA,yBAEI,mCAEC,mCAEA,oB,kBAEF,yJAGI,yD,aACF,a,CAGE,oE,wCAEF,+BACA,yFACG,qE,QACF,2BACA,4F,CAED,a,C,K,CAnBkB,W,CAFD,W,C,0BAkCrB,c,CA2BD,S,0HAMA,8D,iIAKA,oG,kJAKA,kC,sIC9TA,YACA,qJ,UAEE,O,CAED,sM,K,qCAOD,kDACC,sM,K,gBCTD,gD,iFAQA,yJ,yBAGE,a,C,iBAGA,Y,C,KAKF,a,mIAOA,aAEA,yJ,yBAGE,a,C,iBAGA,e,C,KAKF,S,6IAOA,e,WAGC,qH,iBAEA,oI,C,WAIA,qH,iBAEA,oI,CAGD,S,uJAOA,eAEA,kDACA,mD,WAGC,kJ,iBAEA,kI,C,WAIA,mJ,iBAEA,kI,CAGD,S,sLASA,yBAEA,wGACA,wCACA,kBACA,mBAEA,QACA,QAEA,0CAEA,MACA,MAEA,uBACA,uBACA,uBACA,uBAEA,e,kB,0CAOE,iH,gDAGA,sI,MAEA,a,C,C,kB,0CAOA,iH,gDAGA,sI,MAEA,a,C,CAIF,S,gHC/IA,kC,uD,mBAUC,+B,C,wIAOD,6J,UAGE,uPACA,0DACA,M,C,K,kIASF,yJ,UAEE,Y,C,KAGF,a,kIAKA,yJ,iBAEE,Y,C,KAGF,a,6HAKA,2B,olW;w2WC1CA,+C,0EAUA,8CAEC,Q,CAED,qHACA,+BACA,mBACA,iB,cAEC,mB,C,0G,cAMA,iB,CAED,qHACA,+BACA,mBACA,iB,cAEC,mB,CAED,S,qH,qBAKC,S,CAED,Y,c,oBAIE,S,C,M,WAMA,a,C,oBAGA,S,C,CAIF,S,+IAIA,yB,WAEC,iB,CAED,kH,gI,kCAKC,iB,CAED,uC,4JAKA,oC,QAEC,c,C,QAIA,wC,gBAEC,8GACA,c,C,CAKF,I,QAEC,sBACA,oCACA,QACA,I,CAID,SAEA,c,kG,QCJC,S,CAED,S,uBAaA,oB,8D,QAKC,S,CAED,yB,4DAIA,gB,4DAIA,yB,+DAIA,uC,4EAIA,yCACA,+EACA,+EACA,0lB,yOAkBA,sCACA,mDACC,4B,iBAED,gCAEA,kDAQG,eAAH,mC,OACC,sDACA,oC,OAEA,qC,O,kTAKD,8C,qB,kBAIE,Y,CAED,myB,C,QAIA,2J,uBAEE,a,C,K,C,QAMF,2J,uBAEE,a,C,K,CAKH,Y,2B,kBAKC,a,CAED,mL,uD,kBAKC,kD,CAED,uG,sD,kBAKC,a,CAED,kL,0D,kBAKC,kD,CAED,uG,yHAoBI,8DACJ,wJACC,sX,QAGC,I,C,QAIA,I,C,KAIF,wJACC,sX,QAGC,I,C,QAIA,I,C,K,aAMD,Y,C,kBAIA,I,QAGC,sB,QAGC,MACA,sB,MAEA,MACA,M,QAEC,I,MAEA,K,C,C,MAIF,sB,QAGC,MACA,sB,MAEA,MACA,M,QAEC,I,MAEA,K,C,C,CAKH,YACA,K,QAEC,M,C,2OAII,K,QAEH,M,CAGD,aACA,wGACA,wG,CAGD,S,CAID,a,+BAMI,wBACA,wBACJ,Y,6DAKI,WACA,WACJ,Y,yFAIA,wB,+FAIA,wB,qGAIA,wCACA,e,qNASA,yBACA,I,6DAUC,I,aAEC,K,CAED,mB,CAED,0B,eAEC,+G,CAKD,4JACC,QACA,S,oF,MAIC,O,C,OAIA,kB,CAED,0BACA,yH,OAEC,kB,CAID,8DACA,oDACA,YACA,Y,yBAGD,+G,kMAKA,WACA,gB,SAGC,qB,CAGE,uF,MACF,qB,CAGD,8CACI,S,QAEH,8C,CAGD,QACA,cACA,kHACA,gBACA,gB,kBAEC,kHACA,cACA,c,C,0BAKA,wB,kBAEI,6F,QACF,O,gCAEA,O,C,C,CAKH,M,kB,kB,QAIG,K,cAEA,K,MAEA,K,C,MAGD,K,C,CAIF,iB,82BAMA,uBACA,mBAEA,gKACC,ka,uHA4BC,mH,C,wHAGA,oH,C,KAIF,0CACA,6CACA,mBACA,mBACA,mBAEA,yBAEA,+KACC,mGACA,oGACA,oDAEA,oGACA,eACA,4GACG,uF,OACF,2BACA,oBACA,qCACA,K,cAEC,O,CAED,SAGA,4I,+B,WAEK,kBACJ,oDAMA,WACA,eACA,kB,qCAEC,QACA,yC,C,qCAGA,QACA,+B,C,qC,WAGG,kBACJ,oDAMA,WACA,oJACA,aACA,YACA,+BACA,YAEA,eACA,kB,qCAGC,QACA,yC,C,qCAGA,QACA,+B,C,C,gCAKD,U,CAED,kCACA,kB,C,0BAIA,qB,gB,+BASE,WACA,UACA,+C,MAEA,K,SAEC,O,CAED,WACA,W,OAIC,4B,MAEA,0B,CAED,oB,C,MAGD,oBACA,U,C,C,yBAMH,4DACA,gLACC,gBACA,sPACA,uGAEA,uGAEA,wE,wG,2B,sCAKG,mB,CAED,M,qBAGC,O,CAED,8CACA,kCACA,6CACA,iCACA,iD,MAEA,6BACA,8B,C,CAIF,+BACA,wE,qB,aAGC,wE,0DAEA,wE,CAGD,+BAEA,wIACA,0GAGA,sG,a,mIAIE,uBACA,2B,MAEA,uBACA,yB,C,C,0BAQH,2CACA,4KACC,yEAMA,4C,QACC,4C,QACC,oKAEA,K,cAEC,O,CAED,gGACA,qEACA,+IACA,wGACA,kBACA,a,iCAEC,qB,C,QAGF,gB,Q,0BAIF,iLACC,kJAaA,4C,QACC,4C,QACC,yDACA,qEACA,kJACA,wGACA,kBACA,a,iCAEC,qB,CAED,kG,uB,QAKD,gB,Q,4BAKF,kLACC,gBACA,0GACA,4BACA,uGACA,gVACA,uGACA,SAEG,4BAAH,kD,QACC,0KACC,6CACA,W,+BAEC,Q,iEAEA,Q,MAGA,Q,C,OAIA,oB,CAED,4BACA,4I,QAEC,oB,CAED,gC,OAGC,4E,CAED,4RACC,mB,mBAEC,gBACA,gB,C,M,WAGF,iN,WACA,iN,WAGC,Q,C,4B,Q,OAOF,eACA,wB,OAEC,UACA,U,0BAEC,oBACA,6C,M,qB,oDAKC,sCACA,sB,WACA,iN,CAED,oBACA,qB,C,MAIE,8F,O,0B,2BAGA,qBACA,2C,C,iC,2BAIA,oBACA,6C,C,C,C,C,C,qB,aAUA,8F,QAEF,4RACC,iBACA,kB,WAEC,eACA,kEACA,M,C,WAGA,eACA,kEACA,M,C,M,0BAMD,U,C,C,C,eAKF,8C,C,C,4BAOH,kKACC,4BACA,8BACA,SACA,kD,QACC,wH,Q,WAEC,4BACA,oKACA,0KACC,4BACA,yE,Q,W,mDAGE,oB,CAED,iH,QAEC,oB,CAED,QACG,8F,OACF,oB,C,0BAGA,oB,CAED,K,cAEC,O,CAED,0EACA,8HACA,WACA,W,qBAEC,oB,MAEA,oB,CAED,8I,+BAEC,2C,C,Q,4B,e,Q,WAKH,4BACA,oKACA,0KACC,4BACA,yE,Q,W,mDAGE,oB,CAED,iH,QAEC,oB,CAED,QACG,8F,OACF,oB,C,0BAGA,oB,CAED,K,cAEC,O,CAED,0EACA,8HACA,WACA,W,qBAEC,oB,MAEA,oB,CAED,8I,+BAEC,2C,C,uB,MAGD,Q,Q,4B,Q,Q,OAMH,W,+B,WAEC,aACA,qB,qC,WAGA,aACA,qB,C,C,4BAOH,6KACC,gBACA,0GAEA,uGACA,iU,aAIC,qB,M,2B,cAIE,qB,uIAEA,oB,MAEA,oB,C,mBAGD,oB,mBAGA,oB,C,C,+CAMD,qB,CAIE,8F,OACF,oBACA,qB,C,MAIF,6JACC,8B,MAGD,iF,ihCAUA,gDACA,8H,gPAIA,mCACA,0BACA,gGACA,SACA,e,2NAIA,QACI,gBAEJ,6BACA,4JACC,4J,UAEE,a,C,qBAGA,iB,C,qBAGA,iB,C,K,KAKC,iDACH,gHACA,+BAFoC,W,CAKrC,yDACA,gGACA,SAEA,e,iLAKA,+BAIA,wJ,YAEE,Q,C,YAGA,Q,C,KAKF,sFAQA,4JACC,yI,KAMD,S,uJAIA,8F,gLAqCA,+G,m3X,4F,4FAhoCG,qKC0JA,4qEAlKA,oK,U,0B,YA2BE,W,MAEA,S,C,MAIE,mG,MACF,iI,8B,S,kGAGK,8F,MACF,S,C,C,C,C,C,CASN,S,wI,U,0B,YAiCG,W,MAEA,S,C,MAIE,mG,MACF,iI,8B,S,kGAGK,8F,MACF,S,C,C,C,C,C,CASN,S,oI,U,0B,YA6BG,W,MAEA,S,C,MAIE,mG,MACF,iI,8B,S,kGAGK,8F,MACF,S,C,C,C,C,C,gB,aAQJ,U,C,gB,aAIA,U,C,CAKF,S,OD7GC,2GASA,gFAQA,oEAMA;mhFE/FH,6J,wLAQA,4I,gHAIA,0C,iIAIA,8I,iLAOA,kJ,qGAOA,2C,0IAMA,4G,6IA8BA,wF,gLAIA,8G,6IAIA,yJ,4MAUA,uM,qMAWA,cACA,6BACA,oJACC,iH,yBAED,e,0PAeA,wCACA,wP,+OAKA,mP,kNAIA,qCACA,wJACC,6P,yBAED,e,oPAKA,4Q,gJAIA,glD,kL,4F,4F,4F,oB,I,mB"} diff --git a/frontend/assets/plugin_scripts/jsexport.js.map.meta b/frontend/assets/plugin_scripts/jsexport.js.map.meta deleted file mode 100644 index 619f963..0000000 --- a/frontend/assets/plugin_scripts/jsexport.js.map.meta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ver": "1.0.1", - "uuid": "5a2059cd-f691-4ffa-bdc9-7e1232295450", - "subMetas": {} -} \ No newline at end of file diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist index 31849f7..d61ba7b 100644 --- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist +++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist @@ -15,7 +15,7 @@ spriteSourceSize {112,128} textureRect - {{806,750},{112,128}} + {{384,989},{112,128}} textureRotated @@ -30,7 +30,7 @@ spriteSourceSize {112,128} textureRect - {{0,1076},{112,128}} + {{256,990},{112,128}} textureRotated @@ -60,7 +60,7 @@ spriteSourceSize {80,128} textureRect - {{528,515},{80,128}} + {{940,0},{80,128}} textureRotated @@ -75,7 +75,7 @@ spriteSourceSize {80,128} textureRect - {{934,640},{80,128}} + {{940,128},{80,128}} textureRotated @@ -90,7 +90,7 @@ spriteSourceSize {112,128} textureRect - {{128,1076},{112,128}} + {{128,1082},{112,128}} textureRotated @@ -105,7 +105,7 @@ spriteSourceSize {112,128} textureRect - {{678,862},{112,128}} + {{0,1188},{112,128}} textureRotated @@ -150,7 +150,7 @@ spriteSourceSize {80,128} textureRect - {{934,768},{80,128}} + {{940,256},{80,128}} textureRotated @@ -165,7 +165,7 @@ spriteSourceSize {80,128} textureRect - {{934,896},{80,128}} + {{937,384},{80,128}} textureRotated @@ -180,9 +180,9 @@ spriteSourceSize {80,128} textureRect - {{806,958},{80,128}} + {{528,515},{80,128}} textureRotated - + Atk2_0.png @@ -195,7 +195,7 @@ spriteSourceSize {80,128} textureRect - {{934,1024},{80,128}} + {{936,512},{80,128}} textureRotated @@ -225,7 +225,7 @@ spriteSourceSize {128,112} textureRect - {{128,964},{128,112}} + {{0,1076},{128,112}} textureRotated @@ -240,7 +240,7 @@ spriteSourceSize {96,96} textureRect - {{912,1152},{96,96}} + {{688,1357},{96,96}} textureRotated @@ -255,7 +255,7 @@ spriteSourceSize {96,112} textureRect - {{340,1197},{96,112}} + {{240,1360},{96,112}} textureRotated @@ -270,7 +270,7 @@ spriteSourceSize {96,112} textureRect - {{452,1196},{96,112}} + {{352,1358},{96,112}} textureRotated @@ -285,7 +285,7 @@ spriteSourceSize {96,112} textureRect - {{564,1155},{96,112}} + {{920,1072},{96,112}} textureRotated @@ -300,7 +300,7 @@ spriteSourceSize {96,112} textureRect - {{608,1043},{96,112}} + {{914,1184},{96,112}} textureRotated @@ -330,7 +330,7 @@ spriteSourceSize {128,112} textureRect - {{678,750},{128,112}} + {{806,631},{128,112}} textureRotated @@ -540,7 +540,7 @@ spriteSourceSize {112,112} textureRect - {{448,1293},{112,112}} + {{802,1149},{112,112}} textureRotated @@ -555,9 +555,9 @@ spriteSourceSize {96,112} textureRect - {{660,1155},{96,112}} + {{800,1261},{96,112}} textureRotated - + Atked1_3.png @@ -570,7 +570,7 @@ spriteSourceSize {128,112} textureRect - {{384,988},{128,112}} + {{806,743},{128,112}} textureRotated @@ -645,7 +645,7 @@ spriteSourceSize {114,112} textureRect - {{0,1188},{114,112}} + {{806,1037},{114,112}} textureRotated @@ -660,9 +660,9 @@ spriteSourceSize {114,112} textureRect - {{114,1188},{114,112}} + {{384,1213},{114,112}} textureRotated - + Dashing_3.png @@ -675,7 +675,7 @@ spriteSourceSize {114,112} textureRect - {{0,1300},{114,112}} + {{464,1327},{114,112}} textureRotated @@ -690,7 +690,7 @@ spriteSourceSize {114,112} textureRect - {{112,1300},{114,112}} + {{496,1213},{114,112}} textureRotated @@ -705,7 +705,7 @@ spriteSourceSize {114,112} textureRect - {{0,1300},{114,112}} + {{464,1327},{114,112}} textureRotated @@ -720,7 +720,7 @@ spriteSourceSize {114,112} textureRect - {{224,1300},{114,112}} + {{576,1327},{114,112}} textureRotated @@ -735,56 +735,11 @@ spriteSourceSize {114,112} textureRect - {{336,1293},{114,112}} + {{688,1043},{114,112}} textureRotated - + GetUp1_1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {128,118} - spriteSourceSize - {128,118} - textureRect - {{384,634},{128,118}} - textureRotated - - - GetUp1_2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {128,118} - spriteSourceSize - {128,118} - textureRect - {{384,752},{128,118}} - textureRotated - - - GetUp1_3.png - - aliases - - spriteOffset - {0,0} - spriteSize - {128,118} - spriteSourceSize - {128,118} - textureRect - {{256,753},{128,118}} - textureRotated - - - GetUp1_4.png aliases @@ -799,7 +754,7 @@ textureRotated - GetUp1_5.png + GetUp1_2.png aliases @@ -814,6 +769,51 @@ textureRotated + GetUp1_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {128,118} + spriteSourceSize + {128,118} + textureRect + {{384,753},{128,118}} + textureRotated + + + GetUp1_4.png + + aliases + + spriteOffset + {0,0} + spriteSize + {128,118} + spriteSourceSize + {128,118} + textureRect + {{678,631},{128,118}} + textureRotated + + + GetUp1_5.png + + aliases + + spriteOffset + {0,0} + spriteSize + {128,118} + spriteSourceSize + {128,118} + textureRect + {{384,871},{128,118}} + textureRotated + + GetUp1_6.png aliases @@ -825,7 +825,7 @@ spriteSourceSize {128,118} textureRect - {{384,870},{128,118}} + {{256,872},{128,118}} textureRotated @@ -840,7 +840,7 @@ spriteSourceSize {128,118} textureRect - {{256,871},{128,118}} + {{128,964},{128,118}} textureRotated @@ -855,7 +855,7 @@ spriteSourceSize {70,128} textureRect - {{940,0},{70,128}} + {{608,531},{70,128}} textureRotated @@ -870,7 +870,7 @@ spriteSourceSize {70,128} textureRect - {{940,128},{70,128}} + {{608,659},{70,128}} textureRotated @@ -885,7 +885,7 @@ spriteSourceSize {70,128} textureRect - {{940,256},{70,128}} + {{608,787},{70,128}} textureRotated @@ -900,7 +900,7 @@ spriteSourceSize {70,128} textureRect - {{937,384},{70,128}} + {{608,915},{70,128}} textureRotated @@ -915,9 +915,9 @@ spriteSourceSize {70,128} textureRect - {{936,512},{70,128}} + {{128,1290},{70,128}} textureRotated - + Idle1_14.png @@ -930,9 +930,9 @@ spriteSourceSize {70,128} textureRect - {{608,531},{70,128}} + {{0,1300},{70,128}} textureRotated - + Idle1_15.png @@ -945,9 +945,9 @@ spriteSourceSize {70,128} textureRect - {{608,659},{70,128}} + {{0,1370},{70,128}} textureRotated - + Idle1_2.png @@ -960,9 +960,9 @@ spriteSourceSize {70,128} textureRect - {{608,659},{70,128}} + {{0,1370},{70,128}} textureRotated - + Idle1_3.png @@ -975,9 +975,9 @@ spriteSourceSize {70,128} textureRect - {{608,531},{70,128}} + {{0,1300},{70,128}} textureRotated - + Idle1_4.png @@ -990,71 +990,11 @@ spriteSourceSize {70,128} textureRect - {{936,512},{70,128}} + {{128,1290},{70,128}} textureRotated - + Idle1_5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {70,128} - spriteSourceSize - {70,128} - textureRect - {{937,384},{70,128}} - textureRotated - - - Idle1_6.png - - aliases - - spriteOffset - {0,0} - spriteSize - {70,128} - spriteSourceSize - {70,128} - textureRect - {{940,256},{70,128}} - textureRotated - - - Idle1_7.png - - aliases - - spriteOffset - {0,0} - spriteSize - {70,128} - spriteSourceSize - {70,128} - textureRect - {{940,128},{70,128}} - textureRotated - - - Idle1_8.png - - aliases - - spriteOffset - {0,0} - spriteSize - {70,128} - spriteSourceSize - {70,128} - textureRect - {{608,787},{70,128}} - textureRotated - - - Idle1_9.png aliases @@ -1069,6 +1009,66 @@ textureRotated + Idle1_6.png + + aliases + + spriteOffset + {0,0} + spriteSize + {70,128} + spriteSourceSize + {70,128} + textureRect + {{608,787},{70,128}} + textureRotated + + + Idle1_7.png + + aliases + + spriteOffset + {0,0} + spriteSize + {70,128} + spriteSourceSize + {70,128} + textureRect + {{608,659},{70,128}} + textureRotated + + + Idle1_8.png + + aliases + + spriteOffset + {0,0} + spriteSize + {70,128} + spriteSourceSize + {70,128} + textureRect + {{806,967},{70,128}} + textureRotated + + + Idle1_9.png + + aliases + + spriteOffset + {0,0} + spriteSize + {70,128} + spriteSourceSize + {70,128} + textureRect + {{678,973},{70,128}} + textureRotated + + InAirAtk1_0.png aliases @@ -1080,7 +1080,7 @@ spriteSourceSize {112,96} textureRect - {{228,1197},{112,96}} + {{128,1360},{112,96}} textureRotated @@ -1125,7 +1125,7 @@ spriteSourceSize {128,112} textureRect - {{256,989},{128,112}} + {{678,749},{128,112}} textureRotated @@ -1140,7 +1140,7 @@ spriteSourceSize {96,96} textureRect - {{672,1363},{96,96}} + {{784,1357},{96,96}} textureRotated @@ -1155,7 +1155,7 @@ spriteSourceSize {80,96} textureRect - {{672,1267},{80,96}} + {{934,976},{80,96}} textureRotated @@ -1170,7 +1170,7 @@ spriteSourceSize {112,112} textureRect - {{560,1292},{112,112}} + {{688,1155},{112,112}} textureRotated @@ -1185,7 +1185,7 @@ spriteSourceSize {128,96} textureRect - {{384,1100},{128,96}} + {{256,1102},{128,96}} textureRotated @@ -1200,9 +1200,9 @@ spriteSourceSize {80,112} textureRect - {{800,1038},{80,112}} + {{934,640},{80,112}} textureRotated - + InAirIdle1_1.png @@ -1215,9 +1215,9 @@ spriteSourceSize {80,112} textureRect - {{800,1118},{80,112}} + {{934,752},{80,112}} textureRotated - + InAirIdle1_2.png @@ -1230,7 +1230,7 @@ spriteSourceSize {64,128} textureRect - {{678,974},{64,128}} + {{256,1294},{64,128}} textureRotated @@ -1245,9 +1245,9 @@ spriteSourceSize {80,112} textureRect - {{756,1198},{80,112}} + {{934,864},{80,112}} textureRotated - + InAirIdle1_4.png @@ -1260,9 +1260,9 @@ spriteSourceSize {80,96} textureRect - {{752,1278},{80,96}} + {{608,1043},{80,96}} textureRotated - + InAirIdle1_5.png @@ -1275,7 +1275,7 @@ spriteSourceSize {80,96} textureRect - {{768,1358},{80,96}} + {{608,1139},{80,96}} textureRotated @@ -1290,7 +1290,7 @@ spriteSourceSize {80,96} textureRect - {{868,1248},{80,96}} + {{688,1267},{80,96}} textureRotated @@ -1305,9 +1305,9 @@ spriteSourceSize {96,112} textureRect - {{704,1038},{96,112}} + {{912,1296},{96,112}} textureRotated - + InAirIdle1_8.png @@ -1320,7 +1320,7 @@ spriteSourceSize {96,128} textureRect - {{256,1101},{96,128}} + {{128,1194},{96,128}} textureRotated @@ -1335,7 +1335,7 @@ spriteSourceSize {96,128} textureRect - {{806,862},{96,128}} + {{256,1198},{96,128}} textureRotated @@ -1414,6 +1414,51 @@ textureRotated + TurnAround1_1.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,128} + spriteSourceSize + {112,128} + textureRect + {{806,855},{112,128}} + textureRotated + + + TurnAround1_2.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,128} + spriteSourceSize + {112,128} + textureRect + {{678,861},{112,128}} + textureRotated + + + TurnAround1_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,128} + spriteSourceSize + {112,128} + textureRect + {{384,1101},{112,128}} + textureRotated + + Walking_1.png aliases @@ -1455,7 +1500,7 @@ spriteSourceSize {119,128} textureRect - {{680,512},{119,128}} + {{272,515},{119,128}} textureRotated @@ -1470,7 +1515,7 @@ spriteSourceSize {119,128} textureRect - {{808,512},{119,128}} + {{128,608},{119,128}} textureRotated @@ -1485,7 +1530,7 @@ spriteSourceSize {119,128} textureRect - {{272,515},{119,128}} + {{0,720},{119,128}} textureRotated @@ -1500,7 +1545,7 @@ spriteSourceSize {119,128} textureRect - {{128,608},{119,128}} + {{400,515},{119,128}} textureRotated @@ -1515,7 +1560,7 @@ spriteSourceSize {119,128} textureRect - {{0,720},{119,128}} + {{256,634},{119,128}} textureRotated @@ -1530,7 +1575,7 @@ spriteSourceSize {119,128} textureRect - {{400,515},{119,128}} + {{128,727},{119,128}} textureRotated @@ -1545,7 +1590,7 @@ spriteSourceSize {119,128} textureRect - {{678,631},{119,128}} + {{0,839},{119,128}} textureRotated @@ -1560,7 +1605,7 @@ spriteSourceSize {119,128} textureRect - {{806,631},{119,128}} + {{384,634},{119,128}} textureRotated @@ -1575,7 +1620,7 @@ spriteSourceSize {119,128} textureRect - {{256,634},{119,128}} + {{680,512},{119,128}} textureRotated @@ -1590,7 +1635,7 @@ spriteSourceSize {119,128} textureRect - {{128,727},{119,128}} + {{808,512},{119,128}} textureRotated @@ -1605,7 +1650,7 @@ spriteSourceSize {119,128} textureRect - {{0,839},{119,128}} + {{256,753},{119,128}} textureRotated @@ -1621,9 +1666,9 @@ realTextureFileName KnifeGirl.png size - {1014,1459} + {1024,1456} smartupdate - $TexturePacker:SmartUpdate:4ca72309f7dc04bba6be361462471d91:9a48d10caa37a76ff8c43fb72bce6103:1ae107e0c6667a1ecb5ed98687517e0e$ + $TexturePacker:SmartUpdate:8fd7507b5e24a1de6da5e4a6c568fcd3:d861e924a13180a640774a9c85662e57:1ae107e0c6667a1ecb5ed98687517e0e$ textureFileName KnifeGirl.png diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta index 2041d2d..2c5637b 100644 --- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta +++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta @@ -3,8 +3,8 @@ "uuid": "579bc0c1-f5e2-4a5d-889b-9d567e53b0e6", "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "size": { - "width": 1014, - "height": 1459 + "width": 1024, + "height": 1456 }, "type": "Texture Packer", "subMetas": { @@ -17,8 +17,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 750, + "trimX": 384, + "trimY": 989, "width": 112, "height": 128, "rawWidth": 112, @@ -39,8 +39,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 1076, + "trimX": 256, + "trimY": 990, "width": 112, "height": 128, "rawWidth": 112, @@ -83,8 +83,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 528, - "trimY": 515, + "trimX": 940, + "trimY": 0, "width": 80, "height": 128, "rawWidth": 80, @@ -105,8 +105,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 640, + "trimX": 940, + "trimY": 128, "width": 80, "height": 128, "rawWidth": 80, @@ -128,7 +128,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 128, - "trimY": 1076, + "trimY": 1082, "width": 112, "height": 128, "rawWidth": 112, @@ -149,8 +149,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 862, + "trimX": 0, + "trimY": 1188, "width": 112, "height": 128, "rawWidth": 112, @@ -215,8 +215,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 768, + "trimX": 940, + "trimY": 256, "width": 80, "height": 128, "rawWidth": 80, @@ -237,8 +237,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 896, + "trimX": 937, + "trimY": 384, "width": 80, "height": 128, "rawWidth": 80, @@ -256,11 +256,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 958, + "trimX": 528, + "trimY": 515, "width": 80, "height": 128, "rawWidth": 80, @@ -281,8 +281,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 1024, + "trimX": 936, + "trimY": 512, "width": 80, "height": 128, "rawWidth": 80, @@ -325,8 +325,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 964, + "trimX": 0, + "trimY": 1076, "width": 128, "height": 112, "rawWidth": 128, @@ -347,8 +347,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 912, - "trimY": 1152, + "trimX": 688, + "trimY": 1357, "width": 96, "height": 96, "rawWidth": 96, @@ -369,8 +369,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 340, - "trimY": 1197, + "trimX": 240, + "trimY": 1360, "width": 96, "height": 112, "rawWidth": 96, @@ -391,8 +391,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 452, - "trimY": 1196, + "trimX": 352, + "trimY": 1358, "width": 96, "height": 112, "rawWidth": 96, @@ -413,8 +413,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 564, - "trimY": 1155, + "trimX": 920, + "trimY": 1072, "width": 96, "height": 112, "rawWidth": 96, @@ -435,8 +435,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 1043, + "trimX": 914, + "trimY": 1184, "width": 96, "height": 112, "rawWidth": 96, @@ -479,8 +479,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 750, + "trimX": 806, + "trimY": 631, "width": 128, "height": 112, "rawWidth": 128, @@ -787,8 +787,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 448, - "trimY": 1293, + "trimX": 802, + "trimY": 1149, "width": 112, "height": 112, "rawWidth": 112, @@ -806,11 +806,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 660, - "trimY": 1155, + "trimX": 800, + "trimY": 1261, "width": 96, "height": 112, "rawWidth": 96, @@ -831,8 +831,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 988, + "trimX": 806, + "trimY": 743, "width": 128, "height": 112, "rawWidth": 128, @@ -941,8 +941,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 1188, + "trimX": 806, + "trimY": 1037, "width": 114, "height": 112, "rawWidth": 114, @@ -960,11 +960,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 114, - "trimY": 1188, + "trimX": 384, + "trimY": 1213, "width": 114, "height": 112, "rawWidth": 114, @@ -985,8 +985,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 1300, + "trimX": 464, + "trimY": 1327, "width": 114, "height": 112, "rawWidth": 114, @@ -1007,8 +1007,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 112, - "trimY": 1300, + "trimX": 496, + "trimY": 1213, "width": 114, "height": 112, "rawWidth": 114, @@ -1029,8 +1029,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 1300, + "trimX": 464, + "trimY": 1327, "width": 114, "height": 112, "rawWidth": 114, @@ -1051,8 +1051,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 224, - "trimY": 1300, + "trimX": 576, + "trimY": 1327, "width": 114, "height": 112, "rawWidth": 114, @@ -1070,11 +1070,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 336, - "trimY": 1293, + "trimX": 688, + "trimY": 1043, "width": 114, "height": 112, "rawWidth": 114, @@ -1095,8 +1095,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 634, + "trimX": 128, + "trimY": 846, "width": 128, "height": 118, "rawWidth": 128, @@ -1117,8 +1117,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 752, + "trimX": 0, + "trimY": 958, "width": 128, "height": 118, "rawWidth": 128, @@ -1139,7 +1139,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, + "trimX": 384, "trimY": 753, "width": 128, "height": 118, @@ -1161,8 +1161,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 846, + "trimX": 678, + "trimY": 631, "width": 128, "height": 118, "rawWidth": 128, @@ -1183,8 +1183,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 958, + "trimX": 384, + "trimY": 871, "width": 128, "height": 118, "rawWidth": 128, @@ -1205,8 +1205,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 870, + "trimX": 256, + "trimY": 872, "width": 128, "height": 118, "rawWidth": 128, @@ -1227,8 +1227,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 871, + "trimX": 128, + "trimY": 964, "width": 128, "height": 118, "rawWidth": 128, @@ -1249,8 +1249,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 0, + "trimX": 608, + "trimY": 531, "width": 70, "height": 128, "rawWidth": 70, @@ -1271,8 +1271,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 128, + "trimX": 608, + "trimY": 659, "width": 70, "height": 128, "rawWidth": 70, @@ -1293,8 +1293,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 256, + "trimX": 608, + "trimY": 787, "width": 70, "height": 128, "rawWidth": 70, @@ -1315,8 +1315,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 937, - "trimY": 384, + "trimX": 608, + "trimY": 915, "width": 70, "height": 128, "rawWidth": 70, @@ -1334,11 +1334,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 936, - "trimY": 512, + "trimX": 128, + "trimY": 1290, "width": 70, "height": 128, "rawWidth": 70, @@ -1356,11 +1356,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 531, + "trimX": 0, + "trimY": 1300, "width": 70, "height": 128, "rawWidth": 70, @@ -1378,11 +1378,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 659, + "trimX": 0, + "trimY": 1370, "width": 70, "height": 128, "rawWidth": 70, @@ -1400,11 +1400,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 659, + "trimX": 0, + "trimY": 1370, "width": 70, "height": 128, "rawWidth": 70, @@ -1422,11 +1422,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 531, + "trimX": 0, + "trimY": 1300, "width": 70, "height": 128, "rawWidth": 70, @@ -1444,11 +1444,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 936, - "trimY": 512, + "trimX": 128, + "trimY": 1290, "width": 70, "height": 128, "rawWidth": 70, @@ -1469,8 +1469,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 937, - "trimY": 384, + "trimX": 608, + "trimY": 915, "width": 70, "height": 128, "rawWidth": 70, @@ -1491,8 +1491,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 256, + "trimX": 608, + "trimY": 787, "width": 70, "height": 128, "rawWidth": 70, @@ -1513,8 +1513,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 128, + "trimX": 608, + "trimY": 659, "width": 70, "height": 128, "rawWidth": 70, @@ -1532,11 +1532,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 787, + "trimX": 806, + "trimY": 967, "width": 70, "height": 128, "rawWidth": 70, @@ -1554,11 +1554,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 608, - "trimY": 915, + "trimX": 678, + "trimY": 973, "width": 70, "height": 128, "rawWidth": 70, @@ -1579,8 +1579,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 228, - "trimY": 1197, + "trimX": 128, + "trimY": 1360, "width": 112, "height": 96, "rawWidth": 112, @@ -1645,8 +1645,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 989, + "trimX": 678, + "trimY": 749, "width": 128, "height": 112, "rawWidth": 128, @@ -1667,8 +1667,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 672, - "trimY": 1363, + "trimX": 784, + "trimY": 1357, "width": 96, "height": 96, "rawWidth": 96, @@ -1689,8 +1689,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 672, - "trimY": 1267, + "trimX": 934, + "trimY": 976, "width": 80, "height": 96, "rawWidth": 80, @@ -1711,8 +1711,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 560, - "trimY": 1292, + "trimX": 688, + "trimY": 1155, "width": 112, "height": 112, "rawWidth": 112, @@ -1733,8 +1733,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 1100, + "trimX": 256, + "trimY": 1102, "width": 128, "height": 96, "rawWidth": 128, @@ -1752,11 +1752,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 800, - "trimY": 1038, + "trimX": 934, + "trimY": 640, "width": 80, "height": 112, "rawWidth": 80, @@ -1774,11 +1774,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 800, - "trimY": 1118, + "trimX": 934, + "trimY": 752, "width": 80, "height": 112, "rawWidth": 80, @@ -1799,8 +1799,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 974, + "trimX": 256, + "trimY": 1294, "width": 64, "height": 128, "rawWidth": 64, @@ -1818,11 +1818,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 756, - "trimY": 1198, + "trimX": 934, + "trimY": 864, "width": 80, "height": 112, "rawWidth": 80, @@ -1840,11 +1840,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 752, - "trimY": 1278, + "trimX": 608, + "trimY": 1043, "width": 80, "height": 96, "rawWidth": 80, @@ -1865,8 +1865,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 768, - "trimY": 1358, + "trimX": 608, + "trimY": 1139, "width": 80, "height": 96, "rawWidth": 80, @@ -1887,8 +1887,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 868, - "trimY": 1248, + "trimX": 688, + "trimY": 1267, "width": 80, "height": 96, "rawWidth": 80, @@ -1906,11 +1906,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 704, - "trimY": 1038, + "trimX": 912, + "trimY": 1296, "width": 96, "height": 112, "rawWidth": 96, @@ -1931,8 +1931,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 1101, + "trimX": 128, + "trimY": 1194, "width": 96, "height": 128, "rawWidth": 96, @@ -1953,8 +1953,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 862, + "trimX": 256, + "trimY": 1198, "width": 96, "height": 128, "rawWidth": 96, @@ -2076,6 +2076,72 @@ "spriteType": "normal", "subMetas": {} }, + "TurnAround1_1.png": { + "ver": "1.0.4", + "uuid": "28ee1f29-e538-4d36-bb5c-275f9e3b392b", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 806, + "trimY": 855, + "width": 112, + "height": 128, + "rawWidth": 112, + "rawHeight": 128, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_2.png": { + "ver": "1.0.4", + "uuid": "211a73bb-31d7-4e6c-901e-f6939d9214e0", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 678, + "trimY": 861, + "width": 112, + "height": 128, + "rawWidth": 112, + "rawHeight": 128, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_3.png": { + "ver": "1.0.4", + "uuid": "048c41dc-fc00-4bc4-8041-6003e7c2b6e4", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 384, + "trimY": 1101, + "width": 112, + "height": 128, + "rawWidth": 112, + "rawHeight": 128, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, "Walking_1.png": { "ver": "1.0.4", "uuid": "9435195e-4560-495e-b1ae-083c0c87e8a0", @@ -2129,8 +2195,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 680, - "trimY": 512, + "trimX": 272, + "trimY": 515, "width": 119, "height": 128, "rawWidth": 119, @@ -2151,8 +2217,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 808, - "trimY": 512, + "trimX": 128, + "trimY": 608, "width": 119, "height": 128, "rawWidth": 119, @@ -2173,8 +2239,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 272, - "trimY": 515, + "trimX": 0, + "trimY": 720, "width": 119, "height": 128, "rawWidth": 119, @@ -2195,8 +2261,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 608, + "trimX": 400, + "trimY": 515, "width": 119, "height": 128, "rawWidth": 119, @@ -2217,8 +2283,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 720, + "trimX": 256, + "trimY": 634, "width": 119, "height": 128, "rawWidth": 119, @@ -2239,8 +2305,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 400, - "trimY": 515, + "trimX": 128, + "trimY": 727, "width": 119, "height": 128, "rawWidth": 119, @@ -2261,8 +2327,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 631, + "trimX": 0, + "trimY": 839, "width": 119, "height": 128, "rawWidth": 119, @@ -2283,8 +2349,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 631, + "trimX": 384, + "trimY": 634, "width": 119, "height": 128, "rawWidth": 119, @@ -2305,8 +2371,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 634, + "trimX": 680, + "trimY": 512, "width": 119, "height": 128, "rawWidth": 119, @@ -2327,8 +2393,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 727, + "trimX": 808, + "trimY": 512, "width": 119, "height": 128, "rawWidth": 119, @@ -2349,8 +2415,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 839, + "trimX": 256, + "trimY": 753, "width": 119, "height": 128, "rawWidth": 119, diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png index e6ef436..32f3856 100644 Binary files a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png and b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png differ diff --git a/frontend/assets/resources/animation/KnifeGirl/Walking.anim b/frontend/assets/resources/animation/KnifeGirl/Walking.anim index 05948e1..562c099 100644 --- a/frontend/assets/resources/animation/KnifeGirl/Walking.anim +++ b/frontend/assets/resources/animation/KnifeGirl/Walking.anim @@ -3,7 +3,7 @@ "_name": "Walking", "_objFlags": 0, "_native": "", - "_duration": 1.5166666666666666, + "_duration": 0.6333333333333333, "sample": 60, "speed": 1.2, "wrapMode": 2, @@ -13,78 +13,78 @@ "spriteFrame": [ { "frame": 0, - "value": { - "__uuid__": "c3b14ecc-a6d9-4cb3-8637-ca7b407a0f5c" - } - }, - { - "frame": 0.08333333333333333, "value": { "__uuid__": "9435195e-4560-495e-b1ae-083c0c87e8a0" } }, { - "frame": 0.18333333333333332, + "frame": 0.06666666666666667, "value": { "__uuid__": "ec048360-7a17-4f22-ba52-eb86ec1acae8" } }, { - "frame": 0.2833333333333333, + "frame": 0.11666666666666667, "value": { "__uuid__": "82bb81e3-667c-4280-8710-211f4904ef2f" } }, { - "frame": 0.4, + "frame": 0.16666666666666666, + "value": { + "__uuid__": "c3b14ecc-a6d9-4cb3-8637-ca7b407a0f5c" + } + }, + { + "frame": 0.21666666666666667, "value": { "__uuid__": "f958fb7f-ef5a-4918-81f3-564004572f45" } }, { - "frame": 0.5333333333333333, + "frame": 0.26666666666666666, "value": { "__uuid__": "8a0ecf92-db26-4206-9a80-20e749055def" } }, { - "frame": 0.65, + "frame": 0.31666666666666665, "value": { "__uuid__": "942f2e02-a700-4fbf-877e-08c93e4d4010" } }, { - "frame": 0.7666666666666667, + "frame": 0.36666666666666664, "value": { "__uuid__": "30546064-1a11-499e-8523-a82c83951c73" } }, { - "frame": 0.9, + "frame": 0.4166666666666667, "value": { "__uuid__": "515bb75f-7a1f-4500-8aa9-c895915ce19f" } }, { - "frame": 1.0333333333333334, + "frame": 0.4666666666666667, "value": { "__uuid__": "9100da6b-7582-4afb-9698-3d67d3b2012d" } }, { - "frame": 1.2166666666666666, + "frame": 0.5166666666666667, "value": { "__uuid__": "1257f72d-0cb3-4750-ae70-13c2d8eb2269" } }, { - "frame": 1.3833333333333333, + "frame": 0.5666666666666667, "value": { "__uuid__": "1d34b6db-27ba-4e26-864d-0f00d501765e" } }, { - "frame": 1.5, + "frame": 0.6166666666666667, "value": { "__uuid__": "c317a75a-52c0-4c38-9300-a064cbf4efb3" } diff --git a/frontend/assets/resources/animation/Monk/Monk.plist b/frontend/assets/resources/animation/Monk/Monk.plist index eb4280a..3e130cc 100644 --- a/frontend/assets/resources/animation/Monk/Monk.plist +++ b/frontend/assets/resources/animation/Monk/Monk.plist @@ -30,7 +30,7 @@ spriteSourceSize {95,105} textureRect - {{703,587},{95,105}} + {{1378,573},{95,105}} textureRotated @@ -45,9 +45,9 @@ spriteSourceSize {95,105} textureRect - {{1637,622},{95,105}} + {{1115,1021},{95,105}} textureRotated - + Atk1_4.png @@ -60,9 +60,9 @@ spriteSourceSize {95,105} textureRect - {{913,1018},{95,105}} + {{1254,920},{95,105}} textureRotated - + Atk1_5.png @@ -75,7 +75,7 @@ spriteSourceSize {95,105} textureRect - {{1018,1018},{95,105}} + {{1220,1025},{95,105}} textureRotated @@ -90,7 +90,7 @@ spriteSourceSize {95,105} textureRect - {{1018,1018},{95,105}} + {{1220,1025},{95,105}} textureRotated @@ -105,9 +105,9 @@ spriteSourceSize {95,105} textureRect - {{1123,1020},{95,105}} + {{1349,920},{95,105}} textureRotated - + Atk1_8.png @@ -120,7 +120,7 @@ spriteSourceSize {95,105} textureRect - {{1228,1020},{95,105}} + {{1325,1025},{95,105}} textureRotated @@ -180,7 +180,7 @@ spriteSourceSize {123,113} textureRect - {{798,576},{123,113}} + {{640,557},{123,113}} textureRotated @@ -195,7 +195,7 @@ spriteSourceSize {123,113} textureRect - {{921,571},{123,113}} + {{763,576},{123,113}} textureRotated @@ -210,7 +210,7 @@ spriteSourceSize {123,113} textureRect - {{1044,571},{123,113}} + {{576,670},{123,113}} textureRotated @@ -225,7 +225,7 @@ spriteSourceSize {123,113} textureRect - {{1167,573},{123,113}} + {{576,783},{123,113}} textureRotated @@ -240,7 +240,7 @@ spriteSourceSize {123,113} textureRect - {{1290,573},{123,113}} + {{576,896},{123,113}} textureRotated @@ -255,9 +255,9 @@ spriteSourceSize {123,113} textureRect - {{576,801},{123,113}} + {{762,689},{123,113}} textureRotated - + Atk2_4.png @@ -270,9 +270,9 @@ spriteSourceSize {123,113} textureRect - {{576,924},{123,113}} + {{762,802},{123,113}} textureRotated - + Atk2_5.png @@ -285,7 +285,7 @@ spriteSourceSize {123,113} textureRect - {{689,793},{123,113}} + {{800,998},{123,113}} textureRotated @@ -300,7 +300,7 @@ spriteSourceSize {123,113} textureRect - {{689,793},{123,113}} + {{800,998},{123,113}} textureRotated @@ -315,9 +315,9 @@ spriteSourceSize {123,113} textureRect - {{689,916},{123,113}} + {{886,576},{123,113}} textureRotated - + Atk2_8.png @@ -330,9 +330,9 @@ spriteSourceSize {123,113} textureRect - {{689,916},{123,113}} + {{886,576},{123,113}} textureRotated - + Atk2_9.png @@ -360,9 +360,9 @@ spriteSourceSize {101,123} textureRect - {{659,692},{101,123}} + {{885,689},{101,123}} textureRotated - + Atk3_10.png @@ -375,9 +375,9 @@ spriteSourceSize {101,123} textureRect - {{1413,573},{101,123}} + {{1009,571},{101,123}} textureRotated - + Atk3_11.png @@ -390,9 +390,9 @@ spriteSourceSize {101,123} textureRect - {{782,692},{101,123}} + {{913,998},{101,123}} textureRotated - + Atk3_12.png @@ -405,7 +405,7 @@ spriteSourceSize {101,123} textureRect - {{802,793},{101,123}} + {{1014,998},{101,123}} textureRotated @@ -420,9 +420,9 @@ spriteSourceSize {101,123} textureRect - {{802,916},{101,123}} + {{1132,573},{101,123}} textureRotated - + Atk3_14.png @@ -435,9 +435,9 @@ spriteSourceSize {101,123} textureRect - {{1514,499},{101,123}} + {{1255,573},{101,123}} textureRotated - + Atk3_2.png @@ -450,7 +450,7 @@ spriteSourceSize {101,123} textureRect - {{1615,499},{101,123}} + {{986,689},{101,123}} textureRotated @@ -465,9 +465,9 @@ spriteSourceSize {101,123} textureRect - {{1514,622},{101,123}} + {{1087,674},{101,123}} textureRotated - + Atk3_4.png @@ -480,9 +480,9 @@ spriteSourceSize {101,123} textureRect - {{1802,502},{101,123}} + {{1188,674},{101,123}} textureRotated - + Atk3_5.png @@ -495,7 +495,7 @@ spriteSourceSize {101,123} textureRect - {{1732,603},{101,123}} + {{1185,797},{101,123}} textureRotated @@ -510,7 +510,7 @@ spriteSourceSize {101,123} textureRect - {{1833,714},{101,123}} + {{1131,920},{101,123}} textureRotated @@ -525,7 +525,7 @@ spriteSourceSize {101,123} textureRect - {{1833,714},{101,123}} + {{1131,920},{101,123}} textureRotated @@ -540,7 +540,7 @@ spriteSourceSize {101,123} textureRect - {{1732,726},{101,123}} + {{1286,797},{101,123}} textureRotated @@ -555,9 +555,9 @@ spriteSourceSize {101,123} textureRect - {{1833,815},{101,123}} + {{1387,790},{101,123}} textureRotated - + Atk4_1.png @@ -690,7 +690,7 @@ spriteSourceSize {135,107} textureRect - {{1199,383},{135,107}} + {{1200,383},{135,107}} textureRotated @@ -705,7 +705,7 @@ spriteSourceSize {135,107} textureRect - {{1334,383},{135,107}} + {{1335,383},{135,107}} textureRotated @@ -720,7 +720,7 @@ spriteSourceSize {135,107} textureRect - {{1532,392},{135,107}} + {{1533,392},{135,107}} textureRotated @@ -735,7 +735,7 @@ spriteSourceSize {135,107} textureRect - {{1667,392},{135,107}} + {{1668,392},{135,107}} textureRotated @@ -750,7 +750,7 @@ spriteSourceSize {135,107} textureRect - {{1802,395},{135,107}} + {{1803,395},{135,107}} textureRotated @@ -795,7 +795,7 @@ spriteSourceSize {135,107} textureRect - {{786,469},{135,107}} + {{789,469},{135,107}} textureRotated @@ -975,7 +975,7 @@ spriteSourceSize {86,104} textureRect - {{1937,400},{86,104}} + {{703,452},{86,104}} textureRotated @@ -990,7 +990,7 @@ spriteSourceSize {86,104} textureRect - {{1716,499},{86,104}} + {{1951,290},{86,104}} textureRotated @@ -1305,7 +1305,7 @@ spriteSourceSize {110,63} textureRect - {{1469,383},{110,63}} + {{1470,383},{110,63}} textureRotated @@ -1320,7 +1320,7 @@ spriteSourceSize {110,63} textureRect - {{1951,290},{110,63}} + {{699,670},{110,63}} textureRotated @@ -1335,7 +1335,7 @@ spriteSourceSize {110,63} textureRect - {{640,557},{110,63}} + {{699,780},{110,63}} textureRotated @@ -1350,9 +1350,9 @@ spriteSourceSize {110,63} textureRect - {{693,1039},{110,63}} + {{699,890},{110,63}} textureRotated - + Explosion1_6.png @@ -1365,9 +1365,9 @@ spriteSourceSize {110,63} textureRect - {{803,1039},{110,63}} + {{1790,746},{110,63}} textureRotated - + Fireball1_1.png @@ -1395,9 +1395,9 @@ spriteSourceSize {117,55} textureRect - {{576,1047},{117,55}} + {{1444,913},{117,55}} textureRotated - + Fireball1_11.png @@ -1410,7 +1410,7 @@ spriteSourceSize {117,55} textureRect - {{1911,604},{117,55}} + {{1537,499},{117,55}} textureRotated @@ -1425,7 +1425,7 @@ spriteSourceSize {117,55} textureRect - {{1911,659},{117,55}} + {{1654,499},{117,55}} textureRotated @@ -1440,9 +1440,9 @@ spriteSourceSize {117,55} textureRect - {{1956,714},{117,55}} + {{1804,502},{117,55}} textureRotated - + Fireball1_14.png @@ -1455,7 +1455,7 @@ spriteSourceSize {117,55} textureRect - {{1956,831},{117,55}} + {{1859,635},{117,55}} textureRotated @@ -1470,9 +1470,9 @@ spriteSourceSize {117,55} textureRect - {{921,684},{117,55}} + {{1853,752},{117,55}} textureRotated - + Fireball1_16.png @@ -1485,9 +1485,9 @@ spriteSourceSize {117,55} textureRect - {{1038,684},{117,55}} + {{1908,752},{117,55}} textureRotated - + Fireball1_17.png @@ -1500,7 +1500,7 @@ spriteSourceSize {117,55} textureRect - {{1155,686},{117,55}} + {{1914,601},{117,55}} textureRotated @@ -1515,7 +1515,7 @@ spriteSourceSize {117,55} textureRect - {{1272,686},{117,55}} + {{1914,656},{117,55}} textureRotated @@ -1530,9 +1530,9 @@ spriteSourceSize {117,55} textureRect - {{905,739},{117,55}} + {{1963,711},{117,55}} textureRotated - + Fireball1_2.png @@ -1545,7 +1545,7 @@ spriteSourceSize {117,55} textureRect - {{1022,739},{117,55}} + {{1801,869},{117,55}} textureRotated @@ -1560,7 +1560,7 @@ spriteSourceSize {117,55} textureRect - {{1139,741},{117,55}} + {{1801,924},{117,55}} textureRotated @@ -1575,9 +1575,9 @@ spriteSourceSize {117,55} textureRect - {{1256,741},{117,55}} + {{1918,869},{117,55}} textureRotated - + Fireball1_3.png @@ -1590,9 +1590,9 @@ spriteSourceSize {117,55} textureRect - {{921,684},{117,55}} + {{1853,752},{117,55}} textureRotated - + Fireball1_4.png @@ -1605,7 +1605,7 @@ spriteSourceSize {117,55} textureRect - {{1351,796},{117,55}} + {{1804,979},{117,55}} textureRotated @@ -1620,7 +1620,7 @@ spriteSourceSize {117,55} textureRect - {{1351,913},{117,55}} + {{1859,979},{117,55}} textureRotated @@ -1635,7 +1635,7 @@ spriteSourceSize {117,55} textureRect - {{1621,835},{117,55}} + {{1914,986},{117,55}} textureRotated @@ -1650,9 +1650,9 @@ spriteSourceSize {117,55} textureRect - {{905,739},{117,55}} + {{1963,711},{117,55}} textureRotated - + Fireball1_8.png @@ -1665,7 +1665,7 @@ spriteSourceSize {117,55} textureRect - {{1676,830},{117,55}} + {{1973,828},{117,55}} textureRotated @@ -1680,7 +1680,7 @@ spriteSourceSize {117,55} textureRect - {{1621,952},{117,55}} + {{1969,986},{117,55}} textureRotated @@ -1830,7 +1830,7 @@ spriteSourceSize {137,105} textureRect - {{788,364},{137,105}} + {{789,364},{137,105}} textureRotated @@ -1845,7 +1845,7 @@ spriteSourceSize {137,105} textureRect - {{925,383},{137,105}} + {{926,383},{137,105}} textureRotated @@ -1860,7 +1860,7 @@ spriteSourceSize {137,105} textureRect - {{1062,383},{137,105}} + {{1063,383},{137,105}} textureRotated @@ -1875,7 +1875,7 @@ spriteSourceSize {78,111} textureRect - {{710,345},{78,111}} + {{1289,674},{78,111}} textureRotated @@ -1890,7 +1890,7 @@ spriteSourceSize {78,111} textureRect - {{1833,603},{78,111}} + {{1697,554},{78,111}} textureRotated @@ -1905,9 +1905,9 @@ spriteSourceSize {78,111} textureRect - {{1333,1030},{78,111}} + {{1703,665},{78,111}} textureRotated - + Idle1_3.png @@ -1920,7 +1920,7 @@ spriteSourceSize {78,111} textureRect - {{1731,849},{78,111}} + {{1712,776},{78,111}} textureRotated @@ -1935,9 +1935,9 @@ spriteSourceSize {78,111} textureRect - {{1676,960},{78,111}} + {{1723,887},{78,111}} textureRotated - + Idle1_5.png @@ -1950,7 +1950,7 @@ spriteSourceSize {78,111} textureRect - {{1676,1038},{78,111}} + {{1537,1002},{78,111}} textureRotated @@ -1965,7 +1965,7 @@ spriteSourceSize {78,111} textureRect - {{1787,960},{78,111}} + {{1648,1002},{78,111}} textureRotated @@ -1980,7 +1980,7 @@ spriteSourceSize {78,111} textureRect - {{1865,916},{78,111}} + {{1726,998},{78,111}} textureRotated @@ -1995,9 +1995,9 @@ spriteSourceSize {78,111} textureRect - {{1943,948},{78,111}} + {{1775,557},{78,111}} textureRotated - + Idle1_9.png @@ -2010,9 +2010,9 @@ spriteSourceSize {78,111} textureRect - {{1444,1035},{78,111}} + {{1781,635},{78,111}} textureRotated - + InAirAtk1_1.png @@ -2175,9 +2175,9 @@ spriteSourceSize {103,100} textureRect - {{1925,504},{103,100}} + {{1938,395},{103,100}} textureRotated - + InAirAtked1_2.png @@ -2190,9 +2190,9 @@ spriteSourceSize {103,100} textureRect - {{1389,696},{103,100}} + {{1938,498},{103,100}} textureRotated - + InAirAtked1_3.png @@ -2205,9 +2205,9 @@ spriteSourceSize {103,100} textureRect - {{1518,835},{103,100}} + {{885,812},{103,100}} textureRotated - + InAirAtked1_4.png @@ -2220,7 +2220,7 @@ spriteSourceSize {103,100} textureRect - {{1630,727},{103,100}} + {{985,812},{103,100}} textureRotated @@ -2235,9 +2235,9 @@ spriteSourceSize {103,100} textureRect - {{1518,935},{103,100}} + {{1085,812},{103,100}} textureRotated - + InAirIdle1_1.png @@ -2250,9 +2250,9 @@ spriteSourceSize {83,131} textureRect - {{703,456},{83,131}} + {{924,488},{83,131}} textureRotated - + InAirIdle1_10.png @@ -2265,7 +2265,7 @@ spriteSourceSize {83,131} textureRect - {{921,488},{83,131}} + {{1055,488},{83,131}} textureRotated @@ -2280,7 +2280,7 @@ spriteSourceSize {83,131} textureRect - {{1052,488},{83,131}} + {{1186,490},{83,131}} textureRotated @@ -2295,26 +2295,11 @@ spriteSourceSize {83,131} textureRect - {{1183,490},{83,131}} + {{1317,490},{83,131}} textureRotated InAirIdle1_2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {83,131} - spriteSourceSize - {83,131} - textureRect - {{1314,490},{83,131}} - textureRotated - - - InAirIdle1_3.png aliases @@ -2329,7 +2314,7 @@ textureRotated - InAirIdle1_4.png + InAirIdle1_3.png aliases @@ -2344,7 +2329,7 @@ textureRotated - InAirIdle1_5.png + InAirIdle1_4.png aliases @@ -2359,7 +2344,7 @@ textureRotated - InAirIdle1_6.png + InAirIdle1_5.png aliases @@ -2374,7 +2359,7 @@ textureRotated - InAirIdle1_7.png + InAirIdle1_6.png aliases @@ -2389,7 +2374,7 @@ textureRotated - InAirIdle1_8.png + InAirIdle1_7.png aliases @@ -2404,6 +2389,21 @@ textureRotated + InAirIdle1_8.png + + aliases + + spriteOffset + {0,0} + spriteSize + {83,131} + spriteSourceSize + {83,131} + textureRect + {{762,915},{83,131}} + textureRotated + + InAirIdle1_9.png aliases @@ -2415,9 +2415,9 @@ spriteSourceSize {83,131} textureRect - {{576,670},{83,131}} + {{893,915},{83,131}} textureRotated - + LayDown1_1.png @@ -2614,6 +2614,51 @@ textureRotated + TurnAround1_1.png + + aliases + + spriteOffset + {0,0} + spriteSize + {79,107} + spriteSourceSize + {79,107} + textureRect + {{710,345},{79,107}} + textureRotated + + + TurnAround1_2.png + + aliases + + spriteOffset + {0,0} + spriteSize + {79,107} + spriteSourceSize + {79,107} + textureRect + {{1024,915},{79,107}} + textureRotated + + + TurnAround1_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {79,107} + spriteSourceSize + {79,107} + textureRect + {{1430,1030},{79,107}} + textureRotated + + Walking_1.png aliases @@ -2625,7 +2670,7 @@ spriteSourceSize {112,112} textureRect - {{903,794},{112,112}} + {{576,1009},{112,112}} textureRotated @@ -2640,7 +2685,7 @@ spriteSourceSize {112,112} textureRect - {{903,906},{112,112}} + {{688,1009},{112,112}} textureRotated @@ -2655,7 +2700,7 @@ spriteSourceSize {112,112} textureRect - {{1015,794},{112,112}} + {{1367,678},{112,112}} textureRotated @@ -2670,7 +2715,7 @@ spriteSourceSize {112,112} textureRect - {{1015,906},{112,112}} + {{1473,554},{112,112}} textureRotated @@ -2685,7 +2730,7 @@ spriteSourceSize {112,112} textureRect - {{1127,796},{112,112}} + {{1585,554},{112,112}} textureRotated @@ -2700,7 +2745,7 @@ spriteSourceSize {112,112} textureRect - {{1127,908},{112,112}} + {{1479,666},{112,112}} textureRotated @@ -2715,7 +2760,7 @@ spriteSourceSize {112,112} textureRect - {{1239,796},{112,112}} + {{1591,666},{112,112}} textureRotated @@ -2730,7 +2775,7 @@ spriteSourceSize {112,112} textureRect - {{1239,908},{112,112}} + {{1488,778},{112,112}} textureRotated @@ -2745,7 +2790,7 @@ spriteSourceSize {112,112} textureRect - {{1406,796},{112,112}} + {{1600,778},{112,112}} textureRotated @@ -2760,7 +2805,7 @@ spriteSourceSize {112,112} textureRect - {{1406,908},{112,112}} + {{1499,890},{112,112}} textureRotated @@ -2775,7 +2820,7 @@ spriteSourceSize {112,112} textureRect - {{1518,723},{112,112}} + {{1611,890},{112,112}} textureRotated @@ -2791,9 +2836,9 @@ realTextureFileName Monk.png size - {2028,1116} + {2038,1121} smartupdate - $TexturePacker:SmartUpdate:4a3675bd94a2c6e3f247f55df5c3fadc:b426b7ac893d01cd44db02656c54c9c6:0d538e391a81baa9ecb48d28b418b896$ + $TexturePacker:SmartUpdate:1cd2762776fea841d92a673fde319433:30388a4b564c5ec1079710fe90ce5fbc:0d538e391a81baa9ecb48d28b418b896$ textureFileName Monk.png diff --git a/frontend/assets/resources/animation/Monk/Monk.plist.meta b/frontend/assets/resources/animation/Monk/Monk.plist.meta index dd077fc..c8e6a15 100644 --- a/frontend/assets/resources/animation/Monk/Monk.plist.meta +++ b/frontend/assets/resources/animation/Monk/Monk.plist.meta @@ -3,8 +3,8 @@ "uuid": "6dcd5722-8ef9-47fd-9520-861d2713e274", "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "size": { - "width": 2028, - "height": 1116 + "width": 2038, + "height": 1121 }, "type": "Texture Packer", "subMetas": { @@ -39,8 +39,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 703, - "trimY": 587, + "trimX": 1378, + "trimY": 573, "width": 95, "height": 105, "rawWidth": 95, @@ -58,11 +58,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1637, - "trimY": 622, + "trimX": 1115, + "trimY": 1021, "width": 95, "height": 105, "rawWidth": 95, @@ -80,11 +80,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 913, - "trimY": 1018, + "trimX": 1254, + "trimY": 920, "width": 95, "height": 105, "rawWidth": 95, @@ -105,8 +105,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1018, - "trimY": 1018, + "trimX": 1220, + "trimY": 1025, "width": 95, "height": 105, "rawWidth": 95, @@ -127,8 +127,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1018, - "trimY": 1018, + "trimX": 1220, + "trimY": 1025, "width": 95, "height": 105, "rawWidth": 95, @@ -146,11 +146,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1123, - "trimY": 1020, + "trimX": 1349, + "trimY": 920, "width": 95, "height": 105, "rawWidth": 95, @@ -171,8 +171,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1228, - "trimY": 1020, + "trimX": 1325, + "trimY": 1025, "width": 95, "height": 105, "rawWidth": 95, @@ -259,8 +259,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 798, - "trimY": 576, + "trimX": 640, + "trimY": 557, "width": 123, "height": 113, "rawWidth": 123, @@ -281,8 +281,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 921, - "trimY": 571, + "trimX": 763, + "trimY": 576, "width": 123, "height": 113, "rawWidth": 123, @@ -303,8 +303,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1044, - "trimY": 571, + "trimX": 576, + "trimY": 670, "width": 123, "height": 113, "rawWidth": 123, @@ -325,8 +325,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1167, - "trimY": 573, + "trimX": 576, + "trimY": 783, "width": 123, "height": 113, "rawWidth": 123, @@ -347,8 +347,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1290, - "trimY": 573, + "trimX": 576, + "trimY": 896, "width": 123, "height": 113, "rawWidth": 123, @@ -366,11 +366,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 576, - "trimY": 801, + "trimX": 762, + "trimY": 689, "width": 123, "height": 113, "rawWidth": 123, @@ -388,11 +388,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 576, - "trimY": 924, + "trimX": 762, + "trimY": 802, "width": 123, "height": 113, "rawWidth": 123, @@ -413,8 +413,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 689, - "trimY": 793, + "trimX": 800, + "trimY": 998, "width": 123, "height": 113, "rawWidth": 123, @@ -435,8 +435,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 689, - "trimY": 793, + "trimX": 800, + "trimY": 998, "width": 123, "height": 113, "rawWidth": 123, @@ -454,11 +454,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 689, - "trimY": 916, + "trimX": 886, + "trimY": 576, "width": 123, "height": 113, "rawWidth": 123, @@ -476,11 +476,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 689, - "trimY": 916, + "trimX": 886, + "trimY": 576, "width": 123, "height": 113, "rawWidth": 123, @@ -520,11 +520,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 659, - "trimY": 692, + "trimX": 885, + "trimY": 689, "width": 101, "height": 123, "rawWidth": 101, @@ -542,11 +542,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1413, - "trimY": 573, + "trimX": 1009, + "trimY": 571, "width": 101, "height": 123, "rawWidth": 101, @@ -564,11 +564,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 782, - "trimY": 692, + "trimX": 913, + "trimY": 998, "width": 101, "height": 123, "rawWidth": 101, @@ -589,8 +589,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 802, - "trimY": 793, + "trimX": 1014, + "trimY": 998, "width": 101, "height": 123, "rawWidth": 101, @@ -608,11 +608,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 802, - "trimY": 916, + "trimX": 1132, + "trimY": 573, "width": 101, "height": 123, "rawWidth": 101, @@ -630,11 +630,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1514, - "trimY": 499, + "trimX": 1255, + "trimY": 573, "width": 101, "height": 123, "rawWidth": 101, @@ -655,8 +655,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1615, - "trimY": 499, + "trimX": 986, + "trimY": 689, "width": 101, "height": 123, "rawWidth": 101, @@ -674,11 +674,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1514, - "trimY": 622, + "trimX": 1087, + "trimY": 674, "width": 101, "height": 123, "rawWidth": 101, @@ -696,11 +696,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1802, - "trimY": 502, + "trimX": 1188, + "trimY": 674, "width": 101, "height": 123, "rawWidth": 101, @@ -721,8 +721,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1732, - "trimY": 603, + "trimX": 1185, + "trimY": 797, "width": 101, "height": 123, "rawWidth": 101, @@ -743,8 +743,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1833, - "trimY": 714, + "trimX": 1131, + "trimY": 920, "width": 101, "height": 123, "rawWidth": 101, @@ -765,8 +765,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1833, - "trimY": 714, + "trimX": 1131, + "trimY": 920, "width": 101, "height": 123, "rawWidth": 101, @@ -787,8 +787,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1732, - "trimY": 726, + "trimX": 1286, + "trimY": 797, "width": 101, "height": 123, "rawWidth": 101, @@ -806,11 +806,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1833, - "trimY": 815, + "trimX": 1387, + "trimY": 790, "width": 101, "height": 123, "rawWidth": 101, @@ -1007,7 +1007,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1199, + "trimX": 1200, "trimY": 383, "width": 135, "height": 107, @@ -1029,7 +1029,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1334, + "trimX": 1335, "trimY": 383, "width": 135, "height": 107, @@ -1051,7 +1051,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1532, + "trimX": 1533, "trimY": 392, "width": 135, "height": 107, @@ -1073,7 +1073,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1667, + "trimX": 1668, "trimY": 392, "width": 135, "height": 107, @@ -1095,7 +1095,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1802, + "trimX": 1803, "trimY": 395, "width": 135, "height": 107, @@ -1161,7 +1161,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 786, + "trimX": 789, "trimY": 469, "width": 135, "height": 107, @@ -1425,8 +1425,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1937, - "trimY": 400, + "trimX": 703, + "trimY": 452, "width": 86, "height": 104, "rawWidth": 86, @@ -1447,8 +1447,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1716, - "trimY": 499, + "trimX": 1951, + "trimY": 290, "width": 86, "height": 104, "rawWidth": 86, @@ -1909,7 +1909,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1469, + "trimX": 1470, "trimY": 383, "width": 110, "height": 63, @@ -1931,8 +1931,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1951, - "trimY": 290, + "trimX": 699, + "trimY": 670, "width": 110, "height": 63, "rawWidth": 110, @@ -1953,8 +1953,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 640, - "trimY": 557, + "trimX": 699, + "trimY": 780, "width": 110, "height": 63, "rawWidth": 110, @@ -1972,11 +1972,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 693, - "trimY": 1039, + "trimX": 699, + "trimY": 890, "width": 110, "height": 63, "rawWidth": 110, @@ -1994,11 +1994,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 803, - "trimY": 1039, + "trimX": 1790, + "trimY": 746, "width": 110, "height": 63, "rawWidth": 110, @@ -2038,11 +2038,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 576, - "trimY": 1047, + "trimX": 1444, + "trimY": 913, "width": 117, "height": 55, "rawWidth": 117, @@ -2063,8 +2063,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1911, - "trimY": 604, + "trimX": 1537, + "trimY": 499, "width": 117, "height": 55, "rawWidth": 117, @@ -2085,8 +2085,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1911, - "trimY": 659, + "trimX": 1654, + "trimY": 499, "width": 117, "height": 55, "rawWidth": 117, @@ -2104,11 +2104,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1956, - "trimY": 714, + "trimX": 1804, + "trimY": 502, "width": 117, "height": 55, "rawWidth": 117, @@ -2129,8 +2129,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1956, - "trimY": 831, + "trimX": 1859, + "trimY": 635, "width": 117, "height": 55, "rawWidth": 117, @@ -2148,11 +2148,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 921, - "trimY": 684, + "trimX": 1853, + "trimY": 752, "width": 117, "height": 55, "rawWidth": 117, @@ -2170,11 +2170,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1038, - "trimY": 684, + "trimX": 1908, + "trimY": 752, "width": 117, "height": 55, "rawWidth": 117, @@ -2195,8 +2195,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1155, - "trimY": 686, + "trimX": 1914, + "trimY": 601, "width": 117, "height": 55, "rawWidth": 117, @@ -2217,8 +2217,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1272, - "trimY": 686, + "trimX": 1914, + "trimY": 656, "width": 117, "height": 55, "rawWidth": 117, @@ -2236,11 +2236,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 905, - "trimY": 739, + "trimX": 1963, + "trimY": 711, "width": 117, "height": 55, "rawWidth": 117, @@ -2261,8 +2261,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1022, - "trimY": 739, + "trimX": 1801, + "trimY": 869, "width": 117, "height": 55, "rawWidth": 117, @@ -2283,8 +2283,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1139, - "trimY": 741, + "trimX": 1801, + "trimY": 924, "width": 117, "height": 55, "rawWidth": 117, @@ -2302,11 +2302,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1256, - "trimY": 741, + "trimX": 1918, + "trimY": 869, "width": 117, "height": 55, "rawWidth": 117, @@ -2324,11 +2324,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 921, - "trimY": 684, + "trimX": 1853, + "trimY": 752, "width": 117, "height": 55, "rawWidth": 117, @@ -2349,8 +2349,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1351, - "trimY": 796, + "trimX": 1804, + "trimY": 979, "width": 117, "height": 55, "rawWidth": 117, @@ -2371,8 +2371,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1351, - "trimY": 913, + "trimX": 1859, + "trimY": 979, "width": 117, "height": 55, "rawWidth": 117, @@ -2393,8 +2393,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1621, - "trimY": 835, + "trimX": 1914, + "trimY": 986, "width": 117, "height": 55, "rawWidth": 117, @@ -2412,11 +2412,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 905, - "trimY": 739, + "trimX": 1963, + "trimY": 711, "width": 117, "height": 55, "rawWidth": 117, @@ -2437,8 +2437,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1676, - "trimY": 830, + "trimX": 1973, + "trimY": 828, "width": 117, "height": 55, "rawWidth": 117, @@ -2459,8 +2459,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1621, - "trimY": 952, + "trimX": 1969, + "trimY": 986, "width": 117, "height": 55, "rawWidth": 117, @@ -2679,7 +2679,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 788, + "trimX": 789, "trimY": 364, "width": 137, "height": 105, @@ -2701,7 +2701,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 925, + "trimX": 926, "trimY": 383, "width": 137, "height": 105, @@ -2723,7 +2723,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1062, + "trimX": 1063, "trimY": 383, "width": 137, "height": 105, @@ -2745,8 +2745,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 710, - "trimY": 345, + "trimX": 1289, + "trimY": 674, "width": 78, "height": 111, "rawWidth": 78, @@ -2767,8 +2767,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1833, - "trimY": 603, + "trimX": 1697, + "trimY": 554, "width": 78, "height": 111, "rawWidth": 78, @@ -2786,11 +2786,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1333, - "trimY": 1030, + "trimX": 1703, + "trimY": 665, "width": 78, "height": 111, "rawWidth": 78, @@ -2811,8 +2811,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1731, - "trimY": 849, + "trimX": 1712, + "trimY": 776, "width": 78, "height": 111, "rawWidth": 78, @@ -2830,11 +2830,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1676, - "trimY": 960, + "trimX": 1723, + "trimY": 887, "width": 78, "height": 111, "rawWidth": 78, @@ -2855,8 +2855,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1676, - "trimY": 1038, + "trimX": 1537, + "trimY": 1002, "width": 78, "height": 111, "rawWidth": 78, @@ -2877,8 +2877,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1787, - "trimY": 960, + "trimX": 1648, + "trimY": 1002, "width": 78, "height": 111, "rawWidth": 78, @@ -2899,8 +2899,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1865, - "trimY": 916, + "trimX": 1726, + "trimY": 998, "width": 78, "height": 111, "rawWidth": 78, @@ -2918,11 +2918,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1943, - "trimY": 948, + "trimX": 1775, + "trimY": 557, "width": 78, "height": 111, "rawWidth": 78, @@ -2940,11 +2940,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1444, - "trimY": 1035, + "trimX": 1781, + "trimY": 635, "width": 78, "height": 111, "rawWidth": 78, @@ -3182,11 +3182,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1925, - "trimY": 504, + "trimX": 1938, + "trimY": 395, "width": 103, "height": 100, "rawWidth": 103, @@ -3204,11 +3204,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1389, - "trimY": 696, + "trimX": 1938, + "trimY": 498, "width": 103, "height": 100, "rawWidth": 103, @@ -3226,11 +3226,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1518, - "trimY": 835, + "trimX": 885, + "trimY": 812, "width": 103, "height": 100, "rawWidth": 103, @@ -3251,8 +3251,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1630, - "trimY": 727, + "trimX": 985, + "trimY": 812, "width": 103, "height": 100, "rawWidth": 103, @@ -3270,11 +3270,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1518, - "trimY": 935, + "trimX": 1085, + "trimY": 812, "width": 103, "height": 100, "rawWidth": 103, @@ -3292,11 +3292,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 703, - "trimY": 456, + "trimX": 924, + "trimY": 488, "width": 83, "height": 131, "rawWidth": 83, @@ -3317,7 +3317,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 921, + "trimX": 1055, "trimY": 488, "width": 83, "height": 131, @@ -3339,8 +3339,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1052, - "trimY": 488, + "trimX": 1186, + "trimY": 490, "width": 83, "height": 131, "rawWidth": 83, @@ -3361,7 +3361,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1183, + "trimX": 1317, "trimY": 490, "width": 83, "height": 131, @@ -3380,11 +3380,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1314, - "trimY": 490, + "trimX": 410, + "trimY": 679, "width": 83, "height": 131, "rawWidth": 83, @@ -3406,7 +3406,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 410, - "trimY": 679, + "trimY": 810, "width": 83, "height": 131, "rawWidth": 83, @@ -3428,7 +3428,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 410, - "trimY": 810, + "trimY": 941, "width": 83, "height": 131, "rawWidth": 83, @@ -3449,8 +3449,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 410, - "trimY": 941, + "trimX": 493, + "trimY": 679, "width": 83, "height": 131, "rawWidth": 83, @@ -3472,7 +3472,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 493, - "trimY": 679, + "trimY": 810, "width": 83, "height": 131, "rawWidth": 83, @@ -3494,7 +3494,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 493, - "trimY": 810, + "trimY": 941, "width": 83, "height": 131, "rawWidth": 83, @@ -3512,11 +3512,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 493, - "trimY": 941, + "trimX": 762, + "trimY": 915, "width": 83, "height": 131, "rawWidth": 83, @@ -3534,11 +3534,11 @@ "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 576, - "trimY": 670, + "trimX": 893, + "trimY": 915, "width": 83, "height": 131, "rawWidth": 83, @@ -3836,6 +3836,72 @@ "spriteType": "normal", "subMetas": {} }, + "TurnAround1_1.png": { + "ver": "1.0.4", + "uuid": "ee5e05fa-b515-470f-bc3c-43544f02cb92", + "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 710, + "trimY": 345, + "width": 79, + "height": 107, + "rawWidth": 79, + "rawHeight": 107, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_2.png": { + "ver": "1.0.4", + "uuid": "ffa521b6-118e-46e8-be1c-51cc54381ec8", + "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 1024, + "trimY": 915, + "width": 79, + "height": 107, + "rawWidth": 79, + "rawHeight": 107, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_3.png": { + "ver": "1.0.4", + "uuid": "0b27d2c9-c5a3-4020-adbe-0297c1ba3aeb", + "rawTextureUuid": "6e1dbec7-ad55-413b-8108-0ac881c76a8b", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 1430, + "trimY": 1030, + "width": 79, + "height": 107, + "rawWidth": 79, + "rawHeight": 107, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, "Walking_1.png": { "ver": "1.0.4", "uuid": "a47f518e-62fb-4549-8897-4f2d387bd145", @@ -3845,8 +3911,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 903, - "trimY": 794, + "trimX": 576, + "trimY": 1009, "width": 112, "height": 112, "rawWidth": 112, @@ -3867,8 +3933,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 903, - "trimY": 906, + "trimX": 688, + "trimY": 1009, "width": 112, "height": 112, "rawWidth": 112, @@ -3889,8 +3955,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1015, - "trimY": 794, + "trimX": 1367, + "trimY": 678, "width": 112, "height": 112, "rawWidth": 112, @@ -3911,8 +3977,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1015, - "trimY": 906, + "trimX": 1473, + "trimY": 554, "width": 112, "height": 112, "rawWidth": 112, @@ -3933,8 +3999,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1127, - "trimY": 796, + "trimX": 1585, + "trimY": 554, "width": 112, "height": 112, "rawWidth": 112, @@ -3955,8 +4021,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1127, - "trimY": 908, + "trimX": 1479, + "trimY": 666, "width": 112, "height": 112, "rawWidth": 112, @@ -3977,8 +4043,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1239, - "trimY": 796, + "trimX": 1591, + "trimY": 666, "width": 112, "height": 112, "rawWidth": 112, @@ -3999,8 +4065,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1239, - "trimY": 908, + "trimX": 1488, + "trimY": 778, "width": 112, "height": 112, "rawWidth": 112, @@ -4021,8 +4087,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1406, - "trimY": 796, + "trimX": 1600, + "trimY": 778, "width": 112, "height": 112, "rawWidth": 112, @@ -4043,8 +4109,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1406, - "trimY": 908, + "trimX": 1499, + "trimY": 890, "width": 112, "height": 112, "rawWidth": 112, @@ -4065,8 +4131,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1518, - "trimY": 723, + "trimX": 1611, + "trimY": 890, "width": 112, "height": 112, "rawWidth": 112, diff --git a/frontend/assets/resources/animation/Monk/Monk.png b/frontend/assets/resources/animation/Monk/Monk.png index d9f7632..9c6236c 100644 Binary files a/frontend/assets/resources/animation/Monk/Monk.png and b/frontend/assets/resources/animation/Monk/Monk.png differ diff --git a/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist b/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist index 155a5aa..9b58b04 100644 --- a/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist +++ b/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist @@ -15,7 +15,7 @@ spriteSourceSize {62,92} textureRect - {{1277,188},{62,92}} + {{1307,188},{62,92}} textureRotated @@ -30,7 +30,7 @@ spriteSourceSize {77,99} textureRect - {{748,0},{77,99}} + {{782,101},{77,99}} textureRotated @@ -45,7 +45,7 @@ spriteSourceSize {112,99} textureRect - {{408,348},{112,99}} + {{381,360},{112,99}} textureRotated @@ -60,7 +60,7 @@ spriteSourceSize {96,100} textureRect - {{664,315},{96,100}} + {{704,312},{96,100}} textureRotated @@ -75,7 +75,7 @@ spriteSourceSize {62,92} textureRect - {{1277,188},{62,92}} + {{1307,188},{62,92}} textureRotated @@ -90,7 +90,7 @@ spriteSourceSize {58,97} textureRect - {{1023,194},{58,97}} + {{983,388},{58,97}} textureRotated @@ -105,9 +105,9 @@ spriteSourceSize {60,90} textureRect - {{1393,141},{60,90}} + {{1424,0},{60,90}} textureRotated - + Atk2_2.png @@ -120,7 +120,7 @@ spriteSourceSize {84,96} textureRect - {{1087,97},{84,96}} + {{1082,291},{84,96}} textureRotated @@ -135,7 +135,7 @@ spriteSourceSize {55,100} textureRect - {{731,101},{55,100}} + {{738,206},{55,100}} textureRotated @@ -150,9 +150,9 @@ spriteSourceSize {63,100} textureRect - {{717,206},{63,100}} + {{0,437},{63,100}} textureRotated - + Atk2_5.png @@ -165,7 +165,7 @@ spriteSourceSize {66,101} textureRect - {{682,0},{66,101}} + {{755,0},{66,101}} textureRotated @@ -180,7 +180,7 @@ spriteSourceSize {80,95} textureRect - {{1126,0},{80,95}} + {{1099,387},{80,95}} textureRotated @@ -195,7 +195,7 @@ spriteSourceSize {116,109} textureRect - {{315,119},{116,109}} + {{336,244},{116,109}} textureRotated @@ -210,7 +210,7 @@ spriteSourceSize {102,96} textureRect - {{621,213},{102,96}} + {{608,325},{102,96}} textureRotated @@ -225,9 +225,9 @@ spriteSourceSize {75,102} textureRect - {{139,421},{75,102}} + {{663,210},{75,102}} textureRotated - + Atk3_0.png @@ -240,7 +240,7 @@ spriteSourceSize {66,109} textureRect - {{469,110},{66,109}} + {{480,339},{66,109}} textureRotated @@ -255,7 +255,7 @@ spriteSourceSize {66,113} textureRect - {{355,235},{66,113}} + {{403,114},{66,113}} textureRotated @@ -330,7 +330,7 @@ spriteSourceSize {78,131} textureRect - {{137,290},{78,131}} + {{78,0},{78,131}} textureRotated @@ -345,9 +345,9 @@ spriteSourceSize {59,139} textureRect - {{0,437},{59,139}} + {{78,290},{59,139}} textureRotated - + Atk3_8.png @@ -360,7 +360,7 @@ spriteSourceSize {59,139} textureRect - {{78,290},{59,139}} + {{137,290},{59,139}} textureRotated @@ -375,9 +375,9 @@ spriteSourceSize {62,97} textureRect - {{507,434},{62,97}} + {{962,291},{62,97}} textureRotated - + Atked1_1.png @@ -390,9 +390,9 @@ spriteSourceSize {73,95} textureRect - {{1171,95},{73,95}} + {{641,427},{73,95}} textureRotated - + Atked1_2.png @@ -405,7 +405,7 @@ spriteSourceSize {90,89} textureRect - {{1324,0},{90,89}} + {{1335,0},{90,89}} textureRotated @@ -420,7 +420,7 @@ spriteSourceSize {95,80} textureRect - {{1084,291},{95,80}} + {{1168,193},{95,80}} textureRotated @@ -435,7 +435,7 @@ spriteSourceSize {80,95} textureRect - {{1010,388},{80,95}} + {{1166,290},{80,95}} textureRotated @@ -450,7 +450,7 @@ spriteSourceSize {83,92} textureRect - {{1208,382},{83,92}} + {{1299,382},{83,92}} textureRotated @@ -465,7 +465,7 @@ spriteSourceSize {92,83} textureRect - {{1224,284},{92,83}} + {{1306,284},{92,83}} textureRotated @@ -480,7 +480,7 @@ spriteSourceSize {112,45} textureRect - {{424,115},{112,45}} + {{469,112},{112,45}} textureRotated @@ -495,7 +495,7 @@ spriteSourceSize {88,69} textureRect - {{604,427},{88,69}} + {{1443,222},{88,69}} textureRotated @@ -510,7 +510,7 @@ spriteSourceSize {91,90} textureRect - {{1303,93},{91,90}} + {{1313,93},{91,90}} textureRotated @@ -525,7 +525,7 @@ spriteSourceSize {120,93} textureRect - {{222,123},{120,93}} + {{254,124},{120,93}} textureRotated @@ -540,9 +540,9 @@ spriteSourceSize {100,112} textureRect - {{241,396},{100,112}} + {{408,0},{100,112}} textureRotated - + GetUp1_5.png @@ -555,7 +555,7 @@ spriteSourceSize {106,93} textureRect - {{507,328},{106,93}} + {{570,219},{106,93}} textureRotated @@ -570,7 +570,7 @@ spriteSourceSize {106,79} textureRect - {{542,217},{106,79}} + {{571,108},{106,79}} textureRotated @@ -585,7 +585,7 @@ spriteSourceSize {73,87} textureRect - {{1307,280},{73,87}} + {{1382,376},{73,87}} textureRotated @@ -600,9 +600,9 @@ spriteSourceSize {67,90} textureRect - {{1413,74},{67,90}} + {{1403,90},{67,90}} textureRotated - + GetUp1_9.png @@ -615,7 +615,7 @@ spriteSourceSize {58,97} textureRect - {{1023,194},{58,97}} + {{983,388},{58,97}} textureRotated @@ -630,7 +630,7 @@ spriteSourceSize {58,95} textureRect - {{1090,386},{58,95}} + {{1219,0},{58,95}} textureRotated @@ -645,7 +645,7 @@ spriteSourceSize {58,97} textureRect - {{1029,97},{58,97}} + {{1024,291},{58,97}} textureRotated @@ -660,7 +660,7 @@ spriteSourceSize {60,94} textureRect - {{1148,386},{60,94}} + {{1179,385},{60,94}} textureRotated @@ -675,7 +675,7 @@ spriteSourceSize {58,97} textureRect - {{1081,194},{58,97}} + {{1036,194},{58,97}} textureRotated @@ -690,7 +690,7 @@ spriteSourceSize {58,97} textureRect - {{1068,0},{58,97}} + {{1041,388},{58,97}} textureRotated @@ -705,9 +705,9 @@ spriteSourceSize {60,95} textureRect - {{1206,0},{60,95}} + {{546,440},{60,95}} textureRotated - + Idle1_5.png @@ -720,7 +720,7 @@ spriteSourceSize {60,94} textureRect - {{1164,288},{60,94}} + {{1239,385},{60,94}} textureRotated @@ -735,7 +735,7 @@ spriteSourceSize {59,93} textureRect - {{789,403},{59,93}} + {{1248,191},{59,93}} textureRotated @@ -750,7 +750,7 @@ spriteSourceSize {58,93} textureRect - {{1266,0},{58,93}} + {{1277,0},{58,93}} textureRotated @@ -765,7 +765,7 @@ spriteSourceSize {59,93} textureRect - {{1244,95},{59,93}} + {{1254,95},{59,93}} textureRotated @@ -780,7 +780,7 @@ spriteSourceSize {60,94} textureRect - {{1217,190},{60,94}} + {{1246,288},{60,94}} textureRotated @@ -795,7 +795,7 @@ spriteSourceSize {77,68} textureRect - {{1437,417},{77,68}} + {{1473,291},{77,68}} textureRotated @@ -810,7 +810,7 @@ spriteSourceSize {118,76} textureRect - {{215,278},{118,76}} + {{196,284},{118,76}} textureRotated @@ -825,7 +825,7 @@ spriteSourceSize {104,65} textureRect - {{617,0},{104,65}} + {{650,106},{104,65}} textureRotated @@ -840,9 +840,9 @@ spriteSourceSize {80,66} textureRect - {{1380,285},{80,66}} + {{1473,368},{80,66}} textureRotated - + InAirAtk1_12.png @@ -855,7 +855,7 @@ spriteSourceSize {102,67} textureRect - {{664,104},{102,67}} + {{715,104},{102,67}} textureRotated @@ -870,9 +870,9 @@ spriteSourceSize {79,66} textureRect - {{1339,201},{79,66}} + {{1470,90},{79,66}} textureRotated - + InAirAtk1_3.png @@ -885,7 +885,7 @@ spriteSourceSize {124,64} textureRect - {{78,0},{124,64}} + {{156,0},{124,64}} textureRotated @@ -900,7 +900,7 @@ spriteSourceSize {104,64} textureRect - {{600,323},{104,64}} + {{691,0},{104,64}} textureRotated @@ -915,7 +915,7 @@ spriteSourceSize {79,61} textureRect - {{1376,417},{79,61}} + {{1484,0},{79,61}} textureRotated @@ -930,7 +930,7 @@ spriteSourceSize {124,64} textureRect - {{142,0},{124,64}} + {{160,124},{124,64}} textureRotated @@ -945,7 +945,7 @@ spriteSourceSize {106,67} textureRect - {{597,107},{106,67}} + {{624,0},{106,67}} textureRotated @@ -960,7 +960,7 @@ spriteSourceSize {79,66} textureRect - {{1380,351},{79,66}} + {{1470,156},{79,66}} textureRotated @@ -975,7 +975,7 @@ spriteSourceSize {118,64} textureRect - {{291,243},{118,64}} + {{272,284},{118,64}} textureRotated @@ -990,9 +990,9 @@ spriteSourceSize {71,119} textureRect - {{242,0},{71,119}} + {{100,429},{71,119}} textureRotated - + InAirIdle1_1.png @@ -1005,7 +1005,7 @@ spriteSourceSize {71,119} textureRect - {{313,0},{71,119}} + {{282,0},{71,119}} textureRotated @@ -1020,7 +1020,7 @@ spriteSourceSize {55,114} textureRect - {{353,361},{55,114}} + {{353,0},{55,114}} textureRotated @@ -1035,7 +1035,7 @@ spriteSourceSize {62,124} textureRect - {{160,124},{62,124}} + {{220,0},{62,124}} textureRotated @@ -1050,9 +1050,9 @@ spriteSourceSize {74,90} textureRect - {{1413,0},{74,90}} + {{1369,184},{74,90}} textureRotated - + InAirIdle1_3.png @@ -1065,7 +1065,7 @@ spriteSourceSize {110,54} textureRect - {{440,0},{110,54}} + {{508,0},{110,54}} textureRotated @@ -1080,7 +1080,7 @@ spriteSourceSize {85,88} textureRect - {{1291,376},{85,88}} + {{736,412},{85,88}} textureRotated @@ -1095,7 +1095,7 @@ spriteSourceSize {64,112} textureRect - {{421,235},{64,112}} + {{445,227},{64,112}} textureRotated @@ -1110,7 +1110,7 @@ spriteSourceSize {62,107} textureRect - {{555,0},{62,107}} + {{546,333},{62,107}} textureRotated @@ -1125,9 +1125,9 @@ spriteSourceSize {85,84} textureRect - {{1405,201},{85,84}} + {{1389,291},{85,84}} textureRotated - + InAirIdle1_8.png @@ -1140,7 +1140,7 @@ spriteSourceSize {109,61} textureRect - {{494,0},{109,61}} + {{509,224},{109,61}} textureRotated @@ -1155,7 +1155,7 @@ spriteSourceSize {78,95} textureRect - {{1139,193},{78,95}} + {{1176,96},{78,95}} textureRotated @@ -1170,7 +1170,7 @@ spriteSourceSize {115,56} textureRect - {{384,0},{115,56}} + {{347,119},{115,56}} textureRotated @@ -1185,7 +1185,7 @@ spriteSourceSize {109,57} textureRect - {{485,219},{109,57}} + {{514,110},{109,57}} textureRotated @@ -1200,7 +1200,7 @@ spriteSourceSize {108,62} textureRect - {{535,109},{108,62}} + {{562,0},{108,62}} textureRotated @@ -1215,9 +1215,9 @@ spriteSourceSize {123,36} textureRect - {{206,0},{123,36}} + {{160,248},{123,36}} textureRotated - + LayDown1_4.png @@ -1230,7 +1230,52 @@ spriteSourceSize {123,30} textureRect - {{160,248},{123,30}} + {{224,124},{123,30}} + textureRotated + + + TurnAround1_1.png + + aliases + + spriteOffset + {0,0} + spriteSize + {74,96} + spriteSourceSize + {74,96} + textureRect + {{1094,194},{74,96}} + textureRotated + + + TurnAround1_2.png + + aliases + + spriteOffset + {0,0} + spriteSize + {74,96} + spriteSourceSize + {74,96} + textureRect + {{1102,97},{74,96}} + textureRotated + + + TurnAround1_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {74,96} + spriteSourceSize + {74,96} + textureRect + {{1145,0},{74,96}} textureRotated @@ -1245,9 +1290,9 @@ spriteSourceSize {81,97} textureRect - {{692,415},{81,97}} + {{219,402},{81,97}} textureRotated - + Walking_10.png @@ -1260,7 +1305,7 @@ spriteSourceSize {81,97} textureRect - {{760,306},{81,97}} + {{300,402},{81,97}} textureRotated @@ -1275,7 +1320,7 @@ spriteSourceSize {81,97} textureRect - {{780,201},{81,97}} + {{821,0},{81,97}} textureRotated @@ -1290,7 +1335,7 @@ spriteSourceSize {81,97} textureRect - {{786,99},{81,97}} + {{793,200},{81,97}} textureRotated @@ -1305,7 +1350,7 @@ spriteSourceSize {81,97} textureRect - {{825,0},{81,97}} + {{859,97},{81,97}} textureRotated @@ -1320,7 +1365,7 @@ spriteSourceSize {81,97} textureRect - {{841,298},{81,97}} + {{902,0},{81,97}} textureRotated @@ -1335,7 +1380,7 @@ spriteSourceSize {81,97} textureRect - {{848,395},{81,97}} + {{800,297},{81,97}} textureRotated @@ -1350,7 +1395,7 @@ spriteSourceSize {81,97} textureRect - {{861,196},{81,97}} + {{874,194},{81,97}} textureRotated @@ -1365,7 +1410,7 @@ spriteSourceSize {81,97} textureRect - {{867,97},{81,97}} + {{940,97},{81,97}} textureRotated @@ -1380,7 +1425,7 @@ spriteSourceSize {81,97} textureRect - {{906,0},{81,97}} + {{983,0},{81,97}} textureRotated @@ -1395,7 +1440,7 @@ spriteSourceSize {81,97} textureRect - {{922,293},{81,97}} + {{821,394},{81,97}} textureRotated @@ -1410,7 +1455,7 @@ spriteSourceSize {81,97} textureRect - {{942,194},{81,97}} + {{881,291},{81,97}} textureRotated @@ -1425,7 +1470,7 @@ spriteSourceSize {81,97} textureRect - {{948,97},{81,97}} + {{955,194},{81,97}} textureRotated @@ -1440,7 +1485,7 @@ spriteSourceSize {81,97} textureRect - {{987,0},{81,97}} + {{1021,97},{81,97}} textureRotated @@ -1455,7 +1500,7 @@ spriteSourceSize {81,97} textureRect - {{929,390},{81,97}} + {{1064,0},{81,97}} textureRotated @@ -1470,7 +1515,7 @@ spriteSourceSize {81,97} textureRect - {{1003,291},{81,97}} + {{902,388},{81,97}} textureRotated @@ -1486,9 +1531,9 @@ realTextureFileName MonkGirl.png size - {1505,496} + {1549,500} smartupdate - $TexturePacker:SmartUpdate:8383576ddc6ed0fb9e6adcbc98ec9c07:b0caf27c9f592741053365a3d87b3473:7b088363a1f16e4f4ff313aecc52227b$ + $TexturePacker:SmartUpdate:f2fd96a7a4bba5a2e1c4622dcb63e1f2:17c698372c46bf0be82704dd808cd6f4:7b088363a1f16e4f4ff313aecc52227b$ textureFileName MonkGirl.png diff --git a/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist.meta b/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist.meta index e72a3d5..ec84b59 100644 --- a/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist.meta +++ b/frontend/assets/resources/animation/MonkGirl/MonkGirl.plist.meta @@ -3,8 +3,8 @@ "uuid": "725c90f9-56f8-48ea-9159-4d2949cd3ce0", "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "size": { - "width": 1505, - "height": 496 + "width": 1549, + "height": 500 }, "type": "Texture Packer", "subMetas": { @@ -17,7 +17,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1277, + "trimX": 1307, "trimY": 188, "width": 62, "height": 92, @@ -39,8 +39,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 748, - "trimY": 0, + "trimX": 782, + "trimY": 101, "width": 77, "height": 99, "rawWidth": 77, @@ -61,8 +61,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 408, - "trimY": 348, + "trimX": 381, + "trimY": 360, "width": 112, "height": 99, "rawWidth": 112, @@ -83,8 +83,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 664, - "trimY": 315, + "trimX": 704, + "trimY": 312, "width": 96, "height": 100, "rawWidth": 96, @@ -105,7 +105,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1277, + "trimX": 1307, "trimY": 188, "width": 62, "height": 92, @@ -127,8 +127,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1023, - "trimY": 194, + "trimX": 983, + "trimY": 388, "width": 58, "height": 97, "rawWidth": 58, @@ -146,11 +146,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1393, - "trimY": 141, + "trimX": 1424, + "trimY": 0, "width": 60, "height": 90, "rawWidth": 60, @@ -171,8 +171,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1087, - "trimY": 97, + "trimX": 1082, + "trimY": 291, "width": 84, "height": 96, "rawWidth": 84, @@ -193,8 +193,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 731, - "trimY": 101, + "trimX": 738, + "trimY": 206, "width": 55, "height": 100, "rawWidth": 55, @@ -212,11 +212,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 717, - "trimY": 206, + "trimX": 0, + "trimY": 437, "width": 63, "height": 100, "rawWidth": 63, @@ -237,7 +237,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 682, + "trimX": 755, "trimY": 0, "width": 66, "height": 101, @@ -259,8 +259,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1126, - "trimY": 0, + "trimX": 1099, + "trimY": 387, "width": 80, "height": 95, "rawWidth": 80, @@ -281,8 +281,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 315, - "trimY": 119, + "trimX": 336, + "trimY": 244, "width": 116, "height": 109, "rawWidth": 116, @@ -303,8 +303,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 621, - "trimY": 213, + "trimX": 608, + "trimY": 325, "width": 102, "height": 96, "rawWidth": 102, @@ -322,11 +322,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 139, - "trimY": 421, + "trimX": 663, + "trimY": 210, "width": 75, "height": 102, "rawWidth": 75, @@ -347,8 +347,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 469, - "trimY": 110, + "trimX": 480, + "trimY": 339, "width": 66, "height": 109, "rawWidth": 66, @@ -369,8 +369,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 355, - "trimY": 235, + "trimX": 403, + "trimY": 114, "width": 66, "height": 113, "rawWidth": 66, @@ -479,8 +479,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 137, - "trimY": 290, + "trimX": 78, + "trimY": 0, "width": 78, "height": 131, "rawWidth": 78, @@ -498,11 +498,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 437, + "trimX": 78, + "trimY": 290, "width": 59, "height": 139, "rawWidth": 59, @@ -523,7 +523,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 78, + "trimX": 137, "trimY": 290, "width": 59, "height": 139, @@ -542,11 +542,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 507, - "trimY": 434, + "trimX": 962, + "trimY": 291, "width": 62, "height": 97, "rawWidth": 62, @@ -564,11 +564,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1171, - "trimY": 95, + "trimX": 641, + "trimY": 427, "width": 73, "height": 95, "rawWidth": 73, @@ -589,7 +589,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1324, + "trimX": 1335, "trimY": 0, "width": 90, "height": 89, @@ -611,8 +611,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1084, - "trimY": 291, + "trimX": 1168, + "trimY": 193, "width": 95, "height": 80, "rawWidth": 95, @@ -633,8 +633,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1010, - "trimY": 388, + "trimX": 1166, + "trimY": 290, "width": 80, "height": 95, "rawWidth": 80, @@ -655,7 +655,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1208, + "trimX": 1299, "trimY": 382, "width": 83, "height": 92, @@ -677,7 +677,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1224, + "trimX": 1306, "trimY": 284, "width": 92, "height": 83, @@ -699,8 +699,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 424, - "trimY": 115, + "trimX": 469, + "trimY": 112, "width": 112, "height": 45, "rawWidth": 112, @@ -721,8 +721,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 604, - "trimY": 427, + "trimX": 1443, + "trimY": 222, "width": 88, "height": 69, "rawWidth": 88, @@ -743,7 +743,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1303, + "trimX": 1313, "trimY": 93, "width": 91, "height": 90, @@ -765,8 +765,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 222, - "trimY": 123, + "trimX": 254, + "trimY": 124, "width": 120, "height": 93, "rawWidth": 120, @@ -784,11 +784,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 241, - "trimY": 396, + "trimX": 408, + "trimY": 0, "width": 100, "height": 112, "rawWidth": 100, @@ -809,8 +809,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 507, - "trimY": 328, + "trimX": 570, + "trimY": 219, "width": 106, "height": 93, "rawWidth": 106, @@ -831,8 +831,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 542, - "trimY": 217, + "trimX": 571, + "trimY": 108, "width": 106, "height": 79, "rawWidth": 106, @@ -853,8 +853,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1307, - "trimY": 280, + "trimX": 1382, + "trimY": 376, "width": 73, "height": 87, "rawWidth": 73, @@ -872,11 +872,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1413, - "trimY": 74, + "trimX": 1403, + "trimY": 90, "width": 67, "height": 90, "rawWidth": 67, @@ -897,8 +897,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1023, - "trimY": 194, + "trimX": 983, + "trimY": 388, "width": 58, "height": 97, "rawWidth": 58, @@ -919,8 +919,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1090, - "trimY": 386, + "trimX": 1219, + "trimY": 0, "width": 58, "height": 95, "rawWidth": 58, @@ -941,8 +941,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1029, - "trimY": 97, + "trimX": 1024, + "trimY": 291, "width": 58, "height": 97, "rawWidth": 58, @@ -963,8 +963,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1148, - "trimY": 386, + "trimX": 1179, + "trimY": 385, "width": 60, "height": 94, "rawWidth": 60, @@ -985,7 +985,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1081, + "trimX": 1036, "trimY": 194, "width": 58, "height": 97, @@ -1007,8 +1007,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1068, - "trimY": 0, + "trimX": 1041, + "trimY": 388, "width": 58, "height": 97, "rawWidth": 58, @@ -1026,11 +1026,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1206, - "trimY": 0, + "trimX": 546, + "trimY": 440, "width": 60, "height": 95, "rawWidth": 60, @@ -1051,8 +1051,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1164, - "trimY": 288, + "trimX": 1239, + "trimY": 385, "width": 60, "height": 94, "rawWidth": 60, @@ -1073,8 +1073,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 789, - "trimY": 403, + "trimX": 1248, + "trimY": 191, "width": 59, "height": 93, "rawWidth": 59, @@ -1095,7 +1095,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1266, + "trimX": 1277, "trimY": 0, "width": 58, "height": 93, @@ -1117,7 +1117,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1244, + "trimX": 1254, "trimY": 95, "width": 59, "height": 93, @@ -1139,8 +1139,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1217, - "trimY": 190, + "trimX": 1246, + "trimY": 288, "width": 60, "height": 94, "rawWidth": 60, @@ -1161,8 +1161,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1437, - "trimY": 417, + "trimX": 1473, + "trimY": 291, "width": 77, "height": 68, "rawWidth": 77, @@ -1183,8 +1183,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 215, - "trimY": 278, + "trimX": 196, + "trimY": 284, "width": 118, "height": 76, "rawWidth": 118, @@ -1205,8 +1205,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 617, - "trimY": 0, + "trimX": 650, + "trimY": 106, "width": 104, "height": 65, "rawWidth": 104, @@ -1224,11 +1224,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1380, - "trimY": 285, + "trimX": 1473, + "trimY": 368, "width": 80, "height": 66, "rawWidth": 80, @@ -1249,7 +1249,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 664, + "trimX": 715, "trimY": 104, "width": 102, "height": 67, @@ -1268,11 +1268,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1339, - "trimY": 201, + "trimX": 1470, + "trimY": 90, "width": 79, "height": 66, "rawWidth": 79, @@ -1293,7 +1293,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 78, + "trimX": 156, "trimY": 0, "width": 124, "height": 64, @@ -1315,8 +1315,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 600, - "trimY": 323, + "trimX": 691, + "trimY": 0, "width": 104, "height": 64, "rawWidth": 104, @@ -1337,8 +1337,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1376, - "trimY": 417, + "trimX": 1484, + "trimY": 0, "width": 79, "height": 61, "rawWidth": 79, @@ -1359,8 +1359,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 142, - "trimY": 0, + "trimX": 160, + "trimY": 124, "width": 124, "height": 64, "rawWidth": 124, @@ -1381,8 +1381,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 597, - "trimY": 107, + "trimX": 624, + "trimY": 0, "width": 106, "height": 67, "rawWidth": 106, @@ -1403,8 +1403,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1380, - "trimY": 351, + "trimX": 1470, + "trimY": 156, "width": 79, "height": 66, "rawWidth": 79, @@ -1425,8 +1425,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 291, - "trimY": 243, + "trimX": 272, + "trimY": 284, "width": 118, "height": 64, "rawWidth": 118, @@ -1444,11 +1444,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 242, - "trimY": 0, + "trimX": 100, + "trimY": 429, "width": 71, "height": 119, "rawWidth": 71, @@ -1469,7 +1469,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 313, + "trimX": 282, "trimY": 0, "width": 71, "height": 119, @@ -1492,7 +1492,7 @@ "offsetX": 0, "offsetY": 0, "trimX": 353, - "trimY": 361, + "trimY": 0, "width": 55, "height": 114, "rawWidth": 55, @@ -1513,8 +1513,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 160, - "trimY": 124, + "trimX": 220, + "trimY": 0, "width": 62, "height": 124, "rawWidth": 62, @@ -1532,11 +1532,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1413, - "trimY": 0, + "trimX": 1369, + "trimY": 184, "width": 74, "height": 90, "rawWidth": 74, @@ -1557,7 +1557,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 440, + "trimX": 508, "trimY": 0, "width": 110, "height": 54, @@ -1579,8 +1579,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1291, - "trimY": 376, + "trimX": 736, + "trimY": 412, "width": 85, "height": 88, "rawWidth": 85, @@ -1601,8 +1601,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 421, - "trimY": 235, + "trimX": 445, + "trimY": 227, "width": 64, "height": 112, "rawWidth": 64, @@ -1623,8 +1623,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 555, - "trimY": 0, + "trimX": 546, + "trimY": 333, "width": 62, "height": 107, "rawWidth": 62, @@ -1642,11 +1642,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 1405, - "trimY": 201, + "trimX": 1389, + "trimY": 291, "width": 85, "height": 84, "rawWidth": 85, @@ -1667,8 +1667,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 494, - "trimY": 0, + "trimX": 509, + "trimY": 224, "width": 109, "height": 61, "rawWidth": 109, @@ -1689,8 +1689,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1139, - "trimY": 193, + "trimX": 1176, + "trimY": 96, "width": 78, "height": 95, "rawWidth": 78, @@ -1711,8 +1711,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 384, - "trimY": 0, + "trimX": 347, + "trimY": 119, "width": 115, "height": 56, "rawWidth": 115, @@ -1733,8 +1733,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 485, - "trimY": 219, + "trimX": 514, + "trimY": 110, "width": 109, "height": 57, "rawWidth": 109, @@ -1755,8 +1755,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 535, - "trimY": 109, + "trimX": 562, + "trimY": 0, "width": 108, "height": 62, "rawWidth": 108, @@ -1774,11 +1774,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 206, - "trimY": 0, + "trimX": 160, + "trimY": 248, "width": 123, "height": 36, "rawWidth": 123, @@ -1796,11 +1796,11 @@ "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 160, - "trimY": 248, + "trimX": 224, + "trimY": 124, "width": 123, "height": 30, "rawWidth": 123, @@ -1812,17 +1812,83 @@ "spriteType": "normal", "subMetas": {} }, + "TurnAround1_1.png": { + "ver": "1.0.4", + "uuid": "c1a00209-f74d-41b5-a5da-df5720ac34b4", + "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 1094, + "trimY": 194, + "width": 74, + "height": 96, + "rawWidth": 74, + "rawHeight": 96, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_2.png": { + "ver": "1.0.4", + "uuid": "2b52c0f1-2360-4a2b-9233-bf5662de09a5", + "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 1102, + "trimY": 97, + "width": 74, + "height": 96, + "rawWidth": 74, + "rawHeight": 96, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "TurnAround1_3.png": { + "ver": "1.0.4", + "uuid": "e3f9dfe7-ed91-4dc3-b68b-a3a3c2637074", + "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 1145, + "trimY": 0, + "width": 74, + "height": 96, + "rawWidth": 74, + "rawHeight": 96, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, "Walking_1.png": { "ver": "1.0.4", "uuid": "7515ef50-3a14-4e58-8811-a0c890fc40f3", "rawTextureUuid": "8d4cf214-f71c-4237-bdc1-ca0069909248", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 692, - "trimY": 415, + "trimX": 219, + "trimY": 402, "width": 81, "height": 97, "rawWidth": 81, @@ -1843,8 +1909,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 760, - "trimY": 306, + "trimX": 300, + "trimY": 402, "width": 81, "height": 97, "rawWidth": 81, @@ -1865,8 +1931,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 780, - "trimY": 201, + "trimX": 821, + "trimY": 0, "width": 81, "height": 97, "rawWidth": 81, @@ -1887,8 +1953,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 786, - "trimY": 99, + "trimX": 793, + "trimY": 200, "width": 81, "height": 97, "rawWidth": 81, @@ -1909,8 +1975,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 825, - "trimY": 0, + "trimX": 859, + "trimY": 97, "width": 81, "height": 97, "rawWidth": 81, @@ -1931,8 +1997,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 841, - "trimY": 298, + "trimX": 902, + "trimY": 0, "width": 81, "height": 97, "rawWidth": 81, @@ -1953,8 +2019,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 848, - "trimY": 395, + "trimX": 800, + "trimY": 297, "width": 81, "height": 97, "rawWidth": 81, @@ -1975,8 +2041,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 861, - "trimY": 196, + "trimX": 874, + "trimY": 194, "width": 81, "height": 97, "rawWidth": 81, @@ -1997,7 +2063,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 867, + "trimX": 940, "trimY": 97, "width": 81, "height": 97, @@ -2019,7 +2085,7 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 906, + "trimX": 983, "trimY": 0, "width": 81, "height": 97, @@ -2041,8 +2107,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 922, - "trimY": 293, + "trimX": 821, + "trimY": 394, "width": 81, "height": 97, "rawWidth": 81, @@ -2063,8 +2129,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 942, - "trimY": 194, + "trimX": 881, + "trimY": 291, "width": 81, "height": 97, "rawWidth": 81, @@ -2085,8 +2151,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 948, - "trimY": 97, + "trimX": 955, + "trimY": 194, "width": 81, "height": 97, "rawWidth": 81, @@ -2107,8 +2173,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 987, - "trimY": 0, + "trimX": 1021, + "trimY": 97, "width": 81, "height": 97, "rawWidth": 81, @@ -2129,8 +2195,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 929, - "trimY": 390, + "trimX": 1064, + "trimY": 0, "width": 81, "height": 97, "rawWidth": 81, @@ -2151,8 +2217,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 1003, - "trimY": 291, + "trimX": 902, + "trimY": 388, "width": 81, "height": 97, "rawWidth": 81, diff --git a/frontend/assets/resources/animation/MonkGirl/MonkGirl.png b/frontend/assets/resources/animation/MonkGirl/MonkGirl.png index 0984281..029bde2 100644 Binary files a/frontend/assets/resources/animation/MonkGirl/MonkGirl.png and b/frontend/assets/resources/animation/MonkGirl/MonkGirl.png differ diff --git a/frontend/assets/resources/pbfiles/room_downsync_frame.proto b/frontend/assets/resources/pbfiles/room_downsync_frame.proto index fc80319..3b16996 100644 --- a/frontend/assets/resources/pbfiles/room_downsync_frame.proto +++ b/frontend/assets/resources/pbfiles/room_downsync_frame.proto @@ -9,9 +9,9 @@ message PlayerDownsync { int32 virtualGridX = 2; int32 virtualGridY = 3; int32 dirX = 4; - int32 dirY = 5; // "dirX" and "dirY" determines character facing + int32 dirY = 5; 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 inertia and 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 battleState = 9; int32 joinIndex = 10; @@ -36,6 +36,8 @@ message PlayerDownsync { int32 onWallNormX = 27; int32 onWallNormY = 28; + bool capturedByInertia = 29; // like "inAir", it’s by design a standalone field only inferred by the calc result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState" + string name = 997; string displayName = 998; string avatar = 999; diff --git a/frontend/assets/resources/prefabs/ControlledCharacter.prefab b/frontend/assets/resources/prefabs/ControlledCharacter.prefab index ac90f5a..d5cd5c3 100644 --- a/frontend/assets/resources/prefabs/ControlledCharacter.prefab +++ b/frontend/assets/resources/prefabs/ControlledCharacter.prefab @@ -538,7 +538,7 @@ "__id__": 8 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { "__id__": 14 diff --git a/frontend/assets/scenes/login.fire b/frontend/assets/scenes/login.fire index f6e1c96..babacca 100644 --- a/frontend/assets/scenes/login.fire +++ b/frontend/assets/scenes/login.fire @@ -362,7 +362,7 @@ "array": [ 0, 0, - 216.46608171234504, + 215.64032554232523, 0, 0, 0, diff --git a/frontend/assets/scenes/offline_map.fire b/frontend/assets/scenes/offline_map.fire index 7b9498a..ecbf790 100644 --- a/frontend/assets/scenes/offline_map.fire +++ b/frontend/assets/scenes/offline_map.fire @@ -537,7 +537,7 @@ "array": [ 0, 0, - 216.46608171234504, + 215.64032554232523, 0, 0, 0, diff --git a/frontend/assets/scripts/Map.js b/frontend/assets/scripts/Map.js index 46612c0..16f28ab 100644 --- a/frontend/assets/scripts/Map.js +++ b/frontend/assets/scripts/Map.js @@ -308,7 +308,7 @@ cc.Class({ const newFireball = newFireballNode.getComponent("Fireball"); newFireballNode.setPosition(cc.v2(Number.MAX_VALUE, Number.MAX_VALUE)); safelyAddChild(self.node, newFireballNode); - setLocalZOrder(newFireballNode, 5); + setLocalZOrder(newFireballNode, 10); newFireball.lastUsed = -1; newFireball.bulletLocalId = -1; const initLookupKey = -(k + 1); // there's definitely no suck "bulletLocalId" @@ -609,7 +609,7 @@ cc.Class({ const jsPlayersArr = new Array(pbRdf.playersArr.length).fill(null); for (let k = 0; k < pbRdf.playersArr.length; ++k) { const pbPlayer = pbRdf.playersArr[k]; - const jsPlayer = gopkgs.NewPlayerDownsyncJs(pbPlayer.id, pbPlayer.virtualGridX, pbPlayer.virtualGridY, pbPlayer.dirX, pbPlayer.dirY, pbPlayer.velX, pbPlayer.velY, pbPlayer.framesToRecover, pbPlayer.framesInChState, pbPlayer.activeSkillId, pbPlayer.activeSkillHit, pbPlayer.framesInvinsible, pbPlayer.speed, pbPlayer.battleState, pbPlayer.characterState, pbPlayer.joinIndex, pbPlayer.hp, pbPlayer.maxHp, pbPlayer.colliderRadius, pbPlayer.inAir, pbPlayer.onWall, pbPlayer.onWallNormX, pbPlayer.onWallNormY, pbPlayer.bulletTeamId, pbPlayer.chCollisionTeamId); + const jsPlayer = gopkgs.NewPlayerDownsyncJs(pbPlayer.id, pbPlayer.virtualGridX, pbPlayer.virtualGridY, pbPlayer.dirX, pbPlayer.dirY, pbPlayer.velX, pbPlayer.velY, pbPlayer.framesToRecover, pbPlayer.framesInChState, pbPlayer.activeSkillId, pbPlayer.activeSkillHit, pbPlayer.framesInvinsible, pbPlayer.speed, pbPlayer.battleState, pbPlayer.characterState, pbPlayer.joinIndex, pbPlayer.hp, pbPlayer.maxHp, pbPlayer.colliderRadius, pbPlayer.inAir, pbPlayer.onWall, pbPlayer.onWallNormX, pbPlayer.onWallNormY, pbPlayer.capturedByInertia, pbPlayer.bulletTeamId, pbPlayer.chCollisionTeamId); jsPlayersArr[k] = jsPlayer; } const jsMeleeBulletsArr = new Array(pbRdf.meleeBullets.length).fill(null); diff --git a/frontend/assets/scripts/modules/room_downsync_frame_proto_bundle.forcemsg.js b/frontend/assets/scripts/modules/room_downsync_frame_proto_bundle.forcemsg.js index 818085b..566c815 100644 --- a/frontend/assets/scripts/modules/room_downsync_frame_proto_bundle.forcemsg.js +++ b/frontend/assets/scripts/modules/room_downsync_frame_proto_bundle.forcemsg.js @@ -1219,6 +1219,7 @@ $root.protos = (function() { * @property {boolean|null} [onWall] PlayerDownsync onWall * @property {number|null} [onWallNormX] PlayerDownsync onWallNormX * @property {number|null} [onWallNormY] PlayerDownsync onWallNormY + * @property {boolean|null} [capturedByInertia] PlayerDownsync capturedByInertia * @property {string|null} [name] PlayerDownsync name * @property {string|null} [displayName] PlayerDownsync displayName * @property {string|null} [avatar] PlayerDownsync avatar @@ -1463,6 +1464,14 @@ $root.protos = (function() { */ PlayerDownsync.prototype.onWallNormY = 0; + /** + * PlayerDownsync capturedByInertia. + * @member {boolean} capturedByInertia + * @memberof protos.PlayerDownsync + * @instance + */ + PlayerDownsync.prototype.capturedByInertia = false; + /** * PlayerDownsync name. * @member {string} name @@ -1567,6 +1576,8 @@ $root.protos = (function() { writer.uint32(/* id 27, wireType 0 =*/216).int32(message.onWallNormX); if (message.onWallNormY != null && Object.hasOwnProperty.call(message, "onWallNormY")) writer.uint32(/* id 28, wireType 0 =*/224).int32(message.onWallNormY); + if (message.capturedByInertia != null && Object.hasOwnProperty.call(message, "capturedByInertia")) + writer.uint32(/* id 29, wireType 0 =*/232).bool(message.capturedByInertia); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 997, wireType 2 =*/7978).string(message.name); if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) @@ -1719,6 +1730,10 @@ $root.protos = (function() { message.onWallNormY = reader.int32(); break; } + case 29: { + message.capturedByInertia = reader.bool(); + break; + } case 997: { message.name = reader.string(); break; @@ -1850,6 +1865,9 @@ $root.protos = (function() { if (message.onWallNormY != null && message.hasOwnProperty("onWallNormY")) if (!$util.isInteger(message.onWallNormY)) return "onWallNormY: integer expected"; + if (message.capturedByInertia != null && message.hasOwnProperty("capturedByInertia")) + if (typeof message.capturedByInertia !== "boolean") + return "capturedByInertia: boolean expected"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -1930,6 +1948,8 @@ $root.protos = (function() { message.onWallNormX = object.onWallNormX | 0; if (object.onWallNormY != null) message.onWallNormY = object.onWallNormY | 0; + if (object.capturedByInertia != null) + message.capturedByInertia = Boolean(object.capturedByInertia); if (object.name != null) message.name = String(object.name); if (object.displayName != null) @@ -1981,6 +2001,7 @@ $root.protos = (function() { object.onWall = false; object.onWallNormX = 0; object.onWallNormY = 0; + object.capturedByInertia = false; object.name = ""; object.displayName = ""; object.avatar = ""; @@ -2041,6 +2062,8 @@ $root.protos = (function() { object.onWallNormX = message.onWallNormX; if (message.onWallNormY != null && message.hasOwnProperty("onWallNormY")) object.onWallNormY = message.onWallNormY; + if (message.capturedByInertia != null && message.hasOwnProperty("capturedByInertia")) + object.capturedByInertia = message.capturedByInertia; if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; if (message.displayName != null && message.hasOwnProperty("displayName")) diff --git a/jsexport/Makefile b/jsexport/Makefile index 661e0cf..31c4d70 100644 --- a/jsexport/Makefile +++ b/jsexport/Makefile @@ -11,17 +11,17 @@ serve: clean: gopherjs clean rm -f ../frontend/assets/plugin_scripts/jsexport.js - rm -f ../frontend/assets/plugin_scripts/jsexport.js.map + #rm -f ../frontend/assets/plugin_scripts/jsexport.js.map build: clean gopherjs build $(PROJECTNAME) mv ./jsexport.js ../frontend/assets/plugin_scripts/ - mv ./jsexport.js.map ../frontend/assets/plugin_scripts/ + #mv ./jsexport.js.map ../frontend/assets/plugin_scripts/ build-min: clean gopherjs build -m $(PROJECTNAME) mv ./jsexport.js ../frontend/assets/plugin_scripts/ - mv ./jsexport.js.map ../frontend/assets/plugin_scripts/ + #mv ./jsexport.js.map ../frontend/assets/plugin_scripts/ .PHONY: help diff --git a/jsexport/battle/battle.go b/jsexport/battle/battle.go index 4a566f1..70fd6b9 100644 --- a/jsexport/battle/battle.go +++ b/jsexport/battle/battle.go @@ -77,6 +77,8 @@ const ( ATK_CHARACTER_STATE_DASHING = int32(15) ATK_CHARACTER_STATE_ONWALL = int32(16) + + ATK_CHARACTER_STATE_TURNAROUND = int32(17) ) var inAirSet = map[int32]bool{ @@ -514,31 +516,32 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer // Make a copy first for i, currPlayerDownsync := range currRenderFrame.PlayersArr { nextRenderFramePlayers[i] = &PlayerDownsync{ - Id: currPlayerDownsync.Id, - VirtualGridX: currPlayerDownsync.VirtualGridX, - VirtualGridY: currPlayerDownsync.VirtualGridY, - DirX: currPlayerDownsync.DirX, - DirY: currPlayerDownsync.DirY, - VelX: currPlayerDownsync.VelX, - VelY: currPlayerDownsync.VelY, - CharacterState: currPlayerDownsync.CharacterState, - InAir: true, - OnWall: false, - Speed: currPlayerDownsync.Speed, - BattleState: currPlayerDownsync.BattleState, - Score: currPlayerDownsync.Score, - Removed: currPlayerDownsync.Removed, - JoinIndex: currPlayerDownsync.JoinIndex, - Hp: currPlayerDownsync.Hp, - MaxHp: currPlayerDownsync.MaxHp, - FramesToRecover: currPlayerDownsync.FramesToRecover - 1, - FramesInChState: currPlayerDownsync.FramesInChState + 1, - ActiveSkillId: currPlayerDownsync.ActiveSkillId, - ActiveSkillHit: currPlayerDownsync.ActiveSkillHit, - FramesInvinsible: currPlayerDownsync.FramesInvinsible - 1, - ColliderRadius: currPlayerDownsync.ColliderRadius, - OnWallNormX: currPlayerDownsync.OnWallNormX, - OnWallNormY: currPlayerDownsync.OnWallNormY, + Id: currPlayerDownsync.Id, + VirtualGridX: currPlayerDownsync.VirtualGridX, + VirtualGridY: currPlayerDownsync.VirtualGridY, + DirX: currPlayerDownsync.DirX, + DirY: currPlayerDownsync.DirY, + VelX: currPlayerDownsync.VelX, + VelY: currPlayerDownsync.VelY, + CharacterState: currPlayerDownsync.CharacterState, + InAir: true, + OnWall: false, + Speed: currPlayerDownsync.Speed, + BattleState: currPlayerDownsync.BattleState, + Score: currPlayerDownsync.Score, + Removed: currPlayerDownsync.Removed, + JoinIndex: currPlayerDownsync.JoinIndex, + Hp: currPlayerDownsync.Hp, + MaxHp: currPlayerDownsync.MaxHp, + FramesToRecover: currPlayerDownsync.FramesToRecover - 1, + FramesInChState: currPlayerDownsync.FramesInChState + 1, + ActiveSkillId: currPlayerDownsync.ActiveSkillId, + ActiveSkillHit: currPlayerDownsync.ActiveSkillHit, + FramesInvinsible: currPlayerDownsync.FramesInvinsible - 1, + ColliderRadius: currPlayerDownsync.ColliderRadius, + OnWallNormX: currPlayerDownsync.OnWallNormX, + OnWallNormY: currPlayerDownsync.OnWallNormY, + CapturedByInertia: currPlayerDownsync.CapturedByInertia, } if nextRenderFramePlayers[i].FramesToRecover < 0 { nextRenderFramePlayers[i].FramesToRecover = 0 @@ -631,19 +634,34 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer } if 0 == currPlayerDownsync.FramesToRecover { + prevCapturedByInertia := currPlayerDownsync.CapturedByInertia isWallJumping := (currPlayerDownsync.Speed < intAbs(currPlayerDownsync.VelX)) /* if isWallJumping { fmt.Printf("joinIndex=%d is wall jumping\n{renderFrame.id: %d, currPlayerDownsync.Speed: %d, currPlayerDownsync.VelX: %d}\n", currPlayerDownsync.JoinIndex, currRenderFrame.Id, currPlayerDownsync.Speed, currPlayerDownsync.VelX) } */ - if 0 != effDx { - if !isWallJumping && 0 > effDx*thatPlayerInNextFrame.DirX { - // [WARNING] A "turn-around", or in more generic direction schema a "change in direction" is a hurdle for our current "prediction+rollback" approach, yet applying a "FramesToRecover" for "turn-around" can alleviate the graphical inconsistence to a huge extent! For better operational experience, this is intentionally NOT APPLIED TO WALL JUMPING! - thatPlayerInNextFrame.DirX = effDx - thatPlayerInNextFrame.VelX = 0 - thatPlayerInNextFrame.FramesToRecover = chConfig.TurnAroundFramesToRecover - } else { + alignedWithInertia := true + if 0 == effDx && 0 != thatPlayerInNextFrame.VelX { + alignedWithInertia = false + } else if 0 != effDx && 0 == thatPlayerInNextFrame.VelX { + alignedWithInertia = false + } else if 0 > effDx*thatPlayerInNextFrame.VelX { + alignedWithInertia = false + } + + if !isWallJumping && !prevCapturedByInertia && !alignedWithInertia { + /* + [WARNING] A "turn-around", or in more generic direction schema a "change in direction" is a hurdle for our current "prediction+rollback" approach, yet applying a "FramesToRecover" for "turn-around" can alleviate the graphical inconsistence to a huge extent! For better operational experience, this is intentionally NOT APPLIED TO WALL JUMPING! + + When "false == alignedWithInertia", we're GUARANTEED TO BE WRONG AT INPUT PREDICTION ON THE FRONTEND, but we COULD STILL BE RIGHT AT POSITION PREDICTION WITHIN "InertiaFramesToRecover" -- which together with "INPUT_DELAY_FRAMES" grants the frontend a big chance to be graphically consistent even upon wrong prediction! + */ + //fmt.Printf("joinIndex=%d is not wall jumping and not aligned w/ inertia\n{renderFrame.id: %d, effDx: %d, thatPlayerInNextFrame.VelX: %d}\n", currPlayerDownsync.JoinIndex, currRenderFrame.Id, effDx, thatPlayerInNextFrame.VelX) + thatPlayerInNextFrame.CapturedByInertia = true + thatPlayerInNextFrame.FramesToRecover = chConfig.InertiaFramesToRecover + } else { + thatPlayerInNextFrame.CapturedByInertia = false + if 0 != effDx { xfac := int32(1) if 0 > effDx { xfac = -xfac @@ -658,11 +676,12 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer thatPlayerInNextFrame.VelX = xfac * currPlayerDownsync.Speed } thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_WALKING + } else { + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_IDLE1 + thatPlayerInNextFrame.VelX = 0 } - } else { - thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_IDLE1 - thatPlayerInNextFrame.VelX = 0 } + } } diff --git a/jsexport/battle/characterConfig.go b/jsexport/battle/characterConfig.go index 7db7b2e..de5eae0 100644 --- a/jsexport/battle/characterConfig.go +++ b/jsexport/battle/characterConfig.go @@ -26,7 +26,7 @@ type CharacterConfig struct { WallJumpingInitVelY int32 WallSlidingVelY int32 - TurnAroundFramesToRecover int32 + InertiaFramesToRecover int32 SkillMapper SkillMapperType } @@ -49,7 +49,7 @@ var Characters = map[int]*CharacterConfig{ JumpingInitVelY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingFramesToRecover: int32(2), - TurnAroundFramesToRecover: int32(4), + InertiaFramesToRecover: int32(5), DashingEnabled: false, OnWallEnabled: false, @@ -98,7 +98,7 @@ var Characters = map[int]*CharacterConfig{ JumpingInitVelY: int32(float64(7.5) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingFramesToRecover: int32(2), - TurnAroundFramesToRecover: int32(4), + InertiaFramesToRecover: int32(5), DashingEnabled: true, OnWallEnabled: true, @@ -151,7 +151,7 @@ var Characters = map[int]*CharacterConfig{ JumpingInitVelY: int32(float64(7.5) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingFramesToRecover: int32(2), - TurnAroundFramesToRecover: int32(4), + InertiaFramesToRecover: int32(5), DashingEnabled: false, OnWallEnabled: false, diff --git a/jsexport/battle/room_downsync_frame.go b/jsexport/battle/room_downsync_frame.go index 4d63d00..d8920f5 100644 --- a/jsexport/battle/room_downsync_frame.go +++ b/jsexport/battle/room_downsync_frame.go @@ -37,6 +37,8 @@ type PlayerDownsync struct { OnWallNormX int32 OnWallNormY int32 + CapturedByInertia bool + ActiveSkillId int32 ActiveSkillHit int32 diff --git a/jsexport/main.go b/jsexport/main.go index 96066cf..2c4b48c 100644 --- a/jsexport/main.go +++ b/jsexport/main.go @@ -42,7 +42,7 @@ func NewBarrierJs(boundary *Polygon2D) *js.Object { }) } -func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius int32, inAir, onWall bool, onWallNormX, onWallNormY, bulletTeamId, chCollisionTeamId int32) *js.Object { +func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius int32, inAir, onWall bool, onWallNormX, onWallNormY int32, capturedByInertia bool, bulletTeamId, chCollisionTeamId int32) *js.Object { return js.MakeWrapper(&PlayerDownsync{ Id: id, VirtualGridX: virtualGridX, @@ -67,6 +67,7 @@ func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, OnWall: onWall, OnWallNormX: onWallNormX, OnWallNormY: onWallNormY, + CapturedByInertia: capturedByInertia, BulletTeamId: bulletTeamId, ChCollisionTeamId: chCollisionTeamId, })