lsha

package module
v0.0.0-...-4d1603a Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2024 License: GPL-3.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventPlayerPrepared = "system:player_prepared"
	EventGameStarted    = "system:game_start"
	EventTurnStarted    = "system:turn_start"
	EventPhaseStarted   = "system:phase_start"
)

Variables

This section is empty.

Functions

func Data

func Data[V any](c DataHolder) (_ V)

func PhaseData

func PhaseData[V any](ctx Context) (_ V)

func TurnData

func TurnData[V any](ctx Context) (_ V)

Types

type ConfigBuilder

type ConfigBuilder interface {
	DataHolder
	Desc(desc string) ConfigDescOptionsBuilder
	Checkbox(name string, tips string) ConfigCheckboxOptionsBuilder
	Radio(name string, tips string) ConfigRadioOptionsBuilder
	Range(name string, tips string) ConfigRangeOptionsBuilder
}

type ConfigCheckboxOptionsBuilder

type ConfigCheckboxOptionsBuilder interface {
	ConfigOptionsBuilder
	SetName(name string) ConfigCheckboxOptionsBuilder
	SetTips(tips string) ConfigCheckboxOptionsBuilder
	AddOption(name string, tips string, checked bool, onChanged func(data any, name, checkboxName string, checked bool)) ConfigCheckboxOptionsBuilder
	ResetOptions() ConfigCheckboxOptionsBuilder
	RemoveOption(name string) ConfigCheckboxOptionsBuilder
	SetOptionTips(name string, tips string) ConfigCheckboxOptionsBuilder
	CheckOption(name string, checked bool) ConfigCheckboxOptionsBuilder
	OnChangedOption(name string, onChanged func(data any, name, checkboxName string, checked bool)) ConfigCheckboxOptionsBuilder
}

type ConfigDescOptionsBuilder

type ConfigDescOptionsBuilder interface {
	ConfigOptionsBuilder
	Desc(desc string) ConfigDescOptionsBuilder
}

type ConfigOptionsBuilder

type ConfigOptionsBuilder interface {
	Parent() ConfigBuilder
}

type ConfigRadioOptionsBuilder

type ConfigRadioOptionsBuilder interface {
	ConfigOptionsBuilder
	SetName(name string) ConfigRadioOptionsBuilder
	SetTips(tips string) ConfigRadioOptionsBuilder
	AddOption(name string, tips string) ConfigRadioOptionsBuilder
	CheckOption(name string) ConfigRadioOptionsBuilder
	ResetOptions() ConfigRadioOptionsBuilder
	RemoveOption(name string) ConfigRadioOptionsBuilder
	OnCheckedOption(onChecked func(data any, name, radioName string)) ConfigRadioOptionsBuilder
	Parent() ConfigBuilder
}

type ConfigRangeOptionsBuilder

type ConfigRangeOptionsBuilder interface {
	ConfigOptionsBuilder
	SetName(name string) ConfigRangeOptionsBuilder
	SetTips(tips string) ConfigRangeOptionsBuilder
	Max(value int, label string) ConfigRangeOptionsBuilder
	Min(value int, label string) ConfigRangeOptionsBuilder
	ValueTips(value int, tips string) ConfigRangeOptionsBuilder
	Value(value int) ConfigRangeOptionsBuilder
	OnChanged(onChanged func(data any, name string, value int)) ConfigRangeOptionsBuilder
	RemoveValueTip(value int) ConfigRangeOptionsBuilder
}

type Context

type Context interface {
	RuntimeContext
	WithEvent(event Event) Context
	Event() Event
}

type DataHolder

type DataHolder interface {
	BindData(data any)
	Data() any
}

type Effect

type Effect interface {
	Name() string
	Description() string
}

type Event

type Event interface {
	Name() string
}

type EventWithStartPlayer

type EventWithStartPlayer interface {
	Event
	StartPlayer() Player
}

type FuncModeNextTurn

type FuncModeNextTurn = func(ctx Context, turnBuilder TurnBuilder)

type GameStartedEvent

type GameStartedEvent struct {
}

func (*GameStartedEvent) Name

func (e *GameStartedEvent) Name() string

type Hero

type Hero interface {
}

type HeroDef

type HeroDef interface {
}

type InvokeResult

type InvokeResult interface {
	FastStop()
}

type Invoker

type Invoker = func(ctx Context, result InvokeResult)

type ModeBuilder

type ModeBuilder interface {
	Name(name string) ModeBuilder
	Description(description string) ModeBuilder
	UserConfig(builderInitializer func(builder ModeUserConfigBuilder)) ModeBuilder
	ModeRegistration(f func(registration ModeRegistration)) ModeBuilder
	OnCreateConfig(f ModeRoomConfigBuilder) ModeBuilder
	Init(f ModeInitializer) ModeBuilder
	NextTurn(f TurnStarter) ModeBuilder
}

type ModeInitUserBuilder

