Compare commits
2 Commits
5af762474c
...
7313ac0d73
Author | SHA1 | Date | |
---|---|---|---|
7313ac0d73 | |||
140d7b6cbb |
@ -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
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -398,6 +398,34 @@ func (f *FuncPolicy) Is(p Policy) bool {
|
||||
return ok && (f == fp)
|
||||
}
|
||||
|
||||
// A DisabledPolicy is never enabled.
|
||||
type DisabledPolicy struct {
|
||||
Msg cardsim.Message
|
||||
}
|
||||
|
||||
func (d *DisabledPolicy) OptionText(p *Player) (cardsim.Message, error) {
|
||||
return d.Msg, nil
|
||||
}
|
||||
|
||||
func (d *DisabledPolicy) Enact(*Player) (cardsim.Message, error) {
|
||||
return nil, ErrOptionNotEnabled
|
||||
}
|
||||
|
||||
func (d *DisabledPolicy) Enabled(*Player) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (d *DisabledPolicy) Unenact(*Player) error {
|
||||
return ErrPolicyNotEnacted
|
||||
}
|
||||
|
||||
func (d *DisabledPolicy) LastEnacted(int, Policy) {}
|
||||
|
||||
func (d *DisabledPolicy) Is(p Policy) bool {
|
||||
dp, ok := p.(*DisabledPolicy)
|
||||
return ok && (dp == d)
|
||||
}
|
||||
|
||||
// ShuffleIntoBottomHalf is a common "what to do with the card after?" behavior.
|
||||
func ShuffleIntoBottomHalf(c Card, p *Player, _ CardOption) error {
|
||||
p.Deck.InsertRandomBottom(0.5, c)
|
||||
|
Loading…
Reference in New Issue
Block a user