Documentation ¶
Overview ¶
Package lib implements routines for reading data from Command Series game files, and simulating logic of the original games.
Index ¶
- Variables
- func Abs[T SignedNumber](i T) T
- func Clamp[T constraints.Ordered](v, min, max T) T
- func DivRoundUp(n, d int) int
- func GetPalette(n int, palette *[8]byte) []color.Color
- func InRange[T constraints.Ordered](v, min, max T) bool
- func LongRangeHexNeighbourOffset(i int) (int, int)
- func Max[T constraints.Ordered](i0, i1 T) T
- func Min[T constraints.Ordered](i0, i1 T) T
- func ParseSpriteData(data io.Reader, width, height, scaleX, scaleY, bits int) ([]*image.Paletted, error)
- func Rand(n int, rnd *rand.Rand) int
- func Sign[T SignedNumber](v T) int
- func SmallMapOffsets(i int) (int, int)
- func TinyMapOffsets(i int) (int, int)
- func UnpackFile(data io.Reader) ([]byte, error)
- type AI
- func (s *AI) ContainsVisibleUnit(xy UnitCoords) bool
- func (s *AI) NeighbourScore(arr *[6][8]int, xy UnitCoords, side int) int
- func (s *AI) ResupplyUnit(unit Unit, supplyLevels *[2]int, sync *MessageSync) Unit
- func (s *AI) UpdateUnit(weather int, isNight bool, sync *MessageSync) (message MessageFromUnit, quit bool)
- type Cities
- type City
- type ColorSchemes
- type Commander
- type CommanderFlags
- type DailyUpdate
- type Data
- type DataUpdate
- type FlashbackHistory
- type FlashbackUnit
- type FlashbackUnits
- type Font
- type Game
- type GameData
- type GameOver
- type GameState
- func (s *GameState) CitiesHeld(side int) int
- func (s *GameState) Day() int
- func (s *GameState) FinalResults(playerSide int) (int, int, int)
- func (s *GameState) Flashback() FlashbackHistory
- func (s *GameState) HideAllUnits()
- func (s *GameState) Hour() int
- func (s *GameState) Init() bool
- func (s *GameState) IsNight() bool
- func (s *GameState) IsUnitVisible(unit Unit) bool
- func (s *GameState) Load(reader io.Reader) error
- func (s *GameState) MenLost(side int) int
- func (s *GameState) Minute() int
- func (s *GameState) Month() string
- func (s *GameState) Save(writer io.Writer) error
- func (s *GameState) ShowAllVisibleUnits()
- func (s *GameState) SwitchSides()
- func (s *GameState) TanksLost(side int) int
- func (s *GameState) TerrainTypeMap() *TerrainTypeMap
- func (s *GameState) Update() bool
- func (s *GameState) Weather() string
- func (s *GameState) WinningSideAndAdvantage() (winningSide int, advantage int)
- func (s *GameState) Year() int
- type General
- type Generals
- type Generic
- type Hexes
- type IconType
- type Icons
- type Initialized
- type Intelligence
- type Map
- type MapCoords
- type MessageFromUnit
- type MessageSync
- type Options
- type OrderType
- type Reinforcements
- type Scenario
- type ScenarioData
- type Score
- type SignedNumber
- type Speed
- type Sprites
- type SupplyDistributionEnd
- type SupplyDistributionStart
- type SupplyTruckMove
- type Terrain
- type TerrainTypeMap
- type TimeChanged
- type Unit
- type UnitAttack
- type UnitCoords
- type UnitDisplay
- type UnitMove
- type Units
- func (u Units) FindUnitAt(xy UnitCoords) (Unit, bool)
- func (u Units) FindUnitOfSideAt(xy UnitCoords, side int) (Unit, bool)
- func (u Units) IsUnitAt(xy UnitCoords) bool
- func (u Units) IsUnitOfSideAt(xy UnitCoords, side int) bool
- func (u Units) NeighbourUnitCount(xy UnitCoords, side int) int
- func (u *Units) Write(writer io.Writer) error
- type Variant
- type WeAreAttacking
- type WeAreInContactWithEnemy
- type WeAreRetreating
- type WeAreUnderFire
- type WeHaveBeenOverrun
- type WeHaveCaptured
- type WeHaveExhaustedSupplies
- type WeHaveMetStrongResistance
- type WeHaveReachedOurObjective
- type WeMustSurrender
- type WeatherForecast
Constants ¶
This section is empty.
Variables ¶
var ArrowIcons = []IconType{ Arrows0, Arrows1, Arrows2, Arrows3, Arrows4, Arrows5, Arrows6, Arrows7}
Sequence of pairs of arrows pointing at the center of the tile. To be displayed over the objective of a selected unit.
var CircleIcons = []IconType{ Circles5, Circles4, Circles3, Circles2, Circles1, Circles0, LightningBolt}
Sequence of concentric circles ending with a light bolt. To be displayed over the location of a skirmish.
var Computer = Commander{1}
var Full = Intelligence{0}
var Limited = Intelligence{1}
var Player = Commander{0}
var RGBPalette = [257]color.RGBA{}/* 257 elements not displayed */
An approximation of Atari palette colors + a transparent color as 256.
Functions ¶
func Abs ¶
func Abs[T SignedNumber](i T) T
func Clamp ¶
func Clamp[T constraints.Ordered](v, min, max T) T
func InRange ¶
func InRange[T constraints.Ordered](v, min, max T) bool
func Max ¶
func Max[T constraints.Ordered](i0, i1 T) T
func Min ¶
func Min[T constraints.Ordered](i0, i1 T) T
func ParseSpriteData ¶
func Sign ¶
func Sign[T SignedNumber](v T) int
func SmallMapOffsets ¶
func TinyMapOffsets ¶
Types ¶
type AI ¶
type AI struct {
// contains filtered or unexported fields
}
func (*AI) ContainsVisibleUnit ¶
func (s *AI) ContainsVisibleUnit(xy UnitCoords) bool
func (*AI) NeighbourScore ¶
func (s *AI) NeighbourScore(arr *[6][8]int, xy UnitCoords, side int) int
score of the location based on occupancy and terrain of neighbouring tiles. arr is one of arrays in Hexes
func (*AI) ResupplyUnit ¶
func (s *AI) ResupplyUnit(unit Unit, supplyLevels *[2]int, sync *MessageSync) Unit
func (*AI) UpdateUnit ¶
func (s *AI) UpdateUnit(weather int, isNight bool, sync *MessageSync) (message MessageFromUnit, quit bool)
type Cities ¶
type Cities []City
Cities contains list of all the cities included in the scenario.
func (*Cities) ReadOwnerAndVictoryPoints ¶
type City ¶
type City struct { // Owner signifies which player is owner of the given city. It may be either 0 or 1. Owner int // VictoryPoints tells how much points players gain by taking control of the city. VictoryPoints int // XY are coordinates of the city on the map. XY UnitCoords // Iff nth bit of the VariantBitmap is 0, the city should be used in nth variant // of the scenario. VariantBitmap byte // Name of the city Name string }
City contains information about a city on the map, as parsed from a {scenario}.TER file.
type ColorSchemes ¶
type ColorSchemes struct {
// contains filtered or unexported fields
}
func NewColorSchemes ¶
func NewColorSchemes(daytimePalette *[8]byte, nightPalette *[8]byte) *ColorSchemes
func (*ColorSchemes) GetBackgroundForegroundColors ¶
func (c *ColorSchemes) GetBackgroundForegroundColors(colorScheme byte, isNight bool) []color.Color
func (*ColorSchemes) GetMapBackgroundColor ¶
func (c *ColorSchemes) GetMapBackgroundColor(isNight bool) color.Color
type CommanderFlags ¶
type CommanderFlags struct { PlayerControlled [2]bool PlayerCanSeeUnits [2]bool PlayerHasIntelligence [2]bool }
func (*CommanderFlags) Deserialize ¶
func (c *CommanderFlags) Deserialize(value uint8)
func (*CommanderFlags) Serialize ¶
func (c *CommanderFlags) Serialize() (result uint8)
func (*CommanderFlags) SwitchSides ¶
func (c *CommanderFlags) SwitchSides()
type DailyUpdate ¶
type Data ¶
type Data struct { Data0Low [16]int // Data[0:16] per unit type (lower 4 bits) Data0High [16]int // Data[0:16] per unit type (higher 4 bits) Data16Low [16]int // Data[16:32] per unit type (lower 4 bits) Data16High [16]int // Data[16:32] per unit type (higher 4 bits) Data32 [16]int // Data[32:48] per unit type Data32_8 [16]bool // Data32 & 8 Data32_32 [16]bool // Data32 & 32 Data32_64 [16]bool // Data32 & 64 Data32_128 [16]bool // Data32 & 128 AttackRange [16]int // Data32 & 31 (attack range) // Score gained by destroying enemy unit of this type // Units with score >= 4 are high importance units which are priority targets. UnitScores [16]int // Data[48:64] RecoveryRate [16]int // Data[64:80] // Various bits concerning unit types... not all clear yet UnitMask [16]byte // Data[80:96] (per unit type) UnitMask0 [16]bool // bit 0 UnitMask1 [16]bool // bit 1 UnitMask2 [16]bool // bit 2 UnitUsesSupplies [16]bool // !bit 3(&8) of bytes Data[80:96] UnitMask4 [16]bool // bit4 (weather has no impact?) UnitMask5 [16]bool // bit5 UnitCanMove [16]bool // !bit 6(&64) of bytes Data[80:96] UnitMask7 [16]bool // bit7 TerrainMenAttack [8]int // Data[96:104] TerrainTankAttack [8]int // Data[104:112] TerrainMenDefence [8]int // Data[112:120] TerrainTankDefence [8]int // Data[120:128] FormationMenAttack [8]int // Data[128:136] FormationTankAttack [8]int // Data[136:144] FormationMenDefence [8]int // Data[144:152] FormationTankDefence [8]int // Data[152:160] // Units with type >=MinSupplyType can provide supply to other units. // Such units can receive supplies only from units with larger type numbers. MinSupplyType int // Data[160] HexSizeInMiles int // Data[161] Data162 int // Data[162] some generic supply use (while attacking?) Data163 int // Data[163] some generic supply use (while being attacked?) MaxResupplyAmount int // Data[164] MaxSupplyTransportCost int // Data[165] in half-miles // On average that many supplies will be used by each unit every day. AvgDailySupplyUse int // Data[166] Data167 int // Data[167] MinutesPerTick int // Data[168] UnitUpdatesPerTimeIncrement int // Data[169] MenMultiplier int // Data[170] (one man stored in unit data correspond to that many actual men) TanksMultiplier int // Data[171] (same as above but for tanks) Data173 int // Data[173] (a fatigue increase) Data174 int // Data[174] Data175 int // Data[175] Data176 [4][4]int // Data[176:190] four bytes per order (numbers 0-5) Data192 [8]int // Data[192:200] move cost per formation Data200Low [16]int // Data[200:216] lower three bits per type UnitResupplyPerType [16]int // Data[200:216] top four bits div 2 FormationChangeSpeed [2][8]int // Data[216:232] ResupplyRate [2]int // Data[232,233] MenReplacementRate [2]int // Data[234,235] TankReplacementRate [2]int // Data[236,237] SideColor [2]int // Data[248,249] the value*16 is the hue corresponding to the given side Data252 [2]int // Data[252:254] per side MoveSpeedPerTerrainTypeAndUnit [8][16]int // Data[255:383] // Every chunk of four bytes list possible weather for a year's quarter. PossibleWeather [16]byte // Data[384:400] DaytimePalette [8]byte // Data[400:408] NightPalette [8]byte // Data[408:416] MenCountLimit [16]int // Data[416:432] TankCountLimit [16]int // Data[432:448] DataUpdates [21]DataUpdate // Data[448:511] UnitTypes []string Strings1 []string Formations []string Experience []string Strings4 []string Equipments []string UnitNames [2][]string Strings7 []string Strings9 []string Months []string Sides []string Weather []string Colors []string }
Representation of data parsed from {scenario}.DTA files.
func (*Data) UpdateData ¶
type DataUpdate ¶
At Day change byte at Offset of the scenario data to Value.
type FlashbackHistory ¶
type FlashbackHistory []FlashbackUnits
type FlashbackUnit ¶
type FlashbackUnit struct { XY UnitCoords ColorPalette int Type int }
type FlashbackUnits ¶
type FlashbackUnits []FlashbackUnit
type GameData ¶
type GameState ¶
type GameState struct {
// contains filtered or unexported fields
}
func NewGameState ¶
func NewGameState(rand *rand.Rand, gameData *GameData, scenarioData *ScenarioData, scenarioNum, variantNum int, options *Options, sync *MessageSync) *GameState
func (*GameState) CitiesHeld ¶
func (*GameState) Flashback ¶
func (s *GameState) Flashback() FlashbackHistory
func (*GameState) HideAllUnits ¶
func (s *GameState) HideAllUnits()
func (*GameState) IsUnitVisible ¶
func (*GameState) ShowAllVisibleUnits ¶
func (s *GameState) ShowAllVisibleUnits()
func (*GameState) SwitchSides ¶
func (s *GameState) SwitchSides()
func (*GameState) TerrainTypeMap ¶
func (s *GameState) TerrainTypeMap() *TerrainTypeMap
func (*GameState) WinningSideAndAdvantage ¶
type General ¶
type General struct { // A bitmap of various flags of the general Data0 byte Data0_26 int // from bits 2 and 6 Data0_15 int // from bits 1 and 5 Data0_37 int // from bits 3 and 7 Data0_04 int // from bits 0 and 4 // Attack bonus for the units commanded by the general from 0 to 15 Attack int Data1High int // Defence bonus for the units commanded by the general from 0 to 15 Defence int Data2High int // Movement bonus for the units commanded by the general from 0 to 15 Movement int Name string }
Represenation of data parsed from {scenario}.GEN files.
type Generic ¶
type Generic struct { // Terrain colors on the overview map. Data60 [4]int // Types of terrain 0-7 (0 is road, 7 is an impassable terrain, other vary from game to game). TerrainTypes []int }
Representation of data parsed from GENERIC.DTA file.
type Hexes ¶
type Hexes struct { Arr0 [6][8]int // Data[0:48] Arr48 [6][8]int // Data[48:96] Arr96 [6][8]int // Data[96:144] Arr144 [6][8]int // Data[144:192] }
Representation of data parsed from HEXES.DTA file.
type IconType ¶
type IconType int
const ( Cursor IconType = 0 LightningBolt IconType = 1 Circles0 IconType = 2 Circles1 IconType = 3 Circles2 IconType = 4 Circles3 IconType = 5 Circles4 IconType = 6 Circles5 IconType = 7 SupplyTruck IconType = 8 FightingUnit IconType = 9 UnitOnKnees IconType = 10 SurrenderingUnit IconType = 11 ExclamationMark IconType = 12 SmilingFace IconType = 13 MovingUnit IconType = 14 QuestionMark IconType = 15 Arrows0 IconType = 16 Arrows1 IconType = 17 Arrows2 IconType = 18 Arrows3 IconType = 19 Arrows4 IconType = 20 Arrows5 IconType = 21 Arrows6 IconType = 22 Arrows7 IconType = 23 )
type Initialized ¶
type Initialized struct{}
type Intelligence ¶
type Intelligence struct {
// contains filtered or unexported fields
}
func (Intelligence) Int ¶
func (i Intelligence) Int() int
func (Intelligence) Other ¶
func (i Intelligence) Other() Intelligence
func (Intelligence) String ¶
func (i Intelligence) String() string
type Map ¶
type Map struct {
Width, Height int
// contains filtered or unexported fields
}
A representation of a hex map parsed from CRUSADE.MAP file.
func (*Map) AreCoordsValid ¶
func (*Map) CoordsToIndex ¶
type MapCoords ¶
type MapCoords struct {
X, Y int
}
func (MapCoords) ToUnitCoords ¶
func (c MapCoords) ToUnitCoords() UnitCoords
type MessageFromUnit ¶
type MessageSync ¶
type MessageSync struct {
// contains filtered or unexported fields
}
func NewMessageSync ¶
func NewMessageSync() *MessageSync
func (*MessageSync) GetUpdate ¶
func (s *MessageSync) GetUpdate() interface{}
func (*MessageSync) SendUpdate ¶
func (s *MessageSync) SendUpdate(msg interface{}) bool
func (*MessageSync) Stop ¶
func (s *MessageSync) Stop()
func (*MessageSync) Wait ¶
func (s *MessageSync) Wait() bool
type Options ¶
type Options struct { AlliedCommander Commander // [0..1] GermanCommander Commander // [0..1] Intelligence Intelligence UnitDisplay UnitDisplay // [0..1] GameBalance int // [0..4] Speed Speed // [1..3] }
func DefaultOptions ¶
func DefaultOptions() Options
type Reinforcements ¶
type Reinforcements struct{ Sides [2]bool }
type Scenario ¶
type Scenario struct { Name string FilePrefix string StartMinute int StartHour int StartDay int StartMonth int StartYear int StartWeather int StartSupplyLevels [2]int MinX, MaxX, MinY, MaxY int }
Representation of the data parsed from a {scenario}.SCN file.
type ScenarioData ¶
type ScenarioData struct { Variants []Variant Generals *Generals Terrain *Terrain Data *Data Units *Units }
func LoadScenarioData ¶
func LoadScenarioData(fsys fs.FS, filePrefix string) (*ScenarioData, error)
type Score ¶
type Score struct { MenLost [2]int // 29927 + side*2 TanksLost [2]int // 29927 + 4 + side*2 CitiesHeld [2]int // 29927 + 13 + side*2 CriticalLocationsCaptured [2]int // 29927 + 21 + side*2 // contains filtered or unexported fields }
func (Score) WinningSideAndAdvantage ¶
type SignedNumber ¶
type SignedNumber interface { constraints.Signed | constraints.Float }
type Sprites ¶
type SupplyDistributionEnd ¶
type SupplyDistributionEnd struct{}
type SupplyDistributionStart ¶
type SupplyDistributionStart struct{}
type SupplyTruckMove ¶
type SupplyTruckMove struct {
XY0, XY1 MapCoords
}
type Terrain ¶
type Terrain struct { // Cities contains list of all the cities included in the scenario. Cities Cities // Coefficients for 4x4-tile squares on the map (a 16x16 map of coefficients). // n-th (0-based) coefficient, if a coefficient for square with top left corner: // (4*(n%16), 4*n/16). Coeffs [16][16]int // Bytes [768-1024] }
Terrain is a representation of data parsed from a {scenario}.TER file.
func ReadTerrain ¶
ReadTerrain reads terrain information for a particular game from given file on the given file system. If there is an error while loading returns pair (nil, error), otherwise returns pair (terrain, nil).
func (Terrain) FindCityAt ¶
func (t Terrain) FindCityAt(xy UnitCoords) (*City, bool)
FindCityAt returns pair (pointer to a city, true) if there is a city in the loaded scenario, in the selected variant. Otherwise returns pair (nil, false).
func (Terrain) IsCityAt ¶
func (t Terrain) IsCityAt(xy UnitCoords) bool
IsCityAt returns true iff in the loaded scenario, in the selected variant there is a city at coordinates xy.
type TerrainTypeMap ¶
type TerrainTypeMap struct {
// contains filtered or unexported fields
}
func (*TerrainTypeMap) AreCoordsValid ¶
func (m *TerrainTypeMap) AreCoordsValid(xy MapCoords) bool
func (*TerrainTypeMap) ContainsUnit ¶
func (m *TerrainTypeMap) ContainsUnit(xy UnitCoords) bool
func (*TerrainTypeMap) HideUnitAt ¶
func (m *TerrainTypeMap) HideUnitAt(xy UnitCoords)
func (*TerrainTypeMap) ShowUnitAt ¶
func (m *TerrainTypeMap) ShowUnitAt(xy UnitCoords)
type TimeChanged ¶
type TimeChanged struct{}
type Unit ¶
type Unit struct { Side int // 0 or 1 InContactWithEnemy bool // &1 != 0 IsUnderAttack bool // &2 != 0 State2 bool // &4 != 0 HasSupplyLine bool // &8 == 0 State4 bool // &16 != 0, is neighbouring enemy HasLocalCommand bool // &32 != 0 SeenByEnemy bool // &64 != 0 IsInGame bool // &128 != 0 XY UnitCoords MenCount, TankCount int // Formation of the unit, a number from 0 to 7. // Names of formations are read from {scenario}.DTA file into Data.Formations. Formation int SupplyUnit int // Index of this unit's supply unit LongRangeAttack bool Type int TypeName string ColorPalette int NameIndex int Name string // Formation the unit wants to have. It will gradually change the formation // from Formation to TargetFormation with speed defined by Data.FormationChangeSpeed. TargetFormation int OrderBit4 bool Order OrderType GeneralIndex int // Commanding general of the unit. General General SupplyLevel int Morale int // Iff nth bit of the VariantBitmap is 0, the unit should be used in nth variant // of the scenario. VariantBitmap byte HalfDaysUntilAppear int InvAppearProbability int Fatigue int // Value from 0 to 255 Objective UnitCoords Index int }
Unit type desribes state of game unit.
func (*Unit) ClearState ¶
func (u *Unit) ClearState()
func (Unit) FullString ¶
func (Unit) Function15_distanceToObjective ¶
type UnitAttack ¶
type UnitAttack struct { XY UnitCoords Outcome int }
type UnitCoords ¶
type UnitCoords struct {
X, Y int
}
func FirstNeighbourFromTowards ¶
func FirstNeighbourFromTowards(xy0, xy1 UnitCoords, variant int) UnitCoords
First neighbouring tile met when going from x0,y0 towards x1,y1. If variant is 0 or 1, pick one of the most direct directions. If variant is 2 or 3, pick one of the less direct directions.
func IthNeighbour ¶
func IthNeighbour(xy UnitCoords, i int) UnitCoords
func (UnitCoords) ToMapCoords ¶
func (c UnitCoords) ToMapCoords() MapCoords
type UnitDisplay ¶
type UnitDisplay int
const ( ShowAsSymbols UnitDisplay = 0 ShowAsIcons UnitDisplay = 1 )
func (UnitDisplay) String ¶
func (u UnitDisplay) String() string
type Units ¶
type Units [2][]Unit
func ParseUnits ¶
func (Units) FindUnitAt ¶
func (u Units) FindUnitAt(xy UnitCoords) (Unit, bool)
func (Units) FindUnitOfSideAt ¶
func (u Units) FindUnitOfSideAt(xy UnitCoords, side int) (Unit, bool)
func (Units) IsUnitAt ¶
func (u Units) IsUnitAt(xy UnitCoords) bool
func (Units) IsUnitOfSideAt ¶
func (u Units) IsUnitOfSideAt(xy UnitCoords, side int) bool
func (Units) NeighbourUnitCount ¶
func (u Units) NeighbourUnitCount(xy UnitCoords, side int) int
type Variant ¶
type Variant struct { Name string LengthInDays int CriticalLocations [2]int // per side. Number of critical locations that need to be captured by a side to win. Data3 int CitiesHeld [2]int }
Representation of data parsed from {scenario}.VAR file.
type WeAreAttacking ¶
type WeAreAttacking struct {
// contains filtered or unexported fields
}
func (WeAreAttacking) Enemy ¶
func (a WeAreAttacking) Enemy() Unit
func (WeAreAttacking) EnemyMessage ¶
func (a WeAreAttacking) EnemyMessage() WeAreUnderFire
func (WeAreAttacking) Icon ¶
func (a WeAreAttacking) Icon() IconType
func (WeAreAttacking) String ¶
func (a WeAreAttacking) String() string
func (WeAreAttacking) Unit ¶
func (a WeAreAttacking) Unit() Unit
type WeAreInContactWithEnemy ¶
type WeAreInContactWithEnemy struct {
// contains filtered or unexported fields
}
func (WeAreInContactWithEnemy) Icon ¶
func (c WeAreInContactWithEnemy) Icon() IconType
func (WeAreInContactWithEnemy) String ¶
func (c WeAreInContactWithEnemy) String() string
func (WeAreInContactWithEnemy) Unit ¶
func (c WeAreInContactWithEnemy) Unit() Unit
type WeAreRetreating ¶
type WeAreRetreating struct {
// contains filtered or unexported fields
}
func (WeAreRetreating) Icon ¶
func (r WeAreRetreating) Icon() IconType
func (WeAreRetreating) String ¶
func (r WeAreRetreating) String() string
func (WeAreRetreating) Unit ¶
func (r WeAreRetreating) Unit() Unit
type WeAreUnderFire ¶
type WeAreUnderFire struct {
// contains filtered or unexported fields
}
func (WeAreUnderFire) Icon ¶
func (u WeAreUnderFire) Icon() IconType
func (WeAreUnderFire) String ¶
func (u WeAreUnderFire) String() string
func (WeAreUnderFire) Unit ¶
func (u WeAreUnderFire) Unit() Unit
type WeHaveBeenOverrun ¶
type WeHaveBeenOverrun struct {
// contains filtered or unexported fields
}
func (WeHaveBeenOverrun) Icon ¶
func (o WeHaveBeenOverrun) Icon() IconType
func (WeHaveBeenOverrun) String ¶
func (o WeHaveBeenOverrun) String() string
func (WeHaveBeenOverrun) Unit ¶
func (o WeHaveBeenOverrun) Unit() Unit
type WeHaveCaptured ¶
type WeHaveCaptured struct {
// contains filtered or unexported fields
}
func (WeHaveCaptured) Icon ¶
func (c WeHaveCaptured) Icon() IconType
func (WeHaveCaptured) String ¶
func (c WeHaveCaptured) String() string
func (WeHaveCaptured) Unit ¶
func (c WeHaveCaptured) Unit() Unit
type WeHaveExhaustedSupplies ¶
type WeHaveExhaustedSupplies struct {
// contains filtered or unexported fields
}
func (WeHaveExhaustedSupplies) Icon ¶
func (e WeHaveExhaustedSupplies) Icon() IconType
func (WeHaveExhaustedSupplies) String ¶
func (e WeHaveExhaustedSupplies) String() string
func (WeHaveExhaustedSupplies) Unit ¶
func (e WeHaveExhaustedSupplies) Unit() Unit
type WeHaveMetStrongResistance ¶
type WeHaveMetStrongResistance struct {
// contains filtered or unexported fields
}
func (WeHaveMetStrongResistance) Icon ¶
func (a WeHaveMetStrongResistance) Icon() IconType
func (WeHaveMetStrongResistance) String ¶
func (m WeHaveMetStrongResistance) String() string
func (WeHaveMetStrongResistance) Unit ¶
func (m WeHaveMetStrongResistance) Unit() Unit
type WeHaveReachedOurObjective ¶
type WeHaveReachedOurObjective struct {
// contains filtered or unexported fields
}
func (WeHaveReachedOurObjective) Icon ¶
func (r WeHaveReachedOurObjective) Icon() IconType
func (WeHaveReachedOurObjective) String ¶
func (r WeHaveReachedOurObjective) String() string
func (WeHaveReachedOurObjective) Unit ¶
func (r WeHaveReachedOurObjective) Unit() Unit
type WeMustSurrender ¶
type WeMustSurrender struct {
// contains filtered or unexported fields
}
func (WeMustSurrender) Icon ¶
func (a WeMustSurrender) Icon() IconType
func (WeMustSurrender) String ¶
func (m WeMustSurrender) String() string
func (WeMustSurrender) Unit ¶
func (m WeMustSurrender) Unit() Unit
type WeatherForecast ¶
type WeatherForecast struct{ Weather int }