package event import ( "f1-game/internal/enum" eventBase "f1-game/internal/event/base" "f1-game/internal/extend/utils" nameEvent "f1-game/internal/name/event" "f1-game/internal/pb" "f1-game/internal/types" ) type ChatSystemMsg struct { eventBase.EmptyEvent params *pb.ParamsTemplate } func NewChatSystemMsgByTemplate(playerID int64, paramTemplate *pb.ParamsTemplate) *ChatSystemMsg { return &ChatSystemMsg{ EmptyEvent: eventBase.NewEmptyEvent(playerID, nameEvent.Chat_SystemMsg), params: paramTemplate, } } func NewChatSystemMsg(playerID int64, msgType enum.ChatMsgType, asserts types.Assets, points types.Points, params ...any) *ChatSystemMsg { paramTemplate := &pb.ParamsTemplate{ Type: int32(msgType), Params: utils.ToStringSlice(params...), } if asserts != nil { assertListProto := asserts.ToAssetListProto() paramTemplate.Assets = &assertListProto } if points != nil { paramTemplate.Points = points.ToProtos() } return &ChatSystemMsg{ EmptyEvent: eventBase.NewEmptyEvent(playerID, nameEvent.Chat_SystemMsg), params: paramTemplate, } } func (p *ChatSystemMsg) Params() *pb.ParamsTemplate { return p.params }