towards generation
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
package game
|
||||
|
||||
type GameIdentifier string
|
||||
type RaceIdentifier string
|
||||
|
||||
type Game struct {
|
||||
Id GameIdentifier
|
||||
Name string
|
||||
Schedule string // TODO: implement somehow
|
||||
Turn uint
|
||||
Races []Race
|
||||
Planets []Planet
|
||||
WarState map[RaceIdentifier]RaceIdentifier
|
||||
}
|
||||
|
||||
type Race struct {
|
||||
Id RaceIdentifier
|
||||
Name string
|
||||
Drive float64
|
||||
Weapons float64
|
||||
Shields float64
|
||||
Cargo float64
|
||||
}
|
||||
|
||||
type PlanetProduction string
|
||||
|
||||
const (
|
||||
ProductionMaterial PlanetProduction = "MAT"
|
||||
ProductionCapital PlanetProduction = "CAP"
|
||||
ProductionDrive PlanetProduction = "DRIVE"
|
||||
ProductionWeapons PlanetProduction = "WEAPONS"
|
||||
ProductionShields PlanetProduction = "SHIELDS"
|
||||
ProductionCargo PlanetProduction = "CARGO"
|
||||
|
||||
ProductionScience PlanetProduction = "SCIENCE"
|
||||
ProductionShip PlanetProduction = "SHIP"
|
||||
)
|
||||
|
||||
type ProductionType struct {
|
||||
Production PlanetProduction
|
||||
SubjectName string
|
||||
}
|
||||
|
||||
type Planet struct {
|
||||
Number uint
|
||||
Name string
|
||||
Position Coordinate
|
||||
Size float64
|
||||
|
||||
Owner RaceIdentifier
|
||||
Production ProductionType
|
||||
Resources float64 // Сырьё
|
||||
Industry float64 // Промышленность
|
||||
Population float64 // Население
|
||||
|
||||
Capital float64 // CAP $ - Запасы промышленности
|
||||
Material float64 // MAT M - Запасы сырья
|
||||
Colonists float64 // COL C - Количество колонистов
|
||||
// Параметр "L" означает количество свободных производственных единиц.
|
||||
}
|
||||
|
||||
func (p *Planet) setOwner(id RaceIdentifier) {
|
||||
p.Owner = id
|
||||
}
|
||||
|
||||
type Coordinate struct {
|
||||
X, Y float64
|
||||
}
|
||||
|
||||
type Science struct {
|
||||
Name string
|
||||
Drive float64
|
||||
Weapons float64
|
||||
Shields float64
|
||||
Cargo float64
|
||||
}
|
||||
|
||||
type ShipType struct {
|
||||
Name string
|
||||
Drive float64 // [0], [1...]
|
||||
Armament uint
|
||||
Weapons float64 // [0], [1...]
|
||||
Shields float64 // [0], [1...]
|
||||
Cargo float64 // [0], [1...]
|
||||
}
|
||||
|
||||
type ShipGroup struct {
|
||||
Type ShipType
|
||||
Number uint
|
||||
State string // TODO: kinda enum: In_Orbit, In_Space, Transfer_State, Upgrade
|
||||
Load float64 // Cargo loaded - "Масса груза"
|
||||
Drive float64
|
||||
Weapons float64
|
||||
Shields float64
|
||||
Cargo float64
|
||||
}
|
||||
|
||||
type Fleet struct {
|
||||
ShipGroups []ShipGroup
|
||||
}
|
||||
Reference in New Issue
Block a user