From 7313ac0d7359cbb8eec86313b36f58f17ffdf244 Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Mon, 3 Apr 2023 20:24:01 -0700 Subject: [PATCH] Fully implement Festival of Bureaucracy. --- koboldsim/cards.go | 53 +++++++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/koboldsim/cards.go b/koboldsim/cards.go index c67ac1d..8495726 100644 --- a/koboldsim/cards.go +++ b/koboldsim/cards.go @@ -57,7 +57,7 @@ var cards = []Card{ }, }, &VerbosePolicy{ - BasicPolicy: &BasicPolicy{ + Default: &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 @@ -67,23 +67,24 @@ var cards = []Card{ p.Stats.Kobolds.Value -= 20 return nil }, + CanDo: YesWeCan, }, - 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."), + Variants: []Policy{ + &BasicPolicy{ + UnenactedDesc: cardsim.MsgStr("Rejecting this issue will also reject the military's natalist stance."), + Do: OverrideMsg(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."), + &BasicPolicy{ + UnenactedDesc: cardsim.MsgStr(`"Dig deeper" pressures in your nation may be excessive.`), + Do: OverrideMsg(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 outposts are being established."), + &BasicPolicy{ + UnenactedDesc: cardsim.MsgStr("Near-surface patrols may need to be increased."), + Do: OverrideMsg(cardsim.MsgStr("More and better-armed hunting outposts 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."), + &BasicPolicy{ + EnactedDesc: cardsim.MsgStr("This isn't about a disaster and can probably continue to be safely dismissed."), + Do: OverrideMsg(cardsim.MsgStr("Creche control doesn't shift that easily.")), }, }, }, @@ -155,8 +156,9 @@ var cards = []Card{ }, }, &VerbosePolicy{ - BasicPolicy: &BasicPolicy{ + Default: &BasicPolicy{ UnenactedDesc: cardsim.MsgStr("Some kobolds will attend the festival on their own, and we may face desertions for our lack of interest."), + EnactedDesc: cardsim.MsgStr("Some kobolds will attend the festival on their own. No change is expected."), Do: func(p *Player) (cardsim.Message, error) { p.Stats.Kobolds.Value -= 20 return cardsim.MsgStr("A festival of bureaucracy lured away a few kobolds to other nations."), nil @@ -165,6 +167,27 @@ var cards = []Card{ p.Stats.Kobolds.Value += 20 return nil }, + CanDo: YesWeCan, + }, + Variants: []Policy{ + nil, + &DisabledPolicy{cardsim.MsgStr("TODO(rakeela): write")}, + &DisabledPolicy{cardsim.MsgStr("TODO(rakeela): write")}, + &FuncPolicy{ + OptionTextFunc: func(p *Player) (cardsim.Message, error) { + if p.Stats.GovBureaucracyExpense.Value >= -0.03 { + return cardsim.MsgStr("Permitting the festival will yield some immigration, but we'll be expected to rebuild our bureaucracy."), nil + } + return cardsim.MsgStr("Permitting the festival will yield some immigration."), nil + }, + EnactFunc: func(p *Player) (cardsim.Message, error) { + if p.Stats.GovBureaucracyExpense.Value >= -0.03 { + return cardsim.MsgStr("A festival of bureaucracy just saw the nation's bureaucracy rebuilt."), ErrKeepMessage + } + return cardsim.MsgStr("A festival of bureaucracy brought in immigrants wondering at the nation's lack thereof."), ErrKeepMessage + }, + }, + nil, // remember, if using a BasicPolicy, this uses EnactedDesc }, }, },