70 lines
1.3 KiB
Go

package classes
import (
"dk/internal/database"
"fmt"
"strings"
)
type Classes struct {
ID int
Name string
Lore string
BaseHP int
BaseMP int
BaseSTR int
BaseDEX int
RateHP int
RateMP int
RateSTR int
RateDEX int
}
func New() *Classes {
return &Classes{
BaseHP: 15,
BaseMP: 10,
BaseSTR: 1,
BaseDEX: 1,
RateHP: 2,
RateMP: 2,
RateSTR: 2,
RateDEX: 2,
}
}
func (c *Classes) Validate() error {
if strings.TrimSpace(c.Name) == "" {
return fmt.Errorf("class name cannot be empty")
}
if c.BaseHP < 1 {
return fmt.Errorf("class base HP must be at least 1")
}
if c.BaseMP < 0 {
return fmt.Errorf("class base MP must be at least 0")
}
if c.BaseSTR < 0 {
return fmt.Errorf("class base strength must be at least 0")
}
if c.BaseDEX < 0 {
return fmt.Errorf("class base dexterity must be at least 0")
}
if c.RateHP < 0 {
return fmt.Errorf("class HP rate must be at least 0")
}
if c.RateMP < 0 {
return fmt.Errorf("class MP rate must be at least 0")
}
if c.RateSTR < 0 {
return fmt.Errorf("class strength rate must be at least 0")
}
if c.RateDEX < 0 {
return fmt.Errorf("class dexterity rate must be at least 0")
}
return nil
}
func (c *Classes) Delete() error {
return database.Exec("DELETE FROM classes WHERE id = %d", c.ID)
}