From c30254a36d5887bc9d138915485d0edfe9e0b4fc Mon Sep 17 00:00:00 2001 From: Rakeela Date: Tue, 23 May 2023 11:30:09 -0700 Subject: [PATCH] Crime stats update --- koboldsim/stats.go | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/koboldsim/stats.go b/koboldsim/stats.go index b2f011d..3e3a283 100644 --- a/koboldsim/stats.go +++ b/koboldsim/stats.go @@ -47,7 +47,10 @@ type KoboldMine struct { PointOfDimReturns float64 `cardsim:"stathidden"` Rebellion float64 `cardsim:"stathidden"` Madness float64 `cardsim:"stathidden"` - Cruelty float64 `cardsim:"stathidden"` + Cruelty float64 `cardsim:"stat"` + Greed float64 `cardsim:"stat"` + Gullibility float64 `cardsim:"stathidden"` + Authoritarianism float64 `cardsim:"stat"` // AnotherExpense float64 `cardsim:"hiddenround5"` // A different way of adding stats that is slightly more empowering. @@ -213,6 +216,9 @@ func (k *KoboldMine) Taxation() float64 { return (k.TotalGovExpense() / (k.TotalSectorIncome() + k.TotalGovExpense())) * 100 } +// Idea for the tax rate. I could have a tracked "tax evasion" stat that drives up taxation (people who actually pay have to pay more) as well as a tracked "public pay ratio" stat that drives up taxation if the public sector is paid more than the private sector and vice versa if the public sector is paid less. Both stats should be exposed to the player. +// Idea for tax evasion. The corruption stat should increase tax evasion, while the squalor stat should reduce it. The link with corruption should be obvious, but for squalor: when the economy improves, more people have resources with which to attempt to protect their income. + func (k *KoboldMine) StatTaxRate() float64 { return k.Taxation() } @@ -245,13 +251,6 @@ func (k *KoboldMine) DisplayedSecrecy() float64 { return k.Secrecy * 100 } -// func (k *KoboldMine) StatSqualor() float64 { -// return ??? -//} -// I want squalor to start out high and new "nations" to be plagued by crimes of poverty. As the economy comes online, squalor should be suppressed. Different categories of investment are differently effective in achieving this, with QoL spending being the most effective and Scavenging Income... maybe even aggravating squalor. How do I stat this? Game design is hard. - -// Okay, so I'm thinking that I want to generate a Squalor Resistance stat based on all the categories of input. - func (k *KoboldMine) SqualorReduction() float64 { total := math.Max(k.MiningIncome, 0.01) total -= math.Max(k.ScavengingIncome, 0) @@ -288,6 +287,14 @@ func (k *KoboldMine) StatChaos() float64 { return Mean(k.Rebellion, k.Madness, k.Cruelty) } +// This is the "crimes of chaos" stat for my crime calculations. It will also be displayed to the player as just Chaos. The player can see Cruelty, but not Madness or Rebellion. I'm concerned some players may think, "Oh, chaos is a good thing, I want more of that as long as it's not cruel!" In that case, they'll have mad, rebellious colonies that commit crimes against those perceived to be cruel... + +func (k *KoboldMine) StatCorruption() float64 { + return Mean(k.Greed, k.Gullibility, k.Authoritarianism) +} + +// This is the "crimes of cunning" stat for my crime calculations. It will also be displayed to the player as just Corruption. The player can also see Greed and Authoritarianism, so they should have a good idea what goes into Corruption, but they'll have to infer the importance of Gullibility. + func (k *KoboldMine) Stats() []cardsim.Stat { stats := cardsim.ExtractStats(k) funcs := []cardsim.Stat{ @@ -470,6 +477,12 @@ func NewKoboldMine() *KoboldMine { FoodSupply: 0.20, ForeignRelations: -0.40, HiddenRelPenalty: -0.01, + Rebellion: 0.10, + Madness: 0.25, + Cruelty: 0.45, + Greed: 0.35, + Gullibility: 0.10, + Authoritarianism: 0.70, Secrecy: .95, PointOfDimReturns: 1.0, }