package client import ( "image/color" "github.com/chompy/roguelike_rpg/internal/client/gfx" "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/text/v2" ) const titleFont = "editundo.ttf" type TitleState struct { ctx *GameContext font *gfx.Font start float32 } func (s *TitleState) Enter() error { font, err := s.ctx.Gfx.FontLibrary.GetOne("title") if err != nil { return err } s.font = font s.start = GetTime() return nil } func (s *TitleState) Update() (GameState, error) { if HasInput(InputConfirm) { newCombatant := func(name string, team int) *Combatant { combatant, _ := s.ctx.NewCombatant(name, team) return combatant } combatants := []*Combatant{ newCombatant("mage", 1), newCombatant("mage", 1), newCombatant("mage", 1), newCombatant("wolf", 2), newCombatant("wolf", 2), newCombatant("wolf", 2), newCombatant("wolf", 2), newCombatant("wolf", 2), newCombatant("wolf", 2), } return &CombatState{ Combatants: combatants, ctx: s.ctx, }, nil } return nil, nil } func (s *TitleState) Draw(screen *ebiten.Image) { op := &text.DrawOptions{} op.GeoM.Translate(float64(12), float64(12)) op.ColorScale.ScaleWithColor(color.White) op.LineSpacing = 20.0 op.Filter = ebiten.FilterPixelated s.font.DrawText(screen, "ROGUELIKE RPG\n(WORKING TITLE)", GetTime()-s.start, op) } func (s *TitleState) Exit() error { return nil }