tome_lib/card.go

71 lines
1.1 KiB
Go

package tome_lib
import (
"fmt"
"github.com/google/uuid"
)
type Card struct {
Type CardType `json:"type"`
BasePower int `json:"base_power"`
Power int `json:"power"`
Id uuid.UUID `json:"id"`
Sick bool `json:"sick"`
Counters int `json:"counters"`
Owner int `json:"owner"`
Position int `json:"position"`
Spell bool `json:"spell"`
Effects []*Effect `json:"effects"`
}
type CardType int
const (
Valk CardType = iota
Ace
Two
Three
Four
Five
Six
Seven
Eight
)
const (
EmptyValue CardType = -1
)
func NewEmpty(p int) *Card {
return &Card{
Type: EmptyValue,
BasePower: -1,
Power: -1,
Id: uuid.New(),
Sick: false,
Counters: 0,
Owner: -1,
Position: p,
Spell: false,
Effects: []*Effect{},
}
}
func (c CardType) String() string {
if c == -1 {
return " "
}
return []string{"V", "A", "2", "3", "4", "5", "6", "7", "8"}[c]
}
func (c *Card) Empty() bool {
return c.Type == EmptyValue
}
func (c *Card) String() string {
ready := " "
if c.Sick {
ready = "*"
}
return fmt.Sprintf("%v%v%v", c.Type, c.Power, ready)
}