99 lines
4.5 KiB
Go
99 lines
4.5 KiB
Go
|
package koboldsim
|
||
|
|
||
|
import "git.chromaticdragon.app/kistaro/CardSimEngine/cardsim"
|
||
|
|
||
|
var cards = []Card{
|
||
|
&SwitchingCard{
|
||
|
Name: cardsim.MsgStr("Warborn"),
|
||
|
Desc: cardsim.MsgStr(" A surge of anti-kobold sentiment has been reported by your spies on the surface and your military is concerned that anti-kobold vigilantes will attack the tunnels in the near-future. They want to build up now while doing so is safe."),
|
||
|
Policies: []Policy{
|
||
|
&BasicPolicy{
|
||
|
UnenactedDesc: cardsim.MsgStr(`Your war chief paces irritably. "We have terrible threats facing us. It's imperative that we build up our numbers in both the military and the domestic sense. I want creches under military control and a good hunting crew to supply them with food."`),
|
||
|
EnactedDesc: cardsim.MsgStr("[current policy] Your war chief is presntly monitoring the situation, building up your military, and securing your creches."),
|
||
|
Do: func(p *Player) (cardsim.Message, error) {
|
||
|
p.Stats.Kobolds.Value += 100
|
||
|
p.Stats.SectorScavengingProductivity.Value += 0.01
|
||
|
p.Stats.GovWarProductivity.Value += 0.02
|
||
|
return cardsim.MsgStr("Kobolds are known to be born warriors."), nil
|
||
|
},
|
||
|
Undo: func(p *Player) error {
|
||
|
p.Stats.Kobolds.Value -= 100
|
||
|
p.Stats.SectorScavengingProductivity.Value -= 0.01
|
||
|
p.Stats.GovWarProductivity.Value -= 0.02
|
||
|
return nil
|
||
|
},
|
||
|
},
|
||
|
&BasicPolicy{
|
||
|
UnenactedDesc: cardsim.MsgStr(`Your head miner considers the matter worriedly. "Creches under military control? No. That would invite chaos. We need to dig deeper; we can have a peaceful, orderly society if we just get far enough away from surfacers."`),
|
||
|
EnactedDesc: cardsim.MsgStr("[current policy] Your head miner is presently leading a project to dig as far away from the surface as possible."),
|
||
|
Do: func(p *Player) (cardsim.Message, error) {
|
||
|
p.Stats.Kobolds.Value += 40
|
||
|
p.Stats.SectorMiningProductivity.Value += 0.02
|
||
|
p.Stats.GovBureaucracyProductivity.Value += 0.01
|
||
|
return cardsim.MsgStr("Kobolds are known to be cowards hiding in the dark."), nil
|
||
|
},
|
||
|
Undo: func(p *Player) error {
|
||
|
p.Stats.Kobolds.Value -= 40
|
||
|
p.Stats.SectorMiningProductivity.Value -= 0.02
|
||
|
p.Stats.GovBureaucracyProductivity.Value -= 0.01
|
||
|
return nil
|
||
|
},
|
||
|
},
|
||
|
&BasicPolicy{
|
||
|
UnenactedDesc: cardsim.MsgStr(`Your nursery director is incensed. "Creches under military control? Never! Let young kobolds play! In fact, cut the military just for suggesting this. The threats facing us are completely overstated."`),
|
||
|
EnactedDesc: cardsim.MsgStr("[current policy] Military funding has been diverted into early childhood education."),
|
||
|
Do: func(p *Player) (cardsim.Message, error) {
|
||
|
p.Stats.Kobolds.Value -= 40
|
||
|
p.Stats.SectorScavengingProductivity.Value -= 0.01
|
||
|
p.Stats.GovWarProductivity.Value -= 0.02
|
||
|
return cardsim.MsgStr("An undefended hunting outpost near the surface was recently wiped out by a raid."), nil
|
||
|
},
|
||
|
Undo: func(p *Player) error {
|
||
|
p.Stats.Kobolds.Value += 40
|
||
|
p.Stats.SectorScavengingProductivity.Value += 0.01
|
||
|
p.Stats.GovWarProductivity.Value += 0.02
|
||
|
return nil
|
||
|
},
|
||
|
},
|
||
|
&VerbosePolicy{
|
||
|
BasicPolicy: &BasicPolicy{
|
||
|
UnenactedDesc: cardsim.MsgStr("This isn't about a disaster and can probably be safely dismissed."),
|
||
|
Do: func(p *Player) (cardsim.Message, error) {
|
||
|
p.Stats.Kobolds.Value += 20
|
||
|
return cardsim.MsgStr("Creche control doesn't shift that easily."), nil
|
||
|
},
|
||
|
Undo: func(p *Player) error {
|
||
|
p.Stats.Kobolds.Value -= 20
|
||
|
return nil
|
||
|
},
|
||
|
},
|
||
|
Content: []DescResult{
|
||
|
{
|
||
|
Desc: cardsim.MsgStr("Rejecting this issue will also reject the military's natalist stance."),
|
||
|
Result: cardsim.MsgStr("Militant natalism has been reduced by policy."),
|
||
|
},
|
||
|
{
|
||
|
Desc: cardsim.MsgStr(`"Dig deeper" pressures in your nation may be excessive.`),
|
||
|
Result: cardsim.MsgStr("Some of the lower depths are being abandoned."),
|
||
|
},
|
||
|
{
|
||
|
Desc: cardsim.MsgStr("Near-surface patrols may need to be increased."),
|
||
|
Result: cardsim.MsgStr("More and better-armed hunting outpsts are being established."),
|
||
|
},
|
||
|
{
|
||
|
Desc: cardsim.MsgStr("This isn't about a disaster and can probably continue to be safely dismissed."),
|
||
|
Result: cardsim.MsgStr("Creche control doesn't shift that easily."),
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}, // end of "Warborn" policies
|
||
|
}, // end of "Warborn" card
|
||
|
} // end of card list
|
||
|
|
||
|
func initDeck(d *cardsim.Deck[*KoboldMine]) {
|
||
|
for _, c := range cards {
|
||
|
d.Insert(cardsim.BottomOfDeck, c)
|
||
|
}
|
||
|
d.Shuffle()
|
||
|
}
|