Crime stats update

This commit is contained in:
Rakeela Windrider 2023-05-23 11:30:09 -07:00
parent 350fd0f777
commit c30254a36d

View File

@ -47,7 +47,10 @@ type KoboldMine struct {
PointOfDimReturns float64 `cardsim:"stathidden"` PointOfDimReturns float64 `cardsim:"stathidden"`
Rebellion float64 `cardsim:"stathidden"` Rebellion float64 `cardsim:"stathidden"`
Madness 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"` // AnotherExpense float64 `cardsim:"hiddenround5"`
// A different way of adding stats that is slightly more empowering. // 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 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 { func (k *KoboldMine) StatTaxRate() float64 {
return k.Taxation() return k.Taxation()
} }
@ -245,13 +251,6 @@ func (k *KoboldMine) DisplayedSecrecy() float64 {
return k.Secrecy * 100 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 { func (k *KoboldMine) SqualorReduction() float64 {
total := math.Max(k.MiningIncome, 0.01) total := math.Max(k.MiningIncome, 0.01)
total -= math.Max(k.ScavengingIncome, 0) total -= math.Max(k.ScavengingIncome, 0)
@ -288,6 +287,14 @@ func (k *KoboldMine) StatChaos() float64 {
return Mean(k.Rebellion, k.Madness, k.Cruelty) 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 { func (k *KoboldMine) Stats() []cardsim.Stat {
stats := cardsim.ExtractStats(k) stats := cardsim.ExtractStats(k)
funcs := []cardsim.Stat{ funcs := []cardsim.Stat{
@ -470,6 +477,12 @@ func NewKoboldMine() *KoboldMine {
FoodSupply: 0.20, FoodSupply: 0.20,
ForeignRelations: -0.40, ForeignRelations: -0.40,
HiddenRelPenalty: -0.01, HiddenRelPenalty: -0.01,
Rebellion: 0.10,
Madness: 0.25,
Cruelty: 0.45,
Greed: 0.35,
Gullibility: 0.10,
Authoritarianism: 0.70,
Secrecy: .95, Secrecy: .95,
PointOfDimReturns: 1.0, PointOfDimReturns: 1.0,
} }