KoboldSim/koboldsim/setup.go

49 lines
1.2 KiB
Go
Raw Permalink Normal View History

2023-04-03 06:24:47 +00:00
package koboldsim
import (
"strings"
"git.chromaticdragon.app/kistaro/CardSimEngine/cardsim"
)
2023-04-03 06:24:47 +00:00
func InitPlayer() *Player {
p := cardsim.InitPlayer(NewKoboldMine())
p.Name = RandomKoboldName()
initDeck(p.Deck)
initRules(p.Rules)
p.HandLimit = 3
p.InfoPanels = []InfoPanel{
&cardsim.BasicStatsPanel[*KoboldMine]{
Name: cardsim.MsgStr("All Stats"),
Intro: cardsim.MsgStr("All available statistics."),
},
&cardsim.BasicStatsPanel[*KoboldMine]{
Name: cardsim.MsgStr("Per Capita Economic"),
Intro: cardsim.MsgStr("Yield and Investment per Capita"),
Filter: cardsim.All(
cardsim.VisibleOrDebug[*KoboldMine],
func(p *Player, s cardsim.Stat) bool {
return strings.Contains(s.StatName(), "Productivity") || strings.Contains(s.StatName(), "Investment")
},
),
},
2023-04-03 06:24:47 +00:00
}
p.Prompt = &cardsim.BasicStatsPanel[*KoboldMine]{
Name: cardsim.MsgStr("The Kobold Mine"),
Intro: cardsim.MsgStr("We await your command, Overlord."),
Filter: cardsim.VisibleOrDebugStatsNamed[*KoboldMine](
"Kobolds",
2023-04-03 23:18:26 +00:00
"Total Sector Income",
"Total Government Expense",
"Tax Rate",
2023-04-03 06:24:47 +00:00
),
}
p.State = cardsim.GameActive
p.DebugLevel = 5
return p
}
func initRules(*cardsim.RuleCollection[*KoboldMine]) {
// TODO: move to rules.go, add rules
}