game

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2020 License: MIT Imports: 5 Imported by: 10

Documentation

Index

Constants

View Source
const (
	Red    = 0
	Blue   = 1
	Green  = 2
	Pink   = 3
	Orange = 4
	Yellow = 5
	Black  = 6
	White  = 7
	Purple = 8
	Brown  = 9
	Cyan   = 10
	Lime   = 11
)

Color : Int constant mapping

View Source
const JobTTLSeconds = 3600

Variables

View Source
var ColorStrings = map[string]int{
	"red":    Red,
	"blue":   Blue,
	"green":  Green,
	"pink":   Pink,
	"orange": Orange,
	"yellow": Yellow,
	"black":  Black,
	"white":  White,
	"purple": Purple,
	"brown":  Brown,
	"cyan":   Cyan,
	"lime":   Lime,
}

ColorStrings for lowercase, possibly for translation if needed

View Source
var MapNames = map[PlayMap]string{
	SKELD: "Skeld",
	MIRA:  "Mira",
	POLUS: "Polus",
}
View Source
var PhaseNames = map[Phase]PhaseNameString{
	LOBBY:   "LOBBY",
	TASKS:   "TASKS",
	DISCUSS: "DISCUSSION",
	MENU:    "MENU",
}

PhaseNames for lowercase, possibly for translation if needed

Functions

func Ack

func Ack(ctx context.Context, redis *redis.Client, connCode string)

func AckSubscribe

func AckSubscribe(ctx context.Context, redis *redis.Client, connCode string) *redis.PubSub

func GetColorStringForInt

func GetColorStringForInt(colorint int) string

GetColorStringForInt does what it sounds like

func IsColorString

func IsColorString(test string) bool

IsColorString determines if a string is actually one of our colors

func PushJob

func PushJob(ctx context.Context, redis *redis.Client, connCode string, jobType JobType, payload string) error

func Subscribe

func Subscribe(ctx context.Context, redis *redis.Client, connCode string) *redis.PubSub

Types

type GameResult

type GameResult int16
const (
	HumansByVote GameResult = iota
	HumansByTask
	ImpostorByVote
	ImpostorByKill
	ImpostorBySabotage
	ImpostorDisconnect
	HumansDisconnect
	Unknown
)

type GameRole

type GameRole int16
const (
	CrewmateRole GameRole = iota
	ImposterRole
)

type Gameover

type Gameover struct {
	GameOverReason GameResult   `json:"GameOverReason"`
	PlayerInfos    []PlayerInfo `json:"PlayerInfos"`
}

func (*Gameover) Marshal

func (r *Gameover) Marshal() ([]byte, error)

type Job

type Job struct {
	JobType JobType     `json:"type"`
	Payload interface{} `json:"payload"`
}

func PopJob

func PopJob(ctx context.Context, redis *redis.Client, connCode string) (Job, error)

type JobType

type JobType int
const (
	ConnectionJob JobType = iota
	LobbyJob
	StateJob
	PlayerJob
	GameOverJob
)

type Lobby

type Lobby struct {
	LobbyCode string `json:"LobbyCode"`
	Region    Region `json:"Region"`
	PlayMap   int    `json:"Map"`
}

type Phase

type Phase int

Phase type

const (
	LOBBY Phase = iota
	TASKS
	DISCUSS
	MENU
	GAMEOVER
	UNINITIALIZED
)

Phase constants

func (*Phase) ToString

func (phase *Phase) ToString() PhaseNameString

ToString for a Phase

type PhaseNameString

type PhaseNameString string

type PlayMap

type PlayMap int
const (
	SKELD PlayMap = iota
	MIRA
	POLUS
	EMPTYMAP PlayMap = 10
)

type Player

type Player struct {
	Action       PlayerAction `json:"Action"`
	Name         string       `json:"Name"`
	Color        int          `json:"Color"`
	IsDead       bool         `json:"IsDead"`
	Disconnected bool         `json:"Disconnected"`
}

Player struct

type PlayerAction

type PlayerAction int
const (
	JOINED PlayerAction = iota
	LEFT
	DIED
	CHANGECOLOR
	FORCEUPDATED
	DISCONNECTED
	EXILED
)

type PlayerInfo

type PlayerInfo struct {
	Name       string `json:"Name"`
	IsImpostor bool   `json:"IsImpostor"`
}

type Region

type Region int
const (
	NA Region = iota
	AS
	EU
)

func (Region) ToString

func (r Region) ToString() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL