refactor: game funcs moved to controller

This commit is contained in:
Ilia Denisov
2026-01-15 14:42:04 +02:00
parent fe8a8d4150
commit 16aba8435d
47 changed files with 1023 additions and 3093 deletions
+1 -83
View File
@@ -1,11 +1,6 @@
package game
import (
// "slices"
"github.com/google/uuid"
// e "github.com/iliadenisov/galaxy/internal/error"
)
import "github.com/google/uuid"
type Race struct {
ID uuid.UUID `json:"id"`
@@ -38,11 +33,6 @@ func (r Race) TechLevel(t Tech) float64 {
return r.Tech.Value(t)
}
// TODO: remove func, move to Cache
func (r *Race) SetTechLevel(t Tech, v float64) {
r.Tech = r.Tech.Set(t, v)
}
func (r Race) FlightDistance() float64 {
return r.TechLevel(TechDrive) * 40
}
@@ -50,75 +40,3 @@ func (r Race) FlightDistance() float64 {
func (r Race) VisibilityDistance() float64 {
return r.TechLevel(TechDrive) * 30
}
// func (g Game) Relation(hostRace, opponentRace string) (RaceRelation, error) {
// ri, err := g.raceIndex(hostRace)
// if err != nil {
// return RaceRelation{}, err
// }
// other, err := g.raceIndex(opponentRace)
// if err != nil {
// return RaceRelation{}, err
// }
// return g.relationInternal(ri, other)
// }
// func (g Game) UpdateRelation(race, opponent string, rel Relation) error {
// ri, err := g.raceIndex(race)
// if err != nil {
// return err
// }
// var other int
// if race == opponent {
// other = ri
// } else if other, err = g.raceIndex(opponent); err != nil {
// return err
// }
// if err != nil {
// return err
// }
// return g.updateRelationInternal(ri, other, rel)
// }
// func (g *Game) GiveVotes(race, recipient string) error {
// ri, err := g.raceIndex(race)
// if err != nil {
// return err
// }
// rec, err := g.raceIndex(recipient)
// if err != nil {
// return err
// }
// g.Race[ri].Vote = g.Race[rec].ID
// return nil
// }
// func (g Game) relationInternal(ri, other int) (RaceRelation, error) {
// if ri == other {
// return RaceRelation{
// RaceID: g.Race[ri].ID,
// Relation: RelationPeace,
// }, nil
// }
// rel := slices.IndexFunc(g.Race[ri].Relations, func(r RaceRelation) bool { return r.RaceID == g.Race[other].ID })
// if rel < 0 {
// return RaceRelation{}, e.NewGameStateError("Relation: opponent not found")
// }
// return g.Race[ri].Relations[rel], nil
// }
// func (g Game) updateRelationInternal(ri, other int, rel Relation) error {
// for o := range g.Race[ri].Relations {
// switch {
// case ri == other:
// g.Race[ri].Relations[o].Relation = rel
// case g.Race[ri].Relations[o].RaceID == g.Race[other].ID:
// g.Race[ri].Relations[o].Relation = rel
// return nil
// }
// }
// if ri != other {
// return e.NewGameStateError("UpdateRelation: opponent not found")
// }
// return nil
// }