Initial outline of a Ship

This commit is contained in:
2020-04-02 01:23:04 +01:00
parent df1f116b3d
commit fd73f03aa5
2 changed files with 72 additions and 0 deletions

View File

@@ -35,6 +35,8 @@ type Ordoor struct {
music *audio.Player music *audio.Player
win *ui.Window win *ui.Window
ship *Ship
state gameState state gameState
nextState gameState nextState gameState

70
internal/ordoor/ship.go Normal file
View File

@@ -0,0 +1,70 @@
package ordoor
// Ship encapsulates campaign state, including current location in the campaign,
// marines and their stats, supplies, etc.
type Ship struct {
CurrentMission string
Squads []*Squad
Captain *Character
Chaplain *Character
Apothecary *Character
Techmarines [2]*Character
Librarians [4]*Character
}
type SquadType int
type CharacterType int
const (
SquadTypeTactical SquadType = 0
SquadTypeTerminator SquadType = 1
SquadTypeAssault SquadType = 2
SquadTypeDevastator SquadType = 3
CharTypeMarine CharacterType = 0
CharTypeCaptain CharacterType = 1
CharTypeChaplain CharacterType = 2
CharTypeApothecary CharacterType = 3
CharTypeTechmarine CharacterType = 4
CharTypeLibrarian CharacterType = 5
)
type Squad struct {
Type SquadType
Characters []*Character
}
type Character struct {
Name string
Type CharacterType
Stats
Honours
}
type Stats struct {
ActionPoints int
Health int
Armour int
BallisticSkill int
WeaponSkill int
Strength int
Toughness int
Initiative int
Attacks int
Leadership int
MissionCount int
KillCount int
Experience int
}
type Honours struct {
Marksman bool
CruxTerminatus bool
PuritySeal bool
ImperialLaurel bool
}