2025-06-06 20:02:58 +08:00
|
|
|
package baseroom
|
|
|
|
|
2025-06-07 01:58:14 +08:00
|
|
|
import (
|
|
|
|
"game/common/proto/pb"
|
2025-06-07 22:53:54 +08:00
|
|
|
"github.com/fox/fox/service"
|
2025-06-07 01:58:14 +08:00
|
|
|
)
|
2025-06-06 20:02:58 +08:00
|
|
|
|
|
|
|
type IRoom interface {
|
|
|
|
Id() int
|
|
|
|
RoomType() int // 房间配置id
|
2025-06-14 12:31:57 +08:00
|
|
|
GameId() int
|
2025-06-07 11:57:56 +08:00
|
|
|
OnInit()
|
2025-06-06 20:02:58 +08:00
|
|
|
// SeatPlayerNum() int
|
2025-06-13 14:54:44 +08:00
|
|
|
// FindEmptySeat() bool
|
2025-06-11 23:49:47 +08:00
|
|
|
// FindPlayer(uid int64) bool
|
2025-06-07 11:57:56 +08:00
|
|
|
Unmarshal(cmd int32, data []byte) (any, error)
|
|
|
|
Dispatch(user IPlayer, cmd int32, params ...any) error
|
2025-06-06 20:02:58 +08:00
|
|
|
// ReleaseRoom()
|
|
|
|
}
|
|
|
|
|
|
|
|
type ISeat interface {
|
|
|
|
No() int
|
|
|
|
Empty() bool
|
|
|
|
Player() IPlayer
|
|
|
|
SetPlayer(player IPlayer)
|
2025-06-07 01:58:14 +08:00
|
|
|
Status() SeatStatus
|
|
|
|
SetStatus(status SeatStatus)
|
2025-06-06 20:02:58 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
type IPlayer interface {
|
|
|
|
Id() int64
|
|
|
|
Robot() IRobot
|
2025-06-13 14:54:44 +08:00
|
|
|
IsRobot() bool
|
2025-06-07 11:57:56 +08:00
|
|
|
GateTopicName() string
|
|
|
|
RoomId() int
|
2025-06-06 20:02:58 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
type IRobot interface {
|
|
|
|
OnMessage(cmd pb.MsgId, params ...any)
|
|
|
|
}
|
|
|
|
|
|
|
|
type ICreateRoom interface {
|
2025-06-07 22:53:54 +08:00
|
|
|
CreateRoom(id, roomType int, service service.IService) (IRoom, pb.ErrCode)
|
2025-06-06 20:02:58 +08:00
|
|
|
}
|
2025-06-07 01:58:14 +08:00
|
|
|
|
|
|
|
type ICreatePlayer interface {
|
|
|
|
CreatePlayer(id int64) (IPlayer, pb.ErrCode)
|
|
|
|
}
|