Forestry tab

Mostly a commit to see if I can still commit.
This commit is contained in:
Rakeela
2025-08-30 23:24:19 -07:00
parent 37d3b639bf
commit adb02ff38b
2 changed files with 44 additions and 66 deletions

View File

@@ -298,79 +298,56 @@ var cards = []Card{
EffectsTable: map[FieldLabel]float64{
Construction: 2,
Welfare: 1,
Healthcare: 1,
ParksExpense: 4,
Hospitality: 1,
Madness: -1,
Madness: -2,
Cruelty: -1,
Greed: -1,
},
EnactionDesc: cardsim.MsgStr("The company of others makes cold water tolerable."),
CanDo: YesWeAlsoCan,
},
&BasicPolicy{
&TablePolicy{
UnenactedDesc: cardsim.MsgStr(`Your Minister of Finance is scandalized. "A free service? And such an expensive one to construct? No, no, no. The baths must pull their weight in the budget if they're ot be made at all. We must set an entry fee."`),
EnactedDesc: cardsim.MsgStr("[current policy] Elite bathhouses serve paying customers in your largest sites."),
Do: func(p *Player) (cardsim.Message, error) {
p.Stats.Construction += 2
p.Stats.Hospitality += 3
p.Stats.ParksExpense += 2
return cardsim.MsgStr("A dirty body is the mark of the lower classes."), nil
EffectsTable: map[FieldLabel]float64{
Construction: 2,
Hospitality: 3,
ParksExpense: 2,
Madness: -1,
Greed: 1,
},
Undo: func(p *Player) error {
p.Stats.Construction -= 2
p.Stats.Hospitality -= 3
p.Stats.ParksExpense -= 2
return nil
},
CanDo: YesWeCan,
EnactionDesc: cardsim.MsgStr("A dirty body is the mark of the lower classes."),
CanDo: YesWeAlsoCan,
},
&BasicPolicy{
&TablePolicy{
UnenactedDesc: cardsim.MsgStr(`Your head diplomat chimes in with, "If you want to make the service self-sustaining, build a bath in a shallow cave and invite the surfacers in for a fee. Of course, we'll be giving up some of our secrecy, but it'll bring in foreign exchange to power our industries."`),
EnactedDesc: cardsim.MsgStr("[current policy] Conservative kobolds are scandalized: not only has the tribe bathhouses, it has near-surface bathhouses for surfacers to visit."),
Do: func(p *Player) (cardsim.Message, error) {
p.Stats.Construction += 2
p.Stats.Hospitality += 4
p.Stats.Manufacturing += 1
p.Stats.ParksExpense += 3
p.Stats.FoodSupply += 1
p.Stats.ForeignRelExpense += 1
p.Stats.ForeignRelations += 1
p.Stats.HiddenRelPenalty -= -2
p.Stats.Secrecy -= 10
p.Stats.Cruelty -= 1
return cardsim.MsgStr("Surfacers stink less in the tribe's vicinity."), nil
EffectsTable: map[FieldLabel]float64{
Construction: 2,
Hospitality: 4,
Manufacturing: 1,
ParksExpense: 3,
FoodSupply: 1,
ForeignRelExpense: 1,
ForeignRelations: 1,
HiddenRelPenalty: -2,
Secrecy: -20,
Cruelty: -1,
},
Undo: func(p *Player) error {
p.Stats.Construction -= 2
p.Stats.Hospitality -= 3
p.Stats.Manufacturing -= 1
p.Stats.ParksExpense -= 3
p.Stats.FoodSupply -= 1
p.Stats.ForeignRelExpense -= 1
p.Stats.ForeignRelations -= 1
p.Stats.HiddenRelPenalty += 2
p.Stats.Secrecy += 10
p.Stats.Cruelty += 1
return nil
},
CanDo: YesWeCan,
EnactionDesc: cardsim.MsgStr("Surfacers stink less in the tribe's vicinity."),
CanDo: YesWeAlsoCan,
},
&VerbosePolicy{
Default: &BasicPolicy{
Default: &TablePolicy{
UnenactedDesc: cardsim.MsgStr("Bathhouses are a big project that would displace other things in the city center. You could use the space for housing and services instead."),
EnactedDesc: cardsim.MsgStr("When is the right time to embark on building public baths? You can hew close to skeptics instead."),
Do: func(p *Player) (cardsim.Message, error) {
p.Stats.BasePopulation += 5
p.Stats.Gullibility -= 1
return cardsim.MsgStr("Opponents of public bathing won a recent political contest."), nil
EffectsTable: map[FieldLabel]float64{
BasePopulation: 5,
Gullibility: -1,
},
Undo: func(p *Player) error {
p.Stats.BasePopulation -= 5
p.Stats.Gullibility += 1
return nil
},
CanDo: YesWeCan,
EnactionDesc: cardsim.MsgStr("Opponents of public bathing won a recent political contest."),
CanDo: YesWeAlsoCan,
},
},
}, // End of "A Recipe for Stewed Kobold" policies
@@ -383,9 +360,19 @@ var cards = []Card{
return p.Stats.Militarism > 0
},
Policies: []Policy{
&BasicPolicy{
&TablePolicy{
UnenactedDesc: cardsim.MsgStr(`A scavenger clad in sturdy clothes says, "We need to secure a section of forests on the surface. The surfacers strip too many of the forests bare; if we dispatch patrols ready to fight we can keep them from assarting the forest for their endlessly growing farm communities."`),
EnactedDesc: cardsim.MsgStr("[current policy] The war department maintains your meagre conquest of a stretch of forest on the surface."),
EffectsTable: map[FieldLabel]float64{
BasePopulation: -20,
Forestry: 3,
Militarism: 1,
FoodSupply: 3,
Secrecy: -10,
ForeignRelations: -2,
Madness: -1,
Gullibility: -1,
},
Do: func(p *Player) (cardsim.Message, error) {
p.Stats.BasePopulation -= 20
p.Stats.Forestry += 3
@@ -397,18 +384,8 @@ var cards = []Card{
p.Stats.Gullibility -= 1
return cardsim.MsgStr("A bunch of lumberjacks just disappeared in a forest."), nil
},
Undo: func(p *Player) error {
p.Stats.BasePopulation += 20
p.Stats.Forestry -= 3
p.Stats.Militarism -= 1
p.Stats.FoodSupply -= 5
p.Stats.Secrecy += 10
p.Stats.ForeignRelations += 2
p.Stats.Madness += 1
p.Stats.Gullibility += 1
return nil
},
CanDo: YesWeCan,
EnactionDesc: cardsim.MsgStr("A bunch of lumberjacks just disappeared in a forest."),
CanDo: YesWeAlsoCan,
},
&BasicPolicy{
UnenactedDesc: cardsim.MsgStr(`A very scrawny warrior waves a spear over their head and says, "That's not going far enough! We need to seize farmland of our own! Come on, we shouldn't have to eat cave lichen while the surfacers eat roast pig!"`),

View File

@@ -186,6 +186,7 @@ const (
FoodSupply FieldLabel = "FoodSupply"
ForeignRelations FieldLabel = "ForeignRelations"
ForeignRelExpense FieldLabel = "ForeignRelExpense"
Forestry FieldLabel = "Forestry"
Gadgetry FieldLabel = "Gadgetry"
Greed FieldLabel = "Greed"
Gullibility FieldLabel = "Gullibility"