Documentation
¶
Index ¶
- type BattleAnnouncementMessage
- type BattleResultsMessage
- type DiceRollMessage
- type ErrorMessage
- type GameStartedMessage
- type GiveSupportMessage
- type Lobby
- func (lobby *Lobby) AddPlayer(username string, socket *websocket.Conn) (*Player, error)
- func (lobby *Lobby) AwaitDiceRoll(ctx context.Context, from game.PlayerFaction) error
- func (lobby *Lobby) AwaitOrders(ctx context.Context, from game.PlayerFaction) ([]game.Order, error)
- func (lobby *Lobby) AwaitSupport(ctx context.Context, from game.PlayerFaction, embattled game.RegionName) (supported game.PlayerFaction, err error)
- func (lobby *Lobby) ClearMessages()
- func (lobby *Lobby) Close()
- func (lobby *Lobby) Logger() log.Logger
- func (lobby *Lobby) RemovePlayer(username Username)
- func (lobby *Lobby) SendBattleAnnouncement(battle game.Battle)
- func (lobby *Lobby) SendBattleResults(battle game.Battle)
- func (lobby *Lobby) SendError(to game.PlayerFaction, err error)
- func (lobby *Lobby) SendGameStarted(board game.Board)
- func (lobby *Lobby) SendOrderRequest(to game.PlayerFaction, season game.Season) (succeeded bool)
- func (lobby *Lobby) SendOrdersConfirmation(factionThatSubmittedOrders game.PlayerFaction)
- func (lobby *Lobby) SendOrdersReceived(orders map[game.PlayerFaction][]game.Order)
- func (lobby *Lobby) SendPlayerStatusMessage(player *Player)
- func (lobby *Lobby) SendWinner(winner game.PlayerFaction)
- type LobbyInfo
- type LobbyJoinedMessage
- type LobbyRegistry
- type Message
- type MessageTag
- type OrderRequestMessage
- type OrdersConfirmationMessage
- type OrdersReceivedMessage
- type Player
- type PlayerStatusMessage
- type ReceivedMessage
- type SelectFactionMessage
- type StartGameMessage
- type SubmitOrdersMessage
- type Username
- type WinnerMessage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BattleAnnouncementMessage ¶
Message sent from server to all clients when a battle has begun.
type BattleResultsMessage ¶
Message sent from server to all clients when a battle has finished resolving.
type DiceRollMessage ¶
type DiceRollMessage struct{}
Message sent from client when they roll the dice in a battle.
type ErrorMessage ¶
type ErrorMessage struct {
Error string
}
Message sent from server when an error occurs.
type GameStartedMessage ¶
Message sent from server when the game starts.
type GiveSupportMessage ¶
type GiveSupportMessage struct { EmbattledRegion game.RegionName // Blank if none were supported. SupportedFaction game.PlayerFaction `json:",omitempty"` }
Message sent from client when declaring who to support with their support order.
type Lobby ¶
type Lobby struct {
// contains filtered or unexported fields
}
A collection of players for a game.
func (*Lobby) AwaitDiceRoll ¶
func (*Lobby) AwaitOrders ¶
func (*Lobby) AwaitSupport ¶
func (lobby *Lobby) AwaitSupport( ctx context.Context, from game.PlayerFaction, embattled game.RegionName, ) (supported game.PlayerFaction, err error)
func (*Lobby) ClearMessages ¶
func (lobby *Lobby) ClearMessages()
func (*Lobby) RemovePlayer ¶
func (*Lobby) SendBattleAnnouncement ¶
func (*Lobby) SendBattleResults ¶
func (*Lobby) SendGameStarted ¶
func (*Lobby) SendOrderRequest ¶
func (*Lobby) SendOrdersConfirmation ¶
func (lobby *Lobby) SendOrdersConfirmation(factionThatSubmittedOrders game.PlayerFaction)
func (*Lobby) SendOrdersReceived ¶
func (lobby *Lobby) SendOrdersReceived(orders map[game.PlayerFaction][]game.Order)
func (*Lobby) SendPlayerStatusMessage ¶
func (*Lobby) SendWinner ¶
func (lobby *Lobby) SendWinner(winner game.PlayerFaction)
type LobbyJoinedMessage ¶
type LobbyJoinedMessage struct { SelectableFactions []game.PlayerFaction PlayerStatuses []PlayerStatusMessage }
Message sent to a player when they join a lobby, to inform them about the game and other players.
type LobbyRegistry ¶
type LobbyRegistry struct {
// contains filtered or unexported fields
}
func NewLobbyRegistry ¶
func NewLobbyRegistry() *LobbyRegistry
func (*LobbyRegistry) CreateLobby ¶
func (registry *LobbyRegistry) CreateLobby( lobbyName string, boardID string, onlyLobbyOnServer bool, customPlayerFactions []game.PlayerFaction, ) error
func (*LobbyRegistry) GetLobby ¶
func (registry *LobbyRegistry) GetLobby(name string) (lobby *Lobby, lobbyFound bool)
func (*LobbyRegistry) ListLobbies ¶
func (registry *LobbyRegistry) ListLobbies() []LobbyInfo
type Message ¶
type Message struct { Tag MessageTag Data any }
type MessageTag ¶
type MessageTag uint8
const ( MessageTagError MessageTag = iota + 1 MessageTagLobbyJoined MessageTagPlayerStatus MessageTagSelectFaction MessageTagStartGame MessageTagGameStarted MessageTagOrderRequest MessageTagOrdersReceived MessageTagOrdersConfirmation MessageTagBattleAnnouncement MessageTagBattleResults MessageTagWinner MessageTagSubmitOrders MessageTagDiceRoll MessageTagGiveSupport )
func (MessageTag) String ¶
func (tag MessageTag) String() string
type OrderRequestMessage ¶
Message sent from server to client to signal that client should submit orders.
type OrdersConfirmationMessage ¶
type OrdersConfirmationMessage struct {
FactionThatSubmittedOrders game.PlayerFaction
}
Message sent from server to all clients when valid orders are received from a player. Used to show who the server is waiting for.
type OrdersReceivedMessage ¶
type OrdersReceivedMessage struct {
OrdersByFaction map[game.PlayerFaction][]game.Order
}
Message sent from server to all clients when valid orders are received from all players.
type Player ¶
type Player struct {
// contains filtered or unexported fields
}
A player connected to a game lobby.
func (*Player) SendLobbyJoinedMessage ¶
type PlayerStatusMessage ¶
type PlayerStatusMessage struct { Username Username SelectedFaction game.PlayerFaction `json:",omitempty"` }
Message sent from server to all clients when a player's status changes.
type ReceivedMessage ¶
type ReceivedMessage struct { Tag MessageTag Data any ReceivedFrom game.PlayerFaction }
type SelectFactionMessage ¶
type SelectFactionMessage struct {
Faction game.PlayerFaction
}
Message sent from client when they want to select a faction to play for the game.
type StartGameMessage ¶
type StartGameMessage struct{}
Message sent from a player when the lobby wants to start the game. Requires that all players have selected a faction.
type SubmitOrdersMessage ¶
Message sent from client when submitting orders.
type WinnerMessage ¶
type WinnerMessage struct {
WinningFaction game.PlayerFaction
}
Message sent from server to all clients when the game is won.