type ModeInitUserBuilder interface {
	User() User
	Order() int
	RewriteOrder(order int) ModeInitUserBuilder
	BindData(data any) ModeInitUserBuilder
}

type ModeInitializer

type ModeInitializer = func(ctx Context, userBuilders []ModeInitUserBuilder) (ctxData any)

type ModeRegistration

type ModeRegistration interface {
	SetHeroDef(h HeroDef)
	DeleteHeroDef(name string)
}

type ModeRepository

type ModeRepository interface {
	GetModeRegistration(name string) ModeRegistration
	BuildMode(f func(builder ModeBuilder))
}

type ModeRoomConfigBuilder

type ModeRoomConfigBuilder = func(roomConfigBuilder ConfigBuilder)

type ModeUserConfigBuilder

type ModeUserConfigBuilder interface {
	MinPlayer(playerCount int) ModeUserConfigBuilder
	MaxPlayer(playerCount int) ModeUserConfigBuilder
	ValidUser(validator func(user User) (reason string)) ModeUserConfigBuilder
	DisableRandomOrder() ModeUserConfigBuilder
}

type Phase

type Phase interface {
	DataHolder
	Name() string
}

type PhaseBuilder

type PhaseBuilder interface {
	Name(name string) PhaseBuilder
}

type PhaseStartedEvent

type PhaseStartedEvent struct {
	// contains filtered or unexported fields
}

func (*PhaseStartedEvent) Name

func (e *PhaseStartedEvent) Name() string

func (*PhaseStartedEvent) Phase

func (e *PhaseStartedEvent) Phase() Phase

func (*PhaseStartedEvent) SetPhase

func (e *PhaseStartedEvent) SetPhase(phase Phase)

func (*PhaseStartedEvent) SetTurn

func (e *PhaseStartedEvent) SetTurn(turn Turn)

func (*PhaseStartedEvent) StartPlayer

func (e *PhaseStartedEvent) StartPlayer() Player

func (*PhaseStartedEvent) Turn

func (e *PhaseStartedEvent) Turn() Turn

type PhaseStarter

type PhaseStarter = func(ctx Context, pb PhaseBuilder) (phaseData any)

type Player

type Player interface {
	DataHolder
	Order() int
	User() User
	IsAlive() bool
	Effects() Effect
}

type PlayerPreparedEvent

type PlayerPreparedEvent struct {
	// contains filtered or unexported fields
}

func (*PlayerPreparedEvent) Name

func (e *PlayerPreparedEvent) Name() string

func (*PlayerPreparedEvent) Player

func (e *PlayerPreparedEvent) Player() Player

func (*PlayerPreparedEvent) SetPlayer

func (e *PlayerPreparedEvent) SetPlayer(player Player)

func (*PlayerPreparedEvent) StartPlayer

func (e *PlayerPreparedEvent) StartPlayer() Player

type PluginBuilder

type PluginBuilder interface {
	Name(name string) PluginBuilder
	Description(d string) PluginBuilder
	Version(v int) PluginBuilder
	Dependencies(dependentPluginWithVersion map[string]int) PluginBuilder
	OnLoad(f func(r ModeRepository)) PluginBuilder
}

type PluginRegister

type PluginRegister func(pb PluginBuilder)

type PrepareUser

type PrepareUser = func(order int, users User) (playerData any)

type RuntimeContext

type RuntimeContext interface {
	BindData(data any)
	Data() any
	RoomConfig() any
	RuntimeConfig() ConfigBuilder
	Turn() Turn
	PlayerIter(start Player) iter.Seq[Player]
	NextPlayer(start Player) Player
	AddTrigger(trigger Trigger, player Player, eventNames ...string) (id uint64)
	RemoveTrigger(id uint64)
}

type Trigger

type Trigger interface {
	Name() string
	EventName() string
	Priority() float64
	Invoke(ctx Context, enter bool, result InvokeResult)
}

type Turn

type Turn interface {
	DataHolder
	Player() Player
	Round() int
	Phase() Phase
}

type TurnBuilder

type TurnBuilder interface {
	Player(p Player) TurnBuilder
	Round(n int) TurnBuilder
	OnNextPhase(phaseStarter PhaseStarter) TurnBuilder
}

type TurnStartedEvent

type TurnStartedEvent struct {
	// contains filtered or unexported fields
}

func (*TurnStartedEvent) Name

func (e *TurnStartedEvent) Name() string

func (*TurnStartedEvent) SetTurn

func (e *TurnStartedEvent) SetTurn(turn Turn)

func (*TurnStartedEvent) StartPlayer

func (e *TurnStartedEvent) StartPlayer() Player

func (*TurnStartedEvent) Turn

func (e *TurnStartedEvent) Turn() Turn

type TurnStarter

type TurnStarter = func(ctx Context, tb TurnBuilder) (turnData any)

type User

type User interface {
	ID() string
}

Jump to

Keyboard shortcuts

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